Написание скила

  • Автор темы Автор темы Smokee
  • Дата начала Дата начала

Smokee

Новичок
17 Ноя 2021
7
0
Проект
X
Всем привет.
Только начинаю разбираться в скриптах.
Подскажите пожалуйста.
1. По задумке скил при касте должен отнимать хп в процентах от текущего покозателя хп. (Взял за пример ульт хускара)
2. Скил должен давать атаку в зависимости от отсутствующего ХП.
(К примеру если отсутствует Если у персонажа 1000 хп, прожали скил он отнял 30% то есть отсутствует 300 хп и дал атаку равную 10% от отсутствующего хп в размере 10%, то есть 30 атаки.)
3. Скил должен давать Защиту и Спел резист в зависимости от % отсутствующего ХП, к примеру у персонажа отсутствует 30% хп, скил дает 10 защиты и 10% спел резиста, отсутствует 40% хп - дает 15 защиты и 15% спел резиста и так далее.

Эта строчка вообще загнала в тупик, не понимаю куда она ссылается "LinkedSpecialBonus" "special_bonus_unique_huskar_6"

ниже пример тот что набросал но нифига не работает)
"hutao_fire_sword"
{
// General
//-------------------------------------------------------------------------------------------------------------
"BaseClass" "ability_datadriven"
"AbilityTextureName" "huskar_berserkers_blood"
"AbilityBehavior" "DOTA_ABILITY_BEHAVIOR_NO_TARGET"
"AbilityUnitDamageType" "DAMAGE_TYPE_MAGICAL"
"SpellImmunityType" "SPELL_IMMUNITY_ENEMIES_NO"
"SpellDispellableType" "SPELL_DISPELLABLE_YES"
"AbilitySound" "Hero_EmberSpirit.FlameGuard.Cast"

// Casting
//-------------------------------------------------------------------------------------------------------------
"AbilityCastRange" "400"
"AbilityCastPoint" "0"

// Time
//-------------------------------------------------------------------------------------------------------------
"AbilityCooldown" "18.0 16.0 14.0 12.0"
"AbilityDuration" "8.0"

// Cost
//-------------------------------------------------------------------------------------------------------------
"AbilityManaCost" "0 0 0 0"

// Special
//-------------------------------------------------------------------------------------------------------------
"AbilitySpecial"
{
"01"
{
"var_type" "FIELD_INTEGER"
"bonus_armor" "12 18 24 30"
"LinkedSpecialBonus" "special_bonus_unique_huskar_6"
}
"02"
{
"var_type" "FIELD_INTEGER"
"bonus_damage" "30 70 110 150"
"LinkedSpecialBonus" "special_bonus_unique_huskar_6"
}
"03"
{
"var_type" "FIELD_INTEGER"
"hp_threshold_max" "10"
}
"04"
{
"var_type" "FIELD_FLOAT"
"health_cost_percent" "0.36 0.34 0.32 0.30"
}
"05"
{
"var_type" "FIELD_INTEGER"
"radius" "800"
"LinkedSpecialBonus" "special_bonus_unique_brewmaster_7"
}
}
"AbilityCastAnimation" "ACT_DOTA_OVERRIDE_ABILITY_4"

}
 
Прочитай все базовые гайды, когда прочтешь.
Когда прочтешь и у тебя хоть какое-то понимание образуется, тогда я возможно тебе помогу
 
Прочитай все базовые гайды, когда прочтешь.
Когда прочтешь и у тебя хоть какое-то понимание образуется, тогда я возможно тебе помогу
да ищу ищу ищу инфу в час по чайной ложке нахожу очень тяжко искть инфу
 
