Множество триггеров на гуи невозможно реализовать без функции или, но она громоздкая и я слышал что на jass есть альтернативы ей. Хотелось бы узнать какие есть альтернативы, и какие преимущества. Ну и второй под вопрос это как влияет или на игру, возможно ли напихать их столько чтоб игра лагала?

Alexey103, я почему-то думал, что автор этой темы и есть Вы. Раз уж не так, то загляните туда, там автор задавал аналогичный вопрос.
`
ОЖИДАНИЕ РЕКЛАМЫ...

Показан только небольшой набор комментариев вокруг указанного. Перейти к актуальным.
26
когда выбираешь "или" в GUI, он создаёт отдельную функцию, ответом которой будет true/false
а внутри уже идёт перебор условий (а там могут быть ещё "и/или")
if a or b or c or d then
endif
21
По второму - да, влияет, да, возможно
Старайся строить конструкции так, чтобы ифов проверялось как можно меньше
Например, если у тебя что-то должно произойти так:
Событие: юнит кастует спелл
Условия:
у кастера есть абилка Черный Заклинатель
случайное число от 1 до 3 равняется 3
целью заклинания является враг
то НЕ правильно проверять все три условия глобально, тогда они будут проверяться и число рандомиться каждый раз, когда кто-то кастует спелл = больше нагрузки. Глобально ставим один ифзенэлс, разумнее всего, что у кастера есть абилка Черный Заклинатель, а уже если он = да, то в дальнейших действиях пишем остальные условия.
PS Но это все будет влиять, когда карта по навороченности как DotA или больше, в небольших картах ты никакой разницы не заметишь.
21
ClotPh, неправда.
if ( a ) and ( b ) and ( c)  then
если "а" будет false, то "b" и "с" не будут выполняться.
А если вместо "and" будет "or", то условия будут проверяться до тех пор, пока один не выдаст "true".
22
на гуях каждое условие на самом деле переводится в отдельный if-then-else:
превращается в
то есть первое же ложное условие - и остальные не проверяются, т.к. return завершает выполнение функции
Загруженные файлы
17
ну есть elseif в преимуществе эт типа такие контструкции
If(i>5&&i<7){
//
}elseif(i>7&&i<9){
//
}elseif(i>10&&i<12){
//
}и так сколько угодно это очень полезно когда один тригер ловит какст способности и проверяет какая абила использовалась,всего 1 триггер будет инициализирован
17
ledoed, Не представляю как на гуи разделить эти функции на два триггера, разве что через переменные или ручной запуск триггера.
biridius, А проще, мне можно делать полотна из сотен гуишных ифов? Наприме если установить процентный дроп каждого итема, 100 итемов, 100 ифов по 1% шанс дропа. Это опасно?
17
ну можно такие ифы использовать для конкретных условий где например:у юнита 2 дерево (на награду),у юнита 6 (убить)
22
Alexey103, вообще такую ерунду лучше делать через массивы или itempool'ы, тогда все данные по шансам сохраняешь в начале игры, а потом в нужный момент все делается в одно действие.
только она не совсем верная, weight это и есть шанс выпадения
21
biridius, А проще, мне можно делать полотна из сотен гуишных ифов? Наприме если установить процентный дроп каждого итема, 100 итемов, 100 ифов по 1% шанс дропа. Это опасно?
100 if'ов для war3 не много, а вот Вам это может надоесть, пока писать будете. Да и к тому же, это получится очень большой триггер, при открытии которого в редакторе триггеров, у Вас будет всё лагать и подвисать (если сделано на GUI).
Как выше уже сказали, лучше делать через массивы.
17
ScopteRectuS, Тоесть массивы альтернатива ифам? Это хорошо, посмотрю насчёт них. Ещё есть что?
Показан только небольшой набор комментариев вокруг указанного. Перейти к актуальным.
Чтобы оставить комментарий, пожалуйста, войдите на сайт.