Решено нет урона

Chaiok

Новичок
3 Май 2017
9
0
1
18
Реакции
0 0 0
#1
восполняет манну в зависимости от нанесенного урона с руки
KV:
"tessendris_inversion_datadriven"
  {
    "BaseClass"                 "ability_datadriven"
    "AbilityBehavior"           "DOTA_ABILITY_BEHAVIOR_PASSIVE"
    "SpellImmunityType"     "SPELL_IMMUNITY_ENEMIES_YES"
    "AbilityTextureName"        "obsidian_destroyer_essence_aura"

    "AbilitySpecial"
    {
        "01"
        {
            "var_type"          "FIELD_INTEGER"
            "inversion_value"             "10 20 30 40"
        }
        "02"
        {
            "var_type"          "FIELD_INTEGER"
            "attack_damage"         "100"
        }
    }

    "Modifiers"
    {
        "modifier_inversion_datadriven"
        {
            "Passive"           "1"
            "IsHidden"          "1"
            "IsDebuff"          "0"
     
            "OnAttackLanded"
            // "%attack_damage" is set to the damage value before mitigation
            {
                "RunScript"
                {
                    "ScriptFile"    "heroes/hero_tessendris/tessendris_inversion.lua"
                    "Function"      "InversionApply"
                }
            }
        }
        "modifier_inversion"
        {
            "IsHidden"          "1"
            "OnDealDamage"
            // "%attack_damage" is set to the damage value after mitigation
            {
                "RunScript"
                {
                    "ScriptFile"    "heroes/hero_tessendris/tessendris_inversion.lua"
                    "Function"      "Inversion"
                    "Damage"        "%attack_damage"
                }
            }
        }
    }

  }
Lua:
function InversionApply( key )
    -- Variables
    local attacker = key.attacker
    local target = key.target
    local ability = key.ability

    if target.GetInvulnCount == nil and not target:IsBuilding() then
        ability:ApplyDataDrivenModifier(attacker, attacker, "modifier_inversion", {})
    end
end




function Inversion( key )
    local attacker = key.attacker
    local target = key.target
    local ability = key.ability
    local post_damage = key.Damage
local modifier = "modifier_inversion"

    ability.inversion_value = ability:GetLevelSpecialValueFor("inversion_value", ability:GetLevel() - 1)

    local new_mana = post_damage * ability.inversion_value / 100
    local now_mana = attacker:GetMana() + new_mana

    if now_mana > attacker:GetMaxMana() then
        attacker:SetMana(attacker:GetMaxMana())
    else
        attacker:SetMana(now_mana)
    end
    attacker:RemoveModifierByName(modifier)

end
нет урона;c решено
также пополняет манну за урон от способностей и предметов;c
надо ток от автоатак
:(
 
Последнее редактирование:

Chaiok

Новичок
3 Май 2017
9
0
1
18
Реакции
0 0 0
#3
ШОК просто спасибо
исправил затем в консоли вылезли еще ошибки все благополучно устранил(все изменения(код) внес в шапку темы) пасивное умение работает но есть одно но
манна восполняется также от урона способностей и предметов а мне надо ток от автоатак
попытался исправить добавив удаление модификатора в самом конце но не помогло
я хотябы в правильном направление двигаюсь?
 
Реклама:
Реклама: