Модификатор

Novichek

Активный
18 Фев 2020
76
3
Проект
Evo Land
Пытаюсь выдать бонусы через модификатор за каждое убийство в игре. Все бонусы даются но вот со здоровьем проблема. Неделю уже борюсь.

if modifier_sf == nil then modifier_sf = class({}) end function modifier_sf:IsHidden() return false end function modifier_sf:GetTexture() return "modifier_sf" end function modifier_sf:DeclareFunctions() local funcs = { MODIFIER_PROPERTY_BASEATTACK_BONUSDAMAGE, MODIFIER_PROPERTY_MOVESPEED_BONUS_CONSTANT, MODIFIER_PROPERTY_IGNORE_MOVESPEED_LIMIT, MODIFIER_PROPERTY_PHYSICAL_ARMOR_BONUS, MODIFIER_PROPERTY_ATTACKSPEED_BONUS_CONSTANT, MODIFIER_EVENT_ON_DEATH, MODIFIER_PROPERTY_HEALTH_BONUS, MODIFIER_PROPERTY_MAGICAL_RESISTANCE_BONUS } return funcs end function modifier_sf:OnCreated() if IsServer() then local owner = self:GetParent() owner.sfStacks = owner.sfStacks or 1000 self:SetStackCount(owner.sfStacks) end end function modifier_sf:OnDeath(event) if IsServer() then local owner = self:GetParent() local victim = event.unit if victim:IsNeutralUnitType() or victim:IsCreep() or victim:IsAncient() then owner.sfStacks = (owner.sfStacks or 0) + 1 self:SetStackCount(owner.sfStacks) end end end function modifier_sf:GetModifierIgnoreMovespeedLimit() return 1 end function modifier_sf:GetModifierBaseAttack_BonusDamage() local stackCount = self:GetStackCount() local bonusDamagePerStack = 1 return stackCount * bonusDamagePerStack end function modifier_sf:GetModifierMoveSpeedBonus_Constant() local stackCount = self:GetStackCount() return stackCount * 1 end function modifier_sf:GetModifierPhysicalArmorBonus() local stackCount = self:GetStackCount() return stackCount * 0.1 end function modifier_sf:GetModifierMagicalResistanceBonus() local stackCount = self:GetStackCount() return stackCount * 0.1 end function modifier_sf:GetModifierAttackSpeedBonus_Constant() local stackCount = self:GetStackCount() return stackCount * 5 end function modifier_sf:GetModifierHealthBonus() local constantHealthBonus = self:GetStackCount() return constantHealthBonus * 10 end
 
Последнее редактирование:

vulkantsk

Супермодератор
Команда форума
21 Июн 2017
1,106
185
www.dotabuff.com
Проект
Roshan defense
Для некоторых атрибутов сила/ловкость/интеллект/ здоровье нужно обновить инфу о герое
hero:OnHeroCalculateStatBonus()
Добавь это после получения стаков
 

vulkantsk

Супермодератор
Команда форума
21 Июн 2017
1,106
185
www.dotabuff.com
Проект
Roshan defense
Для юнитов работает только MODIFIER_PROPERTY_EXTRA_HEALTH_BONUS
Ну а вообще, если хочешь изменить здоровье то SetMaxHealth + SetBaseMaxHealth
 
Реклама: