Den Game Maker benutzen
Messages (Nachrichten)
Der zweite Kommunikationsmechanismus, den Game Maker unterstützt, ist das Senden und Empfangen von Nachrichten. Ein Spieler kann eine Nachricht an einzelne oder alle Spieler senden. Spieler bemerken eingehende Nachrichten und können entsprechend reagieren. Nachrichten können in einem zuverlässigen Modus verschickt werden, bei dem man sicher gehen kann, dass sie ankommen (allerdings kann das langsam sein) oder in einem unsicheren Modus, der schneller ist.Dafür gibt es folgende Funktionen:
mplay_message_send(player, id, val) sendet eine Nachricht an den Spieler player (ID oder Name; bei einer 0 wird die Nachricht an alle gesendet). id ist ein ganzzahliger Wert (real oder string). Die Nachricht wird im unsicheren Modus gesendet. Wenn val einen String enthält, dann ist dessen maximal erlaubte Länge 30000 Zeichen.
mplay_message_send_guaranteed(player, id, val) sendet eine Nachricht an den Spieler player (ID oder Name; bei einer 0 wird die Nachricht an alle gesendet). id ist ein ganzzahliger Wert (real oder string). Die Nachricht wird im sicheren Modus gesendet. Wenn val einen String enthält, dann ist dessen maximal erlaubte Länge 30000 Zeichen.
mplay_message_receive(player)empfängt nächste Nachricht aus der Warteschlange, welche vom angegebenen Spieler player kam (ID oder Name). Nutze 0 für Nachrichten von jedem Spieler. Die Funktion gibt wieder, ob tatsächlich eine neue Nachricht da ist. Wenn dem so ist, geht es hiermit an den Inhalt:
mplay_message_id() gibt den "message identifier" der letzten empfangenen Nachricht zurück.
mplay_message_value() gibt den Wert (Inhalt) der letzten empfangenen Nachricht zurück.
mplay_message_player() gibt den Spielers an, der die letzte empfangene Nachricht versandt hat.
mplay_message_name() gibt den Namen des Spielers an, der die letzte empfangene Nachricht versandt hat.
mplay_message_count(player) gibt die Anzahl verbleibender Nachrichten von Spieler player in der Warteschlange an (bei 0 werden alle Nachrichten gezählt).
mplay_message_clear(player) löscht alle verbleibenden Nachrichten von Spieler player aus der Warteschlange (bei 0 werden alle Nachrichten gelöscht).
Ein paar Anmerkungen sind hier sachdienlich: Erstens musst du, wenn du eine Nachricht an einen Spieler senden willst, dessen player-ID kennen. Wie schon erwähnt bekommst du sie mit der Funktion: mplay_player_id(). Diese player-ID eird auch benutzt, um Nachrichten von einzelnen Spielern zu empfangen. Alternativ kannst du den Namen das Spielers als String angeben. Wenn mehrere Spieler den selben Namen haben, bekommt nur der erste die Nachricht.
Zweitens wunderst du dich vielleicht, dass jede Nachricht eine ganzzahlige Nachrichten-id hat. Der Grund ist, dass es hilft, unterschiedliche Arten von Nachrichten zu versenden. Der Empfänger kann die Art der Nachricht anhand der id prüfen und entsprechend reagieren. (Weil Nachrichten nicht sicher ankommen, ist es problematisch, wenn id und Wert nicht mit derselben Nachricht gesendet werden.)
Alternative Versionen
Auch verfügbar in:
Download helpfile