Odin Wartungsmodus

03/07/2015 22:04 Cℓoud#1
Ich glaub das Thema gab es hier schonmal, allerdings hab ich dazu nichts mehr finden können. Ich wollte mal Fragen wie und ob es möglich wäre den Server in den Maintenance Modus zu versetzen oder kann man das nur über den Patcher realisieren?
03/07/2015 22:49 xKeRnx#2
Einfachste wäre wahrscheinlich über den Patcher auch allein schon für die Spieler da sie direkt bei drücken des Login Buttons die Meldung bekommen das der Server im Maintenance Modus ist und nicht erst beim öffnen des Clients :)
03/07/2015 23:01 DuOtto#3
Bei den 2008er Files konnte man das ja noch über den Server regeln, die Spieler bekamen dann die Nachricht im Client.

Bei den Odin Files geht das ziemlich sicher nicht mehr, du müsstest es also tatsächlich über deinen Launcher machen. Ich halte es ersteinmal ganz simpel, für einen Launcher mit PHP-Login einfach direkt nach dem <?php folgendes ergänzen:

PHP Code:
$conf['isMaint'] = false;
if(
$conf['isMaint'])
{
    die(
'Server is under Maintenance. Please try again later!');
} 
Da könnt ihr dann einfach statt false -> true hinschreiben und man kann sich nicht mehr einloggen, bekommt die Meldung, dass der Server gewartet wird (kann man auch verändern).

Um jetzt trotzdem noch rein zu kommen, könnte man dann ein Token per Hand erstellen und evtl das Token nicht ablaufen/löschen lassen.


Für einen Login aller Staff-Chars müsste man einfach ein Select-Statement aller Character des Accounts ausführen, die ein Admin-Level > 0 haben. Wenn da dann eine oder mehrere Zeilen rauskommen, weißt du, dass der User einen Staff-Char hat und aus dem Staff ist. Den kannst du dann reinlassen, ansonsten halt wieder die Meldung ausgeben.

Falls da jemand Interesse dran hat, einfach melden, dann schreib ich den Code dafür morgen :)

Bei einem TCP-Launcher kann man das ganze simultan verwenden, hier gilt dasselbe: Wenn jemand das haben möchte, kann ich das gerne morgen schnell schreiben, ich gehe aber davon aus, dass das jeder selber hinbekommt, der nen TCP-Launcher schreiben kann.

LG
03/07/2015 23:22 xKeRnx#4
PHP Code:
$checkAuth = sqlsrv_query($conn, "SELECT * FROM tAuth WHERE nAuthID = ? AND nLoginAble = 1;", array($nAuthID), array("Scrollable" => SQLSRV_CURSOR_KEYSET));
if(
sqlsrv_num_rows($checkAuth) == 1){
 die(
$TOKEN PLA PLA); 
}else{
 die(
'Server is under Maintenance. Please try again later!'); 
} 
03/08/2015 00:14 Cℓoud#5
Quote:
Originally Posted by DuOtto View Post
php]$conf['isMaint'] = false;
if($conf['isMaint'])
{
die('Server is under Maintenance. Please try again later!');
}[/php]
Hab deinen Code jetzt mal zum testen genommen, das funktioniert an sich .. allerdings spuckt der Launcher dann nicht die Meldung aus das der Server in Wartung ist, sondern ich bekomme nen Passwort Fehler. Ich selbst nutze den Marschlu Launcher mit Standard Login.php
03/08/2015 00:19 xKeRnx#6
Login.php:
PHP Code:
$conf['isMaint'] = false;
if(
$conf['isMaint'])
{
die(
'Maintance.');
} 
Launcher:
Code:
else if (Login[0] == "Maintance.")
{
MessageBox.Show("Server is under Maintenance. Please try again later!");
}
03/08/2015 01:09 Cℓoud#7
Funktioniert einwandfrei, danke!