Hier ein kleines Restartscript welches ohne irgendwelche Programme läuft.
Ich habe das ganze noch nicht testen können also bin ich auf eure Hilfe angewiesen.
1. geht in eure description.exi und erstell bei CfgNotifications eine neue class.
class restart
{
title = "RESTART";
iconPicture = "\A3\ui_f\data\map\mapcontrol\taskIcon_ca.paa";
color[] = {0,0.8,0,1};
description = "%1";
duration = 10;
priority = 6;
};
2. geht in eure CfgRemoteExec.hpp und tragt folgendes ein
3. erstellt eine neue config im Config Ordner und tragt diese mit #include "Config_Restart.hpp" in der Config Master ein
class RestartTime
{
class times
{
RestartTimeHours[] = {
6,
12,
18,
0
};
/* Warn examples 5:00, 5:15, 5:30, 5:45, 5:55 */
WarnTimeHours[] = {
5,
11,
17,
23
};
WarnTimeMinutes[] = {
0,
15,
30,
45,
55
};
};
text[] = {
"Neustart in 60 Minuten! Zeiten 6 Uhr, 12 Uhr, 18 Uhr, 24Uhr",
"Neustart in 45 Minuten! Zeiten 6 Uhr, 12 Uhr, 18 Uhr, 24Uhr",
"Neustart in 30 Minuten! Zeiten 6 Uhr, 12 Uhr, 18 Uhr, 24Uhr",
"Neustart in 15 Minuten! Zeiten 6 Uhr, 12 Uhr, 18 Uhr, 24Uhr",
"Neustart in 5 Minuten! Zeiten 6 Uhr, 12 Uhr, 18 Uhr, 24Uhr"
};
};
Alles anzeigen
4. in eurem life_server tragt folgendes in eurer config.cpp in die class Systems ein
erstellt diese beiden Dateien unter life_server/Functions/Systems mit folgendem Inhalt
fn_getRealTime.sqf
/*
Autor: ԄӏՖҚ
Written for Die-Sippe
Gets the realtime if call it
*/
for "_i" from 0 to 1 step 0 do {
realTimeSippe = "extDB3" callExtension "9:LOCAL_TIME";
realTimeSippe = call compile realTimeSippe;
publicVariable "realTimeSippe";
sleep 0.1;
};
Alles anzeigen
fn_restart.sqf denkt hier bitte daran das ServerCommandPassword zu ändern da es sonst nicht geht.
/*
author: ԄӏՖҚ
description: Regelt die Restarts.
returns: nothing
*/
waitUntil{!(realTimeSippe isEqualTo [])};
//Set Vars once so they don't get called every time just once.
private _configRestartHours = getArray(missionConfigFile >> "RestartTime" >> "times" >> "RestartTimeHours");
private _configWarnTimeHours = getArray(missionConfigFile >> "RestartTime" >> "times" >> "WarnTimeHours");
private _configWarnTimeMinutes = getArray(missionConfigFile >> "RestartTime" >> "times" >> "WarnTimeMinutes");
private _configText = getArray(missionConfigFile >> "RestartTime" >> "text");
_configRestartHours params [
"_configRestartHoursOne",
"_configRestartHoursTwo",
"_configRestartHoursThree",
"_configRestartHoursFour"
];
_configWarnTimeHours params [
"_warnTimeHourOne",
"_warnTimeHourTwo",
"_warnTimeHourThree",
"_warnTimeHourFour"
];
_configWarnTimeMinutes params [
"_warnTimeMinuteOne",
"_warnTimeMinuteTwo",
"_warnTimeMinuteThree",
"_warnTimeMinuteFour",
"_warnTimeMinuteFive"
];
_configText params[
"_configTextOne",
"_configTextTwo",
"_configTextThree",
"_configTextFour",
"_configTextFive"
];
life_warnOne = true;
life_warnTwo = true;
life_warnThree = true;
life_warnFour = true;
life_warnFive = true;
for "_i" from 0 to 1 step 0 do {
private _times = realTimeSippe select 1;
private _Stunde = _times select 3;
private _Minute = _times select 4;
diag_log "---------------------------";
diag_log format["_Stunde %1 - _Minute %2", _Stunde, _Minute];
if(_Stunde in [_warnTimeHourOne, _warnTimeHourTwo, _warnTimeHourThree, _warnTimeHourFour])then{
//Restart Warn 1
if(_Minute isEqualTo _warnTimeMinuteOne && life_warnOne)then
{
diag_log format["Warn 1: %1 Minute %2", _configTextOne, _warnTimeMinuteOne];
["restart",[_configTextOne]] remoteExecCall ['bis_fnc_showNotification',0];
life_warnOne = false;
};
//Restart Warn 2
if(_Minute isEqualTo _warnTimeMinuteTwo && life_warnTwo)then
{
diag_log format["Warn 2: %1 Minute %2", _configTextTwo, _warnTimeMinuteTwo];
["restart",[_configTextTwo]] remoteExecCall ['bis_fnc_showNotification',0];
life_warnTwo = false;
};
//Restart Warn 3
if(_Minute isEqualTo _warnTimeMinuteThree && life_warnThree)then
{
diag_log format["Warn 3: %1 Minute %2", _configTextThree, _warnTimeMinuteThree];
["restart",[_configTextThree]] remoteExecCall ['bis_fnc_showNotification',0];
life_warnThree = false;
};
//Restart Warn 4
if(_Minute isEqualTo _warnTimeMinuteFour && life_warnFour)then
{
diag_log format["Warn 4: %1 Minute %2", _configTextFour, _warnTimeMinuteFour];
["restart",[_configTextFour]] remoteExecCall ['bis_fnc_showNotification',0];
life_warnFour = false;
};
//Restart Warn 5
if(_Minute isEqualTo _warnTimeMinuteFive && life_warnFive)then
{
diag_log format["Warn 5: %1 Minute %2", _configTextFive, _warnTimeMinuteFive];
["restart",[_configTextFive]] remoteExecCall ['bis_fnc_showNotification',0];
life_warnFive = false;
};
};
//Actual Restart
if(_Stunde in[_configRestartHoursOne,_configRestartHoursTwo,_configRestartHoursThree,_configRestartHoursFour] && _Minute isEqualTo 0)then
{
"CE8C283FB8EDDA1F89B3BD5C7EBE8" serverCommand "#restartserver";
};
diag_log "---------------------------";
sleep 5;
};
Alles anzeigen
5. geht in eurem life_server in die init.sqf und tragt vor EXTDB "9:LOCK"; folgendes ein
fertig. Bei Problemen einfach melden.