Umbau der Ebene beendet (Hazel,  1. Feb 1993, 16:29:57):
Moin

heute morgen hab' ich den groben Umbau der Ebene beendet.
Das heisst, das alle Wege und Orte, da bleiben wo sie sind.
Das heisst nicht, dass nicht mehr an Details gearbeitet wird.
Da mir bei der Heidenarbeit bestimmt viele fehler unterlaufen sind
bitte ich um Hinweise in Hinsicht darauf.

Hazel
-----------------------------------------------------------------------------



F&E (Rochus, 10. Nov 1993, 15:20:18):
Vor kurzem wurde im Grimmswald ein Pfad entdeckt, der zur
Forschungs- und Entwicklungsabteilung des MUDs, Institut fuer Monsterdesign
fuehrt. Mutige Abenteurer, koennen sich dort ja mal ansehen,
was sie bald erwarten wird. Aber Vorsicht, es sollen sich schon
so einige Leute in dem Gebaeude verirrt haben...
.
-----------------------------------------------------------------------------



Genesis-Hoehle freigegeben (Kobayashi, 21. Dez 1993, 13:22:41):
Port Vain - Ein Hoehlenforscher hat vor einigen Wochen eine Hoehle
in den Drachenzinnen entdeckt. Nach dem die Fa. Kobayashi & Co.
die Hoehle abgesichert hat, wurde sie nun der Oeffentlichkeit
vorgestellt. Besucher und Abenteurer koennen jetzt auch die Hoehle
betreten. Der Eingang liegt zwischen der Hoehle der Hoehlengnome
und Mirils Turm.
Beim Betreten der Hoehlen ist aeusserste Vorsicht angebracht, da
die Tierwelt noch nicht erforscht wurde. Niemand weiss, was fuer
Kreaturen sich in den dunklen Ecken der Hoehlen verstecken.

                                                             -K&C
							     -HEL

-----------------------------------------------------------------------------



Zunehmende Maulwurfpopulation (Spindel, 22. Jan 1994, 17:52:47):
Port Vain : Die Maulwurfpopulation insbesondere westlich des Ostwalles
hat in letzter Zeit enorm zugenommen.
Der Tierschutzbund aeusserte die Vermutung, es laege daran, dass die
geselligen Tierchen durch die Aufschuettung des Walls und die ungewoehnlich
starken Regenfaelle der letzten Zeit von ihrem urspruenglichen
Siedlungsgebiet, dem Duncton-Wald, abgeschnitten wurden.
Das Bauamt von Port Vain teilte hingegen die Befuerchtung mit, dass die
Ansiedlung der Maulwuerfe in Verbindung mit den Regenfaellen zu einer
Untergrabung bzw. Unterspuelung das Walles fuehren koenne.
Regenabflussrohre wurden vorsorglich angelegt. Es bestehe keinerlei
Anlass zur Beunruhigung.
                                    i.A.  Spindel

-----------------------------------------------------------------------------



Umbauten in Port Vain (Rochus, 26. Jan 1994, 18:31:59):
In Port Vain hat sich heute einiges getan. Die Hauptpost ist jetzt in
einen Neubau umgezogen, die neue Kapelle wurde eroeffnet und Frank hat
endlich seinen gewunschten Zugang zur Hafenstrasse fuer seine
Abenteurerkneipe bekommen - daher hat er seinen Zugang zur Gilde geschlossen.
Ach, und noch etwas: Die Abkuerzung zwischen dem zukuenftigen Stadthaus
und dem Marktplatz wurde gesperrt, weil der Anfang der Hafenstrasse
endlich fertiggestellt wurde.

                                       (Rochus)

-----------------------------------------------------------------------------



Duncton-Quelltexte (Tryfan, 22. Feb 1994, 15:53:19):
Liebe Elfen, Menschen, Zwerge und andere MG-ler,

 um der Wahrheit Genuege zu tun, werde ich hier die Quellen, die von mir 
fuer das Duncton-Quest herangezogen wurden, dalegen. Denn das vielfache 
Lob fuer die tolle Story kann ich leider nicht fuer mich in Anspruch
nehmen.
 Die besten Geschichten schreibt immer noch das Leben selber und so beruht
auch die Geschichte von Bracken aus Duncton auf wahren Gegebenheiten. Sie
ist Inhalt des siebten Heiligen Buches in den Heiligen Schriftensammlungen
von Uffington. Damit bildet sie die Rahmenhandlung der grossen, bedeutenden 
mythologischen  Abhandlung 'Der Weg zur Stille', die von Boswell nach 
seiner Rueckkehr aus Duncton in Uffington niedergeschreiben wurde. Diese
Lehre wurde von meinem Enkel Woodruff im Rahmen seiner 'Erzaehlungen zur
Laengsten Nacht' aufbereitet und mit meiner eigenen Geschichte und der 
Geschichte des unvergessenen Beechen, Sohn Boswells,fuer die Nachwelt 
erhalten. 

 Uebersetzt in die Sprache der Menschen wurde sie von William Horwood:
1. Der Stein von Duncton   Hobbit Press/Klett-Cotta    ISBN 3 608 95147 4    
1. Duncton Wood            Arrow Books                  ??       ???
2. Duncton Quest           Arrow Books                 ISBN 0 09 960620 8
3. Duncton Found           Arrow Books                 ISBN 0 09 968300 8

 Ich habe versucht, die Umsetzung in ein spielbares Quest so eng wie 
moeglich an den Tatsachen anzulehnen. Dieses war auf Grund der Laenge
der Orginaltexte nicht immer moeglich. Insbesondere fehlt der fuer das 
Gesamtverstaendniss nicht unwichtige Teil der Reise Brackens in das
kalte, duestere Saibot, Geburtsort Mandrakes. Dorthin wurde mein Vater 
von Skiet geschickt, um sich vor dem Stein zu beweisen, bevor er nach
Duncton zurueckkehren sollte. Es bestehen Ueberlegungen diesen Teil noch
in das Quest zu integrieren.

			Tryfan  ;)  

-----------------------------------------------------------------------------



Goblin-Lager entdeckt (Rochus, 22. Apr 1994, 17:40:20):
Wie aus zuverlaessigen Quellen berichtet wurde, sind in der unmittelbaren
Naehe von Port Vain groessere mengen an Goblins gesichtet worden.
Ueberlebende berichteten von einem groesseren Lager, in dem sich
mehrere gut ausgeruestete Goblins angesiedelt haben.

-----------------------------------------------------------------------------



noch mehr Duncton-Texte (Tryfan, 20. Jul 1994, 12:29:03):
Liebe Elfen, Menschen, Zwerge und Magier

 nach laengeren Nachforschungen in den Heiligen Schriftensamlungen von 
Uffington und nachdem ich meine Privatbibliothek nochmal durchstoebert
habe, kann ich nun sagen, wo man die Uebersetzungen der Duncton-Schriften
von Woodruff aus Arbor Low findet.

1. Duncton Wood         Arrow Books			ISBN 0 09 944300 7
2. Duncton Quest        Arrow Books                     ISBN 0 09 960620 8
3. Duncton Found        Arrow Books                     ISBN 0 09 968300 8 

 Fuer seine unermuetliche Hilfe beim Heraussuchen sei Spindel aus Seven 
Barrows gedankt.
  Ganz besonders moechte ich mich auch bei Nirdavo aus Koeln fuer seine 
wertvollen Hinweise auf die Uebersetzungen der modernen Duncton-Texte von 
William Horwood bedanken.

4. Duncton Tales	Harper Collins Publishers	ISBN 0 00 647218 4
5. Duncton Rising       Harper Collins Publishers	ISBN 0 00 647302 4
6. Duncton Stone        Harper Collins Publishers       ISBN 0 00 647601 5

	Tryfan aus Duncton
       ( Weisser Maulwurf )

-----------------------------------------------------------------------------



kleine Aenderung in Duncton (Tryfan, 21. Jul 1994, 11:35:19):
Einer dieser dummdreisten Waechter versperrt einem jetzt den Ausgang aus
dem System zum Stein, wenn Mandrake sich dort aufhaelt, um zu verhindern,
dass man ihm ohne eigenes Verschulden in der Klauen geraet.
Wer es mit Gewalt versucht, ist selber schuld.
Ist doch nett, oder?
Tryfan

-----------------------------------------------------------------------------



Warning! (Catweazle, 31. Aug 1994, 17:28:56):
[Verlegt von d.wald, Mephisto, 29. Aug 1994, 23:08:20]:
So eine Falle hab ich im Leben noch nicht gesehen,wie sie Rochus in der
Architektenquest eingebaut hat.Echt nett,der Schacht!
Fast Null Ueberlebenschance!Grats,Rochus!

ein ziemlich frustrierter Mephisto

-----------------------------------------------------------------------------



Re: Warning! (Catweazle, 31. Aug 1994, 17:29:04):
[Verlegt von d.wald, Caradhras, 29. Aug 1994, 23:17:01]:
Hat Rochus da einmal zuviel Grimmzahns Fallen gelesen? :-))
Aber troeste Dich, Meph, ich bin auch schon an Rochus' Wespen hopps
gegangen, die mir mit voller Ruestung und BS-Schwert innerhalb so ein
bis zwei sekunden 202 hp runtergehaut haben. *grins* ich hab nur
noch gesehen, dass da Wespen im Raum waren und schon kam
die huebsche Todessequenz.... Reizend ;-)

	Caradhras

-----------------------------------------------------------------------------



Re: Warning! (Catweazle, 31. Aug 1994, 17:29:06):
[Verlegt von d.wald, Silvana, 30. Aug 1994, 10:33:06]:
Was heist hier Falle??? Mich hat da noch niemand angegriffen. Und wer
DEUTLICHE Warnungen nicht liest, ist selbst Schuld.... Ach, so: Um der
Archie-Schacht gings.
Silvana - hat nichts gegen Schachtmochster.

-----------------------------------------------------------------------------



schacht (Catweazle, 31. Aug 1994, 17:29:06):
[Verlegt von d.wald, Bongo, 30. Aug 1994, 10:41:20]:
Soviel ich weiss, ist man im Schacht gar nicht gezwungen zu kaempfen.
Es geht auch anders. :-)
BONGO

-----------------------------------------------------------------------------



Re: schacht (Catweazle, 31. Aug 1994, 17:29:09):
[Verlegt von d.wald, Beldin, 30. Aug 1994, 18:13:46]:

Soweit Rochus MIR mal gesagt hat sollte man (laut der DEUTLICHEN Warnung) gar
nicht erst REINSPRINGEN - selbst schuld ;)

Grinsend 		Beldin (FLuganfaenger)

-----------------------------------------------------------------------------



Re: Re: schacht (Asmodis,  1. Sep 1994, 18:01:44):
Wieso? Reinspringen ist doch gar nicht so gefaehrlich!
Man muss nur das richtige Quest-tool dabeihaben :)

                       Ciao, Asmodis

-----------------------------------------------------------------------------



Auf erneute Anfrage: Die Duncton Texte (Tryfan, 30. Sep 1994, 21:18:45):
Liebe Elfen, Menschen, Zwerge und Magier

 nach laengeren Nachforschungen in den Heiligen Schriftensamlungen von 
Uffington und nachdem ich meine Privatbibliothek nochmal durchstoebert
habe, kann ich nun sagen, wo man die Uebersetzungen der Duncton-Schriften
von Woodruff aus Arbor Low findet.

1. Duncton Wood         Arrow Books			ISBN 0 09 944300 7
2. Duncton Quest        Arrow Books                     ISBN 0 09 960620 8
3. Duncton Found        Arrow Books                     ISBN 0 09 968300 8 

 Fuer seine unermuetliche Hilfe beim Heraussuchen sei Spindel aus Seven 
Barrows gedankt.
  Ganz besonders moechte ich mich auch bei Nirdavo aus Koeln fuer seine 
wertvollen Hinweise auf die Uebersetzungen der modernen Duncton-Texte von 
William Horwood bedanken.

4. Duncton Tales	Harper Collins Publishers	ISBN 0 00 647218 4
5. Duncton Rising       Harper Collins Publishers	ISBN 0 00 647302 4
6. Duncton Stone        Harper Collins Publishers       ISBN 0 00 647601 5

	Tryfan aus Duncton
       ( Weisser Maulwurf )

-----------------------------------------------------------------------------



Die Daemonen sind los... (Zardoz, 26. Okt 1994, 13:29:45):
Suedlich der Drachenhorter Landstrasse steht schon seit ewigen Zeiten ein
riesiger, schwarzer Monolith. Er ist ueberhaupt nicht neu oder vom Himmel
gefallen;
bis jetzt sind nur alle an dem Weg, der zu diesem seltsamen Berg fuehrt,
vorbeigelaufen ohne ihn zu bemerken.
Was andererseits auch nur zu raten ist, denn das Betreten ist verboten!!
Dort leben naemlich Daemonen, die in Frieden gelassen werden wollen.
"Heldenhafte" Abenteurer finden dort nur den Tod...

-----------------------------------------------------------------------------



Dynamit (Zardoz,  2. Nov 1994, 15:27:45):
Achtung! Ich habe den Fehler jetzt behoben, der es ermoeglichte Dynamit mit
in die Daemonenburg zu nehmen. Also Vorsicht! Das Dynamit kann sich unter
dem Einfluss der Magie des Gesteins spontan entzuenden.
Ciao......Zardoz
P.S. Das Dynamit entzuendet sich, nicht die Zuendschnur!

-----------------------------------------------------------------------------



Waechter im Elfendorf (Isnogood, 15. Nov 1994, 03:06:06):
Hi,

Es ist ja irgendwie logisch, wenn die waechter im Elfendorf nicht mehr
tatenlos zusehen, wenn einer von ihnen abgemurkst wird, aber ein kleiner
Hinweis auf die Aenderung waere schon angebracht gewesen

Isnogood

-----------------------------------------------------------------------------



Re: Waechter im Elfendorf (Asmodis, 15. Nov 1994, 05:02:40):
#! rn=Isnogood rt=784865166
Aenderung? War das nicht schon immer so ?


-----------------------------------------------------------------------------



Re: Re: Waechter im Elfendorf (Boing, 15. Nov 1994, 14:05:54):
#! rn=Asmodis rt=784872160
Immer nicht, aber es ist schon SEHR lange so ...
  Boing

-----------------------------------------------------------------------------



Re: Re: Waechter im Elfendorf (Isnogood, 15. Nov 1994, 15:45:51):
#! rn=Asmodis rt=784872160
Nein Asmo, definitiv nicht, ich hab schon oefters Waechter fertiggemacht, die
mir was gemopst hatten, ist noch nie passiert

-----------------------------------------------------------------------------



Re^3: Waechter im Elfendorf (Isnogood, 15. Nov 1994, 15:47:20):
#! rn=Boing rt=784904754
Also Donnerstag war es noch nicht so, da hab ich noch die Waechter
plattgemacht und ab freitag war es anders.

-----------------------------------------------------------------------------



Re^4: Waechter im Elfendorf (Boing, 15. Nov 1994, 15:48:59):
#! rn=Isnogood rt=784910840
Die Waechter sind MINDESTENS seit April unveraendert, und das stimmt,
ich hab das Datum der Dateien angeschaut.
  Boing

-----------------------------------------------------------------------------



Re^4: Waechter im Elfendorf (Toeter, 15. Nov 1994, 19:47:06):
#! rn=Isnogood rt=784910840
Dann war wahrscheinlich der Turmwaechter alle, der sorgt naemlich fuer
die Kooperation.

-----------------------------------------------------------------------------



Re^5: Waechter im Elfendorf (Isnogood, 16. Nov 1994, 13:24:54):
#! rn=Boing rt=784910939
kann es dann sein, dass sie sich anders verhalten, wenn sie was geklaut
haben?
,

-----------------------------------------------------------------------------



Auch Daemonen lernen dazu... (Zardoz,  5. Dez 1994, 18:37:08):
Daemonen waren noch nie besonders dumm....deshalb ist es ab jetzt nicht mehr
ratsam Saeurebaelle gegen Saeuredaemonen zu verwenden
ciao Zardoz (der seine Daemonen liebt)

-----------------------------------------------------------------------------



Warnung vor dem Drachen (Zardoz, 15. Dez 1994, 11:42:14):
Es kommt wie es kommen musste. Die Daemonen zuechten jetzt Drachen um sich zu
verstaerken. Diese Daemonendrachen sind in noch nie dargewesener Form gemein
und hinterhaeltig. Deshalb hab ich vor ihrer Hoehle auch ein paar Waechter
gestellt.
Und da ihr es eh nicht lassen koennt, die Drachen zu belaestigen wuensche ich
euch schonmal viel Spass... :-)

-----------------------------------------------------------------------------



Neues aus dem Grimmswald... (Calum, 19. Dez 1994, 22:12:08):

Seltsame Geruechte ranken sich um den Grimmswald und die Geheimnisse, die
in seinem Schatten verborgen sind. Man spricht von verborgenen Plaetzen, die
noch nie ein Mensch gesehen hat; man spricht von Wesen, die das Licht des
Tages so sehr scheuen, dass sie sich nie aus dem Dunkelheit des Waldes
hervorwagen; man spricht von Dingen, in denen eine geheimnisvolle, unbekannte
Magie wohnt. Doch alle diese Geschichten verblassen gegenueber dem, was sich
die Waldbewohner in den letzten Tagen nur fluesternd zu erzaehlen wagen: Dem
Geruecht von einer Stadt, die sich westlich vom Grimmswald befindet, und
vielleicht schon seit Jahrhunderten von keinem lebenden Wesen mehr betreten
wurde.

Die genaueste und vertrauenswuerdigste Schilderung, die von dieser Stadt
existiert, stammt von einem Holzfaeller namens Garon, dessen Huette an der
Biegung des Grimmsweges steht. Er berichtete, dass er und sein Bruder Taron
sich eines Tages im Grimmswald verirrten, und auf ihrer Suche auf einen Weg
trafen, der in ein unerforschtes Gebiet westlich des Grimmswaldes fuehrt.
Dort
angegriffen wurden. Garon konnte fliehen, waehrend sein Bruder weniger Glueck
hatte: Er wurde toedlich verwundet, und starb, nachdem er sich mit letzter
Kraft aus der Stadt herausgeschleppt hatte.

Wie wahr diese Geschichte und die weiteren Geruechte sind, kann niemand
sagen; jedoch hat sich in letzter Zeit die Anzahl der Personen, die sich im
Grimmswald verirrt haben, und nie wieder aufgetaucht sind, drastisch erhoeht.
Auch wenn sich mit jedem Tag die Erzaehlungen ueber sagenhafte Schaetze,
magische Gegenstaende und ungeahnte Reichtuemer in dieser Stadt mehren,
sollte sich niemand leichtsinnig vom Glanz dieser Dinge verblenden lassen.
Jedoch steht es jedem frei, selbst das Innere dieser Stadt zu erforschen -
auf eigene Gefahr hin...




-----------------------------------------------------------------------------



Kleine Aenderung in Duncton (Tryfan,  4. Jan 1995, 15:11:51):
Da die Umweltverschmutzung durch zurueckgelassene Ausruestungsgegenstaende
von gestorbener Spieler in Duncton langsam dramatische Ausmasse annimmt,
haben die Maulwuerfe zur Selbsthilfe gegriffen und werden sich ihrer auf der
Maulwurfwiese entledigen. Dort kann der Muell dann vom Besitzter eingesammelt
werden.
Der Verlust der Ausruestung sollte also kein Grund mehr fuer die Benutztung
von Musterloesungen sein. Der Verlust der Ausruestung im Todesfall wollte ich
sagen.
Tryfan

-----------------------------------------------------------------------------



Neues aus Moron! (Calum,  7. Jan 1995, 19:18:48):

Das Staedtische Bauamt in Moron gibt hiermit bekannt, dass alle Fehler
und Typos in der Stadt, ueber die bisher Beschwerden eingegangen sind, in
einer dreitaegigen Grossaktion beseitigt wurden. Natuerlich werden auch
weiterhin alle Beschwerden dankend zur Kenntnis genommen.

Ausserdem hat der achtarmige Priester der Akademie freundlicherweise
alle Waffen, die er den Spielern bisher abgeholt hat, den Priestern des
Xanti-Tempels zur Verfuegung gestellt, die wiederum den Erloes aus dem
Verkauf dieser Waffen dazu benutzt haben, um einige zusaetzliche Glocken
fuer den Tempel-Turm anzuschaffen. Der Grosswesir moechte im Uebrigen
noch darauf hinweisen, dass ihm die alte Glockenmelodie nicht mehr
so recht gefallen hat; er sucht zur Zeit nach einer neuen Melodie (die er
spaetestens im naechsten Jahrhundert gefunden haben wird), und
experimentiert solange mit verschiedenen mehr oder weniger
wohlklingenden Tonfolgen herum.

Drittens machen die Lehrer der Akademie darauf aufmerksam, dass sich
die Praesenz der magischen Kraefte in der Stadt auf viele Gegenstaende,
daher vielleicht erst einmal mit magischen Hilfsmitteln zu Leibe
ruecken.

Viertens soll ich von Anne ausrichten, dass sie jedem, der sie in
der Bibliothek besucht, gerne ihre Hilfe und einen Schluck Viez anbietet;
dass sie sich jedoch, wenn sie weiterhin von gewissen Leuten staendig
zusammengeschlagen wird, mit allen Tricks gegen diese zur Wehr
setzen wird.

Und ganz zuletzt noch etwas in eigener Sache!!!
Vielen, vielen Dank an alle, die mir beim Programmieren und beim Testen
in irgendeiner Weise geholfen haben - vor allem
* an Loco, ohne den ich nur halb so viel LPC koennen wuerde
* an Puma, ohne den ich gar kein LPC koennen wuerde :-)
* an Vrai, Hate, Wargon, Dancer und Kobayashi, die auch meine duemmsten
  Fragen auf dem LPC-Kanal beantwortet haben
* an Rochus, der den uebelsten Bug (Rausschmeisser) im Schnellverfahren
  beseitigt hat
* an Kieselstein, Asmodis, Toeter, Ryne, Zephyr, Rudiratter, Anatol und
  alle anderen Spieler, die mit ihren Bug-, Typo-, Idee- und Info-
  Meldungen auch den letzten verborgenen Fehler ans Tageslicht gezerrt
  haben (und vielleicht auch noch weiterhin tun werden ;-)  )


         - Calum -



-----------------------------------------------------------------------------



Noch eine Aenderung in Duncton (Tryfan, 11. Jan 1995, 18:23:08):
Hi
bisher war es mir ziemlich egal, dass einige Leute Spass daran gefunden
haben, mit Musterloesungen durch Duncton zu rauschen  -selber Schuld-
Da ich aber einige ziemlich weit im Quest antreffen musste, die keine Ahnung
hatten, um was es eigentlich ging, werden einige NPC's nicht mehr direkt
auf bestimmte Dinge, die offensichtlich in den Musterloesungen stehen,
antworten. Denn dieses betrifft insbesondere Leute, die das Quest eigentlich
ohne Musterloesungen machen wollen, aber von anderen foermlich ueberrannt
werden, und dann ploetzlich ohne Kenntnisse alleine da stehen.
Tryfan
PS.: Mir ist klar, dass man die Musterloesungen 'nachruesten' kann, das kann
ich aber auch.

-----------------------------------------------------------------------------



Re: Noch eine Aenderung in Duncton (Ronda, 11. Jan 1995, 20:28:46):
#! rn=Tryfan rt=789844988
Hi Tryfan!
...hoffentlich schaffe ichs jetzt mit Kobold und allen Ebenen aus, auch
selber
lesen zu koennen, was ich schreibe...
Ich hoffe, dass nicht ich Dich dazu veranlasst habe, die Quest zu er-
weitern... Ich habs gemacht wie immer: Beim Wanderer gefragt, worums geht-
der erzaehlt leider fast nichts!!!- rin ins Loch und umgeschaut...
Tja, dann rennt man rum und zeichnet nen Plan... Einer der Mw erzaehlt was
von nem weisen Mw,
der duest davon- und drin ist man im Schlamassel... Ich weiss leider immer
noch nicht, wer mir mehr zur Quest gesagt haette!!!
Ich denke also, dass es nicht unbedingt die Leute mit Loesung sein muessen,
die nicht durchkommen-die kommen mit Loesung ueberall durch!
Also lass bitte die Quest so wie sie ist - sonst ist sie fuer Loesungslose
noch viel schwerer...
Tschuess,   Ronda (die sich grade durch die Oma-Quest hackt...)

Ps: Ich schaffe es immer, Quests zu vermurksen... =:)
Deshalb habe ich immer noch 8 (JA! A C H T!!!) 7. Steine v. Duncton...
wo kann ich die loswerden??? Ueber Kieswerke nachgruebelnd... R.

-----------------------------------------------------------------------------



Re: Re: Noch eine Aenderung in Duncton (Fyt, 11. Jan 1995, 21:18:48):
#! rn=Ronda rt=789852526

Die Duncton-Quest ist so ziemlich die beste, die mir bis jetzt
unter die Finger gekommen ist und auch eine der wenigen, die ich
(fast) ohne Hilfe gespielt habe.
Deshalb finde ich es auch bedauerlich, wenn jemand gerade zu
dieser Quest ne Musterloesung verwendet, ich glaub, die ist nicht noetig...

und deshalb begruesse ich es ausdruecklich, wenn Tryfan die Quest
ab und zu 'n isschen umbaut :) Schliesslich wollen auch Zweitis
was zu knabbern haben :)

Fyt.

-----------------------------------------------------------------------------



Re^3: Noch eine Aenderung in Duncton (Ronda, 11. Jan 1995, 21:25:16):
#! rn=Fyt rt=789855528
...noch ne Ergaenzung:
Klar! Wenn Du die Quest UMBAUST, ists ok, aber schwerer sollte sie - glaub
ich - nicht werden...
                   Ronda

-----------------------------------------------------------------------------



Re^4: Noch eine Aenderung in Duncton (Dancer, 14. Jan 1995, 15:32:43):
#! rn=Ronda rt=789855916
Guggug :)

Da das Thema gerade aufkommt, moechte ich auch mal was dazu sagen.

Ich habe als Spieler (ok da waren es noch paar weniger Quests) keine
Quests gepspielt, die man nicht ohne Komplettloesung prima loesen konnte.
Sicher gibt es hier und da mal Syntaxprobleme, aber ich habe es noch nie
erlebt, dass irgendwo Informationen einfach vergessen wurden oder ueber-
sehen. Sowas passiert naemlich einfach nicht, weil es dazu VIEL zu lange
dauert so eine Quest zu entwickeln. Manchmal kommt es mir vor, die Leute
denken, es dauert genausolange, sie zu programmieren wie sie durchzu-
spielen.
Es ist jedoch so, dass man als Programmierer auch noch auf die Sachen
achten muss, die Spieler machen sollen, sondern auch noch auf alles,
was sie machen KOENNTEN. Dazu kommt dann noch, dass bei einigen Quests
(den gut programmierten) auch noch hunderte von Abfragen drinnenstecken,
die bestimmte Reaktionen steuern, fuer die GLEICHE Aktion, die Spieler
eingeben. Es gibt ja auch Unterschiede, ob das Eingegebene von jemandem
stammt,
der die Quest schon geloescht hat, noch gar nicht offiziell damit
angefangen hat, oder mittendrinnen steckt.
Ich persoenlich finde es nicht nur aergerlich, sondern echt frustrierend,
wenn dann jemand da in 10 Minuten durchrennt, weil die Zahlen in seiner
Info wichtiger zu sein scheinen als der Spielspass.

Dancer - seit April 1994 mit Romili an einer Quest bastelnd.


-----------------------------------------------------------------------------



Noch eine Aenderung in Duncton! (Eros, 14. Jan 1995, 15:44:11):
Also ich hab die Quest vor der Aenderung gespielt und auch inzwischen nach
der Aenderung.
Mein Urteil: die Quest ist eindeutig nicht schwerer geworden. Dies kann ich
versichern.
Ich finde sogar den neuen Loesungsansatz von Tryfan interessanter als er
vorher war.
Die Aenderung sorgt lediglich dafuer das man sich in das Maulwurfwesen noch
besser hineinfuehlen kann. An dieser Stelle ein dickes Lob an Tryfan und seine
Quest.
See you all
EROS!

-----------------------------------------------------------------------------



Re^5: Noch eine Aenderung in Duncton (Gundur, 14. Jan 1995, 16:08:06):
#! rn=Dancer rt=790093963
Gundur nickt zustimmend....

-----------------------------------------------------------------------------



Auf wiederholte Anfrage: Die Duncton Texte (Tryfan, 17. Jan 1995, 15:36:24):
Liebe Elfen, Menschen, Zwerge und Magier

 nach laengeren Nachforschungen in den Heiligen Schriftensamlungen von 
Uffington und nachdem ich meine Privatbibliothek nochmal durchstoebert
habe, kann ich nun sagen, wo man die Uebersetzungen der Duncton-Schriften
von Woodruff aus Arbor Low findet.

1. Duncton Wood         Arrow Books			ISBN 0 09 944300 7
2. Duncton Quest        Arrow Books                     ISBN 0 09 960620 8
3. Duncton Found        Arrow Books                     ISBN 0 09 968300 8 

 Fuer seine unermuetliche Hilfe beim Heraussuchen sei Spindel aus Seven 
Barrows gedankt.
  Ganz besonders moechte ich mich auch bei Nirdavo aus Koeln fuer seine 
wertvollen Hinweise auf die Uebersetzungen der modernen Duncton-Texte von 
William Horwood bedanken.

4. Duncton Tales	Harper Collins Publishers	ISBN 0 00 647218 4
5. Duncton Rising       Harper Collins Publishers	ISBN 0 00 647302 4
6. Duncton Stone        Harper Collins Publishers       ISBN 0 00 647601 5

	Tryfan aus Duncton
       ( Weisser Maulwurf )

-----------------------------------------------------------------------------



Re: Noch eine Aenderung in Duncton (Flintnail, 26. Jan 1995, 12:51:15):
#! rn=Tryfan rt=789844988
Huhu...hm....worueber diskutiert ihr hier:)

Die Duncton Quest, ist auch nach meinem Dafuerhalten mit das beste an Quests,
was das MG zu bieten hat...und wer hier mit ner Komplettloesung reinrauscht is
selbst schuld:)
In dieser Quest MUSS man KEINEN evt. toedlichen Kampf austragen...es gibt
nicht zuviele NPC's sie ist raeumlich begrenzt auf ein bestimmtes Areal ( das
sogar je nach Fortschritt in mehrere Teile gegliedert ist...was will ein
Quester mehr???:)
Sicher ...es ist schwer die richtigen Fragen zu stellen...aber fast ueberall
sind Notausgaenge, falls man wirklich nicht mehr weiter weiss und raus will.
Schade, Tryf, das du sie aendern musst...ich kann nur hoffen das sie dadurch
noch besser wird, und nicht schlechter! Hier noch mal mein Vorschlag an die
Mags...fuehrt einfach eine Seher-aequivalente HighPlayerStufe ein...fuer
diejenigen unter uns, die nicht questen wollen, aber muessen, um den
Seherstatus zu erlangen...Schwertmeister oder sowat:) ...denn ich befuerchte,
das nicht nur Tryfan das Problem haben wird !

        Flintnail...ein bisschen enttaeuscht...

-----------------------------------------------------------------------------



Kneipe in der Daemonenburg entdeckt! (Zardoz, 26. Jan 1995, 16:07:31):
Wie aus gut unterrichteten Kreisen bekannt wurde, soll es in der
Daemonenburg jetzt die uebelste Kneipe im MorgenGrauen geben (laut
Schild vor der Tuer). Allerdings sollen angeblich die Daemonen einen
Schutz eingebaut haben, damit sie nicht von herumstreunenden Abenteurern
bei ihren Saufgelagen gestoert werden.

-----------------------------------------------------------------------------



Fraggle-Kristallschluessel (Fraggle, 13. Feb 1995, 14:13:09):
Eine kleine Aenderung:
Der Kristallschluessel laesst sich jetzt mit vernichte kristallschluessel
vernichten. Also, wer ihn nicht mehr braucht, kann ihn so loswerden.
(Wenns nicht klappt, muesst ihr (wie ueblich) erst "ende" eintippen, und nach
dem neueinloggen das Kommando ausfuehren.
Fraggle

-----------------------------------------------------------------------------



Re: Re: Noch eine Aenderung in Duncton (Xanthia, 16. Feb 1995, 23:17:27):
#! rn=Flintnail rt=791121075
So. Jetzt moechte ich auch mal was zu den Quests schreiben.
Also ich muss sagen, dass Duncton-Quest gehoert wirklich zu den besten,
die ich bisher gemacht habe.
Was mich nur immer enorm aufregt sind solche Labyrinthe wie beim
Rasselketten-Quest oder solche Labs halt, die sich immer veraendern.
Die koennen einem den Spielspass doch sehr vermiesen. Ich bin der
Meinung, wenn man als Quest-Entwickler keine Lust zu einem langen Quest
hat, dann soll man es lieber lassen, anstatt solche Zeitstrecker-Labs
einzubauen, nur damit das Quest auch schoen lange dauert.
Da faellt mir auch gerade noch das Oktopus-Quest ein, das auch sehr
nervig sein kann, wenn man immer vor dem naechsten Reset noch schnell
alle zig Tausend Moeglichkeiten durchprobieren muss.
Dann doch lieber so schoene lange Quests wie das Duncton.

In Hoffnung auf viele schoene Quests.

Xanthia

-----------------------------------------------------------------------------



Re^3: Noch eine Aenderung in Duncton (Asmodis, 17. Feb 1995, 02:19:13):
#! rn=Xanthia rt=792973047
Also, das Rasselketten-Lab ist doch ganz einfach aufgebaut.
Es ist dreidimensional mit den Massen 5x5x5 .
Ausserdem kommt man da gut durch mit Hilfe des Amuletts.

                               Ciao, Asmodis
&&

-----------------------------------------------------------------------------



Re^3: Noch eine Aenderung in Duncton (Yendi, 17. Feb 1995, 18:01:28):
#! rn=Xanthia rt=792973047
Oktopus fand ich gut... Sobald Du einmal die Karte fertig hattest, war es
kein Problem mehr, nur noch Logik. Schoen. :)

-----------------------------------------------------------------------------



Woerterbuch (Zardoz, 20. Feb 1995, 10:40:50):
Im Verlag Langenschweit ist nun die zweite, ueberarbeitete Fassung des
beliebten Woerterbuchs: DAEMONISCH-VERSTAENDLICH erschienen.

viel Spass

-----------------------------------------------------------------------------



Re^4: Noch eine Aenderung in Duncton (Aranya, 21. Feb 1995, 15:02:27):
#! rn=Asmodis rt=792983953
Also, auch wenn ich die Duncton-Quest fuer die mit Abstand beste
halte, die ich bisher gemacht habe - atmosphaerisch und so - muss ich sagen,
dass ich das Rasselkettenlab am meisten von allen Labs mag. Wenn man's ein-
mal kapiert hat, dann hat man keine Probleme damit (ich musste allerdings
ziemlich lange suchen, aber das ist eine andere Geschichte).

Das wollte
            Aranya
                nur gesagt haben.

-----------------------------------------------------------------------------



Saeuredaemonen (Zardoz,  7. Mar 1995, 16:00:09):
Kleine Ankuendigung: Die Saeuredaemonen haben nun eine neue
Verteidigungsmoeglichkeit erlernt. Viel Spass! :-)

-----------------------------------------------------------------------------



Re: Saeuredaemonen (Wargon,  7. Mar 1995, 16:05:38):
#! rn=Zardoz rt=794588409
Wer hat den Spass? Die Daemonen oder die Spieler? ;)

-----------------------------------------------------------------------------



Neues aus Duncton (Tryfan, 30. Mar 1995, 13:25:49):
Hi Leute

 Also, da ist mir doch grade eine merkwuerdige Meldung in die Pfoten 
geflattert:


>        Verwirrte Abenteurer am Ostwall gesichtet!
>
> Immer mehr verwirrte Abenteurer werden am Ostwall aufgegriffen. Sie sind
>fast alle maennlich und berichten, sie haetten nicht nur die Gestalt eines
>Maulwurfes angenommen, sondern auch noch eine Geschlechtsumwandlung erlebt!
> Weibliche Abenteurer hingegen berichten, dass sie nun endlich auch mit
>ihrem natuerlichen Geschlecht in Duncton gewesen seien und nicht mehr mit
>'Bracken' sondern 'Rebekka' angeredet wurden. Die meisten waren davon sehr
>angetan, da sie sich so in einen echten maennlichen Maulwurf verlieben
>konnten.

 Ich kann dazu nur folgendes sagen:
Man wird sich in absehbarer Zeit in gewissen Grenzen aussuchen koennen, ob 
man als maennlcher oder weiblicher Maulwurf nach Duncton gehen will. 
 Es wird kein neues Quest geben, aber eine voellig neue Duntonerfahrung.
Auch Spieler, die Duncton schon als Bracken erlebt haben, sind herzlich 
eingeladen, es nochmal als Rebekka zu besuchen. Einiges wird ihnen bekannt
vorkommen, vieles ist aber voellig neu.

 Wozu sind die dummen Wuermer in der Aeltestenkammer gut? 
 Warum hat Ruun Rebekka in die Hoehle der Wurzeln gejagt?
 Was wollte Rebekka ueberhaupt draussen im Wald?
 Was hat es mit Mandrake auf sich?
 Und, warum nannte Rebekka ihren Sohn (mich) Tryfan?

Auf all dies gibt das Duncton aus weiblicher Sicht die Antworten.

 Also nochmal zur Klarstellung, jeder kann Duncton sowohl als weiblicher
als auch als maennlicher Maulwurf erleben, egal welches Spielergeschlecht 
'er' hat, egal ob 'sie' das Quest schon geloest hat. Das Quest kann man 
beiderlei Geschlechts loesen, wenn man es noch nicht geloest hat.  
 Die versteckten Zt's kann man auch unabhaengig vom Maulwurfgeschlecht 
finden. Hat man sie schon gefunden, hat es keinen Sinn nach weiteren Zt im
jeweils anderen Maulwurfgeschlecht zu suchen.

 Das ganze hat einzig und alleine den Sinn, dem Wunsch einige, hauptsaechlich
weiblichen Spieler zu entsprechen, Duncton auch als weiblicher Maulwurf
spielen zu koennen. Und wer den leibhaftigen Bracken, den er selbst mal
verkoerpert hat, 'life' erleben will, der soll es ruhig nochmal als 
weiblicher Maulwurf versuchen.
  
 Ich wuensche allen viel Spass dabei. 

	Tryfan aus Duncton
       ( Weisser Maulwurf )


P.S: Die alte Dunctonversion bleibt bestehen so wie sie ist. Sie ist von 
     der Aenderung nicht beruehrt. Die Neuerung tritt fruehestens dieses 
     Wochenende in Kraft.

-----------------------------------------------------------------------------



'Weibliches Duncton' eroeffnet (Tryfan,  1. Apr 1995, 10:47:17):
Hi Leute

 So, es ist endlich so weit. Ich habe die neue Dunctonversion angeschlossen.
Also nicht wundern, wenn jetzt ein paar Sachen neu sind, wenn man nach Duncton
geht. Wie gesagt, die alte Version besteht weiterhin unveraendert. 
 Ich hoffe, es laeuft alles halbwegs problemlos. Schreibt fleissig typo, 
idee usw.. 
 
 Vielen Dank an Kirk und Rochus fuer die vertrauensvolle Abnahme und Silvana
fuer ihre hartnaeckige Anregung. 
 
 Vor allem sei aber den vielen fleissigen Sehern gedankt, die mit einigen
Zweities getestet und kritisiert haben.

	Tryfan aus Duncton
       ( Weisser Maulwurf )

-----------------------------------------------------------------------------



Sackgasse im Raetselstein? (Bloodyharry,  1. Apr 1995, 23:40:12):
Hallo Quester.

Im Raetselsteinquest habe ich die Raetselsteinpartitur und wollte sie
Tasmin Ferrence uebergeben. Er verweigert aber die Annahme mit der Begrruen-
dung, dass er schon eine von mir hat. Das kann aber nicht sein, denn ich halt
e sie ja noch in meinen Haenden. Folglich passiert auch nichts weiter.
Weder erhalte ich irgendeine Post noch erscheinen in Harmony die Saenger um
meine Partitur zu testen. Wie auch.
Es scheint, ich bin hier in einer Sackgasse gelandet.
Ich habe auch keine Ahnung, ob mir da ueberhaupt jemand helfen kann.
Bisherige Antworten waren da eher negativ.
Insgesamt wuerde ich auch sagen, ist es ein relativ schwieriges Quest.
Also besser auslassen!

ciao,
   Harry

-----------------------------------------------------------------------------



Re: Sackgasse im Raetselstein? (Acrimon,  2. Apr 1995, 00:08:14):
#! rn=Bloodyharry rt=796772412
Exakt dasselbe wie Bloodyharry ist mir auch damals passiert, als ich damals
meine Raetselsteinpartitur abgeben wollte.
Es ist anzunehmen, dasz in der Raetselsteinquest ein grober Bug steckt.
Ich kann mich noch erinnern, dasz ich noch etwa drei Wochen, bevor ich die
Raetselsteinquest begonnen habe, sie schon einmal beginnen wollte. Ich habe
Tasmin auch nach allem Noetigen gefragt, als ich den Archivar dann aber nach
der Partitur gefragt habe, hat er (soweit ich mich erinnern kann) gesagt, er
werde sie anfertigen. Am diesem Tag habe ich es nicht geschafft, die Partitur
zu bekommen.
Das war aus meiner Erinnerung, es kann durchaus sein, dasz das damals ein
wenig anders abgelaufen ist.
Hoffentlich findet Troy den Fehler.
Viel Glueck, Troy!

Grusz, Euer Groszer
Acrimon

-----------------------------------------------------------------------------



Entschaedigung in Duncton (Tryfan, 23. Apr 1995, 09:36:45):
Hi
 es gibt mal wieder was neues aus Duncton.
Es sollte ab sofort jetzt auch in Duncton die uebliche Entschaedigung fuer
die Ausruestung geben, die man bei sich trug, als man nach Duncton ging,
wenn es zu einem Crash oder Reboot des MorgenGrauens kommt.
 Die Entschaedigung manifestiert sich in einem Maulwurffell, das man nun in
Duncton mit sich rumtraegt.
 Bugs bitte ich umgehend zu melden. ('hilfe fehler')

	Tryfan aus Duncton
       ( Weisser Maulwurf )

-----------------------------------------------------------------------------



Re: Entschaedigung in Duncton (Bloodyharry, 23. Apr 1995, 15:31:08):
#! rn=Tryfan rt=798622605
Hallo Tryfan,

das finde ich sehr sinnvoll. Aber es haette mir auch gereicht, wenn ich
vorher eine entsprechende Warnung erhalten heatte.

ciao, Bloody Harry

-----------------------------------------------------------------------------



Saeuredaemonen (Zardoz, 11. Mai 1995, 14:47:21):
Tja, die Saeuredaemonen haben einen neuen Verbuendeten im Kampf gegen
Spieler, die ihnen die Saeurebaelle wegnehmen wollen. Lasst euch
ueberraschen :-)

-----------------------------------------------------------------------------



Nochmal Daemonen (was sonst) (Zardoz, 11. Mai 1995, 15:33:03):
Es ist jetzt in der Daemonenburg eine neue Daemonenart gesichtet worden.
Sie soll sich besonders in verstaubten Raeumen aufhalten.


-----------------------------------------------------------------------------



Re: Nochmal Daemonen (was sonst) (Rochus, 11. Mai 1995, 15:36:28):
#! rn=Zardoz rt=800199183
Meinst Du "besonders in verstaubten Raeumen" oder
"in besonders verstaubten Raeumen"? :-)

-----------------------------------------------------------------------------



Groessen in Duncton (Tryfan, 12. Mai 1995, 11:49:01):
Hi
 Vorsicht Karateka. Die Maulwuerfe haben nun eine definierte Groesse. Sie
entspricht ihrer Groesse in RL. Allerdings passt sich die Groesse der
Spieler, die nach Duncton gehen und zum Maulwurf werden, diesem an. 
Man sollte daran denken, dass man als relativ kleiner, junger Maulwurf
in Duncton rumlaeuft, egal ob weiblich oder maennlich.

	Tryfan aus Duncton
	(Weisser Maulwurf)

-----------------------------------------------------------------------------



Hilfe !!! (Fraggle, 17. Mai 1995, 10:46:44):

------------------------------------------------------------------------------
ANZEIGE:

 Ich, Sam Harkwind vermisse seit langer Zeit mein Logbuch der S.S.Haikiller.
 Vor vielen Jahren, als ich noch zur See fuhr, jagdte ich den schwarzen
 Hai, ein garstiges Vieh. Es hatte meinem Bruder Hans einst das Bein
 abgebissen. Doch leider erlitt ich unterwegs Schiffbruch. Ein Saegefisch
 hatte mir auf hoher See einfach die Planken unter den Fuessen weggesaegt.
 Dabei ging sowohl mein Kahn unter als auch das Logbuch verloren. Ich hoffe
 nun, auf diesem Wege einen mutigen Abenteurer zu finden, der mir das Buch
 wiederbeschaffen kann. Angebote bitte privat an:

 Sam Harkwind
Hafenstrasse
Port Vain


------------------------------------------------------------------------------


-----------------------------------------------------------------------------



Neue Quest (Fraggle, 17. Mai 1995, 10:53:31):
Es gibt jetzt in Port Vain eine neue Quest, und da ich ja ab und zu dazu
lerne (und sich bei der Red-Fraggle-Quest ja einige Abenteurer beklagt hatten
:)
laesst sich diese Quest nun Rudelweise loesen, sofern ihr etwas Ruecksicht
uebt. Also kein Warten mehr, bis der vor euch fertig ist!

Mein Dank gilt Gatsby und Kirk fuer das Testen sowie allen, die mich mit
konstruktiven Vorschlaegen unterstuetzt haben.

 Gruss

 Fraggle

-----------------------------------------------------------------------------



Anne! :-) (Calum, 28. Mai 1995, 11:36:22):
Nachdem es in letzter Zeit gehaeuft vorkam, dass bestimmte Spieler
staendig in Moron bei Anne standen und sie per Skript killten,
habe ich Anne jetzt unsterblich (aber NICHT unangreifbar) gemacht.
In Zukunft steht sie also wieder fuer alle wissenshungrigen Spieler
zur Verfuegung.

       - Calum

-----------------------------------------------------------------------------



Re: Anne! :-) (Jof, 29. Mai 1995, 09:02:06):
#! rn=Calum rt=801653782
 Das ist schlecht - bitte aender das wieder. Unsterbliche, aber angreifbare
Monster sind a) endlose EP-Quellen, weil jeder Schlag EP bringt und b) ideale
Karate-Trainingsopfer, weil man endlos Abwehr ueben kann ohne das das
Viech stirbt. Also bitte: aendern.

 Jof

-----------------------------------------------------------------------------



Re: Re: Anne! :-) (Jaf, 29. Mai 1995, 13:48:02):
#! rn=Jof rt=801730926

Hm... also Anne als Karate-Gegner lohnt sich nicht, die ist zu stark,
da kommt man aus dem saufen nicht raus. Aber ich faend's schon netter,
wenn man sie wieder killen koennte *grins*

Fyt.

-----------------------------------------------------------------------------



Re^3: Anne! :-) (Stahldorn, 29. Mai 1995, 15:23:58):
#! rn=Jaf rt=801748082
Ja, genau! Macht Anne wieder mortal und banisht dafuer Kelder und Steve.
*grummel*

-----------------------------------------------------------------------------



Re^4: Anne! :-) (Asmodis, 29. Mai 1995, 18:57:27):
#! rn=Stahldorn rt=801753838
Aeh, Stahli, du hast ja in den letzten Tagen selbst Anne reihenweise
umgebracht, also bitte auch Bellicus und Alxx banishen :)

                     Ciao, Asmodis

-----------------------------------------------------------------------------



Re^5: Anne! :-) (Asmodis, 29. Mai 1995, 18:57:57):
#! rn=Asmodis rt=801766647
Uebrigens, NPCs sind zum killen da, darin sehe ich ihren
Lebenszweck, nix anderes :)

-----------------------------------------------------------------------------



Re^6: Anne! :-) (Baron, 30. Mai 1995, 00:58:30):
#! rn=Asmodis rt=801766677
NPCs ja, aber doch nicht Anne! :)

-----------------------------------------------------------------------------



Re^5: Anne! :-) (Stahldorn, 30. Mai 1995, 08:26:54):
#! rn=Asmodis rt=801766647
Ich hab den Alxx nur hingestellt, weil es mir auf die Nerven gegangen ist,
dass Kelder sie per Script immer wieder gemeuchelt hat. Frueher hab ich die
Anne auch manchmal gekillt, weil der Viez recht praktisch und angenehm ist,
aber Du musst ja alles uebertreiben und sie per Automatik umbringen und alle
Vieze fuer Dich behalten. Als ob sie Dein NPC waer. Jetzt hat keiner mehr den
Viez und ich finde das schade und bin schon ein klein wenig sauer auf Dich.

  STAHL.

-----------------------------------------------------------------------------



Re^6: Anne! :-) (Snuggle, 30. Mai 1995, 14:23:07):
#! rn=Stahldorn rt=801815214

Macht Anne sterblich, aber lasst sie mit einem Schlag 150 LP anziehn.
(oder wieviel Kelder auch immer hat), oder lasst Anne einfach
in Ruhe, wenn Ihr das Viez nicht grad dringend zum mitnehmen braucht..

augenzwinkernd
Snuggle (waere als Mage auch sauer,wenn sein Lieblings-NPC staendig per
script gekillt wird :-) )

-----------------------------------------------------------------------------



Sam Harkwinds Logbuch (Fraggle,  2. Jun 1995, 10:12:58):
Hallo!

Der Teufel in der Logbuch-Quest ist in letzter Zeit etwas zu oft veraeppelt
worden und hat nun die Geduld verloren. Also seit in Zukunft etwas
vorsichtiger, wenn ihr Unschuldige verleumdet.

Fraggle

P.S.: Das betrifft in erster Linie Spieler mit Komplettloesungen etc.


-----------------------------------------------------------------------------



Lokalidee (Nudei,  7. Jun 1995, 11:42:04):
An alle Regionsmagier und -mitarbeiter1

Es geht doch nichts ueber ein gemuetliches Tanken in gepflegter Atmosphaere,
wo sich der PSieler wohlfuelt, fue ein Schwaetzechen innehaelt, und die
Inflation im Mud bekaempft, indem er seine Muenzen beim Fenster raushaut.
Die Kneipen sind allesamt liebevoll eingerichtet, doch eine Baridee fehtl
bislang.
Der echte, urwienerige Heurige.
Es ist unbestritten, dass die Wiener Gastspieler an Zahlk zunehmen. Wie waere
es, ihnen einen kleinen Gefallen zu tun, und ein neues Lokal aufzumachen, wo
sie sich noch wohler fuel ein neues Lokal zur verfuegung zu stellen, wo sie
sich noch wohler fuehlen als anderswo?
Dort, bei einen Liter Heurigen, einem Weissen Spritzer und Schmalzbrot, bei
zarter Schrammelmusik ("Die alte Engelmacherin vom Diamanterngrund..."),
koennte das Wienerharz (-Herz) hoeher schlagen.

Da diese Idee dermassen prachtvoll ist, bedarf sie keiner weiteren
Unterstuetzung, trotzdem wuerde mich der einschlaegighe Fachkommentar 
interessieren.
Deswegen, auf Bald!

Nudei der Stammgast.

-----------------------------------------------------------------------------



Re: Lokalidee (Mupfel, 10. Jun 1995, 07:50:55):
#! rn=Nudei rt=802518124
wir haben doch genug wiener magier nudei...
du musst sie nur etwas 'anspitzen' :-)

-mupfel-
(frag eventuell den frederick mal...)

-----------------------------------------------------------------------------



Re: Re: Lokalidee (Pteppic, 12. Jun 1995, 07:59:37):
#! rn=Mupfel rt=802763455

seit wann is frederick magier? nur nicht die muds verwechseln, -mupfel-. :-)
aber ansonsten wuerd ich das von mir aus uebernehmen mit dem heurigen.

pteppic

-----------------------------------------------------------------------------



Lokalideee (Nudei, 12. Jun 1995, 10:18:34):
grts, Herr illuminierter Pteppic!

Will mich gerne in den Dienst der Sahce stellen und mit einer fundierten
Beschreibung eines heurigens dienene. teile bitte mit, ob meine Mitarbeit von
nutzen sein koennte!

PS: Warum bist Du noch nicht auf der Liste der DER IRRE WELTRAUMPROLET-
Leser? Wird aber Zeit, ich koennte doch tatsaechlich 50g an Porto sparen, wenn
ich mehr oesterreichische Leser haett ...;)

Nudei, Schriftleitung des DiWp und Heurigenstammgast.

-----------------------------------------------------------------------------



Narrenball (Li, 19. Jun 1995, 11:11:31):
Eine kleine Aenderung (Vereinfachung) an der Quest:
die vier zettel kann man nun alle mit der gleichen Syntax finden.

Li

-----------------------------------------------------------------------------



Mal wieder Daemonen... (Zardoz, 23. Jun 1995, 14:30:03):
Ich bin nach langer Zeit mal wieder durch die Daemonenburg gewandert und
musste zu meiner Verblueffung feststellen, dass die Waechter im Wachraum
neuerdings einen neuen Gegenstand aufbewahren, der mir vorher nie aufgefallen
ist. Wozu der wohl gut sein soll?
Vielleicht findet ihr es ja raus...
Ciao
         Zardoz

-----------------------------------------------------------------------------



Quiz (Zardoz, 29. Jun 1995, 16:17:45):
Da ich jetzt schon von mehreren gehoert habe, dass sie die Rubrik "quiz"
abbestellt haben, moechte ich auch hier darauf hinweisen, dass ich einen
Fragebogen ueber die Daemonenburg erstellt habe, den jeder anfordern
kann, der meint er kenne sich dort aus, oder wolle sie sich in naechster
Zeit anschauen. Es gibt auch was zu gewinnen, also strengt euch an :-)

-----------------------------------------------------------------------------



Re: Quiz (Cuchullin, 29. Jun 1995, 16:20:21):
#! rn=Zardoz rt=804435465

Stimmt so nicht ganz. Ich hab ihn auch anfordern koennen und war noch kein
einziges mal in der Daemonenburg...

Cuch ;)

PS: Ja, ich hab ihn auch bekommen ;)


-----------------------------------------------------------------------------



Jaja! (Bendeigid, 29. Jun 1995, 21:43:23):
Cuchullin, natuerlich stimmt's: lies mal genau!
Ich kann es nur empfehlen: Mitmachen, mitgewinnen!

*gespannt sei*

Z'par Servu,
            Bendeigid

-----------------------------------------------------------------------------



Narrenball (Li,  3. Jul 1995, 08:52:44):
Hi!
eine kleine Aenderung in der Narrenballquest. Man kann einen gewissen
Geheimmechanismus nun auf mehrere Arten betaetigen, nicht mehr nur mit dem
alten (zugegeben nicht ganz passenden) Verb.
Bye!
Li

-----------------------------------------------------------------------------



Daemonenburg (Zardoz,  6. Jul 1995, 10:02:58):
Die Daemonenburg ist zu Testzwecken zur Zeit geschlossen.

-----------------------------------------------------------------------------



Oeffentliche Entschuldigung: (Fraggle,  6. Jul 1995, 10:59:14):
Hi Zusammen!

Punkto Sam Harkwinds Logbuch muss ich mich hier in aller Form entschuldigen!
Es gab einen schweren Fehler, der einen der Loesungswege betraf:
In einem Raum fehlte ein WICHTIGES Detail, ohne das man einen bestimmten
Namen nicht erfahren konnte. Leider hab ich das jetzt erst festgestellt,
aber komischerweise haben einige Leute (die das betraf) die Quest trotzdem
geloest, was ich mir im nachhinein fast nicht erklaeren kann.
(Es sei denn, da hat nen Magier nachgeschaut, allerdings habe ich keine
Bug-Meldung gefunden)
Wie dem auch sei, wer glaubt, dass es ihn betraefe, moege sich notfalls bei
mir melden oder besser (da ich selten da bin wg. Diplomprf.-Vorbereitung)
In dem Raum mit dem zerbrochenem Fenster nochmal die Raumbeschreibung
durchlesen. Der Name sollte dann zu finden sein.

Nochmals, tut mir leid und soll nicht wieder vorkommen!

 Gruss

   Fraggle

-----------------------------------------------------------------------------



Daemonenburg (Zardoz,  6. Jul 1995, 12:24:30):
Die Daemonenburg ist vorlaeufig wieder geoeffnet. Allerdings werde ich sie
bald wieder fuer kurze Zeit schliesen muessen. Dafuer gibts dann aber auch
eine Erweiterung....

-----------------------------------------------------------------------------



Re: Daemonenburg (Anakin,  6. Jul 1995, 12:43:07):
#! rn=Zardoz rt=805026270
Ja Erweiterung. Apropos....Wann gibt es ne Erweiterung der SSP Boing?

Anakin.

-----------------------------------------------------------------------------



Re: Re: Daemonenburg (Rxtech,  6. Jul 1995, 12:44:01):
#! rn=Anakin rt=805027387
man koennte ja vom eistitanen aus beim trollohr auf dem friedhof rauskommen

bin ich bloed heute (heute? )

Rx

-----------------------------------------------------------------------------



Quiz zur Daemonenburg (Zardoz,  8. Jul 1995, 00:21:42):
So, damit ihr es nicht vergesst, es gibt ein Quiz zur Daemonenburg, dass
noch ca. 2 Wochen laufen wird, da staendig sich noch welche anmelden.
Wer also Lust hat mitzumachen kann bei mir einen Fragebogen anfordern.

-----------------------------------------------------------------------------



Seherhaeuser (Rochus, 10. Jul 1995, 11:46:06):
Also, da immer wieder Anfragen kommen:
Es gab frueher Beschwerden von Spielern, die auf ihren
Wegen tausenden von Seherhaeusern begegnet sind.
Ich lasse daher keine Seherhaeuser auf der Akademiestrasse,
der Drachenhorter Landstrasse und der Hauptstrasse
sowie auf den Strassen von Port Vain zu.

-----------------------------------------------------------------------------



Re: Seherhaeuser (Asmodis, 10. Jul 1995, 12:35:21):
#! rn=Rochus rt=805369566
Hmm, vielleicht koennte man das so loesen, dass man die Haeuser in die
Beschreibung
mit einflechtet, wie das teilweise schon geschehen ist und nicht nochmal
extra auffuehrt !!

-----------------------------------------------------------------------------



Monolith (Zardoz, 10. Jul 1995, 13:27:04):
So, nach langem hin und her und drunter und drueber wurde jetzt endgueltig
ein See im Monolithen entdeckt. Viel Spass beim Baden, ihr Schmutzfinken
(TM Putzteufel).

-----------------------------------------------------------------------------



reply auf 'Rubrik 14: entwicklung, Artikel: 148 von 150' (Mupfel, 10. Jul 1995, 13:56:44):
eins vorweg: da allgemein & entwicklung voll sind, schreib ich alo hier...)

was vielleicht moeglich waer, waere den kellner nach speisen/getraenken zu
fragen.
aanakin hat fuers al ne kneipe geproggt in der man die kellneren nach den
drinks fragen kann und sie gibt die mixrezepte an. das finde ich ganz witzig.
koennte ja vielleicht sich der daenische koch zu fischrezepten auslassen oder
so....

-mupf-

-----------------------------------------------------------------------------



Re: reply auf 'Rubrik 14: entwicklung, Artikel: 148 von 150' (Anakin, 10. Jul 1995, 14:06:34):
#! rn=Mupfel rt=805377404
Hmm, man kann sie auch nach ganz anderen Sachen fragen....:)
Anakin.

-----------------------------------------------------------------------------



Re: reply auf 'Rubrik 14: entwicklung, Artikel: 148 von 150' (Grimmborn, 11. Jul 1995, 13:29:11):
#! rn=Mupfel rt=805377404

Tja, so eine Kneipe gibts hier doch schon, Mupfel. Ein gelegentlich eher
lebensrettendes feature, daher bin ich da schonmal gegen... ;-)

Grimmborn der Atheist

-----------------------------------------------------------------------------



Duncton-Ausgaenge (Tryfan, 23. Jul 1995, 13:49:44):
Hi
 wie vielen wohl schon aufgefallen ist, diene die Regenrohre in Duncton als
Ausgaenge aus der Quest. Diese ist keine boese Absicht von mir, sondern soll
jedem ermoeglichen aus der Quest auszusteigen, wenn er dieses wuenscht. 
Natuerlich muss man dann das Quest erneut beginnen. Es sollte niemand 
gezwungen sein, eine Quest an einem Stueck spielen zu muessen.
 Leider waren aber einige Rohre so ungeschickt angebracht, dass Spieler, 
ohne es zu wollen, das Quest verlassen haben. Deshalb habe ich an einigen 
Stellen nun zusaetzliche 'Abfragen' installiert. D.h.: Beim ersten Versuch 
wird man nochmal darauf hingewiesen, dass man das Quest verlassen wuerde. 
Wiederholt man den Versuch, wird man rausgelassen.
 Natuerlich kann man das ganze vermeiden, wenn man sich die Raumbeschreibung
durchlesen wuerde. Aber wer macht das schon?! ;)

    Tryfan aus Duncton
    (Weisser Maulwurf)

-----------------------------------------------------------------------------



Glaswuerfel erweitert (Bertram, 26. Jul 1995, 13:33:07):
Hi

Wie mir zu Ohren kam, wurde der Galswuerfel im Neandertal um eine neue
Funktion erweitert.

Viel Spass damit wuenscht
                              Bertram


-----------------------------------------------------------------------------



Goblinhexer, Drache, Flammenkugeln (Rochus, 27. Jul 1995, 16:50:11):
Zuerst die gute Nachricht:
An der Staerke vom Hexer und Drachen hat sich nichts geaendert.
Flammenkugeln helfen gegen Feuerempfindliche Wesen auch besser.
Jetzt die schlechte Nachricht:
Diese Monster schaetzen die Faehigkeiten ihrer Gegner jetzt besser ein.
Die Flammenkugeln koennen jetzt auch durch Ruestungen abgeschwaecht werden
und sind gegen Feuer-resistente Wesen schlechter.

So, ich hoffe, jetzt geht nicht wieder das grosse Geschrei los :)

-----------------------------------------------------------------------------



Re: Goblinhexer, Drache, Flammenkugeln (Anakin, 27. Jul 1995, 16:56:04):
#! rn=Rochus rt=806856611
Naja eigentlich ist das ja logisch. Sowas aehnliches machen ja schon andere
MOnster mit Feuerbaellen.

Anakin.

-----------------------------------------------------------------------------



Cu Sith (Rochus, 27. Jul 1995, 17:04:15):
In einer Parallelwelt wurde kuerzlich der gefuerchtete Cu Sith entdeckt.
Viel Spass bei der Suche danach!
Ach, noch etwas: Huetet Euch vor den Killer-Kaninchen in seiner Umgebung :)

-----------------------------------------------------------------------------



Re: Cu Sith (Rochus, 27. Jul 1995, 17:17:20):
#! rn=Rochus rt=806857455
PS: Das Viech ist eigentlich fuer mehrere Seher zusammen gedacht,
also beschwert Euch nicht wenn ihr ihn alleine nicht oder
nicht lebend genug schafft :)

-----------------------------------------------------------------------------



Re: Re: Cu Sith (Asmodis, 27. Jul 1995, 19:12:40):
#! rn=Rochus rt=806858240
Jaja, wir haben ihn schon angetestet :)

-----------------------------------------------------------------------------



Re^3: Cu Sith (Caradhras, 28. Jul 1995, 16:36:18):
#! rn=Asmodis rt=806865160
Huh, ein Cu Sith in MG? *freu* :-))
Wo issn der genau in der Parallelwelt?
Und wann legen wir ihn um? :-)

        tschuess           Caradhras

-----------------------------------------------------------------------------



Re^4: Cu Sith (Jaf, 28. Jul 1995, 18:06:12):
#! rn=Caradhras rt=806942178

In der Heide, n w von der Nablafurt.

Fyt.

Umhauen? Das arme Schosshuendchen?

-----------------------------------------------------------------------------



Re^5: Cu Sith (Asmodis, 28. Jul 1995, 19:09:09):
#! rn=Jaf rt=806947572
Hmm, haben ihn doch erst gestern umgelegt :)

-----------------------------------------------------------------------------



Erweiterung von Braddon's Laden (Rochus,  3. Aug 1995, 19:48:03):
In diesem Laden ist jetzt "kaufe ausruestung" moeglich.
Dabei werden dann Waffen und Ruestungen ausgesucht, die moeglichst gut sind,
man sich noch leisten kann, noch tragen kann, und, bei Waffen,
auch zuecken kann.
Das ganze kostet eine kleine Beratungsgebuehr.

-----------------------------------------------------------------------------



Re: Erweiterung von Braddon's Laden (Lechuck,  3. Aug 1995, 19:52:07):
#! rn=Rochus rt=807472083
Das sit eine der besten Neuerungen, die es bisher gegeben hat.
Echt toll, Rochus :))
Guybrush, ist beeindruckt.

-----------------------------------------------------------------------------



Re: Re: Erweiterung von Braddon's Laden (Morgon,  3. Aug 1995, 19:53:29):
#! rn=Lechuck rt=807472327
Genau, finde ich auch genial.
        (Nur schade das der nie was fuer mich hat! ;)

-----------------------------------------------------------------------------



Re^3: Erweiterung von Braddon's Laden (Rochus,  3. Aug 1995, 20:26:27):
#! rn=Morgon rt=807472409
Naja, wenn der nichts hat kann er auch nichts Gutes aussuchen :)
Uebrigens, wenn man bereits eine Waffe hat wird natuerlich keine angeboten,
wenn man schon Schuhe hat sind im Angebot keine Schuhe usw.

-----------------------------------------------------------------------------



Re^4: Erweiterung von Braddon's Laden (Raffi,  4. Aug 1995, 21:06:48):
#! rn=Rochus rt=807474387
gilt das (das nichhts angeboten wird wenn schon was von der entsprechenden
sorte da ist)
auch wenn braddon eigentlich was besseres haette ?

oder kann man sich vieleicht sogar eine empfehlung geben lassen (nattuerlich
unter bezahlung der gebuehr)
ohne zu kaufewn ?

gruss h.

-----------------------------------------------------------------------------



Gerade in PV (Raffi,  2. Sep 1995, 01:20:50):
Ist mir gerade ueber den weg gelaufen :

Strasse scheint es sich um die Ueberreste der alten Akademie zu handeln.
Es gibt zwei sichtbare Ausgaenge: sueden und norden.
Ein kleiner Swabedoodah.
Der kleine Swabedoodah sagt: Die Pelzchen halten schoen warm.
<Hick>! Oh, Tschuldigung.
> unt swabedoodah
Das die Swabedoodahs klein sein sollen hast Du schon mal gehoert, jedoch ist
das wohl untertrieben gewesen! Dieser Swabedoodah ist vielleicht 80 cm gross,
funkelnde hellblaue Augen und fuer seine Groesse erstaunlich langes
hellbraunes Haar. Ueber seiner Schulter traegt er einen kleinen Sack der
anscheinend randvoll ist. Er laechelt Dich freundschaftlich an. So wie er
aussieht hat er wohl noch nicht viel von den schrecklichen Dingen erlebt, die
das Leben so mit sich bringt.

Er ist absolut fit.
Er traegt bei sich:
Ein Pelzbeutel.
>
Der Swabedoodah schleicht hinaus nach Sueden.

Was ist den dass ?

oder war dss  nur eine Schnappshalu ?

Gruss
H.

-----------------------------------------------------------------------------



Neulich in PV (Raffi,  4. Sep 1995, 16:05:31):
Gerade in PV

> schau
Der Strandweg knickt hier von Norden nach Osten ab. Weiter im Osten ist
der Strand von Port Vain zu sehen. Im Norden liegt das Stadtzentrum von
Port Vain. Im Westen befindet sich ein Laden, im Suedwesten fuehrt eine
kleine Seitengasse daran vorbei.
Es gibt vier sichtbare Ausgaenge: westen, suedwesten, norden und osten.
2 Wattwuermer.
> unt wattwuermer
Sowas siehst Du hier nicht!
> unt wuermer
Sowas siehst Du hier nicht!
> unt 2 wattwuermer
Sowas siehst Du hier nicht!
> schau
Der Strandweg knickt hier von Norden nach Osten ab. Weiter im Osten ist
der Strand von Port Vain zu sehen. Im Norden liegt das Stadtzentrum von
Port Vain. Im Westen befindet sich ein Laden, im Suedwesten fuehrt eine
kleine Seitengasse daran vorbei.
Es gibt vier sichtbare Ausgaenge: westen, suedwesten, norden und osten.
2 Wattwuermer.
> [Beileid:Perle] Mann so schnell sind doch die Todessequenzen gar nicht

Wiedermal voellig ratlos
Gruss
H.

-----------------------------------------------------------------------------



Neues aus Duncton (Tryfan, 18. Sep 1995, 17:37:36):
Hi,
 die neue Spielerbeschreibung, die ich echt nett finde, hat doch einige
Aenderungen in Duncton noetig gemacht, oder zumindest nahegelegt. Man macht
nun eine wirkliche Mutation durch, wenn man zum Maulwurf wird, die sogar
zur Geschlechtsumwandlung fuehren kann. Aber keine Angst, beim Verlassen
von Duncton nimmt man wieder seine alte Gestalt an. 
 Ein kleines Problem dabei ist, dass die vollstaendige Beschreibung sich
erst nach 'quit' oder einem Reboot einstellen wird. Somit kann es zwischen-
zeitlich zu etwas komischen Spielerbeschreibung in Duncton kommen. Ich bitte
das zu entschuldigen. 
			Tryfan aus Duncton
 

-----------------------------------------------------------------------------



Aussichtsturm (Zardoz,  5. Okt 1995, 11:57:21):
Ich wuerde mal gerne den Aussichtsturm des Monolithen erweitern. Allerdings
kenne ich die neuen Gebiete des MorgenGrauens nicht, und wuerde deshalb
euch (Spieler) bitten, mir mal eine Beschreibung zu schicken.
Ich braeuchte noch:
-Fernwest
-Den westlichen Waldweg
-Das Geisterschloss
- *gruebel* Was gibts denn sonst noch? Kenn mich gar nicht mehr aus :-)
Naja, einfach mal bei mir melden.....

Ciao Zardoz

-----------------------------------------------------------------------------



Re: Aussichtsturm (Rxtech,  5. Okt 1995, 13:57:03):
#! rn=Zardoz rt=812890641
Hm, da gaebs zum einen die Rodelbahn, die is ziemlich neu.
Ausserdem hat Morgoth ne neue Insel gebaut. Frag mal Cara, oder Kiesel, die
koennen die
sicher gut beschreiben

Rx

-----------------------------------------------------------------------------



Re: Re: Aussichtsturm (Fyt,  5. Okt 1995, 21:18:13):
#! rn=Rxtech rt=812897823
Ach naja, bei der neuen Insel sollte ein 'grep P_INT_LONG * | uniq' reichen.
Kann mir nicht vorstellen, dass das mehr als 30 Zeilen gibt...

Fyt.
Ach ja: *Laestermode off*

-----------------------------------------------------------------------------



Neukymrisch (Tryfan,  6. Okt 1995, 10:55:56):
Hi
 die etwas herberen Maulis in Saibod sprechen jetzt etwas verstaendlicher,
insofern als ihre Sprache ins Schriftsprachliche uebersetzt wurde.
Die Uebersetzung war mir Dank der Hilfe von Lug Samildanach, Herrscher der 
Sidhe, moeglich. Diolch! :)
 Dieses hilft im wesentlichen nur den Spielern besonders, die das Neukym-
rische beherrschen, traegt aber im allgemeinen zur Authentizitaet bei. 
	Tryfan aus Duncton

-----------------------------------------------------------------------------



(Es klappert die Muehle) Am rauschenden Bach (Raffi, 10. Okt 1995, 17:24:40):

                                Ein Bach
Ein Bach, der aus der Quelle im Norden gespeist wird fliesst in sanfter Kurve
nach Westen. Dort scheint er noch breiter zu werden.
Es gibt drei sichtbare Ausgaenge: osten, westen und nordwesten.
> o
                                Am Fluss
Aus dem kleinen Baechlein ist schon ein breiter Fluss geworden, offenbar gibt
es noch andere Quellen als die im Norden. Der Strom fliesst gemaechlich
weiter
Richtung Suedosten, im Osten scheint der Weg zu einer Aue zu fuehren.
Es gibt drei sichtbare Ausgaenge: osten, westen und suedosten.
Ein Fischotter.

Aha Der Bach fliest also nach westen, und wird dort breiter - und im Osten
ist dann ein Fluss daraus geworden :)

Es ist immer wieder erfrischend sich scheinbar bekannte Stellen erneut
genau anzuschauen :)

Gruss
H.

-----------------------------------------------------------------------------



Ant-Feuer-Ring (Rochus, 18. Okt 1995, 17:57:10):
Ich habe den Anti-Feuer-Ring etwas abgeschwaecht
(sollte aber immer noch sehr gut sein)
und dafuer den vollstrecker etwas verbessert...

-----------------------------------------------------------------------------



Re: Ant-Feuer-Ring (Jurry,  2. Nov 1995, 15:49:34):
#! rn=Rochus rt=814035430
habs gemerkt.. kieselstein und ich wurden mit vorsicht 150 bzw 120 mal eben
ins netz der toten geschickt :(:(, fersteh ich nicht, fluchtrichtung hat nicht
eingesetzt, hast du vieleicht vergessen fluchtrichtung abzufragen ?

-----------------------------------------------------------------------------



Daemonenburg (Zardoz,  7. Nov 1995, 15:48:54):
Leider ist durch eine Verschiebung des Raum-Zeit-Gefueges ein Ausgang
aus der Daemonenburg veraendert worden. Er fuehrt jetzt woanders hin...

Ciao          Zardoz

-----------------------------------------------------------------------------



Re: Merlin nun schon wieder :-) (Mango, 14. Nov 1995, 14:07:08):
#! rn=Hardil rt=816351484
tja wie ich gemerkt habe reicht schon ein teile merlin mit wo ist :)
um zu erfahren was mit ihm los ist :)

Mango.


-----------------------------------------------------------------------------



Neues von der Daemonenburg (Zardoz, 16. Nov 1995, 12:21:16):
Es soll was neues in der Daemonenburg geben...

-----------------------------------------------------------------------------



Einige nette neue Monster... (Rochus, 16. Nov 1995, 21:20:07):
Ich habe einige neue Monster angeschlossen, um die zu finden
sollte man jedoch gute Beleuchtung dabei haben...

-----------------------------------------------------------------------------



Re: Neues von der Daemonenburg (Aranya, 17. Nov 1995, 15:34:18):
#! rn=Zardoz rt=816520876
War das jetzt ne Bitte?

Aranya
      NNN.
--> muell

-----------------------------------------------------------------------------



Abruestung (Rochus, 29. Nov 1995, 18:03:35):
So, ich habe mal etwas Abruestung bei den Massenvenichtungswaffen
betrieben, von denen deutlich zu viele im Spiel sind.
Momentan gibt es 124 Flammenkugeln, 337 Saeurebaelle und 404 Voodoonadeln!
Ein Spieler lagert momentan 163 Stueck in seinem Seherhaus!
Deswegen gibt es jetzt a) in der Parallelwelt hinter den beiden
Drachen etwas weniger und b) nutzt der Goblinhexer jetzt seine
Flammenkugeln auch zur Verteidigung, wenn er kurz vorm Ende steht,
und nicht nur wie bisher nur gegen sehr gut *eingeschaetzte* Spieler.
Ich weiss dass die Flammenkugeln mengenmaessig das kleinste Problem
sind - hoffentlich ziehen Zardoz und Schrumpfi nach (Schrumpfi
hat schon begonnen, wenn ich das richtig gesehen habe...)

-----------------------------------------------------------------------------



Re: Abruestung (Asmodis, 29. Nov 1995, 18:06:30):
#! rn=Rochus rt=817664615
hmm, 850 stueck massenvernichtungswaffen sind doch bei ueber 100
Spielern gar nicht so viel, da entfallen hoechstens 2 oder 3 stueck auf einen
:)

-----------------------------------------------------------------------------



Re: Re: Abruestung (Raffi, 29. Nov 1995, 18:35:33):
#! rn=Asmodis rt=817664790

Asmodis du bist wohl statistikfan ? (Glaube nur den Statistiken die du
selbst gefaelscht hast) :)..... Das mag ja so stimmen - ich hab aber noch nie
eine dieser waffen gesehen.

Die Monster schwieriger (oder gar inteligenter) zu machen ist m.E. der
falsche weg - die HL Spieler koennen dann trotzdem Horten - besser waere es
die jeweis 'verteilte' Menge zu verringern. Dann ergibt sich das mit der
Gesammtmenge von alleine. (Zaehl doch mal einer wieviele Goboringe oder
Diddelmaeuse im Spiel sind).

Gruss
H.

-----------------------------------------------------------------------------



Re^3: Abruestung (Cuchullin, 29. Nov 1995, 18:41:29):
#! rn=Raffi rt=817666533


Artillerie (also Flammenkugeln, Saeurebaelle, etc) waren aus Magiersicht
ebenso wie der Bumerang noch nie sonderlich beliebt.
Es ist einfach unmoeglich, ein Monster zu planen, wenn der Einsatz von
solchen Waffen es in kuerzester Zeit ableben lassen wuerde.
Ein Monster zu konzipieren, an dem einfach mehrere Spieler kloppen muessen,
um es zu killen, ist nur dann moeglich, wenn es gegen die Artillerie
vollkommen immun ist. Und das ist ja auch nicht das Gelbe vom Ei.

Koennte es verstehen, wenn es morgen keine Bumis und keine Ari mehr gaebe,
Cuch.-


-----------------------------------------------------------------------------



Re^4: Abruestung (Boing, 29. Nov 1995, 18:50:30):
#! rn=Cuchullin rt=817666889
An sich ist das ja schon eine gute Sache mit der Artillerie und den
Bumerangs, es macht Kaempfe fuer den Spieler etwas interessanter, weil
er halt ein bisschen mehr machen kann als nur zuschauen, wie die normale
Kampfroutine ablaeuft (Bla trifft Dich, Du triffst Bla ... usw.).
Allerdings geht halt nicht nur der Reiz sondern auch die Balance
verloren, wenn es diese Dinge im Uebermass gibt. Insofern waere eine
Abruestung sehr zu begruessen.
tschuess,
  Boing

-----------------------------------------------------------------------------



Re^5: Abruestung (Raffi, 29. Nov 1995, 18:52:43):
#! rn=Boing rt=817667430

Hmmmmm..... Das ist aussnahmsweise mal ein Punkt mit dem ich mitt Cuch* voll
uebereinstimme - lasst uns Bummis & co einfach abschaffen - oder zumindest
WIRKLICH selten zu machen.

Gruss
H.

-----------------------------------------------------------------------------



Re^6: Abruestung (Mahatma, 29. Nov 1995, 18:56:39):
#! rn=Raffi rt=817667563
Bumis abschaffen? Wo kommen wir denn da hin? Da muss ich mir ja doch eine
neue Gilde suchen, das will ich aber nicht. Ich bin mit den Bumis zufrieden,
und die Beschaffung der Geschosse ist gefaehrlich genug.
Mahatma

-----------------------------------------------------------------------------



Re^7: Abruestung (Nudei, 30. Nov 1995, 08:06:28):
#! rn=Mahatma rt=817667799
Doch, doch, Leute!

Wenn im Gegenzug die Monster geschwaecht werden bzw. fuer mehrere Spieler
zugaenglich, dann sofort WEG mit schwerem Geraet. Z.B. der SAlamander in Tarko
Reub *wargon anlaechel*.
Fuer einen Lag-Spieler ist es sowieso sinnlos, denn schon ein gewoehnlciher
Feuerball ist reiner selbstmord, wenn man dafuer drei runden ohne waffe
dasteht, weil das lag eine befehlsuebertragung behindert. dann kann ich gleich
drauf verzichten.
Also, weg damit.

Nudei, Schriftleitung DiWp.

-----------------------------------------------------------------------------



Re^5: Abruestung (Yantro, 30. Nov 1995, 08:30:21):
#! rn=Boing rt=817667430

Das dieser Artikel eine Antwort auf Boing ist, ist rein zufaellig und hat nix
zu sagen.... :)

Zum Thema Artillerie kann ich eigentlich nur sagen, dass es fuer eine
'normalen' Spieler sehr schwer und fuer die meisten sogar unmoeglich ist, an
das Zeug heranzukommen. Das Problem liegt dann auch nicht in der Schwierigkeit
der Monster, sondern in der Artillerie selber. Macht doch die Monster nicht
schwerer und verbaut damit jedem NICHT-SUPER-SEHER die Moeglichkeit auf die
Nutzung der Waffen. Vielmehr sollte man zb dafuer sorgen, dass die Sachen
nicht mehr so lange Haltbar sind. Wieso muss eine Flammkugel oder ein
Saeureball ewig halten? Wieso nicht weg damit nach einem Halben Tag. Wieso
sollte die Voodoonadeln nicht einfach nach ein paar resets ihre Wirkung
verlieren? Denkt mal in die Richtung nach und dann koennt ihr das Herankommen
an die Sachen so lassen... Nur gelagert werden sie dann nicht mehr....

                     Yantro (naiv) ;)

-----------------------------------------------------------------------------



Re^6: Abruestung (Li, 30. Nov 1995, 08:58:48):
#! rn=Yantro rt=817716621
Yantro, du bist vieleicht naiv(jedenfalls nach deinem Nachsatz), aber die
idee ist
doch klasse!
Li(unterstuetzt diese Version des Abruestens Voll und Ganz)

-----------------------------------------------------------------------------



Re^6: Abruestung (Baron, 30. Nov 1995, 09:33:53):
#! rn=Yantro rt=817716621
Prima Idee!
Ohne die huebschen kleinen Dingerchen ist das Kaempfen hier weniger
interessant. Wenn man die Haltbarkeit begrenzen wuerd koennten die Spieler das
Zeug nicht mehr in beliebigen Mengen horten und der Zweck waere doch erreicht?
Baron - meint das auch.

-----------------------------------------------------------------------------



Re^7: Abruestung (Paracelsus, 30. Nov 1995, 10:29:00):
#! rn=Baron rt=817720433
Ich will auch mal senfen ;)
Also ich denke die Artillerie sollte durchaus bleiben. Wenn man also die
Haltbarkeit reduziert (z.B. auf 5 Resets), sollte das als Aenderung schon
fast reichen. Vielleicht sollte man die Arti-Sachen auch so umaendern, dass
sie sich bei einem "schlafe ein" einfach aufloesen.

Para.

-----------------------------------------------------------------------------



Re^7: Abruestung (Grimmborn, 30. Nov 1995, 10:29:13):
#! rn=Baron rt=817720433

Nein, das Problem waere damit natuerlich nicht geloest. Das Problem ist
naemlich, dass pro reset eine bestimmte Anzahl Artillerie zu haben ist.
Das Problem ist nur verlagert: die vorhandenen Waffen muessen schneller
verbraucht werden. Ob das den Reiz vermindert, sich die zu holen? Immerhin
wird der moegliche Schaden so voll ausgeschoepft, waehrend im Moment immer die
Moeglichkeit besteht, dass 1000 Kugeln&Co im reboot untergehen.
Nichtsdestotrotz macht das einen besseren Eindruck wenn nicht so viel von dem
Zeug brachliegt, und ein Angriff auf einen (normalen) Schmetterling mit 5
Flammenkugeln hat halt auch was. Overkill in Reinstform...

Noch nicht ganz wach, aber auch fuer die Kugeln m.b.H.,

                   Grimmborn der Atheist

-----------------------------------------------------------------------------



Re^8: Abruestung (Yantro, 30. Nov 1995, 10:33:36):
#! rn=Grimmborn rt=817723753

Hmmm Grimmilein ;),

ich denke Du hast das mit der Resetsteuerung nicht so ganz verstanden:

Wenn ein GobHexer 5 Kugeln hat, dann kann man die sich holen... die naechsten
5 Kugeln aber erst beim reset des Hexers! Wenn nun die Kugeln NUR 5 Resets
lang halten und sich dann aufloesen, dann gibt es im MG zu einem Zeitpunkt
immer hoechstens *rechnerechne* 25 Flammkugeln (oder 30??)... zumindest aber
nicht mehr Hunderte...

Selbiges gilt fuer die anderen Sachen...

                 Yantro;)

-----------------------------------------------------------------------------



re:(Was wies ich wieviel): Abruestung (Roesti, 30. Nov 1995, 10:47:42):
Also das abruesten durch vergammeln von artillerie find ich gut...
Wuerd es aber nicht ueber die Resets laufen lassen sondern ueber die
online-Zeit.Sonst snd naemlich die Gearsch...Aeh wie auch immer ...
die sich die Dinger mit ach und Krach besorgt haben , aber in die VL
muessen... (oder nen Rechnerabsturtz haben oder weis der Geier was noch...

Hat natuerlich auch nachteile....

Roesti ueberlegt sich noch was anderes.

-----------------------------------------------------------------------------



Re: re:(Was wies ich wieviel): Abruestung (Grimmborn, 30. Nov 1995, 11:02:15):
#! rn=Roesti rt=817724862

weil hier gewisse Leute scheints zu daemlich sind:
Wo ist die Abreustung, wenn man statt in 10 Stunden 50 jede Stunde 5 Kugeln
hat?
Und die auch noch sammeln kann, bis sie garantiert fuer jedes Monster
ausreichen?

Grimmborn der Atheist. Wird von Bendeigid zur Vorlesung gezerrt.

-----------------------------------------------------------------------------



Re^9: Abruestung (Raffi, 30. Nov 1995, 11:03:50):
#! rn=Yantro rt=817724016

Das mit der haltbarkeit ist auch nicht das wahre, da gerade die HL
Spielerauch einen entsprechenden Verbrauch haben (bzw. Anwendungsgebiete) -
der Dumme ist dann wieder der der es gerademal geschaft hat sowas zu
ergattern, und nach dem naechsten Restet ist der Wertgegenstand weg.

M.E. ist es sinvoller die Menge zu verringern - warum Muss Lilith nunmal 10
Nadeln haben ? Ein oder Zwei waeren auch genug, was ja bedeuten wuerde das je
reset nur maximal 1(2) Nadeln neu hinzukommen - selbst der groesste Raffzahn
wird alleine aus Zeitgruenden Probleme haben groessere Mengen (>10) zu 
horten. Dafuer ergibt sich  fuer mehr spieler die Moeglichkeit auch mal die
eine oder andere zu ergattern.


Im uebrigen sollte die Energie der magier in die Verbesserung der Monster
gesteckt werden und nicht in ihre verschlimmerung. Hat einer von euch schonmal
versucht Lilith was zu fragen ? Die ist ja nurnochbloede. Gerade bei solchen
'Obermotzen' koennte etwas persoenlichkeit nicht schaden - und wenn es nor
depperte Antworten auf die Stichwoerter in Ihrer Beschreibung sind
(Magie,Luzifer etc. bei Lilith).

Gruss
H.

-----------------------------------------------------------------------------



Abruestung (Roesti, 30. Nov 1995, 11:21:50):
Ich meine nicht das reseten an sich...
Ich meinte das es einen Verfall von gegenstaenden nach onlineZeit gibt...
Bsp ich bin 5 Stunden mit Saeurekugel eingeloggt...
->Die Saeure der Saeurekugel neutralisiert sich(oder frist sich durch die
Huelle oder Was-auch-immer

-----------------------------------------------------------------------------



Re: Abruestung (Zardoz, 30. Nov 1995, 11:24:03):
#! rn=Roesti rt=817726910
Also, die Saeurebaelle hab ich gestern schon geaendert. Ich hab einfach die
Anzahl der Baelle im Spiel begrenzt. Sobald viele Baelle im Spiel sind, gibts
beim Anfuehrer weniger. Werden die Baelle verbraucht, gibts wieder mehr.

Ciao        Zardoz

-----------------------------------------------------------------------------



Re: Abruestung (Yendi, 30. Nov 1995, 11:27:58):
#! rn=Roesti rt=817726910

Jau, nach 5h online frisst sich die Saeure durch die Kugel und faengt an, das
inventory zu zersetzen...


-----------------------------------------------------------------------------



Re: Abruestung (Yendi, 30. Nov 1995, 11:27:58): (Roesti, 30. Nov 1995, 11:45:00):
Genau sowas in der Art:)

Roesti:)

-----------------------------------------------------------------------------



Re: Re: Abruestung (Yendi, 30. Nov 1995, 11:27:58): (Cuchullin, 30. Nov 1995, 12:03:58):
#! rn=Roesti rt=817728300

Die Idee (dass sie die Ari nach einer gewissen Zeit aufloest) ist nicht
schlecht, aber die Umsetzung duerfte Probleme bereiten.
Wer hindert mich daran, die Kugeln/Baelle/Nadeln direkt nach dem Ergattern
einem Tragezweitie zu geben, der dafuer nur 5 Sekunden (+10 Minuten netztot?)
eingeloggt ist?
Wer troestet mich, wenn mich die Leitung disconnectet und die Teile sich bei
'schlafe ein' aufloesen?

Ich denke, Zardoz hat nicht das Falscheste getan.
Fuer Ari eh zuviel Lag habend,

Cuch.-

-----------------------------------------------------------------------------



Re^3: Abruestung (Yendi, 30. Nov 1995, 11:27:58): (Roesti, 30. Nov 1995, 12:19:05):
#! rn=Cuchullin rt=817729438
Die Loesung von Zar find ich auch gut.
Aber nun dazu wie isch es verhindern kann das es an Zweities weitergegeben
wird...einfach ein weitergeb Limit einbauen.Sachen koennen max einmal
weitergegeben werden...Ok ist auch nicht das gelbe vom ein.

Roesti gruebelt.

-----------------------------------------------------------------------------



AUFRUESTUNG!!! (Ryne, 30. Nov 1995, 12:49:56):
Ich glaube da wird aber etwas uebersehen: Wenn ich weiss, dass meine ari nach
einer bestimmten zeit vergammelt, setze ich sie halt sofort ein. und dann
haben wir noch mehr leute, die die ari voellig unnoetig einsetzen, indem sie
sie im kampf gegen nur zwei oder sogar nur ein monster wegwerfen.

Ich denke auch, dass der sinnvollste weg der ist, die mengen deutlich zu
beschraenken, indem man den monstern einfach nicht allzuviel davon mitgibt.

Und die Bumerangs gehoeren in diese diskussion meiner meinung nach nicht
hinein. die bumis naemlich machen die kaempfe insofern interessanter, als man
von dem ewigen rhytmus schwert weg - fb - schwert zuecken, der relativ monoton
ist, ein wenig weg kommt, da der bumi sich im kampf eben nicht immer
vorhersehbar verhaelt.

Abgesehen davon machen die bumis mittlerweile einen so geringen schaden, dass
sie die kampfkraft der spieler nicht allzusehr erhoehen, auch von dieser seite
her hinkt der vergleich zur ari.

Rzne.


-----------------------------------------------------------------------------



Re^7: Abruestung (Highlander, 30. Nov 1995, 13:09:04):
#! rn=Li rt=817718328
Ohne jetzt die weiteren Artikel gelesen zu haben, moechte ich auch eine Idee
anbringen:
Was spricht gegen eine "kritische Masse" der Artillerie?
Wer sagt denn, dass 20 Saeurekugeln (das Zeug ist womoeglich auch noch
magisch) auf einem Haufen liegen koennen, ohne dass was passiert?
Oder 50 Feuerkugeln (NEWS: Wie soeben gemeldet, sind aus bisher ungeklaerter
Gruenden mehrere Seherhaeuser in Flammen aufgegangen. Catweazle bittet um
Hilfe bei der Aufklaerung...  *GRINS*)?
Mit fiesen Ideen,
   HrT

-----------------------------------------------------------------------------



Re: Abruestung (Mahatma, 30. Nov 1995, 14:29:05):
#! rn=Rochus rt=817664615
So ganz verstehe ich nicht, was an der beschriebenen Menge der Geschosse
schlimm sein soll. Zum einen verteilen die sich auf viele Spieler, und zum
anderen sollte man sich fragen, wozu die eigentlich da sind.
Schliesslich benutzt man Voodoo-Nadeln nicht, um widerliche Kakerlaken auf
der Hochebene umzulegen, sondern um mal ein Monster in Angriff zu nehmen, wo
man als popliger Abenteurer mit dem BSS nichts ausrichten kann.
Und da so ein Monster nicht nach der ersten Nadel umfaellt, ist es
erforderlich, sich durch das Sammeln eines Vorrates entsprechend
vorzubereiten. Das gerade macht doch den Reiz der Sache aus.
Ich habe neulich auch so ca. 150 Voodoo-Nadeln gehabt, um mir beim Weghier
einen Vollstrecker zu verdienen, und da hab ich schon eine ganze Weile fuer
gebraucht, schliesslich schmeisst Lilith mir die Nadeln nicht so einfach
hinterher.
Deswegen halte ich es fuer unsinnig, die Haltbarkeit und die Sammelbarkeit
der Geschosse zu beschraenken.
Die Beschraenkung der Gesamtmenge, wie jetzt bei den Saeurebaellen
eingefuehrt, kann ich akzeptieren, genauso die Massnahmen, mit denen Lilith
und der Hexer schwerer gemacht wurden.
Allerdings ist die Schmerzgrenze bald erreicht, ich habe jetzt schon grosse
Muehe, die ueberhaupt zu schaffen, so dass das Sammeln der grossen Mengen gar
nicht mehr auftreten wird.
Und bei den Saeuredaemonen stelle ich mich sowieso zu bloed an, da habe ich
ausser zwei teuren Toden nichts zaehlbares vorzuweisen.

Also lasst es so, wie es jetzt ist; ich denke, die letzten Aenderungen
genuegen. Es ist kein Zuckerlecken, die Dinge zu besorgen, und wenn trotzdem
jemand die Muehe und Zeit auf sich nimmt, um fuer ein grosses Projekt zu
sammeln,
sollte das immer noch moeglich sein.

Mahatma (der nicht weiss, wie er ohne Artillerie durch die Wasserebene kommen
soll)

-----------------------------------------------------------------------------



Re: AUFRUESTUNG!!! (Raffi, 30. Nov 1995, 14:51:08):
#! rn=Ryne rt=817732196

Wenn man jetzt schon Ari Braucht um Monstter zu plaetten, so ist es Pervers
diese auch noch zu staerken. Macht doch lieber lilith wieder ertraeglich und
gebt ihr nur 1-2 Nadeln.

Ausserdem ist das ganze Ari-thhema ein Problem fuer die Leute mit langer
Leitung (ja, ich weiss Ihr in Muenster findet sowas als lustige ablenkung von
der Monotonier, aber hier draussen ist es schon fast unmoeglich im kampf
auchnoch die waffe zu  wechseln.

Gruss
H.

-----------------------------------------------------------------------------



Re^8: Abruestung (Mango, 30. Nov 1995, 14:55:35):
#! rn=Paracelsus rt=817723740
also wenn das mit dem wegfaulen kommen sollte dann haett ich gern
ne beschreibung der teile so al a :

                 Zu verbrauchen bis : siehe Boden


damit mann weis wann man das zeug noch wirkungsvoll verbraten
kann.


Mango, wieder mit Extrawuenschen. :)



-----------------------------------------------------------------------------



Re: Re: Abruestung (Cuchullin, 30. Nov 1995, 14:59:29):
#! rn=Mahatma rt=817738145


Der Weghier - und viele andere Monster auch - sind darauf konzipiert, mehrere
Gegner fuers Sterben zu brauchen. Warum den Weghier immer alleine machen
muessen?

Cuch.-


-----------------------------------------------------------------------------



Re^3: Abruestung (Mahatma, 30. Nov 1995, 15:45:23):
#! rn=Cuchullin rt=817739969
Wer sagt denn, dass ich den Weghier allein gemacht habe? Da reichen 150
Nadeln lange nicht, das war nur mein bescheidener Anteil am Kill. Sonst brauch
ich als Abenteurer da erst gar nicht hingehen.
Mahatma

-----------------------------------------------------------------------------



Re: Re: Abruestung (Tzuiop, 30. Nov 1995, 16:33:02):
#! rn=Mahatma rt=817738145
Also, Mahatma, irgendwie widersprichst Du Dir selbst:

So ganz verstehe ich nicht, was an der beschriebenen Menge der Geschosse
schlimm sein soll. Zum einen verteilen die sich auf viele Spieler ....

.... Ich habe neulich auch so ca. 150 Voodoo-Nadeln gehabt ...

Ja, was denn nun ??

Tzuiop (verwirrt)

-----------------------------------------------------------------------------



Re: Re: AUFRUESTUNG!!! (Nixihou, 30. Nov 1995, 16:42:01):
#! rn=Raffi rt=817739468
also eigendlich wollte ich auf einen anderen artikel hier antworten!

ok, ich finde die beschraenkung fuer flammenkugeln nadeln usw nicht so gut,
denn viele monster sind inzwischen nur noch mit eben diesen mitteln zu killen.
oder aber mit sehr viel mehr als 5 spielern gleichzeitig!
wenn man schon daran denkt diese artillerie zu beschraenken sollte man nicht
aus dem auge lassen, auch einige monster drastisch abzuspecken!
jedenfalls wenn solche gegenstaende sehr viel schwehrer zu erreichen sind als
vor den aenderungen finde ich, dass es den spielspass doch mindert.
(einiges ist ohne sehr erhoeten aufwand nicht mehr zu schaffen)

aber auch diese disskussion muendet wohl in eine der
ruestungsspiral-disskussionen, die wir ja schon oefter hatten.
nixihou, wenn er sich flammenkugeln besorgte spahrte er sie sich fuer
besondere gelegenheiten.

-----------------------------------------------------------------------------



Vorsicht! (Tryfan, 30. Nov 1995, 18:06:33):
Huhu
 in Angleichung an die weibliche Version treibt sich Mandrake aus Saibod nun
auch in der maennlichen Version auf der Westseite von Duncton herum. Ich
bitte insbesondere Zweities dies zu beachten.
	Tryfan aus Duncton
	 Maulwurf)

-----------------------------------------------------------------------------



Re^6: Abruestung (Mupfel, 30. Nov 1995, 19:10:30):
#! rn=Yantro rt=817716621
warum trifft eine flammenkugel *alle* monster im raum gleichmaessig, aber der
spieler bekommt nix ab? daran solltet ihr noch feilen, dann koennte artillerie
als solche schon noch erhalten bleiben.
-mupfel- (bastelt an einer standars
(grumpf! 2. Versuch :-)
-mupfel- (bastelt an einer standard-artillerie)

-----------------------------------------------------------------------------



Re^7: Abruestung (Mindolluin, 30. Nov 1995, 19:11:38):
#! rn=Mupfel rt=817755030
Oh, das gaebe schoene Playerkills am Anfang, Mupfel! :-)

          Cara

-----------------------------------------------------------------------------



Re: Vorsicht! (Cuchullin, 30. Nov 1995, 19:11:40):
#! rn=Tryfan rt=817751193

Es heisst aber immernoch ``Siabod'' :-)

Haette sich ein Typo-Trigger basteln sollen,
Cuch.- ;-)


-----------------------------------------------------------------------------



Re^7: Abruestung (Raffi, 30. Nov 1995, 19:12:39):
#! rn=Mupfel rt=817755030

Feuerwerk die 2. - bitte nicht!

Gruss
H.

-----------------------------------------------------------------------------



Re^7: Abruestung (Rochus, 30. Nov 1995, 19:15:05):
#! rn=Mupfel rt=817755030
Die treffen jetzt "nur" noch bis zu 4 gleichzeitig mit dem vollen Schaden,
bei mehr Gegnern teilen diese sich den Schaden auf.
Die Spieler werden jedoch weiterhin nicht getroffen, und ich
denke 4 gleichzeitig mit voller Staerke ist immer noch recht gut...

-----------------------------------------------------------------------------



Re: Re: Abruestung (Mupfel, 30. Nov 1995, 19:15:12):
#! rn=Mahatma rt=817738145
> Mahatma (der nicht weiss, wie er ohne Artillerie durch die Wasserebene
kommen soll)
na ganz einfach: zu MEHREREN! gebiete wie wasser- und feuerebene und monster
wie der weghier sind fuer MEHRERE spieler/seher gedacht und nicht fuer den
alleingang.

-mupfel- (hat mal mit dem magier2ti und 5 anderen sehern den weg in die
feuerebene durch die wasserebene getan und fand das 'gemeinschaftserlebnis'
ganz klasse)

-----------------------------------------------------------------------------



Re^8: Abruestung (Mupfel, 30. Nov 1995, 19:16:57):
#! rn=Mindolluin rt=817755098
ich meinte speziell *denjenigen* spieler, der die kugeln wirft (unbeteiligte
sollten nix abbekommen)
-mupfel-

-----------------------------------------------------------------------------



Re^7: Abruestung (Catweazle, 30. Nov 1995, 20:49:50):
#! rn=Mupfel rt=817755030
Ich rall das nicht...
Da gibts dieses wunderbare, ganz einfache und simple ~d
Sollte Dir ungemeinhein helfen!!
Yours truly,
        Catweazle (empfiehlt oefter mal ~h im editor zu tippen)

-----------------------------------------------------------------------------



Re^8: Abruestung (Grimmborn,  1. Dez 1995, 11:13:36):
#! rn=Catweazle rt=817760990

Ganz zu schweigen von ~q, wo wir schon von Schwachsinn reden.

Grimmborn der Atheist. Wuenscht sich, dass etwa 80% der Artikel (solche wie
dieser also) mit ~q abgeschlossen haetten...

-----------------------------------------------------------------------------



Abruestung? Nein Danke! (Lug,  4. Dez 1995, 01:24:00):
Ich kann in dieser Frage nur Mahatma zustimmen. Diese Debatte nervt. Seitdem
ic hier bin , bekomme ich eigentlich nur mit, wie abgewertet wird (Waffen)
oder afgewertet (Monster). Man vergleiche Bummis und Hydra. Was soll das?
Sollen wir lle Chaoten werden oder Karateka? Ihr orientiert Euch doch wohl nur
an ein paarSpitzensehern oder? Mir faellt das schwer, alleine 110 Voodoonadeln
zu holen.
Ueberlegt Euch lieber, wias Ihr fuer (FUER) die Abenteurer tun koenntet.
Kopf schuettelnd
Lug

-----------------------------------------------------------------------------



Re: Abruestung? Nein Danke! (Schrumpfi,  4. Dez 1995, 02:21:55):
#! rn=Lug rt=818036640
Da musst Du Dich an den zustaendigen Magier, der die Abenteurergilde
programiert hat, wenden.
Ich hab mich im uebrigen nicht an Spitzensehern orientiert als ich Lilith
rauffgesetzt habe. Ich hab sie ja grade deswegen haerter gemacht, weil schon
alle moeglichen Leute mit ueber 200 Nadeln rumgelaufen sind.
S.d.O.v.P

-----------------------------------------------------------------------------



Daemonenburg (Zardoz, 19. Jan 1996, 14:00:01):
Gerade eben ist mir leider jemand gegen den Rechner gelaufen und so sind
leider einige Worte in der Daemonenburg durcheinander geraten. Leider
kann ich diesen Fehler nicht mehr rueckgaengig machen, aber ich hoffe
mal, dass diese Aenderungen nicht so schlimm sein werden. Wenn dennoch
einiges anders ist, so verzagt nicht, sondern sucht einfach das
veraenderte Wort. Es muesste noch an der gleichen Stelle liegen, wie
das alte...


Ciao    Zardoz

-----------------------------------------------------------------------------



Re: Daemonenburg (Bendeigid, 19. Jan 1996, 14:02:04):
~#! rn=Zardoz rt=822056401
~#! tid=822056401
Damn! welcher Trottel war das? :))

Bendeigid, rennt jetzt mal wieder zu Fuss rum, weil er sich eh nicht
auskennnt.

-----------------------------------------------------------------------------



Daemonenburg (Zardoz, 14. Feb 1996, 17:13:48):
Achtung! Ich bin gerade dabei die zahlreichen Ideen zur Daemonenburg, die
sich in den letzten Monaten angesammelt haben, abzuarbeiten. Es wird
immer mal wieder vorkommen, dass ploetzlich was anders ist. Aber keine
Panik, ich verlange von niemanden, dass er sich alle Details nochmal
anschaut. Wer die Infos allerdings von anderen Leuten bekommen hat, ohne
zu wissen, woher die Info stammt, wird Probleme bekommen. Seltsamerweise
kommen die fiesesten Ideen immer von Spielern. Wie war das? Eraditor
an den Eingang der Burg stellen?? :)

Ciao    Zardoz

-----------------------------------------------------------------------------



Re: Daemonenburg (Anakin, 14. Feb 1996, 17:15:01):
~#! rn=Zardoz rt=824314428
~#! tid=824314428
Aeh aenderst Du was oder kommt was NEUES?

Dann haett ich nen Grund wieder mal was zu machen. :)

Anakin.

-----------------------------------------------------------------------------



Narrenball (Li,  5. Mar 1996, 11:17:18):
Ich habe den Raum mit der Geheimtuer ein wenig geaendert. Ich hoffe, es sit
jetzt etwas logischer.
Ach ja, wer immer noch die Geheimtuer oeffnen will und sich wundert, dass es
mit <oeffne geheimtuer> nicht geht, aerbeitet entweder mit loesung, oder hat
nicht richtig aufgepasst.
Li (wird die Quest entbuggen, sobal die Zaubergilde laeuft (und dann auch
noch einen anderen Weg zum koenig proggen)

-----------------------------------------------------------------------------



Flammenkugeln (Rochus, 16. Apr 1996, 19:53:35):
Mir ist eingefallen, dass meine Flammenkugeln ja eine
Aufschlagzuendung haben. Was das nun bedeutet koennt
Ihr Euch ja denken... :)

-----------------------------------------------------------------------------



Re: Flammenkugeln (Asmodis, 16. Apr 1996, 20:59:50):
~#! rn=Rochus rt=829677215
~#! tid=829677215
Das bedeutet, wenn es in dem Raum nicht das detail 'boden' gibt,
sind sie wirkungslos ? :)

-----------------------------------------------------------------------------



Re: Re: Flammenkugeln (Morgoth, 17. Apr 1996, 07:10:09):
~#! rn=Asmodis rt=829681190
~#! tid=829677215
geil rochus ;-))

-----------------------------------------------------------------------------



Re: Flammenkugeln (Escubar, 21. Apr 1996, 00:33:24):
~#! rn=Rochus rt=829677215
~#! tid=829677215
An den Flammkugeln scheint sich ja noch etwas mehr gaendert zu haben:

- Wenn man sie in Pakete oder Beutel steckt, verbrennen sie denselben

- Tentakelmonster und Schlabbermurks bringen die Kugeln zur Zuendung

Heisst ich kann die SSP nicht mehr mit Kugeln betreten um anschliessen
dieselben auf der Wasserebene einzusetzen, weil ich soweit garnet komm.

Allerdings frag ich mich echt wo da der Sinn sein soll?

Denn Loesung (Spieler sind ja nicht auf den Kopf gefallen...): Ich geb die
Kugeln an einen Zweiti, der sie mir dann rechtzeitig vor der Wasserebene
uebergibt.

Allerdings frag ich mich warum Aenderungen immer das Ziel haben muessen das
Spiel zu verkomplizieren.

Eisbaer Escubar

-----------------------------------------------------------------------------



Re: Re: Flammenkugeln (Caradhras, 22. Apr 1996, 10:37:52):
~#! rn=Escubar rt=830039604
~#! tid=829677215
Jau, klar, an jedes Monster das so was machen koennte einen Raum
vorher nen Zweitie hinstellen. Hast du denn nicht genug, Escu? :)
Das ist der Sinn von MG: sich mehr mit seinen Zweities zu unter-
halten. *:)

         Caradhras - unterhaelt sich schon lange mit Celebdil

-----------------------------------------------------------------------------



Re^3: Flammenkugeln (Zardoz, 22. Apr 1996, 12:41:05):
~#! rn=Caradhras rt=830162272
~#! tid=829677215
Genau aus diesem Grunde hab ich mich auch geweigert, die Saeurebaelle so zu
aendern... wie gesagt _so_ zu aendern, geaendert hab ich sie schon :)

Ciao  Zardoz

-----------------------------------------------------------------------------



Re^4: Flammenkugeln (Mupfel, 22. Apr 1996, 13:21:49):
~#! rn=Zardoz rt=830169665
~#! tid=829677215
Wenn die Flammenkugeln Beutel nicht verbrennen wuerden, waere der Effekt
sinnlos gewesen...

-mupfel-
p.s.: keine Sorge, zu den Flammenkugelntragenden 2ties faellt uns auch noch
was ein :-)

-----------------------------------------------------------------------------



Re: Re: Flammenkugeln (Lug, 24. Apr 1996, 21:34:12):
~#! rn=Escubar rt=830039604
~#! tid=829677215
Moin Escubar,

die Tendenz, soweit ich sie erkennen kann, sieht so aus: Monster werden
aufgewertet (z.B. Robin), Waffen und Ruestungen (AF-Ring, Flammenkugeln etc.)
abgewertet. Tja, frag mal einen Karateka. Alles klar?

Schulterzuckend
Lug

-----------------------------------------------------------------------------



Re: Re: Flammenkugeln (Wur, 30. Apr 1996, 17:36:56):
~#! rn=Escubar rt=830039604
~#! tid=829677215
Und ich frag mich, wieso man jedes Problem mit nem Zweitie loesen muss.
Es lebt sich auch. ohne Zweities ganz gut.

Wur

-----------------------------------------------------------------------------



Kanaele (Anakin, 15. Mai 1996, 13:31:57):
Wird es auch bald einen -Archie Kanal geben?

Anakin.

-----------------------------------------------------------------------------



Re: Kanaele (Pampers, 15. Mai 1996, 13:34:51):
~#! rn=Anakin rt=832159917
~#! tid=832159917
Ich will einen Kanal fuer feministische Buchhaendlerinnen, die auch ohne
Alkohol lustig sein koennen, aber insgeheim der Ueberzeugung sind, dass das
Leben mit Volldampf an ihnen vorbeirauscht.
Den kann ich dann naemlich abbestellen.
Pampers. Ein kleines Arschloch.

-----------------------------------------------------------------------------



Re: Re: Kanaele (Bottom, 17. Mai 1996, 17:45:58):
~#! rn=Pampers rt=832160091
~#! tid=832159917
Also - ich finde, Buchhaendlerinnen sollte man nicht im Regal verstauben
lassen...auch in der Wueste spriesst manchmal eine Bluete!  ;-)
 
Bottom - hofft auf baldigen Regen

-----------------------------------------------------------------------------



In Vland ist nen Baum umgefallen... (Zardoz, 22. Mai 1996, 14:58:12):
...und in der Daemonenkneipe gibts ein neues Getraenk. 

Zardoz schreibt hochinteressante Artikel

-----------------------------------------------------------------------------



Bug im Goblinlager (Rimus,  3. Jun 1996, 15:26:37):
Allo Ihr's !

Ich habe ein Problem im Goblinlager.
Der Hexer hat 5 Flammenkugeln bei sich, wenn ich den angreife ist
er innerhalb von 5 Schlaegen tot, und wirft keine Kugel.
Wenn ich dann den Kram aus der Leiche nehme, hat er nur noch 2 Kugeln.
Waerend des Kampfes kommt zusaetzlich die Meldung:
Gamedriver teilt Dir mit: Dein Herzschlag hat ausgesetzt.
Kurz darauf schlaegt mein Herz wieder.
Kann der zustaendige Magier mal den Fehler abstellen ??
Das waere nett !

Rimus Member of Metzelteam.

-----------------------------------------------------------------------------



Re: Bug im Goblinlager (Baron,  3. Jun 1996, 22:34:19):
~#! rn=Rimus rt=833808397
~#! tid=833808397
Nun, nichts fuer ungut Rimus. Wenn ich der zustaendige Magier waere, wuerde
ich als erstes abstellen, dass man den Hexer mit 5 Schlaegen erledigen kann :)

Baron, grinsend

-----------------------------------------------------------------------------



Re: Re: Bug im Goblinlager (Dhojakt,  3. Jun 1996, 22:35:38):
~#! rn=Baron rt=833834059
~#! tid=833808397
Naja, neuerdings explodieren ja Flammenkugeln bei mechanischer Beanspruchung.
Ich kann mir nur nicht vorstellen, dass Rochus das so gedacht hat, dass die im
Hexer losgehen.

-----------------------------------------------------------------------------



Re^3: Bug im Goblinlager (Lefty,  3. Jun 1996, 22:39:39):
~#! rn=Dhojakt rt=833834138
~#! tid=833808397
hm, wo ihr das jetzt erwaehnt ... mit nature is mir das letztens auch
passiert, er ist auch karateka.

-----------------------------------------------------------------------------



Abenterer-Faehigkeiten (Rochus, 13. Jun 1996, 21:46:23):
Die Abenteurer koennen jetzt auch jemanden nach ihren
Faehigkeiten fragen, und zwar Owen Braddon, der versteht
naemlich etwas davon als Abenteurer, der sich zur Ruhe gesetzt hat.

-----------------------------------------------------------------------------



Re: Abenterer-Faehigkeiten (Mahatma, 14. Jun 1996, 00:54:39):
~#! rn=Rochus rt=834695183
~#! tid=834695183
Klasse Rochus, hab ich mir schon immer gewuenscht.

Mahatma (ist insgesamt gesehen perfekt)

-----------------------------------------------------------------------------



Re: Re: Abenterer-Faehigkeiten (Nairolf, 14. Jun 1996, 09:47:10):
~#! rn=Mahatma rt=834706479
~#! tid=834695183
Dann streng dich mal an mahatma !
Nairolf, grinst Mupfel  an.

-----------------------------------------------------------------------------



Re: Abenterer-Faehigkeiten (Charly, 20. Jun 1996, 22:56:00):
~#! rn=Rochus rt=834695183
~#! tid=834695183
gehoert der 'entgifte' spruch nicht dazu ?

-----------------------------------------------------------------------------



Re: Re: Abenterer-Faehigkeiten (Caradhras, 21. Jun 1996, 23:22:10):
~#! rn=Charly rt=835304160
~#! tid=834695183
Nein, der entgifte-Spruch gehoert zu Tarko Reub.

      Caradhras der Golddrache

-----------------------------------------------------------------------------



Re^3: Abenterer-Faehigkeiten (Mupfel, 22. Jun 1996, 00:47:33):
~#! rn=Caradhras rt=835392130
~#! tid=834695183
Der 'entgifte'-Spruch gehoert eigentlich zur Klerusgilde (der war das erste
Stueckchen Klerusgilde ueberhaupt :-). Aber wer den gelernt hat und kein
Kleriker ist, kann jetzt Owen Braddon auch danach befragen, denn lange lange
Zeit gehoerte dieser Zauberspruch quasi zur Abenteurergilde dazu, und auch
Owen Braddon scheint sich noch an ihn zu erinnern...

-mupfel-

-----------------------------------------------------------------------------



Re^4: Abenterer-Faehigkeiten (Wargon, 24. Jun 1996, 09:52:07):
~#! rn=Mupfel rt=835397253
~#! tid=834695183
Der "entgifte"-Spruch, wie man ihn nach Tarko Reub lernen kann, gehoert zu gar
keiner Gilde. Auch Kleriker zahlen da die vollen 30 MP, solange sie noch nicht
zum Priester geweiht sind.
Und ueberhaupt: Wann hat Owen Tarko Reub geloest? ;)
  Wargon

-----------------------------------------------------------------------------



Re^5: Abenterer-Faehigkeiten (Mupfel, 24. Jun 1996, 19:43:19):
~#! rn=Wargon rt=835602727
~#! tid=834695183
Schau doch im Logfile nach :-) Irgendwann frueher schaetze ich...

-mupfel-

-----------------------------------------------------------------------------



Schattenruestung (Rochus,  8. Jul 1996, 19:52:53):
Wenn man Pech hat bekommt man jetzt eine schlechtere Schattenruestung
als vorher vom Etwas... wenn man jedoch Glueck hat bekommt
man jedoch jetzt eine einmalige mit einigen besonderheiten...

-----------------------------------------------------------------------------



Re: Schattenruestung (Asmodis,  9. Jul 1996, 19:55:23):
~#! rn=Rochus rt=836848373
~#! tid=836848373
Das heisst wohl, dass Etwas jetzt noch staerker belagert wird ?

-----------------------------------------------------------------------------



Neue Funktionen im MA (Calum, 13. Jul 1996, 02:27:18):
Das Magische Auge ist etwas erweitert worden: Zum Einen
werden jetzt bei der Beschreibung von Waffen einige neuere
Schadenstypen erkannt; zum Anderen werden jetzt bei Waffen, die
mehr als einen Schadenstyp unterstuetzen, alle Schadenstypen
angezeigt.

An dieser Stelle ein MEGA-Danke an Mupfel, der fuer 90% der
Erweiterungen verantwortlich ist!

 - Calum -

-----------------------------------------------------------------------------



Bericht eines Wanderers (Zardoz, 20. Sep 1996, 13:50:57):
Ich hab den Auftrag hier etwas zu veroeffentlichen, weil der Schreiber zur
Zeit leider verhindert ist. Folgendes kommt also nicht von mir:


Ich gruesse euch, ihr wagemutigen Bewohner des MorgenGrauens!

Schon laenger wanderte ich, Elholdriel, durch die finsteren Gefilde der
Daemonen, auf der Suche nach kostbaren Schaetzen und magischen Waffen,
doch fand ich lange nicht das Ersehnte. Bis ich eines Tages, verborgen
unter einem See und bewacht von gar schauerlichen Monstern, einen Weg
in eine andere Dimension fand! Unter einem gruenen Himmel, in einer
fremden Welt, ragten die Mauern einer Stadt vor mir auf, die so sonderbar
und gefaehrlich ist, wie nie zuvor ein Elf sie sah. 
Diese Stadt verbirgt viele Wunder, grosse Gefahren und schreckliche
Monster, und es sei jedem geraten sich gut vorzubereiten, falls er 
denn Mutes genug sei, diese Stadt zu betreten. 

Dies berichtet Elholdriel, der Wanderer.

P.S.: Gehet nicht alleine dorthin! Ihr wuerdet den Weg nicht finden...

-----------------------------------------------------------------------------



WUWesen (Zardoz,  3. Feb 1997, 15:20:43):
Ich ueberarbeite gerade einige alte Monster von mir. Jetzt hat es das
Wasserunwesen erwischt. Es ist nicht staerker geworden, ich hab nur paar Bugs
gefixt. Ausserdem ist es jetzt auch, bei richtiger  Wahl der Waffe, mit
ebendieser zu treffen. Somit sollten auch Kaempfer jetzt ne Chance dagegen
haben.

Ciao Zardoz

-----------------------------------------------------------------------------



Re: WUWesen (Bombadil,  3. Feb 1997, 18:19:55):
~#! rn=Zardoz rt=854979643 rg=d.ebene
~#! tid=854979643
Das Wasserunwesen war doch auch vorher schon gut mit Waffen verletzbar, wenn
man nur die richtigen hatte ? Oder wurde das zwischendurch schonmal
ueberarbeitet ?

Bombadil

-----------------------------------------------------------------------------



Raeubergebuesch fuer Fortgeschrittene (Rochus, 13. Feb 1997, 17:36:44):
Der Titel sollte eigentlich sagen was ich neu angeschlossen habe :)
Man kann es allerdings umgehen, wenn man sein Geld behalten moechte :)

-----------------------------------------------------------------------------



Re: Raeubergebuesch fuer Fortgeschrittene (Rochus, 13. Feb 1997, 17:42:35):
~#! rn=Rochus rt=855851804 rg=d.ebene
~#! tid=855851804
PS: Verbesserungsvorschlaege werden vertraulich behandelt :)
Die Idee fuer das Gebuesch kam uebrigens von
Connection closed by foreign host.

-----------------------------------------------------------------------------



Re: Re: Raeubergebuesch fuer Fortgeschrittene (Rochus, 13. Feb 1997, 21:57:45):
~#! rn=Rochus rt=855852155 rg=d.ebene
~#! tid=855851804
Ist bis Montag wieder abgehaengt, es sind 2 bisher
unentdeckte Bugs in der mudlib aufgefallen.

-----------------------------------------------------------------------------



Re^3: Raeubergebuesch fuer Fortgeschrittene (Rochus, 17. Feb 1997, 19:35:10):
~#! rn=Rochus rt=855867465 rg=d.ebene
~#! tid=855851804
So, ich habe die Bugs entfernt bzw. umgangen und das Gebuesch
wieder angeschlossen (leider IST das unit-Objekt ein einziger Bug, so
dass ich den nicht entfernen konnte ohne allen Spielern ihr
Geld zu nehmen :)

-----------------------------------------------------------------------------



Re^4: Raeubergebuesch fuer Fortgeschrittene (Fyt, 17. Feb 1997, 19:37:50):
~#! rn=Rochus rt=856204510 rg=d.ebene
~#! tid=855851804

Hm, dann mach doch, Rochus... bei den Freundschaftsbaendern warst Du
doch auch nicht so zimperlich ;-)

Fyt.

-----------------------------------------------------------------------------



Re^5: Raeubergebuesch fuer Fortgeschrittene (Dancer, 20. Feb 1997, 02:54:57):
~#! rn=Fyt rt=856204670 rg=d.ebene
~#! tid=855851804
Rochus, Du koenntest ja die Savefiles durchgehen und Dir auf sieben bis acht
kleinen DIN-A3-Notizbloecken eben mal kurz die Geldreserven der Spieler
notieren... spaeter koenntest Du die Mengen einfach mal schnell wieder in die
Savefiles eintragen :-)

Ich sag doch, frag einfach den Sandtiger. Ok? ;-)

Dancer


-----------------------------------------------------------------------------



Re^6: Raeubergebuesch fuer Fortgeschrittene (Zuerileu, 25. Feb 1997, 02:52:12):
~#! rn=Dancer rt=856403697 rg=d.ebene
~#! tid=855851804
Hi Rochus,
Mein Vorschlag zum Gebuesch, pfusch nicht in den Files rum und mach das Teil
wieder schwerer! Wir arbeitslose Magier, muessen auch unserer Spass haben wenn
anfaenger von den Raeubern gemeuchelt werden =:) Nun Arbeit, haet ich zwar
genug aber zurzeit wenig Zeit nach der rl Arbeit. Meine da hat man es den
ganzen Tag streng und moechte wenigstens am abend beim mudden ne auflockerung
=:)

Tschuess..           Zuerileu *grinsend*

-----------------------------------------------------------------------------



Re: Raeubergebuesch fuer Fortgeschrittene (Gabo, 25. Feb 1997, 10:24:04):
~#! rn=Rochus rt=855851804 rg=d.ebene
~#! tid=855851804
soll das heissen, dass man als unbedarfte AnfaengerIn
auch auf er HochEbene damit rechnen muss, dass
dass erste schwer erkaempfte Geld geraubt b.z.w.
gestohlen werden kann?

-----------------------------------------------------------------------------



Raeuber (Rochus,  4. Mar 1997, 19:32:53):
Es gibt jetzt einen kleinen Bonus dafuer, alle 12 Raeuber jeweils
mindestens einmal zu erledigen.
Aber Vorsicht, die Raeuber sind ziemlich motiviert, die bekommen
naemlich auch einen Bonus dafuer jeden Spieler mindestens einmal
zu erledigen :-)

-----------------------------------------------------------------------------



Koch (Rochus, 27. Mar 1997, 18:16:08):
Was der Koch im Fischrestaurant jetzt macht kann man sich ja wohl denken.

-----------------------------------------------------------------------------



Re: Koch (Fyt, 27. Mar 1997, 18:16:31):
~#! rn=Rochus rt=859482968 rg=d.ebene
~#! tid=859482968

Ich hoffe, er kuendigt.

Fyt.

-----------------------------------------------------------------------------



Re: Koch (Asmodis, 27. Mar 1997, 19:01:45):
~#! rn=Rochus rt=859482968 rg=d.ebene
~#! tid=859482968

Er kocht vor Wut ?

-----------------------------------------------------------------------------



Re: Re: Koch (Methedras, 27. Mar 1997, 19:09:27):
~#! rn=Asmodis rt=859485705 rg=d.ebene
~#! tid=859482968
Rumstehen? Oder umfallen? Sonst faellt doch auch immer alles
neue um.

-----------------------------------------------------------------------------



Re: Koch (Ringor, 27. Mar 1997, 22:49:27):
~#! rn=Rochus rt=859482968 rg=d.ebene
~#! tid=859482968
Ich haette jetzt ja getippt, dass er einen Selbstverteidigungskurs mitgemacht
hat. Hat er aber nicht - oder er ist noch in Schulung.

Ringor. Findet keinen Unterschied

-----------------------------------------------------------------------------



Abhaengen (Orktoeter, 21. Apr 1997, 12:22:00):
Da mein (zugegebern Massen nicht feriges) Schloss auf einem Feld stand, dessen
Raumbeschreibung ich selbst verbrochen habe und das dann von einem
zustaendigen RM angeschlossen wurde, denke ich, das ich da die gleiche Rechte
dran habe, wie ander magier an ihren Sachen auch, daher bitte ich eine RM
Ebene, diese Auffahrt so lange abzuhaengen, bis die Seherhaeuser wieder da
sind.
OrkT (wenn ich schon kollektiv mitbestraft werde kann ich auch Mist machen)

-----------------------------------------------------------------------------



Re: Abhaengen (Cauno, 21. Apr 1997, 12:39:43):
~#! rn=Orktoeter rt=861618120 rg=d.ebene
~#! tid=861618120
Tja, ein aehnliches Problem haben Nirdavo und ich mit einem Platz mit
unsichtbaren Haeusern ...

C. No

-----------------------------------------------------------------------------



Re: Abhaengen (Issomad, 21. Apr 1997, 13:44:38):
~#! rn=Orktoeter rt=861618120 rg=d.ebene
~#! tid=861618120
Hmm, den Raum, in dem das Haus von Asmodis steht, koennt ihr
von mir aus auch abhaengen :)

-----------------------------------------------------------------------------



Haeusle baue in Moron (Calum, 29. Apr 1997, 12:36:04):
Tja... aehem... eigentlich wollte ich nur bekanntgeben, dass auf
mehrfachen Wunsch in Moron jetzt auch im Torweg gebaut werden darf.

Und falls jetzt jemand glaubt, dass das bedeutet, dass ich demnaechst
Moron vollstaendig debuggen und die Quest zu Ende programmieren werde,
dann hat er sich leider getaeuscht ;-)

 - Calum -

-----------------------------------------------------------------------------



Re: Haeusle baue in Moron (Grimmborn, 29. Apr 1997, 12:46:47):
~#! rn=Calum rt=862310164 rg=d.ebene
~#! tid=862310164
Aha, Calum hat die Seherhaeuser wieder angehaengt?
Oder sind die drei Wochen schon um? ;-)

GdA

-----------------------------------------------------------------------------



Re: Haeusle baue in Moron (Raffi, 29. Apr 1997, 19:06:49):
~#! rn=Calum rt=862310164 rg=d.ebene
~#! tid=862310164

Schade - dabei waere es so schoen wenn in Moron mal was neues passieren wuerde
- ist immernoch mein lieblingsgebiet.

Gruss
H.

-----------------------------------------------------------------------------



Re: Re: Haeusle baue in Moron (Calum,  5. Mai 1997, 12:35:51):
~#! rn=Grimmborn rt=862310807 rg=d.ebene
~#! tid=862310164
Muss ich den verstehen, Grimmborn?
Vermutlich nicht. :-(
 - Calum -

-----------------------------------------------------------------------------



Re^3: Haeusle baue in Moron (Grimmborn,  5. Mai 1997, 13:12:27):
~#! rn=Calum rt=862828551 rg=d.ebene
~#! tid=862310164
Hier die Aufloesung fuer Calum (und alle, die sonst noch den groessten Teil
der mpa abbestellt haben):
Calum hat das Hausbauen in Moron zu einem Zeitpunkt erlaubt, als Wargon es
gerade fuer drei Wochen verboten hatte. Die Gruende will ich hier nun wirklich
nciht aufzaehlen, und noch weniger die Diskussion zusammenfassen/wiederholen.

Grimmborn der Atheist

-----------------------------------------------------------------------------



Re^4: Haeusle baue in Moron (Orktoeter,  5. Mai 1997, 13:23:37):
~#! rn=Grimmborn rt=862830747 rg=d.ebene
~#! tid=862310164

Huhu Grimm*, scheibar hast du den genilane Schachzug noch nicht verstanden.
Ca eine Woche vor ablauf der 3-wochen Frist von Wargon, wird Calum sich
beschweren, das sich niemand in Moron niederlaesst und puenktlich unmittelbar
bevor Wargon die Seherhaesuser wieder freigibt, wird Calum dann sagen : so, es
hat immer noch keiner sein Haus in Moron gebaut, da ist also doch keine
Nachfrage, also habe ich es gerade wieder ausgebaut !

OrkT jetzt schon grinsend.

-----------------------------------------------------------------------------



Hauptpost (Gast1,  9. Jul 1997, 12:20:56):
Hi,

also fuer das Hauptpostamt vom MG ist die Post 
_ziemlich_ duerftig beschrieben. 
Vielleicht findet sich ja einer der das macht.


-----------------------------------------------------------------------------



Re: Hauptpost (Cauno,  9. Jul 1997, 12:44:55):
~#! rn=Gast1 rt=868443656 rg=d.ebene
~#! tid=868443656
Vielleicht koennte man bei der Gelegenheit auch das komische Spukhaus im
Norden abschaffen - da wo man nicht rein kann und gegenueber, wo sowieso
nichts ist.
Wie waere es mit einem Hard Rock Cafe Port Vain?

C. No

-----------------------------------------------------------------------------



Re: Re: Hauptpost (Rochus,  9. Jul 1997, 12:52:43):
~#! rn=Cauno rt=868445095 rg=d.ebene
~#! tid=868443656
Da, wo man nicht rein kann, kann man vielleicht unter
Umstaenden DOCH rein - nur weil Du da nicht rein kannst
bedeutet das nicht, dass das Gebaeude keinen Zweck erfuellt :)

-----------------------------------------------------------------------------



Re^3: Hauptpost (Cauno,  9. Jul 1997, 12:57:38):
~#! rn=Rochus rt=868445563 rg=d.ebene
~#! tid=868443656
Ich weiss nicht, ob wir jetzt ueber den gleichen Ort reden - ich meinte nicht
den Raum nur fuer Magier, der liegt im Suedwesten der Stadt!

-----------------------------------------------------------------------------



Re^4: Hauptpost (Rochus,  9. Jul 1997, 13:12:32):
~#! rn=Cauno rt=868445858 rg=d.ebene
~#! tid=868443656
Wir reden ueber den gleichen Ort - ich kenne mich in der Ebene und
in PortVain als zustaendiger Regionsmagier naemlich gut genug aus,
um diese Orte auseinanderhalten zu koennen :)

-----------------------------------------------------------------------------



Re^4: Hauptpost (Key,  9. Jul 1997, 13:47:44):
~#! rn=Cauno rt=868445858 rg=d.ebene
~#! tid=868443656
Tsts Cauno du entaeuschst mich ;) Warst du netmal der Kartenzeichner vom MG
oder sowas aehnliches? 

Key

-----------------------------------------------------------------------------



Re^4: Hauptpost (Hate,  9. Jul 1997, 14:45:45):
~#! rn=Cauno rt=868445858 rg=d.ebene
~#! tid=868443656
Hmm, da ich immer noch an der MG Web Seite am basteln bin hier nochwas:

Wer Karten zeichnet oder gezeichnet hat kann die mir mal zukommen lassen.
Die schoensten werden dann mit auf die Webseite gepackt.

Hate.

-----------------------------------------------------------------------------



Re^5: Hauptpost (Mupfel,  9. Jul 1997, 22:30:19):
~#! rn=Rochus rt=868446752 rg=d.ebene
~#! tid=868443656
Hm... "als Regionsmagier" muss man sich nicht unbedingt in der "eigenen"
Region auskennen... 

-mupfel-

-----------------------------------------------------------------------------



SMS (Rochus, 10. Jul 1997, 19:58:31):
Ich habe das SMS etwas geaendert.
Es dauert jetzt etwas laenger, bis man den Umgang damit
beherrscht, aber dafuer ist die Uebung jetzt dauerhaft.
Bei der Gelegenheit habe ich ausserdem beruecksichtigt, dass
der Leveldurchschnitt jetzt hoeher ist durch die Levelreform.

-----------------------------------------------------------------------------



Tamahorny (Rochus, 19. Aug 1997, 19:01:05):
Bei Kareem Fekesh kann man jetzt die allseits beliebten Tamahornies
kaufen. Gluecklicherweise hat mich jemand, der den Tod nicht fuerchtet,
in letzter Minute noch auf einen Bug aufmerksam gemacht :)
Zu den riesigen Nebenwirkungen lesen Sie die Packungsbeilage
und fragen Sie Ihren Arzt oder Apotheker oder Lars :)

-----------------------------------------------------------------------------



Re: Tamahorny (Key, 19. Aug 1997, 19:02:48):
~#! rn=Rochus rt=872010065 rg=d.ebene
~#! tid=872010065
Yep aber da der Bug jetzt draussen ist kann man es geniessen! .)

Also viel Spass mit dem Teil ... Achja ... es hat gegenueber diesen
haesslichen Tamagotchis einen Vorteil, es kann net sterben :)

Key 

-----------------------------------------------------------------------------



Re: Re: Tamahorny (Jimdigriz, 19. Aug 1997, 19:46:20):
~#! rn=Key rt=872010168 rg=d.ebene
~#! tid=872010065
ARGL,

das mit dem Sterben war doch das einzig
positive an dem T*. 
Naja selbst wenn es unsterbliche gegeben haette 
koennte man diese per Hammer auch schnell beenden.

Achtung ich hab anscheinend einen psychischen Defekt, was
diese Dinger angeht und reagiere extrem allergisch,
wer also auf der Fete in Muenster mit einem Tama*&^%*
rumrennt und mir unter die Augen kommt, soll dann nicht
jammern, wenn das Ding im Aasee absaeuft oder 
unter meiner Schuhsohle zermalmt wird.

Ciao,
 Jim DiGriz

-----------------------------------------------------------------------------



Re^3: Tamahorny (Key, 19. Aug 1997, 20:38:14):
~#! rn=Jimdigriz rt=872012780 rg=d.ebene
~#! tid=872010065
Keine Sorge geht mir auch so Jim ;))

Key

-----------------------------------------------------------------------------



Re^4: Tamahorny (Astar, 19. Aug 1997, 20:39:44):
~#! rn=Key rt=872015894 rg=d.ebene
~#! tid=872010065
Dann wuerde ich mich an Eurer Stelle von Kartoffel fernhalten ;)

Astar

-----------------------------------------------------------------------------



Re^5: Tamahorny (Key, 19. Aug 1997, 20:41:17):
~#! rn=Astar rt=872015984 rg=d.ebene
~#! tid=872010065
Kartoffel hat nen Tamahorny???? Die arme =;)

Key

-----------------------------------------------------------------------------



Re^5: Tamahorny (Kartoffel, 19. Aug 1997, 21:06:15):
~#! rn=Astar rt=872015984 rg=d.ebene
~#! tid=872010065
Meiner is verreckt, hab ihn uebers WE in der Jackentasche vergessen :))

Kartoffel

-----------------------------------------------------------------------------



Re^6: Tamahorny (Key, 19. Aug 1997, 21:07:00):
~#! rn=Kartoffel rt=872017575 rg=d.ebene
~#! tid=872010065
*aufatme* :))

Key

-----------------------------------------------------------------------------



Re^6: Tamahorny (Kartoffel, 19. Aug 1997, 21:07:18):
~#! rn=Key rt=872016077 rg=d.ebene
~#! tid=872010065
Neee, ich hatte das andere T-Ding, aber ich stimme zu, dass sie auf die Dauer
nervig sind.

Kartoffel

-----------------------------------------------------------------------------



Re^4: Tamahorny (Mango, 20. Aug 1997, 12:24:52):
~#! rn=Key rt=872015894 rg=d.ebene
~#! tid=872010065
Ich zeig Euch an wenn ihr das macht ;).

Mango, voellig kaputt.


-----------------------------------------------------------------------------



Re^7: Tamahorny (Raffi, 20. Aug 1997, 14:38:10):
~#! rn=Kartoffel rt=872017638 rg=d.ebene
~#! tid=872010065
Einfach Reset Knopf druecken (oder baterie lang genug raus nehmen.

Gruss
H.

-----------------------------------------------------------------------------



Re^5: Tamahorny (Raffi, 20. Aug 1997, 14:38:42):
~#! rn=Mango rt=872072692 rg=d.ebene
~#! tid=872010065
Hmm sollen Wir sammeln und fuer Key und Jim je einen kaufen ? 

Grins
H.

-----------------------------------------------------------------------------



Re^6: Tamahorny (Key, 20. Aug 1997, 16:47:56):
~#! rn=Raffi rt=872080722 rg=d.ebene
~#! tid=872010065
Hmm und wer sammelt fuer einen Hammer? :))
Key

-----------------------------------------------------------------------------



Re^7: Tamahorny (Raffi, 20. Aug 1997, 17:07:25):
~#! rn=Key rt=872088476 rg=d.ebene
~#! tid=872010065

Wiso Hammer ?

Also ich hab auf stielvollere Destruktion gesetzt :)

-------------------------------------------------

Kareem Fekesh sagt: Ein Tamahorny ist ein Amulett mit einem lebenden
gehoernten Daemon, das Dir im Kampf helfen kann. Der Daemon braucht allerdings
Zuwendung solange er lebt, also Essen und ne anstaendige Bezahlung.
Leider droht mir Lizenzentzug wenn ich den nicht nur an Seher verkaufe.
> frage kareem nach lizenz
Kareem Fekesh sagt: Tut mir leid, davon weiss ich nichts.
> frage kareem nach seher
Kareem Fekesh sagt: Tut mir leid, davon weiss ich nichts.


Mal abgesehen davon das das wiedermal eine dieser
einseitig rassistischen Bevorzugungen fuer Seher
ist, merkt man Kareems Dachschaden.

Grins
H.
(Will auch ein Tamahoernchen!)

-----------------------------------------------------------------------------



Tamahorny (Paracelsus, 20. Aug 1997, 21:36:09):
Aufgrund einiger Bugs wurden alle Tamahornys wieder aus dem Verkehr gezogen
und der Verkauf bis auf weiteres eingestellt.

Beschwerden und Schadensersatzforderungen bitte an Rochus ]:->

Paracelsus.

-----------------------------------------------------------------------------



Re: Tamahorny (Tangalur, 21. Aug 1997, 10:16:21):
~#! rn=Paracelsus rt=872105769 rg=d.ebene
~#! tid=872105769
... hoffentlich gibts bald wieder welche.
Tangalur trauert um sein Tamahoernchen :-(

-----------------------------------------------------------------------------



T ist verreckt ? (Bluemel, 21. Aug 1997, 18:23:53):
Was muss ich hoeren ? Tigerauge ist verreckt, weil Kartoffel ihn in der
Jackentasche vergessen hat ? 
Wie geht denn sowas ?
---> Schmarrn

-----------------------------------------------------------------------------



Re: T ist verreckt ? (Kartoffel, 21. Aug 1997, 21:35:57):
~#! rn=Bluemel rt=872180633 rg=d.ebene
~#! tid=872180633
Waaaahhh, Bluemel Du Intelligenzbestie, doch nicht TA ...
Mein Tigerauge, das ich in der Jackentasche rumschleppe kann nicht verrrecken,
weil ist schon tot (der Stein halt).

Kartoffel

-----------------------------------------------------------------------------



Re: Re: T ist verreckt ? (Li, 22. Aug 1997, 09:46:37):
~#! rn=Kartoffel rt=872192157 rg=d.ebene
~#! tid=872180633
Tamahorny, die Mischung aus Tamagotchi mit einem Spritzer Dungeon Keeper?
Also ich denke, dasTamag* als virtuelle tier zu bezeichnen, ist ne
Frechheit...
wir haben schliesslich hier schon viel schoenere virtuelle Tiere!
Li (gruendet eine Tamago* ist bloed - Kampagne :-) )

-----------------------------------------------------------------------------



Re^3: T ist verreckt ? (Grimmborn, 22. Aug 1997, 09:58:05):
~#! rn=Li rt=872235997 rg=d.ebene
~#! tid=872180633
Ich glaube, ihr habt den Witz nicht ganz verstanden.
Ich bin sicher, dass es im Zusammenhang mit den Tamag* jemanden gibt (der die
vermutlich erfunden hat), der den ganzen Tag nur lachend auf dem Ruecken liegt
und die einrollenden Geldbuendel zaehlt. In dieser Hinsicht sind die Viecher
voellig mit anderen Phaenomenen wie beispielsweise Magic zu vergleichen.

Grimmborn der Atheist mag Realsatire

-----------------------------------------------------------------------------



Re^4: T ist verreckt ? (Li, 22. Aug 1997, 10:11:00):
~#! rn=Grimmborn rt=872236685 rg=d.ebene
~#! tid=872180633
Klar lacht der sich tot, genau wie Wizards of the Coast, die firma die MAgic
rausgebracht hat. die haben naemlich vor kurzem mal locker TSR aufgekauft...
(Fuer alle nichtrollenspieler, TSR ist die groesste Firma fuer Rollenspiele
(AD&D...)
Horny ist ein nettes monster beim computerspiel Dungeon Keeper, daher vermute
ich diese Wortkombination...
Li

-----------------------------------------------------------------------------



Re^5: T ist verreckt ? (Rochus, 22. Aug 1997, 11:25:13):
~#! rn=Li rt=872237460 rg=d.ebene
~#! tid=872180633
Die Vermutung ist richtig :)
Genau wie ein Tamagotchi braucht auch der Horny in Dungeon Keeper staendige
Zuwendung :)

-----------------------------------------------------------------------------



Re^4: T ist verreckt ? (Quasimodo, 22. Aug 1997, 11:34:29):
~#! rn=Grimmborn rt=872236685 rg=d.ebene
~#! tid=872180633
Ein Freund von mir hat mal bei WotC gearbeitet, als die noch nicht beruehmt
waren. Damals waren das so abgedrehte Spinner alle Rollenspieler (exkl.
anwesende natuerlich). Jetzt wissen sie nicht wohin mit dem Geld. Ingo wird
sich aergern, dass er da aufgehoert hat.

Aber ein Unterschied zwischen Magic und Tamagotchis gibt es aber schon. Magic
ist ein richtig gutes Spiel, wenn auch absolut ueberteuert. Tamagotchis sind
einfach nur Dreck.

Quasi

-----------------------------------------------------------------------------



Re^5: T ist verreckt ? (Yantro, 22. Aug 1997, 12:21:06):
~#! rn=Quasimodo rt=872242469 rg=d.ebene
~#! tid=872180633
und ich dachte, die Dinger heissen "horny", weils geil ist(macht)

-----------------------------------------------------------------------------



Re^6: T ist verreckt ? (Highlander, 22. Aug 1997, 12:23:56):
~#! rn=Yantro rt=872245266 rg=d.ebene
~#! tid=872180633
Fuer den Fall, dass das ernst gemeint war:
Horny ist eine Abkuerzung von Horned Reaper.
   HrT. Hat gestern Bratdieb am Spiess gesehen.

-----------------------------------------------------------------------------



Re^7: T ist verreckt ? (Taragon, 22. Aug 1997, 20:04:49):
~#! rn=Highlander rt=872245436 rg=d.ebene
~#! tid=872180633
Hmmm, aber wieso sind die Dinger nur fuer Seher ???
Was sollen die immerhin noch recht zahlreichen Nichtseher machen ?
Gerade die haben wohl eher ein starkes Interesse an solchen Haratorny's 
;-)

taragony

-----------------------------------------------------------------------------



Re^4: T ist verreckt ? (Escubar, 24. Aug 1997, 21:37:21):
~#! rn=Grimmborn rt=872236685 rg=d.ebene
~#! tid=872180633
>Ich bin sicher, dass es im Zusammenhang mit den Tamag* jemanden gibt (der die
vermutlich erfunden hat), der den ganzen Tag nur lachend auf dem Ruecken liegt
und die einrollenden Geldbuendel zaehlt. In dieser Hinsicht sind die Viecher
voellig mit anderen Phaenomenen wie beispielsweise Magic zu vergleichen.


Leider nein Grimmborn. Erfunden wurde das Ding in Japan von einer fest
angestellten Spieledesignerin, die fuer das Tamagotchi laut Bericht (ich glaub
WiWo) nichtmal ne Praemie gesehen hat ...

Der Spielzeugfirma (ein Riesenkonzern) die die Dinger herstellt gehts im
uebrigen recht schlecht ...

Eisbaer Escubar

-----------------------------------------------------------------------------



weghier (Rochus, 26. Aug 1997, 09:25:30):
Ich habe den Bug mit dem Anti-Feuer-Ring behoben, der bewirkte, dass
man den Weghier leicht mit Feuer killen konnte.
Das war nie so beabsichtigt.
Es gibt uebrigens auch noch andere Schadenstypen, Beschwerden also bitte
nach jammerlappen.entwicklung oder /dev/null.

-----------------------------------------------------------------------------



Re^8: T ist verreckt ? (Raffi, 27. Aug 1997, 12:50:08):
~#! rn=Taragon rt=872273089 rg=d.ebene
~#! tid=872180633
Will auch eins !

Gruss
H.
P.S.: Ich hab heute frueh am bahnhof das Konr@d HEft mal durchgeblaettert.
      Gleich am anfang haben die ne Doppelseite mit Methoden zur T.
      Beseitigung :) (Trotzdem lohnt kaufen nicht - ist ne Mischung
      aus Vogue und Stern - mit noch schlechterem Layout als Wired
      und weniger Inhalt als die Bild).

-----------------------------------------------------------------------------



Schacht (Rochus, 28. Aug 1997, 18:06:04):
Weil es zu einfach war, den Schacht komplett bis nach unten aufzuraeumen,
habe ich diesen ein wenig verlaengert.

PS: Der Schacht SOLL ohne die richtige Ausruestung
fast nicht ueberlebbar sein.

  Rochus

-----------------------------------------------------------------------------



Re: Schacht (Teddy, 28. Aug 1997, 18:13:39):
~#! rn=Rochus rt=872784364 rg=d.ebene
~#! tid=872784364
Argl, aber da unten liegt dann das SMS oder wie?

Teddy

-----------------------------------------------------------------------------



Re: Re: Schacht (Asmodis, 28. Aug 1997, 18:31:17):
~#! rn=Teddy rt=872784819 rg=d.ebene
~#! tid=872784364
genau :)

-----------------------------------------------------------------------------



Re^6: T ist verreckt ? (Monimor, 30. Aug 1997, 18:45:33):
~#! rn=Rochus rt=872241913 rg=d.ebene
~#! tid=872180633
hi die 3.
horny kann man auch aus dem englischen uebersetzen ... dann ist zuwendung
etwas gelinde ausgedrueckt.

-----------------------------------------------------------------------------



Weghier (Rochus,  1. Sep 1997, 15:43:08):
Damit man laenger Freude am Vollstrecker hat,
laesst sich der Weghier jetzt seltener blicken.

-----------------------------------------------------------------------------



Re: Weghier (Mango,  1. Sep 1997, 15:43:52):
~#! rn=Rochus rt=873121388 rg=d.ebene
~#! tid=873121388
Ist mir im Grunde genommen egal. ;)

Mango, meckert nicht.


-----------------------------------------------------------------------------



Re: Weghier (Key,  1. Sep 1997, 16:12:46):
~#! rn=Rochus rt=873121388 rg=d.ebene
~#! tid=873121388
Aehm .... Rochus .....
Der Weghier hat auch noch mehr dabei als nur den VS, und soviel laenger wird
man den VS dann auch net haben (Hoffe ich)

Und so wie es im mom aussieht gibbet nur Stress um den VS :(

Key

-----------------------------------------------------------------------------



Die Verlorenen Grabungen von Charnel Clough (Tryfan, 20. Okt 1997, 18:30:57):
Hallo
 bei meinen gelegentlichen Studien in meiner kleinen Privatbibliothek
bin ich letztens in den Buechern von Privet auf einen sehr interessanten
Hinweis gestossen. Bei der Verfolgung des selben stellte sich immer mehr
heraus, dass man die zahlreichen Erwaehnungen der Verlorenen Grabungen
von Charnel Clough bisher falsch interpretiert hat. Es scheint sich nicht
so sehr um einen Tatsachenbericht als vielmehr um eine methaphorische
Betrachtung der Faehigkeiten und Geisteshaltung von Maulwuerfen zu hadeln.
 Dieses ermutigt mich dazu, intensiv in diese Richtung weiter zu forschen,
da ich nun der Ueberzeugung bin, dass man die Verlorenen Grabungen ganz in
seiner Naehe suchen sollte, weil sie nicht an Raum und Zeit gebunden sind.

 Langer Rede kurzer Sinn:
  Die Wiederkehr des legendaeren Meisters der Verlorenen Grabungen von
  Charnel Clough und sein Erscheinen im MorgenGrauen steht in ferner
  Zukunft zu erwarten. Und sollte er erscheinen, muss er aus unserer
  Mitte komme.

-----------------------------------------------------------------------------



Schreibwuetige Abenteurer gesucht ... (Cymonk, 16. Dez 1997, 22:00:20):
Halloechen,

fuer die Gestaltung der W3 pages der Region Ebene suche ich Texte ber
Oertlichkeiten und Quests in Form von packend fesselnden Reisebeschreibungen.
Wer als Lust, Laune, Begabung, Zeit, keine Begabung, sich im W3 verewigen
moechte
und darueberhinaus auch kuenstlerisch aktiv zur Athmosphaere dieses Muds
beitragen will, moege sich bitte mailenderweise an mich wenden...

CyMonk

-----------------------------------------------------------------------------



Silvesterfeuerwerk (Rochus, 30. Dez 1997, 19:29:23):
Der groesste Laden in Port Vain fuehrt jetzt auch Feuerwerkskoerper.
Die kurze Zeit hat leider nur dafuer gereicht, Raketen zu programmieren,
aber ich hoffe auch damit kommt Silvesterstimmung auf :-)

  Rochus

-----------------------------------------------------------------------------



Re: Silvesterfeuerwerk (Freund, 30. Dez 1997, 19:30:32):
~#! rn=Rochus rt=883506563 rg=d.ebene
~#! tid=883506563
Die Sicherheitshinweise auf der Rakete sollten tunlichst beachtet werden.
Immerhin ist das Ding von Rochus! :-P

Ein warnender Freund.

-----------------------------------------------------------------------------



Re: Re: Silvesterfeuerwerk (Jof, 30. Dez 1997, 19:32:54):
~#! rn=Freund rt=883506632 rg=d.ebene
~#! tid=883506563

 Hm, wenn ich sie festhalte, kann ich dann mitfliegen? Und wo lande ich 
dann? Kann ich den Kurs steuern ... ?

 Jof

-----------------------------------------------------------------------------



Re^3: Silvesterfeuerwerk (Freund, 30. Dez 1997, 19:36:02):
~#! rn=Jof rt=883506774 rg=d.ebene
~#! tid=883506563
Hm, wenn DU sie festhaelst, Jof, oder ich, dann braeuchten wir schon 3
Raketen, um abzuheben, fuerchte ich. ;-)

Aber, die Idee ist ja vielleicht nicht schlecht. Vielleicht sollten wir eine
neue Region in Erwaegung ziehen? Wie waere es mit einer Region "Mond"? Oder
"Sterne"? :)

Freund, traurig in die Jahresendzeit philosophierend...

-----------------------------------------------------------------------------



Re^4: Silvesterfeuerwerk (Jof, 30. Dez 1997, 19:39:20):
~#! rn=Freund rt=883506962 rg=d.ebene
~#! tid=883506563
 ... hm wieso nehmen wir nicht einfach /room/death_room, der tut's doch
auch ...

 Jof

-----------------------------------------------------------------------------



Re^5: Silvesterfeuerwerk (Wurzel, 30. Dez 1997, 19:40:13):
~#! rn=Jof rt=883507160 rg=d.ebene
~#! tid=883506563
das geht mit den vorhandenen raketen auch schon :)

wurzel

-----------------------------------------------------------------------------



Re^4: Silvesterfeuerwerk (Cauno, 13. Jan 1998, 14:57:35):
~#! rn=Freund rt=883506962 rg=d.ebene
~#! tid=883506563
Den Mond hatte ich ja schon lange mal im Kopf. Allerdings haben mich diverse
Gruende dann doch immer davon abgehalten Magier zu werden.
Das Projekt liegt bei mit auf Eis (Trockeneis, um genau zu sein). Weggeworfen
habe ich es allerdings immer noch nicht.

C. No

-----------------------------------------------------------------------------



Re^5: Silvesterfeuerwerk (Grimmborn, 13. Jan 1998, 15:01:54):
~#! rn=Cauno rt=884699855 rg=d.ebene
~#! tid=883506563
Ja, wenn Du den Mond im Kopf hast, erklaert das natuerlich vieles...

Grimmborn der Atheist grinst ueber das ganze Vollmondgesicht

-----------------------------------------------------------------------------



Re^6: Silvesterfeuerwerk (Cauno, 13. Jan 1998, 15:37:49):
~#! rn=Grimmborn rt=884700114 rg=d.ebene
~#! tid=883506563
Kannst du mir dem Witz bitte auch erklaeren?

C. No

-----------------------------------------------------------------------------



Re^7: Silvesterfeuerwerk (Grimmborn, 13. Jan 1998, 22:11:58):
~#! rn=Cauno rt=884702269 rg=d.ebene
~#! tid=883506563
Ausnahmsweise:
Was glaubst Du denn, wofuer in Deinem Kopf alles nicht Platz ist, wenn Du da
den Mond drin hast?

GdA

-----------------------------------------------------------------------------



Re^8: Silvesterfeuerwerk (Mingo, 13. Jan 1998, 23:57:10):
~#! rn=Grimmborn rt=884725918 rg=d.ebene
~#! tid=883506563
Der Mond muss aber noch um irgend etwas kreise, sonst waer er ja keiner.
Mann was hast Du fuer 'nen Eierkopp, Cau :)

Gloin

-----------------------------------------------------------------------------



Re^9: Silvesterfeuerwerk (Cauno, 14. Jan 1998, 11:56:31):
~#! rn=Mingo rt=884732230 rg=d.ebene
~#! tid=883506563
aha. hm, lachen kann ich zwar immer noch nicht.
Aber in dem Fall duerfte ich eigentlich kaum probleme mit der Quantenmechanik
haben, die nimmt dann ja nicht soviel platz weg ...

C. No, hoffentlich diesen thread beendend

-----------------------------------------------------------------------------



Re^10: Silvesterfeuerwerk (Grimmborn, 14. Jan 1998, 13:50:15):
~#! rn=Cauno rt=884775391 rg=d.ebene
~#! tid=883506563
Noe, die Quantenmechanik kannst Du dann vergessen. Solltest Dir aber Sorgen um
die Gravitation machen. Und wenn Du feststellst, dass Du immer nasse Fuesse
bekommst: Das sind dann die Gezeiten. ;-)

GdA 

-----------------------------------------------------------------------------



Liebe Freunde ... (Ark, 26. Jan 1998, 18:49:10):

Erschuettert greife ich nun zur Feder, um Euch, meine lieben Gefaehrten,
zu unterrichten ueber das, was mir vor kurzem zugetragen wurde:

Vor nicht allzu langer Zeit begab es sich, dass ein Wandersmann den
fernen Westen bereiste. Er wurde ueberall freundlich aufgenommen, doch
hinterliess er oftmals Angst und Unsicherheit in den Herzen der Leute,
die ihm Unterschlupf gewaehrten, denn wisset, es ist ein unheimlicher
und finsterer Gesell'.

Schliesslich kam der Wanderer auch in ein kleines Dorf in die Huette
der schoenen Mayako Ohmura, die dort mit ihren Eltern lebte. Um ihre
Hand hielt der Schurke an, doch ihr Herz war schon vergeben und so
wies sie ihn ab. Aber der Boesewicht schwor Rache und stuerzte das
arme Kind in tiefes Unglueck. Sie zog weg aus dem Dorf und lebt nun
alleine in einer einsamen Huette.

Nichts mehr koennte ich mir wuenschen, als wenn ein tapf'rer Recke
oder eine furchtlose Amazone sich aufmachen wuerde, Mayako zu helfen
und das Unrecht, welches ihr angetan wurde, zu raechen.

Doch, liebe Freunde, seht Euch vor !

Der ueble Wueterich verfuegt ueber Maechte, die so alt und maechtig
sind wie die Goetter selbst. Seid vorsichtig und gewitzt, denn es
kann Euch niemand mehr helfen, wenn ihr erst einmal in der Gewalt
dieses Satans in Menschengestalt seid ...

Moegen die Engel der Goetter ihre schuetzende Hand ausbreiten ueber
denen, die zur Hilfe und zum Opfer bereit sind.

Euer ergriffener Diener,

Siebte Stunde, Anno Kandri, 1




              *** ARK * the * Magnificent ***


-----------------------------------------------------------------------------



Nachtrag (Ark, 26. Jan 1998, 18:49:50):
So, nach ueber 1 1/2 Jahren ist es endlich soweit: ich habe
mich durchgeackert und eine Quest geschrieben :-)
Allerdings habe ich das nicht alleine geschafft, deshalb
will ich an dieser Stelle mal bedanken:

- bei Gundur, meinem Paps, Questtester, Tipgeber, etc.
- bei den Testern Bambulko, Paltum und Larissa, auch wenn
  sie nicht alle durchkamen :-)
- beim Rest des Darmstaedter Filzes -> Tryfan und besonders
  Wurzel >- *schau doch einfach im source-code nach ;-)*
- bei allen anderen Magiern, die mit hinweisen und
  tips nicht gegeizt haben, wenn ich wurstie mal nicht weiterkam
- bei Zephyr, die man alle zwei Wochen oder so auch mal sieht :)

Noch zwei Sachen zur Quest:
Mir ist klar, dass es am Anfang Gedraengel gibt, deshalb waere
es fair, wenn nicht jeder, seine Familie mit durchzieht, sondern
sich mit seinen Xties etwas zurueckhaelt. Da kann ich natuerlich
nur appellieren :-)
Ich schau mir auch gerne mein Rep-File durch, aber ich sag'
es mal lieber gleich: alle missing details werde ich garantiert
nicht ergaenzen, oft reicht mir einfach der Defaulttext.

Dank Cymonk gibt es auch auf den Seiten des MG mittlerweile
eine Info zu dieser Quest, zu finden unter ~/regionen/ebene ...

Viel Spass mit der Quest, mein naechstes Projekt ist eher in
der Wueste, waere doch gelacht, wenn wir da in Zukunft nicht mehr
Leute sehen wuerden :-)


              *** ARK * the * Magnificent ***


-----------------------------------------------------------------------------



Nachtrag, die Zweite ... (Ark, 26. Jan 1998, 22:06:42):
Wie Rikus berechtigterweise mangelnden Dank bemaengelte, so sei er
an dieser Stelle auch von mir geknuddelt :-)


              *** ARK * the * Magnificent ***


-----------------------------------------------------------------------------



Moron (Calum, 27. Jan 1998, 11:08:43):
Hi,

kleine Aenderungen in Moron:
- Das Gift der Python ist jetzt auch von Klerikern heilbar.
  (falls jetzt jemand fragt, seit wann eine Python giftig ist,
  weise ich darauf hin, dass es sich um eine Mutation handelt, und
  verweise weiterhin auf die einschlaegige Literatur in der Bibliothek
  von Moron :-) )
- Analog heilt das Gegengift jetzt auch andere (leichte) Vergiftungen.
  Damit die Kleriker nicht arbeitslos werden, habe ich allerdings die
  Anzahl der verfuegbaren Gegengifte pro Reset halbiert.
- Die Spinne ist etwas staerker geworden (an den Hornpanzer kam man
  definitiv zu leicht ran). 

Have fun,
 - Calum -

-----------------------------------------------------------------------------



Re: Moron (Anakin, 27. Jan 1998, 11:09:26):
~#! rn=Calum rt=885895723 rg=d.ebene
~#! tid=885895723

- Die Spinne ist etwas staerker geworden (an den Hornpanzer kam man
  definitiv zu leicht ran). 


Ach? ;)

Anakin.

-----------------------------------------------------------------------------



Re: Moron (Mingo, 27. Jan 1998, 12:40:04):
~#! rn=Calum rt=885895723 rg=d.ebene
~#! tid=885895723
Oooch - am Biss ein nichtmutierten Wuergeschlange ist auch schon so
mancher gestorben. Die Viecher putzen sich naemlich ihre Zaehnchen
viel zu selten.

Gloin

-----------------------------------------------------------------------------



Ruestungen (Gundur, 17. Feb 1998, 23:58:05):
Im Zuge der Ruestungsspiralenaenderungen (oder wie das immer heisst) gabs
einige kleine Aenderungen bei Ruestungen die man so in der Ebene bekommt.
Die ungueltigen die imi Umlauf sind such ich jetzt nich extra also freut euch
bis zum naechsten Reboot :-)
mfG 
Gundur

-----------------------------------------------------------------------------



Spiel (Padreic, 23. Mar 1998, 19:20:51):
Fuer alle diejenigen unter Euch die nicht wissen was sie mit ihrer Zeit
anfangen sollen, fuehrt Owen ab sofort was neues in seinem Sortiment :)

                                     Gruss Padreic

-----------------------------------------------------------------------------



Re: Spiel (Patryn, 23. Mar 1998, 19:21:43):
~#! rn=Padreic rt=890677251 rg=d.ebene
~#! tid=890677251
also so viel langeweile quaelt uns dann doch wieder nicht, als dass ich mir
dein zeugs antun muesste ;)

------
patryn

-----------------------------------------------------------------------------



Re: Re: Spiel (Astar, 23. Mar 1998, 19:25:07):
~#! rn=Patryn rt=890677303 rg=d.ebene
~#! tid=890677251
boese :))

Astar (Einzeiler)

-----------------------------------------------------------------------------



Re^3: Spiel (Key, 23. Mar 1998, 19:25:43):
~#! rn=Astar rt=890677507 rg=d.ebene
~#! tid=890677251
Wo er recht hat hatter recht ;)

Key immer einzelnzeilend :)

-----------------------------------------------------------------------------



Re^4: Spiel (Jasper, 23. Mar 1998, 21:19:11):
~#! rn=Key rt=890677543 rg=d.ebene
~#! tid=890677251
ist bugcity eigentlich schon fertig? :)

-----------------------------------------------------------------------------



Re: Re: Spiel (Patryn, 23. Mar 1998, 21:43:21):
~#! rn=Patryn rt=890677303 rg=d.ebene
~#! tid=890677251
also ich finde das wuerfelspiel in wirklichkeit nicht schlecht, manche
scheinen smilies entweder grundsaetzlich zu ignorieren oder wollen mich
grundsaetzlich nicht verstehen oder mir reine boshaftigkeit unterschieben,
wie gesagt: war nur nen netter seitenhieb, den auch padreic nich
weiter schlimm aufgefasst hatte und hintenrum haben wir uns ja auch
drueber unterhalten und nett gelacht.
warum schreib ich das nu? ioch hab da 2 so komische mails bekommen, die
das in die falsche kehle bekamen bzw. bekommen wollten :)

------
patryn

-----------------------------------------------------------------------------



Re^3: Spiel (Key, 24. Mar 1998, 10:03:18):
~#! rn=Patryn rt=890685801 rg=d.ebene
~#! tid=890677251
Du alter Miesmacher!
Hoer sofort auf dich zu entschuldigen und lass und weiter auf Patryn rumhacken
=;)

Key, grinsend

-----------------------------------------------------------------------------



Re^4: Spiel (Freund, 24. Mar 1998, 10:51:31):
~#! rn=Key rt=890730198 rg=d.ebene
~#! tid=890677251
Genau, Key, dieser Paracelsus macht eh immer, was ihm passt! Deshalb sollte
man ihn (also Patryn) eigentlich sofort loeschen. Also hacken wir weiter auf
Padreic rum. Und am schlimmsten ist dieser Pacman, den sollte man sofort
banishen. Aber Pampers, der scriptet glaube ich. Und Pantoffel, das ist gar
kein richtiger Held. Genau wie Panther, alles Pappnasen, vor allem eben der. 

Freund, mit einer kleinen Auswahl aus /save/p/pa*

P.S.: Was ist denn ein Smiley?

-----------------------------------------------------------------------------



Re^5: Spiel (Baboon, 24. Mar 1998, 11:17:16):
~#! rn=Freund rt=890733091 rg=d.ebene
~#! tid=890677251
Hm, Freund, hetz ihnen doch Paketbombe auf den Hals.

baboon (affig grinsend)

-----------------------------------------------------------------------------



Re^5: Spiel (Pampers, 15. Apr 1998, 12:09:28):
~#! rn=Freund rt=890733091 rg=d.ebene
~#! tid=890677251
Hey! Ich scripte gar nicht. :-) 

Pampers. Schreibt sich jetzt ein Script, das alle 5 minuten nn eingibt, was so
ziemlich alles ist, was ich hier mach. :)

-----------------------------------------------------------------------------



Daemonendimension (Gruuh,  3. Jun 1998, 14:22:19):
Ich habe gerade einen neuen Teil der Daemonendimension angeschlosssen. Viel
Spass damit!

-----------------------------------------------------------------------------



Re: Daemonendimension (Asmodis,  3. Jun 1998, 18:41:46):
~#! rn=Gruuh rt=896876539 rg=d.ebene
~#! tid=896876539
Hmm, nur mal interessehalber, wie kann ein Testie ein Gebiet
anschliessen ? Schreib die Artikel doch unter deinem richtigen
namen, Zardoz :)

-----------------------------------------------------------------------------



Das Auge des Teufels (Ark,  3. Jul 1998, 22:38:43):
Hi, ich habe heute eine kleine Aenderung eingebaut und hoffe, dass die Quest
dadurch mit der Zeit weniger nervig ist, besonders wenn man oft das Haus
verlaesst *schiel Alpha*
Wenn man einmal den Anfang gespielt hat, wird man beim naechsten Mal gleich in
den zweiten Teil geschleust. Das kann man nun umgehen, wenn man will, und zwar
mit 'ende' :-)
So ist die Loesung fuer die Storyline am Besten, denke ich. Wer jetzt noch
einmal durch den Anfang gehen will, macht halt 'ende', aber dann heisst das:
alles nochmal spielen, auch den Fernwest-Teil.
Alsdenn, ich hoffe, das kommt an, wenn nicht, aendere ich es halt wieder. Aber
schaun wer mal erst ...


              *** ARK * the * Magnificent ***


-----------------------------------------------------------------------------



Re: Das Auge des Teufels (Ark,  3. Jul 1998, 22:43:09):
~#! rn=Ark rt=899498323 rg=d.ebene
~#! tid=899498323
Das Ganze gilt auch fuer Reboot, da muss man halt die Quest auch nochmal
spielen. Vielleicht nicht das Schlechteste, bei der Menge an Details, die man
wieder vergessen hat :-)


              *** ARK * the * Magnificent ***


-----------------------------------------------------------------------------



Re: Re: Das Auge des Teufels (Therin,  3. Jul 1998, 22:44:20):
~#! rn=Ark rt=899498589 rg=d.ebene
~#! tid=899498323

Details? Pffff.... :)

Therin, 1 Tod :)


-----------------------------------------------------------------------------



Re^3: Das Auge des Teufels (Teddy,  3. Jul 1998, 22:44:53):
~#! rn=Therin rt=899498660 rg=d.ebene
~#! tid=899498323
Gibs doch zu, du bist Forscher, Therin ;)

Teddy

-----------------------------------------------------------------------------



Re^4: Das Auge des Teufels (Therin,  3. Jul 1998, 22:57:03):
~#! rn=Teddy rt=899498693 rg=d.ebene
~#! tid=899498323

Ich bevorzuge die Bezeichnung minimalistischer Ueberlebenskuenstler was FPs
angeht :)
(Mit Treffsicherheit immer dran vorbei unt-en)


-----------------------------------------------------------------------------



Weghier (Rochus,  5. Aug 1998, 19:51:01):
Der Weghier ist wieder da und ich habe auch den Bug beim
Ausgang "egalwohin" behoben.

  Rochus

-----------------------------------------------------------------------------



geisterschloss ausgang (Snibril, 26. Aug 1998, 08:47:21):
Welcher uebereifrige Magier hat denn den Ausgang vom Geisterschloss
veraendert?
und warum?
vielleicht mit wichtigem Grund?
oder aus einem allgemeinen BugWahn heraus?

den Kopf schuettelnd...
    Snibril

-----------------------------------------------------------------------------



Re: geisterschloss ausgang (Gundur, 26. Aug 1998, 09:56:02):
~#! rn=Snibril rt=904114041 rg=d.ebene
~#! tid=904114041
Kein uebereifriger...
Darum..
Ja aus wichtigem Grund..
Nicht aus Bugwahn...

mit dem Kopf nickend..
Gundur

-----------------------------------------------------------------------------



Re: Re: geisterschloss ausgang (Anatol, 26. Aug 1998, 14:05:26):
~#! rn=Gundur rt=904118162 rg=d.ebene
~#! tid=904114041
Nichts als ein vergeblicher Versuch.

Anatol


-----------------------------------------------------------------------------



Re^3: geisterschloss ausgang (Ringor, 27. Aug 1998, 15:04:23):
~#! rn=Anatol rt=904133126 rg=d.ebene
~#! tid=904114041
So vergeblich war der Versuch auch nicht. 

Der Einzige, der das ausgenutzt hat, kennt die anderen Moeglichkeiten nicht.
Und die, die die anderen Stellen kennen, kaemen niemals auf die Idee, so eine
kranke Methode ernsthaft auszunutzen. ;-)

Ringor

-----------------------------------------------------------------------------



Re^4: geisterschloss ausgang (Patryn,  2. Sep 1998, 09:47:50):
~#! rn=Ringor rt=904223063 rg=d.ebene
~#! tid=904114041
haust du deine monster etwa schneller um, als in 4 stunden? :)

------
patryn hat sich auch an den kopp geklatscht

-----------------------------------------------------------------------------



D-Burg (Gundur,  7. Sep 1998, 12:30:35):
Hi
Wie ihr ja alle nicht wisst kuemmer ich mich nun um die Daemonenburg und so
Sachen..
D.h. hab ich gleich mal ne klitzekleine Erweiterung eingebaut..die eh nur die
Kaempfer interessiert denk ich..
Gruss und frohes sterben
Gundur

-----------------------------------------------------------------------------



duncton(weiblich) (Gundur,  9. Sep 1998, 11:07:04):
Hi
Falls jemand in letzter Zeit schwierigkeiten hat die weibl. Dunctonversion zu
spielen..
Jetzt geht sie wieder.
Gruss
Gundur

-----------------------------------------------------------------------------



Auge des Teufels (Ark, 30. Okt 1998, 17:35:26):
Tja, aufgrund des neuen Put_and_Get ist es erstmal nicht moeglich, die Quest
zu spielen (Maus). Bis da alles geklaert wird, braucht man also deshalb nicht
ins Haus. Metzeln geht noch weiterhin, nur das Bestehen ist nicht moeglich.
Bedauernd ...


              *** ARK * the * Magnificent ***


-----------------------------------------------------------------------------



Der Winter kommt in den Grimmswald ... (Ark,  2. Nov 1998, 22:42:20):
Hm, als Warnung: In der Parawelt rund ums Haus von Vincent Klopek hat sich was
getan. Es sieht dort ein klein wenig anders aus. Dort wird hoffentlich einmal
die Fortsetzung spielen, soweit schon mal als Ankuendigung.
Mit eisigem Gruss ...


              *** ARK * the * Magnificent ***


-----------------------------------------------------------------------------



Re: Der Winter kommt in den Grimmswald ... (Ark,  2. Nov 1998, 22:43:00):
~#! rn=Ark rt=910046540 rg=d.ebene
~#! tid=910046540
Hm, streiche 'klein' :-)


              *** ARK * the * Magnificent ***


-----------------------------------------------------------------------------



Re: Auge des Teufels (Ark,  2. Nov 1998, 22:44:53):
~#! rn=Ark rt=909768926 rg=d.ebene
~#! tid=909768926
So, geht jetzt wieder.


              *** ARK * the * Magnificent ***


-----------------------------------------------------------------------------



Raetselstein (Ark, 24. Nov 1998, 20:39:38):
So, ich habe mal ein paar Meldungen in die Quest eingebaut, damit nicht immer
kommt: Etwas Geheimnisvolles und Unbekanntes hat gerade ...
Aber bitte: jetzt nicht mit Sterbetesties durchlaufen, das gibt sich schon
irgendwann.
Irgendwie hoffe ich, dass letzter Aufruf nicht umsonst ist :-)


              *** ARK * the * Magnificent ***


-----------------------------------------------------------------------------



Re: Raetselstein (Anatol, 24. Nov 1998, 20:40:12):
~#! rn=Ark rt=911939978 rg=d.ebene
~#! tid=911939978
Hast Du die Quest dann auch debuggt? :)

Findet DAS viel wichtiger,
Anatol :o)


-----------------------------------------------------------------------------



4gw und wildrose (Cymonk,  2. Feb 1999, 22:05:31):
halloechen,

nur damit ihr bescheid wisst und euch nicht unnuetz wundert,
die 4gw turnierhalle und die wildrose sind temporaer abgehaengt.

cy

-----------------------------------------------------------------------------



Brot (Zardoz,  2. Mar 1999, 17:14:49):
Das Brot ist debuggt, aber das geht ja eh nur Zwerge was an...

Ciao Zardoz

-----------------------------------------------------------------------------



Brot (Bendeigid,  3. Mar 1999, 11:01:25):
Hm, nun, es gibt da zwar nur Broetchen und kein Brot, aber evtl lohnt sich das
anschauen ja. Ich hab ein wenig an der Akademiestrasse gemacht, vor allem
Boden aufgeschuettet und ein paar Baeume gepflanzt. 

Z'par Servu,
                Bendeigid

P.S.: Erster Toter: Darkwing! Danke fuer die Kerbe ;)

-----------------------------------------------------------------------------



Baustelle (Shakedbeer, 19. Mar 1999, 15:21:17):
Hallo!

Soeben ist in Port Vain eine Baustelle angeschlossen worden. Wer Lust hat,
kann ja mal vorbeischauen. Worum es geht, verrate ich nicht.

Shakedbeer - geht weiter proggen.

-----------------------------------------------------------------------------



Re: Baustelle (Asmodis, 21. Mar 1999, 23:28:01):
~#! rn=Shakedbeer rt=921856877 rg=d.ebene
~#! tid=921856877
Hmm, was ist an Baustellen so interessant ?

-----------------------------------------------------------------------------



Re: Baustelle (Hight,  9. Apr 1999, 22:23:12):
~#! rn=Shakedbeer rt=921856877 rg=d.ebene
~#! tid=921856877
Ich glaube das was da am entstehen is koennte sehr interesant werden 

ein gespannt wartender hight der aus langeweile zeitung liest .o)

-----------------------------------------------------------------------------



Pandora (Ark, 26. Apr 1999, 22:46:14):
Und der Boden zittert, bebt und speiet heisse Flammen. Dort, sehet, es tat
sich auf eine gefaehrliche Spalte, die drohte, alle harmlosen Recken zu
verschlingen mit Verzweiflung und Wut.
Denn es war so und fuerderhin ueberliefert, dass dero hart erkaempfte Fluegel
und Panzer in der gefaehrlichen Quest, die sich "Buechse der Pandora" nannte,
nach Gutduenken verschwanden, hatten die Ungluecklichen zuviel zu tragen
dabei. Doch da erschien die Lichtgestalt Wim aus der Spalte, und alle Kaefer
erzitterten vor seiner heiligen Wut, und er sprach zu ihnen:
Gestraft muesst ihr werden, denn ihr seid gehaessige Wuermer, mit nichts
anderem im Sinne, als unschuldigen Abenteurern von der rechtmaessigen
Belohnung abzuhalten. Der Tod sei euer Schicksal, denn sehet, ich schicke
meinen ersten Streiter, den Erzengel Ark wider euch Gesocks. Fuerchtet euch
sehr, denn bis aufs Blut mag er euch bekaempfen, rottig Gezuecht aus
Magierhand.
Und so erhob sich ein lautes Wehklagen unter den Kaefern der Quest, denn
wahrlich, der wack're Streiter der reinen Schrift hatte nicht zuviel
versprochen, Ark richtete ein Blutbad unter ihnen an. Und so koennen die
Quester wieder lustig singen und springen, denn nicht umsonst ziehen sie mehr
in die Lande auf der Suche nach der "Buechse der Pandora".

Habt ihr das verstanden? Hm, Panzer und Fluegel verschwinden jetzt hoffentlich
nicht mehr sinnlos, wenn man sie nicht mehr tragen kann und mit ihnen
herumbastelt. War kuerzer, klang aber irgendwie banal, deshalb :-)


              *** ARK * the * Magnificent ***


-----------------------------------------------------------------------------



Re: Pandora (Wim, 26. Apr 1999, 22:48:25):
~#! rn=Ark rt=925159574 rg=d.ebene
~#! tid=925159574
Ark hat ganz vergessen, dass er diese Heldentat unter Benutzung von ED
geleistet hat, wofuer er doch viel eher einen Orden verdient hat...


-----------------------------------------------------------------------------



Re: Pandora (Anatol, 26. Apr 1999, 22:52:20):
~#! rn=Ark rt=925159574 rg=d.ebene
~#! tid=925159574
Fuerwahr, die Gebete der leid- und fluegeltragenden Abenteurer wurden
nun von den Bedeutenden dieser Welt erhoert! Was sind, gemessen an der
Ewigkeit, die vielen Jahre - nennen wir die magische Zahl vier, um der
Vagheit Einhalt zu gebieten -, die sie haben auf dieses segensreiche
Wunder des morgendlichen Grauens haben harren muessen?

Anyway, Danke ;)

Anatol


-----------------------------------------------------------------------------



Re: Re: Pandora (Asmodis, 26. Apr 1999, 22:58:34):
~#! rn=Wim rt=925159705 rg=d.ebene
~#! tid=925159574
Ed war doch seit dem 2. April nicht mehr da :-)

-----------------------------------------------------------------------------



Re: Re: Pandora (Ark, 26. Apr 1999, 23:38:11):
~#! rn=Wim rt=925159705 rg=d.ebene
~#! tid=925159574
... und es ging unter in dem einsetzenden Jubel, dass der unermuedliche Retter
murmelte:
Wehe, oh MorgenGrauen, falls die Brut Kinder hinterliess. Doch zaget nicht,
auch diese werde ich beseitigen, falls man mich hetzt erneut auf die
heimtueckische Meute.

Also, falls noch was ist, mich treten :-)


              *** ARK * the * Magnificent ***


-----------------------------------------------------------------------------



Pfui Spinne (Rochus, 10. Mai 1999, 18:48:30):
Falls Euch in einem neuen Bereich der Ebene einige Spinnen
ueber den Weg laufen solltet, koennt Ihr jetzt entgifte ueben...

  Rochus

-----------------------------------------------------------------------------



Re: Pfui Spinne (Ark, 11. Mai 1999, 20:39:35):
~#! rn=Rochus rt=926354910 rg=d.ebene
~#! tid=926354910
Aha, man sieht es, Du hast wohl auch mit Begeisterung Baldur's Gate gespielt
;^)


              *** ARK * the * Magnificent ***


-----------------------------------------------------------------------------



Re: Re: Pfui Spinne (Novastorm, 12. Mai 1999, 09:29:32):
~#! rn=Ark rt=926447975 rg=d.ebene
~#! tid=926354910
Sieht wirklich so aus... bin gespannt wann Sirenen, fliegende Lindwuermer und
kuschelige Winterwoelfe angeschlossen werden, vor oder nach den Paladinen/ der
Diebesgilde ?
    Nova

-----------------------------------------------------------------------------



Re^3: Pfui Spinne (Lena, 12. Mai 1999, 09:33:22):
~#! rn=Novastorm rt=926494172 rg=d.ebene
~#! tid=926354910
Ja, und wenn wir die Entwickler solcher Spiel ganz lieb fragen, ob sie den
Codse nicht in MG-tauglicher Form schreiben, dann muessen wir ihn nur noch
kopieren und haben (als Magier) ueberhaupt keine Arbeit mehr, weder tippen,
noch kreativ sein.
(Ich kenn weder Baldurs Gate noch die Hoehle, wollts nur mal gesagt haben.)

-----------------------------------------------------------------------------



Re^4: Pfui Spinne (Rochus, 12. Mai 1999, 13:02:33):
~#! rn=Lena rt=926494402 rg=d.ebene
~#! tid=926354910
Ach, seid doch froh, dass ich den gruenen Schleim noch nicht
uebernommen habe und die Raeuber noch nicht durch Black Talons
verstaerkt habe.... NOCH nicht... ;-)

  Rochus

-----------------------------------------------------------------------------



Re^5: Pfui Spinne (Anatol, 12. Mai 1999, 13:03:13):
~#! rn=Rochus rt=926506953 rg=d.ebene
~#! tid=926354910
Nehmt Rochus endlich Baldur's Gate ab. SCHNELL! :)

Anatol


-----------------------------------------------------------------------------



Re^6: Pfui Spinne (Rochus, 12. Mai 1999, 13:04:31):
~#! rn=Anatol rt=926506993 rg=d.ebene
~#! tid=926354910
PS: Naechste Woche habe ich Tales of the Sword Coast in den Fingern :)

-----------------------------------------------------------------------------



Re^3: Pfui Spinne (Ark, 12. Mai 1999, 20:14:19):
~#! rn=Novastorm rt=926494172 rg=d.ebene
~#! tid=926354910
Winterwoelfe? ... Check 1-1-1

Besser faende ich eine Art Diebesquest wie in und unter der Stadt.
Hm, noch ein neues Projekt :-)


              *** ARK * the * Magnificent ***


-----------------------------------------------------------------------------



Re^5: Pfui Spinne (Wurzel, 12. Mai 1999, 21:41:48):
~#! rn=Rochus rt=926506953 rg=d.ebene
~#! tid=926354910
gruener schleim? ich kenne baldurs gate nicht, aber das ist ja wohl eine 
ad&d nachbildung, und da kenne ich gruenen schleim... nette idee, mal sehen
was sich tun laesst :)

wurzel

-----------------------------------------------------------------------------



Re^3: Pfui Spinne (Boing, 19. Mai 1999, 09:01:45):
~#! rn=Novastorm rt=926494172 rg=d.ebene
~#! tid=926354910
Winterwoelfe gibt's laengst ... geh forschen! :)
  Boing

-----------------------------------------------------------------------------



Drachenschildkroete (Rochus, 28. Mai 1999, 13:38:38):
Was das Viech jetzt kann koennt Ihr Euch sicher denken...

-----------------------------------------------------------------------------



UnTroyer Viggy (Ark,  4. Jun 1999, 22:23:52):
Hi, der Viggy sollte jetzt nicht mehr in den Raetselstein verschwinden, wenn
er doch dabei beobachtet wird, dass er es tut, dann halt beschweren.


              *** ARK * the * Magnificent ***


-----------------------------------------------------------------------------



Winter is coming ... (Ark,  8. Jun 1999, 19:33:26):

----------------------------------------------------------------------------
Der Winter steht vor der Tuer. Und ja, meine Liebe, er wird uns alle
fangen, ob gross oder klein, gewitzt oder einfaeltig, die Vorsichtigen
und Weisen, die Unachtsamen wie die Prahlerischen, keiner wird verschont.
Doch Du, Emily, weisst, dass unsere kleine, doch stetig wachsende
Gemeinschaft Dir Schutz und Trost bietet. Greife danach, denn der Winter
greift nach uns, nicht mehr lange, und er haelt Einzug in unsere Herzen.

Bei Deinem Mann klopfte er bereits an die Tuer, und der Toerichte liess
ihn ein. Huete Dich, denn sein Herz ist vergiftet, seine Zunge aus kaltem
Eis. Nur allzu leicht habe ich derlei bereits uebertragen gesehen.

Ein alter Freund von mir, nennen wir ihn der Einfachheit halber Edgar,
hat dies in seinen zahlreichen visionaeren Schriften bereits geschrieben:

 Spirits Of The Dead
 -------------------

 Thy soul shall find itself alone
 'Mid dark thoughts of the grey tombstone -
 Not one, of all the crowd, to pry
 Into thine hour of secrecy.

 Be silent in that solitude
  Which is not loneliness, for then
 The spirits of the dead who stood
  In life before thee are again
 In death around thee, and their will
 Shall overshadow thee: be still.

 The night, tho' clear, shall frown,
 And the stars shall not look down
 From their high thrones in the Heaven
 With light like Hope to mortals given.


Und so, liebe Emily, werde ich Dich sicher bald verlassen, doch nur Deines
zornigen Mannes willen, ich weile nicht weit entfernt von Euch, meine
Schuelerin. Ihr werdet mich eines Tages finden, dessen bin ich gewiss,
und dann nehme ich Euch bei uns auf, denn der Winter kommt, er ist nahe ...

                           . o 0 Klumpfuss 0 o .
____________________________________________________________________________


Diesen Zettel mit der eigenartigen und fast unleserlichen Schrift fand ich
im Schnee vor einem Haus im Grimmswald. Das beunruhigte mich doch sehr.
Vielleicht finden sich ja ein paar - einer alleine ist da sicherlich recht
ueberfordert - Wagemutige, die dem Raetsel auf den Grund gehen.

Das Schlimmste befuerchtend gruesst Euch ...


              *** ARK * the * Magnificent ***


-----------------------------------------------------------------------------



... (Ark,  8. Jun 1999, 19:33:54):

So, das waere mal wieder geschafft. Diese "Mini"-Quest, die ich jetzt
fertiggestellt habe, spielt in der Parawelt und ist bereits der erste
Teil der Fortsetzung vom "Auge des Teufels". Es ist also durchaus nicht
schlimm, wenn Euch an der einen oder anderen Stelle einiges komisch,
unerklaerlich oder sinnlos vorkommt, das wird dann vielleicht erst in
der richtigen Quest relevant. "Mini" ist die Quest hier uebrigens nur dem
Titel nach, Belohnung gibt es hier reichlich.

Aus storytechnischen Gruenden ist das Haus in der Parawelt nur betretbar,
wenn man die Quest "Das Auge des Teufels" bestanden hat. Meckern und
stoehnen bringt nix, das wird sich nicht aendern, sag' ich mal gleich.
Fuer die Parawelt mach ich halt nicht nur irgendwelche Monster, bei denen
mir bei den Werten die '0'-Taste zu klemmen beginnt ;^P

Ausserdem, wer die Quest doof fand oder nur mit KL durchrauschte, wird
sich auch an diesem Abschnitt nicht erfreuen koennen, denn ja, es ist mal
wieder alles gefragt: Neugier, Vorsicht, Wagemut, Ausdauer, Kombinations-
faehigkeit (angesichts meines etwas wabernden Verstandes :-) ), und Metzel-
freude *hihi*

Jo klar, es sind wieder doofe/fiese/gemeine/hinterhaeltige/toedliche
Fallen dabei, dafuer wird der weibliche Artikel nur selten als Funktion
missbraucht *oehem*

So, genug geschwaetzt, macht Euch halt auf in die Schlacht. Verzeiht, wenn
ich jetzt die Werbetrommel so heftig schlage, aber sonst bemerkt das Gebiet
kaum einer :-)

Achso, haette ich fast vergessen. Nachdem hier und da Unmut aufkam, dass
das "Auge des Teufels" wirklich nur fuer einen Solospieler gedacht war,
gilt hier eher das Gegenteil. Ab und an kommt man schneller voran, wenn
man zumindest zu zweit ist, nicht nur, was das Metzeln betrifft. Auch die
Nachfolgequest wird 'ne Zweispielerquest, versprochen. Fertigstellung: hm,
vielleicht gleichzeitig mit der Erscheinung von Windows 2000 oder dem
Anschluss von Taramis *haha*

Viel Glueck und Spass wuenscht


              *** ARK * the * Magnificent ***


-----------------------------------------------------------------------------



Re: Winter is coming ... (Wim,  8. Jun 1999, 22:39:27):
~#! rn=Ark rt=928863206 rg=d.ebene
~#! tid=928863206
Wenn ich daran erinnern darf, ich suchte verzweifelt Tester dafuer... Hat sich
irgendwie niemand getraut :)

-----------------------------------------------------------------------------



Re: Re: Winter is coming ... (Anacrion,  8. Jun 1999, 22:39:49):
~#! rn=Wim rt=928874367 rg=d.ebene
~#! tid=928863206
Alles Weicheier ;)

anac*

-----------------------------------------------------------------------------



Re^3: Winter is coming ... (Lena, 22. Jun 1999, 11:31:53):
~#! rn=Anacrion rt=928874389 rg=d.ebene
~#! tid=928863206
Ich war ne Zeit nicht da...
Ist die schon angehaengt?
Werden Tode beim testen mitberuecksichtigt? Werden die AP gezaehlt?

-----------------------------------------------------------------------------



Re^4: Winter is coming ... (Ark, 23. Jun 1999, 21:42:00):
~#! rn=Lena rt=930043913 rg=d.ebene
~#! tid=928863206
Ja, nix testen, alles live, nix AP, nur Stupse. Bilanz bisher: Geschafft hat's
keiner, draufgegangen sind, aeh ... hm, I don't keep a headcount :-)


              *** ARK * the * Magnificent ***


-----------------------------------------------------------------------------



Re^5: Winter is coming ... (Wim, 23. Jun 1999, 21:42:35):
~#! rn=Ark rt=930166920 rg=d.ebene
~#! tid=928863206
> aeh ... hm, I don't keep a headcount :-)

THIS I do not believe :)

-----------------------------------------------------------------------------



Re^6: Winter is coming ... (Ark, 23. Jun 1999, 22:25:00):
~#! rn=Wim rt=930166955 rg=d.ebene
~#! tid=928863206
Is aba so, grep mal durch meine Verzeichnisse (ein Anschauen reicht) :-)


              *** ARK * the * Magnificent ***


-----------------------------------------------------------------------------



Re^7: Winter is coming ... (Wim, 23. Jun 1999, 22:26:35):
~#! rn=Ark rt=930169500 rg=d.ebene
~#! tid=928863206
grep -c ark KILLS
8

-----------------------------------------------------------------------------



Re^8: Winter is coming ... (Ark, 23. Jun 1999, 22:45:00):
~#! rn=Wim rt=930169595 rg=d.ebene
~#! tid=928863206
Ich meinte damit, dass ich nicht mitlogge, wenn Spieler X mein
hachsogefaehrliches Monster Y umhaut oder umgekehrt. Das Kill-Log schau ich
mir natuerlich ab und an an *aehem* :-)


              *** ARK * the * Magnificent ***


-----------------------------------------------------------------------------



Re^6: Winter is coming ... (Wim, 23. Jun 1999, 22:55:27):
~#! rn=Wim rt=930166955 rg=d.ebene
~#! tid=928863206
Gegenbeweis:
> aeh ... hm, I don't keep a headcount :-)

Ark sagt: wieder ein kill missing :)
Ark sagt: sowas aber auch
Ark sagt: dabei log ich vielleicht doch alles mit und muell die platte zu :)

-----------------------------------------------------------------------------



Re^7: Winter is coming ... (Ark, 23. Jun 1999, 22:55:53):
~#! rn=Wim rt=930171327 rg=d.ebene
~#! tid=928863206
Fies, baeh, bloed, bum, knall ...


              *** ARK * the * Magnificent ***


-----------------------------------------------------------------------------



Zeitvertreib (Tiamak,  5. Jul 1999, 15:42:52):
Du gehoerst auch zu den Muddern, die jederzeit aufhoeren koennten, aber
trotzdem jeden Tag im Mud sind?

Du hast eigentlich hundert andere Sachen zu tun, aber irgendwie trotzdem
zwischendurch mal Langeweile?

Du spielst gerne Brettspiele, findest aber selten genug Mitspieler?

Vier gewinnt ist Dir zu simpel, Schach zu langwierig?

Hier ist die Loesung: Abalone!

Ab sofort erhaeltlich in einem gut sortierten Laden in Port Vain!


i.A. Tiamak,
Spielwarenvertreter

-----------------------------------------------------------------------------



Re: Zeitvertreib (Morgoth,  6. Jul 1999, 07:43:01):
~#! rn=Tiamak rt=931182172 rg=d.ebene
~#! tid=931182172
Hey, Du sollst keinen Schickschnack proggen. Du weisst was auf Deine
ToDo-Liste ganz oben stehen sollte?

M*

-----------------------------------------------------------------------------



Re: Re: Zeitvertreib (Gnome,  6. Jul 1999, 09:15:58):
~#! rn=Morgoth rt=931239781 rg=d.ebene
~#! tid=931182172
deine gebiete debuggen? ]:->

gnOme

-----------------------------------------------------------------------------



Re: Re: Zeitvertreib (Tiamak,  6. Jul 1999, 10:27:43):
~#! rn=Morgoth rt=931239781 rg=d.ebene
~#! tid=931182172
Ja. Ein intelligenter MPA-Filter, der Artikel wie Deine herausfiltert.

Die Nachfrage waere gigantisch.

Tiamak

-----------------------------------------------------------------------------



Re^3: Zeitvertreib (Teddy,  6. Jul 1999, 18:17:03):
~#! rn=Tiamak rt=931249663 rg=d.ebene
~#! tid=931182172
Dafuer.

Teddy, bestellt schonmal 2 Exemplare, eins in Reserve.

-----------------------------------------------------------------------------



Re: Zeitvertreib (Tiamak,  9. Jul 1999, 22:43:34):
~#! rn=Tiamak rt=931182172 rg=d.ebene
~#! tid=931182172
Der Spielehersteller hat auf die zahlreichen Zuschriften seiner Kunden
reagiert und von seinen Skl^H^H^HMitarbeitern eine neue Auflage anfertigen
lassen.

Die - natuerlich handgefertigten - Exemplare sind jetzt noch bunter, groesser,
schneller, schoener, besser. Schliesslich sind wir immer bemueht, die Wuensche
unserer zahlenden Kunden zu erfuellen.

i.A. Tiamak,
Spielwarenvertreter

P.S: neue Exemplare gibt's automatisch nach "schlafe ein"

-----------------------------------------------------------------------------



Memmen :-) -> deshalb noch mehr Anreiz (Ark,  2. Aug 1999, 21:20:32):
Okokok. Das ist ja laecherlich :-) Hat es bisher nur der geschafft, die
Miniquest zu loesen, der sie auch getestet hat? Bin ich mies? Rieche ich? Habe
ich Euch beleidigt?
Okokok. Mal abgesehen davon spendiere ich jetzt dem/der, der sie als Erste/r
schafft, einen Liter dunkles Zwergenbier, hm, wahlweise auch zwei Liter Milch
... oder Cola ... oder Kiba ... oder Tomatensaft ... oder ...
Okokok. Enttaeuscht mich jetzt net :-) Ihr wisst sicher, wovon ich spreche,
oder ? Wenn nicht, weiter MPA lesen.

Wieder mal rege die Werbetrommel reibend ...


              *** ARK * the * Magnificent ***


-----------------------------------------------------------------------------



geschaeft ist geschaeft (Wurzel,  9. Aug 1999, 19:26:12):
wegen des anhaltend guten umsatzes hat erna siebenscheich es geschafft,
genug kapital zur erweiterung ihres geschaefts zusammenzukratzen. die
urspruengliche idee, ihr bestehendes haus zu erweitern, musste sie allerdings
aufgeben, da die grundmauern weiteres gewicht nicht ausgehalten haetten.
aus dieser situation heraus wurde ein kuehner plan geboren: ein hotel in
der grossen stadt sollte es sein! nach langer bauzeit ist es endlich soweit,
und ab heute ist der geschaeftsbetrieb eroeffnet. betrieben wird das hotel
von ernas tochter, die genug vom abenteurerleben hatte.
da die grundstueckspreise in port vain hoeher sind als in anderen staedten,
mussten die preise etwas angepasst werden. aber das sollte nicht schrecken,
da auch die ausstattung der zimmer verbessert wurde...

wurzel

-----------------------------------------------------------------------------



Spinnen (Rochus, 30. Aug 1999, 16:03:36):
Das Spinnental ist voruebergehend wegen Ueberarbeitung
nicht erreichbar. Ich rechne mit ca. 4-6 Wochen.

  Rochus

-----------------------------------------------------------------------------



Re: Spinnen (Isnogood,  1. Sep 1999, 23:04:46):
~#! rn=Rochus rt=936029016 rg=d.ebene
~#! tid=936029016
Waer keinem aufgefallen ;)

-----------------------------------------------------------------------------



Kleine Klarstellung (Ark,  5. Okt 1999, 20:30:09):
Hi, das ominoese Buch, das einigen in der Galerie aufgefallen sein wird, ist
bis auf weiteres verschwunden. Noch kann keiner sagen, ob, und wann es wieder
auftauchen wird, doch meine Assistenten arbeiten daran. Offenbar hat sein
Erscheinen fuer Beunruhigung gesorgt. Sicherlich wird es dem MorgenGrauen
nicht fuer immer verborgen bleiben, und so harren wir erst einmal weiter auf
die Dinge, die da kommen werden.

Klar wie Klossbruehe, oder? :-)


              *** ARK * the * Magnificent ***


-----------------------------------------------------------------------------



Augsburger Puppenkiste meets MorgenGrauen (Ark, 29. Nov 1999, 23:29:14):

Iakuralea betrachtete den hageren alten Mann vor ihr und beschloss, dass
ihr die Miene nicht gefiel:
'Alexis, Du hast uns wirklich koestlichst unterhalten, doch wir koennen
 Dir nicht geben, was Du "Gold" oder "Geld" nennst, ganz einfach weil wir
 es nicht kennen ...'
Erschreckt sirrte sie etwas zurueck, als sich das Antlitz des Gauklers zu
verfinstern begann.
'Ihr verfluchten Drecksbienen, ihr luegt, ihr luegt ...
 Irgendetwas von Wert muesst ihr doch haben, ich ziehe doch nicht ganz zum
 Spass umher, verdammt, VERDAMMT !'
Das Geschrei des Mannes nahm beangstigende Formen an, er gestikulierte
wild in der Gegend herum und zeigte immer wieder beschuldigend auf sie,
ausgerechnet sie, Iakuralea, die doch so wenig dafuer tat, dass sich der
Puppenspieler aufregen musste, sie, die sie beschwichtigend auf ihn einge-
redet hatte, wie es ihr Amt als Fir'anaidha der Feen vorschrieb.
Der Frieden, das allererste Gebot der Feen, war hier ernsthaft in Gefahr,
Iakuralea sah bereits, wie sich die Stimmung bedrohlich gegen den alten
Mann aufzuheizen schien. Er schien sich dessen gar nicht bewusst zu sein,
immer weiter geiferte er gegen ihr Volk, beschimpfte es, drohte und wurde
dabei immer unmoeglicher.
Schon sah sie aus den Augenwinkeln, wie die sonst zarten Wangen Tilainas
zu gluehen begannen, ein gefaehrliches Rosa war das, was sich im Gesicht der
Ter'anaidha, der ergebenen Zauberin der Feen, abzeichnete.
Als die Stimmung ueberzuschwappen drohte, wusste Iakuralea, dass sie nun
unbedingt eingreifen musste. Doch ein schuechternes Stimmchen kam ihr zu-
vor. Es gehoerte Ainundhala, der kleinen Schuelerin Tilainas.
'Verehrter Alexis, Eure Muehen sollen nicht umsonst gewesen sein. Doch Ihr
 muesst wissen, dass wir Euch nicht in "Gold" oder "Geld" entlohnen koennen.
 Allerdings habe ich gehoert, dass in Eurer Welt die Magie nicht zum Alltag
 gehoert wie bei uns. Dinge, die mit ihr zu tun haben, werden in grossem
 Ansehen gehalten, ist das richtig ?'
Der alte Mann verstummte und sah sie muerrisch und misstrauisch an. Auch
der Ausdruck der Ter'anaidha hatte sich wieder etwas entspannt, zur immensen
Erleichterung Iakuraleas. Tilaina war offensichtlich gespannt, wie ihre
junge Schuelerin diese prekaere Situation meistern wollte.
Der schmutzige Mensch kratzte sich am Kopf:
'Also, was willst Du damit jetzt sagen, he ?'
Laechelnd zog Ainundhala einen kleinen Holzstab hervor, flog vor den Mann
und legte das Holzstueck zu seinen Fuessen nieder.
'Es ist etwas, was Euch Eure Arbeit nicht nur erleichtern kann, sondern
 sogar zur Perfektion bringt.'
Missmutig blickte Alexis auf den einfachen Stab.
'Ist das jetzt ein bloeder Trick von Euch oder was ? Wollt ihr mich jetzt
 als Dank verhexen oder was ?'
Wieder verdunkelte sich das Gesicht des Gauklers.
'Weit gefehlt, Mensch !'
Die herrische Stimme der Ter'anaidha durchschnitt die aengstliche Zurueck-
haltung der uebrigen Feen, die sich hier auf der Lichtung versammelt hatten,
um dem Menschen bei seiner Auffuehrung zuzusehen. Iakuralea sah, wie die
Hofzauberin vor den Puppenspieler flog. Sie hatte zweifelsohne den Holzstab
von Ainundhala erkannt und war dabei, die Situation nun in ihre eigenen
Haende zu nehmen.
'Dieser Stab wird Euch gute Dienste erweisen, denn er verwandelt nicht nur
 lebende Wesen zu Puppen, sondern erhaelt auch noch ihre Natur, so dass sie
 auch weiterhin lebensecht wirken.'
Spekulierend sah Tilaina den kritisch dreinblickenden Menschen an:
'Was meint Ihr, wie Eure Zuschauer erst in den Bann gezogen werden, wenn sie
 derartig perfekte Puppen sehen ? Nie mehr wieder muesst Ihr sie selbst er-
 schaffen, nie wieder werden sie durch irgendeine Nachlaessigkeit zerstoert.
 Denkt daran, Ihr muesst nur eine Person damit beruehren, schon wird sie zu
 Eurem Werkzeug. So solltet Ihr uns also dankbar sein, anstatt hier wuest
 herumzuschreien. Nun, nehmt Ihr das Geschenk an ?'
Es entstand eine lange Pause, in der sich die Stirn von Alexis in tiefe
Falten legte. Scheinbar versuchte er, den Wert des Stabes zu kalkulieren.
Seufzend blickte die Fir'anaidha beiseite. Sie kannte die Macht des Stabes,
den Ainundhala als Uebung in ihrer Ausbildung bei der Ter'anaidha erschuf.
Er wuerde unter der Herrschaft des alten Mannes sicher fuer Unmut unter den
Menschen sorgen. Andererseits war sichergestellt, dass er nach dessen Tod
wieder zu Tilaina zurueckkehren wuerde. Nunja, wenn das der Preis war, dass
der unmoegliche alte Mann die Feen unbehelligt liess, wuerde sie, Iakuralea,
es gutheissen.
Nach einer Weile erhellte sich die Miene des alten Mannes. Er grinste:
'Ich akzeptiere das Geschenk ...'


              *** ARK * the * Magnificent ***


-----------------------------------------------------------------------------



Dangge schoen ... (Ark, 29. Nov 1999, 23:29:52):

So, jetzt habt ihr wieder mal den Salat, eine neue Quest.
Leider lasse ich nach, hier werdet ihr es sehr schwer haben,
zu sterben. Hier geht es um Fragen und Forschen. Aber noch
ist nicht aller Tage abend :-)

Fuer das Bestehen der Quest ist eine miterlebte Auffuehrung
in Port Vain oder dem Elfendorf nicht relevant, hilfreich
allerdings vielleicht schon.

Noch ein Kommentar zum Einschlafen und Ende:
Einschlafen funktioniert wie normal, nur in den Sequenzen wird
der, der die Leitung verliert, an einer anderen Stelle wieder
aufwachen.
Ende in der Quest bedeutet, dass die Sachen des Spielers auch
an einer anderen Stelle liegen, wo sie logischerweise halt
hingehoeren.

Noch ein Hinweis (keine Abschreckung!):
Da erfahrungsgemaess am Anfang immer ein hoeheres Gedraenge
herrscht als nach einem Monat oder so, kann es schon mal zu
Ausbruechen an Scroll im Bild kommen :-)
Wen das ankotzt, einfach die Quest spaeter machen.

Dank geht an folgende Tester:
Zook, Morgonate, Calimera und Anacrion.

Ich wuensche viel Spass.


              *** ARK * the * Magnificent ***


-----------------------------------------------------------------------------



Re: Augsburger Puppenkiste meets MorgenGrauen (Lug, 30. Nov 1999, 23:30:37):
~#! rn=Ark rt=943914554 rg=d.ebene
~#! tid=943914554

Kann man die daemliche Labertasche, welche in PV erscheint jetzt wenigstens
killen?

Lieb
Lug

-----------------------------------------------------------------------------



Re: Dangge schoen ... (Lyra,  1. Dez 1999, 14:33:42):
~#! rn=Ark rt=943914592 rg=d.ebene
~#! tid=943914592
Wat soll den dat?
vor der Quest fehlten mir nur 7 APs zum Aufstieg in der Gilde. Bevor Muradhs
Turm kam, brauhte ich keine zusaetzlichen APs.
Wollt Ihr uns zum Questen zwingen?

Lyra die (naja) Todesmaschine

PS: Aehm, ich glaube, ich habe irgendwo ein <ironie on> und ein <ironie off>
vergessen *gruebel*

-----------------------------------------------------------------------------



Re: Re: Dangge schoen ... (Wurzel,  2. Dez 1999, 21:22:25):
~#! rn=Lyra rt=944055222 rg=d.ebene
~#! tid=943914592
bei einer so schoenen questankuendigung sollte euch eigentlich der appetit
wieder kommen, sowas durchzuspielen. ich finde es jedenfalls genial, wie ark
das macht... aeh, wann kommt die naechste? :)

wurzel

-----------------------------------------------------------------------------



Re^3: Dangge schoen ... (Ark,  2. Dez 1999, 21:32:05):
~#! rn=Wurzel rt=944166145 rg=d.ebene
~#! tid=943914592
Leider erst nach Windows 2000, denn da bin ich wieder der Alte, Spieler
toeten, Kills sammeln und so. Das heisst, wenn ich bis dahin noch lebe :-)
Achso, was ich noch loswerden wollte: Wurzel, Du Schleimer :) Muesstest
eigentlich Zook anhimmeln, er ist doch jetzt Questobermacker.


              *** ARK * the * Magnificent ***


-----------------------------------------------------------------------------



Re^4: Dangge schoen ... (Wim,  2. Dez 1999, 22:27:31):
~#! rn=Ark rt=944166725 rg=d.ebene
~#! tid=943914592
Jaja, in dieser Quest laesst Du Boing ja gnaediger Weise fuer Dich Kerben.
(Ein Insider, vielleicht findet ihr ja raus, was ich meine)

-----------------------------------------------------------------------------



Re^3: Dangge schoen ... (Jamalski,  7. Dez 1999, 15:08:43):
~#! rn=Wurzel rt=944166145 rg=d.ebene
~#! tid=943914592
Vielleicht war das auch eine Quest eines Magier der so krank ist, dass man
dort AP verliert!

Jamalski, in keine bestimmte Richtung schielend

-----------------------------------------------------------------------------



Re^4: Dangge schoen ... (Ark,  7. Dez 1999, 21:04:54):
~#! rn=Ark rt=944166725 rg=d.ebene
~#! tid=943914592
He, das waere ne Idee ... aber da hat wohl Balance was dagegen, oder? :)
Genauso gut kam uebrigens ne schuechterne Anfrage an, wie das zu bewerten sei,
wenn man den Spieler am Ende der Quest aus dramaturgischen Beweggruenden hopps
gehen laesst. Naja, wird wohl auch nix, schade :-)


              *** ARK * the * Magnificent ***


-----------------------------------------------------------------------------



Re^5: Dangge schoen ... (Silvana,  7. Dez 1999, 21:54:52):
~#! rn=Ark rt=944597094 rg=d.ebene
~#! tid=943914592
Wie? Man darf Spieler am Questende nicht sterben lassen?
Ich muss wohl noch mal mit Zook reden... ;-)

  Silvana (sieht sich mal wieder alles umprogrammieren)

-----------------------------------------------------------------------------



Re^6: Dangge schoen ... (Ark,  7. Dez 1999, 22:11:58):
~#! rn=Silvana rt=944600092 rg=d.ebene
~#! tid=943914592
Hm, das war nur eine Meinungsumfrage unter einer Spielerin. Ich darf
hinzufuegen, dass ich das schon relativ ernst nehme. Kann mir schon
vorstellen, dass sowas ein Heidiho geben wuerde. Gut, dass ich sowas nicht
entscheiden muss. Ihr Angeklagter, Zook ...


              *** ARK * the * Magnificent ***


-----------------------------------------------------------------------------



Re: Dangge schoen ... (Ark,  7. Dez 1999, 22:14:56):
~#! rn=Ark rt=943914592 rg=d.ebene
~#! tid=943914592
Hm, 141 Spieler in einer Woche. Ich glaube, das war zu leicht :-)
Gelobe Verschlimmbesserung ...


              *** ARK * the * Magnificent ***


-----------------------------------------------------------------------------



Re: Re: Dangge schoen ... (Lug,  8. Dez 1999, 00:56:39):
~#! rn=Ark rt=944601296 rg=d.ebene
~#! tid=943914592

Hm,

seit wann spricht was dagegen, Spieler am Ende der Quest umzubringen? Wenns
vorher klar ist, dann ist es doch voellig legitim.

Luschenhaufen
Lug

-----------------------------------------------------------------------------



Re^3: Dangge schoen ... (Nonne,  8. Dez 1999, 09:14:10):
~#! rn=Lug rt=944610999 rg=d.ebene
~#! tid=943914592
Dann wuerde ich aber vorschlagen, die Quest optional zu machen, sonst gibts
auf jeden Fall einen Aufruhr. Dann werden die Magier entmachtet und die Seher
uebernehmen das MG, man stelle sich das mal vor...

Nonne, will seine Macht behalten.

-----------------------------------------------------------------------------



Re^4: Dangge schoen ... (Zook,  8. Dez 1999, 14:54:25):
~#! rn=Nonne rt=944640850 rg=d.ebene
~#! tid=943914592
Zook lehnt sich entspannt zurueck und wartet mal was so geproggt wird... ;)))

-----------------------------------------------------------------------------



Re^5: Dangge schoen ... (Ark,  8. Dez 1999, 22:41:38):
~#! rn=Zook rt=944661265 rg=d.ebene
~#! tid=943914592
Hm, wenn ich das mal recht interpretiere, heisst das: ja, aber ...

Cool, dann mache ich mir viel Arbeit fuer Wenige, aber das waere es wert. Wer
hier nicht sterben will, ist eh fehl am Platz (starker Tobak, was? :-) ).


              *** ARK * the * Magnificent ***


-----------------------------------------------------------------------------



Re^6: Dangge schoen ... (Zook,  8. Dez 1999, 22:45:05):
~#! rn=Ark rt=944689298 rg=d.ebene
~#! tid=943914592
Hau rein, Ark! ;)

Grinsend, Zook.

-----------------------------------------------------------------------------



Re^7: Dangge schoen ... (Silvana,  8. Dez 1999, 22:48:21):
~#! rn=Zook rt=944689505 rg=d.ebene
~#! tid=943914592
Ich weiss gar nicht, was ihr wollt... Wir haben sogar ne Quest fuer die muss
man sterben, um sie zu beginnen. Wieso also nicht eine, fuer die mal sterben
muss, um sie zu bestehen...?

  Silvana (mal spielerfreundlich)

-----------------------------------------------------------------------------



Re^4: Dangge schoen ... (Lug,  8. Dez 1999, 23:56:53):
~#! rn=Nonne rt=944640850 rg=d.ebene
~#! tid=943914592

Dafuer.

Lug

-----------------------------------------------------------------------------



Re^4: Dangge schoen ... (Bambi,  9. Dez 1999, 11:10:34):
~#! rn=Nonne rt=944640850 rg=d.ebene
~#! tid=943914592
wenn man aus chaos austreten will, stirbt man auch.
Wieso regt sich darueber keiner auf?
Am Ende der Quest koennte man ja fake-sterben. Das waer ein Kompromiss, wenns
zur Quest passt, ueberhaupt zu sterben.

-----------------------------------------------------------------------------



Re^5: Dangge schoen ... (Deepblue,  9. Dez 1999, 12:18:53):
~#! rn=Bambi rt=944734234 rg=d.ebene
~#! tid=943914592
Jo, lasst einem das Inventar und dann iss alles gut

-----------------------------------------------------------------------------



Re^7: Dangge schoen ... (Jamalski,  9. Dez 1999, 13:33:50):
~#! rn=Zook rt=944689505 rg=d.ebene
~#! tid=943914592
Ich bin auch dafuer!
nach der Aussage eines Magiers, dass man erst dann vollwertig ist, wenn man
100 onlinestunden und mind. 50 Tode hat gehoert doch jeder Freitod
mitgenommen.
Irgendwie muss man ja seine Statussymbole auch anders anhaeufen als ein Key ;)

Jamalski: auch sinnloses Sterben bringt fame...

-----------------------------------------------------------------------------



Re^5: Dangge schoen ... (Jamalski,  9. Dez 1999, 13:37:37):
~#! rn=Bambi rt=944734234 rg=d.ebene
~#! tid=943914592
Wenn man ins Chaos Ein + Austritt muss man sterben. (sollte man zumindest) 
Fuer das Eintreten kann ich das verstehen. mMan muss ja seine verschmutzte
Huelle fuer die Reinheit des Chaos aufgeben. (Echte Chaoten werden sich an die
'wIdergeburt' erinnern)
Beim Austritt moechte ich das mal grundsaetzlich Chaotenwillkuer nennen, also
bei genauer ueberlegung auch ein sehr triftiger Grund!!!
Jamalski, sich jeder Zeit fuer Kruuolq opfernd, aber auch auf den Killstups
schielend.

-----------------------------------------------------------------------------



Re^6: Dangge schoen ... (Anakin, 10. Dez 1999, 14:28:19):
~#! rn=Jamalski rt=944743057 rg=d.ebene
~#! tid=943914592

Naja ganz frueher zu Beginn der Chaosgilde ist man ja heftigst
an den Erhoehungskaempfen in der Arena gestorben, Zardoz das Weichei
hat das ja vereinfacht.

Anakin.

-----------------------------------------------------------------------------



Re^5: Dangge schoen ... (Puk, 13. Dez 1999, 10:49:39):
~#! rn=Bambi rt=944734234 rg=d.ebene
~#! tid=943914592
das ist auch nur gerechtfertigt
wer das chaos verlsst und _nur_ einen tod abbekommt hat glueck gehabt :)
und zudem ist es auch noch (leider) nur fake

Puk (weicheier raus aus dem chaos und ab zu den Betschwestern)

-----------------------------------------------------------------------------



Re^6: Dangge schoen ... (Jamalski, 13. Dez 1999, 13:01:30):
~#! rn=Puk rt=945078579 rg=d.ebene
~#! tid=943914592
argl Puk!
Es ist doch echt nicht schoen, wenn Du alles in die MPA postest!
Da geht doch der ganze Ruf floeten und unsere Mags muessen wieder und wieder
die Balance ect bestechen, damit mal was durchkommt, was nicht nur 'ein fake'
ist!
Du verraetst bestimmt auch Zaubersprueche und erzaehlst Deinen Kindern am
25.12. das der Kerl gestern nicht der Weihnachtsmann, sondern ein bezahlter
BWL_Student war... :I

Wozu haben Gilden denn ihre eigenen Kanaele...

Jamalski, (Fake)Sterbe-Fan!

-----------------------------------------------------------------------------



Re^7: Dangge schoen ... (Yendi, 13. Dez 1999, 15:05:33):
~#! rn=Jamalski rt=945086490 rg=d.ebene
~#! tid=943914592
Weihnachtsmaenner sind Soziologie- oder Geschichtsstudenten,
die BWLer sind Aktienspekulanten.

YTY    ->schmarrn


-----------------------------------------------------------------------------



Re^7: Dangge schoen ... (Bierchen, 13. Dez 1999, 22:38:05):
~#! rn=Jamalski rt=945086490 rg=d.ebene
~#! tid=943914592
Oha,
und sowas von unseren "top"-chaoten!? Schande ueber Euch! Ich schlage Euch
vor, aus dieser Gilde auszutreten, und dann Eure Aussagen erneut zu
ueberpruefen! Verdammt, ist das peinlich! Fuer deratige Geruechte solltet ihr
eigentlich abgestuft werden. Mindestens auf Gildenlevel -666!
 - Bierchen -

-----------------------------------------------------------------------------



Re^6: Dangge schoen ... (Teddy, 14. Dez 1999, 17:10:49):
~#! rn=Puk rt=945078579 rg=d.ebene
~#! tid=943914592
Bist du GANZ sicher, das es nur ein Fake ist?
Hast du es selbst schon getestet?

Teddy, hatte da gewise Todesfolgen nach dem Test.


-----------------------------------------------------------------------------



Re^7: Dangge schoen ... (Teddy, 14. Dez 1999, 17:11:49):
~#! rn=Jamalski rt=945086490 rg=d.ebene
~#! tid=943914592
Du verraetst bestimmt auch Zaubersprueche und erzaehlst Deinen Kindern am   
25.12. das der Kerl gestern nicht der Weihnachtsmann, sondern ein bezahlter 
BWL_Student war... :I                                                       


Selbstverstaendlich!!!
Wozu ist man denn Chaot, wenn man nichtmal die eigenen Kinder taeglich mit
Grausamkeiten quaelt.

Teddy, boesartig, gemein und seit neuestem HART! ;-)

-----------------------------------------------------------------------------



Re^8: Dangge schoen ... (Lug, 14. Dez 1999, 23:14:38):
~#! rn=Teddy rt=945187909 rg=d.ebene
~#! tid=943914592
Hm,

Dauerlatte, Teddy?

Tss tss
Lug

-----------------------------------------------------------------------------



Re^8: Dangge schoen ... (Ender, 15. Dez 1999, 08:19:35):
~#! rn=Teddy rt=945187909 rg=d.ebene
~#! tid=943914592
Teddy nimmt Viagra.

-----------------------------------------------------------------------------



Re^9: Dangge schoen ... (Teddy, 15. Dez 1999, 18:30:29):
~#! rn=Lug rt=945209678 rg=d.ebene
~#! tid=943914592
Keine Ahnung, die Aussage stammt von Una, nicht von mir.

Teddy

-----------------------------------------------------------------------------



Re^10: Dangge schoen ... (Lug, 16. Dez 1999, 01:27:09):
~#! rn=Teddy rt=945279029 rg=d.ebene
~#! tid=943914592

Bezeichnend.

Seher
Lug

-----------------------------------------------------------------------------



Re^7: Dangge schoen ... (Stopdenbus, 25. Dez 1999, 22:00:35):
~#! rn=Anakin rt=944832499 rg=d.ebene
~#! tid=943914592
achja, das war noch toll, damals wurde man noch gefordert !
Stoppi erinnert sich noch gut dran, damals mit Bernhard Zardoz's
chaostestieleiche gepluendert zu haben ...

-----------------------------------------------------------------------------



Debug Puppenspieler (Ark, 22. Jan 2000, 14:31:55):
Hi, beim Durchscrollen des Abenteuerkanals bin ich auf einen kleinen Bug
gestossen, der verhinderte, dass man die Quest nochmal spielen konnte, ohne
dass es zwischendurch einen Crash geben musste. Das ist jetzt behoben. Man
sollte jetzt in der Lage sein, sie auch sofort nochmal zu spielen.
Wohlgemerkt, keiner wird dazu gezwungen :-)
Wenn es doch noch Probleme damit geben sollte, bitte Mail an mich mit der
dementsprechenden Stelle und einer Problembeschreibung.
Viel Spass wuenscht


              *** ARK * the * Magnificent ***


-----------------------------------------------------------------------------



Leseraum fertig! (Wurst,  2. Mar 2000, 22:33:49):

 Wie Susi Siebenscheich mitteilt, wurde der neue Leseraum in ihrem 
 Hotel  nach  laengeren  Renovierungsarbeiten nun  fertiggestellt. 
 Hotelgaeste und solche, die es werden  wollen, koennen  sich dort 
 kuenftig die Zeit vertreiben. Als  besonderes Highlight  wird das 
 Buch  ausgestellt, das fleissige  Arbeiter bei den  Erweiterungs-
 arbeiten in Tsunamis  Eismienen aus dem  ewigen Polareis geborgen 
 haben. Das Buch beschaeftigte bisher Archaeologen und Mythologen,
 die ein besonderes Geheimnis in ihm vermuten...

-----------------------------------------------------------------------------



Re: Leseraum fertig! (Ark,  4. Mar 2000, 16:49:53):
~#! rn=Wurst rt=952032829 rg=d.ebene
~#! tid=952032829
Tja, da hat sich Susi ein bisschen aergern muessen ueber das so schnell
aufgetauchte Buch, dass sie es erstmal wieder einsteckte. Nach einigem Hin und
Her hat sie es wieder ausgelegt. Allerdings weist sie darauf hin, dass sie das
Auftauchen in dieser Art missbilligt hat. Lassen wir uns das also als Lehre
dienen.

Blablabla.


              *** ARK * the * Magnificent ***


-----------------------------------------------------------------------------



Umhang (Ark, 27. Jul 2000, 21:00:39):
Hm, ich glaube, ich habe gar nicht angekuendigt, dass ein gewisser Umhang
abgeklemmt war. Egal, jetzt ist der Bug raus, und es gibt ihn wieder. Weiss
gar nicht, ob Sie es wussten ;^)
Zumindest einer weiss jetzt wohl Bescheid, glaube ich *g*


              *** ARK * the * Magnificent ***


-----------------------------------------------------------------------------



Pfui Spinne (Rochus,  5. Aug 2000, 22:32:12):
Die Ueberschrift sagt eigentlich alles :-)
Ihr koennt wieder entgifte ueben :-)

  Rochus

-----------------------------------------------------------------------------



Fussball. Igitt. (Humni, 14. Sep 2000, 20:48:43):
~#! on=Humni ot=968878004 og=entwicklung
Naja. Wer immer schon unbedingt ein Spiel wollte, auf das er nicht im
mindesten Einfluss nehmen kann, das niemanden interessiert, und wo
irgendwelche Typen irgend einem Ball hinterherrennen, kann das auch
im Morgengrauen tun.

Irgendwo noerdlich der Akademiestrasse tummeln sich
jetzt ein paar komische Typen in einem Stadion. Die
Spieler stammen aus allen Regionen des Morgengrauens. Das beste
daran ist natuerlich: Sie sind nicht gekauft und wechseln nie
die Vereine. Und derzeit machen sie nur Bloedsinn und schiessen
Eigentore. 

Aber das sollte sich in Zukunft aendern.
Und zwar ohne jegliches Zutun von Magier-Seite.

Also: Spielen kann man nichts. Aber zugucken. Aber das sin
Fussball-Fans doch eh gewohnt, oder??

CU Humni

-----------------------------------------------------------------------------



Re: Fussball. Igitt. (Ark, 14. Sep 2000, 20:49:37):
~#! on=Ark ot=968956430 og=entwicklung
~#! rn=Humni rt=968878004 rg=entwicklung
~#! tid=968878004
Hm. Und sowas wurde auch noch abgenommen. Tsts. Keine Fallen beim Betreten des
Stadions. Keine von hinten draengelnden Fans, die mit DT_SQUEEZE angreifen.
Keine groehlenden Fans, die mit DT_SOUND angreifen. Und dann sehe ich auch
keinen Fan, der einen verflucht, wenn seine Mannschaft verliert. Wer genehmigt
denn so eine Region? Das ... das ist mir viel zu friedfertig ;^)


              *** ARK * the * Magnificent ***


-----------------------------------------------------------------------------



Re: Fussball. Igitt. (Ark, 14. Sep 2000, 20:50:19):
~#! rn=Humni rt=968957323 rg=d.ebene
~#! tid=968957323
Vergiss es, meine Artikel verfolgen Dich auch nach dem Verlegen :-)


              *** ARK * the * Magnificent ***


-----------------------------------------------------------------------------



Spielerwuensche.. (Humni, 19. Sep 2000, 19:36:04):
..werden prompt erfuellt.

Die Hooligans bestizen jetzt tatsaechlich sowas wie Teamgeist.
Nur, dass sich hinterher keiner beschwert, und nur der Vollstaendigkeit
halber.

Humni

-----------------------------------------------------------------------------



Speedy (Tiamak, 22. Okt 2000, 17:01:45):
Mahlzeit!

Wegen eines Bugs im Speedy habe ich selbigen erst einmal deaktiviert.
Soll heissen: die Befehle des Speedy funktionieren nicht mehr.

Sobald Wurzel den Fehler behoben hat, stehen euch die Befehle natuerlich
wieder zur Verfuegung.


Tiamak

-----------------------------------------------------------------------------



Re: Speedy (Rardian, 25. Okt 2000, 14:44:49):
~#! rn=Tiamak rt=972226905 rg=d.ebene
~#! tid=972226905
Huch!
Hat den denn ueberhaupt jemand benutzt? ;)

Rar.

-----------------------------------------------------------------------------



Re: Re: Speedy (Liara, 25. Okt 2000, 14:46:31):
~#! rn=Rardian rt=972477889 rg=d.ebene
~#! tid=972226905
Nee. :-)
Aber Hauptsache man kann ueber ne Aenderung jammern. ;-)

Liara, Zwergenzauberine, jammert mal prophydingens

-----------------------------------------------------------------------------



Re: Re: Speedy (Karis, 25. Okt 2000, 14:47:39):
~#! rn=Rardian rt=972477889 rg=d.ebene
~#! tid=972226905
Klar benutzt den jemand. Ich zum Beispiel. Und ohne den Speedy
find ich nimmer heim. *sniff* 
Wuuuuuurzel!! Tu doch was!

Generaelchen Karis

-----------------------------------------------------------------------------



Re: Re: Speedy (Panic, 25. Okt 2000, 16:08:48):
~#! rn=Rardian rt=972477889 rg=d.ebene
~#! tid=972226905
och ganz am Anfang war der ganz lustig ;)

-----------------------------------------------------------------------------



Re^3: Speedy (Anatol, 25. Okt 2000, 16:36:36):
~#! rn=Panic rt=972482928 rg=d.ebene
~#! tid=972226905
speedy schlafe ein;n;n;teile gast1 mit bin durch

Ueber den Schaden, den das Ding frueher hat anrichten koennen, brauchen
wir uns, glaube ich, nicht wirklich zu unterhalten, oder? :o)

Anatol

-----------------------------------------------------------------------------



Re^3: Speedy (Hight, 25. Okt 2000, 22:52:06):
~#! rn=Panic rt=972482928 rg=d.ebene
~#! tid=972226905
hm frage fuer bloede ... was zum henker is das fuern teil ? und wo hab ich den
her ? warum hab ich den ? 

hight die weltnimmer verstehend

-----------------------------------------------------------------------------



Re^4: Speedy (Foobar, 25. Okt 2000, 23:08:01):
~#! rn=Hight rt=972507126 rg=d.ebene
~#! tid=972226905
Questbelohnung Williburg.

Foobar

-----------------------------------------------------------------------------



Re^4: Speedy (Matis, 26. Okt 2000, 00:25:53):
~#! rn=Hight rt=972507126 rg=d.ebene
~#! tid=972226905
Da frag ich mich doch glatt, wer die Quest fuer Dich gespielt hat ...

Matis

-----------------------------------------------------------------------------



Re^5: Speedy (Hight, 26. Okt 2000, 16:02:47):
~#! rn=Matis rt=972512753 rg=d.ebene
~#! tid=972226905
die hab ich mehrfach selber gespielt ... abba ich hab damals wohl net
mitbekommen das ich das ding gekricht hab

hight

-----------------------------------------------------------------------------



Re^6: Speedy (Samtpfote, 26. Okt 2000, 19:01:24):
~#! rn=Hight rt=972568967 rg=d.ebene
~#! tid=972226905
Vielleicht hast im KL-Skript (weia boese! :) wohl das was so passiert ist,
rausgegaggt hast? :o)
Samtpfote 
PS: bin da gespannt, wer das jetz ernst nimmt.... seufz

-----------------------------------------------------------------------------



Re^7: Speedy (Liara, 26. Okt 2000, 19:05:42):
~#! rn=Samtpfote rt=972579684 rg=d.ebene
~#! tid=972226905
Naja, Hight, das Dings bekommt man nicht einfach so ... ;-)
Eigentlich solltest Du Dich dran erinnern. *g*

LZ

-----------------------------------------------------------------------------



Re^8: Speedy (Hight, 26. Okt 2000, 20:01:41):
~#! rn=Liara rt=972579942 rg=d.ebene
~#! tid=972226905
jo jo ich wurde inzwischen hinlaenglich aufgeklaert ... vieleicht ging die
erinnerung daran einem froehlichen abend verlohren oder so 

hight

-----------------------------------------------------------------------------



Re^8: Speedy (Darkwing, 27. Okt 2000, 13:19:02):
~#! rn=Liara rt=972579942 rg=d.ebene
~#! tid=972226905
Die Questbelohnung gabs nicht immer, Leute die die Quest vorher schon hatten
haben die nachtraeglich bekommen. Stand zwar in der mpa, aber ansonsten hat
man das auch gut uebersehen koennen :)

-----------------------------------------------------------------------------



Re^9: Speedy (Atoz, 30. Okt 2000, 14:16:13):
~#! rn=Darkwing rt=972645542 rg=d.ebene
~#! tid=972226905
Oki und was ist mit Leuten (wie mir), die die Quest schon vorher hatten, die
MPA wohl damals nur ueberflogen haben, und immer noch nicht wissen, wie sie an
das Ding kommen?
Koennte man mich da mal per Mail drueber aufklaeren (und vor allem auch, was
es tut?)

Gruss, Atoz - langsam altersdement

-----------------------------------------------------------------------------



Re^10: Speedy (Gloinson, 30. Okt 2000, 14:17:53):
~#! rn=Atoz rt=972911773 rg=d.ebene
~#! tid=972226905
Erstens ist das Teil ja nun nicht mehr sooo attraktiv und zwotens hast Du Dich
sicher auch nicht so durch die Quest fragen muessen wie der Artikel klang,
oder?

Gloin(son)

-----------------------------------------------------------------------------



Re^11: Speedy (Atoz, 30. Okt 2000, 14:20:17):
~#! rn=Gloinson rt=972911873 rg=d.ebene
~#! tid=972226905
Hallo? Nicht richtig gelesen?
Ich war damals unter den Erstloesern, kannst dir also mal ausrechnen, wie
lange das her ist.
Und ausserdem bin ich im Moment inaktiv, will heissen, ich ueberfliege mal die
Zeitung und das wars. Ich habe nicht die Zeit mich stundenlang bei
irgendwelchen NPCs aufzuhalten nur um vielleicht eine Questbelohnung zu
kriegen, von der zu meiner Zeit nix bekannt war.
*grummel* Atoz

-----------------------------------------------------------------------------



Re^11: Speedy (Guildo,  2. Nov 2000, 09:52:00):
~#! rn=Gloinson rt=972911873 rg=d.ebene
~#! tid=972226905
Wieso soll das Ding nicht mehr soooo attraktiv sein? Gibt's da etwa etwas noch
besseres?

Gruss,
Guildo (Speedy-Benutzer)

-----------------------------------------------------------------------------



Re^12: Speedy (Hight,  2. Nov 2000, 11:09:48):
~#! rn=Guildo rt=973155120 rg=d.ebene
~#! tid=972226905
ja im wesentlichen 2 sachen 

1. TF

2. zMUD

gruss hight

-----------------------------------------------------------------------------



Re^13: Speedy (Guildo,  3. Nov 2000, 09:07:23):
~#! rn=Hight rt=973159788 rg=d.ebene
~#! tid=972226905
Ach, so'n neumodischer Kram!

Gruss,
Guildo (altmodisch (telnetter))

-----------------------------------------------------------------------------



Winter is coming ... (Ark, 20. Jan 2001, 14:12:33):
Meine Freunde ...

Mit tiefem Entsetzen muss ich berichten, dass der Winter ueber uns
hereingebrochen ist. Schon hat er einen Teil der Ebene, den Grimmswald,
erfasst, und ist im Begriff, seine klammen Finger nach allem auszustrecken,
was noch lebt. Ein tapferer Abenteurer - sein Name fiel leider meiner
Vergesslichkeit anheim - besuchte mich neulich, und versprach, dem Ganzen auf
den Grund zu gehen und zu berichten, was wirklich dort vorgeht. Lachend brach
er auf, dem weissen Tod trotzend ins Auge blickend, und ward nicht mehr
gesehen. Nachdem ich bereits ueber die seltsamen Vorgaenge im Hause der
Klopeks berichten musste - das liegt schon ueber ein Jahr zurueck - habe ich
das Gefuehl, dass das neuerliche Grausen, was mich taeglich ueberfaellt, in
der Naehe des verschneiten Hauses zu finden sein muesste, doch natuerlich mag
ich mich taeuschen.
Nun bleibt mir nur eines, zu hoffen, dass sich einige mutige Recken und
abenteuerlustige Amazonen aufmachen, um dem Schrecken ein Ende zu bereiten.
Wisset wohl, dies ist erst der Anfang der grossen Odyssee, der Winter hat sein
wahres haesslich kaltes Gesicht noch nicht vollstaendig enthuellt. Doch es ist
an der Zeit, ihm zu trotzen ...
Suchet, meine Freunde, suchet gruendlich.



              *** ARK * the * Magnificent ***


-----------------------------------------------------------------------------



Neues Gebiet(chen) (Ark, 20. Jan 2001, 14:14:21):
Ein paar Hinweise noch ("Anschnallpflichten"):

Nicht alleine herumspazieren (es sei denn, man ist "Superseher").

Gut herumschnueffeln. Es gibt 3 kleine Aufgaben zu loesen, nix Grosses, aber
immerhin ;^)

Vielleicht bringt ein Besuch im Haus ja wirklich etwas.

Und zuletzt: viel Spass.


              *** ARK * the * Magnificent ***


-----------------------------------------------------------------------------



Re: Neues Gebiet(chen) (Ark, 20. Jan 2001, 14:55:39):
~#! rn=Ark rt=979996461 rg=d.ebene
~#! tid=979996461
Weil es mir grade einfaellt: man muss, um das Gebiet zu finden, NICHT die
Quest "Das Auge des Teufels" gespielt haben. Macht es aber beim Suchen
vielleicht einfacher.


              *** ARK * the * Magnificent ***


-----------------------------------------------------------------------------



Myrndhar (Ark, 23. Jan 2001, 20:03:06):
Wie mir zu Ohren gekommen ist, vermisst man nun obige Waffe wirklich im Tempel
Kandris. Es waere lohnend, sie dort zurueckzubringen.

Danke an Tsunami fuer das fixe Implementieren.

Die Belohnung gibt es uebrigens nur einmal pro Spieler, da wird kein Heulen
und Zaehneklappern helfen, sie ist einfach zu gut :-) Fuer das Ganze gibt es
auch keine weiteren Punkte, nur falls sich da einer wundert.


              *** ARK * the * Magnificent ***


-----------------------------------------------------------------------------



Re: Myrndhar (Thufhir, 23. Jan 2001, 20:06:35):
~#! rn=Ark rt=980276586 rg=d.ebene
~#! tid=980276586
hmmm, wenn es wirklich ver misst wird: warum weiss arkshat noch nix davon? ;)
Thufhir, sich fragend was das sein soll... ;)

-----------------------------------------------------------------------------



Re: Re: Myrndhar (Ark, 23. Jan 2001, 20:08:56):
~#! rn=Thufhir rt=980276795 rg=d.ebene
~#! tid=980276586
Steht doch dabei. Und fuer ganz gewiefte Superseher: Wem hab ich wohl warum
gedankt? :)


              *** ARK * the * Magnificent ***


-----------------------------------------------------------------------------



Re: Re: Neues Gebiet(chen) (Ark, 23. Jan 2001, 21:50:21):
~#! rn=Ark rt=979998939 rg=d.ebene
~#! tid=979996461
Aeh, ich weiss nicht, welcher Erinnerungskiller mich gerade geritten hatte,
als ich den Artikel schrieb, also nochmal zur Klarstellung: man MUSS, um das
Gebiet zu finden, die Quest "Das Auge des Teufels" gespielt haben. Wenn man
raushat, wie, koennen auch andere hin. Klingt etwas unverstaendlich, ist aber
richtig :-)


              *** ARK * the * Magnificent ***


-----------------------------------------------------------------------------



Bugfix fuer Gebiet(chen) (Ark, 30. Jan 2001, 21:12:34):
Hi, der etwas peinliche Fehler beim Finden des Gebiet(chens) ist nun behoben.
Man kann nun wieder ungefaehrdet (von FIRZGen) die Gegend betreten. Dank an
Tilly fuer's Mitreparieren. Bei der Gelegenheit hat Ilona auch noch ein
bisschen Ansprechkosmetik abbekommen, sollte nun einfacher sein.


              *** ARK * the * Magnificent ***


-----------------------------------------------------------------------------



Rittergut (Schleicher, 25. Mar 2001, 01:30:21):
Wie mir zu Ohren gekommen ist sind in meinen Keller Wesen der
Kerkerdimensionen eingedrungen! Untotes Gesocks irgendwie... keine Ahnung wie
die dort hingekommen sind, aber nu sind sie da, und Spieler unter dem
Seher-Level verspeisen diese Viecher im Halbschlaf! Also seit gewarnt, lasst
die Luke zu und ihr lebt weiter, oben ist es doch auch ganz nett, und selbst
Zwerge sollen schon beim baden gesichtet worden sein...

Schleicher der Warner von Port Vain

-----------------------------------------------------------------------------



Re: Rittergut (Ark, 28. Mar 2001, 20:25:47):
~#! rn=Schleicher rt=985480221 rg=d.ebene
~#! tid=985480221
Das Gesocks hat sich erst einmal verzogen. Es ist allerdings nicht
auszuschliessen, dass es irgendwann wiederkommt.


              *** ARK * the * Magnificent ***


-----------------------------------------------------------------------------



Tonfa (Ark,  6. Jun 2001, 21:30:45):
So, der lustige Bug sollte (lt. eines tatkraeftigen, faehigen und irgendwie
und irgendwo auch zustaendigen ;^) ) Magiers erst einmal behoben sein. Bei
neuen Tonfas. Also nichts wie ab ins Vergnuegen.
Danke an Tilly, der etwas mehr Grips reingesteckt hat als ich :-)


              *** ARK * the * Magnificent ***


-----------------------------------------------------------------------------



Fuer Lesesuechtige ... (Ark,  3. Aug 2001, 21:31:05):
Ich habe gehoert, dass einige teuflische Pflanzen jetzt schneller nachwachsen.
Fuer Bluemchenpfluecker allerdings nicht unbedingt eine gute Nachricht.




HAEH?




              *** ARK * the * Magnificent ***


-----------------------------------------------------------------------------



Ich bin bissig ... (Ark, 13. Aug 2001, 19:36:30):
... und daher sollten herumfliegende Wunden ab sofort der Vergangenheit
angehoeren. Sollte dies wider Erwarten doch nicht so eintreten: sachdienliche
Hinweise nimmt jeder Magier Eures Vertrauens an. Wozu ein kurzes
Partygespraech doch nuetzlich sein kann.


              *** ARK * the * Magnificent ***


-----------------------------------------------------------------------------



Der Fluch des Sommers (Ark, 14. Aug 2001, 12:17:47):
Besorgte Mitbuerger von PortVain, ich wende mich an euch, um einer Panik mit
entschlossenen, wenn auch von Furcht gepraegten Worten entgegenzutreten.
Besucher werden unsere geliebte Stadt heimsuchen, sie sind fuer den kleinen
Mann von nebenan noch nicht sichtbar, doch sie naehern sich der Stadt, ich
habe es selbst gesehen. Wehe, wenn sie irgendwann einmal zahlreicher werden,
denn dann wird ein Klatschen und Wehgeschrei anheben. So seid nur gewarnt vor
der Gefahr aus einer anderen Welt, die ihr, den Goettern sei Dank, zumeist
nicht wahrnehmen koennt.

Euer Erster Beisitzer der Stadtratskommision zur Untersuchung Chaotischer
Handlungen an rechtschaffenen Dingen (SUCHarD)


              *** ARK * the * Magnificent ***


-----------------------------------------------------------------------------



Re: Der Fluch des Sommers (Karis, 14. Aug 2001, 12:23:42):
~#! rn=Ark rt=997784267 rg=d.ebene
~#! tid=997784267
Erst Todesfallen in Portugal und jetzt auch noch Port Vain vermint...
Man koennte sagen, Ark schafft es, das Sommerloch 
zu stopfen :)

Karis, findet, dass sich Ark seinen Urlaub redlich verdient hat und 
faehrt bestimmt nicht nach Portugal ;)

-----------------------------------------------------------------------------



Re: Re: Der Fluch des Sommers (Ark, 14. Aug 2001, 12:38:15):
~#! rn=Karis rt=997784622 rg=d.ebene
~#! tid=997784267
Doch, denn da bin ich vor denen sicher :-)

Auch vor Muddern *g*


              *** ARK * the * Magnificent ***


-----------------------------------------------------------------------------



Fehlende Hilfeseite (Montanus, 23. Aug 2001, 19:00:21):

Nach dem Loesen der Amaryllis-Quest (nicht verwandt mit einem
namen-abkupferndem Suedstaaten-Magier) bekommt man ja einen netten Zettel und
die emote-Faehigkeit.
Nun steht auf dem Zettel:

Alles weitere mit 'hilfe emote' oder 'hilfe gemote'.  

Schonmal 'hilfe gemote' probiert?
"Dazu ist keine Hilfe verfuegbar."

Hmmmm. :-)

Vielleicht koennte ja sich irgendein Perfektionist dazu herablassen, entweder
die manpage wieder anzuhaengen oder den Zettel zu aktualisieren? ;-)

-----------------------------------------------------------------------------



Re: Re: Etliche Typos ausgemerzt ... (Boing, 12. Dez 2001, 18:03:41):
~#! on=Anatol ot=1008176563 og=d.gebirge
~#! rn=Bambi rt=1008175671 rg=d.gebirge
~#! tid=1008173707
Schoen. Und jetzt mach' im Neandertal weiter. ]:^>

Anatol - doing by delegating :)

-----------------------------------------------------------------------------



Re^3: Etliche Typos ausgemerzt ... (Boing, 12. Dez 2001, 18:04:12):
~#! rn=Boing rt=1008176621 rg=d.ebene
~#! tid=1008173707
Ark, ich glaub das war fuer Dich ... :)
  Boing

-----------------------------------------------------------------------------



farbenfrohes Mud (Ragnaroek, 10. Jan 2002, 20:13:31):

Aufgrund massiver Beanstandung des Farbtrichters in Kantharr durch
einen Spieler, der darin einen Fehler gefunden zu haben glaubt und 
sich auch nach laengeren Disskussionen (zu denen ich momentan weder 
Zeit noch Lust habe) beruhigen liess, habe ich den Trichter abgehaengt. 
Aus Zeitmangel wird er deshalb vorerst wohl auch abgehaengt bleiben.

::ragnaroek

-----------------------------------------------------------------------------



Re: farbenfrohes Mud (Foobar, 10. Jan 2002, 20:14:07):
~#! rn=Ragnaroek rt=1010690011 rg=d.ebene
~#! tid=1010690011
*argl*

Foobar

-----------------------------------------------------------------------------



Re: Re: farbenfrohes Mud (Liara, 10. Jan 2002, 20:14:51):
~#! rn=Foobar rt=1010690047 rg=d.ebene
~#! tid=1010690011
Namen ...
Sie war's, er war's, er war's ... ?

ZZL, kauft schonma nen Paeckchen Steine :-)

-----------------------------------------------------------------------------



Re^3: farbenfrohes Mud (Cuchullin, 10. Jan 2002, 20:15:27):
~#! rn=Liara rt=1010690091 rg=d.ebene
~#! tid=1010690011
Jetzt muss ich das tatsaechlich in ein Log packen. Wie ich das hasse,
Gespraeche mit unsichtbaren Magiern nachtraeglich zu rekonstruieren...

Cuchullin war's.


-----------------------------------------------------------------------------



Re^4: farbenfrohes Mud (Amaryllis, 10. Jan 2002, 20:23:34):
~#! rn=Cuchullin rt=1010690127 rg=d.ebene
~#! tid=1010690011
Wenn Du sonst keine Probleme hast...

Ama*, empfiehlt ein "ignoriere trichter" oder "ignoriere farbe", da sie
zumindest das Ding weiter benutzen wird.

-----------------------------------------------------------------------------



Re: farbenfrohes Mud (Morgoth, 10. Jan 2002, 21:42:21):
~#! rn=Ragnaroek rt=1010690011 rg=d.ebene
~#! tid=1010690011
Geil, danke !

M*

-----------------------------------------------------------------------------



Re: Re: farbenfrohes Mud (Noki, 10. Jan 2002, 21:50:32):
~#! rn=Morgoth rt=1010695341 rg=d.ebene
~#! tid=1010690011
Warum denn das? Ich versteh wirklich nicht, was es dafuer  fuer Gruende geben
kann?!

Weg mit allen Gimmicks, irgendwer ist doch immer genervt. (Nisch wahr, M*?)

Noki, geht sich einen Trichter clonen

-----------------------------------------------------------------------------



Re^3: farbenfrohes Mud (Grimmborn, 10. Jan 2002, 23:48:09):
~#! rn=Noki rt=1010695832 rg=d.ebene
~#! tid=1010690011
Sobald das Teil "ignoriere rufe" respektiert, wie man das intuitiv erwarten
sollte, habe ich absolut nichts dagegen.

GdA

-----------------------------------------------------------------------------



Re^4: farbenfrohes Mud (Patryn, 11. Jan 2002, 06:57:04):
~#! rn=Grimmborn rt=1010702889 rg=d.ebene
~#! tid=1010690011
ich hab auch nich lust fuer jedes neues tool ein neues ignoriere zu
schreiben. davon abgesehen war ich zwar eh schon immer gegen dieses teil,
aber andererseits wurde es gluecklicherweise auch nicht uebertrieben und
somit kann ich nicht grad behaupten, es haette mich genervt :)

-- 
patryn

-----------------------------------------------------------------------------



Re^5: farbenfrohes Mud (Cuchullin, 11. Jan 2002, 13:01:29):
~#! rn=Patryn rt=1010728624 rg=d.ebene
~#! tid=1010690011
MICH nervt es ein wenig, dass der Magier in der Zeitung behauptet,
dass da kein Bug gewesen sei. Vielleicht hat er ja recht und es 
ist _kein_ Bug, wenn ein Objekt Ansifarbcodierungen an Spieler
schickt, deren Terminaleinstellung sich ausdruecklich dagegen 
ausspricht ("hilfe stty").

Aber ich haette das gern geklaert, bevor ich oeffentlich zum 
Spielverderber erklaert werde.

Cuchullin

-----------------------------------------------------------------------------



Re^6: farbenfrohes Mud (Silvana, 11. Jan 2002, 13:05:20):
~#! rn=Cuchullin rt=1010750489 rg=d.ebene
~#! tid=1010690011
Eine Abfrage (und Beruecksichtigung) der Terminaleinstellung des empfangenden
Spielers ist bei der Uebertragung von Farbcodes absolut Pflicht.

  Silvana (klarstellend)

-----------------------------------------------------------------------------



Re^7: farbenfrohes Mud (Foobar, 11. Jan 2002, 13:11:32):
~#! rn=Silvana rt=1010750720 rg=d.ebene
~#! tid=1010690011
Falls ich das richtig gesehen habe, erfuellt ein gewisser ewiger Guertel diese
Anforderungen ebenfalls nicht.

Ich fordere sofortige Abhaengung.

Foobar

PS: Man moege mich berichtigen, falls ich hier einem Irrtum aufsitze

-----------------------------------------------------------------------------



Re^8: farbenfrohes Mud (Wurzel, 11. Jan 2002, 13:14:46):
~#! rn=Foobar rt=1010751092 rg=d.ebene
~#! tid=1010690011
habe mir gerade mal den code von dem ominoesen trichter angesehen, und er
nimmt absolut ruecksicht auf die tty-einstellungen. was also hat da nicht
funktioniert?

-----------------------------------------------------------------------------



Re^8: farbenfrohes Mud (Patryn, 11. Jan 2002, 13:14:58):
~#! rn=Foobar rt=1010751092 rg=d.ebene
~#! tid=1010690011
weiss zwar nich warum du hier rumstaenkern musst, aber danke fuer den
bughinweis. den guertel muss man ja im uebrigen nicht nutzen...

-- 
patryn

-----------------------------------------------------------------------------



Re^8: farbenfrohes Mud (Patryn, 11. Jan 2002, 13:23:46):
~#! rn=Foobar rt=1010751092 rg=d.ebene
~#! tid=1010690011
und nun also *fixed*

-- 
patryn

-----------------------------------------------------------------------------



Re^9: farbenfrohes Mud (Boing, 11. Jan 2002, 15:01:43):
~#! rn=Patryn rt=1010751826 rg=d.ebene
~#! tid=1010690011
Ausserdem hat Anatol wahrscheinlich keineswegs abhaengung gefordert 
(kann er in seiner Position ja auch gar nicht *g*) sondern wollte den
Bug gefixed sehen. Dass Ragnaroek dann gleich abhaengt ist ja wohl kaum
Anatol zuzuschreiben.
  Boing

-----------------------------------------------------------------------------



Re^10: farbenfrohes Mud (Anthea, 11. Jan 2002, 15:04:05):
~#! rn=Boing rt=1010757703 rg=d.ebene
~#! tid=1010690011
Na gut. Vielleicht ist Anatol nicht ganz unschuldig. Duerfen wir ihn nicht
trotzdem ein bisschen aufhaengen? ;)

-----------------------------------------------------------------------------



Re^3: farbenfrohes Mud (Morgoth, 12. Jan 2002, 00:51:56):
~#! rn=Noki rt=1010695832 rg=d.ebene
~#! tid=1010690011
Muss ich dich irgendwie kennen?

M*

-----------------------------------------------------------------------------



Re^4: farbenfrohes Mud (Noki, 12. Jan 2002, 10:02:18):
~#! rn=Morgoth rt=1010793116 rg=d.ebene
~#! tid=1010690011
Du hast irgendwann darauf verzichtet mich zu kennen, indem Du mich in Deine
"ignore"-Liste genommen hast. Ich weiss heute nicht, warum. Vielleicht wegen
eines "rufe" zuviel? Schade, dass Du mir nie gesagt hast, warum.
Vielleicht haette ich mich ja sogar entschuldigt.
Noki

-----------------------------------------------------------------------------



Re^5: farbenfrohes Mud (Morgoth, 12. Jan 2002, 13:59:46):
~#! rn=Noki rt=1010826138 rg=d.ebene
~#! tid=1010690011
Hmm, war an dem tag als Du die Sam's Pfeife Quest gemacht hast (26.02.01) und
ich denke es waren ein paar "rufe" zuviel.

M*

-----------------------------------------------------------------------------



Re^6: farbenfrohes Mud (Elberet, 12. Jan 2002, 14:02:10):
~#! rn=Morgoth rt=1010840386 rg=d.ebene
~#! tid=1010690011
wow, so genau weisst du das noch? *staun

-----------------------------------------------------------------------------



Re^7: farbenfrohes Mud (Vanion, 12. Jan 2002, 14:04:15):
~#! rn=Elberet rt=1010840530 rg=d.ebene
~#! tid=1010690011
Gutes Gedaechtnis (Logfile) is alles :)

V*'s reicht leider nur bis zum 14.2.01 zurueck.

-----------------------------------------------------------------------------



Re^7: farbenfrohes Mud (Morgoth, 12. Jan 2002, 14:04:16):
~#! rn=Elberet rt=1010840530 rg=d.ebene
~#! tid=1010690011
Lueckenlose Logfiles seit dem 16.5.98 :)
Was meinst Du warum mein "Workroom" bigbro heisst ;)

M*

-----------------------------------------------------------------------------



Re^8: farbenfrohes Mud (Elberet, 12. Jan 2002, 14:05:10):
~#! rn=Morgoth rt=1010840656 rg=d.ebene
~#! tid=1010690011
ich hab eigentlich nix an logfile
ob das ein fehler war?
vielleicht koennt ich dann auch die quests mit zweities besser spielen ;)

-----------------------------------------------------------------------------



Re^9: farbenfrohes Mud (Croft, 12. Jan 2002, 14:07:40):
~#! rn=Elberet rt=1010840710 rg=d.ebene
~#! tid=1010690011
Das waer ja langweilig ;-)

-----------------------------------------------------------------------------



Re: farbenfrohes Mud (Ragnaroek, 12. Jan 2002, 18:36:13):
~#! rn=Ragnaroek rt=1010690011 rg=d.ebene
~#! tid=1010690011

Moin Mudder!

Nachdem der Protest und das Feedback wg. des Trichters an mich jetzt doch
viel groesser war, als ich das am Anfang vermutet hatte, hab ich ihn nun
kurzerhand doch wieder angehaengt. Und obwohl ich nach wie vor behaupte, 
dass KEIN Fehler in dem Ding war (jeder Magier kann sich hiervon ueberzeugen),
hab ich mir bei dieser Gelegenheit doch gleich die Zeit genommen, ihn 
etwas zu ueberarbeiten und dabei fast komplett neu zu schreiben. 
Fuer den Spieler haben sich dabei nur ein paar unwesentliche Dinge geaendert, 
er bietet jetzt noch ein paar Moeglichkeiten mehr und ist auch nicht mehr 
ganz so teuer in der Anwendung. (Irgend einen Nutzen musste das ganze doch
haben).

Fuer alle, die nicht wissen, was es mit dem 'TTY' auf sich hat, sei hier
nochmal auf 'hilfe stty' verwiesen und ein 'stty ansi' empfohlen :o)

::ragnaroek

-----------------------------------------------------------------------------



Re: farbenfrohes Mud (Cuchullin, 12. Jan 2002, 21:22:14):
~#! rn=Ragnaroek rt=1010690011 rg=d.ebene
~#! tid=1010690011

   "warum nimmst du denn dann nicht 'dumb'? ;) oder
   ignorierst ihn, bzw. 'farbe'? .....'vt100' is die
   standard-einstellung, damit wuerde der trichter
   praktisch witzlos"

   
Mit dieser Einstellung taete ich auch keinen Bug sehen.

Cu*

-----------------------------------------------------------------------------



Re: Re: farbenfrohes Mud (Bambi, 12. Jan 2002, 21:22:50):
~#! rn=Cuchullin rt=1010866934 rg=d.ebene
~#! tid=1010690011
Der Trichter _ist_ witzlos. ;)

-----------------------------------------------------------------------------



Re: Re: farbenfrohes Mud (Ragnaroek, 12. Jan 2002, 21:52:10):
~#! rn=Cuchullin rt=1010866934 rg=d.ebene
~#! tid=1010690011

Kennt jemand die Situation, in der er (RL) seinen Wagen 15cm neben der
Markierung geparkt hat und als er zu seinem Fahrzeug zurueckkommt ein
aufgebrachter Rentner schimpfend danebensteht? Man sollte glauben, 
diesen Misstand, der eigentlich niemanden behindert oder stoert, mit 
ein paar freundlichen Worten und Behebung desselben wieder in Ordnung 
bringen zu koennen - doch weit gefehlt. Die tobende Gestalt am Strassenrand 
laeuft dunkelrot an, tobt und schreit, notiert sich die Fahrzeugnummer, 
bedroht und beschimpft den Fahrer.

Nun.... wir sollten froh sein, selbst hier im MUD solche Leute zu haben, 
denn im Grunde sorgen sie doch nur fuer Recht und Ordnung.

In diesem Sinne: 
Danke Cuchullin fuer Deinen Einsatz und Deine Hilfe! 

::ragnaroek

-----------------------------------------------------------------------------



Re^3: farbenfrohes Mud (Vanion, 12. Jan 2002, 21:54:34):
~#! rn=Ragnaroek rt=1010868730 rg=d.ebene
~#! tid=1010690011
Du bist echt niedlich.

V*

-----------------------------------------------------------------------------



Re^3: farbenfrohes Mud (Cuchullin, 12. Jan 2002, 22:00:06):
~#! rn=Ragnaroek rt=1010868730 rg=d.ebene
~#! tid=1010690011
Und dann war da noch der, der mit seinem Auto den Gehweg zuparkte.
Als ein freundlicher Rentner ihn ansprach und auf einen Kinderwagen
deutete, meinte der Fahrer: "Ist doch kein Problem. Auf der Strasse
ist genug Platz fuer alle..."

Danke fuer das Demonstrieren Deiner Einparkkuenste, Ragnaroek.

Cuch - will auch niedlich sein ;)


-----------------------------------------------------------------------------



Re^4: farbenfrohes Mud (Foobar, 12. Jan 2002, 22:00:46):
~#! rn=Cuchullin rt=1010869206 rg=d.ebene
~#! tid=1010690011
Mittlerweile bin ich mir echt nicht mehr sicher, wer von Euch beiden alberner
reagiert.

Foobar

-----------------------------------------------------------------------------



Re^4: farbenfrohes Mud (Amaryllis, 12. Jan 2002, 22:07:27):
~#! rn=Cuchullin rt=1010869206 rg=d.ebene
~#! tid=1010690011
Freundliche Rentner, die einen "Fehlparker" dezent und nett darauf hinweisen?

Wo lebst Du? :-)

Ama*, bisher keine solchen Erfahrungen gemacht (kann einparken), aber in
dieser Richtung bisher nur Negativbeispiele aus Ihrem Bekanntenkreis gehoert.

-----------------------------------------------------------------------------



Re^5: farbenfrohes Mud (Silvana, 12. Jan 2002, 22:07:31):
~#! rn=Foobar rt=1010869246 rg=d.ebene
~#! tid=1010690011
Aus "hilfe stty":
     `vt100'   das Terminal ist einfarbig, kennt aber Fettschrift u.ae.

Daran sollten sich dann auch alle Objekte halten. Alles andere waere ein Bug.
Deswegen schrei ich bestimmt nicht nach abhaengen, aber ich wuerde den Urheber
schon bitten, den Bug zu beheben. 
DISCLAIMER: Das obige dient nur zur Information und ist keine Wertung. Ich hab
keine Ahnung, ob der Trichter das so beruecksichtigt oder nicht oder ob er es
beruecksichtigt hat oder nicht. Ich ignorier das gute Stueck wie "rufe" und
die meisten shouts auch. Und ich hab auch keine Lust nachzuschaun. 

  Silvana (informierend, nicht niedlich)

-----------------------------------------------------------------------------



Re^6: farbenfrohes Mud (Gnome, 12. Jan 2002, 22:09:11):
~#! rn=Silvana rt=1010869651 rg=d.ebene
~#! tid=1010690011
wie schoen zu sehen, dass hier im MG aus jeder muecke ein elefant wird.
langweilt ihr euch?

-----------------------------------------------------------------------------



Re^6: farbenfrohes Mud (Foobar, 12. Jan 2002, 22:11:35):
~#! rn=Silvana rt=1010869651 rg=d.ebene
~#! tid=1010690011
Hm.

Ich hatte gehofft, dass meine zugegebenermassen extrem ueberzogene Forderung
nach der sofortigen Abhaengung mindestens genau so albern wirkt wie der Rest
des Threads.

Aber in Zukunft werde ich solche Sachen aber dann doch wohl besser mit einem
":o)" kennzeichnen ;o)

-----------------------------------------------------------------------------



Re^6: farbenfrohes Mud (Noki, 13. Jan 2002, 13:39:29):
~#! rn=Morgoth rt=1010840386 rg=d.ebene
~#! tid=1010690011
Nun, dann moechte ich es nicht saeumen, und mich fuer meine "Rufe" am 26.02.01
bei Dir und auch allen anderen Spielern, die das doch negativ im Gedaechtnis
haben entschuldigen.
Ich bin ansonsten nur selten ein "Rufer" und recht zurueckhaltend mit der
Bellaestigung meiner Mitspieler. Einen Wiederholungstaeter muss man mich wohl
nicht nennen.
Ansonsten zitiere ich die Hilfe:
Ansonsten zitiere ich die Hilfe:
      `ignoriere <spieler>'
      Saemtliche Meldungen, die der Spieler <spieler> erzeugt, werden
unterdrueckt. Dies ist eine sehr drastische Massnahme!

Ob also ein "Rufe" zuviel einen davon entbindet mit dem Spieler zu reden, und
damit vielleicht im Sinne aller korrigierend auf sein Verhalten einzuwirken,
und man also besser gleich ignoriert, stelle ich anheim.

Noki

-----------------------------------------------------------------------------



Re^7: farbenfrohes Mud (Key, 14. Jan 2002, 09:29:25):
~#! rn=Noki rt=1010925569 rg=d.ebene
~#! tid=1010690011
Ach so wichtig ist Morgoth nicht, dass man so vehemment darum kaempfen muesste
nicht mehr ignoriert zu werden.

Ausserdem traegt er Zoepfe! ;)
Key

-----------------------------------------------------------------------------



Re^8: farbenfrohes Mud (Zarniya, 14. Jan 2002, 09:40:50):
~#! rn=Key rt=1010996965 rg=d.ebene
~#! tid=1010690011
Hi, 

also ich will auch mal, auch wenn Key um das Gegenteil bettelt, einen
revolutionaeren konstruktiven Loesungsvorschlag wegen des Trichters machen:

Der Progger heisst ja nun Ragnaroek. Da ich seit einer Woche behaupten kann,
das geradezu geniale, aber auch revolutionaere Werk "Fool on the Hill" von
Matt Ruff gelesen zu haben, und ich mich eindeutigst mit der Figur Ragnaroek
identifizieren kann, bin ich empoert ueber den Trichter. Farben an sich
widersprechen aber auch sowas von extrem jeglicher Intension dieser Figur,
dass ich hier fordere (Jau... hab zwar keine Rechte, aber wenn ich mich immer
gewaehlt und berechtigt ausdruecken wollte, dann muesste ich Anatol heissen)
die Loeschung nicht nur des Trichters, sondern direkt des kompletten Spielers
Ragnaroek, da er offensichtlich den Namen eines von mir geliebten Charakters
missbraucht, gar schaendet! Ragnaroek und "Farben"! PAH!!! Sowas aber auch...

Marc

-----------------------------------------------------------------------------



Re^9: farbenfrohes Mud (Ragnaroek, 14. Jan 2002, 17:56:31):
~#! rn=Zarniya rt=1010997650 rg=d.ebene
~#! tid=1010690011

Moin Yantro! *giggle*

Leider muss ich dich enttaeuschen: Der Progger von dem Ding heisst nicht
Ragnaroek sondern Wurst, ich habe seine Objekte allenfalls uebernommen.
Deinem 'Ragnaroek und "Farben"! PAH!!!' kann ich allerdings nur zustimmen,
und wer ich kennt, weiss das :o)
Und im Uebrigen verkoerpere ich hier etwas, von dem die Germanen seit 
2000 Jahren sprechen, und keine fragwuerdige Romanfigur. (Auch wenn das
Buch zweifellos gut ist)

::ragnaroek

-----------------------------------------------------------------------------



Re^10: farbenfrohes Mud (Grimmborn, 14. Jan 2002, 18:23:54):
~#! rn=Ragnaroek rt=1011027391 rg=d.ebene
~#! tid=1010690011
Es ist doch immer herzerfrischend wenn jemand Mythologien so
durcheinandermischt. Ja, auch die Germanen haben von "Ragnaroek" geredet, aber
wenn Du Dich auf die beziehst solltest Du Dich "Goetterdaemmerung" nennen.
Erfunden haben das ganze auch nicht die Germanen.

GdA

-----------------------------------------------------------------------------



Re^11: farbenfrohes Mud (Foobar, 14. Jan 2002, 18:27:30):
~#! rn=Grimmborn rt=1011029034 rg=d.ebene
~#! tid=1010690011
"Goetterdaemmerung" ist zu lang.

Foobar

-----------------------------------------------------------------------------



Re^12: farbenfrohes Mud (Elberet, 14. Jan 2002, 18:29:32):
~#! rn=Foobar rt=1011029250 rg=d.ebene
~#! tid=1010690011
die frage ist doch, was sind die germanen, oder?

-----------------------------------------------------------------------------



Re^13: farbenfrohes Mud (Wurzel, 15. Jan 2002, 00:05:26):
~#! rn=Elberet rt=1011029372 rg=d.ebene
~#! tid=1010690011
grimmborn hat da eben eigene vorstellungen. das ist eher wagner als altes
germanisch, aber dafuer ist er ja auch chemiker.
ohne jetzt linguist zu sein, behaupte ich mal, dass keiner von uns etwas
verstehen wuerde, wenn uns jemand auf althochdeutsch oder in einer noch
frueheren variante was von seiner mythologie erzaehlt. ragnaroek kommt aus
der edda, und die ist meines wissens in irgend einer nordgermanischen sprache
geschrieben, nicht auf neuhochdeutsch.

wurzel

-----------------------------------------------------------------------------



Re^14: farbenfrohes Mud (Grimmborn, 15. Jan 2002, 00:19:28):
~#! rn=Wurzel rt=1011049526 rg=d.ebene
~#! tid=1010690011
Aeh, die Edda ist tatsaechlich altnordisch, die entsprechenden Mythen sind
nordisch. Klar, wenn Du die Wikinger als "Nordgermanen" bezeichnest passt das
natuerlich, aber das halte ich fuer weniger gebraeuchlich. Dass die
germanische Version "Goetterdaemmerung" sei habe ich ein paar (schwedischen)
google-Hits entnommen, ich bin fuer diesen Sagenkreis wirklich kein Experte.
Dass normale Menschen kein althochdeutsch verstehen ist wohl wahr, schon mit
fluessig gesprochenem mittelhochdeutsch haetten wir massivste Probleme. 

GdA

-----------------------------------------------------------------------------



Re^15: farbenfrohes Mud (Ragnaroek, 15. Jan 2002, 00:22:47):
~#! rn=Grimmborn rt=1011050368 rg=d.ebene
~#! tid=1010690011

Muss an dieser Stelle sagen, dass der Charakter Ragnaroek damals von 
Lug und mir eigentlich nur als trotziges Aequivalent zu Armageddon 
erschaffen wurde :o)

::ragnaroek (bisher noch keinen shutdown verschuldet)

-----------------------------------------------------------------------------



Re^16: farbenfrohes Mud (Mupfel, 15. Jan 2002, 00:28:09):
~#! rn=Ragnaroek rt=1011050567 rg=d.ebene
~#! tid=1010690011
Du solltest mal den RL sehen, Grimmi... der passt besser ;)

-mupfel-

-----------------------------------------------------------------------------



Re^17: farbenfrohes Mud (Elberet, 15. Jan 2002, 09:28:38):
~#! rn=Mupfel rt=1011050889 rg=d.ebene
~#! tid=1010690011
naja, ist eh schwierig zu sagen, was da Germanen sind und was nicht. Wenn ich
mich recht erinnere gabs da ja sowas, was man Voelkerwanderung nannte. Und sie
kamen nicht nur aus dem Osten sondern auch aus dem Nordosten und Norden.
Aber ich weiss ja eh nix und andere eh alles besser :-)

-----------------------------------------------------------------------------



Zitat: 'voraussichtliche Fertigstellung: Juni 1999' (Shakedbeer, 18. Jan 2002, 15:22:15):
Hallo zusammen!

Vielleicht hat in letzter Zeit mal jemand von Euch auf das Schild der
Werftbaustelle geschaut und ein wenig ueber den Termin der Fertigstellung
geschmunzelt. ;-) Ich habe nun aus recht zuverlaessiger Quelle gehoert, dass
die Bauarbeiter langsam aber sicher weiter kommen und bald das Werftgebaeude
eroeffnet werden soll. Optimisten sprechen von Februar. Welches Jahr, hat aber
keiner gesagt. ;-))

Shakedbeer - wollte nur schonmal darauf hinweisen, dass es bald nicht mehr
reichen koennte, zig mal auf der Hafenstrasse nach w und einmal nach o zu 
rennen, um auf die PVer Landstr. zu kommen. ;-)

PS: Oder sind das nur Geruechte und die Fertigstellung der Werft kommt
gleichzeitig mit dem Anschluss von Taramis?!? Wer weiss...

-----------------------------------------------------------------------------



Re: Zitat: 'voraussichtliche Fertigstellung: Juni 1999' (Foobar, 18. Jan 2002, 15:35:47):
~#! rn=Shakedbeer rt=1011363735 rg=d.ebene
~#! tid=1011363735
Haben sich die Investoren denn auch Gedanken gemacht, wie sie die
fertiggestellten Schiffe ins Meer bekommen? ;o)

Foobar

-----------------------------------------------------------------------------



Re: Re: Zitat: 'voraussichtliche Fertigstellung: Juni 1999' (Shakedbeer, 18. Jan 2002, 15:39:34):
~#! rn=Foobar rt=1011364547 rg=d.ebene
~#! tid=1011363735
Klar! Nur soviel: Die Hafenstrasse ist schoen gerade, da steht ausser dem
Denkmal nicht viel im Weg und es gibt so nette runde Baumstaemme, ueber die
ein Schiff mit allem Pomp ins Meer rollen kann. :)

Shaky.

-----------------------------------------------------------------------------



Re^3: Zitat: 'voraussichtliche Fertigstellung: Juni 1999' (Vardion, 18. Jan 2002, 15:41:05):
~#! rn=Shakedbeer rt=1011364774 rg=d.ebene
~#! tid=1011363735
Oh, wegen dem Denkmalproblem kannste Dich sicher vertrauensvoll an einen
Angriffsmagister wenden. Nach so ner vorrausrollenden Feuerwalze duerfte der
Weg _komplett_ frei sein :-)

Vardion

-----------------------------------------------------------------------------



Re^4: Zitat: 'voraussichtliche Fertigstellung: Juni 1999' (Shakedbeer, 18. Jan 2002, 15:41:57):
~#! rn=Vardion rt=1011364865 rg=d.ebene
~#! tid=1011363735
Ich hab da ne elegantere Loesung im Visier.

Shaky - verraet aber jetzt nichts mehr.

-----------------------------------------------------------------------------



Re^3: Zitat: 'voraussichtliche Fertigstellung: Juni 1999' (Dotz, 18. Jan 2002, 15:42:43):
~#! rn=Shakedbeer rt=1011364774 rg=d.ebene
~#! tid=1011363735
Gib jedenfalls rechtzeitig Bescheid. Ich will nicht am Hafen stehen und dann
einmal auf -T lesen, dass ich von nem Schiff _ueberfahren_ wurde.

Dotz (geht mal lieber nach schmarrn als zum Hafen)

-----------------------------------------------------------------------------



Re^5: Zitat: 'voraussichtliche Fertigstellung: Juni 1999' (Ahab, 18. Jan 2002, 15:43:17):
~#! rn=Shakedbeer rt=1011364917 rg=d.ebene
~#! tid=1011363735
Wie schnell muss man denn aus dem Weg sein, bevor son Schiff zu Wasser
gelassen wird, damit man nicht zermatscht wird? ;)

Ahoi,
Ahab.

-----------------------------------------------------------------------------



Re^6: Zitat: 'voraussichtliche Fertigstellung: Juni 1999' (Shakedbeer, 18. Jan 2002, 15:52:22):
~#! rn=Ahab rt=1011364997 rg=d.ebene
~#! tid=1011363735
./.

Shakedbeer - hat Muehe den Mund zu halten.

-----------------------------------------------------------------------------



Re^7: Zitat: 'voraussichtliche Fertigstellung: Juni 1999' (Bielefeld, 18. Jan 2002, 15:53:08):
~#! rn=Shakedbeer rt=1011365542 rg=d.ebene
~#! tid=1011363735
Ich sehs schon vor mir...:

(Abenteurergilde)
Imda geht nach Norden.
[Tod:Lars] Ein Schiff hat gerade Imda umgebracht.
[Tod:Ein Schiff] Imda ist mir beim Stapellauf vor den Bug gerannt.

-Bielefeld

-----------------------------------------------------------------------------



Re^8: Zitat: 'voraussichtliche Fertigstellung: Juni 1999' (Gor, 18. Jan 2002, 15:54:58):
~#! rn=Bielefeld rt=1011365588 rg=d.ebene
~#! tid=1011363735
Naja wenn man da so selten rumsteht wie Imda ist das so warscheinlich wie der
Sonnenaufgang am naechsten Tag. ;)

-----------------------------------------------------------------------------



Re^9: Zitat: 'voraussichtliche Fertigstellung: Juni 1999' (Montanus, 18. Jan 2002, 17:41:26):
~#! rn=Gor rt=1011365698 rg=d.ebene
~#! tid=1011363735
Ich glaub, ich hab ne Loesung fuer das Denkmal.
Das kommt auf das allererste Schiff drauf und wird dann nach Boschante
gefahren. Und dort neu aufgestellt.

-----------------------------------------------------------------------------



Re^10: Zitat: 'voraussichtliche Fertigstellung: Juni 1999' (Boing, 18. Jan 2002, 17:42:41):
~#! rn=Montanus rt=1011372086 rg=d.ebene
~#! tid=1011363735
Du hast aber wenig Vertrauen in Shakedbeers Schiffe ... ;)
  Boing

-----------------------------------------------------------------------------



Re^11: Zitat: 'voraussichtliche Fertigstellung: Juni 1999' (Montanus, 18. Jan 2002, 17:44:24):
~#! rn=Boing rt=1011372161 rg=d.ebene
~#! tid=1011363735
Hallo? Herr Steinbeisser/ Elfen verwenden Schiffe nur fuer ihre allerletzte
Fahrt.

-----------------------------------------------------------------------------



Re^11: Zitat: 'voraussichtliche Fertigstellung: Juni 1999' (Nonne, 18. Jan 2002, 17:44:44):
~#! rn=Boing rt=1011372161 rg=d.ebene
~#! tid=1011363735
Das Denkmal ist doch ab und an mal fertig. Bisher veschwindet das auf
mysterioese Art und Weise und ein anderes wird gebaut. Jetzt gibts endlich
eine Erklaerung, wieso das staendig neu gebaut werden muss.

Oder gibts da schon nen Grund?

Nonne.

-----------------------------------------------------------------------------



Re^12: Zitat: 'voraussichtliche Fertigstellung: Juni 1999' (Montanus, 18. Jan 2002, 17:46:04):
~#! rn=Nonne rt=1011372284 rg=d.ebene
~#! tid=1011363735
immer wenn der WOlpi-Club in die Luft gesp[rengt wird, zerstoeren Teile der
Truemmer das Denkmal.
Reicht das als Erklaerung?

-----------------------------------------------------------------------------



Re^13: Zitat: 'voraussichtliche Fertigstellung: Juni 1999' (Sky, 18. Jan 2002, 17:46:24):
~#! rn=Montanus rt=1011372364 rg=d.ebene
~#! tid=1011363735
die boesen, fiesen und gemeinen zauberer machens immer kaputt

-----------------------------------------------------------------------------



Re^14: Zitat: 'voraussichtliche Fertigstellung: Juni 1999' (Montanus, 18. Jan 2002, 17:53:40):
~#! rn=Sky rt=1011372384 rg=d.ebene
~#! tid=1011363735
Heul doch?
Das diese ganzen neuen Gilden alle nur jammern koennen, ist schon traurig...

-----------------------------------------------------------------------------



Re^12: Zitat: 'voraussichtliche Fertigstellung: Juni 1999' (Hight, 18. Jan 2002, 17:56:15):
~#! rn=Nonne rt=1011372284 rg=d.ebene
~#! tid=1011363735
hmmm nachdem die ganzen spendensammler hier rumrennen muessen wir das geld ja
irgendwie loswerden ... der lepische sold den man bei den Trves krigt is net
der rede wert und nen so grossen keller das wir die ganzen muenzen sammeln
koennten haben wir net ,o)

hight

-----------------------------------------------------------------------------



Re^13: Zitat: 'voraussichtliche Fertigstellung: Juni 1999' (Foobar, 18. Jan 2002, 17:57:13):
~#! rn=Hight rt=1011372975 rg=d.ebene
~#! tid=1011363735
Man koennte die Kohle nutzen, um das Gehalt der Zwergen-Generaele zu
erhoehen...

Foobar

-----------------------------------------------------------------------------



Re^14: Zitat: 'voraussichtliche Fertigstellung: Juni 1999' (Gnome, 18. Jan 2002, 17:58:13):
~#! rn=Foobar rt=1011373033 rg=d.ebene
~#! tid=1011363735
endlich mal der erste vernuenftige vorschlag...

-----------------------------------------------------------------------------



Re^15: Zitat: 'voraussichtliche Fertigstellung: Juni 1999' (Grimmborn, 18. Jan 2002, 17:59:28):
~#! rn=Gnome rt=1011373093 rg=d.ebene
~#! tid=1011363735
Ich dachte das wuerde fuer einen gildenweiten Alphabetisierungskurs gebunkert?

GdA

-----------------------------------------------------------------------------



Re^16: Zitat: 'voraussichtliche Fertigstellung: Juni 1999' (Gnome, 18. Jan 2002, 18:00:27):
~#! rn=Grimmborn rt=1011373168 rg=d.ebene
~#! tid=1011363735
DAS ist doch bei uns eh hoffnungslos. dann lieber mehr GELD!

-----------------------------------------------------------------------------



Re^14: Zitat: 'voraussichtliche Fertigstellung: Juni 1999' (Gor, 19. Jan 2002, 10:53:58):
~#! rn=Foobar rt=1011373033 rg=d.ebene
~#! tid=1011363735
Damit die sich mal ne Badewanne leisten koennen und die anderen Rassen nicht
immer mit ihren Geruechen beleidigen?

-----------------------------------------------------------------------------



Re^15: Zitat: 'voraussichtliche Fertigstellung: Juni 1999' (Foobar, 19. Jan 2002, 14:38:16):
~#! rn=Gor rt=1011434038 rg=d.ebene
~#! tid=1011363735
Was kann ich denn dafuer wenn die zarten Tuntennasen meinen herben Duft nicht
abkoennen?

Foobar

-----------------------------------------------------------------------------



Ohren? (Zook, 31. Jan 2002, 22:34:21):
Wie mir ein Zwerg neulich berichtete, soll es Ohren geben von Gestalten, die
aus Zwergensicht ganz viel groesser und auch sonst ganz komisch seien, die,
wenn man an ihnen herumschneide, ihr Besitzer aber vorher das Zeitliche
zu segnen habe, einen Verwendungszweck haben.

Ich habe Zwerge noch nie verstanden.

Zook.

-----------------------------------------------------------------------------



Re: Ohren? (Anthea, 31. Jan 2002, 23:38:25):
~#! rn=Zook rt=1012512861 rg=d.ebene
~#! tid=1012512861
Ich auch nicht. Ich spreche aus Prinzip kein Zwergisch ;)

-----------------------------------------------------------------------------



Re: Ohren? (Gnome,  1. Feb 2002, 01:47:37):
~#! rn=Zook rt=1012512861 rg=d.ebene
~#! tid=1012512861
:huepft aufgeregt um Zook herum. :)

-----------------------------------------------------------------------------



Re: Re: Ohren? (Montanus,  1. Feb 2002, 03:27:08):
~#! rn=Gnome rt=1012524457 rg=d.ebene
~#! tid=1012512861
Gnomen, Zwerge... alles das selbe Kriechzeug. Hobbits. Wenn ich schon dran
denke...

-----------------------------------------------------------------------------



Re^3: Ohren? (Cuchullin,  1. Feb 2002, 04:01:31):
~#! rn=Montanus rt=1012530428 rg=d.ebene
~#! tid=1012512861
Ich hoffe, man kann diesen Scheiss auch irgendwie ignorieren. Der 
Aus-der-Ferne-Terror a la Chaosratte muss ja nicht ueberhand nehmen.


-----------------------------------------------------------------------------



Re^4: Ohren? (Varlarion,  1. Feb 2002, 08:50:11):
~#! rn=Cuchullin rt=1012532491 rg=d.ebene
~#! tid=1012512861
:will auf der Stelle das Rasiermesser zurueck!

-----------------------------------------------------------------------------



Re: Ohren? (Hight,  1. Feb 2002, 15:47:08):
~#! rn=Zook rt=1012512861 rg=d.ebene
~#! tid=1012512861
hehe was is daran neu ? der herr kommandant sammelt seit jahren elholdriels
ungewaschene ohren

hight schmarrend

-----------------------------------------------------------------------------



Re: Re: Ohren? (Gor,  1. Feb 2002, 22:01:52):
~#! rn=Hight rt=1012574828 rg=d.ebene
~#! tid=1012512861
Er drueckt sogar auch noch fett Asche dafuer ab. A ;) Ich frag mich nur, wass
der mit den vielen Ohren macht,. Ohrensuppe? Aber sowas geschmackloses traue
ich eigentlich nur Zwergen zu. ;)

Gor schmarrt auch bisserl

-----------------------------------------------------------------------------



Von Fischen und Angeln (Vanion, 26. Mai 2002, 22:05:56):
Geruechten zufolge ist der Bedarf an Fisch im MorgenGrauen in 
letzter Zeit stark angestiegen. Daher hat sich die Haendler-Gilde
nach langer Zeit wieder entschlossen, Fische aller Art aufzukaufen.

V* wuenscht Petri Heil. 

-----------------------------------------------------------------------------



Re: Von Fischen und Angeln (Cadrach, 27. Mai 2002, 11:56:58):
~#! rn=Vanion rt=1022443556 rg=d.ebene
~#! tid=1022443556
Klasse! :)

-----------------------------------------------------------------------------



Badezimmerrenovierung (Schleicher,  2. Jun 2002, 23:19:37):
Bis auf weiteres kann nicht mehr gebadet werden da die Wanne neu versiegelt
werden muss. Als Abhilfe koennte Ihr ja im Hotel duschen gehn...
Schleicher

-----------------------------------------------------------------------------



Re: Badezimmerrenovierung (Mupfel,  3. Jun 2002, 00:57:15):
~#! rn=Schleicher rt=1023052777 rg=d.ebene
~#! tid=1023052777
Beu versiegelt? Mein Jof, was wurden da fuer Orgien gefiert? Oder sind da etwa
Zwerge *mit Ruestung* rein? 

-mupfel-

-----------------------------------------------------------------------------



Ten Years Later (Miril, 21. Aug 2002, 18:08:54):
Im Zuge einer kleinen Ueberarbeitung der Amaryllisquest
(KL-Benutzer aufgepasst ;-) gibts in Zwackelmanns Schloss
nun ein bisschen mehr zu sehen oder tun. Fuer weitere Anregungen
waere ich nach wie vor dankbar und setze sie vielleicht sogar um ;-).
Viel Spass, Miril

-----------------------------------------------------------------------------



Re: Ten Years Later (Mandragon, 21. Aug 2002, 18:20:17):
~#! rn=Miril rt=1029946134 rg=d.ebene
~#! tid=1029946134
:ist begeistert.

Ma* (bestimmt im Namen vieler Amaryllis-Quester und dem Uenkchen selber ;o) )

-----------------------------------------------------------------------------



Re: Re: Ten Years Later (Morgoth, 21. Aug 2002, 22:14:49):
~#! rn=Mandragon rt=1029946817 rg=d.ebene
~#! tid=1029946134
Wie, ich muss mein TF-Script ueberarbeiten? Was soll denn das? *grummel*

M*

-----------------------------------------------------------------------------



Bettler in Port Vain (Deepblue, 19. Nov 2002, 12:18:59):
Knoennte den Bettler bitte mal beigebracht werden, dass man auch FPs zum
Seherwerden braucht? Es ist nicht wirklich witzig, wenn man die noetigen APs
hat aber FPs fehlen und der Knilch haut einen staendig.
Insbesondere wenn man grade gestorben ist und mit 1-2 LP aus der Kapelle kommt
und wieder stirbt nervt das gewaltig...

-----------------------------------------------------------------------------



Re: Bettler in Port Vain (Elberet, 19. Nov 2002, 12:33:40):
~#! rn=Deepblue rt=1037704739 rg=d.ebene
~#! tid=1037704739
jammer nicht, werd Elf

-----------------------------------------------------------------------------



Re: Bettler in Port Vain (Nino, 19. Nov 2002, 12:50:39):
~#! rn=Deepblue rt=1037704739 rg=d.ebene
~#! tid=1037704739
Du willst doch nur ne FP Anzeige...
Aber versuchen kann mans ja mal, ist voellig legitim.
Nino - geschuettelt nicht geruehrt

-----------------------------------------------------------------------------



Re: Re: Bettler in Port Vain (Deepblue, 19. Nov 2002, 12:58:24):
~#! rn=Nino rt=1037706639 rg=d.ebene
~#! tid=1037704739
Ob die FPs zum Seher werden ausreichen sieht man doch sowieso bei Info oder
beim versuch, in der Gilde zu erhoehen.
Ob man das zusaetzlich daran merkt, ob der Bettler angreift oder nicht ist
AFAIK keine FP-Anzeige

-----------------------------------------------------------------------------



Re: Bettler in Port Vain (Ark, 19. Nov 2002, 20:26:31):
~#! rn=Deepblue rt=1037704739 rg=d.ebene
~#! tid=1037704739
Der naechste Bettler versteht das ... hoffentlich :-)


              *** ARK * the * Magnificent ***


-----------------------------------------------------------------------------



Regionsmagier Ebene (Zook, 27. Jan 2003, 19:05:37):
Hallo zusammen,

Rochus ist von seinem Posten als Regionsmagier in der Ebene zurueckgetreten.

Vielen Dank fuer Deine Mitarbeit, Rochus.


Gruss, Zook.

-----------------------------------------------------------------------------



Hooligans (Humni, 24. Apr 2003, 11:56:25):
Huhu,

die Hooligans im Stadion haben jetzt einen Anfuehrer. Nicht wundern. Und ja,
auch in der Ebene koennen demnaechst noch ein paar NPCs dazukommen...

Humni

-----------------------------------------------------------------------------



Abschied ... (Ark, 21. Mai 2003, 21:12:31):
Meine lieben Mudder, es ist an der Zeit, Abschied von Euch zu nehmen. Ich habe
mir diese Entscheidung nicht leicht gemacht, doch ich musste sie so
zwangslaeufig treffen wie Hans Eichel seinen Sparkurs an die Oeffentlichkeit
tragen musste. Schlaflose Naechte liegen hinter mir, die Augen triefen vor
Muedigkeit und Trauer. Ab sofort trete ich zurueck ...

Interesse am Artikel geweckt? Hast Du nun "Was will der Depp uns sagen?"
Gefuehle? Panisch geworden? Knallen schon die Sektkorken? Dann lieber hier
nochmal die Kurzform:

Ark niggs mehr Regionsmagier von Ebene.
Ragnaroek ist geworden brutale Aufseher von Ebene.
Heil Dir Ragnaroek, Koenig der Ebene.

Ich freue mich, mich nun ausschliesslich der erfuellenden Aufgabe von
Miniquests und Quests widmen zu duerfen.


              *** ARK * the * Magnificent ***


-----------------------------------------------------------------------------



Re: Abschied ... (Catweazle, 22. Mai 2003, 00:09:03):
~#! rn=Ark rt=1053544351 rg=d.ebene
~#! tid=1053544351
Sag mal, hast du nen Knall? Du kannst doch nicht einfach einen Artikel
schreiben, der auf die erste Ziele so aussieht, als wenn du das Mud verlassen
wolltest.

Man merkt doch erst zwei verschwitzte Sekunden spaeter, dass wir uns auf
d.ebene unterhalten und du nur selektive Aufgaben abgeben willst. Tsk.

Jetzt darf ich mich mit dem mitternaechtlichen Adrenalinschub zurechtfinden. 

Yours truly,
 (schockabbauend) Catweazle

-----------------------------------------------------------------------------



Re: Re: Abschied ... (Idlefix, 22. Mai 2003, 00:28:58):
~#! rn=Catweazle rt=1053554943 rg=d.ebene
~#! tid=1053544351
Huhu,
jo das war sehr missverstaendlich mir erging es genauso. Dachte auch das
Wieder ein Magier in Rente geht.

Gruss Idlefix

-----------------------------------------------------------------------------



Re^3: Abschied ... (Elberet, 22. Mai 2003, 09:10:32):
~#! rn=Idlefix rt=1053556138 rg=d.ebene
~#! tid=1053544351
da gilt halt, was schon immer richtig war: einen text bis zum ende lesen,
vorher weiss man nicht was drin steht.
Aber genaues lesen ist heute ja nicht mehr wichtig.

Elbi

-----------------------------------------------------------------------------



Re^4: Abschied ... (Grimmborn, 22. Mai 2003, 10:14:51):
~#! rn=Elberet rt=1053587432 rg=d.ebene
~#! tid=1053544351
s/wichtig/allgemein praktiziert/

GdA

-----------------------------------------------------------------------------



Re^5: Abschied ... (Ark, 22. Mai 2003, 20:37:16):
~#! rn=Grimmborn rt=1053591291 rg=d.ebene
~#! tid=1053544351
Ha, der Schalk trieb mich zu spaeter Stund', er piekt die Seel', drum schrieb
ich Schund, doch hoert, es schallt die Reu' aus meinem Mund: Vergebt mir, und
will nur noch tuen kund, was wahr ist und immer hat 'nen guten Grund.

*verbeug*


              *** ARK * the * Magnificent ***


-----------------------------------------------------------------------------



Artikel :-) (Nyx, 26. Jun 2003, 22:03:25):

Dass es seit dem grossen Brand in der Akademie nicht mit
rechten Dingen zugeht ist bekannt, doch wer sie jetzt
betritt wird ueberrascht sein. Die dort hausenden Geister
haben ein paar neue Mitbewohner bekommen und scheinen ihr
altes Heim dafuer mal wieder etwas in Schwung gebracht zu
haben.

-----------------------------------------------------------------------------



Die Ruine der Akademie ... (Mandragon, 28. Jul 2003, 02:03:39):

kann aufgrund temporaerer Bugs derzeit nicht betreten werden.

Ich hoffe, dass bald Entwarnung gegeben werden kann ...

Ma*

-----------------------------------------------------------------------------



Die Strassenschaeden (Mandragon, 30. Jul 2003, 13:38:54):

... auf dem Weg zur Akademieruine wurden von Rikus beseitigt.

Ma*

-----------------------------------------------------------------------------



Das magische Auge und die Kampfstaebe... (Mupfel, 10. Okt 2003, 20:31:51):
...sind seit vorgestern unzertrennlich ;)

-mupfel-

-----------------------------------------------------------------------------



Flachdach (Zook, 22. Dez 2003, 11:15:20):
Hallo, ein Flachdach mit einem Kirschbaum steht temporaer nicht zur 
Verfuegung. Sobald ein Bugfix vorliegt, werde ich den Raum wieder 
anschliessen. 

Gruss, Zook.

-----------------------------------------------------------------------------



Re: Flachdach (Zook, 29. Dez 2003, 11:07:01):
~#! rn=Zook rt=1072088120 rg=d.ebene
~#! tid=1072088120
Das Flachdach ist nun wieder erreichbar. Aber der Raum dort ist nicht mehr
so "friedlich" wie bisher.

Zook.

-----------------------------------------------------------------------------



Traurige Nachricht.... (Humni, 17. Feb 2004, 21:33:10):
fuer alle Besitzer eines Amulettes mit einem Tigerauge oder sowas. Das Amulett
wurde erneuert und sollte nun nicht mehr ganz so effektiv sein. IMHO ist das
natuerlich immer noch zu gut.

Viel zu gut.

Viel viel viel viel viel zu gut.

Aber davon hab ich nun genug erzaehlt.

Humni

PS: Das Ding gehoert abgewertet.

-----------------------------------------------------------------------------



Re: Traurige Nachricht.... (Morgoth, 17. Feb 2004, 21:33:58):
~#! rn=Humni rt=1077049990 rg=d.ebene
~#! tid=1077049990
Ist das nicht ein Fall fuer die Balance? Wieso ist das dann noch
angeschlossen?

M* gruebelt

-----------------------------------------------------------------------------



Re: Re: Traurige Nachricht.... (Darklor, 17. Feb 2004, 23:52:42):
~#! rn=Morgoth rt=1077050038 rg=d.ebene
~#! tid=1077049990
Biste Dir auch ganz sicher Humni das das stimmt und es nich vielleicht besser
waer dafuer zu werben, damit ueberhaupt jemand das Teil nutzt? ;) 

Darklor

-----------------------------------------------------------------------------



Re: Re: Traurige Nachricht.... (Nonne, 18. Feb 2004, 08:43:27):
~#! rn=Morgoth rt=1077050038 rg=d.ebene
~#! tid=1077049990
Das ist vor ewigen Zeiten durch die Balance gegangen. Ein bisschen Streuung in
den Bewertungskriterien der Balancegenerationen laesst sich wohl nie
ausschliessen und es waere albern, wenn jede neue Generation alle Objekte neu
bewerten wuerde.

Aber keine Angst, ich habe das Amulett auf meiner Liste der unter Beobachtung
stehenden Objekte (c;

Nonne.

-----------------------------------------------------------------------------



Re^3: Traurige Nachricht.... (Anatol, 18. Feb 2004, 09:25:52):
~#! rn=Nonne rt=1077090207 rg=d.ebene
~#! tid=1077049990
Verdammt viele Objekte sind "vor ewigen Zeiten" durch die Balance
gegangen. Es ist ziemlich schade, dass Du als Chef der Objektbalance
die Dreistheit findest, z.B. die Paracelsusschen Durchwinkphasen als
"bisschen Streuung der Bewertungskriterien" zu bezeichnen.

Anatol


-----------------------------------------------------------------------------



Re^4: Traurige Nachricht.... (Nonne, 18. Feb 2004, 09:56:07):
~#! rn=Anatol rt=1077092752 rg=d.ebene
~#! tid=1077049990
Alle Balance-Chefs vor mir waren total scheisse! Es wurden kaum objektive
Bewertungskriterien festgelegt, nichts ist vergleichbar, damit muss schluss
sein! Ich werde am Wochenende alle jemals genehmigten Objekte abhaengen und
sie werden neu beantragt werden muessen! Es kann nicht angehen, dass es von
den Launen irgendwelcher Balance-Leute abhaengt, welche Objekte genehmigt
werden oder nicht. Alle Balance-Mitglieder vor mir hatten keine Ahnung oder
ihren Chef nicht im Griff, sodass Anatol mir die Einsicht gegeben hat, dass
dieser Schritt absolut notwendig ist.

Nonne.

P.S: Das war ironisch.

-----------------------------------------------------------------------------



Re^5: Traurige Nachricht.... (Montanus, 18. Feb 2004, 10:00:50):
~#! rn=Nonne rt=1077094567 rg=d.ebene
~#! tid=1077049990
Schade, dass das ironisch war. Du haettest dir viele Freunde gemacht...

-----------------------------------------------------------------------------



Re^5: Traurige Nachricht.... (Morgoth, 18. Feb 2004, 10:40:58):
~#! rn=Nonne rt=1077094567 rg=d.ebene
~#! tid=1077049990
Och, schade. Ich haette noch ein paar Aenderungen, dann muss ich die nicht
alle einzeln einreichen.

M*

-----------------------------------------------------------------------------



Re^5: Traurige Nachricht.... (Anatol, 18. Feb 2004, 11:09:04):
~#! rn=Nonne rt=1077094567 rg=d.ebene
~#! tid=1077049990
Ich grueble noch ueber den Begriff der Ironie im Zusammenhang mit der 
Aussage "Es kann nicht angehen, dass es von den Launen irgendwelcher
Balance-Leute abhaengt, welche Objekte genehmigt werden oder nicht."

Aber ich bin ja nur Spieler, ich kann das nicht verstehen. }:^>

Anatol

-----------------------------------------------------------------------------



Re^6: Traurige Nachricht.... (Grimmborn, 18. Feb 2004, 11:14:26):
~#! rn=Anatol rt=1077098944 rg=d.ebene
~#! tid=1077049990
Ich sehe da keinen Gruebelbedarf, das ist fuer mich eindeutig.

Aber ich bin ja Magier, mich interessiert das gluecklicherweise nicht.

GdA

-----------------------------------------------------------------------------



Re^7: Traurige Nachricht.... (Montanus, 18. Feb 2004, 11:16:39):
~#! rn=Grimmborn rt=1077099266 rg=d.ebene
~#! tid=1077049990
Sehen wir es doch mal anders:
Magier, die Objekte schreiben, die uebermaessig stark sind, wollen damit
Spielern unter die Arme greifen und sie staerker als geplant machen.
Das ist damit absolute Spielerhilfe.
Anstatt die Objekte nur abzuhaengen, sollten die verbrecherischen Magier
gleich mit abgehaengt werden.

-----------------------------------------------------------------------------



Re^8: Traurige Nachricht.... (Nonne, 18. Feb 2004, 11:17:55):
~#! rn=Montanus rt=1077099399 rg=d.ebene
~#! tid=1077049990
Und die Mitglieder der Balance, die sowas damals genehmigt haben, werden
gleich mit geloescht?

-----------------------------------------------------------------------------



Re^9: Traurige Nachricht.... (Boing, 18. Feb 2004, 11:20:03):
~#! rn=Nonne rt=1077099475 rg=d.ebene
~#! tid=1077049990
Du willst doch nur Anatol loeschen ... :)
  Boing

-----------------------------------------------------------------------------



Re^10: Traurige Nachricht.... (Montanus, 18. Feb 2004, 11:36:19):
~#! rn=Boing rt=1077099603 rg=d.ebene
~#! tid=1077049990
Du hast noch ziemlich genau 6 Wochen und 12 Stunden und 42 Minuten Zeit, das
alles hinzubekommen.

-----------------------------------------------------------------------------



Re^11: Traurige Nachricht.... (Darklor, 18. Feb 2004, 17:30:32):
~#! rn=Montanus rt=1077100579 rg=d.ebene
~#! tid=1077049990
Was is denn in ziemlich genau 6 Wochen und 12 Stunden und 42 Minuten? - Sollt
ich bis dahin noch schnell was angefangenes beenden? ;)

Darklor

-----------------------------------------------------------------------------



Eine seltsame Begegnung (Arathorn, 18. Feb 2004, 18:15:53):

"Werter Herr!"

Ich zuckte beim Klang der Worte zusammen.

    Es war dies die Stimme einer mir bis  dahin unbekannten Person, die
im selben  Moment  hinter einem  Baum  hervortrat,  eingehuellt in  ein
angesichts  der geringen  Koerpergroesse  riesiges  Grizzlyfell, dessen
Schaedel der Mann als Kopfbedeckung trug. Ich musterte den  Unbekannten
von Kopf bis Fuss, um zu ergruenden, wen ich denn vor mir haette.

    "Ich  bin  ein  reisender  Schamane,"  stellte er  sich vor.  Meine
Verwunderung war wohl zu offensichtlich: "Mein Name ist Chinkuwaila."

    "Willkommen," antwortete ich, "Ihr seid mir unbekannt, seid Ihr neu
hier in diesen Landen?"

    Er bestaetigte mir dies in hoeflichen Worten: "So ist es. Ich hatte
noch nicht das Vergnuegen, diese Region der Welt zu besuchen.Ihr hinge-
gen scheint Euch hier gut auszukennen. Wisst Ihr nicht einen Platz,  an
dem ich zumindest eine Zeitlang rasten koennte?"

    Ich fragte ihn, ob er  bestimmte Anforderungen an seinen Lagerplatz
stelle, doch er meinte, eine Lichtung von mittlerer Groesse im Wald sei
ausreichend fuer sein bescheidenes Zelt.

     "Euer Zelt?" fragte ich erstaunt, denn ich sah nirgends einen  Wa-
gen oder auch nur die  Andeutung von Handgepaeck.  Ausser dem Fell trug
er  lediglich einen ledernen Anzug und leichte Schuhe,  einen einfachen
Wanderstab hatte er in der Hand.

    "Wundert Euch nicht, ich verfuege ueber gewisse Faehigkeiten, meine
Habseligkeiten vor allzu neugierigen Augen zu verbergen."

    Ich nickte und bedeutete ihm, mir zu folgen.  Denn ich kannte nicht
weit von besagtem Ort, an dem er mich angesprochen hatte, eine Lichtung
in  einem seichten  Sumpfauslaeufer,  die in meiner Erinnerung  perfekt
seinen Wuenschen zu entsprechen schien.

    Wir fanden sie zwar schon merklich von der Natur zurueckerobert vor,
jedoch brauchten wir nur einige duerre  Buesche und einiges Laub wegzu-
raeumen, um einen geeigneten Zeltplatz zu schaffen.

    Als wir fertig waren, nahm er in der  Mitte der  Lichtung platz und
begann,  einige arkane  Zaubersprueche  zu  murmeln,  ich konnte jedoch
nichts genaues verstehen.  Kurz bevor er endete, bemerkte ich lediglich
eine leichte  Luftverzerrung hinter einem nahegelegenen  Gebuesch,  die
sich mit seinen letzten Worten zu einem kleinen Karren materialisierte.

    Er  laechelte mich mit seinen funkelnden Goblinaugen an: "Ihr seht,
ich habe nicht zuviel versprochen."

    Seinem Wunsch,  ihm mit einigen Handgriffen bei der Errichtung sei-
ner Behausung behilflich zu sein, kam ich gerne nach.  Es war ein uner-
wartet geraeumiges Zelt,  dessen nach Sueden gerichteten Eingang er mit
diversen  Kultgegenstaenden  ausstattete.  Anschliessend  erklaerte er,
sich zurueckziehen und sein neues Domizil einrichten zu wollen.

    Kurz bevor er hinter dem Eingang seines  Zeltes verschwand,  drehte
er sich noch einmal zu mir um und sprach: "Vielen Dank, mein Herr.  Ich
weiss Eure  Gastfreundschaft sehr zu schaetzen. Falls Ihr erfahrt, dass
jemand aus  Eurem  Volk die  Dienste eines in der  Kunst des Wahrsagens
bewanderten  Schamanen benoetige,  so zoegert nicht,  diesen  zu mir zu
schicken.  Es waere mir eine  Freude,  mich fuer die von  Euch gezeigte
Freundlichkeit  gefaellig zu erweisen.  Ihr werdet  mich zu den meisten
Tages- und Nachtzeiten hier in meinem Zelt antreffen."

    Mit diesen Worten trat er in die duestere  Atmosphaere seines  Zel-
tes. Ich murmelte noch eine kurze  Verabschiedung, erhielt jedoch keine
Antwort mehr...

                  *------------------------------*

    Dies ist die  Begebenheit,  die ich  Euch nicht  vorenthalten woll-
te, liebe  Freunde.  Ich kann  nicht sagen,  ueber welche  Faehigkeiten
der Schamane verfuegt,  jedoch bin ich sehr gespannt auf  die Berichte,
die  uns sicherlich  bald  ueber diese ueberaus  geheimnisvolle  Person
erreichen werden. Denn die  Ortskundigen unter Euch haben besagte Lich-
tung zweifellos wiedererkannt.



Viele Gruesse,
Arathorn.

P.S.: Behandelt diesen Einsiedler bitte mit dem gebuehrenden Respekt,
      so, als waere er Euer eigener Gast.

-----------------------------------------------------------------------------



Re: Eine seltsame Begegnung (Arathorn, 18. Feb 2004, 22:47:04):
~#! rn=Arathorn rt=1077124553 rg=d.ebene
~#! tid=1077124553
Hoppla,

aus unbekannter Ursache funktionert da was nicht, was im Test noch ging.
Deshalb empfaengt der unbekannte Besucher kurzfristig keine Besucher mehr.

Sorry.
Arathorn.

-----------------------------------------------------------------------------



Re: Re: Eine seltsame Begegnung (Arathorn, 19. Feb 2004, 01:17:53):
~#! rn=Arathorn rt=1077140824 rg=d.ebene
~#! tid=1077124553
So, und noch ein Selbstreply... ;-)

Da der Fehler jetzt raus ist (eigene Dummeheit mal wieder *g*), ist auch
der bis vorhin unzugaengliche Raum wieder geoeffnet.

Viel Spass. :)

Gruss, Arathorn.

P.S.: An dieser Stelle kann ich dann auch gleich meinen Dank loswerden.
      Zunaechst mal an Ark und Vanion fuer die Muehe beim Testen,
      Ogo und Feigling fuer diverse Debugging-Sitzungen,
      Humni und Zook fuer die Hilfe beim Anschliessen, sowie
      an Dunst fuer eine gewisse zuendende Idee.

-----------------------------------------------------------------------------



Re: Traurige Nachricht.... (Nonne, 24. Feb 2004, 09:42:08):
~#! rn=Humni rt=1077049990 rg=d.ebene
~#! tid=1077049990
Noch mal zu dem Amulett: Es ist bis auf weiteres nicht zu benutzen, da sich
die Bugs doch zu leicht ausnutzen liessen.

Willkuer & Machtgeilheit
Nonne.

-----------------------------------------------------------------------------



Re: Eine seltsame Begegnung (Arathorn, 28. Feb 2004, 13:28:57):
~#! rn=Arathorn rt=1077124553 rg=d.ebene
~#! tid=1077124553
Hallo zusammen,

nur der Vollstaendigkeit halber: Eine gewisse Rune ist neuerdings so
zuvorkommend, sich kurz bei den Vergesslichen unter Euch zu melden.
Ihr versteht sicher, was ich meine. 

Falls es zu Problemen kommt, bitte melden, wie ueblich.

Viel Spass weiterhin.
Gruss, Arathorn.

-----------------------------------------------------------------------------



Heidenhus (Humni,  1. Apr 2004, 00:01:49):
Huhu,

was lange waehrt.... endlich ist Heidenhus in der Ebene fertig. Viel Spass.

Humni

-----------------------------------------------------------------------------



Kantharr (Arathorn, 18. Apr 2004, 23:46:38):
Hi zusammen,

wahrscheinlich haben es nicht viele gemerkt, aber Kantharr ist nach
:kurzzeitiger Abwesenheit wieder betretbar, der Bug im Eingangsraum, der
heute einige Leute dort eingesperrt hat, ist raus, und einige andere ...
sagen wir ... Dysfunktionalitaeten mit ihm.

Gruss,
Arathorn.

-----------------------------------------------------------------------------



Forschen... (Arathorn, 26. Apr 2004, 11:36:06):
... koennte in einer gewissen Brauerei jetzt etwas lohnenswerter sein als
bisher. Ihr wisst, was ich meine. ;-)

Gruss,
Arathorn.

-----------------------------------------------------------------------------



Re: Re: Traurige Nachricht.... (Ragnaroek, 11. Mai 2004, 02:16:43):
~#! rn=Nonne rt=1077612128 rg=d.ebene
~#! tid=1077049990
Besagtes Amulett ist sofort wieder nutzbar.

:ragna:

-----------------------------------------------------------------------------



Nachricht vom Einwohnermeldeamt. :-) (Arathorn,  1. Jun 2004, 23:02:12):
Hallo zusammen,

wie ich gerade eben festgestellt habe, hat Port Vain einen neuen Einwohner,
vielmehr, eine Einwohnerin bekommen. Es wurde mir berichtet, sie sei aus
dem Land der Innuit gekommen, unsere beruehmte Hafenstadt zu besuchen, um
dort ihr Glueck (und Eures!) zu versuchen.

Ihr werdet sie sicherlich irgendwo in der Stadt antreffen koennen.

Gruss, Arathorn.

P.S.: Ach ja, eine Bitte noch: gebt nicht gleich Euer ganzes Geld aus! ;-)

-----------------------------------------------------------------------------



Un ... (Ark, 12. Jun 2004, 00:10:03):

Mein Name ist Mark, Mark Henderson, um genau zu sein. Ja, ich will genau
sein, denn ich habe eine Geschichte zu erzaehlen, die viele nicht hoeren
wollen, weil sie unbequem ist, weil sie Leuten schadet, die mehr oder
weniger als unbescholten gelten, aber es nicht sind ... doch ich schweife
ab.

Seit genau einem halben Jahr bin ich nun tot. Das ueberrascht meine werte
Zuhoererschaft ? Ich will nun schildern, wie es dazu kam, denn es war
nicht etwa ein friedlicher, zufaelliger Tod, wie er so viele ploetzlich
heimsuchen kann, sondern ein brutaler, schmerzhafter und ungerechter Tod,
der mich ereilte und meine Tochter Tamina zur Waisen machte.

Damals wanderte ich mit ihr im Grimmswald umher, wir waren spaet dran,
unsere Huette, die einsam im Norden des Waldes steht, war weit entfernt.
Die ersten dunklen Schatten durchstreiften die umstehenden Baeume, und
meine Kleine bekam es mit der Angst zu tun, denn normalerweise machen
wir uns immer rechtzeitig auf den Heimweg, wenn wir laenger unterwegs
waren. Nicht lange, da verlor ich die Gewissheit, wo sich der Weg befand,
auf dem wir uns immer sicher waehnten und der auf einigen verschlungenen
Pfaden direkt zu der bescheidenen Huette fuehrte, die unser Heim war.
Schliesslich erkannten wir ein Licht im Wald. Eine Lichtung tat sich im
Dunklen vor uns auf, an deren Rand ein grosses Wirtshaus stand, inmitten
der riesigen Baeume, nur durch einen kleinen Weg nach Sueden mit dem
Hauptweg durch den Wald verbunden.

Zoegernd naeherten wir uns dem Haus, wohl wissend, dass es schon sehr
spaet war, und wir nicht unbedingt mit einer freundlichen Aufnahme fuer
die Nacht rechnen konnten, war doch das Geld immer knapp in unserer
kleinen Familie, seit meine Frau vor ein paar Jahren verstarb. Trotzdem
oeffnete ich die Tuer der Gaststaette, und siehe da, es war noch etwas
Betrieb. Erleichtert setzten wir uns an einen der Tische.

Dann kam SIE, und ich wusste, dass das Unheil langsam unter den Brettern
unter uns hervorzukriechen begann. SIE war ... attraktiv gekleidet, fuer
viele der Maenner der Wirtschaft DIE Attraktion schlechthin. Man konnte
direkt sehen, wie die Blicke der maennlichen Gaeste an IHR hingen, sie
verfolgten und wie die Gaeste nicht schnell genug die Bierkruege leeren
konnten, um von IHR wieder bedient zu werden.

Tamina mochte SIE sogleich nicht, und obwohl ich mich der uebermaechtigen
Anziehungskraft, die SIE verstroemte, nicht ganz verschliessen konnte, wie
ich zu meinem Leidwesen gestehen muss, so merkte ich doch, dass SIE fuer
uns nur Unglueck versprach. Aus irgendeinem Grund zog ich SIE magisch an.
Den ganzen Abend lang verweilte SIE laenger an unserem Tisch als bei den
anderen Gaesten, was diese mit Murren und unwilligen Blicken quittierten.

Schliesslich ging SIE sogar soweit, mir unmissverstaendliche Saetze
zuzuraunen, die ich hier nicht wiedergeben will. Doch dann trat der Wirt
des Gasthofs auf den Plan, ein unangenehmer Zeitgenosse.

Der Gasthof, in dem wir uebernachten wollten, der "Nebelhof", wurde von
einem schwergewichtigen, kraeftigen und vollkommen unsympathischen Kerl
geleitet, der seine Bediensteten nach Belieben drangsalierte. Bis auf eine
Ausnahme ... SIE wurde von ihm wenig belangt, doch als er SIE mit mir
laenger am Tisch reden sah, verlor er sichtlich die Beherrschung. Er kam
zu uns herueber, schrie laut im Schankraum herum und drohte mir. Ich sah,
dass SIE das ziemlich kalt liess, doch der Rest der Gaeste bedachte mich
mit haemischen Blicken. So jedenfalls kam es mir vor. Schliesslich verlor
der Wirt das Interesse an mir und verschwand. Eine andere Bedienung des
Gasthofs naeherte sich unserem Tisch und troestete mich.

Ich ... hatte eine laengere Unterredung mit dieser Kellnerin, sie war
sehr um mich bemueht, auch Tamina gefiel sie, so dass sie noch spaeter
auf unser Zimmer kam. Einiges wurde mir in der Zeit mit ihr klar, unter
anderem vertraute sie mir Dinge an, die meinen Entschluss, am naechsten
Tag beim ersten Sonnenstrahl den Gasthof zu verlassen, bekraeftigten.
Doch es kam ganz anders ...

Mitten in der Nacht weckte mich eine schweissig nasse kleine Hand. Es war
Tamina, die mich auf ein Rumoren vor unserem Zimmer aufmerksam machte.
Ich machte mich gerade bereit, nachzusehen, als die Tuer aufbrach und
einige dunkle Gestalten hereinstuermten. Im Hintergrund sah ich eine recht
deutliche Silhouette, ich bin mir heute sicher, es war der Wirt, der die
schmutzige Arbeit seiner gedungenen Helfer ueberwachte.

Alles weitere erlebte ich wie in einem Trancezustand. Laerm, der starke
Widerstand, den ich leistete, als sie mich ergriffen, das Schreien meiner
armen Tochter, die Tritte und Schlaege, das feuchte Blut an meiner Nase,
in meinen Augen, all das vermischt sich nunmehr zu einem vagen Traum, zu
einem Erlebnis an einem nebligen Tag, wo Geraeusche und Gerueche vom
gnaedigen Nebel verschluckt werden und Visionen bestenfalls vage sind.

Ich wurde hinausgezogen in die Kaelte, durch den einsetzenden Schneefall
zerrte man mich zu einem der Baeume am Wegesrand. Einer der Henkersknechte
stieg auf den Baum, um dort oben ein Seil zu befestigen. Dann erst wurde
mir bewusst, dass ich mit dem Leben rang, es war keinesfalls nur eine
brutale "Lektion", die mir der Wirt erteilen wollte, sondern es war die
dubiose Rache fuer etwas, was ich ihm wohl angetan haben muss. Natuerlich
musste er vollkommen verrueckt sein, doch ich flehte trotzdem um Gnade,
was bei meinen Drangsalierern nur rauhe Heiterkeit ausloeste.

Nur der Wirt stand schweigend abseits und hielt meine arme Tochter fest,
die schreiend versuchte, zu ihrem Vater zu gelangen. Am Ende ergab ich
mich und beendete meine Versuche, mich zu befreien. Ich sprach zum Wirt:
'Was immer Ihr auch mir antun wollt, warum auch immer, ich bitte Euch,
 verschont meine Tochter. Fuegt Ihr kein Leid zu.'

Wortlos sah mich der Wirt an, er gab seinen Gesellen ein Zeichen, worauf
sie das Seil anzogen. Ich muss geschrieen haben, doch alles, was sie
wohl hoerten, war das gepresste Gurgeln aus meinem abgequetschten Hals.
Bevor die Welt um mich herum schwarz wurde, stiess ich noch einen Fluch
hervor, einen Fluch auf den Wirt und seine Spiessgesellen, der sie fuer
ewig heimsuchen sollte. Dann stuerzte ich in die ewige Dunkelheit des
Todes.

Alle die Helfer und Helfershelfer des Wirts sind tot. Das Schicksal hat
sie auf verschiedene Weise ereilt. Nur der wahre Schuldige steht noch
immer unversehrt, ungestraft, scheinbar unantastbar in seinem alten
Gasthaus, dem "Nebelhof". Ich wuenschte, auch hier wuerde das Schicksal
sich mit mir verbuenden, doch er ist nicht ein einfacher Verrueckter,
oh nein ...

Ich spuere, dass auf ihm bereits ein Fluch lastete, bevor ich mich so an
ihm raechen wollte, ein Fluch, der weit schlimmer zu sein scheint als
alles, wozu Menschen sonst faehig sind. Ich bete zu Kandri, dass er
schliesslich gerichtet wird. Doch wer weiss, vielleicht hat er ja seine
Strafe schon hier im Diesseits erhalten.

Diese Geschichte ist wahr, so mir Kandri helfe. Ich bete auch, dass er
meiner Tochter nichts angetan hat. Sicher streunt sie nun irgendwo umher,
auf der Suche nach Sicherheit, die sie damals verloren hat. Ich habe
nur noch die Hoffnung, dass es ihr gut geht.

Mark Henderson



              *** ARK * the * Magnificent ***


-----------------------------------------------------------------------------



Dos ... (Ark, 12. Jun 2004, 00:10:27):

Die Tuer oeffnete sich, und sofort drang die unerbittliche Kaelte in die
Waerme des Schankraums ein. Ich spuerte sogleich, dass diese vermummte
Gestalt, die das Wirtshaus betrat, eine seltsame Aura besass, deren Namen
man ueberall kennt: Aerger.
Der mit einer kleinen Schneeschicht bedachte Fremde schuettelte sich
ausgiebig, dabei sah er sich mehrmals aufmerksam um, doch die neugierigen
Blicke der uebrigen Gaeste, denen er fuer kurze Zeit ausgesetzt war,
wichen sogleich der Erleichterung, dass kein Yeti oder Winterwolf Einlass
begehrte, sondern ein Mensch aus Fleisch und Blut.
Er kam direkt auf meinen verwaisten Tisch zu und fragte direkt:
'Ist hier noch Platz neben einem Mann der Musik?'
Seine dunkelbraunen Augen musterten mich, sein ungepflegter Bart und das
recht schmutzige Aeussere wollten erst das Ansinnen ablehnend bescheiden,
doch dann ueberwaeltigte mich meine natuerliche Neugier:
'Aber sicher doch, setzt Euch zu mir und lasst uns Geschichten bei einem
 kuehlen Glas Bier austauschen. Ich bin Ffestin Mark, weitgereister Barde
 von einigem Ruf, wenn ich das so sagen darf. Wer seid Ihr und was hat
 Euch in dieses von den Goettern verlassene Wirtshaus verschlagen?'
Er laechelte kurz und liess sich neben mir nieder. Seine ruhige, fast
lethargische Art war mir sogleich sympathisch. Ich begann, nach einer der
beiden Kellnerinnen zu rufen, und sofort ging der Vorhang zum hinteren
Schankraum beiseite, und die rassige Frau von einer Kellnerin stoeckelte
zielsicher auf uns zu.
Wie ueberrascht war ich, als sie, sobald sie den neuen Gast aus der Naehe
erblickte, kreidebleich wurde, und meine Bestellung geistesabwesend, ja,
ich meine sogar nachlaessig aufnahm. All das bekuemmerte meinen Gast wohl
nicht, denn er schien das ueberhaupt nicht zu bemerken. Schweren Herzens
sah ich sie wieder hinter dem Vorhang verschwinden, wohl wissend, dass
sie bald wieder auftauchen wuerde, mit zwei gekuehlten Bierkruegen in den
wohlgeformten weichen Haenden. Sie war eine bemerkenswerte Frau.
Es dauerte nicht lange, und der Vorhang wurde erneut beiseite gezogen,
doch heraus kam nicht meine Herzensdame mit dem Bier, sondern der recht
deutlich missgelaunte dicke Wirt. Schnell naeherte er sich unserem Tisch
und baute sich vor dem mir immer interessanter werdenden Mann auf:
'Was suchst Du hier?'
Die dunkle Stimme wollte Ruhe verbreiten, doch ich bemerkte klar den
gefaehrlichen Unterton, der in dieser Frage mitschwang. Langsam drehte
sich mein Tischnachbar nach dem Wirt um, bis er diesem in die Augen sah:
'Was meinst Du denn, warum? Bin ich hier nicht willkommen?'
Das Gesicht des Wirts begann sich sofort, dunkelrot zu verfaerben, er
atmete heftig vor muehsam unterdrueckter Wut. Am liebsten haette ich mir
ad hoc einen anderen Tisch gesucht, doch mein unbelehrbares Gefuehl
raunte mir schweigend zu, zu bleiben und zu horchen.
Der dicke Wirt schuettelte seine fettige, aber ungemein wuchtige Faust:
'Verschwinde von hier, wie kannst Du es wagen, hier wieder aufzutauchen?
 Ich habe Dir gesagt, Du bist hier nie mehr willkommen. Mach, dass Du
 sofort die Tuer schliesst, aber von aussen.'
Es folgte eine laengere Pause, in der sich die beiden Kontrahenten eine
Weile in die Augen starrten. Schliesslich ruehrte sich der interessante
Gast und stand auf:
'Ich gehe, Trevor, ich lasse Dich alleine. Doch sei vergewissert, das,
 was Du getan hast, bleibt nicht ungesuehnt. Mehr habe ich Dir nicht zu
 sagen.'
Wutschnaubend sah der Wirt zu, wie sich der Mann wieder in seine noch
nassen Sachen wickelte und zur Tuer stapfte, wo er sich noch einmal zum
Wirt umdrehte:
'Eines Tages wirst Du fuer Deine Taten buessen, Trevor Twin.'
Mit diesen Worten oeffnete er die Tuer und betrat erneut die Kaelte des
Grimmswaldes. Zornig stuermte der Wirt wieder zurueck in die andere
Haelfte des Schankraumes.
Ich aber begab mich flink zur Tuer und oeffnete sie. Der Mann war schon
einige Schritte in den Wald gegangen, doch ich folgte ihm furchtlos und
ohne Probleme. Meine Worte stiessen dampfende Kondenswolken in die kalte
Winterluft:
'Wartet, Fremder, so sagt mir doch wenigstens noch, wer Ihr seid? Es ist
 in der Tat ungluecklich, dass unsere Bekanntschaft endet, bevor sie so
 recht begann, aber ich wuerde mich freuen, wenigstens zu wissen, mit
 wem man das Vergnuegen hatte.'
Ohne sich umzudrehen oder mich auch nur eine Pause oder eines Blickes zu
wuerdigen, sagte er leise, so dass ich es kaum vernahm:
'Einige kennen mich unter dem Namen Sergeij Klopek.'
Damit verschwand er in den Tiefen des Waldes. Ich aber schlich gruebelnd
zum Gasthof zurueck, ungewiss, ob diese Begebenheit fuer eine Ballade
genuegend Stoff hergeben wuerde.



              *** ARK * the * Magnificent ***


-----------------------------------------------------------------------------



Tres ... (Ark, 12. Jun 2004, 00:10:53):

Endlich ist es soweit, der Nebelhof ist geoeffnet worden.
Kein alltaeglicher Gasthof, wie ihr schnell feststellen
werdet, seine Bewohner und die Gaeste sind es auch nicht.
Dringend zu empfehlen ist, sich nicht ganz alleine dorthin
zu begeben, denn viele Gefahren lauern, denen man nicht
immer mit dem Schwerte begegnen kann.
Hier setzt sich die Geschichte fort, die im Hause der
Klopeks ihren Ursprung hat, und die noch weiter fortgesetzt
werden wird. Um die spaetere Hauptquest weiterzuspielen,
bedarf es zweier Spieler, die jedoch zuerst dem Ungemach
im Hause der Klopeks auf den Grund gehen sollten. Es ist
recht deutlich erkennbar, wann dieser Teil der Hauptquest,
der etwa die ersten 20% darstellt, beendet ist.
Desweiteren gibt es noch 3 Miniquests und eine Gildenquest
fuer die Zauberer, die zwar alleine bestanden werden, aber
auch hier ist es ratsam, "alleine" nicht allzu streng zu
begreifen.
Eins noch vorweg, bevor es Missverstaendnisse gibt: die
Herausforderungen sind nicht eindimensional, Metzler koennten
sich ebenso wie Forscher und Knobler etwas unwohl fuehlen, es
braucht also eher sowas wie Forschmetzelknobler oder
Knobelmetzelforscher oder Forschknobelmetzler oder ...
Grosser Dank gilt an dieser Stelle Arathorn, der den Wust
sichten durfte und seinen umfangreichen Feedback in langen
Repfileeintraegen gab. Ohne ihn saehe es wahrlich schlimmer
aus ;^)
Nun wuensche ich viel Spass und noch mehr Vorsicht ...


              *** ARK * the * Magnificent ***


-----------------------------------------------------------------------------



Re: Tres ... (Ark, 12. Jun 2004, 00:22:03):
~#! rn=Ark rt=1086991853 rg=d.ebene
~#! tid=1086991853
Die Gildenquest wird wohl erst in ein paar Tagen angeschlossen, nicht, dass
ihr euch wundert.


              *** ARK * the * Magnificent ***


-----------------------------------------------------------------------------



Re: Re: Tres ... (Mupfel, 12. Jun 2004, 00:25:37):
~#! rn=Ark rt=1086992523 rg=d.ebene
~#! tid=1086991853
Bei Dir wundern wir uns ueber gar nicht mehr ;)

-mupfel-

-----------------------------------------------------------------------------



Re: Re: Tres ... (Ark, 14. Jun 2004, 13:30:35):
~#! rn=Ark rt=1086992523 rg=d.ebene
~#! tid=1086991853
Da wohl noch ein wenig Unsicherheit besteht, was man fuer Voraussetzungen
mitbringen muss fuer das neue Gebiet, hier kurz zusammengefasst:
- MiniQuest im Parallelwelthaus, auch irrigerweise als "Para-AdT" bekannt:
Bestandene Quest "Auge des Teufels"
- MiniQuests im und um den Nebelhof:
Keine, allerdings braucht man etwas Hilfe von Spielern, die schon den Weg
kennen, um dorthin zu gelangen.
- Weiterspielen der Hauptquest:
Bestandene Quest "Auge des Teufels" und Besuch im Parallelwelthaus, nur zu
zweit moeglich.

Gildenquest (noch nicht angeschlossen):
Keine Voraussetzung, allerdings auch hier evtl. Hilfe durch Spieler, um zum
Nebelhof zu gelangen.

Wenn trotzdem noch Fragen sind, nur zu :-)


              *** ARK * the * Magnificent ***


-----------------------------------------------------------------------------



Re: Tres ... (Asuka, 17. Jun 2004, 11:29:55):
~#! rn=Ark rt=1086991853 rg=d.ebene
~#! tid=1086991853
So, nachdem Rippor und ich jetzt einige Tage im Gasthaus geforscht und
gequestet haben, moechte ich Ark jetzt doch mal in unser beider Namen
fuer dieses tolle, atmosphaerisch stimmige Gebiet danken. Und auch
dafuer, das er die kleinen Fehler die beim spielen auftraten ruckzuck
beseitigt hat (der Dank geht ebenso auch an Arathorn, der ebenfalls
Bugs beseitigte die beim spielen autraten).

Asuka

-----------------------------------------------------------------------------



Die Diddl-Knuddel-Maus (Whitetiger, 20. Jun 2004, 10:34:42):
... wurde etwas gesaeubert, ueberarbeitet und ein klein wenig erweitert. Sie
sollte jetzt in allen neuen Versionen ein paar Dinge mehr koennen.

Tiger.

-----------------------------------------------------------------------------



Re: Die Diddl-Knuddel-Maus (Whitetiger, 20. Jun 2004, 14:29:58):
~#! rn=Whitetiger rt=1087720482 rg=d.ebene
~#! tid=1087720482
Nach einer weiteren kleinen Umstellung (die wieder nur neugeholte Maeuse
betrifft), ist es nun auch moeglich, gezielt einzelne Verben der Diddlmaus zu
ignorieren, dazu muessen alle Formen einzeln ignoriert werden, also z.B.
"rschnurr" und "rschnurre".
Ausserdem sollte sie im Seherladen nun wieder unter dem richtigen Namen
verkauft werden.

Tiger.

-----------------------------------------------------------------------------



Re: Re: Die Diddl-Knuddel-Maus (Grimmborn, 20. Jun 2004, 21:01:06):
~#! rn=Whitetiger rt=1087734598 rg=d.ebene
~#! tid=1087720482
In dem Fall fehlt tatsaechlich und unbedingt die Moeglichkeit, auch die Maus
als Ganzes zu ignorieren. Ich hab doch wirklich keine Lust, mit der
Ignoriereliste den Speicher des MG-Rechners sprengen zu muessen...

Grimmborn der Atheist

-----------------------------------------------------------------------------



Re^3: Die Diddl-Knuddel-Maus (Whitetiger, 20. Jun 2004, 21:16:53):
~#! rn=Grimmborn rt=1087758066 rg=d.ebene
~#! tid=1087720482
Gibt's schon laengst.

-----------------------------------------------------------------------------



Re: Re: Tres ... (Ark, 23. Jun 2004, 00:02:33):
~#! rn=Asuka rt=1087464595 rg=d.ebene
~#! tid=1086991853
OK, auch auf die Gefahr hin, jetzt ins Rutschen zu kommen, moechte ich mich
auch noch mal bei Euch bedanken, ihr habt ausdauernd *hust* dazu beigetragen,
dass man wesentlich fluessiger *hustanfall* spielen kann. Klingt vielleicht
schleimig, aber ich wollte das mal oeffentlich sagen :-)


              *** ARK * the * Magnificent ***


-----------------------------------------------------------------------------



Re^3: Traurige Nachricht.... (Arathorn,  6. Jul 2004, 21:54:05):
~#! rn=Ragnaroek rt=1084234603 rg=d.ebene
~#! tid=1077049990
> Besagtes Amulett ist sofort wieder nutzbar.

Jetzt sogar mit korrekter Funktionalitaet... ;-)
Falls trotzdem Merkwuerdigkeiten auftreten sollten, einfach kurz Bescheid
geben.

Gruss, Arathorn.

-----------------------------------------------------------------------------



Eine kleine Aenderung ... (Arathorn,  8. Jul 2004, 19:42:44):
... an einer gewissen Sanduhr in der Sieben-Kelche-Quest bewirkt, dass diese
jetzt endlich das tut, was sie soll, und nur noch das. Nix anderes mehr.

Ihr wisst schon. ;)

Vielen Dank an Lurchi fuer den Hinweis.

Gruss, Arathorn.

P.S.: Es ist eine Aenderung, die den Spielern hilft, also keine Beschwerden!

-----------------------------------------------------------------------------



Renovierungsarbeiten (Arathorn, 15. Jul 2004, 20:33:23):
Huhu zusammen. :-)

Die F&E muss nach langer Zeit eine Renovierung ueber sich ergehen lassen,
daher ist es unumgaenglich, das Gebaeude fuer kurze Zeit zu schliessen.
Zeitgleich geht der Weghier auf eine kurze Urlaubreise.

Bitte habt Geduld, das Gebiet wird wirklich nur fuer kurze Zeit unzugaenglich
sein.

Gruss, Arathorn.

-----------------------------------------------------------------------------



Re: Renovierungsarbeiten (Arathorn, 16. Jul 2004, 18:44:35):
~#! rn=Arathorn rt=1089916403 rg=d.ebene
~#! tid=1089916403
Hi, ich bins wieder ;-)

Die Renovierungsarbeiten sind abgeschlossen, die F&E ist wieder zugaenglich.
Der Weghier (oh Wunder *g*) ist aus dem Urlaub wieder zurueck und steht
wie gehabt fuer Eure Wuensche seine Ausruestung betreffend zur Verfuegung.

Falls es Schwierigkeiten, ungewoehnliche Phaenomene oder auch Bugs gibt, 
einfach bei mir melden. Wobei 'ungewoehnlich' in dem Zusammenhang Effekte
betrifft, die bis vorgestern nicht vorkamen. Wenn Ihr krepiert, seid Ihr
nach wie vor in aller Regel selber schuld. ;-)

Gruss, Arathorn.

-----------------------------------------------------------------------------



Wackere Helden gesucht! (Miril, 20. Jul 2004, 15:14:35):

Uralt ist das Gebirge, welches sich Drachenzinnen nennt. Lang die Feindschaft
zwischen dem kleinen Volk und denen, nach denen es benannt wurde. In der 
kleinen Ortschaft, die zu Fuessen der Zinnen liegt, lebt seit eh und jeh 
ein wackerer Zwerg, der seinen Geschaeften nachgeht. Doch die alte Feind-
schaft hat er nicht vergessen. Jahrelang hatte er sich getarnt, um die 
Geheimnisse der Drachen unbemerkt ausspionieren zu koennen, doch nun zeigt
er sich wieder in seiner wahren Gestalt. Mutige Abenteurer koennen bei ihm 
einen Auftrag erhalten.

Miril

-----------------------------------------------------------------------------



Mini-Umzug (Arathorn,  9. Aug 2004, 16:02:23):
Hiho,

soeben hat mein neuer Umzugswagen leider ein paar Erdbeeren von der 
Ladeflaeche verloren. Bitte neu holen.

Danke schoen,
Arathorn.

-----------------------------------------------------------------------------



Unfair! (Hugalf, 21. Aug 2004, 00:33:44):
Ich weiss nicht wie ihr das seht, aber Typen, die meinen, sie muessten einen
vor Todesfallen warnen, wo man selbst reingefallen ist, sind total
ueberfluessig. Ich finde, auch wenn das alles Unfug ist, so sollte doch eine
Todesfalle verdammtnochmal eine solche bleiben und da keine Warner aufgestellt
werden! Das ist total unfair. Wir mussten damals alle da sterben und jetzt
wird man gewarnt. Ich ueberleg mir noch, wie lange ich hier weiterspiele, das
macht ja gar keinen Sinn mehr. Immer derselbe Mist. Die Magier machen alles
anders und unsereiner darf das ausbaden. Immer werden wir schlcht behandelt.
Wir Spieler sind wohl nur das Futter fuer die Magier. Und ueberhaupt.

Heute sinds die Goblins, und morgen wird man bestimmt vor dem Weghier gewarnt.
Immer dasselbe.

Hugalf

-----------------------------------------------------------------------------



Die Hafenstrasse (Arathorn, 23. Sep 2004, 23:40:39):
Huhu zusammen,

die Hafenstrasse von Port Vain sieht jetzt etwas aufgeraeumter aus, was die
vielen Ausgaenge angeht. Ich hoffe, dass sich insbesondere die juengeren
Spieler jetzt etwas besser zurechtfinden werden.

Gruss, Arathorn.

P.S.: Wer bisher mit oben/unten da langrannte, kann das auch weiterhin tun.

-----------------------------------------------------------------------------



Re: Die Hafenstrasse (Nedime, 23. Sep 2004, 23:41:09):
~#! rn=Arathorn rt=1095975639 rg=d.ebene
~#! tid=1095975639
Danke.

-----------------------------------------------------------------------------



Re: Re: Die Hafenstrasse (Bran, 23. Sep 2004, 23:44:17):
~#! rn=Nedime rt=1095975669 rg=d.ebene
~#! tid=1095975639
Da schliess ich mich an - vielen Dank!

-----------------------------------------------------------------------------



Re: Die Hafenstrasse (Roland, 15. Okt 2004, 18:58:56):
~#! rn=Arathorn rt=1095975639 rg=d.ebene
~#! tid=1095975639
och das schoene oben und unten ;)

-----------------------------------------------------------------------------



Nicht viel... (Humni, 26. Okt 2004, 22:36:50):
nur ein kleiner NPC in Port Vain, der ein wenig ueber die Stadt weiss.
Demnaechst weiss er vielleicht auch noch mehr, wenn ihr ihn ausfragt...

Also, Besuch bei Frank!

Humni

-----------------------------------------------------------------------------



Es weihnachtet sehr... (Arathorn, 24. Dez 2004, 17:10:49):
Hallo,

als ich kuerzlich im Westen der Ebene unterwegs war, habe ich festgestellt,
dass sich in der Umgebung einer dort gelegenen Hoehle ein Erdbeben oder 
etwas aehnliches passiert sein muss, denn die Bewohner dort verhalten sich 
anders als ich das bisher kannte. Ausserdem haben sich einige Bereiche der
Hoehle etwas veraendert. Seid also etwas vorsichtiger als sonst, wenn Ihr
mal wieder dort vorbeischaut.

Gruss, Arathorn.

P.S.: Da faellt mir ein, dass ich moeglicherweise mein Werkzeug irgendwo dort
      liegengelassen habe... Wenn das jemand findet - macht damit, was Ihr
      wollt. ;-)

-----------------------------------------------------------------------------



Goblinhoehle (Humni, 26. Dez 2004, 13:25:46):
Huh,

es gibt derzeit irgendwelche Bugs in der Goblinhoehle. Bitte nicht
dorthingehen. Ich koennte das ganze Gebiet abhaengen - dann wuerden Eure
Skripte da aber nicht mehr durchlaufen. Ich denke, es ist fairer, das nicht zu
tun. Arathorn debuggt das Ganze derzeit ohnehin, darum glaube ich, dass der
Hinweis erstmal reicht.

Humni

-----------------------------------------------------------------------------



Re: Goblinhoehle (Arathorn, 26. Dez 2004, 19:10:05):
~#! rn=Humni rt=1104063946 rg=d.ebene
~#! tid=1104063946
Hiho,

Humni hat in der Tat recht, da hat was geklemmt. Mein Fehler, hab was 
geaendert, im Test festgestellt, dass das Murks war, wieder zurueckgeaendert,
aber nicht an eine andere Aenderung gedacht, die in der Zwischenzeit 
erfolgt ist - mit bekanntem Ergebnis. Sowas kommt von sowas, entscheidende
Aenderung nicht getestet... ;-)

Das Problem ist aber jetzt behoben, fraglicher NPC stirbt jetzt auch. ;-)

Gruss und weiter viel Spass,
Arathorn

-----------------------------------------------------------------------------



Ruhet in Frieden... (Chagall, 27. Dez 2004, 15:26:13):
Es wird still, als der Priester vor den kleinen Steinaltar in der Kapelle
tritt.

'Verehrte Gemeinde, wir haben uns heute hier versammelt, um denen zu 
Gedenken die nun nicht mehr unter uns weilen.'

Der Priester macht eine kleine Pause, eher er fortfaehrt.

'Immer wenn die Goetter einen von uns zu sich holen, so ist das fuer uns,
aber vor allem fuer die Angehoerigen ein schlimmer Verlust. Eine Person,
die wir geliebt haben ist von uns gegangen. Nie mehr werden wir ihre
Naehe, ihre Waermen spueren. Mit der Beisetzung hier auf dem Friedhof
endet ein Abschnitt in unserem Leben, ein Abschnitt wo man durch Dick und
Duenn gegangen ist. Man hat gute Zeiten durchlebt, aber auch schlechte
Zeiten. Und dies soll nun mit einem Mal vorbei sein, nur weil der geliebte
Partner, der Vater, die Mutter oder eines der Kinder gestorben ist?'

Der Blick des Priesters schweift ueber die versammelte Gemeinde hinweg.

'Diese Frage kann man nicht mit einem Ja oder einem Nein beantworten. Auf 
der einen Seite ist diese Person nicht mehr fuer einen da, doch auf der
anderen Seite jedoch hat man sich die Erinnerungen bewahrt. Und genau diese
Erinnerungen sollte man sich tief im Herzen bewahren. Denn dadurch ist
die verstorbene Person niemals fern, sie ist immer bei einem, in guten wie
auch in schlechten Zeiten. So lasset uns nun einen Augenblick schweigen
und den Toten gedenken.'

Von draussen ertoent der dumpfe Klang einer Glocke.


-----------------------------------------------------------------------------



Re: Ruhet in Frieden... (Chagall, 27. Dez 2004, 15:34:31):
~#! rn=Chagall rt=1104157573 rg=d.ebene
~#! tid=1104157573
Huhu,

wer sich jetzt fragt, was der vorherige Artikel genau bedeutet, demjenigen
sei empfohlen sich ein wenig in Port Vain umzusehen.

Und da ich grad in Schreiberlaune bin, moechte ich noch einigen Personen
danken, und zwar Tassram, Larina, Madness, Rippor und Gato, welche in
muehseliger Arbeit Typos gesucht haben (was jetzt nicht heisst das der
Friedhof typofrei ist).
Und ich moechte mich bei den Magier noch bedanken, die mir mit Rat und
Tat bei kleineren Problemchen geholfen haben.

MC

-----------------------------------------------------------------------------



Raetsel um den Raetselstein (Arathorn, 28. Dez 2004, 01:33:26):
Hallo zusammen,

in der Raetselstein-Quest ist ein Problem aufgetreten, das ich gerne beheben
wuerde. Dazu bitte ich um kurze Rueckmeldung per Mail oder teile-mit von
denjenigen,

 *** denen IM QUESTGEBIET das Fahrtensaenger-Siegel abhanden gekommen ist ***

Insbesondere interessieren mich die Begleitumstaende (zB wo das passiert ist),
falls Ihr Euch noch daran erinnert.

Hinweis: Wenn man das Siegel verloren hat, bekommt man beim Singen einer
Partitur die Meldung "... fuehlst Dich aber ploetzlich heiser."

Vielen Dank schonmal.

Gruss,
Ara "Bug gesucht, tot oder lebendig, ganz oder in Scheiben" thorn.

-----------------------------------------------------------------------------



Re: Raetsel um den Raetselstein (Arathorn, 28. Dez 2004, 03:57:38):
~#! rn=Arathorn rt=1104194006 rg=d.ebene
~#! tid=1104194006
Hallo Ihr, 

es gibt neues vom Raetselstein. Ich habe mit Tylaks Hilfe das Problem, 
dessentwegen ich um Mithilfe gebeten habe, lokalisieren koennen. Da es dort
moeglicherweise noch mehr Dinge gibt, die repariert werden muessen, ich die
Quest aber erstmal nicht abhaengen wollte (war schon jahrelang so, da machen
ein paar Tage nix), bitte ich bei allen, die die Quest spielen oder spielen
wollen, darum, folgendes unbedingt zu beachten:


Bitte lasst AUF KEINEN FALL das Fahrtensaenger-Siegel fallen oder versucht,
es in einen Behaelter/Paket/Beutel zu stecken.

Weiterhin ist es fuer den Questerfolg sehr guenstig, waehrend des gesamten
Questablaufs NICHT "ende" zu machen.


Wer jetzt damit rumspielen moechte - bitte sehr, aber wer sich dadurch 
Schwierigkeiten mit der Quest einhandelt, muss dann warten, bis alles 
repariert ist. ;-)

Meine Bitte um Informationen gilt uebrigens immer noch. Ich bin nicht sicher,
ob der gefundene Fehler der einzige ist, der die beschriebenen Probleme
ausloest.

Gruss, Arathorn.

P.S.: weitere Updates zum Thema "Raetselstein" findet Ihr dann auch 
      in der MPA.

-----------------------------------------------------------------------------



Re: Es weihnachtet sehr... (Arathorn, 28. Dez 2004, 22:51:12):
~#! rn=Arathorn rt=1103904649 rg=d.ebene
~#! tid=1103904649
Hallo nochmal,

besagtes Gebiet ist jetzt zusaetzlich auch fuer die Forscher unter Euch
etwas eintraeglicher geworden.

Gruss, Arathorn.

-----------------------------------------------------------------------------



Re: Re: Es weihnachtet sehr... (Darklor, 28. Dez 2004, 23:22:59):
~#! rn=Arathorn rt=1104270672 rg=d.ebene
~#! tid=1103904649
:hat keine Ahnung wo das sein soll... ;)

Darklor

-----------------------------------------------------------------------------



Noch sinnlose NPCs... (Humni,  4. Jan 2005, 16:22:08):
Ein neuer, sinnloser NPC...

treibt sich nun in Drachenhort rum. Noch ist er recht sinnlos, sein Sinn wird
demnaechst mal kommen. 


Ok, fuer viele von Euch erfuellt er seinen einzigen Zweck schon jetzt...

Humni

-----------------------------------------------------------------------------



Mysterioese Wegweiser (Esme,  5. Jan 2005, 23:25:12):
Der allseits geschaetzte Rank Xerox hat mir heute folgenden
Brief mit der Bitte um Veroeffentlichung ueberreicht:

' Wackere Helden und Heldinnen,

  Mir wurde letztens berichtet, dass sich einige Wegweiser hier
  in der Umgebung auf wundersame Weise veraendert haben.
  Dringende Geschaefte halten mich zur Zeit davon ab, der Sache
  selber auf den Grund zu gehen, aber vielleicht steht Euch
  ja der Sinn danach.

  Rank Xerox, Waffenhaendler zu Drachenhort '


Viel Spass und vielen Dank an alle, die geholfen haben,

                                Esme die schwarze Verschlingerin

-----------------------------------------------------------------------------



Hunde (Esme,  7. Jan 2005, 15:23:24):
Wegen eines Bugs haben sich die Hunde etwas anders verhalten
als sie sollten. Das ist nun behoben, seid also lieber ein
bisschen vorsichtiger.

MfG Esme die schwarze Verschlingerin

-----------------------------------------------------------------------------



Winterwoelfe (Ark, 10. Jan 2005, 17:54:34):
Man kann sie jetzt vom Waldweg her auch sehen. Wenn sie nicht da sind, sieht
man natuerlich nix, klar, oder? ;)


              *** ARK * the * Magnificent ***


-----------------------------------------------------------------------------



Re: Winterwoelfe (Chagall, 10. Jan 2005, 17:55:20):
~#! rn=Ark rt=1105376074 rg=d.ebene
~#! tid=1105376074
Sowas bloedes, jetzt ist ja der ganze Kick weg, wenn man ins Gebiet rein
geht.

Jammerlappen MC

-----------------------------------------------------------------------------



Re: Re: Raetsel um den Raetselstein (Arathorn, 14. Jan 2005, 19:27:33):
~#! rn=Arathorn rt=1104202658 rg=d.ebene
~#! tid=1104194006
So, hier also das versprochene Update zur Raetselstein-Quest. Ich vermute
nur, dass es nicht so ganz das Update ist, mit dem Ihr gerechnet habt ;-)

Eigentlich war ich der Ansicht, "die paar Tage" bis zur Reparatur waeren
unkritisch, allerdings sagt mir mein Logfile, dass das beschriebene Problem
ganz offensichtlich deutlich regelmaessiger auftritt als gedacht. Deshalb,
und wegen diverser anderer Haesslichkeiten, die bei der Durchsicht der Quest
aufgefallen sind, habe ich mich entschlossen, das gesamte Gebiet fuer einen
ueberschaubaren Zeitraum abzuhaengen.

Sorry dafuer - alles andere wuerde nur noch mehr Umstaende machen. Beschwerden
werden umgehend an Troy weitergeleitet. ;-)

Gruss, Arathorn, mal wieder das grobe Beil schwingend.

-----------------------------------------------------------------------------



Die Logbuch-Quest ... (Arathorn, 18. Jan 2005, 19:06:00):
... ist - nein, nicht abgehaengt, keine Sorge. ;-) Das Gebiet ist nun aber
fuer Forscher etwas lukrativer geworden.

Viel Erfolg,
Arathorn.

-----------------------------------------------------------------------------



Goblins (Arathorn, 22. Jan 2005, 14:28:06):
Hiho,

ein gewisser Goblinspiess hat seine Faehigkeiten wiedererlangt.
Besten Dank an die Balance fuer die flotte Bearbeitung. :)

Gruss, Arathorn.

-----------------------------------------------------------------------------



Schwertmeisterschwert (Arathorn,  2. Feb 2005, 22:28:53):
Huhu zusammen. :-)

Das Schwertmeisterschwert hat eine gewisse Umwertung erfahren, was das
Verlernen der zugehoerigen Waffenfertigkeit angeht.
Ihr solltet jetzt auch bei Nichtbenutzung des Schwertes deutlich weniger
davon verlernen als bisher. Das gilt nicht nur fuer neue, sondern auch fuer
alle schon im Spiel befindlichen Schwerter.

Gruss, Arathorn.

-----------------------------------------------------------------------------



Re^3: Raetsel um den Raetselstein (Arathorn,  6. Feb 2005, 00:51:08):
~#! rn=Arathorn rt=1105727253 rg=d.ebene
~#! tid=1104194006
Hallo zusammen.

Es sind ein paar Tage mehr geworden als erwartet, dafuer solltet Ihr jetzt
(hoffentlich) weniger Probleme beim Spielen der Raetselstein-Quest haben
als zuvor.

Ich bitte jedoch nach wie vor darum, mich ueber evtl. auftretende 
"Merkwuerdigkeiten" zu informieren, damit ich die entsprechenden Stellen
falls erforderlich nochmal anschauen und nacharbeiten kann - wo gehobelt
wird, fallen Spaene. ;-)

Viel Spass.

Gruss, Arathorn, das Beil wieder wegsteckend.

-----------------------------------------------------------------------------



Ein verschliessbares Nekromantiebuch ... (Ark, 20. Feb 2005, 23:55:59):
... kann nun auch von _zauber_kundigen Dunkelelfen benutzt werden. Nicht, dass
es vorher schon aufgefallen waere, dass diese es bisher nicht konnten :-)


              *** ARK * the * Magnificent ***


-----------------------------------------------------------------------------



Re: Ein verschliessbares Nekromantiebuch ... (Darklor, 20. Feb 2005, 23:57:37):
~#! rn=Ark rt=1108940159 rg=d.ebene
~#! tid=1108940159
Tja die wusste wahrscheinlich gar nich, dass das moeglich sein sollte... ;)

Darklor

-----------------------------------------------------------------------------



Mausquest (Ark, 27. Feb 2005, 18:36:52):
Hier sind jetzt einige dubiose Insiderfragen entruempelt und mit neuen ersetzt
worden. Das betrifft natuerlich nicht die Magierfragen, aber um die geht es
auch weniger :-)


              *** ARK * the * Magnificent ***


-----------------------------------------------------------------------------



Sandtiger (Arathorn,  2. Mar 2005, 19:46:38):
Hallo zusammen

Der Sandtiger nimmt jetzt auch wieder Info-Formulare entgegen (was wohl in
letzter Zeit nicht so recht funktionierte).

Gruss, Arathorn.

-----------------------------------------------------------------------------



Kampfbrot (Arathorn, 18. Mar 2005, 21:46:47):
Hallo zusammen,

diesmal hat das Kampfbrot eine kleine Aenderung erfahren, und zwar wurde
auch hier das Verlernen ausgebaut.

Gilt wie meist ueblich nur fuer neu geholte Brote.

Viel Spass damit.
Gruss, Arathorn.

-----------------------------------------------------------------------------



Re: Kampfbrot (Zardoz, 18. Mar 2005, 23:01:52):
~#! rn=Arathorn rt=1111178807 rg=d.ebene
~#! tid=1111178807
Na dann wuensche ich guten Appetit! :-)

-----------------------------------------------------------------------------



Seherraeuber (Arathorn, 21. Mar 2005, 12:39:04):
Hallo zusammen,

da es heute vormittag bei den Seherraeubern ein wenig gebuggt hat, habe ich
die Gelegenheit genutzt, nicht nur den eigentlichen Bug (hoffentlich) zu
beheben, sondern auch einige andere potentiell bug-gefaehrdete Stellen etwas
zu modifizieren.

Falls sich die Raeuber ploetzlich deutlich anders verhalten sollten als
frueher, bitte ich um kurze Nachricht.

Viel Spass weiterhin mit den Herrschaften.

Gruss, Arathorn.

-----------------------------------------------------------------------------



Re: Kampfbrot (Ogo, 30. Mar 2005, 04:02:25):
~#! rn=Arathorn rt=1111178807 rg=d.ebene
~#! tid=1111178807
Ausgebaut im Sinne von Wein oder im Sinne von Kaefern?

Ogo, der Verlernen Ausbauen im ersteren Sinne doof findet

-----------------------------------------------------------------------------



Raetselstein die x-te (Miril,  9. Apr 2005, 00:02:35):
Es wurden mal wieder kleine Schoenheitsoperationen an wichtigen Questitems
vorgenommen, die ja immer noch dazu neigen, sich unbemerkt in Luft 
aufzuloesen.
Sollten sie das weiterhin tun, oder sonstige Probleme damit auftreten (diesmal
speziell mit dem Siegel), dann koennt ihr euch wie immer vertrauensvoll an
Arathorn oder mich wenden.

Miril

-----------------------------------------------------------------------------



Und wieder ist es passiert. (Arathorn, 12. Apr 2005, 23:04:30):
Hallo zusammen,

der Fehler mit den Partituren ist hoechstwahrscheinlich gefunden, aber ich 
kann ihn leider nicht selbst beheben. Bis dahin muss ich, um
weitere Probleme dieser Art zu verhindern, das Questgebiet mal wieder
abhaengen *seufz*

Ich bitte um ein wenig Geduld, die Quest ist aber in Kuerze wieder spielbar.

Gruss, Arathorn.

-----------------------------------------------------------------------------



Re: Und wieder ist es passiert. (Grimmborn, 12. Apr 2005, 23:10:44):
~#! rn=Arathorn rt=1113339870 rg=d.ebene
~#! tid=1113339870
Schoen dass Du auch dazuschreibst um welche Quest es geht. Aber Deiner
Formulierung nach scheint es "die uebliche" zu sein, was mir bestimmt was
sagen wuerde wenn ich betroffen und daher aufmerksamer waere...

GdA

-----------------------------------------------------------------------------



Re: Re: Und wieder ist es passiert. (Arathorn, 12. Apr 2005, 23:56:38):
~#! rn=Grimmborn rt=1113340244 rg=d.ebene
~#! tid=1113339870
Hm, Du hast natuerlich recht. ;-) Wenn man sich 4 Wochen lang nur mit Bugs
in immer derselben Quest rumschlaegt, ist's irgendwann so selbstverstaendlich,
dass es um diese geht, dass man das ueberhaupt nicht mehr fuer erwaehnenswert
haelt...

Ums klarzumachen: Raetselstein ist temporaer abgehaengt.

Gruss, Arathorn.

-----------------------------------------------------------------------------



Re^3: Und wieder ist es passiert. (Zarniya, 13. Apr 2005, 15:05:17):
~#! rn=Arathorn rt=1113342998 rg=d.ebene
~#! tid=1113339870
wenn Grimmi nicht schon an AltersAlzheimer leiden wuerde, dann haette er die
Quest an der Kombination der Worte "Partituren" und "Fehler" erkannt.

Marc

-----------------------------------------------------------------------------



Re^4: Und wieder ist es passiert. (Rochus, 14. Apr 2005, 22:12:39):
~#! rn=Zarniya rt=1113397517 rg=d.ebene
~#! tid=1113339870
Da muss ich Dir ausnahmsweise zustimmen ;)

-----------------------------------------------------------------------------



Re: Und wieder ist es passiert. (Arathorn, 17. Apr 2005, 15:49:44):
~#! rn=Arathorn rt=1113339870 rg=d.ebene
~#! tid=1113339870
So, dank des "Magiertreffs im Merlin" ist der Bug behoben und die
Raetselsteinquest demzufolge endlich wieder zugaenglich.

Viel Spass! 

Gruss, Arathorn.

-----------------------------------------------------------------------------



Sowas. (Humni, 29. Mai 2005, 22:41:36):
Seltsame Kunde ueberkam mich aus gar nicht fernen Landen: Ein altes Dorf, das
schon lange auf diversesten Schildern angekuendigt wurde, steht nun hier.
Nicht weit von Port Vain, und doch scheint man an diesem Ort eigene
Traditionen zu pflegen, die schlimmste ist der grauenhafte Dialekt, der kein
Typo ist. Beim ersten Durchlaufen schien es dieserorts auch Probleme zu geben.
Wobei diese weniger von der Dorfbevoelkerung im eigentlichen Sinne stammen.

Aber seht selbst.

Viel Spass.

Humni

-----------------------------------------------------------------------------



BEKANNTMACHUNG (Miril, 30. Mai 2005, 17:06:36):
          fuer die Heldinnen und Helden des MorgenGrauen
          
Heute, am 30.05.2005 habe ich die grosse Ehre, folgendes bekannt zu geben:

Die Obersten unter den Maechtigen dieser Welt haben sich entschlossen, am
heutigen Tage einen Orden ins Leben zu rufen, der allen Bewohnern des Morgen-
Grauen offen steht. Er nennt sich

                   FRATERNITAS DONO ARCHMAGORUM
                   
und hat seinen Sitz in der Erzfeste, die jahrhundertelang vor den Blicken 
aller Bewohner dieser Welt verschlossen war. Erst vor einiger Zeit erschien
sie an dem ihr zugewiesenen Ort, den "gruenen Dreizehn", einem unscheinbaren
Huegelgebiet westlich der grossen Stadt Port Vain. Meine Familie hat den 
Auftrag bekommen, diesen Orden zu gruenden, ueber die Erzfeste zu wachen und 
jeden, der grosse Taten vorzuweisen hat, angemessen zu belohnen.

Wahre Heldinnen und Helden gibt es sowohl unter den einfachen Leuten als auch
unter den Sehern. Sie moegen uns aufsuchen, mit unseren Mitgliedern sprechen 
und angemessen fuer ihre Taten zum Wohle des MorgenGrauen belohnt werden. 
Scheut nicht den langen Weg, scheut kein schlechtes Wetter und ihr werdet 
bekommen, was euch zusteht. Manches Geschenk wird sich euch erst eroeffnen, 
wenn ihr einmalig diese Welt nicht schlafend verlasst, sondern eure Anwesen-
heit hier beendet. Aber das mag es wert sein. Ob dies wirklich noetig ist, 
solltet ihr im Einzelfall selbst herausfinden.

Hochachtungvoll
   Sieglinde Graefin vom Berg, Vorsteherin der Fraternitas Dono Archmagorum

Viel Spass wuenschen Miril und Muadib

-----------------------------------------------------------------------------



Re: BEKANNTMACHUNG (Muadib, 31. Mai 2005, 13:42:59):
~#! rn=Miril rt=1117465596 rg=d.ebene
~#! tid=1117465596
Nur um Aerger zu vermeiden: Wer sich eines der Geschenke ohne Ende abholt, der
sollte sich nicht wundern, wenn sie nach einem Crash/Reboot nochmal abgeholt
werden muessen.

Die Unanehmlichkeit ist damit begruendet, dass ich die aktuelle Uptime noch
nicht beenden wollte.

Gruss

Muadib

-----------------------------------------------------------------------------



Warnung (Arathorn, 19. Jul 2005, 01:11:02):
Hallo zusammen,

selbst ein so altes Gebiet wie die Ebene ist nicht unveraenderlich. Ich
habe heute nachmittag festgestellt, dass der Nablasumpf sich aus unerfind-
lichen Gruenden etwas weiter ausgedehnt hat, als das bis vor kurzem noch
der Fall war. Ich suche noch nach der Ursache, wollte aber schonmal warnen,
sicherheitshalber nicht zu tief in den Sumpf zu stapfen. Nach ersten
Erkenntnissen koennte es sich um eine Veraenderung aufgrund goettlichen
Eingreifens handeln.

Seid vorsichtig.

Gruss, Arathorn.

-----------------------------------------------------------------------------



Fraternitas die 2. (Miril,  6. Aug 2005, 14:56:35):

Hiermit moechte ich allen Sehern kundtun, dass sie sich nun bei mir melden
koennen, falls sie denn wuerdig sind.

Hochachtungsvoll
    Sieglinde vom Berg


Viel Spass wuenschen Muadib und Miril

-----------------------------------------------------------------------------



Monster (Nedime,  4. Nov 2005, 21:10:18):
Der heisse Atem meiner Mutter wird mir immer in Erinnerung bleiben, so wie
die weiten Schwingen meines Vaters. Damals in unserer Hoehle im Wald, als
wir in Frieden und Eintracht lebten. Ich spielte mit Bruamniflas und dem 
kleine Wildfang Brumlina. Mein aeltester Bruder brachte mir bei, wie man
jagt. Er liebte den Fruehling ueber alles und gemeinsam zogen wir ueber
die Waelder hinweg und waren gluecklich.

Doch dann kam er, der schreckliche Tag. Der Tag, der alles veraendern 
sollte. Mordend und brandschatzend fielen die Monster ueber uns her,
mit ihren magischen Waffen, Feuerbaellen und gemeinen Fallen. Sie liessen
uns keine Chance, und nach und nach schlachteten sie erbarmungslos alle ab.
Sogar vor der kleinen Brumlina machten sie nicht halt. Als meine Mutter
sah, dass alles verloren war, schlug sie mir den Weg frei. Ich konnte 
fliehen. Tagelang, jahrelang schlug ich mich durch, bis ich endlich eine
Heimstatt fand. 

Dort sitze ich nun, und weiss nicht, ob ich Rache ueben
soll an den Monstern, die mein Leben zerstoerten. Rache ist schlecht, sie 
liegt nicht in meiner Natur. Und doch will ich es nicht ungesuehnt lassen.
Was soll ich tun? Gelehrt hat man mich, die Gewalt zu meiden, wo immer ich
kann. Wird es trotzdem eine Moeglichkeit geben? Ich brauche Rat und so 
wende ich mich nun an den, der mich zu finden vermag und es wagt mir zu
helfen.

Viel Spass wuenschen Miril und Muadib

-----------------------------------------------------------------------------



Magische Wege (Miril,  9. Apr 2006, 11:45:04):
                           Bekanntmachung

In letzter Zeit wurde ich haeufiger von Mitgliedern unseres Ordens 
angesprochen, ob ich denn nicht einmal die Maechtigen wegen der 
Anforderungen konsultieren koennte, die Lezz an die Helden stellt.
Uns ist zu Ohren gekommen, dass die Maechtigen vor einiger Zeit schon
den Status des Sehenden frueher an wahre Helden vergeben, als es vormals
der Fall war.
Daraufhin habe ich mich entschlossen, die Maechtigen zu bitten, auch uns
zu gestatten, schon etwas unerfahreneren Helden eine Einweisung in die
Nutzung der magischen Wege geben zu duerfen. Sie haben meiner Bitte 
entsprochen, da dieses Geschenk ansonsten fast seinen Nutzen verloren haette.

Wenn ihr also von Lezz bislang abgewiesen wurdet, solltet ihr ihn noch
einmal aufsuchen.

Mit schwesterlichem Grusse
Sieglinde vom Berg, Ordensvorsteherin der Fraternitas Dono Archmagorum

-----------------------------------------------------------------------------



Saeurebaelle (Arathorn,  9. Aug 2006, 20:21:31):
Hallo zusammen,

wie ich gerade eben festgestelle habe, ist die Qualitaet der modernen Waren
nicht mehr so wie frueher. Die Daerme, in die gewisse Saeurebaelle gehuellt
sind, scheinen weniger reissfest zu sein als noch vor kurzem. Wundert Euch
bitte nicht, wenn sie scheinbar ohne Euer Zutun einfach so platzen.

Gruss, Arathorn.

-----------------------------------------------------------------------------



Re: Saeurebaelle (Grimmborn,  9. Aug 2006, 21:27:28):
~#! rn=Arathorn rt=1155147691 rg=d.ebene
~#! tid=1155147691
Dreckskapitalismus. Vermutlich waren die neuen Huellen im Hunderterpack eine
Muenze billiger, und wie ueblich muss der user das dann ausbaden. Und da soll
man nicht sauer werden!

GdA

-----------------------------------------------------------------------------



Re: Re: Saeurebaelle (Zook,  9. Aug 2006, 21:29:15):
~#! rn=Grimmborn rt=1155151648 rg=d.ebene
~#! tid=1155147691
Reine Spekulation!

Zook.

-----------------------------------------------------------------------------



Gewisse Spruehdosen... (Arathorn, 14. Okt 2006, 00:09:20):
... haben jetzt keine unbegrenzte Fuellmenge mehr und auch die (jetzt
richtig geschriebenen) Graffitis haben ein wenig von ihrer Haltbarkeit
eingebuesst.
Falls im Zuge der Aenderung einige Spruehdosen das Zeitliche gesegnet haben
sollten: sorry. ;-)

Gruss, Arathorn

P.S., @Rumata: Der (eigentlich wohl korrekte) Singular "Graffito" ist im
Deutschen eher unueblich und wird daher hier nicht verwendet :-)

-----------------------------------------------------------------------------



Daemonenburg (Arathorn, 13. Nov 2006, 23:59:15):
Hallo zusammen,

ich habe heute einige technische Aenderungen an verschiedenen NPCs in der
Daemonenburg vorgenommen. Diese betreffen lediglich die Bewegung der
NPCs, nicht die Kampfeigenschaften oder ihre Items. Solltet Ihr ungewohntes
Verhalten oder andere Merkwuerdigkeiten an der Bewegung und den Aufenthalts-
orten der NPCs feststellen, gebt bitte kurz bescheid. Danke.

Gruss, Arathorn.

-----------------------------------------------------------------------------



Re: Daemonenburg (Kellybundy, 14. Nov 2006, 20:39:14):
~#! rn=Arathorn rt=1163458755 rg=d.ebene
~#! tid=1163458755
Putzteufel V2? Noch nerviger, noch gemeiner, klaut jetzt auch die Leitern
unter den Lichtdaemonen? *GG*
SCNR, Dumpfi

-----------------------------------------------------------------------------



Noch son Suchtie... (Zesstra, 18. Nov 2006, 20:21:28):
Huhu,

in Port Vain laeuft so ein Typ rum, der offenbar dringend was braucht. Ihr
koennt ja mal schauen, ob ihr das Beduerfnis erfuellen koennt. ;-)

(Das ist natuerlich primaer fuer Anfaenger gedacht, die ihre ersten Schritte
in Port Vain machen. Die Mini-Mini-Mini-Aufgabe erledigen kann aber natuerlich
jeder. ;-) )

Zesstra

-----------------------------------------------------------------------------



Re: Noch son Suchtie... (Key, 18. Nov 2006, 21:20:35):
~#! rn=Zesstra rt=1163877688 rg=d.ebene
~#! tid=1163877688
Ich habe sein weltliches Problem geloest ;)

-----------------------------------------------------------------------------



Wandelbares Chamaeleon (Arathorn,  5. Apr 2007, 00:24:54):
Hallo zusammen,

ueber den letzten Monatswechsel hinweg offenbarte sich der etwas skurrile
Humor von Mutter Natur in einer seltenen Genmutation der Chamaeleons von
Kantharr, die dazu fuehrte, dass diese sich so gut tarnten, dass man sie
nicht mehr nur schwer, sondern gar nicht mehr entdecken konnte.

Zuerst sah es, passend zum Datum, nach einem Aprilscherz aus, aber eine
genauere Betrachtung machte einige Reparaturen erforderlich. Diese sind
jetzt fertig und die Chamaeleons sollten sich wieder wie gewohnt verhalten.

Falls doch noch Unstimmigkeiten auftreten - Mail an mich.

Gruss, Arathorn.

-----------------------------------------------------------------------------



Filo (Arathorn,  5. Apr 2007, 11:55:06):
Hi zusammen,

nach einigen Beschwerden ueber sein Verhalten habe ich nochmal eindringlich
mit Filo geredet, aber er wollte zunaechst nicht auf mich hoeren. Ein gemein-
samer Besuch bei der Allwissenden Muellhalde brachte doch noch einen 
Fortschritt: Wir haben uns darauf verstaendigt, dass es voellig ausreicht,
den ohnehin schon ueberall herumliegenden Kram einzusammeln und zur
Muellhalde zu schleppen, und es daher nicht noetig ist, auch noch die
Gegenstaende aus den Seherhaeusern mitzubringen. Zumal es ja auch sehr
unhoeflich den Besitzern gegenueber ist.
Filo hat das eingesehen und uns versprochen, nichts mehr mitzunehmen, wenn
er mal in Seherhaeusern vorbeischauen sollte. Er moechte sich auf diesem
Wege auch noch einmal bei allen entschuldigen, denen durch sein Verschulden
etwas abhanden kam.

Gruss, Arathorn.

P.S.: Sollte er wider Erwarten doch die Finger nicht von Euren Sachen lassen,
      schickt mir einfach eine Mail.

-----------------------------------------------------------------------------



Re: Filo (Darklor,  6. Apr 2007, 22:29:31):
~#! rn=Arathorn rt=1175766906 rg=d.ebene
~#! tid=1175766906
Immer diese fiesen NPC's...


Darklor

-----------------------------------------------------------------------------



Die Quest 'Sams Logbuch' ... (Arathorn, 18. Apr 2007, 00:21:41):
... hat nun einen auch mit "grafik aus" anstaendig lesbaren Steckbrief sowie
eine ebensolche Seekarte. Sollten in dieser oder anderen Quests in der Ebene
weitere Probleme dieser Art auftreten: meldet Euch.

Gruss, Arathorn.

-----------------------------------------------------------------------------



Die Quest "Hilf dem Architekten". (Arathorn, 22. Apr 2007, 12:37:24):
Hallo zusammen,

ich habe gerade eine umfangreichere Aenderung an den Kartenteilen der
Architekten-Quest eingespielt. Die Aenderung hat mit dem bei allen Magiern
beliebten Befehl "grafik aus" zu tun. Wer die Quest schon kennt, dem verrate
ich nix neues, wenn ich sage, dass die Kartenteile eine Grafikausgabe
mitbringen. Diese Grafikausgabe habe ich um entsprechende Textbeschreibungen
ergaenzt, die im Falle von "grafik aus" ausgegeben werden. Fuer diejenigen,
die nach wie vor mit Grafikausgabe spielen, hat sich das Verhalten der
Karten nicht geaendert. Fuer alle anderen gibt es jetzt zwei neue Befehle,
die es erlauben, gezielt auf die jeweiligen Beschreibungen zuzugreifen.

Sollte es mit den Texten, der Funktionalitaet, oder sonst etwas in der Quest
Schwierigkeiten geben, meldet Euch bitte umgehend.

Ach so, noch etwas. Ich moechte an dieser Stelle den Hinweis anbringen, den
auch der Architekt zur entsprechenden Zeit geben wird: Solltet Ihr 
"grafik aus" eingestellt haben, weil Ihr blind seid, dann empfehle ich,
als Begleiter solche Spieler mitzunehmen, die die Kartengrafik sehen koennen.
Ich denke, dass die Quest mit den Aenderungen auch komplett ohne Grafik
spielbar sein muesste, es wird aber vermutlich wesentlich einfacher, wenn
jemand dabei ist, der die Grafik sieht.
Ich moechte auch um Verstaendnis dafuer bitten, dass zur Zeit der Entstehung
dieser Quest noch niemand daran gedacht hat, dass es erforderlich sein
koennte, das gesamte Gebiet grafikfrei zu bauen. Das fuehrt leider in der
Folge dazu, dass die Quest zu einem nicht unerheblichen Teil auf die
Grafikanzeige angewiesen ist, um Hinweise zur Aufgabenstellung zu geben.

Ich hoffe, ich konnte die Grafik ausreichend beschreiben und die wesentlichen
Hinweise einbauen, so dass Ihr zurechtkommt. Nochmal der Aufruf: Wenn es
Probleme gibt, meldet Euch.

Gruss, Arathorn.

-----------------------------------------------------------------------------



Hilfe oder Verrat? (Zesstra, 28. Mai 2007, 20:27:42):
Huhu,

ihr habt von jetzt an die Gelegenheit, den wohl unfaehigsten Kreaturen, die in
der Ebene rumlaufen, etwas zu helfen... Obs ihnen wirklich hilft, wage ich
zwar zu bezweifeln, aber nen Versuch ists vielleicht wert...

Zesstra

-----------------------------------------------------------------------------



Eraditor (Zesstra, 24. Sep 2007, 15:22:37):
Auf besonderen Wunsch hin gebe ich bekannt, dass ich den Eraditor in der
Daemonenburg bugfixenderweise veraendert hab, was sich im Kampf bemerkbar
machen koennte. 
Viel Spass

Zesstra

-----------------------------------------------------------------------------



Wolfsfelle ... (Ark,  2. Dez 2007, 21:27:34):
... erfreuen Zauberer vielleicht jetzt noch mehr.


              *** ARK * the * Magnificent ***


-----------------------------------------------------------------------------



Das Metzelorakel. (Arathorn, 16. Jan 2008, 00:11:04):
Hallo zusammen,

ich habe heute eine neue Version des Metzelorakels eingespielt, weil einige
unschoene Nebenwirkungen auftraten, deren Behebung umfangreichere interne
Aenderungen erforderte. Als Folge davon sollte sich fuer Euch erstmal nichts
aendern, allerdings duerften Euch zwei Kleinigkeiten auffallen:

1) Aus saemtlichen Toplisten sind die Duplikate verschwunden. Der einzige
   Fall, in dem ein Spieler mehrfach in derselben Liste auftauchen kann, ist,
   dass er mit unterschiedlichen Helfern im Einsatz war.

2) Der Schamane fertigt seine Todesrunen neuerdings stilvoll lieber aus Ton
   an statt wie bisher aus Schiefer. Ton hat bezueglich der Funktion der
   Rune allerdings einen kleinen Nachteil: Er bindet Magie wesentlich
   effizienter als der bisher verwendete Schiefer. Daher dauert es etwas
   laenger, bis die Information ueber den Tod des NPCs bei Chinkuwaila
   angekommen ist - man koennte sich das wie eine Art magischer Brieftaube
   vorstellen. Fuer Euch Metzelwuetige heisst das letztendlich, dass Ihr
   im Raum neben der Leiche des NPCs stehenbleiben muesst, wenn Ihr wollt,
   dass der Kill ordnungsgemaess gezaehlt wird.

Viele Gruesse und weiterhin viel Spass mit dem Orakel.
Sollte es Probleme geben, bitte einfach melden.

Arathorn.

-----------------------------------------------------------------------------



Re: Das Metzelorakel. (Arathorn, 16. Jan 2008, 00:13:43):
~#! rn=Arathorn rt=1200438664 rg=d.ebene
~#! tid=1200438664
Achso, ich vergass: Stehenbleiben natuerlich nur, bis der Kill auf der Ebene
vermeldet wurde. :-)

Arathorn.

-----------------------------------------------------------------------------



Re: Re: Das Metzelorakel. (Arathorn, 17. Jan 2008, 23:59:31):
~#! rn=Arathorn rt=1200438823 rg=d.ebene
~#! tid=1200438664
Eine weitere Kleinigkeit wurde nachgeruestet: Frisch erlegte Monster werden
jetzt fuer eine gewisse Zeit nicht mehr neu als Auftraege ausgegeben, um
ihnen ausreichend Zeit zu geben, wieder in das Diesseits zurueckzukehren.
Falls Ihr Probleme bemerkt: wie immer einfach melden.

Gruss, Arathorn.

-----------------------------------------------------------------------------



Re^3: Das Metzelorakel. (Arathorn, 18. Jan 2008, 00:02:30):
~#! rn=Arathorn rt=1200610771 rg=d.ebene
~#! tid=1200438664
Achso, und wieder eine Zusatzinfo: Das gilt natuerlich nur fuer Monster, die
im Rahmen eines Auftragsmordes fuer den Schamanen erledigt wurden. Wenn Euch
jemand anderes ein Monster vor der Nase wegklopft, kann Euch auch dieses
neue Feature nicht helfen. :)

-----------------------------------------------------------------------------



Die Seherraeuber... (Arathorn, 28. Jul 2008, 23:37:54):
... haben gelernt, etwas genauer zu zielen, wenn sie etwas wegwerfen, so
dass jetzt nichts mehr wirklich abhanden kommen sollte.

Wenn das trotz Testens nicht gescheit funktioniert, meldet Euch.

Gruss, Arathorn.

-----------------------------------------------------------------------------



Zardoz Monolith (Ennox, 14. Sep 2009, 23:14:23):
wird jetzt wieder von den Maechten des Chaos regiert. Danke an Arathorn fuer
sein Ok.

Ennox, haendereibend

-----------------------------------------------------------------------------



Heimelige Adventszeit... (Zesstra, 30. Nov 2009, 20:55:48):
Huhu,

auch dieses Jahr gibt es an gewohnter Stelle ab morgen wieder einen gewissen
Weihnachtstroll, welcher ein paar alte und neue Aufgaben fuer die Forscher
unter euch hat. ;-) Damit wuenschen wir euch schonmal viel Spass fuer die
naechsten paar Wochen!
Allerdings habe ich es nicht geschafft, soviel neues unterzubringen, wie ich
mir gewuenscht haette, weil ich noch an etwas anderem fuer euch arbeite. Wer
mich auch noch waehrend der naechsten Tage mit konkreten Ideen fuer Tuerchen
unterstuetzen mag, moege mir bitte eine Mail schreiben. ;-)

In Kuerze - leider nicht mehr heute - wird es fuer die Seher unter euch auch
eine weitere Aufgabe geben. Diese koennt ihr parallel machen, wenn ihr das
wollt, ihr muesst euch nicht fuer eine entscheiden. Diese Aufgabe fuer Seher
wird etwas gefaehrlicher werden als das, was ihr bisher zur Adventszeit kennt.

Zesstra

-----------------------------------------------------------------------------



Re: Heimelige Adventszeit... (Ark, 30. Nov 2009, 21:28:25):
~#! rn=Zesstra rt=1259610948 rg=d.ebene
~#! tid=1259610948
Um Fragen gleich vorzubeugen ... ja, es ist eine kleine Miniquest und ja, sie
laesst sich nur im Dezember loesen ... also die Aufgabe in Normal :-)


              *** ARK * the * Magnificent ***


-----------------------------------------------------------------------------



Re: Heimelige Adventszeit... (Zesstra,  3. Dez 2009, 23:12:35):
~#! rn=Zesstra rt=1259610948 rg=d.ebene
~#! tid=1259610948
Hat leider etwas laenger gedauert, aber...

Fuer Seher, die eine Herausforderung suchen, lohnt sich jetzt ein Besuch im
Grimmswald der Parawelt. Dort braucht ein kleiner Weihnachtstroll naemlich
dringend die Hilfe von gestandenen Helden.
Diese Aufgabe koennt ihr ebenfalls bis zum Ende des Jahres spielen. Allerdings
sollte man je nach Schwierigkeit mit Sicherheit deutlich eher anfangen.
Wie schwer ihr es euch macht, haengt von euch selbst (und natuerlich etwas
'Wuerfelglueck') ab. Waehlt weise, damit ihr euch weder langweilt noch
frustriert aufgebt.

Ich hoffe, ihr habt etwas Spass und Nervenkitzel daran. :-)

Mein Dank fuer die Unterstuetzung bei der Bastelei gehen vor allem an Ark,
Arathorn und Tassram. :-)

Ueber Kommentare und Anregungen freue ich mich, je nach Komplexitaet der
Anregung setze ich auch gerne noch dieses Jahr etwas davon um.

Zesstra

-----------------------------------------------------------------------------



Re: Re: Heimelige Adventszeit... (Zesstra, 24. Dez 2009, 10:00:51):
~#! rn=Zesstra rt=1259878355 rg=d.ebene
~#! tid=1259610948
Huhu,

ich muss euch leider mitteilen, dass ich die Belohnung, welche ich dem
Para-Weihnachtstroll geben wollte, aus persoenlichen Gruenden nicht
rechtzeitig fertig gekriegt habe.
Daher muss ich euch um etwas Geduld bitten. Der Troll merkt sich jedoch eure
Hilfe auch weiterhin und wird sich spaeter revanchieren.
Seid also nicht allzu verwundert, wenn der Troll euch nichts gibt, auch wenn
ihr ihm 24 Geschenke wiederbeschafft und vorbeigebracht habt - kommt noch. ;-)

Zesstra

-----------------------------------------------------------------------------



Ein Silberstab... (Arathorn,  1. Jan 2010, 20:58:15):
... wurde ein wenig angepasst. Bereits existierende Gegenstaende wurden
ersetzt.

Gruss, Arathorn.

-----------------------------------------------------------------------------



Das magische Xanti-Schwert (Arathorn,  7. Feb 2010, 13:51:48):
Hiho,

besagtes Schwert hat sich einige Zeit lang durch einen Bug geweigert, sich
ordnungsgemaess aufzuloesen, wie es vorgesehen war. Ich habe dem Schwert
gerade mal Manieren beigebracht und es ueberzeugen koennen, sich ab sofort
wieder korrekt zu verhalten. Diese Einsicht fuehrte allerdings auch dazu,
dass alle bereits exisiterenden Schwerter dieser Art ihr Versaeumnis
nachgeholt haben. Wundert Euch also nicht, wenn Euer Waffenguertel ploetzlich
leichter geworden sein sollte, bzw. Euer Waffenschrank etwas geraeumiger
erscheinen sollte. :-)

Gruss, Arathorn

-----------------------------------------------------------------------------



Die Falltuer ... (Arathorn, 19. Mar 2010, 00:41:31):
... in der Stadt im Buch sollte jetzt (wieder) keine Begleiter mehr
zerstoeren. Falls dort dennoch jemand auf Schwierigkeiten stoesst, bitte
wie gehabt einfach melden.

Gruss, A*n

-----------------------------------------------------------------------------



Diddl-Maus (Arathorn, 29. Mar 2010, 22:53:39):
Hiho,

ein Bugfix in der Diddl-Maus hat einen Austausch aller existierenden
Maeuse erforderlich gemacht. Sollte sich die Maus infolgedessen irgendwie
seltsam (lies: anders als gewohnt) verhalten, bitte melden.

Gruss, Arathorn.

-----------------------------------------------------------------------------



Luftballons (Arathorn, 29. Mar 2010, 23:10:36):
Hallo zusammen,

die Luftballons von Pennywise sind jetzt wieder wie gewohnt erreichbar.
Es gab da einige Ungereimtheiten, die einige umfangreichere Aenderungen
erforderlich machten (auch im Zusammenhang mit der urspruenglich von der
Balance genehmigten Funktionalitaet). Existierende Ballons habe ich 
nicht ausgetauscht, da ja auch ein gewisser Zufallsfaktor bei der 
Beschaffung der Ballons im Spiel ist. 

Bei neuen Ballons muesst Ihr ggf. mit einem etwas veraenderten Verhalten
rechnen, also nicht wundern. ;-) Sollte irgendwas ueberhaupt nicht 
funktionieren, wie gehabt einfach melden.

Gruss, Arathorn.

-----------------------------------------------------------------------------



Ignorieren von Sandtigergruessen (Zesstra, 21. Aug 2010, 16:40:33):
Huhu,

das Ignorieren des Sandtigers wird jetzt nicht mehr im Sandtiger, sondern im
jeweiligen Spieler gespeichert. Das hat den Vorteil, dass diese Info auch
geloescht wird, wenn der Spieler sich loescht und es keine Probleme gibt, wenn
spaeter ein Spieler gleichen Namens angelegt wird. Desweiteren sieht man als
Spieler das jetzt auch zentral in der Ausgabe von "ignoriere".

Ich war allerdings zu faul, alle bestehenden Ignorieredaten zu extrahieren und
in die jeweiligen Spieler zu stopfen. Daher muss jeder, der den Tigergruss
ignorieren will, jetzt nochmal "ignorere sandtigergruss" eintippen...

i.A.

Zesstra

-----------------------------------------------------------------------------



Angelsyntaxen... (Zesstra, 12. Feb 2011, 15:28:13):
Von neuen Angeln laesst sich Fisch und Haken jetzt tatsaechlich mit "nimm x
von angel" abnehmen.
Danke an Gloinson!

Zesstra

-----------------------------------------------------------------------------



Neulich in der Fraternitas dono Archmagorum (Miril,  6. Sep 2011, 16:02:20):
Es klopft.
Siegline vom Berg sagt: 
Herein!

Halef betritt den Raum.
Halef verneigt sich tief vor Sieglinde vom Berg.

Halef sagt:
Oh edle Sieglinde vom Berg, Reckin der Ebene, erlaubt mir unwuerdigem Diener
aus den suedlichen Gefilden, euch in aller Form zu gruessen. Moegen Eure Tage 
kriegerisch und eure Naechte in angenehm ruhigem Schlaf verlaufen.

Sieglinde vom Berg sagt etwas irritiert:
Seid willkommen in der Burg des Ordens, Halef. Was kann ich fuer Euch tun?

Halef schmeichelt:
Oh, edle Blume der Tapferkeit, gestattet mir nichtswuerdigem Untertan, eine 
Bitte an euch zu richten. Sie wird dem Orden nicht zu Schaden sein und seinen 
Ruhm mehren.

Sieglinde vom Berg sagt ungeduldig:
Nun redet nicht lange um den heissen Brei herum, Halef! Was wollt ihr denn?

Halef erklaert:
Weise des Ordens, Mutter der Tapferen, folgende Bitte habe ich: Erlaubt mir
mein Geschaeft in dieser Burg zu eroeffnen, denn wir haben die gleichen Ziele:
die Heldinnen und Helden des MorgenGrauen auszuzeichnen. Ich bescheidener 
Sohn eines Goldschmiedes bin in der Lage, wahre Kunstwerke zu erschaffen, die
nur diejenigen erstehen koennen, die besondere Taten vollbracht haben! Diese
moechte ich hier feilbieten, um damit besonderen Heldenmut auszuzeichnen.
Keinen besseren Ort koennte ich mir vorstellen, um meine Werke feilzubieten.

Halef erklaert leiser:
Und ueberdies soll es der Schaden des Ordens nicht sein, denn die Kunstwerke
sind nicht gerade billig und natuerlich bekommt Ihr einen angemessenen Anteil.

Sieglinde blickt Halef misstrauisch an:
So so. Angemessenen Anteil. Was schwebt euch denn da so vor, guter Mann?

Halef sagt:
Nun, 1000 Muenzen sollt der Orden schon erhalten und das von jedem verkauften 
Kunstwerk!

Sieglinde schaut Halef streng an und sagt:
1000 Muenzen? Ihr wollt uns doch uebers Ohr hauen. Fuer dumm verkaufen lass 
ich mich nicht! Erst einmal ist diese Burg nur fuer Ordensmitglieder. Wenn 
Ihr Mitglied werden wollt, tragt Euch in dieses Buch hier ein. Und zweitens 
nehmen wir niemanden auf, der uns ueber Ohr hauen will. Also, ich schau mir 
das Ganze erstmal eine Weile an. Speziell werde ich auch einige Leute 
befragen, was denn eure sogenannten Kunstwerke so kosten sollen. Dann 
ueberlege ich mir, was ein angemessener Anteil ist. Verstanden? Gut. Wenn 
Euch das nicht passt, koennt Ihr gleich wieder rueckwaerts mein Buero 
verlassen, verstanden?

Sieglinde macht einen Schritt auf Halef zu.
Halef windet sich ein bisschen und weicht zurueck.

Halef sagt untertaenig:
Schon gut, schon gut, Mutter der Gestrengen. Ich gebe zu, 1000 Muenzen 
ist wirklich zu wenig. Aber wie soll ich meine Toechter und mein Enkel
ernaehren, meine Kamele fuettern, meine..

Sieglinde unterbricht ihn wuetend:
Jetzt ist aber Schluss! Hier wird nicht gefeilscht oder verhandelt. Hier
wird das gemacht, was ich euch sage!
Also: Schlagt eure Zelte unten im Erdgeschoss auf, da sind noch freie 
Raeume im Osten. Eigentlich sind die nur fuer Mitglieder, aber wir machen
da mal eine Ausnahme mit Euch. Wenn Ihr Euch als wuerdig erweist, duerft 
ihr dem Orden beitreten, aber jetzt noch nicht. Das entscheide ich dann 
beizeiten. Weggetreten!

Halef sagt unterwuerfig: 
Habt Dank, edle Reckin. Mehr habe ich unwuerdiger Wurm gar nicht erwarten 
koennen.

Sieglinde sagt drohend:
Nun aber raus hier, bevor ich mir das Ganze noch mal anders ueberlege!


Viel Spass,
Miril

-----------------------------------------------------------------------------



Re: Neulich in der Fraternitas dono Archmagorum (Miril,  6. Sep 2011, 16:03:13):
~#! rn=Miril rt=1315317740 rg=d.ebene
~#! tid=1315317740
Vielen Dank an Arathorn, Zesstra und Humni, ohne die das alte Projekt nicht
so fix fertig geworden waere!

Miril

-----------------------------------------------------------------------------



Was lange waehrt... (Arathorn,  9. Sep 2011, 23:31:02):
...wird hoffentlich gut. Ich habe mich heute abend mal hingesetzt und das
Diamantschwert ueberarbeitet. Es sollte nun nicht mehr vorkommen, dass
man von eigenen Begleit-NPCs oder Begleitern anderer Spieler angegriffen
wird.

Wie immer bitte ich um Rueckmeldung, wenn irgendwas nicht so ist wie
erwartet bzw. gewohnt.

Gruss, Arathorn.

-----------------------------------------------------------------------------



Schokogolems im gemeinsamen Kampf (Zesstra,  8. Okt 2011, 18:56:44):
Ich freue mich, euch mitzuteilen, dass ich zwei kleine Fehler in schokoladigen
Golems im Zusammenhang mit Kaempfen in Teams beseitigt habe.

Zesstra

-----------------------------------------------------------------------------



Adventskalender: Vorschlaege fuer neue Tuerchen und Monster (Zesstra,  5. Dez 2011, 00:06:39):
Huhu,

wer uns helfen und Vorschlaege fuer neue Tuerchen (Normalwelt) und neue
Monster (Parawelt) machen will, kann jetzt genau dieses tun und die Vielfalt
fuer alle verbessern. ;-)
Einfach den Weihnachtstroll mal nach "neuen tuerchen" oder "neuen dieben"
fragen.

Zesstra

-----------------------------------------------------------------------------



Re: Adventskalender: Vorschlaege fuer neue Tuerchen und Monster (Zesstra,  5. Dez 2011, 11:26:44):
~#! rn=Zesstra rt=1323039999 rg=d.ebene
~#! tid=1323039999
Oh, wie peinlich. ;-) Man sollte den Troll in Normal nach neuen Verstecken
fragen, nicht nach neuen Tuerchen... *g* Dank an Nefis!

Zesstra

-----------------------------------------------------------------------------



Re: Re: Adventskalender: Vorschlaege fuer neue Tuerchen und Monster (Zesstra,  5. Dez 2011, 22:36:39):
~#! rn=Zesstra rt=1323080804 rg=d.ebene
~#! tid=1323039999
Wer jetzt die Gegner aus dem Adventskalender in Para in ihrer Schwierigkeit
bewerten mag, kann das nun ebenfalls tun. ;-)
Jeder Gegner kann mittels "bewerte gegner" nach dem Erlegen einmalig (pro
Erlegen) auf einer Skala von 1 bis 5 bewertet werden. Dies geht aber nur, wenn
man die Schokolade aus dem Wirbel noch im Inventar hat!
Wenn es zu groesseren Diskrepanzen zwischen Spielereinschaetzung und zur
aktiver Einstufung kommt, werde ich da ggf. fuers naechste Jahr anpassen.

Zesstra

-----------------------------------------------------------------------------



Adventskalender (Zesstra,  2. Dez 2012, 01:05:04):
Wenn jemand von euch Spass am Adventskalender des Weihnachtstrolls am
Sandtiger hat und zufaelligerweise nen Ort kennt, wo noch ein Tuerchen
hinpasst, kann er/sie das auch vorschlagen. Dazu gibt es nen kleines Amulett
vom Troll.
Waer schoen, wenn ihr das machen wuerdet, dann bleibt der Kalender auch in
Zukunft spannend. ;-)

Zesstra

-----------------------------------------------------------------------------



Metzelorakel (Arathorn, 31. Mai 2013, 20:42:22):
Hallo zusammen,

nachdem es gestern zu einer gewissen Verwirrung seitens Chinkuwaila kam, als
eines seiner auserwaehlten Opfer im Bannkreis eines Dunkelelfen starb,
habe ich heute fuer Aufklaerung gesorgt und ihm das Zugestaendnis abgerungen,
auch solche Tode anzuerkennen.

Solltet ihr jedoch dafuer sorgen, dass ein Opfer nicht nur im Bannkreis,
sondern auch noch an Gift stirbt, wird er mit dieser Vorgehensweise nach wie
vor nicht einverstanden sein und eure Muehen nicht anerkennen, da er 
solcherlei Tun als eines wahren Kriegers unwuerdig erachtet.

Gruss, Arathorn.

P.S.: Sollte der alte Schamane mich missverstanden haben und seine Kriterien
fuer die Anerkennung von Kills voellig durcheinander bringen, bitte ich um
Nachricht. Danke!

-----------------------------------------------------------------------------



Adventskalender 2013 (Zesstra, 30. Nov 2013, 21:58:31):
Huhu,

auch in diesem Jahr werden euch die beiden Weihnachtstrolle beschaeftigen,
sofern ihr das wollt.
Wie immer gibt es die alten Tuerchen aus den Vorjahren und einige neue.
Und wie immer laeuft das ganze bis zum 31.12. um 23:59:59.

Und noch zwei Hinweise/Bitten:
Ihr koennt mit Hilfe des Amuletts des Weihnachtstrolls selber neue Tuerchen
und auch neue Diebe fuer die Paraweltversion vorschlagen.
Und wenn ihr fuer die Paraweltversion ein Geschenk fuer den Troll
wiederbeschafft habt, koennt ihr eure Wertung abgeben, wie schwierig/aufwendig
ihr den jeweiligen Dieb fandet - solange ihr die Schokolade noch nicht beim
Troll abgegeben habt.
Beides hilft, die Adventskalender zu verbessern und zu erweitern.

Viel Spass euch allen,

Zesstra

-----------------------------------------------------------------------------



Re: Adventskalender 2013 (Zesstra, 30. Nov 2013, 22:02:01):
~#! rn=Zesstra rt=1385845111 rg=d.ebene
~#! tid=1385845111
Achja: bei Vorschlaegen sind natuerlich insbesondere solche gerne gesehen,
welche den Spieler in weniger bekannte oder weniger besuchte Gegenden fuehren.

Zesstra

-----------------------------------------------------------------------------



Re: Adventskalender 2013 (Zesstra, 11. Dez 2013, 00:02:47):
~#! rn=Zesstra rt=1385845111 rg=d.ebene
~#! tid=1385845111
Es gab bei einem Tuerchen im Neandertal leider einen Tipfehler, weswegen man
das Tuerchen nicht so wie gewuenscht finden konnte. Der ist jetzt behoben. Zu
finden ist das Tuerchen ansonsten genauso wie alle anderen auch.

Zesstra

-----------------------------------------------------------------------------



Heide (Miril, 11. Jan 2014, 12:49:17):
Dank eines Hinweises eines Spielers ist die Heide nun endlich so, wie sie
urspruenglich gedacht war. Da war ein Fehler drin, der mir die ganzen Jahre
nicht aufgefallen ist.

Miril

-----------------------------------------------------------------------------



Bekanntmachung (Miril, 30. Jan 2014, 21:59:39):
Sehr verehrte Heldinnen und Helden des MorgenGrauen!

Mit grosser Freude darf ich bekanntgeben, dass fortan die Bibliothek der
Fraternitas fuer die Oeffentlichkeit zugaenglich ist. Unser werter
Bibliothekar Ant Fo Li steht fuer Fragen selbstverstaendlich zur Verfuegung. 

Nicht ohne Stolz darf ich sagen, dass unsere Bibliothek besonderes Wissen
bereithaelt, welches es andernorts nicht zu finden gibt. Die Erzmagier
hoechstselbst haben dieses Wissen freigegeben, auf dass ein jeder es erlangen
kann. Natuerlich ist der Zugang zu diesem Wissen mit einer kleinen Aufgabe
verbunden, aber die werdet ihr schon meistern!

Graefin Siglinde vom Berg im Auftrag der Erzmagier und Goetter

-----------------------------------------------------------------------------



Neue alte Aufgaben (Arathorn,  9. Feb 2014, 19:42:27):
Hallo zusammen,

ich habe mich heute nachmittag etwas laenger mit Owen unterhalten und ihn
ueberred... aeh ... ueberzeugen koennen, dass es doch nur angemessen waere,
eine angemessene Belohnung an Spieler zu vergeben, die ihm helfen, die
Goblinplage vor den Toren der Stadt unter Kontrolle zu bringen.

Weiterhin hat auch ein leidgeplagter Gefangener trotz seiner misslichen Lage
einsehen koennen, dass es wohl etwas wert ist, wenn sich jemand zu ihm
durchschlaegt, um ihm zu helfen.

Zieht also aus, werte Helden, und lasst den beiden Eure Hilfe zuteil werden.

Arathorn.

-----------------------------------------------------------------------------



Re: Neue alte Aufgaben (Arathorn, 10. Feb 2014, 00:13:44):
~#! rn=Arathorn rt=1391971347 rg=d.ebene
~#! tid=1391971347
Ein gewisser Einsiedler haette auch nichts gegen etwas mehr Besuch, so dass
er sich bereit erklaert hat, Euch fuer Eure Hilfe zu entlohnen - womoeglich
wollte er auch Owen in nichts nachstehen, nachdem der ja schon vorgeprescht
ist.

Arathorn.

-----------------------------------------------------------------------------



Auge des Teufels (Ark, 30. Mai 2014, 02:31:53):
Die Quest ist bis auf weiteres geschlossen aufgrund der Reboot "Hickups". Bis
ich mit allen Files durch bin, dauert das. Ich sage Bescheid, wenn alles
wieder besser aussieht. Sorry.


              *** ARK * the * Magnificent ***


-----------------------------------------------------------------------------



Re: Auge des Teufels (Ark,  1. Jun 2014, 18:12:34):
~#! rn=Ark rt=1401409913 rg=d.ebene
~#! tid=1401409913
Dank der tapferen Arbeit unseres Ebenen RMs eruebrigt sich mein Tun, insofern
duerft ihr wieder die Gastfreundschaft der Klopeks in Anspruch nehmen. Hail
Arathorn, son of Arador.


              *** ARK * the * Magnificent ***


-----------------------------------------------------------------------------



Re: Re: Auge des Teufels (Zook,  1. Jun 2014, 18:31:40):
~#! rn=Ark rt=1401639154 rg=d.ebene
~#! tid=1401409913
Das ist ja auch meine Lichtgestalt!

Zook

-----------------------------------------------------------------------------



Unterwegs im Auftrag der Fahrtensaenger (Arathorn,  3. Jun 2014, 21:58:49):
Werte Freunde der Ebene,

heute im Laufe des Tages erreichte mich Kunde von Tasmin Ferrence, dem
ehrwuerdigen Grossmeister des Fahrtensaengerordens. Er teilte mir  
hocherfreut mit, dass sein Orden endlich jemanden gefunden habe, der bereit
sei, die Weiten der Ebene zu bereisen und von den kleineren und groesseren
Heldentaten zu kuenden, die ihre Bewohner und deren Gaeste vollbringen,
und der zudem noch die noetigen, besonderen Begabungen fuer die ihm
zugedachte Aufgabe besitze.

Tasmin ergaenzte noch, dass er diesen Musikanten zunaechst einmal beauftragt
habe, einige Gasthaeuser und verschiedene andere Orte in der Ebene 
aufzusuchen, um dort seine Kuenste feilzubieten. Er sei mit einem bunten,
weithin sichtbaren Flickenumhang versehen worden, der ihn als reisenden
Fahrtensaenger im Auftrag des Ordens ausweise und ihn unter Tasmins
persoenlichen Schutz stelle. Jedem, der es wage, ihn allzu harsch anzureden
oder der sich gar an ihm vergreifen wolle, dem wuerden ... finstere Dinge
zustossen.

Ich teile euch das vor allem auf Bitten von Tasmin selbst mit, aber lasst
euch davon nicht schrecken. Ich habe den Saenger bereits kennengelernt und
konnte mich davon ueberzeugen, dass er ein ueberaus friedliebender Mensch
ist, der ohnehin keinen Anlass geben wird, sich mit ihm ernsthaft
auseinandersetzen zu muessen.

Sucht diesen Kuenstler ruhig selbst einmal auf, ich bin sicher, er weiss das
eine oder andere Wissenswerte ueber die Ebene und ueber Euch zu berichten.

Gruss, Arathorn, Chef-Pizzabaecker der Ebene.

-----------------------------------------------------------------------------



Bei Klopeks ... (Ark,  4. Aug 2014, 20:58:56):
... wird es ungemuetlicher. Man ist ob der mannigfaltigen Besucher
misstrauisch geworden, und laesst nicht mehr jeden herbeigelaufenen Moerder
ins Haus. Vincent spuert aber, wenn man aus ... Hilfsbereitschaft anklopft.
Will heissen: ohne Auftrag kein Einlass :-)


              *** ARK * the * Magnificent ***


-----------------------------------------------------------------------------



Das Drachentoetertoeteramulett (Arathorn, 31. Aug 2014, 22:52:12):
Hallo zusammen,

nachdem in letzter Zeit Schwierigkeiten mit besagtem Amulett auftraten,
wenn mehrere Quester gleichzeitig einen der Ziel-NPCs angriffen, habe ich
das Amulett an einigen grundlegenden Stellen ueberarbeitet mit dem Ziel,
dass das jetzt nicht mehr vorkommen sollte.

Solltet ihr ein neues Amulett haben wollen, muesstet ihr einmal "Ende"
machen. Wenn aufgrund der Ueberarbeitung andere Schwierigkeiten auftreten,
oder das urspruengliche Problem wider Erwarten nicht behoben wurde, meldet
euch bitte.

Gruss, Arathorn.

-----------------------------------------------------------------------------



Die Drachentoetertoeter-Miniquest von Brumni (Arathorn,  5. Okt 2014, 01:47:11):
Hallo zusammen,

es gibt momentan ein Problem bei der genannten Miniquest, das den Toetungs-
auftrag fuer Asaniel betrifft: es kann passieren, dass dessen Ableben nicht
gewuerdigt wird. 

Das Problem wird nach meinem derzeitigen Verstaendnis ausgeloest, wenn
ein Kampf recht lange dauert. Technische Details wuerden hier mehr verwirren
als aufklaeren, daher nur soviel: Fuer euch als Spieler bedeutet das, dass 
ihr die Miniquest ohne weiteres beginnen koennt, aber damit rechnen muesst, 
dass ein Kill nicht gezaehlt wird, wenn ihr euch sehr lange mit dem 
jeweiligen NPC abmueht. "Lange" bedeutet in diesem Fall >15 min. Alles, was
schneller geht (und das sollten alle NPCs ausser Asaniel sein), ist voellig
unproblematisch.

Wir arbeiten an einem Fix, der jedoch in den Tiefen der Mudlib erfolgen muss,
so dass es voraussichtlich einen Moment dauern wird, bis das Problem aus der
Welt ist.

Gruss, Arathorn.

-----------------------------------------------------------------------------



Re: Die Drachentoetertoeter-Miniquest von Brumni (Arathorn, 13. Okt 2014, 19:35:12):
~#! rn=Arathorn rt=1412466431 rg=d.ebene
~#! tid=1412466431
Besagtes Problem wurde behoben. Es koennen jetzt (das war bisher nicht so,
ist aber m.E. durchaus sinnvoll) mehrere Spieler gleichzeitig einen der
Ziel-NPCs bekaempfen und auch den Kill gutgeschrieben bekommen (natuerlich
sofern sie die von Brumni daran geknuepften Anforderungen erfuellen).

Dank an dieser Stelle an die betroffenen Spieler, die geduldig auf den Fix
gewartet haben und auch waehrend der Umstellungsarbeiten fuer Testkills
bei Asaniel zur Verfuegung standen.

Gruss, Arathorn.

-----------------------------------------------------------------------------



Das Haus des Teufels ... (Ark, 28. Jan 2015, 21:03:59):
... hat neue (alte, aber bisher dysfunktionale) Eingangsregeln. Spieler mit
Quest kommen direkter rein. Spieler ohne Auftrag, besonders
herumstreun^H^H^H^H^H^Hlaufende Anfaenger und andere, kommen nicht rein.
Um Einlass zu bekommen, ist nun zwangsweise ein Besuch bei der Auftraggeberin
noetig und auch die explizite Bekundung, ihr zu helfen. Ansonsten bleibt es
beim Anschauen der Tuer :-)
So wird es auch hoffentlich nicht mehr kleinen Spielern zu einfach gemacht, in
das schroeckliche Bauwerk einzudringen.
Bugs etc. wieder auf mich werfen, hoffe aber, es kommt nicht zu Komplikationen
:-)


              *** ARK * the * Magnificent ***


-----------------------------------------------------------------------------



Fahrtensaengersiegel (Arathorn,  1. Feb 2015, 13:38:00):
Hallo zusammen,

ich habe gerade alle im Umlauf befindlichen Fahrtensaengersiegel ausge-
tauscht, weil es Komplikationen mit dem "singe"-Befehl gab. Ich rechne
nicht mit Nebenwirkungen an anderer Stelle, die durch die Aenderung
ausgeloest werden koennten, aber wenn euch was auffaellt, meldet euch.

Gruss, Arathorn.

-----------------------------------------------------------------------------



Empor in luftige Hoehen! (Notstrom, 27. Apr 2015, 01:00:43):
Huhu,

erstmal danke, in dieser Rubrik hab ich ja noch gar nichts von mir gegeben.
Also, aeh, ich habe die Ehre, ein paar neue Kraeuter in der Region Ebene
ankuendigen zu duerfen. Leider war es dafuer noetig, ein paar neue Raeume
anzuknipsen. Die sollten aber fuer die eher ERFAHRENEN Bergsteiger unter
Euch kein Problem sein (denke ich).

Naja, leider konnte ich ein paar boesartige, fiese und gemeine Kreaturen
nicht dazu ueberreden, sich vollstaendig zu verfluechtigen, so dass die
nun weiter herumlungern. Vielleicht schafft ihr ja, was ich nicht hin-
gekriegt habe.

Ansonsten, aeh, viel Spass (oder so), und vielleicht gehts da ja demnaechst
noch irgendwie weiter.


Have fun (ja, ich kann elfisch!),
Notstrom.

-----------------------------------------------------------------------------



Re: Empor in luftige Hoehen! (Notstrom, 29. Apr 2015, 15:29:21):
~#! rn=Notstrom rt=1430089243 rg=d.ebene
~#! tid=1430089243
Huhu nochmal,

ich habe gerade eine winzigkleine technische Unterlassungssuende behoben.
Die NPCs in dem neuen Gebiet sollten nun auch wie vorgesehen stupsen.

Mea maxima culpa,
Notstrom.

-----------------------------------------------------------------------------



Das Gesundheitsamt informiert ... (Notstrom, 11. Mai 2015, 00:53:52):
Auf Erzmagierbeschluss ist bis auf weiteres ein bestimmtes Feature
deaktiviert. Moeglicherweise wird es nach einer technischen Aenderung
in veraenderter Form wieder aufleben.

Notstrom.

-----------------------------------------------------------------------------



Metzelorakel (Arathorn, 11. Dez 2015, 23:21:13):
Hallo zusammen,

ich komme gerade von einer gemuetlichen Plauderrunde mit Chinkuwaila zurueck,
der mir berichtete, dass er nach einer gefuehlten Ewigkeit nun endlich ueber
die Belohnungen verfuegt, die ihr euch mit euren Metzeleinsaetzen so redlich
verdient habt! Ihr koennt sie also ab sofort bei ihm abholen.

Aber seid gewarnt! Er wies mich nachdruecklich darauf hin, dass die Vorraete
begrenzt seien, ihr also nicht einfach hingehen koennt und einen Rucksack
vollgestopft mit Belohnungen aus seinem Zelt schleppen - selbst dann nicht,
wenn ihr sehr viele seiner Auftraege erledigt haben solltet.

Zudem soll nicht unerwaehnt bleiben, dass die Belohnungen derzeit vorwiegend
fuer diejenigen Spieler von Nutzen sind, die sich bereiterklaert haben,
die magischen Traenke bei Yil'drim zu erproben. Und selbst fuer jene koennte
es die bessere Wahl sein, ihren Anspruch auf Chinkuwailas Belohnungen nicht
vorschnell zu verpulvern.

Gruss, Arathorn.

-----------------------------------------------------------------------------



Das Metzelorakel (Arathorn,  1. Jan 2016, 17:16:27):
Hallo zusammen,

auf Spielerrueckmeldung hin habe ich Chinkuwaila ueberzeugen koennen, dass 
er nun die Belohnungen nicht mehr direkt rausgibt, wenn man ihn danach fragt,
sondern erst auf expliziten Wunsch.

Gruss, Arathorn.

-----------------------------------------------------------------------------



Re: Das Metzelorakel (Vardion, 22. Jan 2016, 20:10:44):
~#! rn=Arathorn rt=1451664987 rg=d.ebene
~#! tid=1451664987
Chinkuwaila... irgendwoher kommt mir dieser Name bekannt vor. Da war doch mal
was vor 10 Jahren.

-----------------------------------------------------------------------------



Re: Re: Das Metzelorakel (Zesstra, 22. Jan 2016, 20:14:20):
~#! rn=Vardion rt=1453489844 rg=d.ebene
~#! tid=1451664987
ja, den gibts auch schon ziemlich lang... ;-) Wenn nicht laenger als 10 Jahre.

Zesstra

-----------------------------------------------------------------------------



Parasiten (Arathorn,  7. Jun 2016, 22:08:05):
Hallo zusammen,

gewisse Parasiten, die in der Pandoraquest ihr Unwesen treiben, sind jetzt
zwar nicht weniger parasitaer als vorher, aber weniger schwer heilbar.

Ich denke, das ist in eurem Sinne. ;-)

Gruss, Arathorn.

-----------------------------------------------------------------------------



Schwertmeisterschwerter (Arathorn, 30. Jul 2016, 13:11:47):
Moin zusammen,

die Schwertmeisterschwertqualitaet neu geholter Schwertmeisterschwerter ist
nun in angemessenen Abstufungen erkennbar, wenn der die Schwertmeister-
schwertqualitaet bewertende Spieler eine ausreichende Schwertmeister-
schwertkampffaehigkeit besitzt. Je besser eure Schwertmeisterschwertkampf-
faehigkeit ausgebildet ist, desto besser werdet ihr herausfinden koennen, 
wie gut es um die Schwertmeisterschwertschmiedefaehigkeit seines Erschaffers
bestellt war.

Wie gesagt, nur fuer neue Schwertmeisterschwerter.

Gruss, Arathorn.

PS: Nein, ich hab noch nix getrunken. ;-)
Moin zusammen,

-----------------------------------------------------------------------------



Was fuer ein Mist! (Oham, 19. Aug 2016, 22:20:31):
Hallo? Gehts noch?

Da laeuft man nichts ahnend durch Port Vain, und dann bleibt man haengen!

Ja, da stand ein paarmal "Wie bitte?" im Wegeskript. Aber hey, Humni, man
haengt nicht einfach so Gebiete dran! Das ist ja das allerletzte!

Ich darf jetzt echt einige der Hauptwege umbauen. Na, vielen Dank auch.

Irgend so ein bloedes Haus mit Garten ist da jetzt. Darin wohnt eine alte
Frau, und die hat auch keine Ahnung. Irgendwie erzaehlt die von frueher. Wen
interessiert das? Glaubst Du, dass sich irgendwer dafuer interessiert?

Wieso baut ihr Magier eigentlich staendig so harte Monster? Ich kapier das
nicht. Ihr koenntet einfach mal damit aufhoeren.

Und wieso Du Feigling nie da bist, wenn ich da bin, kriege ich auch noch raus!

Omas in Port Vain. Pfft. Braucht echt niemand.

Oham

-----------------------------------------------------------------------------



Re: Was fuer ein Mist! (Humni, 19. Aug 2016, 22:21:05):
~#! rn=Oham rt=1471638031 rg=d.ebene
~#! tid=1471638031
Heul doch.

Humni

-----------------------------------------------------------------------------



Re: Re: Was fuer ein Mist! (Oham, 19. Aug 2016, 22:21:48):
~#! rn=Humni rt=1471638065 rg=d.ebene
~#! tid=1471638031
Was besseres faellt Dir dazu nicht ein, oder? Na toll. Wieso bist Du
eigentlich Magier geworden? Nur, um Spieler zu quaelen?

Echt, das ist das Letzte.

Oham

-----------------------------------------------------------------------------



Der Goblinschamane (Arathorn,  3. Jan 2017, 23:52:32):
Hallo zusammen,

der Goblinschamane ist nun in der Lage, euch die bestplazierten Metzler in
einer sortierten Uebersicht aufzulisten, in der nicht die Anzahl erledigter
Auftraege ausschlaggebend ist, sondern die Plazierungen selbst, d.h. wer
die meisten ersten Plaetze errungen hat, liegt hier vorne, analog fuer alle
weiteren Plazierungen.

Das zugehoerige Kommando laesst sich im Zelt des Schamanen herausfinden.

Gruss, Arathorn.

-----------------------------------------------------------------------------



Schreckliche Dinge ... (Ark, 28. Jul 2017, 01:32:12):

              Von der Arroganz und anderen Schwaechen
              ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

Seufzend wuehlte Roald Ahengaard in seinen Unterlagen. Wo waren nur die
Pachtvertraege mit der Stadt? Er hatte sie doch erst neulich beim Sichten
gesehen. Grummelnd stand er vom Tisch auf und kratzte sich ratlos am
Kopf. Dabei wollte er jetzt endlich einschreiten und den alten Seebaer
Hans Harkwind fuer unzurechnungsfaehig erklaeren lassen. Er sass sowieso
den ganzen Tag in der schmierigen Kneipe am Hafen und versoff seinen
Verstand.

Da, nach einigem Wuehlen in den Schubladen seines Schreibtischs hatte er
das Dokument gefunden. Nach einem kurzen Durchblaettern nahm er seine
Lesebrille ab und ueberlegte. Von einem Zucken im Augenwinkel ging nun
ein Laecheln aus ... so wuerde er es machen. Die Stadtraete auf seine
Seite zu ziehen, um einen bei der einfachen Bevoelkerung akzeptierten
Mann - mit einigen Verdiensten in der Vergangenheit, es liess sich nicht
leugnen - aus seinem Kutter zu vertreiben, das sollte sich ohne grossen
Umstand machen lassen.
Ohne den Kutter waere Hans ohne Brot, damit haette er auch kein Zuhause
mehr, auch in den Tavernen der Stadt wurden fuer ihn laengere Listen an
Schulden gefuehrt.

Ohne seinen Kutter waere er jedoch nicht mehr der Hans. Roald nickte
entschlossen. Der alte Saufbold sollte seinen letzten 'Seemanns Koma'
gesoffen haben. Vielleicht wuerde er ja ohne den erbaermlichen Alkohol
wieder den Anstand eines ehrbaren Lebens finden. Einerlei ... zufrieden
stand Roald auf, um sich sofort zum Rathaus zu begeben. Dort war er
wohlbekannt, jeder verneigte sich mehr oder minder vor ihm. Man wuerde
es sich ja auch nicht mit ihm verderben wollen, denn sein Einfluss war
schon immens.

Die Schublade schloss nicht richtig, irgendetwas klemmte. Ungeduldig
ruettelte Roald Ahengaard an ihr ... was war denn da nur los? Er blickte
leise fluchend hinein. Irgendein Papier hatte sich ueber die seitlichen
Waende der Schublade geschoben, so dass man sie nicht mehr richtig
schliessen konnte.
Grummelnd zog er vorsichtig daran, das Papier schien alt zu sein, und
alte Papiere, das wusste Roald, hatten meist ihren Wert. Schliesslich
zog er das vergilbte Dokument heraus. Was war das? Ein Notenheft, in
seinem Arbeitstisch? Er war sich sicher, dass es sich vorgestern noch
nicht dort darin befand.

'Marlene? Schatz, warst Du an meinen Sachen? Hier ist so ein Notenheft,
 das ich nicht kenne. Marlene?'
Seufzend oeffnete Roald die Tuer zum Schlafzimmer, wo er seine Frau
vermutete. Doch sie war nicht anwesend. Dann fiel ihm ein, dass sie in
die Stadt gegangen war. Da das Kindermaedchen gekuendigt hatte, war es
nun wichtig, schnell jemanden zu finden, der auf die Kinder aufpasste.
Er war nun wirklich beschaeftigt und selten zuhause.
Unwirsch bemerkte er, dass niemand antwortete. Es war so still hier,
dass man seinen eigenen Atem hoeren konnte. Nachdenklich blickte er
auf die Noten.

EINE FEUERWERKSMUSIK, das stand in roten Lettern auf dem Umschlag. Das
Heft war aus bluetenreinem Papier, schien sehr rissfest zu sein und
machte generell einen edlen Eindruck. Und dennoch ... der erste Gedanke
blieb ihm haften: 'Wie kommen sie in den Schreibtisch?'

Schulterzuckend ueberflog er die Noten. Roald Ahengaard war sicher ein
ausgezeichneter Experte, was das Clavecin betraf, doch diese Musik war
ihm fremd. Kein Komponist war auf dem Werk vermerkt, sehr sonderbar.
Da seine Frau immer noch nicht antwortete, beschloss er, diese Partitur
selbst einmal auszuprobieren. Seltsam erregt ging er ins Obergeschoss,
nun nur noch das Musikzimmer im Kopf, er verspuerte nun einen aeusserst
angenehmen Drang, die Noten auf dem Papier zum Leben zu erwecken.

Im Zimmer angekommen, verschloss er die Tueren. Niemand sollte ihn jetzt
stoeren, in solchen Dingen war Roald eigen, er brauchte Ruhe, um voellig
entspannen zu koennen. Nur dann war er ein guter Clavecinspieler.

Er betrachtete die Noten. Ein Zittern durchfuhr seine Haende ... war es
die Aufregung? Seine Haende ruhten locker auf den Tasten, dann begann er
das Spiel.

Schmerz erfasste ihn. Es wurde heiss um ihn. Hoellisch heiss ...



              *** ARK * the * Magnificent ***


-----------------------------------------------------------------------------



A word of advice ... (Ark, 28. Jul 2017, 01:32:43):
Noch ein paar Anmerkungen zur Quest (mit dem Versuch, nicht alles
zu spoilern):

Die Quest beschreibt einen Vorfall, der sich zeitlich entwickelt.
Das heisst, ihr muesst mit Veraenderungen rechnen, je nachdem, wie
weit dieser Vorfall fortgeschritten ist.
Irgendwann ist die Quest dann fuer eine gewisse Zeit nicht mehr
spielbar, weil der Vorfall beendet ist. Das ist natuerlich der
Geschichte geschuldet, die die Quest erzaehlt. Das Ganze ist immer
etwas zeitlich verschoben, damit man nicht "gezwungen" ist, zu
einem festen Zeitpunkt anwesend sein zu muessen, um die Quest
spielen zu koennen.
Die Quest koennen viele Spieler gleichzeitig spielen, aber ab einer
nicht immer gleichen Anzahl an Spielern kann es vorkommen, dass
jemand die Quest nicht beenden kann. Das ist nicht schlimm, weil ja
die Entwicklung weitergeht und ein neuer Zyklus wieder beginnen wird.
Nur "ende" verursacht das Verlorengehen eines Spielstands.
Um das nochmal klarzustellen: die Quest ist einzeln zu bestehen, aber
sie erfordert an einigen Stellen Kooperation.
Noch ein gutgemeinter Rat, aber nicht zur Abschreckung: wie der Name
der Quest schon suggeriert, ist sie "gefaehrlich". Dies mag jeder fuer
sich selbst evaluieren. Dies als kleine Warnung.

Ich hoffe, ich habe jetzt nicht zuviel verwirrt, ich denke, das wird
euch beim Spielen dann schon klar werden.

Mein Dank geht an:

Saray, fuer das (mehrfache) Testen.

Arathorn, fuer die ausfuehrliche Code Durchsicht und hilfreichen
Vereinfachungen, die einem nach dem x-ten Mal ansehen aufgrund der
geistigen Mauer nicht mehr ersichtlich waren, obwohl sie es haetten
sein muessen.

Zesstra, fuer eine Codeanpassung, mit der ich mich anderthalb Tage
rumschlug, bis sie 80% war, aber nicht 100%.

Miril, fuer die Vollendung, auf dass ihr wenigstens noch mit einigen
Punkten fuer das Suchen belohnt werdet.

Jetzt bleibt mir nur noch viel "Spass" mit einer weiteren, gaaaanz
schlimmen Ark Quest zu wuenschen :-)

Fuer Feedback der sachlichen Art bitte ich natuerlich schon jetzt
sehr dankbar.



              *** ARK * the * Magnificent ***


-----------------------------------------------------------------------------



Flugdrache (Zook, 30. Jul 2017, 09:37:52):
Manchmal zickte der Flugdrache etwas herum und wollte sich nicht
mehr bewegen. Ich habe da einen Fix eingespielt, der das hoffentlich
behebt. Falls er dennoch mal wieder "verschwindet", gebt mir doch
bitte Bescheid.

Zook.

-----------------------------------------------------------------------------



Re: A word of advice ... (Ark, 30. Jul 2017, 09:59:59):
~#! rn=Ark rt=1501198363 rg=d.ebene
~#! tid=1501198363
Meist zeugt ein rasches Umbewerten einer neuen Quest nicht gerade von grossem
Konsens nach dem Anschluss oder der wohlgesetzten Werte des Verantwortlichen
("ich"), aber in Nachahmung weiter Teile der Weltpolitik imitiere ich das
rasche Handeln (aber hoffentlich mit mehr Grips) einfach und habe die
Anforderung hinsichtlich Stufe und Belohnung hinsichtlich AP/XP nach oben
korrigiert.
Dennoch bleibt weiterhin die Maxime: die Hitze steigt mit der Annaeherung an
den Brandherd :-)


              *** ARK * the * Magnificent ***


-----------------------------------------------------------------------------



Re: Flugdrache (Zaphob, 30. Jul 2017, 15:46:30):
~#! rn=Zook rt=1501400272 rg=d.ebene
~#! tid=1501400272
Gestern war die Frage aufgekommen, warum der Hexenbesen seit 30min nicht mehr
vorbeigekommen sei, aber jemand anderes beobachtete ihn dann doch noch beim
rumfliegen. Dies nur zur Info.

-----------------------------------------------------------------------------



Vorahnungen (Ark, 17. Aug 2017, 12:56:17):
Damit man nicht voellig im Dunklen tappt, wann die Feuergefahr in Port Vain
akut wird, gibt es jetzt eine Moeglichkeit, eine Art Vorahnung zu bekommen,
wann ein schreckliches Ereignis eintreten wird. Das ist vage gehalten, gibt
einem aber einen ungefaehren Eindruck, wann etwas passiert. Ihr findet das
sicher schon raus :-)


              *** ARK * the * Magnificent ***


-----------------------------------------------------------------------------



Re: Re: Flugdrache (Zesstra, 27. Okt 2017, 20:23:43):
~#! rn=Zaphob rt=1501422390 rg=d.ebene
~#! tid=1501400272
Manche Fragen brauchen lange zur Klaerung: ich glaub, das lag dann wohl daran,
dass er einen Halt uebersprungen hatte. ;-) Sollte er nicht mehr tun.

Zesstra

-----------------------------------------------------------------------------



Fliegender Austausch ... (Notstrom, 20. Dez 2017, 16:52:27):
... bei einem Saeuredolch. Bitte wieder neu zuecken, schaerfen u.ae., falls
notwendig.

Danke,
Notstrom.

-----------------------------------------------------------------------------



Para-Adventskalender (Zesstra, 18. Jan 2018, 21:44:31):
Wer dieses Jahr Probleme hatte, was vom Para-Weihnachtstroll zu bekommen,
sollte das nun nochmal versuchen.
Sagt ruhig Bescheid, wenns nicht geht. ;-)

Zesstra

-----------------------------------------------------------------------------



Auge des Teufels (Ark, 31. Jan 2018, 15:51:12):
Bin demnaechst an einigen Stellen dran zwecks Ueberarbeitung, deshalb bitte
momentan nicht Auge des Teufels spielen. Ich melde mich wieder, sobald ich
fertig bin. Para ist nicht davon betroffen.


              *** ARK * the * Magnificent ***


-----------------------------------------------------------------------------



Silberaugen (Arathorn, 12. Feb 2018, 00:18:33):
Hallo zusammen,

ich wurde auf ein Problem mit dem Silberauge aus der Goblinhoehle aufmerksam
gemacht, das die Anrufungen von Mitgliedern des Heiligen Ordens ungehoert
verhallen liess und sich stattdessen selbst angesprochen fuehlte. Eine
derartige Einmischung in die Zwiesprache eines Klerikers mit seinen 
Goettern kann natuerlich nicht geduldet werden, und daher habe ich die 
arkane Matrix des Auges ein wenig restrukturiert, so dass man dem Auge diese
Einmischung nun gezielt erlauben oder verbieten kann.

Bei der Gelegenheit habe ich auch dafuer gesorgt, dass es sich nun gemaess
den Vorgaben der Objektbalance verhaelt, was zum Teil sogar zu Eurem 
Vorteil sein wird.

Gruss, Arathorn.

-----------------------------------------------------------------------------



Re: Silberaugen (Arathorn, 12. Feb 2018, 00:19:21):
~#! rn=Arathorn rt=1518391113 rg=d.ebene
~#! tid=1518391113
Ich vergass: existierende Augen habe ich entfernt, aber nicht ersetzt. Wer
ein Auge benoetigt, muesste sich bitte ein neues beschaffen.

Arathorn.

-----------------------------------------------------------------------------



Spinnenpanzer (Arathorn, 12. Feb 2018, 01:11:35):
Hallo zusammen,

der Spinnenpanzer von Wurst wurde noch ein letztes Mal ueberarbeitet, da
nach erfolgter Balance-Genehmigung noch ein-zwei Kleinigkeiten zu aendern
waren, um ihn konform zur Genehmigung zu machen. 

Auf zum unbeschwerten Metzeln!

Gruss, Arathorn.

-----------------------------------------------------------------------------



AdT wieder spielbar. (Ark, 13. Mai 2018, 12:01:02):
So, ich habe einiges am Anfang "modernisiert", es kann wieder gespielt werden.
Ich werde nach und nach den Code "modernisieren", das sollte aber
unterbrechungsfrei klappen, naemlich Aenderungen nur bei leerem Haus. Wuensche
froehliches Ster^H^H^H^HSpielen.


              *** ARK * the * Magnificent ***


-----------------------------------------------------------------------------



Re: AdT wieder spielbar. (Ark,  5. Jul 2018, 13:24:55):
~#! rn=Ark rt=1526205662 rg=d.ebene
~#! tid=1526205662
So, ich bin jetzt erstmal mit einer vollstaendigen Ueberarbeitung fertig. Vor
allem code-optisch. Ansonsten sollte sich da nichts geaendert haben, die
Musterloes... Informationen stimmen bestimmt auch noch ... aber dafuer gibt es
natuerlich keine Gewaehr, haehae ;)
Viel Spass.


              *** ARK * the * Magnificent ***


-----------------------------------------------------------------------------



Papageien ... (Humni, 30. Jul 2018, 22:51:39):
... lernen nun langsamer.

Dies war aufgrund von ... oeh ... ich denke mal, akuter Ueberforderung leider
notwendig.

Humni

-----------------------------------------------------------------------------



Stauerin (Notstrom,  9. Dez 2018, 18:26:46):
Huhu,

ich habe mich soeben gezwungen gesehen, Sephaniel ein wenig abzuwerten.
Meine Magiertochter hat mich darauf aufmerksam gemacht, dass ich da Pfusch
an ihrem Dolch abgeliefert hatte, das habe ich nun aber fix korrigiert.
Existierende Dolche wurden ersetzt und sollten sich nun bei Beschaedigungen
wie erwartet verhalten.

Danke an Saitha,
Notstrom.

-----------------------------------------------------------------------------



Der verunglueckte Viggy (Arathorn,  6. Jan 2019, 17:53:55):
Hallo zusammen,

ich habe gerade an dem verunglueckten Viggy in der Raetselstein-Quest einige
Veraenderungen vorgenommen. Er sollte sich jetzt anders verhalten als in den
letzten Jahren, aber dafuer wieder so wie frueher[tm], d.h. er sollte wieder
auf Wanderschaft gehen, sobald sich jemand um seine Verletzungen gekuemmert
hat.

Sollte er sich in anderen Punkten seltsam verhalten oder irgendwas nicht
mehr wie gewohnt funktionieren, meldet euch.

Gruss, Arathorn.

-----------------------------------------------------------------------------



Raetselstein-Quest (Arathorn,  7. Jan 2019, 20:28:44):
Hallo zusammen,

nach dem verunglueckten Viggy habe ich in der Quest einige grundlegende Dinge
aufgeraeumt und bereinigt. Falls sich Ungereimtheiten ergeben oder etwas 
nicht wie erwartet funktioniert, bitte direkt melden, nicht als Idee oder
Bug absetzen.

Gruss, Arathorn.

-----------------------------------------------------------------------------



Die Diddlmaus (Arathorn,  8. Jan 2019, 22:18:58):
Hallo zusammen,

ich habe gerade auf vielfachen Wunsch die Diddlmaus so geaendert, dass die
von ihr erzeugten Meldungen auch in der tm-History landen. Dabei habe ich
sie auch sonst ueberarbeitet und modernisiert. Bestehende Maeuse habe ich
schon ausgetauscht, ihr koennt also direkt loslegen, sie zu testen.

Wenn sich irgendwas komisch verhaelt, meldet euch.

Gruss, Arathorn.

-----------------------------------------------------------------------------



Re: Die Diddlmaus (Arathorn, 13. Jan 2019, 02:33:33):
~#! rn=Arathorn rt=1546982338 rg=d.ebene
~#! tid=1546982338
Es gab da noch einen kleinen Fehler in der Maus. Ich habe nochmal alle
existierenden Maeuse ausgetauscht; es sollte jetzt alles funktionieren.

Arathorn.

-----------------------------------------------------------------------------



Winterputz in Moron (Arathorn, 13. Jan 2019, 02:40:44):
Moin,

ich habe gerade ein groesseres Paket an Ueberarbeitungen fuer Moron
eingespielt. Die Kernfunktionen habe ich getestet, und es sollte theoretisch
alles wie zuvor funktionieren, aber wenn irgendwas komisch ist, meldet euch.
Am besten sagt ihr mir direkt Bescheid; abgesetzte Bugs gehen gerne mal in 
der Menge an Meldungen unter.

Gruss, Arathorn.

-----------------------------------------------------------------------------



Narrenball (Arathorn, 13. Jan 2019, 22:01:30):
Hallo zusammen,

ich habe gerade eine groesseres Paket kosmetische Aenderungen an der
Narrenball-Quest eingespielt. Es sollte alles wie zuvor funktionieren, am
Ablauf der Quest hat sich nichts geaendert.

Wie gewohnt gilt, wenn Dinge doch nicht funktionieren sollten, meldet euch.
Allerdings braucht ihr bei Fehlern im Raum-Zeit-Gefuege nicht extra
Nescheid zu sagen, weil wir darueber ohnehin eine Meldung bekommen.

Gruss, Arathorn.

-----------------------------------------------------------------------------



Re: Raetselstein-Quest (Nok, 27. Feb 2019, 20:30:38):
~#! rn=Arathorn rt=1546889324 rg=d.ebene
~#! tid=1546889324
Man kommt trotz richtigem Singens nicht am ersten Waechter der Zitadelle
vorbei.

Ein Waechter haelt Dich zurueck und sagt: Du solltest singen, sonst jagst Du
Ein Waechter haelt Dich zurueck und sagt: Dich in die Luft.


Nok i.V.v. Tharlona

-----------------------------------------------------------------------------



Re: Re: Raetselstein-Quest (Arathorn, 28. Feb 2019, 19:51:20):
~#! rn=Nok rt=1551295838 rg=d.ebene
~#! tid=1546889324
Jup, da war ein Fehler drin. Habe das betroffene Objekt repariert und 
alle im Spiel befindlichen ersetzt. Gleichzeitig habe ich eingebaut, dass
man beim Logout automatisch aufhoert zu singen, beim Wieder-Einloggen aber
auch automatisch wieder anfaengt, wenn man vorher gesungen hat.
Sollte das zu unerwarteten Schwierigkeiten fuehren, sagt Bescheid.

Ihr solltet aber jetzt wieder an allen Praesenzen ordnungsgemaess vorbei-
kommen.

Gruss, Arathorn.

-----------------------------------------------------------------------------



Sieben-Kelche-Quest (Arathorn,  5. Mai 2019, 20:57:30):
Hallo zusammen,

ich habe gerade ein groesseres Paket Aenderungen fuer die Sieben-Kelche-
Quest eingespielt. Es handelt sich vor allem um Modernisierungen am Code,
d.h. technische Dinge, von denen ihr normalerweise gar nichts mitbekommen
solltet. Es kann aber natuerlich immer sein, dass mir Fehler unterlaufen
sind, die beim Testen nicht aufgefallen sind, daher bitte ich wie immer
um Feedback, wenn sowas auftreten sollte - gerne auch direkt, dann kann
ich schneller reagieren, als wenn es per Bug/Idee abgesetzt wird.

Weitere Aenderungen sind die Flexibilisierung vieler Syntaxen in dem 
gesamten Gebiet sowie einige Veraenderungen an Ausgaengen.

Gruss, Arathorn.

-----------------------------------------------------------------------------



Daemonenburg und Daemonendimension (Arathorn, 30. Jun 2019, 11:28:13):
Hallo zusammen,

ich habe gerade ein groesseres Aenderungspaket in der Daemonenburg und
Daemonendimension eingespielt. Neben reichlich Typos (mich wundert, dass
die bisher niemand abgesetzt hat) und fehlenden Zeilenumbruechen wurden
auch verschiedene Bugs in beiden Gebieten beseitigt. Zusaetzlich sollten
viele Syntaxen deutlich flexibler geworden sein.

Fuer euch als Spieler sollte sich nichts geaendert haben, wenn doch, bitte
gerne direkt bei mir melden (bevorzugt per E-Mail, da Meldungen ueber den
Befehl "bug" im allgemeinen Grundrauschen schnell untergehen. ;)

Die drei Spieler, die Waffen mittels Blutstropfen veraendert hatten, 
muessten sich aber bitte unabhaengig von eventuellen Fehlern einmal bei
mir melden, da durch das Update die Aenderung verloren gegangen ist.

Ansonsten viel Spass! :-)

Gruss, Arathorn.

-----------------------------------------------------------------------------



Sind die Spieler zu stark? ;-) (Arathorn, 19. Aug 2019, 23:46:56):
Moin,

dass seit Jahren niemand gemerkt hat, dass die Sanduhr in der Sieben-Kelche-
Quest kaputt war, kann ich nur so interpretieren, dass die Spieler sie
nicht mehr brauchen und habe sie daher repariert. Denn was gibt es
schoeneres als Spassobjekte, die sogar funktionieren? :o)

Danke an Rona fuers Bescheidsagen. :-)

Gruss, Arathorn.

-----------------------------------------------------------------------------



Re: Sind die Spieler zu stark? ;-) (Zesstra, 20. Aug 2019, 00:07:16):
~#! rn=Arathorn rt=1566251216 rg=d.ebene
~#! tid=1566251216
Huh, als ich sie gespielt habe, hiess es "die ist kaputt" und "frueher waer
sie zu stark und wurde wonders genutzt und nach der Reparatur wuerde sie nicht
mehr gehen". Ich erinnere mich auch noch, ziemliche Probleme gehabt zu haben
damals und keinen Effekt der Sanduhr zu bemerken. Ich ging aber eigentlich
davon aus, dass waere schon vor langem (15+ Jahre) gefixt worden... Ich hoffe,
es ist nicht der gleiche Fehler wie damals...

Zesstra

-----------------------------------------------------------------------------



Re: Re: Sind die Spieler zu stark? ;-) (Arathorn, 20. Aug 2019, 00:09:02):
~#! rn=Zesstra rt=1566252436 rg=d.ebene
~#! tid=1566251216
Nein, das ist ein anderer. :-) Damals[tm] war der Fehler, dass die ueberall
funktionierte und die volle Wirkung ewig anhielt.

Arathorn.

-----------------------------------------------------------------------------



Re^3: Sind die Spieler zu stark? ;-) (Zesstra, 20. Aug 2019, 00:09:42):
~#! rn=Arathorn rt=1566252542 rg=d.ebene
~#! tid=1566251216
ja, aber dann wurde das ausgebaut und danach hatte sie keine Wirkung mehr. ;-)

Zesstra

-----------------------------------------------------------------------------



Re^4: Sind die Spieler zu stark? ;-) (Gloinson, 20. Aug 2019, 07:26:33):
~#! rn=Zesstra rt=1566252582 rg=d.ebene
~#! tid=1566251216
Ich fuerchte, als ich die Quest vor knapp 15 Jahren mit einem Zweitie nochmal
gemacht habe, war das auch schon kaputt. Zu meinen Jugendzeiten war es wie
beschrieben missbrauchbar und beim zweiten Durchlauf hatte der Zweitie halt
entsprechend gute Ausruestung.

Fazit: SPIELER ABWERTEN. GOETTER AUCH. ERST RECHT DIE MPA!


-----------------------------------------------------------------------------



Re: Daemonenburg und Daemonendimension (Arathorn, 22. Aug 2019, 19:42:00):
~#! rn=Arathorn rt=1561886893 rg=d.ebene
~#! tid=1561886893
Moin,

die Erdbeere funktioniert jetzt wieder wie gewohnt, ich hatte da bei der
Bearbeitung was uebersehen.

Gruss, Arathorn.

-----------------------------------------------------------------------------



Daemonenburg (Arathorn,  4. Jan 2020, 00:31:58):
Moin zusammen,

mir fiel neulich auf, dass im Zuge meiner Ueberarbeitung der Daemonenburg
und der Daemonendimension zwei altbekannte NPCs jetzt neuerdings Erstkills
sind. Vielleicht wollt ihr euch da ja nochmal umschauen, falls euch sowas
interessiert.

Gruss, Arathorn.

-----------------------------------------------------------------------------



Der Osterhase (Arathorn, 15. Apr 2020, 20:49:45):
Hallo zusammen,

der Osterhase hat sich entschlossen, noch bis naechsten Sonntag in Port Vain
zu bleiben, damit moeglichst viele Spieler die Moeglichkeit haben, Ostereier
zu suchen und zu finden.

Er sich auch ueberreden lassen, einige seiner Hinweise etwas weniger nebuloes
zu formulieren. Anfangs war er nicht ueberzeugt und meinte, wenn er schon
laenger da bleibt, muessten die Hinweise ja eigentlich gar nicht so viel
klarer werden, weil ja mehr Zeit zur Verfuegung stuende. Der Hinweis darauf,
dass vielleicht selbst in diesem Jahr nicht alle Spieler die ganze Woche
Vollzeit Eier suchen koennten, hat ihn dann aber doch ueberzeugt.

In diesem Sinne: Viel Erfolg! :-)

Arathorn.

PS: Ach, ich soll noch ausrichten, wenn ihr immer nur einen (zufaelligen)
Hinweis aus eurer Liste haben wollt, koennt ihr den Osterhasen separat danach
fragen, d.h. entweder nach "tipp" oder "tipps".

-----------------------------------------------------------------------------



Belohnungen fuers Metzelorakel (Arathorn,  3. Mai 2020, 22:42:56):
Hallo zusammen,

es hat sich ein bisschen was an der Syntax des Metzelorakels geaendert, wenn
ihr eure Belohnung(en) abholen wollt. Dafuer koennt ihr jetzt angeben,
welche Art von Belohnung ihr gerne haben wollt. Wenn das moeglich ist,
kommt der Schamane eurem Wunsch gerne nach.

Wenn sich irgendetwas ungewoehnlich verhaelt, einfach gleich Bescheid sagen.

Gruss, Arathorn.

-----------------------------------------------------------------------------



Keeeeekse! (Notstrom,  6. Nov 2020, 18:50:30):
    Huhu zusammen,

dieses Jahr war ja nun nicht das allerbeste. Da mans nunmal nicht umtauschen
kann, macht man einfach das Beste draus. Ich hoffe, dass ein paar neue Quests
(bzw. Miniquests) Euch dabei helfen. Die erste davon ists jetzt abgenommen
und angeschlossen.

Vielen Dank an die ueblichen Verdaechtigen: meine tapferen Tester, die EMs
und die Balance, die zuegig meine Antraege bearbeitet haben, und Arathorn
als RM. Danke auch an alle, die mich durch ihren Zuspruch motiviert haben
und mir Feedback gegeben haben.


So, nun aber los. Schaut Euch - wenn Ihr tapfer seid - einmal in der
Brunnenstrasse in Port Vain um, wo eine Baeckerei frisch eroeffnet hat.
Vielleicht koennt Ihr dort jemandem helfen.

Viel Spass!
Notstrom.

-----------------------------------------------------------------------------



Rezept to go (Notstrom, 12. Dez 2020, 16:10:15):
    Huhu,

mehrere Spieler und Spielerinnen haben mich bereits wegen des Rezepts aus
der Quest "Kekse backen" angesprochen. Ab sofort kann man Greta, wenn man
die Quest beendet hat, um das Rezept bitten, so dass Ihr es zuhause in RL
backen koennt.

Viel Spass und guten Appetit!
Notstrom.

-----------------------------------------------------------------------------



Die Chaoshandschuhe (Arathorn, 16. Dez 2020, 21:00:23):
Hallo zusammen,

die Chaoshandschuhe haben aufgrund eines Balance-Beschlusses zwei kleinere
Aenderungen erfahren. Ich habe die im Umlauf befindlichen Exemplare durch neue
ersetzt, ihr muesstet sie ggf. neu anziehen.

Gruss, Arathorn.

-----------------------------------------------------------------------------



Frohe Ostern! (Humni, 31. Mar 2024, 11:42:45):
Frohe Ostern!

Zu Beginn der Osterfeierlichkeiten ist nun auch der Osterhase anwesend und hat
Tipps fuer euch.

Im Zuge der ... Aufraeumarbeiten ... des letzten Jahres habe ich dann
festgestellt, dass die Eier der Vorjahre (und der Vorvorjahre ...) wohl alle
schlecht geworden sind und ... leider ... verschwunden sind.

Waren lecker. Oeh ... nein, natuerlich nicht, ich habe nix damit zu tun!

Humni

-----------------------------------------------------------------------------



