Jump to content
Search In
  • More options...
Find results that contain...
Find results in...
  • Need help?

    Create a topic in the appropriate section
    Don't write everything in the chat!
  • Take a look at the marketplace

    There you can buy
    everything related to game servers
  • Don't want a ban?

    Please read our rules
    Don't disturb the order!
  • Sell or buy?

    Use services of the guarantor
    We will make your deal safe
  • 0
TheLinsus

Как выйти из скрипта

Имеется много разных IFов и других циклов в скрипте. 

1. Как в любом месте закончить выполнение скрипта?

2. Как использовать Goto?

Share this post


Link to post
Share on other sites

4 answers to this question

Recommended Posts

  • 0

P.S.

1.

Если в скрипте множество циклов, в ходе выполнения которых, при определенных условиях, так же должны быть осуществлен выход -

добавь переменную _exit, и ставь ее в true

а по выходу из цикла проверяй.

Пример:

 

_exit = false;

while {true} do

{

  if (_a > _b) exitWith {}; // выйдет из цикла while

  {

    if (_x < _a) exitWith {_exit = true;}; // выйдет из цикла forEach, - поэтому чтобы выйти из цикла while ставим переменную _exit в true

  } forEach _xxx;

if (_exit) exitWith {}; // выйдет из цикла while, если _exit - true

  sleep 1;

};

 

*В множестве вложенных циклов, все точно так же - по завршению цикла достаточно будет проверять переменную _exit

2. использование всяких GoTo, BreakOut и т.п. это "архаизм" - появившийся в эпоху становления языков программирования. Когда логика программного кода еще была не продумана, и не освоена.

Любое использование гото в компании - производителя софта, = увольнению. т.к. говнокодинг. - Следствие не правильной логики приложения, и попытки извернутся, вместо правильного написания.

хоть процедурно, хоть используя ООП - надо правильно составить логику кода, и проблем не будет.

Edited by NoNameUltima (see edit history)

Share this post


Link to post
Share on other sites



  • 0

P.S.

1.

Если в скрипте множество циклов, в ходе выполнения которых, при определенных условиях, так же должны быть осуществлен выход -

добавь переменную _exit, и ставь ее в true

а по выходу из цикла проверяй.

Пример:

 

_exit = false;

while {true} do

{

  if (_a > _b) exitWith {}; // выйдет из цикла while

  {

    if (_x < _a) exitWith {_exit = true;}; // выйдет из цикла forEach, - поэтому чтобы выйти из цикла while ставим переменную _exit в true

  } forEach _xxx;

if (_exit) exitWith {}; // выйдет из цикла while, если _exit - true

  sleep 1;

};

 

*В множестве вложенных циклов, все точно так же - по завршению цикла достаточно будет проверять переменную _exit

2. использование всяких GoTo, BreakOut и т.п. это "архаизм" - появившийся в эпоху становления языков программирования. Когда логика программного кода еще была не продумана, и не освоена.

Любое использование гото в компании - производителя софта, = увольнению. т.к. говнокодинг. - Следствие не правильной логики приложения, и попытки извернутся, вместо правильного написания.

хоть процедурно, хоть используя ООП - надо правильно составить логику кода, и проблем не будет.

Благодарю за подробный ответ. Только один вопрос: ExitWith выходит же только из цикла, в котором он находится?

Share this post


Link to post
Share on other sites
  • 0

из текущего кода  выходит.

 

_a = 1;

_b = 1;

_c = _a + _b;

if (_c < 10) exitWith {};

_a = 5; // выполнено не будет

Edited by NoNameUltima (see edit history)

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

  • Similar Content

    • By Serdce
      Данный скрипт, меняет процесс ремонта вашей техники, делая её более логичней, как было в А2.
      Для замены колеса, на нужно собственно само колесо, и тд. и тп. 
      Подробный список чего и для чего вы найдёте в файлах.
       
      Итак, преступим!
      Я не автор, я всего лишь перевожу.
      Первоисточник - https://github.com/aussie-battler/Exilemod-Super-Advanced-Repair-System-SARS
      По ссылке выше скачиваем архив, распаковываем в удобное место.
      Распаковываем ваше миссию "Exile.ваша карта"
      Из архива копируем папку "Custom" в папку вашей миссии "Exile.ваша карта"
      Открываем ваш description.ext  в нем мы ищем showHUD[] = 
      и полностью меняем на это - 
      Далее открываем ваш - initPLayerLocal.sqf
      В этом файле, сразу после строки - if (!hasInterface || isServer) exitWith {};
      Мы добавляем 
      //Bones Super Advanced Repair System (SARS)
      Bones_fnc_salvageAndRepairMenu = compileFinal preprocessFileLineNumbers "Custom\advancedRepair\Bones_fnc_salvageAndRepairMenu.sqf"; 
      Далее открываем ваш - config.cpp
      В нем мы ищем - class Car
      Внутри этого класса мы ищем
       
      И меняем на 
      Так же далее чуть ниже - class Air
      В нем мы также меняем это
      На это 
       
      Далее для если у вас есть Infistar!
      Распаковываем ваш инфистар и открываем его конфиг.
      В нём ищем     KCM = "true"; /* Just close ALL CommandingMenus */
      И меняем значение на false
      Чуть ниже в строке allowedCommandingMenus
      Мы добавляем  "#USER:ASL_Show_Repair_Options_Menu_Array"
      Ну вот и всё готово, всё сохранили и запаковали как было!
       
    • By fedotovyasha
      Хочу немного изменить сообщения перед отправкой клиенту
    • By fedotovyasha
      Пишу свой лаунчер на c#. Скачал клиент в котором был loader.exe. С ним работает норм, но я хочу без него запускать игру. Как это сделать? (Пиратка)
    • By Miduznya
      Собственно как, как отключить battleye на сервере античит

      параметр BattlEye=0; не работает я так понял 
    • By DrTauren
      На нашем сайте предусмотрена возможность рекламирования вашего игрового сервера/сайта/програмного обеспечения при помощи баннеров и ссылок.
       
      Баннеры под первым сообщением темы ↓
       
      Баннер на главной странице (над чатом) ↓
       
      Ссылки над первым сообщением темы ↓
       
      Ссылка на главной странице (над чатом) ↓
       
       

      Заявку вы можете заполнить в этой же теме, либо написать мне в ЛС.
      Любые сообщения не по теме запрещены.
  • Our picks

×
×
  • Create New...

Important Information

By using this site, you automaticly agree to our Guidelines and Privacy Policy.
We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.