Уже пять лет задаю вопросы и ответы здесь, как моя личная записная книжка по редактору варика. Спасибо вам, люди)

Все постоянно ругают вейт, даже как то кто то кидал мне наработку, чтобы вейт не глючил, только наработка не работает.
Все твердят заменять таймером, как я понял, это то же самый таймер что только на локалках и без окна? Если вас хватит скиньте пример такого таймера, если возможно без использования хэш таблицы( я не понимаю ее смысл)
Буду заменять вейты))

Принятый ответ

WAIT_EX( 20. )
Что же ты раньше то молчал! А я голову ломаю! Все заработало!
`
ОЖИДАНИЕ РЕКЛАМЫ...

Показан только небольшой набор комментариев вокруг указанного. Перейти к актуальным.
0
26
0
SсRealm:
функция не работает
Он же тебе пишет, что функция с этим названием не объявлена.
Т.е. ты не занёс её в шапку или в другое место, где она должна объявляться раньше чем упоминается.
Я тебе в сообщении выше пример прилепил.
0
21
0
Extremator, разве функция, которую ты скинул не есть стандартный гуишный вейт? В гуи не используется TriggerSleepAction( ), там используется BJ-шная функция PolledWait( ):
globals
    constant real      bj_POLLED_WAIT_INTERVAL          =  0.10
    constant real      bj_POLLED_WAIT_SKIP_THRESHOLD    =  2.00
endglobals

function PolledWait takes real duration returns nothing
    local timer t
    local real  timeRemaining

    if (duration > 0) then
        set t = CreateTimer()
        call TimerStart(t, duration, false, null)
        loop
            set timeRemaining = TimerGetRemaining(t)
            exitwhen timeRemaining <= 0

            // If we have a bit of time left, skip past 10% of the remaining
            // duration instead of checking every interval, to minimize the
            // polling on long waits.
            if (timeRemaining > bj_POLLED_WAIT_SKIP_THRESHOLD) then
                call TriggerSleepAction(0.1 * timeRemaining)
            else
                call TriggerSleepAction(bj_POLLED_WAIT_INTERVAL)
            endif
        endloop
        call DestroyTimer(t)
    endif
endfunction
UPD: В гуи, окзывается, есть два вида вейта: TriggerSleepAction и PolledWait. Находятся прямо друг за дружкой.
0
26
0
ScopteRectuS:
Extremator, разве функция, которую ты скинул не есть стандартный гуишный вейт?
Кэп?
0
21
0
По поводу вэйта - если уж не нравится стандартный, то как вариант, сварганить и юзать что-то на подобии этого:
так ты и сварганил стандартный, который уже есть?
0
26
0
И ты продолжаешь спрашивать?
- Вот тебе красный.
- Это красный?
- У него цвет как у красного.
- Ну так это красный?
0
20
0
WAIT_EX( 20. )
Что же ты раньше то молчал! А я голову ломаю! Все заработало!
Принятый ответ
0
32
0
21 год, вейты, ещё и polled wait кастом юзают, зачем?
Веты сделаны не для того что вы бы в спеллах задержки или переодические действия делали, они нужны для киниматиков и синхронизации геймкеша.
Вейт остонавливливает поток, поэтому данные GetTriggerxxx нативка монуть быть уже некооректны, не говоря о переменных глобальных. Далее, вспомним известные карты и баги, с этим самым говном - сразу поймёте, почему так делать ненужно.
Лютые костыли которые тут скинули, ещё и по производительности в разы ниже чем просто создать таймер и запустить его, передав в аргументы функцию которую он запустит по истечению. И кстати да, на гуи тоже много где можно нормально юзать таймеры, без этого говна и костылей., но кто бы читал статьи и че-то там пытался сам сделать...
0
32
0
quq_CCCP, это просто такой трешак, что рука-лицо X 500. Вот она - высшая точка развития игры с 18 летней историей и наработками за тот же период
0
20
0
quq_CCCP:
Просто пример дайте уже наконец, чтобы сделать внутренний таймер на ГуяХ?

Вот все горазды фейспалмами убиваться, а у нас сто лет не выходило новых статей по варику. Вы поймите, мы же перечитываем наработки и статьи 10 летней давности, которые уже не актуальны и верим им и учимся по ним же.
Вы же реально шарите. Но карты вы давно не делаете, так объедините усилия, чтобы написать цикл статей по новым базам данных варика. Мне хватило бы даже названия всех локальных переменных, я просто не знаюкак они правильно называются, иначе я бы давно заменил их во многих местах где у меня локалки стоят и ДАЖЕ ЭТО сократило бы количество глюков в разы!
Народ, мы не можем переделать варик, но в ваших силах сделать отличную школу со статьями, иначе и через десять лет прийдут на наше место лдругиеи будут спотыкаться о те же грабли!
0
26
0
SсRealm, ты лучше напиши что именно ты пытаешься сделать.
0
20
0
Extremator:
SсRealm, ты лучше напиши что именно ты пытаешься сделать.
Мне просто нужно что то что заменит вейт, для короткого периода в триггере.
То что сможет отсчитать секунды вместо вейта. Да я уже поставил WAIT_EX( 20. ) Он работает. Но если есть возможность сделать таймер для короткого периода на custom script - вообще буду счастлив!
Показан только небольшой набор комментариев вокруг указанного. Перейти к актуальным.
Чтобы оставить комментарий, пожалуйста, войдите на сайт.