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

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

Закрытая тема
 
destr

offline
Опыт: 1,758
Активность:
Отлов хендлов юнитов
Суть проблемы: нужно отловить всех юнитов на карте с определенным ID и сохранить их хендлы, для дальнейшего использования. Я так понял это делается через ForGroup, но что-то у меня ничего не вышло+боюсь вагон утечек притянуть с группами. Кто сможет помочь с функцией, желательно на jass.
Старый 26.09.2013, 22:29
Nerevar
I'll be back!
offline
Опыт: 18,352
Активность:
ну создаешь группу,в неё берешь всех юнитов в игровой зоне,проходишься форгруппом
в функции форгруппа проверяешь и делаешь нужные действия
if GetHandleId(GetFilterUnit())==Tvoi_Id then
call Tralala(...)
endif
потом чистишь и удаляешь группу
Старый 26.09.2013, 22:47
Hanabishi
COOL STATUS
offline
Опыт: отключен
Nerevar, лучше отсеять юнитов фильтром при добавлении, чем толкать условие в форгруп, реально быстрее
Hanabishi добавил:
Вот так
globals
    integer array handles
    integer count
    group tempGroup = CreateGroup()
    integer tempId
endglobals

function GHFilt takes nothing returns boolean
    if(GetUnitTypeId(GetFilterUnit())==tempId)then
        set count = count + 1
        set handles[count] = GetHandleId(GetFilterUnit())
    endif
    return false
endfunction

function GetHandlesOf takes integer id returns nothing
    set count = 0
    set tempId = id
    call GroupEnumUnitsInRect(tempGroup, bj_mapInitialPlayableArea, Filter(function GHFilt))
endfunction
В функцию GetHandlesOf подаётся нужный id, а она записывает хендлы юнитов в массив handles и их количество в count.
Старый 26.09.2013, 23:09
DioD

offline
Опыт: 45,134
Активность:
сразу вопрос а собственно зачем массив когда с темже успехом можно их просто закатать в группу
Старый 27.09.2013, 07:00
destr

offline
Опыт: 1,758
Активность:
Hanabishi спс за помощь. Теперь система почти готова осталось немного оптимизировать код и доделать 1 фичу и можно выложить на всеобщий суд
Старый 27.09.2013, 19:14
Закрытая тема

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

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

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

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



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