Так, как заказы не работают у вас. У меня просто технически не хватает знаний, что бы сделать что я хочу. Пытаюсь сделать что бы два диска, летели с двух сторон в цель. Но получается, только один пролетает быстрей другого и не возвращается назад. Не знаю как задать такое. Прошу помочь кто обладает знаниями
function Suriken_Cond takes nothing returns boolean
return GetSpellAbilityId() == 'A000'
endfunction
function Suriken_act takes nothing returns nothing
local timer t = GetExpiredTimer()
local unit b1 = LoadUnitHandle(hash,GetHandleId(t),1)
local unit b2 = LoadUnitHandle(hash,GetHandleId(t),3)
local real d = LoadReal(hash,GetHandleId(t),2)
local timer t = CreateTimer()
call SetUnitPosition(b1,GetUnitX(b1)+40*Cos(d*bj_DEGTORAD),GetUnitY(b1)+40*Sin(d*bj_DEGTORAD))
call SetUnitPosition(b2,GetUnitX(b1)+40*Cos(d*bj_DEGTORAD),GetUnitY(b1)+40*Sin(d*bj_DEGTORAD))
set b1 = null
set b2 = null
endfunction
function Suriken takes nothing returns nothing
local unit a = GetSpellAbilityUnit()
local unit b = GetSpellTargetUnit()
local real dmg
local real d = bj_RADTODEG*Atan2(GetSpellTargetY()-GetUnitY(a),GetSpellTargetX()-GetUnitX(a))
local unit b1 = CreateUnit(GetOwningPlayer(a),'h000',GetUnitX(a),GetUnitY(a),d)
local unit b2 = CreateUnit(GetOwningPlayer(a),'h000',GetUnitX(a),GetUnitY(a),d)
if(GetUnitAbilityLevel(a,'A000')==1)then
set dmg=100+GetHeroInt(a,false)*2.5
elseif(GetUnitAbilityLevel(a,'A000')==2)then
set dmg=200+GetHeroInt(a,false)*2.5
elseif(GetUnitAbilityLevel(a,'A000')==3)then
set dmg=250+GetHeroInt(a,false)*2.5
endif
call SaveUnitHandle(hash,GetHandleId(t),1,b1)
call SaveUnitHandle(hash,GetHandleId(t),1,b2)
call SaveReal(hash,GetHandleId(t),2,d)
call TimerStart(t,0.04,true, function Suriken_act)
call UnitDamageTarget(a,b,dmg,false,false,null,null,null)
call TriggerSleepAction(1)
call PauseTimer(t)
call FlushChildHashtable(hash,GetHandleId(t))
call DestroyTimer(t)
call RemoveUnit(b1)
call RemoveUnit(b2)
set a = null
set b = null
set b1 = null
set b2 = null
endfunction
//===========================================================================
Принятый ответ
И что в итоге делает спел?
Ну вот что-то на подобие того, что ты описал.
Если хочешь, чтобы сюрикены наносили урон когда летят добавь дамикам жар феникса.
Ну вот что-то на подобие того, что ты описал.
Если хочешь, чтобы сюрикены наносили урон когда летят добавь дамикам жар феникса.
Загруженные файлы
`
ОЖИДАНИЕ РЕКЛАМЫ...
Чтобы оставить комментарий, пожалуйста, войдите на сайт.
зачем тебе слип? запускай еще один таймер на 1 секунду и там после него делай что надо
так и таймеры как минимум не обнуляешь
local timer t = CreateTimer() это в сюрикен_акт не надо а вот обнуление поставь set t = null
обнуление переменной НЕ разрушает таймер ваш кэп
О_О а где в функции сюрикен создание-то таймера? вот туда и перемести его
ты точно правильно код перекопипастил?
Ну вот что-то на подобие того, что ты описал.
Если хочешь, чтобы сюрикены наносили урон когда летят добавь дамикам жар феникса.