Правильно ли будет написать такой код для карты с кучей заклинаниями, чтобы все обрабатывал 1 триггер? Есть ли что-то плохое в этом?
function Actions takes nothing returns nothing
local integer abilid = GetSpellAbilityId()
if (abilid == 'A006') then
call DoSomething()
elseif (abilid == 'A001')
call DoSomething()
elseif (abilid == 'A002')
call DoSomething()
elseif (abilid == 'A003')
call DoSomething()
elseif (abilid == 'A004')
call DoSomething()
elseif (abilid == 'A005')
call DoSomething()
endif
endfunction
function Init takes nothing returns nothing
local trigger trg = CreateTrigger()
call TriggerRegisterPlayerUnitEvent(trg, Player(0), EVENT_PLAYER_UNIT_SPELL_EFFECT, null)
call TriggerAddAction(trg, function Actions)
set trg = null
endfunction
Принятый ответ
То что ты сделал не быстрее, но вот писать так очень неудобно, лучше сделать как привели пример во втором посту, ибо так довольно удобно.
У меня вовсе 1 триггер на все спеллы, просто добавляю имя нужной функции в бд + ро код спелла и радуюсь, не надо какждый раз писать делать триггер, писать события и условия, когда просто сделал функцию где описал все что нужно от спелла и занес её в бд, просто и удобно.
Работать это дело будет в любом случаи, хоть по 1 триггерну на каждый спелл, хоть ветвление как у тебя, хоть экзекуты.
У меня вовсе 1 триггер на все спеллы, просто добавляю имя нужной функции в бд + ро код спелла и радуюсь, не надо какждый раз писать делать триггер, писать события и условия, когда просто сделал функцию где описал все что нужно от спелла и занес её в бд, просто и удобно.
Работать это дело будет в любом случаи, хоть по 1 триггерну на каждый спелл, хоть ветвление как у тебя, хоть экзекуты.
Чтобы оставить комментарий, пожалуйста, войдите на сайт.
Отредактирован MpW
Единственное, что неудобно искать. Когда функции дохера в один файлик вложено.
Недавно была тема на этот вопрос xgm.guru/p/wc3/190367
У меня вовсе 1 триггер на все спеллы, просто добавляю имя нужной функции в бд + ро код спелла и радуюсь, не надо какждый раз писать делать триггер, писать события и условия, когда просто сделал функцию где описал все что нужно от спелла и занес её в бд, просто и удобно.
Работать это дело будет в любом случаи, хоть по 1 триггерну на каждый спелл, хоть ветвление как у тебя, хоть экзекуты.
мало того что неудобно так ещё при касте спела находящегося в 20 elseif выигрыш скорости теряется
лучше юзать бд
и хоть всё обрабатывается в 1 триггере массивные заклинания(более 30 строк кода) лучше хранить в разных файлах