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

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

Закрытая тема
 
ShadoW DaemoN

offline
Опыт: 37,078
Активность:
Передача переменных в события
Столкнулся с такой проблемой: при передаче глобальной переменной в событие, триггер либо начинает тормозить всю карту (периодический), либо вообще перестает работать (игровое время).
Триггер Add event to trigger не катит.
Прикрепленные файлы
Тип файла: w3x event and variables.w3x (14.8 Кбайт, 8 просмотров )
Старый 07.02.2007, 10:48
DeT

offline
Опыт: 5,715
Активность:
Во втором триггере?

DeT добавил:
попробуем давать локалкам
Старый 07.02.2007, 11:07
nic666

offline
Опыт: 5,612
Активность:
Это не так!!! Ошибка в другом!

Код:
function InitTrig_Periodical takes nothing returns nothing
    set gg_trg_Periodical = CreateTrigger()
    call TriggerRegisterTimerEventPeriodic(gg_trg_Periodical, udg_Period)
    call TriggerAddAction(gg_trg_Periodical, function Trig_BGS_Periodical_Actions)
endfunction


На момент создания триггера udg_Period=0 - в этом месте кода может быть только КОНСТАНТА.
В результате твой триггер работет без перерыва и очередь триггеров постоянно переполнена.

nic666 добавил:
поставь там конкретно 30.0 и все сразу перестангет тормозить
Старый 07.02.2007, 11:09
DeT

offline
Опыт: 5,715
Активность:
угумс..nic666

зы: или создавай динамически, там вроде мона задавать значения из переменных
Старый 07.02.2007, 11:11
nic666

offline
Опыт: 5,612
Активность:
Вообще для этого лучше делай не периодический триггер, а отдельный таймер.
и никакого гемора с Add/Remove Event
Старый 07.02.2007, 11:12
ShadoW DaemoN

offline
Опыт: 37,078
Активность:
При инициализации карты значение Period приравнивается к 30.00 (триггер Init). Почему он обнуляется - не в курсе.

Цитата:
Сообщение от nic666
поставь там конкретно 30.0 и все сразу перестангет тормозить


Нет, я то разобрался в этом, но мне желательно обойти это ограничение.

С таймером попробую.
Старый 07.02.2007, 11:25
DeT

offline
Опыт: 5,715
Активность:
ShadoW DaemoN создай динамически, мб срботает
Старый 07.02.2007, 11:27
ShadoW DaemoN

offline
Опыт: 37,078
Активность:
ааа, все я разобрался.
Нужно перед строкой
Код:
call TriggerRegisterTimerEventPeriodic(gg_trg_Periodical, udg_Period)

выполнять триггер с установкой начальных значений глобалок
Код:
call TriggerExecute(gg_trg_Init)

Тогда переменные не будут нулевыми => по теореме Шпингалета, периодический триггер лагать не будет.
DeT, nic666 спасибо.
Старый 07.02.2007, 11:46
Закрытая тема

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

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

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

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



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