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

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

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