Hallo Überlebende,
seit Version 243.0 ist es möglich, dass man seine Spieler per E-Mail informieren kann, sofern diese offline sind und man geraidet wird, ein Dinobaby geboren wird usw. Die Entwickler planen noch weitere Funktionen damit einzuführen. Grundsätzlich werden sie die Möglichkeiten auch für Modder offenlegen, sodass diese ihrer Kreativität freien Lauf lassen können.
Okay, kommen wir nun zur Einrichtung eures Gameservers für diese Funktion und im zweiten Teil zur eigentlichen Benachrichtigung. Es ist natürlich hierfür wichtig, dass ihr einen Datenbestand eurer Spieler habt, um sie per E-Mail benachrichtigen zu können. Hier im Forum ist das recht leicht, da wir allen Spieler, die sich per Steam registriert haben auch einer E-Mail Adresse zuordnen können.
[hide]
1) Gameserver für Benachrichtigungen aktivieren:
- Damit euer Spielserver die Benachrichtigungen rausschicken kann, ist es notwendig, dass ihr dafür den folgenden Startparameter mit festlegt: -webalarm - Wenn ihr bei einem Anbieter wie G-Portal, Nitrado oder sonst irgendwo unterwegs seid, dann müsst ihr euch gedulden, bis diese Funktion implementiert wurde.
- Als nächstes benötigt ihr die Datei AlarmPostCredentials.txt - Diese müsst ihr unter dem Verzeichnis /ShooterGame/Saved/ ablegen
2) Sicherheitsschlüssel und Empfangsscript zur Weiterverarbeitung anlegen
- Die eben genannte Textdatei muss aus zwei Zeilen bestehen, einem Sicherheitsschlüssel, den ihr selbst festlegen könnt und dem Link zu dem entsprechenden Script, dass dann mit der Benachrichtigung weiter umgehen soll
Die Datei sieht dann also beispielsweise so aus:
- Der Sicherheitscode ist optional für das Script selbst, um einfach sicherzustellen, dass die Benachrichtigungsfunktion nicht von fremden Dritten benutzt werden kann. Auch wenn ihr keinen Code für euer Script nutzen möchtet, so ist es dennoch notwendig, dass ihr irgendetwas in die erste Zeile schreibt, ansonsten funktioniert es nicht
- Der schwierigere Teil ist nun, dass ihr ein Script baut, dass in der Lage ist, die Daten eures Gameservers entgegen zu nehmen, dies geschieht in Form eines HTTP POST Formats, das wie folgt aussieht:
- key=D1e5IstMe1NgeH31m3rC0d3!&steamid=7643423095809385¬etitle=Beispiel%2BTitel&message=Beispielnachricht+fuer+Server
- Die Nachricht wird urlencodiert versendet, d.h. ihr müsst sie in eurem Script erstmal wieder decodieren, um Sonderzeichen richtig aufzulösen, da z.B. ein "-" zu "%2B" wird
- An dieser Stelle kann ich euch nur ein grobes Gerüst zur Verfügung stellen, um den Request entgegen zu nehmen, da jeder andere Systeme hat, ist es schwierig eine allgemeingültige Lösung anzubieten
3) Beispiel-Script zur Entgegennahme einer Benachrichtigung
<?php
if($_POST["key"] && $_POST["steamid"] && $_POST["notetitle"] && $_POST["message"])
{
$key = urldecode($_POST["key"]);
$steamid = urldecode($_POST["steamid"]);
$title = urldecode($_POST["notetitle"]);
$message = urldecode($_POST["message"]);
if ($key == "D1e5IstMe1NgeH31m3rC0d3")
{
// Hier könnt ihr jetzt nun irgendwas mit der Steam-ID, dem Titel und der Nachricht machen
}
else
echo "Ungültiger Key";
}
else
echo "Ungültige Anfrage";
?>
Alles anzeigen
- Der mittlere Teil hängt nun also an euch. Ihr könnt dort z.B. eine Datenbank Abfrage starten, der euch die E-Mail-Adresse zur passenden Steam-ID raussucht und dann die Nachricht per E-Mail versendet - nur so als Beispiel.
[/hide]
Ich werde dies in den kommenden Tagen für unsere Server implementieren. Ich warte derzeit noch auf G-Portal zur Aktivierung des Features.
Viel Spaß beim Ausprobieren damit.