сделал способность по возвращению дамага в течении 4 сек после каста способности. типа бм из доты.но возвращение дмг не прекращается. хелпаем
Code
function BM_Conditions takes nothing returns boolean
if ( GetSpellAbilityId() == 'A00D' ) then return true endif
endfunction
function bm_damage takes nothing returns nothing
local unit caster=GetTriggerUnit() local unit damager = GetEventDamageSource() local real dam=GetEventDamage() call UnitDamageTargetBJ( caster, damager, dam, ATTACK_TYPE_NORMAL, DAMAGE_TYPE_NORMAL ) endfunction
function BM_Actions takes nothing returns nothing
local trigger bm set bm=CreateTrigger() call TriggerRegisterUnitEvent(bm,GetTriggerUnit(),EVENT_UNIT_DAMAGED) call TriggerAddAction(bm,function bm_damage)
endfunction
//=========================================================================== function InitTrig_blade_mail takes nothing returns nothing
set gg_trg_blade_mail = CreateTrigger( ) call TriggerRegisterAnyUnitEventBJ( gg_trg_blade_mail, EVENT_PLAYER_UNIT_SPELL_EFFECT ) call TriggerAddCondition( gg_trg_blade_mail, Condition( function BM_Conditions ) ) call TriggerAddAction( gg_trg_blade_mail, function BM_Actions )
endfunction
походу не в том разделе...
Сообщение отредактировал WakingTheDemon - Воскресенье, 26 Февраля 2012, 19:10:06
WakingTheDemon, нет, просто сделай так: Событие: Hero[1] получает урон Hero[2] получает урон Hero[3] получает урон ... Hero[11] получает урон Hero[12] получает урон Условие: Переключающий юнит имеет специальное волшебство типа Blade Mail Источник урона не равно Здание Действие: Приказать переключающий юнит атаковать Источник урона нанося Полученные повреждения
Dreii, oleg_best_oleg, спс, все стало исправно работать. я решил сократить код, т он начал выдавать мне ошибку Неверное колличество аргументов
в
Code
call TriggerAddAction( gg_trg_blade_mail, function bm_damage )
Code
function bm_damage takes nothing returns nothing
local unit caster=GetTriggerUnit() local unit damager = GetEventDamageSource() local real dam=GetEventDamage() if (GetUnitAbilityLevel(caster,'B002')>0) then call UnitDamageTargetBJ( caster, damager, dam, ATTACK_TYPE_NORMAL, DAMAGE_TYPE_NORMAL ) endif endfunction
//=========================================================================== function InitTrig_blade_mail takes nothing returns nothing
set gg_trg_blade_mail = CreateTrigger( ) call TriggerRegisterUnitEvent( gg_trg_blade_mail, EVENT_UNIT_DAMAGED ) call TriggerAddAction( gg_trg_blade_mail, function bm_damage ) endfunction
Добавлено (26 Февраль 2012, 21:15:05) --------------------------------------------- Dreii, в твоем та же ошибка
Сообщение отредактировал WakingTheDemon - Воскресенье, 26 Февраля 2012, 20:56:19
Отсутствует юнит, для которого добавляется событие. Вообще нужно ставить событие при выборе игроком героя.
Добавлено (27 Февраль 2012, 09:54:05) --------------------------------------------- WakingTheDemon, часто Редактор выдает ошибку на строке, следующей после ошибочной.