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

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

Ответ
 
HatoL

offline
Опыт: 439
Активность:
Помогите с wait или "события с малым периодом"
У меня есть триггер, в котором надо объявить локальную переменную. Надо реализовать так, чтобы она при каждом запуске триггера (или цикла) увеличивалась на 100 единиц. Теперь моя трабла: 1. Так как это локальная переменная, то ее можно объявить только в начале триггера (внутри цикла уже не получится - вариант с циклом отпадает). 2. Мне надо хранить предыдущее значение переменной, а так как событие Periodic Event просто повторяет триггер, то при каждом запуске будет объявляться новая переменная - соответственно старое значение пропадает. Помогите плз. Что мне делать в таком случае?
Старый 24.05.2006, 20:48
exAres
I love magic :)
offline
Опыт: 7,788
Активность:
HatoL есть два варианта(вроде): 1)создать не локальную а глобальную переменную, 2)сохранять переменную в кеш.

ЗЫ а почему циклом низя ? создаёшь в начале переменную а потом циклом её увеличиваешь!
Старый 24.05.2006, 21:24
w3soft
ТГБ тим
offline
Опыт: 1,769
Активность:
Код:
local integer i
loop
exitwhen i = <число>
<действия>
set i = i + 1
endloop
Старый 25.05.2006, 06:40
HatoL

offline
Опыт: 439
Активность:
MrSmiLe и w3soft спасибо! что-то я не доDOOMался сразу сам... в первый раз же пишу такой тригг... (с jass) Закрывайте тему
Старый 25.05.2006, 13:34
DioD

offline
Опыт: 45,134
Активность:
CС глобалками он выглядит точно так-же.
Старый 25.05.2006, 15:57
HatoL

offline
Опыт: 439
Активность:
Пока не закрывайте плз, поторопился я. Вопрос насчет циклов: wait'ы работают там неточно, поэтому надо что-то другое. Помогите плз.
Старый 26.05.2006, 00:08
w3soft
ТГБ тим
offline
Опыт: 1,769
Активность:
В конце триггера присвой значение локальной переменной глобальной. При запуске триггера из глобальной будет извлекаться значение, которое будет присвиваться локальной.
Старый 26.05.2006, 05:54
HatoL

offline
Опыт: 439
Активность:
тогда какой смысл вообще объявлять локальную переменную? Если юнитов будет два, то заклинание не будет работать на обоих.
Старый 26.05.2006, 11:45
felix_ff

offline
Опыт: 757
Активность:
тоды юзай кеш...
примеру:
function F_Actions takes nothing returns nothing
local integer i = GetStoredInteger(udg_Cache, I2S(H2I(GetTriggeringTrigger())), "i")
далее твои действия
set i = i + 100
call StoreInteger(udg_Cache, I2S(H2I(GetTriggeringTrigger())), "i", i)
endfunction
Старый 26.05.2006, 11:49
Iron
Листовой
offline
Опыт: 24,427
Активность:
Можно заносить значение переменной в Custom Value кастующего юнита.
Старый 26.05.2006, 16:48
exAres
I love magic :)
offline
Опыт: 7,788
Активность:
HatoL зато таймеры точно ! Нужно заносить переменную в КЕШ и сохранять на Хендл таймера а в функции таймера считывешь с него информацию и потом, если нужно, опять заносишь. Ща пример писать нет времени !
Старый 26.05.2006, 17:44
Ответ

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

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

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

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



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