Forum in READ ONLY mode! All questions and discussions on Discord official server, invite link: https://discord.gg/VxsGzJ7

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

Post Reply
Elp
Posts: 7
Joined: 19.07.2019 17:45

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

Post by Elp »

Доброе время суток, как я понял goto не работает из процедур, даже если объявить лэйбл глобально, в связи с этим вопрос как грамотной выйти из глубоко вложенного кода в начало главного скрипта, заранее спасибо.
DDoS
Novice
Novice
Posts: 53
Joined: 10.04.2018 21:34

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

Post by DDoS »

Сделай из процедуры функцию и возвращай bool, а в программе уже выполняй как if not Функция() then идем в начало
Elp
Posts: 7
Joined: 19.07.2019 17:45

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

Post by Elp »

В том и дело что у меня много функций/процедур, плюс срабатывают события и в любой момент может потребоваться стартовать с начала (появился пк я среколился и надо запустить с начала), но неизвестно в каком месте скрипта будет сработка(событие обработается и продолжится скрипт с момента прерывания), и придется вводить во всех местах проверку на сработку от пк а это много и не оч удобно.
DDoS
Novice
Novice
Posts: 53
Joined: 10.04.2018 21:34

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

Post by DDoS »

Да, так и есть. Через глобальную переменную. и несколько проверок в разных местах программы
User avatar
Vizit0r
Developer
Developer
Posts: 3958
Joined: 24.03.2005 17:05
Contact:

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

Post by Vizit0r »

PS вроде не умеет скакать по goto между функциями.

используй events.
"Пишите код так, как будто сопровождать его будет склонный к насилию психопат, который знает, где вы живете". (с) Макконнелл, "Совершенный код".
Elp
Posts: 7
Joined: 19.07.2019 17:45

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

Post by Elp »

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

"Ключевое слово Goto принуждает перескочить к данной метке. Его нежелательно использоваться в современном коде, так как это делает его очень трудным для восприятия. Главным образом используется, для того чтобы вызвать завершение глубоко вложенного кода, где логика к благополучному выходу была бы сложна. Никогда не используйте его для перехода в или из блока Try, а также в циклах или операторах выбора. Будьте осторожны!"
Эх надежда была на goto.
User avatar
Vizit0r
Developer
Developer
Posts: 3958
Joined: 24.03.2005 17:05
Contact:

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

Post by Vizit0r »

пс это чистый паскаль, он так не умеет.
"Пишите код так, как будто сопровождать его будет склонный к насилию психопат, который знает, где вы живете". (с) Макконнелл, "Совершенный код".
GeeZeR
Apprentice
Apprentice
Posts: 226
Joined: 28.01.2012 19:48

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

Post by GeeZeR »

Ну к примеру если это ходьба по маршруту и копание руды/рубка/рыбалка, то сделай отдельно функцию на ходьбу, отдельно на добычу ресов. В той функции, что по событию от пк тпшит тебя домой сделай тп на начало маршрута. Текущую точку маршрута обнули с помощью глобальной переменной, и чар снова пойдёт с первой точки это и будет как бы начало скрипта.
Stealth 8.10.2 | Клиент: 7.0.13.4
Post Reply