![]()
NIKZ
Изучаю Jass
![]() ![]() offline
Опыт:
6,036Активность: |
Есть ли здесь утечки?
((код jass
function Trig_Swift_punch_run2_Conditions takes nothing returns boolean
if ( not ( IsUnitAliveBJ(udg_Mage) == true ) ) then return false endif return true endfunction function Trig_Swift_punch_run2_Actions takes nothing returns nothing
if ( RectContainsUnit(RectFromCenterSizeBJ(GetUnitLoc(udg_target), 250.00, 250.00), udg_Mage ) != true ) then call SetUnitPositionLocFacingLocBJ( udg_Mage, PolarProjectionBJ(GetUnitLoc(udg_Mage), 66.00, AngleBetweenPoints(GetUnitLoc(udg_Mage), GetUnitLoc(udg_target))), GetUnitLoc(udg_target) ) call IssueTargetOrderBJ( udg_Mage, "attack", udg_target ) else call DisableTrigger( GetTriggeringTrigger() ) endif endfunction function InitTrig_Swift_punch_run2 takes nothing returns nothing set gg_trg_Swift_punch_run2 = CreateTrigger( ) call DisableTrigger( gg_trg_Swift_punch_run2 ) call TriggerRegisterTimerEventPeriodic( gg_trg_Swift_punch_run2, 0.04 ) call TriggerAddCondition( gg_trg_Swift_punch_run2, Condition( function Trig_Swift_punch_run2_Conditions ) ) call TriggerAddAction( gg_trg_Swift_punch_run2, function Trig_Swift_punch_run2_Actions ) endfunction )) Есть ли тут утечки? |
![]() |
#1
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
![]()
prog
![]() offline
Опыт:
32,865Активность: |
тут
RectFromCenterSizeBJ(GetUnitLoc(udg_target), 250.00, 250.00) и тут
call SetUnitPositionLocFacingLocBJ( udg_Mage, PolarProjectionBJ(GetUnitLoc(udg_Mage), 66.00, AngleBetweenPoints(GetUnitLoc(udg_Mage), GetUnitLoc(udg_target))), GetUnitLoc(udg_target) ) считать сколько их там даже не буду, много |
![]() |
#2
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
![]()
NIKZ
Изучаю Jass
![]() ![]() offline
Опыт:
6,036Активность: |
И как их оптимизировать?) Я просто еще нуб в Jass) |
![]() |
#3
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
![]()
Hellfim
Новичок
![]() ![]() offline
Опыт:
79,707Активность: |
|
![]() |
#4
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
![]()
NIKZ
Изучаю Jass
![]() ![]() offline
Опыт:
6,036Активность: |
((код jass
function Trig_Swift_punch_cast2_Conditions takes nothing returns boolean
if ( not ( GetSpellAbilityId() == 'A00T' ) ) then return false endif return true endfunction function Trig_Swift_punch_cast2_Actions takes nothing returns nothing
set udg_Mage = GetTriggerUnit() set udg_target = GetSpellTargetUnit() call IssueTargetOrderBJ( udg_Mage, "attack", udg_target ) call SetUnitAnimation( udg_Mage, "walk" ) call TimerStart(CreateTimer(),0.04,true,function Trig_Swift_punch_run2_Actions) endfunction function InitTrig_Swift_punch_cast2 takes nothing returns nothing set gg_trg_Swift_punch_cast2 = CreateTrigger( ) call TriggerRegisterAnyUnitEventBJ( gg_trg_Swift_punch_cast2, EVENT_PLAYER_UNIT_SPELL_EFFECT ) call TriggerAddCondition( gg_trg_Swift_punch_cast2, Condition( function Trig_Swift_punch_cast2_Conditions ) ) call TriggerAddAction( gg_trg_Swift_punch_cast2, function Trig_Swift_punch_cast2_Actions ) endfunction )) наверное IssueTargetOrderBJ Кстати как устранять их? Утечек? |
![]() |
#5
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
![]()
ScorpioT1000
Работаем
![]() ![]() offline
Опыт: отключен
|
весь код - однга большгая утешка |
![]() |
#6
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
![]()
Hellfim
Новичок
![]() ![]() offline
Опыт:
79,707Активность: |
В этой статье есть про утечки. Также, посмотри статьи с форума из подраздела статьи. Там тоже что-то было.
Вся твоя функция - просто конверт GUI в джасс. Из утечек там только отсутствия обнуления udg_Mage и udg_target (после смерти/удаления юнита они будут ссылаться на область памяти с ним, поэтому будет мини-утечка, пока этим переменным не присвоят другие значения).
Конкретно у IssueTargetOrderBJ( udg_Mage, "attack", udg_target ) можно просто удалить "BJ", и будет вызываться нативная функция, но не везде так просто.
Воспользуйся этими ссылкам:
Закрыто. |
![]() |
#7
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|