кстати вопрос который меня мучает как создавать таймер на муй гуй?
писать timer[от 1 до 32764] не вариант есть какие нибудь идеи?

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

я посмотрел короче муй с помощью текста и знаете что он даже не доходит до 100) когда доходит до рандомное число от 1 до 100 примерно(могу ошибаться) он опять становится 2 так что писать таймер[от 1 до 100] вариант)
`
ОЖИДАНИЕ РЕКЛАМЫ...

Показан только небольшой набор комментариев вокруг указанного. Перейти к актуальным.
1
7
4 года назад
1
мне бы на гуй
0
27
4 года назад
Отредактирован MpW
0
Ельнур, тебе ссылку скинул с примером
+в графических редакторах нет действия "создать таймер", только в JNGP. вызвать можно через действие CS: set t =CreateTimer(). и прежде всего таймер вызывает функцию. Вам придется все равно писать функцию вызова. Иначе, просто крепите событие запуска таймера на триггер, очень неудобная штука.
там на гуи легко (пишу по памяти, в редактор лень лезть):
Триггер инициализации: создаете счетчик Count = 0, объявляете массив timer[] и другие массивы для хранения
Триггер А: создать таймер timer[Count], храните все данные в массивах типа unit[Count], interger[Count] и пр, прикрепляется событие вызова этого таймера на триггер Б, запустить таймер, прибавляете счетчик set Count=Count+1.
Триггер Б:
Цикл А до Count
if timer[A]==GetExpiredTimer() then
достаете номер А, делаете что-то с данными, например убить unit[A] или нанести урон. Или отнять бонусы integer[A]. Удаляете таймер timer[A], если он вам не нужен.
set timer[A] = timer[Count]
не забудьте перенести данные unit[] integer[] и др с того массива на массив A
set unit[A] = unit[Count]
set integer[A] = integer[Count]
set Count=Count-1
endif
конец цикла
0
26
4 года назад
0
Ельнур, обязательно при создании переменной таймера укажи максимальный размер массива. Если не задашь, то timer[2] и далее изначально заданы не будут.
0
27
4 года назад
Отредактирован MpW
0
У меня такой вопрос, если одновременно запустить кучу таймеров нагрузка возрастет или никакой разницы? можно тогда было бы два таймера запускать +массивы времени заводить. один таймер от начала игры чтобы знать тек время, второй выбирать ближайшее время и запускать очереди. как только истекает ближайшее время, то запускать след.
0
24
4 года назад
0
обязательно при создании переменной таймера укажи максимальный размер массива. Если не задашь, то timer[2] и далее изначально заданы не будут.
Плохой совет, лучше создавать таймеры по мере необходимости - если заставить вар создавать несколько тысяч таймеров при старте карты, то можно очень быстро упереться в лимит операций в потоке.
0
26
4 года назад
0
Плохой совет, лучше создавать таймеры по мере необходимости
И как на GUI это сделать?
2
27
4 года назад
Отредактирован MpW
2
8gabriel8, я думаю он имел в виду, что вряд ли когда-нибудь картодел наделает 8192 таймера и упрется в лимит массива. Такое вряд ли осуществимо. По мере возможности.

Или как я предложил, использовать на всю игру два таймера +массивы времени. Мне вот интересно можно ли сделать чтоб чисто плавно игралось
1
28
4 года назад
1
prog, лучше вообще не создавать несколько тысяч таймеров
вар очень плохо переваривает большое количество таймеров
Steal nerves, а нафига 2?
можно 1 таймер с небольшим периодом
0
27
4 года назад
Отредактирован MpW
0
nvc123, это как 1 таймер с небольшим периодом
а нафига 2?
основной таймер - запускаем при старте игры на 999999 сек. от него можно узнать тек время (есть спец функции)
функции
истекшее время - сколько прошло времени с момента запуска
native TimerGetElapsed (timer whichTimer) returns real
оставшее время - сколько время осталось до истечения
native TimerGetRemaining (timer whichTimer) returns real
основное время - время, которое вводили при запуске таймера. можете узнать
native TimerGetTimeout (timer whichTimer) returns real
запускаемый таймер - работает по массивам времени. вот например: запустить через 20 сек,
set time[a]= тек время + 20 сек. 
берем пробегаем по массивам ищем ближайшее время. если массивы пусты, то запускаемый таймер отдыхает
0
18
4 года назад
0
TimerGetElapsed(), TimerGetRemaining() разве не создают погрешности?
0
26
4 года назад
0
Смотря что ты делаешь с этим таймером.
Обычно всё сводится к одному таймеру и набору данных.
Прежде всего таймер вызывает функцию? Нет, не обязательно, может вообще ничего не вызывать.
На гуи есть кс...
Показан только небольшой набор комментариев вокруг указанного. Перейти к актуальным.
Чтобы оставить комментарий, пожалуйста, войдите на сайт.