Добавлен
Использую след.конструкцию
globals
integer niju = XXXX
integer rokuju = XXXXXXX
endglobals
Function Lmao takes nothing returns nothing
	local integer i
	
	loop 
	exitwhen i == niju
		...
		i++
	endloop
	
	set i = 0
	
	loop 
	exitwhen i == rokuju
		...
		i++
	endloop
Вызывает лаги, т.к. я использую локалку i дважды для обоих циклов, а вот если я использую другую локалку, нууу, объявляю и использую ее для второго цикла, то уже не лагает. Как сделать так, чтобы не лагали циклы при использовании одной локалки для них всех.

LainMikoroso, описаное в вопросе невозможно технически по ряду причин. Более того, каждая новая локальная переменная только увеличивает количество выполняемых процессором команд, что определённо не может увеличивать производительность функции по определению.
`
ОЖИДАНИЕ РЕКЛАМЫ...
23
Похожие вопросы:

ответ
TAHK90:
убери действие for integer B
заведи себе переменную типа integer с именем count
далее выбираешь всех юнитов в группе
с каждым действием count увеличивай на 1
делаешь нужные действия если count меньше 2
если равен или больше - устаналивай на 0 и очищай группу
ответ
в гуи есть триггер-добавить событие
в триггере с событием инициализация 
если триггерная область == null (нету области)
	пробегаем циклом по массиву областей
	триггер - добавить событие этому триггеру (Юнит входит в область (Rect[А]))
иначе
	делаем то что надо делать при входе в 1 из 50 областей
иначе никак
ответ
~16GB:
ты что делаешь новые функции для гуи? если да, то нафига?
ответ
Custom script: exitwhen true
ответ
Лимит операций примерно 4 к. А у тебя тут поболее 16к.
Обойти лимит операций можно только разнеся действия в разные потоки. К примеру для через таймер.

15
Дичь или кривые условия в циклах. Ну типа niju или rokuju - отрицательные или очень-очень большие. И я не знаю, как и что там с инициализацией по-умолчанию локалки. (проверять самому лень). Но вообще, по сути должно инициализироваться автоматом нолем
14
EnergyFrost:
Дичь или кривые условия в циклах. Ну типа niju или rokuju - отрицательные или очень-очень большие. И я не знаю, как и что там с инициализацией по-умолчанию локалки. (проверять самому лень). Но вообще, по сути должно инициализироваться автоматом нолем
А, лол я забыл дописать, я локалку инициализирую нулем, а глобалки устанавливаются в другом триггере
15
LainMikoroso, в первый цикл допиши BJDebugMsg(I2S(niju)), во второй BJDebugMsg(I2S(rokuju )). Вот тебе счастье. Если все нормально выполняется и выходит, значит проблема не в этом куске
14
в первый цикл допиши BJDebugMsg(I2S(niju)), во второй BJDebugMsg(I2S(rokuju )). Вот тебе счастье. Если все нормально выполняется и выходит, значит проблема не в этом куске
(Если я использую другую локалку то все работает)
15
LainMikoroso, да, точно дичь втираешь. Какие значения у тебя принимают переменные условия цикла?
14
да, точно дичь втираешь. Какие значения у тебя принимают переменные условия цикла?
Положительные от 0 и до 10(не более, тестил с 0-2)
15
Короче. Вот тебе- проблема не с локалкой, а с условиями (ну если, конечно, пробелма в этих местах). Узнай какое из условий зацикливается и не выходит, и будет тебе счастье
14
EnergyFrost:
Короче. Вот тебе- проблема не с локалкой, а с условиями (ну если, конечно, пробелма в этих местах). Узнай какое из условий зацикливается и не выходит, и будет тебе счастье
(Поменял переменную все заработало)
Тебе еще раз повторить?
15
LainMikoroso, да, пожалуйста. 3 раза. Отладку давай лучше, чем упираться
32
LainMikoroso, вот кто так делает?
У вас цикл вовсе не должен запустится, ибо переменная не инициализрованна:
local integer i // необходимо заменить local integer i = 0
Потом есть лимит операций, нужно осторожнее с циклами в которых 100500 итераций.
Просадку фпс вызывает кривой код, предоставьте весь код а не этот пример...
14
quq_CCCP:
LainMikoroso, вот кто так делает?
У вас цикл вовсе не должен запустится, ибо переменная не инициализрованна:
local integer i // необходимо заменить local integer i = 0
Потом есть лимит операций, нужно осторожнее с циклами в которых 100500 итераций.
Просадку фпс вызывает кривой код, предоставьте весь код а не этот пример...
Читай ниже, плез, там я отписал что инициализирую, но забыл написать ее в коде.
Весь код в мейн записи.
15
LainMikoroso, вам 3 мапмейкера говорят одно и то же. Может быть, и правда она- дичь?
14
вам 3 мапмейкера говорят одно и то же. Может быть, и правда она- дичь?
Не
28
LainMikoroso,
сделай тестовую карту с этими, и чтобы там были лаги. Тогда мы тебе поверим.
30
LainMikoroso, описаное в вопросе невозможно технически по ряду причин. Более того, каждая новая локальная переменная только увеличивает количество выполняемых процессором команд, что определённо не может увеличивать производительность функции по определению.
Принятый ответ
Чтобы оставить комментарий, пожалуйста, войдите на сайт.