MANDARIN
offline
Опыт:
24Активность: |
Ошибка движении!
function Trig_spell_1_Conditions takes nothing returns boolean
return GetSpellAbilityId() == 'AOsh' endfunction function Move takes nothing returns nothing
local unit u1 = GetSpellAbilityUnit() local unit u2 = GetSpellTargetUnit() local location p1 = GetUnitLoc(u1) local location p2 = GetUnitLoc(u2) local real a = AngleBetweenPoints(p1, p2) call MoveLocation(p1, GetLocationX(p1) + 50 * CosBJ(a), GetLocationY(p1) + 50 * SinBJ(a)) call SetUnitPositionLoc( u1, p1 ) set u1 = null set u2 = null call RemoveLocation(p1) call RemoveLocation(p2) set p1 = null set p2 = null set a = 0 endfunction function Trig_spell_1_Actions takes nothing returns nothing
local timer t = CreateTimer() call TimerStart(t, 0.01, true, function Move) endfunction ===========================================================================
function InitTrig_spell_1 takes nothing returns nothing set gg_trg_spell_1 = CreateTrigger( ) call TriggerRegisterAnyUnitEventBJ( gg_trg_spell_1, EVENT_PLAYER_UNIT_SPELL_EFFECT ) call TriggerAddCondition( gg_trg_spell_1, Condition( function Trig_spell_1_Conditions ) ) call TriggerAddAction( gg_trg_spell_1, function Trig_spell_1_Actions ) endfunction Движение не происходит! В чем ошибка? |
30.08.2010, 19:36 | #1
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
reALien
offline
Опыт:
29,211Активность: |
иначе это вынлядит так:
короче, ты двигаешь юнита в его текущее местоположение, поробуй:
|
30.08.2010, 19:40 | #2
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
MANDARIN
offline
Опыт:
24Активность: |
Все так же ничего не происходит!
MANDARIN добавил: Может дело в самом заклинании? Триггер срабатывает при активации Волна Силы! |
30.08.2010, 20:01 | #3
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
Scarecrow
Иннеар ORPG
offline
Опыт:
3,289Активность: |
MANDARIN, волна силы не даст тебе GetSpellTargetUnit. Ибо она с целью-точкой. Сделай или из канала с целью-юнитом, или из цепи молний, к примеру... |
30.08.2010, 20:15 | #4
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
MANDARIN
offline
Опыт:
24Активность: |
Поменял на цепь молний! все так же как и было!
Код хотя бы правильно написан? call SetUnitPositionLoc( u1, p1 ) - это исправлено! |
30.08.2010, 20:29 | #5
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
AlexKARASb
Learning cpp
offline
Опыт:
22,103Активность: |
MANDARIN,
а теперь выведи имена u1 и u2, если выведет не null, с меня печенька ._. Поясню. Переменные которым ты приравниваешь локалки доступны только в функции Trig_spell_1_Actions, далее их использовать нельзя их заносят в ячейки хранения(глобалки, хеш, кеш) и потом загружают и используют. 3. Вот код с использованием хеша, для работы нужна глобалка в редакторе переменных Hash - хештаблица:
Еще лучше сделать вместо сет юнит посишн это:
быстрее, надежнее, не ресурсоемко
Оптимизация2 Оптимизация3 Структурное_Движение Пример_глобального_движения Отредактировано AlexKARASb, 30.08.2010 в 20:54. |
30.08.2010, 20:41 | #6
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
MANDARIN
offline
Опыт:
24Активность: |
Теперь все ясно! Всем спасибо! |
30.08.2010, 21:36 | #7
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|