Добавлено (08.09.12, 16:48) --------------------------------------------- все, оптимизировал, там у мя таймер вечный был, я его циклически начал выключать-включать и лагать перестало ), буду тогда и дальше на ГУИ делать )
Добавлено (28.10.12, 11:08) --------------------------------------------- народ, плз, тупо напишите тупому, чтоб указанные ниже действия вызывали не триги, а функции
Добавлено (28.10.12, 17:52) --------------------------------------------- вопрос снимается, т.к. можно вызвать только триггер, а не функцию, а еще мы не можем их перемещать, удалять или скрывать(
но на мапе остануться?, за игру их много получиться - тормоза (
Добавлено (02.11.12, 21:14) --------------------------------------------- чо млин неправильно? объединил 3 трига в один
[jass]function Burn_Actions takes nothing returns nothing local integer i = 1
loop exitwhen i > 324 call TriggerRegisterTrackableTrackEvent( Visual, udg_Trackable_TrackPoint[i] ) call TriggerRegisterTrackableHitEvent( Move, udg_Trackable_TrackPoint[i] ) set i = i + 1 endloop endfunction
function Move_Actions takes nothing returns nothing local unit u //call DisableTrigger( Visual ) set u=CreateUnitAtLoc( Player(PLAYER_NEUTRAL_PASSIVE),'h001', Location(udg_X2, udg_Y2), bj_UNIT_FACING ) call SetUnitVertexColorBJ( u, 0.00, 100.00, 0.00, 0.00 ) call TriggerSleepAction( 0.50 ) call KillUnit(u) set u = null //call DestroyLightning( udg_mol ) //set udg_mol = null call PauseUnitBJ( false, udg_hero ) call IssuePointOrderLoc( udg_hero, "move", Location( udg_X2, udg_Y2) ) call SetUnitMoveSpeed( GetTriggerUnit(), 200.00 ) call PolledWait( ( udg_dist / 200.00 ) ) call EnableTrigger( gg_trg_Burn ) endfunction
function Visual_Actions takes nothing returns nothing local real sp = I2R(GetUnitAbilityLevelSwapped('A004', udg_hero)) local integer i = 1 local real dist local real X local real X1 local real Y local real Y1 local lightning l set l = null call DisableTrigger( gg_trg_Burn ) set sp = sp * 120.00 loop exitwhen i > 324 if l != null then call PolledWait(dist/200) call DestroyLightning(l) set l = null endif if GetTriggeringTrackable() == udg_Trackable_TrackPoint[i] then set dist = DistanceBetweenPoints(Location(udg_Trackable_RealX[i], udg_Trackable_RealY[i]), GetUnitLoc(udg_hero)) set X1 = ( udg_Trackable_RealX[i] - GetLocationX(GetUnitLoc(udg_hero)) ) set X = ( ( X1 * ( sp / dist ) ) + GetLocationX(GetUnitLoc(udg_hero)) ) set Y1 = ( udg_Trackable_RealY[i] - GetLocationY(GetUnitLoc(udg_hero)) ) set Y = ( ( Y1 * ( sp / dist ) ) + GetLocationY(GetUnitLoc(udg_hero)) ) call SetUnitFacingToFaceLocTimed( udg_hero, Location( X, Y), 0 ) if dist < sp then set l = AddLightningEx("LINE",true,GetUnitX(udg_hero),GetUnitY(udg_hero),0,udg_Trackable_RealX[i],udg_Trackable_RealY[i],0.) set udg_X2 = udg_Trackable_RealX[i] set udg_Y2 = udg_Trackable_RealY[i] else set l = AddLightningEx("LINE",true,GetUnitX(udg_hero),GetUnitY(udg_hero),0, X, Y,0.) set udg_X2 = X set udg_Y2 = Y set dist = sp endif endif set i = i + 1 endloop
endfunction
function init takes nothing returns nothing set Visual = CreateTrigger( ) set Move = CreateTrigger( ) set Burn = CreateTrigger( )
call TriggerAddAction( Visual, function Visual_Actions ) call TriggerAddAction( Move, function Move_Actions ) call TriggerAddAction( Burn, function Burn_Actions )
[jass]function Burn_Actions takes nothing returns nothing local integer i = 1 <br><br> loop exitwhen i > 324 call TriggerRegisterTrackableTrackEvent( Visual, udg_Trackable_TrackPoint[i] ) call TriggerRegisterTrackableHitEvent( Move, udg_Trackable_TrackPoint[i] ) set i = i + 1 endloop endfunction <br><br> function Move_Actions takes nothing returns nothing local unit u //call DisableTrigger( Visual ) set u=CreateUnitAtLoc( Player(PLAYER_NEUTRAL_PASSIVE),'h001', Location(udg_X2, udg_Y2), bj_UNIT_FACING ) call SetUnitVertexColorBJ( u, 0.00, 100.00, 0.00, 0.00 ) call TriggerSleepAction( 0.50 ) call KillUnit(u) set u = null //call DestroyLightning( udg_mol ) //set udg_mol = null call PauseUnitBJ( false, udg_hero ) call IssuePointOrderLoc( udg_hero, "move", Location( udg_X2, udg_Y2) ) call SetUnitMoveSpeed( GetTriggerUnit(), 200.00 ) call PolledWait( ( udg_dist / 200.00 ) ) call EnableTrigger( gg_trg_Burn ) endfunction <br><br> function Visual_Actions takes nothing returns nothing local real sp = I2R(GetUnitAbilityLevelSwapped('A004', udg_hero)) local integer i = 1 local real dist local real X local real X1 local real Y local real Y1 local lightning l set l = null call DisableTrigger( gg_trg_Burn ) set sp = sp * 120.00 loop exitwhen i > 324 if l != null then call PolledWait(dist/200) call DestroyLightning(l) set l = null endif if GetTriggeringTrackable() == udg_Trackable_TrackPoint[i] then set dist = DistanceBetweenPoints(Location(udg_Trackable_RealX[i], udg_Trackable_RealY[i]), GetUnitLoc(udg_hero)) set X1 = ( udg_Trackable_RealX[i] - GetLocationX(GetUnitLoc(udg_hero)) ) set X = ( ( X1 * ( sp / dist ) ) + GetLocationX(GetUnitLoc(udg_hero)) ) set Y1 = ( udg_Trackable_RealY[i] - GetLocationY(GetUnitLoc(udg_hero)) ) set Y = ( ( Y1 * ( sp / dist ) ) + GetLocationY(GetUnitLoc(udg_hero)) ) call SetUnitFacingToFaceLocTimed( udg_hero, Location( X, Y), 0 ) if dist < sp then set l = AddLightningEx("LINE",true,GetUnitX(udg_hero),GetUnitY(udg_hero),0,udg_Trackable_RealX[i],udg_Trackable_RealY[i],0.) set udg_X2 = udg_Trackable_RealX[i] set udg_Y2 = udg_Trackable_RealY[i] else set l = AddLightningEx("LINE",true,GetUnitX(udg_hero),GetUnitY(udg_hero),0, X, Y,0.) set udg_X2 = X set udg_Y2 = Y set dist = sp endif endif set i = i + 1 endloop <br><br> endfunction <br><br> function init takes nothing returns nothing set Visual = CreateTrigger( ) set Move = CreateTrigger( ) set Burn = CreateTrigger( ) <br><br> call TriggerAddAction( Visual, function Visual_Actions ) call TriggerAddAction( Move, function Move_Actions ) call TriggerAddAction( Burn, function Burn_Actions ) <br><br> call TimerStart(CreateTimer(),1.0,true,function Burn_Actions) endfunction[/jass]
H_A_PK, обисняю для непонятливых ))), я взяд триги на ГУИ, конвертиловал в тест и засунул в один трг ))), а дело всяких там жассеров подчистить мое гениальное творчество, подровнять и подстричь, но штоб работало ! )))