Дата: Воскресенье, 23.08.2015, 16:32 | Сообщение # 1
Сообщений: 417
работа из циклами: function Trig_N_1_A_Actions takes nothing returns nothing local location l=GetSpellTargetLoc() local unit u=GetSpellTargetUnit() local integer i=R2I(DistanceBetweenPoints(GetUnitLoc(u), l)) call TriggerSleepAction( 5.00 ) loop exitwhen i<=75 call SetUnitPositionLoc( u, PolarProjectionBJ(GetUnitLoc(u), 10.00, AngleBetweenPoints(GetUnitLoc(u), l)) ) call TriggerSleepAction( 0.01 ) set i=R2I(DistanceBetweenPoints(GetUnitLoc(u), l)) endloop set l=null set u=null set i=null endfunction
почему строчка call TriggerSleepAction( 0.01 ) сильно тормозит , там явно не 0.01 ждёт оно, а менче напишите пример такого триггера двигать юнит в точку создания способности через 5 сек плавно , и желательно каждые 0.01 Dead Area(14%) 14.10.2015 MY ACCOUNT VK Мои файлы и наработки
Дата: Воскресенье, 23.08.2015, 17:01 | Сообщение # 3
Сообщений: 417
это не много не то , мне надо что бы сам цикл делал все нужные действия каждые 0.01 и ещё не большая ошибка триггер срабатывает 1 раз за игру и больше не работает , как это исчпавить
function Trig_N_1_A_Conditions takes nothing returns boolean if ( not ( GetSpellAbilityId() == 'A00O' ) ) then return false endif return true endfunction
function Trig_N_1_A_Actions takes nothing returns nothing local location l=GetSpellTargetLoc() local unit u=GetSpellTargetUnit() local integer i=R2I(DistanceBetweenPoints(GetUnitLoc(u), l)) //local real r=0.01 call TriggerSleepAction( 5.00 ) loop exitwhen i<=75 call SetUnitPositionLoc( u, PolarProjectionBJ(GetUnitLoc(u), 10.00, AngleBetweenPoints(GetUnitLoc(u), l)) ) call TriggerSleepAction(0.01) set i=R2I(DistanceBetweenPoints(GetUnitLoc(u), l)) endloop //set l=null //set u=null //set i=0 endfunction
//=========================================================================== function InitTrig_N_1_A takes nothing returns nothing set gg_trg_N_1_A = CreateTrigger( ) call TriggerRegisterAnyUnitEventBJ( gg_trg_N_1_A, EVENT_PLAYER_UNIT_SPELL_EFFECT ) call TriggerAddCondition( gg_trg_N_1_A, Condition( function Trig_N_1_A_Conditions ) ) call TriggerAddAction( gg_trg_N_1_A, function Trig_N_1_A_Actions ) endfunction
- надо записать цель и место где она была - потом ждать 5 сек - потом тянуть цель в месту где она была - - тянуть до тех пор пока не притянет обратно
Так-то по сути надо запустить таймер периодический на выполнение функции... а для этого надо что бы функция доставала нужные значения (юнита, точку) и работала с ними = глобалки...