![]()
agentex
![]() offline
Опыт:
34,534Активность: |
Тип boolexpr
Как задать значение локальной переменной типа boolexpr непосредственно из функции? (т.е. не создавая доп. функций). Ответьте примерами, если можно |
![]() |
#1
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
![]()
__Dark Lord__
![]() ![]() offline
Опыт:
5,262Активность: |
Boolexpr вроде булева переменная. Set Var = true/false |
![]() |
#2
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
![]()
agentex
![]() offline
Опыт:
34,534Активность: |
ващет она не логическая совсем... это вообще отдельный тип |
![]() |
#3
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
![]()
agentex
![]() offline
Опыт:
34,534Активность: |
всмысле что это? я же сказал что это разные типы переменных вот комменты из JassCraft: type boolexpr extends handle (это описание типа boolexpr) Wc3 Hardcoded Native (это описание типа boolean) а при попытке boolexpr присвоить значение true(local boolexpr b = true) выдает: Cannot convert boolean to boolexpr (кто бы сомневался) |
![]() |
#4
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
![]()
__Dark Lord__
![]() ![]() offline
Опыт:
5,262Активность: |
Мне не понятно какой тип данных он хранит. Не надо писать что хэндл. Тип юнит хранит хэндл юнита. Тип boolexpr тоже хэндл, но другой. |
![]() |
#5
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
![]()
ShadoW DaemoN
![]() ![]() offline
Опыт:
37,078Активность: |
agentex, если я правильно тебя понял...
Код:
Функция, указываемая для буль-выражения, обязательно должна возвращать boolean. Отредактировано ShadoW DaemoN, 29.07.2008 в 19:35. |
![]() |
#6
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
![]()
__Dark Lord__
![]() ![]() offline
Опыт:
5,262Активность: |
function test вернет true Condition (true) должно вернуть true Вот что получается. bx = true Т.е либо ты не правильно привел пример. Либо я че-то не понял. Или же в bx записывается само Condition. Т.к как в примере ты приравниваешь boolexpr значение с bool значением. |
![]() |
#7
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
![]()
agentex
![]() offline
Опыт:
34,534Активность: |
вот мне нужно както обойтись без функции test, в том то и дело... ну ладно, значит нельзя осуществить это, а жаль |
![]() |
#8
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
![]()
ShadoW DaemoN
![]() ![]() offline
Опыт:
37,078Активность: |
__Dark Lord__, рекомендую "думать окуратно прежде чем писать" (c) DioD
Смотри: Код:
conditionfunc - расширение типа boolexpr. Следовательно, мой пример построен верно. agentex, а, собственно, в чем суть проблемы? Что примерно нужно реализовать? |
![]() |
#9
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
![]()
agentex
![]() offline
Опыт:
34,534Активность: |
ну четкой цели у меня нету, просто хотелось бы вместо 2 функций обойтись 1, т.к. я предпочитаю чтобы все было вместе... з.ы. речь идет об ф-ии GroupEnumUnitsInRangeOfLoc() где последний аргумент - boolexpr. |
![]() |
#10
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
![]()
Лось
![]() offline
Опыт:
7,223Активность: |
Ну поставь там null, потом проверяй каждого юнита по отдельности.. |
![]() |
#11
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
![]()
ShadoW DaemoN
![]() ![]() offline
Опыт:
37,078Активность: |
agentex, если все вместе - это не значит, что это все оптимально. Я примерно представил, как ты хочешь сделать:
Код:
Вроде все замечательно, все работает, но это медленно и малоэффективно. Наоборот, гораздо лучше будет использовать здесь буль-выражение (лучше его создавать глобальной переменной, чтобы немного сэкономить). Код:
Что мы здесь видим? Пример так называемого "имба-цикла". Буль-выражение задается 1 раз при инициализации триггера, что позволяет не тормошить каждый раз Condition (это занимает время). С группой то же самое. К тому же такой GroupEnum... выполняется быстрее, чем ForGroup, и уж тем более быстрее "два-в-одном" (см. первый код). Вывод: имеет смысл использовать "имба-цикл" ^^ |
![]() |
#12
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
![]()
agentex
![]() offline
Опыт:
34,534Активность: |
спс за разъяснение, буду юзать "имба-цикл" №1 =) хм и почему это он малоэффективен? |
![]() |
#13
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
![]()
__Dark Lord__
![]() ![]() offline
Опыт:
5,262Активность: |
ShadoW DaemoN, вам "думать окуратно прежде чем писать" (c) DioD
Ибо я просто спросил. И просто не посмотрел возвращаемые параметры функци Condition. |
![]() |
#14
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|