![]()
CAH9KoT
![]() offline
Опыт:
198Активность: |
boolexpr как с ними работать?
Кто знает, обьясните: как работать с boolexpr, как они работают и если можно приведите примеры. заранее благодарен. |
![]() |
#1
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
![]()
XOR
![]() offline
Опыт:
38,159Активность: |
это фильтры
|
![]() |
#2
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
![]()
agentex
![]() offline
Опыт:
34,834Активность: |
химикс ты зачем сижасс новичку суешь?
Вот пример на чистом джассе для начала:
чаще всего используются в груп пиках |
![]() |
#3
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
![]()
alexkill
![]() ![]() offline
Опыт:
18,872Активность: |
выписка из оглавления "Академии":
|
![]() |
#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. |
![]() |
#5
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
![]()
FellGuard
Losyash
![]() ![]() offline
Опыт:
39,547Активность: |
Использовать ForGroup незачем, можно всё делать сразу в фильтре. Если знаешь цДжасс, то используй лямбды (анонимная функция-фильтр), напишу пример на цинке
Код:
|
![]() |
#6
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
![]()
Arty3ooo
...
![]() offline
Опыт:
3,125Активность: |
Цитата:
Оо с какого раза? Всегда было так: Код:
ps: наконец увидел зинк в действии.. удобно с фильтрами работать.. прикрутить бы подобное к сджассу. |
|
![]() |
#7
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
![]()
DioD
![]() ![]() offline
Опыт:
45,134Активность: |
просто очень и очень многие люди глупые и ограниченные, слепо следуют таким же авторам статей.
удалять boolexpr ни в коем случае нельзя, это статичная функция, за исключением возврата
And() Or() Not() которые кстати вообще использовать нельзя так как они делают тоже самое что операторы языка. |
![]() |
#8
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
![]()
FellGuard
Losyash
![]() ![]() offline
Опыт:
39,547Активность: |
Цитата:
|
|
![]() |
#9
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
![]()
adic3x
![]() offline
Опыт:
108,439Активность: |
можно сразу писать в глобалках) сейчаспример дам)
ADOLF добавил:
никогда так не поступайте. дело в том что логические выражения не создают утечек, и уничтожив его вы уничтожите его полность, в результате чего другие переменные, ссылающееся на логическое выражение, образованное из той же функции соснут ADOLF добавил: ну диод все правильно сказал про логические выражения |
![]() |
#10
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|