Короче можно ли все спелы использовать в одной функции как в доте и надеется на то что вар не будет лагать?
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 году
добавил подключаемую библиотеку и небольшую инструкцию

Показан только небольшой набор комментариев вокруг указанного. Перейти к актуальным.
1
32
7 лет назад
1
Nikolay36:
quq_CCCP, давайте вашу карту посмотрю может разберусь...
Брошу в лс.
Steal nerves, в кондишине проверяешь что по этому адресу есть код, в акшене делаешь екзекут.
Ну все просто, у тебя примитивная база данных где каждому ро коду спелла соответствует своя функция, при касте срабатывает триггер и вызывает функцию. Нужны проверки в кондишине чтобы триггер не срабатывал на даммиков, крипов да и вовсе юнитов у которых нет триггерных способностей.
0
27
7 лет назад
0
quq_CCCP, ну понятно. а если использовать ExecuteFunc(), то варкрафтовские переменные в вызываемой функции не затеряются? проверить лень
0
32
7 лет назад
0
Все работает исправно, экзекут как и фор.груп (и некоторые болекспры) наследуют параметры потока, в котором их запустили, т.е GetTriggerUnit() или GetExpiredTimer() будут работать исправно.
0
28
7 лет назад
0
выложил ещё в 2013 году
добавил подключаемую библиотеку и небольшую инструкцию
Принятый ответ
2
17
7 лет назад
Отредактирован GetLocalPlayer
2
  1. Можно, но ничего не даст.
  2. Популярность доты не делает ее эталоном качества. Кто ковырял знает - дота еще то говно.
  3. Если хочешь краткости и используешь cJass, можешь применять конструкцию:
callback onUnitSpellEffect('A000')
{
	// ...
}
11
30
7 лет назад
11
Кто ковырял знает - дота еще то говно.
Наглядная демонстрация принципа "работает - не трогай".
0
32
7 лет назад
0
Clamp, про доту очень много мифов, в доте часть кода переписывали умные дяденьки, вроде векса (ну не мог фрог такое осилить, да и подчерк явно не его), которые и фиксили самое основное, по мере того как фрог плодил новые костыли и баги, в последсвии фрогу никто нистал помогать и он забросил доту, побежал к валвам.
0
2
7 лет назад
0
quq_CCCP, кинь карту в лс
0
28
7 лет назад
0
Nikolay36, тебе кинули 2 ссылки уже
там и карта с примером есть
Показан только небольшой набор комментариев вокруг указанного. Перейти к актуальным.
Чтобы оставить комментарий, пожалуйста, войдите на сайт.