Jump to content


Photo

Запущен ли скрипт


Best Answer SteelRat , 19 March 2015 - 20:33

TankiSD, как вариант: в начале скрипта пишешь:  


mySuperScriptStatus = true;
 
а в конце: 
mySuperScriptStatus = false;
 
Затем в любом инерисующем вас скрипте пишите 
if (mySuperScriptStatus) then {hint "script working"} else {hint "script not working"};
PS Надеюсь правильно вас понял

 

 

По сути это самый правильный и менее накладный способ мониторить требуемое условие, с лёгкой правкой

 

В начало скрипта

mySuperScriptStatus = true;

А в местах где нужно провести проверку

if (isNil "mySuperScriptStatus") then {
   // скрипт не работает
} else {
   // скрипт работает
};

ЗЫ
 
Или так
 

mySuperScriptStatus = [] execVM "mySuperScript.sqf";

А в местах где нужно провести проверку

if (isNil "mySuperScriptStatus") then {
  // скрипт не работает
} else {
  // скрипт работает
};
Go to the full post


  • Please log in to reply
13 replies to this topic

#1 OFFLINE   TankiSD

TankiSD

    Ст. Прапорщик

  • Пользователи
  • 680 posts

Posted 19 March 2015 - 12:12

Как проверить, запущен ли скрипт и работает, аль нет? 


  • 0

#2 OFFLINE   Djon

Djon

    Старшина

  • Пользователи
  • 433 posts

Posted 19 March 2015 - 12:26

используй для таких моментов hint "Запущен"; очень просто и полезно. А работает ли он это смотря что за скрипт. hint ставь после тех строк которые вызывают сомнение. И в стиме в установке параметров запуска пропиши -showScriptErrors, выведет ошибки на экран. 


  • 0

#3 OFFLINE   TankiSD

TankiSD

    Ст. Прапорщик

  • Пользователи
  • 680 posts

Posted 19 March 2015 - 12:50

не не.

 

Я не про это.

 

Я имею ввиду, работает ли скрипт в данный момент, т.е. запущен ли он, или нет. 


  • 0

#4 OFFLINE   vlad333000

vlad333000

    Полковник

  • Пользователи
  • 3224 posts
  • Откуда:Кострома

Posted 19 March 2015 - 13:09

TankiSD, как вариант: в начале скрипта пишешь:  
mySuperScriptStatus = true;
 
а в конце: 
mySuperScriptStatus = false;
 
Затем в любом инерисующем вас скрипте пишите 
if (mySuperScriptStatus) then {hint "script working"} else {hint "script not working"};
PS Надеюсь правильно вас понял

Edited by vlad333000, 19 March 2015 - 15:50.

  • 0

#5 OFFLINE   Djon

Djon

    Старшина

  • Пользователи
  • 433 posts

Posted 19 March 2015 - 13:10

TankiSD, Где по форуму видел уже ответ, но точно не помню где.  


  • 0

#6 OFFLINE   Djon

Djon

    Старшина

  • Пользователи
  • 433 posts

Posted 19 March 2015 - 14:27

vlad333000, Я так понимаю для тестов это можно в экшен запилить и проверять когда потребуется так? 

 

P.S. И попутно вопросик)) Не пойму, что делает команда scriptDone


Edited by Djon, 19 March 2015 - 14:30.

  • 0

#7 OFFLINE   vlad333000

vlad333000

    Полковник

  • Пользователи
  • 3224 posts
  • Откуда:Кострома

Posted 19 March 2015 - 14:34

Или вот еще вариант, если именно это тубе нужно:
script_handler = [parameters] execVM "scriptname.sqf";
waitUntil {hint "script working..."; scriptDone script_handler };
hint "script stop working";

Edited by vlad333000, 19 March 2015 - 15:51.

  • 1

#8 OFFLINE   vlad333000

vlad333000

    Полковник

  • Пользователи
  • 3224 posts
  • Откуда:Кострома

Posted 19 March 2015 - 14:45

Djon, 1 - да
2 - по сути тоже самое, что я писал выше, но только в более удобным способом - команда вовзатит true, когда скрипт, вызваный execVM или spawn, завершится, и false, когда он еще работает.

Edited by vlad333000, 19 March 2015 - 14:46.

  • 0

#9 OFFLINE   Djon

Djon

    Старшина

  • Пользователи
  • 433 posts

Posted 19 March 2015 - 14:47

vlad333000, Я думаю этого как раз и хотел автор темы.  


  • 0

#10 OFFLINE   Djon

Djon

    Старшина

  • Пользователи
  • 433 posts

Posted 19 March 2015 - 15:32

Такая конструкция сразу же остановит выполнения какого либо кода будь то циклы или еще что-то?

terminate _script;

  • 0

#11 OFFLINE   vlad333000

vlad333000

    Полковник

  • Пользователи
  • 3224 posts
  • Откуда:Кострома

Posted 19 March 2015 - 15:48

Djon, terminate - Terminate (abort) spawned or execVM'd script - Завершить (прервать) скрипт запущенный с помощью spawn или execVM.


  • 0

#12 OFFLINE   Djon

Djon

    Старшина

  • Пользователи
  • 433 posts

Posted 19 March 2015 - 16:20

vlad333000, :good:  


  • 0

#13 OFFLINE   SteelRat

SteelRat

    Полковник

  • Пользователи
  • 3241 posts
  • Откуда:РФ

Posted 19 March 2015 - 20:33   Best Answer

TankiSD, как вариант: в начале скрипта пишешь:  


mySuperScriptStatus = true;
 
а в конце: 
mySuperScriptStatus = false;
 
Затем в любом инерисующем вас скрипте пишите 
if (mySuperScriptStatus) then {hint "script working"} else {hint "script not working"};
PS Надеюсь правильно вас понял

 

 

По сути это самый правильный и менее накладный способ мониторить требуемое условие, с лёгкой правкой

 

В начало скрипта

mySuperScriptStatus = true;

А в местах где нужно провести проверку

if (isNil "mySuperScriptStatus") then {
   // скрипт не работает
} else {
   // скрипт работает
};

ЗЫ
 
Или так
 

mySuperScriptStatus = [] execVM "mySuperScript.sqf";

А в местах где нужно провести проверку

if (isNil "mySuperScriptStatus") then {
  // скрипт не работает
} else {
  // скрипт работает
};

Edited by SteelRat, 19 March 2015 - 20:34.

  • 2

#14 OFFLINE   TankiSD

TankiSD

    Ст. Прапорщик

  • Пользователи
  • 680 posts

Posted 20 March 2015 - 20:14

Всё работает, спасибо!

Спасибо всем за отклик товарищи!!!  


  • 0




Яндекс.Метрика