freest
offline
Опыт:
442Активность: |
Неправильно высчитывается угол.
В общем, делаю абилу на подобии стрелы Windrunner в доте. Летит в направлении точки каста, ну и тд.
Вот только угол от кастера до точки каста высчитывается криво, и дамми летит под рандомным углом ;[ И еще 1 вопрос, как можно отслеживать расстояние, которое пролетел юнит (SetUnitPosition). ((код jass
function ini_cond takes nothing returns boolean
return GetSpellAbilityId() == 'A00B' endfunction function ini_cd takes nothing returns nothing
local integer i = GetHandleId(GetExpiredTimer()) local unit d = LoadUnitHandle(udg_h, i, 0) local real a = LoadReal(udg_h, i, 1) local real x = GetUnitX(d) + 20.00 * Cos(a) local real y = GetUnitY(d) + 20.00 * Sin(a) call SetUnitPosition(d, x, y) set d = null endfunction function ini_acti takes nothing returns nothing
local timer t = CreateTimer() local unit c = GetTriggerUnit() local real cx = GetUnitX(c) local real cy = GetUnitY(c) local real tx = GetLocationX(GetSpellTargetLoc()) local real ty = GetLocationY(GetSpellTargetLoc()) set udg_h=InitHashtable() call SaveUnitHandle(udg_h, GetHandleId(t), 0, CreateUnit(GetOwningPlayer(c), 'h003',cx , cy, 0 )) call SaveReal(udg_h, GetHandleId(t), 1, bj_RADTODEG*Atan2(ty-cy,tx-cx)) call TimerStart(t, 0.03125, true, function ini_cd) endfunction function InitTrig_ini takes nothing returns nothing local trigger t = CreateTrigger() call TriggerRegisterAnyUnitEventBJ(t, EVENT_PLAYER_UNIT_SPELL_CAST) call TriggerAddCondition(t, Condition(function ini_cond)) call TriggerAddAction(t, function ini_acti) endfunction )) Отредактировано freest, 01.02.2012 в 15:48. |
01.02.2012, 15:43 | #1
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
Master_chan
Полуночный командир
offline
Опыт:
15,660Активность: |
Записываешь угол в градусах:
а двигаешь в радианах:
|
01.02.2012, 15:49 | #2
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
freest
offline
Опыт:
442Активность: |
Master_chan, поправил спасибо. |
01.02.2012, 15:55 | #3
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|