Помогите разобраться с системой полета снарядов, столкнулся с проблемой, снаряд создается, но не летит. Снизу привел код, переменные что использовал и саму карту.
  1. координаты юнита
function abp takes real xa, real ya, real xb, real yb returns real
return 57.295827*Atan2(yb-ya, xb-xa)
endfunction
  1. это лишняя херня
function AdvancedModel takes integer id returns integer
local integer id1=LoadInteger(udg_h,id,2)
local integer id2=LoadInteger(udg_h,id,3)
local integer ans=id
if id1==0 or id2==0 then
return id
endif
if udg_Advanced[1+GetPlayerId(GetLocalPlayer())] then
set ans=id2
endif
return ans
endfunction
  1. сохраняет юнита
function SetOwner takes unit this,unit owner returns nothing
call SaveUnitHandle(udg_h,GetHandleId(this),1,owner)
endfunction
  1. берем юнита записанного в число, устанавливаем ему координаты, скорость полета, дальность полета, способность, тип приказа
function Missle takes integer dummy,real StartX,real StartY,real angle,real speed,real maxfly,real radius,integer spell,integer spelllvl,integer order,unit owner returns unit
local unit u=CreateUnit(GetOwningPlayer(owner),AdvancedModel(dummy),StartX,StartY,angle)
local integer sh=GetHandleId(u)
call SetOwner(u,owner)
call SaveReal(udg_MH,sh,2,speed)
call SaveReal(udg_MH,sh,3,maxfly)
call SaveReal(udg_MH,sh,4,radius)
call SaveInteger(udg_MH,sh,5,spell)
call SaveInteger(udg_MH,sh,6,spelllvl)
call SaveInteger(udg_MH,sh,7,order)
call SaveReal(udg_MH,sh,8,damage)
call SaveUnitHandle(udg_MH,sh,9,owner)
call SaveReal(udg_MH,sh,10,StartX)
call SaveReal(udg_MH,sh,11,StartY)
call GroupAddUnit(udg_Missles,u)
return u
endfunction
  1. записываем номер снаряда
function MissleMakeLastTillEnd takes unit u returns nothing
call SaveInteger(udg_MH,GetHandleId(u),12,1)
endfunction
  1. записываем в число кто кастанул и на кого применил
function MissleMakeFollowTarget takes unit u,unit u2 returns nothing
call SaveUnitHandle(udg_MH,GetHandleId(u),15,u2)
endfunction
Вот сам скил
function Trig_FireBall_Conditions takes nothing returns boolean
local integer id=GetSpellAbilityId()
return id=='A003'
endfunction
function Trig_FireBall_Actions takes nothing returns nothing
local unit u=GetTriggerUnit()
local integer i=2+R2I(I2R(GetHeroInt(u,true))*0.02)
local real X=GetUnitX(u)
local real Y=GetUnitY(u)
local real speed=15.
local real fly=800.
local integer id=GetSpellAbilityId()
local real damage
if id=='A003' then
set i=6
set speed=15.
set damage=25.+0.3*GetHeroIntSkill(u)
endif
loop
exitwhen i==0
set i=i-1
call Missle('o001',X,Y,abp(X,Y,GetSpellTargetX(),GetSpellTargetY())+GetRandomReal(-10.,10.),speed,fly,50.,-1,R2I(damage),0,u)
endloop
set u=null
endfunction

Где код таймера который должен двигать снаряд?
`
ОЖИДАНИЕ РЕКЛАМЫ...

Показан только небольшой набор комментариев вокруг указанного. Перейти к актуальным.
26
может хеш таблицу не инициализировал, может еще что. экстрасенсов нет, лазить по чужим картам тоже не особо кому интересно, дебажте, разбирайтесь, иначе так и продолжите бездумно ковыряться
12
Hate:
может хеш таблицу не инициализировал, может еще что. экстрасенсов нет, лазить по чужим картам тоже не особо кому интересно, дебажте, разбирайтесь, иначе так и продолжите бездумно ковыряться
Да все инициализировал, все изначально было в джасс коде. Все чего не хватало компилятор выдавал в виде ошибок

Вот глобальные переменные
26
Kolya12:
Hate:
может хеш таблицу не инициализировал, может еще что. экстрасенсов нет, лазить по чужим картам тоже не особо кому интересно, дебажте, разбирайтесь, иначе так и продолжите бездумно ковыряться
Да все инициализировал, все изначально было в джасс коде. Все чего не хватало компилятор выдавал в виде ошибок

Вот глобальные переменные
вперед. это лучший совет
28
Если бы ты красиво всё оформил, то можно было бы помочь, а так оставил кучу каких-то триггеров, лишнего кода и ройтесь сами)
12
rsfghd:
Если бы ты красиво всё оформил, то можно было бы помочь, а так оставил кучу каких-то триггеров, лишнего кода и ройтесь сами)
Конкретнее написал
24
Где код таймера который должен двигать снаряд?
Принятый ответ
12
Таймер полета снаряда нашел, карту обновил. Теперь вопрос где найти наносимый урон.
Показан только небольшой набор комментариев вокруг указанного. Перейти к актуальным.
Чтобы оставить комментарий, пожалуйста, войдите на сайт.