Урон от скилла

EnDronist

Продвинутый
28 Апр 2016
231
0
Проект
Защитники Изобилия | Defenders of Abundance
В моём случая я пытаюсь сделать новый даггер Мортры, который наносит урон в процентах от урона самого героя. Что в lua нужно прописать, чтоб было "переменная" = caster:"взять его урон" ?
img
 
Последнее редактирование модератором:
[quote author=EnDronist link=topic=882.msg4172#msg4172 date=1462702291]
В моём случая я пытаюсь сделать новый даггер Мортры, который наносит урон в процентах от урона самого героя. Что в lua нужно прописать, чтоб было "переменная" = caster:"взять его урон" ?
img

[/quote]
Вот что используется для дагера морты
https://developer.valvesoftware.com/wiki/Dota_2_Workshop_Tools/Scripting/API/CDOTA_BaseNPC.PerformAttack
Но если тебе уж очень хочется то
GetAttackDamage()
 
Последнее редактирование модератором:
CryDeS, Почему не может найти урон скилла?
Код:
[ W VScript       ]: Script Runtime Error: ...vscripts\heroes\phantom_assassin_stifling_dagger_ult.lua:17: attempt to perform arithmetic on local 'ability_damage' (a nil value)
Код:
  //Damage
  "AbilityDamage"        "100 150 200 250"
Код:
function phantom_assassin_stifling_dagger_ult_damage(keys)
  local caster = keys.caster
  local attacker = keys.attacker
  local target = keys.target
  local ability = keys.ability
  local attack_factor_tooltip = ability:GetLevelSpecialValueFor("attack_factor_tooltip", (ability:GetLevel() - 1))
  local hero_damage = caster:GetAttackDamage()
  local hero_damage_done = attack_factor_tooltip * hero_damage / 100
  local ability_damage = ability.damage
  local damage_table = {}
   damage_table.attacker = caster
   damage_table.victim = target
   damage_table.ability = ability
   damage_table.damage_type = ability:GetAbilityDamageType()
   damage_table.damage = ability_damage + hero_damage_done
   
  ApplyDamage(damage_table)
end
 
Последнее редактирование модератором:
[quote author=EnDronist link=topic=882.msg4178#msg4178 date=1462704332]
CryDeS, Почему не может найти урон скилла?
Код:
[ W VScript       ]: Script Runtime Error: ...vscripts\heroes\phantom_assassin_stifling_dagger_ult.lua:17: attempt to perform arithmetic on local 'ability_damage' (a nil value)
Код:
  //Damage
  "AbilityDamage"        "100 150 200 250"
Код:
function phantom_assassin_stifling_dagger_ult_damage(keys)
  local caster = keys.caster
  local attacker = keys.attacker
  local target = keys.target
  local ability = keys.ability
  local attack_factor_tooltip = ability:GetLevelSpecialValueFor("attack_factor_tooltip", (ability:GetLevel() - 1))
  local hero_damage = caster:GetAttackDamage()
  local hero_damage_done = attack_factor_tooltip * hero_damage / 100
  local ability_damage = ability.damage
  local damage_table = {}
   damage_table.attacker = caster
   damage_table.victim = target
   damage_table.ability = ability
   damage_table.damage_type = ability:GetAbilityDamageType()
   damage_table.damage = ability_damage + hero_damage_done
   
  ApplyDamage(damage_table)
end
[/quote]

Боже, да перед тем как что то делать, зайдите в API!!!!
https://developer.valvesoftware.com/wiki/Dota_2_Workshop_Tools/Scripting/API

int GetAbilityDamage()
 
Последнее редактирование модератором:
Парень, а ты делаешь успехи - стал правильно вопросы задавать и весь код скидывать. Молодец, хвалю за это)
 
Илья, Даже не пытался, но спасибо (Если не сарказм)
 
[quote author=EnDronist link=topic=882.msg4197#msg4197 date=1462712611]
Илья, Даже не пытался, но спасибо (Если не сарказм)
[/quote]

Не, не сарказм. Тут ты хорошо вопросы задал.
 
Реклама: