Gosub: различия между версиями
Tatikoma (обсуждение | вклад) (Новая страница: « == Описание == Gosub - оператор перенаправления в подпрограмму (подпрограммой считается код...») |
Tatikoma (обсуждение | вклад) |
||
Строка 2: | Строка 2: | ||
== Описание == | == Описание == | ||
Gosub - оператор перенаправления в подпрограмму (подпрограммой считается код следующий после оператора окончания работы сценария - end_script). Для перенаправления необходимо задать метку, к которой будет произведено перенаправление. Метка имеет имя и задаётся знаком ":" (двоеточие). Имя метки задаётся произвольно и может содержать любые символы. | Gosub - оператор перенаправления в подпрограмму (подпрограммой считается код следующий после оператора окончания работы сценария - end_script). Для перенаправления необходимо задать метку, к которой будет произведено перенаправление. Метка имеет имя и задаётся знаком ":" (двоеточие). Имя метки задаётся произвольно и может содержать любые символы. | ||
− | + | <br>В отличии от goto имеет оператор для возврата обратно, в место перенаправления - return. | |
== Синтаксис == | == Синтаксис == | ||
Привязка к окну: Нет. | Привязка к окну: Нет. | ||
− | + | <br>Работа со свернутым окном: Да. | |
== Примеры == | == Примеры == | ||
Строка 76: | Строка 76: | ||
[[Goto]] | [[Goto]] | ||
− | + | <br>[[Call]] | |
− | + | <br>[[Proc]] | |
== История развития == | == История развития == | ||
'''1.01 beta 7''' | '''1.01 beta 7''' | ||
− | + | <br>Добавил команды для работы с подпрограммами. | |
− | gosub | + | gosub <метка> - переход на указанную метку |
return - возврат к последнему вызванному gosub, если вызовов не было, то ничего не делается. | return - возврат к последнему вызванному gosub, если вызовов не было, то ничего не делается. | ||
Подпрограммы рекомендуется располагать в конце скрипта и перед ними поставить либо end_script, либо goto на начало скрипта. | Подпрограммы рекомендуется располагать в конце скрипта и перед ними поставить либо end_script, либо goto на начало скрипта. | ||
'''2.39''' | '''2.39''' | ||
− | + | <br>Исправил ошибку в командах 'gosub' и 'goto', возникающую, если в названии метки используются заглавные не английские буквы. | |
[[Категория:Подпрограммы]] | [[Категория:Подпрограммы]] |
Текущая версия на 10:40, 28 августа 2019
Описание
Gosub - оператор перенаправления в подпрограмму (подпрограммой считается код следующий после оператора окончания работы сценария - end_script). Для перенаправления необходимо задать метку, к которой будет произведено перенаправление. Метка имеет имя и задаётся знаком ":" (двоеточие). Имя метки задаётся произвольно и может содержать любые символы.
В отличии от goto имеет оператор для возврата обратно, в место перенаправления - return.
Синтаксис
Привязка к окну: Нет.
Работа со свернутым окном: Да.
Примеры
// Пример 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
Добавил команды для работы с подпрограммами.
gosub <метка> - переход на указанную метку return - возврат к последнему вызванному gosub, если вызовов не было, то ничего не делается.
Подпрограммы рекомендуется располагать в конце скрипта и перед ними поставить либо end_script, либо goto на начало скрипта.
2.39
Исправил ошибку в командах 'gosub' и 'goto', возникающую, если в названии метки используются заглавные не английские буквы.