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

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

Ответ
 
MupaMaX
Мой статус
offline
Опыт: 1,495
Активность:
CountUnitsInGroup - что делать ?
В общем, что-то я мудрю не то...
Код:
function CountUnitsInGroup takes group g returns integer
    // If the user wants the group destroyed, remember that fact and clear
    // the flag, in case it is used again in the callback.
    local boolean wantDestroy = bj_wantDestroyGroup
    set bj_wantDestroyGroup = false

    set bj_groupCountUnits = 0
    call ForGroup(g, function CountUnitsInGroupEnum)

    // If the user wants the group destroyed, do so now.
    if (wantDestroy) then
        call DestroyGroup(g)
    endif
    return bj_groupCountUnits
endfunction

function CountUnitsInGroupEnum takes nothing returns nothing
    set bj_groupCountUnits = bj_groupCountUnits + 1
endfunction


Вызывает ли эта функция утечки ?

p.s. подобной темы не нашел..
Старый 10.06.2009, 21:53
SRes
1110101000
offline
Опыт: 9,997
Активность:
Нет.
boolean - это же не наследник handle?
Старый 10.06.2009, 21:57
MupaMaX
Мой статус
offline
Опыт: 1,495
Активность:
ну а bj_groupCountUnits, или это типа глобальная ?
Имеет ли смысл переписывать её заново ?

И вот еще такой вопрос, а вот эта функция

Код:
function GroupPickRandomUnit takes group whichGroup returns unit
    // If the user wants the group destroyed, remember that fact and clear
    // the flag, in case it is used again in the callback.
    local boolean wantDestroy = bj_wantDestroyGroup
    set bj_wantDestroyGroup = false

    set bj_groupRandomConsidered = 0
    set bj_groupRandomCurrentPick = null
    call ForGroup(whichGroup, function GroupPickRandomUnitEnum)

    // If the user wants the group destroyed, do so now.
    if (wantDestroy) then
        call DestroyGroup(whichGroup)
    endif
    return bj_groupRandomCurrentPick
endfunction

function GroupPickRandomUnitEnum takes nothing returns nothing
    set bj_groupRandomConsidered = bj_groupRandomConsidered + 1
    if (GetRandomInt(1,bj_groupRandomConsidered) == 1) then
        set bj_groupRandomCurrentPick = GetEnumUnit()
    endif
endfunction
Старый 10.06.2009, 22:00
Ranger21
I love beatiul days XD
offline
Опыт: 13,274
Активность:
не вызывает:), а я вот для каждого такого случая использую не БЖ переменные
попробуй сделать это не с бж
Старый 10.06.2009, 22:01
SRes
1110101000
offline
Опыт: 9,997
Активность:
Смысла переписывать НЕТ, все ровно эти переменные (вроде бы) инициализируються сами по себе всегда.
Старый 10.06.2009, 22:18
Ranger21
I love beatiul days XD
offline
Опыт: 13,274
Активность:
SRes Нет, этих переменных не может быть несколько...

Если у тебя в один момент происходит пересчёт в разных группах, то будет фейл....
Старый 10.06.2009, 23:55
agentex

offline
Опыт: 34,834
Активность:
MupaMaX ответ - НЕТ не вызывает

agentex добавил:
Цитата:
ну а bj_groupCountUnits, или это типа глобальная ?
Имеет ли смысл переписывать её заново ?

эт глобальный интежер, с ним не имеет смысла чтолибо делать
Старый 11.06.2009, 00:11
SRes
1110101000
offline
Опыт: 9,997
Активность:
Ranger21, Одновременно ? ORLY ? ЭЭээ... А вроде же процессоры не умеют обрабатывать информацию одновременно ? Всмысле каким образом оно может пересекаться ? О_о
Старый 11.06.2009, 00:19
Ответ

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

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

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

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



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