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

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

Ответ
 
Dead Jay
Братег Дракончег
offline
Опыт: 8,425
Активность:
Утечка 2
Есть ли утечка в коде:
function Trig_Creating_Unit_Actions takes nothing returns nothing
call CreateNUnitsAtLoc( udg_NumberUnits[1], GetUnitTypeId(udg_UnitClass[1]), Player(1), GetRectCenter(udg_CreatingRegion), bj_UNIT_FACING )
call GroupTargetDestructableOrder( GetUnitsInRectAll(gg_rct_Creating_Units), "attack", udg_Gate )
call DestroyGroup (GetLastCreatedGroup())
endfunction
===========================================================================
function InitTrig_Creating_Unit takes nothing returns nothing
set gg_trg_Creating_Unit = CreateTrigger( )
call TriggerRegisterTimerEventPeriodic( gg_trg_Creating_Unit, 2.00 )
call TriggerAddAction( gg_trg_Creating_Unit, function Trig_Creating_Unit_Actions )
endfunction
Старый 30.09.2006, 18:35
DioD

offline
Опыт: 45,134
Активность:
Тебе следует знать только одну весчь.
все функции которые создают объекты вызывают утечки если эти объекты не удалять.
CreateNUnitsAtLoc создаёт юнита
GetUnitTypeId создаёт интегер
Player(1) возращает игрока
GetRectCenter(udg_CreatingRegion) создаёт точку
GetUnitsInRectAll создаёт группу
DestroyGroup работает не на все функции что создают группы
Старый 30.09.2006, 19:17
Dead Jay
Братег Дракончег
offline
Опыт: 8,425
Активность:
DioD, ну напиши как нужно, а то я Жассе не очень
Старый 30.09.2006, 19:38
J
expert
offline
Опыт: 48,447
Активность:
Код:
function Trig_Creating_Unit_Actions takes nothing returns nothing
    local real X = GetRectCenterX(udg_CreatingRegion)
    local real Y = GetRectCenterY(udg_CreatingRegion)
    local group gr = CreateGroup()
    local integer a = 1 
    loop
        exitwhen a > udg_NumberUnits[1]
        call CreateUnit (Player(1), GetUnitTypeId(udg_UnitClass[1]), X,Y, 270)
        set a = a + 1
    endloop
    call GroupEnumUnitsInRect(gr, gg_rct_Creating_Units, null)    
    call GroupTargetOrder( gr, "attack", udg_Gate )
    call DestroyGroup (gr)
    set gr = null
endfunction

//===========================================================================
function InitTrig_Creating_Unit takes nothing returns nothing
    set  gg_trg_Creating_Unit = CreateTrigger()
    call TriggerRegisterTimerEvent( gg_trg_Creating_Unit, 2, true                             )
    call TriggerAddAction         ( gg_trg_Creating_Unit, function Trig_Creating_Unit_Actions )
endfunction



Незнаю почему... но я стремлясь к используванию ТОЛЬКО нативе функций... может оно и прально... я никогда не не использую BJ (за исключением правдо тех BJ которые использую нативок 10-20...)

.

Отредактировано Jon, 01.10.2006 в 13:28.
Старый 30.09.2006, 20:31
DioD

offline
Опыт: 45,134
Активность:
группы очищаются при удалении так что смысла этого делать нет вовсе
Старый 30.09.2006, 20:46
J
expert
offline
Опыт: 48,447
Активность:
Эт я для надежности:) такчто Dead Jay не очищай:)
Старый 30.09.2006, 20:46
Dead Jay
Братег Дракончег
offline
Опыт: 8,425
Активность:
Спасибо
Старый 30.09.2006, 21:09
J
expert
offline
Опыт: 48,447
Активность:
Dead Jay создавай все свои утечки в одной теме...
Старый 30.09.2006, 21:09
Dead Jay
Братег Дракончег
offline
Опыт: 8,425
Активность:
Jon, при компиляции выскакивает ошибка
Старый 01.10.2006, 13:13
J
expert
offline
Опыт: 48,447
Активность:
я одну запятую пропустил... все.. подправил... теперь все норм! Но незабудь проверить чтобы все обьекты и переменые которые использовались в коде существовали на карте.
Старый 01.10.2006, 13:29
Ответ

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

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

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

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



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