Короче можно ли все спелы использовать в одной функции как в доте и надеется на то что вар не будет лагать?
boolean Spells(){
if GetSpellAbilityId()=='A000' { Spell№1() }
elseif GetSpellAbilityId()=='A001' { Spell№2() }
elseif GetSpellAbilityId()=='A002' { Spell№3() }
elseif GetSpellAbilityId()=='A003' { Spell№4() }
elseif GetSpellAbilityId()=='A004' { Spell№5() }
/*ну && до 500 спелов примерно, не будет ли это нагрузкой? или для каждого спела делать отдельные триггеры которые нагружают варкрафт не заметными .00001 секундами?*/
return false
}
nothing InitTrig_Spells(){
trigger t=CreateTrigger()
TriggerRegister(t,EVENT_PLAYER_UNIT_SPELL_EFFECT)
TriggerAddCondition(t,Condition(function Spells))
t=null
}

выложил ещё в 2013 году
добавил подключаемую библиотеку и небольшую инструкцию
`
ОЖИДАНИЕ РЕКЛАМЫ...

Показан только небольшой набор комментариев вокруг указанного. Перейти к актуальным.
32
С чего в доте? Там как раз 100500 разных функций и триггеров.
Делается это с помощью хештаблицы и екзекута или ретурн бага на code, не сказать чтобы быстрее но как по мне удобнее.
Могу предоставить свою карту (если вы разберётесь).
2
quq_CCCP, давайте вашу карту посмотрю может разберусь...
16
if-then-else быстрый, конечно, но не на 500 ветках. хотя тоже не сломается, и даже не затормозит, просто это выглядит ужасно и неудобно. ExecuteFunc() + сохранение функции, связанной со спеллом, в хештаблицу по ID (SaveStr(HT,'A000','effc',"A000_Effect")
27
тоже задумывался сделать, как у тебя.
xgm.guru/p/wc3/narayan-spellcast была подобная тема, но в этой теме комментаторы намекнули использовать вместо строк хэш-таблицу. Так понял я, это то, что лучше не перебирать все if-фы, а сразу по ключу найти
32
Nikolay36:
quq_CCCP, давайте вашу карту посмотрю может разберусь...
Брошу в лс.
Steal nerves, в кондишине проверяешь что по этому адресу есть код, в акшене делаешь екзекут.
Ну все просто, у тебя примитивная база данных где каждому ро коду спелла соответствует своя функция, при касте срабатывает триггер и вызывает функцию. Нужны проверки в кондишине чтобы триггер не срабатывал на даммиков, крипов да и вовсе юнитов у которых нет триггерных способностей.
Показан только небольшой набор комментариев вокруг указанного. Перейти к актуальным.
Чтобы оставить комментарий, пожалуйста, войдите на сайт.