//=================================================================================================================
// HuTao: Fire Sword
//=================================================================================================================
"ability_HuTao_buff"
{
"BaseClass" "ability_lua"
"ScriptFile" "Abilities/Hutao/Hutao.lua"
"AbilityTextureName" "greevil_bloodlust"
"AbilityBehavior" "DOTA_ABILITY_BEHAVIOR_NO_TARGET | DOTA_ABILITY_BEHAVIOR_IMMEDIATE"
"AbilityType" "DOTA_ABILITY_TYPE_BASIC"
"MaxLevel" "4"
"RequiredLevel" "0"
"AbilityCooldown" "16.0 14.0 12.0 10.0"

// Special
//-------------------------------------------------------------------------------------------------------------
"AbilitySpecial"
{
"01"
{
"var_type" "FIELD_INTEGER"
"bonus_atk" "0.1"
}
"02"
{
"var_type" "FIELD_INTEGER"
"bonus_arm" "35"
}
"03"
{
"var_type" "FIELD_INTEGER"
"bonus_mr" "35"
}
"04"
{
"var_type" "FIELD_FLOAT"
"duration" "8.0"
}
"05"
{
"var_type" "FIELD_INTEGER"
"cpct" "30"
}
"06"
{
"var_type" "FIELD_INTEGER"
"hp_threshold_max" "10"
}
}
}
 
ability_HuTao_buff = class({})

LinkLuaModifier("modifier_HuTao_buff", "Abilities/Hutao/Hutao.lua", LUA_MODIFIER_MOTION_NONE)


function ability_HuTao_buff:OnSpellStart()
EmitSoundOn("Hero_Jakiro.LiquidFire", self:GetCaster())
self:GetCaster():AddNewModifier(self:GetCaster(), self, "modifier_HuTao_buff", {duration = self:GetSpecialValueFor("duration")})
end


modifier_HuTao_buff = class({})

function modifier_HuTao_buff:IsHidden() return false end
function modifier_HuTao_buff:IsPurgable() return true end
function modifier_HuTao_buff:IsDebuff() return false end
function modifier_HuTao_buff:GetEffectName() return "particles/test/sxsrage.vpcf" end
function modifier_HuTao_buff:GetEffectAttachType() return PATTACH_ABSORIGIN_FOLLOW end

function modifier_HuTao_buff:OnCreated( kv )
self.pfx = ParticleManager:CreateParticle(particle_path, PATTACH_ABSORIGIN_FOLLOW, self:GetCaster())
self.cost_pct = self:GetAbility():GetSpecialValueFor( "cpct" )
self.mbonus_atk = self:GetAbility():GetSpecialValueFor( "bonus_atk" )
self.mbonus_mr = self:GetAbility():GetSpecialValueFor( "bonus_mr" )
self.mbonus_arm = self:GetAbility():GetSpecialValueFor( "bonus_arm" )
self.max_threshold = self:GetAbility():GetSpecialValueFor( "hp_threshold_max" )
self.range = 100-self.max_threshold
self.cost_pct = self:GetAbility():GetSpecialValueFor( "cpct" )cpct
end

function modifier_HuTao_buff:DeclareFunctions() return {
MODIFIER_PROPERTY_PREATTACK_BONUS_DAMAGE,
MODIFIER_PROPERTY_PHYSICAL_ARMOR_BONUS,
MODIFIER_PROPERTY_MAGICAL_RESISTANCE_BONUS,
} end

function modifier_HuTao_buff:GetModifierPreAttack_BonusDamage()
local pct = math.max((self:GetParent():GetHealthPercent()-self.max_threshold)/self.range,0)
return (1-pct)*self.mbonus_atk
end

function modifier_HuTao_buff:GetModifierPhysicalArmorBonus()
local pct = math.max((self:GetParent():GetHealthPercent()-self.max_threshold)/self.range,0)
return (1-pct)*self.mbonus_arm
end

function modifier_HuTao_buff:GetModifierMagicalResistanceBonus()
local pct = math.max((self:GetParent():GetHealthPercent()-self.max_threshold)/self.range,0)
return (1-pct)*self.mbonus_mr
end
 
вот что получилось, не знаю работает или нет, не могу добавить чтобы отнимал хп
 
Реклама: