Модифаер не работает

  • Автор темы Автор темы GWS
  • Дата начала Дата начала
  • Официальное уведомление администрации CustomGames.RU
    В связи с масштабным техническим сбоем в инфраструктуре прежнего хостинг-провайдера (Beget), работа форума CustomGames.RU была оперативно перенесена на новую серверную площадку и развёрнута из резервной копии базы данных.

    • Безопасность данных: учётные записи и данные пользователей находятся в полной безопасности. Все пароли и защищаемые параметры хранятся исключительно в криптографически зашифрованном (хэшированном) виде — никаких критических инцидентов для аккаунтов пользователей не произошло.
    • Временные технические ограничения: на этапе синхронизации файлового хранилища часть статических материалов (пользовательские аватары и архивные вложения) временно недоступна. По мере получения доступа к файловым архивам все материалы будут восстановлены в полном объёме.

GWS

Новичок
12 Сен 2018
7
0
Итак, имеется переключаемый скил, который при включении распределяет урон от героя к его подконтрольным существам. kv скилл:

"warlock_transfer_damage"
{
"BaseClass" "ability_datadriven"
"AbilityTextureName" "warlock_transfer_damage"
"MaxLevel" "4"
"AbilityBehavior" "DOTA_ABILITY_BEHAVIOR_TOGGLE"
"AbilityCooldown" "3"
"AbilityCastPoint" "0.1"
"AbilityCastAnimation" "ACT_DOTA_CAST_ABILITY_3"

"AbilitySpecial"
{
"01"
{
"var_type" "FIELD_INTEGER"
"radius" "900 1100 1200"
}
"02"
{
"var_type" "FIELD_INTEGER"
"transfered_damage_pct" "40 50 60"
}
}

"OnToggleOn"
{
"ApplyModifier"
{
"ModifierName" "modifier_warlock_transfer_damage"
"Target" "CASTER"
}
}

"OnToggleOff"
{
"RemoveModifier"
{
"ModifierName" "modifier_warlock_transfer_damage"
"Target" "CASTER"
}
}

"Modifiers"
{
"modifier_warlock_transfer_damage"
{
"IsPurgable" "0"
}
}

}
Код луа:
modifier_warlock_transfer_damage = {
multiplier = function(attacker, victim, inflictor, damage)
local modifier_warlock_transfer_damage = victim:FindAbilityByName("warlock_transfer_damage")
if warlock_transfer_damage and victim:IsAlive() then
local transfered_damage_pct = warlock_transfer_damage:GetAbilitySpecial("transfered_damage_pct")
local radius = warlock_transfer_damage:GetAbilitySpecial("radius")
local dealt_damage = damage * transfered_damage_pct * 0.01
local summonTable = victim.custom_summoned_unit_ability_warlock_summon

if summonTable and IsValidEntity(summonTable[1]) and summonTable[1]:IsAlive() and (summonTable[1]:GetAbsOrigin() - victim:GetAbsOrigin()):Length2D() <= radius then
ApplyDamage({
attacker = attacker,
victim = summonTable[1],
ability = warlock_transfer_damage,
damage = dealt_damage,
damage_type = DAMAGE_TYPE_PURE
})
return 1 - transfered_damage_pct * 0.01
end
end
end
},


Проблема в том, что модифаер накидывается, но вот абилка не выполняет свою функцию, она не работает. Пробовал выносить код в гейммод, но всё равно не работает. В чём может быть проблема?
 
Последнее редактирование:
Це якась хуйня. Странная смесь datadriven и луа(?) модификаторов.
 
Реклама: