InterMUD-Portale: Messages


Wortklärung

Ursprungs-MUD
MUD, von dem der Portalbesucher gestartet ist.
Ziel-MUD
MUD, welches vom Spieler über das Portal besucht wird.

Defines

#define P_TYPE_HELLO            „Hi“
#define P_TYPE_ENTER            „Enter“
#define P_TYPE_MOVE             „Move“
#define P_TYPE_LEAVE            „Leave“
#define P_TYPE_QUIT             „Quit“
#define P_TYPE_COMMAND          „Cmd“
#define P_TYPE_MESSAGE          „Msg“
#define P_TYPE_PROMPT           „Prompt“
#define P_TYPE_SAVE_DATA        „Save“

#define P_CHAR_NAME             „Name“
#define P_CHAR_GENDER           „Gender“

#define P_MSG_TYPE              „Type“
#define P_MSG_PLAYER            „Player“
#define P_MSG_MUD               „MUD“
#define P_MSG_DATA              „Data“
#define P_MSG_PORTAL            „Portal“
#define P_MSG_IP                „IP“
#define P_MSG_PORT              „Port“
#define P_MSG_UNICODE           „Unicode“
#define P_MSG_CHARACTER         „Char“
    

Aufbau

Die zu übertragenden Meldungen sind immer Mappings. Jedes Mapping hat mindestens den Eintrag P_MSG_TYPE, welches den Typ und damit auch den weiteren Inhalt des Mappings bestimmt.

Die Mappings werden mit save_value() serialisiert. Die erste Zeile (der Formatdeskriptor) wird nur beim ersten Mal übertragen (dies ist also die erste Zeile, welches beide MUDs vom jeweiligen anderen MUD empfangen). Sollte das serialisierte Mapping länger als 1000 Zeichen lang sein, wird es umgebrochen. Solch unvollständige Zeilen enthalten ein Tab-Zeichen (ASCII-Code 9) am Ende, um dem Empfänger zu signalisieren, daß weitere Zeilen folgen, die zu einer Meldung zusammengefügt werden müssen.

Meldungen

P_TYPE_HELLO

Beschreibung Wird beim Verbindungsaufbau gesendet und muß die allererste Meldung sein, die das Ziel-MUD empfängt. Das Ziel-MUD muß daraufhin ebenfalls mit einem P_TYPE_HELLO antworten.
Gesendet vom Ursprungs-MUD und Ziel-MUD
Daten
P_MSG_MUD
Den Namen des sendenden MUDs (mit Groß-/Kleinschreibung)

P_TYPE_ENTER

Beschreibung Ein Spieler möchte vom Ursprungs-MUD ins Ziel-MUD wandern. Das Ziel-Portal muß übrigens nicht dasjenige sein, welches vom Ursprungs-MUD herführt, da der Spieler auch über ein Dritt-MUD einreisen kann. Die Meldung wird im Erfolgsfalle nicht bestätigt. Im Fehlerfalle sollte mit einem P_TYPE_QUIT geantwortet werden.
Gesendet vom Ursprungs-MUD
Daten
P_MSG_PLAYER
Den eindeutigen Namen des Spielers (ohne Verzauberungen)
P_MSG_PORTAL
Name des Ziel-Portals (im Ziel-MUD)
P_MSG_UNICODE
1, wenn das Ursprungs-MUD Unicode-Zeichen akzeptiert. 0, wenn nur ASCII zurückgesendet werden soll.
P_MSG_DATA
Speicherdaten vom letzten Besuch im Ziel-MUD
P_MSG_CHARACTER
Zusatzdaten zum Original-Charakter. Das Ziel-MUD kann dies nach eigenem Gusto auswerten. Derzeit sind folgende definiert.
P_CHAR_NAME
Der Name (mit aktueller Groß-/Kleinschreibung)
P_CHAR_GENDER
Geschlecht des Charakters

P_TYPE_MOVE

