Добавлен Fa1korn
Если честно, я в замешательстве. Кто-нибудь может объяснить почему при неотрицательных углах заклинание направлено не в точку каста, а куда-то в сторону.
Как вообще считаются углы в варкрафе?
Как вообще считаются углы в варкрафе?
local unit c = gg_unit_Uanb_0010 //кастер
local integer i = 1
local real facing = bj_RADTODEG*Atan2(GetLocationY(GetSpellTargetLoc()) - GetUnitY(c), GetLocationX(GetSpellTargetLoc()) - GetUnitX(c))
//угол между кастером и точкой каста часто отрицательный (почему так ???)
if facing < 0 then
set facing = facing + 360 //исправляем на положительный
endif
call BJDebugMsg("facing="+R2S(facing))
call SaveReal(udg_ht, GetHandleId(t), 0, facing)
set facing = facing + 45
if facing > 360 then
set facing = facing - 360
endif
loop
exitwhen i > 5 //волна шипов кастуется 5 раз
set facing = facing - 15
if facing < 0 then
set facing = facing + 360
endif
call BJDebugMsg("facing["+I2S(i)+"]="+R2S(facing))
call CastPoint(GetOwningPlayer(c), c, 1, 'AUim', GetUnitAbilityLevel(c,'A0K5'), "impale", GetUnitX(c)+64*Cos(facing*bj_DEGTORAD), GetUnitY(c)+64*Sin(facing*bj_DEGTORAD) ) //кастуем волну шипов в точку со смещением
set i = i + 1
endloop
...
Как должно быть:
Необъяснимо, но факт:
Принятый ответ
Поставил расстояние 256 там, где вычисляются полярные координаты - всё заработало. То есть слишком маленькие значения нельзя, как 64, всё ясно. Тема закрыта.
`
ОЖИДАНИЕ РЕКЛАМЫ...
Чтобы оставить комментарий, пожалуйста, войдите на сайт.
не?