Ich hab das Brett gefunden !! (Jof,  5. Okt 1992, 15:07:31):
Es ist mir gelungen, das Brett im Gebirge zu finden ...
auf einer Wolke segelte ich heran :)

Jof
-----------------------------------------------------------------------------



Auch ich hab es entdeckt! (Freund, 25. Nov 1992, 14:20:47):
Zweiter! Wirklich ein tolles MUD, dafuer dass es in Deutsch ist und noch
im Aufbau - einfach genial. Ich denke, ich werde sehr oft hereinschauen...
Wann soll es ungefaehr fertig gestellt sein?
-----------------------------------------------------------------------------



Lebenszeichen (Tron, 12. Jan 1993, 18:30:58):
Ich habe nach langen Irrwegen diesen herrlichen Turm entdeckt und hoffe ihn irgendwann wiederzufinden.
Dem Erzmagier Boing meine Bewunderung fuer das bis jetzt gesehene.
-----------------------------------------------------------------------------



Ein Dank an alle Teilnehmer (Elk, 27. Apr 1993, 11:23:16):
Ich moechte mich hiermit bei allen denen bedanken die an diesem Mud
mitgewirkt haben und oder alls Freunde durch dieses Mud geistern.
Mfg. Elk
-----------------------------------------------------------------------------



Waaaaaaaaaaaaaahhhhnsinnnnn (Thunderbird,  3. Mai 1993, 14:03:59):
Hier stehe ich, ich kann nicht anders.
Gott helfe mir. Amen.

Ein ganz grosses Lob an alle Programmierer, die an diesem MUD beteiligt
sind und waren. Ich wuenschte mir noch oefter Prachet-Motive. (Jeder
Fantasy-Fan MUSS seine Buecher gelesen haben.
Auf Wiedersehen. Udo.
-----------------------------------------------------------------------------



Yendi was here !!! (Yendi, 26. Mai 1993, 16:25:05):
Pfuuuh, ganz schoen anstrengend! Ich glaube, der naechste Zaubertrank
wird in "Ausdauer" investiert!
-----------------------------------------------------------------------------



Hi Boing! (Grinold,  2. Jun 1993, 20:09:10):
Nett, deine Ebene.. In letzter Zeit macht mir MG immer mehr Spass.
Bis bald, Grinold.
-----------------------------------------------------------------------------



Schreckensspitze ist jetzt zugaenglich! (Boing,  8. Jun 1993, 11:03:51):
Hallo Gebirgsfreunde! :)

Das Labyrinth in der Schreckensspitze ist jetzt zu einem kleinen Teil
zugaenglich und wird staendig erweitert. Interessant duerfte es vor
allem fuer Spieler mittlerer Stufen sein, aber auch unsere besten Spieler
duerften dort noch ihre Herausforderung finden (wenn nicht, dann probiert
doch mal meine schwarzen Steinbeisser aus ;) ). 
Fehler und Typos bitte melden!

Viel Spass,
 
   Boing
-----------------------------------------------------------------------------



Entsetzliche Gefahren warten auf echte Helden (Boing, 30. Jun 1993, 19:43:06):
Hallo!

Kennt ihr eigentlich schon die Hoehle mit den gefaehrlichen schwarzen
Steinbeissern? Angeblich soll darin das sagenumwobene Amulett der
Steinbeisser versteckt sein, allerdings ist bis jetzt noch keiner
wieder lebend und mit Amulett aus der Hoehle rausgekommen. Die Hoehle
ist auch wirklich nur etwas fuer die allerstaerksten Spieler, und 
die sollten dann am besten auch noch in einer Horde dort auftauchen,
um eine Chance zu haben.
Ich bin gespannt, wer der erste sein wird, der in meinem logfile
auftaucht :-)

Viel Spass,

    Boing, der schreckliche Gebirgsmagier

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



Lang Lebe Boing !! (Ketos,  1. Jul 1993, 18:49:09):
Ich bin begeistert von diesen MUD. 
Prima dass jetzt auch Zauberen geht...
Nur eines haette ich gerne. Einen automatischen Lebenspunkteanzeiger.
Damit mit mich die Steinbeisser nicht wieder zermatschen...

Weiter so.
-----------------------------------------------------------------------------



>>scheisspilze,wer war das? (Bolg,  4. Okt 1993, 22:01:08):
also, ich finde es ist eine Frechheit, einfach einen Warsteinerpilz als giftig zu deklarieren und einen Gruenspanpilz nicht. Das widerspricht nicht nur jeder Logik, sondern auch jedem aesthetischen Empfinden! ;)
-----------------------------------------------------------------------------



Kann mal jemand... (Gernot,  5. Okt 1993, 16:38:38):
Kann mal ein Magier vielleicht den parser um ein paar variationen von 
klettere o.ae. erweitern, wenn man in der Akademie der Wissenschaften 
die Wand hochklettern moechte ? Das nur genau eine Formulierung zutrifft
ist wohl ewas arm... naja ich bin wieder rausgekommen....
Gernot
-----------------------------------------------------------------------------



hallo und danke fuer den fisch (Twrgl,  8. Okt 1993, 22:20:07):
ich finde die idee des mud verdammt gut. d
danke an alle die mir bisher tips zur benutzung gegeben haben
sorry, das mir wahrscheinlich ein paar Zeilen misslungen sind,
aber ich werde etwas von einem Mueckenstich geplagt.
-----------------------------------------------------------------------------



Hi! Leuthe alles klar bei euch (Maverick, 14. Okt 1993, 17:21:14):
Ich will hiermit meine hilfe an alle mud Spieler in den tiefernen stufen Anbieten
Wenn ihr fragen habt dann fragt !
Und wenn ich mal nicht dabin keonnt ihr mir auch ein Brief in der Post schreiben 
Bis dann 
         Euer Helfer
                     MAVERICK
-----------------------------------------------------------------------------



Trank ? (Elric, 22. Okt 1993, 13:14:43):
Boing, oh Boing, was passierte mit dem Elixier in Deiner Schublade?
-----------------------------------------------------------------------------



unerforschtes Gebiet entdeckt... (Ketos,  4. Dez 1993, 18:50:15):
-- MPA - Meldung ---- MPA - Meldung ---- MPA - Meldung ---- MPA - Meldung --
Merkwuerdige Dinge geschehen zur Zeit um dem Drachensee.
Ein Kundschafter, der zurueckgelangen konnte, meldete uns
ein unentdecktes Seitental des Schreckensgebirges.
Wir hoffen, dass uns demnaechst naehere Informationen erreichen.


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



"betrifft liste " (Bikewarrior, 18. Jan 1994, 21:21:05):
koenntet ihr die liste noch etwas verlaengen ??
es sind schon so viele gute leute da , dass man sich selbst noch nicht findet !)
:-((((

ihr tut vor allem anfaenger wie mir einen gefallen
ansonsten ist es hier ganz toll
tschuess bis bald BIKI
-----------------------------------------------------------------------------



highscore (Bikewarrior, 19. Jan 1994, 18:08:14):
was bestimmt die reihenfolge der leute ???
-----------------------------------------------------------------------------



steinbeisser (Lacroix, 26. Jan 1994, 18:44:29):
Ich moechte auch einen Steinbeisser haben - aber einen in LILA
Wo kann ich ihn bestellen?
Wenn am schwarzen Brett, dann will ich es hiermit getan haben
-----------------------------------------------------------------------------



fragen eines anfaengers (Cord, 11. Mai 1994, 17:20:55):
wie gut ist ein wespenstachel ist ein messer besser wie bekommt man EP ohne imm
er kleine tiere zu toeten (ausserdem ist das nicht mal einfach)**
unt brett
++
-----------------------------------------------------------------------------



Kleine Hilfen (Colwyn, 20. Mai 1994, 15:03:24):
Geld: Sucht Robin auf der Hochebene.
Ausruestung: Fragt einfach ndere Abenteurer. Manchmal liegen 
aber auch Sachen herum (Lederruestungen, z.B.).
Oderihr besiegt einen Gegner. ABER KEINE SC's!
-----------------------------------------------------------------------------



Re: fragen eines 2. anfaengers (Laurin, 13. Jun 1994, 10:12:54):
Das einfachste ist es, die Sachen aus dem Anfaengerpark zu verkaufen (oder
die dortigen schneehoernchen und wespen zu killen und deren Zeug zu
verkaufen). So bin ich auch zu meinem ersten Geld gekommen.

                        Ciao, euer Zwergenkoenig Laurin


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



zaubertraenke (Melkor, 17. Jun 1994, 08:26:50):
warum bekomme ich nicht alle zaubertraenke ??
bin ich zu unerfahren oder warum ??
-----------------------------------------------------------------------------



Re: zaubertraenke (Dancer, 17. Jun 1994, 13:36:05):
Hi Melkor,

jeder Spieler kann im MorgenGrauen 80 Zaubertraenke finden. Da jedoch wesen-
tlich mehr als diese 80 im Land versteckt sind, wird bei der Generierung
Deines
Charakters festgelegt, WELCHE Zaubertraenke er finden kann und welche nicht,
in Form einer Liste. So passiert es, das Du viele ZT nicht findest, auch wenn
Du an der richtigen Stelle suchst.

In der Hoffnung, ein wenig geholfen zu haben,

Schwerttaenzergalante Verbeugung

Dancer


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



Re: Re: zaubertraenke (Caradhras, 23. Jun 1994, 03:29:29):
		Kuckuck!
Hilfe, mein erster Artikel aeh Posting aeh Dingens... wie man auch immer
sagt.

Wuesste nur mal gerne, warum Dancer meint, es waeren 80 ZTs im mud ver-
steckt. Bei mir macht (20-1) * 4 immer noch 76, denn schliesslich faengt man
ja mit 1 an und hoert (vielleicht :) mit 20 auf, also nur 19.

Ist Dancer n Mathematiker? *grins frech* Die koennen naemlich alle nicht
zaehlen.

tschuessie
	Caradhras der Prophet - und ich sage euch voraus...
PS: oemm, was eigentlich? *gruebel* *kopfkratz*

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



Re: Re: Re: zaubertraenke (Loco, 23. Jun 1994, 10:18:01):
Es gibt 80 fuer jeden. 4 sind "Bonustraenke".
Ausserdem findet ja sowieso (fast?) niemand alle...

   Loco

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



Tyrannai (Ohneha, 23. Jun 1994, 18:39:42):
Wir der Revolutionsrat mussten erkennen, dass in dieser Tyrannai eine Veraenderung nicht moeglich ist!
Wir rufen jedoch alle revolutionaeren Kraefte zum passiven Wiederstand auf!
Wehrt Euch gegen Boing, Hobo und wie sie alle heissen moegen!
Lasst Euch nicht alles gefallen!
-----------------------------------------------------------------------------



Re: Tyrannai (Beldin, 23. Jun 1994, 20:26:03):
Wasn das fuern Quatsch, hae??????????
+
Ciao Beldin.

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



Re: Revolution (Jof, 23. Jun 1994, 22:06:30):
Auja wehrt auch ! REVOLUTION !!!
(Endlich mal wieder ein paar unterhaltsame Hinrichtungen auf dem Programm ...
ich erwaehnte doch, was mit Revolutionaeren geschieht in einer Tyrannei ?)

 Blutgierig,
 Jof

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



Re: Revolution (Anthea, 24. Jun 1994, 13:49:52):
Aeh Jof.... ich sehe gerade, wir haben noch keinen Herrn Guillot im Mud.
Wie willst Du die Hinrichtungen dann vornehmen? Schwert, Seil, Axt oder
gar Loeffel (Wie in Robin Hood)?

Die als Adelige ueber allem stehende und Kuchen an das Volk verteilende
          Fuerstin Anthea

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



Re: Hinrichtung (Stahldorn, 24. Jun 1994, 14:47:36):
Super !
Wo kann man OhneHa's Hinrichtung beiwohnen ?
Wo wird sie stattfinden ?

     Ein nach Blut lechzender Stahldorn.
-----------------------------------------------------------------------------



Re: Hinrichtung (Boing, 24. Jun 1994, 15:00:07):
Hmmm ....
War Stahldorn nicht auch dabei?

  Boing

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



Re:re:Hinrichtung (Stahldorn, 24. Jun 1994, 15:06:19):
NEIN ! nein !

Ich schwoere ich hege keine subversiven Gedanken !

Bittebitte Desintegriert mich nicht !!!!
Ich werde auch nie mehr wieder blutruenstig sein !

  Ein um Gnade winselnder Stahldorn.

PS: Na ja, ein bisserl Blutdurst geht ja vielleicht....
-----------------------------------------------------------------------------



Revolution II (Ohneha, 27. Jun 1994, 14:53:22):
Dafuer muesst Ihr den grossen Revolutionsfuehrer erst einmal kriegen!
Aeh, wo kriegt man diesen Titel eigentlich?



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



Re: Re:re:Hinrichtung (Asmodis,  5. Jul 1994, 19:21:52):

Sucht ihr noch einen henker? Ich biete mich an !!

              Ein blutduerstender Asmodis (Level 23 Seher)

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



brett (Tam,  7. Jul 1994, 13:57:27):
der revolutionsrat von morgengrauen fordert

freiheit fuer androiden
steinbeisser fuer alle
tod den subversiven kleinen roten teilchen
sowieso alles was freude macht
jedem eine gelbgruene quitsche ente
etwas grungliges
und wuschelige sofas fuer jederman ueberall im MUD

werden unsere forderungen nicht erfuellt drohen wir mit schlimmen sachen
-----------------------------------------------------------------------------



revolution III (Mat,  7. Jul 1994, 14:24:21):
voelker hoert die signale - und reagiert endlich
die zeit ist gekommen etwas zu unternehmen.
viel zu lange schon muessen wir die unterdrueckung ertragen
unsere forderungen
- gerechte entlohnung bei systemabstuerzen
- ein revolutionaerer magierkontrollrat bestehend aus nichtmagiern
- eine grundausruestung
- faire zaubertrank verstecke
- wir wollen als revolutionaere anerkannt werden und verlangen, dass sich die 
   verantwortlichen mit unseren ideen auseinandersetzen
- mitspracherecht in oeffentlichen gremien


sollten unsere forderungen nicht erfuellt werden oder sollten wir feststellen
dass wir ignoriert werden, dann muessen wir uns auf andere weise gehoer verschaffen  

 cih hoffe dass nicht alles zu ernst genommen wird 
wir sind "nur" fuer einige erneuerungen und dafuer dass mal etwas neues hier geschieht
ein fuer mehrere sprechender 
                              mat

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



Stimmberechtigung (Kretek,  7. Jul 1994, 15:25:21):
Betrifft: Erste Sitzung des 'Revolutionsrats'
Da ich nicht kommen kann, mich aber trotzdem fuer alles interessiere, was
im MG so passiert, erteile ich OhneHa hiermit Stimmrecht fuer mich in 
dieser Versammlung.

Kretek

P.S.: Nach der Versammlung moechte doch bitte ein netter Magier diesen
Anschlag loeschen, da sowieso schon zuviel Muell rumhaengt!
-----------------------------------------------------------------------------



Die kleinen Freuden eines Jungmagiers..:) (Puma, 11. Jul 1994, 14:44:16):


        -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=

	Am elften Julius im Jahre des Herrn Tausendneunhundertvierundneunzig
	ist es geschafft. Nach langen Muehen ist es endgueltig gelungen,
	das alte, geheimnisumwobene Tal der Lupinen wiederzuentdecken.
	Kundschafter sprechen von einem kleinen unscheinbaren Pfad am 
	westlichen Rand der Hochebene, welcher bis vor kurzem noch voellig
	unzugaenglich war.
	Doch sei gewarnt Abenteuerer! Das einst friedliche Tal hat sich
	gewandelt. Finstere Wesen ziehen durch den tiefen Wald und machen
	das Reisen unsicher. Und wenn erst die grauenhafte Hydra ihren
	taeglichen Raubzug durchfuehrt zittern selbst die Haende des
	maechtigsten Helden.
	Doch das Tal der Lupinen birgt nicht nur grosse Gefahren. Neue
	Zaubertraenke warten auf ihre Entdeckung. Schaetze wollen eingesammelt
	werden. Eine Feenprinzessin bedarf dringend der Hilfe und viele
	kleine Details geben Information ueber die 'kommende' grosse Aufgabe,
	das Tal von seinem dunklen Schatten zu befreien.
	Wem das	alles egal ist, der kann sich aber einfach nur einmal nach
	getaner Arbeit im 'Schaeumenden Krug' bei einer Partie Skat einen
	Players-only-QGB goennen...

	(in Erwartung tausender Fehlermeldungen......)

						Lupinengruesse
							        PUMA  

        -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=



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



Aenderung (Puma, 14. Jul 1994, 13:37:47):
Damit nicht nachher wieder alle schreien:

Der Schaden in der Fallgrube im Lupinental ist geaendert worden!

Dann springt mal schoen ! :-)

                                       Lupinengruesse
                                                         PUMA



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



Re: Revolution (Anthea...) (Arachna,  1. Aug 1994, 20:48:58):
Wir haben doch einen Orkhenker, den koennte man sich doch mal ausborgen ;)

Arachna

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



Eusebius returns! (Puma, 21. Sep 1994, 14:18:59):
So, nach der ersten Testphase, die unser lieber Eusebius uebrigens
hervorragend ueberstanden hat, kommt nun die Realisation.
Ab sofort steht dieser nette Mitbuerger des MorgenGrauens allen Spielern
offen. Wenn er sich nicht gerade irgendwo anders herumtreibt, kann man sich im
'Schaeumenden Krug' im Lupinental beim Wirt nach ihm erkundigen.

Viel 'Spass'!

                                          Lupinengruesse

                                                    PUMA




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



Hoehlen (Cifer, 26. Sep 1994, 21:21:03):
Wie ich soeben bei einem ausgedehnten Rundgang durch meine Wohnhoehlen
und deren Peripherie feststellen musste, haben es einige meiner gefraessigen
und unliebsamen Mitbewohner offensichtlich geschafft, ein grosses Loch in
die Aussenwand zu fressen, hinter dem ich das tiefblaue Meer schaeumen sehen
konnte.
Trotz der neuen Aussicht, die sich mir nun anstelle der nackten Felswaende
des Berginneren bietet, habe ich allen Grund, besorgt zu sein, denn nun ist
es jedermann moeglich, den Berg zu betreten und all den seltsamen Wesen zu
begegnen, die sich meiner Kontrolle laengst entzogen haben und ein hoechst
eigenmaechtiges Leben fuehren, welches vom Rausche des Blutes bestimmt zu
werden scheint.
Ich kann daher alle Wanderer und Abenteurer nur warnen, vorsichtig zu sein,
wenn sie die neue Hoehle, die sich nahe der Kueste im Umland einer grossen
Stadt befindet, in Augenschein nehmen wollen. Seid auf der Hut vor den
fuerchterlichsten Geschoepfen der Nacht, deren Existenz nur darin besteht,
Leid und Unheil zwischen die Mutigen zu bringen, die sich ihnen entgegen-
zustellen wagen! Ich habe den Kampf gegen sie laengst aufgegeben, denn ich
bin nur ein alter Magier, dem das Fechten und Parieren nicht mehr liegt.
Aber vielleicht kann ein mutiger Abenteurer der Plage Herr werden, und die
Monster, die mich nachts im Schlafe quaelen, ein fuer allemal ausrotten! Nach
getaner Arbeit moege er mich dann aufsuchen, um bei einer Flasche
Chi-Cola ueber seine Erfahrungen mit den Ausgeburten einer finsteren
Welt zu plaudern, sich zu entspannen, und einfach nur mein Gast zu sein.

Auf zahlreichen Besuch hofft Cifer.

P.S.: Sollte ich einmal abwesend sein, so unterhaelt sich auch gern Otto,
mein Pfoertner, mit gestressten Abenteurern, die ein wenig Zeit zum
Entspannen haben - und wer weiss, vielleicht hat ja auch er einen guten
Tropfen parat.

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



Orakel entdeckt .. (Puma, 13. Okt 1994, 14:57:29):
Fuer alle, die endlich mal in Ruhe und Sicherheit das Lupinental erforschen
wollen, ohne dass sie gleich hinter der naechsten Hecke zahllose entsetzliche
Hydrakoepfe entdecken, ist jetzt ein kleines Orakel eingerichtet worden.
In der Naehe des Steingolems kann man sich nun gegen einen kleinen Obolus
darueber informieren, ob die Hydra zur Zeit das gruene Tal unsicher macht.
Ich hoffe dadurch auch zahllosen Spielertoden vorzubeugen, die hier so
manches mal eine bittere Ueberraschung erlebt haben.



                                  Lupinengruesse

                                              PUMA




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



Identifiziere (Cifer, 14. Okt 1994, 17:49:35):
Hallo,
da es frueher mal eine Zeit gab, in der sich die Spieler gern (und nicht
ganz zu Unrecht) beschwerten, dass es kaum Gegenstaende gaebe, die sich
identifizieren liessen, habe ich diesen Spruch in allen interessanten#
Items eingebaut, die sich in meinem kleinen Hoehlensystem finden lassen.
Um ehrlich zu sein, bringt es nicht allzu viel, aber es kann ja
auch nichts schaden.

Diesen Artikel schreibe ich, da ich feststelle, dass leider kaum jemand
auf die Idee kommt, das mal von sich aus auszuprobieren.
Wahrscheinlich haben die Spieler schon resigniert aufgegeben, den Spruch
anzuwenden...


Cifer.

P.S.: Wenn wir schon mal dabei sind - warum will niemand mit meinen Monstern
und Angestellten


reden? Koennte naemlich mal ganz interessant sein...

Aehm, kann es sein, dass ein BUG in Zeitung und Mailserver ist? ~d
funktioniert bei mir naemlich nicht mehr, und ~r macht auch Probleme, fuegt
manchmal einfach Leerzeilen ein, die ich nicht mehr wegbekomme!


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



Eis- und Schneeriese (Boing, 15. Okt 1994, 15:58:59):
Hallo,

aufgrund eines Fehlers, der mir eben erst aufgefallen ist, war der Schnee-
riese staerker als der Eisriese, das sollte eigentlich nicht so sein.
Keine Sorge, der Eisriese hat keine neuen Faehigkeiten oder sonst irgendwie
toedliche Eigenschaften bekommen, er ist nur etwas ausdauernder geworden.

Tschuess,
  Boing

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



Juwelier (Boing, 17. Okt 1994, 11:56:39):
In der Zwergenstadt hat ein von Alarin ausgebildeter Juwelier seinen
Laden eroeffnet und erhofft sich jetzt natuerlich jede Menge Kundschaft.
Schaut mal bei ihm rein. :)
  Boing

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



Per Anhalter (Arthurdent,  3. Nov 1994, 14:40:30):
Hi, ich bin ArthurDent, na ihr  wisst schon...

Seid ich von der Erde weg musste, die einer Hyperraumstrasse wich, irre ich
nun hier herrum !

Mein tip an alle Reisenden: Handtuecher gibt es in der Sauna
(Noerdlich vom wald der Freunde )


                                         Ciao,
                                              Arthur
-----------------------------------------------------------------------------



Feuerring (Boing, 18. Nov 1994, 18:20:23):
Hallo,
man sieht dem Ring jetzt an, ob er sich regeneriert (sprich, ob er
vibriert) oder nicht. Geht natuerlich erst bei neuen Ringen.
  Boing

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



Hoehlen wieder begehbar (Cifer, 18. Nov 1994, 18:36:34):
Hallo,

allen, die in den letzten Wochen erfolglos den Eingang zu meiner kleinen
Wohn-,Arbeits- und Metzelhoehle gesucht haben, sei nun gesagt, dass saemtliche
Erdruetsche und Verschuettungen durch goettliche Haende beseitigt wurden.
Die Ursache derselben bleibt zwar ungeklaert, ich hoffe aber, dass es sich
nur m einmalige, leider nicht vorhersehbare seismographische Stoerungen
gehandelt hat.

Na dann viel Spass bei der Wurmjagd...

Cifer :)

P.S.: Wie mir schon frueher auffiel: Warum haelt es eigentlich niemand fuer
noeig, mit NPC's zu reden? Koennte sich manchmal lohnen, auch wenn man keinen
ZT bbekommt.
Aehm, sorry fuer die Tippfehler, meine Tastatur macht hier Aerger...


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



Golem (Aycorn,  9. Dez 1994, 15:11:57):
leeve lutt!

Ich hab schon versucht, mit dem Golem zu reden - allerdings ohne den geringsten Erfolg.
Und mit dem Ding bei den Pfaehlen zu reden, habe ich lieber nicht versucht, nachdem es mich beinahe alle gemacht hat!

Ach ja: Die Sphingen (!) muessten doch eigentlicht Sphinxen heissen, oder?
Und wo bekommt man die Antworten auf die daemlichen Raetsel her, die die Teile einem stellen?
Gruss, Aycorn
-----------------------------------------------------------------------------



Re: Golem (Stahldorn, 10. Dez 1994, 17:37:54):
#! rn=Aycorn rt=786982317
Singular: Sphinx
Plural: Sphingen ODER Sphinxen.

         STAHL, der Wichtigtuer. ;)

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



Ameise... (Telo, 13. Dez 1994, 15:55:17):
hallo!

Mir ist gerade ein Anfaenger namens Ameise begegnet... 
Ich denke, man sollte entweder den Playerkill legalisieren oder solche namen verbieten...

So long

Telo
-----------------------------------------------------------------------------



Re: Golem (Asmodis, 19. Dez 1994, 19:12:10):
Hmm, wie man die Antworten zu den Raetseln findet?
Ganz einfach(oder auch nicht) durch logisches Denken !!!!

                             Ciao, Asmodis
-----------------------------------------------------------------------------



Dynamit! (Puma, 10. Jan 1995, 17:21:39):
Aufgrund des andauernden Missbrauchs mit dieser wirklich sehr gefaehrlichen
Waffe und auch angesichts des Schindluders, der mit ihr getrieben wird, wird
hiermit bekanntgegeben, dass

	die Sphingen am Eingang zum Tal der Lupinen
		DYNAMIT ZUR EXPLOSION
	bringen, wenn jemand versuchen sollte das
	Tal damit zu betreten.


PUMA

der immer noch an ein Fantasy-Mud glaubt, jede Art von Feuerwaffen hasst und
immer mal wieder ueber seinen verstaubten Kampfhammer an der Wand faehrt.



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



Re: Dynamit! (Highlander, 10. Jan 1995, 17:55:33):
#! rn=Puma rt=789754899
Ich hoffe doch sehr, sie tun dies, indem sie
die Zuendschnur anzuenden!!!
Highlander

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



Re: Re: Dynamit! (Asmodis, 10. Jan 1995, 18:24:44):
#! rn=Highlander rt=789756933
Hmm, sind ja komische Selbstmoerder-Sphingen :)

                                  Ciao, Asmodis

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



Re^3: Dynamit! (Beldin, 11. Jan 1995, 11:09:17):
#! rn=Asmodis rt=789758684
Eigentlich dachte ich immer das waeren SphinXen... oder hat sich da
in der "Terminologie" was geaendert?

Beldin (sich fragend den Kopf kratzend :)

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



Re^4: Dynamit! (Hardil, 11. Jan 1995, 11:41:37):
#! rn=Beldin rt=789818957

Neenee Beldin,

Sphingen ist da schon genau richtig.

YT Hardil (Sprachpfleger) :-)

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



Re^6: Dynamit! (Anatol, 12. Jan 1995, 21:15:16):
#! rn=Caradhras rt=789906279

Jau. Ist soviel ich weiss, beides gueltig.
Ende's 'Unendliche Geschichte' hats tatsaechlich mit 'Sphinxen'. Aber mit 'g'
hab ich auch schon gesehen...

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



03 (Tanor, 13. Jan 1995, 15:12:17):

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



Re: Ameise (Tanor, 13. Jan 1995, 15:19:39):
Zuerst mal sorry fuer vorherige nachricht (fehler !).
Telo, Du hast voellig recht, es gibt schon Leute e,....). In solchen Faellen Playerkill einfuehren bzw zulassen !!

or, der mit den Nachrichten wohl noch ein wenig uebmuss **






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



Re^7: Dynamit! (Anthea, 14. Jan 1995, 01:20:33):
#! rn=Anatol rt=789941716
Beides gueltig? Darauf kann doch nur ein klares JEIN kommen!
Der Plural haengt davon ab, ob Du die aegyptischen oder die griechischen
meinst.
Je nachdem ist der Plural von 'SPHINX' naemlich unterschiedlich :)

P.S.: und das gehoert fast nach Quiz:
       Wer von Euch weiss denn den Unterschied zwischen den aegyptischen
        und den griechischen? Ist naemlich ganz interessant :)


   Anthea

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



Re^8: Dynamit! (Caradhras, 14. Jan 1995, 19:54:33):
#! rn=Anthea rt=790042833
Die aegyptische hat keine Nase. *grins frech*

*gruebel* was meinst du jetzt damit? der unterschied? *gruebel*
Die aegyptische ist ein Viech aus Stein, das kennen wir ja alle, und
die griechische aus der Mythologie ist die aus Koenig Oedipus (bzw.
die dort auch vorkommt), das Monster, dass das beruehmte sphinx-raetsel
stellt: Was hat morgens 4 beine, mittags 2 und abends 3.
(wenigstens so grob, nicht wortwoertlich :)

Was gibts sonst noch an Unterschieden bzw. was meinst du sonst?

        tschoe         Caradhras der ewige Prophet

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



Re^9: Dynamit! (Anthea, 15. Jan 1995, 16:48:56):
#! rn=Caradhras rt=790109673
Ne, der Hauptunterschied ist, dass die aegyptische urspruenglich maennlich
ist (sie symbolisierte den Pharao (mit Looewenleib) oder einen Gott (mit
Widderleib)).
Die Griechen haben dann irgendwann abgekupfert und dem Vieh auch noch Fluegel
verpasst und einen Maedchenkopf und sie dann als Todesdaemon eingesetzt.
(siehe Oedipus).
Also der hauptunterschied: Aegyptisch:maennlich - Griechisch:weiblich
     Anthea
P.S.: und die weiblichen sind die Toedlichen :)

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



Re^10: Dynamit! (Anatol, 16. Jan 1995, 09:03:19):
#! rn=Anthea rt=790184936

Anthea, hoffentlich bezieht sich Dein PS nur auf die Gattung 'Sphinx'...

Anatol (just married, still dreaming)


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



Re^8: Dynamit! (Merlinus, 16. Jan 1995, 14:14:12):
#! rn=Anthea rt=790042833
Ist doch klar:
Die griechischen sind weiblich und die agyptischen maennlich.

merlinus, der sich in diesen Dingen auskennt.
q


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



Re^10: Dynamit! (Aranya, 16. Jan 1995, 15:24:19):
#! rn=Anthea rt=790184936
>PS: Und die weiblichen sind die toedlichen.

Gehoert sich ja auch so!

Freut sich
          Aranya

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



Re^5: Dynamit! (Catweazle,  6. Feb 1995, 21:51:32):
#! rn=Hardil rt=789820897
[Verlegt von witze, Catweazle,  6. Feb 1995, 21:51:16]:
[Verlegt von d.gebirge, Caradhras, 12. Jan 1995, 11:24:39]:
*gruebel* Ich frag mich, ob man nicht beides schreiben kann.
Neulich hab ich die unendliche Geschichte gelesen, ihr wisst schon, die
Stelle mit dem ersten Tor, den 2 Sphingen aeh Sphinxen :) und Michael
Ende gebraucht das Wort Sphinxen. Eigentlich ist er ja fuer sein gutes und
fehlerfreies Deutsch bekannt.

      Caradhras der ewige Prophet   *gruebelnd*



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



Spinx im Plural (Quengistu,  7. Feb 1995, 20:11:28):
Also noch mal fuer alle:
Laut Woerterbuch gibt es von Sphinx beide Plurale:
die Sphingen oder die Sphinxe. Einen Plural "die Sphinxen" gibt es nicht.
Welchen Plural man nimmt, ist mehr oder weniger Geschmackssache. Als altem
Alstsprachler ist mir der Plural "Sphingen" natuerlich lieber, weil er naeher
am griechischen Wortstamm ist. Das "x" am Ende setzt sich naemlich aus
"gamma+sigma" zusammen, wobei das gamma noch zum Wortstamm
"sigma-phi-iota-gamma-gamma bzw. sphing-" gehoert, das sigma hingegen die
Endung fuer den Nominativ Singular ist.
Wenn es sich bei den Sphngen bzw. Sphinxen um griechische handelt, sollte man
"Sphingen" sagen, wenn es aegyptische sind, waere "Sphinxe" vielleicht eher
angebracht. Da die Sphingen am Eingang zum Lupinental aber wie in der
Oedipus-Sage Raetsel aufgeben, scheinen es wohl "griechische" zu sein.

In der Hoffnung alle Klarheiten beseitigt zu haben,
   Quengistu

PS: Das erste Wort in der vierten zeile soll natuerlich Altsprachler heissen.

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



Verfluchter Ring (Paracelsus,  9. Feb 1995, 17:20:10):
Ich habe einen verfluchten Ring gekauft (als Kraft +1-Ring), aber nach
dem anstecken war er auf einmal Kraft -1. Jetzt werde ich ihn nicht mehr los!
-----------------------------------------------------------------------------



Re: Verfluchter Ring (Grimmborn,  9. Feb 1995, 17:45:03):
#! rn=Paracelsus rt=792346810

Na und?
Dumm gelaufen halt...

Grimmborn der Atheist. Ist den Ring damals losgeworden...

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



Re: Verfluchter Ring (Sysop, 13. Feb 1995, 15:25:49):
#! rn=Paracelsus rt=792346810
Kannst Du ihn nicht beim Troedler auf Aurora loswerden?
-- Sysop

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



Taramis (Silvana, 21. Feb 1995, 16:39:43):
Mein Gruss an Euch alle, die ihr euch muehseelig plagt. ;-)

Heute mittag erreichte mich eine Bote mit erschreckenden Nachrichten: Einem
namhaften Kundschafter war es gelungen in das nahezu unerreichbare Cronoertal
vorzudringen und in die Stadt Taramis zu gelangen. Nicht, dass die Buerger
von Taramis etwas gegen Touristen haetten, aber die Stadt wurde vor kurzem
in einen Krieg verwickelt und ist bei weitem noch nicht wieder aufgebaut.
Schnell liess ich die Tore schliessen, um eventuell nachdraengende
Neugierige abzuhalten - leider ist es trotzdem moeglich, bis an das
Stadttor von Taramis zu gelangen. Daher an dieser Stelle meine Bitte:
Wenn ihr Euch schon unbedingt nach Taramis begeben wollt, dann seit friedlich
und nett zu seinen Bewohnern. Ich brauche jede helfende Hand beim Wiederauf-
bau.

Vielen Dank - Silvana.

PS: Nein, ich verrate nicht, WO Taramis liegt. Die Buerger haben mich aus-
druecklich darum gebeten, es nicht zu verraten. ;-)


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



Re: Taramis (Yendi, 22. Feb 1995, 10:45:59):
#! rn=Silvana rt=793381183

*PS: Nein, ich verrate nicht, WO Taramis liegt. Die Buerger haben mich aus-
*druecklich darum gebeten, es nicht zu verraten. ;-)

Tja, Silvana, wenn Du es schon in der Rubrik d.gebirge veroeffentlichst...


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



Re: Taramis (Flintnail, 23. Feb 1995, 17:54:04):
#! rn=Silvana rt=793381183
hm...Silvana...hin war ja leicht...aber wieder rauszukommen hat mich 196 LP
gekostet...ohne dass ICH jemanden was angetan hab.....
Was hab ich verkehrt gemacht:)???

   Flintnail

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



Re: Re: Taramis (Silvana, 24. Feb 1995, 10:30:02):
#! rn=Flintnail rt=793558444
Na, ja - das laesst sich leicht sagen: Du hast einen der beiden Ausgaenge
gefunden - leider den deutlich schmerzhafteren. Aber Du hast es ja
ueberlebt, so dass ich mir wohl keine heftigen Vorwuerfe machen muss, oder?

Silvana.

PS: Der andere Ausgang ist VIEL leichter zu finden und auch voellig
    ungefaehrlich.

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



Neues im bergdorf (Ketos, 28. Feb 1995, 22:06:12):
Im Wirtshaus zum lustigen Wandersmann liegt ein neues Brettspiel

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



Land in den Wolken entdeckt (Ketos, 21. Mar 1995, 23:40:27):
Seltsame Wolkenformationen wurden in der Naehe der Schreckensspitze entdeckt.
- Ketos -

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



Osterbachschlucht (Boing, 27. Mar 1995, 15:48:58):
Ich habe die Osterbachschlucht ein bisschen verschoenert (hoffe ich),
wer sich umschauen will, soll das tun und auch kommentieren.
tschuess,
  Boing

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



Willkommen! (Mystix,  3. Apr 1995, 16:56:22):
Seid gegruesst, Reisende!

Wanderer auf dem Weg nach Melnibone haben berichtet, dass das
alte Seherhaus von Mystix abgerissen und durch ein Magierhaus
ersetzt wurde. Es ist zwar klein, aber Mystix gewaehrt jedem
Wanderer gerne Einlass.

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



Sfinx?, Swingxx, Schwingss...??? (Puma, 17. Mai 1995, 16:14:54):
Fuer alle die sich seit Jahren ueber das bloede Antwortabfragesystem bei den
Sphingen vor dem Lupinental geaergert haben ist jetzt etwas geschehen.
In Zukunft wird man nicht sofort zu einer Antwort gezwungen, sondern kann
auch noch andere Dinge vorher tun (sich von seiner/em Geliebte/n
verabschieden, wenn es gegen die Hydra geht, etc..).

Ich hoffe die haeufigen Probleme, die speziell dann auftraten, wenn zwei
gleichzeitig an den Sphingen vorbeiwollten gehoeren jetzt der Vergangenheit
an.

Falls es mit der neuen Methode zu Problemen kommen sollte, bitte sofort mail
an mich ...

Danke


PUMA!




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



Reset (Anakin, 30. Mai 1995, 18:38:10):
Hiho,

Neulich

Der Sensenmann kratzt Dich.
Du hast jetzt 133 Lebenspunkte und 9 Magiepunkte.
Der Bumerang trifft den Sensenmann am Kopf.
Der Bumerang schlaegt dem Sensenmann den Kopf ein.
Der Sensenmann faellt tot zu Boden.
Du faengst den Bumerang geschickt.
> Du faengst den Bumerang geschickt.
> il
Du hast jetzt 134 Lebenspunkte und 9 Magiepunkte.
Du hast jetzt 134 Lebenspunkte und 10 Magiepunkte.
Der Sensenmann kommt an.
Hmmm, lecker!


Ja Boing so machen Reset's Spass.

Anakin

P.S.: Die Leuchtrolle koennten dahingehend auch noch ne
Ueberarbeitung vertragen ;)

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



Re: test (Grimmborn,  4. Jun 1995, 14:20:04):
#! rn=Garfield rt=802017376

Und, haste ihn gefunden?

Grimmborn der Atheist

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



Lupinental geschlossen! (Puma, 12. Jun 1995, 17:41:11):
Im Rahmen der Generalprobe fuer meine erste Queste wird das Lupinental
von heute 19 Uhr bis voraussichtlich Mittwoch 15 Uhr geschlossen werden.

Wuenscht mir Glueck. :-)


~
Mit der Bitte um Verstaendnis


PUMA!





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



Neues Gebiet (Kaenguruh, 13. Jun 1995, 18:48:52):

Ein unermuedlicher Abenteurer, der mir kuerzlich begegnete, erzehlte mir
von einer laengst vergessenen und verfallenen Stadt weit oben in den
Gipfeln des Gebirges. Dort soll seit vielen Jahren niemand mehr gewesen
sein und die Stadt selbst soll fast nur noch aus Ruinen bestehen.
Der Abenteurer gelangte auf einem Pfad, der von Osterbach abzweigte
dorthin und entdeckte einen verborgenen Zugang zu dem Gebiet.

Bestimmt finden sich nun viele Abenteurer, die ihm nacheifern und
den Weg zu dieser Stadt auf sich nehmen.


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



Neues Gebiet (Kaenguruh, 13. Jun 1995, 18:49:57):

NEIN, das ist KEINE Questankuendigung - zumindest NOCH nicht.
Aber was nicht ist, kann ja noch werden :)

Wuensche trotzdem viel Spass in der Ruinenstadt

   Kaenguruh


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



bernhardiner (Qanuc, 26. Jun 1995, 20:47:44):
Hat der Bernhardiner IRGENDeine Bedeutung ??

Qanuc
-----------------------------------------------------------------------------



Re: bernhardiner (Jof, 26. Jun 1995, 20:47:57):
#! rn=Qanuc rt=804192464

 Yep!

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



Re: Re: bernhardiner (Asmodis, 26. Jun 1995, 23:42:18):
#! rn=Jof rt=804192477
SPIELERHILFE !


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



Re^3: bernhardiner (Grimmborn, 27. Jun 1995, 17:41:05):
#! rn=Asmodis rt=804202938

Spielerhilfe? Soweit ich weiss, ist Hilfe von NPCs erlaubt, da gibts extra ne
Funktion fuer.

Grimmborn der Atheist. Bastelt an einem Spielerhilfen-NPC.

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



Re: bernhardiner (Ardana, 28. Jun 1995, 01:06:55):
#! rn=Qanuc rt=804192464
Nicht, dass ich voellig durchgeknallt bin, aber Grimm haette bestimmt
geantwortet: Ja, er hat eine Bedeutung. - Dem kann ich mich nur anschliessen!

Und ab damit nach Schmarrn...

Live long and prosper,
                           Ardana

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



Re^4: bernhardiner (Ardana, 28. Jun 1995, 01:09:01):
#! rn=Grimmborn rt=804267665
arg, Grimm hat doch nicht geantwortet: Ja, er hat eine Bedeutung. - *STAUN*

Ein sich masslos irrender Ardana

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



Re^5: bernhardiner (Grimmborn, 28. Jun 1995, 12:27:00):
#! rn=Ardana rt=804294541

Aber nur, weil mir jemand zuvorgekommen ist. :-(

Grimmborn der Atheist. Kann auch nicht staendig die mpa bewachen.

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



Hydra (Yendi, 18. Jul 1995, 15:02:05):

In letzter Zeit habe ich mich des oefteren mit Ryne ueber die Hydra
unterhalten und ueber die Bemuehungen, das Hydratoeten wieder etwas spannender
zu machen. Da ich weiss, dass Puma eine neue Hydra in der Mache hat, hier
schnell noch mein Vorschlag:

Was haltet ihr (bzw. was haeltst Du, Puma) davon, die Hydra gegen Saeure
immun zu machen (jawohl, sowohl den Koerper als auch die Koepfe) und statt
dessen die Stuempfe der Koepfe ausbrennbar zu machen?
In Anlehnung an die griechische Mythologie: Man schlaegt einen Kopf ab und
brennt mit einem brennenden Baumstamm (oder einer Fackel, fuer alle
Nicht-Herkuli) den Stumpf aus, damit dort keine Koepfe nachwachsen.
Falls man den Stumpf _nicht_ innerhalb von, sagen wir, 30 Sekunden ausbrennt,
wachsen dort _2_ Koepfe nach... Also empfiehlt es sich, immer einen Kollegen
mit Fackel dabei zu haben.

Na? Da muesste natuerlich die Hydra mehr oder weniger komplett umgeschrieben
werden, aber man goennt den Magiern ja sonst nichts...     ;)

Anmerkungen, Kommentare, Lob & Flammen bitte an

               Yours Truly
                          Yendi


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



SSP Erweiterung (Boing, 19. Jul 1995, 10:05:23):

Ich hab die Schreckensspitze um ein paar Raeume erweitert. Vielleicht
solltet ihr erst einmal nicht alleine hingehen, ich weiss nicht genau,
wie schlimm es geworden ist ... :)

  Boing

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



hydra (Puma, 21. Jul 1995, 14:13:14):
Die Hydra ist mit ihrem Tod heute Nacht in die Abgruende der Neun Hoellen
verbannt worden... Der Fluch scheint vorerst von dem Tal der Lupinen gefallen
zu sein...
Das Tal ist nun sicher...

          PUMA!

P.S.: glaubt keinen Magiern!





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



Neues Abenteuer (Boing, 11. Aug 1995, 16:05:18):
Nach ueber 2 Jahren hab ich mal wieder ein neues Abenteuer verbrochen,
es heisst Soruths Rache und ist seit heute angeschlossen. Bitte benutzt
fleissig die Befehle typo/fehler/idee, vor allem in einem Raum, wo man
eh schon eine Menge machen kann (*grins* ihr werdet ihn erkennen!) bin
ich fuer jede Idee dankbar, also nur zu! :)

Ein besonderes Dankeschoen geht an die Tester: Silvana, Romili, Hobo, Jof,
Catweazle, Mika, Tryfan, Viper.
Und ein spezielles Dankeschoen fuer Ketos und Toeter, die mir je einen
Raum zur Verfuegung gestellt haben. :) (Romili hat mir auch noch 2 ver-
sprochen).

Viel Spass,
  Boing

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



Problem mit 'sag' in Ukhazis Zelle (Boing, 23. Aug 1995, 15:43:37):
Da es leider ab und zu noch Probleme in der Quest 'Soruths Rache' gibt,
will ich das hier kurz erklaeren: Das Problem liegt in einem (seit ca.
14 Tagen behobenen) Fehler im Orthografie-Fluch (Pandora Quest).
Auch mit fluchlevel 0 wurde das, was man sagt, gefiltert und falsch
ausgegeben. Insofern falsch, als dass der Raum nicht gehoert hat, was
man sagt. Leider kann ich nicht alle alten Flueche austauschen, da sonst
dort gespeicherte Informationen verloren gehen, und dummerweise gab es
seit 23 Tagen keinen Reboot, so dass die neuen Versionen nicht automatisch
in Umlauf kamen. Wer also Probleme hat: Entweder Fluch zerstoeren (mit
setze fluchlevel -1) oder mit ende ausloggen. Nach dem naechsten Reboot
sollte alles normal funktionieren.

  Boing

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



Re: Problem mit 'sag' in Ukhazis Zelle (Guldukat, 23. Aug 1995, 19:38:12):
#! rn=Boing rt=809185417

Darf ich fuer einen Reboot sorgen, boing? ;)
GD

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



Charakterfragen ... (Boing, 30. Aug 1995, 17:32:06):
Um Mecki & Co. etwas zu entlasten, haben die Zwergenwaechter + Koenig
jetzt eine deutlich bessere Gesinnung als vorher.
  Boing

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



Mecki und Co. (Boing, 12. Okt 1995, 15:33:04):
Es ist jetzt nicht mehr zu empfehlen Schrat, Mecki oder Charly zu
toeten.
  Boing

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



Re: Mecki und Co. (Jerrico, 12. Okt 1995, 15:34:03):
#! rn=Boing rt=813508384
direkt mal ausprobieren :)

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



Re: Re: Mecki und Co. (Boing, 12. Okt 1995, 15:34:25):
#! rn=Jerrico rt=813508443
Auf eigene Gefahr :)
  Boing

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



Re^3: Mecki und Co. (Jerrico, 12. Okt 1995, 15:34:51):
#! rn=Boing rt=813508465
Jerrico grinst.

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



Re^4: Mecki und Co. (Caradhras, 12. Okt 1995, 16:21:13):
#! rn=Jerrico rt=813508491
[Tod:] Ein Wasserelementar hat gerade Engywuck umgebracht.
[Tod:] Ein Aboleth hat gerade Abakus umgebracht.

     Amen
              Rothorn Caradhras

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



Mecki & Co (Lariel, 15. Okt 1995, 17:03:27):
Das ist toll, das mit den Charakteren aus der Schrat-Quest! Jetzt haben die
First-Level-Characters keine direkten Mordgelueste mehr gegen diverse
Metzel-Spieler, die einem, wenn man mit fertigem Schlaftrunk auf der Schwelle
steht, den Schrat killen
(Ich haette ja selbst beinahe einen Typen umgebracht)! Diesen miesen,
EP-geilen Mistkerlen musste ja mal Wiederstand geboten werden! (Ich habe keine
Ahnung, wieviele von diesen Moerdern ich mir jetzt zum Feind gemacht habe.)
Danke fuer euer aller Auf-
merksamkeit und danke Boing fuer diese Sache!
Sign.: Lariel der Waldlaeufer

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



Re: Mecki & Co (Asmodis, 16. Okt 1995, 12:26:01):
#! rn=Lariel rt=813773007
Ich bezweifle, dass du einen von den 'Metzel-Spielern' umbringen
kannst :)

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



Re^3: Mecki & Co (Asmodis, 16. Okt 1995, 13:52:12):
#! rn=Raffi rt=813847864
Auch dann nicht, ein level 3 Spieler wuerde mich z.b. nichtmal ankratzen :)

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



Re^4: Mecki & Co (Yendi, 16. Okt 1995, 20:32:16):
#! rn=Asmodis rt=813847932

Auch nicht mit vollen Stats und bester Ausruestung?
Ich denke da an einen blutigen Anfaenger...

Na, Asmodis, wenn Du den Mund mal nicht zu voll genommen hast...


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



Re: Re: Mecki & Co (Schrumpfi, 17. Okt 1995, 02:10:26):
#! rn=Asmodis rt=813842761
Ne ne, gewusst wie geht das schoen. Auch als Waldlaeufer! ;-)
Schrumpfi

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



Re^5: Mecki & Co (Schrumpfi, 17. Okt 1995, 02:12:37):
#! rn=Yendi rt=813871936
Warst schneller, Yendi :-)
Nein ich schreib jetzt nicht 'ab nach Schmarrn' ;-)
Schrumpfi

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



Re^5: Mecki & Co (Asmodis, 17. Okt 1995, 02:36:40):
#! rn=Yendi rt=813871936
Naja, Zweities mal ausgenommen, die anderen haben solche Sachen wohl nicht :)

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



Gletscherhilfe!!! (Yadgar, 31. Okt 1995, 18:23:34):
Hallo ihr MUDjahedin!
Ich versuche bereits seit Tagen, an dem Eisblock im Gletscher vorbei zu
kommen!
Dazu muss ich vielleicht erklaeren, dass ich nicht den anscheinend ueblichen
Weg
ueber die Gletscherzunge genommen habe, sondern von Norden, also von Moulokin
a
aus losgezogen bin. Es ist unmoeglich, den Eisblock zu verschieben
(jedenfalls mit Kraft
1 ), wenn ich ueber ihn klettern will, rutsche ich ab und lande wieder am
Ausgangspunkt, vorbeizwaengen geht nicht (jedenfalls nicht in voller
Ruestung), weder Wespenstachel noch Eispickel helfen weiter... toeten kann man
das Teil natuerlich auch nicht! KANN MIR JEMAND WEITERHELFEN ? ? ?

                   Immer noch auf Hilfe hoffend,

                                                         Yadgar "Rish Surkh"
Achakzai

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



Re: Gletscherhilfe!!! (Ketos,  1. Nov 1995, 02:00:44):
#! rn=Yadgar rt=815160214
Hmm, Yadgar, ich schaetze Du bist noch zu jung fuer den Gletscher, probiers
mal 10 Level spaeter...
- Ketos - (der das Ding verbrochen hat)

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



Hydra (Puma,  2. Nov 1995, 17:11:37):
Liebe Gemeinde, zur Rueckkehr der Hydra hier noch ein kleiner Text zur
Verinnerlichung, und ja, es ist ein Geruecht, das naechste Woche meine Quest
angeschlossen wird.


                          De Hydrae Lupinensis
                          -=-=-=-=-=-=-=-=-=-=

      (Auszug aus den Schriftrollen des MorgenGrauen-Magiers Puma)



     Kreation: Hydrae Lupinensis (Namensgebung von Toeter)
              (Volksmund: 'die Hydra')

     Beschreibung:
      Die Hydra ist ein schuppenbewehrtes Monster von epischen Ausmassen.
      Fast so gross wie eine Huette, bahnt sie sich langsam auf kraeftigen
      Beinen einen Weg durch das sperrige Unterholz des Lupinentals und
      schickt ihre vielen Koepfe aus, um Rache an ihren Moerdern zu nehmen.
      Die Koepfe der Hydra sind mit harten Schuppen bedeckt und tragen zwei
      lange Hoerner. Das Maul ist mit langen Fangzaehnen gespikt, von denen
      gruenes Gift trieft, und der ganze Koerper ist in einen schuppigen,
      schwarzen Panzer gehuellt, der schon von vielen Narben gezeichnet ist.
      Alles in allem ein Koloss der Vernichtung, der sich bisher nur wenigen
      beugen musste.

     Geschichte:
      Seit ihrer ersten beobachteten Landung im Tal der Lupinen in den
      spaeten Nachmittagsstunden des zwoelften Juni im Jahre des Jofs
      Tausendneunhundertundvierundneunzig entwickelte sich die Hydra
      zu dem meistgefuerchtesten Monster des MorgenGrauens. Sicherlich
      nicht das gefaehrlichste, beste oder toedlichste Monster, aber so
      erschauern noch Heute viele Spieler, wenn man nur das Lupinental
      erwaehnt.
      Nicht unwesentlich zu ihrem Ruf trug ein tragischer Unfall bei, der
      sich kurz nach der Entdeckung des Tals der Lupinen zutrug. Ein uner-
      fahrener Magier rief im Scherz nach der Hydra und zu aller Ueber-
      raschung kam sie... wutentbrannt durchquerte sie das Tal einmal
      komplett ehe zwei Minuten verstrichen waren und hinterliess zwei tote
      und einen schwerverwundeten Seher, der sich nur mit einen Sprung in den
      Skatraum der Taverne retten konnte.
      Der Seher Ryne war es schliesslich, dem es als ersten gelang die Hydra
      in ihre Schranken zu verweisen und in der Daemmerung eines Dienstags
      im Maerz die erste der kostbaren Hydratoeterruestungen in Empfang
      nahm.
      Im Zuge der zunehmenden Munitionierung der Gilde der Seher mit Saeure-
      baellen und Flammenkugeln, brach nun eine wahre Jagd auf die begehrten
      Hoerner und Ruestungen aus, der die Hydra nur wenig entgegenzusetzen
      hatte. Schliesslich, als sie zum zehnten Male starb, brach der Fluch,
      der sie an das Tal gebunden hatte, und die Hydra fuhr hinab in die
      tiefen Schluende der Neun Hoellen.
      Eigentlich haette das idyllische Tal der Lupinen jetzt endlich seinen
      wohlverdienten Frieden geniessen sollen, doch eine kleine Unachtsamkeit
      des unfaehigen Adepten Oreg von Ztirom liess das Grauen erneut hervor-
      brechen. Durch einen kapitalen Fehler in seiner Beschwoerungsformel
      entstieg die Hydra den Hallen des Todes, ihr Panzer nun schwarz, ge-
      haertet von den Feuern des Orkus und ihre Augen voller Magie, mit
      denen sie permanent nach ihren ehemaligen Haeschern Ausschau haelt, um
      sich grausam an ihnen zu raechen...

----------------------------
Demnaechst gibt es dann auch die Liste aller bisherigen Hydratoeter. Das wird
gerade getestet.

          Viel 'Spass' :)

               PUMA!




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



Re: Hydra (Grimmborn,  3. Nov 1995, 17:32:33):
#! rn=Puma rt=815328697

Und wo ist die Liste der Hydraopfer?
Um grausam und kaltbluetig ermordete Spieler zu filtern sollte man in dieser
Liste vielleicht nur Opfer ab Stufe 15 (z.B.) fuehren...

Grimmborn der Atheist. Haelt zur Hydra.

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



Neues von der Hydra... (Puma, 14. Nov 1995, 20:32:26):
So, da es offenbar doch ein paar Leuten gelungen ist Dynamit in das Tal zu
schmuggeln, habe ich ein paar Gegenmassnahmen ergriffen. Die Hydra hat mal
einen Kurzausflug auf Boings Friedhof gemacht, zwei Seher vgenascht und sich
mal bei den dortigen Monstern ueber Gegenmassnahmen informiert. Resultat
dieses Besuches war eine mehr oder weniger vollstaendige Immunisierung der
Hydra gegen das unseelige Pulver.
Im Gegenzug gibt es aber nun auch zwei neue Objekte, die man nun im Kampf
gegen das Ungeheuer verwenden kann.

Viel Spass beim Suchen wuenscht

                     PUMA!


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



Re: Neues von der Hydra... (Fyt, 14. Nov 1995, 22:25:48):
#! rn=Puma rt=816377546
Na toll.. das sind Magier nicht mal in der Lage, rauszufinden,
wie man Dynbamit ins Lupinental schmuggeln kann, und machen
trotzdem das Vieh dynamitresistent. Also ich bin immer noch der
Meinung, ein ausgetrickster Magier sollte das zugeben und es
dabei belassen.
:
Fyt.
nn

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



Re: Re: Neues von der Hydra... (Jof, 15. Nov 1995, 09:38:16):
#! rn=Fyt rt=816384348

 Noe, ein ausgetrickster Magier sollte es zugeben (hat Puma getan) und
a) den Bug fixen, sofern die Spieler in fairerweise geschildert haben oder
b) Gegenmassnahmen ergreifen, um die Auswirkungen des Bugs zu minimieren (hat
  Puma getan).

 Jof

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



Re^3: Neues von der Hydra... (Grimmborn, 15. Nov 1995, 09:43:47):
#! rn=Jof rt=816424696

Bug? Wer redet von bug? Von einem bug kann doch nicht die Rede sein...
Man muss das doch realistisch sehen: Das Tal versucht, Dynamitfrei zu bleiben
und schafft das nicht ganz. Es ist doch eher kontraproduktiv, den
Erfindungsgeist der Spieler so zu sabotieren, was macht es fuer ienen Sinn,
sich neue Listen einfallen zu lassen, wenn nicht mit Gegenlist sondern mit dem
groben Holzhammer geantwortet wird?
Ich finde, man sollte Erfindungsgeist foerdern und nicht so _platt_
unterbinden.

Rochus hat mir da doch neulich eine tolle Methode gezeigt, wie ein Monster
sofort (beim ersten Schlag) das Dynamit zum explodieren bringt. Und einen
Begruessungsschlag hat die Hydra doch allemal... ;-)

Grimmborn der Atheist

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



Re: ich auch :) (Hardil, 15. Nov 1995, 11:47:49):
#! rn=Lechuck rt=816381044
[Verlegt von schmarrn, Engywuck, 14. Nov 1995, 22:21:15]:
Und noch einen...:
Du spuerst einen sengenden Schmerz.
Du teilst Merlin mit: Kannst Du mir sagen, wo Jof ist?
> Merlin ruft: Ich bin im Gebirge.


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



Re: Re: ich auch :) (Hardil, 15. Nov 1995, 11:48:03):
#! rn=Engywuck rt=816384075
[Verlegt von schmarrn, Paracelsus, 14. Nov 1995, 22:55:09]:
Oh wie schoen:
tm merlin wo du auch bist, bleib dort
Du spuerst einen sengenden Schmerz.
Du teilst Merlin mit: wo du auch bist, bleib dort
> Merlin ruft: Ich bin im Gebirge.


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



Re: Neues von der Hydra... (Yendi, 15. Nov 1995, 12:59:43):
#! rn=Puma rt=816377546

Och noe, das finde ich armselig... Wie begruendest Du, dass eine Hydra gegen
Dynamit "immun" ist? Gut, einem Steinbeisser oder einer steinernen Gargoyle
(wie sagt man das auf deutsch?) duerfte das wenig schaden, aber eine Hydra
ist, wenn ich mich nicht irre, aus Fleisch und Blut, und das leidet unter
Explosionen doch recht heftig...


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



Re: Re: Neues von der Hydra... (Puma, 15. Nov 1995, 14:23:52):
#! rn=Yendi rt=816436783
Liebe Spieler, versteht doch.
Ich traeume immer noch den Traum von einem Fantasy-Mud ohne Toaster, Dynamit
Luftkissenboote, Rasierapparaten, etc.
Dieses Mud hat schon solche Dinge (schade) und ich kann das nicht verhindern.
Darum versuche ich zumindestens in der kleinen Welt des Lupinentals dies zu
beschraenken, soweit mir das moeglich ist. Es geht mir nicht darum die Hydra
zu schuetzen, nur weil bei ihrem Tod vielleicht mein Ego nicht mitspielt,
sondern um die Atmosphaere im Tal.
Deswegen werde ich auch weiterhin alles unternehmen, um obige Geraetschaften
aus dem Tal herauszuhalten. Dies gilt auch dafuer, falls es hier mal Pistolen
Kettensaegen, Flammenwerfer und aehnliches fuer Spieler zu haben gibt.

Das die Hydra gegen Dynamit immun ist, ist nicht logisch, ok. Ich werde das
sofort wieder aendern, sobald ich weiss, wie das Dynamit ins Tal kommt.
Und noch zu Grimmborn: Dynamit beim Begruessungsschlag in die Luft gehen zu
lassen halte ich genauso schwachsinnig wie die Immunitaet. Ich will hier ja
nicht gegen die Seher aufruesten...

               Echt schade

                       PUMA!





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



Re^3: Neues von der Hydra... (Asmodis, 15. Nov 1995, 14:25:04):
#! rn=Puma rt=816441832
Och, du hast doch nur Angst, dass irgendwann mal jemand deine hydra packt :)

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



Re^3: Neues von der Hydra... (Grimmborn, 15. Nov 1995, 14:27:09):
#! rn=Puma rt=816441832

Flammenwerfer? Huch, hab ich doch einen. Und werd ihn nicht los. Liegt an
Highlander.
Und als Seher hatte ich ihn auch schon, da war der Seherladen schuld... ;-)

Grimmborn der Atheist. Fragt sich, inwieweit eine Dynamit-resistente Hydra
dne Weg des Dynamits ins Tal verhindert...

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



Re^3: Neues von der Hydra... (Wargon, 15. Nov 1995, 14:35:13):
#! rn=Puma rt=816441832
Also ich wuesste nicht, was es am Antrieb des Luftkissenbootes auszusetzen
gaebe...
  Wargon

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



Re^3: Neues von der Hydra... (Raffi, 15. Nov 1995, 15:20:12):
#! rn=Puma rt=816441832

Ich frag mich was an Dynamit nicht Fantasytauglich ist ?

Gruss
H.

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



Re^4 Neues von der Hydra (Terrorist, 15. Nov 1995, 15:45:22):
(Bezug: Artikel 29von Raffi vom 15.Nov 1995, 15:20:23)

Vielleicht weil es damals noch kein Dynamit gab genauso wie
Luftkissenboote....

Terrorist der hier nurnoch ganz wenig Fantasy sieht

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



Re^5: 0 (Cuchullin, 15. Nov 1995, 17:45:02):
#! rn=Terrorist rt=816446722


Ich kann nur sagen, dass das Lupinental fuer mich ganz zweifellos zu den
schoensten Gebieten von MorgenGrauen gehoert. Und das, obwohl es weder nen
Schlagring noch ein Blutsaugerschwert darin zu finden gibt.

Cuch.-  Romantiker.


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



Re^6: 0 (Zephyr, 15. Nov 1995, 17:46:32):
#! rn=Cuchullin rt=816453902
Dafuer gaaanz viele Schleier.. Hunderte sozusagen.

Zephyr, romantisiert mit

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



Re^6: 0 (Asmodis, 15. Nov 1995, 17:50:19):
#! rn=Cuchullin rt=816453902
Jo, nur schade, dass die Hydra es immer so verschandeln muss
mit dem Muell, den sie hinterlaesst nach einem Besuch :)

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



Re^5: 0 (Fyt, 15. Nov 1995, 23:48:18):
#! rn=Terrorist rt=816446722
Hm, also mit Fantasy verbinde ich aus irgendnem dummen Grund
auch die Zeit des fruehen Mittelalters, und zu eben der Zeit
gab es auch auf dieser unseren Welt schon Sprengstoffe und
Raketen, die im Morgengrauen dann zwar konsequenterweise in
Fernwest zu finden sein muessten, nichtsdestotrotz aber im
Mud existieren koennten. Ich reg mich auch ueber einige Teile
auf, zum Beispiel die Disko in den Katakomben, den Koks da, die
Beschallungsanlage bei Zacharias u.v.m. Mir passen auch einige
Quests von der Ausgestaltung her nicht ins Mud, z.B. Schrat.
An der Stelle koennte man viel vom 'Phantasygedanken' bewahren,
wenn man die NPC einfach mit irgendwelchen 'normalen' Namen
belegt. Beim Waldbauer klapp'ts doch auch. Ich wuerde mir eine
'Ueberarbeitung' des Muds als Gesamtheit in der Richtung sehr
wuenschen, und ich bin der Meinung, dass viele Spieler
Anregungen einbringen wuerden... oder seh ich was falsch?
Das hatte jetzt wohl nix mehr mit dem Dynamit im Lupinental
(das ich uebrigens auch als eine der gelungensten Gegenden
im MG betrachte) zu tun. Dass, was mich daran stoert, ist der
Umgang von Magiern und Spielern. Ich glaube, ich kann von mir
behaupten, dass ich mich fuer eine gewisse 'Stabilitaet' im
Mud einsetze, und dass ich 'vernuenftigen' Argumenten irgend-
welche Taktiken betreffend durchaus zu hoere, und ich weiss
auch, dass Puma kein Dynamit im Tal mag. Andererseits ist es
echt frustrierend, eigene tagelange Bemuehungen zunichte gemacht
zu sehen... ja, es hat eine Weile gedauert, das Zeug ins Tal zu
bekommen. Und ich bin auch dran gestorben, und ich haette gut
damit leben koennen, wenn das Dynamit den Kill und die Ruestung
bekommen haette.... es wird wirr...
Jedenfalls regt's mich auf, dass man hier sobald man auf ein
Schlupfloch ghestossen ist, man im Prinzip gezwungen ist, es
sofort ruecksichtslos auszunutzen, da in dem Moment, wo der
betreffende Magier dahinterkommt, der Hahn ohne Diskussion
abgedreht wird. Dabei wissen die betreffenden Spieler durchaus,
durch welche geringfuegige Aenderung das 'Feature' zum
'schamlosen Ausnutzen' unattraktiv wuerde, aber der Allgemeinheit
dennoch erhalten bliebe (ich sag nur 18000 ep fuer die Gladis oder
0 ep beim zweiten mal oder einmal pro reset oder oder oder).
:
Fyt.

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



Re: Re: Neues von der Hydra... (Li, 16. Nov 1995, 08:57:58):
#! rn=Yendi rt=816436783
Gargoyle = Wasserspeier 8ist zwat bloed, bezeichnet aber das gleiche,
naemlich steinerne Ungeheuer an Kirchen( meistens grosse, wie Dome)

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



Re^6: 0 (Li, 16. Nov 1995, 09:08:27):
#! rn=Fyt rt=816475698
Leute, Leute!
Was habt ihr an Pumas Aenderung auszusetzen? Ich fand seine Erklaerung
ziemlich schluessig. Es geht hier nicht darum, dass sein Ego knickt wenn ihr
die Hydra toetet, sondern darum, dass er eben kein Dynamit in seinem
Lupinental moechte.
Er ist der zustaendige Magier, und welchen Spieler das Lupinental nicht
gefaellt, der muss sich eben woanders austoben (Ok, klingt haerter als es
gemeint ist.).
Was das geknickte Ego angeht, so scheinen mir eher einige Seher darunter zu
leiden, dass sie gewisse monster nicht kleinkriegen. Naja, genug der
Flamewars:
Keep cool, man/girl!
Ach so und nochwas: Es ist richtig, dass es in China schon sehr frueh,
Raketen und Schwarzpulver gab, Dynamit allerdings NICHT! Raketen wurden
aussschliesslich zur Belustigung, bei Festen oder Feiertagen eingesetzt.
Warum sie das Schwarzpulver nicht zu Dynamit verarbeitet haben? nun, nicht
weil sie so friedliebend waren, sondern wahrscheinlich, weil es keiner
hinbekommen hat oder es keinem eingefallen ist.

Li

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



Re^7: 0 (Roadrunner, 16. Nov 1995, 11:05:00):
#! rn=Li rt=816509307
schwarzpulver=Dynamit?? *lach*
				RR

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



Re^8: 0 (Li, 16. Nov 1995, 11:25:47):
#! rn=Roadrunner rt=816516300
Mann ich weiss auch, dass schwarzpulver kein Dynamit ist. Dynamit war
rspruenglich: von A,nobel erdacht, auf Kieselgel gezogenens Nitroglyzerin oder
taeusche ich mich da?
Li

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



Re^9: 0 (Paracelsus, 16. Nov 1995, 12:26:38):
#! rn=Li rt=816517547
Nein, du taeuscht dich da nicht.

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



Einen Stadtplan hat er auch nicht... (Hardil, 16. Nov 1995, 13:23:02):
teile merlin mit wo ist das lupinental?
Du spuerst einen sengenden Schmerz.
Du hast jetzt 100 Lebenspunkte und 226 Magiepunkte.
Du teilst Merlin mit: wo ist das lupinental?
Merlin ruft: Ich bin in der Ebene.


Neenee, Merlin, aus Dir wird nie ein gescheiter Mud-Fuehrer. :)

-Hardil. NNN.

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



Dynamit (Boing, 17. Nov 1995, 14:16:59):
Hi
da die Dynamit-Diskussion hier gefuehrt worde, gebe ich auch hier meine
Aenderung bekannt: Das Dynamit heisst jetzt 'Boings Hoellenfeuer', der
Name stammt von Ancalagon, meinen herzlichen Dank dafuer. :)
Die Wirkungsweise ist (fast) unveraendert, eigentlich hat sich nur
intern ne Kleinigkeit geaendert,
Tschuess,
  Boing

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



Naja endlich! (Puma, 29. Nov 1995, 08:50:30):
Auf vielfachen Wunsch sind die Hydrahoerner jetzt nicht mehr verkaeuflich.Sie
haben keinen materiellen Wert mehr, nur noch ideellen, aber ich hoffe,
dass das auch langt..

Puma!


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



Re^7: 0 (Nirdavo, 29. Nov 1995, 11:22:17):
#! rn=Li rt=816509307
Kleine Anmerkung, Li.
Raketen wurden in China durchaus zu Kriegszwecken eingesetzt, wenn man in
spaetrer Zeit auch davon wieder abgekommen ist.
Dynamit wird _nicht_ aus Schwarzpulver hergestellt, sondern besteht aus in
Kieslgur aufgesogenen Nitroglycerin. Demnach kann man gar nicht Schwarzpulver
zu Dyamit verarbeiten!
Just my 2 pennies
               nirdavo

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



Re: Naja endlich! (Mindolluin, 29. Nov 1995, 14:42:02):
#! rn=Puma rt=817631430
Zu spaet, jetzt hab ich schon aus Versehen ueber 100 Hoerner verkauft. :)

       Caradhras

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



Re^8: 0 (Cuchullin, 29. Nov 1995, 17:10:32):
#! rn=Nirdavo rt=817640537

Schwarzpulver kann man nicht zu Dynamit verarbeiten, richtig.
Aber das, zu was Du es verarbeiten kannst, reicht vollkommen.

Froh, dass er noch alle Finger seiner linken Hand hat,
Cuch.-


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



Re^8: 0 (Li, 30. Nov 1995, 09:07:31):
#! rn=Nirdavo rt=817640537
*SEUFZT*
nirdavo, vielen Dank fuer Deine Aufklaerung bzgl. Dynamit und Schwarzpulver!
Ich habe als Chemiestudent ja eh keine Ahnung von chemie oder Nitro, bzw.
Schwarzpulver!
Ich wollte halt die Spieler verwirren, denn die muessen ja unbedingt wissen,
ob Rakete und Dynamit aus gleichen Ingredienzen bestehen oder nicht!
SChliesslich geht es nicht an, dass die Spiler nur wissen, dass beides BUMM
macht!
Li
P.S. Dieser Artikel ist IRONISCH gemeint!
P.P.S. Li denkt . o O (hab ich nicht schon mal auf jemanden geantwortet, der
                      mir undebingt den Unterschied zwischen Dynamit und
                     Schwarzpulver erklaeren wollte?)
P.P.P.S Nichts fuer ungut, Nirdavo!
P.P.P.P.S Ab nach Schmarrn damit!

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



Dynamit oder schwartzpulver (Roesti, 30. Nov 1995, 10:56:45):
Also dazu moecht ich auch was sagen...
Es reicght also nicht wenn ich weis das es einfach nur BUM macht?
Da bin ich anderer Meinung...:)
Ob ich jetzt Kaliumchlorat mit irgendwas huebschen vermische oder
Salpeter....
Hauptsache ist und bleibt das es BUM macht...(Wenn es bumm macht...Bei mir
spruehts meistens nur und stinkt wie'd Sau...:)

Mann solte natuerlich wissen wos mehr Bum machen kann und wo weniger...:)

Ironie aus...:)

Roesti (hey hier passt der Name Beispielsweise hin...:) )

P.S.:Wenn niemand was dagegen hat moechte ich ,sobald ich Magier bin , die
Sprengstoff und Pyrotechnik Abteilung uebernehmen...:) ) :)

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



Naja, endlich! (Puma,  6. Dez 1995, 18:17:24):
Du sagst: also, die queste ist jetzt angeschlossen?
Boing nickt zustimmend.


-ohne worte-

Puma! (soooooooooo aufgeregt :-)))


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



SSP ... mal wieder (Boing,  7. Dez 1995, 12:25:06):
Da lauf ich doch eben so durch die SSP ... und tatsaechlich ist ein
neuer Teil erreichbar geworden, ich war vielleicht ueberrascht, koennt
ihr mir glauben! Sah aber teilweise sehr gefaehrlich aus ... also obacht!
  Boing

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



Re: SSP ... mal wieder (Asmodis,  8. Dez 1995, 00:58:04):
#! rn=Boing rt=818335506
pfft, wers glaubt ... Du warst bestimmt nicht ueberrascht :)

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



Zwergenschmied (Boing, 11. Dez 1995, 16:15:06):
Kleine Information am Rande: Das Geld, was der Zwergenschmied einnimmt
(durch Einschaetzen oder Axtverkauf) fliesst jetzt auch in den Kreis-
lauf zurueck.
  Boing

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



Re: Zwergenschmied (Jerrico, 11. Dez 1995, 16:16:16):
#! rn=Boing rt=818694906
Du meinst er geht es auch versaufen :)

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



Re: Re: Zwergenschmied (Anthea, 11. Dez 1995, 16:20:47):
#! rn=Jerrico rt=818694976
Versaufen? seit wann koennen Zwerge saufen? Fuer die gehoert so etwas doch
zur Lebenserhaltung :)

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



Inferno-Bugs (Puma,  2. Jan 1996, 10:53:46):
So, der Flop mit den nicht-teleportierenden Teleportern ist jetzt bereinigt.
Vielen Dank an Toeter, Silvana und Mupfel, die mich auf das Problem
hingewiesen haben und die festhaengenden Spieler per Hand weitergeschleift
haben.

Als kleine Entschaedigung fuer entstandene Sorgen und Kummer habe ich jetzt
mal das Kreuz der Wahrheit autoload gesetzt, da es so etwas wie
'Questhalbzeit' symbolisiert. Man weiss ja nun, wie man es zusammenzusetzen
hat, deswegen muss man anderen Questwilligen Spielern ja nicht die
vielgehassten Reset-Gegenstaende wegschnappen.
Ausserdem spendiert das Kloster noch zwei weitere Flaschen Wein pro Reset,
weil es so gut schmeckt.

Puma
(sortiert seine Moenche)


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



Inferno-Verbesserungen (Puma,  2. Jan 1996, 11:29:49):
So, weiter gehts...
Besagte kritische Stelle in der Quest *BEEEEEEEEP*, die schon so manchen Kopf
und Kragen, Nerven und die Lust am Mudden genommen hat, ist wiederum etwas
entschaerft worden, in dem die Zeiten weiter erhoeht und der Text weiter
gestueckelt worden ist, um optimale Lesbarkeit zu garantieren.
Zudem wird auf zwei Fallen etwas deutlicher hingewiesen, als sonst.

Ansonsten ist aber alles beim alten geblieben, und es gilt auch weiterhin der
Satz: 'Diese Queste ist kein Gaensebluemchen-Pfluecken!' Klingt etwas
imperativ, ist auch so gemeint.

Eine Hoehereinstufung der Queste bzgl. der AP kann ich nicht vornehmen. Ich
kenne den Architekten persoenlich nicht und kann deshalb keine eigenen
Vergleiche anstellen. Alle Anfragen nach mehr AP sind an den Questen-EM, d.h.
Boing, zu richten.
Evtl. werden die oberen Questen (>100 AP) eh' demnaechst neu geordnet, da die
Einteilung veraltet ist. Aber das sind Stammtisch-Geruechte und werden von
Boing bekanntgemacht, wenn es soweit ist.

Puma!
(immer noch etwas geschafft, vom Koelner Stammtisch :) )


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



Aenderung (Silvana,  6. Mar 1996, 12:31:37):
[Verlegt von d.wald, Silvana,  6. Mar 1996, 12:29:26]:
Ich habe eine Kleinigkeit in Cronoertal geaendert.

  have fun - Silvana


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



Kleinigkeit (Silvana, 28. Mar 1996, 13:53:05):
Zwei kleinigkeiten nur:
1: Lhana di Leondro laesst sich jetzt auch mit 'finde lhana' finden.
2: In der Hoehle, die ja aus Granit besteht, laesst sich jetzt auch eine
   kleine Menge davon finden...

  Silvana

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



Feuerring, Eisstab (Boing, 15. Apr 1996, 12:13:29):
Aufgrund einer Aenderung der Regeln fuer Zusatzwaffen werden jetzt beim
Gebrauch von Feuerring und Eisstab auch ein paar Magiepunkte verbraucht.
  Boing

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



Re: Feuerring, Eisstab (Nixihou, 21. Apr 1996, 15:21:55):
~#! rn=Boing rt=829563209
~#! tid=829563209
also der verbrauch von 12 mp fuer den ring, (eisstab weiss ich nicht) finde
ich nicht ok. denn es wiederspricht dem KONZEPT dieser gegenstaende!
Diese laden sich ja waerend einer bestimmten zeit auf, und der spieler
entlaesst die gespeicherte energie ja "nur" in form von feuerstrahl oder
eiswolke.
klar das man evtl 1-2 mp braucht um das ding zu aktivieren, aber bei 12 mp
ist der effekt fuer chatoten abenteurer und zauberer schon fast besser mit
ihren eigenen spruechen zu erzeugen!
andererseits, wenn sich die "aufladezeit" drastisch verkuerzen wuerde ...
waere das wiederum verstaendlich und "konzeptkonform".
aber mit den "neuen" mp-kosten werden die gegenstaende geradezu unbrauchbar.
(naja, fast jedenfalls)
nixi

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



Re: Re: Feuerring, Eisstab (Valarian, 21. Apr 1996, 21:38:30):
~#! rn=Nixihou rt=830092915
~#! tid=829563209
Hiho :-)

Das was Nixi sagt, ist absolut richtig, denn was soll ich mit einem Teil, das
aufladen muss und nur eine Nachahmung meiner normalen Moeglichkeiten ist.

Also seit die Kosten eingefuehrt wurden, hab ich den Ring nur einmal benutzt
und den Stab keinmal, obwohl ich bestimmt 10 Stunden online war. Es ist
absolut zu teuer und da trag ich lieber ein GE_ring, der mir durch den Bonus
einen RS_vorteil und Attacke-Bonus gibt.

Ok, ich muss zugeben mit dem roetlichen Ring wurde viel Bloedsinn getrieben
(Auch ich hab manchmal 8 Stueck dabei gehabt), aber sowas laesst ja
verhindern.

Die kosten sollten auf jeden Fall gesenkt werden, denn im mom sind sie den
Schuss Pulver net wert :-))

Gruss, Vali.

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



Re^3: Feuerring, Eisstab (Paracelsus, 21. Apr 1996, 21:41:09):
~#! rn=Valarian rt=830115510
~#! tid=829563209
Hi.
Also vom Nutzen/Kosten-Verhaeltnis her lohnen sie sich immer noch (zumindest
fuer Abenteurer).

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



Re: Re: Feuerring, Eisstab (Boing, 22. Apr 1996, 09:09:07):
~#! rn=Nixihou rt=830092915
~#! tid=829563209
Sehe ich ein, ich habe auch schon vor die MP zu reduzieren auf eine
Art Zuendungsenergie (<= 5 MP), wobei es dann aber zu Effekten wie
Fehlzuendung, Selbstzerstoerung oder falscher Schadenstyp kommen soll
(mit einer bestimmten Wahrscheinlichkeit). Ich denke, das waere ein
Kompromiss mit dem man leben koennte, ausserdem wuerde es die Gegenstaende
interessanter machen.
Kommentare?
  Boing

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



Re^3: Feuerring, Eisstab (Morgoth, 22. Apr 1996, 09:42:02):
~#! rn=Boing rt=830156947
~#! tid=829563209
yep
selbst meine rauchbomben benoetigen jetzt etwas 'kontroll-magie'

morgoth
der artikel koennte auch nach vland, aber hier passt das reply

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



Re^4: Feuerring, Eisstab (Orktoeter, 22. Apr 1996, 10:46:25):
~#! rn=Morgoth rt=830158922
~#! tid=829563209
Wie waere es, wenn statt MP zu benoetigen, das aufladen erst erfolgt, wenn
die MP des Spielers voll sind, das also die normale "regenerierung" auf den
Ring/Stab uebertragen wird ?
OrkT.

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



Re^3: Feuerring, Eisstab (Raffi, 22. Apr 1996, 11:21:51):
~#! rn=Boing rt=830156947
~#! tid=829563209
Wie ware es wenn der Ring auch von der Stufe unabhaengig benutzt werden
koennte ?

Gruss
H..

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



Re^4: Feuerring, Eisstab (Valarian, 22. Apr 1996, 12:15:07):
~#! rn=Raffi rt=830164911
~#! tid=829563209
Ich finde cool, wenn die Dinger explodieren. Das gibt nen kleinen
zusaetzlichen Kick, aber dann sollte auch mal extrm gutes passieren koennen.

Gruss Valarian.

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



Re^5: Feuerring, Eisstab (Predator, 22. Apr 1996, 12:24:27):
~#! rn=Valarian rt=830168107
~#! tid=829563209
Ja, das haette was.....

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



Re^3: Feuerring, Eisstab (Fyt, 22. Apr 1996, 20:18:33):
~#! rn=Boing rt=830156947
~#! tid=829563209

Hab nix dagegen.

Fyt

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



Eisstab & Feuerring (Nixihou, 24. Apr 1996, 15:56:44):
Boings gewuenschte kommentare:
1.) so eine "zuendenergie" finde ich vollkommen einsichtig. 1-2 mp. und
   evtl. sollte es noch eine mp-grenze geben, unter der gar nichts mehr
geht.
   motto:  also wenn du nur noch weniger als 20% deiner geistigen
   kapazitaet hast dann wird das wohl eher nichts.
2.) vielleicht kann ja das mp-niveou in das "random" der
gegenstaend mit einfliessen. -> je mehr mp, desto bessere kontrolle der
gegenstaende!
3.) stufenabhaengigkeit sollte raus, bzw abgeaendert werden.
    erst ab "seher-level" volle entfaltung aller kraefte.
4.) neben der bissher "normalen" regeneration dieser gegenstaende sollte es
    evtl. eine moeglichkeit geben, geziehlt diese dinger wieder
    aufzuladen. (massig mp rein evtl. levelabhaengig und wieder aufgeladen)
x.) wie beim eisstab sollte jeder dieser gegenstaende (oder aehnlicher)
    nur EINMALIG bei einem spieler im besitz sein. also schluss mit
    20 feuerstrahlringen die wechselseitig angezogen werden.

das mit den "unfaellen", wo dann auf einmal ein "falscher" schadenstyp kommt
ist eine tolle idee. Nur sollte man eine moeglichkeit haben (s.o.) die
wahrscheinlichkeit dieser "zufaelle" ein wengi zu beeinflussen.

nixihou, kommentiert heute mal alles.

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



Re: Eisstab & Feuerring (Nixihou, 24. Apr 1996, 16:02:19):
~#! rn=Nixihou rt=830354204
~#! tid=830354204
ergaenzung zu punkt 3:
warum koennte man nicht anstelle des levels die anzahl der gefundenen
int-zaubertraenke oder die anzahl aller gefundenen zaubertraenke als
kriterium dafuer nehmen, wie gross die kraftentfaltung dieser ringe/staebe
ist?  hierbei wuerde ich die anzahl der zt's als mass fuer die
"geistige" reife oder so interpretieren, die fuer die benutzung eines
solchen magischen gegenstandes benoetigt wird.

nixihou, just an additional idea

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



Re: Re: Eisstab & Feuerring (Anatol, 24. Apr 1996, 16:50:20):
~#! rn=Nixihou rt=830354539
~#! tid=830354204

Dass Deine Zweities noch oefter am Klitzeldrom stehen?
Na klasse.


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



Re: Re: Eisstab & Feuerring (Raffi, 24. Apr 1996, 18:51:01):
~#! rn=Nixihou rt=830354539
~#! tid=830354204
HHmm ganz nett die Zusammenfassung, ich hatte nur gerne 2 punkte anders
a) Warum muss der stab besser werden je hoeher das Level wird? - warum nicht
schlechter ? (wenn man ihn schon variabel macht) Je besser der Beitzer wird,
desdo unnuetzer wird der gegenstand

b) Wenn die Wirksammkeit an den ZTs angehaengt wird, dann bitte an allen, und
als masstab alle 80 zu findenden verwenden (waer ein neuer anreitz auch die
letzten 4 zu finden) und nicht nur an INT-ZTs - das ist viel zu einfach zu
ereichen.

m.E. Magische Gegenstaende was was geschaffen wurde um Nicht-Magiern eine
Entsprechnde Faehigkeit zur verfuegung zu stellen (fuer Eigene Wachmonster,
oder zum Verkaufen).

Gruss
H.

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



Re : Feuerring, Eisstab (Jurryii, 29. Apr 1996, 16:58:05):
Ich will ja nichts sagen aber irgendwie hoert sich das siech fuer mich wieder
wie die "die Spieler sind zu stark oder die Monster sind zu schwach"
-diskussion an.
Ich finde es schade das die Genialitaet der Spieler jedes mal zu nichte
gemacht wird.
Eigendlich nicht schade sondern Scheisse !
Und wenn es 8 Feuerringe sind, reicht es denn nicht das die aktionzahl pro
Runde begrenzt ist, und die Aufladezeit so lange ist ? Ich habe schon lange
kein bock mehr 8 mal den Schlammdrachen zu killen (auch nicht super-easy) weil
es sich einfach nicht lohnt bei den rebootzeiten. Zu nervig.~r
Und das mit den Flammenkugeln, das ist auch kein geschenk durch die
wasserebene zu kommen, musste auch erst 3 mal da Sterben bevor ich da
durchkommen konnte
Und das man so nebenbei auch noch nen Hexer dafuer plaetten muss scheint mann
wohl zu vergessen
Ist doch immer das gleiche, ob Bumis, Saeurebaelle, Flammenkugeln,
Anti-Feuer-Ring, Eisstab, Feuerring...
Da kann mann sich nur Fragen was kommt als naechstes ???
Ich hab schon schiss mit mehr als 10 saeurebaelle rumzulaufen wenn ich noch 6
Nadeln besitze wird mir schon schwindelig... schnell loswerden denk ich mir da
immer nur, koennte ja auffallen

Tolles Entspannen....
Aber ich wollt' ja nichts gesagt haben

Ein leicht saeuerlicher

Jurry - Das TIER !


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



Hydra erschrocken! (Puma, 28. Mai 1996, 14:38:50):
Tja Leute,

Die Hydra hat sich vor den neuen Kugelblitzen ziemlich erschrocken und
weigert sich seitdem das Tal der Lupinen weiterhin anzufliegen. Erst einmal
zumindestens. Nun gibt es drei Moeglichkeiten:

a) vollstaendige Revision
b) Aufnahme der Kugelblitze in die Immunitaetenliste (a'la Nadeln,
   Saeurebaelle, etc.)
Alles bleibt so wie es ist

Also meldet euch mal ...


    Puma!



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



Re: Hydra erschrocken! (Anakin, 28. Mai 1996, 14:42:23):
~#! rn=Puma rt=833287130
~#! tid=833287130
Hi,

Tja wie immer wenn Leute es uebertreiben mit nen paar Sachen
faellt es den Magiern auf, und sei es wenn man die Hydra jeden
Tag killt. Mach lieber ne vollstaendige Revision und staerker
und immun gegen alles was jemals ueberhaupt bekannt ist.
Denn wenn ein Spieler die Hydra an 6 Tagen 6 mal killt war sie
doch wohl eindeutig zu schwach oder?

Anakin.

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



Re: Hydra erschrocken! (Morgoth, 28. Mai 1996, 14:42:40):
~#! rn=Puma rt=833287130
~#! tid=833287130
was ein feiges viech
setz doch alle P_RESISTANCE_STRENGTHS werte auf -1.0 dann kann jeder machen
was er will.
HEY PUMA...AUFWACHEN !!!
wofuer sind npcs denn da, vor allem solche???
versuch doch mal die hydra intelligenter zu machen, anstatt sie mit tausenden
von immunitaeten auszuruesten. ich weiss, das sagt der richtige, aber wer sich
meinen elementar ansieht wird bemerken, dass er sehr fair ist. dafuer aber
auch ziemlich gewitzt.
ueberleg dir das nochmal. waer schade drum.

Morgoth

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



Re: Hydra erschrocken! (Boing, 28. Mai 1996, 14:49:30):
~#! rn=Puma rt=833287130
~#! tid=833287130
Ich finde es nicht gut alte Monster staendig staerker zu machen, wenn es
Gegenstaende fuer Spieler gibt, die so eine enorme Auswirkung aufs Spiel
haben, dann sollte man lieber schauen, dass diese Gegenstaende (in dem
Fall wohl vom Kugelblitz, hat Mupfel nicht mal gesagt, den wuerde es im
MG NIE geben) angepasst und abgeschwaecht werden.
Ach ja ... ersetzt das 'vom' 2 Zeilen hoeher durch 'der'.
  Boing

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



Re: Re: Hydra erschrocken! (Raffi, 28. Mai 1996, 15:07:11):
~#! rn=Boing rt=833287770
~#! tid=833287130

Jep, ganz meine Meinung - Alte Monster dauernd starker zu machen, um sie
damit weiterhin 'an der Spitze' der Monsterliste zu halten ist doch wohl
eher fade das Mud wird dadurch nur noch statischer - insbesondere durch
Imunitaeten jede neue Entwicklung (egal wie sinnvoll sie ist) einfach zu
ignorieren ist schon schwach. Was da entsteht sind totgepflegte Dinosaurier
im Reservat.

Besser waere es die Energie in NEUE NPC zu stecken, die dann auch NEUE
Herausforderungen darstellen. Es ist in meinen Augen ueberhaupt nix
schlechtes daran wenn Hydrakillen 'normal' wird (auch wenn ich mir das
so nicht vorstellen kann).

Ein 'Lernefekt' bei den NPC wie Morgoth es vorschlaegt hingegen gefaellt
mir.

Gruss
H.
(Raffi mag es erstmal mit NPCs zu reden, auch wenn sie nur zum Abschlachten da
sind)

P.S.: m.E. ist ein Magier im MG nicht jemand der wie ein schlechter
      DM mit 'das ist so' und 'so stehts nicht im Abenteuer' eine
      Spielrunde leitet, sondern jemand der eine Situation schafft
      und dann mal schaut was die Spieler daraus machen!
P.P.S.: Boing bin ich gespannt auf Dungeonkeeper.

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



Re: Re: Hydra erschrocken! (Puma, 28. Mai 1996, 15:50:39):
~#! rn=Anakin rt=833287343
~#! tid=833287130
Hm, ich glaube, ich bin nicht richtig verstanden worden: Es geht mir nicht
darum, die Hydra an der Spitze irgendwelcher Todeslisten zu halten, und es
ist mir auch egal, ob sie woechentlich, taeglich oder halbtaeglich stirbt.

Ich finde es nur einfach unfair, altgedienten Hydra-Toetern gegenueber, wenn
nun jeder Hinz und Kunz (man verzeihe mir die Formulierung) sich ein paar
Waffen greift und die Hydra in dreissig Sekunden plaettet, wo andere tagelang
an Strategien gebastelt haben und Ausruestung sammeln, da sie diese Waffen
noch nicht zur Verfuegung hatten.



Puma!




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



Re^3: Hydra erschrocken! (Hadra, 28. Mai 1996, 16:20:16):
~#! rn=Puma rt=833291439
~#! tid=833287130
also so ganz kann ich diese argumentation nicht nachvollziehen, denn wenn ich
das mal umsetze aufs RL muesste man dringend was gegen moderne flugzeuge
unternehmen, weil sie die leistung von charles lindberg schmaelern, denn sie
erlauben es ja auch jedem hinz und kunz uebe den atlantik zu fliegen.

meine bitte waere eine andere: wenn es hier jemanden fuer balance gibt, moege
der/die doch einfach bai der einfuehrung neuer sachen mal testen was man damit
so alles machen kann. ein schwerer job, vor allem spieler manchmal auf die
seltsamten ideen kommen. aber ich glaube an vielen stellen koennte man sich so
viel nachtraeglichen aerger ersparen.

hadra - 2 muenzen

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



Re^4: Hydra erschrocken! (Dhojakt, 28. Mai 1996, 16:55:06):
~#! rn=Hadra rt=833293216
~#! tid=833287130
Da die Hydra mit Flaechenmunition (gleich welcher Art) zu leicht zu killen
ist, ist sie damals ueberarbeitet worden. Wenn jetzt was in der Art
Flammenkugeln auftaucht, mit dem man die Hydra so killen kann wie damals,
haette es sich Puma gleich sparen koennen und die Hydra waere ihre 150 StP
auch nicht mehr wert. Also sollte Puma seine Hydra etwas dressieren... *grins
fies*
Khidar.

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



Re^5: Hydra erschrocken! (Anatol, 28. Mai 1996, 16:59:43):
~#! rn=Dhojakt rt=833295306
~#! tid=833287130

Khid^H^H^H^HDhojakt hat da wohl voellig recht...
Da man selbst Magier, denen man vom Level her Vernunft zutrauen sollte,
alles moegliche anschliessen, sollte man wohl eine Property P_NO_ARTILLERY
einfuehren :). 
Manche Monster _sollen_ halt nur mit Strategie, nicht mit einer grossen Menge
an Artillerie oder Tank-Gut toetbar sein. Oder?

Anatol, Uralt-Seher (wenn auch nicht Asmo-Asbach)


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



Re: Hydra erschrocken! (Mupfel, 28. Mai 1996, 17:26:37):
~#! rn=Puma rt=833287130
~#! tid=833287130
Die Blitze sind schon wieder weg. Das war mein 'Ausrutscher der Woche' :-)
Punkt.

-mupfel-

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



Re: Re: Hydra erschrocken! (Fyt, 28. Mai 1996, 17:37:57):
~#! rn=Boing rt=833287770
~#! tid=833287130

Naja, Puma koennte seine Koepfe ja mitzaehlen lassen, und wenn die
alle in einer Runde krepieren, dann laesst sich sicher auch feststellen,
was das war und das auch glecih noch beheben.

Andererseits find ich den Anschluss der Kugelblitze *ueberhaupt*
nicht ok, zumindest nicht in der Art, dass z.B. Puma davon nichts
gewusst hat.

Fyt.

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



Re^4: Hydra erschrocken! (Mupfel, 28. Mai 1996, 17:46:40):
~#! rn=Hadra rt=833293216
~#! tid=833287130
Nochmal: das war *keine* Einfuehrung; eigentlich wollte ich das Teil max. ne
Woche drinhaben fuer ne Art Test: Wie lange braucht es, bis das 1. einer merkt
und 2. sich rumspricht, wie gut das ist. Bei den Pfirsichen z.B. hat es
wesentlich laenger gedauert...

-mupfel- 

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



Re^5: Hydra erschrocken! (Fyt, 28. Mai 1996, 17:50:59):
~#! rn=Mupfel rt=833298400
~#! tid=833287130

Na fein, in Zukunft legt also jeder Magier (oder RM?) mal fuer
ne Woche 'n Tool rum, mit dem man Hydra oder Waterluh zappen kann
oder sonstwie 150 Stupse kriegt. Und alle, die so daemlich waren,
die Hydra 'per Hand' um zulegen, gucken in die Roehre, oder was?

Fyt.

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



Re^6: Hydra erschrocken! (Mupfel, 28. Mai 1996, 17:53:32):
~#! rn=Fyt rt=833298659
~#! tid=833287130
Genau. Wenn ich das demnaechst mache, aender ich aber die Hydra gleich mit,
ok? :-)

-mupfel-

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



Re^6: Hydra erschrocken! (Raffi, 28. Mai 1996, 17:58:00):
~#! rn=Fyt rt=833298659
~#! tid=833287130

Ich weiss nicht was ihr euch so um die Hydra aufregt. Hast Du sci schon
gekillt Fyt ? Wenn ja, dann freu dich, und schau doch auf all die armen
Schlappschwaenze herab die Hilfsmittel verwenden.

Ich hab sie noch nicht gekillt,
ich werde sie wahrscheinlich nie killen,
ich bewundere aber die die was neues afinden, kaum das es da ist, und auch
gleich sinvoll einsetzen.


Gruss
H.

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



Re^7: Hydra erschrocken! (Fyt, 28. Mai 1996, 18:03:37):
~#! rn=Raffi rt=833299080
~#! tid=833287130

Ja, Raffi, ich hab sie gekillt. Und zwar war das zu ner Zeit, wo
das a) noch kein anderer gemacht hatte und b) es keine Stups dafuer
gab.

Und ich hab an dem Ding fast 70 Mio Ep verloren. Kannst Du Dir
vorstellen, dass ich da leicht frustriert bin?

Fyt.

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



Re^8: Hydra erschrocken! (Jimdigriz, 28. Mai 1996, 18:53:02):
~#! rn=Fyt rt=833299417
~#! tid=833287130
Nanana Fyt,

ohne deine Leistung schmaelern zu wollen, der erste warst du wohl nicht
(denk ich). Afaik war der erstre Ryne und der zweite Bambulko.
Obwohl eben damals Hilfsmittel noch verwendet wurden.

Gelangweilt sinnlose artikel schreibend.. (darf geloescht werden)
 JdG

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



Re^9: Hydra erschrocken! (Fyt, 28. Mai 1996, 18:55:18):
~#! rn=Jimdigriz rt=833302382
~#! tid=833287130

So viel ich weiss ging es um die zweite Hydraversion, die, wo die
Artillerie nicht mehr gehen sollte. Und da steh ich nach wie vor
zu meinen Behauptungen.

Fyt.

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



Re^10: Hydra erschrocken! (Asmodis, 28. Mai 1996, 19:10:42):
~#! rn=Fyt rt=833302518
~#! tid=833287130
Hmm, kommt jetzt die naechste Hydraversion, und zwar die, die gegen ALLES
immun ist, die einen nicht mehr weglaesst und bei der man ganantiert stirbt?
Also ich finde diese ganze Hydra-Geschichte laecherlich, lasst sie einfach 
so und schafft ein neues Monster, das noch gefaehrlicher ist.
Sicher gibts da noch Ideen, welche Faehigkeiten ein neues Supermonster
haben koennte. Davon, dass solche Viecher dauernd abgeaendert werden
und der erste dann Pech gehabt hat, weil seine Taktik nicht mehr zieht
und er daran stirbt, davon halte ich ueberhaupt nix.
Ausserdem waren die Kugelblitze zur Zeit der daemlichen Diskussion
schon laengst wieder aus dem Verkehr gezogen worden, sodass alle
vorhergehenden Artikel hinfaellig sind (dieser uebrigens auch :)  ).

Just my 3 souls, Asmodis

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



Return (Puma, 30. Mai 1996, 15:57:23):

Nach Absprache mit Mupfel ist die Sache jetzt hoffentlich vom Tisch. Ab heute
dreht sie wieder ihre Runden durch das Tal.... unveraendert!

Puma!





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



Kleine Aenderungen.... keine Panik (Puma,  7. Jun 1996, 16:40:30):

Kleine Aenderungen im Lupinental: Der Leichnam schlaegt jetzt etwas anders zu
und die Hydra hat jetzt mehrere Pfade zur Auswahl, die sie einschlagen kann,
wenn sie durch das Tal streift.

Das war eigentlich schon alles.

Gruessings,


Puma!


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



Sommersputz im Regenbogental und Gletscher (Ketos,  9. Jun 1996, 17:26:25):
Hallo, liebe Gebirgsfreunde.
Erstmal vielen Dank an alle die typo, idee und bugs in meinen Gebit
geschrieben haben. Nach ewiglanger Zeit habe ich die alle nun wieder ein-
gearbeitet. Ca. 40 Monster haben jetzt auch ne Groesse fuer die Karatekas.
Frohes Spiel.
P.S. Im Gletscher hat sich hin und da einbisserle was geaendert.

- Ketos -

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



Re: Sommersputz im Regenbogental und Gletscher (Nirdavo, 14. Jun 1996, 20:33:14):
~#! rn=Ketos rt=834333985
~#! tid=834333985
TYPO: Du hast "Gebiet" ohne "ie" geschrieben!

Der musste einfach sein...

                        Nirdavo

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



neues (Gando,  3. Jul 1996, 23:01:56):
So liebe Leutchen.
Im Gebirge stht nun was neues herum. Schaut es euch mal genau an. 
Gando

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



Kurz und uninteressant (Boing, 13. Aug 1996, 18:07:52):
Water Luh hatte einen kleinen Fehler in der Erkennung gemischter Schadens-
typen, dieser Fehler ist jetzt behoben.
  Boing

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



Hydratoeterliste (Puma, 16. Aug 1996, 16:18:49):
Hm, mal eine Umfrage: Legt jemand von den Hydratoetern noch sehr viel
Wert auf diese Liste? Da die Hydra seit drei Monaten nur mit Hilfe eines Bugs
im Kampfsystem getoetet wird, ist sie eigentlich aussagenlos geworden. Da ich
nicht jeden Muell mitloggen moechte, schraube ich die Tafel mal ab. Wer noch
wert darauf legt, kann ja eine Kopie der Liste bei mir anfordern.

Froehliches Weiterkillen...



Puma!



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



Re: Hydratoeterliste (Mupfel, 16. Aug 1996, 16:47:07):
~#! rn=Puma rt=840205129
~#! tid=840205129

Der Bug ist jetzt ja raus. Mach doch ne neue Liste 'ab 16.8.96' oder so.

-mupfel-
p.s.: die Gedenktafel bei Lofwyr ist *viel* voller :-)

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



Re: Hydratoeterliste (Asmodis, 16. Aug 1996, 16:58:53):
~#! rn=Puma rt=840205129
~#! tid=840205129
Hihi, dann ist Mahatma ja jede Motivation genommen, die Hydra nochmal zu
killen, er tut das doch nur, damit sein Name da oefter auftaucht :)

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



Re: Re: Hydratoeterliste (Lefty, 16. Aug 1996, 17:25:57):
~#! rn=Asmodis rt=840207533
~#! tid=840205129
Naja, soweit ich weiss, macht das Mahatma nicht wegen der Liste, sonder weil
er sich da nen persoenliches Ziel gesetzt hat. :)
Hm, und Puma, seit 3 Monaten mit Hilfe eines Bugs .... Die Hydra heute frueh
war EHRLICH verdient ! *grummel* ;-)

Naja, ansonsten faende ich ne Liste nicht schlecht, allerdings koennte das
verkuerzt werden auf den Namen des Toeters und die Anzahl, wie oft er die
Hydra gekillt hat. Die genauen Daten muessen nicht sein.

Ciao, Lefty

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



Re: Hydratoeterliste (Fyt, 16. Aug 1996, 17:47:15):
~#! rn=Puma rt=840205129
~#! tid=840205129

Aehm, Puma, kannst Du Dir vorstellen, dass es schon noch Leute gibt,
die Wert auf die Liste legen?


Fyt.

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



Re^3: Hydratoeterliste (Mahatma, 27. Aug 1996, 22:01:00):
~#! rn=Mahatma rt=841175939
~#! tid=840205129
Also, auf dem Stein waren diverse Kills drauf, die durch den gewissen Bug
ermoeglicht wurden, allerdings sind da auch regulaere Kills drauf gewesen
(sogar von mir), und um die ist es schon etwas schade. Vielleicht kann man
ja eine verkuerzte Liste wieder einfuehren.

Mahatma

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



Re^4: Hydratoeterliste (Caradhras, 28. Aug 1996, 14:49:54):
~#! rn=Mahatma rt=841176060
~#! tid=840205129
Genau, einfach Mahatma rausloeschen aus der Liste. :)
Dann passts... der bringt sogar die Hydra um wenn er schon 17+4
Ruestungen hat und andere Seher mitmachen, die sie auch wollen.

       Rothorn Caradhras - sieht einen hydraerleuchteten Celebdil

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



pacman (Thorgal, 18. Okt 1996, 12:09:11):
hallo, ich werde jetzt den roten knopf druecken,
wenn es schief geht, moegen das meine letzten
worte sein.    Thorgal
-----------------------------------------------------------------------------



Cronoertal (Silvana,  9. Dez 1996, 07:29:34):
Hi.
Nur eine kleine Warnung: Wer heute im Cronoertal unterwegs ist kann
sich auf ein paar Ueberraschungen in Form von Bugs gefasst machen,
da ich dort einiges umstelle, was nicht notwenigerweise reibungslos
verlaufen wird. Ich bin aber dran, also nicht aufregen und etwas
Gedult - und beten, dass unser RZ heut keinen Mist baut... :)

  Silvana

PS: Suchen von ZTs und FPs kann ich heute nicht empfehlen, da sich ein
paar Filenamen aendern werden...

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



Warokgebirge (Silvana,  9. Dez 1996, 12:00:33):
Tja, es ist dran, wollt ich nur mal sagen. Viel Spass. Silvana

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



info (Sandi, 30. Dez 1996, 20:20:09):
Da ich noch anfaenger bin, kann mir einer eine KURZE liste ueber
ein paar gebirge geben?

Waere super dankbar!!!

..
,

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



Re: info (Methedras,  1. Jan 1997, 09:38:06):
~#! rn=Sandi rt=851973609 rg=d.gebirge
~#! tid=851973609
Alpen
Karakorum
Himalaya
Rocky Mountains
Anden
Bayrischer Wald

   kurz genug? :)

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



Re: Re: info (Kretek,  6. Jan 1997, 12:49:47):
~#! rn=Methedras rt=852107886 rg=d.gebirge
~#! tid=851973609
Also, ich als Nationalbayer wuerde den Bayrischen Wald, liebevoll auch
"Bayrisch Kongo" genannt, auf keinen Fall als Gebirge bezeichen.
Hoechstens mal als Mittelgebirge, aber das zaehlt hier wohl nicht...

       | /  |\  |--  ---  |--  | /
       |<   |/  |-    |   |-   |<
       | \  |\  |--   |   |--  | \

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



Re: Re: info (Aranya, 14. Jan 1997, 15:41:39):
~#! rn=Methedras rt=852107886 rg=d.gebirge
~#! tid=851973609
Karakorum ist ne Wueste, Du Nase!

Aranya, Hobbyjournalistin und Freizeitgeographin

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



Re^3: info (Cauno, 14. Jan 1997, 15:46:22):
~#! rn=Aranya rt=853252899 rg=d.gebirge
~#! tid=851973609
Wo bleiben dann die Baeume zum umfallen?

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



Re^3: info (Grimmborn, 14. Jan 1997, 18:05:10):
~#! rn=Aranya rt=853252899 rg=d.gebirge
~#! tid=851973609
ALSO, erstens heisst es Krakatau und zweitens ist das eine Insel, die vor gar
nicht so langer Zeit in die Luft geflogen ist.
Glaub nicht dass es jetzt eine Wueste ist, wuerde mehr auf Meer tippen...

GdA

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



Re^4: info (Caradhras, 15. Jan 1997, 08:27:03):
~#! rn=Grimmborn rt=853261510 rg=d.gebirge
~#! tid=851973609
Argl, Krakatau war wirklich eine Insel, die ist meines Wissens nach
1883 in die Luft geflogen, das war der groesste bekannte Ausbruch in
der niedergeschriebenen Geschichte der Menschheit, Krakatau lag
von hier aus gesehen irgendwo in der 'Naehe' von Borneo, n bissken weiter
oestlich glaub ich.

             pfiateich         Rothorn Caradhras

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



Re^3: info (Caradhras, 15. Jan 1997, 08:51:12):
~#! rn=Aranya rt=853252899 rg=d.gebirge
~#! tid=851973609
Karakorum ist 'ne Wueste, Aranya? Na dann hoer dir mal folgendes an:

Karakorum [tuerkisch 'schwarzes Geroell']:

1) innerasiatisches Hochgebieg, liegt zwischen Hindukusch und
   Transhimalaja (westlich des Transhim.), befindet sich am Ostende
  des Khaiberpasses, das, wie ja Freizeitgeographinnen sofort wissen,
  die Grenze zwischen Afghanistan und Pakistan bildet, da es die
  Strassenverbindung von Khabul nach Peschawar ist. Hoehe des Passes:
  5575 m 
  Hoechster Gipfel des Karakorum ist der K2, auch Mount Godwin Austen
 genannt, 8611 Meter hoch.

2) Ruinen des ehemaligen Wohnsitzes der Mongolenkaiser
   (in der noerdlichen Mongolei)

und jetzt:
Karakum: Sandwueste in Turkestan (westliches Innerasien), liegt zwischen
        Pamir und Tienschan, Pamir ist der Knotenpunkt der Gebirgs-
       zuege in Mittelasien (Tadschikistan) und Tienschan bildet einen
       Teil der ehemaligen Grenze UdSSR zu China, weiss leider nicht,
      ob das schon zu Russland gehoert oder noch zu anderen ehemaligen
     Sowjetstaaten. Das Gebiet von China heisst uebrigens Sinkiang,
     befindet sich ziemlich genau noerdlich von Tibet, also hm, so
     ca. 800 km westlich der Wueste Gobi.

Fuer eine Hobbygeologin ist es zwar leicht peinlich, nicht zu wissen,
was Karakorum ueberhaupt ist, noch peinlicher ist es aber, richtige
Darstellungen ins falsche zu verkehren und als Hobbyjournalistin
sollte man noch mehr drauf achten, welche (falschen) unbewiesenen
Dinge man von sich gibt.

      tschuess      Gebirge Caradhras - 
       frueher sehr erdkundeinteressiert und dem man keine Wueste
       fuer ein Gebirge vormacht!

PS: falls natuerlich in den letzten 10 Jahren einer eine Wueste
    namens Karakorum erfunden hat, hat Aranya recht, aber ich
    glaube, dem ist nicht so. *brummel was von: Pah, unterschlaegt
    die mir doch glatt meinen Lieblingsberg K2* *schmoll*

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



Re^5: info (Grimmborn, 16. Jan 1997, 14:54:26):
~#! rn=Caradhras rt=853313223 rg=d.gebirge
~#! tid=851973609
Aber sicher, oder hast Du etwa geglaubt ich wuerde hier oeffentlich rumluegen?
Ich dachte immer, diesen Eindruck von mir hat hier nur Acrimon...

Grimmborn der Atheist

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



Re^6: info (Methedras, 16. Jan 1997, 21:38:48):
~#! rn=Grimmborn rt=853422866 rg=d.gebirge
~#! tid=851973609
Nee, lieber Teefrosch, das meinte ich nicht, das 'Argl' war nur
darauf bezogen, wie Du auf einmal von der Frage nach dem Ursprung
oder der Bedeutung von Karakorum auf einmal auf die Insel Krakatau
umschwenktest, IMHO hat das gar nix miteinander zu tun, ausser, dass
es mit K anfaengt und viele a's noch drinhat. Deine verwirrenden
Gehirnwindungen liessen somit bei mir Konfusion aufkommen, was sich
in einem nicht der normalen Ausdrucksweise zuordnenden und befremdenden
'argl' manifestierte, man koennte auch eine Textersetzung von 'Argl'
auf 'Haeh? Was schreibtn der Teefrosch da fuer komische Sachen?'
vornehmen.

          Alles chlor?        Methedras - der allerletzte Berch

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



Re^7: info (Grimmborn, 17. Jan 1997, 14:32:10):
~#! rn=Methedras rt=853447128 rg=d.gebirge
~#! tid=851973609
"ali Argl sag Haeh? Was schreibtn der Teefrosch da fuer komische Sachen?" ;-)

Grimmborn der Atheist

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



Re^8: info (Methedras, 17. Jan 1997, 17:14:09):
~#! rn=Grimmborn rt=853507930 rg=d.gebirge
~#! tid=851973609
Ach, ich hab mal nachgekuckt bei mir:

Krakatau, Insel zwischen Sumatra und Java, urspruenglich 33 qkm gross,
der Vulkan explodierte 1883, 36.000 Menschen kamen dabei ums Leben,
das Donnern war selbst in 4800 km Entfernung noch zu hoeren. Die 
Flutwelle, die dadurch entstand, war 36 Meter hoch und 16 Kubikkilometer
Asche wurden dabei in die Atmosphaere geschleudert. Nach der Explosion
betrug die Groesse der Insel nur noch knapp ueber 10 qkm.

             Methedras - kein Vulkan

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



Re^4: info (Ronda, 31. Jan 1997, 21:36:54):
~#! rn=Caradhras rt=853314672 rg=d.gebirge
~#! tid=851973609
Grins... K2 hab ich auch... fahren sich klasse =;)
Naja........
      Rollerblades gehen zur Not auch...
   Ronda...
Ps: Das kommt davon, wenn WaldMags GebirgsNews lesen =;)

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



Was aus meinem RepFile: (Silvana, 16. Mar 1997, 00:40:58):
Sowas les ich immer wieder gerne:
TYPO: Ich sehe hier nen Kristall, wenn ich den schaetze, steht da aber 
was von Krismall.

Naja, wenn ihr Euch die Muehe machen wuerdet, die Kristalle genauer 
anzusehen, wusstest ihr auch, wieso... 
Da ich diesen Eintrag insgesammt 16mal in meinem Repfile gefunden habe,
schreib ich das mal in die mpa. Keine Lust, 16 Briefe dafuer zu
schreiben - Silvana

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



Re: Was aus meinem RepFile: (Orktoeter, 17. Mar 1997, 11:47:45):
~#! rn=Silvana rt=858469258 rg=d.gebirge
~#! tid=858469258
Dann korriegiere den Typo doch einfach, Silvana !

Heute mal mit praktischen Tips, OrkT *frech grinsend*

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



Re: Re: Was aus meinem RepFile: (Silvana, 17. Mar 1997, 11:48:57):
~#! rn=Orktoeter rt=858595665 rg=d.gebirge
~#! tid=858469258
Manche Leute verstehen es nie...

  Silvana (seufzend)

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



Venusabenteurerfallenzaubertranksfehlinformation (Boing, 19. Mar 1997, 13:15:32):
Entgegen einem Geruecht, das von einem falsch informierten Dschinn
ausgestruet wurde, gibt es in der Venusabenteurerfall im Kloster im 
Lupinental KEINEN Zaubertrank. Der Dschinn wurde fuer seinen Fehler
bestraft und liefert in Zukunft die richtige Information.
   Boing

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



SSP vorerst geschlossen (Boing, 14. Apr 1997, 13:53:44):
Die SSP ist erst mal dicht ... Begruendung steht in Wargons Artikel in
polizei.beschwerden.
  Boing

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



Re: SSP vorerst geschlossen (Sidolin, 14. Apr 1997, 14:01:24):
~#! rn=Boing rt=861018824 rg=d.gebirge
~#! tid=861018824
Ich habe beschlossen, aus Solidaritaet (fuer was eigentlich) und Protest
(gegen was eigentlich) zum grossen:

SOLIDARITAETSIDLEN IN DER HAUPTPOST
aufzurufen.

Wenn es Euch auch stinkt, ihr schlechte Laune habt, Euch Eure Freundin
verlassen hat oder gar die Pommes in der Mensa versalzen waren, oder gar das
Wetter schlecht ist:

WEHRT EUCH!
Nehmt derartige Unbill nicht laenger hin!
Zeigt den Unterdrueckern die Zaehne!
Solidarisiert Euch!
KLaut Waffen, Streichhoelzer, Lollis von Maedchen auf dem Kinderspielplatz!

Gemeinsam koennen wir was aendern!

Kommt massenhaft zum Solidaritaetsidlen in der Hauptpost!

Hoch die Internationale Solidaritaet! (Elfen sind selbstverstaendlich
ausgeschlossen)

Sidolin. Kaempferisch.

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



SOLIDARITAETSIDLEN ein voller Erfolg (Sidolin, 14. Apr 1997, 14:34:58):
Dies ist das Hauptpostamt von MorgenGrauen.
Von hier aus kannst Du Briefe an Deine Mitspieler schicken und Briefe von
ihnen lesen. Wenn Du das willst, tippe "post".
Der einzige sichtbare Ausgang fuehrt nach Sueden auf den Marktplatz
von Port Vain.
Es gibt einen sichtbaren Ausgang: sueden.
Gast4 der hoffnungsvolle Anfaenger.    Isbeorn der Axtschwinger.
Bloedgoere die angehende Seherin.      Sisqi die hoffnungsvolle Anfaengerin.
Pra ist idle.                          Goldpfote die erfahrene Kaempferin.
Gast2 die hoffnungsvolle Anfaengerin.  Sidol der hoffnungsvolle Anfaenger.
Gast3 der hoffnungsvolle Anfaenger.    Tangalur Feuertatze.
Gast1 die hoffnungsvolle Anfaengerin.  Ein Paketschalter.
Binabik der hoffnungsvolle Anfaenger.  Eine Schreibkabine. (2)


So viele Leute haben sich solidarisch erklaert.
Naja, und ich.. aber ich sehe mich bei schau ja nicht.... ausserdem bin ich ja
nicht idle...
Ich schreibe ja einen Artikel.

Naja, seis drum. Auf jeden Fall:

Die Solidaritaet ist noch nicht ausgestorben!

Sidolin. Zu Traenen geruehrt.

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



Re: SOLIDARITAETSIDLEN ein voller Erfolg (Highlander, 14. Apr 1997, 14:35:40):
~#! rn=Sidolin rt=861021298 rg=d.gebirge
~#! tid=861021298
Flasche!
Du idelst nicht mal selber, wie Dein Artikel beweist.
 :>
   HrT

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



Zauberer (Silvana, 14. Apr 1997, 14:39:21):
Nicht, dass ihr jetzt vergeblich uebt. Mit Teleport landet man bis
auf weiteres nicht mehr in der SSP.

  Silvana

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



Re: Zauberer (Jasper, 14. Apr 1997, 14:41:24):
~#! rn=Silvana rt=861021561 rg=d.gebirge
~#! tid=861021561
hehe kennst du die schrat quest? ;P

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



Re: SOLIDARITAETSIDLEN ein voller Erfolg (Tunixgut, 14. Apr 1997, 14:43:05):
~#! rn=Sidolin rt=861021298 rg=d.gebirge
~#! tid=861021298
Boah!

so viele zweities hast du???????

TuNixGut - beeindruckt!

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



Hydra (Puma, 15. Apr 1997, 07:30:54):

Zu dem ganzen Um- und Abgehaenge:
Ich finde dies ein Unding, da das Mud mittlerweile so verwoben ist, dass
einige Sachen ueberhaupt nicht laufen, wenn Einzelteile gesperrt werden.

Wenn sich in 14 Tagen die Lage nicht wieder beruhigt hat, zieht das Lupinental
samt Queste und Hydra in ein anderes Mud um.

Puma Stormfather


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



Re: Hydra (Anakin, 15. Apr 1997, 09:35:30):
~#! rn=Puma rt=861082254 rg=d.gebirge
~#! tid=861082254
Oho,

Ich denke da an eine Wette mit Hardil die ich dann verlieren wuerde.

Anakin.

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



Re: Re: Hydra (Morgar, 15. Apr 1997, 09:48:09):
~#! rn=Anakin rt=861089730 rg=d.gebirge
~#! tid=861082254
In welches Mud zieht sie denn um?

Morgar

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



Re: Re: Hydra (Fyt, 15. Apr 1997, 09:53:38):
~#! rn=Anakin rt=861089730 rg=d.gebirge
~#! tid=861082254

Wenn ich mich recht erinnere, war das eine der Wetten, die man gern 
verliert ;-)

Fyt.

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



Re^3: Hydra (Nairolf, 15. Apr 1997, 11:26:07):
~#! rn=Fyt rt=861090818 rg=d.gebirge
~#! tid=861082254
heya klasse... da wollt ich das eh schon immer Testen :-)
Nairolf, Spieler da aus Ueberzeugung :-)

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



Re: Hydra (Quengistu, 17. Apr 1997, 19:53:28):
~#! rn=Puma rt=861082254 rg=d.gebirge
~#! tid=861082254
Das Lupinental soll umziehen? Und mein Seherhaus? Kann das mitumziehen ins
neue MUD? Und bin ich da dann auch gleich Seher?

Quengistu, obdachlos und heimatlos (?)

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



Re: Re: Hydra (Methedras, 23. Apr 1997, 18:17:05):
~#! rn=Quengistu rt=861299608 rg=d.gebirge
~#! tid=861082254
Nee, da biste bestimmt nicht gleich Seher, braune Augen. :)

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



Top-Zwergenliste (Wargon,  9. Mai 1997, 14:42:39):
  Hi!
Dass in der Liste der Helden des Zwergenvolkes hauptsaechlich kleine Spieler
auftauchen, ist schon rassenbedingt. Dass aber auch wirklich JEDER Zwerg
auftauchte, war dann doch ein Bug.
Wie in den anderen Top- und Rassenlisten werden jetzt auch hier nur die besten
100 aufgelistet.
  Wargon

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



trank (Warlik, 15. Aug 1997, 00:52:59):
Hallo Weiss jemand ob bei der Quelle des Osterbachs ein Zaubertrank zu finden ist? Wenn ja, wie?**
-----------------------------------------------------------------------------



Re: trank (Asmodis, 15. Aug 1997, 01:10:31):
~#! rn=Warlik rt=871599179 rg=d.gebirge
~#! tid=871599179
1. Ist die Zeitung nicht fuer sowas da und
2. Findet man ZTs nicht mehr sooo einfach, da musst du zuerst zum
   Orakel

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



grauer Stein (Boing, 26. Aug 1997, 11:24:04):
Ich habe die Wirkungsdauer der grauen Steine etwas angepasst. Das Teil
wurde zu einer Zeit programmiert, als Level 30 noch unerreichbar erschein,
seitdem sind die Level allerdings 'etwas' eskaliert ... Jetzt entspricht
die Dauer wieder etwa meinen urspruenglichen Vorstellungen.
  Boing

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



Re: grauer Stein (Key, 26. Aug 1997, 12:34:32):
~#! rn=Boing rt=872587444 rg=d.gebirge
~#! tid=872587444
Ups brauch ich dann mehr als 2 um die Hydra ausser Gefecht zu setzen? =;)

Key

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



Ringe (Orktoeter, 26. Aug 1997, 16:08:42):
Hmm immerhin gibt es jetzt auch wieder in akzeptabler Zeit nette Ringe. Die
letzen Monate waren doch arg frustrierend, danke :)

OrkT.

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



Re: Ringe (Boing, 26. Aug 1997, 16:20:30):
~#! rn=Orktoeter rt=872604522 rg=d.gebirge
~#! tid=872604522
Huch? Ringe? Ich bin unschuldig!
  Boing

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



Re: Re: Ringe (Orktoeter, 26. Aug 1997, 19:12:12):
~#! rn=Boing rt=872605230 rg=d.gebirge
~#! tid=872604522
Hmm mag ja sein, aber Tatsache ist, das Monatelang kaum noch gute Ringe zu
haben waren, das laesst sich nicht mehr mit Schwankungen des Zufallsgenerators
erklaeren, aber scheint sich ja wieder normalisiert zu haben :)

OrkT.

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



Re^3: Ringe (Boing, 27. Aug 1997, 08:25:15):
~#! rn=Orktoeter rt=872615532 rg=d.gebirge
~#! tid=872604522
Tut mir ja leid, wenn ich Dich enttaeuschen muss, aber es kann nur an
den Schwankungen des Zufallsgenerators liegen, ich hab an den Ringen
naemlich schon seit Ewigkeiten nichts geaendert, und an den
Wahrscheinlichkeiten ueberhaupt noch nie.
  Boing

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



Legende (Feuerwehr, 16. Okt 1997, 11:40:12):
So hoert nun eine alte Geschichte.

Einst gab es, hoch im Gebirge, versteckt in einem kleinem Tal, den
Sommerwald. Es  war ein  grosser Wald, in  dessen Tiefen  sich ein
kleines Dorf mit dem Namen Briss befand.

Und eines Winters schlug das Schicksal ueber diesem Dorf zusammen.
Die  Zeichen waren schon lange zu sehen  gewesen. Die Felder waren
urploetzlich  verdorrt, das  Vieh siechte dahin und das Wasser war
vergiftet. Jeder wusste, das Schlimmes bevorstand, doch nur wenige
waren bereit zu gehen.

Nichts jedoch hatte die Dorfbewohner auf die entsetzlichen Ereig-
nisse vorbereitet, die  sie in jener schicksalshaften Nacht heim-
suchten. Das  Dorf  wurde ueberrannt. Eine  gewaltige  Armee  aus 
riesigen Spinnen und anderen, schrecklicheren Monstern fiel ueber
das Dorf her, angefuehrt von den Toten der letzten Monate.

Das Dorf wurde zerstoert, bis auf die Grundmauern niedergebrannt,
und  jeder  Mann, jede  Frau, jedes Kind und jedes Tier wurde er-
schlagen,  nur um sich kurz darauf zu erheben und sich der ueblen
Brut anzuschliessen.

Dies  geschah vor vielen, vielen Jahren. Und in der nachfolgenden
Zeit  veraenderte  sich der ganze Sommerwald. Er wurde dunkel und
boese von  Grund auf. Schreckliche Kreaturen sollen in ihm hausen
und  kaum  einer wagt sich noch in seine Faenge. Und jene, die es
wagen, kehren oft niemals zurueck.

Doch  es gibt eine Legende. Es heisst, einmal werden jene kommen,
welche das Verhaengnis des Waldes erkennen. Gesalbte, welche ver-
stehen,  welcher Fluch  auf diesem Wald liegt  und ihn entfernen.
Streiter, welche all die gefangenen Seelen erloesen werden.  


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



Re: Legende (Feuerwehr, 16. Okt 1997, 11:40:34):
~#! rn=Feuerwehr rt=876994812 rg=d.gebirge
~#! tid=876994812
Hi! Ich wollte dann doch noch ein paar Worte zur Quest anfuegen.

Ich danke ganz vielen Leuten. Zuerst einmal all meinen illegalen (und auch
dem legalem) Testie(s), allen (E)M's, welche die Quest(Objekte) abgenommen
oder irgendwo  eingetragen haben und auch  Boing fuers Testen und Abnehmen 
und seine Geduld :-).

Diese  Quest ist im Grunde keine Metzelquest, obwohl man sie so spielen
kann. Mit Level 3 und 10er Stats kam ich problemlos durch (Raffi!).

Fuer die Metzler unter uns kann man die Quest in der ParaWelt spielen. Hier
laeuft sie ein klein wenig anders ab. Man sollte sich daher auf jeden Fall
Unterstuetzung suchen, irgendwann braucht man sie.

Das wars dann schon. Viel Spass und wenig Frust wuensch ich euch

  Feuerwehr.

P.S.: Aehm, das sind keine Typos im Wald, das ist Kunst!

P.P.S.: Aehm, ich habe jedem NPC und jedem Objekt im Wald eine Info gegeben.
        Wenn mir keine einfiel, kam etwas fuerchterlich unsinniges dabei
        heraus. Alle, die sich dadurch irritiert fuehlen, ignorieren dies
        bitte (ihr merkt das schon).

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



Re: Re: Legende (Feuerwehr, 17. Okt 1997, 16:33:02):
~#! rn=Feuerwehr rt=876994834 rg=d.gebirge
~#! tid=876994812
Hi.

Aehm, nach all den  Toten in der letzten Zeit kann ich allen nur davon
abraten, die ParaQuest zu spielen.

Ich moechte auch noch mal sagen, was jetzt auch gross auf dem Schild steht.
Man sollte keinesfalls mit boesem oder satanischem Charakter in den Wald.
Ausser natuerlich wenn man auf alles vorbereitet ist :).

Wenn man in den Wald geht und nicht boese ist und sich im 1. Raum umgeschaut
hat, so wird man nie angegriffen. Aehm, bis auf den Bug, der jetzt wohl raus
ist.

Total geschockt...

     Feuerwehr.

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



Re^3: Legende (Morgoth, 17. Okt 1997, 16:47:43):
~#! rn=Feuerwehr rt=877098782 rg=d.gebirge
~#! tid=876994812
Hey Feuerwehr, poste doch mal ne Komplettloesung !!
M*

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



Re^4: Legende (Feuerwehr, 17. Okt 1997, 16:49:14):
~#! rn=Morgoth rt=877099663 rg=d.gebirge
~#! tid=876994812
Die Komplettloesung gibts im verstecktem Laden, kostet aber 30K Muenzen. Wer
den Laden findet, kann mir ja mal mailen.

Danke fuer den Hinweis Morgoth ...

    Feuerwehr.

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



Re^5: Legende (Birdy, 17. Okt 1997, 18:59:43):
~#! rn=Feuerwehr rt=877099754 rg=d.gebirge
~#! tid=876994812
den zu finden war doch leicht und die kl is zwar lustig aber unsinn ;)

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



Re^3: Legende (Key, 17. Okt 1997, 20:11:14):
~#! rn=Feuerwehr rt=877098782 rg=d.gebirge
~#! tid=876994812
Feuerwehr ich protestiere! Und zwar auf schaerfste!
Dadurch das Leute angegriffen werden die einen satanischen Charakter haben
unterdrueckst du eine ganze gilde! :)
Ausserdem sieht satanisch viel besser aus als heillig *baeh!* :)

Key ruf: CHAOS RULEZ! :)

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



Re: Re: Legende (Helva, 18. Okt 1997, 11:47:36):
~#! rn=Feuerwehr rt=876994834 rg=d.gebirge
~#! tid=876994812
Es ist ja schoen, das auch mal wieder eine quest, die auch fuer schwaechere
Spieler machbar ist, angeschlossen wird. Ich frage mich allerdings, ob man mit
dem heutigen ZT- System bei level 3 bereits 10er stats haben kann. Na ja, ich
werde wohl ausprobieren muessen, obs auch mit niedrigeren stats geht, oder
doch noch ein wenig durch die Gegend laufen muessen, um ZTs einzusammeln.
Bin auf jeden Fall schon sehr gespannt.
Helva fand die Geschichte zu Legende niedlich ;)

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



Re^3: Legende (Boing, 21. Okt 1997, 13:17:01):
~#! rn=Helva rt=877168056 rg=d.gebirge
~#! tid=876994812
Aehm ... dass sie fuer schwaechere Spieler 'machbar' ist, heisst nicht,
dass das sehr sinnvoll ist ;)
  Boing

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



Kristallgruenes wirffang (Ketos, 28. Okt 1997, 03:01:02):
Hi Gebirgler,
endlich habe ich die zwei dinge eingebaut:
kristallgruen und wirffang.

Viel Spass damit :-)

- Ketos -


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



Re^4: Legende (Helva, 28. Okt 1997, 21:37:55):
~#! rn=Boing rt=877432621 rg=d.gebirge
~#! tid=876994812
Noch eine weitere klare Aussage... aber wenn ihr so weitermacht, werden sich
alle kleinen Spieler wie ich nur so drauf stuerzen...unklare Aussagen machen
naemlich neugierig ;)
Helva

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



Vielen Dank fuer die ideen, typo und bug Meldungen (Ketos, 14. Nov 1997, 18:08:33):
Liebe Spieler die ihr gekommen seit durch das Regenbogental,
das Bergdorf und die Wolpertingerquest. Vielen Dank fuer eure
Meldungen der kleinen Tippfehler und misslichen Syntaxe.
Soeben wuerden eure Anregungen und Meldungen die sich in einem Jahr
angesammelt haben verbessert.

Viel Spass weiterhin,

- Ketos -

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



Hallo Leute (Morgoth, 18. Nov 1997, 13:38:03):
Hi Leute,

sicher wundert ihr Euch, warum ein Artikel von mir ausgerechnet in dieser
Rubrik steht. Nun ja. Ich bin nun auch im Gebirge vertreten. Keine Angst. Da
Boing hier RM ist, ist das Ganze sicher viel besser als die Gruetze aus dem
vLand. Wer jetzt noch neugierig ist und wissen will, was los ist und was es
so gibt, kann jetzt noch weiterlesen.






Aus dem Tagebuch eines Abenteurers:

15. Nov. 1997
Heute habe ich eine kleine Ruinenstadt entdeckt. Eigentlich war es nur ein
Zufall, weil ich schnell durch die Osterbachschlucht wollte. Ploetzlich fand
ich eine kleine Strickleiter vor mir, die wohl ein anderer Abenteurer dort
vergessen hatte. Neugierig wie ich nun mal war, kletterte ich hinauf.
Oben angekommen schlug ich erstmal mein Nachtlager auf.

16.Nov. 1997
Ich habe die Stadt gruendlich untersucht. Sie ist sicher noch einige weitere
und
ausfuehrlichere Expeditionen wert. Heute Nacht werde ich auf dem kleinen
Huegel am Ende der Stadt uebernachten.

17.Nov. 1997
Etwas Schreckliches hat sich heute Nacht ereignet. Ich wurde von sehr
ungewoehnlichen Lauten sehr unsanft geweckt. Sie kamen von weit ueber mir.
Als ob dort etwas auf dem Berg ist. Auch ein dunkelrotes Licht oder etwas
Aehnliches schien von dort zu scheinen. Ich werde versuchen, die Ereignisse
dort oben zu erkunden.

Hier endet das Tagebuch. Die folgenden Seiten sind verkohlt und nicht mehr
zu lesen. Wer weiss, was diesem armen Abenteurer dort zugestossen ist????


Morgoth, der Bergsteiger

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



Re: Hallo Leute (Boing, 18. Nov 1997, 14:20:31):
~#! rn=Morgoth rt=879856683 rg=d.gebirge
~#! tid=879856683
Hiho,
ich musste das Gebiet nochmal temporaer abhaengen, die mail mit den
Forscherpunkten ist irgendwo verloren gegangen und ihr wollt ja
schliesslich nicht alles zweimal anschauen muessen.
  Boing

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



Re: Hallo Leute (Raffi, 19. Nov 1997, 12:10:13):
~#! rn=Morgoth rt=879856683 rg=d.gebirge
~#! tid=879856683
Hmm kaengas Stadt Ueberarbeitet und ENDLICH weitergemacht ?

Schoen!
H.

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



Re: Re: Hallo Leute (Boing, 19. Nov 1997, 12:23:49):
~#! rn=Raffi rt=879937813 rg=d.gebirge
~#! tid=879856683
Die Ruinenstadt wurde nur teilweise von mir ueberarbeitet, allerdings
wird Bierchen den Rest uebernhmen und dann auch neue Sachen einbauen.
Morgoths Festung ist davon unabhaengig, sie ist nur dort angeschlossen.
  Boing

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



Re: Re: Hallo Leute (Boing, 20. Nov 1997, 09:47:28):
~#! rn=Boing rt=879859231 rg=d.gebirge
~#! tid=879856683
So, zweiter Anlauf, diesmal MIT Forscherpunkten. :)
  Boing

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



Re^3: Hallo Leute (Bendeigid, 27. Nov 1997, 14:53:13):
~#! rn=Boing rt=880015648 rg=d.gebirge
~#! tid=879856683
Schick. 
UNd nu soll Morgoth mal erzaehlen, wo dieser nette Wanderer die Nacht
hergekriegt hat im MG :))

Viel Spass wuenscht
                 Bendeigid

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



Re^4: Hallo Leute (Morgoth, 28. Nov 1997, 12:21:48):
~#! rn=Bendeigid rt=880638793 rg=d.gebirge
~#! tid=879856683
Hae? Wie meinen? 
Kannst Du mir mal den Bezug erklaeren?
M*

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



Re^5: Hallo Leute (Paracelsus, 28. Nov 1997, 21:13:09):
~#! rn=Morgoth rt=880716108 rg=d.gebirge
~#! tid=879856683
Naja, vielleicht solltest Du nochmal Deinen eigenen Artikel lesen.
Und daran denken, dass es im Morgengrauen keine Nacht gibt.
Dann wirds vielleicht etwas verstaendlicher. ;)

Para*

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



Re^6: Hallo Leute (Bloodyharry, 30. Nov 1997, 02:02:02):
~#! rn=Paracelsus rt=880747989 rg=d.gebirge
~#! tid=879856683
Kein Morgengrauen ohne Nacht. Oder wie war das nochmal? ;-)

bh - schmarrnt auch ma rum

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



Re^6: Hallo Leute (Hobo,  1. Dez 1997, 08:04:50):
~#! rn=Paracelsus rt=880747989 rg=d.gebirge
~#! tid=879856683
Nacht?
Natuerlich gibt es hier ene Nacht.
Noch nie in PV an der Hafenmole gewesen?

Hobo - enttaeuscht von ihrem Enkel

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



Klitzeldrom (Boing, 12. Dez 1997, 17:34:00):
Fuer die Statistikinteressierten unter euch folgende Aufstellung:

Seit dem 2.12.1994 wurde der Klitzeldrom ca. 14000 mal umgebracht,
entsprechend viele Attribut-Ringe wurden natuerlich erzeugt. Die
Verteilung der Boni (Mali) sieht so aus:
Bonus -4: 391
Bonus -3: 685
Bonus -2: 1100
Bonus -1: 1403
Bonus +1: 7327
Bonus +2: 2633
Bonus +3: 549
Bonus +4: 108
Die Verteilung auf die 4 Attribute ist fast exakt 25% fuer jedes Attribut.
Viel Spass beim Weitermetzeln ... :)
  Boing

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



Re: Klitzeldrom (Bloodyharry, 12. Dez 1997, 22:54:54):
~#! rn=Boing rt=881944440 rg=d.gebirge
~#! tid=881944440
Erst dachte ich, es sei eine Normalverteilung. Aber auf den zweiten Blick
sieht man ohne Berechnung klar, dass sie sehr rechtsseitig ist. Also positiver
fuer die Spieler. Das Metzeln lohnt sich echt!. :-)

bg

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



Re: Re: Klitzeldrom (Ringor, 12. Dez 1997, 22:59:09):
~#! rn=Bloodyharry rt=881963694 rg=d.gebirge
~#! tid=881944440
Ahhja, jedem Clonen des Klitzeldrom gehen langwierige Berechnungen fuer den
Ring voraus?

Jetzt weiss ich endlich, woher das Reset-Lag jedes Mal kommt ;-)

Ringor. -> schmarrn

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



Re: Re: Klitzeldrom (Hangover, 12. Dez 1997, 23:00:17):
~#! rn=Bloodyharry rt=881963694 rg=d.gebirge
~#! tid=881944440
Ja....

In jedem 16. Drom steckt also was wirlich gutes. Wer will darf
nachrechnen :-)

Hangover
(heute mal mathematisch veranlagt)

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



Re^3: Klitzeldrom (Bloodyharry, 12. Dez 1997, 23:02:59):
~#! rn=Hangover rt=881964017 rg=d.gebirge
~#! tid=881944440
> In jedem 16. Drom steckt also was wirlich gutes. Wer will darf
> nachrechnen :-)

Ja, ja. Wenn man den "kleinen Finger" reicht ...   :-)

bh

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



Re^3: Klitzeldrom (Anacrion, 13. Dez 1997, 15:42:54):
~#! rn=Hangover rt=881964017 rg=d.gebirge
~#! tid=881944440

Hihi....wir sind jetzt mit dabei...in jedem 16ten ...DROM .... ;)

Anac* - lachend

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



Re^4: Klitzeldrom (Key, 13. Dez 1997, 20:49:05):
~#! rn=Anacrion rt=882024174 rg=d.gebirge
~#! tid=881944440
Hey ab heute geht jeder 16. an mich, oki? :)

Key

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



Typoteufelexorzismus (Morgoth, 15. Dez 1997, 08:38:31):
Hi,
ich hab die ersten paar kBytes meines logfiles mal abgearbeitet und schonmal
die groebsten typos entfernt. Ein paar sind noch ueber, die werde ich aber in
naechster zeit auch beseitigen. 
Ein grosses DANKESCHOEN an Mahatma, der die meisten Typos gefunden hat und an
Zephyr, die mich mit Tips und Ideen bombardiert hat.
Morgoth

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



Re^5: Klitzeldrom (Teddy, 15. Dez 1997, 19:44:20):
~#! rn=Key rt=882042545 rg=d.gebirge
~#! tid=881944440
Jeder 16. hat doch nen -4 Ring, was willste denn mit dem?

Teddy

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



Re^6: Klitzeldrom (Boing, 16. Dez 1997, 12:12:55):
~#! rn=Teddy rt=882211460 rg=d.gebirge
~#! tid=881944440
Ich glaube einige Leute hier koennen nicht rechnen ... ;)
  Boing

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



Re^3: Klitzeldrom (Anatol, 17. Dez 1997, 18:58:29):
~#! rn=Hangover rt=881964017 rg=d.gebirge
~#! tid=881944440
> In jedem 16. Drom steckt also was wirlich gutes. Wer will darf
> nachrechnen :-)

Ich bin nicht gut im Rechnen, aber ich kriege etwas ganz anderes raus.
Etwas "gutes" ist rein statistisch in 3 von 4 Eiern aeh, Klitzeldroms,
etwas *wirklich* Gutes, naemlich ein +4, kommt durchschnittlich bei 
jedem 131. Ring vor. Das sind etwa 7.5 Promille. Wer auf einen Int+4
wartet, sollte sich also dessen bewusst sein, dass er rein chancenmaessig
auf 1.9 Promille wartet. Zum Autofahren definitiv zuviel.
Hat man zum Ziel, irgendeinen "+3 oder mehr"-Ring zu ergaunern, darf man 
auf 4.6% hoffen, was vergleichsweise sehr wahrscheinlich ist.

Anatol, Boings Wahrscheinlichkeiten angrummelnd.


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



Re^4: Klitzeldrom (Key, 18. Dez 1997, 19:52:29):
~#! rn=Anatol rt=882381509 rg=d.gebirge
~#! tid=881944440
Argl!
Ich hatte Hoffnung ... auf einen wirklich guten ;) und dann die Gewissheit von
Dir :)
Boing! Hilfae! :))

Key voellig aus dem seelischen Gleichgewicht ;)

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



arbeitsraum (Nerzhul, 10. Jan 1998, 02:00:31):
Hallo Boing ! 
Beim Abholen des ZT musste ich mein Paket auf den Boden stellen, um an den Schluessel zu kommen.
Leider konnte ich dann das Paket nicht mehr nehmen ! :(((
Bekomme ich die Ausruestung und das Geld irgendwie wieder ? *hoff*
Und klauen wollt ich hier nix ! EHRLICH ! :-)
Ein Trauriger Lembold-Priester Nerzhul 
-----------------------------------------------------------------------------



Re: arbeitsraum (Ringor, 10. Jan 1998, 02:47:26):
~#! rn=Nerzhul rt=884394031 rg=d.gebirge
~#! tid=884394031
Falls Rumata nicht wieder am Mud rumspielt, kannst Du Deine Sachen aus meiner
Hoehle abholen.

Ringor. Beklaut auch Goetter, wenn es sein muss ;-)

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



Re: Re: arbeitsraum (Anatol, 10. Jan 1998, 02:49:32):
~#! rn=Ringor rt=884396846 rg=d.gebirge
~#! tid=884394031
Klar, wenns um Geld und Gold geht, bist Du sofort dabei, Ringor....
. o O ( ZWERGE! )

Anatol :)


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



Re^3: arbeitsraum (Ringor, 10. Jan 1998, 02:50:14):
~#! rn=Anatol rt=884396972 rg=d.gebirge
~#! tid=884394031
Hey, ich ruecks ja wieder raus!

Wenn auch nur widerwillig. Aber sooo toll war die Ausruestung nicht ;-)

Ringor. Zwerg aus Ueberzeugung.

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



Re: Re: arbeitsraum (Boing, 12. Jan 1998, 08:15:55):
~#! rn=Ringor rt=884396846 rg=d.gebirge
~#! tid=884394031
Gewusst wie, dann geht es. :)
  Boing

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



Grisu neu! (Hobo, 12. Jan 1998, 08:25:26):
Moinmoin, 

Ich hab die Grisu-Quest ein bischen umgeschrieben.
Der Ablauf ist jetzt etwas anders, aber Ihr werdet das sicher rausbekommen.

Viel Spass dabei

  Hobo

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



Eisstab (Boing, 12. Jan 1998, 09:05:35):
Der Stab des Eises hat eine kleine Aenderung erfahren, zum einen kann man
ihn jetzt als Waffe benutzen, zum anderen hat die Aktivierung nicht mehr
so krasse Nebenwirkungen. Dafuer haben sich die Kosten etwas geaendert,
schaut es euch an.
Ach ja, der Eistitan zueckt das Teil jetzt natuerlich auch selbst. :)
  Boing

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



Re: Eisstab (Boing, 16. Jan 1998, 17:27:25):
~#! rn=Boing rt=884592335 rg=d.gebirge
~#! tid=884592335
Beim Umbau ist mir ein Fehler reingerutscht, der den Titan deutlich
schwaecher gemacht hat. Das hab ich jetzt korrigiert. Sollte jetzt
also wieder in etwa so wie vorher sein.
  Boing

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



SSP (Boing, 22. Jan 1998, 12:04:51):
Ein Baum faengt an verdaechtig zu knirschen, er wird wohl bald umfallen!
  Boing
PS: Ich nehme noch Wuensche entgegen

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



Re: SSP (Slyfox, 22. Jan 1998, 12:08:48):
~#! rn=Boing rt=885467091 rg=d.gebirge
~#! tid=885467091
Der Kirschbaum mit den schoenen netten Fruechten faellt um? Weswegen denn?
  Slyfox

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



Re: Re: SSP (Zephyr, 22. Jan 1998, 12:10:53):
~#! rn=Slyfox rt=885467328 rg=d.gebirge
~#! tid=885467091

Quatsch, das ist die Wuergertanne.. die macht so was dauernd :)

gut gelaunt, Zephyr

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



Re: SSP (Key, 22. Jan 1998, 16:08:41):
~#! rn=Boing rt=885467091 rg=d.gebirge
~#! tid=885467091
Endlich der weg nach unten vor luh?
Hat ein Baum ein loch reingeschlagen? .) Aeh wird einer sowas tun?

Key

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



Re: SSP (Nixihou, 23. Jan 1998, 09:14:20):
~#! rn=Boing rt=885467091 rg=d.gebirge
~#! tid=885467091
tja, WUENSCHE haett ich viele .... nur finde ich den baum nicht....

nixihou

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



Re: Re: SSP (Hobo, 23. Jan 1998, 09:16:13):
~#! rn=Nixihou rt=885543260 rg=d.gebirge
~#! tid=885467091
Richtig Lesen, Nixi!
Er knirscht noch und ist noch nicht umgefallen, sprich: Noch gibt es nichts zu
finden!

Hobo

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



Re^3: SSP (Nixihou, 23. Jan 1998, 13:18:13):
~#! rn=Hobo rt=885543373 rg=d.gebirge
~#! tid=885467091
ja, eben. solange er nicth umfaellt weiss ich ja nicht wozu ich wuensche
anmelden soll *grins*

nixihou

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



Re^4: SSP (Boing, 23. Jan 1998, 16:27:20):
~#! rn=Nixihou rt=885557893 rg=d.gebirge
~#! tid=885467091
Es geht um allgemeine Wuensche .. so kam z.b. sofort eine Mail eines
Hobbitkaempfers mit dem Wunsch nach Wurfmessern mit Feuerschaden.
Vielleicht waren es auch normale gute Messer mit Feuerschaden und ohne
Wurf? Oder beides? Hmm, muss ich nochmal nachlesen.
  Boing

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



Glitzermock (Boing, 29. Jan 1998, 19:42:53):
Beim Glitzermock hat sich ein bisschen was geaendert ... nichts wildes,
nur ne Kleinigkeit.
  Boing

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



Re: Glitzermock (Ringor, 30. Jan 1998, 12:53:11):
~#! rn=Boing rt=886099373 rg=d.gebirge
~#! tid=886099373
Ein dickes DANKE an Boing fuer die Aenderung. Und an die Quelle dieses
Vorschlags natuerlich auch ;-)

Ringor

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



Re: Re: Glitzermock (Hobo, 30. Jan 1998, 15:41:00):
~#! rn=Ringor rt=886161191 rg=d.gebirge
~#! tid=886099373
Also: Danke Eisi!

Hobo - zweizeilend

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



Klitzeldromsyndrom (Boing, 11. Feb 1998, 08:45:54):
Ich habe versucht, das Klitzeldromsyndrom etwas einzudaemmen, da der
Wunsch mir gegenueber vielfach geaeussert wurde. Es hat sich also an 
dieser Stelle ein bisschen was veraendert.
  Boing

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



Re: Klitzeldromsyndrom (Pra, 11. Feb 1998, 16:56:24):
~#! rn=Boing rt=887183154 rg=d.gebirge
~#! tid=887183154
Nett!!! :-)

Aber jetzt gibt es einen bekannten Treffpunkt im MG weniger... :-(

Pra.

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



Re: Re: Klitzeldromsyndrom (Nixihou, 14. Feb 1998, 14:58:10):
~#! rn=Pra rt=887212584 rg=d.gebirge
~#! tid=887183154
ja, deine aenderungen beim drom helfen nicht... 
zumindest loesen sie nicht das problem das du loesen wolltest...
jetzt bevorzugst du nur eine bestimmte klasse von leuten 
(zauberer, und leute die sich auskennen) und voerderst eine bestimmte art
von semi-legalen skripts. oder verhaltens....
(legaler teil: ideln in der naehe des droms, nicht direkt beim drom und 
ab und zu nachschauen)

zumal es etwas unschoen ist, das der kaelteschaden nicht durch die 
anzahl der ruestung bzw durch speziell gegen kaelteschaden ausgerichtete 
ruestung abgemildert wird oder gar ganz wegfaellt....

nixihou

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



Water Luh (Boing, 16. Feb 1998, 14:38:07):
Hiho,
eigentlich bin ich ja der Ansicht, dass man bestehende Monster nicht
mehr veraendern sollte. Deswegen frage ich auch jetzt hier zuerst nach
Meinungen, und ich stelle gleich klar: Sollte es starke Einwaende geben,
dann werde ich die Aenderung nicht vornehmen.
Es wurde von mehreren Seiten mir gegenueber erwaehnt, dass Water Luh zu 
einfach ist, der Grund liegt auch auf der Hand: Man kann ihn befrieden.
Damit fallen saemtliche Begruessungsschlaege weg. Nun also die Frage:
Soll ich das so lassen, wie es ist oder lieber das Befrieden unmoeglich
bzw. schwer machen?
  Boing

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



Re: Water Luh (Ringor, 16. Feb 1998, 14:38:53):
~#! rn=Boing rt=887636287 rg=d.gebirge
~#! tid=887636287
So, wie er momentan ist, rechtfertigt er seine Killstupse nicht.

Ringor. Einzeilig.

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



Re: Re: Water Luh (Felagund, 16. Feb 1998, 14:41:29):
~#! rn=Ringor rt=887636333 rg=d.gebirge
~#! tid=887636287
Das Problem dabei ist natuerlich wieder, dass du wenn du ihn schwerer machst,
eigentlich den frueheren Killern ihre Killstupse wieder abziehen muesstest.
Waer ja sonst unfair.

Fela

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



Re^3: Water Luh (Key, 16. Feb 1998, 14:53:50):
~#! rn=Felagund rt=887636489 rg=d.gebirge
~#! tid=887636287
Das Prob ist das fela immer was sagt wenn er nix zu sagen hat ;)
Es gibt mehr als genug die ihn ohne befrieden machten.

Hmm aber zum Thema .... ich wuerde ihn eigentlich gerne so lassen :)
Naja oder sagen wir befrieden erschweren reicht ;)

Key

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



Re^4: Water Luh (Gnome, 16. Feb 1998, 15:01:52):
~#! rn=Key rt=887637230 rg=d.gebirge
~#! tid=887636287
hi,
1. entweder so lassen und stupse runtersetzen,
2. oder so lassen und befrieden unmoeglich machen.

da er nun wieder _etwas_ interessanter geworden ist, wuerde ich 2. vor-
schlagen, damit er nicht ganz so leicht zu killen ist.

gnOme

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



SSP (Boing, 16. Feb 1998, 15:44:33):

knirrrrsch .... knaarrrrrrz ... RUMMS!

Soll heissen: Der letzte noch ausstehende Teil der Schreckensspitze ist jetzt
tatsaechlich auch noch fertig geworden und angeschlossen. In den 5 1/2 Jahren,
die ich an der SSP gebastelt habe, hat sich doch einiges getan. Urspruenglich
war der Feuerteufel mal als staerkstes Monster der SSP geplant ... Naja ... :)
Die Entwicklung im MG hat natuerlich auch ihr Abbild in der SSP, so ist die
Qualitaet meiner Meinung nach nach unten hin zunehmend besser geworden, aber
auch die Staerke der NPCs ist inzwischen so breit gestreut, dass vom Anfaenger
bis zum Top-Seher jeder seine Herausforderung finden kann. Wenn man bedenkt,
wieviele Spieler in diesen 5 1/2 Jahren gekommen und wieder gegangen sind,
koennte man schon fast sentimental werden. :) Wer weiss heute noch, wieso
der Sensenmann Caradhras persoenlich begruesst? Oder wer kennt noch die Zeit,
als das hinterste erreichbare Monster der Schneeriese war? Der Gedanke, dass
die SSP mal als Teil von Titiwu geplant war, wo man den Meteorit finden kann,
ist heute auch nur noch komisch ... :)
Naja, nun zur neuen Feuerebene: Wahrscheinlich ist es ratsam, erst mal nicht
alleine hinzugehen. Ich glaube es ist einigermassen gefaehrlich geworden,
allerdings kann ich das nicht einschaetzen. :) Zumindest habe ich mich 
bemueht, dem ganzen nochmal einen kroenenden Abschluss zu geben. Was dabei
herausgekommen ist, werdet ihr ja sehen. 

   Boing

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



Re^5: Water Luh (Sharia, 16. Feb 1998, 16:12:43):
~#! rn=Gnome rt=887637712 rg=d.gebirge
~#! tid=887636287

Befrieden schwerer machen aber nicht unmoeglich denn er mag fuer gewissen
Gilden so relativ leicht sein aber nicht fuer alle... und was Felagund sagt:
es gibt auch Leute, die Water Luh gemacht haben als man noch nicht befrieden
konnte .. was is dann mit denen ? also: Felagund enthalte dich mal :-)
Die Stupse sind schon gerechtfertigt auch wenn Ringor das nicht meint..aber
das ist halt meine Meinung und Ringor vergass dazuzuschreiben: ....das ist
MEINE Meinung ..(denn man sollte nie von Ringor auf andere schliessen...)
Sharia

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



Re^6: Water Luh (Ringor, 16. Feb 1998, 16:21:16):
~#! rn=Sharia rt=887641963 rg=d.gebirge
~#! tid=887636287
Sorry, dann formulier ich es anders: meiner Meinung nach ist der Water Luh -
sofern ein Zauberer ihn befriedet - fuer jede Gilde sehr einfach und
rechtfertigt damit nicht die hohe Zahl an Killstupsen.

Dass ein wenig Timing dazugehoert, ist klar, schliesslich kann nicht jede
Gilde sowohl rein physikalischen als auch rein magischen Schaden machen. Aber
das sollte ja nicht so schwer sein.

Meiner Meinung nach also sollte das Befrieden beim Luh zumindest erschwert
werden. Wobei das eigentlich auch nur Unterschied fuer den Befriede-Knecht
macht und nicht fuer den, der die Killstupse gerne haette ;-)

Ringor. 

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



Re^7: Water Luh (Sharia, 16. Feb 1998, 18:38:14):
~#! rn=Ringor rt=887642476 rg=d.gebirge
~#! tid=887636287
Ja Ringor KOENNEN tut das wenn Water Luh befriedet wird sicher jeder, jedoch
ist die Frage wie leicht das dann geht... ich glaub nicht, dass du das mal als
Kleriker versucht hast .. und da nenne ich jetzt die Kleriker jetzt nur als
Beispiel... aber ok du sagtest ja selber: befrieden erschweren und das is ja
wie ich bereits sagte auch meine Meinung


Sharia sagt: erschwert das befrieden bei Water Luh

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



SSP (Sting, 16. Feb 1998, 20:07:03):
Danke Boing, endlich auch mal was fuer Chaoten in der SSP :))


Sting

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



Re^7: Water Luh (Jimdigriz, 16. Feb 1998, 20:31:48):
~#! rn=Ringor rt=887642476 rg=d.gebirge
~#! tid=887636287

Hoi,

meine Meinung zu Water Luh (und anderen Monstern)

Ich finde es eigentlich sehr positiv, wenn ein
Monster nicht durch Gewalt sondern durch Koepfchen
zu besiegen ist. Es hat sicher eine Weile gedauert,
bis eine erfolgreiche Strategie (auch Anfangs mit
den erforderlichen "Zutaten") gefunden ist.

Der Nachteil ist leider, dass es eben nur einmal
wirkt. Ist ein Weg gefunden das Monster mehr oder 
weniger leicht zu killen, so kennt ihn bald jeder.
Das an sich ist ja auch nicht schlecht, sondern
foerdert das Zusammenspiel. Nur ist das Monster dann keine
Herausforderung mehr.

Meine Idee waere nun, (allerdings ist die eher aufwendig)
vielleicht die Herausforderung (bei einigen wenigen Monstern
allerdings nur, wie Water Luh, Hydra und evtl Weghier)
in gewissen Abstaenden wieder neue Raetsel
einzubauen. Das heisst konkret, die Schwachstellen, die
momentan es ermoeglichen das Monster einfach zu killen,
werden beseitigt und vielleicht dafuer eine andere
eingebaut, die halt noch unbekannt ist. So ergibt
sich eine neue Herausforderung und die Stupse 
sind wieder gerechtfertigt, natuerlich muessen dann
auch wieder viele Spieler gemeinsam daran
arbeiten, die neue Schwachstelle zu finden.
Dabei kann ja ruhig die brute-force-Strategie
zustaetzlich erfolgreich sein, sie ist dann halt
nur muehsamer.

Begruenden kann man es, dass das Monster ja auch
lernt, denn sein Tod ist wie der der Spieler
nicht endgueltig.

Ciao,
 Jim DiGriz

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



Re^8: Water Luh (Ringor, 16. Feb 1998, 21:20:49):
~#! rn=Sharia rt=887650694 rg=d.gebirge
~#! tid=887636287
Dass Water Luh als heiliges Monster fuer Kleriker schwieriger zu metzeln ist
als z.B. Satan, glaub ich Dir aufs Wort.

Nur Vergleich die Erstkillstupse fuer Water Luh bitte mal mit denen fuer den
Weghier, Robin, den kleinen Vernichter oder Paracelsus' Balrog. Und dann
vergleich den Aufwand, den man bei den einzelnen Monstern hat.

Sind die Stupse dann immer noch gerechtfertigt?

Meiner Meinung nach nein, und nix anderes wollte ich gesagt haben.

Ringor

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



Re^8: Water Luh (Key, 17. Feb 1998, 08:32:07):
~#! rn=Jimdigriz rt=887657508 rg=d.gebirge
~#! tid=887636287
Hmm Jimmy also ich find die Idee klasse .... aber ich frage mich wie du sie
umsetzen willst ....
Gleich von Anfang an mehrere NPCs basteln die dann per random erscheinen?

Oder den Mag sagen wir mal von mir aus alle 3 monate wieder auf seinen npc
loslassen damit der geaendert wird?

Key

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



Re^8: Water Luh (Hangover, 17. Feb 1998, 09:23:57):
~#! rn=Jimdigriz rt=887657508 rg=d.gebirge
~#! tid=887636287
Hm...

also ich habe Water Luh fuer ein Monster gehalten, das man genau
einmal killt. Und beim ersten Mal ist er sehr schwer, sofern man
keine Tricks verraten bekommt, und dann mit Sicherheit auch ein
paar Stupse wert.

-Hangover
(der Water Luh einmal getoetet hat und nie wieder)

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



Cronoeralm (Silvana, 23. Feb 1998, 10:49:17):
Die Speisen und Getraenke der Cronoeralm sind an neusten Standard angepasst.
Guten Appetit. - Silvana

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



Re^3: Water Luh (Fyt,  2. Mar 1998, 15:29:43):
~#! rn=Felagund rt=887636489 rg=d.gebirge
~#! tid=887636287

Andererseits haben machen das Vieh auch ohne befrieden totgekriegt...

Fyt.

PS: Ach ja, is mir voellig wurscht, Boing ;-)

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



Hydrahoerner... (Anatol,  3. Mar 1998, 17:45:22):

Hi!
Seit kurzem sind die Hydrahoerner (tm) nicht mehr ablegbar. Da der 
verantwortliche Magier nicht ausfindig machbar ist (Puma war es lt.
eigener Aussage nicht), moechte ich auf diesem Wege den entsprechenden
Magier um ein Rueckgaengigmachen oder zumindest eine Erklaerung 
bitten - NODROP ist in diesem Falle, wie ich (und nicht nur ich) 
finde, reichlich unnoetig. Sie sind NEVERDROP, was verhindert, dass
sie in der bedauernswerten eigenen Leiche bleiben oder von Patryns
weniger bedauernswertem Baum geklaut werden.

Anatol, die Verben "quengel" und "nerv" umsetzend ;)


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



Re: Hydrahoerner... (Gloinson,  3. Mar 1998, 19:04:39):
~#! rn=Anatol rt=888943522 rg=d.gebirge
~#! tid=888943522
Naja, so arg ist es gar nicht. Aber zumindest sollten die Hoerner dann
schon noch automatisch in den Killer gemoved werden, da man sonst bloss
am Auseinanderklamuesern ist. Also lieber Magier, waege ab, was fuer
Dich faszinierender ist ;-)

Gloin

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



Re: Re: Hydrahoerner... (Silvana,  3. Mar 1998, 23:44:59):
~#! rn=Gloinson rt=888948279 rg=d.gebirge
~#! tid=888943522
Da es Puma nach eigener Aussage nicht war, hab ichs einfach mal wieder
geaendert. Gilt natuerlich nur fuer _neue_ Hydrahoerner.

  Silvana

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



kneipen (Wurzel,  6. Mar 1998, 21:58:20):
die kneipen in der zwergenfestung entsprechen jetzt dem neuen standard.
so langsam bekomme ich uebung darin... *seufz*

wurzel

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



SSP (Silvana,  8. Mar 1998, 23:55:35):
Hi.
Ich hab gerade sicherheitshalber den neuen Teil der SSP dicht gemacht,
da der Verdacht besteht, dass man dort unten unter Umstaenden versehentlich
Spieler angreift bei toete alle. Ich kann mir nicht vorstellen, dass Boing
das so gewollt hat. Ich hab allerdings jetzt nicht die Zeit, den Fehler
zu suchen.

  Silvana

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



Festung, Teil 2 (Morgoth,  9. Mar 1998, 10:30:31):
Tach,

fuer alle die es gar nicht mehr erwarten koennen ist hier nun die Erloesung.
Der zweite Teil der Drakonierfestung ist nun endlich fertig. 
Viel Spass und gutes Sterben

Morgoth

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



Re: SSP (Boing,  9. Mar 1998, 10:33:54):
~#! rn=Silvana rt=889397735 rg=d.gebirge
~#! tid=889397735
Hallo,
ich hab den Fehler gefunden, der Drachenpriester hat einen Zauberspruch
ziemlich krumm verbogen (ungewollt), das macht er nun nicht mehr.
Desweiteren hab ich einen Fehler in der lib gefunden, der dazu fuehrte,
dass man dieses merkwuerdige 'Etwas', was einigen Leuten schon aufgefallen
ist, immer mit angegriffen hat. Den Fehler hab ich mal umgangen, ich 
denke aber, dass der noch generell behoben wird. :)
  Boing

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



Hydra und die kleine Pause (Puma, 13. Mar 1998, 16:43:48):

So, Freund meinte, die Spieler haetten ein Recht darauf informiert zu werden,
also gut:

Einige haben sich vielleicht gewundert, dass Madame seit fast 48 Stunden das
Tal nicht mehr beehrt hat. Das liegt daran, dass es eine neue Methode gibt,
die die Hydra ruft. Bisher habe ich qQuengler immer mit dem Kommentar "such
doch" abgewiesen, aber gerade hat mich jemand daran erinnert, dass die
entsprechenden neuen Raeumlichkeiten (so neu sind sie gar nicht), noch nicht
abgenommen worden sind.

Langer Rede kurzer Sinn: jetzt klappt wieder die alte Methode (fuer die, die
sie kennen). Und nein, an der Hydra hat sich noch nichts veraendert. Das
dauert noch

Frohes warten und Ruestungabgreifen wuenscht

Puma!


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



Geldprobleme (Feuerwehr, 21. Mar 1998, 15:57:42):
Hi ihrs!

Aehm, es kam vor einiger Zeit zu einem komischen Bug mit Geld und dem Kobold
im Duesterwald. Jof allein weiss warum, bei mir hats immer geklappt, aber
wegen einiger Mails hab ich das mal umgestrickt. Es sollte jetzt also auf
jeden Fall funktionieren.

Aehm, ich habe seit Anschluss der Quest jede Menge Fanpost bekommen und
moechte mich hiermit ganz artig bei allen Schreibern bedanken. Auch wenn ich
nicht geantwortet habe, hat's mich sehr gefreut.

Als letztes moechte ich erwaehnen, dass mein Report-File in den letzten
Monaten so gut wie nicht gewachsen ist und der Wald damit (relativ) "sauber"
ist. An dieser Stelle moechte ich mich auch an all die Typo-Finder wenden, die
mich mit Tausenden und Abertausenden von Typos beehrt haben:

Ich werde euch finden. Irgendwann werde ich euch finden. In einer finsteren
Seitengasse, in der niemand eure Schreie hoehrt...

   Feuerwehr.

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



Re: Geldprobleme (Key, 21. Mar 1998, 20:24:00):
~#! rn=Feuerwehr rt=890492262 rg=d.gebirge
~#! tid=890492262
Komm doch komm doch =;)

Key

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



Re: Geldprobleme (Gloinson, 21. Mar 1998, 21:16:05):
~#! rn=Feuerwehr rt=890492262 rg=d.gebirge
~#! tid=890492262
typo: Seitengasse, in der niemand eure Schreie _hoert_...

Gloin ... war _noch_ nicht da :)

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



Magier tun doch noch was (Puma, 10. Apr 1998, 00:10:39):

Wegen mehrmaligen Nervens habe ich mich nun doch aus meinem Schaukelstuhl
erhoben um ein altes File zu aendern. Und es ist ...

*tusch*

Die Ruestung des Hydratoeters! 


Viel _Spass_ damit.

Puma!


P.S.: Diese Aenderung betrifft natuerlich nur alle neuen Ruestungen.


#Informationspflicht off


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



schreckliche Para-Welt (Feuerwehr, 21. Apr 1998, 23:27:34):
Hi Fans des wunderschoenen Gebirges!

Aehm, auf der letzten Party wurde an mich herangetragen, dass die
Parawelt-Variante der Duesterwald-Quest doch ziemlich gemieden wuerde und ich
dafuer die Werbetrommel ruehren sollte.
Wieder daheim (und einigermassen wach) schaute ich nach, und es stimmte!
Um also die Quest wenigstens ein klein wenig attraktiver zu gestalten (oder
zumindest die tapferen Loeser der Para-Quest ein kleinwenig zu belohnen), gibt
es jetzt eine zusaetzliche Belohnung fuer Para-Nosfrettoeter.
Sie ist 30 cm breit, 20 cm hoch und besteht aus edlem Pinienholz.

   Dankend...

        Feuerwehr.

P.S. Alle, die die Para-Quest schon geloest haben, koennen nun
     a) Die Quest wiederholen oder
     b) sich bei mir melden.

PPS. Er zeigte sein bestes Grinsen und sprach:
        ' Na, da hoff mir mahl, dass' nich' buggt. '

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



Re: schreckliche Para-Welt (Asmodis, 22. Apr 1998, 18:26:39):
~#! rn=Feuerwehr rt=893194054 rg=d.gebirge
~#! tid=893194054
Ein kleines Feuerwehrauto ? :)

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



Re: Re: schreckliche Para-Welt (Feuerwehr, 22. Apr 1998, 19:35:22):
~#! rn=Asmodis rt=893262399 rg=d.gebirge
~#! tid=893194054
Oh Mann!!!

Wieso kommen die guten Vorschlaege immer erst, wenn man alles angeschlossen
hat????

    Feuerwehr *grummelnd*

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



Re^3: schreckliche Para-Welt (Pra, 23. Apr 1998, 10:37:13):
~#! rn=Feuerwehr rt=893266522 rg=d.gebirge
~#! tid=893194054
Tja, Pech gehabt.

Musst Du halt noch 'ne Quest schreiben... :-)

Pra.

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



Re^4: schreckliche Para-Welt (Boing, 23. Apr 1998, 14:47:57):
~#! rn=Pra rt=893320633 rg=d.gebirge
~#! tid=893194054
Sag ich ja schon seit Monaten ... aber er redet sich immer raus!

Feuerwehr! Arbeiten! Sofort!

  Boing

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



Artikel (Feuerwehr,  1. Mai 1998, 23:04:19):
Hi!

Im Rahmen der
Fuellen-Wir-Doch-Die-Gebirge-Rubrik-mit-unnuetzen-Artikeln-weil-sie-so-verdamm
t-leer-ist - Aktion moechte ich hiermit bekanntgeben, dass sich einige
kleinere Aenderungen an der Para-Belohnung getan haben.
Die neue Version erhaelt man nach Reboot oder Ende.

Ah, die Ideen dazu sind von mir, die Bugs von Aurian. Aeh. Oder so.

    Feuerwehr.

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



Merkwuerdige Geraeusche ... (Boing,  5. Mai 1998, 08:53:13):
Aus der Richtung der alten Steinbeisserhoehle wurde ein merkwuerdiges
Grummeln vernommen, was da nur wieder los ist?
  Boing

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



Re: Merkwuerdige Geraeusche ... (Key,  5. Mai 1998, 10:17:07):
~#! rn=Boing rt=894351193 rg=d.gebirge
~#! tid=894351193
Hmm also ich hab da eher schreie sterbender NPCs gehoert die von Spielern
gezappt wurden ;)

Naja vielleicht grummeln ihre Nachfahren ja deswegen ein bisserl =;)

Key

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



Re: Re: Merkwuerdige Geraeusche ... (Wargon,  5. Mai 1998, 13:10:29):
~#! rn=Key rt=894356227 rg=d.gebirge
~#! tid=894351193
Wahrscheinlich grummeln die ueberlebenden Steinbeisser, weil wieder ein
Artgenosse in den Fels gebissen hat...
  Wargon

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



Re: Merkwuerdige Geraeusche ... (Asmodis,  6. Mai 1998, 18:55:28):
~#! rn=Boing rt=894351193 rg=d.gebirge
~#! tid=894351193
Haben die Steinbeisser Nachwuchs bekommen ? Oder ist Schwiegermutter
Steinbeisser zu Besuch ? (Oh g, Gott, megahartes Monster)

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



Klack! (Silvana, 13. Mai 1998, 12:45:02):
Wem der Titel was sagt, der wird wissen, wo ich eine Kleinigkeit
veraendert habe...

  Silvana

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



Morgoth' Drakonier (Silvana, 14. Mai 1998, 23:15:20):
Hi.

Offenbar gibt es von Morgoth' Gebirgs-Drakonier-Gebiet zwei Versionen:
eine im VLand und eine im Gebirge. Diese beiden Versionen sind voellig
durcheinander geraten. Da ich nicht die Zeit habe, das jetzt zu entwursteln,
kann ich nur empfehlen, das Gebiet zu meiden, bis Morgoth in dieser 
Rubrik Entwarnung gibt.

  Silvana

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



Drakonierfestung!!!!! (Belgariad, 17. Mai 1998, 22:47:33):


Hi Folks,

















nachdem ich fast unzaehlige Male wegen diesen verzwickten Raeumen fast
gestorben waere, hat sich Morgoth erbarmt die Raeume zu debuggen. Sprich es
geht wieder alles einwandfrei.





Ein Hoch auf Morgoth.

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



Re: Drakonierfestung!!!!! (Therin, 17. Mai 1998, 23:24:26):
~#! rn=Belgariad rt=895438053 rg=d.gebirge
~#! tid=895438053
Irgendwie habe ich ein merkwuerdiges Gefuehl bei der Wortkombination "Morgoth"
und "fehlerfrei" :)

Therin knuddelt Morgoth witzelnd.


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



Re: Re: Drakonierfestung!!!!! (Teddy, 17. Mai 1998, 23:25:03):
~#! rn=Therin rt=895440266 rg=d.gebirge
~#! tid=895438053
Ups, das passt in einen Satz? Ich dachte diese Kombination ergibt automatisch
RZGs ;)

Teddy

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



Warok (Silvana,  3. Jun 1998, 09:43:20):
Patryn meinte, die Tigonen sollten wieder Spass machen. Nun, tun sie,
hoffentlich wieder. :) Ach ja, der Eistrollschamane hat auch wieder 
sein urspruengliches Inv... 

  Silvana - spricht in Raetseln.

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



Re: Warok (Therin,  4. Jun 1998, 10:03:44):
~#! rn=Silvana rt=896859800 rg=d.gebirge
~#! tid=896859800

Also die Tigonen haben m.e. noch nie Spass gemacht...
(und ohne Stille erstrecht nicht :) )

T.

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



Drakonierfestung (Morgoth, 13. Jun 1998, 23:24:54):
So, nun sollte das mit den Tueren beim Kommandanten wieder behoben sein und
der Waffenguertel tut auch wieder.
M* (gestresst)

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



Grummeldolche (Boing, 28. Aug 1998, 13:47:24):
Man kann jetzt durch identifizieren herausfinden, mit welchen ids man
die Grummeldolche noch ansprechen kann.
  Boing

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



Drachengott (Boing, 10. Sep 1998, 13:02:47):
Der Fehler beim Drachengott duerfte jetzt wohl nicht mehr auftreten. Es
ist auch nicht mal ein Reboot notwendig, da ich noch eine zweite
Sicherung eingebaut habe. Zumindest glaube ich das ... ;)
  Boing

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



plakette (Feuerwehr, 14. Sep 1998, 15:09:03):
Hi Gebirgsler.

Aehaem. Vor einigen Monaten erreichte mich die Meldung, dass Weibsvolk in
diesem Mud anwesend sein soll. Ich bin dem natuerlich nachgegangen und bin nun
zu dem Schluss gekommen, dass deren Anwesenheit hier nicht mehr voellig
auszuschliessen ist.

Nunja, auf jeden Fall hab ich jetzt (eendlich, jaaa) diese dumme Plakette
angepasst. Und auf Wunsch eines einzigen, winzig kleinen Zwerges (der sowas
eigentlich garnicht verdient haette) gibt es sogar noch einen neuen Befehl
oben drauf, da ham wir gleich ein Super Sommer Sparmenue.

Dieses kostenlose Update erhaelt man nach dem naechsten ENDE / Reboot.

   Feuerwehr.

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



Re: Drachengott (Key, 14. Sep 1998, 16:27:20):
~#! rn=Boing rt=905425367 rg=d.gebirge
~#! tid=905425367
Ohoh ...
"duerfte"
"Sicherung"
"glaube"

Aeh kannste das nochmal ueberarbeiten Boing? :)))

Key geht in Deckung ;)))

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



Re: plakette (Lug, 17. Sep 1998, 01:31:46):
~#! rn=Feuerwehr rt=905778543 rg=d.gebirge
~#! tid=905778543

a) das war nur ein Geruecht!

b) ist doch voellig egal!

c) sollten da eh nicht hin!

d) BUUUUUUUUUUH!

e) sollen eh in die Klerikergilde!

Lug

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



Feuerteufel (Boing, 22. Sep 1998, 13:40:17):
Ich wurde leider von den Klerikern dazu gezwungen den Feuerteufel 
etwas zu aendern. Normalspieler werden davon wohl nix bemerken.
  Boing

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



Re: Feuerteufel (Boing, 22. Sep 1998, 14:11:45):
~#! rn=Boing rt=906464417 rg=d.gebirge
~#! tid=906464417
Ach ja .. sollten sich die Massnahmen als unzureichend heraustellen,
werde ich mir neue Gemeinheiten ausdenken ... :)
  Boing, verwandelt Keulen in Pflugscharen

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



Re: Re: Feuerteufel (Dieder, 22. Sep 1998, 14:12:31):
~#! rn=Boing rt=906466305 rg=d.gebirge
~#! tid=906464417
Kleriker sind also nicht normal? Gut zu wissen... :)

Dieder

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



Re^3: Feuerteufel (Patryn, 22. Sep 1998, 15:03:24):
~#! rn=Dieder rt=906466351 rg=d.gebirge
~#! tid=906464417
irgendwie hat dein artikel 100% redundanz :)

------
patryn -> schmarrn

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



Re: Feuerteufel (Lug, 22. Sep 1998, 18:37:10):
~#! rn=Boing rt=906464417 rg=d.gebirge
~#! tid=906464417
Raeusper,


buuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuh!
Unser Gildengott laesst sich von Frauen zwingen. Tss tss tss.
Naja, wenigstens das mit den "Normalspielern" war gut ;)
FidKGuKgh
Lug

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



Re: Re: Feuerteufel (Feuerwehr, 22. Sep 1998, 19:13:14):
~#! rn=Lug rt=906482230 rg=d.gebirge
~#! tid=906464417

Naja,

Da stellt sich dann doch irgendwie die Frage....
Wer von uns ist schon normal???

  Feuerwehr  (diabolisch kichernd und mit Zintassen gegen Gitterstaebe 
               haemmernd)


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



Bakhtarrh (Boing, 29. Sep 1998, 09:29:06):
Gratulation an Kiu, der als erster Spieler den Drachengott der
Schreckensspitze besiegt hat. Ich muss sagen: er hat es verdient!
  Boing

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



Re: Bakhtarrh (Nonne, 29. Sep 1998, 10:17:13):
~#! rn=Boing rt=907054146 rg=d.gebirge
~#! tid=907054146
Einen DrachenGOTT?? na, wenn sich da mal nicht ein paar glaeubige drachen
drueber ereifern, dass man den killen kann.

Nonne.
(hoffend, dass es ein paar verstehen)

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



Neue Wege braucht das Land... (Tilly, 11. Okt 1998, 23:58:09):
Moin moin,

Es wurde ein Schwarm Wildgaense gesichtet, der augenscheinlich zwischen
der Hochebene und dem Polargebiet pendelt. Sicher gibt es fuer Euch
eine Moeglichkeit, dies zu nutzen und so den beschwerlichen Weg zwischen
den beiden Regionen abzukuerzen.
Viel Spass und vielen Dank an Boing und Feuerwehr.

 - Tilly -

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



Re: Neue Wege braucht das Land... (Mahatmu, 12. Okt 1998, 00:12:31):
~#! rn=Tilly rt=908143089 rg=d.gebirge
~#! tid=908143089
Muss man die irgendwie aergern, so wie Nils damals ? :)

Gloin

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



Re: Neue Wege braucht das Land... (Catweazle, 12. Okt 1998, 10:08:40):
~#! rn=Tilly rt=908143089 rg=d.gebirge
~#! tid=908143089
Wildgaense zwischen Polar und Hochebene.
Hm, da faellt mir spontan ein Heissluftballon ein, der immer noch nicht
fliegt :)

YTC

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



Re: Re: Neue Wege braucht das Land... (Boing, 12. Okt 1998, 13:33:04):
~#! rn=Catweazle rt=908179720 rg=d.gebirge
~#! tid=908143089
Jaja ... ich hab ihn nicht vergessen ... ;)
  Boing

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



Re^3: Neue Wege braucht das Land... (Key, 12. Okt 1998, 13:42:47):
~#! rn=Boing rt=908191984 rg=d.gebirge
~#! tid=908143089
Hmm da faellt mir spontan ein das ich schon immer Pegasus im Flug abschiessen
wollte :)

Gilt auch fuer alles andere Fliegervieh was man verfuiettern kann ;)

Key, ballert wild in der Luft rum und sieht Spieler vom Himmel regnen ;)

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



Akte X auf der HE? (Baboon, 20. Okt 1998, 09:58:18):
Hallo Leute.

Wie mir der alte Wanderer berichtet hat sind in letzter Zeit mehrere
Personen im Norden der Hochebene verschwunden. Augenzeugenberichten
zufolge standen sie in der Naehe eines grossen Gebueschs und waren
dann von einem Augenblick zum anderen verschwunden.
Vielleicht habt ihr ja Lust, euch auf die Suche nach ihnen zu machen?
Eine Belohnung ist allerdings nicht ausgesetzt. (Waren alles nur
Anfaenger)

BaBOOn()

ps: Herzlichen Dank an die Tester und meinen Lieblingssteinbeisser.

pps: Ich bin ja sooo stolz auf mich. *seufz gluecklich* :-)

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



Klitzeldrom-Ringe (Boing, 22. Okt 1998, 10:29:50):
Hallo,
bei den Ringen vom Drom hat sich ein kleiner Bug eingeschlichen, das betrifft 
alle positiven Ringe, die an den letzten ein bis zwei Tagen erzeugt
wurden. Die durch den Bug entstehenden negativen Folgen, lassen sich 
durch ende beheben. 
  Boing

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



Drakonierfestung (Morgoth,  3. Nov 1998, 10:04:21):
Hi Leute,

wie ihr ja schon mitbekommen habt, hat der 'gute' Padreic ein bischen an der
Lib gefummelt und dabei ein paar unschoene Kaeferchens eingebaut. Einer davon
ist auch der Grund, warum in der Drakonierfestung nicht mehr alles so laeuft
wie es soll.
Klartext: Der Kommandoposten im Norden buggt wie sau, also bleibt da raus.

Morgoth wuergt Padreic

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



Re: Drakonierfestung (Hobo,  3. Nov 1998, 12:50:51):
~#! rn=Morgoth rt=910087461 rg=d.gebirge
~#! tid=910087461
Dann haeng's ab!

  Hobo

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



Re: Re: Drakonierfestung (Sharia,  3. Nov 1998, 12:51:32):
~#! rn=Hobo rt=910097451 rg=d.gebirge
~#! tid=910087461
waere doch nicht witzig oder ? :-)

Sharia, schaut mal ob man da nich bugs ausnutzen kann .... oder so ....

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



Re^3: Drakonierfestung (Morgoth,  3. Nov 1998, 12:53:00):
~#! rn=Sharia rt=910097492 rg=d.gebirge
~#! tid=910087461
Klar, wenn Du in einem Raum feststecken willst, in dem ein Para-Sivak-Kaempfer
steht und in dem es keine Ausgaenge gibt. Nutz diesen Bug ruhig oft genug aus.
Mit 20 Todesfolgen kaempft es sich auch als Kleriker sicher ganz gut.
M*

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



Re^4: Drakonierfestung (Sharia,  3. Nov 1998, 12:53:39):
~#! rn=Morgoth rt=910097580 rg=d.gebirge
~#! tid=910087461
dann haengs ab ? :-)

Sharia wird wohl manchmal missverstanden...

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



Re: Drakonierfestung (Morgoth,  3. Nov 1998, 13:08:01):
~#! rn=Morgoth rt=910087461 rg=d.gebirge
~#! tid=910087461
Der Bug is gefixed, sollte alles wieder klappen....

Morgoth wuenscht viel Spass beim Sterben

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



Mal wieder Klitzeldrom (Boing,  3. Nov 1998, 14:38:14):
Ich habe ein paar Kleinigkeiten am Klitzeldrom geaendert. Ich bin fuer 
konstruktive Nachbesserungsvorschlaege natuerlich immer zu haben.
  Boing

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



Re^4: Drakonierfestung (Asmodis,  6. Nov 1998, 16:28:45):
~#! rn=Morgoth rt=910097580 rg=d.gebirge
~#! tid=910087461
Hast du immer noch nicht gelernt, dass AddExit vor AddItem stehen sollte ? :-)

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



Pa-BOOn schlaegt wieder zu (Baboon, 12. Nov 1998, 09:56:16):
Auf speziellen Wunsch dreier bestimmter
Personen *grins Neb, Nessaja und Lillebror* gibt es jetzt
in meinem Gebiet fuer Freunde der Parawelt eine neue
Moeglichkeit ums Leben zu kommen...
Viel Spass.

Pa^H^HBaBOOn()

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



Re: Pa-BOOn schlaegt wieder zu (Baboon, 12. Nov 1998, 11:42:14):
~#! rn=Baboon rt=910864576 rg=d.gebirge
~#! tid=910864576
Nachdem Magicolli den Allererstkill gemacht hat, ohne
auch nur einen Gegenschlag zu kassieren, hab ich mal ganz
zwanglos die Laehmbarkeit des monsters herabgesetzt.

Weiter viel spass wuenscht Pa^H^HBaBOOn()

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



Re: Pa-BOOn schlaegt wieder zu (Neb, 12. Nov 1998, 12:23:19):
~#! rn=Baboon rt=910864576 rg=d.gebirge
~#! tid=910864576
Klasse, dass nenn ich Service.
Wir werden sicher in naechster Zeit nochmal eine Expidition starten ;)

Neb, knuddelt Pa^H^H^Baboon fuer die spontane Reaktion.

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



Re: Re: Pa-BOOn schlaegt wieder zu (Morgoth, 12. Nov 1998, 12:23:39):
~#! rn=Baboon rt=910870934 rg=d.gebirge
~#! tid=910864576
Is ja nett,dass du das so genau erklaerst. bei mir wuerd da nur stehen. hab
was geaendert, viel spass beim sterben. REICHT VOELLIG !
M*

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



Re^3: Pa-BOOn schlaegt wieder zu (Acrimon, 12. Nov 1998, 14:37:10):
~#! rn=Morgoth rt=910873419 rg=d.gebirge
~#! tid=910864576
naja... dann findet mans doch nicht. Lohnt sich gar nicht nachzuschauen, wenn
mans nicht findet.

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



Re: Re: Pa-BOOn schlaegt wieder zu (Baboon, 17. Nov 1998, 09:27:51):
~#! rn=Baboon rt=910870934 rg=d.gebirge
~#! tid=910864576
Wem der Parawelt-Blindfisch zu schlaff erschien hatte leider
recht. Irgendwie scheint es die special attacks des Monsters in eine
Subraumanomalie gezogen zu haben. Diese "Problem" ist
jetzt behoben. :-)

Waer doch gelacht, wenn ich nicht endlich ein paar Kerben machen koennte.

Viel Spass beim Sterben wuenscht Pa-Magier BaBOOn(). :-)

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



Neues aus der Grummelbeisserhoehle (Boing, 17. Nov 1998, 18:14:41):
Diese schaendliche mail hab ich eben vom Balance-Team erhalten:

----------------------------------------------------------------------
Hallo Boing,

Du bist jetzt dran, Deine Grummelbeisserhoehle ist so mit Zeugs 
ueberladen, dass da jetzt mal kraeftig ausgemistet wird. Als erstes 
bekommt der Grummeldolch nen vernuenftigen Schadenstyp und keinen so 
an den Haaren herbeigezogenen Mist. Ausserdem muss er nach hinten
verfrachtet werden! Und zu oft sollte es ihn auch nicht geben! Und
das andere gute Teil gleich gar nicht, du weisst schon was ich meine!
Und weil wir grad dabei sind, kommt als naechstes die Scherbenhose 
dran, aber da bekommst Du noch ne Gnadenfrist, um ein eigenes Gebiet
zu schreiben, wo das Ding reinpasst.

  Boing, i.A. des Balance-Teams
----------------------------------------------------------------------

Was sagt man dazu? *wein* 
Duerfen die sowas machen??? 

  Boing, verzweifelt

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



Re: Neues aus der Grummelbeisserhoehle (Muadib, 18. Nov 1998, 12:34:13):
~#! rn=Boing rt=911326481 rg=d.gebirge
~#! tid=911326481
ahhh endlich kann ich auch mal ;)
HEUL DOCH!

muadib
*weint NIE*

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



Re: Neues aus der Grummelbeisserhoehle (Songoku, 19. Nov 1998, 10:05:45):
~#! rn=Boing rt=911326481 rg=d.gebirge
~#! tid=911326481
Tja als Neumagier passiert einem sowas.
Aber das wird sich noch legen. Habe einfach etwas geduld.
Aber das wird sich noch legen. Habe einfach etwas geduld.
SonGoku 

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



Re: Re: Neues aus der Grummelbeisserhoehle (Muadib, 19. Nov 1998, 15:39:57):
~#! rn=Songoku rt=911469945 rg=d.gebirge
~#! tid=911326481
hi

wen meinste ?

muadib
*schwer von begriff*

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



hallo silberhein (Luvadea,  9. Jan 1999, 22:30:15):
:)**
unt brett
-----------------------------------------------------------------------------



Scherbenhose (Boing,  2. Feb 1999, 17:04:10):
Wie angekuendigt hat die Scherbenhose jetzt ihr eigenes kleines Gebiet
bekommen, ist also nicht mehr in der Grummelbeisserhoehle zu finden.
Viel Spass,
  Boing

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



Waffenguertel (Morgoth,  2. Feb 1999, 21:06:59):
Hiho,

endlich bin ich mal dazu gekommen, ein paar Wuensche einzubauen. Man kann nun
gezielt die einzelnen Schlaufen benutzen. Allerdings kann es sein, dass das
Ding noch nicht perfekt ist, da mir hier keiner vernuenftige Antworten auf
meine Fragen geben konnte (d.h. quick and dirty hack) ;-))

Trotzdem viel Spass !!!

M*

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



Re: Waffenguertel (Morgoth,  3. Feb 1999, 09:04:58):
~#! rn=Morgoth rt=917989619 rg=d.gebirge
~#! tid=917989619
So,

Quick hat getestet und auch noch ein paar optische Fehler gefunden, deshalb
gibts jetzt noch ein weiteres Kommando. Besser gehts mit den derzeitigen
Mitteln nicht.

M*

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



Es tat sich etwas auf... (Wim, 22. Feb 1999, 11:43:23):

naemlich eine Tuer im Bergdorf, die schon lange verschlossen war.
Dahinter sieht es gar merkwuerdig und verlassen aus, lohnt sicher nicht den
Besuch... oder gibt es da vielleicht doch mehr, als ein oberflaechlicher Blick
preisgibt?

Frag den Wanderer *G*

Wim

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



seufz... (Wim,  3. Mar 1999, 11:24:56):
Nachdem regelmaessig Fragen kommen, warum die Queste optional ist und mir
selbige Fragen langsam meine Geduld strappazieren:
Weil ich die Seheranforderungen nicht noch weiter steigern wollte.
Eigentlich dachte ich, dass man durch geringfuegiges Nachdenken selber darauf
kommen koennte, aber ich hab meine Mitmudder wohl ueberschaetzt...

Weiterhin frohes Questen :)

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



Re: seufz... (Wurzel,  3. Mar 1999, 20:25:56):
~#! rn=Wim rt=920460296 rg=d.gebirge
~#! tid=920460296
ein fehler, den wir alle mal machen. wenn man annimmt, der durchschnittliche
mudder wuerde ueber ein auf die gesamtbevoelkerung bezogen durchschnittliches
denkvermoegen verfuegen, liegt man voll daneben. nein, mudder sind viel
intelligenter... oder so aehnlich.

wurzel

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



Dromringe (Boing,  8. Mar 1999, 13:16:59):
Die Ringe vom Klitzeldrom haben sich etwas geaendert. Im wesentlichen
betrifft das die +4 Ringe und die Kombiniationsmoeglichkeiten mit anderen
attributveraendernden Objekten. Z.b. laesst sich ein Kraftring nicht
mehr mit den Drachenklauen (auch Kraft) von Paracelsus kombinieren.
Diese Regelung wurde nicht aus Spass eingefuehrt, sondern ist darin
begruendet, dass auch andere Magier die Moeglichkeit haben sollten,
attributveraendernde Objekte ins Spiel zu bringen. Bisher wurde so ein
Antrag mit der Begruendung 'in Kombination mit Dromring und Drachenklauen
zu stark' glatt abgebuegelt.
Die Aenderung gilt natuerlich nur fuer Ringe, die ab sofort neu ins Spiel
kommen.

  Boing

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



Re: Dromringe (Jasonrigid,  9. Mar 1999, 11:24:13):
~#! rn=Boing rt=920899019 rg=d.gebirge
~#! tid=920899019

Tja, damit sind Kraftringe fuer diejenigen Leute, die an die Klauen rankommen
weitestgehend wertlos ...

schade eigentlich.

Jason

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



Re: Re: Dromringe (Anatol,  9. Mar 1999, 12:23:05):
~#! rn=Jasonrigid rt=920978653 rg=d.gebirge
~#! tid=920899019
Es gibt immer Leute, die den Sinn einer "Abwertung" nicht begreifen.

Anatol - ist fuer feste Obergrenzen aller Attributswerte.


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



Re^3: Dromringe (Anacrion,  9. Mar 1999, 14:31:16):
~#! rn=Anatol rt=920982185 rg=d.gebirge
~#! tid=920899019
Auch wenn es mir im Herzen wehtut, muss ich anatol#(l) hier zustimmen.

Damit das MUD halbwegs ueberschaubar bleibt und kalkulierbar, sollte man doch
am besten gleich bei der Attributabfrage nen maxwert setzen ...

Gruss und Kuss (fuer alle diewollen)

Anac* - sich jetzt schon fuer die Typos entschuldigend

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



Re: Re: Dromringe (Deepblue,  9. Mar 1999, 16:12:27):
~#! rn=Jasonrigid rt=920978653 rg=d.gebirge
~#! tid=920899019
Und? Sind sieh es halt, kommen halt auch andere mal in den Genuss. Und
irgendwann muss mal mit dem gegenseitigen Hochruesten schluss sein.

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



Re^3: Dromringe (Mahatmu,  9. Mar 1999, 16:58:38):
~#! rn=Deepblue rt=920995947 rg=d.gebirge
~#! tid=920899019
Jawohl, und deshalb baue ich meine Mittelstreckenrakten in Port Vain ab
oder verpsrech die Programmierung auf die Zwergenstadt in Wueste zu aendern!
Unterschreib auch Du den START II - Vertrag!

Mahatmu

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



to artikel 6 (Jasonrigid, 10. Mar 1999, 12:32:00):
~#! rn=Anatol rt=920982185 rg=d.gebirge
~#! tid=920899019
Ja, Anatol, und es gibt auch immer Leute, die einfach die Enttaeuschung bei
einer Abwertung immer wieder in den falschen Hals kriegen .

Ich habe den Sinn durchaus verstanden, und ich akzeptiere es, das heisst aber
nicht zwangslaeufig, dass es mir auch gefallen muss.

Jason

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



Re: to artikel 6 (Anatol, 10. Mar 1999, 18:34:34):
~#! rn=Jasonrigid rt=921069120 rg=d.gebirge
~#! tid=920899019
Entschuldigung. In diesem Fall haette die korrekte Antwort heissen muessen:

Heul' doch.

Anatol


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



Re: Re: to artikel 6 (Jasonrigid, 11. Mar 1999, 12:11:11):
~#! rn=Anatol rt=921090874 rg=d.gebirge
~#! tid=920899019
Okay, aber Du versuch bloss nie, Dich in die Gedanken anderer hineinzudenken,
das koennte zu Gehirnbildung fuehren.

Jason

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



Re^3: to artikel 6 (Mahatmu, 11. Mar 1999, 12:13:21):
~#! rn=Jasonrigid rt=921154271 rg=d.gebirge
~#! tid=920899019
Dafuer gibt es ja den Int+4 Ring und eine Segnung.

Mahatmu

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



Re^4: Dromringe (Songoku, 11. Mar 1999, 12:45:47):
~#! rn=Mahatmu rt=920998718 rg=d.gebirge
~#! tid=920899019
Aber die Dragonballs fallen nicht unter den START II oder (muss die immernoch
suchen)

Sayonara! 

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



Re: Re: seufz... (Rantanplan, 11. Mar 1999, 20:42:51):
~#! rn=Wurzel rt=920492756 rg=d.gebirge
~#! tid=920460296
Stimmt Wurzel, der durchschnittliche Mudder ist sicherlich intelligenter als 
der Rest der Bevoelkerung...und sieht scheisse aus...

Oe*

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



Re^3: seufz... (Grimmborn, 16. Mar 1999, 00:55:07):
~#! rn=Rantanplan rt=921184971 rg=d.gebirge
~#! tid=920460296
Hee, moment, ich bin nicht intelligenter. Frechheit.
Blblblbl

Grimmborn der Atheist

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



Universalfaehnchen (Wim, 19. Mar 1999, 19:51:56):

Das Faehnchen wertet nun das Ignoriere aus und dort im besonderen auch den
Befehl ignoriere "name.fahne" welches das "aus der Ferne"-wedeln unterdrueckt.

Gilt natuerlich nur fuer neue Faehnchen...

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



Re: Universalfaehnchen (Anatol, 19. Mar 1999, 20:15:18):
~#! rn=Wim rt=921873116 rg=d.gebirge
~#! tid=921873116
"ingoriere xxx.fahne" haette ich auf der Party brauchen koennen, als sich
der eine oder andere "nette" Geselle zu lange mit zu vielen Flaschen Bier
unterhalten musste :o). Wo warst Du, Wim?

Anatol


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



Re: Re: Universalfaehnchen (Wim, 19. Mar 1999, 20:17:29):
~#! rn=Anatol rt=921874518 rg=d.gebirge
~#! tid=921873116

Frag mal bei den Bierschuettlern an. Die haben damit sicher mehr Erfahrung.

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



Geruechte... (Zook, 25. Mar 1999, 15:08:08):


Wie mir zu Ohren gekommen ist, soll es vom Siebensprung aus
einen Weg in ein bisher noch unbekanntes Gebiet geben. Leider
konnte ich dieses Geruecht bisher noch nicht ueberpruefen, 
aber vielleicht schaut Ihr einfach mal vorbei, was es damit
auf sich hat.

Zook.

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



Fleurop :) (Wim, 25. Apr 1999, 06:35:32):
Zarro hat nun auch einen Fleuropservice eingerichtet und bringt Blumengruesse
vorbei :)
Wie er sich dazu ueberreden laesst, muesst ihr aber schon selber herausfinden.


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



suche (Elkos, 13. Mai 1999, 19:55:27):
Hallo liebe Mit-Mudler,

ich haenge hier in der HE und schlachte die kleinen Tierchen ab.

:-) Echt lustig !!!!
.
.
-----------------------------------------------------------------------------



Re: suche (Hobo, 14. Mai 1999, 11:25:31):
~#! rn=Elkos rt=926618127 rg=d.gebirge
~#! tid=926618127
Dann viel Spass dabeio. Und pass' auf, dass nicht Dich mal die kleinen
Tierchen abnagen!

  Hobo

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



Kleine Aenderung... (Zook, 19. Mai 1999, 17:01:14):

Hiho,

zum einen moechte ich Euch mitteilen, dass ich die Wartung
von Georgs Gebiet im Gebirge uebernommen habe und zur Zeit
erst einmal das Repfile abarbeite... Also, wer Ideen, 
Wuensche oder aehnliches hat, kann mir das ja mal mailen.. :)

Zweitens, der Betrachter hatte einen kleinen Defekt, den ich
behoben habe. Dabei habe ich noch ein paar andere Aenderungen
vorgenommen... nix Dramatisches, aber ich wollte es Euch
mitteilen. Viel Spass damit....

Gruss, Zook.

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



Tal abgehaengt (Baboon,  2. Jun 1999, 10:40:35):
Falls es irgendjemand interessieren sollte:
Mein Tal ist wegen einiger kleinerer Aenderungen am Bach
fuer ein oder zwei Tage abgehaengt. Der Tunnel ist aber weiter 
zugaenglich.

BaBOOn() ist fuer seine Verhaeltnisse zur Zeit hyperaktiv.

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



Viel Spass mit der neuen Quest! (Tsunami,  2. Jul 1999, 12:13:19):
(Fanfare, Trommelwirbel und Tusch!) 

TaaaTaaa! Es ist vollbracht. Ein neues Abenteuer wartet darauf, von Euch
in Angriff genommen zu werden:

Der Koenig der Zwerge hat echt viele Probleme am Hals. Jetzt ist ihm auch
noch sein Sohn abhanden gekommen. Am besten schaust Du mal vorbei.
Ruhm, Ehre verrueckte Abenteuer und tolle Belohnungen(!!) warten auf Dich. 

Also, was zoegerst Du noch? Alle Mann an Deck und auf ins Gefecht.

Die Quest ist eher fuer die lieben Kleinen gedacht, aber auch ihr
fuerchterlichen HLPs solltet Euren Spass dabei haben.

Auf Feedback hoffend,

Tsunami (heute zur Abwechslung mal lieb und nett).



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



Re: Viel Spass mit der neuen Quest! (Gor,  2. Jul 1999, 12:18:20):
~#! rn=Tsunami rt=930910399 rg=d.gebirge
~#! tid=930910399
Gor gibt Tsunami ein Feedback aus der Ferne.

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



Re: Viel Spass mit der neuen Quest! (Gast2,  2. Jul 1999, 13:31:09):
~#! rn=Tsunami rt=930910399 rg=d.gebirge
~#! tid=930910399
Alles nur Fehlalarm. Der Zwergenkoenig vermisst noch immer nur ein
Kind - Ukhazi, nur kann er sich offenbar nicht entscheiden, ob es
nun ein Sohn oder eine Tochter ist...

Gast2, Elf :o)


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



Re: Re: Viel Spass mit der neuen Quest! (Tsunami,  2. Jul 1999, 14:42:06):
~#! rn=Gast2 rt=930915069 rg=d.gebirge
~#! tid=930910399
Hallo Gast2 (ich weiss dass Du weisst dass ICH weiss, wer Du bist) :))

warte nur, bis Du wieder unter Deinem richtigen Namen eingeloggt bist denn
dann gibts Haue auf Deinen Elfenhintern :))

Fuer alle anderen.. die Quest funtkioniert natuerlich :)

Tsunami (haut heute Elfen).

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



Re^3: Viel Spass mit der neuen Quest! (Lug,  5. Jul 1999, 01:16:24):
~#! rn=Tsunami rt=930919326 rg=d.gebirge
~#! tid=930910399

Tjae,

dachte ich mir, dass Tsunami auf sowas steht...


Tssstsstssend
Lug

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



Neues von der Rattenburgerquest (Tsunami,  5. Jul 1999, 14:55:22):
Huhu :)

Bis jetzt haben schon ueber 40 von euch die Quest durchgespielt und das
Echo war durchwegs gut. Vielen Dank fuer eure Reps und die vielen guten
Emails. Ich habe alles eingebaut.

Die beiden einzigen Bugs sind repariert:
Der Kristall behindert das Kerbholz nun nicht mehr und der Topf wurde
ueberarbeitet. 

Da der Ansturm auf die Quest so gross ist, habe ich mit ein paar Kaesekruemeln
noch ein paar Ratten mehr in die Goblinhoehle gelockt.

In diesem Sinne, weitere witzige Ideen sind wie immer herzlich willkommen
und werden sofort eingebaut.

Tsunami.

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



Re: Neues von der Rattenburgerquest (Wim,  5. Jul 1999, 20:19:46):
~#! rn=Tsunami rt=931179322 rg=d.gebirge
~#! tid=931179322
Ich kann mir nicht verkneifen, Dir mitzuteilen, dass ich den dritten
"einzigen" Bug gerade entfernt habe :)

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



Re: Neues von der Rattenburgerquest (Morgoth,  6. Jul 1999, 07:43:55):
~#! rn=Tsunami rt=931179322 rg=d.gebirge
~#! tid=931179322
Hm, wieso postest Du nicht gleich ne KL und alles ist gut. Dann muessen sich
die Leute nicht mit Bugs rumschlagen. Auch ne Art von Bugfix.

M*

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



Mesirii ist schuld (Silvana,  1. Sep 1999, 13:23:04):
Hi.

Gibt ne kleine Aenderung bei den Erschoepfungstexten im Warok. Dank an
Mesirii.

  Silvana

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



troubel (Troubardix, 21. Sep 1999, 05:58:42):
Troubardix forever!
-----------------------------------------------------------------------------



Bugfix-Warnung ! (Morgoth, 28. Okt 1999, 14:33:16):
Hi,

ich hab nen Bug im Parasivak gefixed. Koennte nun etwas aua machen.

M*

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



Re: Re: Bugfix-Warnung ! (Jamalski, 28. Okt 1999, 17:05:42):
~#! rn=Tilly rt=941123056 rg=d.gebirge
~#! tid=941113996
Macht jedenfalls irgendwie 'aua'

Jamal

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



Re: Re: Bugfix-Warnung ! (Morgoth, 29. Okt 1999, 08:06:52):
~#! rn=Tilly rt=941123056 rg=d.gebirge
~#! tid=941113996
Nein, der wars nicht. Aber gabs nicht mal irgendwo etwas, das posten von Code
bzw. Pfadnamen in Spielerrubriken untersagt? 
Ich kann mich dran erinnern, dass ich mal einen dafuer auf den Deckel bekommen
habe. Wenn das jetzt wieder erlaubt ist, schoen. Mal sehen was Du so nettes in
Deinem Verzeichnis hast.

M*

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



Re^3: Bugfix-Warnung ! (Bendeigid, 29. Okt 1999, 08:41:19):
~#! rn=Morgoth rt=941177212 rg=d.gebirge
~#! tid=941113996
Ich habe den verbotenerweise Pfadnamen enthaltenden Artikel nach magier.
schmarrn verlegt. 

Jau, Morgoth, es ist verboten ;)
Haut Tilly! 

Z'par Servu,
              Bendeigid

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



Blumen (Wim,  9. Nov 1999, 17:07:59):
So, die haben nun eine kleine Funktionalitaet mehr.
Ansonsten mal wieder der Aufruf: Wer kleine ASCII Bilder von Blumen hat (insb.
gesucht eine Tulpe) nur her damit, denn damit kann ich das Angebot des Ladens
erweitern ;)

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



Rattenburgerquest (Tsunami, 21. Dez 1999, 11:39:51):
HO! HO! HO! 

Vorweihnaechtlicher Arbeitseifer hat mich uebermannt. Ich habe das Repfile
der Rattenburgerquest durchgeackert und den einzelnen Objekten 
intelligente Resets spendiert. Ihr werdet es bestimmt moegen.

Viel Spass,

Tsunami.

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



plakette (Feuerwehr, 28. Dez 1999, 23:42:15):
Hi!

Die Para-DW-Plakette verbreitete bei einigen Spielern Unmut, da dauernd
derartige Plaketten auf sie gerichtet wurden. Derartige Huepfer koennen jetzt
'ignoriere plakette' eingeben, welche das Richten von Plaketten auf sie
unterbindet.

Der Clou dabei ist, dass es erst geht, wenn der jeweils andere ende gemacht
und somit eine neue Plakette bekommen hat. Viel Spass also ...

   112.

PS: Dieser Artikel ist fuer Liara, die doch so gerne was liest.
PPS:Auch wenn sie Para-Duesterwald glaub ich garnicht gespielt hat...

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



Bugfix (Boing, 31. Jan 2000, 11:26:57):
~#! on=Baboon ot=949313050 og=allgemeines
Durch eine Aenderung anderswo funktionierte mein
Findling am Bachufer nicht richtig.
Obwohl es sicher keinen interessiert (der Bug ist
schon seit monaten drin, ohne das jemand
was gemerkt haette...) hab ich ihn jetzt
behoben und gleich noch zwei andere
Kleinigkeiten geaendert. Also geht mal hin. Es gibt
ein monster zu entdecken. :-)
Achja. Jetzt kann ich mit gutem Gewissen behaupten,
dass der Rest von meinem Tal noch in diesem
Jahrtausend, ja sogar in diesem Jahrhundert angeschlossen wird.

BaBOOn() gibt vage Lebenszeichen von sich.

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



Re: Bugfix (Hood, 31. Jan 2000, 13:09:30):
~#! rn=Boing rt=949314417 rg=d.gebirge
~#! tid=949314417
ein neues `monster von dir? ueberlebt das diesmal wenigstens den ersten
schlag? waer mal was wirklich neues ;)

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



Re: Re: Bugfix (Baboon, 31. Jan 2000, 13:17:58):
~#! rn=Hood rt=949320570 rg=d.gebirge
~#! tid=949314417
Was heisst hier "ueberleben den ersten Schlag nicht"?
Was erwartest du denn, wenn du mit nem vollstrecker
auf einen wehrlosen Grasfrosch eindrischst?
Wenn du ein Monster willst, das mehr aushaelt,
dann geh zum Para-blindfisch.
Auf jeden Fall hab ich endlich mal wieder
jemand in mein Gebiet gelockt,
und das war ja der sinn der uebung. :-)

Baboon

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



Scriptende Feuerpriester? (Boing, 13. Feb 2000, 16:22:18):
Gelegentlich ist das Problem aufgetreten, dass Feuerpriester oder
Feuermagier in der neuen FE ploetzlich angefangen haben, wie wild
Getraenke in sich reinzuschuetten, obwohl sie eigentlich nur eins
pro Kampfrunde zu sich nehmen sollten. Falls dieses Verhalten in
Zukunft noch auftritt, dann sagt mir bitte Bescheid.
  Boing

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



Re: Scriptende Feuerpriester? (Tarina, 13. Feb 2000, 17:24:41):
~#! rn=Boing rt=950455338 rg=d.gebirge
~#! tid=950455338
loescht Du sie dann auch?

Tarina

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



Nicht bekannt gegebene Aenderung (Boing, 15. Feb 2000, 14:12:24):
Wie ich gehoert habe, haben sich einige Leute darueber aufgeregt, dass ich
meine juengste Aenderung in der SSP nicht bekanntgegeben habe. Mich wuerde
aber nun wirklich interessieren, WIESO ich sie haette bekanntgeben sollen?
Denn:
a) Die Spieler die das Feature sehr haeufig benutzen, merken es ohnehin
   gleich ohne dass ihnen dabei Gefahr droht.
b) Die Spieler die das Feature gelegentlich benutzen, merken keinen 
   Unterschied.
c) Die Spieler die das Feature nicht kennen, kennen es weiterhin nicht,
   was durchaus gewollt ist.

Ich moechte jetzt keine Diskussion darueber, ob die Aenderung gut/laengst
ueberfaellig/beschissen ist, sondern nur meine oben gestellte Frage sinnvoll
beantwortet haben.

  Boing

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



Re: Nicht bekannt gegebene Aenderung (Gnome, 15. Feb 2000, 16:36:00):
~#! rn=Boing rt=950620344 rg=d.gebirge
~#! tid=950620344
ohne (wie von dir gewuenscht) jetzt auf eine wertung der aenderung
einzugehen, sag ich mal folgendes:
- es besteht hier i.a. eine recht grosses kommunikationsdefizit nicht
  nur zwischen erzies und anderen (gut, das soll aber eure sache sein),
  sondern auch (was ich sehr schade finde) zwischen magiern und
  spielern/sehern. solch ein nicht-informieren schueren i.a. nur geruechte
  und tragen nicht unbedingt zum abbau des o.g. defizits bei...
  in diesem speziellen fall mag das wirklich nicht so schlimm sein, aber
  es ist mitlerweile zur gewohnheit geworden, die spieler ueber
  neuerungen und/oder aenderungen im unklaren zu lassen.
  nicht immer, aber immer oefter.
  so geschehen beim neuen lichtsystem, bei dem es nicht mal halb so viel
  geschrei gegeben haette, wenn irgendein verantwortlicher uns mal
  ordentlich und rechtzeitig informiert haette.

- ein kurzer artikel in der mpa a la  "ich hab da was geaendert. nicht,
  dass ihr euch wundert" oder "der weghier ist haerter geworden, vorsicht!"
  reichen doch voellig aus und finden bestimmt auch eine breitere
  akzeptanz als nach wochen ueber 3 ecken verlauten zu lassen,
  dass man entgegen aller geruechte doch was geaendert hat.

fazit: redet mit uns und wir verstehen euch auch. und das nicht nur optisch :)

gnOme

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



Re: Nicht bekannt gegebene Aenderung (Neb, 16. Feb 2000, 12:47:19):
~#! rn=Boing rt=950620344 rg=d.gebirge
~#! tid=950620344
Boing schrieb:
>Ich moechte jetzt keine Diskussion darueber, ob die Aenderung
>gut/laengst ueberfaellig/beschissen ist,

Witzig, dass Du es erwaehnst, Boing, denn bei den ersten beiden der drei
Moeglichkeiten wuerde ich sofort ein dickes "JA" ankreuzen.
Ist die Aenderung eigentlich nur erfolgt, damit Muadib nicht demnaechst alle
Leute loeschen muss, die eine Endlostanke, die seit einem Jahr in Deinem
Gebiet existiert, ausnutzen?
Aber ich will ja nicht diskutieren.....

Gruss, Neb.

P.S.: Nein, so "harte" Blockmonster wie Titanwalze oder Eisriese waren fuer
mich nie ein Argument fuer die Berechtigung einer Endlostanke.
P.P.S.: Besonders weil sie nach meinen Erfahrungen sowieso hoechstens alle 20
Tankgaenge einmal auftauchen.
P.P.P.S.: Ich wage ja gar nicht danach zu fragen, aber muessen jetzt alle
Kampfzwerge, die den Kriegshamster benutzen, um ihr Leben zittern? Die
muessten doch auch merken, dass eine schwere Beschaffbarkeit bei den
momentanen Uptimes keine so gute Daseinsberechtigung darstellt, oder?
P.P.P.P.S: Go, Muadib, go !!! ;)

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



Re: Nicht bekannt gegebene Aenderung (Lug, 17. Feb 2000, 02:34:28):
~#! rn=Boing rt=950620344 rg=d.gebirge
~#! tid=950620344

Also Boing: Dann haettest Du die Frage nicht in der MPA stellen sollen!

Sinnvoll? Wo sind wir denn hier?
Lug

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



Drakonierfestung (Morgoth,  8. Mar 2000, 09:25:35):
Hiho,

wer die Festung betritt wird einige Aenderungen erleben, die die Namen der
Drakonier betreffen. Diese wurden aus rechtlichen Gruenden geaendert. Wundert
Euch nicht, wenn Euch bis zum Reboot NPCs/Details/Objekte mit verschiedenen
Namen ueber den Weg laufen.
Wer NACH dem Reboot noch "alte" Namen findet meldet sich bitte per Mail an
mich mit genauer Beschreibungdes "Typos".

Morgoth

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



Re: Drakonierfestung (Lug,  8. Mar 2000, 23:52:44):
~#! rn=Morgoth rt=952503935 rg=d.gebirge
~#! tid=952503935

Hm?

rechtliche Gruende klingt interessant. Erlaeuter mal, hat Dich TSR verklagt?

Interessiert
Lug

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



Re: Re: Drakonierfestung (Boing,  9. Mar 2000, 08:24:06):
~#! rn=Lug rt=952555964 rg=d.gebirge
~#! tid=952503935
Nein, hat sie nicht. Allerdings habe ich kuerzlich erfahren, dass sie
wohl scharf hinter Copyright-Verletzungen in Muds her sind und teilweise
auch Muds deswegen schon ausraeuchern. Und das muss man ja nicht
unbedingt riskieren.
  Boing

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



Re^3: Drakonierfestung (Wargon,  9. Mar 2000, 18:11:00):
~#! rn=Boing rt=952586646 rg=d.gebirge
~#! tid=952503935
Betrifft das auch Bezeichnungen wie "Hobbit"? In ADoM sind vor einiger Zeit
aus aehnlichen Gruenden die Hobbits durch Hurthlings ersetzt worden...
  Wargon

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



Re^4: Drakonierfestung (Sting,  9. Mar 2000, 18:12:54):
~#! rn=Wargon rt=952621860 rg=d.gebirge
~#! tid=952503935
DANN koennte man ja so ziemlich alles aendern....

Sting

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



Re^5: Drakonierfestung (Deepblue, 10. Mar 2000, 10:34:43):
~#! rn=Sting rt=952621974 rg=d.gebirge
~#! tid=952503935
Darf ich mir jetzt den Namen Mensch registrieren lassen und alle anderen
verklagen?
DeepBlue->schmarrn();

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



Re^6: Drakonierfestung (Pilgrim, 10. Mar 2000, 21:31:10):
~#! rn=Deepblue rt=952680883 rg=d.gebirge
~#! tid=952503935
> Darf ich mir jetzt den Namen Mensch registrieren lassen und alle anderen
> verklagen?
Sicher ... das geht bestimmt fuer ein paar Monate gut ...
wie mit "WebSpace" ... ist der Begriff MUD eigentlich noch
zu haben?

Pilgrim

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



Re^7: Drakonierfestung (Nevok, 10. Mar 2000, 21:35:39):
~#! rn=Pilgrim rt=952720270 rg=d.gebirge
~#! tid=952503935
Also in Bezug auf was man alles machen kann sag ich nur Amazon....
http://nowebpatents.org/
Die haben sich ganz schlau die ecommerce mit 'Oh, wir setzen einen Cookie in
den Browser, das macht das bestellen einfacher" patentieren lassen.
Oder die neue copyright Aenderung, wonach der Kuenstler nach 35 Jahren NICHT
mehr das copyright an seinem Werk zurueckkriegen kann...ne das is jetzt Work
made for hire und gehoert mit der veroeffentlichung ganz dem
Plattenlabel....da sind ein paar Leute nicht so entzueckt von...

Nevok

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



kleine Aenderung (Wim, 10. Mar 2000, 21:56:15):
Nur damit keiner glaubt, ich haette nicht gewarnt. Personen die in der
Vergangenheit einen bestimmten Bug bei einem meiner Objekte ausgenutzt haben
statt ihn zu melden werden sich nun ueber ein kleines die() an der Stelle
freuen duerfen.

Ihr seit gewarnt...

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



Re: kleine Aenderung (Vector, 10. Mar 2000, 22:00:01):
~#! rn=Wim rt=952721775 rg=d.gebirge
~#! tid=952721775

Wie waere es denn, wenn du das entsprechende Objekt einfach ausbauen wuerdest.
So wies jetzt ist, wuerde ich auch gezappt werden, wenn ich den "bug"
entdecke,
wenn ich am forschen bin? (was Jof verhindern moege:) )

--Vector--

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



Re: Re: kleine Aenderung (Wim, 10. Mar 2000, 22:20:32):
~#! rn=Vector rt=952722001 rg=d.gebirge
~#! tid=952721775
Da habe ich durchaus einige zusaetzliche Abfragen drin. Unschuldig stirbt da
keiner.

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



Re: kleine Aenderung (Vanion, 11. Mar 2000, 00:38:02):
~#! rn=Wim rt=952721775 rg=d.gebirge
~#! tid=952721775
Und da soll noch einer sagen, Magier haetten keinen Humor.

Ich find das lustig ;-)
V*

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



Re: Drakonierfestung (Rardian, 13. Mar 2000, 12:41:23):
~#! rn=Morgoth rt=952503935 rg=d.gebirge
~#! tid=952503935
Hm...
waer ich jetzt Spieler, wuerde ich hellhoerig werden, wenn Du von _dem_ Reboot
sprichst. Wann issn der? Oder hab ich den vielleicht verpasst?
Ich sollte mich wohl doch wieder mehr um meinen Zweitie kuemmern...

Rar, angsterfuellt.

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



Re^3: Drakonierfestung (Taragon, 29. Mar 2000, 19:49:31):
~#! rn=Boing rt=952586646 rg=d.gebirge
~#! tid=952503935
TSR ? Haben die was mit FanPro zu tun ?

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



Drakonierfestung (Boing, 19. Apr 2000, 16:02:33):
Hi,
die Drakonierfestung ist wegen massiven Fehlern voruebergehend abgehaengt,
bis Morgoth die Fehler beseitigt hat.
  Boing

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



Re: Drakonierfestung (Lug, 20. Apr 2000, 02:44:07):
~#! rn=Boing rt=956152953 rg=d.gebirge
~#! tid=956152953

Also wirklich Boing

Das war jetzt auch nur Zweizeiler von Dir.

Tss tss
Lug

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



SSP (Boing, 22. Apr 2000, 16:36:39):
Rummmmmms!

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



Re: SSP (Menace, 22. Apr 2000, 16:37:59):
~#! rn=Boing rt=956414199 rg=d.gebirge
~#! tid=956414199
Wieder mal _sehr_ informativ! ;o)

Menace *nicht schlauer als vorher*

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



Re: Re: SSP (Rardian, 23. Apr 2000, 01:42:07):
~#! rn=Menace rt=956414279 rg=d.gebirge
~#! tid=956414199
Sicher sind ein oder zwei Ebene eingestuerzt... War doch klar, dass die
Glasebene die ganzen Ebenen ueber ihr nicht ewig wird halten koennen, oder?

Rar.

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



Windteufel (Boing, 25. Apr 2000, 19:10:24):
Hi,
ich hatte vergessen dem Windteufel ein paar XP mitzugeben, dadurch gab
er bisher keinen Stups. Ist gefixed.
  Boing

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



Re: Windteufel (Wim, 27. Apr 2000, 10:27:29):
~#! rn=Boing rt=956682624 rg=d.gebirge
~#! tid=956682624
ADDNPC: (...) /windteufel (...) Die, 25. Apr 2000, 19:19:06 (...)

Neun Minuten nach der Meldung bereits tot gewesen.... :)


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



Festung (Morgoth, 30. Apr 2000, 16:58:46):
Hiho, 
die Festung sollte jetzt wieder begehbar sein. Falls doch noch irgendwo durch
die Umstellung Fehler eingeschlichen sind, bitte sofort per Mail an mich. 

M* wuenscht froehliches Sterben ;-))

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



Es geschehen noch Zeichen und wunder! (Baboon,  7. Jun 2000, 13:22:02):
Kaum zu glauben aber wahr: Hinter dem Bach geht es jetzt
endlich weiter. Allerdings (vorerst) nur sieben Raeume weit.
Weitere sieben sind zu 50% fertig. Eigentlich wollte ich die
Raeume schon letzte Woche dranhaengen, aber da ist mir die
Einweihungsfeier fuer meine neue Graphikkarte dazwischen-
gekommen (3 Tage Quake :-)
Wer jetzt nicht weiss welcher Bach gemeint ist kann sich
sicher sein, nicht alles von meinem Gebiet zu kennen.
Da heisst es dann suchen. Sooo schwer ist das doch nicht
zu finden.

BaBOOn

ps: viele gruesse an eine gewisse durstige Person. :-)

pps: Und nehmt euch vor dem neuen Monster in Acht!



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



Re: Es geschehen noch Zeichen und wunder! (Baboon,  7. Jun 2000, 13:30:49):
~#! rn=Baboon rt=960376922 rg=d.gebirge
~#! tid=960376922
Argl. kommando zurueck. wim meint ich muss den Kram erstmal meinem RM zumuten.

Baboon (vergesslich)


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



Re: Re: Es geschehen noch Zeichen und wunder! (Ark,  7. Jun 2000, 21:49:30):
~#! rn=Baboon rt=960377449 rg=d.gebirge
~#! tid=960376922
Danke Baboon. Warum? Ich dachte, ich waere der einzige Depp, der sich mit
voreiligen Jungspunden rumaergern muesste :-)

Aber ernsthaft: warum seid ihr (beliebigen eifrigen Schreiberling) denn immer
so schusselig? Gebt Euch doch mal einen Ruck und lasst das wirklich
durchschauen, bevor ihr wieder unnoetigen Aerger lostretet. Kann euren Sachen
nur Vorteil bringen.
So, das war das Wort zum Sonntag, ich konnte nicht widerstehen ;^)


              *** ARK * the * Magnificent ***


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



Re^3: Es geschehen noch Zeichen und wunder! (Hight,  7. Jun 2000, 22:23:51):
~#! rn=Ark rt=960407370 rg=d.gebirge
~#! tid=960376922
*g* sorry ark abba ich kann auch net wiederstehen ,o)

warum schreibst du das net in eine der diversen magier rubriken ?

hight nicht wiederstehend

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



Re^3: Es geschehen noch Zeichen und wunder! (Tsunami,  7. Jun 2000, 22:27:05):
~#! rn=Ark rt=960407370 rg=d.gebirge
~#! tid=960376922
Ich will mich von ganzem Herzen Ark und Wim anschliessen:
Es gibt klare Spielregeln, was das Anschliessen von neuen Gebieten (und sei
es auch nur ein einziger neuer Raum) angeht. Wir haben in diesem Sinne vor
einiger Zeit auch einen Leitfaden geschrieben, der in Zukunft an alle
Neumagier automatisch verschickt wird (*zwinger zu Tiamak*).

Leider gibt es immer wieder 'Missverstaendnisse' und auch dreiste Magier,
die meinen, sich ueber alle Regeln hinweg setzen zu koennen. 

Nun, nehmt euch in Acht! :) Die Strafpalette reicht von Spielpause bis zum
kompletten Abhaengen des entsprechenden Gebietes. 

Das das mal wieder klar gesagt wurde, auch wenns nicht unbedingt in der
richtigen Rubrik steht.

Tsunami, der schon (zu)viel mitgemacht hat in .polar

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



Re^4: Es geschehen noch Zeichen und wunder! (Amaryllis,  7. Jun 2000, 23:10:48):
~#! rn=Tsunami rt=960409625 rg=d.gebirge
~#! tid=960376922
Hi,

auch wenn das ganze Thema und damit der Thread eigentlich eher in eine
Magier-Rubrik gehoert:

ich kann beide Seiten verstehen. Der (kleine) Magier haengt sich ran und will
es endlich angeschlossen sehen, die Chefs wollen/muessen es natuerlich
abnehmen und haben oft nicht die Zeit. ICH persoenlich kann mich nicht
beschweren, was meine Abnahme angeht - dies ging wirklich sehr zuegig und
nochmals dank an die Verantworlichen, auch wenn es bei mir wohl besagte
"Missverstaendnisse" gab - aber ich kenne auch Faelle, die halt nach einiger
Zeit etwas genervt waren, soviel Arbeit in ihr Projekt gesteckt zu haben, die
dann ewig nicht angeschlossen wurde.
Ich habe dafuer auch kein Patentrezept, aber es ist halt IMHO auch
problematisch, gleich von "Spielpause", "Abhaengen des Gebietes" oder
aehnlichem zu sprechen - obwohl es wohl die einzige Handhabe in solch einem
Fall ist. Auf der anderen Seite foerdert es nicht gerade die Motivation des
kleinen Magiers. Und da gibts in letzter Zeit einige, wie ich festgestellt
habe, die wirklich motiviert sind und was zum Vergroessern/Verschoenern des
MGs beitragen wollen.
Und seien wir doch mal ehrlich. Wenn ich mir "alte" Sachen anschaue und dann
damit vergleiche, was ich als Neumagier an Anforderungen in meinem GS
verwirklichen muss, damit es ueberhaupt beurteilt und angehaengt wird, ist
schon krass teilweise - da kann einem schon mal (so wie mir auch, zugegeben)
ein Fehler unterwegs unterlaufen.

Amaryllis, kann beide Seiten verstehen, ist froh, dass ihr GS mittlerweile
einigermassen korrekt ist, und hat im uebrigen jetzt ausgesabbelt :)

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



Re^4: Es geschehen noch Zeichen und wunder! (Ark,  7. Jun 2000, 23:11:38):
~#! rn=Hight rt=960409431 rg=d.gebirge
~#! tid=960376922
Weil das etwas ist, was durchaus allgemein bekannt sein darf, das ist ja kein
Magiergeheimnis. Ich habe das auch nicht geschrieben, um jemanden persoenlich
runterzumachen, sondern nur um altklug was loszulassen :-)
Es soll ja auch Spieler geben, die einen als "Spielverderber" oder so ansehen,
wenn man sowas ahndet. Soll ja schon vorgekommen sein. Also muss man doch fuer
Verstaendnis fuer uns arme Deppen werben, oder?


              *** ARK * the * Magnificent ***


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



Re^5: Es geschehen noch Zeichen und wunder! (Tsunami,  7. Jun 2000, 23:16:29):
~#! rn=Amaryllis rt=960412248 rg=d.gebirge
~#! tid=960376922
Hi Ama*,

je nach Situation kann eine sofortige Spielpause angebracht sein.
Was wir hier machen, kommt dem MG als Ganzem zugute. Wer das nicht einsehen
will, ist tatsaechlich fehl am Platz.

Fehler passieren, aber es gibt eine Grenze, was noch als 'Missverstaendniss'
gelten kann.

Des weiteren aendert sich das MG laufend (was es letztendlich auch so 
spannend und interessant macht) und somit aendern sich auch die Anforderungen.

Tsunami.

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



Re^5: Es geschehen noch Zeichen und wunder! (Ark,  7. Jun 2000, 23:18:12):
~#! rn=Amaryllis rt=960412248 rg=d.gebirge
~#! tid=960376922
Also da will ich aber widersprechen. Eigenmaechtiges Anschliessen wird nicht
durch mangelnde Zeit derjenigen rechtfertigt, die formal dazu nicken muessen.
Ausserdem meine ich, dass ein Gebiet besser ankommt, je mehr Leute
drueberschauen. Und ein bisschen Geduld muss man dazu schon mitbringen, oder?
Ich setze mich mehr fuer ein gruendlich getestetes Gebiet/Quest ein, dass nach
3 Monaten angeschlossen wird, als ein
"Heichbinfertigjetztkoennenwiranschliessenwannhastduzeitmorgenwiesonichtdannma
chichselbst" Gebiet.
Wobei ich gerne zugebe, dass ich meinem Pappy auf dem Schoss sass, bis er mein
erstes Werk anschloss (ca. 4 Monate nach Fertigstellung).


              *** ARK * the * Magnificent ***


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



Re^6: Es geschehen noch Zeichen und wunder! (Amaryllis,  7. Jun 2000, 23:24:31):
~#! rn=Ark rt=960412692 rg=d.gebirge
~#! tid=960376922
hm so war das nicht gemeint, scheint falsch ruebergekommen zu sein.

Ich hab selbet monatelang an meinem GS gebastelt, Objekte ausgearbeitet und
mit Details verschoent, die wohl kaum einer untersuchen wird *lall*. Und dass
sowas angeschaut werden muss ,weiss ich auch, aber um zum Anfangspunkt
zurueckzukommen: Da kommt ein Magier wie Baboon, der ewig lang nicht mehr da
war, wieder ins Mud und programmiert was, und haengt es auch gleich an - kann
man ihn deshalb verurteilen? Gut, er haette sich erst mal umhoeren koennen was
in seiner Abwesenheit passiert ist, aber auf der anderen Seite passiert im MG
so viel und aendert sich auch so viel, dass man wirklich recht bloed dasteht,
wenn man (z.b. so wie ich 4 Monate) Spielpause hatte.

Ama, will ja nur fuer etwas mehr Fingerspitzengefuehl in dieser Angelegenheit
werben.

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



Re^7: Es geschehen noch Zeichen und wunder! (Tsunami,  7. Jun 2000, 23:26:53):
~#! rn=Amaryllis rt=960413071 rg=d.gebirge
~#! tid=960376922
Baboon ist vollwertiger Regionsmitarbeiter und sollte genaustens wissen,
was das Anschliessen von neuen Raeumen angeht. Die Regel, dass der RM sich
das erst mal anschaut, existiert schon eine Weile laenger. Da gibts keine
Diskussion.

Tsunami, den Kopf schuettelnd

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



Re^8: Es geschehen noch Zeichen und wunder! (Ark,  7. Jun 2000, 23:29:27):
~#! rn=Tsunami rt=960413213 rg=d.gebirge
~#! tid=960376922
Macht den Armen net fertig :-)
Ich wollte ja jetzt keinen Thread entfachen, aber das wird doch einer ...
oder?


              *** ARK * the * Magnificent ***


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



Re^9: Es geschehen noch Zeichen und wunder! (Tsunami,  7. Jun 2000, 23:36:11):
~#! rn=Ark rt=960413367 rg=d.gebirge
~#! tid=960376922
Diese Diskussion ist ein gutes Beispiel, was die differenzierte 'Auslegung'
einer klaren Regel angeht: 'ach ich war lange nicht mehr da, ich habs
vergessen', 'ach, das war doch nur ein winzig kleines Missverstaendniss'...

LEUTE!!!! (damit mein ich die Magier) Als Regionsmitarbeiter hat man Rechte,
aber auch Pflichten. Die muessen befolgt werden. In den entsprechenden
Verzeichnissen der einzelnen Gebiete liegen Anforderungstexte, es gibt eine
sehr gute Hilfeseite (hilfe magier, hilfe regionsmagier), die upgedated wird,
damit eben genau neue Spielregeln kommuniziert werden koennen.

Das Argument 'Wusst ich nicht' zaehlt hier einfach nicht.

Tsunami, leicht genervt

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



Re^10: Es geschehen noch Zeichen und wunder! (Amaryllis,  7. Jun 2000, 23:38:18):
~#! rn=Tsunami rt=960413771 rg=d.gebirge
~#! tid=960376922
ich bin ja schon ruhig.

Ama, hat ihre (unmassgebliche) Meinung eingeworfen und haelt nu ihre
Feenfresse.

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



Re^10: Es geschehen noch Zeichen und wunder! (Hood,  7. Jun 2000, 23:42:52):
~#! rn=Tsunami rt=960413771 rg=d.gebirge
~#! tid=960376922
aeh, hallo...welche rechte bitte schoen hat ein magier, egal ob R oder E
davorsteht?! ;)

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



Re^10: Es geschehen noch Zeichen und wunder! (Tsunami,  7. Jun 2000, 23:43:00):
~#! rn=Tsunami rt=960413771 rg=d.gebirge
~#! tid=960376922
Ich schreib das noch, damit die Mudder verstehen, warum ein Gebiet abgenommen
werden muss:

Aufgaben des RM (steht in der manpage):
* Generell gilt: ERST testen, dann anschliessen.
* Logik beachten!
* Syntax von Befehlen beachten, kann der Spieler draufkommen?
* Objekte pruefen, genaueres siehe unten beim Punkt Balance.
 
Diese Punkte sprechen wohl fuer sich. Des Weiteren muessen Forscherpunkte
eingetragen werden, die NPCs bekommen die richtige Anzahl Killstupse, die
Balance muss Waffen/Ruestungen/Objekte genehmigen. 

Und erst wenn diese Schleifen durchlaufen wurden, wird das Gebiet
angeschlossen.

Das hoert sich nun nach viel Buerokratie an, ist es auch, aber nur so kann
auf Dauer eine ausbalancierte Spielwelt garantiert werden.

Ich denke, das sollte einsichtig genug sein.

Und ich denke, ihr koennt euch vorstellen, was auf die Dauer mit unserem
MorgenGrauen passiert, wenn eingenmaechtig (->illegal) Sachen angeschlossen
werden.

Tsunami

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



Re^11: Es geschehen noch Zeichen und wunder! (Lug,  7. Jun 2000, 23:48:11):
~#! rn=Hood rt=960414172 rg=d.gebirge
~#! tid=960376922

Definitiv zuviele, Hood.

Kurz und schlecht
Lug

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



Re^11: Es geschehen noch Zeichen und wunder! (Sorcerer,  8. Jun 2000, 00:02:05):
~#! rn=Hood rt=960414172 rg=d.gebirge
~#! tid=960376922
Ich denke, die Moeglichkeit, die Spielwelt mitzuerweitern, ist ein sehr
schoenes Recht (oder vielleicht besser: Privileg) und offensichtlich gibt es
ja viele Leute, die dieses Recht gerne nutzen. Gezwungen wird schliesslich
niemand, Magier zu werden und noch viel weniger, etwas zu proggen, wenn er
nicht will...

Sorcerer 

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



Re^12: Es geschehen noch Zeichen und wunder! (Hood,  8. Jun 2000, 00:03:51):
~#! rn=Sorcerer rt=960415325 rg=d.gebirge
~#! tid=960376922
hey, das war ja schleimiger als das ausuferndste applausheischende gesuelze
in einer maessigen nachmittagstalkshow...fein gemacht ;)
sonntag ist heut aber noch nich, wenn es das wort zu selbigem sein sollte.

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



Re^13: Es geschehen noch Zeichen und wunder! (Tsunami,  8. Jun 2000, 00:10:43):
~#! rn=Hood rt=960415431 rg=d.gebirge
~#! tid=960376922
OK, ich kann es auch anders formulieren:

wer sich nicht an die Regeln haelt, muss die Konsequenzen tragen.

Tsunami

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



Re^14: Es geschehen noch Zeichen und wunder! (Zarniya,  8. Jun 2000, 11:45:22):
~#! rn=Tsunami rt=960415843 rg=d.gebirge
~#! tid=960376922
hmmm ich denke, dass man bei dieser Regel wirklich ein wenig differnezieren
muss. Sicher sollte ein neues Gebiet gruendlich getestet werden, wenn es was
groesseres ist. Was ist aber, wenn cih einen schon angeschlossenen Teil
einfach nur um ein paar Dinge erweitern will? Ich glaub nicht, dass das dann
gross getestet werden muss, sowas ist auch nie wirklich getestet worden und
wer das gegenteil behauptet, der luegt. ich denke, dass es im Ermessen des
Proggers liegt, ob er seine Sachen der Balance vorlegt. Damit meine ich nicht,
dass man einfach supersachen anschliessen sollte, aber als ich damals mein
Anfaengergebiet geproggt habe, und da waren nur simple Objekte drin, dann muss
man das nciht melden... 

Was ich damit sagen will ist, dass nicht alles generell testwuerdig ist und
deswegen diese Regel des Testens individuell behandelt werden muss. 

Marc

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



Re^14: Es geschehen noch Zeichen und wunder! (Gloin,  8. Jun 2000, 11:47:46):
~#! rn=Tsunami rt=960415843 rg=d.gebirge
~#! tid=960376922
Tsunami, Du hoerst Dich an wie ein Beamter. Gibt es einen Schutzparagraphen
gegen Dich? Soviel ich weiss, sind die Regeln fuer den Anschluss von
Gegenden, gerade weil Magierwerdung/-schaffen auf Freiwilligkeit be-
ruhen auch mal etwas schwammiger gewesen, je nach Aktivitaet der oberen
Raenge der Hierarchie. Dementsprechend locker kann man das auch ein paar
mal sehen, nicht? Als wenn Baboon einen Narya II angehaengt haette ...

Gloin aka Gloinson aka Leonidas@RB

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



Re^15: Es geschehen noch Zeichen und wunder! (Teddy,  8. Jun 2000, 17:38:19):
~#! rn=Zarniya rt=960457522 rg=d.gebirge
~#! tid=960376922
Bezueglich Vorlage bei der Balance gibt's klare Richtlinien, die jeder Magier
mittels 'man balance' nachlesen koennen duerfte. (Bin kein Magier, kann's also
nicht beschwoeren, bin aber ziemlich sicher) ;)

Da gibt es kein Ermessen.
Sollte jemand der Meinung sein, dass etwas da nciht drinsteht oder es
uebersehen haben, kriegt er allerdings voellig unbuerokratisch ne kurze
Message, dass er dieses Teil nicht genehmigen muss.

Teddy

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



Re^15: Es geschehen noch Zeichen und wunder! (Ark,  8. Jun 2000, 21:23:56):
~#! rn=Zarniya rt=960457522 rg=d.gebirge
~#! tid=960376922
Einspruch Euer Ehren, auch hier gibt es genuegend Beispiele fuer
unrechtschreibverseuchten Gebieten, die recht fix angeschlossen wurden. Mag
sein, dass einige der Meinung sind, dass ich mich da an Kleinigkeiten
aufgeile, aber fuer ein gelungenes Gebiet bin ich als RM mitverantwortlich,
und dann will ich zumindest, dass es auch einen vernuenftigen Eindruck macht.
Achtung Polemik!
Wie wuerde Dir so ein "fixmalangeschlossener Problemlosraum" gefallen?

Du stehsd in einem grosen Loch. Um Dich herum
ist nur schwaerze. Hoffentlich kommst du hier bald heraus
Es gibt keine sichtbaren Ausgaenge.

<unt loch>
Sowas siehst Du hier nicht!

<unt schwaerze>
Die vollkommeneSchwaerze um Dich herum ist recht dunkel man koennte sogar
sagen dass sie undurchdringlich ist.

<unt boden>
Sowas siehst Du hier nicht!

<kotze>
Wie bitte?

... etc. etc.
Ich beharre also auf eine Abnahme keinesfalls (nur) wegen problematischer
NPCs, Objekte oder sonstigen allgemeinem Klamauk, der immer Geschrei in der
MPA hinter sich herzieht, sondern gerade wegen Nullachtfuffzehn Dingern, die
leider bei einigen immer etwas in den Hintergrund treten, z.B. Optik,
Fehlerfreiheit, Beschreibungen, etc.
Ich bin da auch nicht immer fehlerfrei, deshalb schrei ich auch immer nach
Testern. Wir wollen doch Qualitaet, nicht noch mehr Gebiete, die quasi nie
geladene Raeume enthalten, weil kein Schwein hingeht. Oder besteht die
Meinung, dass sich aufgrund der Regeln die Gebiete neueren Datums nicht
qualitaetsmaessig gegenueber aelteren abheben (kein Vorwurf an die Schreiber
der aelteren Gebiete! :-) ) ?


              *** ARK * the * Magnificent ***


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



Re: Im Gebirge ruehrt sich was... (Lyra, 15. Jun 2000, 14:28:16):
~#! rn=Zephyr rt=961071881 rg=d.gebirge
~#! tid=961071881
Was?

Lyra nun wirklich einzeilig

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



Es ruehrt sich was ... (Zephyr, 15. Jun 2000, 14:28:32):
i.A. C4 (auf Wunsch noch kuerzer)

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



Re: Re: Im Gebirge ruehrt sich was... (Karis, 15. Jun 2000, 14:29:08):
~#! rn=Lyra rt=961072096 rg=d.gebirge
~#! tid=961071881
Takal'Mor Lyra, nachucken gehen und Bericht verfassen.
Karis.

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



Re^3: Im Gebirge ruehrt sich was... (Lyra, 15. Jun 2000, 14:32:46):
~#! rn=Karis rt=961072148 rg=d.gebirge
~#! tid=961071881
*gruebel* An welchen Gra'Takal kann ich die Aufgabe deligieren?

Lyra prueft ihre Liste

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



Re^4: Im Gebirge ruehrt sich was... (Nevok, 16. Jun 2000, 00:44:50):
~#! rn=Lyra rt=961072366 rg=d.gebirge
~#! tid=961071881
deligieren an gar keinen

Nevok prueft die nicht vorhandene Rechtschreibfunktion.

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



*RUMMS* (Paracelsus, 21. Aug 2000, 09:56:55):
Du rufts: Baum faellt!
Du hoerst einen erschreckten Aufschrei.
Der Baum faellt mit einem lauten *RUMMS* zu Boden.
Ein Dunkelzwerg taucht vor Dir auf.
Der Dunkelzwerg sagt: Pass' doch auf!
Und schon ist er wieder verschwunden.

Einige Minuten spaeter ...

Mak'limur teilt Dir mit: Ah, wo ich Dich gerade antreffe ... Du hattest mir
Mak'limur teilt Dir mit: doch mal was versprochen ... wegen dem Problem,
Mak'limur teilt Dir mit: das wir haben ... Das war vor zwei Jahren!
Du teilst Mak'limur mit: Oh je, fast vergessen. Ich sorge sofort dafuer,
Du teilst Mak'limur mit: dass man euch hilft.
Mak'limur teilt Dir mit: Oh, schoen. Danke!

Baumfaeller Paracelsus.

P.S.: Mein Dank geht an dieser Stelle an Zook, Silvana, Boing und Ketos.

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



Umbauarbeiten (Silvana, 21. Sep 2000, 18:27:13):
Salve

Wegen Umbauarbeiten haben die normalerweise Stusenden NPCs des Cronoertals
derzeit keine Erfahrung und stupsen daher nicht. Das wird sich allerdings
hoffentlich bald aendern.

  Silvana

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



Cronoertal (Silvana, 25. Sep 2000, 11:45:17):
Salve

Die Umbauarbeiten sind weitgehend abgeschlossen. Es sollte bis auf die
Seherhaeuser alles funktionieren.

  Silvana

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



Re: Cronoertal (Wurzel, 25. Sep 2000, 18:38:05):
~#! rn=Silvana rt=969875117 rg=d.gebirge
~#! tid=969875117
die seherhaeuser ziehen demnaechst um. ich hoffe, noch in dieser woche (zur
not gibt es ja noch icafes, wenn nix anderes geht).

wurzel

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



Re: Re: Cronoertal (Wurzel,  1. Okt 2000, 11:28:56):
~#! rn=Wurzel rt=969899885 rg=d.gebirge
~#! tid=969875117
so, die seherhaeuser sind umgezogen. sollte eigentlich wieder alles normal
funktionieren. wenn es probleme gibt, per mail bescheid sagen.

wurzel geht jetzt wieder umzugskisten auspacken

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



Re^3: Cronoertal (Catweazle,  1. Okt 2000, 23:24:45):
~#! rn=Wurzel rt=970392536 rg=d.gebirge
~#! tid=969875117
Ah. Umgezogen. Verstehe.
NUn, das erklaert wahrscheinlich, warum ich neulich Bierchens 
Seherhaus in der Abenteurergilde gefunden habe :)
YTC

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



Re^4: Cronoertal (Silvana,  2. Okt 2000, 01:45:31):
~#! rn=Catweazle rt=970435485 rg=d.gebirge
~#! tid=969875117
Unwahrscheinlich. Bierchen hatte nie nen Haus im Cronoertal.

Silvana

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



Re^5: Cronoertal (Lug,  2. Okt 2000, 01:46:21):
~#! rn=Silvana rt=970443931 rg=d.gebirge
~#! tid=969875117

Daran war wohl eher der verdammte Suff Schuld...

Lug

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



Dem Thor sein Hammer ... (Paracelsus, 19. Okt 2000, 11:15:00):
... ist punktetechnisch ein wenig reevaluiert worden.

Paracelsus.

P.S: An dieser Stelle einfach mal ein Dank an alle die, die sich aufgerafft
     haben, die Quest-Mail zu beantworten :)

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



Duesterdings (Feuerwehr,  8. Nov 2000, 19:51:39):
Ahoi!

Es gab Beschwerden, weshalb ein nicht naeher genannter Engels-NPC im
Duesterwald nun unangreifbar ist. Dass ich unfair oder gemein sei, lass ich
mir als Chaot gern nachsagen, aber nicht als Programmierer des Duesterwalds.

Viele Gruesse, 112.

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



Entdeckung gemacht! (Bambi, 10. Nov 2000, 00:16:40):
Es hat wieder
R U M M S ! ! !
gemacht, dieses mal im Nordosten der Hochebene.


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



Drakonierfestung (Nonne, 17. Jan 2001, 11:54:52):
Wagemutige Abenteurer haben sich in die Tiefen der Drakonierfestung gewagt und
haben dabei einen bisher unbekannten Teil entdeckt. Nur wenige kamen zurueck,
und was sie zu berichten hatten, kuendete von Tod und Verderben. Takhisis, die
Drachengoettin ist in diese Welt gedrungen und trachtet nach der Herrschaft
ueber das MorgenGrauen.

Viel Spass
Nonne & Morgoth

P.S: Geht nicht alleine und nehmt Warnungen ernst (c;
P.P.S: Takhisis ist zum groessten Teil von Morgoth geproggt und von Nonne
entschaerft *g*

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



Re: Drakonierfestung (Gor, 17. Jan 2001, 13:22:53):
~#! rn=Nonne rt=979728892 rg=d.gebirge
~#! tid=979728892
Das wurde aber auch Zeit Takhisis ist ja bestimmt schon seit 2 Jahren fertig
:)

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



Re: Re: Drakonierfestung (Morgoth, 17. Jan 2001, 13:23:52):
~#! rn=Gor rt=979734173 rg=d.gebirge
~#! tid=979728892
Jajaja, schon laenger. Die gabs schon, als Silvana NOCH Zaubermeisterin war.
Nur die Details fuer die Raeume *grins verlegen* Du weisst ja, das dauert ;-)

M*

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



Re^3: Drakonierfestung (Montanus, 17. Jan 2001, 13:24:33):
~#! rn=Morgoth rt=979734232 rg=d.gebirge
~#! tid=979728892
Wenn Takhisis nun fertig ist, heisst das, dass auch bald Taramis fertig ist?
Das liegt doch auch im Gebirge, oder? ;-)

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



Re^4: Drakonierfestung (Gorog, 17. Jan 2001, 15:14:51):
~#! rn=Montanus rt=979734273 rg=d.gebirge
~#! tid=979728892
Grrr haettet ihr das nicht vor ner Woche machen koennen... Nun hab ich schon
mit BG2 angefangen.
Naja ich hoffe man laesst mir noch etwas stehn (;

MfGorog

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



Drakonier (Morgoth,  5. Feb 2001, 11:20:41):
Hi,

aus "Wunsch" von Tiamak sind die laufenden Drakonier jetzt umgestellt. Es
sollten jetzt auch die Anhaeufungen von Drakos am Tor behoben sein, obwohl ich
immer noch nicht weiss woher die kamen...

Bei Problemen also nicht wundern...das sind alles features (bis sie ausgebaut
sind) ;-))

M*

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



Drakonierfestung (Morgoth,  2. Mar 2001, 10:39:54):
Hiho, hiho, hiho,

wie der gute alte Zwerg normalerweise sagen/singen wuerde, wenn er nicht
kaesebleich aus der Drakonierfestung gefluechtet waere. Irgendwie war er
wohl mal wieder auf der Suche nach Gold (was auch sonst) und hat dabei
eine kleine Hoehle entdeckt. Dummerweise fand er dort kein Gold, sondern
etwas ganz anderes. Leider war er so verstoert, dass er nur 'gesehen 
sehen gesehen' stammelte.
Was mag er wohl gesehen haben???

Findet es heraus, wenn ihr Euch traut.

Good luck and have a nice day @Lars

Morgoth

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



Re: Drakonierfestung (Trauma,  3. Mar 2001, 18:21:24):
~#! rn=Morgoth rt=983525994 rg=d.gebirge
~#! tid=983525994
In der Tat... sehr lustig da.

Es ist dunkel, der Rueckweg ist nicht offensichtlich und irgendein Waechter
schlaegte mit 4 Attacken die Runde auf einem rum, obwohl er nich im gleichen
Raum steht oder sonst irgendeinen Hinweis gibt warum das passiert.


Diverse Regionsmagier wuerden Dir was husten, Morgoth.

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



Re: Re: Drakonierfestung (Obi,  4. Mar 2001, 17:17:11):
~#! rn=Trauma rt=983640084 rg=d.gebirge
~#! tid=983525994
Naja, zu dem nicht offensichtlichen Rueckweg kann ich nichts sagen, aber bei
den Angriffen des nicht-Anwesenden kannst Du absolut sicher sein, dass das
genau so sein soll.

Obi - hat noch etwas Zeit bevor er das Gebiet erforschen wird.

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



Re: Re: Drakonierfestung (Morgoth,  5. Mar 2001, 09:14:01):
~#! rn=Trauma rt=983640084 rg=d.gebirge
~#! tid=983525994
Ich glaube Boing ist mit einer der strengsten RMs. Sofern kannst Du den
Hustensaft wieder einpacken. Dunkel isses nur, wenn Du kein richtiges Licht
dabei hast und den Rueckweg hab ich entschaerft (erstmal).

M*

P.S.: Jammerlappen, Zauberer

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



Re^3: Drakonierfestung (Trauma,  5. Mar 2001, 10:58:25):
~#! rn=Morgoth rt=983780041 rg=d.gebirge
~#! tid=983525994
Ok ... aber fuer Leute die Diablo 2 nicht kennen oder von irgendeinem
Stammtisch von Deiner Idee wissen, ist es voellig undirchsichtig.
Es waere schoen, wenn zu dieser Aura wenigstens steht, was sie fuer Schaden
macht und von wo sie kommt.


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



Re^4: Drakonierfestung (Morgoth,  8. Mar 2001, 21:47:39):
~#! rn=Trauma rt=983786305 rg=d.gebirge
~#! tid=983525994
Jajajajajaja,

Quengeltrine, man koennte meinen Du waerst son Zauberweichei.
Die Meldungen sind nun etwas aussagekraeftiger.

M*

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



Bugfix (Morgoth, 19. Apr 2001, 11:42:53):
Thanx to Gorog: Ein Bug in der Leiche der Borz zerstoerte die Objekte, auch
wenn sie eigentlich im Raum liegen sollten. Das funzt nun.

M*

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



Festung usw. (Morgoth, 24. Apr 2001, 13:24:01):
Es gibt eine kleine Aenderung auf Wunsch eines Einzelnen, bevor es zum Befehl
vieler kommt.
Merken werden es die Menschen-Kaempfer ;-))

M*

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



Daemonen in der SSP (Boing, 28. Mai 2001, 10:13:20):
Die Daemonen der SSP sollten jetzt auch fuer Kleriker als solche zu
erkennen sein. Danke fuer den Bug-Report!
  Boing

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



Es war da mal Adler ... (Tilly,  4. Jul 2001, 22:56:05):
... der nicht so wollte wie er eigentlich sollte.

Doch ich konnte ihn dazu ueberreden, dieses bockige Ver-
halten aufzugeben und demzufolge funktioniert auch ein
gewisser Zaubertrank wieder.

 - Tilly -

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



Re: Es war da mal Adler ... (Roland,  8. Jul 2001, 02:56:10):
~#! rn=Tilly rt=994280165 rg=d.gebirge
~#! tid=994280165
Also bei mir ging der adler zt ....auch vorher schon

mfg ro**

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



magietext (Bambi, 23. Jul 2001, 16:58:17):
Oben genannte Faehigkeit wurde dank einiger Hinweise etwas erweitert. Wem bei
der Benutzung seltsame Sachen (bezueglich der Nutzung) auffallen, der soll mir
dies bitte mit einer Beschreibung des "Bugs" mailen.
An dieser Stelle noch vielen Dank an alle, die bisher (konstruktive) Kritik an
den angeschlossenen Sachen geuebt haben.
MfG, Bambi.

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



Unique Steine (Boing, 14. Aug 2001, 18:04:37):
Hallo,
nachdem ich in naeherer Zukunft wahrscheinlich nicht dazu komme, den
Steinen das schmerzlich vermisste Rotationsprinzip aufzudruecken, habe
ich mich entschlossen, sie temporaer aus dem Spiel zu nehmen. Haette ich
eigentlich wesentlich frueher tun sollen. In der Theorie (d.h. in meinem
Kopf) ist das Konzept dafuer eigentlich fertig, es erfordert allerdings
einen nicht unerheblichen Programmieraufwand. Die Steine werden irgendwann
wieder dran kommen, schliesslich sind ja auch meine Quest-Plaene dafuer
noch nicht zu den Akten gelegt. :)
  Boing

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



Re: Unique Steine (Zook, 14. Aug 2001, 18:06:00):
~#! rn=Boing rt=997805077 rg=d.gebirge
~#! tid=997805077
Ja, auf die Quest freue ich mich.... :-)

Zook zwinkert Boing zu.

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



Re: Re: Unique Steine (Padreic, 14. Aug 2001, 18:30:35):
~#! rn=Zook rt=997805160 rg=d.gebirge
~#! tid=997805077
Kommt die vor, oder _nach_ Taramis?

Pad*

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



Schleimdrache (Boing, 28. Aug 2001, 11:57:31):
Aufgrund von Beschwerden gab es eine kleine Aenderung am Schleimdrachen.
Ich denke sie betrifft nur die, die sie betreffen soll.
  Boing

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



Rumms (Bambi,  7. Sep 2001, 14:21:33):
Hallo beisammen.

Als ich mich heute (mal wieder) in Amalgrim im Waeldchen verlaufen habe, habe
ich ein kleines Moppel getroffen, das anscheinend sein Nachtlager dort
aufgeschlagen hat. Das Moppel berichtete mir, dass es in der Nacht von ein
paar Trollen ueberfallen worden war, die seinen Begleiter, einen Waldlaeufer
namens Xeno entfuehrt haben.
Das Moppel braucht dringend Hilfe und so bitte ich darum, dass ein paar starke
Abenteurer (oder Mitglieder anderer Gilden) das Moppel besuchen und Xeno
befreien.

Bambi, im Auftrag des Moppels.

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



Re: Rumms (Gor,  7. Sep 2001, 23:49:53):
~#! rn=Bambi rt=999865293 rg=d.gebirge
~#! tid=999865293
Kann man das Moppel auch moppeln? Sonst isset ja kein Moppel oder?! }:-)

-> schmarrn

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



Re: Re: Rumms (Mupfel,  7. Sep 2001, 23:55:02):
~#! rn=Gor rt=999899393 rg=d.gebirge
~#! tid=999865293
Doppelt gemoppelt? ;)

-mupfel-

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



Re: Rumms (Bambi,  9. Sep 2001, 12:24:05):
~#! rn=Bambi rt=999865293 rg=d.gebirge
~#! tid=999865293
Auf Basis des bisherigen Feedbacks wurde die Trollhoehle ueberarbeitet. Dabei
sind ein, zwei Bugs (die nicht zu Toden fuehrten) behoben worden. Einige
Anregungen bezueglich "Abwertungen" wurden beruecksichtigt und umgesetzt,
andere (nach Testen mit eigenen Spielercharakteren ohne Testspielerboni)
nicht.

Vielen Dank fuer die ueberwiegend konstruktive Kritik (trotz des zeitweise
ueber 60%-Todesfaelle-Anteils).

MfG, Bambi.

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



Re: Re: Rumms (Rardian, 11. Sep 2001, 18:43:57):
~#! rn=Gor rt=999899393 rg=d.gebirge
~#! tid=999865293
>Kann man das Moppel auch moppeln? Sonst isset ja kein Moppel oder?! }:-)
??  Du meinst sicher moppern, oder?

Rar.

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



Auch hier gibts was zu berichten... (Morgoth, 14. Sep 2001, 12:58:39):
hab grad mail von der balance bekommen. es gibt ein paar kleine aenderungen am
TRS.

M*

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



Idefix-Miniquest (Bambi, 30. Sep 2001, 16:29:08):
Die Idefix-MQ ist nun auch eine Zauberer-GQ.
Falls es unerwartete (negative) Nebenefekte, wie Bugs oder destructete
Autoloader ... -das war ein Witz- ... geben sollte, bitte Mail an mich.
MfG, Bambi.

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



Re: Idefix-Miniquest (Patryn, 30. Sep 2001, 17:24:54):
~#! rn=Bambi rt=1001860148 rg=d.gebirge
~#! tid=1001860148
bitte erst mal nich machen, ist nen bug drin

-- 
patryn

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



Re: Re: Idefix-Miniquest (Boing,  1. Okt 2001, 09:08:32):
~#! rn=Patryn rt=1001863494 rg=d.gebirge
~#! tid=1001860148
Werden Autoloader destructed?
  Boing

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



Re^3: Idefix-Miniquest (Bambi,  1. Okt 2001, 18:53:22):
~#! rn=Boing rt=1001920112 rg=d.gebirge
~#! tid=1001860148
Nein, noch nicht. Der von Patryn angesprochene Bug ist dank zahlreicher
Bug-Reports behoben.
D.h. die MQ ist nun (hoffentlich wieder) spielbar.

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



Drachenschuppen (Morgoth, 18. Okt 2001, 12:32:35):
Hi,

wenn aktivierte Drachenschuppen noch laenger in irgendwelchen
Kleiderschraenken rumgammeln werd ich da bald mal einen Riegel vorschieben.

M*

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



Re: Drachenschuppen (Mandragon, 18. Okt 2001, 16:09:38):
~#! rn=Morgoth rt=1003401155 rg=d.gebirge
~#! tid=1003401155
Die Antwort ist ganz einfach ...

wenn einer nen roten Drachen haut, und ne Drachenschuppe irgendwo rumliegt
(d.h. environment!=spieler -> schwupp ... der drache hat eine :o)

ma*

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



Re: Drachenschuppen (Gor, 18. Okt 2001, 19:21:07):
~#! rn=Morgoth rt=1003401155 rg=d.gebirge
~#! tid=1003401155
Wir zittern, oh grosser Morgoth, wir zittern.

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



Re: Re: Drachenschuppen (Morgoth, 18. Okt 2001, 22:22:15):
~#! rn=Gor rt=1003425667 rg=d.gebirge
~#! tid=1003401155
Wieso meldest Du dich als magier darauf??

M*

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



Re^3: Drachenschuppen (Gnome, 19. Okt 2001, 09:33:51):
~#! rn=Morgoth rt=1003436535 rg=d.gebirge
~#! tid=1003401155
wieso nervt dich das, wenn drachenschuppen irgendwo umherfliegen?

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



Re^4: Drachenschuppen (Apollonia, 19. Okt 2001, 09:42:14):
~#! rn=Gnome rt=1003476831 rg=d.gebirge
~#! tid=1003401155
Sind die vielleicht anzahlmaessig begrenzt?? Dann waer's natuerlich Bockmist,
wenn die irgendwo ungenutzt rumliegen, oder?

Apo*
auf Morgoths Antwort wartend

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



Re^5: Drachenschuppen (Morgoth, 19. Okt 2001, 09:56:01):
~#! rn=Apollonia rt=1003477334 rg=d.gebirge
~#! tid=1003401155
Jups, 10 Stueck gibts und wenn 3 davon in Schrank/Paket/Truhe liegen find ich
das Mist.

M*

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



Re^3: Drachenschuppen (Gor, 19. Okt 2001, 13:17:52):
~#! rn=Morgoth rt=1003436535 rg=d.gebirge
~#! tid=1003401155
Weil ich mich als Spieler angesprochen gefuehlt habe. ;)
..

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



Re^6: Drachenschuppen (Darkwing, 19. Okt 2001, 15:33:24):
~#! rn=Morgoth rt=1003478161 rg=d.gebirge
~#! tid=1003401155
Warum soll das Mist sein ?
Es ist bei den meisten uniques so, dass sich das mehrere Leute in irgendeiner
Art und weise Teilen. Was dabei herauskommt ist dann eine Truhe, wo diejenigen
Zugriff haben - ist doch nix dabei.

Darkwing

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



Re^7: Drachenschuppen (Elendil, 19. Okt 2001, 22:58:11):
~#! rn=Darkwing rt=1003498404 rg=d.gebirge
~#! tid=1003401155
Hi,

sehe ich genau wie Darkwing, Gegenstaende, die in einer Truhe
gelagert werden, werden teilweise haeufiger genutzt als in
einem Char gebunkert und vergessen :)

Kann die Schuppe sich nicht merken wielange sie nicht genutzt wurde?

Gruss Ele

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



Re^8: Drachenschuppen (Mupfel, 19. Okt 2001, 23:11:03):
~#! rn=Elendil rt=1003525091 rg=d.gebirge
~#! tid=1003401155
Na klar, der Zeitpunkt der letzten Benutzung eines jeden Items wird im
selbigen gespeichert. Nur ist da keine Eieruhr drinne die irgendwann
"zerfallen!" schreit. Erst bei der naechsten Bewegung (Spieler nimmt Schuppe
aus Schrank) kann das Dingen drauf reagieren (Hmmm oder vielleicht schon bei
"Spieler schaut Schuppe in Schrank an" -> Alle 10 Minuten siehst Du nach der
Schuppe und stellst fest dass sie schon wieder etwas mehr vergammelt ist...
;).

-mupfel- (nicht ganz Ernst ;)

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



Re^9: Drachenschuppen (Swift, 20. Okt 2001, 00:27:05):
~#! rn=Mupfel rt=1003525863 rg=d.gebirge
~#! tid=1003401155
man koennte das auch machen wie beim vs. so man moechte.
ist natuerlich etwas aufwendiger.

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



Re^10: Drachenschuppen (Mandragon, 20. Okt 2001, 00:28:53):
~#! rn=Swift rt=1003530425 rg=d.gebirge
~#! tid=1003401155
Inwieweit ist CutnPaste aufwendig?

Ma* gruebelt

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



Re^9: Drachenschuppen (Gor, 20. Okt 2001, 23:33:39):
~#! rn=Mupfel rt=1003525863 rg=d.gebirge
~#! tid=1003401155
Soviel ich weiss, hat auch die Drachenschuppe nen Reset oder?


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



Re^10: Drachenschuppen (Silvana, 20. Okt 2001, 23:35:59):
~#! rn=Gor rt=1003613619 rg=d.gebirge
~#! tid=1003401155
Viel zu offensichtlich, Gor. Viel zu offensichtlich. ;-)

  Silvana

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



rtoete (Bambi, 26. Nov 2001, 11:24:49):
Aufgrund eines (mehr oder weniger) anonymen Hinweises wurde das rtoete im
Gebirge ausgebaut.

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



Re: rtoete (Vincent, 26. Nov 2001, 13:46:02):
~#! rn=Bambi rt=1006770289 rg=d.gebirge
~#! tid=1006770289
Gaaaaaaanz toll, Bambi! Und wieder wurde ein ca. 5 - 7 Jahre altes
Feature, an das sich alle gewoehnt hatten und das bestimmt jeder
zweite Seher benutzt hat, aus dem MG entfernt. War das eigentlich mit
Cifer abgeklaert?

Gruss
Vincent

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



Re: Re: rtoete (Gloinson, 26. Nov 2001, 14:02:11):
~#! rn=Vincent rt=1006778762 rg=d.gebirge
~#! tid=1006770289
Er hat auf dem Magierkanal gefrat und niemand "Vorgesetztes" hat ihm dort in
der ausfuehrung, das 'r' sei etwas zu verlockend zum Missbrauch widersprochen.
Nun addiere das mit dem RM-Posten auf und siehe da, die Legitimation duerfte
ausreichen.
Wenn Du weitere solcher Probleme bearbeiten willst, ich hab gehoert in der
Balance seien immer Leute gesucht.

Gloin(son)

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



Re: Re: rtoete (Tiamak, 26. Nov 2001, 19:14:56):
~#! rn=Vincent rt=1006778762 rg=d.gebirge
~#! tid=1006770289
Wenn schon, dann hackt bitte auf mir herum.
Der Auftrag kam von mir, Bambi hat ihn nur ausgefuehrt.


Tiamak

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



Re^3: rtoete (Mupfel, 26. Nov 2001, 20:25:39):
~#! rn=Tiamak rt=1006798496 rg=d.gebirge
~#! tid=1006770289
...wahrscheinlich, weil Du Dich schon als Seher immer drueber geaergert
hattest, oder? ;) Und das wird auch erst jetzt gefixed, weils nun - wie der
Zufall will - grade jetzt der oberste Eintrag auf Deiner ToDo ist, oder?

-mupfel-

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



Re^4: rtoete (Tiamak, 26. Nov 2001, 20:38:10):
~#! rn=Mupfel rt=1006802739 rg=d.gebirge
~#! tid=1006770289
Ich weiss nicht, ob es Dir in letzter Zeit schon jemand gesagt hat, Mupfel,
aber derartige Anschuldigungen werden nicht dadurch lustig, dass ein Smiley
dahinter steht.

Du weisst es besser und ich weiss es besser. Aber hier lesen genuegend
unbeteiligte Spieler mit, die die Hintergruende eben nicht kennen und Deinen
Albernheiten vielleicht Glauben schenken.


Tiamak. Braucht keine Hilfe, um nen schlechten Ruf zu kriegen.

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



Re^5: rtoete (Varlarion, 26. Nov 2001, 20:45:46):
~#! rn=Tiamak rt=1006803490 rg=d.gebirge
~#! tid=1006770289
Zumindest in der letzten Zeile steckt Wahrheit.

Varl*, scherzt nicht

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



Re^6: rtoete (Catweazle, 27. Nov 2001, 09:22:06):
~#! rn=Varlarion rt=1006803946 rg=d.gebirge
~#! tid=1006770289
Huch, ist dem wirklich so? Oder ist das nur deine persoenliche Meinung?
Also gut, dann pack ich die Fahne aus.
Nur weil jemand aeusserste Konsequenz zeigt und dadurch oft Dinge tut, die in
der Allgemeinheit nicht besonders beliebt, aber zum Wohle aller trotzdem
richtig sind, hat er noch lange keinen schlechten Ruf. Zumindest hat er ihn
nicht verdient.
Und ganz besonders hat er es nicht verdient, das ihm dieser faelschlicherweise
nachgesagt wird.

Wenn ihr das wirklich fortsetzen wollt, dann bitte in einer anderen Rubrik.

Yours truly,
     Catweazle

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



Etliche Typos ausgemerzt ... (Boing, 12. Dez 2001, 17:15:07):
Hi,
Bambi hat sich die Muehe gemacht und die angesammelten Typos der letzten
Jahre (oehm, sagte ich Jahre?) im Kerngebiet des Gebirges abgearbeitet.
Es darf also neu gesucht werden ... ;) Und nein, es ist NICHT erwuenscht
in jedem Raum der Kueste 'typo starnd' einzugeben.
Danke schoen,
  Boing

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



Re: Etliche Typos ausgemerzt ... (Patryn, 12. Dez 2001, 17:19:12):
~#! rn=Boing rt=1008173707 rg=d.gebirge
~#! tid=1008173707
wird das zum allgemeinen RM-gesellenstueck erhoben?
das erinnert mich irgendwie an meine ersten 2 wochen als wald-rm
 (*repfiles nachtraeglich verfluch* *g*)

-- 
patryn, ehemalig eifriger typo-starnd-absetzer :)

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



Re: Etliche Typos ausgemerzt ... (Bambi, 12. Dez 2001, 17:47:51):
~#! rn=Boing rt=1008173707 rg=d.gebirge
~#! tid=1008173707
Lieber Leser.
Obwohl ich nicht weiss, was ich alles schreiben soll, versuche ich dennoch
einmal, ein paar Sachen bekanntzugeben.

Zunaechst einmal ist zu erwaehnen, dass das Gebirge-Repfile abgearbeitet
wurde. Dies bedeutet, dass etwa 250 Fehlermeldungen, Tippfehler und Ideen
gesichtet und ggf. umgesetzt oder korrigiert wurden.
Dem geneigten Leser seien hier einige Punkte bekanntgemacht, die ihn (/sie)
moeglicherweise interessieren.

Das Repfile beinhaltete Eintraege, die teilweise ueber drei Jahre alt waren.
Grosse Personen wie "Mahatma" waren unter den Meldern fehlender Details
genauso vertreten, wie unbekannte Spieler, deren Charaktere es nicht mehr
gibt. Undankbare und angreifend formulierte Meldungen, teilweise unter
heftigem Einsatz von Ausrufezeichen, hemmten die Motivation, andere
Eintraege hingegen hoben sie gewaltig an.
Als Beispiel fuer eine nette Eintragung sei folgendes Beispiel angefuehrt:

>   Ein fehlender Himmel ist nich so schoen. AddInfo Himmel kann da gehn...

Trotz falschen Kommandos (AddInfo muesste AddDetail sein) war es doch nett
anzusehen, dass sich der betreffende Spieler die Muehe machte, denjenigen
aufzumuntern, der dies liest.

Viel Arbeit wartet trotz des nun abgearbeiteten Repfiles darauf, in den schon
bearbeiteten Raeumen getan zu werden, da diese nach wie vor nicht auf dem
heutigen Stand der Anforderungen stehen. Aber ein wichtiger Schritt ist getan,
naemlich die Anregungen der Spieler wahrzunehmen und umzusetzen.

Ich moechte mich daher fuer den eifrigen Einsatz der Spieler (also euch)
bedanken, die mithelfen, das MorgenGrauen zu verschoenern, auch wenn es sich
dabei meist nur um die Aufbesserung alter Fassaden handelt.

MfG, Bambi.

PS. Es wurden nur Aenderungen an Objekten vorgenommen, die laut rohrhoere
"von einem Gebirgsmagier" geschrieben wurden. Diese Objekte sind, wie bereits
erwaehnt noch nicht vollstaendig ueberarbeitet, allerdings macht es durchaus
Sinn, bei diesen Objekten typos oder ideen abzusetzen.

PPS. Ich bitte um Verstaendnis, dass groessere inhaltliche Neuerungen
   ("Ich will, dass Robin auch das Lupinental unsicher macht.",
    "Koennen die Zwerge nicht mal geschlossen die SSP metzeln?")
im Zuge der Ueberarbeitung nicht umgesetzt werden.

PPPS. Die Beispiele in PPS sind frei erfunden und sie werden weder in der
Ueberarbeitung _noch_ jemals danach umgesetzt. :)


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



Re: Re: Etliche Typos ausgemerzt ... (Boing, 12. Dez 2001, 18:00:58):
~#! rn=Bambi rt=1008175671 rg=d.gebirge
~#! tid=1008173707
> PPPS. Die Beispiele in PPS sind frei erfunden und sie werden weder in der
> Ueberarbeitung _noch_ jemals danach umgesetzt. :)

Drauf wetten wuerde ich darauf aber nicht ... :)
  Boing

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



Re: Re: Etliche Typos ausgemerzt ... (Liara, 12. Dez 2001, 23:12:05):
~#! rn=Bambi rt=1008175671 rg=d.gebirge
~#! tid=1008173707
Oeh, ... wieso haste nu den ganzen Scroll produziert?
Mach so weiter, und ich schreibe jedesmal einen Artikel, wenn ich auf's Klo
gehe ... samt Erlebnisbericht.

Gruesse, ZZL

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



Re^3: Etliche Typos ausgemerzt ... (Gnome, 13. Dez 2001, 00:40:42):
~#! rn=Liara rt=1008195125 rg=d.gebirge
~#! tid=1008173707
wir beklagen uns dauernd ueber die verfehlte informationspolitik UND
ueber den uralt-stand der ebene hinsichtlich ihrer details. jetzt nimmt
einer gleich beides in angriff und schon wird er verarscht?
ich finds klasse, bambi. weiter so!

wenn du details deines klogangs posten sollst, lassen wir es dich
wissen, liara.

gnOme

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



Re^4: Etliche Typos ausgemerzt ... (Noki, 13. Dez 2001, 11:25:06):
~#! rn=Gnome rt=1008200442 rg=d.gebirge
~#! tid=1008173707
Ich schliesse mich dem vorbehaltlos an: wieter so, Bambi!
Ich hoere jedesmal gerne, was unsere Meister so anstellen...

MfG -noki

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



Sauna am Polarweg (Bambi, 18. Dez 2001, 12:50:53):
Ich wollte hiermit auf eine kleine Aenderung in der Sauna hinweisen, die sich
fuer Chaoten auswirkt.
Die Chaoten duerfen nun auch mit ihrer mutierten Haut (der Chaoshaut) in die
Saune und muessen sie dazu nicht erst verbannen.
Vielen dank fuer die Hinweise und das Testen.
Falls Bugs auftreten oder wenn andere Gilden aehnliche Gilden-Items besitzen,
die das Betreten der Sauna verhindern, so moege man mir dies kenntlich machen.

MfG, Bambi.

PS. Der Artikel ist in dieser Rubrik richtig, auch wenns etwas verwundert.
PPS. ... ach nein, einen Kommentar zu Klogeschichten spar ich mir. :)

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



Re: Sauna am Polarweg (Grimmborn, 18. Dez 2001, 13:03:46):
~#! rn=Bambi rt=1008676253 rg=d.gebirge
~#! tid=1008676253
Hoffentlich wird dann den anderen Insassen gruendlich schlecht wenn so ein
Chaot mit mutierter Haut nackich reinlaeuft?

GdA

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



Re: Sauna am Polarweg (Gor, 18. Dez 2001, 21:36:03):
~#! rn=Bambi rt=1008676253 rg=d.gebirge
~#! tid=1008676253
Doll, wieso ist Polar jetzt Gebirge, achja, darum wurde es nicht gefixed.
Nochmals hier ein Dankeschoen an Bierchen.
Gor kopfschuettelnd.

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



Re: Re: Sauna am Polarweg (Mupfel, 18. Dez 2001, 22:50:07):
~#! rn=Gor rt=1008707763 rg=d.gebirge
~#! tid=1008676253
Nein der Sauna-Raum gehoert zum Gebirge. Schau ihn Dir einfach mal an dann
siehst sogar Du warum das so ist.

-mupfel-

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



Re^3: Sauna am Polarweg (Anatol, 18. Dez 2001, 22:52:15):
~#! rn=Mupfel rt=1008712207 rg=d.gebirge
~#! tid=1008676253
Dafuer hat Gor keine Zeit. Er muss seine Quest ueberarbeiten... ;o)

Anatol cnr. 

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



Re: Sauna am Polarweg (Christopher, 19. Dez 2001, 11:58:48):
~#! rn=Bambi rt=1008676253 rg=d.gebirge
~#! tid=1008676253
Toeters Schaedel macht aehnliche Probleme.

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



Re: Re: Sauna am Polarweg (Kaspar, 19. Dez 2001, 12:00:05):
~#! rn=Christopher rt=1008759528 rg=d.gebirge
~#! tid=1008676253
Muessen die Tanjian kokoro ausziehen?:)

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



Re^3: Sauna am Polarweg (Gor, 19. Dez 2001, 13:08:10):
~#! rn=Mupfel rt=1008712207 rg=d.gebirge
~#! tid=1008676253
Stimmt, es leuchtete mir sofort einw arum. Der gehoert da einfach gar nicht
hin. Vermutlich ist mal wer beim verlinken der Raeume ausgerutscht. DFer Raum
duerfte von eigentlich gar nicht angeschlossen sein. Alees sehr logisch jaja.
;)

Gor schwitzt fuer nix.....

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



Re^4: Sauna am Polarweg (Mupfel, 19. Dez 2001, 14:53:03):
~#! rn=Gor rt=1008763690 rg=d.gebirge
~#! tid=1008676253
Geh da hin Du schwaebischer Holzkopp ;) schau's Dir an, vor allem auch den
Raumpfad. Und dann schwafel weiter... ;)

-mupfel-

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



Re^5: Sauna am Polarweg (Tsunami, 21. Dez 2001, 18:49:45):
~#! rn=Mupfel rt=1008769983 rg=d.gebirge
~#! tid=1008676253
Ich finds klasse Bambi.

Repfiles abarbeiten ist eine Heidenarbeit.

Weiter so,

Tsunami.

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



Re^6: Sauna am Polarweg (Ark,  2. Jan 2002, 11:51:03):
~#! rn=Tsunami rt=1008956985 rg=d.gebirge
~#! tid=1008676253
Hmpf, da hat mir ein Spassvogel *jemandem zuzwinker* ein Ei gelegt ueber
Weihnachten:

Vorher:
/log/report/ark.rep, 0 lines

Nachher:
/log/report/ark.rep, 320 lines

Dabei ist das bestimmt auf wenige Raeume und Objekte begrenzt. Wehe, ich finde
Ideen ala: "Es muesste auch noch die Syntax 'drehe grossen knopf mit
schwertknaufknopfabdruck langsam nach links', dann uebergebe ich mein Repfile
dem tapferen Reh zur treuen Abarbeitung ;^)


              *** ARK * the * Magnificent ***


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



Re^7: Sauna am Polarweg (Bambi,  2. Jan 2002, 15:44:11):
~#! rn=Ark rt=1009968663 rg=d.gebirge
~#! tid=1008676253
HUARGS!!!

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



Re^7: Sauna am Polarweg (Orktoeter,  2. Jan 2002, 15:52:32):
~#! rn=Ark rt=1009968663 rg=d.gebirge
~#! tid=1008676253
Nur 320 Zeilen?

Wie waer es denn statt dessen mit folgendem:
 for i 1 500 Idee Ich habe eine Tolle Idee, aber die musst du erst weiter
hinten suchen!
Idee "eine mehr oder weniger gute Idee"
for i 1 500 Die Idee steht weiter vorne, viel spass beim suchen!

Wahlweise auch ohne den Hinweis wo genau die Idee steht...

OrkT hat manchmal auch ideen...

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



Re^8: Sauna am Polarweg (Zarniya,  3. Jan 2002, 08:34:08):
~#! rn=Orktoeter rt=1009983152 rg=d.gebirge
~#! tid=1008676253
ich denke, sowas ist das letzte, was dieser Charakter dann einem Mud macht...
zumindest, wenn die Mudfuehrung konsequent ist.

Marc

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



Re^9: Sauna am Polarweg (Weatherwax,  3. Jan 2002, 23:47:24):
~#! rn=Zarniya rt=1010043248 rg=d.gebirge
~#! tid=1008676253
*raeusper*

das hab ich nicht verstanden

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



Re^10: Sauna am Polarweg (Wurzel,  3. Jan 2002, 23:48:22):
~#! rn=Weatherwax rt=1010098044 rg=d.gebirge
~#! tid=1008676253
welchen satz oder welches wort genau hast du nicht verstanden? war doch
eindeutig genug...

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



Re^11: Sauna am Polarweg (Weatherwax,  3. Jan 2002, 23:48:58):
~#! rn=Wurzel rt=1010098102 rg=d.gebirge
~#! tid=1008676253
das mittelteil

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



Re^12: Sauna am Polarweg (Willow,  4. Jan 2002, 17:01:12):
~#! rn=Weatherwax rt=1010098138 rg=d.gebirge
~#! tid=1008676253
heisst das nicht DEN mittelteil??? *gruebel*

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



Re^12: Sauna am Polarweg (Zarniya,  7. Jan 2002, 08:58:30):
~#! rn=Weatherwax rt=1010098138 rg=d.gebirge
~#! tid=1008676253
ok... da fehlt das Wort 'in' zwischen dann und einem... sorry.

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



Mal wieder was neues ... aber nicht von mir (Boing, 17. Jan 2002, 18:35:31):
In einer gemuetlichen Weinstube in einem der schoensten Taeler des
Gebirges ist eben etwas neues angeschlossen worden. Schaut einfach
selbst nach, was es ist. :)
Gebastelt wurde das Teil uebrigens von Anatol, wenn ihr also Fehler
findet, dann wendet euch vertrauensvoll an ihn. *g*

  Boing

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



Re: Mal wieder was neues ... aber nicht von mir (Whitetiger, 17. Jan 2002, 18:39:54):
~#! rn=Boing rt=1011288931 rg=d.gebirge
~#! tid=1011288931
hmm... wie geht denn das? anatol ist doch gar kein magier...
WT (wundernd)

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



Robin (Bambi,  9. Feb 2002, 19:48:45):
Ich habe Robin bis auf weiteres abgehaengt.

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



Re: Robin (Tilly,  9. Feb 2002, 22:24:36):
~#! rn=Bambi rt=1013280525 rg=d.gebirge
~#! tid=1013280525
Wieso?

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



Re: Robin (Bambi, 10. Feb 2002, 00:16:18):
~#! rn=Bambi rt=1013280525 rg=d.gebirge
~#! tid=1013280525
Er ist wieder da.

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



Re: Re: Robin (Karis, 10. Feb 2002, 00:40:11):
~#! rn=Bambi rt=1013296578 rg=d.gebirge
~#! tid=1013280525
Aha. Wir danken fuer dieses vielsagende Intermezzo.

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



Zwergenpriester (Bambi, 24. Feb 2002, 23:51:10):
Ich hab dem Zwergenpriester etwas Weisheit angedeihen lassen, so dass er nun
nicht mehr versucht "irgendetwas" aus dem Inventar des Spielers zu entfluchen.
Fuer Anregungen und konstruktive Kritiken hab ich offene Ohren.
Ach ja, er gestaltet seine Preispolitik nun etwas anfaengerfreundlicher.

MfG, Bambi.
PS: Flames zu "Weisheit" && "Zwerge" bitte nicht in dieser Rubrik. :)

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



Re: Zwergenpriester (Joshua, 25. Feb 2002, 11:46:49):
~#! rn=Bambi rt=1014591070 rg=d.gebirge
~#! tid=1014591070
Ich gehe mal davon aus, dass man den jetzt auch als Chaot benutzen kann. In
diesem Fall: Vielen Dank! :)

Josh

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



Sauna (Bambi,  5. Mai 2002, 11:19:59):
Ich hab noch ein bissl was and er Saune geaendert, so dass einige Objekte mehr
zugelassen werden...

Kleiner Hinweis noch.
Der Masseur will nicht, dass man irgendwelche Kleidung angezogen hat. Dies
gilt auch fuer verfluchte oder sonstwie eigentlich nicht ausziehbare Kleidung
(Wandlerhandschuhe). Ihm ist es egal, mit welchen Problemen Spieler dann
konfrontiert werden: Er will sie nackt sehen. Dass er Gildenobjekte (kokoro)
etc akzeptiert ist ein Bugfix, aber ich werde (auch nach dem 10 mal anfragen)
nicht hingehen und den Masseur so umschreiben, dass er grundlegend anders
ueber angezogene Spieler in seiner Sauna denkt.
Dennoch danke fuer die "Bug"-Reports.

MfG, Bambi.

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



Tablut (Bambi, 24. Mai 2002, 11:54:51):
Ich hab ein paar Sachen da debuggt. Wenn wem nochwas auffaellt, einfach (bei
mir) melden.

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



Pfirsiche (Vanion, 26. Mai 2002, 00:58:46):
Die Anzahl der Pfirsiche pro Person wurde ein wenig eingeschraenkt. Pfirsiche
wachsen schliesslich nicht auf Baeumen - bildlich gesehen. *raeusper*

V*

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



Re: Pfirsiche (Darkwing, 27. Mai 2002, 20:14:43):
~#! rn=Vanion rt=1022367526 rg=d.gebirge
~#! tid=1022367526
duh... da liest man seit langem mal wieder mpa und schon weiss man warum man
es besser gelassen haette :-)
Also kein Pfirsiche verschenken mehr nach Crash, war ja eh nur cheaten :)

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



Re: Re: Pfirsiche (Cuchullin, 28. Mai 2002, 17:22:11):
~#! rn=Darkwing rt=1022523283 rg=d.gebirge
~#! tid=1022367526
Naja, ich erinnere mich an einen Spinner, der Andy (u.a.) mit etwas
ueber tausendirgendwas von diesen ein Pfund schweren Pfirsichen voll-
gestopft hatte... damit er das Hoellenfeuer im Raeuberlager, das er 
sonst aufgenommen haette, schoen liegen liess wo es war...

Bugte natuerlich wie Sau. 

Cuch, kann's in gewissen Grenzen nachvollziehen ;)


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



Re^3: Pfirsiche (Mandragon, 28. Mai 2002, 17:38:15):
~#! rn=Cuchullin rt=1022599331 rg=d.gebirge
~#! tid=1022367526
Einfach vor dem weglegen anzuenden .... dann laesst er es auch ne halbe Stunde
liegen ....

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



Neues von Takhisis (Nonne,  1. Jun 2002, 13:33:01):
Hallo tapfere Abenteurer,

alles war vergebens. Wie sich herausstellte, ist Takhisis nie wirklich besiegt
worden, sondern lediglich in ihre eigene Dimension zurueckgekehrt, wenn ihre
sterbliche Huelle in dieser Welt zerstoert wurde.

Geruechten zufolge soll es einen Zugang zu ihrer Dimension geben, der sich
aber in der sogenannten 'Parawelt' befindet.

Viel Spass beim Sterben wuenscht
Nonne.

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



Robin (Boing, 14. Jun 2002, 15:31:19):
Robin ist mal temporaer abgehaengt ... 
  Boing

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



Robin (Bambi, 21. Jun 2002, 17:19:44):
Sodala.

Nachdem Robin umgezogen und ueberarbeitet worden ist, huepft seine getestete
beta-Version wieder ueber die Hochebene. Sofern Bugs auftreten, sollten mir
diese ggf. gemailt werden. Ich werd mir das dann anschauen. Sollte in
absehbarer Zeit kein weiterer Artikel von mir kommen, wird die "Beta-Version"
dann zur release. :)

Bevor Fragen auftauchen:
Es wurden debug-Aktionen durchgefuehrt. Robin sollte sich nicht anders
verhalten als sonst auch und er wurde weder auf- noch abgewertet. Da Robin
umgezogen ist, wurden auch Kills und etwaige FPs (kein Kommentar hierzu)
umgetragen. Ergo: wer den kill schon hatte, muss ihn nicht neu holen. Falls
jemand den Kill sicher hatte und er nun nicht mehr vorhanden ist: neu metzeln
oder bei Rikus melden.

MfG, Bambi.

PS.
Ach nix. Ihr findet das sicher noch raus. ;)

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



robin (Bran, 22. Jul 2002, 00:15:57):
"hat sich an meinem beutel bedient", ohne dass ich was hatte. bin jedenfalls ziemlich sicher...**

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



Re: robin (Mupfel, 22. Jul 2002, 00:27:43):
~#! rn=Bran rt=1027289757 rg=d.gebirge
~#! tid=1027289757
Schau halt nach, ob Du nicht jetzt -1000 Muenzen hast ;)

-mupfel-

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



Re: Re: robin (Mandragon, 22. Jul 2002, 01:04:33):
~#! rn=Mupfel rt=1027290463 rg=d.gebirge
~#! tid=1027289757
wie war das? wirf -1 muenze weg?

Ma*

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



Re^3: robin (Vanion, 22. Jul 2002, 08:18:40):
~#! rn=Mandragon rt=1027292673 rg=d.gebirge
~#! tid=1027289757
Das war mal ein alias auf:
 shutdown -dont-save-stupid-savefiles Spieler mal so richtig aergern!

V* schmarrnt.

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



Kriegshamster aufgewertet ... (Boing,  5. Aug 2002, 14:57:42):
Auf Wunsch von Gnome und Foobar hab ich den Kriegshamster etwas 
aufgewertet ... viel Spass damit!
  Boing

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



Re: Kriegshamster aufgewertet ... (Sarkon,  5. Aug 2002, 14:58:36):
~#! rn=Boing rt=1028552262 rg=d.gebirge
~#! tid=1028552262
damit ihn ab sofort nur noch gnome und foobar hauen koennen? :)

Sarkon, kichernd

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



Re: Re: Kriegshamster aufgewertet ... (Sarkon,  5. Aug 2002, 15:00:04):
~#! rn=Sarkon rt=1028552316 rg=d.gebirge
~#! tid=1028552262
oh, hamster aufgewertet, dachte den npc bei dems den gibt
aufgewertet...najanaja :)

Sarkon, sich in schnaps ertraenkend...

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



Re^3: Kriegshamster aufgewertet ... (Pitfall,  5. Aug 2002, 15:14:38):
~#! rn=Sarkon rt=1028552404 rg=d.gebirge
~#! tid=1028552262
du hast ihn zum schwert gemacht?

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



Re^4: Kriegshamster aufgewertet ... (Brotnael,  5. Aug 2002, 15:14:56):
~#! rn=Pitfall rt=1028553278 rg=d.gebirge
~#! tid=1028552262
nein, zum ewigen feuerwasser...

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



Steinbeisseramulett (Boing,  5. Aug 2002, 17:32:25):
Ich hab das Amulett leicht modifiziert, fuer Leute die sich schon immer
komplett durchgemetzelt haben aendert sich nix.
  Boing

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



Re: Steinbeisseramulett (Sou,  5. Aug 2002, 17:56:59):
~#! rn=Boing rt=1028561545 rg=d.gebirge
~#! tid=1028561545
Kann man endlich nicht mehr bis zum letzten laufen und es einfach so
abstauben?

Sou applaudiert dann.

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



Re: Re: Steinbeisseramulett (Boing,  5. Aug 2002, 18:00:16):
~#! rn=Sou rt=1028563019 rg=d.gebirge
~#! tid=1028561545
Das waere eine Loesung, die mir persoenlich nicht gefallen haette, weil
der Ping-Pong effekt schon bewusst eingebaut wurde (na gut, bei heutigen
Sehern tritt der nicht mehr auf, aber bei kleineren Spielern evtl. schon).
Aber in die von Dir gewuenschte Richtung zielt die Aenderung schon.
  Boing

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



Typo-Zaubertrank (Boing,  6. Aug 2002, 10:54:01):
Der wahrscheinlich bekannte Typo-Zaubertrank (ich verrate hier wohl keine
Geheimnisse) hat ja nicht so richtig funktioniert, wenn man den Typo 
gemeldet hat, bevor man den Orakelspruch zugewiesen bekommen hat. Dieser
Fehler sollte nun behoben sein, falls es Probleme gibt -> mail an mich.
  Boing

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



Re: Typo-Zaubertrank (Bambi,  6. Aug 2002, 10:59:07):
~#! rn=Boing rt=1028624041 rg=d.gebirge
~#! tid=1028624041
Im Zuge dessen bitte ich hiermit nocheinmal darum, solche Scherze, wie "wir
laufen das gesamte Gebirge ab und setzen ueberall den Typo ab, bis wir den ZT
gefunden haben" zu unterlassen.

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



Re: Re: Typo-Zaubertrank (Cadrach,  6. Aug 2002, 11:05:50):
~#! rn=Bambi rt=1028624347 rg=d.gebirge
~#! tid=1028624041
Ich wuerde sagen, da brauchts irgendwo einen Raum mit Todeswirkung bei
falschem Typo :o)

Cad*

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



Re^3: Typo-Zaubertrank (Mupfel,  6. Aug 2002, 20:20:40):
~#! rn=Cadrach rt=1028624750 rg=d.gebirge
~#! tid=1028624041
Einen? Alle, bis auf den mit dem ZT ;)

-mupfel-

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



Dingens (Bambi,  6. Aug 2002, 21:29:23):
******************************************************************************
*                                                                            *
*  Bekanntmachung!                                                           *
*                                                                            *
*  Obwohl ich nicht unbedingt schon soweit bin, wie ich gerne waere und      *
*  obwohl ich sowieso nicht geglaubt haette, dass Zwerge so etwas fertig-    *
*  bringen, wurde es doch Wirklichkeit:                                      *
*                                                                            *
*  Die koeniglich zwergische Brueckenbaugesellschaft hat die Bruecke in      *
*  Amalgrim fertiggestellt.                                                  *
*                                                                            *
*  Wenngleich es noch nicht allzuviel zu erforschen gibt, habe ich dennoch   *
*  eine schon bestehende Fortfuehrung des Tals angeschlossen.                *
*                                                                            *
*  Viel Spass beim Anschauen und so...                                       *
*                                                                            *
*                                                                 Bambi.     *
*                                                                            *
******************************************************************************

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



Re: Kriegshamster aufgewertet ... (Gnome,  8. Aug 2002, 21:26:09):
~#! rn=Boing rt=1028552262 rg=d.gebirge
~#! tid=1028552262
:huepft um boing herum und knuddelt ausgiebig einen hamster.

daaaaanke! :)

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



Noerdliches Tal - Update (Bambi,  9. Aug 2002, 10:28:28):
Hi alle.
Ich wollte noch ein paar Punkte loswerden...
Erstens mal danke fuer die prompten konstruktiven Rueckmeldungen der
bisherigen Spieler.
Zweitens wurde eine Stelle etwas geaendert, so dass man da eventuell oehm ...
sterben koennte. Naja, ihr werdet das schon merken, wenn ihr offensichtlich
etwas "Ungewolltes" tut. Falls da Bugs auftreten (nein, sterben ist kein Bug)
waeren Rueckmeldungen nett.
MfG, Bambi.

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



Re: Noerdliches Tal - Update (Montanus,  9. Aug 2002, 18:25:07):
~#! rn=Bambi rt=1028881708 rg=d.gebirge
~#! tid=1028881708
Bambi schreibt:
"der bisherigen Spieler"... und "sterben ist kein Bug"
Hmmm, langsam muss Ark sich sorgen machen um seinen Titel. :-)

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



Re: Re: Noerdliches Tal - Update (Croft,  9. Aug 2002, 18:31:02):
~#! rn=Montanus rt=1028910307 rg=d.gebirge
~#! tid=1028881708
Welchen Titel?

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



Re: Re: Noerdliches Tal - Update (Ark,  9. Aug 2002, 18:34:42):
~#! rn=Montanus rt=1028910307 rg=d.gebirge
~#! tid=1028881708
Wasn fuern Titel?

Habich was verpasst? Sittenwaechter? Niedrigverdiener? Schatzvernichter?
Betamonsterbetreiber? Hmmm...


              *** ARK * the * Magnificent ***


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



Magietext-Update. (Bambi,  9. Aug 2002, 20:56:35):
Hi alle.
Der Magietext ist fuer alle ab ende/crash/reboot in Version 4 (derzeit noch
Version 3) verfuegbar und beinhaltet einen kleinen Bugfix. Funktionalitaet ist
keine hinzugekommen.

Bambi.
PS...
"Alle" sind natuerlich nur die, die jetzt schon Magietext nutzen koennen.

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



Re: Magietext-Update. (Vardion, 11. Aug 2002, 22:45:02):
~#! rn=Bambi rt=1028919395 rg=d.gebirge
~#! tid=1028919395
Gibts irgend eine Statistik, wer den Magietext ueberhaupt benutzt? :)

Vardion

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



Dingens (Bambi, 12. Aug 2002, 18:05:02):

******************************************************************************
*                                                                            *
*  Bekanntmachung!                                                           *
*                                                                            *
*  Hiermit moechte ich im Namen des Besitzers der Boutique in Amalgrim       *
*  bekanntgeben, dass selbige (also die Boutique) feierlich er/geoeffnet     *
*  wurde.                                                                    *
*                                                                            *
*  Obwohl das Angebot noch sehr duenn ist, hoffe ich auf rege Einbringung    *
*  von Vorschlaegen zur Erweiterung des selben.                              *
*                                                                            *
*  Wie ueblich wuensche ich viel Spass beim Besuch...                        *
*                                                                            *
*                                                                 Bambi.     *
*                                                                            *
******************************************************************************

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



Re^3: Steinbeisseramulett (Key, 15. Aug 2002, 21:32:14):
~#! rn=Boing rt=1028563216 rg=d.gebirge
~#! tid=1028561545
Och, mach Dir keine Sorgen.
Mich trifft der Ping-Pong-Effekt bestimmt mal wieder ;) 

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



Re: Re: Magietext-Update. (Pertinaxe, 18. Aug 2002, 23:20:40):
~#! rn=Vardion rt=1029098702 rg=d.gebirge
~#! tid=1028919395
Wer hat ueberhaupt den tieferen Sinn verstanden ?

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



Re^3: Magietext-Update. (Mupfel, 18. Aug 2002, 23:24:16):
~#! rn=Pertinaxe rt=1029705640 rg=d.gebirge
~#! tid=1028919395
Gibt es ueberhaupt immer einen tieferen Sinn?

-mupfel-

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



Re^4: Magietext-Update. (Pertinaxe, 18. Aug 2002, 23:27:48):
~#! rn=Mupfel rt=1029705856 rg=d.gebirge
~#! tid=1028919395
Noe, aber manchmal frage ich schon nach dem Sinn, auf deutsch: was mach ich
mich mit nem Ding das ich wohl mal wieder ueberhaupt ned brauch.

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



Re^5: Magietext-Update. (Croft, 19. Aug 2002, 00:15:58):
~#! rn=Pertinaxe rt=1029706068 rg=d.gebirge
~#! tid=1028919395
Mach damit schwer unterscheidbare Dinge unterscheidbar (z.b. Schluessel), 

Pinsel auf deinen VS oder Hyrue die Haltbarkeit drauf, was auch immer.
Streng deine Fantasie an :-)

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



Re^6: Magietext-Update. (Pertinaxe, 20. Aug 2002, 10:17:06):
~#! rn=Croft rt=1029708958 rg=d.gebirge
~#! tid=1028919395
Mir waere es lieber der Stempel aus der Zwergenquest waere wieder da, das
wuerde verhindern das stinkige Orks Schatten klauen und auf Nimmerwiedersehen
verschwinden lassen.

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



Re^7: Magietext-Update. (Deepblue, 20. Aug 2002, 10:39:26):
~#! rn=Pertinaxe rt=1029831426 rg=d.gebirge
~#! tid=1028919395
Was, die Orks richten sich dnach dem Stempel? Moggel, aender das mal!

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



Re^7: Magietext-Update. (Bambi, 20. Aug 2002, 13:39:00):
~#! rn=Pertinaxe rt=1029831426 rg=d.gebirge
~#! tid=1028919395
Unabhaengig davon, ob es von einem Ork (oder sonstwem) in Ordnung ist, einen
Schatten verschwinden zu lassen, wirst Du mir doch zustimmen, dass ein
Verhindern von moves aller Art (?) in keinem Fall ein Feature sein kann.

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



Kristallkrone (Boing, 21. Aug 2002, 13:43:43):
Um mehr Spielraum bei den Helmen zu schaffen, wurde die Kristallkrone
etwas abgewertet. Das gilt natuerlich nur fuer neu erschaffene Kronen.
  Boing

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



Wo gehobelt wird... (Bambi, 24. Aug 2002, 10:19:27):
fallen Spaene.
Aufgrund eines letztens vorgenommenen Bugfixes war die Quest "Hilberts Turm"
nicht mehr bestehbar. Dieses Bugfix-Problem wurde inzwischen beseitigt.
Danke fuer die prompte Bugmeldung.

MfG, Bambi.

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



Re: Wo gehobelt wird... (Thargor, 26. Aug 2002, 19:30:31):
~#! rn=Bambi rt=1030177167 rg=d.gebirge
~#! tid=1030177167
... uff, da hab ich ja nochmal glueck gehabt .. hilberts turm war eine der
naechsten Aufgaben die ich loesen wollte :)

Thargor

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



Was Neues. (Bambi, 17. Sep 2002, 01:27:22):
Hi alle.

Als ich mal wieder auf der Hochebene rumgehuepft bin, hat mir der Wanderer
erzaehlt, dass Darwin von einer seiner Reisen zurueckgekehrt ist und sich
ueber Besuch von Spielern sehr freuen wuerde.

MfG, Bambi.

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



Re: Was Neues. (Bambi, 17. Sep 2002, 20:42:57):
~#! rn=Bambi rt=1032218842 rg=d.gebirge
~#! tid=1032218842
Hi alle Questloeser...
Alle, die zwischen dem Loesen der Quest und jetzt eingeschlafen oder sonstwie
disconnected wurden, haben die Questbelohnung "verloren". Der Bug wurde
gefixt. Wer die Questbelohnung wiederhaben will, muss einfach nur das Haus
betreten.
Man sollte das Objekt tragen koennen, ansonsten kriegt mans halt erst, wenn
mans tragen kann und das Haus betritt...

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



Taschentuch (Bambi,  5. Nov 2002, 21:56:32):
Hallo Taschentuchbesitzer.
Im Taschentuch haben sich im Laufe der Zeit einige Aenderungen ergeben,
darunter auch ab Version 1.6 ein Bugfix fuer absolute Zeitangaben. Wer
Probleme mit dem Taschentuch hat, sollte sich ueber die Version kundig machen
und sich gegebenenfalls ein neues Taschentuch besorgen...
Es stellt sich nun die Frage, wie das geht...
Man beseitige das Taschentuch und betrete Darwins Haus. Dann sollte man ein
neues Taschentuch bekommen.
Falls es zu weiteren Problemen kommen sollte, bitte Mail an mich.

Und danke fuer den Bugreport (dieses mal an Isi).

MfG, Bambi.

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



Irgendwo im Cronoertal... (Bambi,  1. Feb 2003, 14:55:21):
oder dessen Umgebung gabs ne Stelle, wo man ein Seil benoetigt.
Genauer gesagt gibts vermutlich mehrere Stellen, aber an einer der Stellen
wurde was geaendert. Sollten sich an besagter Stelle Bugs bezueglich Seilen
einstellen, moege man mir dies melden.
Gefakte Seile funktionieren an dieser Stelle leider nicht mehr. Sorry.

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



Re: Irgendwo im Cronoertal... (Patryn,  1. Feb 2003, 14:59:09):
~#! rn=Bambi rt=1044107721 rg=d.gebirge
~#! tid=1044107721
Das gefakte Seile dort gingen war uebrigens Absicht, keine Dummheit.
Wenns nun nicht mehr geht ist das natuerlich auch nicht so schlimm,
wollte das nur anmerken :)

-- 
Patryn

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



Re: Re: Irgendwo im Cronoertal... (Bambi,  1. Feb 2003, 15:15:41):
~#! rn=Patryn rt=1044107949 rg=d.gebirge
~#! tid=1044107721
Die Zeit ging zwar von FDO ab, aber auf freundliches Bitten weniger habe ich
mir die Arbeit gemacht, dass auch gefakte Seile wieder funktionieren sollten.
Falls Bugs auftreten: echtes Seil benutzen oder sich bei mir melden.

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



Umfrage. (Bambi,  2. Mai 2003, 17:55:35):
Aufgrund einer Vereinbarung mit meinem neuen Regionsmitarbeiter wird ein
Projekt mit der Abkuerzung "FDO" umgesetzt. Ein zweiter Teil der Vereinbarung
besagt, dass der andere Magier ein von mir zu schreibendes Konzept mit der
Abkuerzung "ZPK" zu schreiben hat.
Nachdem Vincent vehement bestreitet, dass es so etwas, wie ein ZPK ueberhaupt
geben kann, biete ich nun euch Muddern an, an einer Umfrage teilzunehmen, bei
der ihr Vorschlaege machen koennt, was "ZPK" bedeuten kann.
Sollten dabei brauchbare Vorschlaege herauskommen, dann werde ich
gegebenenfalls ein Konzept daraus machen und es dem betroffenen Magier
zukommen lassen.

Teilnehmen koennt ihr, wenn ihr "umfrage" etwas mitteilt.

(Fuer Magier: Es waere nett, den betreffenden NPC nicht durch eigenen Sachen
zu manipulieren. Danke.)

MfG, Bambi.

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



Re: Umfrage. (Grimmborn,  2. Mai 2003, 18:00:53):
~#! rn=Bambi rt=1051890935 rg=d.gebirge
~#! tid=1051890935
Hmm, gehoert das jetzt nach witze, schmarrn oder muell? Was fuer einen Sinn
macht eine Umfrage ueber etwas, was es in keinster Weise irgendwie geben kann?

GdA

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



Re: Re: Umfrage. (Vincent,  2. Mai 2003, 18:05:22):
~#! rn=Grimmborn rt=1051891253 rg=d.gebirge
~#! tid=1051890935
Bambis Artikel gehoert einfach geloescht. Es gibt kein ZPK, egal in welcher
Zeit und an welchem Ort!

Gruss
Vincent

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



Re^3: Umfrage. (Gando,  2. Mai 2003, 18:06:16):
~#! rn=Vincent rt=1051891522 rg=d.gebirge
~#! tid=1051890935
Gando zueckt eine Zero-Partikel-Kanone.

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



Re^3: Umfrage. (Grimmborn,  2. Mai 2003, 18:06:52):
~#! rn=Vincent rt=1051891522 rg=d.gebirge
~#! tid=1051890935
Eben, sieht doch jeder auf den ersten Blick dass hier kein Zentrales
PlanungsKommite existiert. "Gut geplant" ist sicher eine Eigenschaft, die auf
das MG nicht zutrifft. 

GdA

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



Re: Re: Umfrage. (Boing,  2. Mai 2003, 18:11:09):
~#! rn=Grimmborn rt=1051891253 rg=d.gebirge
~#! tid=1051890935
Ich kann hier Grimmborn nur in vollem Umfang zustimmen. 
  Boing

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



Sowas... (Sharenug, 12. Mai 2003, 13:22:38):
da geht man ueber ein paar Planken und steht auf so nem komischen Weg am
Drachensee, und auf einmal kann man da klettern... pfft...

Sharenug

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



Duesterwaldplakette (Bambi, 20. Jun 2003, 14:27:48):
Die Duesterwaldplakette reagiert nun auch auf "duesterwaldplakette". Das
sollte gewisse "Problemchen" beseitigen.

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



Daemonenruestungen (Boing, 27. Jun 2003, 15:52:01):
Hi,
die Daemonenklamotten in der Steinbeisserhoehle waren wohl ein paar
Wochen defekt. Da hab ich bei einer kosmetisch Aenderung eine Kleinigkeit
verbockt. Sorry dafuer! Neue Ruestungsteile sollten ab sofort wieder
funktionieren.
  Boing

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



Tharamon (Bambi,  8. Jul 2003, 17:59:55):
Ueber besagten NPC gingen einige Hinweise ein, denen ich nachgegangen bin. Das
Ergebnis ist zunaechst, dass der NPC nicht geaendert wird. Ich habe Patryn als
Gildenmagier der Zauberer entsprechende Bugreports zukommen lassen.
Da ich davon ausgehe, dass es sich bei den bei mir eingegangenen Hinweisen
nicht um Beschwerden an sich gehandelt hat, werde ich den NPC bis auf
Rueckmeldung von Patryn nicht aendern.

MfG, Bambi.

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



Grillfest bei Darwin (Bambi,  5. Aug 2003, 11:25:55):
Nachdem einige Delfenin der Endsequenz bei Darwin das Zeitliche gesegnet
haben, sorgt deren Goettin nun dafuer, dass dies nicht mehr passieren sollte.
Falls doch jemand dort aufgrund der Sonneneinwirkung stirbt, moege man mir das
melden.

MfG, Bambi.

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



Darwins Questbelohnung... (Bambi,  6. Aug 2003, 15:42:10):
liegt nun in Version 1.7 vor. Dabei wird nun (wieder) im normalen reset
informiert, falls gewuenscht.
Bekommen kann man ein Update durch ende/crash/reboot oder zerstoeren und neu
holen.

MfG, Bambi.

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



Grummelstein (Boing, 12. Aug 2003, 14:53:46):
Der Grummelstein wurde gewaltig aufgewertet und wiegt Container jetzt
mitsamt Inhalt. Dafuer funktioniert er bei Ruestungen nicht richtig. :)
Letzteres erledigt sich beim naechsten Reboot (moege er bald ueber uns
kommen), danke an Rikus fuer den Mudlib-Bugfix.
  Boing

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



Re: Darwins Questbelohnung... (Bambi, 18. Aug 2003, 15:02:33):
~#! rn=Bambi rt=1060177330 rg=d.gebirge
~#! tid=1060177330
... gibts ab sofort in Version 1.8 und sollte einen brauchbaren Bugfix fuer
falsch berechnete Zeiten bei Uhrzeitangaben besitzen.

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



Schrat (Boing, 26. Aug 2003, 17:18:20):
Ich hab die Schrat-Quest ueberarbeitet und verschoben, sollte es wegen
alter Quest-Objekte zu Problemen kommen, dann wendet euch bitte an mich.
  Boing

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



Die Toilette im Sehergrab... (Bambi, 10. Sep 2003, 11:47:42):
wurde ueberarbeitet und wieder angehaengt. Falls seltsam erscheinende Dinge
passieren sollten, meldet es mir bitte.
Im Zweifelsfall kann Gabylon das Klo kurzfristig noch einmal abhaengen, also
wundert euch nicht, falls ihr doch mal nicht reinkommt.

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



Trollhoehle (Bambi, 10. Okt 2003, 18:35:43):
Ich habe in der Trollhoehle einige "Bugfixes" eingebaut. Konkret betrifft es
die Leichen und die Opferfreudigkeit der Dunkelelfen, sprich, das Mitnehmen
sollte nun nicht mehr funktionieren.
Leider stiess das Szenario "Port Vain wird von einem Dutzend aggressiven
Trollen belagert." nicht auf die erwartete Gegenliebe, so dass entsprechende
Gegenmassnahmen eingebaut wurden.

Des Weiteren koennen ab sofort Alchemiefreunde auf Zutatensuche gehen und auch
welche finden.

Viel Spass beim Sterb^wSpielen.

Bambi.

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



Kampfstaebe (Boing, 10. Okt 2003, 19:52:15):
Die Kaempfstaebe der Wassertrolle sind ab sofort tatsaechlich welche.
Gilt natuerlich nur fuer neue Exemplare.
  Boing

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



Kneipe in Amalgrim (Bambi, 13. Okt 2003, 02:46:35):
Ich habe an einigen internen Sachen des Sehergrabs gebastelt. Sollten sich
diese (durch Bugs) bemerkbar machen: keine Panik. Sobald ich davon weiss,
reparier ichs.

MfG, Bambi - marktforschend.

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



Waffen (Morgoth, 18. Okt 2003, 16:05:57):
Hi,


auch hier in der Drakofestung gibts nun Waffen mit Laenge. Natuerlich auch
hier nur die frisch geclonten.

M*

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



Neues aus der Parawelt (Morgoth, 18. Nov 2003, 21:34:16):
Hi Leichenanwaerter :)


Nach fast 5 Jahren hat es die Balance endlich geschafft, ein *raeusper* neues
Objekt von mir zu genehmigen. Da meine kleinen NPC so vollgestopft sind,
musste ich mal ein bischen was neues basteln.


Irgendwo in der Festung hat sich doch tatsaechlich ein Weg in die Parawelt
geoeffnet. Doch seid gewarnt, geht nicht allein, dies maechtige Objekt ist
sehr gut beschuetzt.

Viel Spass beim Sterben wuenscht...

M*

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



Hydraruestung (Bambi,  7. Dez 2003, 14:16:15):
Obwohl es sich um einen Bugfix handelt, informiere ich hiermit die
(zunkuenftigen) Hydratoeter darueber, dass man keine neue Hydraruestung
bekommt, wenn man noch eine alte Ruestung dieser Zunft hat.
MfG, Bambi.

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



Re: Hydraruestung (Bambi,  9. Dez 2003, 12:19:59):
~#! rn=Bambi rt=1070802975 rg=d.gebirge
~#! tid=1070802975
Update.
Folgende Umstellung tritt ab sofort in Kraft.
1. Wenn man beim Toeten des Hydrakoerpers eine alte Hydraruestung hat, dann
wird die durch eine neue ersetzt.
2. Ist dies nicht moeglich, dann haelt die alte Ruestung wieder sechs volle
Wochen.
3. Unabhaengig davon, ob man die Ruestung anzieht oder nicht, wird sie sich
nach sechs Wochen von euch verabschieden. (*)

Falls euch irgendwelche sonderbaren Dinge in Bezug auf die Ruestung auffallen,
meldet mir das.

MfG, Bambi.


(*) Das ist ein Bugfix.

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



Lupinental (Bambi, 31. Jan 2004, 13:45:27):
Hi.
Ich habe mehrere Hinweise zum Lupinental.
1. Ich schraub(t)e ein paar Bugfixes fuer die Quest ein. Wenn was nicht
funktioniert, wie in der KL, bei mir melden.
2. Die Hydraruestungen bzw. die Lebensdauerberechnung hatte einen kleinen
(*huestel*) Bug, den ich zwar (hoffentlich) behoben habe, der aber dazu
fuehrt, dass verlaengerte Hydraruestungen keine Lebenserwartung haben.
Zumindest die, die vor heute gemetzelt wurden. Inwieweit ich die von Hand
ersetze, weiss ich noch nicht.


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



Re: Lupinental (Bambi, 31. Jan 2004, 15:42:55):
~#! rn=Bambi rt=1075553127 rg=d.gebirge
~#! tid=1075553127
Sodala. Die Sphingen stecken denjenigen, denen eine Hydraruestung zusteht,
eine zu. Man muss nur hinlatschen. Die Verfallzeiten habe ich auf eine Stunde
genau im Logfile eingetragen. Sollte es noch Probleme geben, meldet euch bei
mir.

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



Trollhoehle (Bambi, 21. Feb 2004, 17:33:40):
Ich habe einen kleinen Bugfix (!) in die Miniquestbelohnung der Trolle
eingebaut. Ich habe darueber hinaus auch alle bestehenden Broschen ersetzt, es
braucht also niemand ende zu machen oder (deshalb) zu rebooten.

Bambi.

UDHM

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



Re: Magische Ungereimtheiten (Boing, 21. Mai 2004, 17:38:03):
~#! rn=Nibel rt=1085143080 rg=d.wald
~#! tid=1085143080
Hab ich im Gebirge schon vor knapp nem Jahr gemacht ... ist es eigentlich
jemand aufgefallen? ;)
  Boing

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



*japs (Magdalena, 13. Jun 2004, 15:29:47):
huhu :)
zum einen: eure heilige verschollenheit ist wieder da...
zum anderen: ... sie tut auch wieder was.
zur info: als mini-vorgeschmack ... im gebirge gehts weiter... aeh hoeher...
aber so wirklich interessant ist das noch nicht.
aber ich wollte es mal sagen, nicht dass der ein oder andere (kleine) spieler
dorthin muss und keiner weiss, dass es nun nen neuen weg gibt... bla
gruss
magda, segnet euch alle

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



Bogen von Robin (Boing, 16. Aug 2004, 22:04:43):
Der Bogen von Robin ist ab sofort kein Speer mehr sondern eine
Fernkampfwaffe. Natuerlich nur neue Exemplare.
  Boing

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



Eisstab (Boing,  4. Sep 2004, 11:29:46):
Auf Wunsch einer einzelnen Feline ist der Stab des Eises jetzt ein
Kampfstab.
  Boing

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



Re: Eisstab (Turbo,  4. Sep 2004, 22:17:12):
~#! rn=Boing rt=1094290186 rg=d.gebirge
~#! tid=1094290186
Hmm. Als ebenfalls Feline, aber von einer anderen Gilde, bin ich 
darueber alles andere als gluecklich. Die Waffenklasse WT_STAFF
ist derzeit die Privatwaffenklasse der Tanjian-Gilde, die die
Benutzer allgemeiner Waffenskills zwar zuecken, aber nicht ueben
koennen - oder zumindest ihren Uebungsfortschritt nicht abfragen.
Insofern empfinde ich das ein wenig als Enteignung - eine gute Waffe
weniger, mit der man stumpfe Waffen ueben kann.
Alternativ koennte natuerlich jemand den Hintern hochkriegen, den
Skill - oder wenn er schon drin ist, die Abfragemoeglichkeit - 
fuer die Allgemeinheit bereitzustellen.

Turbo (Kater)

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



Re: Re: Eisstab (Karima,  4. Sep 2004, 22:23:02):
~#! rn=Turbo rt=1094329032 rg=d.gebirge
~#! tid=1094290186
Ein aufmerksamer Leser der MPA haette vorhin auch Maars Bekanntmachung
vernommen, dass Kaempfer ab nun auch den allgemeinen Waffenskill fuer Staebe
abfragen koennen.

Ausserdem: Oh Du armer. Am besten alles, was Katzenkrieger nicht haben
abhaengen.
Die Waffenklasse ist recht neu und vielleicht dauert es ein wenig, bis alle
Gilden die Skills entsprechend realisiert haben etc.


*shrug

Karima - deren Zweitie Deinen Stabskill sehr wohl nachschauen kann.

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



Re^3: Eisstab (Turbo,  4. Sep 2004, 22:29:25):
~#! rn=Karima rt=1094329382 rg=d.gebirge
~#! tid=1094290186
hmm. 1. danke fuer den Hinweis und dank an Maarg. 2. nicht schon
wieder flamen. Ich will garnix abgehaengt sehen. 3. Ja.

Turbo (Kater)

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



Re: Re: Eisstab (Boing,  6. Sep 2004, 16:09:31):
~#! rn=Turbo rt=1094329032 rg=d.gebirge
~#! tid=1094290186
Naja, es geht ja auch nicht darum Dich gluecklich zu machen. ;)
Auf die Anfrage hin hab ich den Stab angeschaut, von der Beschreibung
her ist es halt ziemlich eindeutig ein Kampfstab, deshalb der Typwechsel.
  Boing

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



Re^3: Eisstab (Turbo,  6. Sep 2004, 21:51:52):
~#! rn=Boing rt=1094479771 rg=d.gebirge
~#! tid=1094290186
Bestimmt geht es nicht darum, ebensowenig wie darum, mich zu aergern.
Meine Bedenken wurden im uebrigen ja ausgeraeumt - wenn nicht, waere
es auch nur mein persoenliches Pech gewesen :) 
Das Argument bezueglich des Stabs ueberzeugt mich im uebrigen auch,
er ist in der Tat ein Stab und keine Keule. Auch wenn es ein paar 
Leute mit gutem Keulenskill weniger erfreut.

Turbo (Kater)

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



Re^4: Eisstab (Gloinson,  6. Sep 2004, 21:58:56):
~#! rn=Turbo rt=1094500312 rg=d.gebirge
~#! tid=1094290186
*huestel* *raeusper*
Jammer! Jammer! Jammer! Mein Erstiezweitie ist Klerikerin und nutzt gern den
Eisstab, und sie ist schon so alt. Und jetzt muss sie doch allen Ernstes den
Skill dafuer neu lernen. Und wann wird der Baumstamm WT_LOG? Jammer! Jammer!
Ich dachte, mit dieser bloeden Forscherpunktaenderung, als ich neu forschen
musste waere das Schlimmste vorbei, aber ihr bloeden Magier habt ja immer neue
Ideen. Jammer! Jammer!

Mist. Ich war auch schon mal authentischer.


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



Re^5: Eisstab (Turbo,  6. Sep 2004, 23:05:10):
~#! rn=Gloinson rt=1094500736 rg=d.gebirge
~#! tid=1094290186
das war es, was ich an anderer Stelle mit pervertierten Kommunikations-
strukturen bezeichnete: die Unfaehigkeit, mal ein paar Zeilen lang 
sachlich zu bleiben, nicht zu poebeln oder runterzumachen. 

Turbo (Kater)

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



Re^6: Eisstab (Gloinson,  6. Sep 2004, 23:16:24):
~#! rn=Turbo rt=1094504710 rg=d.gebirge
~#! tid=1094290186
Ey, mach mich hier nicht von der Seite an, du kleiner, alter Sack. Ich war
schon ein Hampelmannspieler, da hast du noch Quests geloest und offensichtlich
wenig Spass dran gehabt. Jawoll.


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



Re: Re: Eisstab (Muadib, 10. Sep 2004, 19:45:33):
~#! rn=Turbo rt=1094329032 rg=d.gebirge
~#! tid=1094290186
der artikel gehoert nach schmarrn

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



Re^3: Eisstab (Muadib, 10. Sep 2004, 19:46:39):
~#! rn=Muadib rt=1094838333 rg=d.gebirge
~#! tid=1094290186
was die folgeartikel bewiesen

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



Wolpertinger aergern .... (Zook, 14. Sep 2004, 17:37:29):
.... verursacht nach wie vor ein schlechtes Gewissen, aber weitere
schlimmere Gesinnungsaenderungen sind nun nicht mehr in dem Masse 
Folge unartigen Verhaltens.

Zook.

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



Re: Wolpertinger aergern .... (Morgoth, 14. Sep 2004, 17:44:25):
~#! rn=Zook rt=1095176249 rg=d.gebirge
~#! tid=1095176249
Wer will die aergern? Kann man die Scheissviecher endlich anzuenden und
abfackeln? Hilft auch sicher beim Lichtsssssdings.

M*

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



Re: Re: Wolpertinger aergern .... (Kellybundy, 14. Sep 2004, 17:45:45):
~#! rn=Morgoth rt=1095176665 rg=d.gebirge
~#! tid=1095176249
Debuggen waere vielleicht ein sinnvoller Anfang :)

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



FDO testen #3 (Bambi,  5. Nov 2004, 10:45:28):
Nach weiteren Anpassungen schlage ich als naechsten Testtermin Dienstag abend
vor. Interessierte Mitglieder bisheriger Testteams und andere Freiwillige
melden sich bitte bei mir.
MfG, Bambi.

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



Hydraruestung (Bambi, 21. Nov 2004, 17:23:27):
Der "Ich habe schon eine Hydraruestung und bekomme keine neue"-Bug sollte
behoben sein.

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



xtreme bugfixing (Baboon,  7. Dez 2004, 11:18:17):
Huhu!

Ich hab mal mein report-file ausgeraeumt.
Danke an alle, die da was eingetragen haben.
(Falls das ueberhaupt noch jemand von
euch liest. Einige der Eintraege
waren "etwas" aelter (1998))

Ausserdem habe ich mal dafuer gesorgt,
dass das ganze Kroppzeug auf der Wiese
nicht mehr weglaeuft. Denjenigen die sich
vielleicht doch noch in mein Tal verirren also
viel Spass.

Baboon (Asbach uralt)


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



Es ist soweit... (Bambi, 12. Jan 2005, 01:35:46):
Es begab sich zu einer Zeit als der Karlsruher Mudstammtisch noch eine
Stammkneipe hatte. Geschichten wurden gesponnen und Ideen geboren. Thesen
wurden darueber aufgestellt, welche Elemente eine gute Geschichte haben
muesse. Und eine Wette wurde abgeschlossen.
Es ging dabei um eine legendaere Abkuerzung und ein Versprechen, ein
anschliessbares ... Etwas ... zu erschaffen. Doch von diesem Etwas ist heute
nicht die Rede. Dieser Artikel handelt vom anderen Teil der Vereinbarung.
Ich sollte ein von Muadib geschriebenes Konzept umsetzen, das mit "FDO"
abgekuerzt wird. Und die Implementierung ist beendet.

FDO ist angeschlossen.


FDO ist eine Miniquest fuer Seher und solche, die es sein wollen. Sie beginnt
im Sehergrab in Amalgrim. Der Name der Kneipe soll aber kein ein Omen sein:
Die simple Tatsache, dass der Wanderer auf der Hochebene keine Informationen
zu Miniquests preisgibt, hat diesen Ort zum Beginn des Abenteuers gemacht.

Muadib hat die Erstkillpunkte bisher noch nicht angepasst. Es koennte also
passieren, dass ihr ploetzlich mehr Stufenpunkte habt als vorher, lange
nachdem ihr die Viecher umgehauen habt. Aufgrund der Komplexitaet der NPCs bin
ich fuer Anregungen bezueglich der Stupse sehr dankbar.

MfG, Bambi.

P.S.
Vielen Dank an alle Tester. Ich verzichte auf eine namentliche Nennung, da ich
zum einen nicht mehr weiss, wer nun alles wann mit welchem Char getestet hat
und zum anderen, weil ich die "wir wissen schon, wie es geht"-Personen nicht
unnoetigen Fragen aussetzen will.


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



Re: Es ist soweit... (Zook, 12. Jan 2005, 10:19:23):
~#! rn=Bambi rt=1105490146 rg=d.gebirge
~#! tid=1105490146
Anregungen bezueglich der Stupse nimmt Muadib auch gerne entgegen.

Zook.

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



Bugfix (Morgoth, 27. Feb 2005, 21:35:55):
Mal wieder ein Bugfix.

Danke an Arathorn (von mir). Ihr duerft ihn gern dafuer pruegeln...wenn ihr
bei Lars wieder raus seid.
M*

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



katze entlaufen (Enero,  6. Mai 2005, 20:13:35):
Meine liebe Hauskatze hat sich im Hoehlenlabyrinth der Schreckenspitze verlaufen. Wer sie mir zurueckbringt bekommt 100 Muenzen Finderlohn.
-----------------------------------------------------------------------------



Re: katze entlaufen (Mingo,  6. Mai 2005, 20:56:28):
~#! rn=Enero rt=1115403215 rg=d.gebirge
~#! tid=1115403215
Ich nehme an, tot ist auch in Ordnung?


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



sack reis (Baboon, 12. Mai 2005, 12:18:51):
Hallo.
Falls es wen interessiert:
Die Wendeltreppe in meinem Tal fuehrt jetzt
nicht mehr laenger ins Leere.

Baboon()

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



Kaum erwaehnenswert... (Bambi, 19. Aug 2005, 19:10:08):
sind die "Neu"anschluesse im Gebirge, wenn man sie mit den Inselsachen
vergleicht. Dennoch moechte ich euch nicht vorenthalten, dass ein paar
Kreidezeichen nun einen Nutzen haben.

Bambi.

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



Ein Gedicht (Humni,  7. Mai 2006, 22:27:18):
Ein Berg hatte einst einen Gipfel
darauf war kein Baum (kein Wipfel)
Nur eine einsame Hoehle
und dort wohnte ohne viel Genoele
eine junge Kreatur, ein Wolf sogar?
Er hatte jedenfalls keine Bar.
Doch er wohnte dort, und murrte nicht,
fuehrte ein Leben, einfach und schlicht.
Doch weiter oben war noch jemand da,
der war lang nicht zu erreichen.
Er redet sicher viel Blahblah,
das ist zum Steinerweichen.

Nun also jeder Flitze
zum Meister der Blitze.

Humni (nuechtern!)

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



Re: Ein Gedicht (Montanus,  8. Mai 2006, 10:18:05):
~#! rn=Humni rt=1147033638 rg=d.gebirge
~#! tid=1147033638
Oh je, muss das Bier auf Boings Party schlecht gewesen sein.

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



Neulich... (Sniper, 17. Apr 2007, 09:39:02):
...in einer kleinen Hoehle in der Naehe des Bergdorfs...

Ebender kommt an.

Robert staunt.

Robert sagt: Wow! Was machst du denn hier?

Ebender knuddelt Robert.

Ebender sagt: Ich bin der Testie von Ennox und soll mir hier die Hoehle
Ebender sagt: ansehen.

Robert rotflt.

Robert troestet Ebender.

Robert sagt: Jaja, das hat Sniper damals auch zu mir gesagt. 'Schau dir
Robert sagt: mal die Hoehle an', hat er gesagt, die wird bald 
Robert sagt: angeschlossen.

Ebender fragt: Damals?

Robert sagt: Ja, ist schon ne ganze Weile her. Welches Jahr haben wir
Robert sagt: denn zur Zeit?

Ebender sagt: 2007. Wieso fragst du?

Robert stoehnt.

Robert sagt: Ich bin schon seit dem letzten Jahrhundert hier unten. Hab
Robert sagt: seit Jahren kein Tageslicht mehr gesehen.

Ebender sagt: WAS? Seit dem letzten Jahrhundert? Was hat Sniper denn die
Ebender sagt: ganze Zeit gemacht? Der ist hier doch zustaendig gewesen, 
Ebender sagt: oder?

Robert sagt: Keine Ahnung, was der so getrieben hat. Hatte wohl was 
Robert sagt: Besseres zu tun. Pah!

Ebender sagt: Da wuerde ich mich aber beschweren. Wir Testspieler haben 
Ebender sagt: doch auch Rechte.

Robert seuft.

Robert fragt: Bei wem soll ich mich denn da beschweren?

Ebender antwortet: Na beim Mudgott. Genau! Beschwer dich bei Zook.

Robert erbleicht.

Robert fluestert: Psssst. Der hat hier doch auch mit gemacht. Der steckt 
Robert fluestert: mit Sniper unter einer Decke. Bei dem koennen wir uns 
Robert fluestert: nicht beschweren.

Ebender arglt.

Zoom kommt an.

Zoom sagt: Hi ihrs.

Robert sagt: Ach sieh an, der Zoom kommt auch mal wieder vorbei.

Ebender knuddelt Zoom.

Ebender sagt: Hi Zoom.

Zoom sagt: Testet ihr auch hier?

Ebender nickt.

Robert sagt: Ja, schon seit vielen Jahren.

Robert fragt: Ebender, sag mal, warum hat dich Ennox eigentlich gerade 
Robert fragt: jetzt hier her geschickt? Und warum bist du wieder hier, 
Robert fragt: Zoom?

Ebender sagt: Ach ich weiss auch nicht. Er meinte sowas von 'Sniper will 
Ebender sagt: nun endlich mal die Hoehle fertig machen und ich hab ihm 
Ebender sagt: da ein wenig unter die Arme gegriffen. Schau dir das mal 
Ebender sagt: an.'

Zoom sagt: Ja, Zook erzaehlte auch sowas.

Robert staunt.

Robert fragt: Heisst das etwa, dass die Hoehle nach all der Zeit wirklich
Robert fragt: angeschlossen wird?

Ebender sagt: Naja, nicht ganz. Aber zumindest ein erster Teil soll wohl
Ebender sagt: bald zugaenglich sein.

Robert freut sich.

Robert sagt: Super! Dann kommen wir ja vielleicht bald hier raus.

Ebender schuettelt den Kopf.

Ebender sagt: Ich fuerchte nicht. Ennox meinte, sie wollten in der 
Ebender sagt: naechsten Zeit auch die anderen Bereiche der Hoehle fertig 
Ebender sagt: machen. Die werden wir dann wohl auch noch testen muessen.

Zoom sagt: Ja, Zook will wohl auch wieder richtig mit einsteigen. Da 
Zoom sagt: kommt noch Arbeit auf uns zu.

Robert sagt: Naja, wenigstens hat man wieder was zu tun. Und ich stecke 
Robert sagt: nicht mehr allein hier unten.

Ebender sagt: Na dann... Wolln wir uns mal ans Testen machen, oder?

Robert sagt: Ja, machen wir das. Vielleicht kommen dann ja sogar bald ein
Robert sagt: paar Spieler hier rein.

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



Danksagungen (Sniper, 17. Apr 2007, 09:50:58):
Endlich ists soweit: Der erste Teil der ollen Hoehle ist da!

Herzlicher Dank geht an Ennox fuer die Unterstuetzung in letzter Zeit,
Maharet fuer die oft noetigen Tritte ins verlaengerte Rueckgrat, von
Ennox und mir endlich mal fertig zu werden, Tylak fuers Testen dieses
ersten Teils und Zook fuers Testen und die Abnahme in Vertretung von Boing
(und die Willensaeusserung, beim Rest wieder richtig mit einzusteigen ;-))

Sollte Ennox oder Zook sonst noch jemanden dort unten beschaeftigt haben,
so bedanke ich mich unbekannterweise auch an diese Adresse ;-)

Und nun ab in die Hoehle!

Sniper

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



Hydratoeter (Bambi, 17. Mai 2007, 14:44:31):
Ich habe eine Meldung eingebaut, die den Hydratoeter nennt, auch wenn dieser
schon eine Ruestung hat. Falls sich irgendetwas anders verhalten sollte als
erwartet, bitte bei mir melden.
Bambi.

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



Seltsame Briefe (Humni,  1. Jul 2007, 22:44:37):
Huhu,

in meiner Drachenhoehle fand ich folgenden Brief:

Lieber Humni,

kanns Du vielleich jemandn suchn der mir hilf? Der bloede Elf will mich
waschn. Kanns du den einfach auffressn? Bittae!

Deine Lisa aus der Zwaernstatt

Ausserdem fand ich noch einen Brief:

Verehrter Herr Drache,

ich habe erhoehte Schwierigkeiten dabei, die Bevoelkerung des Fleckens Erde,
der sich Zwergenstadt nennt, seiner Bestimmung zuzufuehren. Ich wuerde daher
Eure Wenigkeit darum bitten, mir einen aufrichtigen Elfen zu schicken.

Hochachtungsvoll
Exzelsius Wonnenplansch

Ich hab auf beides keine Lust, und ich glaube, das ist nicht der Rede wert.
Aber wer mag kann ja mal gucken gehen.

Viel Spass dabei.

Humni
PS: Erwartet jetzt bloss nicht zuviel ;-)

PPS: Verbesserungsvorschlaege koennt ihr im Repfile absetzen (oh Jof, was sag
ich da...). Ich werde aber nicht jedes abgesetzte Kommando einbauen. Wie immer
halt. ;-)


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



Re: Metzelspielplatz ausgegraben (Ennox, 24. Aug 2007, 08:32:57):
~#! rn=Ennox rt=1187807706 rg=d.unterwelt
~#! tid=1187807706
ploetzlich und unerwartet wurde ein weiterer Zugang zu der von Janne 
entdeckten Hoehle entdeckt. Irgendwo in der Osterbachschlucht wurde ein
Orkbabyschnuller gefunden. So kommen nun endlich auch Anfaenger in das 
"Anfaengergebiet" :)
i.A. Ennox

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



Blumenvasen (Ennox, 24. Aug 2007, 09:39:59):
gibts jetzt an einer einschlaegigen Stelle.

Ennox

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



Drakonierfestung (Ark, 11. Sep 2007, 13:20:49):
Eine kleine Quest in der Festung gibt jetzt wieder Punkte. Funktionierte
leider seit ca. 6 Jahren nicht mehr so, wie es sollte. Vielleicht mal wieder
ein Anreiz, bei den Drachen vorbeizuschauen.
Ich bin natuerlich nicht schuld ... es wurde nur vergessen :-)


              *** ARK * the * Magnificent ***


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



Eiswurm (Boing,  5. Nov 2007, 17:21:35):
Der Eiswurm im Warok Gebirge muesste nun wieder funktionieren. Viel Spass
beim metzeln (oder gemetzelt werden). Probleme bitte an mich melden, danke.
  Boing

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



Duesterwald (Ennox, 16. Jan 2008, 23:31:08):
~#! on=Ennox ot=1200522581 og=d.wald
Ich bin grad dran, die Auswertung vom Para-DW zu ueberarbeiten.
Frage an Euch. Sind die 10 Plaetze ok, oder waere Euch eine laengere Liste
lieber, wo man auch den eigenen Platz sieht.
Da es offensichtlich mehrmals geht wird dann wohl der schnellste Run drin
bleiben mit den Helfern und der Zeit von da. Also geht ggf. Euer kostbarer
erster Run floeten.

Mesi

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



Re: Duesterwald (Ennox, 16. Jan 2008, 23:31:56):
~#! rn=Ennox rt=1200522668 rg=d.gebirge
~#! tid=1200522668
Es sind natuerlich 20 Plaetze aktuell.
Mesi

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



Re: Re: Duesterwald (Gnome, 16. Jan 2008, 23:33:16):
~#! rn=Ennox rt=1200522716 rg=d.gebirge
~#! tid=1200522668
alle auflisten mit sekundenangabe waere toll.
wer es mehrmals macht, rechnet wohl damit, dass sein erster run
wieder verschwindet, bzw. will es wohl eher auch so. ;)

gnOme

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



Re: Duesterwald (Zesstra, 16. Jan 2008, 23:35:33):
~#! rn=Ennox rt=1200522668 rg=d.gebirge
~#! tid=1200522668
Mhmm, ich moechte zu bedenken geben, dass Feuerwehr u.U. mit Absicht die
20-Platz-Topliste gebaut hat und man bei inhaltlichen Aenderungen, die
wesentlich sind, vielleicht doch fragen muesste.

Zesstra

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



Re: Duesterwald (Nicolai, 17. Jan 2008, 01:21:12):
~#! rn=Ennox rt=1200522668 rg=d.gebirge
~#! tid=1200522668
wie waers mit top20 fuer alle sichtbar und jeder sieht seinen
eigenen run unabhaengig von der platzierung? (analog zu
den toplisten der arena).
haette den vorteil dass man auch noch jahre nach bestehen
weiss/erinnert wird, wer einem alles geholfen hat damals.
hachja gute alte zeit :)

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



Re: Re: Duesterwald (Ennox, 17. Jan 2008, 01:35:43):
~#! rn=Nicolai rt=1200529272 rg=d.gebirge
~#! tid=1200522668
Dummerweise gibt es fuer alle Runs nur einen Log-Eintrag pro Spieler, nur
112 hat 2. So das die Infos ueber den ersten Run wohl da sind, aber keine
ueber die folgenden :(. Ansonsten finde ich die Idee gut.
Mesi

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



Re^3: Duesterwald (Todie, 17. Jan 2008, 09:02:02):
~#! rn=Ennox rt=1200530143 rg=d.gebirge
~#! tid=1200522668
Naja, wer DW ein weiteres Mal macht, um sich zu verbessern, dem ist sein
erster Run nicht wichtig, insofern wird der halt ueberschrieben.
Aber Vectors Idee finde ich auch gut.

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



Re^4: Duesterwald (Humni, 18. Jan 2008, 13:49:06):
~#! rn=Todie rt=1200556922 rg=d.gebirge
~#! tid=1200522668
Ich faende eine normale Topliste mit der Zusatzinfo "Du bist uebrigens auf
Platz 107, Dir haben Hugalf, Oham und Sharenug geholfen, und Du hast 3 Wochen,
2 Tage, 3 Stunden und 12 Minuten gebraucht" toll. Wer auf Platz 21-106 ist
oder hinter 107 ist fuer mich vielleicht nicht so schrecklich interessant.

Aber nur, wenn Du dafuer wirklich Zeit hast, ich sehe das nicht als dringend
an.

Humni

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



Re: Es ward Licht im Duesterwald (Grimmborn,  8. Feb 2008, 07:40:55):
~#! rn=Ennox rt=1202451781 rg=d.gebirge
~#! tid=1202451781
Deine Zeilenlaenge ist kaputt.

GdA

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



Es ward Licht im Duesterwald (Ennox,  8. Feb 2008, 08:07:27):
Liebe Para-N'os'Fret-Metzler,

auf Bitten von Zesstra und Arathorn hab ich mich des Bestenlisten
Masters der Duesterwald-Quest mal angenommen und den etwas debuggt und
gefixt (d.h.  neu geschrieben).
Es wird jetzt die Liste aller Leute, die den Kampf gemacht haben in
einem sauberen Format intern gespeichert.
Damit einhergehend wurden einige Stellen im Duesterwald und auch die
Plakette angepasst.

Ich habe die Plakette bei Euch allen aktualisiert. Dabei ging leider
die Einstellung ob die Plaketteninfos in Eurem Extralook auftauchen,
verloren. Per default ist das eingeschaltet, wer das bewusst
ausgeschaltet haben sollte, moege es doch bitte noch einmal machen.
Es gibt einen neuen Plakettenbefehl "bestenliste meine".

Wenn es Probleme mit der Plakette oder im Duesterwald geben sollte,
meldet Euch bitte bei mir und nicht bei einem der EM oder RM Gebirge.

Wenn ihr noch Ideen habt, wo und wie man die erweiterten Informationen
noch benutzen koennte, dann sagt auch einfach Bescheid.

Danke,
Ennox

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



Maerchenquest (Amynthor, 10. Jan 2009, 16:51:01):
Hallo,

seit gestern abend ist meine ueberarbeitete Fassung der Maerchenquest
angeschlossen. Das meiste davon sind technische Dinge (im Idealfall solltet
ihr davon nichts merken), ein bisschen was ist allerdings neu...

Wenn es irgendwelche Probleme damit gibt, lasst es mich wissen.

Amynthor


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



Re: Maerchenquest (Mirimadel, 10. Jan 2009, 20:00:56):
~#! rn=Amynthor rt=1231602661 rg=d.gebirge
~#! tid=1231602661
Hi Amynthor,

danke das Du die Quest des Maerchens, wieder gebaut hast. Danke fuer Deine
Arbeit.

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



Spielfreudige Bergsteiger gesucht (Zzrxes, 11. Jan 2009, 11:19:23):
Hallo ihrs,

fuer ein Spiel mit Wuerfeln, Bergsteigern und 12 Seilen suche ich noch
Tester. Interessenten moegen sich bitte bei mir melden :)

*knuddels*
Zz

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



Tote Kampfbleche... (Zesstra,  8. Jul 2009, 19:36:07):
Mir wurde zugetragen, dass (neuerdings?) das Kampfblech der SSP auch in totem
Zustand den Ausgang blockiert und nun offenbar auf eine Reaktion eines Magiers
gewartet wird.
Laut Code scheint mir das Verhalten erstmal gewuenscht zu sein und mir ist im
Gegenteil nicht klar, warum das bisher nicht der Fall gewesen sein sollte. Die
in Frage kommenden Codestuecke sind seit min. letztem August (vermutlich auch
viel laenger) nicht mehr geaendert worden.
Da ich kein RM der Region bin und nicht wissen kann, welches Verhalten Boing
beabsichtigt, moechte ich bitten, euch ggf. zur Klaerung seiner Absicht
zunaechst direkt an ihn zu wenden.

Zesstra

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



Re: Tote Kampfbleche... (Boing,  8. Jul 2009, 20:39:31):
~#! rn=Zesstra rt=1247074567 rg=d.gebirge
~#! tid=1247074567
Das Ding kann man einfach aufheben, ich sehe da kein Problem.
Wuesste auch nicht wieso sich das ploetzlich (von selbst) geaendert
haben sollte.
  Boing

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



Re: Re: Tote Kampfbleche... (Montanus, 20. Jul 2009, 16:05:24):
~#! rn=Boing rt=1247078371 rg=d.gebirge
~#! tid=1247074567
Magierhilfe!

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



Re^3: Tote Kampfbleche... (Ark, 20. Jul 2009, 19:12:48):
~#! rn=Montanus rt=1248098724 rg=d.gebirge
~#! tid=1247074567
Boing ist nachgewiesenermassen kein Magier!


              *** ARK * the * Magnificent ***


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



Re: Re: Tote Kampfbleche... (Gnome, 22. Jul 2009, 23:18:46):
~#! rn=Boing rt=1247078371 rg=d.gebirge
~#! tid=1247074567
also meines wissens nach war das noch NIE noetig.
und ich mudde schon ne weile...

gnOme

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



Re^3: Tote Kampfbleche... (Boing, 29. Jul 2009, 23:29:57):
~#! rn=Gnome rt=1248297526 rg=d.gebirge
~#! tid=1247074567
Naja, Du hast nen Magier und kannst auf das Aenderungsdatum schauen ...
letzte Aenderung war im Maerz 2008. Ich schiebe dann einfach mal pauschal
alle Schuld auf die Mudlib. :)
  Boing

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



Re^4: Tote Kampfbleche... (Mesirii, 29. Jul 2009, 23:30:23):
~#! rn=Boing rt=1248902997 rg=d.gebirge
~#! tid=1247074567
Immer diese Lookup-Magier
Mesi

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



Totaler Ausruestungverlust (Ennox,  7. Aug 2009, 20:39:40):
im Raum bei Peter dem Schild passiert jetzt nicht mehr. Danke an die RMs
Gebirge fuer die Zustimmung.
Ennox

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



Der Stammgast (Bambi,  8. Sep 2009, 21:45:00):
Hallo Mitmudder.

Nach der Trollhoehle und dem Ogerwald darf ich endlich wieder einen
Neuanschluss praesentieren, der auch den kleineren Spielern hoffentlich ein
paar nette Minuten bietet. Obwohl das Sehergrab zwar nicht aller Welt
Stammkneipe ist, hat sich der eine oder andere NSC gefunden, der gerne
regelmaessig dort etwas isst und trinkt. Einem davon koennt ihr vielleicht bei
etwas helfen.

Ich wuensche euch viel Spass beim Questen und bedanke mich bei den vielen
Testern, die mir nicht nur Fehler und fehlende Details gemeldet haben, sondern
auch einige Anregungen, die zu Verbesserungen der Quest gefuehrt haben.

Bambi

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



Re: Der Stammgast (Zesstra,  8. Sep 2009, 21:45:57):
~#! rn=Bambi rt=1252439100 rg=d.gebirge
~#! tid=1252439100
Super! Herzlichen Glueckwunsch zum Anschluss! :-)

Zesstra

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



Punkteschaenderdaemon gefoppt! (Ark, 27. Okt 2009, 20:06:06):
In einer cleveren Hinterhaltaktion wurden dem Daemon neue Kills entlockt, die
jetzt auf Kerbholz reagieren und auf der Plakette sichtbar sein duerften. Der
Daemon scheint nicht erfreut zu sein und sucht nach Ausgleich ...


              *** ARK * the * Magnificent ***


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



Eine kleine rote Schachtel (Arathorn, 31. Dez 2009, 20:16:36):
... wurde entsperrt.

Arathorn.

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



Der Ogerwald (Bambi, 19. Feb 2010, 13:05:52):
Hallo.

Ich habe im Ogerwald am Raumreset gebastelt. Die jetztige Variante sollte
spielerfreundlicher sein und zu weniger Reset-Toden fuehren. Daueridlen wuerde
ich da drinnen an eurer Stelle trotzdem nicht.

Gruss,
Bambi

P.S.
Bei auftretenden Bugs o.ae. einfach eine Mail an mich schreiben.

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



Anpassung von Hemden (Humni, 20. Nov 2011, 23:24:10):
Huhu,

gewisse Hemden aus einem sehr wertvollen Material aus einem schrecklichen
oberen Teil eines Berges, die man in heissen Regionen findet, koennen nun nur
noch von Spielern angezogen werden, die auch in die entsprechenden Gebiete
kommen.

Gilt evtl. erst fuer neu geholte solche.

Beschwerden an mich.

Humni, im Auftrag der Balance

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



Die Insel ist erreichbar (Bambi, 19. Feb 2012, 18:12:53):
Hallo Mudder.

Mit geringfuegiger Verspaetung (etwa acht Jahre oder so) laesst euch der
Fischer noerdlich von Amalgrim mit den Booten zur Insel im See fahren.

Ich bedanke mich bei meinen ausdauernden Testern und wuensche euch viel Spass
beim Erkunden.

Bambi

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



Re: Die Insel ist erreichbar (Mirimadel, 20. Feb 2012, 15:58:07):
~#! rn=Bambi rt=1329671573 rg=d.gebirge
~#! tid=1329671573
Das neue Gebiet ist erste Klasse, da kann ich Bambi nur gratulieren und vielen
Dank fuer dieses Gebiet.
Metzeln und Forschen alles zusammen einfach grossartig und beim Nachschlagen
im Netz sah ich auch wie Mike Krueger laechelt.
Miri drueckt auf den "Gefaellt mir Button"

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



"Nex' Fluch" (Bambi, 23. Feb 2012, 17:15:11):
Das o.g. Item hoert absichtlich nicht auf die ID "fluch". Spaetestens als das
Meditiere der Tanjian das Objekt (fuer den Spieler ungewollt) entsorgt hat,
hab ich sie ausgebaut. Bitte keine Bugmeldung fuer die "fehlende" ID mehr
absetzen.

Ansonsten bedanke ich mich mal bei den bisherigen Spielern fuer den
ausgiebigen Besuch und die vielen tollen Anregungen, die ich groesstenteils
auch umgesetzt habe.

Nach meinem Kenntnisstand ist im Gebiet noch kein Spieler gestorben. Ich
verbuche das mal als Positiv-Werbung und wuensche euch weiterhin viel Spass im
Lab. }=)

Bambi

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



Re: "Nex' Fluch" (Ark, 24. Feb 2012, 01:11:07):
~#! rn=Bambi rt=1330013711 rg=d.gebirge
~#! tid=1330013711
[Tod:Lars] Ein selbstmoerderischer Sprung hat gerade Knz umgebracht.
[Tod:Ein selbstmoerderischer Sprung] Mehr! Mehr Kerben!

[Tod:Lars] Ein Monster hat gerade Knaz umgebracht.


              *** ARK * the * Magnificent ***


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



Re: Re: "Nex' Fluch" (Bambi, 24. Feb 2012, 12:52:30):
~#! rn=Ark rt=1330042267 rg=d.gebirge
~#! tid=1330013711
Ich bin nach wie vor bei 738. Keine der Kerben geht auf mein Konto.

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



Re: "Nex' Fluch" (Bambi, 24. Feb 2012, 13:02:01):
~#! rn=Bambi rt=1330013711 rg=d.gebirge
~#! tid=1330013711
Zur Ehrenrettung der Tanjian-Gilde sei gesagt, dass die Tanjian da nichts
verbockt haben.

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



Hammerfall (Ark, 17. Jun 2012, 11:51:59):
Ich habe grad mal den Balance-Beschluss aus letztem Jahr umgesetzt, der
gewisse Pfeile und einen Bogen betrifft. Die sind jetzt ein bisschen auf der
Erde angekommen, was Schwerkraft, Handlungsfreiheit etc. betrifft. Es ist noch
nicht alles umgesetzt, sie sind also (noch) unbegrenzt haltbar, aber das wird
in absehbarer Zeit auch noch geaendert werden muessen. Auffaellige Aenderungen
duerften die Schadensberechnung sein, die staerker auf individuelle Attribute
eingehen sowie die Beruecksichtigung von Laehmung des Schuetzen. Kosten wurden
leicht gesenkt. Pfeile verschiessen ist jetzt auch eine Aktion innerhalb der
Kampfrunde. Und wer jetzt die Haende ueber dem Kopf zusammenschlaegt und sagt
"das war vorher nicht so? omg", dem kann man nur entgegnen "Siehste mal." :-)


              *** ARK * the * Magnificent ***


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



Robin sagt: Jo is denn heut scho Weihnachten? (Ark, 25. Okt 2012, 23:23:32):
Und man kann sagen: Jawohl.
Denn der gruene Mann hat endlich normgerechte Ausruestung bekommen. Einen
Koecher mit schoenen, tollen Pfeilen, wie sie die Welt noch nicht gesehen hat.
Mit Ausnahme der Balance, denn die hat sie verbessert. Und mir, denn ich hab
die Anleitung genommen und das alte Holz zugunsten des formschoenen neuen
zerbrochen.
Man wird feststellen, dass die Pfeile jetzt noch wertvoller sind als zuvor,
denn sie scheinen immer mal wieder gestohlen zu werden, wenn man mal wieder
nicht in den Koecher schaut. Das ist der natuerliche Schwund, denn so tolle
magische Pfeile halten eben nicht ewig. Aufgrund des tollen neuen Designs ist
der Koecher nun noch magischer als zuvor, denn er funktioniert jetzt nach dem
Prinzip "Aus zwei mach eins". Das funktionierte vorher noch nicht, passiert
aber automatisch und unumkehrbar, wenn 2 Koecher in denselben Raum, Behaelter
oder ins eigene Inventar gelangen. Man wird feststellen, dass die Pfeile jetzt
auch etwas wiegen, nicht nur der Koecher. Dafuer laesst sich der Koecher nicht
mehr verscherbeln ... was gut ist, wenn ihn boese Orks oder anderes Gesocks
aus der Leiche nehmen und zu Geld machen wollen.
So, Robin, jetzt viel Spass mit Deinem neuen Koecher und den schoenen Pfeilen.
Du verlierst hoffentlich keine.


              *** ARK * the * Magnificent ***


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



Unglaublich schwierige Aufgabe... (Humni, 21. Nov 2012, 21:44:52):
Ich kann mir nicht vorstellen, dass das jemand schaffen kann. Es gibt
vermutlich auch niemanden von Euch, der sich der intellektuellen und
kaempferischen Herausforderung stellen mag. Seid gewarnt: Es wird eine der
haertesten Missionen, die ihr je gesehen habt.

Aber wenn ihr es schafft, diesen Artikel zu lesen, besteht Hoffnung.

Geht in Euer Verderben.

Geht in die Diamantbar.

Sucht dort nach der Aufgabe.

Sie ist nur fuer Euch.

Viel Erfolg. Moege Lars nett sein.

Humni

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



Re: Unglaublich schwierige Aufgabe... (Ark, 21. Nov 2012, 21:48:32):
~#! rn=Humni rt=1353530692 rg=d.gebirge
~#! tid=1353530692
Ich habe diskutiert.

Ich habe geweint.

Ich habe gedroht.

Ich habe mit Worten geschossen.

Aber Humni oeffnete sein Maul und giftiger Atem machte sich um mich breit.

Ich gab auf.


              *** ARK * the * Magnificent ***


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



Geniesst die Hoehenluft (Miril, 19. Feb 2013, 20:21:08):
Touristen aufgemerkt!

Die Bergsteigerschule Joseppe&Glifuor bietet ab sofort ihre Dienste gegen
kleine Gefaelligkeiten an:

Ausruestungsberatung
Konditionstraining
Atemuebungen
uvm.

Wenden Sie sich vertrauensvoll an uns, und Unfaelle im Hochgebirge werden bald
Geschichte sein. Geniessen Sie die Hoehenluft des Waroks und bewundern Sie
unsere wundervolle Gebirgslandschaft. Geniessen Sie auf der Almhuette lokale
Koestlichkeiten. 

Ihr Team der Bergsteigerschule Joseppe&Glifuor


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



Goblinschminke... (Zesstra,  2. Jul 2013, 21:53:19):
Ich hab mal an der Goblinschminke grossflaechig gebastelt. Wenn da im
Verhalten was anders nicht in Ordnung ist, sagt Bescheid.

Zesstra

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



Kunde (Humni, 24. Okt 2013, 22:08:27):
Fuer Elfen und andere mit INT>21: Mich ueberkam Kunde, dass in der
Zwergenstadt ein goettlich inspiriertes Zeichen seinen Niederschlag gefunden
hat, das so goettlich ist, dass man die Goettlichkeit nicht einmal bemerkt, da
sie sich in der Selbstverstaendlichkeit manifestiert. Gehet hin und sucht, so
werdet Ihr finden die Aufgabe.
Fuer Zwerge: Hurri. Hilfe. Heiss. Loch. Helfen. Los.
Fuer Orks: Los, Zwerge hauen. Quester Weicheier.
Fuer alle anderen: Es gibt ein Problem in der Zwergenstadt.

Danke an Ark fuers Abnehmen und an Zook fuer eines der inspirierendsten
Morgenerlebnisse im diesjaehrigen Sommercamp.

Humni

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



Nex' Fluch (Arathorn,  5. Feb 2014, 19:15:16):
Hallo zusammen,

wer von euch noch aeltere Ausgaben von Nex' Fluch rumliegen hat und fest-
stellt, dass man den nicht mehr anziehen kann, moege sich bitte bei mir
melden. Die Rueckfrage eines Spielers brachte mich grad darauf, dass ich
im Zuge einer Reparatur des Umhangs alle im Umlauf befindlichen Objekte
ausgetauscht hatte, und diese daher jetzt ihren Besitzer nicht mehr kennen.

Gruss, Arathorn.

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



Wartungsarbeiten (Humni, 10. Apr 2014, 23:02:48):
Aufgrund von Wartungsarbeiten ist der Ogerwald derzeit nicht begehbar. Wir
hoffen bald auf Abhilfe.

Humni

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



Ogerwald (Arathorn, 19. Nov 2014, 00:30:35):
Hallo zusammen,

nach einiger Bastelei hoffe ich, dass das technische Problem im Ogerwald
nun behoben sein duerfte. Ich habe daher das Gebiet wieder angeschlossen.

Wir werden das Ganze weiterhin kritisch beobachten und behalten uns vor,
das Gebiet auch wieder abzuhaengen, sollte sich herausstellen, dass wir die
Fehler nicht vollstaendig erwischt haben und weitere Reparaturen erforderlich
sind.

Viel Spass mit den Ogern!

Gruss, Arathorn.

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



Kampfstab im Labyrinth (Bambi, 12. Jan 2015, 17:41:18):
Hi.

Nach Klaerung des Sachverhalts und in Absprache mit Mitgliedern des
Balance-Teams habe ich den Kampfstab minimal ueberarbeitet. Vielen Dank an all
die Leute, die mir deshalb auf die Fuesse getreten sind. }=)

Bambi

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



Re: Kampfstab im Labyrinth (Bambi, 12. Jan 2015, 17:43:34):
~#! rn=Bambi rt=1421080878 rg=d.gebirge
~#! tid=1421080878
Ahso, ganz vergessen: Man bekommt keinen Schaden mehr beim Wegstecken. Falls
doch, ist das nicht beabsichtigt. In dem Fall bitte mir Bescheid geben.

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



Der Stammgast - Blindentauglichkeit (Bambi, 13. Jan 2015, 23:02:24):
Hallo zusammen.

Nachdem ich mich noch einmal mit Bugfix ausgetauscht habe, habe ich nun eine
Ueberarbeitung der Anzeige des Koboldraetselspiels vorgenommen. Es ist nun
moeglich, zwischen einer grafischen Anzeige, einer Anzeige fuer Braillezeilen
und einer Anzeige fuer Sprachausgabe zu waehlen. Davon ist nur die Anzeige
fuer Braillezeilen neu, die die Informationen zum Spielfeld stark komprimiert.

Wer sich berufen fuehlt, das zu testen, moechte das gerne tun, und mir dann
eine Mud-Mail schreiben, wenn er oder sie Verbesserungsvorschlaege dazu hat.

Bambi

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



Nex-Set-Items (Bambi, 14. Jan 2015, 08:15:41):
Hi.

Vor einiger Zeit wurde gewuenscht, dass die Nex-Set-Items auf eine gemeinsame
ID hoeren. Das tun sie nun. Zumindest neu erschaffene Items.

Bambi

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



Eine spielerfreundliche Tankstelle (Amaryllis, 21. Feb 2015, 00:53:43):
... wurde entsprechend angepasst.

An dieser Stelle nochmal der Hinweis, dass das wissentliche Ausnutzen solch
offensichtlicher Fehler nicht erwuenscht ist und entsprechend geahndet werden
kann.

Im Zweifelsfalle einfach einen Magier fragen/informieren.

Ama*

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



Thors Hammer (Ark,  2. Mai 2015, 10:29:28):
Da gibt es ausser der Einstufung bzgl. Spielerlevel auch noch eine bindende
Einschraenkung bzgl. Gildenlevel (man muss in einem Gebiet kaempfen, in dem
das Tottanken von NPC durch Kitzeln eher nicht moeglich ist). Man kann jetzt
streiten, ob die sein muss oder nicht, aber ich wuerde sie gerne, um Frust zu
vermeiden, drin lassen. Den Wanderer werde ich dahingehend aufschlauen, dass
er darauf hinweist. Das ist btw. keine Garantie, dass man keine Probleme
bekommt, nur weil man das Gebiet aufsuchen darf :-)


              *** ARK * the * Magnificent ***


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



Kampfstab aus dem Minotaurenlabyrinth (Bambi, 27. Mai 2015, 15:51:39):
Hi.

Nach freundlichen Hinweisen und Bitten wurde der Kampfstab ueberarbeitet,
erneut von der Balance abgenommen und spielerfreundlicher wieder
angeschlossen. Falls er sich unerwartet verhalten sollte, gebt bitte Bescheid.

Vielen Dank an die Balance und an alle Spieler, die am Ball geblieben sind.

Bambi

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



Verschollenes Artefakt wieder aufgetaucht (Arathorn,  6. Apr 2016, 01:14:23):
Hallo zusammen,

gerade eben ist aus den nachtblauen Tiefen ein lange verschollen geglaubtes,
magisches Artefakt sprichwoertlich wieder "aufgetaucht", das nun erneut im
Besitz von Water Luh weilt. Bei Interesse wendet euch bitte an ihn, ich
vermutet nur, er wird sein geschaetztes Kleinod nicht kampflos hergeben
wollen.

Danke an Croft und Humni fuer die Unterstuetzung.

Gruss, Arathorn.

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



Rollende Steine (Arathorn, 24. Apr 2016, 21:15:05):
Hallo zusammen,

seit gefuehlten Aeonen waren einige sagenumwobene, steinerne Artefakte 
in den Nebeln der Geschichte verschollen, ja sie schienen gar fuer immer
verloren. Jedoch gelang es uns nun mit Hilfe ihres Erschaffers und der
Mitglieder der Balance, die Nebel zu zerstreuen und sie wieder ans Licht
der Welt zu holen, auf dass die Spielerschar erneut ihre Freude daran 
haben moege.

Einige alteingesessene Spieler werden sich an die Artefakte sicher noch
erinnern, werden aber womoeglich feststellen, dass sich ihre Macht und 
ihre Faehigkeiten etwas veraendert haben moegen. Dies ist der unnachgiebigen
Kraft der Zeit geschuldet, jedoch haben sie sich nicht zur Unkenntlichkeit
gewandelt.

Ich wuensche viel Erfolg bei der Artefaktjagd, viel Spass mit den Objekten
und bitte um Rueckmeldungen, wenn etwas nicht korrekt zu funktionieren
scheint bzw. es zu unerwarteten Zwischenfaellen kommt. (Fuer Tode ist 
jedoch jede und jeder selbst verantwortlich.)

Gruss, Arathorn.

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



Soruths Rache (Arathorn, 26. Apr 2016, 00:32:06):
Hallo zusammen,

in letzter Zeit gab es Schwierigkeiten in der Quest "Soruths Rache", die
sich darin aeusserten, dass offenbar die arkanen Geister der Quest aus
heiterem Himmel nicht mehr verstanden, was ihr so geredet habt, und daher
die Quest nicht zuende gespielt werden konnte. Ich habe mir das heute abend
mal vorgenommen und denke, dass ich das Problem beheben konnte.

Wer die Quest in letzter Zeit unterbrechen musste oder die immer schon mal
spielen wollte, ist hiermit herzlich eingeladen, sie in Angriff zu nehmen
und anschliessend zu berichten, ob wirklich alles wie erwartet funktioniert.

Danke & Gruss, 
Arathorn.

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



Felljacken und Fellstiefel (Miril,  9. Jun 2016, 00:59:25):
Gewisse Felljacken und Fellstiefel, die offenbar fuer den ein oder anderen
wichtig sind, sind nun wieder erreichbar. 

Miril

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



suche maeuse (Maunzerle, 28. Feb 2017, 18:27:49):
Maunzerle sucht verzweifelt nach leckeren Maeusen, die letze Feldmaus ist schon verdaut ... Zaubertraenke sind alternativ auch ok ;-)**
-----------------------------------------------------------------------------



Nebenwirkungen... (Arathorn,  5. Mar 2017, 17:48:00):
Hallo zusammen,

mir ist gerade bei der Reparatur von Alarins Schmuckstuecken ein Fehler
unterlaufen, der dazu fuehrt, dass alle bisher im Spiel befindlichen
Schmuckstuecke zerstoert wurden. Leider kann ich nicht mehr nachvollziehen,
wem jeweils welches gehoerte, so dass ich auch nichts wiederherstellen kann.
Ich muesst sie euch leider neu holen.

Tschuldigung...

Gruss, Arathorn.

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



Re: Nebenwirkungen... (Gloinson,  5. Mar 2017, 18:50:36):
~#! rn=Arathorn rt=1488732480 rg=d.gebirge
~#! tid=1488732480
Kleiner Nachtrag aus eigenem Wissen: Verlobungsringe sind nicht betroffen, da
sie zwar dort bestellt aber von Rikus' hergestellt worden sind.


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



Robins Pfeile (Bugfix, 10. Apr 2017, 17:21:23):
Moin,

Robins Pfeile zerfallen jetzt etwas haeufiger, dafuer in kleineren Mengen. Auf
laengere Zeit gesehen bleibt es gleich, sollte so aber etwas
spielerfreundlicher sein.

Bugfix

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



Bergarbeiten (Bugfix, 12. Apr 2017, 22:06:35):
Moin,

Wie das halt immer so ist bei neuen Regionsmagiern bin ich grade dabei allen
moeglichen und unmoeglichen alten Code zu ueberarbeiten. Sollten sich Dinge
ungewohnt verhalten gebt mir bitte bescheid.

Gebirgsfix

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



Ein vielkoepfiges Monster (Bugfix, 14. Apr 2017, 10:37:11):
Moin,

Ein allseits bekanntes Monster beisst einen jetzt, wie es das eigentlich auch
schon immer tun sollte, anstatt seine Koepfe auf einen drauf zu kloppen.

Gebirgsfix, auf Gejammer eingestellt.

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



Eine legendere Ruestung ... (Bugfix, 14. Apr 2017, 18:10:07):
... musste leider erneuert werden, ihr muesst sie also ggf. neu ... nein,
nicht holen, nur anziehen. ;-)

Gebirgsfix

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



Versteinernde Leichen ... (Bugfix, 14. Apr 2017, 18:57:48):
... behalten jetzt nur noch Waffen, wenn der toedliche Schlag kein Zauber war.

Gilt nur fuer neue NPCs, es laufen also noch einige rum, die euch die Waffe
aus der Hand zaubern koennen.

Gebirgsfix

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



Hydraruestung (Bugfix, 23. Apr 2017, 16:20:36):
Moin,

Der Extralook der Hydraruestung sieht derzeit etwas kaputt aus. Das ist kein
Bug an der Ruestung, sondern ein neues Feature, was nur noch nicht in allen
spielerobjekten angekommen ist. Nach Ende/Reboot sieht das wieder normal aus.

Gebirgsfix

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



Magierhaeuser (Bugfix, 25. Apr 2017, 12:17:50):
Moin,

Einige Magierhaeuser wurden mit goettlicher Genehmigung abgerissen.

Keine Sorge, sofern es dort etwas fuer Spieler zu holen gab (EKs, ZTs, FPs,
Ausruestung ...) wurden sie nicht angetastet.

Gebirgsfix

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



Dunkelzwergenladen (Bugfix, 25. Aug 2017, 19:05:38):
Moin,

Ich habe den Dunkelzwergenladen ... hmm, man koennte sagen, neu geschrieben.
Wenn also irgendwas dort kaputt ist meldet euch bitte.

Bugfix

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



Ein Steingolem ... (Bugfix, 10. Sep 2017, 10:50:53):
... gibt jetzt beim Identifizieren einen Hinweis, dass er schlecht fuer Waffen
sein koennte. Ausserdem zerstoert er die Wafffen ur noch in 1/3 der faelle
undgibt ansonsten eine Warnung aus.

Bugfix

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



In einer Festung ... (Bugfix,  7. Feb 2018, 19:57:35):
... werden Zauberer jetzt an ein paar Stellen nicht mehr diskriminiert.

Wenn euch irgendwo privates Gildenbalancing oder aehnliches auffaellt meldet
euch bitte.

Bugfix

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



Robin (Bugfix, 30. Mar 2018, 19:59:57):
Moin,

Ich habe grade Robin ueberarbeitet, groesstenteils mit der Entfernen-Taste.

Fuer euch hat sich geaendert:
- Er hat jetzt, oh Wunder, eine Langbeschreibung. (Wenn jemand einen besseren
Vorschlag hat oder Details beschreiben will, dann her damit.)
- Man wird beimIdentifizieren vor einer seiner nervigeren Kampf-Aktionen
gewarnt.
- Und das wichtigste: Er beschaedigt keine Ruestungsgegenstaende mehr auf fuer
Spieler nicht feststellbare und ireparable Weise.

Das war uebrigens nur der erste Teil, ich hab jetzt aber keine Lust mehr.
Keine Ahnung, wann der naechste teil folgt.

Bugfix

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



Am Spiegelsee (Notstrom,  7. Apr 2018, 10:41:38):
Huhu,

ich freue mich, ein neues kleines Gebietchen ankuendigen zu duerfen, diesmal
im schoenen Gebirge. Es gibt jemanden in einem Tal oberhalb der Osterbach-
schlucht, der dringend Eure Hilfe benoetigt. (Jedenfalls habe ich mir alle
Muehe gegeben, dass er allein aus dem Schlamassel nicht mehr rauskommt,
haehae.)

Damit koennt Ihr dann auch das Miniquest-Orakel fuer das Gebirge nutzen.

Viel Spass beim Questen, Forschen und Metzeln,
frohe Ostern,
Notstrom.

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



Re: Am Spiegelsee (Notstrom,  8. Apr 2018, 11:33:52):
~#! rn=Notstrom rt=1523090498 rg=d.gebirge
~#! tid=1523090498
Huhu,

Humni hat soeben den Eintrag im Questmaster korrigiert, Ihr duerft nun also
die Miniquest auch ungeniert abgeben und Euch den Spiegelsee angucken.

Ganz viele Extra-Sonntags-Daenke an Humni!
Notstrom.

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



Das Imperium schlaegt zurueck ... (Notstrom,  9. Apr 2018, 16:19:48):
... jedenfalls das Ork-Imperium in Gestalt vierer recht neuer Streiter fuer
selbiges. Bugfix hat eine peinliche Unachtsamkeit meinerseits entdeckt und
ausgebuegelt. Vielen Dank!

Notstrom.

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



Eine kipplige Aktion ... (Notstrom, 14. Apr 2018, 11:30:21):
... kann nun auch durchgefuehrt werden, wenn man die Miniquest bereits 
absolviert hat.

Hth,
Notstrom.

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



Ein Ausgang im Zwergenbergwerk ... (Bugfix, 17. Apr 2018, 12:59:32):
... fuehrt jetzt dahin, wo man es erwarten koennte, mit der ueblichen
Nebenwirkung, dass eventuell dort lang fuehrende Scripte angepasst werden
muessen.

Bugfix

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



N'os'Frets Labyrinth (Bugfix,  4. Jul 2018, 13:12:31):
Moin,

Ich habgrade eine kleine Aenderung am Labyrinth-VC gemacht, die hoffentlich
nur dazu fuehrt, dass ein paar Probleme die es bisher ab und an gab jetzt
nicht mehr auftreten.

Da das aber ganz schoen komplexes Zeug ist, sind Nebenwirkungen nie
ausgeschlossen. Falss ihr welche bemerkt, meldet euch also bitte.

Bugfix, hat grade extra nachgeschaut, wie man N'os'Fret schreibt.

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



Graue Steine ... (Bugfix, 16. Jul 2018, 18:06:40):
... lassen sich nicht mehr auf Gegner werfen, die durch eine vorherige
Laehmung derzeit gegen eine Solche imun sind.

Nein, das ist keine abwertung, sie haben in diesem Zeitraum naemlich einfach
nichts bewirkt.

Sind eure Gegner aus einem anderen Grund gegen Laehmung imun (Wille,
Magierwillkuer etc.) bemerken die Steine das allerdings immer noch nicht und
lassen sich werfen.

Bugfix

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



Robins Pfeile ... (Bugfix,  9. Aug 2018, 20:15:42):
Zerfallen jetzt auch nicht mehr. Ausserdem sind die Koecher quasi
neugeschrieben, falls also etwas komisch ist ... ihr wisst schon.

Bugfix

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



Re: Robins Pfeile ... (Bugfix, 12. Sep 2018, 17:38:29):
~#! rn=Bugfix rt=1533838542 rg=d.gebirge
~#! tid=1533838542
... und sie vereinigen sich nicht mehr, hatte ich vergessen zu erwaehnen.

Bugfix

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



