Как поймать обновление статов (аттрибутов) героя

SweetBaget2

Новичок
3 Июл 2023
6
3
Проект
ULTRA RANDOM DOTA
1731274922412.png
Изначально ищу как поменять скейл базового резиста к магии от интеллекта
Попробовал напрямую через изменение параметра DOTA_ATTRIBUTE_INTELLIGENCE_MAGIC_RESIST, но оно просто не работает (а изменение армора от агилы работает (***и))
В итоге пришел к тому, чтобы через ивенты ловить изменение аттрибутов, но хоть убей не могу найти какой-нибудь ивент или вызов, который бы можно было бы подтянуть. Пока-что остановился на том, чтобы ловить открытие панели статов (при наведении на иконку), изменение инвентаря и когда персонажа надамажат

Мне кажется это неоптимизированным вариантом, а потому прошу от вас: либо ивент на изменение статов, либо способ менять базовый резист к магии
Заранее спасибо
 
При спавне героя накидывай ему модифает "modifier_magic_resist_fix"

Код:
modifier_magic_resist_fix = class({
    IsHidden                = function(self) return true end,
    IsPurgable              = function(self) return false end,
    IsPurgeException        = function(self) return false end,
    IsDebuff                = function(self) return false end,
    RemoveOnDeath           = function(self) return false end,
    AllowIllusionDuplicate  = function(self) return true end,
    DeclareFunctions        = function(self)
        return {
            MODIFIER_PROPERTY_MAGICAL_RESISTANCE_DIRECT_MODIFICATION
        }
    end,
})

function modifier_magic_resist_fix:GetModifierMagicalResistanceDirectModification()
    return self:GetParent():GetIntellect(false) * -0.1
end
При этом данный модифаер должен быть подключен через LinkLuaModifier в 2х местах:
  • addon_game_mode.lua (сервер)
  • addon_init.lua (клиент)
 
Реклама: