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

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

Ответ
 
Kreker

offline
Опыт: 3,614
Активность:
Локальные переменные
Стоит ли использовать локальные переменные, если если триггер содержит событие Pereodic Event, но не содержит команды Wait?
Старый 25.01.2008, 12:59
adic3x

offline
Опыт: 108,439
Активность:
код в студию
Старый 25.01.2008, 13:11
Semionn

offline
Опыт: 472
Активность:
Да, тумаю.
Старый 25.01.2008, 13:17
Toadcop

offline
Опыт: 54,313
Активность:
Kreker да. но всё зависит от задачи. н вообщем кратко и ясно да.

смотри я понял в чём твой вопрос =) короче все действия в варе упорядоченые (последовательные) т.е. когда срабатывает триггер (с периодическим евентом) то всед ействия в нём выпонятьса по порядку без перебиваний (есть "исключения" если ты дамаджиш или приказваеш евент то действия (ну и события) триггер с евентом на дмг и евент "интегрируютьса" внутрь после этого действия.) это я называю instant-event'ами т.е. которые срабатывают мгновено вот с ними надо осторожно...

так после возможно запутоной речи xD да стоит но не создавай их слишком много. (т.к. сама инциализация локально переменой требует определёное время а так локалки самые быстрые переменые.)
Старый 25.01.2008, 13:19
Kreker

offline
Опыт: 3,614
Активность:
Код в студии:


Toadcop спасибо) Но всё равно вот код для подтверждения...
Старый 25.01.2008, 13:51
Toadcop

offline
Опыт: 54,313
Активность:
да можно вон тока в конце есть дейсвие на урон... т.е.
хотя на локалки это не как не повлияет =)
Старый 25.01.2008, 15:32
ScorpioT1000
Работаем
offline
Опыт: отключен
ОМГ представляю что будет после конверта
Старый 25.01.2008, 20:35
adic3x

offline
Опыт: 108,439
Активность:
насколько я понял в этот тригер тф и хочешь добавить локалки? насколько я помню в гуи при конструкции if условие выноситься в отдельную фцию, т.е. использовать локалки в условии низя
Старый 25.01.2008, 22:17
FellGuard
Losyash
offline
Опыт: 39,547
Активность:
Цитата:
if условие выноситься в отдельную фцию, т.е. использовать локалки в условии низя
.. эмм, ты хотел сказать можно)? В гуи конструкциях вида "блочной структуры" (с красивенькими такими сворачивающимися списками действий), т.е. все что связано со словом multiple как правило использует вынесение в отдельную функцию как и сказал Адольф, так что локалки целесообразно использовать в пределах одного блока. В пределах разных блоков они не будут сохранять значение, там будут глобалсы и прикладные функции типа Get-Filter-Trigger-SmthngElse-Unit()

FellGuard добавил:
Например, в гуишном аналоге ForGroup удобно загонять GetEnumUnit() в локальную переменную, объявленную в теле блока:
Код:
Pick every unit in (group) and do: multiple function:
 `---> local unit u = GetEnumUnit()
       ...
       // multiple actons with u
       ...
       set u = null
Конечно, злоупотреблять локальными переменными тоже не стоит. Например, если в блоке есть всего одно обращение к GetEnumUnit() то выделение памяти под локальную переменную-юнита со значением GetEnumUnit() необоснованно
Старый 26.01.2008, 08:20
adic3x

offline
Опыт: 108,439
Активность:
Цитата:
выделение памяти под локальную переменную-юнита со значением GetEnumUnit() необоснованно

кстати да, т.е. я последнее время иногда юзаю _temp глобальные переменные, резон - нет ограничения области видимости, т.е. к примеру т.е. если надо что то передать в ФорГроуп() или тот же екзекуд весьма полезно

также скажу что локлки создаются при каждом запуске функции это не важно если все идет одни потоком т.е. тогда можно использовать и глобалки, но к примеру если
Код:
local integer i=0x00
call PooledWait(1.)
call DoSomethng(i)

то мы точно уверены что все будет норм (хотя нет т.к. такод код плох)
а с таймерами передача через локалку невозможна (там либо кешь либо системы)
Старый 26.01.2008, 13:44
ScorpioT1000
Работаем
offline
Опыт: отключен
Да какие проблемы? Чтобы локализироать, стоит всего функцию создать и все. прям беда какаято кабута!
Старый 26.01.2008, 20:35
Toadcop

offline
Опыт: 54,313
Активность:
ScorpioT1000 ты не шариш =) здесь высшие материи :pray:

да про лок и глобал.

если мы пускаем функции часто и в которой мало действий и надо несока перемных то ЛУТЧЕ юзать глобалки.

если мы пускам большой кусок когда и нам надо многовато пременых и выполняец много операция то ЛУТЧЕ юзать локальные (т.к. они быстрей, это не касаетьса ихней алокации =)) т.е. напр для преодического движения объектов в цыкле ясно что лутче будут локалки...
Старый 27.01.2008, 17:26
Ответ

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

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

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

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



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