Вот скрин: http://files.mail.ru/MSPEQP
Вот код:
//***************************************************************************
//*
//* Global Variables
//*
//***************************************************************************
globals
// User-defined
unit udg_Ut28 = null
unit udg_M3 = null
unit udg_Uatt = null
real udg_Ammo = 0
integer udg_Shield = 0
// Generated
trigger gg_trg___________________________u = null
trigger gg_trg_Attack1 = null
trigger gg_trg_Attack1_the_end = null
trigger gg_trg_BladeUSE = null
trigger gg_trg_BladeDrop = null
trigger gg_trg_StaveInicialization = null
trigger gg_trg_StaveUse = null
trigger gg_trg_StaveDrop = null
trigger gg_trg_ShieldUSE = null
trigger gg_trg_ShieldDrop = null
unit gg_unit_H000_0002 = null
endglobals
function InitGlobals takes nothing returns nothing
set udg_Ammo = 0
set udg_Shield = 0
endfunction
function Trig_Attack1_the_end_Func001C takes nothing returns boolean
if ( not ( DistanceBetweenPoints(GetUnitLoc(udg_Ut28), GetUnitLoc(udg_M3)) > 11.00 ) ) then
return false
endif
return true
endfunction
function Trig_Attack1_the_end_Actions takes nothing returns nothing
if ( Trig_Attack1_the_end_Func001C() ) then
call SetUnitFacingToFaceUnitTimed( udg_Ut28, udg_M3, 0 )
call AddSpecialEffectTargetUnitBJ( "overhead", udg_M3, "Abilities\\Spells\\Other\\TalkToMe\\TalkToMe.mdl" )
call PauseUnitBJ( true, udg_Ut28 )
call TriggerSleepAction( 0.50 )
call SetUnitTimeScalePercent( udg_Ut28, 200.00 )
call SetUnitAnimation( udg_Ut28, "Attack" )
call TriggerSleepAction( 0.50 )
call PauseUnitBJ( false, udg_Ut28 )
call SetUnitTimeScalePercent( udg_Ut28, 100.00 )
call CreateNUnitsAtLoc( 1, 'h001', GetOwningPlayer(GetTriggerUnit()), GetUnitLoc(udg_Ut28), bj_UNIT_FACING )
set udg_Uatt = GetLastCreatedUnit()
call IssuePointOrderLocBJ( udg_Uatt, "move", GetUnitLoc(udg_M3) )
call TriggerSleepAction( ( DistanceBetweenPoints(GetUnitLoc(udg_Ut28), GetUnitLoc(udg_M3)) / 522.00 ) )
call RemoveUnit( udg_Uatt )
call UnitDamageTargetBJ( udg_Ut28, udg_M3, ( udg_Ammo + 30.00 ), ATTACK_TYPE_PIERCE, DAMAGE_TYPE_NORMAL )
call DestroyEffectBJ( GetLastCreatedEffectBJ() )
call EnableTrigger( gg_trg_Attack1 )
call SetUnitTimeScalePercent( GetTriggerUnit(), 100.00 )
else
call EnableTrigger( gg_trg_Attack1 )
endif
endfunction
//===========================================================================
function InitTrig_Attack1_the_end takes nothing returns nothing
set gg_trg_Attack1_the_end = CreateTrigger( )
call DisableTrigger( gg_trg_Attack1_the_end )
call TriggerAddAction( gg_trg_Attack1_the_end, function Trig_Attack1_the_end_Actions )
endfunction
Дело в том что хочу сделать триггер позволяющий юниту использовать разные типы дистанционной атаки без смены самого юнита в редакторе. То есть беру юнита без графики дистанционной атаки и триггерно делаю разную анимацию атаки.
Испробовал кучу способов.
Есле не выйдет вы не видели альтернативную систему.