Page 1 of 1

Старт с начала.

Posted: 31.08.2019 17:20
by Elp
Доброе время суток, как я понял goto не работает из процедур, даже если объявить лэйбл глобально, в связи с этим вопрос как грамотной выйти из глубоко вложенного кода в начало главного скрипта, заранее спасибо.

Re: Старт с начала.

Posted: 01.09.2019 11:50
by DDoS
Сделай из процедуры функцию и возвращай bool, а в программе уже выполняй как if not Функция() then идем в начало

Re: Старт с начала.

Posted: 01.09.2019 14:48
by Elp
В том и дело что у меня много функций/процедур, плюс срабатывают события и в любой момент может потребоваться стартовать с начала (появился пк я среколился и надо запустить с начала), но неизвестно в каком месте скрипта будет сработка(событие обработается и продолжится скрипт с момента прерывания), и придется вводить во всех местах проверку на сработку от пк а это много и не оч удобно.

Re: Старт с начала.

Posted: 01.09.2019 16:27
by DDoS
Да, так и есть. Через глобальную переменную. и несколько проверок в разных местах программы

Re: Старт с начала.

Posted: 02.09.2019 6:26
by Vizit0r
PS вроде не умеет скакать по goto между функциями.

используй events.

Re: Старт с начала.

Posted: 04.09.2019 6:20
by Elp
Я использую 3-4 евентс, но вот сработал евент отрисовки чара пк, скрипт телепортировал домой, как запустить его с начала.
Выдержка описания goto для delphi:

"Ключевое слово Goto принуждает перескочить к данной метке. Его нежелательно использоваться в современном коде, так как это делает его очень трудным для восприятия. Главным образом используется, для того чтобы вызвать завершение глубоко вложенного кода, где логика к благополучному выходу была бы сложна. Никогда не используйте его для перехода в или из блока Try, а также в циклах или операторах выбора. Будьте осторожны!"
Эх надежда была на goto.

Re: Старт с начала.

Posted: 08.09.2019 21:19
by Vizit0r
пс это чистый паскаль, он так не умеет.

Re: Старт с начала.

Posted: 09.09.2019 8:13
by GeeZeR
Ну к примеру если это ходьба по маршруту и копание руды/рубка/рыбалка, то сделай отдельно функцию на ходьбу, отдельно на добычу ресов. В той функции, что по событию от пк тпшит тебя домой сделай тп на начало маршрута. Текущую точку маршрута обнули с помощью глобальной переменной, и чар снова пойдёт с первой точки это и будет как бы начало скрипта.