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', возникающую, если в названии метки используются заглавные не английские буквы.