Rcon-Menü

Rcon Befehle kann man mittels PHP in folgender Form (per UDP Socket) an den MOHAA Server senden:

PHP:
$packet = chr(255) . chr(255) . chr(255) . chr(255) . chr(2) . 'rcon ' . Passwort . ' ' . Kommando;

Musst halt nur noch für "Passwort" das Rcon PW des Servers und für "Kommando" den Befehl eingeben, den du ausführen lassen willst.

Damit lässt sich eigentlich alles realisieren (Mapchange, Kicken etc) nur das mit dem Chat solltest du sein lassen.
 
Zuletzt bearbeitet:
Hier mal ein kleines Beispielskript:

PHP:
<?php

$mohaa_ip = ''; // Server IP ohne Port
$mohaa_port = ; // Query Port

$mohaa_cmd = "\xFF\xFF\xFF\xFF\x02rcon PASSWORT BEFEHL";

$fp = fsockopen('udp://' . $mohaa_ip, $mohaa_port, $errno, $errstr, 1);

if(false !== $fp)
{
	socket_set_timeout($fp, 1, 0);
	socket_set_blocking($fp, true);

	if(fwrite($fp, $mohaa_cmd))
	{
		$data = fread($fp, 1);
		$meta = socket_get_status($fp);
		$bytesleft = $meta['unread_bytes'];

		while($bytesleft > 0)
		{
			$data = fread($fp, $bytesleft);
			$meta = socket_get_status($fp);
			$bytesleft = $meta['unread_bytes'];
		}

		// Antwort vom Server:

		echo $data;
	}
}

?>

Ist nicht getestet aber es sollte funktionieren.
 
Den Port kannste auch in Anführungszeichen schreiben, das ist aber nicht nötig, da der Port ja eh eine Zahl (unsigned int) ist.
 
EvilO hat gesagt.:
Den Port kannste auch in Anführungszeichen schreiben, das ist aber nicht nötig, da der Port ja eh eine Zahl (unsigned int) ist.

Nicht nur dass es nicht nötig is, es wäre ansonsten auch falsch(auch wenns PHP selbst umändert)
 
Sicaine hat gesagt.:
Nicht nur dass es nicht nötig is, es wäre ansonsten auch falsch(auch wenns PHP selbst umändert)

Im Prinzip haste ja recht, aber da PHP (im Gegensatz zu C++ und co.) den Typ automatisch ändert ist es in diesem Fall wirklich egal. Ausserdem hab ich ja im Skript selbst die Anführungszeichen weggelassen....
 
Zurück