У меня есть луп, который ожидает условия. В функции для этого лупа необходимо загружать данные из основной функции. Как я понял,
local unit u = GetTrigerUnit()
local integer h = GetHandleId(u)
Не сработает...А как ещё - не знаю, это же не таймер. Подскажите, что делать.
function WaitForAttack takes nothing returns boolean 
    
    local unit u = GetTriggerUnit()
    local integer h = GetHandleId(u)
    local real i = LoadReal(udg_hash,h,StringHash("stop"))
    if (i < 1) then
        return LoadBoolean(udg_hash,h,StringHash("attackedUnit")) == true
        call SaveReal(udg_hash,h,StringHash("stop"),i + 0.10)
    else
        call SaveBoolean(udg_hash,h,StringHash("attackedUnit"), false)
        call DisplayTimedTextToForce( GetPlayersAll(), 30, "фолс")
        set u = null
        return false
    endif
endfunction 
И вот тот луп:
loop
	exitwhen ( WaitForAttack()  )
    call TriggerSleepAction(RMaxBJ(bj_WAIT_FOR_COND_MIN_INTERVAL, 0.1))
endloop

DopaMine, создаёшь таймер
сохраняешь на этот таймер всю необходимую информацию (юнита и прочее)
запускаешь таймер
всё
примеров того как это сделать в статьях куча
открываем и читаем
можешь начать с этой
вообще есть куча статей и готовых систем
`
ОЖИДАНИЕ РЕКЛАМЫ...

Показан только небольшой набор комментариев вокруг указанного. Перейти к актуальным.
32
Для начала перестать писать ахинею и забыть про вейты на совсем, особенно в циклах.
Потом откуда у тебя возьмутся GetTriggerUnit()? Оно работает до вейта, после вейта уже нет, нельзя так делать,
Создаешь таймер и запускаешь его, указанный интервал, когда условие выполнится - останавливаешь таймер.
Информации море ссылка
11
забыть про вейты на совсем
Что такое вейты?(Wait я здесь не вижу)
Я четвёртый день пробую на джассе. До этого не знал, что это.
quq_CCCP:
Информации море ссылка
А вот это действительно полезно, спасибо!
26
TriggerSleepAction это и есть вэйт.
DopaMine, не все знают как и когда нужно пользоваться вэйтом, поэтому у них ростёт опухоль связанная с тем что вэйты вообще нельзя использовать... Так что можешь сразу забивать, если тебе начинают доказывать что всё не работает тупо из-за вейта, и не объясняют почему именно и что/куда уходит.
11
DopaMine, не все знают как и когда нужно пользоваться вэйтом, поэтому у них ростёт опухоль связанная с тем что вэйты вообще нельзя использовать... Так что можешь сразу забивать, если тебе начинают доказывать что всё не работает тупо из-за вейта, и не объясняют почему именно и что/куда уходит.
Поясните плз кто-нибудь, о чём речь хотя бы. Я хочу сам решить, чем мне пользоваться, а чем - нет:D
26
если вам нужны рандомные десинхронизации в мультиплеере
грохнутый поток в фильтрах и кондишенах
неточный отсчет времени при каждом запуске функции
а в сингле еще и его отсчет при паузах
то
native TriggerSleepAction takes real timeout returns nothing
для вас
когда станет совсем невмоготу, перейдете на таймеры
28
Паузы хороши для синематиков, для мультиплеера же лучше использовать таймеры.

DopaMine, ты опять делаешь действия после возврата из функции.
22
в чем смысл функции в ОП? тип попытка написать свой собственный PolledWait?
абилки делайте через таймеры
на таймер как раз можно и сохранять данные в хеш, а не на какого то TriggeringUnit
Показан только небольшой набор комментариев вокруг указанного. Перейти к актуальным.
Чтобы оставить комментарий, пожалуйста, войдите на сайт.