XGM Forum
Сайт - Статьи - Проекты - Ресурсы - Блоги

Форуме в режиме ТОЛЬКО ЧТЕНИЕ. Вы можете задать вопросы в Q/A на сайте, либо создать свой проект или ресурс.
Вернуться   XGM Forum > Warcraft> Академия: форум для вопросов> Jass
Ник
Пароль
Войти через VK в один клик
Сайт использует только имя.

Закрытая тема
 
Skino

offline
Опыт: 4,683
Активность:
Ошибка в коде
Помогите плз, нужно с одной функции перетянуть лок перемунну в другую, но чёто неполучается ...

Код:
function Jump_Movement takes nothing returns nothing
    local timer t = GetExpiredTimer()
    local unit a = GetHandleUnit(t,"t")
    call SetUnitPositionLoc( a, GetRandomLocInRect(GetPlayableMapRect()) )
endfunction

function Trig_Jump_Actions takes nothing returns nothing
    local unit a = GetTriggerUnit()
    local location p = GetSpellTargetLoc()
    local timer t = null
    set t = CreateTimer()
    call SetHandleHandle(t,"t",a)
    call TimerStart(t,0.02,true,function Jump_Movement)
    call TriggerSleepAction(1.0)
    call PauseTimer(t)
    call DestroyTimer(t)
endfunction


Skino добавил:
ОО мб мне просто нужно кэш создать?
Старый 04.05.2009, 17:31
DragonSpirit
у - уходи
offline
Опыт: 22,625
Активность:
Skino,если я не ошибаюсь локалки действуют в пределах одной функции и не могут быть переданы(перемещены) в другую функцию
Старый 04.05.2009, 17:35
SRes
1110101000
offline
Опыт: 9,997
Активность:
Но скопированы же могут быть, так что через переменную переноси.
Старый 04.05.2009, 17:39
DragonSpirit
у - уходи
offline
Опыт: 22,625
Активность:
Skino,или глобалку юзай
Старый 04.05.2009, 17:43
Skino

offline
Опыт: 4,683
Активность:
Цитата:
Сообщение от DragonSpirit
Skino,или глобалку юзай


ты udg_ имел ввиду?
а так я уже раздуплился - там просто кэша нехватало
Старый 04.05.2009, 17:48
DragonSpirit
у - уходи
offline
Опыт: 22,625
Активность:
Skino,ну да,только не забудь их создать(2 глобалки по сути(a и t))
Старый 04.05.2009, 17:55
KONR
Повелитель тьмы
offline
Опыт: 990
Активность:
Создай глобалку, передавай туда данные из локалки и передавай данные из глобалки в локалку другой функции.
Старый 04.05.2009, 18:08
DragonSpirit
у - уходи
offline
Опыт: 22,625
Активность:
KONR,это я и имею ввижу
set udg_t = t
Старый 04.05.2009, 18:16
RazArt

offline
Опыт: 11,197
Активность:
Код:
function Jump_Movement takes loc location returns nothing
    local timer t = GetExpiredTimer()
    local unit a = GetHandleUnit(t,"t")
    call SetUnitPositionLoc( a, GetRandomLocInRect(GetPlayableMapRect()) )
endfunction

function Trig_Jump_Actions takes nothing returns nothing
    local unit a = GetTriggerUnit()
    local location p = GetSpellTargetLoc()
    local timer t = null
    set t = CreateTimer()
    call SetHandleHandle(t,"t",a)
    call TimerStart(t,0.02,true,function Jump_Movement(p))
    call TriggerSleepAction(1.0)
    call PauseTimer(t)
    call DestroyTimer(t)
endfunction

Чем собстно так не устроило? оО
Старый 05.05.2009, 13:30
alexkill

offline
Опыт: 18,872
Активность:
Skino, я только не понял, куда тебе нужно локацию переместить (я вижу только необходимость переноса юнита).

По коду:
1. Кеш офф
2. Локации офф


можно сделать например так:
» раскрыть
Код:
library Jump initializer Init

 globals
   private trigger tr = CreateTrigger()
   private timer t = CreateTimer()
   private real i = 0
   private unit u = null
... // локации и т.п. тоже здесь объявляй
 endglobals

 function Jump_Movement takes nothing returns nothing
   set i = i + TimerGetElapsed(t)
     if i==1 then
        call PauseTimer(t)
        set i = 0
     else
        call SetUnitX(u, GetRandomReal(GetRectMinX(bj_mapInitialPlayableArea), GetRectMaxX(bj_mapInitialPlayableArea)))
        call SetUnitY(u, GetRandomReal(GetRectMinY(bj_mapInitialPlayableArea), GetRectMaxY(bj_mapInitialPlayableArea)))
     endif
 endfunction

 function Trig_Jump_Actions takes nothing returns nothing
   set u = GetTriggerUnit()
   call TimerStart(t,0.02,true,function Jump_Movement)
 endfunction

//===========================================================================
 function Init takes nothing returns nothing
... // твои события, условия и т.п.
   call TriggerAddAction( tr, function Trig_Jump_Actions )
 endfunction

endlibrary

RazArt, handler-функции не могут принимать параметров

Отредактировано alexkill, 05.05.2009 в 15:28.
Старый 05.05.2009, 14:42
Gres
Кораэлестраз
offline
Опыт: 18,575
Активность:
RazArt а ты попробуй! ;)

у тя ошибку на call TimerStart(t,0.02,true,function Jump_Movement(p)) покажет!
Старый 05.05.2009, 14:45
Закрытая тема

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы можете скачивать файлы

BB-коды Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход



Часовой пояс GMT +3, время: 04:54.