CustomMessage

Kategorie: Nachrichten
Ab Engineversion: 4.9.6.0 CR

Beschreibung

Gibt eine Nachricht aus.

Syntax

bool CustomMessage (string message, object obj, int plr, int offset_x, int offset_y, int color, id deco, string portrait, int flags, int iHSize);

Parameter

message:
Nachricht, die ausgegeben wird.
obj:
[opt] Wenn ungleich 0, wird die Nachricht über dem angegebenen Objekt ausgegeben.
plr:
Nummer des Spielers, bei dem die Nachricht ausgegeben wird. Bei Angabe von NO_OWNER wird die Nachricht für alle Spieler angezeigt.
offset_x:
[opt] x-Offset der Nachrichtenposition. Bei globalen Nachrichten ist dies die Viewportmitte. Bei Objektnachrichten ist dies relativ zur Standard-Nachrichtenposition über dem Objekt. Bei Portrait-Nachrichten (portrait!=0) ist das Offset relativ zur oberen, linken Viewportecke.
offset_y:
[opt] y-Offset der Nachrichtenposition.
color:
[opt] Farbe der Nachricht. Bei 0 Default auf 0xffffff (weiß).
deco:
[opt] ID der Objektdefinition, die für Dekoration der Nachricht verwendet wird. Wenn angegeben, wird die Nachricht von einem Rahmen umgeben. Nur gültig bei angegebenem Portrait.
portrait:
[opt] Bildspezifikation für ein Bild links neben der Nachricht im Dekorationsrahmen.
flags:
[opt] Bitmaske zusätzlicher Optionen. Mögliche Werte:
Bit Konstante Beschreibung
0 MSG_NoBreak Wenn gesetzt, werden keine automatischen Zeilenumbruch bei langen Nachrichten eingefügt.
1 MSG_Bottom Nur globale Nachrichten. Für Portraitnachrichten mit Dekorationsrahmen: Das Nachrichtenoffset gibt die Verschiebung zur unteren Bildschirmkante anstatt zur oberen Bildschirmkante an. Für nicht-Portraitnachrichten setzt das Flag die Nachricht etwas tiefer.
2 MSG_Multiple Wenn gesetzt, werden vorherige Nachrichten des gleichen Typs nicht gelöscht.
3 MSG_Top Nur globale Nachrichten. Für Portraitnachrichten mit Dekorationsrahmen: Das Nachrichtenoffset gibt die Verschiebung zur oberen Bildschirmkante an. Für nicht-Portraitnachrichten setzt das Flag die Nachricht etwas höher.
4 MSG_Left Nur globale Nachrichten. Für Portraitnachrichten mit Dekorationsrahmen: Das Nachrichtenoffset gibt die Verschiebung zur linken Bildschirmkante an. Für nicht-Portraitnachrichten setzt das Flag die Nachricht etwas mehr nach links.
5 MSG_Right Nur globale Nachrichten. Für Portraitnachrichten mit Dekorationsrahmen: Das Nachrichtenoffset gibt die Verschiebung zur rechten Bildschirmkante an. Für nicht-Portraitnachrichten setzt das Flag die Nachricht etwas mehr nach rechts.
6 MSG_HCenter Nur globale Nachrichten. Die Nachricht wird auf mittlerer Bildschirmbreite angezeigt.
7 MSG_VCenter Nur globale Nachrichten. Die Nachricht wird auf mittlerer Bildschirmhöhe angezeigt.
8 MSG_DropSpeech Die Nachricht wird beim ersten Vorkommen des Zeichens '$' abgeschnitten.
9 MSG_WidthRel iHSize gibt die Breite des Textes in Prozent zur relativen Größe des Viewports an. Nur bei globalen Nachrichten und Spielernachrichten.
10 MSG_XRel offset_x gibt das X-Offset des Textes in Prozent zur relativen Größe des Viewports an. Nur bei globalen Nachrichten und Spielernachrichten. Empfohlene Werte: -50 bis +50.
11 MSG_YRel offset_y gibt das y-Offset des Textes in Prozent zur relativen Größe des Viewports an. Nur bei globalen Nachrichten und Spielernachrichten. Empfohlene Werte: -70 bis +25.
iHSize:
[opt] Breite des Textes in Pixeln.

Anmerkungen

Diese Funktion vereinigt die Funktionialitäten von Message, PlrMessage und PlayerMessage und bietet zusätzliche Optionen an. Um in der Zukunft weitere Parameter einfügen zu können ohne eine neue Funktion zu erschaffen, enthält sie bewusst keine zusätzlichen Format-Parameter. Diese können über die Funktion Format erreicht werden.
Es gelten die üblichen Nachrichtenformatierungen. Beginnt die Nachricht mit einem "@", so wird die Nachricht dauerhaft angezeigt bis sie durch eine andere ersetzt wird. Das Zeichen "|" steht für einen Zeilenumbruch. Es können Nachrichtenformatierungen mit den Tags <i> (kursiv) und <c> (farbig) genutzt werden.
Nachrichten werden grundsätzlich angezeigt, bis eine von der Nachrichtenlänge abhängige Zeit vergangen ist oder sie durch eine zweite Nachricht gleicher Klasse ersetzt werden. Eine globale Nachricht (d.h. obj=0) ersetzt alle anderen globalen Nachrichten, und eine Objektnachricht (obj!=0) ersetzt alle anderen Objektnachrichten. Um mehrere Nachrichten gleicher Klasse anzuzeigen, sollte das Flag MSG_Multiple verwendet werden.

Beispiele

CustomMessage("This is <i>madness</i>!");
Gibt die Nachricht "This is madness!" nur für Spieler 0 aus, wobei das Wort "madness" in kursiver Schrift angezeigt wird.
CustomMessage("<c ffff00>Tonki:</c> Hello, world", 0, NO_OWNER, 100,100, 0, MD69, "Portrait:CLNK::00ff00::1);"
Gibt eine Nachricht mit Dekorahmen aus. Der Name Tonki ist gelb eingefärbt. Links von der Nachricht wird ein grünes Clonk-Portrait angezeigt. Es muss die Dekorationsdefinition MD69 geladen sein.
Siehe auch: AddMessage, Message, PlayerMessage, PlrMessage
Sven2, Juli 2008