CustomMessage
Kategorie: Nachrichten
Ab Engineversion: 5.1 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.
Sven2, 2008-07