|
From: Michael H. <mh...@in...> - 2002-04-19 14:14:16
|
Hier kommt ein kleines Howto fuer die Nutzung und Wartung der /configure
Moeglichkeiten von TinyMacros:
Nutzung:
--------
* per /configure wird ein Menue angezeigt, in dem man mit Ziffern Menuepunkte auswaehlen kann
z.B:
-----------------------------------------------------------------------
Konfiguration: (<RETURN> wechselt hoch, "q" beendet)
1) Generelles 2) Paketauswahl 3) Oberflaeche
4) Mudspezifizisches 5) Hilfe 6) Connection
7) Textumleitung 8) Funktionstastenebenen 9) Statuszeile
10) Wegesystem
Eingabe Menu:
-----------------------------------------------------------------------
* mit "q" wird das Menue verlassen
* mit allem ausser den Ziffern der Menuepunkte wird eine Menueebene hoeher gesprungen und ggf. das /configure verlassen
* die Menues sollen die zu konfigurierenden Informationen etwas strukturieren
* am Ende der Menues stehen Menuepunkte die direkt auf zu konfigurierende Variablen/Variablenmengen oder Listen verweisen.
* sofern ein solcher Menuepunkt ausgewaehlt wird, bekommt man sofern vorhanden eine Hilfe zu der Variablen und den aktuellen Wert als Vorgabe in der Eingabezeile
* bei Variablenmengen und Listen wird wieder eine Menueebene geoeffnet in der die Einzelvariablen bzw. Listenschluessel angezeigt werden, durch Auswahl eines Menuepunktes wird fuer diesen der Wert wie bei einer einzelnen Variablen geaendert
* wenn der Wert nicht geaendert wurde, passiert nix
* wenn ja:
* nach dem Aendern der Variablen wird ein kleiner Korrektheitscheck (fuer Farben und Zahlen) durchgefuehrt
* danach wird geschaut in welches Config-File (user_config.cfg; mud_domain/user_config.cfg oder mud_domain/character/user_config.cfg) die Variable gehoert und in diesem werden dann vorhandene Eintraege ersetzt bzw. wenn noch nicht vorhanden wird der Eintrag angehaengt
* der Rest des Files (z.B. Kommentare bleibt unberuehrt)
das wars eigentlich schon fuer den Endnutzer
Entwickler:
-----------
Die Informationen zur Konfiguration werden beim Laden der Files sukzessive aufgebaut.
Fuer das Konfigurationssystem wurden folgende Aenderungen vorgenommen:
WICHTIG: Ladereihenfolge (spezifischste Config zuerst):
1. user_config.cfg
2. user_config.def
x.1) file.cfg
x.2) file.def
x.3) file.tf
....
mud_domain/user_config.cfg
mud_domain/user_config.def
Damit koennen in den *.cfg Werte gesetzt werden, die dann schon direkt in den *.tf benutzt/beachtet werden koennen.
Deshalb muessen zu konfigurierende Variablen in den *.def, *.tf entweder mit /set_var oder /cfg_set gesetzt werden, dann ueberschreiben sie schon gesetzte Werte nicht.
Die konfigurierten Werte koennen auf vielfaeltige Weise beachtet/benutzt werden:
* Zum einen mit bedingten Kommandos wie:
/ifdef, /ifdo, /ifecho, /cfg_echo,/mload -E,
die jeweils als 1. Parameter einen TF-Ausdruck erwarten und die ihre Funktion nur ausfuehren wenn dieser Ausdruck wahr ist
* Zum anderen direkt als Werte z.B. fuer Texte,Farben,/if Abfragen usw.
Die Information an welcher Stelle im Konfigurationsbaum eine Variable abgelegt wird, soll durch /cfg_info zur Verfuegung gestellt werden.
dabei wird jeweils ein Knoten spezifiziert, der entweder auf ein weiteres Menue zeigt (vorletzter Parameter kleingeschrieben) oder auf einen Knoten der einer Variablen/-menge oder Liste zugeordnet ist.
Bsp:
/cfg_info all Generelles
/cfg_info use Paketauswahl
/cfg_info gui Oberflaeche
/cfg_info mud Mudspezifizisches
/cfg_info mud commands Kommandos
/cfg_info mud comm Kommunikation
/cfg_info mud comm EBENEN Ebenenfarben:comm_ebenen_list
/cfg_info gui MORE More:more
/cfg_info gui HISTSIZE History:histsize
/cfg_info gui COLORS Farbliste
/cfg_info gui VISUAL Visual-Mode:visual
usw.
Der letzte Parameter ist das was im Menue erscheinen soll (Spaces als "_"), durch einen Doppelpunkt abgetrennt kann der Variablenname stehen, sofern er sich nicht aus den Hierarchiebezeichnern (z.b. CFG_GUI_COLORS) ergibt. Ausserdem koennen dort durch Doppelpunkte getrennte Zahlen die Teile der Hierarchie benenenn, die bei der Namensbildung ignoriert werden sollen.
z.B:
/cfg_info status mg tanjian Tanjian:2
-> anderer Varname (CFG_STATUS_TANJIAN, 2==MG faellt weg)
Zum Check (/cfg_check):
Zur Zeit wird nur eine Ueberpruefung auf die Farbnamen und auf Zahlen gemacht. Der Datentyp sollte als dtype (color,attr,number,text) bei der Hilfedefinition der Variablen angegeben werden. Wenn dort nichts gefunden wird, wird nur fuer die Variablen deren Name "color" oder "attr" enthaelt ein Farbencheck gemacht.
Zum Abspeichern (/cfg_save):
wenn in den Hierarchienamen das Word MUD oder der Hostname der aktuellen Welt vorkommen wird es in mud_domain/user_config.cfg (-c) geschrieben.
Wenn zusaetzlich PLAYER oder ${WORLD_CHARACHTER} drin vorkommt dann nach mud_domain/char/user_config.cfg (-c -p)
Wenn nix dann ins user_config.cfg im Hauptverzeichnis der TinyMacros Installation.
Hilfe:
-----------------------------------------------------------------------
Makros: cfg_set
Info: Wenn die ueber die Config-Hierarchie-Namen bestimmte Variable noch nicht
gsetzt ist, wird sie auf den Wert des letzten Parameters gesetzt
Syntax: /cfg_set Config-Hierarchie-Namen Wert
Beispiel: /cfg_set USE LOADING 1
Rueckgabewert: Variablenname
Datei: config.tf
-----------------------------------------------------------------------
Makros: set_var
Info: Setzt die Variable auf den angegeben Wert, falls sie noch nicht gesetzt
war
Syntax: /set_var varname value
Beispiel: /set_var a bac
Datei: util.vfunc.tf
-----------------------------------------------------------------------
Makros: ifdo
Info: Conditional def, nur wenn der Ausdruck, der als 1. Parameter uebergeben
wird 1 ist, wird der rest ausgefuehrt
Syntax: /ifdo expr tf-code
Beispiel: /ifdo !islist(comm_ebenen_list)\
/createlist comm_ebenen_list
/addtolist comm_ebenen_list team Cblue Cyellow
Datei: util.tf
-----------------------------------------------------------------------
Makros: ifdef
Info: Conditional def, nur wenn der Ausdruck, der als 1. Parameter uebergeben
wird 1 ist wird das /def gemacht
Syntax: /ifdef expr normal def parameters
Beispiel: /ifdef is_file_loaded("status.tf") sl_lp = /initvar p_lp%; ....
/ifdef p_guild=~"zauberer" -t"bla Hand Eis" zaubi_hand_eis = ....
Datei: util.tf
-----------------------------------------------------------------------
Makros: cfg_echo
Info: ein Echo Makro, dass schaut, ob fuer den uebergebenen Makronamen eine
Config von Farbe und/oder Text existiert. Wenn ja gibt es die Config aus,
ansonsten den Originaltext.
Die Variablen heissen: CFG_ECHO_*_TEXT und CFG_ECHO_*_ATTR, das * steht fuer
den als ersten uebergebenen Parameter.
Dabei wird noch CFG_ECHO_GAG_LEVEL beachtet: bei 0 oder nicht gesetzt wird die
Originalmeldung ausgegeben, bei 1 wird nur die Farbe beruecksichtigt, bei 2
wird Farbe und Alternativtext beruecksichtigt
Syntax: /cfg_echo configname %*
Beispiel: /set CFG_ECHO_MG_ZAUBERER_ZSCHILD_TEXT=ZSchild aus.
/set CFG_ECHO_MG_ZAUBERER_ZSCHILD_ATTR=Cblue
/cfg_info MG_ZAUBERER_ZSCHILD %*
Datei: config.tf
-----------------------------------------------------------------------
Makros: cfg_info
Info: Fuegt in die Configurations-Hierarchie eine neue Variable ein. Dabei
wird ueber die Config-Hierarchie-Namen der Platz im Baum angegeben.
Der letzte Parameter ist eine Kurzbeschreibung fuer das Menue (Leerzeichen
durch _ ersetzen).
Wenn der vorletzte Parameter grossgeschrieben ist, weist er direkt auf eine zu
konfigurierende Variable, sonst auf eine weitere Menuebene
Wenn hinter der Beschreibung ein : (Doppelpunkt) folgt, kann dahinter ein
abweichender Variablenname (sonst wird er aus den Config-Hierarchie-Namen
gebildet) angegeben werden, auch koennen durch Doppelpunkt getrennte Zahlen
folgen, die anzeigen, welche Config-Hierarchie-Namen bei der
Variablennamensbildung ignoriert werden sollen.
Syntax: /cfg_info Config-Hierarchie-Namen [name|NAME]
Menue_Text:[varname|ignoriere_hierarchieX[:ignoriere_hierarchieY]
Beispiel: /cfg_info use Paketverwaltung
/cfg_info use LOADING Laden_von_Files
/cfg_info all loading SUFFIX Dateiendungen:file_suffixes -> anderer Varname
/cfg_info status mg tanjian Tanjian:2 -> anderer Varname (CFG_STATUS_TANJIAN,
2==MG faellt weg)
Datei: config.tf
|