Что нового

ExitLoop и Return до уровня основной петли из AdlibRegister

NoMad73rus

Продвинутый
Сообщения
124
Репутация
80
Скрипт имеет большое количество петель различной степени вложенности(это бот). на случай зависания игры есть функция вызываемая по AdlibRegister. Дело в том, что в случае зависания нужно выйти из всех петель и функций, до уровня самой первой петли.
 

SyDr

Сидра
Сообщения
651
Репутация
158
Во всех "петлях" поставь
Код:
If $bNeedExit Then ExitLoop (Или Return)

В функции, вызываемой по AdlibRegister,
Код:
If <Зависание> Then $bNeedExit = True
 
Автор
N

NoMad73rus

Продвинутый
Сообщения
124
Репутация
80
Это да, но хотелось бы более простого решения, потому, что не возможно предугадать какая степень вложенности будет в том или ином месте.
 

Belfigor

Модератор
Локальный модератор
Сообщения
3 596
Репутация
938
Зачем вообще использовать рекурсии в ботах? Это не модно
 

CreatoR

Must AutoIt!
Команда форума
Администратор
Сообщения
8 473
Репутация
2 403
NoMad73rus [?]
не возможно предугадать какая степень вложенности будет в том или ином месте
Как так, скрипт сам бот пишет? :laugh: При нраммотном кодинге всё можно предугадать (хотя изначально не следует доводить до состояния когда приходится что-то угадывать).
 
Автор
N

NoMad73rus

Продвинутый
Сообщения
124
Репутация
80
Скрипт пишет не бот, но бот читает некий файл написанный пользователем (по сути отдельный скрипт с отдельными командами), из за этого и рождаются неизвестные уровни вложенности.
 

CreatoR

Must AutoIt!
Команда форума
Администратор
Сообщения
8 473
Репутация
2 403
NoMad73rus [?]
бот читает некий файл написанный пользователем
Значит нужно предоставить ответственность пользователю завершать циклы.
Хотя мне трудно представить как можно динамический создавать циклы... в любом случае, всегда можно ставить метки (счётчик) о создании цикла, и соответственно завершать его.
 
Верх