FUNKTION:
varargs string use_color(string str, string cmd)
IMPLEMENTIERT:
/std/player/color.c
ARGUMENTE:
str: Der einzufaerbende String
cmd: Name des Farbereignisses, dessen Farbe benutzt werden soll
BESCHREIBUNG:
Erzeugt Farbe in der Ausgabe, der String bleibt aber umbrechbar.
Verwandelt den String str in einen (komplett) eingefaerbten String,
wenn der Spieler Farbe wuenscht. Benutzt man diese Funktion, muss
sich der Magier um die Einstellungen des Spielers also nicht
weiter kuemmern.
Das Farbereignis cmd muss eins der von der Lib definierten sein.
Welche das sind kann man selbst mit 'farbe' sehen. Fuer Spiele
im Mud steht die Gruppe "spiel-*" zur Verfuegung. Magier haben
mehr Ereignisse als Spieler. Wird cmd nicht angegeben, so wird nur
Fettdruck (bzw intensive Farbe, je nach Telnet-Programm des Spielers)
benutzt.
Diese Funktion erzeugt nur mudinterne Steuerzeichen. Der resultierende
String kann also _nicht_ direkt an den Spieler ausgegeben werden.
Die echten Ersetzungen werden von break_string(S) durchgefuehrt.
Das heisst vor der Ausgabe muss der String (zusammen mit anderen evt)
immer durch break_string() laufen. Dafuer wird trotz der vorhandenen
Farbsequenzen korrekt umgebrochen. Beim Aufruf von break_string()
muss die Option BS_CONVERT_COLOR gesetzt sein.
RÜCKGABEWERT:
Eingefaerbter String (oder auch nicht, je nach Spielerwille)
BEMERKUNG:
Direktes Einfuegen der Terminal-Farbsteuerzeichen kann mit der
Funktion in_color(L) bewirkt werden. Hiernach ist jedoch kein
Umbruch mit break_string() mehr moeglich!
BEISPIEL:
text = "Du bist taub.";
text = pl->use_color(text, "teile-mit");
write(break_string(text, BS_STDLEN, 0, BS_CONVERT_COLOR));
FALSCH: (Nicht moeglich, vergl. in_color())
text = "Du bist taub.\n";
text = pl->use_color(text, "teile-mit");
write(text);
SIEHE AUCH:
P_COLORS, break_string(S), in_color(L), GetCurrentColor(L)
|