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.
Sven2, Juli 2008