Gosub
Описание
Gosub - оператор перенаправления в подпрограмму (подпрограммой считается код следующий после оператора окончания работы сценария - end_script). Для перенаправления необходимо задать метку, к которой будет произведено перенаправление. Метка имеет имя и задаётся знаком ":" (двоеточие). Имя метки задаётся произвольно и может содержать любые символы. <br>В отличии от goto имеет оператор для возврата обратно, в место перенаправления - return.
Синтаксис
Привязка к окну: Нет. <br>Работа со свернутым окном: Да.
Примеры
// Пример 1 msg сейчас произойдёт перенаправление к метке имя$7name gosub имя$7name msg return вернул к месту перенаправления end_script :имя$7name msg перенаправление прошло успешно return
// Пример 2 while 1 = 1 gosub metka1 gosub metka2 gosub metka3 end_while :metka1 msg Перешли к метке1 return :metka2 msg Перешли к метке2 return :metka3 msg Перешли к метке3 return
// Пример 3 // начало скрипта // переменные с координатами, цветами и прочее // сам скрипт :start gosub findmob // подпрограмма поиска моба gosub attackmob // подпрограмма атаки gosub pickdrop // подпрограмма сбор дропа goto start :findmob set #a 0 while #a = 0 // выполнять пока не найден моб set #a findimage(0 0 1920 1080 (C:\mob.bmp) %arr) wait 100 end_while // как только моб найдётся будет сделан возврат к месту перенаправления // т. е. к строке 'gosub findmob' // скрипт продолжит работу со следующей строки // т. е. перейдёт к подпрограмме атаки моба return :attackmob while 328, 26 3342490 //выполнять пока моб не убит send {F1} wait 1000 end_while return :attackmob send {F5} // собрать дроп wait 500 send {F5} return
Смотрите также
История развития
1.01 beta 7 <br>Добавил команды для работы с подпрограммами.
gosub <метка> - переход на указанную метку return - возврат к последнему вызванному gosub, если вызовов не было, то ничего не делается.
Подпрограммы рекомендуется располагать в конце скрипта и перед ними поставить либо end_script, либо goto на начало скрипта.
2.39 <br>Исправил ошибку в командах 'gosub' и 'goto', возникающую, если в названии метки используются заглавные не английские буквы.