Появился такой вопрос: как в gm 8.0 можно сделать повтор цикла, путём возвращения к указанной строке, иначе говоря, есть ли здесь альтернатива "goto"?
Логику всегда можно составить так, что оператор goto не понадобится (и подобного оператора нет в GM).
Вариантов много. Один из - цикл завернуть в бесконечный цикл (while true), и проверять, нужно ли выходить из цикла (с помощью break), или нет. Так же можно ввести дополнительные переменные, по которым будут выполняться или пропускаться блоки кода.
И второй вопрос: у NPC есть задание - собирать брёвнышки. Как можно сделать так, чтобы собрав пять из десяти брёвнышек, он переключался на другое действие?
Должна быть какая-то переменная, которая показывает номер текущего действия. Изменили переменную - изменили действие.
Само же действие определяется через switch
switch global.current_action
{
case 0:
// действие 1, собираем дерево
..
if wood == 5 // если собрали 5 единиц дерева
{
global.current_action = 1; // переключение на следующее действие
}
break;
case 1:
// действие 2
break;
case 2:
// действие 3
break;
}