CustomGames.ru - Dota 2 пользовательские игры

Как отследить событие изменения здоровья при получении урона?

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн Ninbous

  • 2
  • Мощь: 0
Создаю Абилку при опускании здоровья ниже 400 будет срабатывать бафф. (как ульта Абадона)
Как написать условие если здоровье меньше 400 то сделать действие?
B вообще можно ли использовать ифы в файле npc_abilities_custom.txt?
я так понимаю есть lua а есть datadriven разница в том что в datadriven нельзя писать ifы b другие методы?
Код
"sven_frenzy_ability"
{
    "BaseClass"             "ability_datadriven"
    "AbilityBehavior"       "DOTA_ABILITY_BEHAVIOR_PASSIVE"
    "Modifiers"
    {
        "sven_frenzy_modifier"
        {
            "Passive" "1"
            "OnTakeDamage"
            {
                 if(Текущее здоровье меньше 400) then действие    <<--- вот тут не знаю ключевых слов (доступ к здоровью)
            }
        }
    }

Оффлайн M@G

  • Продвинутый
  • 63
  • Мощь: 0
Создаю Абилку при опускании здоровья ниже 400 будет срабатывать бафф. (как ульта Абадона)
Как написать условие если здоровье меньше 400 то сделать действие?
B вообще можно ли использовать ифы в файле npc_abilities_custom.txt?
я так понимаю есть lua а есть datadriven разница в том что в datadriven нельзя писать ifы b другие методы?
"Datadriven" это kv-файл. Key-value. В нем может быть только дерево с парами ключ-значение. Любая кастомная логика прописывается в lua. Найди на гитхабе SpellLibrary, или если у тебя стоит D2ModKit, то в нем то же самое.
У абилки ты можешь прописать путь к тому самому луа-файлу, который будет выполняться и учитывать прописанные условия.

Оффлайн CryDeS

  • Друзья CG
  • 1194
  • Мощь: 11
Создаю Абилку при опускании здоровья ниже 400 будет срабатывать бафф. (как ульта Абадона)
Как написать условие если здоровье меньше 400 то сделать действие?
B вообще можно ли использовать ифы в файле npc_abilities_custom.txt?
я так понимаю есть lua а есть datadriven разница в том что в datadriven нельзя писать ifы b другие методы?
Как сказали выше, datadriven это лишь конфиг. Вызывай функцию из lua в которой проверяй caster:GetHealth()

Оффлайн Adam Smith

  • Друзья CG
  • 466
  • Мощь: 6
  • жрять жри его
If keys.caster:GetHealth < 400 then
 keys.ability:AddDataDrivenModifier()
else
return nil
End
By PG.Freeman

Оффлайн Ninbous

  • 2
  • Мощь: 0
У абилки ты можешь прописать путь к тому самому луа-файлу, который будет выполняться и учитывать прописанные условия.
Как?) И вообще где есть очень подробный гайд по созданию способностей и вообще скриптинга

Оффлайн CryDeS

  • Друзья CG
  • 1194
  • Мощь: 11
Как?) И вообще где есть очень подробный гайд по созданию способностей и вообще скриптинга
Есть такая штука как API.
https://developer.valvesoftware.com/wiki/Dota_2_Workshop_Tools