CAH9KoT
offline
Опыт:
198Активность: |
boolexpr как с ними работать?
Кто знает, обьясните: как работать с boolexpr, как они работают и если можно приведите примеры. заранее благодарен. |
11.02.2010, 07:33 | #1
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
XOR
offline
Опыт:
38,284Активность: |
это фильтры
|
11.02.2010, 10:08 | #2
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
agentex
offline
Опыт:
34,834Активность: |
химикс ты зачем сижасс новичку суешь?
Вот пример на чистом джассе для начала:
чаще всего используются в груп пиках |
11.02.2010, 11:10 | #3
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
alexkill
offline
Опыт:
19,072Активность: |
выписка из оглавления "Академии":
|
11.02.2010, 11:27 | #4
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
CAH9KoT
offline
Опыт:
198Активность: |
agentex:
Спс. Но сжасс и вжасс я знаю)
Мне нужно в группу добавить юнитов которые являются для игрока N врагами и которые не являются мертвыми как я понял это надо делать так: globals player xxxPlayer unit xxxUnit endglobals boolean xxxFilter(){ return (GetUnitState(GetFilterUnit(),UNIT_STATE_LIFE)>0) and (IsUnitEnemy(GetFilterUnit(),xxxPlayer)) } nothing xxxDamage(){
call UnitDamageTarget(xxxUnit,GetEnumUnit(),GetRandomReal(1,900),false,false,ATTACK_TYPE_CHAOS,DAMAGE_TYPE_POISON,WEAPON_TYPE_WHOKNOWS) } nothing SomeFunct(unit u){ local group g local boolexpr b = Filter(function xxxFilter) set xxxPlayer = GetOwningPlayer(u) set xxxUnit = u set g = CreateGroup() call GroupEnumUnitsInRange(g,0,0,400,b) call ForGroup(g,function xxxDamage) call DestroyBoolExpr(b) set b = null set xxxPlayer = null set xxxUnit = null } если гдето ошибка, сообщите Отредактировано CAH9KoT, 12.02.2010 в 07:34. |
12.02.2010, 06:35 | #5
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
FellGuard
Losyash
offline
Опыт:
39,547Активность: |
Использовать ForGroup незачем, можно всё делать сразу в фильтре. Если знаешь цДжасс, то используй лямбды (анонимная функция-фильтр), напишу пример на цинке
Код:
|
12.02.2010, 08:06 | #6
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
Arty3ooo
...
offline
Опыт:
3,125Активность: |
Цитата:
Оо с какого раза? Всегда было так: Код:
ps: наконец увидел зинк в действии.. удобно с фильтрами работать.. прикрутить бы подобное к сджассу. |
|
12.02.2010, 09:09 | #7
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
DioD
offline
Опыт:
45,134Активность: |
просто очень и очень многие люди глупые и ограниченные, слепо следуют таким же авторам статей.
удалять boolexpr ни в коем случае нельзя, это статичная функция, за исключением возврата
And() Or() Not() которые кстати вообще использовать нельзя так как они делают тоже самое что операторы языка. |
12.02.2010, 09:33 | #8
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
FellGuard
Losyash
offline
Опыт:
39,547Активность: |
Цитата:
|
|
12.02.2010, 10:14 | #9
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
adic3x
offline
Опыт:
108,439Активность: |
можно сразу писать в глобалках) сейчаспример дам)
ADOLF добавил:
никогда так не поступайте. дело в том что логические выражения не создают утечек, и уничтожив его вы уничтожите его полность, в результате чего другие переменные, ссылающееся на логическое выражение, образованное из той же функции соснут ADOLF добавил: ну диод все правильно сказал про логические выражения |
12.02.2010, 16:37 | #10
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|