From: Michael H. <mh...@in...> - 2002-03-29 13:41:38
|
Bin heute mal in Schreiblaune, daher wieder mal ne Mail :) Ich will hier mal kurz darstellen, was ich in letzter Zeit so an der Statuszeilengeschichte gebastelt hab. Zuerst einen riesigen Dank an alle, die es schon aktiv eingesetzt haben vor allem natuerlich an Thufhir. Hier eine ganz kurze Darstellung was diese Statuszeile ausmacht: * automatisch Aktualisierung von Text und Attribut bei Variablenwertaenderung! (Text und Attribute als Funktion) * Module als Makro oder Variable * Einfache Konfiguration mit Modulnamen, z.b. /config_status {node}_{zaubi}_{arzt}_{lp}_{mp}_{vorsicht}:{flucht}_{kampf}_{world}_{modes}_{clock} * Module koennen andere Module zusammenfassen (Bsp: arzt, zaubi) * Abhaengige Variablen (NEU) n Variablen haben bei Aktualisierung (per /dset) Auswirkung auf 1 Statuszeilenmodul (Platz inner Statuszeile) ------------------------------------------------------------------------ 1. Konfiguration der Farben und Texte der Module, kann und sollte ueber entsprechende Variablen erfolgen, Namenschema: CFG_STATUS_COLOR_* und CFG_STATUS_TEXT_*, wobei der * den Modulnamen enthalten sollte und ggf. noch einen Suffix (z.b. nix oder nen Zaehler, oder ...) Genutzt wird dies schon in diversen Vereinfachungsmakros die Statuszeilenmodule mit einem Makroaufruf erzeugen koennen. Und in der Doku zur Statuszeile (wers noch nicht kennt /status_help fuer alle moeglichen und /status_line fuer die aktuell eingestellten Module), koennen diese Configs in der eingestellten Konfiguration (bunt + ggf. Text) per $[status_doc_attr("SUFFIX")] angezeigt werden Bsp: /set CFG_STATUS_COLOR_BLIND_1=Cbgmagenta /set CFG_STATUS_TEXT_BLIND_1=B /set_status_var_flag p_blind 0 1 /set sl_blind_doc=Blindheitsanzeige, wenn blind: $[status_doc_attr("BLIND_1")] Definiert ein Modul fuer Blindheit mit der angegebenen Konfiguration Nutzung per: /config_status __{blind}__ Geht aber auch ganz normal in nem Modul: /set CFG_STATUS_COLOR_EP=n /set CFG_STATUS_COLOR_EP_M=Cblue /set CFG_STATUS_COLOR_EP_k=Cyellow /set sl_ep_doc=Erfahrungspunkte $[status_doc_attr("EP_M",">1 Mio: xxxM","EP_k", ">1000: xxxk", "EP", "sonst")] /def sl_ep = \ /init_var p_ep%;\ /set status_func_p_ep=format_number(p_ep)%;\ /set status_attr_p_ep=p_ep>=1000000? CFG_STATUS_COLOR_EP_M : p_ep>=1000 ? CFG_STATUS_COLOR_EP_k : CFG_STATUS_COLOR_EP%;\ /return status_var("p_ep",4) ------------------------------------------------------------------------- 2. Da die Statuszeilenmoduldefinition oft aehnlich aussieht, habe ich ein paar Vereinfachungsmakros geschrieben: Ich zaehle diese hier mal auf, jeweils mit einem Beispiel (aus mg_properties.tf) Generelles: Wenn fuer die Standardwerte nix angegeben wird (d.h. die fuer die kein Vergleichswert angegeben ist) dann wird dort als Attribut "n" und als Text "" gesetzt, die Configs dafuer sind jeweils ohne Suffix! ......................................................................... /set_status_var_string varname default|varname breite string1 .. stringX /set sl_align_doc=Alignment von heilig: +++,rot bis satanisch: ---,blau /set CFG_STATUS_COLOR_ALIGN=n /set CFG_STATUS_COLOR_ALIGN_1=BCred /set CFG_STATUS_TEXT_ALIGN_1=+++ /set CFG_STATUS_COLOR_ALIGN_2=BCyellow /set CFG_STATUS_TEXT_ALIGN_2=++ /set CFG_STATUS_COLOR_ALIGN_3=Cyellow /set CFG_STATUS_TEXT_ALIGN_3=+ /set CFG_STATUS_COLOR_ALIGN_4=BCgreen /set CFG_STATUS_TEXT_ALIGN_4=* /set CFG_STATUS_COLOR_ALIGN_5=Cgreen /set CFG_STATUS_TEXT_ALIGN_5=- /set CFG_STATUS_COLOR_ALIGN_6=Cblue /set CFG_STATUS_TEXT_ALIGN_6=-- /set CFG_STATUS_COLOR_ALIGN_7=BCblue /set CFG_STATUS_TEXT_ALIGN_7=--- /set_status_var_string p_align p_align 3 heilig gut nett neutral frech boese satanisch Die Konfiguration wird in Reihenfolge der Strings benutzt. Ggf. koennte man sich auch vorstellen die Konfigvariablen mit den Strings als Suffix enden zu lassen, wenn Bedarf besteht, Bescheid sagen. ......................................................................... Erzeugt Modul fuer ein Flag: /set_status_var_flag varname varname|default breite /set CFG_STATUS_COLOR_FROG_1=Cbggreen /set CFG_STATUS_TEXT_FROG_1=F /set_status_var_flag p_frog 0 1 /set sl_frog_doc=Froschanzeige, wenn Frosch: $[status_doc_attr("FROG_1")] ......................................................................... Erzeugt Modul fuer einen numerisch aufsteigenden Wert (0..n): /set_staus_var_count varname varname|default breite maxwert /set CFG_STATUS_COLOR_TANJIAN_KOKORO_1=Cyellow /set CFG_STATUS_TEXT_TANJIAN_KOKORO_1=k /set CFG_STATUS_COLOR_TANJIAN_KOKORO_2=Cred /set CFG_STATUS_TEXT_TANJIAN_KOKORO_2=K /set CFG_STATUS_COLOR_TANJIAN_KOKORO_3=Cred,B /set CFG_STATUS_TEXT_TANJIAN_KOKORO_3=K /set sl_tanjian_kokoro_doc=Kokoro aktiv (K) /set_status_var_count tanjian_kokoro tanjian_kokoro 1 3 ......................................................................... Intern nutzen diese /status_config_attr z.B: /status_config_attr t p_align =~ ' gut neutral boese erzeugt (habs zur besseren Lesbarkeit umformatiert): p_align=~'gut'?CFG_STATUS_TEXT_ALIGN_1 : p_align=~'neutral' ? CFG_STATUS_TEXT_ALIGN_2 : p_align=~'boese' ? CFG_STATUS_TEXT_ALIGN_3 : CFG_STATUS_TEXT_ALIGN wenn CFG_STATUS_TEXT_ALIGN nicht gesetzt ist steht da ein "" bzw. /status_set_config_att das macht dasselbe wie vorher nur dass es die Attribute gleich setzt: /status_config_attr t p_align =~ ' gut + neutral * boese - liefert dasselbe wie oben, setzt aber noch: /set CONFIG_STATUS_TEXT_ALIGN_1=+ /set CONFIG_STATUS_TEXT_ALIGN_2=* /set CONFIG_STATUS_TEXT_ALIGN_3=- dasselbe fuer Attribute dann halt statt t als ersten Parameter ein c Syntax: /status_config_attr [c|t] varname operator ['".] vergleichswert1 ... vergleichswertN und /addh syn /status_config_set_attr [c|t] varname operator ['".] vergleichswert1 Configwert1 vergleichswert2 Configwert2 ... [DefaultConfigWert] |