Перейти к содержимому


Фотография

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


Лучший Ответ 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 {
  // скрипт работает
};
Перейти к сообщению


  • Авторизуйтесь для ответа в теме
Сообщений в теме: 13

#1 OFFLINE   TankiSD

TankiSD

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

  • Пользователи
  • 680 сообщений

Отправлено 19 March 2015 - 12:12

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


  • 0

#2 OFFLINE   Djon

Djon

    Старшина

  • Пользователи
  • 433 сообщений

Отправлено 19 March 2015 - 12:26

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


  • 0

#3 OFFLINE   TankiSD

TankiSD

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

  • Пользователи
  • 680 сообщений

Отправлено 19 March 2015 - 12:50

не не.

 

Я не про это.

 

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


  • 0

#4 OFFLINE   vlad333000

vlad333000

    Полковник

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

Отправлено 19 March 2015 - 13:09

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

Сообщение отредактировал vlad333000: 19 March 2015 - 15:50

  • 0

#5 OFFLINE   Djon

Djon

    Старшина

  • Пользователи
  • 433 сообщений

Отправлено 19 March 2015 - 13:10

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


  • 0

#6 OFFLINE   Djon

Djon

    Старшина

  • Пользователи
  • 433 сообщений

Отправлено 19 March 2015 - 14:27

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

 

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


Сообщение отредактировал Djon: 19 March 2015 - 14:30

  • 0

#7 OFFLINE   vlad333000

vlad333000

    Полковник

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

Отправлено 19 March 2015 - 14:34

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

Сообщение отредактировал vlad333000: 19 March 2015 - 15:51

  • 1

#8 OFFLINE   vlad333000

vlad333000

    Полковник

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

Отправлено 19 March 2015 - 14:45

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

Сообщение отредактировал vlad333000: 19 March 2015 - 14:46

  • 0

#9 OFFLINE   Djon

Djon

    Старшина

  • Пользователи
  • 433 сообщений

Отправлено 19 March 2015 - 14:47

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


  • 0

#10 OFFLINE   Djon

Djon

    Старшина

  • Пользователи
  • 433 сообщений

Отправлено 19 March 2015 - 15:32

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

terminate _script;

  • 0

#11 OFFLINE   vlad333000

vlad333000

    Полковник

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

Отправлено 19 March 2015 - 15:48

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


  • 0

#12 OFFLINE   Djon

Djon

    Старшина

  • Пользователи
  • 433 сообщений

Отправлено 19 March 2015 - 16:20

vlad333000, :good:  


  • 0

#13 OFFLINE   SteelRat

SteelRat

    Полковник

  • Пользователи
  • 3241 сообщений
  • Откуда:РФ

Отправлено 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 {
  // скрипт работает
};

Сообщение отредактировал SteelRat: 19 March 2015 - 20:34

  • 2

#14 OFFLINE   TankiSD

TankiSD

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

  • Пользователи
  • 680 сообщений

Отправлено 20 March 2015 - 20:14

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

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


  • 0




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