CustomMessage

Kategorie: Nachrichten
Ab Engineversion: 1.0 OC

Beschreibung

Gibt eine Nachricht aus.

Syntax

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

Parameter

message:
Nachricht, die ausgegeben wird
obj:
[opt] Wenn ungleich nil, wird die Nachricht über dem angegebenen Objekt ausgegeben.
plr:
[opt] Nummer des Spielers, bei dem die Nachricht ausgegeben wird. Default ist NO_OWNER, welches die Nachricht für alle Spieler anzeigt.
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. Default ist 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] Definition, object or image specification prop list to take the graphics from as a portrait.
Image specification prop lists can contain the following members:
Eigenschaft Beschreibung
Source Definition to draw graphics of.
Name Name of graphics to draw from definition. Can be used to show a message e.g. of a skinned clonk. Default graphics are used if not specified.
Color Color in which ColorByOwner surfaces of definition are drawn.
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 Similar to MSG_Bottom. The y-offset is relative to the top of the viewport.
4 MSG_Left Similar to MSG_Bottom. The y-offset is relative to the left of the viewport.
5 MSG_Right Similar to MSG_Bottom. The y-offset is relative to the right of the viewport and the text is aligned to the right.
6 MSG_HCenter Similar to MSG_Bottom. The x-offset is relative to the center of the viewport.
7 MSG_VCenter Similar to MSG_Bottom. The y-offset is relative to the center of the viewport.
8 MSG_DropSpeech Currently not supported.
9 MSG_WidthRel The message width is a percentage of the viewport (0-100).
10 MSG_XRel The x-offset is a percentage of the viewport (0-100).
11 MSG_YRel The y-offset is a percentage of the viewport (0-100).
12 MSG_Zoom The message will be affected by ingame zoom.
width:
[opt] Width of the message. The unit is pixels if MSG_WidthRel is not set as a flag.

Anmerkungen

Diese Funktion vereinigt die Funktionialitäten von Message 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>!",nil,0);
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", nil, NO_OWNER, 100,100, 0, GUI_MenuDeco, Clonk);
Gibt eine Nachricht mit Dekorahmen aus. Der Name Tonki ist gelb eingefärbt. Links von der Nachricht wird ein Clonk-Titelbild wird angezeigt. Es muss die Dekorationsdefinition GUI_MenuDeco geladen sein.
Siehe auch: Message, PlayerMessage
Sven2, 2008-07