XGM Forum
Сайт - Статьи - Проекты - Ресурсы - Блоги

Форуме в режиме ТОЛЬКО ЧТЕНИЕ. Вы можете задать вопросы в Q/A на сайте, либо создать свой проект или ресурс.
Вернуться   XGM Forum > Warcraft> Академия: форум для вопросов
Ник
Пароль
Войти через VK в один клик
Сайт использует только имя.

Ответ
 
Ark

offline
Опыт: 21,182
Активность:
Как узнать сколько юнитов находится в регионе?
Как узнать сколько юнитов находится в регионе?
p.s Варик не установлен, а вот есть идея...
Старый 13.01.2009, 02:02
Vampirrr
O_o
offline
Опыт: 19,286
Активность:
Ark, пикать юнитов в регионе, потом добавлять их в группу и после каждого добавленного юнита ставить переменную Х=Х+1, а потом ее выводить, ну или делать с ней что хочешь..По идее так, но не утверждаю, ибо счас редактор открывать впадло..
Старый 13.01.2009, 02:38
Ark

offline
Опыт: 21,182
Активность:
ok. Попробую! Спасибо!
Старый 13.01.2009, 02:39
Scorched

offline
Опыт: 7,912
Активность:
Ark, там есть что-то типа (integer) Отряд - Count units in group (Units in _region_)
Старый 13.01.2009, 13:26
Vampirrr
O_o
offline
Опыт: 19,286
Активность:
Scorched, true =)
Старый 13.01.2009, 15:38
alexkill

offline
Опыт: 19,222
Активность:
Цитата:
Сообщение от Ark
Как узнать сколько юнитов находится в регионе?
p.s Варик не установлен, а вот есть идея...


Ну можно без BJ и утечек.

Код:
globals
  integer c = 0
endglobals

function Enum takes nothing returns nothing
   set c = c + 1 // инкремент
endfunction

function Count takes nothing returns nothing
   local group g = CreateGroup()
   call GroupEnumUnitsInRect(g,bj_mapInitialPlayableArea,null) // выбор всех воинов в твоем регионе
   call ForGroup(g,function Enum)
   call BJDebugMsg(I2S(c)) // вывод количества
   set c = 0 // обнуление счетчика для дальнейшего использования
   call DestroyGroup(g)
   set g = null
endfunction
Старый 13.01.2009, 16:23
Vampirrr
O_o
offline
Опыт: 19,286
Активность:
alexkill, а зачем мучать моск, если можно сделать на ГУИ? O_o
Старый 13.01.2009, 22:38
SRes
1110101000
offline
Опыт: 9,997
Активность:
Ну на ГУИ поидее утечки.
Старый 13.01.2009, 23:04
vit
кааааррл
offline
Опыт: 3,586
Активность:
если пикать в группе то будут утечки, а Отряд - Count units in group (Units in region) без утечек
Старый 13.01.2009, 23:13
Vampirrr
O_o
offline
Опыт: 19,286
Активность:
ну дык кажется автор не против действия Count units in group (Units in region) ..
Старый 13.01.2009, 23:17
Dragon Knight
Меткий стрелок!!!
offline
Опыт: 4,138
Активность:
Цитата:
Ну на ГУИ поидее утечки.


Вообще то можно установить переменной bj_wantDestroyGroup, тру и проверяемая группа удалится

Dragon Knight добавил:
и утечек в счётчике нет
Старый 13.01.2009, 23:42
alexkill

offline
Опыт: 19,222
Активность:
Цитата:
Сообщение от Vampirrr
alexkill, а зачем мучать моск, если можно сделать на ГУИ? O_o

вот уж где мучение для мозга....

alexkill добавил:
Цитата:
Сообщение от Dragon Knight
и утечек в счётчике нет

группа

Отредактировано alexkill, 14.01.2009 в 13:06.
Старый 14.01.2009, 10:38
Van Damm
wait... what?
offline
Опыт: 19,568
Активность:
alexkill
Цитата:
можно установить переменной bj_wantDestroyGroup, тру и проверяемая группа удалится


Van Damm добавил:
» раскрыть
Код:
globals
  integer c = 0
  group g
endglobals

function Enum takes nothing returns nothing
   set c = c + 1
endfunction

function CountUnitsInRect takes rect r returns integer
   set c = 0
   call GroupClear(g)
   call GroupEnumUnitsInRect(g,r,Condition(function Enum))
   return c
endfunction

...
set g = CreateGroup() // при запуске карты
...
Старый 14.01.2009, 11:20
Линкольн
Barg Ent.
offline
Опыт: 4,812
Активность:
http://xgm.guru/forum/showthread.php?t=5183&highlight=FirstOfGroup
Почитай, может что полезное найдешь. WE'а на данный момент у меня нет. Тебе нужен первый код. Его нужно чуток переделать. Думаю, тут найдутся людт, которые помогут.
Старый 14.01.2009, 11:40
Van Damm
wait... what?
offline
Опыт: 19,568
Активность:
это уже устарело =) смотри мой вариант постом выше
Старый 14.01.2009, 12:01
alexkill

offline
Опыт: 19,222
Активность:
группу удалить не значит освободить память. если ты раскроешт эту бж, то увидишь.

и никаких левых переменных тут не надо.

VD, я вижу ты большой любитель глобалок.

alexkill добавил:
Линкольн 6 Эхо, это было при царе Иване Грозном. )
Старый 14.01.2009, 12:36
Линкольн
Barg Ent.
offline
Опыт: 4,812
Активность:
Цитата:
это было при царе Иване Грозном. )

А я и не спорю. Пологаю именно из-за этого кода его сын и "пропал".)
Старый 14.01.2009, 15:16
Van Damm
wait... what?
offline
Опыт: 19,568
Активность:
alexkill тогда чем не нравится мой вариант? там всего одна группа
Старый 14.01.2009, 18:21
Dragon Knight
Меткий стрелок!!!
offline
Опыт: 4,138
Активность:
alexkill я предложил встроенный вариант на гуи
Старый 14.01.2009, 18:37
Ответ

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы можете скачивать файлы

BB-коды Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход



Часовой пояс GMT +3, время: 04:12.