Добрый день господа, мододелы, вот вам небольшой сборник пассивных способностей
У вас уже должна быть база (какой то начальный проект)
Установка в 3х пунктах:
Установка в 3х пунктах:
Берем из спойлера - Абилку, которая вам понравилась
1.1] Идем по пути: :\steam\steamapps\common\dota 2 beta\game\dota_addons\***\npc\ в файлик: npc_abilities_custom.txt
1.2] Вставляем абилку между фигурных скобок
"DOTAAbilities"
{
}
1.3] Строки:
"ScriptFile" "heroes/passive/legion_Armor" - ПУТЬ К LUA файлу (P.S. Если вы оставили скрипт в корне VSCRIPTS => Путь будет: "Ваше название скрипта, без расширения *.lua")
"AbilityTextureName" "specal/armor" - ПУТЬ К Иконке 128х128 .png (Полный путь: :\steam\steamapps\common\dota 2 beta\game\dota_addons\**\resource\flash3\images\spellicons\specal\)
1.1] Идем по пути: :\steam\steamapps\common\dota 2 beta\game\dota_addons\***\npc\ в файлик: npc_abilities_custom.txt
1.2] Вставляем абилку между фигурных скобок
"DOTAAbilities"
{
}
1.3] Строки:
"ScriptFile" "heroes/passive/legion_Armor" - ПУТЬ К LUA файлу (P.S. Если вы оставили скрипт в корне VSCRIPTS => Путь будет: "Ваше название скрипта, без расширения *.lua")
"AbilityTextureName" "specal/armor" - ПУТЬ К Иконке 128х128 .png (Полный путь: :\steam\steamapps\common\dota 2 beta\game\dota_addons\**\resource\flash3\images\spellicons\specal\)
Берем из спойлера - LUA, которая вам понравилась
2.1] Идем по пути: :\steam\steamapps\common\dota 2 beta\game\dota_addons\***\scripts\vscripts\ (* - диск, **** - ваша карта) p.s. По желанию можно разделить папками ваши абилки
Пример из сборника пассивок: :\steam\steamapps\common\dota 2 beta\game\dota_addons\***\scripts\vscripts\hero\Passive (Добавилась 1 папка и подпапка)
2.2] Создаем файл с расширением *.lua и вставляем в него код
2.3] Если у вас другие папки/подпапки или вовсе вы создали *.lua в корне vscripts то редактируем путь в коде:
Находим строчку: LinkLuaModifier("modifier_legion_Armor", "heroes/Passive/legion_Armor", LUA_MODIFIER_MOTION_NONE)
Меняем в кавычках путь: "heroes/Passive/legion_Armor" => "Ваш путь к LUA, без расширения *.lua"
P.S. Если вы оставили скрипт в корне VSCRIPTS => Путь будет: "Ваше название скрипта, без расширения *.lua"
P.s. содержание строки зависит от пассивки/модификатора, главное это путь к скрипту!
2.1] Идем по пути: :\steam\steamapps\common\dota 2 beta\game\dota_addons\***\scripts\vscripts\ (* - диск, **** - ваша карта) p.s. По желанию можно разделить папками ваши абилки
Пример из сборника пассивок: :\steam\steamapps\common\dota 2 beta\game\dota_addons\***\scripts\vscripts\hero\Passive (Добавилась 1 папка и подпапка)
2.2] Создаем файл с расширением *.lua и вставляем в него код
2.3] Если у вас другие папки/подпапки или вовсе вы создали *.lua в корне vscripts то редактируем путь в коде:
Находим строчку: LinkLuaModifier("modifier_legion_Armor", "heroes/Passive/legion_Armor", LUA_MODIFIER_MOTION_NONE)
Меняем в кавычках путь: "heroes/Passive/legion_Armor" => "Ваш путь к LUA, без расширения *.lua"
P.S. Если вы оставили скрипт в корне VSCRIPTS => Путь будет: "Ваше название скрипта, без расширения *.lua"
P.s. содержание строки зависит от пассивки/модификатора, главное это путь к скрипту!
Берем из спойлера - Ру локаль, от абилки которая вам понравилась
3.1]Идем по пути: :\steam\steamapps\common\dota 2 beta\game\dota_addons\***\resource\ (* - диск, **** - ваша карта)
3.2] Открываем / создаем файлик: addon_russian.txt
3.3] Вставляем строки между:
"lang"
{
"Language" "russian"
"Tokens"
{
"addon_game_name" "Название вашей карты на ру"
Вот сюда уже строки
}
}
3.1]Идем по пути: :\steam\steamapps\common\dota 2 beta\game\dota_addons\***\resource\ (* - диск, **** - ваша карта)
3.2] Открываем / создаем файлик: addon_russian.txt
3.3] Вставляем строки между:
"lang"
{
"Language" "russian"
"Tokens"
{
"addon_game_name" "Название вашей карты на ру"
Вот сюда уже строки
}
}
Код:
"passive_Legion_Armor"
{
"BaseClass" "ability_lua"
"ScriptFile" "heroes/passive/legion_Armor"
"AbilityTextureName" "specal/armor"
"MaxLevel" "5"
"AbilityType" "DOTA_ABILITY_TYPE_BASIC"
"AbilityBehavior" "DOTA_ABILITY_BEHAVIOR_PASSIVE"
"AbilitySpecial"
{
"01"
{
"var_type" "FIELD_INTEGER"
"bonus_armor" "3 7 12 16 23"
}
"02"
{
"var_type" "FIELD_INTEGER"
"bonus_resist" "4 8 12 16 20"
}
}
}
Lua:
passive_Legion_Armor = class({})
LinkLuaModifier("modifier_passive_Legion_Armor", "heroes/passive/legion_Armor", LUA_MODIFIER_MOTION_NONE)
function passive_Legion_Armor:GetIntrinsicModifierName()
return "modifier_passive_Legion_Armor"
end
modifier_passive_Legion_Armor = class({})
function modifier_passive_Legion_Armor:IsHidden() return true end
function modifier_passive_Legion_Armor:IsDebuff() return false end
function modifier_passive_Legion_Armor:IsPurgable() return false end
function modifier_passive_Legion_Armor:GetAttributes() return MODIFIER_ATTRIBUTE_PERMANENT + MODIFIER_ATTRIBUTE_IGNORE_INVULNERABLE end
function modifier_passive_Legion_Armor:DeclareFunctions()
local funcs = {
MODIFIER_PROPERTY_PHYSICAL_ARMOR_BONUS,
MODIFIER_PROPERTY_STATUS_RESISTANCE_STACKING,
}
return funcs
end
function modifier_passive_Legion_Armor:GetModifierPhysicalArmorBonus()
return self:GetAbility():GetSpecialValueFor("bonus_armor")
end
function modifier_passive_Legion_Armor:GetModifierStatusResistanceStacking()
return self:GetAbility():GetSpecialValueFor("bonus_resist")
end
Код:
"DOTA_Tooltip_ability_Passive_Legion_Armor" "Броня легиона"
"DOTA_Tooltip_ability_Passive_Legion_Armor_Description" "Увеличивает броню на %bonus_armor% и сопротивление эффектам на %bonus_resist%%%."
"DOTA_Tooltip_ability_Passive_Legion_Armor_lore" "Дарует вам броню Легендарного легиона, прошло уже более 1000 лет, а их сталь все ещё крепче любого металла!"
Код:
"passive_honed_mastery_of_weapons"
{
"BaseClass" "ability_lua"
"ScriptFile" "heroes/passive/mastery_of_weapons"
"AbilityTextureName" "specal/war"
"MaxLevel" "5"
"AbilityType" "DOTA_ABILITY_TYPE_BASIC"
"AbilityBehavior" "DOTA_ABILITY_BEHAVIOR_PASSIVE"
"AbilitySpecial"
{
"01"
{
"var_type" "FIELD_INTEGER"
"bonus_dmg" "3 10 23 28 30"
}
}
}
Lua:
passive_honed_mastery_of_weapons = class({})
LinkLuaModifier("modifier_passive_honed_mastery_of_weapons", "heroes/passive/mastery_of_weapons", LUA_MODIFIER_MOTION_NONE)
function passive_honed_mastery_of_weapons:GetIntrinsicModifierName()
return "modifier_passive_honed_mastery_of_weapons"
end
modifier_passive_honed_mastery_of_weapons = class({})
function modifier_passive_honed_mastery_of_weapons:IsHidden() return true end
function modifier_passive_honed_mastery_of_weapons:IsDebuff() return false end
function modifier_passive_honed_mastery_of_weapons:IsPurgable() return false end
function modifier_passive_honed_mastery_of_weapons:GetAttributes() return MODIFIER_ATTRIBUTE_PERMANENT + MODIFIER_ATTRIBUTE_IGNORE_INVULNERABLE end
function modifier_passive_honed_mastery_of_weapons:DeclareFunctions()
local funcs = {
MODIFIER_PROPERTY_DAMAGEOUTGOING_PERCENTAGE
}
return funcs
end
function modifier_passive_honed_mastery_of_weapons:GetModifierDamageOutgoing_Percentage()
return self:GetAbility():GetSpecialValueFor("bonus_dmg")
end
function modifier_passive_honed_mastery_of_weapons:CheckState()
return {
[MODIFIER_STATE_CANNOT_MISS] = true,
}
end
Код:
"DOTA_Tooltip_ability_passive_honed_mastery_of_weapons" "Мастерство владения оружием"
"DOTA_Tooltip_ability_passive_honed_mastery_of_weapons_Description" "Дарует <font color='#B694FF'> <b>атаки без промахов</b> </font> и %bonus_dmg%%% дополнительного урона."
"DOTA_Tooltip_ability_passive_honed_mastery_of_weapons_lore" "Непрерывная тренировка оттачивает оружие воина в его собственное продолжение."
Код:
"passive_influx_of_life"
{
"BaseClass" "ability_lua"
"ScriptFile" "heroes/passive/influx_of_life"
"AbilityTextureName" "specal/heal"
"MaxLevel" "5"
"AbilityType" "DOTA_ABILITY_TYPE_BASIC"
"AbilityBehavior" "DOTA_ABILITY_BEHAVIOR_PASSIVE"
"AbilitySpecial"
{
"01"
{
"var_type" "FIELD_INTEGER"
"bonus_heal" "3 6 9 12 16"
}
"02"
{
"var_type" "FIELD_INTEGER"
"percent_heal" "1"
}
}
}
Lua:
passive_influx_of_life = class({})
LinkLuaModifier("modifier_passive_influx_of_life", "heroes/passive/influx_of_life", LUA_MODIFIER_MOTION_NONE)
function passive_influx_of_life:GetIntrinsicModifierName()
return "modifier_passive_influx_of_life"
end
modifier_passive_influx_of_life = class({})
function modifier_passive_influx_of_life:IsHidden() return true end
function modifier_passive_influx_of_life:IsDebuff() return false end
function modifier_passive_influx_of_life:IsPurgable() return false end
function modifier_passive_influx_of_life:GetAttributes() return MODIFIER_ATTRIBUTE_PERMANENT + MODIFIER_ATTRIBUTE_IGNORE_INVULNERABLE end
function modifier_passive_influx_of_life:OnCreated()
self:OnRefresh()
end
function modifier_passive_influx_of_life:OnRefresh()
self.bonus_heal = self:GetAbility():GetSpecialValueFor("bonus_heal")
self.percent_heal = self:GetAbility():GetSpecialValueFor("percent_heal")
end
function modifier_passive_influx_of_life:DeclareFunctions()
return {
MODIFIER_PROPERTY_HEAL_AMPLIFY_PERCENTAGE_SOURCE,
MODIFIER_PROPERTY_HP_REGEN_AMPLIFY_PERCENTAGE,
MODIFIER_PROPERTY_HEALTH_REGEN_PERCENTAGE
}
end
function modifier_passive_influx_of_life:GetModifierHealAmplify_PercentageSource()
return self.bonus_heal or 0
end
function modifier_passive_influx_of_life:GetModifierHPRegenAmplify_Percentage()
return self.bonus_heal or 0
end
function modifier_passive_influx_of_life:GetModifierHealthRegenPercentage()
return self.percent_heal or 0
end
Код:
"DOTA_Tooltip_ability_passive_influx_of_life" "Приток жизни"
"DOTA_Tooltip_ability_passive_influx_of_life_Description" "Увеличивает исходящее лечение и восстановление здоровья на %bonus_heal%%%."
"DOTA_Tooltip_ability_passive_influx_of_life_lore" "Годы медитаций позволили вам восстанавливаться гораздо быстрее чем обычный человек"
Код:
"passive_magical_exhaustion"
{
"BaseClass" "ability_lua"
"ScriptFile" "heroes/passive/magical_exhaustion"
"AbilityTextureName" "specal/mag_debaf"
"MaxLevel" "5"
"AbilityType" "DOTA_ABILITY_TYPE_BASIC"
"AbilityBehavior" "DOTA_ABILITY_BEHAVIOR_PASSIVE"
"AbilitySpecial"
{
"01"
{
"var_type" "FIELD_INTEGER"
"magic_resist" "8 14 17 22 25"
}
"02"
{
"var_type" "FIELD_INTEGER"
"status_resist" "8 14 17 22 25"
}
}
}
Lua:
passive_magical_exhaustion = class({})
LinkLuaModifier("modifier_passive_magical_exhaustion", "heroes/passive/magical_exhaustion", LUA_MODIFIER_MOTION_NONE)
LinkLuaModifier("modifier_passive_magical_exhaustion_aura", "heroes/passive/magical_exhaustion", LUA_MODIFIER_MOTION_NONE)
function passive_magical_exhaustion:GetIntrinsicModifierName()
return "modifier_passive_magical_exhaustion"
end
modifier_passive_magical_exhaustion = class({})
function modifier_passive_magical_exhaustion:IsHidden() return true end
function modifier_passive_magical_exhaustion:IsDebuff() return false end
function modifier_passive_magical_exhaustion:IsPurgable() return false end
function modifier_passive_magical_exhaustion:GetAttributes() return MODIFIER_ATTRIBUTE_PERMANENT + MODIFIER_ATTRIBUTE_IGNORE_INVULNERABLE end
function modifier_passive_magical_exhaustion:IsAura() return true end
function modifier_passive_magical_exhaustion:GetAuraRadius() return 1200 end
function modifier_passive_magical_exhaustion:GetAuraSearchTeam() return DOTA_UNIT_TARGET_TEAM_ENEMY end
function modifier_passive_magical_exhaustion:GetAuraSearchType() return DOTA_UNIT_TARGET_HERO + DOTA_UNIT_TARGET_BASIC end
function modifier_passive_magical_exhaustion:GetModifierAura() return "modifier_passive_magical_exhaustion_aura" end
modifier_passive_magical_exhaustion_aura = class({})
function modifier_passive_magical_exhaustion:IsDebuff() return false end
function modifier_passive_magical_exhaustion:IsPurgable() return false end
function modifier_passive_magical_exhaustion_aura:DeclareFunctions()
return {
MODIFIER_PROPERTY_MAGICAL_RESISTANCE_BONUS,
MODIFIER_PROPERTY_STATUS_RESISTANCE_STACKING
}
end
function modifier_passive_magical_exhaustion_aura:OnCreated()
local ability = self:GetAbility()
if (not ability) or ability:IsNull() then return end
self.magic_resist = (-1) * ability:GetSpecialValueFor("magic_resist")
self.status_resist = (-1) * ability:GetSpecialValueFor("status_resist")
end
function modifier_passive_magical_exhaustion_aura:GetModifierMagicalResistanceBonus()
return self.magic_resist or 0
end
function modifier_passive_magical_exhaustion_aura:GetModifierStatusResistanceStacking()
return self.status_resist or 0
end
function modifier_passive_magical_exhaustion_aura:GetEffectName()
return "particles/dev/library/base_item_attachment_magic.vpcf"
end
function modifier_passive_magical_exhaustion_aura:GetEffectAttachType()
return PATTACH_OVERHEAD_FOLLOW
end
function modifier_passive_magical_exhaustion_aura:ShouldUseOverheadOffset()
return false
end
Код:
"DOTA_Tooltip_ability_passive_magical_exhaustion" "Магическое подавление"
"DOTA_Tooltip_ability_passive_magical_exhaustion_Description" "Вы уменьшаете у ближайших врагов магическое сопротивление на %magic_resist%%% и сопротивление эффектам на %status_resist%%%."
"DOTA_Tooltip_ability_passive_magical_exhaustion_lore" "Отсутствие вашей души нервирует всех ближайших живых существ, снижая их естественную защиту от магии и странностей в целом."
"DOTA_Tooltip_modifier_passive_magical_exhaustion_aura" "Магическое подавление"
"DOTA_Tooltip_modifier_passive_magical_exhaustion_aura_Description" "Ваше магическое сопротивление и сопротивление эффектам снижено"
Код:
"passive_attack_speed"
{
"BaseClass" "ability_lua"
"ScriptFile" "heroes/passive/attack_speed"
"AbilityTextureName" "specal/add_speed_damage"
"MaxLevel" "1"
"AbilityType" "DOTA_ABILITY_TYPE_BASIC"
"AbilityBehavior" "DOTA_ABILITY_BEHAVIOR_PASSIVE"
"AbilitySpecial"
{
"01"
{
"var_type" "FIELD_INTEGER"
"bonus_attack_speed" "15"
}
}
}
Lua:
passive_attack_speed = class({})
LinkLuaModifier("modifier_passive_attack_speed", "heroes/passive/attack_speed", LUA_MODIFIER_MOTION_NONE)
function passive_attack_speed:GetIntrinsicModifierName()
return "modifier_passive_attack_speed"
end
modifier_passive_attack_speed = class({})
function modifier_passive_attack_speed:IsHidden() return true end
function modifier_passive_attack_speed:IsDebuff() return false end
function modifier_passive_attack_speed:IsPurgable() return false end
function modifier_passive_attack_speed:GetAttributes() return MODIFIER_ATTRIBUTE_PERMANENT + MODIFIER_ATTRIBUTE_IGNORE_INVULNERABLE end
function modifier_passive_attack_speed:DeclareFunctions()
local funcs = {
MODIFIER_PROPERTY_ATTACKSPEED_BONUS_CONSTANT,
}
return funcs
end
function modifier_passive_attack_speed:OnCreated()
self.multiplier = self:GetAbility():GetLevelSpecialValueFor("bonus_attack_speed", 1)
self.attack_speed_bonus = self:GetParent():GetAttackSpeed() * self.multiplier
self:StartIntervalThink(1)
end
function modifier_passive_attack_speed:OnIntervalThink()
self.attack_speed_bonus = (self:GetParent():GetAttackSpeed() - self.attack_speed_bonus * 0.01) * self.multiplier
end
function modifier_passive_attack_speed:GetModifierAttackSpeedBonus_Constant()
return self.attack_speed_bonus
end
Код:
"DOTA_Tooltip_ability_passive_attack_speed" "Ускорение атак"
"DOTA_Tooltip_ability_passive_attack_speed_Description" "Увеличивает скорость атаки на %bonus_attack_speed%%%."
"DOTA_Tooltip_ability_passive_attack_speed_lore" "Когда вы тренируетесь вы оттачиваете мастерство скорости, что позволило вам быстрее производить атаки"
Код:
"passive_fatal_wound"
{
"BaseClass" "ability_lua"
"ScriptFile" "heroes/passive/fatal_wound"
"AbilityTextureName" "specal/crit_hit"
"MaxLevel" "5"
"AbilityType" "DOTA_ABILITY_TYPE_BASIC"
"AbilityBehavior" "DOTA_ABILITY_BEHAVIOR_PASSIVE"
"AbilitySpecial"
{
"01"
{
"var_type" "FIELD_FLOAT"
"pct_health_threshold" "95.0"
}
"02"
{
"var_type" "FIELD_FLOAT"
"damage_multiplier" "100.0 200.0 300.0 400.0 500.0"
}
}
}
Lua:
passive_fatal_wound = class({})
LinkLuaModifier("modifier_passive_fatal_wound", "heroes/passive/fatal_wound", LUA_MODIFIER_MOTION_NONE)
function passive_fatal_wound:GetIntrinsicModifierName()
return "modifier_passive_fatal_wound"
end
modifier_passive_fatal_wound = class({})
function modifier_passive_fatal_wound:IsHidden() return true end
function modifier_passive_fatal_wound:IsDebuff() return false end
function modifier_passive_fatal_wound:IsPurgable() return false end
function modifier_passive_fatal_wound:GetAttributes() return MODIFIER_ATTRIBUTE_PERMANENT + MODIFIER_ATTRIBUTE_IGNORE_INVULNERABLE end
function modifier_passive_fatal_wound:GetMultiplier(victim)
local ability = self:GetAbility()
local damage_multiplier = 1
if (ability and victim:GetTeam() == ability:GetTeam()) then
return damage_multiplier
end
if ability and (not ability:IsNull()) and victim:GetHealthPercent() >= ability:GetSpecialValueFor("pct_health_threshold") then
damage_multiplier = 0.01 * ability:GetSpecialValueFor("damage_multiplier")
local blitz_pfx = ParticleManager:CreateParticle("particles/econ/items/void_spirit/void_spirit_immortal_2021/void_spirit_immortal_2021_astral_step_dmg_blood.vpcf", PATTACH_ABSORIGIN_FOLLOW, victim)
ParticleManager:SetParticleControl(blitz_pfx, 0, victim:GetAbsOrigin())
ParticleManager:ReleaseParticleIndex(blitz_pfx)
end
return damage_multiplier
end
function modifier_passive_fatal_wound:DeclareFunctions()
return {
MODIFIER_PROPERTY_TOTALDAMAGEOUTGOING_PERCENTAGE,
}
end
function modifier_passive_fatal_wound:GetModifierTotalDamageOutgoing_Percentage(params)
local multiplier = self:GetMultiplier(params.target)
if multiplier > 1 then
SendOverheadEventMessage(nil, OVERHEAD_ALERT_CRITICAL, params.target, params.original_damage * multiplier, nil)
end
return (multiplier - 1) * 100
end
Код:
"DOTA_Tooltip_ability_passive_fatal_wound" "Смертельный удар"
"DOTA_Tooltip_ability_passive_fatal_wound_Description" "Любой урон нанесённый врагам с высоким уровнем больше %pct_health_threshold%%% здоровья, является автоматическим %damage_multiplier%%% критом."
"DOTA_Tooltip_ability_passive_fatal_wound_lore" "Оттачивая своё мастерство вы уже наперед знаете и видите все слабые места противника"
Код:
"passive_armor_destroyer"
{
"BaseClass" "ability_lua"
"ScriptFile" "heroes/passive/armor_destroyer"
"AbilityTextureName" "specal/armorDebaf"
"MaxLevel" "5"
"AbilityType" "DOTA_ABILITY_TYPE_BASIC"
"AbilityBehavior" "DOTA_ABILITY_BEHAVIOR_PASSIVE"
"AbilitySpecial"
{
"01"
{
"var_type" "FIELD_FLOAT"
"armor_tear" "0.2 0.5 0.8 1.0 1.3"
}
}
}
Lua:
passive_armor_destroyer = class({})
LinkLuaModifier("modifier_passive_armor_destroyer", "heroes/passive/armor_destroyer", LUA_MODIFIER_MOTION_NONE)
LinkLuaModifier("modifier_passive_armor_destroyer_tear", "heroes/passive/armor_destroyer", LUA_MODIFIER_MOTION_NONE)
function passive_armor_destroyer:GetIntrinsicModifierName()
return "modifier_passive_armor_destroyer"
end
modifier_passive_armor_destroyer = class({})
function modifier_passive_armor_destroyer:IsHidden() return true end
function modifier_passive_armor_destroyer:IsDebuff() return false end
function modifier_passive_armor_destroyer:IsPurgable() return false end
function modifier_passive_armor_destroyer:GetAttributes() return MODIFIER_ATTRIBUTE_PERMANENT + MODIFIER_ATTRIBUTE_IGNORE_INVULNERABLE end
function modifier_passive_armor_destroyer:DeclareFunctions()
if IsServer() then return { MODIFIER_PROPERTY_PROCATTACK_FEEDBACK } end
end
function modifier_passive_armor_destroyer:OnCreated()
if IsClient() then return end
self:GetParent():SetRangedProjectileName("particles/items_fx/desolator_projectile.vpcf")
end
function modifier_passive_armor_destroyer:GetModifierProcAttack_Feedback(keys)
if keys.target:GetTeamNumber() == keys.attacker:GetTeamNumber() then return end
keys.target:EmitSound("Item_Desolator.Target")
local modifier_rend = keys.target:AddNewModifier(keys.attacker, self:GetAbility(), "modifier_passive_armor_destroyer_tear", {})
if modifier_rend and not modifier_rend:IsNull() then modifier_rend:IncrementStackCount() end
end
modifier_passive_armor_destroyer_tear = class({})
function modifier_passive_armor_destroyer_tear:IsHidden() return false end
function modifier_passive_armor_destroyer_tear:IsDebuff() return true end
function modifier_passive_armor_destroyer_tear:IsPurgable() return false end
function modifier_passive_armor_destroyer_tear:GetTexture() return "specal/armorDebaf" end
function modifier_passive_armor_destroyer_tear:DeclareFunctions()
return {
MODIFIER_PROPERTY_PHYSICAL_ARMOR_BONUS
}
end
function modifier_passive_armor_destroyer_tear:OnCreated()
self.armor_tear = (-1) * self:GetAbility():GetSpecialValueFor("armor_tear")
if IsClient() then return end
self.rend_pfx = ParticleManager:CreateParticle("particles/units/heroes/hero_monkey_king/monkey_king_jump_armor_debuff_model.vpcf", PATTACH_OVERHEAD_FOLLOW, self:GetParent())
ParticleManager:SetParticleControlEnt(self.rend_pfx, 0, self:GetParent(), PATTACH_OVERHEAD_FOLLOW, "follow_overhead", self:GetParent():GetAbsOrigin(), false)
ParticleManager:SetParticleControl(self.rend_pfx, 2, Vector(1,0,0))
end
function modifier_passive_armor_destroyer_tear:OnStackCountChanged()
if self.rend_pfx then
ParticleManager:SetParticleControl(self.rend_pfx, 2, Vector(self:GetStackCount(), 0, 0))
end
end
function modifier_passive_armor_destroyer_tear:OnDestroy()
if self.rend_pfx then
ParticleManager:DestroyParticle(self.rend_pfx, false)
ParticleManager:ReleaseParticleIndex(self.rend_pfx)
end
end
function modifier_passive_armor_destroyer_tear:GetModifierPhysicalArmorBonus()
return self.armor_tear * self:GetStackCount()
end
function modifier_passive_armor_destroyer_tear:OnRoundEndForTeam(keys)
self:OnPvpEndedForDuelists(keys)
end
function modifier_passive_armor_destroyer_tear:OnPvpEndedForDuelists(keys)
if IsClient() then return end
self:Destroy()
end
Код:
"DOTA_Tooltip_ability_passive_armor_destroyer" "Разрушитель брони"
"DOTA_Tooltip_ability_passive_armor_destroyer_Description" "Ваши атаки уменьшают броню врага на %armor_tear% до конца его жизни.<br><br>Складывается бесконечно."
"DOTA_Tooltip_ability_passive_armor_destroyer_lore" "Рвать и метать... До самого конца!"
"DOTA_Tooltip_modifier_passive_armor_destroyer_tear" "Броня сломана"
"DOTA_Tooltip_modifier_passive_armor_destroyer_tear_Description" "Ваша броня поломана, без шанса на восстановление"