ldmud-3.2.9/doc/
ldmud-3.2.9/doc/efun/
ldmud-3.2.9/mud/
ldmud-3.2.9/mud/heaven7/
ldmud-3.2.9/mud/heaven7/lib/
ldmud-3.2.9/mud/lp-245/
ldmud-3.2.9/mud/lp-245/banish/
ldmud-3.2.9/mud/lp-245/doc/
ldmud-3.2.9/mud/lp-245/doc/examples/
ldmud-3.2.9/mud/lp-245/doc/sefun/
ldmud-3.2.9/mud/lp-245/log/
ldmud-3.2.9/mud/lp-245/obj/Go/
ldmud-3.2.9/mud/lp-245/players/lars/
ldmud-3.2.9/mud/lp-245/room/death/
ldmud-3.2.9/mud/lp-245/room/maze1/
ldmud-3.2.9/mud/lp-245/room/sub/
ldmud-3.2.9/mud/lp-245/secure/
ldmud-3.2.9/mud/morgengrauen/
ldmud-3.2.9/mud/morgengrauen/lib/
ldmud-3.2.9/mud/sticklib/
ldmud-3.2.9/mud/sticklib/src/
ldmud-3.2.9/mudlib/uni-crasher/
ldmud-3.2.9/pkg/
ldmud-3.2.9/pkg/debugger/
ldmud-3.2.9/pkg/diff/
ldmud-3.2.9/pkg/misc/
ldmud-3.2.9/src/autoconf/
ldmud-3.2.9/src/bugs/
ldmud-3.2.9/src/bugs/MudCompress/
ldmud-3.2.9/src/bugs/b-020916-files/
ldmud-3.2.9/src/bugs/doomdark/
ldmud-3.2.9/src/bugs/ferrycode/ferry/
ldmud-3.2.9/src/bugs/ferrycode/obj/
ldmud-3.2.9/src/bugs/psql/
ldmud-3.2.9/src/done/
ldmud-3.2.9/src/done/order_alist/
ldmud-3.2.9/src/done/order_alist/obj/
ldmud-3.2.9/src/done/order_alist/room/
ldmud-3.2.9/src/gcc/
ldmud-3.2.9/src/gcc/2.7.0/
ldmud-3.2.9/src/gcc/2.7.1/
ldmud-3.2.9/src/hosts/
ldmud-3.2.9/src/hosts/GnuWin32/
ldmud-3.2.9/src/hosts/amiga/NetIncl/
ldmud-3.2.9/src/hosts/amiga/NetIncl/netinet/
ldmud-3.2.9/src/hosts/amiga/NetIncl/sys/
ldmud-3.2.9/src/hosts/i386/
ldmud-3.2.9/src/hosts/msdos/byacc/
ldmud-3.2.9/src/hosts/msdos/doc/
ldmud-3.2.9/src/hosts/os2/
ldmud-3.2.9/src/hosts/win32/
ldmud-3.2.9/src/util/
ldmud-3.2.9/src/util/erq/
ldmud-3.2.9/src/util/indent/hosts/next/
ldmud-3.2.9/src/util/xerq/
ldmud-3.2.9/src/util/xerq/lpc/
ldmud-3.2.9/src/util/xerq/lpc/www/
Date: Fri, 21 Jan 2000 14:47:12 +0100 (MEZ)
From: Holger Kremss <jur94ewp@studserv.uni-leipzig.de>
Short: Output-Hook
Type: Feature
State: New


Hi Lars!

Ich haette mal ne Bitte und die Frage, ob es moeglich waere, sowas
einzubauen. Und zwar haette ich gerne ne Applied-Funktion, oder besser
natuerlich nen Driver-Hook, der alles bekommt, was ein Spieler an text
gesendet bekommt. Also im grund so aehnlich, wie das catch_tell und
catch_msg machen, aber eben unmittelbar vor der Ausgabe an den Socket
und fuer ALLEN Text. Und zwar waere das ne Moeglichkeit, Umlaute zu
filtern, die bestimmte Leute auch heute noch nicht auf ihren Terminals
sehen koennen. Also der Hook wuerde zum Beispiel folgendes machen:

    (string)str=player->modify_output(str);

In modify_output wuerde man dann alle 'umlaute' und 'sz' umwandeln, so
dass der Spieler eben 'ae' und 'ue' statt den Umlauten bekommt. Ich hab
mich im WL immerwieder dafuer eingesetzt, Umlaute zugaenglich zu machen,
aber da einige leider immernoch Terminals haben, die damit nichts anfangen
koennen oder englische Consolen usw, wo sie die auch nichtmal tippen
koennen, waere das eine Moeglichkeit. Ich habe mit catch_tell() und
catch_msg() rumexperimentiert und festgestellt, dass da immer einiges
nicht ankommt. Und zwar all die tell_object() die im Spieler erzeugt
werden. Und das sind in unserer Lib sehr viele. Eine andere Moeglichkeit
gibt es leider nicht. Und die gesamte Lib umschreiben, dass man mit
catch_tell und so arbeiten kann, darauf hab ich ehrlich gesagt keine Lust
*stoehn*. Waer doch bestimmt simpel so einen Hook (analog modiy_command) 
zu machen, oder? Und bestimmt auch nicht zu viel Aufwand...

Leider hab ich die aktuellsten Driver-Sourcen nicht hier, aber ich denke
mir, alle Textausgaben werden an einer einheitlichen Stelle gemacht. Wenn
es doch eine Moeglichkeit jetzt schon gibt, die mir entgangen ist, dann
waer ich ueber jeden Tip dankbar. :-)

Danke und Byebye!

Holger


Hi Lars.

Ich haette noch einen Vorschlag zu meiner letzten Mail. Ich hab mir
nochmal gedanken gemacht, wie das umlaute-parsen am besten zu realisieren
ist und bin drauf gekommen, dass es besser ist, die Eingabe des Spielers
umzuwandeln in Spezialzeichen und erst bei der Ausgabe das wieder
umzuwandeln. Das ist deshalb besser, weil der Umlaut ue nur ein zeichen
lang ist, wohingegen 'ue' 2 Zeichen lang ist und dann kommen unsere ganzen
zeilenumbrueche durcheinander. Also bei der Eingabe ue -> "u und dann bei
der Ausgabe dann Spieler-individuell in Umlaute oder eben ue ae oe
umwandeln. Dann werden die Umbrueche nur vielleicht kuerzer, nicht etwa
laenger und fuer die strlen-spezifischen Sachen muss ich mir dann auch
noch was einfallen lassen. ;-)

Lange Rede kurzer Sinn: Neben dem output-Hook waer noch ein Input-Hook
schoen. Also wo alles veraendert werden kann, was reinkommt. Nicht nur
Commands (modify_command()) sondern auch all das, was an input_to() geht
usw. Eben _alles_. 

Also meine Bitte nochmal zusammengefasst. 2 Hooks, einer fuers
Input-Modifizieren und einer fuer Output-Modifizieren. :-) Wenn Du keine
Lust hast, das zu machen, muss ich mich vielleicht doch mal selbst
ranwagen, aber ich glaub das koennte dann dauern...

Holger@Wunderland