Всем привет
Сорри что не по теме пишу, просто "не вынесла душа поэта", а новую тему создавать нет смысла.
Запреты в написании скриптов на использование чего либо всегда есть, и правила хорошего тона тоже существуют.
Хочу выступить в защиту "богомерзкого" GOTO и по поводу "нельзя вкладывать подпрограмму в подпрограмму".
Вот мой рабочий скрипт для воина в World of Warcraft: Mists of Pandaria. Он не доделанный и не оптимизированный, но рабочий и достаточный для прокачки персонажа и чтобы попасть в на вершину рейтинга по нанесенному урону среди игроков на поле боя.
Это не бот, а ассистент для боя (или "выпрямитель рук"), от игрока требуется только подойти к цели на расстояние атаки и стоять лицом к противнику. Всё остальное скрипт сделает сам. Но не в этом в общем дело. Посмотрите на количество GOTO в скрипте и вложенные друг в друга подпрограммы. Там всего один GETSCREEN на весь сценарий.
Задача была такая, чтобы после выполнения
каждого атакующего действия скрипт возвращался в начало сценария и проверял, не готово ли
более высокое по приоритету действие. И, если готово, то выполнил именно его, так как оно будет самым правильным в данный момент боя. Можно ли как то написать по другому я не знаю, и надо ли всё усложнять? Читаемость скрипта по моему отличная, скорость выполнения даже избыточная. Структура скрипта пока простейшая.
1. Сделать снимок экрана.
2. Выбрать оптимальное (по приоритету) действие.
3. Выполнить это действие.
4. Вернуться в начало сценария (непосредственно после выполнения действия,
не тратя время на оставшийся код).
Конечно я всё сделал не "по понятиям", но я рискнул и у меня получилось, чего и вам желаю.
Скрипт во вложении.