Beschreibung Der Besucher hat im Ziel-MUD ein weiteres Portal betreten. (Dies kann u.U. auch ein Portal zurück zum Ursprungs-MUD sein.) Der Besucher wird damit im Ziel-MUD „ausgeloggt“, das Ziel-MUD will also keine Daten mehr dazu empfangen. Im Fehlerfalle muß das Ursprungs-MUD den Besucher bei sich irgendwo landen lassen.
Gesendet vom Ziel-MUD
Daten
P_MSG_PLAYER
Den eindeutigen Namen des Spielers
P_MSG_MUD
Den Namen des neuen Ziel-MUDs (mit Groß-/Kleinschreibung)
P_MSG_PORTAL
Name des neuen Ziel-Portals (im neuen Ziel-MUD)
P_MSG_IP
IP-Adresse des neuen Ziel-MUDs
P_MSG_PORT
Port für Portalverbindungen des neuen Ziel-MUDs
P_MSG_UNICODE
1, wenn das neue Ziel-MUD Unicode-Zeichen versteht. 0, wenn nur ASCII-Befehle dorthin gesendet werden sollen.

P_TYPE_LEAVE

Beschreibung Dies ist eine Rückholoption für das Ursprungs-MUD. Damit wird der Besucher ins Ursprungs-MUD zurückgeholt. Das Ursprungs-MUD wird keine weiteren Meldungen mehr zu diesem Spieler schicken. Das Ziel-MUD sollte ebenfalls nichts mehr zu diesem Spieler schicken. Diese Meldung kann auch als Fehlermeldung verwendet werden, wenn ein MUD als Ursprungs-MUD eine Meldung zu einem unbekannten Reisenden erhält.
Gesendet vom Ursprungs-MUD
Daten
P_MSG_PLAYER
Den eindeutigen Namen des Spielers

P_TYPE_QUIT

Beschreibung Damit beendet ein Gast seinen Besuch abrubt (ende/quit/exit-Befehl). Das Ziel-MUD beendet damit den Besuch und wird keine weiteren Meldungen mehr schicken und erwartet auch keine weiteren Meldungen mehr. Diese Meldung kann auch als Fehlermeldung verwendet werden, wenn ein MUD als Ziel-MUD eine Meldung zu einem unbekannten Reisenden erhält.
Gesendet vom Ziel-MUD
Daten
P_MSG_PLAYER
Den eindeutigen Namen des Spielers

P_TYPE_COMMAND

Beschreibung Damit wird die Eingabe eines Spielers an das Ziel-MUD zur Auswertung gesendet. (Dies muß keine Action sein, sondern kann z.B. auch die Eingabe auf ein input_to() sein.)
Gesendet vom Ursprungs-MUD
Daten
P_MSG_PLAYER
Den eindeutigen Namen des Spielers
P_MSG_DATA
Die Eingabe des Spielers

P_TYPE_MESSAGE

Beschreibung Eine Ausgabe soll dem Spieler angezeigt werden.
Gesendet vom Ziel-MUD
Daten
P_MSG_PLAYER
Den eindeutigen Namen des Spielers
P_MSG_DATA
Die Ausgabe

P_TYPE_PROMPT

Beschreibung Ein Prompt soll dem Spieler angezeigt werden.
Gesendet vom Ziel-MUD
Daten
P_MSG_PLAYER
Den eindeutigen Namen des Spielers
P_MSG_DATA
Der Prompt

P_TYPE_SAVE_DATA

Beschreibung Das Ziel-MUD bittet damit, diese Daten für zukünftige Besuche abzuspeichern. Die übergebenen Daten sollten beim nächsten P_TYPE_ENTER als P_MSG_DATA-Eintrag mitgegeben werden. Obwohl beliebige Daten übergeben werden können, könnten u.U. Probleme bei der Deserialisierung auftreten, wenn moderne Features (Structs, Referenzen, LWOs, Python-Obs) verwenden werden. Die Empfehlung ist daher, komplexere Daten bereits auf Ziel-MUD-Seite zu serialisieren und hier dann den String anzugeben.
Gesendet vom Ziel-MUD
Daten
P_MSG_PLAYER
Den eindeutigen Namen des Spielers
P_MSG_DATA
Die zu speichernden Daten