Как проверить, запущен ли скрипт и работает, аль нет?
Запущен ли скрипт
Лучший Ответ 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 { // скрипт работает };Перейти к сообщению
#1 OFFLINE
Отправлено 19 March 2015 - 12:12
#2 OFFLINE
Отправлено 19 March 2015 - 12:26
используй для таких моментов hint "Запущен"; очень просто и полезно. А работает ли он это смотря что за скрипт. hint ставь после тех строк которые вызывают сомнение. И в стиме в установке параметров запуска пропиши -showScriptErrors, выведет ошибки на экран.
#3 OFFLINE
Отправлено 19 March 2015 - 12:50
не не.
Я не про это.
Я имею ввиду, работает ли скрипт в данный момент, т.е. запущен ли он, или нет.
#4 OFFLINE
Отправлено 19 March 2015 - 13:09
mySuperScriptStatus = true;
а в конце:
mySuperScriptStatus = false;
Затем в любом инерисующем вас скрипте пишите
if (mySuperScriptStatus) then {hint "script working"} else {hint "script not working"};PS Надеюсь правильно вас понял
Сообщение отредактировал vlad333000: 19 March 2015 - 15:50
#6 OFFLINE
Отправлено 19 March 2015 - 14:27
vlad333000, Я так понимаю для тестов это можно в экшен запилить и проверять когда потребуется так?
P.S. И попутно вопросик)) Не пойму, что делает команда scriptDone
Сообщение отредактировал Djon: 19 March 2015 - 14:30
#7 OFFLINE
Отправлено 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
#8 OFFLINE
Отправлено 19 March 2015 - 14:45
2 - по сути тоже самое, что я писал выше, но только в более удобным способом - команда вовзатит true, когда скрипт, вызваный execVM или spawn, завершится, и false, когда он еще работает.
Сообщение отредактировал vlad333000: 19 March 2015 - 14:46
#9 OFFLINE
#10 OFFLINE
Отправлено 19 March 2015 - 15:32
Такая конструкция сразу же остановит выполнения какого либо кода будь то циклы или еще что-то?
terminate _script;
#12 OFFLINE
#13 OFFLINE
Отправлено 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
#14 OFFLINE
Отправлено 20 March 2015 - 20:14
Всё работает, спасибо!
Спасибо всем за отклик товарищи!!!