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

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

Ответ
 
ExArt

offline
Опыт: 13,634
Активность:
JokArt Что нужно?
Старый 04.12.2008, 20:52
RazArt

offline
Опыт: 11,197
Активность:
ExArt, я имею ввиду если нужно сделать такой переодичный тригер с разным временем
Старый 04.12.2008, 20:53
JimALIEN
вдупляет sc2 editor
offline
Опыт: 7,176
Активность:
JokArt
ммм... не понял суть вопроса... Проверки нужны? Ну их и в таймере сделать нетрудно, просто там их будет несколько меньше + меньше переменных. Или ты к чему?)
Старый 04.12.2008, 20:53
dave_wwid

offline
Опыт: 12,954
Активность:
Цитата:
нетъ, триггер возьмет случайное значение при первом запуске и будет юзать его

JimALIEN Вот пример триггера с периодически (в соответствии с любой подставленной функцией) изменяющимся wait как предложил MEXAHuK. Wait отображен в текстовом виде 1 раз и посекундно. Каждый раз выдается разное значение но здесь не просто рандомное число а функция с рандомными числами В конце трига ставим действие период которого должен изменяться.
Все работает. Wait разный. Правда проверял мало может быть числа будут повторяться. В любом случае это работает при периодах более одной секунды. Пожалуй на малых периодах (до секунды) нужен таймер.

отключаем в опциях WE Use Fixed Random seed
Прикрепленные файлы
Тип файла: w3x Testperiodicwait.w3x (17.9 Кбайт, 6 просмотров )
Старый 05.12.2008, 14:48
JimALIEN
вдупляет sc2 editor
offline
Опыт: 7,176
Активность:
dave_wwid
да это то понятно что пашет, я имел ввиду этот случай: Periodic event "Every random number between ..."
По сути это действие является некоторой аналогией Start periodic timer. Если запустить периодический таймер, истекающий через предположим случайное число от 1 до 5, и у нас при запуске выпадет 3, то триггер с событием истечения этого таймера будет срабатывать каждые 3 сек, а не 2, 5 или еще скока, вот по сути с периодическим евентом тоже самое. Т.е. норм вариант решения этой проблемы не периодический таймер а одиночный, запускающий сам себя по истечении, о чем тут уже вобщемто и написали.
Старый 05.12.2008, 15:01
dave_wwid

offline
Опыт: 12,954
Активность:
Хм...Надо будет вечером таймеры и Periodic event "Every random number between .. протестить. Хотя сегодня пятница...
Старый 05.12.2008, 15:18
ScorpioT1000
Работаем
offline
Опыт: отключен
Цитата:
Попробуй Periodic event "Every random number between 31-130 seconds of the game. (или какие тебе числа нужны) и никаких пременных.

вот это пипец полный. хорошо если это просто никак не будет работать...
Старый 05.12.2008, 15:40
JimALIEN
вдупляет sc2 editor
offline
Опыт: 7,176
Активность:
ScorpioT1000
ну я уже написал как это будет работать)
dave_wwid
я давненько тестил, результат я уже описал
Старый 05.12.2008, 16:18
ScorpioT1000
Работаем
offline
Опыт: отключен
угу потомучто гуи-зло =) т.е. в коде внятно бы было ясно что
Код:
function InitMyTrig takes nothing returns nothing
set MyTrig = CreateTrigger()
call TriggerRegisterTimerEvent(MyTrig, тут рандомное ваше число, true)
// ...
endfunction

выполняется при инициализации карты 1 раз )
Старый 05.12.2008, 17:07
silumin

offline
Опыт: 11,153
Активность:
JimALIEN, вроде ты только понял в чём трабл и объяснил в чём дело. Тогда встречный вопрос: если вместо "Каждые Х секунд игры" использовать переменную-таймер и её изменять функцией внутри этого же триггера? Такой вариант покатит? Не будетли переменная-таймер работать медленее? Можно ли переменную "заряжать" на 0.2 сек и меньше?
Старый 05.12.2008, 17:44
ExArt

offline
Опыт: 13,634
Активность:
silumin Можно и меньше 0.02 сек)
Старый 05.12.2008, 18:00
silumin

offline
Опыт: 11,153
Активность:
ExArt, а скорость работы триггера при таймере не уменьшится? Если нет, я не зря карпел две недели.
Старый 05.12.2008, 18:04
JimALIEN
вдупляет sc2 editor
offline
Опыт: 7,176
Активность:
silumin текс, я не совсем понял что ты имееш ввиду) Таймеры насколько я знаю итак быстрее и точнее Periodic event'а, т.е. по возможности луше канешна юзать их. Но изменить период таймера можно лиш запустив его снова (а в periodic event вобще изменить период нельзя). Т.е. если скажем таймер работает с определенным периодом и в какойто момент нужно этот период изменить, то нужно стопить таймер и запускать его заного с новым периодом. Ну а если надо чтоб он постоянно работал с разным периодом (скажем регулярное событие через рандомное количество времени), лучше его сразу запускать как одноразовый и по окончании стартовать снова с новым периодом. Вроде внятно объяснил, хотя кажись это итак уже тут обжевали=)
Старый 05.12.2008, 18:18
silumin

offline
Опыт: 11,153
Активность:
JimALIEN, всё отлично, организация таймера по второму варианту (в твоём посте) - мой случай. Спасибо оргомное, такая идея-наработка чуть прахом не пошла. Сегодня же модифицирую, потом отпишусь о результатах испытаний.
2Модераторы. Тему пока не закрывайте. Мало ли чего ещё всплывёт. =)
Старый 05.12.2008, 18:29
silumin

offline
Опыт: 11,153
Активность:
Модифицировал... всё работает.
Старый 08.12.2008, 19:02
Ответ

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

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

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

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



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