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

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

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

offline
Опыт: 2,092
Активность:
Ткните в утечки
1.Укажите на утечки, и как с ними бороться?
» cat
function Trig_Bandit_AI_simple_Attack_Conditions takes nothing returns boolean
    if ( not ( GetEventDamage() > 0.00 ) ) then
        return false
    endif
    return true
endfunction

function Trig_Bandit_AI_simple_Attack_Func007002003 takes nothing returns boolean
    return ( UnitHasItemOfTypeBJ(GetFilterUnit(), 'I00Y') == true )
endfunction

function Trig_Bandit_AI_simple_Attack_Func017002003 takes nothing returns boolean
    return ( GetUnitTypeId(GetFilterUnit()) == 'h00K' )
endfunction

function Trig_Bandit_AI_simple_Attack_Actions takes nothing returns nothing
    local group g1
    local unit u
    if ( GetUnitStateSwap(UNIT_STATE_LIFE, GetTriggerUnit()) <= 50.00 ) then
        call IssuePointOrderLocBJ( GetTriggerUnit(), "move", GetRandomLocInRect(RectFromCenterSizeBJ(PolarProjectionBJ(GetUnitLoc(GetTriggerUnit()), 300.00, ( AngleBetweenPoints(GetUnitLoc(GetTriggerUnit()), GetUnitLoc(GetEventDamageSource())) + 180.00 )), 200.00, 200.00)) )
        call TextAi("Заштопай меня!", GetTriggerUnit(),50)
        set udg_Bands[45] = GetUnitsInRangeOfLocMatching(500.00, GetUnitLoc(GetTriggerUnit()), Condition(function Trig_Bandit_AI_simple_Attack_Func007002003))
        set g1=udg_Bands[45]
        set u=GroupPickRandomUnit(g1)
        call TextAi("Тащу аптечку!", u, 50)
        call UnitUseItemTarget(                                   (u), GetItemOfTypeFromUnitBJ(                                  (u), 'I00Y'), GetTriggerUnit() )
        call DestroyGroup(g1)
        set g1=null
        set u=null
        return
    elseif ( UnitHasBuffBJ(GetTriggerUnit(), 'B000') == false ) then
        set udg_Bands[45] = GetUnitsInRangeOfLocMatching(500.00,                       (Location(GetUnitX(GetTriggerUnit()),(GetUnitY(GetTriggerUnit())))), Condition(function Trig_Bandit_AI_simple_Attack_Func017002003))
        set g1 = udg_Bands[45]
        set u=GroupPickRandomUnit(g1)
        call TextAi("Сейчас я спрячусь!", GetTriggerUnit(),15)
        call IssuePointOrderLocBJ( GetTriggerUnit(), "move", Location(GetUnitX(u),GetUnitY(u) ))
        call DestroyGroup(g1)
        call DestroyGroup(udg_Bands[45])
        set g1=null
        set u=null
        return
    else
        call IssueTargetOrderBJ( GetTriggerUnit(), "attack", GetEventDamageSource() )
    endif
    call DestroyGroup(g1)
    set g1=null
    set u=null
endfunction

//===========================================================================
function InitTrig_Bandit_AI_simple_Attack takes nothing returns nothing
    set gg_trg_Bandit_AI_simple_Attack = CreateTrigger(  )
    call TriggerAddCondition( gg_trg_Bandit_AI_simple_Attack, Condition( function Trig_Bandit_AI_simple_Attack_Conditions ) )
    call TriggerAddAction( gg_trg_Bandit_AI_simple_Attack, function Trig_Bandit_AI_simple_Attack_Actions )
endfunction
  1. Если перед "Pick every unit..." загнать нужный отряд в переменную и использовать в качестве аргумента ее, а после DestroyGroup использовать то утечки не будет?
  2. Слыхал что "Matching" нельзя юзать - чем его заменить?

Отредактировано Nerevar, 11.06.2013 в 10:51.
Старый 11.06.2013, 04:56
Hate
конь вакуумный
offline
Опыт: 43,033
Активность:
Старый 11.06.2013, 10:37
Закрытая тема

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

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

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

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



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