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

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

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

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

Показан только небольшой набор комментариев вокруг указанного. Перейти к актуальным.
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 - вообще буду счастлив!
0
26
0
SсRealm, ты меня не понял. Я прошу тебя сформулировать конкретную ситуацию, когда тебе нужна такая 20-ти секундная отсрочка. Тот вэйт что я тебе дал, точно так же косячит как и обычный, просто в другом месте. У него погрешность от 0.075 до 0.125 (чаще всего всё же выдаёт 0.100), которую надо либо вычитать из стартового времени, либо допускать как побочную (т.е. внутри можно сделать set s = s - .1 , но это всё равно не поможет если время меньше 0.1 сек).
Лучше всего - юзать таймеры. Как их юзать - тут надо уже понимать чуть больше, чем просто то как из запускать и реагировать на них.
0
20
0
Extremator:
SсRealm, ты меня не понял. Я прошу тебя сформулировать конкретную ситуацию, когда тебе нужна такая 20-ти секундная отсрочка. Тот вэйт что я тебе дал, точно так же косячит как и обычный, просто в другом месте. У него погрешность от 0.075 до 0.125 (чаще всего всё же выдаёт 0.100), которую надо либо вычитать из стартового времени, либо допускать как побочную (т.е. внутри можно сделать set s = s - .1 , но это всё равно не поможет если время меньше 0.1 сек).
Лучше всего - юзать таймеры. Как их юзать - тут надо уже понимать чуть больше, чем просто то как из запускать и реагировать на них.
Понимаешь, у меня триггер огромный, там безумное число if( если) Методом научного тыка я пришел к выводу, что один огромный триггер для 50 волн работает лучше чем пятьдесят отдельных. Сам понимаешь, никакого вейта там быть не может, но паузы в нем, мне необходимы, хотя бы 20- 50 секунд в нутри одной волны
Его запускает другой триггер, который секет постоянно, как переменная убитых юнитов ноль так и запускает. Заюзать внутрь таймер вместо вейта- самое то!
Показан только небольшой набор комментариев вокруг указанного. Перейти к актуальным.
Чтобы оставить комментарий, пожалуйста, войдите на сайт.