Я написал код
Но тут баг, что кол-во стаков скачет на +-1, как сделать правильно? Может есть вариант лучше?
Код:
function wonder( keys )
local caster = keys.caster
local ability = keys.ability
local ability_level = ability:GetLevel() - 1
local mod_modifier = keys.mod_effect
local atr_modifier1 = keys.atr_modifier1
local atr_modifier2 = keys.atr_modifier2
local atr_modifier3 = keys.atr_modifier3
if not caster:FindModifierByName(atr_modifier1) then
ability:ApplyDataDrivenModifier(caster, caster, atr_modifier1, {})
end
if not caster:FindModifierByName(atr_modifier2) then
ability:ApplyDataDrivenModifier(caster, caster, atr_modifier2, {})
end
if not caster:FindModifierByName(atr_modifier3) then
ability:ApplyDataDrivenModifier(caster, caster, atr_modifier3, {})
end
local agility = caster:GetAgility() + caster:GetModifierStackCount(atr_modifier1, caster)
local strength = caster:GetStrength() + caster:GetModifierStackCount(atr_modifier2, caster)
local intellect = caster:GetIntellect() + caster:GetModifierStackCount(atr_modifier3, caster)
local percent = ability:GetLevelSpecialValueFor("attribute_percent", ability_level)
local attrib_contr_agi = math.ceil(agility * percent / 100)
local attrib_contr_str = math.ceil(strength * percent / 100)
local attrib_contr_int = math.ceil(intellect * percent / 100)
caster:SetModifierStackCount(atr_modifier1, caster, attrib_contr_str-1)
caster:SetModifierStackCount(atr_modifier2, caster, attrib_contr_agi-1)
caster:SetModifierStackCount(atr_modifier3, caster, attrib_contr_int-1)
end
Последнее редактирование модератором: