function Trig_Z1_1_Timer takes nothing returns nothing local timer t = GetExpiredTimer() local integer id = GetHandleId(t) local unit caster = LoadUnitHandle( udg_hash, id, 1) local unit target = LoadUnitHandle( udg_hash, id, 2) local effect e = LoadEffectHandle( udg_hash, id, 3) if GetUnitAbilityLevel(target, 'B00V') > 0 then call DestroyEffect(e) call UnitDamageTarget(caster, target, 40. + udg_M, false, false, ATTACK_TYPE_NORMAL, DAMAGE_TYPE_NORMAL, WEAPON_TYPE_WHOKNOWS) call IssueTargetOrder( caster, "attack", target ) call PauseTimer(t) call DestroyTimer(t) call FlushChildHashtable( udg_hash, id) set t = null set caster = null set target = null set e = null else set t = null set caster = null set target = null set e = null endif endfunction
function Trig_Z1_1_Actions takes nothing returns nothing local unit caster = GetSpellAbilityUnit() local unit target = GetSpellTargetUnit() local timer t = CreateTimer() local integer id = GetHandleId(t) local effect e = AddSpecialEffectTarget("Abilities\\Weapons\\LavaSpawnMissile\\LavaSpawnMissile.mdl" , caster, "hand, right") call SetUnitAnimation( caster, "stand ready" ) call SaveUnitHandle( udg_hash, id, 1, caster ) call SaveUnitHandle( udg_hash, id, 2, target ) call SaveEffectHandle( udg_hash, id, 3, e) call TimerStart(t, 0.05, true, function Trig_Z1_1_Timer) set t = null set caster = null set target = null set e = null call TriggerSleepAction( 5.) call PauseTimer(t) call DestroyTimer(t) call FlushChildHashtable( udg_hash, id) endfunction
//=========================================================================== function InitTrig_Z1_1 takes nothing returns nothing set gg_trg_Z1_1 = CreateTrigger( ) call TriggerRegisterAnyUnitEventBJ( gg_trg_Z1_1, EVENT_PLAYER_UNIT_SPELL_CHANNEL ) call TriggerAddCondition( gg_trg_Z1_1, Condition( function Trig_Z1_1_Conditions ) ) call TriggerAddAction( gg_trg_Z1_1, function Trig_Z1_1_Actions ) endfunction
Сама способность сделана на основе молота бурь. Поставлено значение времени подготовки заклинания на 1.00, в это время, по замыслу, должна проигрываться анимация stand ready.
Сообщение отредактировал RaiN_S - Четверг, 11 Октября 2012, 19:01:21
call SetUnitAnimationByIndex( caster, 4 ) не сработало. Дело-то не в том, что игнорируется вызов функции (я проверил, сама по себе анимация нормально запускается и без функции с индексом), а в том, что эта анимация не работает, когда юнит кастует скилл, а именно в тот момент, когда происходит "время подготовки заклинания".
Сообщение отредактировал RaiN_S - Четверг, 11 Октября 2012, 19:30:58
Ты что? Или я тебя не понял или ты фигню написал. Но вот добавить тег анимации триггерно при событии "Юнит начинет направлять способность" - это решение между прочим. Только что проверил на джайне - дух воды с временем подготовки 5 сек. При срабатывании ьтриггера добавляю тег "victory" и Джайна играет stand victory. По окончанию каста тег следует убрать.
Добавлено (11 Октября 2012, 20:28:05) --------------------------------------------- Воть. Если надо.. http://rghost.ru/40875074