Unser Morgengrauen hat endlich einen Nordpol:) (Freund, 30. Apr 1993, 13:22:02):
Gruess Gott,

Nach langwoechiger:) Arbeit ist nun der Weg von der Lichtung im
Sueden der Polarregion bis hin zum Nordpol fertiggestellt.

Doch VORSICHT!
Der Pol selbst liegt mitten in einer Eiswueste, in der es nicht nur
sehr schwierig ist, sich zu orientieren (Boings Dschungel laesst
gruessen;-), sondern es auch von Eisbaeren und anderen Ge-
soecks nur so wimmelt...

Wer also schon weiter mit den Stufen ist und vor allem eine gute
Waffe hat, der kann sich schon mal hineintrauen.

Mit FREUNDlichen Gruessen
                          Ein FREUND fuer alle Faelle.

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



Neues Gebiet - Neue Monster (Pilgrim,  7. Apr 1994, 20:43:12):
Hi,

wie mir soeben meine treuen Helfer berichten, haben einige Orks
oestlich vom Friedhof Ihr Lager aufgeschlagen.

Also auf, tapfere Heldinen und Helden (u.a), macht Euch auf, und
erwerbt Euch Ruhm und Ehre (insbesodere aber Erfahrungspunkte
und Ausruestung), indem Ihr diesen fiesen Orks kraeftig was hinter
die Loeffel gebt.



Pilgrim

PS: Aber Achtung, wer sich leichtsinnig in Gefahr begibt,
    kann darin umkommen!



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



"Eskimo" oder vielleicht doch lieber "Inuit"??? (Beldin, 14. Apr 1994, 18:23:40):
Es mag ja spitzfindig sein, aber ich finde, auch und gerade im MorgenGrauen
sollte man auf die korrekte Bezeichnung von Volksgruppen achten.
So stoert mich der Ausdruck "Eskimo" den ich unlaengst in der Beschreibung
der Eisscholle entdecken musste doch massiv.
Dieses Schimpfwort (uebersetzt in etwa: "Roh-Fischfleisch-Fresser") steht
fuer mich auf derselben Ebene wie andere einschlaegige Begriffe zur
Rassendiskriminierung.
Wenn ihr hier im MorgenGrauen einen Schwarzafrikaner (beispielsweise einen
Zulu in der Wueste :-) einrichten wuerdet (Ihr Magier...) dann wuerdet ihr
ihn doch auch nicht mit "Nigger" titulieren oder????
Mein Vorschlag ist, den "Eskimo" durch "Inuit" zu ersetzen, was die
Bezeichnung dieser Menschen fuer sich selbst in ihrer eigenen Sprache
darstellt.
Also - nehmt diesen Artikel nicht so schwer wie er klingt sondern nur als
Anregung... Ich wusste einfach nicht wie ich dieses haette lustiger
formulieren sollen....

Ich freue mich ueber jegliche Art von Antwort oder Reaktion... Bye

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



Re: Inuit (Rumata, 15. Apr 1994, 12:05:19):
Hmm, das Problem ist wohl, dass Eskimo im Allgemeinen nicht als
Diskriminieren erkannt wird. Dashalb habe ich gewisse Bedenken, dort
einen Namen, mit dem Niemand etwas anfangen kann einzusetzen.
Ok, dann heissen die Kerle im Polar Inuit, aber die Leute sollen sich
ja etwas vorstellen, was so ausssieht wie das, was einem Immer als
Eskimo vorgestellt wird. Wenn wir Bilder haetten, haette ich keinerlei
Bedenken gegen den Namen Inuit.
Ich bin gerne Bereit, mich bei jedem Inuit fuer den Namen Eskimo zu
entschuldigen!
Aber vielleicht hat ja jemand eine Idee, wie man diesen Konflikt aufloesen
kann. "Ein dick eingepackter Polarmensch."
unt polarmensch
"Das ist ein Inuit (manchen unter dem Namen Eskimo bekannt).
Er schut ziemlich grimmig drein, da ihn alle "Eskimo" nennnen, Du
soltlest es lieber nicht tuen."
Oder so :-)

Rumata
PS: Danke fuer den Hinweis.

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



Re: Re: Inuit (Yendi, 15. Apr 1994, 12:43:15):
Gute Idee! :)

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



Trari Trara die Post ist da ;-) (Troy, 20. Apr 1994, 12:26:36):
Aufgrund von einschneidenden Strukturaenderungen im Post- und Fernmeldewesen
des MorgenGrauens mussten auch einige Personalkuerzungen vorgenommen werden.
Gluecklicherweise konnten etwa 90% der Freistellungen mit Vorruhestands-
regelungen und Umschulungskursen zufriedengestellt werden. Da nun aber
immer noch die Post auszutragen ist, hat die Oberpostdirektion Moulokin
beschlossen, diese Aufgabe jungen dynamischen Aushilfskraeften aus dem
gesamten MorgenGrauen zu uebergeben. Wer sich an dieser wunderbaren
Aufgabe beteiligen moechte, kann sich beim Postmeister in Moulokin melden
und dort eine Muetze und die Tasche mit den Briefen in Empfang nehmen.
Der Job bietet eine EINMALIGE GELEGENHEIT, die Gegenden des MorgenGrauens
kennenzulernen und mit den Einwohnern in Kontakt zu kommen. Meldet Euch
noch heute!

Die Oberpostdirektion der Koeniglich Moulokin'schen Post
  i.A. Troy

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



Der Weihnachtsmann (Troy, 20. Apr 1994, 20:15:15):
Juengsten Korrespondentenberichten zufolge hat der Weihnachtsmann nun
endlich am Nordpol seine Firma aufgemacht. Weiterhin ist er privat im
Gletschergebiet anzutreffen, geschaeftlich wende man sich jedoch am
Nordpol an ihn.

Troy - Polarregionsmagier

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



Geige gesucht (Troy, 13. Jun 1994, 17:13:43):
                 oo  oo  ooo  oo  oo ooooo
                 oo  oo ooooo oo  oo ooooo
                 oo  oo oo oo oo  oo oo
                 oooooo oo oo oooooo oooo
                 oooooo oo oo oooooo oooo
                 oo  oo oo oo oo  oo oo
                 oo  oo ooooo oo  oo oooooo
                 oo  oo  ooo  oo  oo oooooo

                    (moralische)

ooooo  oooooo oo      ooo  oo  oo oo  oo oo  oo oo  oo  ooo
oooooo oooooo oo     ooooo oo  oo oo  oo oo  oo oo  oo ooooo
oo  oo oo     oo     oo oo oo  oo ooo oo oo  oo ooo oo oo oo
oo  oo oooo   oo     oo oo oooooo oooooo oo  oo oooooo oo
ooooo  oooo   oo     oo oo oooooo oooooo oo  oo oooooo oo oo
oo  oo oo     oo     oo oo oo  oo oo ooo oo  oo oo ooo oo oo
oooooo oooooo oooooo ooooo oo  oo oo  oo oooooo oo  oo ooooo
ooooo  oooooo oooooo  ooo  oo  oo oo  oo  oooo  oo  oo  ooo

fuer den- oder diejenige(n), der(die) mir meine ueber alles geliebte
Geige wiederbring[t/en]. Ein gar garstiger Raeuber hat sie mir heute
gestohlen. Das gute Stueck ist unersetzlich! Wer sie mir wiederbringt
kann meines Dankes sicher sein. Wer immer sich an der Suche beteiligen
moechte, komme bitte zu mir ins Konservatorium von Moulokin. Dort kann
ich naeheres zu dem Vorfall sagen.

Die erste Geige im Streichquartett (nun nicht mehr)

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



Orklager in Inspektion (Pilgrim, 14. Jul 1994, 16:10:13):
Hi,

ich gebe hiermit bekannt, dass sich das Orklager z.Z. einer Generalinspektion
unterziehen muss und somit bis auf weiteres geschlossen bleibt.

Generalinspekteur Pilgrim

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



Orklager wieder offen (Pilgrim,  1. Aug 1994, 23:56:37):
Hi,

ich hab zur Zeit eigentlich zu wenig von selbiger, desshalb gehen die
Umbauarbeiten zu langsam voran.
Vorlaeufig ist das lager in seiner ALTEN Form wieder zu erreichen....

Pilgrim

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



Massuer ist staerker geworden! (Rumata,  4. Aug 1994, 19:27:05):

Nachdem der Masseur wiederholt von Spielern angegriffen und ziemlich
uebel behandelt wurde, hat er jetzt ein Fittness-training absolviert.

Also, sehr Euch vor!

Rumata, Couch vom Masseur

BTW: Man muss ihn nicht angreifen ... :-)

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



Couch? (Catweazle,  4. Aug 1994, 21:21:58):
Man kann sich auf Dich setzen Rumata?????

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



Re: Couch? (Asmodis,  4. Aug 1994, 23:15:32):
hmm, im allgemeinen ist es ja nicht so, dass man selbst den Masseur angreift,
sondern, der Masseur den Spieler, wenn er ein Handtuch mitgehen lassen will :)

                         Ciao, Asmodis

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



Re: Re: Couch? (Caradhras,  5. Aug 1994, 23:35:36):
		Kuckuck

Hmmm, waer doch schon eine passende Idee fuer eine HLM- Quest.
(HLM = High Level Magier :) Wenn Rumata schon eine Couch ist, wie waers
dann, wenn auf dem Treffen alle HLM Couch spielen muessen und nachher
wird drueber abgestimmt und die besten kommen in eine Endausscheidung
und der Gewinner darf sich setzen und kriegt nen Keks. Und die anderen
muessen natuerlich den ganzen Abend als Couch zur Verfuegung stehen.
Sicherlich koennte man das noch einiges weiter ausbauen :-))

Schade dass ich diesmal nicht dabei bin, haette gerne Jof und Kirk auf
allen Vieren auf dem Boden knien sehen... und Hate.. *lachend rumkuller*

Caradhras der ewige Prophet :) - grinsend

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



Entschuldigung (Boing, 26. Aug 1994, 15:55:16):
Entschuldigung an alle, die etwas Probleme mit den 4 Namensteilen in den
Katakomben des Friedhofs hatten, ich denke jetzt sind alle Fehler behoben.

  Boing

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



Jimmy (Boing, 29. Aug 1994, 18:56:57):
Bevor sich jemand ueber nicht angekuendigte Veraenderungen beschwert:
Ich habe Jimmy geaendert.
  Boing

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



Verstaerkung fuer die Stadtwache (Troy, 15. Sep 1994, 17:16:52):
Der Magistrat der Stadt Moulokin hat nun endlich beschlossen, die lange
ueberfaellige Verstaerkung der Stadtwache zu finanzieren. Hierzu folgt
ein Auszug aus dem Amtsblatt von Moulokin:

[Zitat Anfang:][...][Auf] Beschluss des hohen Rates vertreten durch
seine ehrenwerten Mitglieder [...] wurde der Tagesordnungspunkt 5
debattiert und [...] zur Abstimmung gebracht. Die durch sich in der
letzten Zeit immer mehr haeufenden Barbarenueberfaelle schon arg
in Mitleidenschaft gezogene, aber nichts desto trotz wackere,
Stadtwache wird mit 88000 (achtundachzigtausend) Muenzen aus der
Stadtkasse neu ausgeruestet und durch Eliteeinheiten der koenig-
lichen Garde von Moulokin verstaerkt. Wir hoffen [...] durch
diesen Schritt etwas fuer die Sicherheit von Moulokin getan zu
haben [...].[Zitat Ende]

Proklamation des Rates zu Moulokin.
i.A. Troy

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



Re: Verstaerkung (Grimmborn, 16. Sep 1994, 05:28:01):

So, nu iss aber zappenduster! Das ist keine Verstaerkung mit Eliteeinheiten,
das ist Verstaerkung mit Panzern und Granatwerfern von der Wirkung her! Dass
die alten Soldaten modifiziert wurden, OK. Ich erinnere mich, wie Troy
schrieb, er haette eine Bank geproggt und dann ne Reederei draus gemacht. Die
Seherbank gabs trotzdem in Moulokin, leicht bewacht aber fair. Nun ist aus
dieser Bank ein Fort Knox geworden, dass kaum zu knacken ist. Wenn ich richtig
gezaehlt habe, sind bisher 4 Seher (darunter nicht die schlechtesten...)
draufgegangen, das ist unverhaeltnismaessig. Mann muss doch auf dem Teppich
bleiben! Gut, Elite ist schoen und gut. Aber woher? Aus der Bevoelkerung,
quasi aus den Spielern. Nun bin ich in einer (!) Runde von 90 auf 28 lp
gesackt. Welcher Charakter kann das? Ich nicht, wuerde ich sagen, selbst mit
Zauberei. Ich schlage nicht (mehr) mit dem Geraeusch krachender Knochen, ich
kann niemanden niederreiten. Wenn man "menschliche Monster" anbringt, sollten
sie sich in ihren Werten an den Spielern orientieren! Oder eine GUTE
Erklaerung haben...
Die Idee an sich ist gut, auch wenn die Soldaten anfangen zu kooperieren ist
das nur logisch. Aber so wie dashier gelaufen ist... :-(
Dann sollte in der Beschreibung stehen: Die Wachen sind mit ihren eigenen
Beinen beritten, da sie zur Rasse der Pferdedrachen gehoehren.

Live aus Moulokin:
                  Grimmborn der Prophet

P.S. Die neue Todessequenz kann wirklich nerven. und ich vermisse den Kerl
mit den GROSSBUCHSTABEN...

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



Re: Re: Verstaerkung (Toeter, 16. Sep 1994, 10:34:53):
Nach meiner Rechnung warens sogar 5 Seher...wobei noch zu erwaehnen bleibt,
dass allein ich fuer 2 Reiter ueber 30000 versoffen habe:).

Ewig breit: Toeter (der davongekommene)

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



Re: Re: Re: Verstaerkung (Troy, 16. Sep 1994, 13:03:15):
Die Verstaerkung der Wachen in Moulokin wurde von VERSCHIEDENEN Sehern
GEFORDERT. Wer die Reiter angreift, ist selber schuld. Es sind ja noch
genug andere Soldaten in Moulokin, die zwar auch staerker sind als vorher,
aber noch weit unter dem Zwergenwaechterniveau liegen. Wenn es ploetzlich
irgendwo neue Monster gibt, muss das noch lange nicht heissen, dass diese
ohne weiteres toetbar sind. Unter Beruecksichtung der neuen Stats ist es
naemlich durchaus moeglich, die Reiter zu falten. Dass sie sich dagegen
wehren sollte ja wohl klar sein.

Troy - hat was gegen wilde Metzelei in der Stadtwache.

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



Nochmal: Verstaerkung (Grimmborn, 16. Sep 1994, 13:10:16):


Also, Troy, tut mir leid aber wenn die berittenen Stadtwaechter bessere
Kampfwerte haben als ein Mitglied einer beliebigen Rasse mit Stats 20, einer
Lanze, den Stiefeln und dem Panzer dann verstehen wir das System
unterschiedlich.
Niemand verbietet Dir, andere Rassen einzusetzen, aber dann sollte das
beschrieben werden
Und sollten das normale Spielerrassen sein: Ich melde mich sofort zum
Eintritt in die Gilde der berittenen Stadtwaechter...

                                  rimmborn der Atheist

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



Re:...Re: Verstaerkung (Troy, 16. Sep 1994, 13:17:34):
Ich verstehe nicht, was die Diskussion soll:
Wenn man die nicht angreift, tun sie doch garnix.
Und: es gibt nirgendwo eine Quest oder was Vergleichbares, was verlangt,
dass man sie angreift. MUSS DEN JEDES MONSTER IM MUD BESIEGBAR SEIN???
UND: IST DENN EIN SEHER SO DEFINIERT, DASS ER JEDES MONSTER SCHAFFT???

Troy - Monster aller Laender vereinigt Euch!

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



Re: Re:...Re: Verstaerkung (Li, 16. Sep 1994, 13:20:59):
Zu diesem Thema faellt mit ein Artikel aus einem alten "White Dwarf" (einem
engl, Fantsaymagazin). Da ging es um Monster uns NPC im Rollenspiel, mit dem
passenden Titel:
Monsters have feelings too!

Li (der sich nicht in diese Diskossion einmischen moechte)

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



Und: Verstaerkung (Grimmborn, 16. Sep 1994, 13:27:26):

Nun ja, Troy, ich dneke, wir reden von verschiedenen Dingen. Nebenbei haben
Toeter und ich die Sache so im Kopf, dass wir die normale Wache angegriffen
haben und die Berittenen daraufhin uns.
Merke: JEDES MONSTER MUSS BESIEGBAR SEIN! Natuerlich nicht von einem Seher
alleine, das war nie die Frage. Wir haben zu Sechs Sehern auf denen
rumgekloppt...
Nun ist prinzipiell gegen "starke" Monster nix einzuwenden (siehe Hydra),
aber was hier fehlt ist LOGIK!!!
WO sind die her? Diese Frage solltest Du beantworten koennen, nicht unbedingt
den Spielern aber generell. Ansonsten finde ich muesstest Du halt die Staerke
verringern und die Anzahl erhoehen...
Was ich nicht akzeptieren will sind nicht Monster, die staerker sind als ich
(oder wer auch immer) sondern Spielerrassen mit Monsterwerten.
Hab ich das (trotz dieses Mist-Mac...) verstaendlich machen koennen?

Diesmal hoffentlich mit "G":

                            Grimmborn der Atheist

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



Re: Re: Verstaerkung (Yendi, 16. Sep 1994, 15:21:48):
Also, Troy, ich denke, dass Grimmborn recht hat.

Erstens sollten ALLE Monster schlagbar sein (auch wenn man dafuer 10 Seher
  braucht; schliesslich muss man gegen Monster wie Smaug oder einen
Ringgeist
  auch zu mehreren antreten)
Zweitens sollte man den Monstern in etwa ansehen koennen, wie stark sie sind:
Wenn da eine Stadtwache steht, dann erwarte ich nicht, dass sie im Alleingang
eine komplette Brigade plaetten kann, Feuer speit und mit taktischen Atom-
sprengkoepfen um sich wirft... Das faellt einfach aus dem Rahmen, verstehst
Du?

Also, wenn es sich um Menschen handelt, lieber die Kampfkraft pro Person in
realistischen Grenzen halten, aber dafuer mehr Leute einsetzen.

(SENF OFF)


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



Re:...Re: Verstaerkung (Tryfan, 16. Sep 1994, 16:38:23):
Hi Leute,
 also jetzt muss ich doch auch mal meinen Senf zu der Thematik loswerden.
Warum in aller Welt muessen alle Monster schlagbar sein?? Ausserdem, was ist
denn die Definition von 'schlagbar' wenn es 10 voll ausgeruestete Seher
schaffen, oder wenn es 1000 schaffen?
 Es gibt im MG genug Monster, die sich gar nicht angriefen lassen. Das ist
auch gut so, denn viele von ihnen sollen nur Informationen oder Objekte
herausgeben oder ein Quest bestaetigen usw.. Gelten die auch als 'unschlag-
bar'?
 Andere Monster sollen den Zugang zu bestimmten Gebieten bewachen und wurden
also mit Absicht unschlagbar gemacht. Was ist denn daran so schlimm?
Muss denn alles niedergemelzelt werden? Wenn Troy nicht will, dass man die
gesamte Stadtwache besiegen kann, dann eben nicht. Es wuerde mein Quest

auch auf den Kopf stellen, wenn man die gesamte Steinwaechtertruppe schlagen
koennte. Sie wird auch immer 'unschlagbar' bleiben!
 So, die Senftube ist leer
		Tryfan

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



Bravo! (Hardil, 16. Sep 1994, 16:48:06):

SENF on

Ich muss hier den Magiern einfach mal Recht geben. Sorry. Aber ich sehe die
Vollendung des Seherdaseins eigentlich nicht darin, immer neue, noch groessere
Monster zu metzeln, sondern schiebe eigentlich lieber eine ruhigere Kugel im
Seherniorenstift... :)
Wenn es jetzt soweit kommt, dass selbst meine Lieblingsmonster (Dunkelelfen)
irgendwann staerker gemacht werden, nur weil einige Abonnenten der Ebenen
Moerder und Tod nicht genug bekommen koennen und immer neue Herausforderungen
suchen, dann: Stop!
Wer den Ruestungswettlauf ankurbelt, indem immer schneller die besten
Ruestungen und Waffen angekarrt werden, der sollte sich nicht daran stoeren,
wenn die Monster sich richtig wehren.
Ich bin gegen beides: Ruestungswettlauf UND Super-Monster.
Wem es hier im MG zu langweilig wird, weil er alles toeten kann, der soll
doch einfach auswandern. Es gibt noch 1000 andere MUDs, wo 1000 andere Monster
und Gefahren lauern.

SENF off

Hardil (friedfertiger als die meisten anderen Seher)

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



Senf? (Catweazle, 16. Sep 1994, 18:38:10):
Ich wuerd ja auch gern was dazu schreiben, aber ich muss
erst Senf kaufen gehn.....

    Catweazle

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



Re: Bravo! (Isnogood, 17. Sep 1994, 01:14:01):
Hi,

Also ich bin weder Seher, noch habe ich vor, mich mit den berittenen
anzulegen, aber ihr diskutiert einfach aneinander vorbei.
Grimmborn hat recht, wenn er sagt, das Menschen nur eine bestimmte Staerke
haben duerfen, solange das ganze halbwegs logisch bleiben soll.
Das hindert Troy ja nicht daran, als Stadtwache 5 Gorillaelfen mit
Drachenpferden einzusetzen, nur halt keine Menschen mit solchen unlogischer
Staerke.

In der Hoffnung, dass die Diskussion ein bischen nuechterner Verlauft

Isnogood

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



Verstaerkung: Ende (Grimmborn, 17. Sep 1994, 02:51:09):

Troy hat nun die Beschreibung der berittenen Stadtwache geaendert, es handelt
sich um Minotauren. Damit ist ihre Staerke hinreichend erklaert. Dass ich
persoenlich um die Schliessung der Seherbank trauere ist eine andere Sache...
;-)
Weiterhin hatte ich den Eindruck, dass ihre Anzahl WESENTLICH erhoeht worden
sei, aber das zu ueberpruefen konnte ich nicht mehr, weil die ploetzlich
anfingen, mir lp ohne Angriff (der mein Tod gewesen waere) abzuziehen und mich
sogar beim teleportieren verfolgten. Das war gar nicht gut fuer meine Nerven
nach dem Erlebnis gestern *feix*...

Ansonsten steht es Troy frei Moulokin so zu schuetzen wie er es fuer richtig
haelt, und im Rahmen eines realistischen Spiels ist eine Wache, die zusieht,
wie man den Offizier in ihrer Mitte killt, vielleicht tatsaechlich nicht so
gelungen. Andererseits, wer weiss, wie das Verhaeltnis zu den Offizieren ist,
waere lustig, wenn die Soldaten noch helfen wuerden.

Ja, ich hoffe, ich hab mich trotz frueher Stunde verstaendlich gemacht. In
Moulokin hat (bis auf kleinere bugs, das verfolgen war doch ein bug, bitte
Troy?) alles seine Ordnung.

Sein Geld nun zusammenhalten muessend:
                                       Grimmborn der Atheist

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



moulokin (Kaig, 17. Sep 1994, 05:57:22):
Also ich verstehe die ganze Aufgeregtheit um Moulokin echt nicht..... Was ist
denn schon geschehen, die Stadt war massiven Angriffen ausgesetzt und musste
sich ja schliesslich mal wehren, oder? Und man muss ja die Wachen wohl nicht
plaetten, gibt ja noch genug andere Stellen :-).

Ex-Seher Kaig, nun das Magierdasein geniessend :-)

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



Re: Re: moulokin (Asmodis, 19. Sep 1994, 12:48:24):
Hmm, also mich stoert es nicht, wenn da EIN Monster herumsteht, das man nur
in Gruppen plaetten kann, aber es ist doch schon sehr aergerlich, wenn ALLE
Monster so stark sind, da machts doch gar keinen Spass mehr ueberhaupt da hin
zu gehen, weil man sowieso etwas auf die Muetze bekommt.
Wenn sich die Monster schon gegenseitig helfen, dann mach wenigstens den
groessten Teil von ihnen etwas schwaecher, sodass man nicht unbedingt selbst
bei Vorsicht 100 in Lebensgefahr geraet.

            Ciao, Asmodis(Level 26, und hat etwas gegen Massierungen von
Supermonstern)

P.S.: Fuer 88000 Muenzen kann man sicher nicht eine SOLCHE Truppe anwerben :)


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



Hickhack (Thorin, 19. Sep 1994, 13:25:27):
Also hier muss ich mal Troy unterstuetzen : Ich weiss echt nicht, was ihr
wollt, Asmodis und Grimmborn. Seit doch froh, dass es mal wieder neue Monster
gibt, auf denen ihr einhacken koennt/ an denen ihr euch testen koennt. Und
auch wenn sie so stark sind:
WER ZWINGT EUCH DENN, SIE ANZUGREIFEN ???
Ich finde die Monster sehr gut und muss trotzdem davon abraten, sie 'mal nur
so anzugreifen'.
Thorin

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



Gletscher (Grimmborn, 23. Sep 1994, 09:35:18):

So, ich bin endlich gluecklich beim Weihnachtsmann, NATUERLICH auf der Suche
nach einem zt und NATUERLICH mit Liste. Was ebenso natuerlich ist: Ich hab
promt den Weg verfehlt. Also musste ich sehen, ob ich auch so mit dem
Gletscher fertigwerde. Ergebnis: Nein. Nun mag ich nicht der begabteste Denker
hier im mud sein, aber ich hab alles ausprobiert um rauszufinden, reiner
Zufall, dass ich statt auf das vierte Mammut auf die Spalte gestossen bin.
Keine Hinweise, nicht kartographierbar, toedlich (Tip: Mit wandernden Mammuts
kriegt man auch noch den letzten Ueberlebenden), kurz: ein lab zum Abgewoehnen
und wie es nicht sein sollte! Das muss doch wirklich nicht sein. Ich denke da
an Vorbilder wie den Dschungel in Titiwu oder die Tundra. Oder wenns sein muss
ein tabellierbaras lab mit 4 Ausgaengen; sonst wird das zu umfangreich.
Dieses Spiel soll Spass machen, auch den Spielern. Solange ich aber durch
solche Gegenden planlos irre, macht mir das erstaunlich wenig Spass, zumal ich
weiss, dass wenn ich etwas knapp ueberlebe das der Tod von 90% der restlichen
mud-Bevoelkerung waere.

Wie gesagt, ich schliesse nicht aus, dass es eine einfache Art gibt, sich
hier zurechtzufinden und ich sie einfach nur nicht gefunden habe. In dem Fall
bin natuerlich ich an der Situation voellig selber schuld und bitte, diesen
Artikel einfach als frustabladen zu verstehen...

Mit blaugefrohrenen Fingern (Boing, die Waermeisolierung der silbernen
Handschuhe muesste nochmal diskutiert werden...),

     Grimmborn der Atheist

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



Re:Gletscher (Ketos, 23. Sep 1994, 16:38:52):
Der Gletscher ist teilweise nicht karteographierbar. Aber man findet sich
auch
so zurecht, wenn man nicht kopflos rumrennt und hofft wo raus zu kommen,
sondern sich gruendlichst um sieht. Es lohnt sich und es gibt einiges zu
entdecken. Uebrigens gehoert der Gletscher zum Gebirge, ist aber auch vom
Polargebiet erreichbar.
                              - Ketos - spielt Fuessetreten mit Yetis...

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



re-hunnar (Toeter, 26. Sep 1994, 20:18:50):
Hi Boing !
Warum war denn kein Vorschlag dabei, Hunnar schwieriger (nicht unbedingt
staerker) zu machen? So ist das Seher-Privileg Slanderscree zur blossen
Kaffeefahrt verkommen. Schade...

ein Herausforderungen liebender Toeter

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



Re: Hunnar - Toeter (Boing, 26. Sep 1994, 20:36:20):
Der Vorschlag war nicht dabei, weil schon alleine eine derartige Ansammlung
von Top-Ruestungen an einem Ort (sprich: bei einem Monster) nicht meinen
Vorstellungen von Game-Balance entspricht. Gegen eine gleiche Anzahl von
mittelmaessigen Ruestungen geballt bei einem Monster habe ich nichts, nur
die besten Ruestungen sollen schwierig zu erreichen und nicht zu oft im
Spiel sein.

  Boing

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



Seher-Problem auf dem Friedhof (Boing, 26. Sep 1994, 23:39:22):
Hallo,

es wird demnaechst ein paar Aenderungen auf dem Friedhof geben:

- Der zerbrochene Schluessel, wird nur noch fuer die Leute autoladend,
  die das Abenteuer noch nicht geloest haben.
- Fuer Leute, die das Abenteuer schon haben, wird es einen zweiten Weg
  in die Gruft geben, dieser Weg wird mit etwas Gemetzel verbunden sein.

Auf diese Weise hoffe ich, die Behinderung von Spielern, die die Katakomben
loesen wollen, durch solche, die nur das BS-Schwert holen wollen, zu ver-
meiden. Ausserdem wird das gute BS-Schwert dadurch schwieriger zu erlangen
sein.

  Boing

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



Friedhof (Boing, 27. Sep 1994, 22:26:59):
Die im letzten Artikel beschriebenen Aenderungen sind jetzt aktiv.

  Boing

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



Masseur hat Kickboxen gelernt! (Rumata, 18. Okt 1994, 14:42:07):
The subject says it all....

Rumata
PS: Es hat einen Grund, dass man den Massuer nicht toeten soll...

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



Re: Masseur hat Kickboxen gelernt! (Flintnail, 19. Okt 1994, 17:36:30):
(Bezug: Artikel von Rumata, Die, 18. Okt 1994, 14:42:07)
Hmmm....ich denke 'the subject said nuthing!' ...Rumata!
Frage: wird man immer noch erschlagen UND GEHINDERT DEN RAUM ZU VERLASSEN
(!!!) , wenn man versucht das Handtuch mitzunehmen???

 ein damals ziemlich veraergerter Flintnail, der gar nicht kaempfen wollte,
aber kaempfen gegen den Masseur das Leben aushauchte, BEVOR der Kickboxer
wurde!!!

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



Re: Masseur hat Kickboxen gelernt! (Halea, 21. Okt 1994, 18:10:53):
(Bezug: Artikel von Rumata, Die, 18. Okt 1994, 14:42:07)
*auweia*

  Halea
nn

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



Zombieschwert (Boing, 18. Nov 1994, 17:39:37):
Das 'Zombieschwert' ist nun auch endlich als solches anzusprechen (auf
Anregung von Yantro, wenn ich mich recht erinnere).
  Boing

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



Neuer RM (Zardoz,  1. Feb 1995, 18:12:37):
Tja, aehmmmm... wie soll ichs sagen... *denk*
Also frei heraus: Jemand (blieb aus Verlegenheit unsichbar) hat mich.
Aehm, mich zum Regionsmagier Polar gemacht. Na gut, ich weiss, dass es
keinen interessiert, aber ich wollte es wenigstens mal gesagt haben.

Ciao              Zardoz

P.S. Aufgrund zahlreicher Anfragen: Nein, es wird wohl (vielleicht) keine
Eis-, Fros- oder Kaeltedaemonen in der Eiswueste geben!

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



Re: Neuer RM (Yantro,  1. Feb 1995, 18:57:42):
#! rn=Zardoz rt=791658757

Hast Du die Rubrik eigentlich auch ausgestaubt, bevor Du den Artikel
geschrieben hast??? Oder macht das auch der Teufel ;)

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



Neue Regionsmitarbeiterin (Zardoz,  1. Feb 1995, 19:14:55):
Hallo nochmal! :-)

Ich freue mich ganz besonders hier ankuendigen zu duerfen, dass
Schrumpfi Regionsmitarbeiterin in der schoenen Region Polar geworden
ist! Und an alle anderen: Geht nicht in die Wueste! Die Wueste lebt
schon lange nicht mehr! Kommt lieber zu Polar und erfrischt euch an
der belebenden Kaelte dieser Region. Wenn euch der Wuestensand zwischen
den Zaehnen knirscht, dann denkt immer daran: Polar lebt!

Ciao
                 Zardoz

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



Re: Neue Regionsmitarbeiterin (Gundur,  1. Feb 1995, 19:24:09):
#! rn=Zardoz rt=791662495
Gundur bibbert bei dem Gedanken das sein Schwesterchen in die Polar-
region gelockt wurde...
Oh Graus was wird unser armer Papi dazu sagen...die Schnurrhaare wird
er sich vor gram ausreisen denk ich..
Weiterhin kann ich nur empfehlen doch mal die warme Wueste zu besuchen...
Da bekommt man keine erfrorenen Glieder oder verirrt sich in seltsamen
Eiswuesten...Dem Weihnachtsmann wuede es da bestimmt auch besser gefallen,
weil er dann mehr Besuch kriegen wuerde und er nicht mehr so allein waer..
Naja auf jeden Fall wuensch ich Dir (Schrumpfi) alles gute..moegen
Dich die Geister des Wuestensands auf deinem kalten Weg beschuetzen
Gundur

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



Re: Neue Regionsmitarbeiterin (Puma,  1. Feb 1995, 19:49:20):
#! rn=Zardoz rt=791662495
Ist das jetzt eine Kriegserklaerung an die Wueste Zardoz :)))) ????


PUMA


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



Re: Re: Neue Regionsmitarbeiterin (Rochus,  1. Feb 1995, 20:05:55):
#! rn=Puma rt=791664560
Die Wueste steht mit fast allen Regioen im Krieg...
Wald, Polar...
Nur die friedliebende Ebene haelt sich aus allem raus :-)

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



 (Schrumpfi,  1. Feb 1995, 20:10:28):
Regionsmitarbeiterin
Hallo
Als erstes moechte ich mich mal bei Zardoz bedanken der mich heute zu seiner
Mitarbeiterin im Polar gemacht hat! Als alte Gruftlerin is es mir in der
Wueste eindeutig zu heiss und der Polar ist da wohl genau das richtige fuer
mich ;-) und mein heiss geliebtes Untier ist jetzt auch ganz in meiner Naehe
:)
Papi ich hoffe Du verzeihst Deiner abtruenigen Tochter ;-)
Danke nochmal an alle GratulantInnen und ich freu mich auf eine
Zusammenarbeit mit Zardoz.
Schrumpfi die auf ihre blasse Gesichtsfarbe achten muss :)

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



Re^3: Neue Regionsmitarbeiterin (Wargon,  2. Feb 1995, 09:39:11):
#! rn=Rochus rt=791665555
Warum nur?
Antwort: Weil die friedliebende Ebene alle Seiten mit
Waffen versorgt und sich mit der Versorgung der durchziehenden
Truppen ne goldene Nase verdient. ;)
Ausserdem soll ja schon so mancher Soeldner zu Monster-
und Fallentestzwecken abberufen worden sein. ;)

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



Re^3: Neue Regionsmitarbeiterin (Durian,  2. Feb 1995, 10:53:06):
#! rn=Rochus rt=791665555
Nun mal moment, jetzt muss ich als oberster Sandbuddler aber doch mal
energisch einschreiten und mir vor meine Skl ... Mitarbeiter stellen.
Rochus hat gerade in einem Anflug von Jof gegebener Ahnung behauptet,
die Wueste stuende mit allen anderen Regionen im Krieg. Dem ist mitnichten
so!
Es ist vielmehr so, dass vor lauter Neid die anderen Regionen, allen voran
der Wald (gelle, Mika), unsere Vormachtstellung durch Verleumdung und
Luege zunichte machen wollen. Das dies angesichts der heissen, sandigen
trockenen Schoenheit der Wueste nicht moeglich ist, wird dabei ungeachtet
gelassen.
Und was Polar angeht: Nein, wir haben nie etwas gegen die Polarregion gesagt.
Ja, es gaebe viel gegen sie zu sagen, aber da das eh jeder selber weiss,
muss ich jetzt nicht erwaehnen. Vielmehr hat Zardoz in einem Anflug von
durch seine Machtposition hervorgerufenem Groessenwahn versucht, die Wueste
schlecht zu machen. Dass er sich damit auf das niedrige Niveau des Waldes
begibt, scheint ihm nicht klar gewesen zu sein.

Lange Rede, kurzer Sinn: die Wueste ist und bleibt die trockendste,
heisseste,
kuschligste, sandigste Region des Morgengrauens!

- Durian, der Oberbuddler











:-)
*grins*

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



Re^4: Neue Regionsmitarbeiterin (Puma,  2. Feb 1995, 12:29:33):
#! rn=Durian rt=791718786
Moment mal, Durian. Was heisst hier Vormachtsstellung der Wueste? Wenn ich
Dich daran erinnern darf, dass die Wueste vor einem halben Jahr kaum mehr als
ein staubiger Pfad nach Valgessa war.. .

Eindeutig fuehrend sind in Sachen Beliebtheit (gemessen an Besucherzahlen)
immer noch das Gebirge und die Ebene....

:-))


PUMA




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



Re^5: Neue Regionsmitarbeiterin (Durian,  2. Feb 1995, 12:36:31):
#! rn=Puma rt=791724573
Laege die Wueste in der Mitte, wuerden die anderen Regionen ueber erheblichen
Besuchermangel leiden! Und im Uebrigen, offensichtlich ist Dir das entgangen,
ist die Wueste nicht mehr das, was sie frueher mal war. Sie kann vielmehr
jetzt mit einer noch nicht angeschlossenen Stadt und einer noch nciht
angeschlossenen Region aufwarten ... jaha ... und Dancer und Catweazle,
da bin ich sicher, schaffen es noch dieses Jahrtausend diese beiden
Orte fertig zu stellen!

Da bin ich mir echt voellig sicher ... *schluck*

- Durian



:-)

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



Re: Neuer RM (Orktoeter,  2. Feb 1995, 13:05:24):
#! rn=Zardoz rt=791658757
Herzlichen Glueckwunsch !!

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



Re^6: Neue Regionsmitarbeiterin (Mika,  2. Feb 1995, 13:41:49):
#! rn=Durian rt=791724991
Aehem,
Durian, wenn Du deinen staubigen Sandhaufen damit aufbessern willst, das da
in einiger Zeit ein paar neue Flecken dazukommen (die Pyramiden deines
Ghostwriters waren ja auch lange nur angekuendigt;) ) dann kann in der Wueste
wirklich nicht viel los sein.
Ansonsten steht immernoch das Angebot in alle Wuestenraeume ein paar schoene,
grosse, gruene, schattenspendende Waldbaeume zu pflanzen ! (kostenlos
natuerlich !)
Also denk noch mal drueber nach :)

Mika, Vizewaldmeister

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



ebene (Nixihou,  2. Feb 1995, 15:04:51):
Also zur Ebene ist ja wohl nur zu sagen, dass sie
ausser friedliebend zu seien
auch nur noch aus einem Wald besteht, der keine Baeume hat!
Das sagt ja wohl alles.

Nini

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



Re^5: Neue Regionsmitarbeiterin (Hate,  3. Feb 1995, 22:05:40):
#! rn=Puma rt=791724573
Die Attraktion Nummer eins bin immer noch ich auf den Inseln ;)
Hate.

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



Re^4: Neue Regionsmitarbeiterin (Anthea,  4. Feb 1995, 03:28:51):
#! rn=Durian rt=791718786
Ich sehe schon, Durian, in Deinen Angriffen erwaehnst Du wohlweislich die
Inseln nicht. Wahrscheinlcih hast Du rechtzeitig genug bemerkt, dass Du gegen
uns Inselmagier einfach nicht bestehen koenntest. Ist wohl auch besser so.
Wenn sich diee Inseln naemlich gegen die Wueste richten wuerden bliebe davon
nicht mehr als etwas unebener Meeresgrund uebrig.....

Wenn ich es mir ueberlege... die Ebene duerfte wohl genauso leicht zu fluten
sein wie die Wueste.... dann haetten wir endlich mehr Platz fuer weitere
Inseln :)

          Anthea, ueberzeugte Inselmagierin.

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



Eisdaemonen (Zardoz,  6. Feb 1995, 18:49:28):
Ihr habt es nicht anders gewollt! Sehr widerstrebend und widerwillig sah ich
mich aufgrund zahlreicher Anfragen gezwungen Eisdaemonen in der Eiswueste
anzusiedeln. Ich betone!!!, ich habs nicht freiwillig gemacht!
Naja, nun ist es passiert und ich hoffe, ihr koennt damit leben.
Viel Spass beim Suchen, sie sollen sich angeblich in einer Hoehle versteckt
haben.

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



Re^5: Neue Regionsmitarbeiterin (Durian,  7. Feb 1995, 09:52:28):
#! rn=Anthea rt=791864931
Nein, Anthea, ich habe die Inseln ausgelassen, weil ich Gegner suche, keine
Opfer!!

- Durian

:-)

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



Re: Eisdaemonen (Orktoeter,  7. Feb 1995, 14:07:58):
#! rn=Zardoz rt=792092968
Oh ja, ic stelle mir gerade Zardoz's wiederwillen vor...
rotfl :)

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



Re^6: Neue Regionsmitarbeiterin (Anthea,  7. Feb 1995, 23:50:52):
#! rn=Durian rt=792147148
Ich glaube, das Opfer, das Du Dir mit einem Angriff auf die Inseln ausgesucht
haettest, waerest Du selbst gewesen :)
Von Deinen Regionsmitarbeitern haettest Du sowieso bei einem Angriff auf uns
nicht viel Unterstuetzung gehabt: Katzen (respektive Tiger) sind ja
bekanntlich Wasserscheu!

     Anthea

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



Re^7: Neue Regionsmitarbeiterin (Gundur,  8. Feb 1995, 01:02:00):
#! rn=Anthea rt=792197452
Aber Wuestenzwerge sind gute Kaempfer!!!
...auch wenn Sie sich meistens Friedlich verhalten :-)
Gundur

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



Re^6: Neue Regionsmitarbeiterin (Hate,  8. Feb 1995, 08:59:18):
#! rn=Durian rt=792147148
Lieber Durian,

eigentlich habe ich keine Lust, mich direkt mit Dir beschaeftigen zu
muessen, aber angesichts der im vorigen Artikel geaeusserten Meinung
koennte es u.U. auch DAZU kommen. Dann moechte ich mal sehen wo die Opfer
stehen.
Hate.

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



Re^7: Neue Regionsmitarbeiterin (Yantro,  8. Feb 1995, 11:22:20):
#! rn=Anthea rt=792197452

Aehmmm nur zur Klarstellung.. TIGER sind alles andere als wasserscheu.. eher
im Gegentum ;)

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



Re^8: Neue Regionsmitarbeiterin (Puma,  8. Feb 1995, 13:39:21):
#! rn=Yantro rt=792238940
Natuerlich sind Tiger wasserscheu, sonst wuerden sie ja auch nicht feuchte
Jeans foenen...

:-)


PUMA



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



Re^8: Neue Regionsmitarbeiterin (Loco,  8. Feb 1995, 16:16:44):
#! rn=Yantro rt=792238940
Den Tiger moechte ich sehen, der bei 12 Grad Wasser- und noch niedrigerer
Lufttemperatur die mindestens hundert Kilometer bis nach Svolvaer schwimmt :-)
Und wenn schon - ein paar Moewen reissen darfst Du meinetwegen ruhig...

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



Tundraweg (Kaig,  8. Feb 1995, 17:05:08):
Neuer Weg entdeckt

Nach endloser Suche ist nun endlich in der Polarregion ein neuer Weg
entdeckt worden. Geruechteweise soll er den Polarweg mit Moulokin
verbinden und eine erhebliche Abkuerzung sein. Dummerweise sind
die Wandrer, die in bis jetzt benutzt haben, nie wieder aufgetaucht.
Aber das wird DICH ja nicht abschrecken, oder?

Weitere Geruechte besagen etwas ueber hungrige Raubtiere und einen
kleinen Punker dort....

Ein Eingang ist nahe eines Schneemannes entdeckt worden...


gez. Die Polarverwaltung

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



punker (Kaig, 10. Feb 1995, 22:24:47):
Hi,

der kleine Punker lernt nun etwas sprechen. Er kennt schon einige Namen
von Regionsmagiern in Polar, fragt ihn mal.
Er steht uebrigens in der Lilientundra rum (neuer Polarweg).
Er muss aber noch ganz viel lernen......dauert noch ;-).

Viel Spass

KaiG

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



Unheimliche Gruft im Polar gesichtet. (Catweazle, 20. Apr 1995, 21:33:38):
[Verlegt von allgemeines, Schrumpfi, 20. Apr 1995, 17:55:51]:
Meine treue Begleiterin, meine Fledermaus, kam heute von ihrem taeglichen
Rundflug zurueck und hat mir von einer unheimlichen Gruft berichtet, die sich
im Polar, in der Naehe der Eisprinzessin, befinden soll.
Angeblich gehen dort recht seltsame Dinge vor. Sie breichtete mir von
schwarzen Messen die sie dort beobachtet haben soll.
Wer mutig genug ist, kann ja mal kucken gehen...
Aber huetet Euch, denn das Boese lauert dort an allen Ecken!

Viel Spass
Polarhexchen Schrumpfi


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



Mal wieder ein paar Friedhofsflueche ... (Boing, 23. Apr 1995, 00:20:26):
Hier mal wieder eine Auswahl der besten Katakombenflueche, ich kann leider
nicht alles posten, da das den Rahmen wohl etwas sprengen wuerde, Magier
koennen sich ~boing/log/flueche.bestof anschauen, Spielern kann ich die
Liste auf Anfrage per email schicken.

Mon,  4. Jul 1994, 08:57:13 Hardil flucht: Du Effenberg!
Sam,  9. Jul 1994, 20:19:47 Toeter flucht: hartes gemaecht!
Sam,  9. Jul 1994, 20:50:36 Toeter flucht:
hunderttausendzehnmillionenbloededaemonenwixgesichter!
Son, 17. Jul 1994, 00:36:18 Caradhras flucht:
scheissmittloggereihierdadarfmanjanochnichtmalfluchenwasmanwillundausserdemdarfkeinspacedabeisein*seufz*

[ Gar nicht wahr ... :) ]

Son, 17. Jul 1994, 19:45:08 Caradhras flucht:
was_schon_wieder_ein_reboot_und_ich_hol_mir_diese_dumme_waffe_immer_wieder?Mensch_bin_ich_bloed_auch_noch_so_einen_langen_satz_schreiben
Son, 17. Jul 1994, 21:32:29 Celebdil flucht:
undjetztmussmanauchnochdoofeCaradhrasauseinemRaumbefreien-grummelgrummel-

Fre, 29. Jul 1994, 11:40:07 Zardoz flucht: Boing ist doot
Fre, 29. Jul 1994, 11:40:17 Zardoz flucht: Ich meine Boing ist doof
Fre, 29. Jul 1994, 12:01:15 Zardoz flucht: Boing ist immer noch doof...vor
allem wenn er immer das Lab aendert...ich will doch nur ein Blutsaugerschwert
Fre,  5. Aug 1994, 19:03:56 Zardoz flucht: Boing ist doof! Nimms nicht
persoenlich, ist der besste Fluch, der mir einfaellt ;)

Fre,  5. Aug 1994, 12:13:28 Knoerry flucht: so ein arschgef*cktes Suppenhuhn
!

Mit, 10. Aug 1994, 12:10:36 Majere flucht:
WerDiesesVerfluchteLabyrithVonKatakombenAngelegtHatGehoertGetretenBisIhmDerBildschirmWegscrollt!
UndWennMirWiederEinerMeinDynamitWegklautGibtsNenDuellInDerArena!!!!!!!
Mit, 10. Aug 1994, 12:52:55 Majere flucht: AlleNaseLangWirdHierReseted
WieSollManDennDaDieQuestSchaffen????
Mit, 10. Aug 1994, 13:46:38 Majere flucht:
WoZumTeufelSindDieNamenDerHandVersteckt????

Son, 14. Aug 1994, 19:15:23 Toeter flucht: dicker doedel!
Son, 14. Aug 1994, 20:26:18 Toeter flucht: dicker doedel V 2.0
Son, 14. Aug 1994, 22:06:08 Toeter flucht: dicker doedel V 3.0
Die, 16. Aug 1994, 16:24:21 Toeter flucht: dicke doedel v 4.0
Die, 16. Aug 1994, 18:09:26 Toeter flucht: dicker doedel v5.0
Die, 16. Aug 1994, 20:18:14 Toeter flucht: dicker doedel v 5.0

[ da hat er wohl Probleme mit dem Zaehlen bekommen ... ;) ]

Don, 18. Aug 1994, 04:13:10 Bloodgore flucht: das euch hoeren und sehen
vergehen und ihr tausend aeonen in den klauen der teuflischten daemonen der
hoelle einen langsamen tod erleidet!
Don, 18. Aug 1994, 14:10:21 Khorne flucht: scheissunfaehige typen hier
Die, 23. Aug 1994, 19:31:53 Flintnail flucht:
verdammtesBlutsaugerschwerthinterdemallehersindgaebsdichdochnicht
Fre, 26. Aug 1994, 19:10:49 Mephisto flucht:
VerdammterMistWiesoSchliessenSichAlleFuenfSekundenDieseTueren?
Die, 30. Aug 1994, 20:51:56 Grimmborn flucht: Dieser himmelschreiende
Makroscheiss gehoert in den tiefsten Tiefen der Schlucht versenkt, wo die
bloedsinnigen
Daemonen sich mit dem abgefuckten neumodischen Kram vergnuegen koennen! Va fa
har saant haer i det haer jaekla spelet att goera!!!
Don,  1. Sep 1994, 10:48:17 Nietzsche flucht: ihr seid alles tunten und
schlampen
Mit,  7. Sep 1994, 21:27:44 Grimmborn flucht: Verdammte Makrohetzerei mit
Unterbrechungen! Und wenn ich die Mistsocke erwische, die diese
unuebersichtlichen Fenster erfunden hat fuehre ich ihr eine SUN nasal ein!
Mit, 14. Sep 1994, 13:09:40 Grimmborn flucht: Mir gehen diese Katakomben ja
so dermassen auf den Keks und das Schlimmste: ich bins jedesmal selber schuld!
Mit, 14. Sep 1994, 21:37:27 Grimmborn flucht:
KruzituerkennocheinmalKannManAlsWiederholerNichtEinfachDasSchwertAmEingangVomPfoertnerBekommen!!!!
Fre, 16. Dez 1994, 03:03:26 Bibo flucht: /so laut, dass auch die zatongs sich
erschrecken
Don, 29. Dez 1994, 15:43:57 Oetti flucht: Boing is langweilig und doof,
verdammichscheissschrumpfifrauenlilapausenmuell
Mit, 12. Apr 1995, 11:15:49 Craig flucht: Boing, ich raeche mich!

[ Angst ... :) ]

  Boing

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



Re: Mal wieder ein paar Friedhofsflueche ... (Schrumpfi, 23. Apr 1995, 00:48:43):
#! rn=Boing rt=798589226
Oetti das kriegste zurueck!! ;-))
Schrumpfililapausenmuell :-)

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



Re: Mal wieder ein paar Friedhofsflueche ... (Grimmborn, 23. Apr 1995, 18:31:22):
#! rn=Boing rt=798589226

Hmm, seit der Oeffnung des Nebeneingangs hat ja wohl die Kreativitaet
deutlich nachgelassen. Da sieht man wieder: Nichts hat nur Nachteile.
Ob man vielleicht ein fluchen im Nebeneingang einbauen sollte? ;-)

Grimmborn der Atheist

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



Eiswueste (Zardoz, 26. Apr 1995, 17:46:20):
Auf vielfachen Spielerwunsch hat sich ueberraschender weise der Weg
zum Nordpol durch die Eiswueste ein klein wenig geaendert. Also, wenn
irgend jemand so freundlich waere den neuen Weg herauszufinden so waere
ich ihm sehr dankbar. Um zwei Fragen, die sicherlich immer wieder gestellt
werden, vorzubeugen: Ja, ich hab die Eiswueste geaendert. Nein, das Untier
ist nicht staerker geworden und es stehen auch keine Eisdaemonen auf
dem Weg zum Nordpol.
Ciao
                   Zardoz

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



Re: Eiswueste (Dancer,  1. Mai 1995, 12:26:08):
#! rn=Zardoz rt=798911180
...Du laesst nach, Zardoz ;-)

Dancer - rueckt auf seiner Opabank ein Stueck zur Seite..fuer Zardoz...


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



Gruft (Schrumpfi,  6. Mai 1995, 04:09:27):
So, nun hab ich die Gruft ein wenig veraendert. Wie, wo und was duerft Ihr
selber rausfinden :-)
Schrumpfi

P.S Vielen Dank an Laurin fuer die Ideen, auf die ich beim snoopen gekommen
bin und allen anderen fuer die Typos.

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



Neues in der Gruft. (Schrumpfi, 19. Jun 1995, 03:47:39):
Ich hab Lilith auf den Wunsch einiger Leute, was schoenes gegeben. Allerdings
hab ich ihr auch einen Beschuetzer dazu gestellt, genauso wie Abdul.
Viel Spass! ;-)
Schrumpfi

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



Neues aus der Gruft. (Schrumpfi, 19. Jun 1995, 06:07:12):
Ich hab was vergessen; die Hexe am Eingang ist jetzt nicht mehr so
schweigsam. Bellicus, Dich kennt sie glaub ich auch, frag sie mal ;-)
Schrumpfi

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



Re: Neues in der Gruft. (Flintnail, 20. Jun 1995, 11:02:48):
#! rn=Schrumpfi rt=803526459
hmm...hier gibt's Lilith???
...und sie brauch 'nen Beschuetzer???...wozu?:)

Flintnail

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



Re: Neues aus der Gruft. (Kretek, 21. Jun 1995, 19:01:44):
Phhhhhh!
Ist die Gruft jetzt also noch moerderischer fuer arme, hilflose und
vertrauensvolle Level-19-Spieler, die sich durch freundliches Magier-
Gerede in die Gruft locken lassen? ;)

Kretek
(wird sich die Aenderungen NICHT anschauen!)
(Nix fuer Ungut, Schrumpfi!)

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



Re: Re: Neues in der Gruft. (Schrumpfi, 23. Jun 1995, 00:05:38):
#! rn=Flintnail rt=803638968
Dann geh mal kucken wozu sie den brauchst und wo sie sich rumtreibt! ;-)
Schrumpfi fies grinsend

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



Re: Re: Neues aus der Gruft. (Schrumpfi, 23. Jun 1995, 00:06:58):
#! rn=Kretek rt=803754104
Kann ich verstehen. ;-)
Schrumpfi hat schon so einige auf dem Gewissen ;-)

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



Re^3: Neues aus der Gruft. (Caradhras, 23. Jun 1995, 11:42:45):
#! rn=Schrumpfi rt=803858818
Argl, ja, hat sie. Zum Beispiel mich. :-)
Kommt davon wenn man mit Vorsicht 60 zu Lilith reingeht.
Haette es ja ueberlebt, aber mein eigener Bummi (von Lilith geworfen)
hat mich ja dann erwischt im Nachbarraum.

   Caradhras - moechte nicht wissen welche Vorsicht man jetzt bei
               Lilith braucht

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



Neues, niedliches Monster in Polar (Zardoz, 29. Jun 1995, 21:10:34):
Halloechen Leute.
Um wieder etwas Leben ins Polargebiet zu bringen habe ich dort ein
nettes und witziges Monster versteckt. Viel Spass damit :-))

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



Abdul und das Kreuz (Schrumpfi, 15. Jul 1995, 19:00:53):
Hi,
Ich habe das Kreuz geaendert, es ist leider nicht mehr ganz so gut wie
frueher.
Schrumpfi

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



Re^3: Abdul und das Kreuz (Roadrunner, 17. Jul 1995, 10:03:13):
#! rn=Schrumpfi rt=805836657
wuerde mich interessieren wieso :)
			RR

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



Re^5: Abdul und das Kreuz (Boing, 17. Jul 1995, 10:20:44):
#! rn=Janice rt=805969180
Das Kreuz war besser als die beste Ganzkoerperruestung (!!!), aus diesem
Grunde wurde es entschaerft.
   Boing

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



Re^6: Abdul und das Kreuz (Grimmborn, 17. Jul 1995, 14:52:59):
#! rn=Boing rt=805969244

Wow, wenn ich sowas versuche kommt immer nur ein "Ungueltiger Ruestungstyp,
bitte Erzmagier verstaendigen" (was auch nix nuetzt).
Den Trick will ich auch koennen! ;-)

Grimmborn der Atheist. Ja doch, kennt da einige Tricks...

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



Re^7: Abdul und das Kreuz (Asmodis, 17. Jul 1995, 21:32:36):
#! rn=Grimmborn rt=805985579
Lag vielleicht dran, dass nur der RANDOM-Wert, den das Kreuz aufweist
darueberlag, ausserdem ist es ja keine richtige ruestung
(magischer schutz und so)

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



Re^4: Abdul und das Kreuz (Schrumpfi, 18. Jul 1995, 17:44:31):
#! rn=Roadrunner rt=805968193
Weil es zu gut war.
Schrumpfi

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



Muell (Zardoz, 19. Jul 1995, 08:32:33):
Argl! Dieses Zumuellen der Zeitung geht mir tierisch auf den Geist!!
Zum Glueck darf ich als RM hier Artikel loeschen :-)

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



Neues in Polar (Zardoz, 14. Aug 1995, 17:37:53):
In den unendlichen Weiten der Eiswueste ist ploetzlich eine duestere Festung
aufgetaucht. Was es damit auf sich hat, konnte mir noch niemand sagen.

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



Re: Neues in Polar (Zardoz, 14. Aug 1995, 19:29:13):
#! rn=Zardoz rt=808414673
Naja, die Ankuendigung ist vielleicht etwas schwach. Also hier mal was
deutlicher:
In der Eiswueste gibts ne neue Gilde.

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



Re: Re: Neues in Polar (Jerrico, 14. Aug 1995, 19:32:18):
#! rn=Zardoz rt=808421353
Die Eiswueste ist aber verdammt gross, oder ?

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



Re^3: Neues in Polar (Kaenguruh, 14. Aug 1995, 19:37:17):
#! rn=Jerrico rt=808421538
Noe. Nur wenn man sich nicht auskennt :)

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



Re^4: Neues in Polar (Jerrico, 14. Aug 1995, 19:38:36):
#! rn=Kaenguruh rt=808421837
und was machen die, die sich nicht auskennen ?

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



Re^5: Neues in Polar (Kaenguruh, 14. Aug 1995, 19:42:34):
#! rn=Jerrico rt=808421916
Karte malen?
Weg markieren?
Mit "ede" rausgehen wenn nichts mehr hilft?
*argl* "ende" natuerlich :)

      Kaenguruh - war das jetzt Spielerhilfe? :))

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



Re^6: Neues in Polar (Hate, 14. Aug 1995, 19:46:17):
#! rn=Kaenguruh rt=808422154
Sicher verlaufen und jaemmerlich draufgehen, erfrieren verhungern oder
von irgendwelchen Tieren aufgefressen werden.
Hate.

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



Re^6: Neues in Polar (Rochus, 14. Aug 1995, 19:47:18):
#! rn=Kaenguruh rt=808422154
Man kann auch mit "toete eisbaer" oder "toete untier" ganz
schnell aus der Eiswueste herauskommen... :-)

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



Re^7: Neues in Polar (Kaenguruh, 14. Aug 1995, 19:49:56):
#! rn=Rochus rt=808422438
Och, da langts auch wenn man einfach wartet :))

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



Re^8: Neues in Polar (Jerrico, 14. Aug 1995, 19:56:01):
#! rn=Kaenguruh rt=808422596
oeffne tuer
n
lege in bett 2
ich warte lieber bis der weg bekannt ist, und hier geposted wird.

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



Re^9: Neues in Polar (Jerrico, 14. Aug 1995, 19:57:10):
#! rn=Jerrico rt=808422961
argl
und beobachte mein skript, wie es keine fehler macht.

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



Re^10: Neues in Polar (Kaenguruh, 14. Aug 1995, 20:04:42):
#! rn=Jerrico rt=808423030
Viel Spass dabei... Poste mal einer nen falschen weg :))

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



Re^9: Neues in Polar (Mupfel, 14. Aug 1995, 22:09:04):
#! rn=Jerrico rt=808422961
sollte der weg hier gepostet werden wird zeit ihn zu aendern :-)

-mupfel-

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



Re^10: Neues in Polar (Dancer, 14. Aug 1995, 22:44:12):
#! rn=Mupfel rt=808430944
Siehste Zardoz...ich sag doch: wenn Du nur ne kurze Ankuendigung machst, dann
wird die Rubrik vollgemuellt!
Schwallst Du Dir jedoch eine 10-Seiten-Story aus dem Fell, wirds garantiert
kein Re geben...weils keiner liest. Dann noch den Titel des Artikels a la
'Superneue Gilde mit klasse Features und Unsterblichkeitsbutton eroeffnet!'
und es kann gar nix mehr schiefgehen.

Dancer - Marketingtiger.


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



Re^7: Neues in Polar (Orktoeter, 15. Aug 1995, 09:37:11):
#! rn=Rochus rt=808422438
War das jetzt ein klassischer Rochus ?    (will heissen hat Rochus einen
Rochus auf Spieler ?)

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



Re^5: Neues in Polar (Schrumpfi, 15. Aug 1995, 12:43:28):
#! rn=Jerrico rt=808421916
Ich hab da ein nettes Haustierchen, kannste ja mal fragen ob es Dir ne
Wegbeschreibung oder ne Karte von der Eiswueste gibt. Es heisst: Untier! ;-)
Schrumpfi

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



Re^6: Neues in Polar (Orktoeter, 15. Aug 1995, 14:03:48):
#! rn=Schrumpfi rt=808483408
Also Schrumpfi, was denn nun ? Haustier oder Untier ?
OrkT.

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



Kampf in der Gilde (Zardoz, 15. Aug 1995, 19:28:20):
Nach anfaenglichen "Unfaellen" hab ich die Kaempfe fuer die Chaosgilde mal
gruendlich ueberarbeitet. Sie sollten jetzt eigentlich machbar sein.
Wer jetzt noch stirbt bekommt trotzdem keine EPs zurueck :-)

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



Eisdaemonen-Koenig (Zardoz, 17. Aug 1995, 15:55:49):
Der Eisdaemonen-Koenig hat jetzt etwas dabei, was vielleicht ein Paar
Krieger des Chaos gebrauchen koennten...

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



Neues aus der Gruft (Schrumpfi, 28. Aug 1995, 03:58:44):
Ich habe die Gruft ein wenig ausgebaut. Die Chaoten muessen jetzt nicht immer
zu Mecki oder zum Schrat rennen um boese zu werden. :-)
Die Tierchen sind lieb, Abduls Gesinnung ist noch besser geworden und zwei
exorzisten versuchen ihr Glueck in der Gruft. Die anderen sind so boese wie eh
und  jeh. :-)
Ausserden glaub ich, dass es sich lohnt, die Gruft nochmal in allen Details
zu bewundern. ;-)
Schrumpfi

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



Nadeln  (Schrumpfi, 21. Sep 1995, 23:31:50):
Die Nadeln sollten jetzt Eure Daemonen nicht mehr treffen.
Schrumpfi

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



Weg zur Gilde (Roesti, 27. Sep 1995, 13:35:41):
n,n,o,o,s,o,o,n,w,w,s,n,oeffne Falltuer
Viel Spass beim eintragen...Mann sollte uebrigens unbedingt einen Schinken
fuer den Gildenhund mitbringen...Ausserdem sollte mann frech oder lieb sein
sonst wird der Pfoertner flapsig...
Alle Angaben ohne Gewehr.
Roesti.

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



Neues in Polar (Zardoz, 27. Sep 1995, 19:29:48):
Man glaubt es kaum, aber es ist wirklich war. Irgendein Idiot hat doch
tatsaechlich mitten in der nebeligen Tundra des Polargebietes auf einem
einsamen Berg eine Rodelbahn errichtet, auf der bis zu 5 Spieler
gegeneinander Rennen fahren koennen. Ob da ueberhaupt jemand hinfindet?
Wohl eher nicht und der Mann mit dem Bauchladen (ja es ist der Zwillings-
bruder des Arena-Bauchladen-Verkaeufers) wird wohl nicht viel Umsatz machen.

Zardoz, der sich mal wieder in der Tundra verlaufen hat.

P.S. Diverse Kommata sind im obigen Text einzufuegen :-)

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



COOLE RODELBAHN (Buddelflink, 28. Sep 1995, 00:15:47):
hey ho die rodelbahn is echt klasse am anfang zwar weng schwer aber mit der
zeit ganz gut gell

buddelflink

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



Rodeln (Zardoz, 28. Sep 1995, 10:52:33):
Es hat einen Preissturz im Laden des Schlittenverkaeufers gegeben. Jetzt
sollten die Schlitten auch fuer "normale" Spieler erschwinglich sein.

Ciao          Zardoz

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



Rodeln (schon wieder) (Zardoz, 28. Sep 1995, 11:04:28):
Die Rodelrennen kosten jetzt eine Startgebuer von 500 Muenzen.
Der Sieger eines Rennens bekommt dafuer 90% der Einnahmen. Sollte keiner
im Ziel ankommen, so wird das Geld in den Topf fuers naechste Rennen
gelegt.

Ciao      Zardoz

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



Schlitten-Verkaeufer (Zardoz, 29. Sep 1995, 13:10:01):
Der Schlitten-Verkaeufer kann jetzt auch die Panzerung des Schlittens
reparieren. Dies gilt allerdings erst fuer NEUE Schlitten und NEUE
Panzerungen!
Wie immer reicht es dann, dem Haendler den Schlitten zu geben und er schaut
selbst nach, was er alles am Schlitten reaprieren/nachladen kann.

Ciao       Zardoz

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



Rodeln (Zardoz,  2. Okt 1995, 09:25:07):
Mitteilung der Rodel-Bahn-Verwaltung

Die Betreiber der Rodelbahn haben keine Kosten und Muehen gescheut und
haben nun auch eine graphische Darstellung der Rodelbahn eingebaut. Diese
laesst sich mit "unt bahn" aufrufen. Sie ist noch recht primitiv, an einer
verbesserten Darstellung wird gearbeitet.

Viel Spass wuenscht stellvertretend fuer die Verwaltung

             Zardoz

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



Top-Liste (Zardoz,  4. Okt 1995, 12:18:25):

Hallo Leute!

Hier kommt die erste Top-Liste der Rodler. Es wurden die Ergebnisse
vom 27. Sep bis 2. Okt beruecksichtigt. Fuer einen Sieg gab es 
die Anzahl an Gegnern als Punkte. Hat man also 4 Spieler besiegt,
so gab es 4 Punkte...

    1. Ryne         31
    2. Zuerileu     22
    3. Yeti         20
    4. Asmodis      19
    5. Rxtech       15
    6. Khidar       12
    7. Jaf          11
    8. Kaenguruh    10
       Bambulko     10
   10. Odo           7
       Hardil        7
   12. Mars          6
       Anakin        6
   14. Nikolaus      4
       Buddelfink    4
       Locutus       4
   17. Hakkikkt      3
       Schrumpfi     3
       Warlord       3
   20. Larissa       2
   21. Jerrico       1
       Pyromella     1
       Nairolf       1
       Xera          1
       Golum         1

Ich hab versucht Testrennen mit Zweities aus der Wertung zu nehmen.
Ausserdem gab es da einige Magier, die durch hohe Werte in Staerke gewonnen
hatten; der Fehler ist beseitigt und auch diese Rennen kamen nicht in
die Wertung. Ich selbst hab mich aus der Wertung genommen. Wer gegen mich
gewonnen hat, hat natuerlich auch einen Punkt bekommen :-)


Ciao            Zardoz


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



Neuste Rodel-Top-Liste (Zardoz,  4. Okt 1995, 12:46:42):
Rodel-Top-Liste bis 4. Oktober, 12 Uhr.

     1. Asmodis         79
     2. Warlord         37
     3. Ryne            31
     4. Rxtech          26
        Zuerileu        26
     6. Kaenguruh       23
        Zardoz          23
     8. Yeti            20
     9. Khidar          12
    10. Jaf             11
    11. Bambulko        10
    12. Odo              7
        Hardil           7
    14. Mars             6
        Anakin           6
    16. Nikolaus         5
    17. Buddelfink       4
        Locutus          4
    19. Hakkikkt         3
        Schrumpfi        3
        Nasim            3
    22. Larissa          2
        Vanir            2
    24. Jerrico          1
        Pyromella        1
        Nairolf          1
        Xera             1
        Golum            1
        Hobo             1
        Highlander       1
        Nial             1
        
-----------------------------------------------------------------------------



Rodeln (Zardoz,  4. Okt 1995, 17:57:13):
Die Bahn wurde auf 9 Spuren und damit maximal 7 Spieler erweitert. Viel
Spass damit und weitere Ideen an mich

Ciao Zardoz

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



idee zu rodeln (Zuerileu,  5. Okt 1995, 02:54:50):
Sali,
Wie waer wenn man Kettensaegen mit denen man den schlitten des anderen wenn
man nah drann ist zersaegen kann anstad in zu rammen, im waffenarsenal
aufnehmen wuerde ?. Nun mehgr ausruestung und waffen find ich sind sicher
immer erwuenscht und so eine saege darf nicht zu billig sein und muss einen
verherenden Schaden anrichten =:))

Play a Game, Play a Game, play....   Zuerileu

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



Re: idee zu rodeln (Yantro,  5. Okt 1995, 07:40:53):
#! rn=Zuerileu rt=812858090

Zueri, stellt sich nur die Frage, was eine Kettensaege mit Fantasy und
Mittelalterlicher Technik zu tun hat... sind da lauter kleine Orks drinne, die
das Teil dann antreiben?? Also bitte denk doch erst mal, bevor Du wiedermal
einen Vorschlag in die MPA setzt....

                Nur ich, der Depp.

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



Re: Re: idee zu rodeln (Zuerileu,  5. Okt 1995, 16:39:42):
#! rn=Yantro rt=812875253
Sorry yantro,
Aber erklaer mir mal was ein raketentraeger oder ein Flammenwerfer im Mud zu
suchen hat ? Hey yantro wenn in deinem Hirn mehr hirnzellen als luft waere
koennte evtl. auch Dir etwas fantasievolles einfallen, da demm anscheind nicht
so ist kannst du nur numnoergeln und motzen was das zeug haelt und das ist
warscheinlich auch die einzigste faehigkeit die du besitzt !

In demm Sinne, wisch zuerst den eignen Muell in deinen 4 Waende weg bevor du
dich um meinen kuemmerst !

Zuerileu (*stink* wuedent !)

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



Re: idee zu rodeln (Warlord,  5. Okt 1995, 19:49:30):
#! rn=Zuerileu rt=812858090

ja ja, zueri*, das ist ja klar, das diese saege teer sein soll, damit du sie
dir als magier kaufen kannst und wir als spieler nicht ;)) oder willst du sie
nur haben, damit du wieder ne chance gegen mich hast ? :))))

	Warlord, der rodelnde Chaot

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



Re^3: idee zu rodeln (Yantro,  6. Okt 1995, 07:56:01):
#! rn=Zuerileu rt=812907582


Hallo Zueridarling,

ich will es hier wirklich nicht auf einen Flamewar (das ist englisch)
einlassen, darum waer mir lieb, wenn das der letzte Artikel zu dem Thema ist.
Kannst mir ja mailen, wenn Du Dich traust ;)

Zum einen kenne ich Zardoz so gut, dass ich sicher bin, dass er darauf
achtet, dass es zu keinen unlogischen oder ins MG nicht passenden Objecten
kommt, denn er liebt das Rollenspiel ueber alles und will es nicht
kaputtmachen. Wenn Du an dem Sinn von Raketen und Flammenwerfers zweifelst,
dann frag doch mal Li ein bisschen ueber die alten Techniken der Fernwestler
aus (die haben naemlich schon Raketen gebastelt, als wir morgengraeulichen
'Normalcreaturen' noch stammelnd ueber die Hochebene gekrochen sind.

Zu Deinem Vorwurf ueber meine Kreativitaet kann ich nur betonen, dass ich da
so eine kleinigkeit angeschlossen habe, was die Phantasie sehr anregt.
Natuerlich erkennt nicht jeder sofort den Wert, aber das liegt an der
Qualitaet der Spieler (wer sich nicht umschaut hat Pech).

Ansonsten: Wenn Du auch mal was angeschlossen hast und was anderes tust als
hier Leute zu nerven, dann meld Dich mal wieder ;)

Yantro, der Depp der Deppen.

P.S.: Und nu Husch zurueck zu Deinen Drogen, damit Du die Kritik auch
irgendwie verarbeitest ;)

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



Re^4: idee zu rodeln (Ketos,  7. Okt 1995, 10:51:24):
#! rn=Yantro rt=812962561
Ja zadroz,
koenntest du nicht die Magierbefehle splah und flame einbauen ins rennen
(natuerlich nur fuer magier...)
splash = X spritzt dich patsch nass. Du vereist und schliederst aus der Kurve
flame= X zueckt sein Flamenwerfer und fackelt dein schlitten ab.

zum thema kettensaege: ein fuchsschwanz (saege) tut es doch auch. mann muss
sich nur fuer ein 2 runden nebem dem opfer halten und an seinem schlitten rum
zu
saegen.

- Ketos -
P.S. splash & flame war Ironie,   die Saege ein Vorschlag

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



Re^5: idee zu rodeln (Baron,  7. Okt 1995, 10:54:33):
#! rn=Ketos rt=813059484
Wie waers mit einem kleinen, transportablen Minidrachen als Flammenwefer.
Wenn man seinen Schwanz quetscht spuckt er Feuer (manchmal natuerlich auch auf
seinen Besitzer :). Die Saege ist dann kleiner Steinbeisser, dem man mit etwas
Glueck die Steine abgewoehnen und ihn auf Schlittenkufen konditionieren kann
:).
Baron - muss auch endlich mal rodeln.

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



Re^5: idee zu rodeln (Baron,  7. Okt 1995, 10:57:38):
#! rn=Ketos rt=813059484
ARGL, Teppfihler !

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



Top-Liste (Zardoz,  9. Okt 1995, 12:16:55):
Rodel-Top-Liste bis 5. Oktober, 16 Uhr.

     1. Asmodis         79
     2. Rxtech          54
        Zardoz          54
     3. Warlord         37
     4. Ryne            31
     5. Kaenguruh       30
     6. Zuerileu        26
     7. Yeti            20
     8. Pampers         17
     9. Hardil          16
    10. Hakkikkt        13
        Guybrush        13
    11. Khidar          12
    12. Jaf             11
    13. Bambulko        10
        Nasim           10
    15. Odo              7
        Highlander       7 
    17. Mars             6
        Anakin           6
    19. Nikolaus         5
    20. Buddelfink       4
        Locutus          4
    22. Schrumpfi        3
    23. Larissa          2
        Vanir            2
        Li               2
    26. Jerrico          1
        Pyromella        1
        Nairolf          1
        Xera             1
        Golum            1
        Hobo             1
        Nial             1
        
-----------------------------------------------------------------------------



Top-Liste (Zardoz, 10. Okt 1995, 14:39:32):
Die Top-Liste der besten Rodler aller Zeiten haengt jetzt auf der Tribuene
der Rodelbahn.

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



schlittenfahn (Yeti, 12. Okt 1995, 16:48:51):
Werte MitrodlerInnen, hi Zardoz !

Vieleicht ist Euch das Problem auch schon aufgefallen:
Man moechte nach ner Spritztour mit den Schlitten mal wieder etwas Geld zu
finanzierung dieses Hobbys erplaetten und da der schlitten doch recht schwer
ist, diesen sicher in seiner Kiste|Truhe|Nische etc. in seinem sauerverdienten
Seherhaus verwahren. "Fein, lege Schlitten in Kiste", DENKT man, aber denkste,
nix is, man muss vorher alles abmontieren und einzeln in die Kiste packen, was
bei nem schweren Kampfschlitten mit diversen Beschleunigern und Waffeln aeh
Waffen schon gewaltig in tipperei ausartet, ca 5x entferne blablubber von
schlitten, dan 6x lege xxx in kiste. wenn man den schlitten rausnimmt, geht
der spass andersrum... Ich will ja nich schon wieder meckern, aber koennte man
dies Verfahren nicht etwas vereinfachen ??
NEIN, ich will KEIN TF-Skript dafuer schreiben.
JA, ich koennte mir 2 Dinge vorstellen:
 1. Den Schlitten oder meinetwegen auch die Kiste so zu veraendern, das man
den Schlitten KOMPLETT in die Kiste kriegt.
 2. Wenn obiges zu lange dauert, als Uebergangsloesung auch etwa: montiere
alles an schlitten | entferne alles von schlitten

P.S. Wie waers mit nem gib alles an SpielerX , das vieleicht das "behalte"-
Propertie beruecksichtigt ??
warn halt nur so'n paar Ideen, um das Mud schoener zu machen.
*wink*, Yeti

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



Re: schlittenfahn (Asmodis, 12. Okt 1995, 19:41:54):
#! rn=Yeti rt=813512931
Leg den Schlitten doch einfach so in dein Haus und schliess die Haustuer ab
:)

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



Re: Re: schlittenfahn (Yeti, 12. Okt 1995, 20:18:34):
#! rn=Asmodis rt=813523314
 is ja nich sinn der sache, wozu brauch man nen Haus, wenn keine reinkommt

Yeti, sich wundernd

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



Re^3: schlittenfahn (Mars, 13. Okt 1995, 11:24:34):
#! rn=Yeti rt=813525514

Ich habe aehnliche Probleme, wenn ich beliebige Behaelter, wie z.B.
das Postpaket, in die Truhe legen will. Da ich gluecklicherweise
ueber 10 Raeume verfuege, habe ich einen nicht-zugaenglich gemacht,
und bei Bedarf schaffe ich mir einen Durchgang, lege die Sachen in
den Raum, und mache den Durchgang wieder dicht.
Hmm, vielleicht sollte ich den Raum als Rumpelkammer einrichten :)

  Mars

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



Re^4: schlittenfahn (Aranya, 16. Okt 1995, 12:22:49):
#! rn=Mars rt=813579874
Aha, vermauerst du den Raum und reisst dann wieder ein Loch?
Und wer macht dann die Sauerei weg? Haesch ne Putzhilfe?

Aranya
     Heut ziemlich schmarrig drauf. Ab nach Muell.

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



Rodelbahn (Zardoz, 19. Okt 1995, 16:51:22):
Auf der Rodelbahn koennen jetzt ein paar Hindernisse rumstehen, die man
dann auch in der graphischen Darstellung sieht. Spaeter wird man solche
Hindernisse selber abwerfen koennen... ich bastel dran

Ciao        Zardoz

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



Re: Ersatzregionsmagierin im Polar (Mupfel, 14. Dez 1995, 19:11:54):
#! rn=Schrumpfi rt=818964472
och du machst das ganz gut schrumpfi. wenn z. mal wiederkommt, wollen die
goetter ihn vielleicht garnicht mehr als rm weil du das viel besser machst :-)

-mupfel- (haelt zu schrumpfi. immer.)

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



Re: Re: Ersatzregionsmagierin im Polar (Schrumpfi, 14. Dez 1995, 19:16:42):
#! rn=Mupfel rt=818964714
Nix! Zardoz ist und bleibt RM vom Polar und es gibt niemanden der das besser
machen kann als er. Schon gar nicht ich.
Schrumpfi (ohne Zardoz nur die haelfte)

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



Darkovertal (Bendeigid, 11. Jan 1996, 16:51:25):
Hallo zusammen!

Das wunderschoene Polargebiet ist um eine Attraktion reicher:

          Das darkovertal!

Ich freu mich und bin ziemlich nervoes, aber dennoch: viel Spass damit!

Danke an alle, die geholfen haben: Zardoz (Papi, Lehrer, Regionsmaggi)
 Schrumpfi ( Mami, Testerin und mehr), Gruuh (:) ), Zephyr (nette Ideen
gehabt), Wargon, Toeter, Boing u.v.a , die ich mit Programmierfragen genervt
hab.
 Viel Spass,
                Bendeigid

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



Fruehling im Darkovertal (Bendeigid, 26. Jan 1996, 15:34:03):
Hallo zusammen!

Als ich eben so ganz allein (wie immer :) ) durch das Darkovertal spazierte,
da fiel mir doch auf, dass der Fruehling langsam aber sicher Einzug haelt. Die
Blumen beginnen zu bluehen...

Viel Spass damit,
                 Bendeigid

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



Bansheebug behoben (Bendeigid,  2. Feb 1996, 09:40:33):
Hallo liebe Darkoverfreunde und Bansheekiller!

Leider hab ich in meiner Hektik in der ersten Woche nach Anschluss meines
Tals einen klitzekleinen Fehler (genaugenommen waren es zwei Klammern)
gemacht, der dazu fuehrte, dass die Banshee nicht all ihr Koennen zeigte...
seitdem. Inzwischen ist das aber aufgefallen und sofort behoben worde.
Wenn also jetzt eine etwas hoeher Vorsicht noetig sein sollte, wisst ihr,
woran es liegt.

Bendeigid, sein Haustier haetschelnd

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



Neues aus Neskaya (Bendeigid, 13. Feb 1996, 02:49:33):
Vai Domyn,

Die Leronis in Neskaya hat ein neues Tool dabei. Schaut's Euch doch einfach
mal an...

Z'par Servu,
             Bendeigid

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



Re: Neues aus Neskaya (Asmodis, 13. Feb 1996, 11:45:34):
~#! rn=Bendeigid rt=824176173
~#! tid=824176173
Hmm, heisst es dann wieder Leronis sehen und sterben ?
lohnt es sich, dafuer sein geld in der kneipe zu verpulvern?
viel zu stark, das vieh

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



Re: Re: Neues aus Neskaya (Caradhras, 14. Feb 1996, 07:56:12):
~#! rn=Asmodis rt=824208334
~#! tid=824176173
Eine Leronis ist kein Vieh, Asmodis!

         Caradhras - grummelnd

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



Re^3: Neues aus Neskaya (Bendeigid, 14. Feb 1996, 11:16:25):
~#! rn=Caradhras rt=824280972
~#! tid=824176173
Hmmmmpf, Vieh?
Na warte ich bau ihr noch eine persoenliche Abneigung gegen Familie Asmodis
ein. :)
Sonst seid ihr doch immer auf der Suche nach Herausforderungen. Also versucht
euch doch mal an ihr. Ist sicher witziger als Gardewaechter oder Killerpopel.

Z'par Servu,
           Bendeigid

P.S.: Vielleicht gefaellt euch ja das neue Tool von ihr :)

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



Eiswueste (Zardoz, 20. Feb 1996, 17:54:45):
Hallo ihr kaelteliebenden Bewohner des MG!

Ich habe mir fuer die naechste Zeit vorgenommen, die Eiswueste komplett
zu ueberarbeiten. Wie sie spaeter aussehen wird, weiss ich noch nicht
100%ig, ich hab nur so ein paar Ideen. Jedenfalls soll sie nachher kein
Labyrinth mehr sein! Wer noch Ideen dazu hat, kann mir ja mal mailen.

Ciao   Zardoz

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



Re: Eiswueste (Abendrot, 20. Feb 1996, 19:18:18):
~#! rn=Zardoz rt=824835285
~#! tid=824835285
Sie war doch so ein schooooeeenes Labyrinth!
Hat richtig Spasz gemacht, das zu kartographieren.
Warum laeszt Du das denn nicht so?

AbendRot im MorgenGrauen

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



Re: Re: Eiswueste (Asmodis, 20. Feb 1996, 23:08:21):
~#! rn=Abendrot rt=824840298
~#! tid=824835285
Ein Lab kann sie ruhig bleiben, nur soll es etwas schluessig sein.
Kartographieren liess sie sich ja bisher nicht richtig.

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



Re^3: Eiswueste (Fyt, 20. Feb 1996, 23:12:20):
~#! rn=Asmodis rt=824854101
~#! tid=824835285

Also auf meiner Karte passt die Eiswueste auf ein rechteckiges Gitter.
Waere schade um die Arbeit, wenn sie ploetzlich kein Lab mehr waere ;)

Fyt.

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



Re^3: Eiswueste (Catweazle, 21. Feb 1996, 11:36:02):
~#! rn=Asmodis rt=824854101
~#! tid=824835285
Wenn Du meinst, die Eiswueste liesse sich niht kartographieren, dann
hast Du Dich schwer getaeuscht :)
YTC (hat schon mal eine Karte der Eiswueste gesehen!)

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



Re^4: Eiswueste (Paracelsus, 21. Feb 1996, 11:44:27):
~#! rn=Catweazle rt=824898962
~#! tid=824835285
Ne Karte von der Eiswueste ? Ist doch nun wirklich kein Problem.
Ich hab mir zu Spielerzeiten auch eine gemacht.

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



Re^3: Eiswueste (Abendrot, 21. Feb 1996, 12:18:34):
~#! rn=Asmodis rt=824854101
~#! tid=824835285
Doch, die Eiswueste laesst sich gut kartografieren.
Und das jetzige Lab der Eiswueste ist auch schluessig.
Ich kann das bestaetigen, denn ich habe die Eiswueste kartografiert und sogar
eine ASCII-Karte von der Eiswueste angefertigt.

Soll ich sie hier posten?

AbendRot im MorgenGrauen

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



Re^4: Eiswueste (Freund, 22. Feb 1996, 19:59:14):
~#! rn=Abendrot rt=824901514
~#! tid=824835285
Hallo,

ja, und ob die Eiswueste sich kartographieren laesst.
Danach habe ich sie naemlich entworfen! :)
Ich gebe ja zu, dass sie nicht perfekt programmiert ist, aber, so richtig
ganz doll veraendern, dass nix mehr von ihr uebrig bleibt?

*seufz*

Da geht mir doch glatt ein Stueck Sentimentalitaet verloren.

Wie waere es, die Eiswueste an einer Ecke zu vergroessern? :)

Ein um sein groesstes zusammenhaengendes Gebiet* besorgter Freund

* natuerlich nur, dass ich programmiert habe ;)

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



Re^5: Eiswueste (Asmodis, 23. Feb 1996, 03:37:37):
~#! rn=Freund rt=825015554
~#! tid=824835285
Hupps, wusste gar nicht, dass du auchh Polarchef bist, naja, so
lernt man dazu. Ich sehe trotzdem keinen Zusammenhang in der
Eiswueste, durch den man eine MAP zeichnen koennte, ist
irgendwie bloed, wenn man erst nach norden ggeht und dann nach sueden und
trotzdem nicht in den gleichen Raum kommt.

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



Re^6: Eiswueste (Asmodis, 23. Feb 1996, 03:39:32):
~#! rn=Asmodis rt=825043057
~#! tid=824835285
Sorry fuer die Typos, ich werfe gleich diese bloede Tastatur
aus dem Fenster.



 *SCHEPPER*

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



Re^6: Eiswueste (Freund, 23. Feb 1996, 20:56:35):
~#! rn=Asmodis rt=825043057
~#! tid=824835285
Gruess Gott,
Naja, EIGENTLICH kommt man schon im gleichen Raum heraus, wenn man
erst nach Norden und dann nach Sueden geht, aber leider wird man nicht
so richtig mit dem Schneesturm fertig, der da herrscht.

Wahrscheinlich geht man gar nicht geradeaus und zurueck, obwohl man meint,
man taete es... ;)
Mit polarem und FREUNDlichem Gruss... ein (ehemaliger) Polarchef... :)

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



Eiswueste (Zuerileu, 24. Feb 1996, 07:50:55):
Sali Zardoz,
Hmm neue ideen zur Eiswueste ?
Lass Jof anstelle des Untiers in der eiswueste Frei rumlaufen =:))

Tschuess Zuerileu

Auua.. nicht schlagen ich nehme ja alles zurueck und es war bestimmt nicht
boese gemeint !! =:)

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



Re: Eiswueste (Amonsul, 24. Feb 1996, 13:16:27):
~#! rn=Zuerileu rt=825144655
~#! tid=825144655
Och so wie der immer idlet merkt Jof bestimmt nix davon.

    AmonSul

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



Re: Eiswueste (Asmodis, 26. Feb 1996, 10:03:58):
~#! rn=Zuerileu rt=825144655
~#! tid=825144655
Jof laeuft doch nicht frei rum, der wird hoechstens mal von
Larissa gassigefuehrt, wenn er nicht in der Gegend rumsteht und
rumidelt :)

 Aua, nicht zappen :)

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



Urlaubsende (Bendeigid, 26. Feb 1996, 13:58:26):
Der Schmied von Neskaya hat seinen Urlaub wie erwartet bei einem befreundeten
Schmied verbracht und von ihm einiges gelernt. Nun ist er wieder in seine
Schmiede zurueckgekehrt und hat seinen Dienstleistungsbetrieb wieder
aufgenommen.

Z'par Servu,
           Bendeigid

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



Regionsmagier (Zardoz, 27. Feb 1996, 16:59:30):
Da ich zur Zeit wegen eines Praktikums ueberhaupt keine Zeit habe, wendet
euch in naechster Zeit bei Bugs/Ideen zur Polarregion bitte an Schrumpfi,
sie wird euch gerne weiter helfen :)

Ciao     Zardoz

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



Re: Regionsmagier (Mupfel, 27. Feb 1996, 19:51:06):
~#! rn=Zardoz rt=825436770
~#! tid=825436770
Na toll. Nix gegen Schrumpfi aber wenns komplexer wird, vielleicht besser an
Bendeigid.

-mupfel-
(Sorry Schrumpfi)

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



Zardoz Praktikum (Freund, 27. Feb 1996, 20:15:49):
Tja, wenn Zardoz jetzt ins Praktikum geht, dann ist meine Eiswueste
ja erst einmal gerettet, oder?

=)

Ein FREUND der Polarregion.

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



Re: Zardoz Praktikum (Bendeigid, 28. Feb 1996, 10:16:51):
~#! rn=Freund rt=825448549
~#! tid=825448549
Aeh, Danke Mupfel fuer die Ehre! *erroet, krieg Panik*
Mach hier bloss nicht meine Mama schlecht, die ist FIT!

Freund, vertu Dich da mal nicht, Zardoz hat zu Hause einen Compi, nur eben
abends keine Zeit, sich hier im RZ die Haende wund zu tippen. Aber zum
Eiswueste abschmelzen und anschliessendem Neuschneeschippen reicht es
sicherlich.

Bangend,
        Bendeigid

P.S.: Hab eh keine Schreibrechte, also bloss keine RZGs finden :)

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



Re: Eiswueste (Cauno,  1. Mar 1996, 16:57:48):
~#! rn=Zardoz rt=824835285
~#! tid=824835285
Bitte, bitte nicht die Eiswueste aendern!
Das ist meine einzige Karte, die noch stimmt!

	C. No

	:-)

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



Lofwyr (Mupfel,  6. Mar 1996, 00:59:14):
Hallo

Ich habe mal den Lofwyr etwas ueberarbeitet (hauptsaechlich interna, die
Spieler nicht sehen (sollten)). Sollten irgendwelche merkwuerdigen Sachen
passieren oder so, mail an mich.

-mupfel-
P.S.: Ja, ich habe einen Teil vin Troys Hinterlassenschaft im Polar
'uebernommen'. Nein, ich wurde nicht gezwungen. Nein, Zardoz steht nicht
hinter mirrrarglllroechel... :-)

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



Re: Lofwyr (Schrumpfi,  6. Mar 1996, 19:31:11):
~#! rn=Mupfel rt=826070354
~#! tid=826070354
Stimmt! ICH steh hinter Dir und zwar mit der Peitsche. ;-)

Schrumpfi die Sklaventreiberin

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



Re: Re: Lofwyr (Mupfel,  7. Mar 1996, 19:23:42):
~#! rn=Schrumpfi rt=826137071
~#! tid=826070354
Aber selber'n lauen lenz machen was? :-)

-mupfel- (mit gewalt geht bei mir nix)

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



Zwei klitzekleine Neuerungen (Bendeigid,  8. Mar 1996, 14:12:16):
Hi, Fans des Darkovertals!

Also, ihr drei, wenn ihr euch umschaut werdet ihr evtl zwei winzige
Neuerungen entdecken. Eine davon ist eher was fuer Metzler, die andere eher
was fuer die Eitlen bzw. die, die an schoenen Dingen Spass haben.

Z'par Servu,
               Bendeigid

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



Nochwas Neues (Bendeigid,  8. Mar 1996, 17:24:33):
Hm, aufgrund zahlreicher Noergeleien von Gaesten hat der Wirt des "Falken"
seine Speisekarte etwas ueberarbeitet.

Z'par Servu,
            Bendeigid

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



Re^3: Lofwyr (Schrumpfi,  8. Mar 1996, 19:16:08):
~#! rn=Mupfel rt=826223022
~#! tid=826070354
Tja, die haben mich jetzt im Holy Mission zum proggen eingeteilt, also muss
ich mir hier meine Sklaven suchen. ;-)
Schrumpfi jagt dann halt Smirk mit der Peitsche durch den Polar.

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



Lofwyr (Mupfel,  9. Mar 1996, 06:03:05):
Hallo

Muss man irgendwelche kleinen Neuigkeiten ankuendigen? Keine Ahnung. Auf
jeden Fall steht jetzt bei Lofwyr's Dunghaufen eine kleine Gedenktafel....

-mupfel-

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



Allgemeine Abruestung (Bendeigid, 14. Mar 1996, 15:58:42):
Hi.
Wie der Titel schon ankuendigt, richtigerweis, habe ich beschlossen, im Zuge
der allgemeinen Abruestung den ersten (oder zumindest zweiten) Schritt zu tun.
Ich habe ALLE Monster des Darkovertals, wie ich meine, "realistischer"
gemacht: Sprich, ihre Ruestungen sind nun auch mit Waffen fuer
Normalsterbliche zu knacken und nicht nur mit Magie. Das war groesstenteils
zwar bisher auch so, aber die paar, bei denen es nicht so war, sind geaendert.
Wundert Euch also nicht, wenn ihr jetzt "auf einmal" auch mit Schwertern und
Knueppeln besser trefft.
Ich hoffe, ich habe "zum Ausgleich" die HP und die Waffen der Monster nicht
zu hart gemacht, sollte aber in etwa passen. Beschwerden/Anregungen nehm ich
gern entgegen.
Mein Tip: Muellt die Rep-Files der anderen Magier, bei denen ihr ohne
Feuerbaelle etc keine Schnitte kriegt ruhig voll, damit mal auch dort was
geschieht.

Z'par Servu,
          Bendeigid

P.S.: Die Banshee ist nicht so viel leichter, nein nein... :))

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



Umbau... (Bendeigid, 15. Mar 1996, 11:52:22):
Der Falknerladen in Neskaya ist wegen Umbau kurzfristig geschlossen.
Wir bitten um Ihr Verstaendnis!

Im Auftrag,
          Bendeigid, z'par servu.

P.S. Wieso schreib ichs eigentlich? Haette ja eh keiner gemerkt.. ;(

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



Neueroeffnung des Falknerladens (Bendeigid, 20. Mar 1996, 14:40:18):
Hallo zusammen!

Wie der Titel richtigerweise ankuendigt ist der Falknerladen jetzt wieder
zugaenglich.
Auf vielfachen Wunsch von Spielern habe ich mit dem Falkner geredet, ob es
nicht doch moeglich waere, ab und zu Falken zu verkaufen. Recht widerwillig
hat er nun zugestimmt. Beim Preis liess er kaum mit sich reden, aber immerhin
gibt es dort jetzt den einen oder anderen herrlichen Verrin-Falken zu kaufen.

Viel Vergnuegen,
   z'par Servu,
               Bendeigid

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



Nachtrag (Bendeigid, 20. Mar 1996, 14:50:16):
Hab noch ne Kleinigkeit auf dem Weg geaendert. kommt euch zugute, ist aber
echt nur eine Klitzekleinigkeit. ;)

Z'par Servu,
           Bendeigid

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



Neues fuer Parallelwelt (Bendeigid,  2. Mai 1996, 16:17:36):
Da offensichtlich die neue "Anschlusswelle" rollt moechte ich nicht
zurueckstehen. Suedwestlich von Dyan befindet sich ein klitzekleiner Berg in
der Tundra, der besonders fuer Seher interessant sein duerfte. Der berg ist
selbstredend auch fuer Normalsterbliche zu erreichen, aber nicht in voller
Pracht.
Es wird dringend gebeten, etwas Vorsicht walten zu lassen. Fuer die mutigen
Bezwinger der gradezu laeppischen Monster warten natuerlich Belohnungen.

Z'par Servu,
            Bendeigid

P.S. Nein, ich will von Beschwerden nix hoeren. Lob nehm ich aber gern an :))

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



Re: Neues fuer Parallelwelt (Mupfel,  2. Mai 1996, 21:52:35):
~#! rn=Bendeigid rt=831046656
~#! tid=831046656
Boahhh ey, und ich hab EINEN Raum in die Parawelt geklotzt, auch mit NPCs
drin... (schon am 30.4.)

-mupfel- (vielleicht wird er ja nie gefunden :-)

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



Aenderung der Darkovanerdolche (Bendeigid,  3. Mai 1996, 13:46:19):
Hallo Freunde des Darkovertals!

Ich habe auf die draengende Bitte von Spielern die Dolche umgeschrieben. Sie
koennen jetzt ein paar neue Funktionen:
Zum einen lassen sie sich jetzt autoload machen, damit der Eid der Bredin
auch ueber einen Reboot gerettet werden kann. Das geht natuerlich nur mit
EINEM Bredu (oder einer Breda, klar). Beenden laesst sich dieser Eid durch
zerbrechen des Dolches.
Weiterhin kann man eine kleine Gravur anbringen, die den Griff des Dolches
schmueckt.
Ich bitte zu beachten, dass das mit dem Autoload WAHLWEISE geschehen kann.
WENN er allerdings auf autoload ist, dann taugt der Dolch selbstredend nicht
mehr als Waffe.... waer ja noch schoener.
Die alte Funktionalitaet ist voll erhalten geblieben.

Viel Spass damit.

Z'par Servu,
               Bendeigid

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



Es geschehen noch Wunder (Zardoz, 10. Mai 1996, 11:29:49):
Man glaubt es kaum, aber ich hab doch tatsaechlich mal die Top-Liste der
Rodelbahn ueberarbeitet. Tja, haettet ihr wohl nie gedacht, dass es jemals
gemacht wird :))))

Ciao Zardoz

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



Bansheeaenderung (Bendeigid, 15. Mai 1996, 10:11:08):
Hallo FreundInnen der Banshee!

Ich habe ein paar geringfuegige Aenderungen an der Banshee vorgenommen. Sie
haelt jetzt etwas laenger durch, ist dafuer aber "verwundbarer" durch Waffen
von Normalsterblichen.

Z'par Servu,
             Bendeigid

P.S.: Sie liefert auch ein bissel mehr EP jetzt, isssss klaaar!

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



Kanaele (Zardoz, 15. Mai 1996, 13:24:50):
Hallo, Freunde des Polargebiets!

Es gibt durch das neue Kanalsystem jetzt folgende Kanaele:
-Eiswueste  Nettes zum kaeltesten Urlaubsgebiet des MGs
-Moulokin  Diese Stadt verdient einen eigenen Kanale
-Gruft    Wer ist nicht ein Fan von Lilith?
-Orklager Gruesse an Orktoeter etc.
-Sauna   Wer nicht immer seine Sachen ausziehen will, kann diesen Kanal nehmen
-Slanderscree  Natuerlich nur fuer Seher
-Neskaya   Fuer die, die den Pass fuerchten
-Friedhof  Selbst der Vampir soll diesen Kanal anhaben.
-Postquest   Fragen zur Postquest, was sonst.

weitere Kanaele sind in Arbeit.

Ciao Zardoz
P.S.: Ach ja, natuerlich gibts auch -Polar, ist doch logisch.

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



Re: Kanaele (Morgoth, 15. Mai 1996, 13:26:19):
~#! rn=Zardoz rt=832159490
~#! tid=832159490
hmm, gehoert pegasus stall nicht auch dazu?
oder der weissfroschtuempel ?

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



Neuerungswut (wust?) (Bendeigid, 15. Mai 1996, 14:46:12):
Hallo nochmal,

In guter M*****h-Manier moechte ich kundtun, dass sich noch zwei kleine
Aenderungen in Neskaya ergeben haben. Es laesst sich nu ein wenig Geld da
verdienen. 
Schaut mal bei der Stadtgarde oder in der Post vorbei.

Z'par Servu,
              Bendeigid

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



Re: Kanaele (Mupfel, 15. Mai 1996, 15:04:06):
~#! rn=Zardoz rt=832159490
~#! tid=832159490
Bist du in all diesen Kanaelen drin? Die neuen Kanaele 'leben' doch nur
solange, wie einer drin ist. Kennst du IRC? Schreib Dir nen ComBot oder sowas,
also nen NPC/Objekt, das staendig im Kanal ist und nach einem Reboot/Crash als
erstes den Kanal 'eroeffnet'. Dann kann immer einer rein...

-mupfel-
P.S. und pass auf Hate auf, der meinte was von 'annen Hals geben', wenn er
einen ChannelBot erwischt :-)

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



Baum in Polar eingefroren! (Bendeigid,  3. Jun 1996, 21:07:02):
Abgesehen von der ungeheuren Kaelte, die das Polargebiet erfreulicherweise zu
bieten hat moechte ich kurz zwei Aenderungen bekanntgeben:
a) Die Banshee hatte (mal wieder) einen Spleen in letzter Zeit. Muss wohl ein
altes file draufgerutscht sein, jedenfalls ist sie jetz wieder ein wenig
"fitter"
b) Die Matrix hab ich ueberarbeitet, da die alte Version aufgrund der neuen
Kanaele absolut sinnlos geworden ist. Ich hoffe, die kleine Aenderung ist
hilfreich. Vermutlich wird sie in der naechsten Zeit noch eine Erweiterung
bekommen, dann aber ohne Ankuendigung.
Uebrigens bin ich Anregungen betreffend neuer Tools sehr aufgeschlossen,
hoerte ich doch zuletzt Gemaule von Karatekas ueber mangelnde Moeglichkeiten.
Gute Ideen werden honoriert....

Z'par Servu,
           Bendeigid

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



Preissturz bei Schlitten und Zubehoer (Zardoz, 13. Jun 1996, 13:14:46):
Da das Interesse am Rodeln stark nachgelassen hat, gab es jetzt einen
Preissturz im Schlittenladen. Alles kostet jetzt nur noch die Haelfte! Nagut,
interessiert eh keinen, aber immerhin wichtiger als umgefallene Baeume... :)

Ciao Zardoz

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



Re: Preissturz bei Schlitten und Zubehoer (Raffi, 13. Jun 1996, 13:47:15):
~#! rn=Zardoz rt=834664486
~#! tid=834664486
Wiebitte ? fallen jetzt in Polar auch schon Baeume um ? Das MG wird ja immer
Uniformer!

Gruss
H.

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



Re: Re: Preissturz bei Schlitten und Zubehoer (Myself, 13. Jun 1996, 14:30:50):
~#! rn=Raffi rt=834666435
~#! tid=834664486
Hi Rodelfans,

vielleicht macht man ja Schlitten aus umgefallenen Baeumen? ;-)

Aber eigentlich ging's mir darum, 1. Zardoz fuer die Preissenkung
zu danken und 2. zum Intensiven Rodeln aufzurufen - es macht wirklich
Spass!!! :-)   -Wenn genuegend Interesse da ist, wuerde ich auch gerne
mal einen Rodelwettbewerb im Grossen Stil organisieren.  -Ggf mail an
mich  -vielleicht finden sich ja auch noch ein paar Leute die, nachdem
die reboot-folgen der letzten Zeit ueberwunden sind, Spielern niedrigerer
level helfen wuerden, so dass wir ein paar Stunden oder sogar Tage lang
die Rodelbahn unsicher machen koennten....
Wenn sich was tut, werde ich das hier posten.

Bis dann,

Guten Rutsch

Myself  - rodelt gerne aber viel zu wenig

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



Re: Re: Preissturz bei Schlitten und Zubehoer (Fyt, 13. Jun 1996, 16:46:57):
~#! rn=Raffi rt=834666435
~#! tid=834664486

Ach was, die baeume in Polar waren doch die ersten, die jemals 
umgefallen sind, oder kann sich noch jemand dran erinnern, da
welche gesehen zu haben?

Fyt.

PS: Oder verwechsel ich das mit Wueste? Oder Unterwelt?

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



Re^3: Preissturz bei Schlitten und Zubehoer (Grimmborn, 13. Jun 1996, 17:27:41):
~#! rn=Fyt rt=834677217
~#! tid=834664486

Du verwechselst das mit dem alten Grimmswald. ;-)

GdA

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



Re^4: Preissturz bei Schlitten und Zubehoer (Asmodis, 13. Jun 1996, 18:51:27):
~#! rn=Grimmborn rt=834679661
~#! tid=834664486
Ich glaub, die einzigen Region, in der keine Baeume umfallen, ist die
Unterwelt, da stehen keine :)

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



Re^5: Preissturz bei Schlitten und Zubehoer (Laila, 13. Jun 1996, 19:15:41):
~#! rn=Asmodis rt=834684687
~#! tid=834664486
Ja klar, die sind schlisslich auch schon alle umgefallen !!!

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



Re^6: Preissturz bei Schlitten und Zubehoer (Felagund, 13. Jun 1996, 22:34:46):
~#! rn=Laila rt=834686141
~#! tid=834664486
Also dass in Unterwelt keine Baeume stehn, halt ich fuer ein Geruecht, meinem
2ti is da sogar letztens einer in ner Hoehle begegnet ;)
Ausserdem gehoert auch ein Stueck zur Unterwelt, das viele immer fuer Wald
halten..und da stehn auch Baeume ;)
gruss..Fela
-Unterweltmitarbeiter (auch wenn von der Arbeit noch nedd viel zu sehn is ;)))

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



Ganze Waelder umgefallen! (Bendeigid, 25. Jun 1996, 09:57:20):
Hi Freunde des Darkovertals, FP-Sucher, Scripties, Obermetzler, Ignoranten und
der ganze Rest!

Ich habe gestern mal mein Rep-File durchgesehen und die Ergebnisse der
fruchtbaren Arbeit eingebaut. Vielen Dank an die (doch ueberraschend
zahlreichen) Absetzer von Ideen und (ungewollt?) Log-Infos der Monster. 
Also, konkret:
    - Die banshee ist ein wenig geaenderet, seit besser zu anfangs etwas
vorsichtiger (*grins Kotzbrocken und Valarian*)
-Allart sollte Bugfrei sein. Falls nicht --> Sofort melden! Beei mir traut er
sich evtl nicht
-Dyan hat wieder was gelernt... er wird noch Chilana um Laengen schlagen!
Fragt ihn weiter, aber bitte sinnvolles
- Die Matrix ist um ein paar kleine Dinge ergaenzt worden. Dank an Nichts und
Myself.
- Aeh... wasnoch? naja paar Kleinigkeiten hier und da.

Z'par Servu,
              Bendeigid

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



Im Polar ist wieder ein Eiszappfen abgefallen (Mupfel,  5. Jul 1996, 14:42:55):
Hallo

Noch ein Beitrag von mir zum Polargebiet (und wieder ist es die Parallelwelt):
ein Elch. 

-mupfel-

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



Elch (Mupfel,  9. Jul 1996, 19:07:14):
Huhu!

Wer sich schonmal ueber den Elch geaergert hat: unter gewissen Umstaenden ist
er jetzt friedlich...

-mupfel-

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



Re: Elch (Anatol, 10. Jul 1996, 13:54:14):
~#! rn=Mupfel rt=836932034
~#! tid=836932034


Pflanzt Baeume!

Anatol


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



Kein RM fuer den Polar. (Schrumpfi, 15. Jul 1996, 00:32:38):
Der Polar hat im Moment keinen Regionsmagier. Ich weiss nicht wo Zardoz ist
undich zieh mich zurueck. Ich werd Spielpause -1 eingeben und ich werd erst
dann wieder meine Arbeit aufnehmen wenn sich hier einiges geaendert hat. Zu
erreichen bin ich als Amazora im Anderland oder als Amazora hier. Falls jemand
in meinen Files rumpfuscht, dann nur Mupfel oder Zardoz. Es sei denn, es
handelt sich umBugs da ist es dann natuerlich klar. 
Schrumpfi

P.S Alle Raeder stehen still, wenn Dein starker Arm es will.

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



Re: Kein RM fuer den Polar. (Freund, 17. Jul 1996, 18:35:45):
~#! rn=Schrumpfi rt=837383558
~#! tid=837383558
Hi,

da ich noch VRM Polar sein duerfte, da ich mal RM Polar war,
bitte komiisarisch alle Mails an mich...

Falls jemand anderes dieses Amt uebernimmt, ziehe ich mich sofort
und drastisch zurueck. ;)

Ein Freund fuer alle Faelle - Knuddeleisbaer mit Fell by default.

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



Re: Re: Kein RM fuer den Polar. (Bendeigid, 17. Jul 1996, 18:57:08):
~#! rn=Freund rt=837621345
~#! tid=837383558
Wiewaswieso?
Zardoz still lives! (Sofern Daemonen ueberhaupt leben)
Du kannst also wieder in der Versenkung verschwinden, Freund, aber danke fuer
die Hilfe :))
Z'par Servu,
            Bendeigid

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



Wir faellen noch den letzten Baum! (Bendeigid, 17. Jul 1996, 19:53:35):
Nur fuer Seher: klitzekleine Kleinigkeit in der Parawelt. Viel Spass.

Z'par Servu,
          Bendeigid.
P.S.: Rennt mir da nicht blind rein, ich hab euch gewarnt...

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



Rodelbahn (Zardoz, 24. Jul 1996, 16:51:53):
So, jetzt hab ich endlich mal die TopListe ueberarbeitet. Sie wird automatisch
nach jedem Rennen aktualisiert. Asmodis fuehrt eh uneinholbar, also hat die
Liste sowieso keinen Sinn :)

Ciao Zardoz

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



Schneelawine ins Rollen gekommen. (Schrumpfi,  3. Aug 1996, 00:41:15):
Hi 

In der Gruft hat sich etwas veraendert. Die Kraeuterfrau kann Euch jetzt
helfen, wenn Ihr blind seid oder Euch ne Hand fehlt.
Schrumpfi

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



Re: Friedhof (Schrumpfi,  4. Aug 1996, 05:27:46):
~#! rn=Boing rt=838760437
~#! tid=838760437
[Verlegt von d.gebirge, Schrumpfi,  2. Aug 1996, 23:12:53]:
[Verlegt von d.polar, Schoko, 30. Jul 1996, 23:02:01]:

Jau !!! definitiv!
Ich warte jetzt schon seit 3 Tagen, endlich mal allein die Quest machen zu
koennen ...

schoko
(wartet immer noch)



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



Re: Friedhof (Schrumpfi,  4. Aug 1996, 05:28:02):
~#! rn=Boing rt=838760437
~#! tid=838760437
[Verlegt von d.gebirge, Schrumpfi,  2. Aug 1996, 23:13:28]:
[Verlegt von d.polar, Mahatma, 30. Jul 1996, 23:02:59]:
Damit waer es moeglich, dass ein Spieler die Katakomben eine Weile blockiert. 
Ausserdem gibt es Gelegenheiten, zu denen ein Spieler, der die Quest schon
hat, da noch mal rein muss (ZT holen, Quotzlipeck toeten, FPs sammeln, was 
weiss ich). Wenn der dann auf einen lahmen Quester warten muss, waer das nicht
gut.

Mahatma



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



Re: Re: Friedhof (Schrumpfi,  4. Aug 1996, 05:28:04):
~#! rn=Mahatma rt=838760579
~#! tid=838760437
[Verlegt von d.gebirge, Schrumpfi,  2. Aug 1996, 23:13:44]:
[Verlegt von d.polar, Schoko, 30. Jul 1996, 23:05:38]:

schon wieder ich ...

Jau das schon, aber genau DAS ist es was nervt ...
Ich wollte diew Quest machen und war grad dran durchzusteigen, welche Hebel
ich dreucken muss etc... da saust Mahatma an mir vorbei oeffnet alle Tueren
und ich steh da und hab ueberhaupt keine Raffung mehr, was ich jetzt schon
gemacht hab und was net ...

Ein Tip war ich sollte doch einfach durchgehen und mir den Rubin schnappen und
dei Quest fertig machen.
Naja waere ne Loesung aber .....

schoko
(wartet immer noch)



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



Re^3: Friedhof (Schrumpfi,  4. Aug 1996, 05:28:04):
~#! rn=Schoko rt=838760738
~#! tid=838760437
[Verlegt von d.gebirge, Schrumpfi,  2. Aug 1996, 23:13:48]:
[Verlegt von d.polar, Zardoz, 30. Jul 1996, 23:15:53]:
Mach doch nen virtuellen Compiler draus, dann hat jeder seine eigenen
Katakomben :)

Ciao Zardoz, der Boing fuer einige Wochen beschaeftigen will...



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



Re^4: Friedhof (Schrumpfi,  4. Aug 1996, 05:28:06):
~#! rn=Zardoz rt=838761353
~#! tid=838760437
[Verlegt von d.gebirge, Schrumpfi,  2. Aug 1996, 23:13:51]:
[Verlegt von d.polar, Grimmborn, 30. Jul 1996, 23:32:07]:

Was hat das in d.polar zu tun, seit wann ist denn der Friedhof in der
Polarregion? ;-)

GdA sollte auch besser schlafen. Und nciht Jariels Telefonrechnung aergern.



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



Re: Friedhof (Schrumpfi,  4. Aug 1996, 05:28:08):
~#! rn=Boing rt=838760437
~#! tid=838760437
[Verlegt von d.gebirge, Schrumpfi,  2. Aug 1996, 23:14:27]:
[Verlegt von d.polar, Hadra, 31. Jul 1996, 00:35:16]:
hmm, die idee das lab fuer sich alleine zu haben hat was, aber da man beim
ersten anlauf doch recht lange brauchen kann, faende ich so was wie in tarko
reub nicht schlecht (obwohl man dafuer natuerlich fast alles auf den kopf
stellen muesste ;)

gruss
  hadra



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



Re: Re: Friedhof (Schrumpfi,  4. Aug 1996, 05:28:08):
~#! rn=Hadra rt=838766116
~#! tid=838760437
[Verlegt von d.gebirge, Schrumpfi,  2. Aug 1996, 23:14:31]:
[Verlegt von d.polar, Eros, 31. Jul 1996, 03:43:27]:
Hm also ich glaub ned das des nur ums fp suchen geht.
Es soll ja auch noch Spieler geben, die sowas gemeinsam machen wollen,
bzw. die sich auch helfen lassen wollen. Also wuerde ich vorschlagen
es so zu lassen wie es is, bzw. man koennte vielleicht so ne Art Parawelt

zu machen, der der die Quest noch ned hat is eben in ner Art Parawelt,
damit wuerde man ihn auch ned stoeren, kann aber z.b. helfen
und des duerfte doch auch ned ein all zu grosser
Arbeitsaufwand sein.

Eros



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



Re: Friedhof (Schrumpfi,  4. Aug 1996, 05:28:10):
~#! rn=Boing rt=838760437
~#! tid=838760437
[Verlegt von d.gebirge, Schrumpfi,  2. Aug 1996, 23:14:33]:
[Verlegt von d.polar, Aline, 31. Jul 1996, 09:37:16]:
Hallo Boing,

also ich bin der Meinung es sollte so bleiben wie es ist. Erstens bist
Du nicht nur von der Friedhofsquest fuer Deine aussergewoehnlichen
Resetzeiten bekannt (beruechtigt).
Zweitens finde ich es immer etwas laestig, wenn ich bei einer Quest
warten muss bis ich weitermachen kann, weil gerade ein anderer in 
dieser Quest ist (Beispiele: Konfusius, Soruth oder Pyramiden). Vor
allen Dingen kommt es ja auch oft genug vor, dass der 1. Quester 
eigentlich gar nicht mehr in der Quest ist, sondern sich ausgeloggt hat.
Die Katakomben zu erkunden dauert aber auch so schon seine Zeit (ich
war damals ungefaehr ne Woche drin) und da stell ich mir das besonders
laestig vor wenn ich da drin bin und es warten draussen schon ein
paar Leute die die Quest auch machen wollen :(

So das ist meine Meinung

Aline



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



Re: Friedhof (Schrumpfi,  4. Aug 1996, 05:28:12):
~#! rn=Boing rt=838760437
~#! tid=838760437
[Verlegt von d.gebirge, Schrumpfi,  2. Aug 1996, 23:16:45]:
[Verlegt von d.polar, Guybrush, 31. Jul 1996, 09:49:53]:
Hm, nachdem ich die replys mal so durchgelesen habe, lass ich mich auch nicht
senfen und gib meine Bitte dazu:
Der Reiz der Katakomben besteht gerade darin, dass ein Reset zwischendrin
kommt und man nochmal von vorne anfangen muss. Deswegen wuerd ich das mal
lassen ;)
(Zur Erklaerung: Ich habs damals erst im 4ten Reset geschafft.)
Zum anderen gibt es nicht nervigeres als wenn Leute, die die Quest schon
mehrfach gespielt haben durch die Katakomben duesen und alle Tueren oeffnen,
moeglicherweise noch reset-abhaengige Quest-Objekte mitnehmen, nur um an ein
Spiegelschild oder aehnliches zu kommen. Ich erinner mich, als Slyfoz mich
damals ueberscriptet hat und ich nicht mehr weitermachen konnte. Irgendwann
wurde dann ja auch der zweite Weg in die Vampirgruft gebaut, um den Leuten
einen weiteren Weg zum BSS zu ebnen. Dass dieses teil heut keinen mehr
interessiert ist wohl in der Entwicklung des MG begruendet (Nicht traurig
sein, Papi ;) )

Deshalb waere die optimale Idee, die ich mit Zardoz teile, VC_Katakomben
einzurichten, so wie bei Wargons Lab z.B. Allerdings ist das grosser Aufwand. 
Eine andere Moeglichkeit waere es, die "wertvollen" Teile wie Spiegelschild
und Handschuhe auch anders verfuegbar zu machen. Die FP's sind allerdings nur
durch nochmaliges SPielen zu holen.

Ein Kompromiss koennte vielleicht sein, eine zweite Ebene zu bauen, die der
ersten gleich ist, allerdings nur fuer diejenigen zu betreten ist, welche die
Quest schon einmal gespielt haben. Damit gearten sich diese und neue Quester
bicht in die Bahn. Waere sozusagen die Parawelt, welche auch schon
vorgeschlagen wurde. Dann muessten nur die FP in beiden Welten die Raeume
teilen, oder die gleiche Nummer bekommen. Vielleicht geht das.

So, das war viel zu lang fuer nen anstaendigen Artikel, aber ich hatte grad
keine Lust was zu schaffen, also muell ich hier rum.
Guybrush mag Pommes lieber mit Ketchup als mit Senf



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



Re: Re: Friedhof (Schrumpfi,  4. Aug 1996, 05:28:14):
~#! rn=Guybrush rt=838799393
~#! tid=838760437
[Verlegt von d.gebirge, Schrumpfi,  2. Aug 1996, 23:16:47]:
[Verlegt von d.polar, Nirdavo, 31. Jul 1996, 10:01:34]:
  Ich hab mir auch grad die Diskussion ueber den Friedhof durchgelesen. Ich
hab ihn noch nicht gespielt, einfach aus dem grunde, weil er mir bisher viel
zu gefaehrlich war. Wenn man die Quest nur mit Metzelhilfe schafft, dann ist
man einfach noch nicht gut genug dafuer. punkt. Dann soll man es halt eben
lassen. Ich bin der Meinung, dass die Katakomben dann fuer jeden, der die
Quest macht einzeln erschaffen werden (aehnlich wie bei Tarko Raeub), damit
einem andere bei der Quest nicht in die Quere kommen koennen.
  Hmmm, war ein wenig wirr, aber ernst meine ich es trotzdem,

                        Nirdavo



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



Re^3: Friedhof (Schrumpfi,  4. Aug 1996, 05:28:14):
~#! rn=Nirdavo rt=838800094
~#! tid=838760437
[Verlegt von d.gebirge, Schrumpfi,  2. Aug 1996, 23:16:49]:
[Verlegt von d.polar, Orktoeter, 31. Jul 1996, 11:44:23]:
Also, wenn man da fuer sich alleine rumsuche kann waere schon nett.
Ich habe damals (*traeum von vergangenen Zeiten*) auch recht lange gebraucht,
bis ich es weitgehend raus hatte.. und dann kam mal wieder (insgesamt bestimmt
2stellig) jemand durchgerast...
Jaja, damals gab es den "Nebeneingang" zum BSS noch nicht..
Von wegen der Hilfe : Da muss man doch "nur" fuer einen ZT metzeln, das sollte
man dann halt erst versuchen, wenn man gross und stark ist :)
Also fuer jeden seine eigenen katakomben waere schon was.. (wohl vor allem
Arbeit fuer Boing :) )
OrkT, sicher das er nicht einen FP aus den katakomben hat !



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



Re: Friedhof (Schrumpfi,  4. Aug 1996, 05:28:16):
~#! rn=Boing rt=838760437
~#! tid=838760437
[Verlegt von d.gebirge, Schrumpfi,  2. Aug 1996, 23:17:07]:
[Verlegt von d.polar, Cauno, 31. Jul 1996, 13:46:33]:
Das waere in meinen Augen sehr sinnvoll.
Dann gibt es auch nicht mehr so viele Tote durchs Hoellenfeuer ...

C. No



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



Re: Re: Friedhof (Schrumpfi,  4. Aug 1996, 05:28:18):
~#! rn=Mahatma rt=838760579
~#! tid=838760437
[Verlegt von d.gebirge, Schrumpfi,  2. Aug 1996, 23:17:07]:
[Verlegt von d.polar, Cauno, 31. Jul 1996, 13:47:59]:
Ich bin der Meinung, der "lahme quester" hat immer noch vorrang vor dem
ZT-Sammler, der die gegend schon kennt. Der blockiert die Quest dann
schliesslich auch.

C. No
nn



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



Re: Re: Friedhof (Schrumpfi,  4. Aug 1996, 05:28:18):
~#! rn=Aline rt=838798636
~#! tid=838760437
[Verlegt von d.gebirge, Schrumpfi,  2. Aug 1996, 23:17:09]:
[Verlegt von d.polar, Cauno, 31. Jul 1996, 13:49:44]:
Beim Ausloggen sollte man natuerlich rausgeschmissen werden. Bei den Pyramiden
klappt das ja auch.

C. No



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



boing, mach es ! (Schrumpfi,  4. Aug 1996, 05:28:20):
[Verlegt von d.gebirge, Schrumpfi,  2. Aug 1996, 23:17:11]:
[Verlegt von d.polar, Miraka, 31. Jul 1996, 22:53:42]:

genau das richtige!

hoer nicht auf einige meckerlieseln, die sich nur um ihre stats oder die FP
kuemmern, denke an die
neuen quester, die den friedhof noch nie gemacht haben...

ich will die anderen ja nicht verspotten, aber wer die quest schon mal gemacht
hatte, der kann
ruhig ein bisserl hinter den 'lahmen' neuen questern anstehen.

das ist doch fair, oder?

zur not steht man eben nicht an, sondern verbringt seine zeit mit was
nuetzlicherem...

...wie zum beispiel: karate ueben :-)

Miraka ;^)



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



Re^3: Friedhof (Schrumpfi,  4. Aug 1996, 05:28:22):
~#! rn=Cauno rt=838813784
~#! tid=838760437
[Verlegt von d.gebirge, Schrumpfi,  2. Aug 1996, 23:17:11]:
[Verlegt von d.polar, Azzuro,  1. Aug 1996, 11:06:12]:
Wie waer es wenn Du nicht einfach die Durchgaenge freigibst, sondern der
Spieler einen Schluessel oder Amulette oder oder oder erhaelt, die ihn durch
die magische Barriere durchlassen. (Bsp.:Du drueckst einen Knopf -> Ein
kleiner Schluessel faellt aus
einer Luke; Du sagst XXXXXX -> ein kleiner Zombie fuehlt sich in seiner
Totenruhe gestoert und schmeisst Dir einen magischen Diamanten an den Kopf)
Wenn du diese Dinge vergaenglich machst, dann kannst Du fuer jeden einzelnen
Spieler seine eigenen Resetzeiten ohne grossen Aufwand realisieren.
Ich hoffe es ist einihgermassen klar was ich meine, aber ich kann z.Z. nicht
klar denken, da ich in 2 Stunden Klausur schreibe.

Azzuro (hatte beim ersten mal loesen magische Hilfe)




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



Re^4: Friedhof (Schrumpfi,  4. Aug 1996, 05:28:24):
~#! rn=Azzuro rt=838890372
~#! tid=838760437
[Verlegt von d.gebirge, Schrumpfi,  2. Aug 1996, 23:17:13]:
[Verlegt von d.polar, Cauno,  1. Aug 1996, 12:11:31]:
Ich fuerchte, das gaebe eine voellig neue quest.

C. No



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



Re: boing, mach es ! (Schrumpfi,  4. Aug 1996, 05:28:24):
~#! rn=Miraka rt=838846422
~#! tid=838846422
[Verlegt von d.gebirge, Schrumpfi,  2. Aug 1996, 23:17:15]:
[Verlegt von d.polar, Mahatma,  1. Aug 1996, 14:11:29]:
Hmm, Vorsicht, _nur_ um FP kuemmern erscheint mir etwas vorschnell 
dahergesagt, schliesslich bringen die in den Katakomben versteckten FPs fast
genauso viele Stufenpunkte wie die Abenteuerpunkte fuer die Quest. Und da
die alten Spieler, die die Quest schonmal gespielt haben, durch die 
Levelreform etwas benachteiligt wurden, wuerd ich den FP-Sucher durchaus auf
eine Stufe mit dem Neuquester stellen wollen. Ein Spott erscheint mir da
tatsaechlich unangebracht.

Mahatma



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



Re: boing, mach es ! (Schrumpfi,  4. Aug 1996, 05:28:26):
~#! rn=Miraka rt=838846422
~#! tid=838846422
[Verlegt von d.gebirge, Schrumpfi,  2. Aug 1996, 23:17:17]:
[Verlegt von d.polar, Asmodis,  1. Aug 1996, 14:56:43]:
hehe, das nuetzt euch aber gar nix, weil die fp-sucher dann auch die
Katakomben blockieren.



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



Re^5: Friedhof (Schrumpfi,  4. Aug 1996, 05:28:28):
~#! rn=Cauno rt=838894291
~#! tid=838760437
[Verlegt von d.gebirge, Schrumpfi,  2. Aug 1996, 23:17:17]:
[Verlegt von d.polar, Azzuro,  2. Aug 1996, 16:29:38]:
Warum gaebe das eine neue Quest? Ob die Wege jetzt durch magische Felder
blockiert werden und sich dann oeffnen oder ob sie sich einfach so oeffnen,
das ist doch das selbe in gruen.
Aaaeeehhhhh ...das selbe in blau!
Gruss Azzuro



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



Re^7: Friedhof (Schrumpfi,  4. Aug 1996, 05:28:28):
~#! rn=Schrumpfi rt=839012111
~#! tid=838760437
[Verlegt von d.gebirge, Schrumpfi,  2. Aug 1996, 23:17:19]:
[Verlegt von d.polar, Acrimon,  2. Aug 1996, 21:34:07]:
Alles Schmarrn :-)

Warum? Na weil ich was Besseres weisz:

Die Quest bleibt dieselbe, die Resetzeiten bleiben dieselben, die Raeume
bleiben dieselben.
Mit zwei Unterschieden:
1. Die resetabhaengigen Questtools gibts fuer Leute, die die Quest gerade
machen, in jedem Fall (dh wenn sie den Gegenstand nicht schon haben), und fuer
die, die die Quest schon haben, bleiben sie resetabhaengig.

2. Die Tueren stehen fuer die, die die Quest schon haben, offen und fuer die,
die die Quest gerade machen, bleiben sie resetabhaengig.

Vorteile?
1. Ein Skripter kann den Quester nicht mehr in seiner Quest behindern,
2. Ein Erfahrener kann vom Quester in die Katakomben zu Hilfe gerufen werden,
3. Man begegnet sich weiterhin in der Quest,
4. Man kann die Quest zu Mehreren machen.
usw. usf.

Acrimon, der Rote Ritter



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



Re: Friedhof (Schrumpfi,  4. Aug 1996, 05:28:30):
~#! rn=Schrumpfi rt=839020345
~#! tid=839020345
[Verlegt von d.gebirge, Morgoth,  3. Aug 1996, 15:08:50]:
jau, gute sache. is zwar laaaaange her, aber der reset hat doch sehr genervt.
(nach dem vierten hab ich die loesung rausgekramt) 
Morgoth


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



Re: Re: Friedhof (Asmodis,  4. Aug 1996, 06:21:40):
~#! rn=Schrumpfi rt=839129310
~#! tid=839020345
Argh, nehmt Schrumpfi das Bier weg, bevor sie nochmal diese Artikel
verlegt :)

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



Re^3: Friedhof (Schrumpfi,  4. Aug 1996, 06:27:34):
~#! rn=Asmodis rt=839132500
~#! tid=839020345
Ich bin ja schon friedlich. In Zukunft ueberlass ich das verlegen Grimmborn
und ich trink auch nie wieder was beim mudden ;-)
Schrumpfi die Dumpfbacke

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



Re^3: Haltet den Polar sauber! (Fyt,  5. Aug 1996, 06:21:20):
~#! rn=Schrumpfi rt=839127931
~#! tid=839021151

Hm, Schrumpfi, heisst das, dass Du mit Mudden aufhalten willst?

Fyt.

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



Re^4: Haltet den Polar sauber! (Schrumpfi,  5. Aug 1996, 06:22:31):
~#! rn=Fyt rt=839218880
~#! tid=839021151
Muesst ihr immer alles so woertlich nehmen, was ich da schreibe? ;-)
Furchtbar! ;)
Schrumpfi hoert weder mit mudden noch mit saufen auf!

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



Ein Panzer fuer Kroatien (Schrumpfi,  6. Aug 1996, 01:38:25):
Hi Ihrs
Cthulhu hat jetzt zwei von seinen Krallen. So soll das gemeinsam metzeln fuer
Euch ein bisschen atraktiver werden. Staerker gemacht hab ich nix, denn nach
ausreichendem testen und nachgruebeln, bin ich zu der Erkenntnis gekommen,
dass die Paragruft eigentlich eh ganz nett stark ist :)
In diesem Sinne: Cthulhu fhtagn, Cthulhu fhtagn!

S.d.O.v.P

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



Radikale Abstufung aller Ruestungen (Bendeigid,  9. Aug 1996, 11:50:04):
Hi Freunde,

ein neuerlicher Schlag gegen die Spieler! Nieder mit allen Vorteilen! Schickt
sie zu Lars!

Nein, keine Panik! ;))
Ich habe mich mal einiger Dinge (Waffen/Ruestungen) in Polar angenommen und
ein paar kleinere Aenderungen vorgenommen. Nix schlimmes. Zum Teil sind sogar
Waffen verbessert (!) worden, zum Teil sind die Beschreibungen (waren ja
wirklich duerftig) etwas verschoent. Auch sind nun ab und zu Details zu
finden. 
Das meiste dieses Gewaeschs bezieht sich auf Moulokin, aber wer weiss? ;)

i.k.A, Z'par Servu,
               Bendeigid

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



Re: Radikale Abstufung aller Ruestungen (Zardoz, 12. Aug 1996, 18:02:59):
~#! rn=Bendeigid rt=839584204
~#! tid=839584204
Ich hoffe, du hast die Aenderungen auch in die Objekt-Liste von Polar
eingetragen...

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



Re: Re: Radikale Abstufung aller Ruestungen (Bendeigid, 12. Aug 1996, 19:48:37):
~#! rn=Zardoz rt=839865779
~#! tid=839584204
Aeh, ja sicher das... ich mein, wenn ich sie finde werde ich das gleich und
sofort nachholen... aehmja. 
Jedenfalls steht jeweils ein kleiner header dabei.

Verlegen grinsend,
              Bendeigid

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



Eiswuerfel (Mupfel,  2. Sep 1996, 23:01:40):
Hallo

Die Meldungen, die kommen, wenn das Aktivieren des kleinen Eiswuerfels (ihr
wisst schon ... :-) schiefgeht, sind jetzt etwas aussagekraeftiger (hoffe ich
mal :-)

-mupfel-

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



Re: Eiswuerfel (Caradhras,  3. Sep 1996, 16:13:42):
~#! rn=Mupfel rt=841698100
~#! tid=841698100
Eiswuerfel? Kazorra? *gruebel* *verdutzt kuck*

          Rothorn Caradhras 

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



Re: Re: Eiswuerfel (Hardil, 13. Sep 1996, 10:20:44):
~#! rn=Caradhras rt=841760022
~#! tid=841698100

Aehm, Rothorn:

Kuzzorra, nicht Kazorra. Das war damals, als der S 04 noch Sympathietraeger
hatte. :)

-Hardil. Koenigsblau statt Knappenblau.

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



Re^3: Eiswuerfel (Caradhras, 13. Sep 1996, 12:04:17):
~#! rn=Hardil rt=842602844
~#! tid=841698100
Pfffffffffh, Fussballer!

  Rothorn Caradhras - wills trotzdem koennen (nicht Fussball)

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



Baeume in Polar??? (Bendeigid, 13. Sep 1996, 17:19:45):
Neue Baeume in Polar gesichtet. Vermutliche Fluchtrichtung Moulokin. Um
Ergreifung der Pfalnzen oder sachdienliche Hinweise wird gebeten. 
gez. Bendeigid, i.A. Fuerst Ainos

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



Re: Baeume in Polar??? (Grimmborn, 13. Sep 1996, 17:32:27):
~#! rn=Bendeigid rt=842627985
~#! tid=842627985

Huch, ein Umsturz? Die Waldmagier uebernehmen Polar? Also, da muss ich mich
aber doch sehr wundern, dass ihr Spieler braucht, um den vorrueckenden Wald zu
baendigen...

Grimmborn der Atheist

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



Re: Re: Baeume in Polar??? (Bendeigid, 13. Sep 1996, 17:33:27):
~#! rn=Grimmborn rt=842628747
~#! tid=842627985
Jaja, ich schenk mir schon diese Baumgeschichte:
Also normal: es gibt eine Miniquest mit netter Belohnung in Moulokin.
Zufrieden, Grimm?
Z'par Servu,
        Bendeigid

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



Re^3: Baeume in Polar??? (Caradhras, 13. Sep 1996, 20:37:17):
~#! rn=Bendeigid rt=842628807
~#! tid=842627985
Schwach, Bendei! Lass Dich nicht so von anderen so beeinflussen!
Es ist immer noch weitaus schoener wenn echte Phantasie hinter einer
solchen Geschichte steckt als so wie in dem letzten Artikel.

       Tschuess       Rothorn Caradhras

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



Re^4: Baeume in Polar??? (Paracelsus, 13. Sep 1996, 21:46:53):
~#! rn=Caradhras rt=842639837
~#! tid=842627985

    Und der Wald kommt doch !

Paracelsus.
->schmarrn()

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



falkner weg (Bendeigid, 19. Sep 1996, 16:49:02):
Ich musste mal den Falkner abhaengen. Bis auf weiteres, es wird renovieert.

Z'par servu,
                 Bendeigid

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



Nein kein Baum :-) (Mupfel, 24. Sep 1996, 21:37:33):

Im Polar ist wieder ein Eiszapfen abgefallen.

-mupfel-
(mach sich da einen Reim drauf wer will :-)

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



Schmiede geschlossen (Bendeigid, 15. Nov 1996, 18:36:54):
Musste uebers WE mal Allarts Schmiede abhaengen. Bug drin, keine Ahnung was,
keine Zeit. Sorry.

Z'par Servu, Bendeigid

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



Re: Allart aus Urlaub zurueck (Mupfel, 19. Nov 1996, 17:58:42):
~#! rn=Bendeigid rt=848344032
~#! tid=848344032

Erst wars Mode, alle moeglichen NPCs Karateka werden zu lassen, dann Zauberer,
jetzt also Trves...? (wahrscheinlich immer *die* Gilde, von der man sich die
hoechste Kampfkraft erhofft...) Bandegid, sag Bescheid, wenn auch dein letztes
Karnickel den anderen Karnickeln Rueckendeckung gibt... :-)

-mupfel- (grinst nur noch)

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



Re^3: Allart aus Urlaub zurueck (Lug, 20. Nov 1996, 03:21:37):
~#! rn=Grimmborn rt=848428166
~#! tid=848344032
Tsss,

vor allem der Gedanke wie die Kaninchen sich "decken"...
Heisst das Kaempfer, aeh ja, also...ruckeln aneinader rum?

Fragwuerdig
Lug

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



Re^5: Allart aus Urlaub zurueck (Lug, 20. Nov 1996, 03:35:21):
~#! rn=Anatol rt=848456616
~#! tid=848344032

Also ANATOL! Wer denkt denn an sowas?

Schockiert
lug

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



Ich schaem mich ja so ;( (Ronda, 29. Nov 1996, 17:15:43):
Oehm, mir ist grade ne Panne passiert .... *schaem* --.- ich hab auf "la"
nicht "lies artikel" sonderbn "loesche artikel" gehabt... und dann fleissig
und schnell 5 Artikel geloescht....
Tut mir furschtbar leid - war ne echte Panne....
Immer nochleicht roetlich angelaufen... 
                 Ronda

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



Re: Ich schaem mich ja so ;( (Anatol, 29. Nov 1996, 17:16:40):
~#! rn=Ronda rt=849284143
~#! tid=849284143

Macht nix, hierauf bekommst Du soviele Flames, dass da schnell wieder
5 neue Artikel zustande kommen.

Anatol .... 1


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



Re: Re: Ich schaem mich ja so ;( (Sique, 13. Dez 1996, 04:20:13):
~#! rn=Anatol rt=849284200
~#! tid=849284143
Ausserdem hat ein anstaendiger Mudder auf "la" "look at" (oder die ent-
sprechend nationalisierte Version) liegen.

                                                 Sique (konservativ)

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



Re^3: Ich schaem mich ja so ;( (Wurzel, 13. Dez 1996, 14:17:29):
~#! rn=Sique rt=850447213
~#! tid=849284143
"look at"? dann gibt es wohl nur noch wenige anstaendige mudder...

wurzel wird schon wieder nostalgisch :)

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



Re^4: Ich schaem mich ja so ;( (Felagund, 16. Dez 1996, 13:28:09):
~#! rn=Wurzel rt=850483049
~#! tid=849284143
Look at??? bei mir is das immer x wie exa, tippt sich auch schneller ;)

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



Re^5: Ich schaem mich ja so ;( (Methedras, 17. Dez 1996, 18:58:10):
~#! rn=Felagund rt=850739289
~#! tid=849284143
Nee, x ist unt boden in MG. :) Eigentlich ist x ja das casten vom shock
aus den alten 2000er Muds, so wie m missile war und f fireball.

 Caradhras - nimmt seit 1990 nur ll fuer 'unt' || 'look at'

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



Polargasthaus (Mupfel, 17. Dez 1996, 21:26:20):

Das Polargasthaus 'Amundsen & Scott' hat jetzt nicht mehr ununterscheidbare
Sorten Gluehwein :-)

-mupfel-

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



POLAR? (Sandi, 30. Dez 1996, 20:25:27):
Was/Wo ist denn die Region "Polar" ?

MFG Sandi

..
,

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



Re: POLAR? (Asmodis, 30. Dez 1996, 21:01:51):
~#! rn=Sandi rt=851973927 rg=d.polar
~#! tid=851973927
Im Norden :)

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



Re: POLAR? (Mysterious, 30. Dez 1996, 23:56:39):
~#! rn=Sandi rt=851973927 rg=d.polar
~#! tid=851973927

moin, sandi...

die region befindet sich im norden des mg und dort ist es kalt.....
bisweilen so kalt, dass dir einzelne koerperteile abfrieren
der weihnachtsmann und die chaosgilde sind auch dort ansaessig....
sodele..duiiiiiiiiiiiiiii

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



Re: Re: POLAR? (Sandi, 31. Dez 1996, 16:29:28):
~#! rn=Mysterious rt=851986599 rg=d.polar
~#! tid=851973927
Und was kann man gegen das Arschwegfrieren tun? Mantel anziehen?

MFG SANDI

,
..

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



Re^3: POLAR? (Mysterious,  2. Jan 1997, 13:08:03):
~#! rn=Sandi rt=852046168 rg=d.polar
~#! tid=851973927
gruenau :)

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



Geigerquest: Heilerin (Mupfel,  8. Jan 1997, 17:00:30):
Hallo

Die Heilerin hat anscheinend nie funktioniert (zumindest legt der Programmcode
diesen Schluss nahe); jetzt sollte sie aber tun. Achtung Scriptspieler: das
Handling der Heilung hab ich geringfuegig geaendert, also muesst ihr das
aendern :-)

-mupfel-

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



***magiewesen (Zardoz,  3. Feb 1997, 11:12:21):
Ich hab mal das ***magiewesen dahingehend geaendert, dass jetzt alle Gilden
ihre Chancen haben. Sogar Karateka, wenn sie es richtig machen.

Ciao Zardoz

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



Re: ***magiewesen (Sidolin,  3. Feb 1997, 11:15:26):
~#! rn=Zardoz rt=854964741 rg=d.polar
~#! tid=854964741
Sogar Karateka, wenn sie es richtig machen.

WAS? Buh! Das ist gemein....
Karateka duerfen auch metzeln?
nene, Zardoz, so gehts nicht. :-)

Sidolin. Findet, dass die Karategild eh viel zu gut ist. ;-)

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



Re: ***magiewesen (Dhojakt,  3. Feb 1997, 11:51:09):
~#! rn=Zardoz rt=854964741 rg=d.polar
~#! tid=854964741
Hatten Karatekas nicht immer schon ihre Chance?
Dhojakt denkt . o O (mit 20 eisstaeben...)

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



RM (Schrumpfi,  4. Feb 1997, 19:58:28):
Ich hab meinen RM abgegeben weil ich aus Zeitgruenden nicht mehr so viel hier
sein kann. Mein Nachfolger ist Yantro also geht ihm mal schoen genauso auf die
Nerven, wie ihr mir auf die Nerven gegangen seid. :) *grins Bendeigid an*
Ich hoffe Du hast genauso viel Spass und so wenig zu tun wie ich, Yantro. ;-)
Sei ein guter Sklaventreiber und bring Deine Untertanen so zur Verzweiflung
wie ich es gemacht hab, hoehoe. ;-)
Schrumpfi  *schnief*


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



Lag und Eisamulett (Schlips, 29. Mar 1997, 14:12:38):
Hmm, weiss leider net an wen ich mich genau wenden soll, deshalb schreib
ichs hier.
Ich hab in letzter Zeit den Eindruck, dass ich immer dann ein kurzfristig
hohes Lag krieg, wenn mein Eisamulett resettet. Ich weiss net ob man das
aendern kann, aber ich wollt es hiermit mal kundgetn haben.
Vielleicht kann ja einer der Polar-Magier was dran aendern.

Danke, Schlips
>**

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



Re: Lag und Eisamulett (Yantro, 29. Mar 1997, 14:36:34):
~#! rn=Schlips rt=859641158 rg=d.polar
~#! tid=859641158

Ich habs mir mal angeschaut, aber es muss Zufall sein, dass Du dann immer Lag
kriegst.... kennst Du Murphy?

Yantro

P.S.: Aehm... solche Anfragen muessen eigentlich auch nicht in die Zeitung,
sondern eine Mail an einen der PolarRMs tut es auch.... Das sind im Moment
Zardoz und ich... aeh also der poese Yantro. :-)

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



Re: Lag und Eisamulett (Acrimon, 29. Mar 1997, 16:59:09):
~#! rn=Schlips rt=859641158 rg=d.polar
~#! tid=859641158
Hmm ... versuche mal folgendes:
-bierschuettler+
Dann teste nochmal das Lag

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



Re: Re: Lag und Eisamulett (Zorro, 29. Mar 1997, 18:33:59):
~#! rn=Acrimon rt=859651149 rg=d.polar
~#! tid=859641158
Ja das ist es ! Muss eine Topliste pro reset aktualisiert werden ?
Ich find das ganz schoen bekloppt da wir eh schon genug lag haben ...
Und definitiv erzeugt bruno lag ... 

Sing: Haengt den Bruno in der Nordkurve auf Nordkurve auf ...

Gruss Zorro 

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



Re: Re: Lag und Eisamulett (Valarian,  1. Apr 1997, 13:31:58):
~#! rn=Yantro rt=859642594 rg=d.polar
~#! tid=859641158

Das ganze liegt aber nicht an dem Eisamulett, sondern daran, dass man fast
jeden Reset unter Linux durch Lag erkennt.

V.

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



Pass geaendert (Bendeigid, 21. Apr 1997, 09:56:49):
Hallo, Freunde und Verflucher des Darkover-Tals,

Wie mir bereits seit langem bekannt ist habt ihr alle ja unglaublich viel
Freude daran, den grandiosen Kilghrad-Pass zu erforschen. Dies trifft in
gehobenem Mass natuerlich auf die Gluecklichen unter Euch zu, die wegen der
fantastischen Gildenquests dorthin laufen. Der Rest darf jetzt "q" tippen,
denn die gehen ja eh nicht da rueber.

Apropos gehen: Ich habe unter anderem aus den in etikette, artikel 3 genannten
Gruenden den Pass GEAENDERT. Alle alten Laufmacros koennt ihr also genuesslich
mittels rm vernichten.

Ich wuensche schoenes Wetter zum erneuten kartographieren. Friert Euch nicht
die Fuesse ab.

Z'par Servu,
            Bendeigid

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



Re: Pass geaendert (Fyt, 21. Apr 1997, 09:57:40):
~#! rn=Bendeigid rt=861609409 rg=d.polar
~#! tid=861609409

Mein Jof bin ich froh, die richtige Gilde erwischt zu haben...

Fyt.

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



Re: Re: Pass geaendert (Patryn, 21. Apr 1997, 10:26:14):
~#! rn=Issomad rt=861610850 rg=d.polar
~#! tid=861609409
hey, ich hatte nen schnelleren weg :)

------
patryn

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



Re: Pass geaendert (Anatol, 21. Apr 1997, 12:12:54):
~#! rn=Bendeigid rt=861609409 rg=d.polar
~#! tid=861609409
Ich glaube, es ist der falsche Weg, wenn die Magier den Code aendern, weil
irgendein Spinner das MG bei sich Zuhause liegen hat. Der Spinner ist bekannt,
frueher oder spaeter ist das Ding geloescht und/oder derjenige Name
veroeffentlicht (was ihm, bei der Zahl derjenigen, die sich durch das Dump
gearscht fuehlen, erheblich schaden wird).

Jedenfalls sind jetzt wieder die die Dummen, die sich die Arbeit machten und
den Pass erkundeten... oder bekommt man eine Karte zugeschickt? :)

Anatol


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



Re: Re: Pass geaendert (Valarian, 21. Apr 1997, 12:37:25):
~#! rn=Anatol rt=861617574 rg=d.polar
~#! tid=861609409

Ich habe stundenlang den bloede Pass erforscht und da jetzt alles wieder
geaendert wurde, bekunde ich meinen Protest, indem ich Neskaya aus meinem
Gedaechtnis streiche und es nicht mehr besuchen werde. 

Val.

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



Re^3: Pass geaendert (Cauno, 21. Apr 1997, 12:41:41):
~#! rn=Valarian rt=861619045 rg=d.polar
~#! tid=861609409
Tja, das war wohl ein Schuss in den Ofen.
Auch wenn ich fuer meine Karte nur eine Stunde gebraucht habe. (Oder wars
weniger?)

C. No

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



Re^5: Pass geaendert (Issomad, 21. Apr 1997, 13:06:57):
~#! rn=Issomad rt=861620615 rg=d.polar
~#! tid=861609409
So, mal gucken, wie lange das hier steht.
Der Weg durch die Kilghards lautet :
linksvor,vor,vor,vor,rechtsvor,vor,vor

Viel Spass :)

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



Re^6: Pass geaendert (Mahatma, 21. Apr 1997, 14:51:21):
~#! rn=Issomad rt=861620817 rg=d.polar
~#! tid=861609409
Und der Rueckweg?

Mahatma (faul)

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



Re^7: Pass geaendert (Issomad, 21. Apr 1997, 15:23:49):
~#! rn=Mahatma rt=861627081 rg=d.polar
~#! tid=861609409
vor,vor,linksvor,vor,vor,vor,rechtsvor

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



Re^7: Pass geaendert (Grimmborn, 21. Apr 1997, 15:23:51):
~#! rn=Mahatma rt=861627081 rg=d.polar
~#! tid=861609409
ende

Grimmborn der Atheist. Tip des Tages fuer ganz Faule.

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



Re^6: Pass geaendert (Acrimon, 21. Apr 1997, 17:33:22):
~#! rn=Issomad rt=861620817 rg=d.polar
~#! tid=861609409
Das war doch der alte Weg.
Hat sich wohl doch nichts geaendert?

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



Re^7: Pass geaendert (Lindir, 21. Apr 1997, 21:27:27):
~#! rn=Acrimon rt=861636802 rg=d.polar
~#! tid=861609409

Hey Ben... wie waers mit nem VC a la Tarko... jedem Spieler seinen ganz
persoenlichen Weg... jaja ich bin ja schon ruhig :-)


Lindir der 11

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



Zukunftsvisionen (Mupfel,  4. Jul 1997, 09:31:00):

Ich sehe..... ich sehe... der Nebel lueftet sich... ich seh... es wird ein
Eiszapfen abfallen (ich habe Yantro schon mal die Eissaege gegeben :-)

(nur das nachher keiner sagt ich hatte nix gesagt :-)

-mupfel-

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



Re: Zukunftsvisionen (Yantro,  4. Jul 1997, 13:55:52):
~#! rn=Mupfel rt=868001460 rg=d.polar
~#! tid=868001460
Hi, 
EISSAEGE??? Mehr ne Nagelfeile, aber ich hab das Teil ab! :)

Wenn es zu schwierigkeiten kommen sollte, dann immer schon an Mupfel mailen :)
Oder mich... oder zardoz... oder amazora... oder wer sonst noch ;)

Yantro

P.S.: Klartext... Mupfel hat Schrumpfis Gruft ueberarbeitet... das sagt
eigentlich alles...

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



Re: Re: Zukunftsvisionen (Nasim, 10. Jul 1997, 14:30:06):
~#! rn=Yantro rt=868017352 rg=d.polar
~#! tid=868001460
Aber die vielen Typos in der Beschreibung des Grabsteins am Eingang hat er
(noch) nicht beseitigt ... hab sie schon per "typo" gemeldet, aber Schrumpfi
ist ja nicht mehr da (was sehr schade ist, wo sie doch so suess war).

Nasim

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



Re^3: Zukunftsvisionen (Key, 10. Jul 1997, 16:08:37):
~#! rn=Nasim rt=868537806 rg=d.polar
~#! tid=868001460
Tsts das sind mir Forscher ... koennen noch netmal nen Haus sehen ... :)
Der Grabstein ist mein kleines Haeusle und ich steh zu meinen Typos .. =;)

Key

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



Re^4: Zukunftsvisionen (Acrimon, 10. Jul 1997, 16:49:05):
~#! rn=Key rt=868543717 rg=d.polar
~#! tid=868001460
Huch? Key ist die neue Reinkarnation von Schrumpfi?

LARS, du hast gepfuscht!!!

Acrimon, der Rote Ritter

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



Re^5: Zukunftsvisionen (Mupfel, 11. Jul 1997, 09:56:14):
~#! rn=Acrimon rt=868546145 rg=d.polar
~#! tid=868001460
Hmja Acrimon, wer im Glashaus sitzt...

-mupfel-

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



Re: Re: Zukunftsvisionen (Amazora, 29. Jul 1997, 14:40:43):
~#! rn=Yantro rt=868017352 rg=d.polar
~#! tid=868001460
Ja toll. Waer allerdings ne nette Geste mich auch davon zu informieren.
Eine Mail mit den ueberarbeiteten Files haett ich schon gern gehabt aber wen
ineressierts.
Amazora - sauer

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



Re^3: Zukunftsvisionen (Mupfel, 29. Jul 1997, 17:44:28):
~#! rn=Amazora rt=870180043 rg=d.polar
~#! tid=868001460
Ich HABE Dir gemailt. Kuck Dir einfach Deinen Mailfolder n bisschen genauer
an!

-mupfel- 

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



Re^4: Zukunftsvisionen (Caradhras, 30. Jul 1997, 09:31:29):
~#! rn=Mupfel rt=870191068 rg=d.polar
~#! tid=868001460
An welchen haste denn gemailt? An Amazora oder an Schrumpfi?
Wenns Schrumpfi war, duerfte Dich nicht wundern, dass es nicht ankam,
schliesslich hat sie lang und breit erklaert, dass sie diese Mails
nicht mehr lesen kann, da sie gesperrt ist.

   Gespannt auf des Laetsels Roesung

         !Sonntag?
Oh, was wollte das Sonntag da? :)

      Tschoe        Rothorn Caradhras

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



Re^5: Zukunftsvisionen (Anatol, 30. Jul 1997, 14:27:40):
~#! rn=Caradhras rt=870247889 rg=d.polar
~#! tid=868001460
Hm, ich weiss ja nicht, wie DU mit Mails umgehst, Caradingens, aber bin mir
ziemlich sicher, dass es selbst Mupfel mit der Auferbietung aller 55er-Maechte
und Kraefte nicht schafft, an einen gebanishten Spieler eine Mail zu schicken
("Mit dem Namen gibt es hier niemanden.").

Einen grossen Haufen Mineralien taetschelnd,
Anatol


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



Re^6: Zukunftsvisionen (Caradhras, 30. Jul 1997, 18:31:31):
~#! rn=Anatol rt=870265660 rg=d.polar
~#! tid=868001460
Oh, aeh, ja, sicher, Anatroll, wo Du recht hast, hast Du natuerlich
recht. :-) Ich hatte erst gedacht, dass es eine Spielpause von -1 war,
aber beim banish gehts ja nimmer, das schreiben.
Danke fuer die Korrektur.

       *wink herzig*      Caradingens datt Bergsche

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



Re^7: Zukunftsvisionen (Lug, 31. Jul 1997, 02:04:48):
~#! rn=Caradhras rt=870280291 rg=d.polar
~#! tid=868001460

Ach ja,

man merkt doch sofort: Anatol ist wieder da!

Jubel
Lug

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



Re^5: Zukunftsvisionen (Amazora, 31. Jul 1997, 16:45:55):
~#! rn=Caradhras rt=870247889 rg=d.polar
~#! tid=868001460
Ja, dass Du Schreibrechte hast, Mupfel aber nicht was und wie und ueberhaupt
veaendert worden ist.
Amazora wuesste sowas naemlich auch gern

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



WAS SOLL DAS ???? :-))) (Nairolf,  5. Aug 1997, 02:34:10):
aehm naja ich wollte Nachtwind beweisen, dass Cthulhu ne Wurst is... und dann
das :-) ......


Du hast jetzt 210 Lebenspunkte und 2 Magiepunkte.
  Du greifst Cthulhu mit der Kralle an.
  Du verfehlst Cthulhu.
  Cthulhu greift Sharias Schutzengel mit fuerchterlichen Krallen an.
  Cthulhu trifft Sharias Schutzengel sehr hart.
Cthulhu saugt Dir die Lebensenergie aus dem Koerper.
Du hast jetzt 210 Lebenspunkte und 3 Magiepunkte.
Du hast jetzt 3 Lebenspunkte und 3 Magiepunkte.
  Sharias Schutzengel greift Cthulhu mit Engelszungen an.
  Sharias Schutzengel trifft Cthulhu hart.
Du teilst Nachtwind mit: hmm cthulhu is immernoch ne wurst :-)
.....
 Die Angst ist staerker als Du ... Du willst nur noch weg hier.
[Tod:Lars] Yibb-Tsstl hat gerade Sharia umgebracht.
[Tod:Yibb-Tsstl] Die Zeit ist gekommen! Wir sind wieder da!




Nairolf, der sich fragt was DAS soll... 207 LP mit einem schlag.. das
ueberlebt NIEMAND... und wenn DA nen Kleriker so dumm da steht... 

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



Re: WAS SOLL DAS ???? :-))) (Nachtwind,  5. Aug 1997, 02:52:51):
~#! rn=Nairolf rt=870741250 rg=d.polar
~#! tid=870741250
Hm, anzumerken ist das ich an der gleichen Stelle auf die
gleiche Weise draufgegangen bin, 10 minuten vorher.
mupfel verwendet offenbar reduce_hitpoints oder do_damage, um
die lp des opfers auf 1-3 runterzubringen. das geht natuerlich
glatt durch alle abwehrzauber durch. das ist 
a) uebertrieben
b) schlechter stil (imho)

besser waere wohl ein ordentlicher spell.

nachtwind
der inquisitor der kandri.

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



Re: Re: WAS SOLL DAS ???? :-))) (Fyt,  5. Aug 1997, 09:43:55):
~#! rn=Nachtwind rt=870742371 rg=d.polar
~#! tid=870741250

Noe, eigentlich ist es 'gerecht', es trifft naemlich alle gleichhart...

Fyt.

PS: Hatte ich schon erwaehnt, dass ich ein Absenken der LP auf... sagen wir
30 fuer fairer halten wuerde...


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



Re^3: WAS SOLL DAS ???? :-))) (Mupfel,  5. Aug 1997, 13:21:44):
~#! rn=Fyt rt=870767035 rg=d.polar
~#! tid=870741250
Noe weder do_damage noch reduce_hitpoint (btw woher wisst ihr schon wieder
diese technischen sachen, hae? :-), sondern die lp/mp werden einfach je auf 3
gesetzt... vielleicht n bisschen hart... naja ich werd den wert wohl etwas
erhoehen

-mupfel-
p.s. der hintergrund war dass ich mich mal erkundigt habe wer oder was
"cthulhu" eigentlich ist... fuer dessen anspruch ist das monster eigentlich
noch zu schlapp :-)

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



Re^4: WAS SOLL DAS ???? :-))) (Anatol,  5. Aug 1997, 14:22:20):
~#! rn=Mupfel rt=870780104 rg=d.polar
~#! tid=870741250

Wer hat den bloss wieder zum Weisen gemacht?
Faellt einen Baum,
Anatol


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



Re^4: WAS SOLL DAS ???? :-))) (Wurzel,  5. Aug 1997, 18:46:02):
~#! rn=Mupfel rt=870780104 rg=d.polar
~#! tid=870741250
hm, wenn man h.p. lovecraft glauben schenken soll, dann muesste cthulhu
eigentlich die() aufrufen... und zwar im init(). aber so viel realismus
muss ja nun auch nicht sein :)

wurzel

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



Re^5: WAS SOLL DAS ???? :-))) (Key,  5. Aug 1997, 21:28:13):
~#! rn=Wurzel rt=870799562 rg=d.polar
~#! tid=870741250
Hmm wie waere es mit der Theorie das Cthlhu zwar Cthulhu heisst aber net
unbedingt Cthulhu sein muss???
Ach nein sorry das waere viel zu weitgreifend, wird sind ja hier in einem Mud.
Das heisst natuerlich das alles genauso stimmen muss wie vorgeben.

Mensch Leute ich bitte euch, das ist doch wieder sowas wie die Begruendung:
Das ist Rl net so also vl auch net.

Wobei die naturlich auch sehr gerne anderstrum angewendet wird:
Was Rl ist muss noch lange nicht vl genauso sein.

Tja auslegungssache ... nur komisch das diese 2 begruendungen meist von
denselben benutzt werden.

Ausserdem .... 3 LP sind da unten der Tod, da kannste dran drehen wie du
willst. Vorallem da Cthulhu danach noch einen Schlag hat.


Key *sauer wegen daemlichen Begruendungen*

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



Re^5: WAS SOLL DAS ???? :-))) (Silvana,  5. Aug 1997, 22:40:42):
~#! rn=Wurzel rt=870799562 rg=d.polar
~#! tid=870741250
Tja, Mupfel, wenn Du Spieler unbedingt einfach umlegen willst, dann
ruf ruhig direkt die() auf. Kommt aufs gleiche raus.
  Silvana

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



Re: WAS SOLL DAS ???? :-))) (Asmodis,  5. Aug 1997, 23:35:54):
~#! rn=Nairolf rt=870741250 rg=d.polar
~#! tid=870741250
So sind eben die NPCs in Schrumpfis Gruft, koennen dir schon mal fast alle LPS
absaugen :)

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



Re^4: WAS SOLL DAS ???? :-))) (Li,  6. Aug 1997, 07:24:37):
~#! rn=Mupfel rt=870780104 rg=d.polar
~#! tid=870741250
Hmm, ja Mupfel, das stimmt, fuer Chtullhu ist das monstereigentlich zu
schwach. Das gleiche gilt sicherlich fuer den Balrog. solche monster muessten
eigentlich die Spieler innerhalb einer runde vernichten. Da das aber nicht
Sinn der monster ist (oder etwa doch?) sollte man auf solche "Uebermonster"
lieber verzichten, oder "kleinere" Verwandte einfuehren. Bei Chtullhu waere
das z.B. das Gezuecht von Chtullhu, die zwar genauso aussehen, aber um einiges
schwaecher sind. (Aber dennoch eigentlich nur von maechtigen Sehern zu
bezwingen).
Li

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



Re^5: WAS SOLL DAS ???? :-))) (Patryn,  6. Aug 1997, 07:47:20):
~#! rn=Li rt=870845077 rg=d.polar
~#! tid=870741250
also ich finde mupfels idee gut. ich mach mir tagelang nen kopf, wie ich
son nem seher in einer runde moeglichst plausibel moeglichst viele
lebenspunkte abziehe und mupfel findet die simple endloesung:
 einfach auf 3 LP setzen :)
das spart viel zeit und quellcode und stellt eine elegante loesung des
oben genannten problems dar- auch die zahl 3 ist recht einleuchtend,
stellt sie doch ein zentrales element unseres zahlenverstaendnisses dar:
 nicht bis 3 zaehlen koennen.
 hab ich doch schon 3 mal gesagt.
 eins-zwo-drei-check
diese beispiele zeigen die allgemeine alltagstauglichkeit der 3 und somit
waer bewiesen, dass sich mupfel auch bei der whl der zahl etwas gedacht
hat. also leute: jammert nicht, nehmt es sportlich ;)

------
patryn, findet mupfel grad irgendwie sympatisch

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



Re^5: WAS SOLL DAS ???? :-))) (Mupfel,  6. Aug 1997, 12:24:53):
~#! rn=Anatol rt=870783740 rg=d.polar
~#! tid=870741250
Hach das hab ich jetzt wieder gebraucht. Danke Anatol :-) :-)

-mupfel-
ps: ich habs ein bisschen entschaerft

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



Re^6: WAS SOLL DAS ???? :-))) (Anatol,  6. Aug 1997, 14:34:10):
~#! rn=Mupfel rt=870863093 rg=d.polar
~#! tid=870741250
Reply auf den letzten Artikel, das hat nichts mit dessen Inhalt zu tun...

Ich muss Khij wohl im grossen ganzen Recht geben, bitte, wo kaemen wir hin,
wenn jedes Monster so stark waere, wie es einer beliebigen Sage nach sein
muss? Jeder Drache der Schreckensspitze, nehmen wir den Wasserluis mal aus,
waere dann um ein Vielfaches zu schwach, Gardewaechter wuerden Anfaenger nicht
10, sondern ALLE Lebenspunkte abziehen - und von Spielerseite her muessten
Zauberer um ein zigfaches staerkere Angriffe und um ein ebensolches "zig"
schwaechere Abwehr. Nur so als Beispiele.

Na, unser Glueck, dass wir ueber ausreichend Fantasie und Freiheit verfuegen,
Monster den Verhaeltnissen anzupassen... :)

Ach ja: Warum wurde die Gruft eigentlich ueberarbeitet? Nur, damit der Code
kuerzer/effizienter/unleserlicher wird? ;-)

Das Flamen nicht lassen koennend,
Anatol (gibt Mupfel, was er braucht. Gelegentlich.)


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



Re^6: WAS SOLL DAS ???? :-))) (Kretek,  6. Aug 1997, 20:19:38):
~#! rn=Silvana rt=870813642 rg=d.polar
~#! tid=870741250
Muesste sowas dann nicht von Balance genehmigt werden? :-)

K.

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



Re^7: WAS SOLL DAS ???? :-))) (Patryn,  6. Aug 1997, 20:20:51):
~#! rn=Kretek rt=870891578 rg=d.polar
~#! tid=870741250
die balance hat schon genug damit zu tun, gegen die spieler zu arbeiten,
soll sie nun auch noch fuer sie arbeiten? *grins* ;)

------
patryn schmarrt herum

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



Re^7: WAS SOLL DAS ???? :-))) (Silvana,  6. Aug 1997, 23:42:23):
~#! rn=Kretek rt=870891578 rg=d.polar
~#! tid=870741250
Ich wuerde das gar nicht mal als so einen Scherz hinstellen, Kretek.
Bei dem, was einige Magier in letzter Zeit hier anschliessen, kann
ich jeden Spieler verstehen, der da nach der Balance schreit. Allerdings
sollten das nicht die gleichen sein, die fuer Balance bei Waffen etc
zustaendig sind. Para hat a) so schon zu viel zu tun und
b) selbst einen Hang, seine Monster _etwas_ ueberzudimensionieren. :)

  Silvana (schmeisst im Steinhaus mit Glaesern, oder so)

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



Re^7: WAS SOLL DAS ???? :-))) (Mupfel,  7. Aug 1997, 12:18:28):
~#! rn=Kretek rt=870891578 rg=d.polar
~#! tid=870741250
Ich moechte nochmal drauf hinweisen, fuer alle dies nicht wissen: das ist die
PARAllelwelt (quasi paras welt :-), da muss keiner hin, der aufenthalt ist
rein freiwillig, und die monster sind 'etwas' andere als in der normalen welt.
seht sie euch doch an, die paradrakonier, paravlaender etc... ich knuepfe da
nur an eine tradition an :-)

-mupfel-
p.s.: ein monster ist eh nur dann gut, wenn key dran stirbt :-)

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



Re^8: WAS SOLL DAS ???? :-))) (Key,  7. Aug 1997, 12:19:39):
~#! rn=Mupfel rt=870949108 rg=d.polar
~#! tid=870741250
Paravland lassen wir mal aus dem Spiel ...

Paradrakonien ... soso ... nenn mir mal einen npc der dir die lp auf 3 setzt
und dann noch nen schlag macht .... nur einen einzigen

Key

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



Re^8: WAS SOLL DAS ???? :-))) (Denti,  7. Aug 1997, 12:21:27):
~#! rn=Mupfel rt=870949108 rg=d.polar
~#! tid=870741250

Danke fuer den Hinweis, aber der Aufenthalt ist leider _nicht_ rein
freiwillig, wenn man zu deinem Monster laeuft wahrscheinlich schon, 
aber es ist mir auch schon passiert, dass ich nicht gemerkt habe, dass
es ein fehlteleport war, und das ist dann schon uebel. Ich haette also 
wenig gegen superstarke oder rein nervige Monster, wenn es keinen fehl-
tepeleport mehr gaebe. Allerdings halte ich es schon fuer etwas 
unsportlich, einfach lps oder stats runter zu setzen.

Denti

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



Re^9: WAS SOLL DAS ???? :-))) (Schoko,  7. Aug 1997, 12:27:57):
~#! rn=Key rt=870949179 rg=d.polar
~#! tid=870741250

Bleibt festzuhalten, dass die Normalwelt auch nicht viel besser ist.
Aber eigentlich, wenn ichs mir so recht ueberlege ist das inzeischen hier doch
schon normal einfach Portale komplett abzuhaengen. Wenn man das natuerlich von
diesem Standpunkt aus sieht, dann wird man sicherlich verschmerzen, wenn FW
nuhrmehr durch die Karawane oder Pegasus zu erreichen ist. Und
selbstverstaendlich kommt das so gut wie nie vor ...

Schoko (wartet jetzt drauf, dass als letztes auch noch vor Portal 25 ein
agressives -190LP/Runde Monster gesetzt wird)

P.S.: Ach ja das ganze bezog sich natuerlich NICHT auf die Parawelt, DAS ist
ein besondres Schmankerl von Padreic fuer die Normalwelt...

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



Re^10: WAS SOLL DAS ???? :-))) (Boing,  7. Aug 1997, 12:56:28):
~#! rn=Schoko rt=870949677 rg=d.polar
~#! tid=870741250
Ihr diskutiert uebrigens ueber olle Kamellen, Cthulhu wurde bereits
gestern wieder geaendert. Allerdings hat Mupfel wohl 'vergessen' das
zu erwaehnen ... naja.
  Boing

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



Re^11: WAS SOLL DAS ???? :-))) (Boing,  7. Aug 1997, 12:57:38):
~#! rn=Boing rt=870951388 rg=d.polar
~#! tid=870741250
Oh, er hat es doch nicht vergessen ... ging nur etwas unter weil es
ziemlich unauffaellig im PS stand.
  Boing

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



Re^12: WAS SOLL DAS ???? :-))) (Schoko,  7. Aug 1997, 12:58:35):
~#! rn=Boing rt=870951458 rg=d.polar
~#! tid=870741250
Ich glaub das ging nur unter, weil subjektiv kein Unterschied festzustellen
war? :))

Schoko 

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



Re^9: WAS SOLL DAS ???? :-))) (Anatol,  7. Aug 1997, 14:16:37):
~#! rn=Denti rt=870949287 rg=d.polar
~#! tid=870741250
Ich ergaenze Denti sogar. Es gibt Stellen, da _merkt_ man gar nicht, dass man
in eine Parallelwelt versetzt wurde. Die, wie man mir sagte,
Patryn-Argumentation, dass jeder freiwillig in der Parallelwelt waere und eh
des Lebens ueberdruessig, kann ich beim besten Willen nicht verstehen.

Anatol


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



Re^6: WAS SOLL DAS ???? :-))) (Orktoeter, 11. Aug 1997, 14:00:51):
~#! rn=Patryn rt=870846440 rg=d.polar
~#! tid=870741250
Hmm also es ist doch allgemein beknnat (oder etwa nicht ?) das die Zahl der
Zahlen die 42 ist :)

Desweiteren moechte ich an dieser stelle nur mal so erwaehnen, das es hier
durchaus NPC gibt, dei tatsaechlich so hart sind, wie ihre Vorbilder, Tower
hat es mit AFR und Vollen LP und Klasseausruestung in einer Runde beimHaiavaha
zerlegt.

Sorr fuer Typos und Format, sitze gerade in England und habe eine miese
Leitung, sehe nicht was ich tippe und kann daher auch nur schlecht Fehler
korrigieren.

OrkT (immer noch im Urlaub) :)

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



Re^6: WAS SOLL DAS ???? :-))) (Amazora, 11. Aug 1997, 16:51:11):
~#! rn=Silvana rt=870813642 rg=d.polar
~#! tid=870741250
Aber NICHT mit meinen NPC's!
Amazora.

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



Re: Re: WAS SOLL DAS ???? :-))) (Amazora, 11. Aug 1997, 16:51:36):
~#! rn=Asmodis rt=870816954 rg=d.polar
~#! tid=870741250
Du meinst Mupfels Gruft oder?
A.

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



Gruft weg. (Amazora, 12. Aug 1997, 18:17:01):
Es tut mir leid, Euch mitteilen zu muessen, dass ich die Gruft rausgenommen
hab.
Eigentlich wollte ich sie schon rausnehmen bevor Schrumpfi sich geloescht hat.
ann hab ichs mir allerdings anders ueberlegt und Mupfel meinte, wenn er die
Scheibrechte hat, dann wuerde er sie debugen ect.
Da er aber die Gruft teilweise grundlegend veraendert hat, wie zB Cthulhu
erhebich haerter und Langbeschreibung von Cthulhu veraendert hat und das
definitiv ncht im Interesse von Schrumpfi liegt, wird die Gruft auch
geloescht.
Es tut mir leid fuer Euch Spieler aber offensichtlich geht es nicht anders.
Amazora.

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



Re: Gruft weg. (Kretek, 12. Aug 1997, 18:29:55):
~#! rn=Amazora rt=871402621 rg=d.polar
~#! tid=871402621
Schade eigentlich! Die Gruft war das erste (und einzige!) Teil von 
Schrumpfi, wo ich gestorben bin... Nachdem eine gewisse Regionsmagier-
Stellvertreterin mir versichert hatte, die Gruft sei "ganz ungefaehrlich"
**grins**
Aber verstehen tu ich's... Schade eigentlich!


KreteK

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



Re: Re: Gruft weg. (Sharia, 12. Aug 1997, 23:54:47):
~#! rn=Kretek rt=871403395 rg=d.polar
~#! tid=871402621
WAS ???????
Naja Schru aehm Amazora ich verstehe Dich auch, aber ich finde es wirklich
SEHR SEHR schade.. gerade fuer uns Kleriker ist ein besonders schoenes
Metzelgebiet verlorengegangen.....tja und das Gebiet, was mir schon als kleine
Spielerin ans Herz gewachsen war.... naja fragt mal Bibo ;)....

Sharia, die jetzt mal kraeftig um "ihre" Gruft trauert und einige Gebete zu
Lembold extra spricht.

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



gruft (Nonne, 13. Aug 1997, 10:06:54):
Ist das definitiv und endgueltig, dass die gruft weg ist???? 
Man nimmt den Klerikern die schoenste Spielwiese, die sie im MG hatten?
Gibt es da nicht eine andere Moeglichkeit? Die alte Gruft wieder anschliessen
und nur debuggen, ohne gleich die Gefuehle des Urhebers zu verletzten? Ich
finde es sehr, sehr Schade.
Mir hat die Gruft gefallen und ich weiss ueberhaupt nicht, warum die geaendert
wurde.
Schade.

In tiefer Trauer und zu Lembold fuer Besserung betend
Nonne

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



Re: gruft (Grimmborn, 13. Aug 1997, 10:15:03):
~#! rn=Nonne rt=871459614 rg=d.polar
~#! tid=871459614
Hmm, im neuesten Linux-Magazin gibt es einen Artikel ueber die Entwicklung von
freier Software, wo drin steht, dass es die letzte Pflicht eines Entwicklers,
der sich aus einem Projekt zurueckzieht ist, dafuer zu sorgen, dass jemand
anders da ist, der sich weiter um die Sache kuemmert, es also in andere Haende
zu legen. Denn wenn praktische Dinge (im Artikel geht es um fetchmail)
verschwinden, nur weil der (Haupt-) Entwickler aufhoert, leiden sehr viele
drunter, die nichts damit zu tun haben (und was wuerden die ganzen Leute
machen, wenn Liinux verschwinden muesste, nur weil Linus Thorvalds in Rente
geht?).
Allerdings kann man das nur begrenzt vergleichen, im Artikel geht es um
Projekte mit vielen Entwicklern (deren Arbeit man dann auch gleich mitnehmen
wuerde) und um ein copyright, das man bewusst "freigegeben" hat. Insofern eine
andere Situation.

In anderen muds (Nightfall beispielsweise) ist es Bestandteil des
Magiervertrages, dass aller code auch dem mud gehoert und nicht einfach so
mitgenommen werden kann. Natuerlich darf der Magier seinen code anderswo auch
verwerten, aber wenn er geht, kann er nicht einfach sein Zeuch mitnehmen. Man
stelle sich nur mal vor, wie es hier aussaehe, wenn Jof oder Hate auf diese
Weise gehen wuerden. Aber das ist hier nicht der Fall und ist wohl juristisch
auch... aeh, nicht unumstritten.

Grimmborn der Atheist ist schon der Meinung, dass praktisch alles ausser
/players den Spielern "gehoert". Wenn Magier sich zurueckziehen ist der RM
zustaendig (und kann das delegieren), und der urspruengliche Urheber hat da
nichts mehr mit zu tun...

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



Re: Re: gruft (Fyt, 13. Aug 1997, 10:22:38):
~#! rn=Grimmborn rt=871460103 rg=d.polar
~#! tid=871459614

Es ist afaik nichts im Magiervertrag geregelt. Schrazora kann also ihr
Zueg abhaengen. Leute, die die Backupbaender bedienen koennen, koennten
es anhaengen. So what? Das MG kann ohne die Gruft ueberleben und das
ist ein wichtiger Punkt.

Fyt.

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



Re^3: gruft (Grimmborn, 13. Aug 1997, 10:30:14):
~#! rn=Fyt rt=871460558 rg=d.polar
~#! tid=871459614
Falls das nicht klar geworden sein sollte: Genau das habe ich gesagt, dass es
im MG im Gegensatz zu anderen muds nichtmal juristisch fragwuerdig so geregelt
ist (bischen was laesst sich wohl aus driver/lib-Lizenz ableiten, aber das
betrifft das System und nicht die "Spielergegenden". Und ich faende es bei der
Lage extrem unfeinen Stil, die Sachen ungefragt wieder anzuhaengen.

Aber ich finde schon, man sollte versuchen, das zu regeln, denn nicht alle
Sachen sind so gelegen, dass sie problemlos abgehaengt werden koennten (von
wem war noch Port Vain?). Und daher denke ich, sollte man sich Gedanken
machen. Nicht wegen der Gruft, sondern, um fuer die Zukunft eine Loesung zu
finden.

Grimmborn der Atheist

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



Re^4: gruft (Fyt, 13. Aug 1997, 10:34:59):
~#! rn=Grimmborn rt=871461014 rg=d.polar
~#! tid=871459614

Sicher waere es unfein, es wieder anzuhaengen. Ich galub auch nicht, dass
jemand auch nur entfernt dran denkt, etwas derartiges zu tun, ich hatte
es mehr als 'es ist technisch moeglich und juristisch m.E. nicht verboten'
gemeint. Aber ich denk mal, solange man den Magiervertrag nicht RL
unterschreibt, ist mit Juristerei eh nix zu machen...

Fyt.

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



Re: Gruft weg. (Tangalur, 13. Aug 1997, 10:38:53):
~#! rn=Amazora rt=871402621 rg=d.polar
~#! tid=871402621
Tja schade drum...aber wahrscheinlich haette ich sie auch abgehaengt.

Tangalur

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



Re: Gruft weg. (Key, 13. Aug 1997, 10:39:25):
~#! rn=Amazora rt=871402621 rg=d.polar
~#! tid=871402621
Halloe ... Tja also um die Gruft ist es verdammt Schade :((
DANKE MUPFEL! :(

Naja an der Gruft haengen nun mal Erinnerungen .. Meine ersten Tode .. :)

Hmm Amazora wenn es Dir nur darum geht das die Gruft einen brauch der sich
drum kuemmert aber net veraendert ... Vielleicht werde ich ja doch Magier :)
Wuerdeste sie dann wieder zulassen? :)

Kez bereit sich zu opfern .)

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



Re: Re: Gruft weg. (Schoko, 13. Aug 1997, 11:21:34):
~#! rn=Key rt=871461565 rg=d.polar
~#! tid=871402621

Hmm mal was andres: wie siehts denn aus mit den ganzen Sachen, die in der
Gruft zu holen waren? Ich denke jetzt nich daran, einfach das Kreuz und so
einfach woanders wieder zugaenglich zu machen, das waere etwas plump. Vielmehr
denke ich da an gewisse Magier, die sich beim Entwurf ihrer Gegenden und
Monster darauf verlassen, dass bestimmte Artefakte im MG existieren (war das
deutlich genug? :))

Schoko (ziemlich traurig ueber den Weg, der hier eingeschlagen wird)

P.S.: Hmm Artefakte sollte glaub ich Artillerie oder so heissen :))

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



Re: Gruft weg. (Larissa, 13. Aug 1997, 11:59:16):
~#! rn=Amazora rt=871402621 rg=d.polar
~#! tid=871402621
Och, Schrumpfi...

Du wolltest nicht mehr Mag sein und hast Mupfel "Betreuung" der Gruft
uebertragen. Dass er nicht in Deinem Sinne 'debuggt' hat ist schade, aber
sowas lsesst sich doch sicher besprechen. ich glaube nicht, dass Mupfel so
einfach ins blaue proggt, wenn er weiss wie Du die Gruft weitergefuehrt haben
wolltest.
Kannst Sie nicht wieder anhaegen und _genau_ beschreiben wie es dort
bleiben/werden soll? Das muss doch wohl gehen!

Lari, moechte die schoene Gruft zurueck! ;)

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



Re: Re: Gruft weg. (Raffi, 13. Aug 1997, 14:28:50):
~#! rn=Key rt=871461565 rg=d.polar
~#! tid=871402621
Hmm, jo, Key (oder Kez ?:).

Die Gruft ist mein absolutes Superlieblingsgebiet im MG
gewesen. Und zwar nich weil sie so uebermaessig gross, 
super detailiert oder extra reichhaltig ausgestattet war,
nein, im Gegenteil, der Reiz lag in der Einfachheit und
dem Raum fuer eigent Deutungen und Ideen.

Die _ORIGINAL_ Gruft waehre warscheinlich auch fuer
mich das einzige mit dem man mich dazu zwingen koennte
Magier hier zu werden. (Nein, ich habs nicht vor mir
anzutun).

Gruss
H.

P.S.: es existiert uebrigens, in einem nicht naeher zu
      nennenden Mud eine (fast) originale Kopie, nur
      etwas debugt. (Nein, ist im moment auch nicht
      angeschlossen, da ein hier ebenfalls ungenannter
      RM immer noch nicht den zugehoerigen Sumpf
      fertig hat :)

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



Re^5: gruft (Kretek, 13. Aug 1997, 15:09:38):
~#! rn=Fyt rt=871461299 rg=d.polar
~#! tid=871459614
Tja, soviel ich weiss, haben wir im Gesetz (BGB, genauer gesagt) den
Grundsatz der Vertragsfreiheit geregelt, wo unter anderem festgelegt
wird, dass Vertraege (mit wenigen Ausnahmen) _nicht_ der Schriftform
beduerfen, und dass deswegen auch eine Unterschrift, egal in welcher
Form (ob RL oder VL) eigentlich _nicht_ relevant sein duerfte.
Korrigiert mich bitte jemand, wenn ich mich da irre, ich bin eben kein
Jurist...

KreteK

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



Re^3: Gruft weg. (Key, 13. Aug 1997, 16:07:00):
~#! rn=Raffi rt=871475330 rg=d.polar
~#! tid=871402621
Hmm Raffi das bringt mich auf eine Idee ....

Wie waere es wenn du die Gruft "drueben" endlich mal anschliesst, und dann
eine Art Seherportale geproggt werden :)
Naja das man von einem Mud ins anderen "transen" kann :)

Nee aber ernsthaft die Gruft drueben bringt uns hier null.

Ich will die hier wiederhaben ... egal wie :) Wenn Amazora einverstanden ist
...

Key, Kez nur wenn bloede Amitasten unter die Finger kommen :)

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



Re^4: Gruft weg. (Amazora, 13. Aug 1997, 18:15:24):
~#! rn=Key rt=871481220 rg=d.polar
~#! tid=871402621
Es steht fest fuer mich, die Gruft ist weg. Ich habs aber gestern schon
anklingen lassen, dass ich etwas aehnliches dafuer mache.
Denn, ich hab sie nicht rausgenommen um Spieler zu aergern oder frustrieren
oder was auch immer.
Also geduldet Euch noch ein wenig, morgen bin ich wieder in Linz und werd ein
Tostpflaster proggen.
A.

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



Re^5: Gruft weg. (Silvana, 14. Aug 1997, 00:12:58):
~#! rn=Amazora rt=871488924 rg=d.polar
~#! tid=871402621
Auf eines warte ich schon die ganze Zeit:
Wieso werden die armen Spieler, besonders die Kleriker, bestraft,
wenn Mupfel Mist baut? (Fuer Acrimon: IRONIE OFF!)
Ich finds schade, Schrumpfi, aber verstehen kann ichs...

  Silvana

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



Re^3: Gruft weg. (Asmodis, 14. Aug 1997, 07:19:59):
~#! rn=Raffi rt=871475330 rg=d.polar
~#! tid=871402621
Meinst du mich ? aehem, dass der in den Sumpf gehoert, war ja noch
gar nicht klar ....

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



Re^6: gruft (Grimmborn, 14. Aug 1997, 09:54:10):
~#! rn=Kretek rt=871477778 rg=d.polar
~#! tid=871459614
Du irrst nicht. Aber Vertraege beduerfen des Einverstaendnisses beider Seiten,
was man am besten schriftlich regelt. Oder persoenlich, "mit Handschlag" unter
Zeugen. So richtig rl. Ich kann mir kaum vorstellen, dass da ein paar Zeilen
auf dem Bildschirm, die auch nur vom Hoerensagen her existieren und letztlich
beliebig manipulierbar sind, ein deutsches Gericht beeindrucken.
Augra, Adson, Tasha, any comments?

Grimmborn der Atheist weiss gerade knapp genug von Jura, um nicht zu
auffaellig damit in Konflikt zu kommen

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



Re^7: gruft (Key, 14. Aug 1997, 10:10:13):
~#! rn=Grimmborn rt=871545250 rg=d.polar
~#! tid=871459614
Hmm also wenn ich net irre wurde vor kurzem mal ueber ein Gesetz dikutiert das
Unterschriften auch vl rechtlivh sind. Also das man sich daran halten muss :)
Naja aber wie des numa so is bei den polis da oben des kann noch dauern bis es
verabschiedet wird .. :) Im mom ist es wohl eher noch ne weisse Zone auf ner
riesigen Karte, oder wie auch immer ;))

Key

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



Re^8: gruft (Anatol, 14. Aug 1997, 13:19:23):
~#! rn=Key rt=871546213 rg=d.polar
~#! tid=871459614
Ich stelle es mir generell sehr schwer vor, einer virtuellen Unterschrift von
ein paar Bytes, die nicht mit Sicherheit einer Person zugeordnet werden
koennen, rechtliche Geltung zu verschaffen. Wer garantiert denn, dass der, der
dies hier schreibt, auch der ist, den das Gros von den Mudparties kennt?
Arroganten Stil kann man uebrigens auch kopieren ;-)

Anatol


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



Re^4: Gruft weg. (Raffi, 14. Aug 1997, 15:42:14):
~#! rn=Asmodis rt=871535999 rg=d.polar
~#! tid=871402621
Nee, anderer Sumpf, kleiner, und VIIIIIEL spielerfreundlicher ... aeh oder so
:)

H..

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



Re^9: gruft (Jimdigriz, 14. Aug 1997, 19:00:09):
~#! rn=Anatol rt=871557563 rg=d.polar
~#! tid=871459614
Moin,

so schwierig ist das nicht. Der PGP Ansatz ist IMHO schon
gut durchdacht. 
Zur Info: Ein Dokument wird mit dem Private Key signiert,
die Unterschrift ist dann eindeutig, das heisst, sie kann
nur erfolgreich mit dem public key verifiziert werden
wenn das Dokument unveraendert ist.
Die Zuordnung der Keys zu lebenden Personen geschieht
durch sogenannen Certification Authorities
(wenn mans offiziell machen will), bzw durch den persoenlichen
fingerprint, oder aber informeller auf
PGP signing Parties, in denen die Teilnehmer sich
gegenseitig die Zuordnung zu den schluesseln
bestaetigen, weil sie sich ja auch persoenlich davon
(zB per Perso) ueberzeugen koennen.
Certification Authority ist zB das DFN-CERT.

my 0.02 $
 Jim DiGriz

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



Re^10: gruft (Key, 14. Aug 1997, 19:02:35):
~#! rn=Jimdigriz rt=871578009 rg=d.polar
~#! tid=871459614
Aeh wieso redest du staendig von mir?? ;))

Private-Key

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



Lovecraft (Dante, 16. Aug 1997, 15:55:53):
Ich finde es absurd, ja geradezu idiotisch , wenn jemand in Zusammenhang mit
Cthulu oder Lovecraft das Wort Realitaet auch nur erwaehnt.
Hier passt hoechstens das Wort Relitaetsfern, denn Lovecraft war ein schwerer,
wenn auch teilweise genialer, Psychopath , der sein ganzes Leben so gut wie
nie aus seinem Haus gegangen ist.
Ob er so geworden ist, weil er nie ausser Haus gegangen ist oder vice versa,
weisz man nicht.
Ist mir auch ziemlich egal, der Typ ist auf jeden Fall faszinierend.
D.

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



Re^4: Gruft weg. (Schlips, 18. Aug 1997, 10:44:50):
~#! rn=Key rt=871481220 rg=d.polar
~#! tid=871402621
In andere Muds transen?
Wollte ich schon immer mal ...

Schlips

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



Re: Lovecraft (Cauno, 19. Aug 1997, 13:40:20):
~#! rn=Dante rt=871739753 rg=d.polar
~#! tid=871739753
Jetzt geb ich doch mal meinen Saft, aeh Senf dazu ...
Sollte ich demnaechst mal hier Magier werden (im Moment schieb ichs noch vor
mir her, warum bloss?) programmier ich am besten ein Giger-Alien. So richtig
schoen realistisch, wie Hansruedi es in seinem Buch vorgestellt hat ... und
wems gefaellt, der kriegt noch eine Sil als Gefaehrtin obendrauf.
Na, waer das was?

C. No

(Wenn jetzt einer darauf antwortet, erklaere ich ihn fuer unzurechnungsfaehig
...)

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



Re: Re: Lovecraft (Key, 19. Aug 1997, 13:58:12):
~#! rn=Cauno rt=871990820 rg=d.polar
~#! tid=871739753
Auja mach mal ;))

Kez, unzurechnungsfaehig, oder eher berechenbar? ;)

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



Re^3: Lovecraft (Paracelsus, 19. Aug 1997, 21:31:43):
~#! rn=Key rt=871991892 rg=d.polar
~#! tid=871739753
Hmm, ich haette da auch noch eine handvoll NPCs, die gemessen an ihren 
'literarischen Erscheinungsformen' viel zu schwach geraten sind.
Also die koennte ich noch aufpeppeln ...

Para->schmarrn()

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



Re^11: gruft (Caradhras, 20. Aug 1997, 22:31:05):
~#! rn=Key rt=871578155 rg=d.polar
~#! tid=871459614
Nee, Slueeli, fuer mich biste noch ein Foreign Key. :-)
Mal schauen, wo die Constraints bei Dir rumliegen.

          Bergchen Caradhras - SQL-geschaedigt

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



Rodelbahn (Zardoz, 28. Aug 1997, 15:02:28):
Die Rodelbahn sollte jetzt _etwas_ leichter zu finden sein. Einfach den
zahlreichen Hinweisschildern und Wegweisern folgen :)

Ciao Zardoz

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



Re: Rodelbahn (Asmodis, 28. Aug 1997, 15:33:01):
~#! rn=Zardoz rt=872773348 rg=d.polar
~#! tid=872773348
Stell doch noch einen 'Follow-me' beim Orklager auf, dann findets auch
wirklich jeder :)

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



Re: Re: Rodelbahn (Phobos, 28. Aug 1997, 15:34:28):
~#! rn=Asmodis rt=872775181 rg=d.polar
~#! tid=872773348
Ich war ja schon immer fuer eine Hundeleine als Questbelohnung,
mit der man dann Anfaenger durchs Mud schleifen kann :)

i.a. Mars


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



Re: Re: Rodelbahn (Zardoz, 28. Aug 1997, 15:40:33):
~#! rn=Asmodis rt=872775181 rg=d.polar
~#! tid=872773348
Ok. Man kann nun wirklich den Hinweischilden folgen. Viel Spass :)

Ciao Zardoz

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



Re: Re: Lovecraft (Hardil, 29. Aug 1997, 12:41:22):
~#! rn=Cauno rt=871990820 rg=d.polar
~#! tid=871739753

Auch wenn Du mich fuer unzurechnungsfaehig erklaerst, CauNo, programmier doch
lieber statt eines Giger-Alien ein Ginger-Ale. Das gibts hier naemlich noch
nicht.

-Hardil.
Trinkt Canada Dry viiiiieeeeel lieber als Schweppes.

-> d.kochrezepte

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



Re^3: Lovecraft (Cauno, 29. Aug 1997, 13:36:39):
~#! rn=Hardil rt=872851282 rg=d.polar
~#! tid=871739753
Hm. Das ware mal eine Idee. Wenn ich mal meinen Mond proggen sollte (den ich
schon genauso lange plane, wie das Magierwerden.), hab ich gleich schon das
erste gertaenk fuer die kneipe ...

C. No

 - Jetzt muss ich mich wohl selbst fuer uzr erklaeren ...

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



Re^3: Rodelbahn (Kretek,  1. Sep 1997, 20:04:52):
~#! rn=Phobos rt=872775268 rg=d.polar
~#! tid=872773348
Oh, toll! Das ist ja dann endlich wieder 'ne Moeglichkeit, nervige
Spieler in die Arena zu schleifen und dort PK-frei zu killen! :-)

KreteK

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



Erinnerungen (Key,  7. Dez 1997, 14:30:21):
So es ist soweit :)

Fuer alle Gruftlieberhaber gibbet jetzt eine Art kleine Kopie :)
Da die Gruft nunmal zerfallen ist sollte man evtl probieren eine Ruine zu
betreten. ;)

Key vermisst sein Schatzi. .)

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



Re: Erinnerungen (Trekan,  7. Dez 1997, 16:17:13):
~#! rn=Key rt=881501421 rg=d.polar
~#! tid=881501421
vielleicht kann man ja wargon (oder nachfolger) ueberreden, da NPC's
reinzustellen.
Das waere doch was ;)
Trekan -> in erinnerungen schwelgend

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



Betrug! :-) (Hardil, 19. Dez 1997, 10:22:02):

Der haendler im Rodelladen bescheisst!
> zeige waf

Du kannst hier folgende Bewaffnung kaufen:

11. Eine kleine Armbrust (15 Schuss)...........50
12. Ein kleiner Katapult (10 Schuss)...........75
13. Eine Sandschleuder (5 Schuss).............100

> kaufe 13
Du kaufst eine Sandschleuder und zahlst 422 Muenzen.

Hmmm. Nennt man das den Ausgleich von ANgebot und Nachfrage? :-)

-Hardil. Tief in seinem Inneren getroffen und noch tiefer empoert. :-)))

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



Re: Betrug! :-) (Key, 20. Dez 1997, 17:00:25):
~#! rn=Hardil rt=882523322 rg=d.polar
~#! tid=882523322
Tja das ist ne Webestrategie :)
Im Prinzip hast Du es sogar zu billig bekommen ...

Zur Erklaerung:
Der Preis von 100 Muenzen bezieht sich natuerlich nur auf einen Schuss.
Aufgrund des Angebotes kann man aber als mindestmenge 5 Schuss kaufen.
Demnach ergibt sich ein Preis von 500 Muenzen :)
Tja scheinbar haste Menebrabatt bekommen ;)

Key

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



Ein Stein wankt :) (Terrorist, 18. Feb 1998, 11:09:47):
Soeben habe ich erfahren das ein Stein ins Wanken geraten ist und dadurch
etwas laengst vergessenes wieder an die Tagesoberflaeche geraten ist. 

Wie ging noch gleich die eine Hymne? Auferstanden aus Ruinen?

Na schaut mal selber nach

TERROR!

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



Re: Ein Stein wankt :) (Lug, 18. Feb 1998, 14:30:46):
~#! rn=Terrorist rt=887796587 rg=d.polar
~#! tid=887796587

Aeh,

JA JAAAAAAA JAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA!

1000000000 Knuddeler *scroll* an die beteiligten Mags!

Lug

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



Re: Re: Ein Stein wankt :) (Terrorist, 18. Feb 1998, 17:52:08):
~#! rn=Lug rt=887808646 rg=d.polar
~#! tid=887796587
Hmm ich habe da noch ein kleines Problem ....
Lilith wird wohl keine Nadeln mehr bekommen, aus balancetechnischen Gruenden
...
Naja aber so ganz ohne alles wollte ich sie auch nicht lassen.

Also ernstgemeinte Vorschlaege bitte per mail an mich

Terror

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



Re^3: Ein Stein wankt :) (Lug, 18. Feb 1998, 19:51:52):
~#! rn=Terrorist rt=887820728 rg=d.polar
~#! tid=887796587
Aeh,

die nicht ernstgemeinten Vorschlaege bitte in die MPA an Terror.

Terror
Lug

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



Re^4: Ein Stein wankt :) (Terrorist, 19. Feb 1998, 10:24:58):
~#! rn=Lug rt=887827912 rg=d.polar
~#! tid=887796587
Hmmm gibts nur Kaempfer mit offenen Wuenschen? :)
Oder traut sich sonst keiner?

TERROR

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



Re^5: Ein Stein wankt :) (Lug, 22. Feb 1998, 04:41:04):
~#! rn=Terrorist rt=887880298 rg=d.polar
~#! tid=887796587

Sooosiehddas aus Terror!


Wie waere es mit einer Ernuechterungstablette? Einem Abfuehrmittel? Das kaeme
allen zugute.

FidKG
Lug

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



Re^6: Ein Stein wankt :) (Therin, 22. Feb 1998, 04:44:47):
~#! rn=Lug rt=888118864 rg=d.polar
~#! tid=887796587

> Wie waere es mit einer Ernuechterungstablette? Einem Abfuehrmittel?

Das wuerde wirklich die ....Verstopfungen... bei der Metzeltaetigkeit
reduzieren. pro Abfuermittel, pro prostagut!

T.

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



Gruftkneipe :) (Terrorist, 14. Mar 1998, 23:54:26):
So die Kneipe in der Gruft tut es wieder ....
Was genau war weiss ich nicht ... Und danke fuers Bescheidsagen :)

TERROR

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



Wankende Steine (Terrorist, 18. Mar 1998, 15:36:31):
So .... es hat sich nochmal eine Kleinigkeit in der Gruft getan ...
Sie traegt zwar nicht zum sterben bei, wird es fuer ein paar aber auch net
einfacher machen ...

TERROR

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



Re: Wankende Steine (Terrorist, 18. Mar 1998, 15:38:14):
~#! rn=Terrorist rt=890231791 rg=d.polar
~#! tid=890231791
Aeh achja .... gilt nur fuer die Parawelt :)

TERROR

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



Der Stein rollt :) (Terrorist, 20. Apr 1998, 12:26:47):
Sodele ... noch einmal nen paar Aenderungen in der Gruft ...
Achja ... und eine abwertung ...

Viel Spass
TERROR

P.S.:Fuer Lilith ist inzwischen ne Idee da, muss ich nurnoch umsetzen :)
Danke fuer die Ideen :)

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



Neuer RM (Boing, 15. Jun 1998, 16:53:43):
Neuer Polar Regionsmagier ist ab sofort Bierchen, viel Glueck. :)
  Boing

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



Re: Neuer RM (Trekan, 15. Jun 1998, 20:16:19):
~#! rn=Boing rt=897922423 rg=d.polar
~#! tid=897922423
Trekan kuehrt Bierchen zum aufsteiger des Jahres.
Trekan winkt freudig zuy Bierchen rueber.

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



Re: Neuer RM (Teddy, 15. Jun 1998, 22:56:53):
~#! rn=Boing rt=897922423 rg=d.polar
~#! tid=897922423
Grats, hat ja doch noch geklappt ;)

Teddy

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



Re: Re: Neuer RM (Asmodis, 17. Jun 1998, 18:47:50):
~#! rn=Trekan rt=897934579 rg=d.polar
~#! tid=897922423
Wenn er so weitermacht, ist er in 2 Wochen Gott :)

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



Re^3: Neuer RM (Feuerwehr, 17. Jun 1998, 18:50:14):
~#! rn=Asmodis rt=898102070 rg=d.polar
~#! tid=897922423

Feuerwehr wedelt mit einem 'Bierchen for Obergott'-Faehnchen.

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



HiHo (Feuerwehr,  8. Jul 1998, 20:16:00):
Hi!

*Huestel*. Irgendwie hat Boing es nicht weiter erwaehnt, aber es gibt jetzt
einen zusaetzlichen RM Polar. Und das bin ich. Aehaem.

In dem Zusammenhang moechte ich gleich mal Werbung fuer diese wunderschoene
Region machen:

 An alle Magier unter euch: Kommt in den Polar, hier ist die Luft noch
 sauber und die Atmosphaere gut. Habt Teil an dieser wirklich ...
 coolen Region.

Danke Danke.

     Feuerwehr.

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



Re: HiHo (Catweazle,  8. Jul 1998, 20:17:46):
~#! rn=Feuerwehr rt=899921760 rg=d.polar
~#! tid=899921760
Poeh, coole Gegend ....
Alles leeres Geschwaetz. Die einzige Region wos richtig heiss her geht 
ist ja wohl die Wueste .

YTC

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



Re: HiHo (Gando,  8. Jul 1998, 20:28:42):
~#! rn=Feuerwehr rt=899921760 rg=d.polar
~#! tid=899921760
Wat kriege ich denn dafuer?

Gando

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



Re: Re: HiHo (Feuerwehr,  8. Jul 1998, 20:29:40):
~#! rn=Gando rt=899922522 rg=d.polar
~#! tid=899921760

Du wirst es tun, weil Papa es so sagt.

   Feuerwehr (boese mit dem Finger winkend)

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



Re^3: HiHo (Gando,  8. Jul 1998, 20:36:41):
~#! rn=Feuerwehr rt=899922580 rg=d.polar
~#! tid=899921760
Im Papatool steht aber wurzel

Gando ;)

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



Re: Re: HiHo (Ark,  8. Jul 1998, 20:42:33):
~#! rn=Catweazle rt=899921866 rg=d.polar
~#! tid=899921760
Sorry, 112, aber wo Cat recht hat, hat er recht :-)
Versau die Region nicht allzu sehr, ok?


              *** ARK * the * Magnificent ***


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



WWW-Hauptseite (Swift, 13. Aug 1998, 01:01:40):
Hi,

die WWW-Hauptseite der Polarregion hat sich etwas geaendert.
Weitere Aenderungen der angefuehrten Themen/Gebiete werden in absehbarer Zeit
folgen.

 ...fuer die, dies interessiert! :)

swift

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



Mal was neues :) (Tilly, 31. Aug 1998, 23:19:17):
Ein daemonisches Hallo an die Seher unter Euch!
Auf Euren Streifzuegen durch das wunderschoene Polargebiet wird Euch wohl
etwas superneues und -tolles auffallen. Ich wuensche Euch frohes Sterben in
der Para-Welt. Wo muesst Ihr selber rausfinden, nur soviel sei gesagt: Es ist
keine komplett neue Gegend!
Mit daemonischen Gruss,
                              Tilly *schalt -Tod ein*

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



Re: Mal was neues :) (Feuerwehr, 31. Aug 1998, 23:21:24):
~#! rn=Tilly rt=904598357 rg=d.polar
~#! tid=904598357

Es ist in der Parawelt und es ist von Tilly.
Zieht euch warm an. Geht nicht allein. Spart Munition.

    Feuerwehr.

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



Re: Re: Mal was neues :) (Teddy, 31. Aug 1998, 23:22:54):
~#! rn=Feuerwehr rt=904598484 rg=d.polar
~#! tid=904598357
und nehmt einen Magier eures Vertrauens (?) mit, damit er euch aus den
buggenden Raeumen raustransen kann oder wie? ;)

Teddy

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



Re: Re: Mal was neues :) (Songoku,  4. Sep 1998, 10:22:17):
~#! rn=Feuerwehr rt=904598484 rg=d.polar
~#! tid=904598357
And never deal with dragons!

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



Matrixaenderung (Bendeigid,  9. Sep 1998, 10:26:47):
Hallo zusammen,

nur eine kurze Meldung, damit jeder seine tf-trigger umstellen kann:
Die Matrix ist ein wenig geaendert, sollte jetzt weniger Lag machen (das merkt
ihr eh nicht, aber insgesamt...) und ausserdem sind die Meldungen leicht
veraendert (darum das mit den Triggern)
Um dem grossen Gejammer vorzubeugen: das ist hoechstens die erste Aenderung,
es werden noch ein paar folgen, die aber die Matrix selber nicht betreffen,
wohl aber ihren Fundort.

Z'par Servu,
              Bendeigid

P.S.: Nein, ich weiss nicht wann das fertig wird.....

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



Nix fuer hohe Seher, aber... (Tilly, 30. Sep 1998, 21:02:54):
Moin moin,

dieser Artikel wendet sich an all die Spieler unter uns, denen die
Hochebene auf die Dauer zu langweilig wird und die sich noch nicht
nach Orkhausen zum metzeln trauen.
Unweit eines Schildes welches auf ein winterliches Vergnuegen
hinweist, ist etwas Neues fuer Euch.
Habt viel Spass daran und sterbt mir nicht zu oft. Aber das sollte
auch wirklich schwer werden.

 - Tilly -

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



Re: Nix fuer hohe Seher, aber... (Feuerwehr, 30. Sep 1998, 21:04:40):
~#! rn=Tilly rt=907182174 rg=d.polar
~#! tid=907182174
Hi!

Ich wollte an dieser Stelle nur kurz Boing und auch Rumata fuer ihre schnelle
und unbuerokratische Hilfe bei der Eintragung der Dutzenden von FPs danken
:-).

Die Welt mag in Truemmer fallen, aber auf unsere Goetter ist .. aehm.

   Feuerwehr.

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



Wackere Recken gesucht! (Tilly,  4. Okt 1998, 21:34:28):
Moin moin,

ich habe doch tatsaechlich noch zwei gemeine Kreaturen gefunden,
die ihren Dienst in Para-Moulokin versehen moechten.
Wackere Helden aller Gilde (obwohl natuerlich jeder weiss, es gibt nur
eine Gilde die Helden hervorbringt >:), kommt her, versucht Euer
Glueck oder sterbt.

 - Tilly -

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



Re: Wackere Recken gesucht! (Grimmborn,  4. Okt 1998, 21:50:51):
~#! rn=Tilly rt=907529668 rg=d.polar
~#! tid=907529668
Darf ich auch mal? Jajaja?

GdA

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



Re: Wackere Recken gesucht! (Key,  5. Okt 1998, 08:19:18):
~#! rn=Tilly rt=907529668 rg=d.polar
~#! tid=907529668
*gaehn*
Noch mehr solcher Luschen? .)

Key kitzelt Tilly :9

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



Wollmantel (Bendeigid,  5. Okt 1998, 11:29:18):
Hi Neskayafreunde,

es gab wohl beim Wollmantel Probleme, wenn man mit ihm gestorben ist. Selbige
sollten jetzt weg sein.

Z'par Servu,
             Bendeigid

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



Fuer Neskayatouristen (Bendeigid,  7. Okt 1998, 12:37:10):
Hallo liebe Leute,

die beiden Kneipiers in Neskaya haben mich darueber informiert, dass sie ihr
Angebot den Neuerungen der Kneipeninnung des MorgenGrauen angepasst haben.
Ich gebe diese information mal wertneutral weiter....

Z'par Servu,
           Dom Bendeigid, Bewahrer von Neskaya

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



Re: Fuer Neskayatouristen (Bendeigid,  8. Okt 1998, 13:50:10):
~#! rn=Bendeigid rt=907756630 rg=d.polar
~#! tid=907756630
Nochwas Neues, oder besser was altes:
Der Falkner verkauft wieder Falken :)

Viel Spass, z'par Servu,
                        Bendeigid
y

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



Passaenderung (Bendeigid,  9. Okt 1998, 12:58:44):
Eine kleine Warnung: Der Pass hat sich ein wenig geaendert. 
Ich warne sicherheitshalber mal davor, unbedarft "wie bisher" zu kamepfen, da
es zu boesen (wenn auch meiner Meinung nach logischen) Ueberraschungen kommen
koennte....

Nein, der Weg hat sich NICHT gaendert.

Z'par Servu,
                Bendeigid

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



chaosfrosch (Bierchen, 21. Nov 1998, 03:18:47):
an dem chaosfrosch hat sich eine kleinigkeit geaendert. obwohl, falsch. der
ist noch so, wie er immer war, nur sollte er jetzt so sein, wie mupfel ihn
sich vorgestellt hatte. das ist uebrigens mit mupfel abgeklaert und sollte ich
dabei irgendwie einen fehler gemacht haben, wird er mir das sicherlich selbst
sagen. flames nach /dev/null.
- Bierchen -

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



Re: chaosfrosch (Key, 21. Nov 1998, 22:19:41):
~#! rn=Bierchen rt=911618327 rg=d.polar
~#! tid=911618327
Naja Fehler net unbedingt ...
Aber koenntest es vielleicht so machen das man net vollgescrollt wird von
seinem getanke?
Also ich halte 2 Seiten fuer leicht uebertrieben.

Key

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



Neue Eismine (Tsunami, 24. Nov 1998, 14:51:08):
Es ist soweit!

In der Polarregion wurde in letzer Zeit fleissig gearbeitet. In der Naehe
von Zacharias Eispalast findet man nun eine interessante, tief in das
ewige Eis gegrabene Eismine. Was genau abgebaut wird, kann man am 
besten vor Ort und Stelle besichtigen. Tief unten in der Mine sollen
uebrigens schreckliche Monster hausen. Ein paar Gauner koennten sich
ebenfalls in der Mine eingenistet haben. Deshalb werden speziell mutige 
Kaempfer und weise Zauberer gesucht, um den Vorkommnisen auf den Grund zu 
gehen. Mehr darueber koennt ihr bei euren entsprechenden Gilden erfahren.
Alle anderen sind natuerlich auch herzlich eingeladen, es ist fuer alle
etwas da ;)

Laut gut unterrichteten Kreisen soll es keine Stellen geben, an denen man 
einfach so und total unmotiviert sein Leben lassen kann: hier wird man noch
persoenlich und in Handarbeit von gutgelaunten Monstern auseinandergenommen.


Viel Spass wuenscht euch:

Tsunami (freudig auf die 1. Kerbe wartend)

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



Vorsicht! Intelligentere Eisunholde :) (Tsunami, 26. Nov 1998, 18:10:27):
Huhu!

Wollte nur bekanntgeben, dass die Eisunholde in der Eismine nun nicht mehr
einfach so zuschauen, wie sie einzeln abgemetzelt werden. Dafuer wird es
in naechster Zeit was zu holen geben, dort.

Ich halte euch auf dem laufenden,


Tsunami.

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



Eismine -- kleiner Zwischenbericht. (Tsunami,  2. Dez 1998, 19:16:03):
Huhu Leute,

Erst mal vielen Dank fuer die fleissigen Rep-File-Schreiber unter
Euch. Soweit ich gekommen bin, habe ich alles eingebaut, was noch
so gewuenscht wurde, wenn's nicht gerade total schraeg war :)

Eine wichtige Neuerung betrifft die Eiselfenwaechter: auf vielseitigen Wunsch
sind sie nun etwas weniger stabil. Zusaetzlich kann man nun versuchen, an 
ihnen vorbeizutaenzeln. Kleinere Leute haben natuerlich eine groessere Chance,
uebersehen zu werden...

Haltet weiterhin eure Ohren warm,

Tsunami.



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



Re: Eismine -- kleiner Zwischenbericht. (Acrimon,  2. Dez 1998, 20:56:20):
~#! rn=Tsunami rt=912626163 rg=d.polar
~#! tid=912626163
> Eine wichtige Neuerung betrifft die Eiselfenwaechter:
> auf vielseitigen Wunsch sind sie nun etwas weniger stabil.

Stuerzen sie jetzt oefter ab? :-)

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



Re: Eismine -- kleiner Zwischenbericht. (Belgariad,  2. Dez 1998, 21:21:52):
~#! rn=Tsunami rt=912626163 rg=d.polar
~#! tid=912626163
Aehm ich wollte eigentlich das die staerker werden.

Belgariad sterbend.

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



Neues aus der Eismine (Tsunami,  7. Dez 1998, 14:57:48):
Huhu,

dass immer mehr Leute in die Eismine kommen, haben auch die geschaefts-
tuechtigen Zwerge erkannt. Als erster hat ein findiger Zwerg eine
kleine Imbissbude aufgemacht.

Frohes Metzeln weiterhin,

Tsunami.

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



Re: Neues aus der Eismine (Novastorm,  7. Dez 1998, 14:58:47):
~#! rn=Tsunami rt=913042668 rg=d.polar
~#! tid=913042668
Iiiiiih, ne Zwergenkneipe ?

    Nova, ruft zum Boykott auf .)
--> schmarrn

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



Re: Re: Neues aus der Eismine (Tsunami,  7. Dez 1998, 15:00:38):
~#! rn=Novastorm rt=913042727 rg=d.polar
~#! tid=913042668
Nix Kneipe, bloss ein kleiner Bauchladen :) und lasst euch von dem kleinen
Zwerg nicht ueber's Ohr hauen :)

Tsunami

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



Re^3: Neues aus der Eismine (Sharia,  7. Dez 1998, 15:11:48):
~#! rn=Tsunami rt=913042838 rg=d.polar
~#! tid=913042668
Zwerge hauen doch NIE jemanden uebers Ohr !!

Sharia

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



Re^4: Neues aus der Eismine (Ringor,  7. Dez 1998, 15:13:00):
~#! rn=Sharia rt=913043508 rg=d.polar
~#! tid=913042668
Wie willst ausgerechnet *Du* das beurteilen?

Ringor. 

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



Re^5: Neues aus der Eismine (Morgoth,  7. Dez 1998, 15:13:37):
~#! rn=Ringor rt=913043580 rg=d.polar
~#! tid=913042668
Genau, Zwerge sind dazu da, sie zu killen, damit sie nicht mehr lange stinken.

M*

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



Re^5: Neues aus der Eismine (Hreidmar,  7. Dez 1998, 15:14:23):
~#! rn=Ringor rt=913043580 rg=d.polar
~#! tid=913042668
Ganz einfach, Zwerge kommen nicht an die Ohren der anderen heran. Wie also
wollen sie dann noch "ueber" das Ohr hauen? ;-)

Nein, nicht die Axt!

Hreidmar, schonmal in Deckung springend.

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



Re^6: Neues aus der Eismine (Bendeigid,  7. Dez 1998, 15:14:53):
~#! rn=Morgoth rt=913043617 rg=d.polar
~#! tid=913042668
Hm, das mit dem uebers Ohr hauen haette ich eher mit ihrer laecherlich
geringen Reichweite erklaert. An was ausser Kniescheiben kommen die denn ran?

Z'par Servu,
            Bendeigid

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



Re^7: Neues aus der Eismine (Sharia,  7. Dez 1998, 15:16:34):
~#! rn=Bendeigid rt=913043693 rg=d.polar
~#! tid=913042668
wenn wir bei den Kniescheiben anfangen eure langen Koerper zu kuerzen sind wir
gaaaanz schnell bei den Ohren
Sharia

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



Re^7: Neues aus der Eismine (Ringor,  7. Dez 1998, 15:16:46):
~#! rn=Bendeigid rt=913043693 rg=d.polar
~#! tid=913042668
Was meinst Du wohl, wozu ein richtiger Zwerg immer eine gut geschaerfte Axt
mitfuehrt?

Erst wird der hochgewachsene Gegner "gefaellt", dann, einmal am Boden liegend,
weiterbearbeitet.

Ringor denkt . O O(warum diese langbeinigen Geschoepfe immer alles
verkomplizieren muessen ...)

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



Re^8: Neues aus der Eismine (Novastorm,  7. Dez 1998, 15:17:55):
~#! rn=Ringor rt=913043806 rg=d.polar
~#! tid=913042668
Novastorm denkt . o O (Zwerge....)
Wer laesst sonen doofen Stinker schon bis zu den Kniescheiben...
Selbst schuld!
 
    Nova, unterlaeuft Zwerge aus Prinzip nicht...

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



Re^8: Neues aus der Eismine (Morgoth,  7. Dez 1998, 15:18:25):
~#! rn=Ringor rt=913043806 rg=d.polar
~#! tid=913042668
also Du widersprichst dir selbst:
'Ringor denkt . O O(...' 
Du bist Zwerg, Du kannst nicht denken...

M*

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



Noch was neues in der Naehe der Eismine (Tsunami,  7. Dez 1998, 15:33:45):
Huhu,

An der Anlegestelle fuer Frachtschiffe wurde heute Nachmittag ein kleiner
Marktstand eroeffnet.


Tsunami (heute besonders fleissig).

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



Re: Noch was neues in der Naehe der Eismine (Azzuro,  7. Dez 1998, 18:13:03):
~#! rn=Tsunami rt=913044825 rg=d.polar
~#! tid=913044825
Da ist der Standort gut gewaehlt. Bei dem Fischgestank faellt der Zwerg
hinterm Tresen nicht mehr so auf.

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



Re: Re: Noch was neues in der Naehe der Eismine (Lug,  8. Dez 1998, 02:11:06):
~#! rn=Azzuro rt=913054383 rg=d.polar
~#! tid=913044825

Bah Humbug,

Spitzohren lassen sich leicht auf Zwegengroesse kuerzen und diverse Menschen
sollten sich in die KLerikergilde verzischen...

Hasse es, wenn sie ueber meinen Ziehpappi herfallen...
Lug

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



Neues aus der Eismine (Tsunami,  8. Dez 1998, 15:28:05):
Huhu Leute,


Zuerst muss ich ankuendigen, dass in der zweiten Etage der Eismine eine
Treppe durch die ewigen Bewegungen im Eis verschoben wurde und zwar um
einen Raum. Alle Leute, die bis jetzt am Zeichnen einer brauchbaren Karte
gescheitert sind, duerfen mir sanft ans Schienbein treten :)
Zum Glueck bin ich die naechsten zwei Wochen weg...
Als Entschuldigung fuer diesen Patzer darf man nun die Karte im Verwaltungs-
buero lesen. Selbstverstaendlich haben die Eiselfen nur eine Aufzeichnung
der Mine bis zu dem Punkt, wo ihr Stosstrupp hopps genommen wurde. Die
Aenderung der Treppe ist uebrigens in Raum 22.


Ok, und nun kommt was Neues: Der Koenig der Eisunholde traegt nun seinem 
Stand entsprechend eine nette Kopfbedeckung. Damit man die aber nicht zu
einfach bekommt, wurde der Raum darunter etwas 'angepasst'... :)

Viel Spass weiterhin wuenscht euch


Tsunami


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



Weihnachtsgeschenk vom lieben Tsunami :) (Tsunami, 23. Dez 1998, 11:01:39):
Hi folks,

Die Schreckenswesen sind nun so ausgeruestet, wie es von Anfang an geplant
war. Freut euch, oder auch nicht, jenachdem ;->>>>>>

      >>> Tsunami <<<

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



PEM (Para-Eismine) eroeffnet! (Tsunami, 27. Jan 1999, 15:48:22):
Hallihallo ihr lieben Leut,

mir ist zu Ohren gekommen, dass die Schreckenswesen eine Attacke auf das
geliebte Morgengrauen planen. Von der Parallelwelt aus haben sie mittlerweile
eine kleine Armee williger Diener in die Eismine geschickt, um ihr finsteres 
Vorhaben zu verwirklichen.

Metzelt alles nieder, was euch vors Messer laeuft, und jagt die finstren
Schergen wieder in ihre Schreckensdimension zurueck. 
Aber seid gewarnt: sind die Monster zu stark, seid ihr zu schwach ... ;)
Will sagen: formiert euch, gruppiert euch, bildet Teams.

Das war's eigentlich schon. Viel Spass beim Trophaeensammeln.


  >>Tsunami.



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



Der Frosch (Mupfel,  7. Feb 1999, 21:56:35):
Da ich gerne mal wegrenne im Kampf, hat mir Mupfel im Kampf wieder das "alte
Verhalten" gesetzt.

Der Frosch

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



Verrinfalken (Bendeigid, 10. Feb 1999, 14:52:43):
Liebe Falkenfreunde,

aufgrund von hohen Verlusten bei den Falken, hervorgerufen durch ungewollte
Angriffe ("toete alle") sind die Falken nun ein wenig schlauer und
(hoffentlich) immun gegen dies. Ausserdem bei "Flaechenspells" wie Erdbeben
usw.
Wir hoffen, dass nun mehr interessierte Falkenfreunde sich ein solch herrliche
Tier zulegen!
Wer will schon Maeuse? Oder Papageien?

i.A. Bendeigid

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



Re: Verrinfalken (Morgoth, 10. Feb 1999, 15:56:32):
~#! rn=Bendeigid rt=918658363 rg=d.polar
~#! tid=918658363
Dann entschaerf mal Deine bloede Banshee, die is nervig. SO bekommst Du nie
Leute dazu, Deine Falken zu kaufen.

M*

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



Re: Re: Verrinfalken (Bendeigid, 10. Feb 1999, 16:00:13):
~#! rn=Morgoth rt=918662192 rg=d.polar
~#! tid=918658363
Wie war das? Irgendwas mit "Glashaus" und "Steinen" ;)

Ne, aber mal im Ernst, da waren ein zwei Bugs in der Banshee, netterweise
einer von Anfang an, und die hab ich ausgebaut. Dabei aber nen anderen
eingebaut; kurz: in den letzten Zwei Wochen oder so benahm das Tierchen sich
nicht unbedingt so wie sie sollte. JETZT gehts aber wieder ;)

Z#Par Servu,
             Bendeigid

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



Re^3: Verrinfalken (Mahatmu, 10. Feb 1999, 16:35:23):
~#! rn=Bendeigid rt=918662413 rg=d.polar
~#! tid=918658363
Wer fuerchtet schon die Banshee? :)))
*saus*

Mahatmu
aehm ... Gloin

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



Re^4: Verrinfalken (Alpha, 10. Feb 1999, 23:31:27):
~#! rn=Mahatmu rt=918664523 rg=d.polar
~#! tid=918658363
Jajaja Gloin, die Banshee ist schneller als Saus (zumindest schneller als das
Magdeburger Netzlag-Saus) und papalarisysiriert.
Aber viel Schaden macht sie ja nicht.
Alpha.

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



Neues aus dem Polargebiet (Tsunami,  2. Mar 1999, 19:13:56):
Der Saphiraubbau in der Eismine laeuft nun auf Hochtouren. Damit die Saphire
moeglichst effizient in das ganze Morgengrauen verschifft werden koennen,
wurde eine gewaltige Hafenanlage an der Kueste errichtet. Mittlerweile
hat sich eine regelrechte Siedlung um den Hafen herum gebildet, mit einem
eigenen Markt, Hafenkneipen, Laeden und einem Postamt. Der kleine Marktstand
an der Kueste ist also einer ganzen Stad gewichen.

Besondere Sehenswuerdigkeiten sind der Aussichtsturm und der 
Marktplatz mit den drei grossen Statuen, die zu Ehren der letzen
Schreckensdrachentoeter aufgestellt wurden.

Verschiedene Schiffsrouten laufen nun ueber den Saphirhafen und eine neue
Handelsroute nach Moloukin wurden errichtet.

Kommet alle, sehet und staunet!


fuer die Hafenverwaltung,

  >>Tsunami.

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



Leben in der Tundra (Noel, 25. Mar 1999, 04:25:11):
Hi!

Oestlich der Lilientundra wurde kuerzlich ein neues Gebiet entdeckt.

Leider ist es noch nicht erforscht aber man sagt, dass es dort manches
zu sehen gibt!

Viel Spass,
Noel

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



Neues von der Para-Eismine! (Tsunami,  7. Mai 1999, 10:58:39):
Hallo Liebhaber harter Herausforderungen,
(Waschlappen und Weicheier->Bitte nicht weiterlesen!)

Nach harten und zaehen Verhandlungen konnten sich die verantworlichen Goetter
der Schreckensdimension endlich dazu durchringen, dem Schreckensdrachen
einen wirklich netten Gegenstand mit auf den Weg zu geben.

Es lohnt sich nun also endlich, nicht nur wegen Ruhm und Ehre (siehe
Statue in der Eissiedlung) den Schreckensdrachen zu bekaempfen, sondern auch
der Stats wegen (huch, hoffentlich habe ich nicht zuviel angedeutet...).


Frohes Massensterben wuenscht Euch wie immer, 

Der nette Tsunami. 

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



Der Frosch ist weg (Mupfel,  4. Jun 1999, 21:26:01):
Hallo

Der Chaosfrosch ist jetzt weg. Im Zug der Umstellung der Chaosgilde kommt der
auf einen neuen Standplatz. Damit der Platz aber nicht ganz leer bleibt...

-mupfel-

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



Moulokin, Elitesoldaten (Pra,  8. Jun 1999, 13:58:21):
Moin!

Sind die Elitesoldaten in Moulokin abgehaengt worden? Ich hab' sie
lange nicht mehr gesehen...

Pra.

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



Kilghard-Pass (Bendeigid,  9. Jun 1999, 14:17:57):
Wegen unerhoert vieler (erklaerlicher) Todesfaelle und einem zuuuu
magierfreundlichen MG-Random habe ich den Pass GRUENDLICH entschaerft.
Doch, man kann auch weiterhin erfrieren, und auch sonstige Gemeinheiten sind
weiter aktiv, aber bei dem beliebten Kampf mit meinem Haustier sind gewisse
Gefahren jetzt.... entschaerft.

Z'par Servu,
        Bendeigid

P.S.: Flames an /dev/null, Lob an mich, Abnregung kam vom Kammffzwaersch

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



Neues aus der Para-Eismine (Tsunami, 10. Jun 1999, 11:16:45):
Liebe Freunde :))

Ich habe mal wieder etwas "Housekeeping" an der Eismine gemacht und mein
Repfile abgearbeitet. An dieser Stelle ein herzliches Dankeschoen an alle
fleissigen Tyopsucher und Ideenbringer.

OK, zuerst was kleines: Nachdem ich dem Kampfzwerg einen dicken Verweis
erteilt habe und ihm dann noch einen kraeftigen Tritt in den Hintern 
verpasste, hat er endlich den Kaempferkragen angezogen und kaempft nun
noch etwas konzentrierter..... :)))  Das Gleiche gilt fuer den Saphirfresser.

Nun zum neuen:

Die schrecklichen Vorkommnisse ganz unten in der Eismine -- ihr wisst, wo
ich meine -- haben ein paar Zauberer auf den Plan gerufen (resp. ich habe 
sie direkt von der Unsichtbaren Universitaet einfliegen lassen), die mit 
neuartigen magischen Messinstrumenten herumhantieren. Das Zeugs, dass sie
dabeihaben, koennte das Metzeln in der Eismine erheblich erleichtern....

Mehr verrate ich nicht.

Viel Spass in der Para-Eismine.....


Tsunami.
 



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



Neues Zeugs fuer die Chaoten in der Eismine (Tsunami, 10. Jun 1999, 15:48:46):
Huhu fleissige Metzler, 

Chaos ist ueber die Eismine hereingebrochen. Ihr findet nun in der Eismine
(Normal und Para) plus Umgebung 5 Chaoskomponenten. Viel Spass beim Suchen
und Zerstoeren!


i.A. des Chaos: Tsunami (mal wieder so richtig fleissig).

P.S. eine Komponente, und das darf ich verraten, besitzt der Schreckensdrache,
der immer noch laessig in seiner Schreckensdimension hockt und darauf wartet,
dass ihn mal ein Chaot herausfordert ;)

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



Moulokin, Elitesoldaten, die zweite. (Pra, 16. Jun 1999, 12:20:43):
Moin nochmal!

Erneute Frage (liest hier kein Polar-Mag?):

Sind die Elitesoldaten aus Moulokin verbannt worden? Kommen sie
irgendwann wieder? 

Pra. Vermisst sie.

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



Re: Moulokin, Elitesoldaten, die zweite. (Householder, 16. Jun 1999, 12:31:24):
~#! rn=Pra rt=929528443 rg=d.polar
~#! tid=929528443
hm soweit ich mich erinnere waren die den kaempfern zu hacht ...
vielleicht hat sich bierchen ihrer erbarmt und sie einfach abgeklemmt :-)
HH

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



Re: Moulokin, Elitesoldaten, die zweite. (Bierchen, 17. Jun 1999, 18:37:04):
~#! rn=Pra rt=929528443 rg=d.polar
~#! tid=929528443
Hiho,

auch ein Elitesoldat hat scheinbar ein Recht auf Urlaub.
Nachdem ich von deren Gewerkschaft angeschissen wurde, hatte
ich mich dazu entschlossen, sie ein paar Tage auf Kosten der
Zentralbank zum Ballermann zu schicken. Wenn auch etwas
verkatert, nun sind sie wieder zurueck.

Aber die naechste Tarifrunde kommt bestimmt. Aus gut unterrichteten
Kreisen weiss ich, dass sie demnaechst Loehne verlangen wollen und deren
Weiterzahlung im Krankheitsfall, Risikozuschlaege fuer Nachtarbeit
fordern und sogar ein Recht auf Schwangerschaftsurlaub soll im
Gespraech sein...

Die werden echt immer frecher, diese Lumpen...
Gruss,
       - Bierchen -

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



Neuigkeiten aus dem Polar (Feuerwehr, 17. Jun 1999, 20:32:19):
Merkwuerdige Dinge gehen vor im kalten Polar.

Erdbeben erschuettern das Gebiet noerdlich der Eiswueste. Waren sie vor
kurzem noch kaum wahrzunehmen, erschuettern sie den Polar nun in seinen
Grundfesten. Es scheint fast so, als wuerden sich gewaltige Dinge unter
dem Eis bewegen, ja erheben.

Geruechte verbreiten sich mit grosser Geschwindigkeit: Die Chaoten haben
ein maechtiges Wesen beschworen, welches die Welt verschlingen wird. Die
Chaoten haben ein maechtiges Wesen beschworen, welches sie selbst
verschlingen wird. Die Chaosgilde wird von himmlischen Maechten angegriffen.
Die Chaosgilde zerfaellt, Stein fuer Stein. Die Chaosgilde wird verlegt,
Stein fuer Stein. Die Kleriker ziehen in den Polar, um der Gilde ein fuer
alle Mal den Garaus zu machen. Alle Chaoten haben sich in Daemonen verwan-
delt und leben nun tief unter der Erde. Die Daemonen haben sich gewehrt und
ihre Herrscher vernichtet. Die Chaoten beschwoeren ein gewaltiges Monster,
welches die gesamte Klerus-Gilde vom Erdboden vertilgen soll.

Die Verunsicherung ist gross. Tief in der Wueste formiert sich eine Reihe  
maechtiger Krieger und Priester, um den Ereignissen auf den Grund zu gehen
und drohendes Unheil abzuwenden. Sie ziehen gen Polar und werden nie wieder
gesehen.                                

Die Chaoten indes schweigen, verharren in tiefer, boesartiger,
beunruhigender Stille.

Die Beben werden staerker. Ganz offensichtlich geschehen Dinge in dieser
Gilde. Ganz offensichtlich scheint sie zu zerfallen. Was bewegt sich, was
erhebt sich dort?

Die naechsten Tage werden es ans Licht des Tages bringen.

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



Re: Neuigkeiten aus dem Polar (Trug, 17. Jun 1999, 21:18:11):
~#! rn=Feuerwehr rt=929644339 rg=d.polar
~#! tid=929644339
nette geschichte.

Trug auch einzeilernd. 

(waere nett, wenn das die spieler auch live mitmachen koennten)

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



Re: Re: Neuigkeiten aus dem Polar (Sting, 17. Jun 1999, 21:18:43):
~#! rn=Trug rt=929647091 rg=d.polar
~#! tid=929644339
Da Du keine Ahnung von nix hast, aber davon jede Menge, sei lieber still :)

Sting, arrogant.

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



Re^3: Neuigkeiten aus dem Polar (Padreic, 17. Jun 1999, 21:21:07):
~#! rn=Sting rt=929647123 rg=d.polar
~#! tid=929644339
Tststs.. nicht so unqualifiziert bitte.
Wenn hier ein Spieler seinen Wunsch aeussert dann sollte man das tolerieren
und versuchen ihn diesem zu erfuellen, zumindest wenn es darin besteht das ihm
erst ein Gebaeude auf den Kopf faellt, anschliessend zahlreiche Kleriker ihn
wiederholt mehrfach verkloppfen und zu guter letzt einige Daemonen ihm auch
noch einige Tode verschaffen. Alles in allem sicher einige dutzend Tode...
Wie stehts? Noch interesse Trug?

Padreic, immer hoeflich und zuvorkommend.

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



Re: Re: Neuigkeiten aus dem Polar (Feuerwehr, 17. Jun 1999, 21:21:08):
~#! rn=Trug rt=929647091 rg=d.polar
~#! tid=929644339
Also.

Ist Sting heute arrogant.

Na klar kannst Du da live mitmachen. Gehe folgendermassen vor.
1) Bewege Dich in die Wueste.
2) Poliere Deinen Heiligenschein
3) Bewege Dich in Richtung Polar
4) Verschwinde auf mysterioese Weise
   Hinterlasse keine Spuren.
   Kehre niemals zurueck.

  Feuerwehr.

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



Re^3: Neuigkeiten aus dem Polar (Anatol, 17. Jun 1999, 21:22:01):
~#! rn=Feuerwehr rt=929647268 rg=d.polar
~#! tid=929644339
Ist es zuviel verlangt, wenn ich darum bitte, dass Trug live mitmachen
MUSS? :o) 

Anatol - heute mal lieb! 


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



Neuigkeiten aus dem Polar (Feuerwehr, 18. Jun 1999, 17:25:24):
Ein gewaltiges Krachen erfuellte gerade den Polar.

Und nun bricht etwas aus dem ewigen Eis noerdlich der Chaosgilde. Etwas
dunkles. Etwas schwarzes. Etwas bedrohliches. Und es wird groesser, als mehr
und mehr aus dem Eis zum Vorschein kommt. Gewaltige Beben erschuettern den
Polar in seinen Grundfesten.

Und wieder erfuellen die wildesten Geruechte das Morgengrauen, doch einige
herrschen vor. Man spricht von einem gewaltigen, schwarzen Vulkan, welcher
sich dort erhebt und das Morgengrauen in Staub und Asche huellen wird, es in
ewige Finsternis stuerzen wird, und alles Leben auf ihm zum Erloeschen
bringen wird. Man erzaehlt sich, Kruuolq und Wuqour, die Oberhaeupter der   
Gilde, waehren selbst beim Vulkan gewesen, als er durchgebrochen ist. Man
erzaehlt sich von einer langen Karawane uebelster Daemonen, welche sich von 
der Chaos-Festung bis zum Vulkan zieht. Hunderte von Daemonen, welche Dinge 
zum Vulkan schleppen, um diese zu opfern. Die Festung des Chaos soll sich   
zuesehends leeren. 

Und sie wird fallen, so sagt man. Sie, die den Unwillen des Polar seit
Anbeginn der Zeit getrotzt hat, soll lediglich von boesartigen Maechten noch 
aufrecht gehalten werden, und auch dies nicht mehr lange. Die Chaoten
wuerden sich selbst toeten, sich selbst opfern, um alles Leben
auszuloeschen, um den Tag des juengsten Gerichts herbeizufuehren und ein
fuer alle Mal zu beweisen, dass es kein solches gibt, denn das Chaos
herrscht.

Und der pechschwarze Berg waechst. Die Karavane der Daemoen bringen weiter
Dinge zu ihm, und die Chaosgilde erbebt und erbebt.

Willkommen in den letzten Tagen. Dies ist die Endzeit. Erwartet den Morgen,
denn dann wird dieses Kapitel vollendet, und es koennte das letzte sein.

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



Neuigkeiten aus dem Polar. (Feuerwehr, 19. Jun 1999, 16:20:44):
Ein letztes, gewaltiges Beben erschuettert den Polar und verhallt.

Tiefe Stille senkt sich auf das Morgengrauen. Die Welt haelt den Atem an,
wartet. Es liegt eine Spannung in der Luft, die man fast fuehlen kann. Etwas
wird noch passieren. Etwas ... schlimmes?

Die Festung des Chaos bricht zusammen. Wie ein Kartenhaus zerfallen ihre
Reste. Gaenzlich unspektakulaer, aber auf eine ganz merkwuerdig grandiose
Weise stuerzt sie ein. Es ist, als haette jemand einen Schalter betaetigt,
wie etwa um das Licht auszuschalten.

In kuerzester Zeit erobert sich der Polar sein Gebiet zurueck und huellt die
Ruinen der Gilde in eine Decke aus Schnee und Eis. Still und bedrohlich
liegt sie dort, waehrend durch ihre Ruinen ein Weg weiter nach Norden
fuehrt. Und dort im Norden ragt der gewaltige schwarze Berg auf, kein
Vulkan, sondern ein Eisberg aus pechschwarzem Eis, drohend aufragend wie
ein Fingerzeig, der Tod und Verwuestung prophezeit.


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



Re^3: Neuigkeiten aus dem Polar (Wim, 22. Jun 1999, 12:29:16):
~#! rn=Feuerwehr rt=929647268 rg=d.polar
~#! tid=929644339
Na klar kannst Du da live mitmachen. Gehe folgendermassen vor.
1) Bewege Dich in die Wueste.
STOP RUN.

Wueste, tolle Region...
Wim, verfaellt wieder in CoBOL Syntax.

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



RM-Polar (Bierchen, 23. Jun 1999, 02:45:34):
Hiho,

momentan gibt es nur einen RM-polar und das ist Feuerwehr.
ich bin soeben in rente gegangen...
einige von euch werden aufatmen, einige werden jubeln und der rest
wird wahrscheinlich diesen tag im kalender rot ankreuzen...
aber freut euch nicht zu frueh, 112 kann auch gemein sein :)
was bedeutet das fuer euch? na, was schon, alle bug-meldungen
sollten ab sofort nur noch an das rote, kleine auto mit dem
blauen licht gehen :)

gruss,
        - Bierchen -

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



Re: RM-Polar (Lug, 23. Jun 1999, 04:04:58):
~#! rn=Bierchen rt=930098734 rg=d.polar
~#! tid=930098734

Huch?

Haste es endlich erkannt? Du bist zu sehr am Tattern, um noch was
vernuenftiges zu proggen, stimmts?
Ab ehrlichgesagt, ich bin ja ueber jeden Abgang froh...

Hau doch ab!
Lug

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



Re: Re: RM-Polar (Jasper, 23. Jun 1999, 04:07:51):
~#! rn=Lug rt=930103498 rg=d.polar
~#! tid=930098734
nuja frueher oder spaeter kommt jeder magier zu dem schluss und idlet und
dummsuelzt nur noch ;)

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



Re^3: RM-Polar (Jasper, 23. Jun 1999, 04:08:43):
~#! rn=Jasper rt=930103671 rg=d.polar
~#! tid=930098734
...

jasper proggt nur noch gegen rl-sex :)

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



Re^4: RM-Polar (Lug, 23. Jun 1999, 04:09:19):
~#! rn=Jasper rt=930103723 rg=d.polar
~#! tid=930098734

Ach deshalb proggst Du nix mehr seit Jahren...
Lug

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



Re^5: RM-Polar (Jasper, 23. Jun 1999, 04:09:49):
~#! rn=Lug rt=930103759 rg=d.polar
~#! tid=930098734
jau :)

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



Re^6: RM-Polar (Lug, 23. Jun 1999, 04:11:07):
~#! rn=Jasper rt=930103789 rg=d.polar
~#! tid=930098734

Eroeffnete mal einer ein Spendenkonto? Poppen fuer Jasper?

Lug

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



Re^3: RM-Polar (Bierchen, 23. Jun 1999, 04:12:21):
~#! rn=Jasper rt=930103671 rg=d.polar
~#! tid=930098734
jo, ich fakezappe jetzt nur noch. fuer so eine abstufung, die zudem noch
freiwillig war, habe ich mind. 10-100 oder sogar noch mehr fakezaps frei :)
das bringt das so mit sich, steht im kleingedruckten des mag-vertrags, auf der
rueckseite, unten rechts :)

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



Re^4: RM-Polar (Lug, 23. Jun 1999, 04:13:39):
~#! rn=Bierchen rt=930103941 rg=d.polar
~#! tid=930098734

Hm,

warum nur FAKE? Hau rein, lass zappen ;)

Lug

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



Re^5: RM-Polar (Bierchen, 23. Jun 1999, 04:15:47):
~#! rn=Lug rt=930104019 rg=d.polar
~#! tid=930098734
oeh, mein anwalt untersucht gerade, wieviel fakes einem echten zap
entsprechen, wir verhandeln noch mit der gegenseite :)

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



Re^3: RM-Polar (Jamalski, 23. Jun 1999, 16:22:05):
~#! rn=Jasper rt=930103671 rg=d.polar
~#! tid=930098734
Faengt das nicht bei Level 15 schon an?
Jamalski

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



Feuerwehr hat wieder Verstaerkung bekommen (Tsunami,  2. Aug 1999, 19:43:17):
Huhu Mitmudder,

Schreckliche, gemeine, boese, finstere, und im Allgemeinen interessante 
Zeiten stehen euch bevor!!! Feuerwehr hat mich zum Mit-RM Polar erkoren. 
Gemeinsam werden wir das Gebiet weiterhin hegen und pflegen und uns viele 
neue nette Sachen aushecken...

Es wird bestimmt lustig.

Tsunami (wie immer voller Tatendrang).

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



Re: Feuerwehr hat wieder Verstaerkung bekommen (Feuerwehr,  2. Aug 1999, 19:47:16):
~#! rn=Tsunami rt=933615797 rg=d.polar
~#! tid=933615797

Ha!

Ich bin stolz, einen derart kompetenten und aktiven Mit-RM bekommen zu haben.
Endlich koennen wir meinen grossen Traum verwirklichen: Eine komplette, fiese
Parawelt fuer den Polar und Dann ... eine Art Flackern ... zwischen Normal und
Parawelt.... Ja! Ha! Haha!

   Feuerwehr.

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



Neues im Polarmoor (Noel,  9. Aug 1999, 20:32:50):
Nach langwierigen Arbeiten wurde nun ein alter Weg freigelegt, der den Westen
des Moores mit dem Strand des Nordmeeres verbindet.

Erste neugierige Abenteuerer berichten von einer uralten Anlage, die sich
direkt an der Kueste befindet. Angeblich treiben sich dort einige sehr
merkwuerdige Gestalten herum, von denen man nicht weiss, was sie im Schilde
fuehren.

Kaempfer und Zauberer haben bereits Forschungstrupps ausgesandt, die
feststellen sollen, ob diese Gestalten eine Gefahr darstellen. Naehre
Informationen dazu gibt es in den jeweiligen Gilden.
Aber auch fuer die anderen Gilden koennte es dort interessant sein, denn
wer weiss ...

Viel Spass und Salve,
Noel

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



Re: Neues im Polarmoor (Lena, 10. Aug 1999, 10:06:01):
~#! rn=Noel rt=934230770 rg=d.polar
~#! tid=934230770
Ich will ja kein Spielverderber sein, aber ...

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



Paganini (Feuerwehr, 18. Aug 1999, 22:33:41):
Hi!

Wir kennen sie, wir hassen sie, wir wuerden sie gerne loeschen aber wir
duerfen es verdammt nochmal nicht, was eine hoellisch schreiende
Ungerechtigkeit ist!

Die Rede ist von der Paganini-Quest (Hilf dem Violinisten). Morgonate hat es
auf sich genommen, diese questtechnischen Teile dieses Ungetuems zu
ueberarbeiten, weshalb sie jetzt hoffentlich sehr viel stabiler laufen wird.

Der Aufwand fuer das Umschreiben der KL-Scripte sollte minimal sein, ich
wuensche euch viel Spass, meldet Fehler bitte SOFORT und UMGEHEND an MICH und
Morgonate.

    Feuerwehr.

PS: Ganz vielen Dank an Morgonate. Troy ist ... ein Erlebnis, das man nie
    vergessen wird.

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



Re: Paganini (Morgoth, 19. Aug 1999, 05:37:03):
~#! rn=Feuerwehr rt=935015621 rg=d.polar
~#! tid=935015621
Meinst Du jetzt, die Fehler, die in den Scripten auftauchen, oder die der
Quest an sich? ;-))
Hey, es ist ganz schoen schwer, Scripte fuer Multi-Player-Quests zu schreiben.

M* ;-)

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



Re: Re: Paganini (Feuerwehr, 19. Aug 1999, 07:30:10):
~#! rn=Morgoth rt=935041023 rg=d.polar
~#! tid=935015621
Ha!

Jammer hier nicht rum! Dies hier ist der Polar, da wird gegessen, was auf den
Tisch kommt!

Aeh.

   Feuerwehr.

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



Neues aus der Tundra (Gor, 22. Aug 1999, 13:56:05):
Laut den Berichten von einigen eifrigen Forschern
ist in der Tundra eine mysterioese Erhebung entdeckt
worden. Hierbei soll es sich anscheinend um ein 
Bollwerk aus laengst vergangenen Zeiten handeln.

Die Forscher empfehlen dieses Gebiet nur in groesseren
Stosstrupps zu untersuchen da man nie wissen kann auf 
wen oder was man stoesst.

Viel Spass beim entdecken.


Mein ganz spezieller Dank geht an: Tsunami 
                                   Bierchen
                                   Zook
                                   Feuerwehr
                                   und Tilly

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



NEU! TOLL! MUSS ICH SEHEN! (Tilly, 28. Aug 1999, 18:21:46):
Moin moin!

Es wurde viel gebaut in Moulokin, hauptsaechlich abgerissen, zerstoert und
dem Erdboden gleich gemacht. Nachdem sich nun die Staubwolken ueber der
Stadt gelegt haben darf wieder munter gestorben werden.

Hoeret, sehet, staunet: Para-Moulokin ist um einige Attraktionen reicher!!

- Tilly -

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



Banshee (Bendeigid, 13. Sep 1999, 09:23:39):
Hallo liebe Freunde des Polargebiets, und
insbesondere die Freunde der Klighardberge. 

Da in der letzten Zeit (letzten paar Monate) ueberraschende "Bugs" bei der
Banshee auftraten, die dazu gefuehrt haben, dass dort unberechtigt Spieler
gestorben waren, habe ich versucht, de Fehler zu finden.
Mir ist das NICHT gelungen, weil ich den Fehler mit keinem Testie oder Spieler
reproduzieren konnte. Daher hab ich die Bugreports auf Bedienungsfehler
wuetender Spieler zurueckgefuehrt, und das wars.
ABER: Grosser Dank an Tiamak, der sich damit nicht zufriedengab und
weitergesucht hat. Und siehe da, er fand den Bug, der im Maexchen-Spiel
unseres geliebten Pa*-Magiers beheimatet war!!! 
Dieser Bug ist nun ausgebaut, und die bekannten Methoden, sich gegen die
Banshee zu schuetzen sollten damit funktionieren!
Danke nochmal an Tiamak fuer die Suche und Padreic fuers prompte Debuggen....

Z'par Servu,
          Bendeigid

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



Re: Banshee (Brandir, 14. Sep 1999, 10:27:14):
~#! rn=Bendeigid rt=937214619 rg=d.polar
~#! tid=937214619
Soll das jetzt heissen, dass die Banshee beim Maexchen immer verloren hat und
deshalb gefrustet Spieler gekillt hat ? Und nun will Padreic sie womoeglich
vom Spiel ausschliessen... binmal auf ihre Laune demnaechst gespannt :-)

Brandir

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



Postquest (Feuerwehr, 23. Sep 1999, 20:04:26):
Hi!

Eigentlich ists keinen Artikel wert, aber, es ... es ist ein TROY - Quest! Und
ICH habe sie fuer euch veraendert! Ich habe fuer euch GELITTEN! Ich ... ich
... OH DIESE PEIN ...

Auf jeden Fall hat sich die Liste der Brief-Empfaenger etwas verkleinert. Wer
von euch trotzdem noch Probleme hat, weil gewisse Addressaten durch die
Veraenderungen des Muds fuer kleine Spieler nicht mehr zu erreichen sind, der
soll sich bitte an einen Polar-Magier wenden.

Und wenn sich der/die betreffende an Tsunami wendet und nicht an mich, dann
zahl ich ihm/ihr viel viel Geld!!!

Gruesse!

   Feuerwehr.

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



Re: Postquest (Streawkceur, 23. Sep 1999, 20:06:50):
~#! rn=Feuerwehr rt=938117066 rg=d.polar
~#! tid=938117066
wie viel geld? :-)

rr

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



Re: Postquest (Gnome, 23. Sep 1999, 20:56:42):
~#! rn=Feuerwehr rt=938117066 rg=d.polar
~#! tid=938117066
definiere 'viel geld' :)

gnOme, go^Heldgeil

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



Re: Re: Postquest (Feuerwehr, 23. Sep 1999, 21:12:58):
~#! rn=Gnome rt=938120202 rg=d.polar
~#! tid=938117066

Ihr geldgieriges, undankbares, sadistisches, nimmersattes PACK!

Schande ueber euch! Asche auf euer Haupt!

Und fuer euch reiss ich mir hier den A*** auf!

    Feuerwehr.

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



Re^3: Postquest (Olli, 23. Sep 1999, 21:13:44):
~#! rn=Feuerwehr rt=938121178 rg=d.polar
~#! tid=938117066
Nu komm mal bloss nicht vom Thema ab ;)

Olli

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



Re^3: Postquest (Onyx, 24. Sep 1999, 06:24:54):
~#! rn=Feuerwehr rt=938121178 rg=d.polar
~#! tid=938117066
Jaja, was ist nur aus diesem Mud geworden.
Anstatt, dass jemand Feuerwehr etwas Schlechtes tut und sich bei
ihm BEDANKT, fuer die Zeit und die Muehen (hehe) die er inves-
tiert hat, wird sein Ego weiter gestreichelt, mit vorprogrammier-
ten Witzen. Wirklich mies!
Geht Bugs suchen!
  ****

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



Re^4: Postquest (Zook, 24. Sep 1999, 08:16:00):
~#! rn=Onyx rt=938154294 rg=d.polar
~#! tid=938117066
Hmmm... wobei ich dieses Troy-Quest-Ueberarbeiten ja auch
etwas kritisch sehe. Wie sollen die kleinen Spieler das 
noch verstehen, was es hiess eine "Troy"-Quest gespielt
und auch bestanden zu haben?

Zook, der meint, hier wird alles viel zu einfach... ;)))))

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



Re: Postquest (Teddy, 24. Sep 1999, 17:07:57):
~#! rn=Feuerwehr rt=938117066 rg=d.polar
~#! tid=938117066
Danke 112, das war sehr LIEB von dir.

Teddy, angeekelt.

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



Re: Postquest (Foobar, 24. Sep 1999, 17:09:23):
~#! rn=Feuerwehr rt=938117066 rg=d.polar
~#! tid=938117066
Juhu!

Danke Feuerwehr, das war echt suess von Dir :o)

Foobar - hofft, dass Tox Utat jetzt raus ist

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



Re: Re: Postquest (Anatol, 24. Sep 1999, 17:09:29):
~#! rn=Teddy rt=938192877 rg=d.polar
~#! tid=938117066
Da siehst Du es! Mit den hinterhaeltigsten Tricks der
Liebenswuerdigkeit erzeugt Feuerwehr Ekelgefuehle in
Dir! Was fuer ein Chaot! Was fuer ein maechtiger Geist
verglichen mit jenen Stuempern, die mit aufgesetzter
Boesartigkeit im grossen Spiel des grausamen Lebens
zu punkten versuchen!

Anatol ;o)

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



Re^3: Postquest (Teddy, 24. Sep 1999, 17:13:15):
~#! rn=Anatol rt=938192969 rg=d.polar
~#! tid=938117066
Hat nicht ganz geklappt, durch diese Liebenswuerdigkeit gegenueber kleineren
Spielern und das Gejammere nach Aufmerksamkeit und Lob steht er fuer mich
jetzt etwa auf einer Stufe mit Sharia, Lembold oder Saphina.

Teddy, schauderts bei all diesen verweichlichten, jammernden und heiligen
Gestalten

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



Re^4: Postquest (Anatol, 24. Sep 1999, 17:14:29):
~#! rn=Teddy rt=938193195 rg=d.polar
~#! tid=938117066
Wahre Chaoten verstehen die Subtilitaet solcher Gedanken.

Naja.


Du bist Teddy.



...

Noch Fragen?

Gut.


Anatol


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



Re^4: Postquest (Feuerwehr, 24. Sep 1999, 17:15:53):
~#! rn=Teddy rt=938193195 rg=d.polar
~#! tid=938117066
Hi!

Ich moechte in diesem Zusammenhang erwaehnen: Nein, Tox Utat ist nicht raus.
Das ist Problem der Ebenen-RMs, die will ich ja nicht arbeitslos machen...
*laechle Ark an*

Ciao!

    Feuerwehr.

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



Re^5: Postquest (Teddy, 24. Sep 1999, 17:16:21):
~#! rn=Anatol rt=938193269 rg=d.polar
~#! tid=938117066
Sowas sagt mir jemand, der jahrelang rose Schleifen im Haar trug und derzeitig
Zuckersocke genannt wird.

Teddy, manche Dinge kann man nicht ernst nehmen ;)

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



Re^6: Postquest (Dieder, 24. Sep 1999, 17:17:33):
~#! rn=Teddy rt=938193381 rg=d.polar
~#! tid=938117066
Er ist Zauberer - schon vergessen? :)

Dieder, fies kichernd

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



Re^7: Postquest (Teddy, 24. Sep 1999, 17:18:09):
~#! rn=Dieder rt=938193453 rg=d.polar
~#! tid=938117066
DAS sowieso, das erklaert an und fuer sich schon alles, aber ich wollte
nochmal spezielle Nebenaspekte erwaehnen, die es noch schlimmer machen.

Teddy

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



Re^8: Postquest (Anatol, 24. Sep 1999, 17:46:57):
~#! rn=Teddy rt=938193489 rg=d.polar
~#! tid=938117066
Nur stehe _ich_ nicht auf der Nikolaus-Liste.

Anatol :)


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



Re^9: Postquest (Teddy, 24. Sep 1999, 17:47:41):
~#! rn=Anatol rt=938195217 rg=d.polar
~#! tid=938117066
Touche

Teddy, kein Nikolaus und kein Weihnachtsmann oder Tannenbaum.
We wish you a bloody christmas

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



Re^5: Postquest (Wim, 24. Sep 1999, 20:35:31):
~#! rn=Feuerwehr rt=938193353 rg=d.polar
~#! tid=938117066
Damit Du nicht arbeitslos wirst, kann ich ja die Hexerquest von Wald nach
Polar verschieben..
*unschuldig guck*

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



Re: Re: Postquest (Olli, 24. Sep 1999, 22:52:41):
~#! rn=Foobar rt=938192963 rg=d.polar
~#! tid=938117066
Gab es Probleme mit Tox Utat? Ausser, dass der Wolpie-Club immer in die
Luft gesprengt wird? *g*

Olli, interessiert...

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



Re^6: Postquest (Paracelsus, 25. Sep 1999, 19:58:59):
~#! rn=Wim rt=938205331 rg=d.polar
~#! tid=938117066
Jo, mach ruhig.

Para*.

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



Re: Postquest (Zarniya, 28. Sep 1999, 06:44:04):
~#! rn=Feuerwehr rt=938117066 rg=d.polar
~#! tid=938117066
Hmm da muss ich mich dann doch mal zu Wort melden: ich hab Troy-Questen
getestet, hat als Polarmagier hier und als Em hier und im Wunderland sehr viel
mit seinem Code zu tun gehabt und muss sagen, dass der gar nciht soooo schlimm
ist. Ich kenn da ganz andere Spezies :). Kann natuerlich sein, dass hier
einige Magier schon ein wenig verweicht sind. Dabei ist LPC so schoen und
einfach, wenn man den Gehirnkasten anschaltet. 

Marc, muss Troy mal verteidigen, der VIEL, wirklich VIEL fuer dieses und
andere Muds geleistet hat und das meine ich positiv.

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



Re: Re: Postquest (Tsunami, 28. Sep 1999, 10:48:57):
~#! rn=Zarniya rt=938501044 rg=d.polar
~#! tid=938117066
Troys Code ist gar nicht soooo schlimm???? 

Waaaaaaaasssss???? *SCHNAPP NACH LUFT! -- *ABSITZ!* -- *BLEICHWERD!*

Wage das nicht noch einmal zu wiederholen, Du Wurm!! 
Troys Code ist Spaghetti aus der Hoelle! :))
Jeder RM mit einem +/troy Verzeichnis in seinem Gebiet
weiss das...

Wenn ich dran denke, dass Feuerwehr mir das Ganze unterjubelnd wollte...
brrrr!!! Ich zahle noch mehr Geld, wenn ihr alle Bugs 112 statt mir meldet
:>>> 

Tsunami. Klimpert mit dem Geldsack.

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



Re^3: Postquest (Anatol, 28. Sep 1999, 12:17:56):
~#! rn=Tsunami rt=938515737 rg=d.polar
~#! tid=938117066
Vrai. Genial und gefuerchtet.

Anatol


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



Re^3: Postquest (Streawkceur, 28. Sep 1999, 14:29:26):
~#! rn=Tsunami rt=938515737 rg=d.polar
~#! tid=938117066
Hm... hier muss ich Zarniya mal recht geben...

rr (murmelt was von "visual basic generation heutzutage" :-)

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



Re^4: Postquest (Wurzel, 28. Sep 1999, 18:20:27):
~#! rn=Streawkceur rt=938528966 rg=d.polar
~#! tid=938117066
jo, wenn ueberhaupt visual basic... die meisten koennen doch heutzutage nur
noch mit der maus umgehen. ich plaediere dafuer, nur noch objekte in
assembler anzuschliessen, weg mit dem ganzen objektorientierten quatsch :)

wurzel

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



Re^9: Postquest (Caillean,  1. Okt 1999, 22:57:13):
~#! rn=Anatol rt=938195217 rg=d.polar
~#! tid=938117066
teddy auch nicht, wir wollen rochus doch in keinem fall arbeitslos machen:9

caillean, immer noch und bis zur party ihr "rochus for nikolaus" faehnchen
schwenkend

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



Re^10: Postquest (Rochus,  4. Okt 1999, 09:36:53):
~#! rn=Caillean rt=938818633 rg=d.polar
~#! tid=938117066
Schon gut, ich mach das ja schon freiwillig...
...wie mir am Freitag nahegelegt wurde...

  Rochus

PS: Hat noch jemand eine Sense fuer mich?
HO. HO. HO.

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



Der schreckliche Schreckensdrache ist lieb und nett! (Tsunami,  6. Okt 1999, 15:58:14):
Huhu Profimetzler,

Der schreckliche Schreckensdrache ist euch etwas entgegengekommen und 
ist nun gegen zwei statt nur einer Schadensart anfaellig. So haben alle 
Gilden mehr oder weniger eine Chance gegen ihn. Natuerlich sind die
sonstigen Werte nicht veraendert worden, sonst wuerde er zuviel von 
seinen Schrecken einbuessen.

Tsunami. Heute mal lieb und nett.

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



Neue Raeume in der Eismine (Tsunami,  6. Dez 1999, 18:35:15):
HO-HO Suchties,

Mein Sankt-Nikolaus-Geschenk an euch:

In der Eismine kann man nun dort, wo ein grosses Warnschild steht, ein
neues Gebiet betreten. Das Warnschild sollte man vorher aber erst mal
lesen :)

Sind nur ein paar Raeume aber ruestet euch trotzdem gut aus, bevor ihr
da reingeht. Und sagt mir hinterher nicht, ich haette euch nicht gewarnt.

Es gibt dafuer was Nettes zu holen!

Viel Spass beim anschauen,

Tsunami, der Quabbelschleimblub-Baendiger.

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



Re: Neue Raeume in der Eismine (Pardauz,  6. Dez 1999, 18:37:41):
~#! rn=Tsunami rt=944501715 rg=d.polar
~#! tid=944501715
> Tsunami, der Quabbelschleimblub-Baendiger.

warst Du bei Boing in der Lehre?

PArdauz

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



Re: Re: Neue Raeume in der Eismine (Zook,  6. Dez 1999, 18:38:01):
~#! rn=Pardauz rt=944501861 rg=d.polar
~#! tid=944501715
Zook grinst wissend.

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



Re: Re: Neue Raeume in der Eismine (Tsunami,  6. Dez 1999, 18:38:03):
~#! rn=Pardauz rt=944501861 rg=d.polar
~#! tid=944501715
Nein,

Bei Bendeigid ....

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



Re^3: Neue Raeume in der Eismine (Bendeigid,  7. Dez 1999, 11:22:16):
~#! rn=Tsunami rt=944501883 rg=d.polar
~#! tid=944501715
Petze :)

Naja, die Quabbelschleimblubs sind so eine Art Geburtsgeschenk fuer Tsu
gewesen. Ein Monster, dass ich ihm fuer sein "Ich-werde-Gross"-Projekt Eismine
geschrieben habe.
ABER: Die wirklich hinterlistigen Biester dieser Gattung sind hoechstens
teilweise ideentechnisch auf meinem Mist gewachsen. Jegliche fiese
Implementation ist voll und ganz Tsu anzulasten :)

Viel Spass!

Z'par Servu,
            Bendeigid

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



meine paar raeume... (para-polar) (Mupfel, 29. Dez 1999, 00:29:30):
ich wurde zu einer renovierung "ueberredet", waehrend der zeit sind die raeume
fuer spieler nicht erreichbar. spaeter mehr.

-mupfel-

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



Tiger entlaufen (Mupfel,  5. Feb 2000, 20:54:35):
Im Zuge einiger Arbeiten in einem Teil des Polargebietes ist ein sibirischer
Tiger entlaufen. Zuletzt wurde er von einigen zutiefst erschrockenen Wanderern
in der Naehe des Klippentempels gesichtet. Sachdienliche Hinweise nimmt der
zustaendige Polarmagier entgegen ;)

-mupfel-

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



Aenderungen Eismine (Tsunami, 17. Feb 2000, 14:08:19):
Aenderungen in der Eismine
--------------------------

Ich habe auf haeufigen Wunsch (eines Einzelnen...) die Gildenquest
'Rettungsaktion in der Eismine' technisch (nicht aber inhaltlich) etwas
umgebaut. Man kann nun auch ohne zu fragen die Quest beenden, was speziell
gewisse Zauberer freuen wird.

Wenn ihr noch Vorschlaege zur Truhe habt, werde ich mir die gerne mal
anhoeren.

Und nein, es wurde kein einziger NPC umgebaut. Die Werte usw. bleiben so,
wie sie waren.

Tsunami. Fleissig.

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



Gruft (Boing, 18. Feb 2000, 10:19:02):
Ich hab nen kleinen Initialisierungsbug in der Gruft gefixed. Da ich
dabei noch auf einen weiteren Fehler gelaufen bin, hab ich das auch
gleich mit erledigt, dadurch kann es passieren dass jetzt in der 
Parawelt zwei Necromanten mehr als normal rumstehen. Das war so 
beabsichtigt, nur der Pfad war falsch.
  Boing

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



Kleiner Bug (Gor,  3. Apr 2000, 05:06:08):
Hiho,
komischer Weise ist wieder ein alter Stand der Festung Momentan im Mg. D.h. es
buggen die Tueren fuer die man Schluessel braucht. Also Vorsicht!!!!!! Bleibt
am besten einfach aus dem suedlichen Teil komplett raus. Ich hoffe ich komme
bald wieder an meine Daten ran... :(

Gor

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



Re: Kleiner Bug (Gor,  7. Apr 2000, 00:25:09):
~#! rn=Gor rt=954731168 rg=d.polar
~#! tid=954731168
So ihr duerft wieder! :)

Gor der seine Files wiedergefunden hat. 

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



Euer RM ist mal kurz abwesend (Tsunami,  8. Apr 2000, 14:13:15):
Huhu Freunde,

am 11. April ist es soweit: ich flieg in die Staaten (und bleib dort mind.
2 Jahre). Bis ich mich dort so richtig eingenistet habe, werde ich jeweils
nur kurz im Mud vorbeischauen. In *polar* laeuft alles rund, macht mir also
in der Zwischenzeit nix kaput!! *schiel zu Gor*

Ich denke, so ab Ende April bin ich wieder regelmaessig hier.

Bis denne,
         
Tsunami.

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



Re: Euer RM ist mal kurz abwesend (Lug, 10. Apr 2000, 01:50:38):
~#! rn=Tsunami rt=955195995 rg=d.polar
~#! tid=955195995

Stell mal einer den Foen an...

Herzerwaermend
Lug

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



Geruechtekueche... (Amaryllis, 15. Mai 2000, 19:28:28):
Lange, lange Zeit existiert bereits das Elfendorf, das den Zwergen immer
schon ein Dorn im Auge war. Und ebenfalls vor einiger Zeit wuchs die
Eiselfenfestung aus dem Boden, die sich mittlerweile nun selbst bei den
nicht gerade intelligenzstarken Zwergen als potentielles Ziel
herumgesprochen hat.

Geruechten zufolge soll eine Horde dieses Zwergengesindels regelmaessig
versuchen, die Eiselfenfestung zu stuermen. Es waere also schoen, wenn sich
tapfere Recken finden wuerden, diesen Angriff zu stoppen.

Ein kleiner Elf kann Euch vielleicht mit Informationen weiterhelfen.

Amaryllis

PS: Bugmeldungen bitte sofort an mich, Bugs sind leider nicht
ausgeschlossen. Ansonsten: Viel Spass.


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



Re: Geruechtekueche... (Householder, 15. Mai 2000, 19:44:28):
~#! rn=Amaryllis rt=958411708 rg=d.polar
~#! tid=958411708




aufhalten ??? haeh ?? ich will da MITMACHEN !
HH (grunzend)

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



Re: Re: Geruechtekueche... (Nevok, 15. Mai 2000, 19:45:10):
~#! rn=Householder rt=958412668 rg=d.polar
~#! tid=958411708
genau, Elfenohren sammeln....wie Obelix die Legionaershelme...

Herrrrrrrrrrrrrrrrr Asterix....aeh Nevok

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



Willkommen, Amaryllis! (Tsunami, 15. Mai 2000, 19:46:00):
Amaryllis ist nun Regionsmitarbeiter in Polar.
Herzlich willkommen, Amaryllis!

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



Re^3: Geruechtekueche... (Amaryllis, 16. Mai 2000, 00:03:27):
~#! rn=Nevok rt=958412710 rg=d.polar
~#! tid=958411708
naja, wierum es laeuft, bleibt Euch ueberlassen :-)

Ama*

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



Re^4: Geruechtekueche... (Nevok, 16. Mai 2000, 02:52:57):
~#! rn=Amaryllis rt=958428207 rg=d.polar
~#! tid=958411708
Is es nu eigentlich usus gegen Zwerge und so?
Just wondering...
Die Gladiatiorenschule die Zwerge net haben will, die dummen Spitzohren die
aus der Patsche geholfen kriegen muessen, is das Anschlusskriterium oder wie?

Nevok, den Eiselfen gleich wieder eine aufs Maul geben muessend. Was haben die
auch in nem Bergwerk verloren. Das is Zwergengebiet.

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



Re^5: Geruechtekueche... (Amaryllis, 16. Mai 2000, 02:53:42):
~#! rn=Nevok rt=958438377 rg=d.polar
~#! tid=958411708
Geh pennen, Zwerschle.

Ama*

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



Re^5: Geruechtekueche... (Apsu, 16. Mai 2000, 02:55:08):
~#! rn=Nevok rt=958438377 rg=d.polar
~#! tid=958411708
Naja solang die Zwerge fuer die Eiselfen ackern bin ich sogar einverstanden.
Sollten sich nur oefter waschen, die kleinen Stinker. ;-)

Apsu

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



Re: Geruechtekueche... (Deepblue, 16. Mai 2000, 10:31:36):
~#! rn=Amaryllis rt=958411708 rg=d.polar
~#! tid=958411708
Wieso sollte man das stoppen?
Ist doch schoen, wenn sich das Gesocks gegenseitig die Birne einschlaegt.

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



Zwergenangriff (Amaryllis, 16. Mai 2000, 19:18:46):
Da sich einige durch die Shouts belaestigt fuehlten, habe ich diese ausgebaut.
Information, wann der naechste Angriff ungefaehr stattfindet, gibt euch der
kleine Elf - interpretieren muesst ihr sie selber :-)

Das Feechen

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



Todestagebuch (Amaryllis, 16. Mai 2000, 21:08:42):
$subject wurde einer kleinen Schoenheitsoperation unterzogen (nein, kein Bug,
fuer alle Laestermaeuler :-)).
Wer schon eines hatte, kriegt es wieder, wenn er den kleinen Elfen fragt.

Ama*

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



Re: Todestagebuch (Leibniz, 16. Mai 2000, 21:10:10):
~#! rn=Amaryllis rt=958504122 rg=d.polar
~#! tid=958504122
will haben :)

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



Re: Re: Todestagebuch (Matis, 16. Mai 2000, 21:10:36):
~#! rn=Leibniz rt=958504210 rg=d.polar
~#! tid=958504122
Hol es Dir! :o)

Matis, hat schon

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



Re: Re: Todestagebuch (Amaryllis, 16. Mai 2000, 21:10:38):
~#! rn=Liara rt=958504188 rg=d.polar
~#! tid=958504122
umschauen, Zaubine, umschauen... :-)

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



Todestagebuch (Amaryllis, 17. Mai 2000, 17:27:59):
temporaer abgehaengt wegen Bugs, die bisher noch keiner finden konnte :(

Ama*

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



Re: Todestagebuch (Harakiri, 17. Mai 2000, 17:31:00):
~#! rn=Amaryllis rt=958577279 rg=d.polar
~#! tid=958577279
*SCHLUCHZ*


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



Namensstempel (Amaryllis, 17. Mai 2000, 19:38:26):
Gefixt und verschoenert. Wer ihn schon hat muss ihn sich neu beim Elfen
abholen.

Ama*

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



Todestagebuch (Amaryllis, 18. Mai 2000, 14:55:41):
scheint jetzt zu funktionieren und ist wieder dran. Wenns bei irgendjemandem
nicht geht (komischerweise gings bei den meisten, bei einigen aber nicht)
bitte sofort Meldung an mich.

Abzuholen ist das Teil am gewohnten Ort :)

Ama

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



Zwergenangriff (Amaryllis, 19. Mai 2000, 15:31:01):
Hi,

nachdem bei etlichen Spielern hier grosse Verwirrung herrscht und es
anscheinend ausser den paar, die bisher mitgemacht haben, keiner kapiert wie
es funktioniert, habe ich dem kleinen Elf nochmals zusaetzliche Informationen
gegeben. Ausserdem von mir noch ein paar Hinweise:

- ja, es ist eine reine Metzelquest.
- ein Team ist wohl notwendig, ausser man ist Profi-Zaubi oder aehnliches (hat
auch schon jemand alleine geschafft *grins*)
- man sollte sich in der Eisfestung schon bissl auskennen und den Elf mal
genau zu allem ausfragen.

So, viel Spass beim Ster^H^H^H^HMetzeln :-)

Ama*

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



Weicheier (Gor, 21. Mai 2000, 22:15:21):
Ich moechte an dieser Stelle einmal bemerken, das NIRGENDS steht, dass man
einen Npc toeten koennen muss (ALLEINE). Sucht euch ein Team und heult nicht
rum. Wem die Moorhuehner ALLEINE zu stark sind... SUCHT EUCH EIN
TEAM!!!!!!!!!!!!!!!
Ausserdem gibt es sogar fuer Abenteurer die MOeglichkeit diese Npcs zu toeten.

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



Re: Weicheier (Tatjana, 21. Mai 2000, 22:17:43):
~#! rn=Gor rt=958940121 rg=d.polar
~#! tid=958940121
Kann ich nur unterstuetzen. Die Viecher sind zwar stark, aber durchaus zu
schaffen.
Notfalls sogar alleine, fuer den der unbedingt braucht.
Ich finde das Gebiet auf jedenfall Spitze.

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



Re: Re: Weicheier (Trance, 21. Mai 2000, 22:41:55):
~#! rn=Tatjana rt=958940263 rg=d.polar
~#! tid=958940121
jo, als Chaotin hast du da gut reden! :)

Trance, kein Weichei (und mit Chaot in Reserve)

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



Re^3: Weicheier (Tatjana, 21. Mai 2000, 22:42:33):
~#! rn=Trance rt=958941715 rg=d.polar
~#! tid=958940121
Auch als Nichtchaot gibt es da die entsprechenden
Mittlechen

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



Re^4: Weicheier (Hight, 22. Mai 2000, 00:40:57):
~#! rn=Tatjana rt=958941753 rg=d.polar
~#! tid=958940121
TEAM is ne nette erfindung 

auserdem paralysiern kann jeder

mir gefaellt es da auch ganz gut 

Hight hat die moorhuehner mit hilfe erledigt

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



Zwergenangriff (Darkwing, 22. Mai 2000, 12:35:48):
Hiho,

Ich hab gehoert dass die Quest dem ein oder anderen nicht besonders gefaellt
... und dass Amaryllis und Gor kurz davor sind das alles wegen ein paar
"netten" Kommentaren wieder abzuhaengen.

Dazu kann ich nur sagen, dass es mir dort einen Riesenspass macht die Zwerge
wegzuhaun. Ist nicht gerade wie Metzeln auf der Hochebene, aber das kann ich
sonstwo haben :>
Die Quest ist optional und wers nicht mag soll es eben lassen oder auf spaeter
verschieben. Oder im Team dahin. 
Da steckt viel Arbeit drin, wenn ich dann sehe wie Leute mit der Lupe fehlende
Details bei ner Metzelquest suchen ... klasse. 

Nunja, have Fun ;)

Darkwing

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



Re^5: Weicheier (Anatol, 22. Mai 2000, 13:01:59):
~#! rn=Hight rt=958948857 rg=d.polar
~#! tid=958940121
Der zu Anfang kritisierte Punkt war nicht der, dass der NPC zu stark
ist, sondern dass er a) fuer ein *Moorhuhn* zu stark ist, b) dass die
Warnung bzgl. des Moorhuhns Freunde nicht oder nur sehr spaerlich
vorhanden war (eine Zeile im Kampf), c) dass Gildenfaehigkeiten ohne
im Spiel ersichtlichen Grund ausgeschaltet waren. Der Umstand, dass
das Biest gefundenes Fressen fuer Chaoten ist (Paralyse funktioniert
naemlich und gegen satanischen Schaden ist das Schnuckelchen auch 
noch anfaellig) wurde im Blutrausch der Kritiker (mea culpa :() 
ebenfalls deutlich gemacht, ist aber eigentlich weder wirklich korrekt
noch von Relevanz.

Amaryllis hat die Punkte a) und b) inzwischen korrigiert, den Rest
werd' ich nur noch nicht gefunden haben...

Anatol


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



Re: Zwergenangriff (Deepblue, 22. Mai 2000, 13:18:01):
~#! rn=Darkwing rt=958991748 rg=d.polar
~#! tid=958991748
Nun ja, fehlende Details sind nix feines, aber statt laut rumzumosern kann man
auch entsprechende Idee-Meldungen hinterlassen. Und Amaryllis ist ja auch ab
und an da und kann die sachen sich anschauen. Also nix abhaengen, Konstruktiv
sein...y

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



Re: Zwergenangriff (Gloin, 22. Mai 2000, 13:21:10):
~#! rn=Darkwing rt=958991748 rg=d.polar
~#! tid=958991748
Ob Metzelquest oder nicht, ein Gebiet muss auch mit Details versorgt
sein. Und zwar genuegend. Das mal grundsaetzlich.
Um es jetzt aber nicht als Angriff werten zu lassen: Nein, ich habe es
mir bisher nur oberflaechlich besehen und habe deshalb auch noch keine
Idee abgesetzt, weiss also nicht um den genauen Stand der Details.

Gloin

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



Re: Re: Zwergenangriff (Darkwing, 22. Mai 2000, 13:55:07):
~#! rn=Gloin rt=958994470 rg=d.polar
~#! tid=958991748
Oberflaechlich besehn... prima. Vielleicht schaust Du es Dir mal genauer an
bevor Du anfaengst rumzuflamen :-) 

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



Re^3: Zwergenangriff (Hood, 22. Mai 2000, 14:46:34):
~#! rn=Darkwing rt=958996507 rg=d.polar
~#! tid=958991748
er hat nicht geflamed, da stand eindeutig EIN gebiet, nicht DAS gebiet.

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



Re^6: Weicheier (Amaryllis, 22. Mai 2000, 15:16:04):
~#! rn=Anatol rt=958993319 rg=d.polar
~#! tid=958940121
Der "Rest" ist von mir noch in Ueberlegung, aber in Ueberlegung ist eben auch,
die NPCs vor der Festung einfach abzuhaengen und sich dadurch nen Haufen
Aerger zu ersparen. Die Warnungen bei den Viechern sind mehr als eindeutig
(uebrigens auch beim Schneesturm).

Was die Details anbetrifft: Das sollten die meisten vorhanden sein, ich habe
mich wirklich bemueht, die Raeume ordentlich zu beschreiben und mein Repfile
weist bisher auch nur sehr wenig missing details auf. Die Raeume etc. waren
mir eben wichtig, obwohl es "nur" eine Metzelquest ist.

Ansonsten sollten sich manche Spieler vielleicht mal ueberlegen, mich direkt
mal anzusprechen, bevor sie sofort den RM zuheulen. Ich find es nicht grad
gelungen, wenn ich das dann erst hintenrum erfahre und deswegen dumm dastehe -
zumindest ein CC an mich koennte da ruhig sein.

Ama*

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



Re^7: Weicheier (Ark, 22. Mai 2000, 22:14:27):
~#! rn=Amaryllis rt=959001364 rg=d.polar
~#! tid=958940121
Ts, liebe Fee, Du hast das Konzept des "Mobbings" wohl nicht verstanden. Aber
warte, ich erteile da gerne Entwicklungshilfe ;^)



              *** ARK * the * Magnificent ***


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



Re^8: Weicheier (Ark, 22. Mai 2000, 22:24:47):
~#! rn=Ark rt=959026467 rg=d.polar
~#! tid=958940121
Ausserdem hat Zook angeschlossen, Beschwerden an ihn *duck*


              *** ARK * the * Magnificent ***


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



Re^6: Weicheier (Tatjana, 23. Mai 2000, 00:33:54):
~#! rn=Anatol rt=958993319 rg=d.polar
~#! tid=958940121
Irgendwie ist das mal wieder eine typische Zauberereinstellung.
Wie stark bitte schoen darf ein Moorhuh sein? Genauso stark, dass ein
mittelmaessiger Zauberer es ohne zu tanken schafft? 
Dann bitte liebe Magier, wertet den Weghier ab, da muss der arme Anatol ja
sonst 2 mal tanken gehn
Und die vielen schoenen Spezialfaehigkeiten der Zauberer. Oh Gott,
da gibt es wirklich ein Monster, dass eine davon blockiert. Skandaloes.
tp 32
nw
betrete portal
4 sofort aufwerten.
Mir kommen echt die Traenen.
Oder wie Lug sagen wuerde Heul doch Anatol

P.S. Ich weiss, Objektivitaet ist nicht gerade deine Staerke, aber
vielleicht versuchst du mal dich an das ein oder andere Monster zu
erinnern, dass die Spezialfaehigkeiten anderer Gilden blockt

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



Re^7: Weicheier (Hood, 23. Mai 2000, 00:35:24):
~#! rn=Tatjana rt=959034834 rg=d.polar
~#! tid=958940121
ich weiss nicht, an welcher stelle du anatol objektivitaet absprichst,
aber zumindest kann man deinen artikel (genauso wie den meinigen hier)
keinesfalls mit konstruktivitaet in konjugation bringen *g*

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



Re^7: Weicheier (Matis, 23. Mai 2000, 00:36:44):
~#! rn=Tatjana rt=959034834 rg=d.polar
~#! tid=958940121
Ohne auf die Kritikpunkte ueberhaupt einzugehen, denn die sind - wie
fast immer - Ansichtssache: eine Schwaeche laesst sich nicht durch 
andere Schwaeche rechtfertigen. Das sag ich unter der Annahme, dass
Du den Fakt, dass Paralyse mittlerweile leider viel zu oft abgewehrt
wird, als Schwaeche ansiehst.

Matis

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



Re: Zwergenangriff (Lug, 23. Mai 2000, 02:08:54):
~#! rn=Darkwing rt=958991748 rg=d.polar
~#! tid=958991748
Aeh Darky?

Isset denn wie Gardies hauen?

Interessiert
Lug

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



Re^7: Weicheier (Lug, 23. Mai 2000, 02:13:17):
~#! rn=Tatjana rt=959034834 rg=d.polar
~#! tid=958940121

Es ist eine glatte Luege, dass ich sagen wuerde: Heul doch Anatol. Ich wuerde
naemlich aeussern: Loesch Dich Anatol. Anatol wiederum, wuerde sagen: Heul
doch Anatol, was Anatol im Fall von Anatol aber wohl auch nicht tun wuerde...

Korrekturanmerkung 1
Lug

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



NPCs in Zwergenangriff (Tsunami, 23. Mai 2000, 03:02:05):
Wegen dem Gesellenstueck von Amaryllis (das uebrigens sehr gelungen ist!!):
ich habe die Diskussion in der MPA, viele 'teile-mits' und diverse Mails an
mich verfolgt. 

BERUHIGT EUCH!!

Um allfaelligem Unmut vorzubeugen: es hat im Vorfeld ein paar 
Missverstaendnise zwischen Amaryllis und mir gegeben. Einige NPCs wurden
nach der Abnahme durch mich nicht so geaendert wie gewuenscht. Dieser Faux pas
wird nun von Amaryllis behoben. Und nein, die Zwerge bleiben so, wie sie sind.

Welche NPCs das sind, koennt ihr euch denken.

Tsunami.

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



Re: Re: Zwergenangriff (Darkwing, 23. Mai 2000, 10:18:38):
~#! rn=Lug rt=959040534 rg=d.polar
~#! tid=958991748
nicht ganz Lug. Zwerge scheppern so schoen wenn sie auseinanderfliegen -
vieeeel besser als Gardies :)

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



Re^8: Weicheier (Vector, 23. Mai 2000, 11:33:11):
~#! rn=Hood rt=959034924 rg=d.polar
~#! tid=958940121
Hey, Hood,
solche Artikel wie np.34 von Tatjana kommentiert man doch nicht.
Solche geistigen "miss"-erguesse sprechen doch fuer sich selber.
Lesen, stehen lassen und sich drueber kaputt-lachen.

--Vector-- (sich-kaputt-lachend)

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



Re: NPCs in Zwergenangriff (Amaryllis, 23. Mai 2000, 16:33:08):
~#! rn=Tsunami rt=959043725 rg=d.polar
~#! tid=959043725
Die genannten NPCs sollten jetzt alle soweit geaendert sein, nur  zur Info.

Ama*, die hofft dass jetzt ihre Nerven nicht mehr mit Geheule und Geschimpfe
belastet werden.

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



Re^5: Weicheier (Yendi, 23. Mai 2000, 18:27:09):
~#! rn=Hight rt=958948857 rg=d.polar
~#! tid=958940121
Paralysieren kann jeder, Hight?
Da muss ich wohl was verpasst haben.

YTY


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



Re^6: Weicheier (Amaryllis, 23. Mai 2000, 19:36:19):
~#! rn=Yendi rt=959099229 rg=d.polar
~#! tid=958940121
jepp, hast Du :-)

Ama*

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



Re^6: Weicheier (Belgariad, 23. Mai 2000, 19:39:53):
~#! rn=Yendi rt=959099229 rg=d.polar
~#! tid=958940121
Bei deinem Level haste wohl noch nicht viel verpasst. :)

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



Quabbelschleimblubgrotte (tolles Wort :) ) (Tsunami, 24. Mai 2000, 02:40:35):
Huhu Metzler,

ich habe die Quabbelschleimblubgrotte etwas umgestrickt. Die Quabbelschleim-
blubs halten einem jetzt nicht mehr so oft fest und man kommt nun besser an
die Schatzkiste heran.

Viel Spass,

Tsunami

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



Re: Quabbelschleimblubgrotte (tolles Wort :) ) (Lug, 24. Mai 2000, 02:41:43):
~#! rn=Tsunami rt=959128835 rg=d.polar
~#! tid=959128835

SUPI!

Begeistert
Lug

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



ich vermisse was :) (Ashan, 27. Mai 2000, 17:28:58):
Hi,
ich war in den vergangenen Tagen mehr oder weniger abwesend .. und nachdem ich
nun d.polar gelesen habe vermisse ich eines:
Ein Grats an Amaryllis zum Neuen Gebiet 
Ich habe schon im Team Zwerge gejagt, und auch ein Moorhuhn um die Ecke
gebracht. Klar sind die Viecher hart, aber wer bin ich um darueber zu jammern.
Also,  nochmal: Grats. Ich freue mich dass die Polarregion waechst und es
wieder ein paar NPCs mehr zum metzeln gibt.

Ashan

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



magiewesen (Tsunami, 13. Jun 2000, 02:31:08):
Bis ich alles umgestrickt habe, gibts keinen Zahn.
Sollte morgen (abend) wieder laufen.

Tsunami.

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



Magiewesen-Zahn (Tsunami, 13. Jun 2000, 20:00:28):
OK, der Zahn ist wieder angeschlossen.
Die Verteilung funktioniert nun aehnlich wie bei anderen euch bekannten
Uniques. Ich bin gespannt auf eure Meinung. Wenn ihr noch Ideen dazu habt,
emailt mir.

Viel Spass, 

Tsunami.

P.S. nein, weder an den Werten vom Wesen noch an Zahn wurden
'herumgeschraubt'.


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



Re: Magiewesen-Zahn (Lyra, 14. Jun 2000, 09:36:12):
~#! rn=Tsunami rt=960919228 rg=d.polar
~#! tid=960919228
'herumgeschraubt'? Ich stlle mir gerade vor, wie eine Horde Tinkergnome ueber
den Zahn herfallen und dran 'herumgeschrauben' :-)

Lyra sucht auch schon mal einen Schraubenschluessel

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



Re^5: Weicheier (Frerin, 16. Jun 2000, 13:01:19):
~#! rn=Hight rt=958948857 rg=d.polar
~#! tid=958940121
Wie die Moorhuehner metzelt wer im Team?
Das sind doch nun leider nur noch Luschen .. die mache ich immer nur alleine
..
ausser bei besonderen Umstaenden *eg*

Frerin .. der diesen NPC staerker will

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



Todestagebuch (Amaryllis, 16. Jun 2000, 13:59:19):
Hi,

in $subject war noch ein logischer Bug, drum nicht wundern, wenn die Eintraege
jetzt anders aussehen - aber ab jetzt sollten sie hoffentlich so bleiben :)

Ama*

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



Es geschah letzte Nacht ... (Tilly, 18. Jun 2000, 17:49:29):
dass in ein Haus in einem kleinen Waeldchen im Polar eingebrochen
wurde. Was geschah, ist noch nicht ganz sicher. Aber es wartet eine
hilflose Krankenschwester auf maechtige Hilfe von unerschrockenen
Abenteurern (oder anderen). Es stimmt mich sehr nachdenklich, dass
ausgerechnet ein Chaot sich der Sache annahm und sie publik macht,
aber das ist eine andere Geschichte ...

Gruss an alle Rentner!

                             - Ein Zivi -


p.s.:   Tillys chaotischer Gruss geht an Lurchi, Beauty, Liara, Rani,
        Tsunami, Zook und Zephyr, die sich mutig durchgetestet haben!
        Danke >:))

p.p.s.: Und wehe, er findet noch einen Eintrag ins RepFile von Dir, Zephyr.
        Dann gibts keine Kekse mehr ;-)

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



Re: Es geschah letzte Nacht ... (Dieder, 18. Jun 2000, 23:32:35):
~#! rn=Tilly rt=961343369 rg=d.polar
~#! tid=961343369
Hilflose Krankenschwwester? Pffft... da lob ich mir doch meine emsige und
knackige Pflegerin :)

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



Re: Es geschah letzte Nacht ... (Makish, 18. Jun 2000, 23:50:08):
~#! rn=Tilly rt=961343369 rg=d.polar
~#! tid=961343369
LobLobLob !
Eine schoene Quest.. so herzhaft gelacht...
Schoene Details...
Jaaa ! Mehr davon *kicher*

So macht Questen wieder Freude *freu*

Makish, nur mal kurz ausgelassen...

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



Willkommen Sting! (Tsunami, 23. Jun 2000, 21:10:54):
Willkommen Sting, neuer Regionsmitarbeiter in Polar!
Moegest Du viele tolle Sachen basteln. Wir freuen uns darauf.

Tsunami

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



Re: Willkommen Sting! (Ark, 23. Jun 2000, 21:15:11):
~#! rn=Tsunami rt=961787454 rg=d.polar
~#! tid=961787454
Ts, dabei wirbt Rikus doch ab und an immer wieder. Da sieht man mal wieder,
was fuer ein Kluengel die Polar-/Chaosmagier doch wirklich sind. Long live our
plains ...


              *** ARK * the * Magnificent ***


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



Re: Re: Willkommen Sting! (Sting, 23. Jun 2000, 21:16:13):
~#! rn=Ark rt=961787711 rg=d.polar
~#! tid=961787454
Das ich jetzt Polarmitarbeiter bin, heisst ja noch lange nicht das ich auf
ewig nur in Polar und bei Chaos was machen werde :)

Danke fuer die Begruessung :)
Sting

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



Re^3: Willkommen Sting! (Ark, 23. Jun 2000, 21:18:59):
~#! rn=Sting rt=961787773 rg=d.polar
~#! tid=961787454
HA, das ist ja noch verraeterischer, also wohl nur den Weg des geringsten
Widerstands gewaehlt, was? Du, Du, Chaot, Du!


              *** ARK * the * Magnificent ***


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



Re^4: Willkommen Sting! (Paracelsus, 23. Jun 2000, 21:22:35):
~#! rn=Ark rt=961787939 rg=d.polar
~#! tid=961787454
Ach Ark. Lass' den armen Sting doech erstmal ein wenig im Polar ueben.
Anschliessend kann er ja immer noch in eine anstaendige Region (wie
z.B. den Wald) wechseln.

Paracelsus.

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



Re^5: Willkommen Sting! (Ark, 23. Jun 2000, 21:26:45):
~#! rn=Paracelsus rt=961788155 rg=d.polar
~#! tid=961787454
*Freu* Fangen wir nen Thread an "Welche Region ist die Beste?" -> also meine
:-)


              *** ARK * the * Magnificent ***


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



Re^6: Willkommen Sting! (Paracelsus, 23. Jun 2000, 21:28:10):
~#! rn=Ark rt=961788405 rg=d.polar
~#! tid=961787454
Nee, brauchen wir nicht. Ist eh der Wald. ]:->

Paracelsus.

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



Re^7: Willkommen Sting! (Ark, 23. Jun 2000, 21:32:16):
~#! rn=Paracelsus rt=961788490 rg=d.polar
~#! tid=961787454
Ok, das war's dann wohl. Wer schreibt die Quest, die wo da die Orks mit
Kettensaegen im Wald herumbummeln?


              *** ARK * the * Magnificent ***


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



Re^8: Willkommen Sting! (Tsunami, 24. Jun 2000, 00:35:24):
~#! rn=Ark rt=961788736 rg=d.polar
~#! tid=961787454
Sting hat gewaehlt. Abgewogen, verglichen, abgewogen und nochmals verglichen.
Er hat weise gewaehlt. Oder ganz einfach: *das Richtige*.

Tsunami, verteilt 'Polar, find ich gut!'-Buttons

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



Re^9: Willkommen Sting! (Tiamak, 24. Jun 2000, 00:36:36):
~#! rn=Tsunami rt=961799724 rg=d.polar
~#! tid=961787454
Wer haette auch anders gewaehlt, wenn Du mit gezueckter Waffe hinter einem
stehst, um bei der schweren Entscheidung zu helfen?


Tiamak

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



Re^10: Willkommen Sting! (Tsunami, 24. Jun 2000, 00:37:35):
~#! rn=Tiamak rt=961799796 rg=d.polar
~#! tid=961787454
Ich bin halt 'hilfsbereit'.

Tsunami, verteilt auch 'Polar, das will ich!'-Buttons.

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



to artikel 17 (Muadib, 24. Jun 2000, 22:25:40):
~#! rn=Ark rt=961788736 rg=d.polar
~#! tid=961787454
ui ne quest mit die wo da die ;) wann ? *geifer* 

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



Beim Aufraeumen ... (Tilly, 26. Jun 2000, 22:45:00):
habe ich doch tatsaechlich etwas gefunden, was ich schon vor
einiger Zeit dem knuffigen Kjarazzi geben wollte. Er war hoch
erfreut bei meinem Besuch und nahm mein Geschenk dankend an.

Jagt es ihm wieder ab, zeigt Mut und Tapferkeit! Traut auch,
oder auch nicht. Alle schlechten Geruechte ueber Para-Moulokin
sind erstunken und erlogen (die Guten natuerlich nicht >:).

Chaotischer Gruss!
                        - Tilly -

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



Neueroeffnung (Seewirt, 17. Jul 2000, 20:31:58):
Hi Leute 
Hiermit moechte ich kundtun, das ich im Bereich des Polars meine Kneipe 
eroeffnet hab. Sie befindet sich in der Naehe der Stadt Sirajan.
Ich beantworte gerne Fragen zu meiner Umgebung und bin bei guten Vorschlaegen
auch geren Bereit meinen Speiseplan zu erweitern.

Seewirt

P.s.: wenn ich was nicht wissen sollte sagt mir das ich mach mich dann schlau
bzw bring den Trollen das bei.


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



Neuer Regionsmitarbeiter. (Tsunami, 17. Jul 2000, 20:34:54):
Herzlich Willkommen, Fizban, neuer Regionsmitarbeiter Polar.

Sein neues Gebiet findet ihr in der Naehe der Eisprinzessin.
Viel Spass damit,

Tsunami

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



nur ein Tipp (Fizban, 18. Jul 2000, 23:47:42):
Also da das zu einiger Verwirrung gefuehrt hat der Raum in der Zollstation
oben ist _nicht_ mein Workroom. Es ist ein stink normaler Raum.
Gruss Fizban

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



interessante Information (Tsunami, 19. Jul 2000, 03:05:15):
In im Verwaltungsbuero der Eismine wurde eine interessante Tafel
installiert.

i.A. Tsunami

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



Sooo ;) (Gor, 11. Aug 2000, 15:31:13):
Hui-Buhs Geschenk funktioniert jetzt auch.

Have fun!

Gor

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



Bug in den Speeren (Gor, 24. Aug 2000, 15:02:33):
Hiho ich musste eben leider alle Speer aufgrund eines Bugs destructen...
Sorry.
Aber die Elfen haben bestimmt wieder neue. ;)

Gruessle Gor

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



Schreckensdrache (Tsunami,  6. Sep 2000, 23:06:29):
Hiermit ist der Schreckensdrache wieder freigegeben. Diejenigen, die ihn
vor kurzem versucht haben zu metzeln, wissen, worum's geht (Zook toetet Gnome,
statt Drache toetet Gnome... :)) )

P.S. ich habe seine Werte nochmals leicht(!) nach unten korrigiert (nur die
vom Drachen, nicht von seinen Koepfen).

Tsunami. Fleissig.

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



Polarbutton (Tsunami, 20. Sep 2000, 01:44:51):
Die Polarbuttons wurden von emsigen Eiselfen eingesammelt. Neue gibts wie
immer in der Eismine zu holen. Viel Spass damit. Ihr koennt euren
Lieblings-Polar-Text nun z.B. fixieren.

Tsunami. Chefbuttonbastler.

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



Eisfestung kurzfristig geschlossen (Tsunami, 22. Sep 2000, 23:01:42):
Hallo Profimetzler, 

Bis Gor wieder gruenes Licht gibt, bleibt die Eisfestung kurzfristig
geschlossen. Die Zwerge verhalten sich im Moment etwas seltsam, deshalb 
bleibt die Tuer zu.

Tsunami. Chefschliesser.

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



Re: Eisfestung kurzfristig geschlossen (Amaryllis, 22. Sep 2000, 23:32:08):
~#! rn=Tsunami rt=969656502 rg=d.polar
~#! tid=969656502
Hi,

aus dem gleichen Grund hab ich den Zwergenangriff im Moment deaktiviert,
sorry. Ich weiss noch nicht woran es liegt, vor allem, weil die Quest jetzt
viele Monate lang gut lief...
Ich geb Bescheid wenns wieder tut :-)

WARNUNG: Nach Crash/Reboot kann der Angriff theoretisch wieder automatisch
loslaufen, fuer evtl. Bugs, Lars-Besuche o.ae. uebernehme ich in diesem Fall
keine Verantwortung!

Amaryllis, bemueht, den Bug schnell zu beheben.

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



Re: Re: Eisfestung kurzfristig geschlossen (Ark, 22. Sep 2000, 23:52:23):
~#! rn=Amaryllis rt=969658328 rg=d.polar
~#! tid=969656502
Zwerge verhalten sich immer seltsam, besonders, wenn es darum geht, dummen
Elfen die Loeffel noch laenger zu ziehen.


              *** ARK * the * Magnificent ***


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



Eisfestung + Zwergenangriff... (Amaryllis, 24. Sep 2000, 22:16:55):
... sind wieder dran, bei Problemen (insbesondere wenns um die Raeume oben auf
der Mauer geht!) bitte _sofort_ Meldung, aber eigentlich sollte jetzt alles
klar sein :-))

Gruss,

Ama*

PS: Dank an diejenigen, die mir dabei geholfen haben.

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



Neues? :) (Gor,  5. Okt 2000, 11:26:05):
Man munkelt, das von Zeit zu Zeit Spieler im Innenhof der Festung
verschwinden. Man koennte dem ja einmal auf den Grund gehen und vor allen
Dingen saemtliche Warnungen ernst nehmen. Viel Spass beim Metzeln und schaut
immer, dass euer Ruecken gedeckt ist.

Gor

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



Todestagebuch (Amaryllis,  5. Okt 2000, 13:32:35):
$subject wurde debugt (den Bug duerften nur wenige "Vielsterber" bemerkt haben
:-)).

Ausserdem wurden 2 neue Funktionen hinzugefuegt. Danke den Spielern  fuer die
Anregung.

Gruss,
Ama*

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



Namensstempel (Amaryllis,  5. Okt 2000, 15:04:41):
Hiho,

da es teilweise sehr spielerfreundliche Gegenden gibt, in denen die
Ausruestung beim Tod schneller zerstoert wird, als man aus der Sequenz kommt
und sie wieder einsammeln kann, hab ich auf mehrfachen Spielerwunsch in den
Stempel noch eine Moeglichkeit eingebaut, dass man - vergleichbar dem
'erlaube' in den Seherhaeusern - auch anderen Spielern erlauben kann, eigene,
bestempelte Objekte aufzuheben.

Viel Spass,
Ama*

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



Re: Neues? :) (Gor,  6. Okt 2000, 09:27:08):
~#! rn=Gor rt=970737965 rg=d.polar
~#! tid=970737965
Leider muss ich das gute Stueck nochmal fuer einige Zeit abhaengen. Es gibt
noch einiges zu tun...

Gor

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



Umzug (Gor, 19. Okt 2000, 02:46:45):
Den Schatten gefiel es nicht mehr.... deshalb haben sie von ihrem Makler eine
neue Dimension bekommen..

Gor

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



Hehe :) (Gor,  7. Nov 2000, 00:15:11):
Gor empfiehlt 'liste' und vorsichtiges Forschen.

Falls es irgendwelche Probleme mit Syntaxen oder aehnlichem gibt, bitte direkt
eine Mail an mich. 

Die Katakomben sind btw. auch wieder offen.

Viel Spass

Gor

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



Zwergenangriff (Amaryllis,  7. Nov 2000, 01:40:35):
$subject wegen Bugs temporaer deaktiviert.

Gruss,
Amaryllis

PS: Nein, ist nicht meine Schuld. Bedankt Euch bei denjenigen, die Gilden
aendern ohne entsprechende Informationen herauszugeben.

Amaryllis, wird dann einige Zwerge wohl gildenmaessig umstellen - funktioniert
gut und erspart nen Haufen Aerger.

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



Re: Zwergenangriff (Anatol,  7. Nov 2000, 01:41:55):
~#! rn=Amaryllis rt=973557635 rg=d.polar
~#! tid=973557635
Zwerg Nase faellt unter den wuchtigen Hieben von einem Zwerg.
...
Ein chaotischer Zwerg faellt unter den wuchtigen Hieben von einem Rudel
Zwergenkinder.

Guessed right? ;)
Anatol

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



Re: Re: Zwergenangriff (Yendi,  7. Nov 2000, 11:27:19):
~#! rn=Anatol rt=973557715 rg=d.polar
~#! tid=973557635
Muesste das nicht heissen "... faellt unter den wuchtigen Hieben eines Rudels
Zwergenkinder" bzw. "...eines Zwergs"?

YT,
Konrad Yendi Duden


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



Wow! Das gibts doch nicht!! (Tilly,  7. Nov 2000, 22:33:21):
In aller Stille brach vor einiger Zeit eine geheime Expedition neugieriger
Magier und Spieler in das noerdliche Polargebiet auf, um Geruechten nachzu-
gehen, die von einem vergessenen Dorf berichteten.

Ausgemergelt von den zahlreichen Entbehrungen kaempfte sich diese Gruppe
durch Schnee und Eis und sah ihre Muehen schlussendlich doch vom Erfolg
gekroent.

Hoeret, staunet, sehet:

Das friedfertige Voelkchen der Innuit bewohnt ein kleines Dorf auf Chaechma
Briim'tar. Neugierig warten sie auf den Besuch zahlreicher Abenteurer, die
ihnen bei einigen kleinen Problemen evtl. behilflich sein koennten.

Der aufrichtige Dank des Expeditionsleiters gilt an dieser Stelle vor
allem Liara, Zephyr, Xenada, Jenandra, Firehawk, Cinderella, Tsunami, Borka,
Armitage, Thor und Zook, die sich um die Entdeckung des Dorfes wirklich ver-
dient gemacht haben.

Viel Spass, und nehmt Euch Zeit mit :-)
                                              - Tilly - 

p.s.: 1) Die Auszeichnung 'Erzmagier der Woche' geht diesmal an Zook ;-)
      2) Die Auszeichnung 'Regionsmagier der Woche' geht an Tsunami :)
      3) Im Zuge dieser Entdeckung hat ein hier nicht naeher benannter
         Schwarm Wildgaense beschlossen, dieses Dorf mit in die 'Flugroute'
         aufzunehmen
      4) Eiskrieger sind nicht schwach
      5) Lob (oder auch Beschwerden, Anregungen) bitte per Mail an mich

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



Re: Wow! Das gibts doch nicht!! (Tsunami,  8. Nov 2000, 22:19:51):
~#! rn=Tilly rt=973632801 rg=d.polar
~#! tid=973632801
Der Titel sagt es bereits. Ich habe das gleiche gedacht, als ich mich auf
die Suche nach diesem vergessenen Dorf gemacht hatte. 

Das Polargebiet ist in der Tat um eine ganz tolle Neuerung reicher geworden.

Ich wuensch euch allen ebensoviel Spass beim Forschen, wie ich hatte.

P.S.:  1) Die Auszeichnung 'Magier des Monats' geht an Tilly. :)
       2) Eiskrieger sind nicht schwach.

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



Re: Re: Wow! Das gibts doch nicht!! (Tsunami,  8. Nov 2000, 22:26:43):
~#! rn=Tsunami rt=973718391 rg=d.polar
~#! tid=973632801
Es geht noch weiter ;)

Man koennte in der Tat meinen, das gibt's doch nicht. Aber das Polargebiet
ist um noch eine weitere Attraktion reicher geworden. Eine, wo das Blut nur
so spritzt und Eingeweide massenweisse auf den Boden klatschen. Wetzt eure
Klingen und blast das Kriegerhorn (Zauberer duerfen alternativ auch mit ihrem
Zauberstab wedeln).

Ein Toast auf Gor, 'Magier des naechsten Monats'.

Tsunami, stolz auf seine vielen, hochmotivierten Polar-Mitarbeiter.

P.S.   1) Polar rulez.
       2) Polar ist toll.
       3) Polar. Find ich gut.

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



Re^3: Wow! Das gibts doch nicht!! (Grimmborn,  8. Nov 2000, 22:32:39):
~#! rn=Tsunami rt=973718803 rg=d.polar
~#! tid=973632801
Und die Fragen des Monats sind:

1) Wieviel ist Dir fuer diese Lobeshymnen gezahlt worden?
2) Welche Drogen nimmst Du (und was kosten sie *auch haben will*)?
3) Wer sponsort Deine Kaelteschutzkleidung?

GdA

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



Re^4: Wow! Das gibts doch nicht!! (Tsunami,  8. Nov 2000, 22:35:43):
~#! rn=Grimmborn rt=973719159 rg=d.polar
~#! tid=973632801
1) nix, bin von Natur aus freundlich
2) die Droge heisst Kalifornien (bin immer guter Laune, da hier das Wetter
   klasse ist -- renne immer noch in kurzen Hosen rum)
3) siehe 2) wieso brauch ich Kaelteschutzkleidung?

Tsu*, munter.

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



Re^4: Wow! Das gibts doch nicht!! (Firehawk,  8. Nov 2000, 22:36:43):
~#! rn=Grimmborn rt=973719159 rg=d.polar
~#! tid=973632801
Die Antworten des Monats sind:

1) Wieso sollte er Geld kriegen, er macht doch Werbung fuer die eigene Region.
3) Der Laden im Innuitdorf.

Firehawk

Ps: Tillys Gebiet ist toll.
PPS: Wirklich.

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



Re^5: Wow! Das gibts doch nicht!! (Grimmborn,  8. Nov 2000, 22:37:19):
~#! rn=Tsunami rt=973719343 rg=d.polar
~#! tid=973632801
1) Falls wir uns begegnen sollten: weiche mir aus oder warne mich.
2) Nicht richtig waehlen koennen, aber kurze Hosen. Schon klar.
3) Polar in kurzen Hosen? Naja, muss jeder selber wissen.

Grimmborn der Atheist

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



Re^6: Wow! Das gibts doch nicht!! (Tsunami,  8. Nov 2000, 22:39:58):
~#! rn=Grimmborn rt=973719439 rg=d.polar
~#! tid=973632801
1) Du siehst mich schon von weitem, wenn ich auf dich zurolle (bin etwa
   10-30 Meter hoch, weiss schaeumend und ziemlich laut. Und du weichst mir
   besser aus. Noch besser, du FLUECHTEST.
2) Ich waehle Vanille-eis.
3) Ich weiss es.

Tsu*, vergnuegt.



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



Re^7: Wow! Das gibts doch nicht!! (Grimmborn,  8. Nov 2000, 22:45:59):
~#! rn=Tsunami rt=973719598 rg=d.polar
~#! tid=973632801
1) Keine Sorge, ich weiche aus. Mit Leuten, die sich fuer eine Lawine 
   halten (oder whatever) diskutiere ich doch nicht. Alle mir bekannten
   psychiatrische Krankenschwestern sind mit prominenten Linuxkernelhackern
   verheiratet. Nicht mein Job.
2) Ah, so einer bist Du. Danke fuer die Warnung. Pistazie rulez.
3) Gruss an Descartes (ach nee, dafuer war noch "denken" notwendig).

Grimmborn der Atheist (ein Glueck dass das hier nicht meine Rubrik ist)

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



Re^8: Wow! Das gibts doch nicht!! (Tsunami,  8. Nov 2000, 22:51:23):
~#! rn=Grimmborn rt=973719959 rg=d.polar
~#! tid=973632801
1), 2), 3) sind mal wieder leicht vom Topic abgekommen ;)
4) viel Spass bei den neuen Quests

Tsunami. Traegt einen Polar-Button.

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



Re^9: Wow! Das gibts doch nicht!! (Grimmborn,  8. Nov 2000, 22:57:54):
~#! rn=Tsunami rt=973720283 rg=d.polar
~#! tid=973632801
1) etc. Was ist "topic"? Das mud ist in .de, red' gefaelligst deutsch in 
   dieser online community.
4) Wozu? Ich bin Magier.

GdA

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



Re^8: Wow! Das gibts doch nicht!! (Yendi,  9. Nov 2000, 14:46:55):
~#! rn=Grimmborn rt=973719959 rg=d.polar
~#! tid=973632801
1) Aber der Begriff "Tsunami" sagt Dir was, ja? So a la "richtig richtig
RICHTIG   G R O S S E    WELLEN...

ObPolar: Ein bisschen spaet jetzt, ich weiss, aber schreibt sich Inuit nicht
mit nur einem "n"? Zumindest habe ich den Begriff bis jetzt in keiner Sprache
mit Doppel-n transkribiert gesehen.

YTY



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



Re^9: Wow! Das gibts doch nicht!! (Tilly,  9. Nov 2000, 14:49:43):
~#! rn=Yendi rt=973777615 rg=d.polar
~#! tid=973632801
*seufz*

Ja,
Innuit schreiben sich im RL mit einem n. Aber wir sind nicht im RL hier :)

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



Re^11: Wow! Das gibts doch nicht!! (Anatol,  9. Nov 2000, 14:54:54):
~#! rn=Yendi rt=973777963 rg=d.polar
~#! tid=973632801
Ja, finde ich auch. Der eine oder andere NPC dort ist wirklich aus dem
wahren Leben gegriffen. Ich finde, das geht zu weit, vie zu weit.

Anatol, Den-Ohne-Das-E-In-Der-Mitte angrinsend

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



Re^12: Wow! Das gibts doch nicht!! (Householder, 10. Nov 2000, 19:21:02):
~#! rn=Anatol rt=973778094 rg=d.polar
~#! tid=973632801
hm meines wissens haben tsunamis bis kurz vor ihrem ende nur eine hoehe von
einigen dezimetern :-)
HH klugscheissend

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



Re^13: Wow! Das gibts doch nicht!! (Grimmborn, 10. Nov 2000, 19:26:24):
~#! rn=Householder rt=973880462 rg=d.polar
~#! tid=973632801
Kommt auf den Tsunami an. Der letzte, wo sie auf Hawaii die halbe Insel auf
die Berge gescheucht hatten, hatte auch am Ufer eine Hoehe von wenigern
Dezimetern. 

Aber "Naturkatastrophe" passt schon...

GdA

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



Re: Wow! Das gibts doch nicht!! (Tilly, 17. Nov 2000, 20:51:47):
~#! rn=Tilly rt=973632801 rg=d.polar
~#! tid=973632801
Moin moin,

aufgrund eines kleinen Fehlers hat Soeren beschlossen, das kommende
Wochenende zu verreisen und alle seine Speere mitzunehmen. Hoffen
wir mal, dass er den Fehler findet :-)

Neuigkeiten dazu an dieser Stelle wenn er wieder da ist.

 - Tilly - 

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



Namensstempel (Amaryllis, 22. Nov 2000, 17:49:43):
Hiho,

$subject muss neu geholt werden... *hust*

Ama*

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



Zwergenangriff (Amaryllis, 23. Nov 2000, 23:55:06):
$subject ist wieder dran.

Ausserdem gibts ein paar wenige neue Raeume an der Mauer.

Ama*

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



Soooooooooo (Gor, 29. Nov 2000, 02:37:32):
Hiho,
ich moechte hier an dieser Stelle einige Namen nennen, um eventuell etliche
Missverstaendnisse und Geruechte aufzuklaeren.

Zu Testspielern meiner Quest:

Mesirii mit 6 vollen Questdurchlaeufen.
Del mit 6 vollen Questdurchlaeufen und vielen Korrekturlesestunden.
Arancia mit einem Questdurchlauf.
Matis mit aehm sagen wir einem halben ;) (wegen Urlaub abgebrochen)
Cisou und Golas gaben vielleicht etwas frueh wegen einigen
Umbauarbeiten auf.

Ja, ich habe mir die Freiheit nach einem ganzen Jahr proggen herausgenommen
und die Quest als Erster gespielt. Was unter anderem auch dazu diente einige
letzte Bugs aufzudecken. Dabei habe ich weder irgendwen behindert oder einem
ehemaligen Testie geholfen.


Gor hat die Schnauze voll!

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



neuerung (Fizban, 29. Nov 2000, 19:51:17):
Hi
Nein Die Waechter sind staerker und sie verlangen nicht mehr Zoll aber ich hab
mir von Seewirt berichten lasen, dass jetzt Elche westlich seiner Kneipe
rumlaufen, zu finden sind.
i.A.: fuer Seewirt Fizban (der ueber seinen Rechner flucht)

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



Re: Elch (Fizban, 30. Nov 2000, 10:58:00):
sorry ich hatte ein klitze kleine Kleinigkeit vergessen gestern Abend deswegen
musst ich noch mal den Ausgang deaktivieren jetzt ist er offen und es sollte
alle in ordnung sein.
Fizban
P.s.: Danke Rikus

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



Morpheus & Co (Gor,  1. Dez 2000, 13:29:24):
Hiho ihr lieben Metzler.
a) Man bekommt das Kamar wirklich nur noch sehr selten.
b) Wenn man stirbt ist es jetzt auf alle Faelle weg.

Gruss Gor

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



aeh... (Amaryllis,  1. Dez 2000, 18:41:13):
...durch einen irreparabel dummen Befehl *hust* sind eure Orkanspeere
weg...muesst also neue holen.

Ama*, in die Ecke stehend.

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



Re: aeh... (Gor,  2. Dez 2000, 14:24:29):
~#! rn=Amaryllis rt=975692473 rg=d.polar
~#! tid=975692473
Schreib dir halt mal nen Ali du Seppl ;)

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



Questbelohnung (Gor, 14. Dez 2000, 16:05:47):
Ihr solttet die Belohnung nochmal etwas genauer unter die Lupe nehmen.
Syntaxschwierigkeiten sollte es somit nicht mehr geben.

Gruss Gor

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



Neulich bei den Innuit (Tilly, 18. Dez 2000, 00:22:03):
Moin moin,

scheinbar hat die lange Abwesenheit von Soeren doch etwas Gutes bewirkt.
Denn nun ist er erholt und ausgeruht wieder hier. Und er hat Euch auch
etwas mitgebracht, naja, nichts Neues.

Sondern etwas, das nun hoffentlich ohne Fehler laeuft :-)

Gruss,
              - Tilly - 

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



Bierchen und geloeschte Files (Tsunami, 10. Jan 2001, 02:27:01):
Hallo liebe Mitmudder,

leider hat Bierchen, ohne mich vorher zu informieren, alle 'seine' Files
in der Polarregion geloescht. Es waren zwar nur sehr wenige, aber unter
ihnen war ein Raum, in denen sich mehrere Seherhaeuser befinden, die nun
nicht mehr erreichbar waren, bis das Problem von einem Erzmagier geloest
wurde (schnell einen neuen Raum schreiben, und unter gleichem Namen an die
entsprechende Pfadstelle gelegt). Ich moechte mich an dieser Stelle bei den
EMs fuer das schnelle Eingreifen bedanken -- Onkel Zook ist halt wirklich
lieb und nett. 

Ich moechte mich auch bei allen Spielern fuer den entstandenen Schaden
entschuldigen, waere ich von Bierchen direkt informiert worden, haette man
eventuell eine sauberere Loesung finden koennen.

Nun, hier nun meine Info an euch, was ich als RM Polar in der Sache zu tun
gedenke:

hier mein offener Brief an Bierchen, und die Goetter, die es betrifft:

*************************

Lieber Bierchen,

Mit Schrecken habe ich heute abend feststellen muessen, dass du saemtliche
Polar-Files geloescht hast, ohne mich vorher zu informieren.

Ich haette zumindest eine Ankuendigung von dir erwartet, damit ich moegliche
Interferenzen haette abklaeren koennen. Es stehen ja zum Beispiel mehrere
Seherhaeuser in einem der von dir geloeschten Raeume.

Nun, ich habe mich inzwischen bei unserer Rechtsabteilung an unserem Institut 
schlau gemacht. Ich befinde mich hier im groessten privaten Forschungslabor
von ganz Amerika. Wir produzieren Produkte und Software fuer den Non-Profit
und den industriellen Bereich, deshalb ist unsere Rechtsabteilung ziemlich
gross und aeusserst hilfsbereit.

Die Sache sieht nach amerikanischem Recht so aus: da ich in Amerika arbeite
und
von hier aus Daten bearbeite, falle ich unter amerikanisches Recht, auch wenn 
der Mudserver in Deutschland steht. Soweit so gut. Da ich als Regionsmagier
das Polargebiet verwalte und deine Files ueberwache und auch aendere, habe ich
auch Anspruch auf den Code. z.B. als ich Seherhaeuser in den 'kamelotraum.c'
gelegt hatte oder als ich deine Raeume gebietsmaessig abnahm, habe ich nun
nach
amerikanischem Recht ebenfalls Anspruch auf diese Raeume. Um es dir ganz klar
zum machen: ein bisschen von meinem geistigen Eigentum steckt in deinem Code,
deshalb ist es nicht mehr dein Code. Die Beweislage ist ziemlich kompliziert:
du muesstest nachweisen koennen, dass niemand, aber auch gar niemand zu keiner
Zeit irgendwann einmal Input zu deinem Code geliefert hat. Und das duerfte
nicht einfach werden. Hast du deine Repfiles nie abgearbeitet und die Ideen
von Spielern in deine Raeume eingebaut? Hat nie ein Erzmagier Properties
in den Raeumen gesetzt? Hat nie der RM auch nur eine Zeile in deinen Code
eingefuegt? Hmmm... viel Spass beim 'beweisen'. Es steht dann Aussage gegen
Aussage. Ich stehe felsenfest dazu, dass ich jede einzelne deiner Dateien mit
Ergaenzungen versehen habe. Versuch da mal, das Gegenteil zu beweisen, es wird
dir nicht gelingen!

Was ich nun tun werde: alle deine geloeschten Polardaten werden von mir
hoechstpersoenlich wieder angeschlossen, in einem Verzeichnis wo du keinen
Schreibzugriff hast. Die Empfehlung meiner Rechtsabteilung zu der ganzen Sache
war: ... 'so sue me'... 

In diesem Sinne,

Tsunami aus Amerika.

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



Re: Bierchen und geloeschte Files (Nevok, 10. Jan 2001, 02:39:36):
~#! rn=Tsunami rt=979090021 rg=d.polar
~#! tid=979090021
*Pruuuuuuuuuuuuuust*
........aaaaaaaaand the hoooooooooooooooooome of the braaaaaaaaaaaaaaaaaaaave!


Ich wusste doch, dass auch aus Schweizern was ordentliches werden kann :)


Nevok, derzeit auf Auslandssemester in Deutschland

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



Re: Bierchen und geloeschte Files (Anacrion, 10. Jan 2001, 03:12:28):
~#! rn=Tsunami rt=979090021 rg=d.polar
~#! tid=979090021
In diesem Sinne ...

wuerde ich vorschlagen, diese Politik im ganzen Mud zu vertreten.
Es kann nicht angehen, dass ganze Landstriche in den Bithimmel geblasen haben,
in die auch Spoieler groesseren Aufwand gesteckt haben, nur um solche Aktionen
als Munition in irgendwelchen Privatfehden zu missbrauchen. Da in jedemGebiet
auch (zumindest meistens) die Arbeit oder die Ideen von anderen stecken,
duerfte die Beweislage (insbesondere hinsichtlich der Zurverfuegungstellung
des Codes) recht uebel fuer den Magier sein ... 

Ausserdem: Soviele Schlagzeilen wie so ein Prozess wuerde das MG nie wieder
kriegen :)

Anac*

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



Re: Re: Bierchen und geloeschte Files (Golas, 10. Jan 2001, 03:24:40):
~#! rn=Anacrion rt=979092748 rg=d.polar
~#! tid=979090021
voraussetzung von tsunami war, dass er in amerika hockt. wenn also wargon auch
in usa ist, dann geht das ... sonst nehme ich an, dass das wieder mal etwas
schwerer wird ...
aber ich bin auch dafuer, dass das in zukunft so gehandhabt wird.
und um bierchen mal vorzugreifen ...
der verdient so viel patte, dass er sich so einen prozess problemlos leisten
kann.

golas auf den zap wartend ...

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



Re: Bierchen und geloeschte Files (Catweazle, 10. Jan 2001, 11:12:13):
~#! rn=Tsunami rt=979090021 rg=d.polar
~#! tid=979090021
Danke Tsunami,
endlich tut mal jemand das einzig richtige.
Wo war doch  gleich das backup von /players?

YTC

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



Re: Re: Bierchen und geloeschte Files (Satanas, 10. Jan 2001, 11:14:55):
~#! rn=Catweazle rt=979121533 rg=d.polar
~#! tid=979090021
Wenn ihr schon dabei seid, koennt ihr ja mal Boschante restaurieren :-)

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



Re^3: Bierchen und geloeschte Files (Deepblue, 10. Jan 2001, 11:24:48):
~#! rn=Satanas rt=979121695 rg=d.polar
~#! tid=979090021
Ja, und das Haus der Farben, und das Skowedorf, und...

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



Re: Bierchen und geloeschte Files (Gnome, 10. Jan 2001, 12:09:40):
~#! rn=Tsunami rt=979090021 rg=d.polar
~#! tid=979090021
:klatscht in die Haende.

gnOme meint: wargon, uebernehmen sie!

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



Re: Re: Bierchen und geloeschte Files (Padreic, 10. Jan 2001, 12:16:03):
~#! rn=Gnome rt=979124980 rg=d.polar
~#! tid=979090021
Zunaechst dachte ich doch tatsaechlich das es sich im Polargebiet
tatsaechlich um ein Gebiet handelt und Bierchen nur vergessen/uebersehn hat,
das dort einige Seherhaeuser stehn. Aber wenn ich das richtig sehe handelt
es sich da um genau _einen_ Raum der soweit ich weiss eigentlich nur fuer
Seherhaeuser geschrieben wurde und entworfen auch noch von einem Spieler!
Sorry Bierchen, das hat in meinen Augen nichts mehr mit abhaengen zu tun,
sondern wirklich nur noch mit gezielt moeglichst viel Schaden anrichten.
Haettest Du die Haeuser in Ruhe verlegt und das ganze ordentlich abgeklemmt
ok, aber so...
Ich glaube ich gehoere zu denjenigen die bisher sehr viel Verstaendnis fuer
Dich hatten und der auch nach wie vor der Meinung war, das Du durchaus das
Recht zum abklemmen hast, aber nun solltest Du die Konsequenz ziehen und
Dich schleunigst zum Spieler abstufen oder loeschen lassen. Haeng ab was Du
abhaengen willst und dann lass Frieden einkehren und zieh die Konsequenz.

Pad*

P.S.: Und Sorry Tsunami, Entscheidungen ueber Restaurierung von Code ist in
meinen Augen immer noch Sache der Erzmagier. Im Zweifel bist naemlich nicht
Du derjenige der in seinem feinen Amerika eine anzeige abbekommt.

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



Re^3: Bierchen und geloeschte Files (Anacrion, 10. Jan 2001, 13:31:04):
~#! rn=Padreic rt=979125363 rg=d.polar
~#! tid=979090021
Ja und Nein, Padreic.

Ich denke mal, dass wenn es zu einer Klage kommt, der Verein das Ziel ist. Auf
Unterlassung der Nutzung von Bierchens Code.

Vor diesem Hintergrund ist es meiner MEinung nach aeusserst problematisch,
dass die Entscheidungen bezueglich der Codenutzung usw. nicht von gewhlten
Vereinsvertretern gefaellt werden, die der Verein auf der Hauptversammlung
auch ENTLASTEN koennte. Insbesondere muessten wohl die Vorstandsmitglieder des
Vereins alle Handlungen der Erzmagier gegen sich gelten lassen, da es in den
Aufgabenbereich des Vorstands faellt, den Verein nach aussen zu vertreten.

Ich glaube nicht, nicht, dass es im Normallfall zu Strafen kommen wird (asser
evtl. bei Wiederholung), jedoch weiss ich nciht, w Justitia im Falle eines
Falles hineilen wird. IMHO kann man sowohl den anschliessenden (wenn nicht
EM), jegliche EM als auch den Vereinsvorstand und den Verein selber mit
irgendwelchen Strafen belegen.

Waee es nicht sinnvoll, mal ein paar juristische Gutachten einzuholen bzgl.

a) Was ist worst-case, wenn ein magier klagen sollte 
b) was ist worst-case fuer die Vorstaende/Erzmagier/Magier (die anschliessen)

Abhaengig von diesen Informationen ist es IMHO sinnvoll (zumindest, wenn das
so aussieht wie ich denke und das maximumdie prozesskosten und unterlassung
sind, da keine bereicherung vorliegt, da wir non-kommerz sind) durchaus
vertreten, gnadenlos eine Nicht-bhaeng-Politik zu vertreten. 

Ich meine: Istirgendwer der Meinung, z.B. wenn Boing verlangen wuerde, seinen
Kram abzuhaengen, das auch zu tun ?? Danach koennte das MUD dichtmachen. Es
gibt durchaus einige Faelle von MAgiern, die entweder sehr wenig oder einiges
programmiert haben und die ihrem Kram abhaengen wollen/es haben. Wo ist die
Grenze fuer Schaden am MUD? Wann wird es nicht toleerierbar, den KRam
abzuhaengen ? Wenn nur die Mudlib nciht betroffen ist ? Was, wenn ein MAgier
SEINE Gilde abhaengen will? Die rechtslage ist ueberall gleich (IMHO). Die
Frage ist nur, wo man den Schlussstrich zieht.

Ich plaediere nachdruecklich (und laenglich, wie man sieht), dafuer, den
SChlussstrich zu ziehen, bevor man irgendwas abhaengt (insofern die legale
Analyse nicht moegliche schwerwiegende Folgen ergibt).

my 22.5 cents
Anac*

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



Re^4: Bierchen und geloeschte Files (Raidri, 10. Jan 2001, 17:40:15):
~#! rn=Anacrion rt=979129864 rg=d.polar
~#! tid=979090021
Wieso schwere Beweislage? Ich nehme mal an, dass im Code oben ungefaehr etwa
folgendes stehen (sollte?):
// Aenderungsgeschichte
// Datum           Magier          Aenderung
// irgendwann          Jemand              Neu
-Raidri, jetzt total verwirrt . o 0 (Mal int erhoehen)

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



Re: Bierchen und geloeschte Files (Garnix, 10. Jan 2001, 20:56:23):
~#! rn=Tsunami rt=979090021 rg=d.polar
~#! tid=979090021
oh, soweit ich mich erinnere, war bierchen rm, als dieser besagte raum
angeschlossen wurde, so um den zeitraum, als er deine eismine abnahm. gehoert
die eismine jetzt auch bierchen?
wird ja spannend, nach amerikanischem recht :)

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



Re: Re: Bierchen und geloeschte Files (Nevok, 10. Jan 2001, 21:02:20):
~#! rn=Garnix rt=979156583 rg=d.polar
~#! tid=979090021
Wer zu feige ist den eigenen Namen zu gebrauchen aber clever genug keinen Gast
zu nehmen erschafft sich kurz nen Spielerchen. Klug und feige, tolle
Kombination :)

Nevok

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



Re: Bierchen und geloeschte Files (Wurzel, 10. Jan 2001, 21:03:33):
~#! rn=Tsunami rt=979090021 rg=d.polar
~#! tid=979090021
speziell zu dem raum mit den seherhaeusern:
ich hatte vorher mit bierchen abgesprochen (und er hatte mir das definitiv
zugesagt), dass dieser raum erhalten bleibt. ansonsten haette ich da
laengst was unternommen.
man sieht, an solche absprachen, die erst vor wenigen tagen getroffen
wurden, glaubt bierchen sich auch nicht mehr halten zu muessen.
es wurden schon leute fuer wesentlich weniger geloescht, wollte ich
an dieser stelle nur mal bemerken.

wurzel (heute mal ziemlich sauer)

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



Re: Re: Bierchen und geloeschte Files (Raidri, 10. Jan 2001, 21:08:15):
~#! rn=Wurzel rt=979157013 rg=d.polar
~#! tid=979090021
Wie konnte Bierchen die Raeume ueberhaupt loeschen? Nachdem was ich gehoert
habe, wurden ihm doch so ziemlich saemtliche Schreibrechte entzogen.
-raidri

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



Re: Re: Bierchen und geloeschte Files (Weatherwax, 10. Jan 2001, 22:20:54):
~#! rn=Gast1 rt=979160625 rg=d.polar
~#! tid=979090021
Aehh, abgesehen davon, dass noch nicht klar ist, ob ueberhaupt EU- oder
amerikanisches Recht anzuwenden ist, seid Ihr Euch sicher, dass Ihr hier
rechtliche Massstaebe anlegen wollt. Die richten sich naemlich im Zivilrecht,
und das sowohl in den Staaten als auch hierzulande nur nach oekonomischen
Gesichtspunkten.

Wenn ich etwas fuer eine Gemeinschaft mache, der ich mich freiwillig
angeschlossen habe, ehrenamtlich - zugegeben - und ohne Bezahlung und
beschliesse eines Tages, ihr den Ruecken zu kehren, hinterlasse ich dann
verbrannte Erde?

Wie man so hoert, ist die Frage des Eigentums an den bewussten Dingen ja
durchaus strittig, aber ich halte diese Frage fuer rein akademisch.

Mir ist wichtig, dass jemand, der eine Haltung einnimmt wie der bewusste
Magier, dann auch seine Koffer packt und bitte nicht mehr hier aktiv wird. Das
Thema Gemeinschaft, Kommunikation, und Kooperation hat sich wohl erledigt.
Andererseits vertraue ich darauf, dass andere das ersetzen, was kaputt gemacht
wurde (vielen Dank an dieser Stelle, kann mir vorstellen, dass das viel Arbeit
ist) und lege vor allem auch keinen Wert darauf, Raeume zu betreten, die
unwiederbringlich weg sind. Die kann ich verschmerzen.

Ich will nicht den Schaden verharmlosen, den einige Spieler sicherlich zu
spueren bekommen haben, der wahr sicherlich in einzelnen Faellen nicht ohne.
Ich moechte nicht eines Tages da stehen und mein Haus ist nicht mehr da.
Unterm Strich geht es mir nur darum dass hier zu oft zu viele den Spass des
Spiel mit BLUTIGEM Ernst verwechseln. Und was Bierchen gemacht hat, ist nur
ein Beispiel. Fast jeden Tag liest man in der Zeitung und vermeint bereits am
Tonfall zu erkennen, dass es eigentlich nicht mehr nur um Spass gehen kann.

Seid lieb, und versucht, Euch ein bisschen zu entspannen. Auch wenns Spinner
gibt.

Viele Gruesse

Wx

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



Re^4: Bierchen und geloeschte Files (Wurzel, 11. Jan 2001, 00:30:28):
~#! rn=Anacrion rt=979129864 rg=d.polar
~#! tid=979090021
immer dann wenn der verein ins spiel gebracht wird, muss ich wohl oder
uebel mich zu wort melden.
ohne jetzt jurist zu sein, sehe ich die rechtslage da etwas problematisch.
der verein hat eine satzung, die jeder auf der webseite ansehen kann.
darin steht nichts davon, dass der verein in irgend einer form auf
die inhaltliche ausgestaltung des muds einfluss nimmt. und bisher
war das auch immer so. der verein stellt lediglich die plattform bereit,
auf der das mg laeuft.
meiner meinung nach ist das auch okay so und sollte so bleiben. ich
moechte vermeiden, dass auf der hauptversammlung darueber abgestimmt
wird, ob die zaubis nun auf- oder abgewertet werden.
es kann aber passieren, dass das von einem gericht etwas anders gesehen
wird, dass der verein als betreiber des mg auch eine verantwortung fuer
den inhalt, sprich den code, uebernehmen muss. das ist wie gesagt nicht
in unserem vereinszweck enthalten und meiner meinung nach auch nicht
wuenschenswert.
worst case, wenn ein magier klagt, ist dass das gericht die schliessung des
mg verfuegt. aber das erwarte/vermute ich nicht. nach allem, was hier
diskutiert wurde, ist die rechtslage bei den teilen, die nicht zur
magieinsel gehoert haben, sowieso recht wackelig, da sie nicht allein von
bierchen entwickelt wurden. insofern erwarte ich auch nicht, dass im
(hoffentlich hypothetischen) fall eines prozesses es eine wie auch
immer geartete verurteilung des vereins geben koennte und sehe dem dann
doch gelassen entgegen. und ich vermute auch nicht, dass speziell mir
als vorstandsmitglied eine strafe aufgebrummt wird :)

also: cool bleiben. juristische gutachten kosten geld, das ich lieber fuer
was anderes ausgegeben sehen wuerde. in der derzeitigen situation sehe
ich keine veranlassung dazu. wir koennen das gerne auf der naechsten
mitgliederversammlung diskutieren.

wurzel

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



Re^5: Bierchen und geloeschte Files (Golas, 11. Jan 2001, 01:39:48):
~#! rn=Wurzel rt=979169428 rg=d.polar
~#! tid=979090021
ich hab heute mal ein wenig mit freunden ueber das thema geredet.
konsens war, dass eine verfuegung gegen das mg von bierchen nur erwirken kann,
dass sein quellcode in deutschland nicht mehr zur verfuegung gestellt werden
darf.
tsunami ... habt ihr noch nen outlet frei? ;)))

winke winke
Golas

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



Re^6: Bierchen und geloeschte Files (Vincent, 11. Jan 2001, 11:04:58):
~#! rn=Golas rt=979173588 rg=d.polar
~#! tid=979090021
Ich glaube, die Gerichte wuerden im Falle einer Klage in dem Betreiber von
MG den Beklagten sehen. Und das koennte evt. diejenige Person sein, die
den Rechner, auf dem MG laeuft, aufgestellt hat, und die dem MG-Rechner den
Zugang zum Internet zu Verfuegung stellt. PDen Begriff Person verwende ich
hier im juristischen Sinne - es kann also auch eine Institution, Firma,
Gemeinschaft etc. sein. Irgendwo muss der MG-Rechner ja stehen und am
Internet angeschlossen sein.

Gruss
Vincent

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



Re^7: Bierchen und geloeschte Files (Silvana, 11. Jan 2001, 11:15:01):
~#! rn=Vincent rt=979207498 rg=d.polar
~#! tid=979090021
Hmmm... ich stell einfach einmal eine ganz ketzerische Frage: Wer sagt
eigentlich, dass Bierchen diesen Polarraum geloescht hat? Wir wissen doch
eigentlich nur folgenden:
- Bierchen wollte die Magie-Insel loeschen und hat das getan.
- Bierchen wollte _nicht_ die Chaosgilde (bzw seine Beitraege) loeschen und
die ist auch noch da. (Bis auf eine Kleinigkeit, die Sting gestern auffiel,
die aber nicht in den Gildenverzeichnissen gespeichert war. Das hake ich mal
als Versehen ab.)
- Bierchen hat seine Teile der Feuerinsel geloescht und das auch zugegeben.
Dies ist die Stelle, an der er wirklich Schaden angerichtet und anderen Magier
wie Spielern Arbeit gemacht hat. OK, ist schade um die Magie-Insel, aber damit
hat er anderen nicht _so_ sehr geschadet.
- Vom Polarraum wissen wir eigentlich nur, dass Bierchen Wurzel gesagt hat,
dass er erhalten bleiben soll, und das der Raum jetzt weg ist. WER ihn
geloescht hat, wissen wir nicht. Klar, das es Bierchen war, ist
wahrscheinlich. Aber sicher? Njet.

Also bitte, bevor Ihr Steine werft, fragt Euch bitte, wieso Ihr sie werft.

  Silvana

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



HuestelHuestel (Gor, 11. Jan 2001, 17:16:57):
Aehm also ... aehm kleinen Bug behoben leider wurden dabei saemtliche Clones
des Schluesselbundes zerstoert. *raeusper*
Also nochmal holen.... sorry

Gruss Gor

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



Re: HuestelHuestel (Amaryllis, 11. Jan 2001, 17:19:17):
~#! rn=Gor rt=979229817 rg=d.polar
~#! tid=979229817
Ich koennte ja jetzt jemanden zitieren, der mir - nachdem mir vor Wochen das
Gleiche passiert ist - ein "schreib Dir halt mal nen Ali dafuer, Du Sepp!" an
den Kopf geworfen hat :-)

Da der Artikel nicht mehr vorhanden ist, scheint da jemand Glueck gehabt zu
haben :)

scnr,
Ama* :)

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



Zwergenangriff (Amaryllis, 14. Jan 2001, 19:39:24):
$subject im Moment deaktiviert, da ich erst ein paar neue Bugs (entstanden
u.a. aus den ganzen Querelen der letzten Zeit, ihr wisst schon) fixen muss.

Ama*, sich fuer die Aufmerksamkeit und insbesondere bei Jemandem ganz
besonders bedankend.

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



Re^7: Bierchen und geloeschte Files (Teddy, 15. Jan 2001, 19:00:58):
~#! rn=Vincent rt=979207498 rg=d.polar
~#! tid=979090021
Da in der Regel wohl mitlerweile erstmal der Betreiber und nicht der Provider
angegangen wird, waere eine Verfuegung gegen den "Provider" wohl sehr
unwahrscheinlich.
Damit kommen wir wohl oder uebel doch wieder zum Verein zurueck.

Teddy, freut sich schon riesig. :-(

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



Quest nicht mehr spielbar (Gor, 16. Jan 2001, 12:02:55):
Hiho ihr lieben,
nachdem Bierchen und einige seine Files uns verlassen haben ist die Quest
nicht mehr spielbar, bis ich den Chaoten beigebracht habe keine Chaoten mehr
zu sein.

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



Re: Quest nicht mehr spielbar (Gor, 16. Jan 2001, 13:38:11):
~#! rn=Gor rt=979642975 rg=d.polar
~#! tid=979642975
Sollte wieder gehen :)

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



Zwergenangriff (Amaryllis, 21. Jan 2001, 16:51:21):
Hi,

der Zwergenangriff ist wieder dran. Durch diverse Umstaende *hust* mussten
teilweise die NPCs geaendert werden, also nicht wundern, wenn die jetzt
teilweise ein bisschen anders aussehen :)

Bugmeldungen bitte per Mail an mich.

Gruss,
Ama*

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



Re: Zwergenangriff (Patryn, 21. Jan 2001, 16:52:35):
~#! rn=Amaryllis rt=980092281 rg=d.polar
~#! tid=980092281
ist das eigentlich ne automatische nachricht...zwerge ab, zwerge dran... ;)

------
patryn

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



Re: Re: Zwergenangriff (Amaryllis, 21. Jan 2001, 16:53:45):
~#! rn=Patryn rt=980092355 rg=d.polar
~#! tid=980092281
Ne Woche warn die Zwerge weg,
jetzt stinken sie wieder - so ein Dreck.

Ama* :)

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



Re: Zwergenangriff (Amaryllis, 21. Jan 2001, 19:43:29):
~#! rn=Amaryllis rt=980092281 rg=d.polar
~#! tid=980092281
aufgrund zahlreicher Rueckfragen moechte ich anmerken, dass beim Angriff nun
aus technischen Gruenden neue EK(s?) dabei sein _koennten_ :)

Ama*, auf eine Rueckkehr ihrer Chaoszwerge hoffend :)

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



Re^3: Zwergenangriff (Tsunami, 23. Jan 2001, 20:06:06):
~#! rn=Amaryllis rt=980092425 rg=d.polar
~#! tid=980092281
Der Dichter, der Dichter,
der kriegt was auf die Lichter!

Keine Prosa in d.polar!

Tsunami. Don't even think of poetry here!

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



Re^4: Zwergenangriff (Amaryllis, 23. Jan 2001, 20:06:55):
~#! rn=Tsunami rt=980276766 rg=d.polar
~#! tid=980092281
Es dichtet Ama* auf die Schnelle,
noch schnell was von 'ner Plaetscherwelle...

*duck* 
Ama* :)

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



Re^5: Zwergenangriff (Ark, 23. Jan 2001, 20:09:42):
~#! rn=Amaryllis rt=980276815 rg=d.polar
~#! tid=980092281
Hm, ein Thread, in dem ich ebenfalls rummuellen kann?


              *** ARK * the * Magnificent ***


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



Re^6: Zwergenangriff (Tsunami, 23. Jan 2001, 20:11:15):
~#! rn=Ark rt=980276982 rg=d.polar
~#! tid=980092281
Dies ist die offizielle Polarseite in der gaar nicht, ja also ueberhaupt
nie und nimmer rumgemuellt wird. Von Regionsmagiern aus anderen Regionen
sowieso nicht.

Tsunami, gaaaanz ernst ;)

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



Re^6: Zwergenangriff (Zook, 23. Jan 2001, 20:45:36):
~#! rn=Ark rt=980276982 rg=d.polar
~#! tid=980092281
Zook schlaegt Ark ein Vermass um die Ohren und harrt der Dinge, die
da kommen moegen.

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



Re^7: Zwergenangriff (Nevok, 23. Jan 2001, 22:55:01):
~#! rn=Zook rt=980279136 rg=d.polar
~#! tid=980092281
denk ich an tsunami in der nacht, bin ich um den schlaf gebracht. wissen ob
des stromes mangel, denk ich nur mit grossem bammel an die arme kleine welle,
die es hat so gar nicht helle, muss sogar im dunkeln knechten, ohne 'net
durchs Leben hechten...

Gibts jetzt die ersten interpolaren Reimkriege? Ja? :)

Nevok, die Tastatur wetzend

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



Re^7: Zwergenangriff (Yendi, 24. Jan 2001, 17:39:47):
~#! rn=Zook rt=980279136 rg=d.polar
~#! tid=980092281
Damit das "Versmass" sicher stimmt,
Zook besser ein "s" mehr noch nimmt...

YTY


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



Re^8: Zwergenangriff (Anatol, 24. Jan 2001, 17:43:28):
~#! rn=Yendi rt=980354387 rg=d.polar
~#! tid=980092281
Des Verses Mass ist was fuer Pfuscher,
der Kuscher nur und der, der's verklemmt nur las
- oder gar noch lesen muss -
beharrt auf des rechten Reimes Wohlgenuss.
Oder...
was?


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



zollschein (Fizban,  4. Feb 2001, 15:54:05):
Tach
Ich hab mal mit den Zollwaechtern verhandelt und bessere Konditionen
herausgehandelt was die haltbarkeit angeht. beim preis liessen sie leider
nicht mit sich reden.
Fizban

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



Re: zollschein (Gor,  4. Feb 2001, 17:12:06):
~#! rn=Fizban rt=981298445 rg=d.polar
~#! tid=981298445
Mir waere es lieber gewesen, wenn du einige von ihnen entlassen haettest. :)

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



Man munkelt... (Amaryllis, 27. Feb 2001, 21:16:57):
... dass nun auch der grosse Moorhuhn-Koenig seinen Weg in diese Welt gefunden
hat.

Gruss,
Ama*

PS: Warnung:
Das Vieh hats in sich - es empfiehlt sich, erstmal bissl zu forschen und ihn
auszufragen, ansonsten garantier ich fuer nix :-)

Bugmeldungen bitte asap an mich, falls was sein sollte :)

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



Re: Man munkelt... (Amaryllis, 27. Feb 2001, 21:26:00):
~#! rn=Amaryllis rt=983305017 rg=d.polar
~#! tid=983305017
aeh noch ne kleine Bemerkung:
ohne Team laeuft da gar nix... vgl. Morpheus :)

Ama'mehr sag ich jetzt abba nich'ryllis :)

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



Re: Re: Man munkelt... (Vardion, 28. Feb 2001, 18:09:50):
~#! rn=Amaryllis rt=983305560 rg=d.polar
~#! tid=983305017
Hi.

Nett, dass Deine Moorhuhn-Waechter gegen alle Schadensarten, die ein Zauberer
per 'verletze' erzeugen kann _immun_ sind. Haeng ihnen doch einfach ein Schild
um den Hals "Zauberer muessen leider draussen bleiben". Danke.

Vardion

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



Re^3: Man munkelt... (Heromcfly, 28. Feb 2001, 18:31:24):
~#! rn=Vardion rt=983380190 rg=d.polar
~#! tid=983305017

gut so weiter so

-->schmarrn ;)

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



Re^3: Man munkelt... (Amaryllis, 28. Feb 2001, 18:34:22):
~#! rn=Vardion rt=983380190 rg=d.polar
~#! tid=983305017
Da ich Zaubis kaum kenne, habe ich da wohl zufaelligerweise genau die dummen
Anfaelligkeiten gesetzt. Mea culpa, mea maxima culpa. Das Problem sollte nun
geloest sein.

Was seine Helfershelfer angeht, koennen da durchaus der eine oder andere noch
"unguenstige" Anfaelligkeiten haben, hier muesste es aber jede Gilde mal
treffen.

Ama.

PS: Es waere nett, wenn man mich (erst recht, wenn ich sowieso gerade online
bin) direkt drauf ansprechen wuerde, anstatt gleich in der MPA loszuwettern.
Auch wenn mir viele Zaubi-Hass vorwerfen, entspricht das naemlich nicht den
Tatsachen, und begruendete Kritik an meinen Objekten habe ich in der
Vergangenheit bereits kooperativ gefixt und werde das auch weiterhin so
halten.

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



Re^4: Man munkelt... (Orktoeter, 28. Feb 2001, 18:44:02):
~#! rn=Amaryllis rt=983381662 rg=d.polar
~#! tid=983305017

Ich antworte mal hier, weil es der letze Artikel ist (aktuell)

Dank an Amaryllis, weil er einem Spielerwunsch so schnell nachgegangen ist,
ABER:

Vardion, wieso musst du dort Schaden machen koennen? Es gibt (gab) dort einen
NPC, den du nicht alleine hauen konntest? Wenn du die fruehren Artikel von
Amaryllis gelesen hast, wirst du wissen, das zumindest der Koenig nicht dazu
gedacht ist, das ihn einer alleine haut. Du brauchst also auf alle faelle ein
Team. Und wenn du selbst nicht triffst, dann unterstuetz doch dein Team so gut
wie du es als Zauberer kannst. Wenn ihr den dann nicht nur ein mal macht,
wirst du sogar dann den Kill bekommen, wenn du "nur" der Rueckhalt des Teams
warst (Teamkampf sei dank). 
Auch wenn es in diesem Fall wohl Zufall und keine Absicht war, so soll es doch
NPC geben, die bewusst fuer einzelne Gilden nicht zu killen sind. Da muss man
halt mal ueber seinen Schatten springen und sich Leute fuer ein Team suchen.

OrkT.

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



Re^5: Man munkelt... (Amaryllis, 28. Feb 2001, 18:45:52):
~#! rn=Orktoeter rt=983382242 rg=d.polar
~#! tid=983305017
Nunja, die Aenderung war auch in meinem Sinne, da in dem NPC wirklich noch ein
Fehler war. Da er naemlich so gut austeilt, ist meine Meinung, dass er auch
gut einstecken muss - und so wie er nun gemacht ist, sollten da nahezu alle
Gilden Schaden machen koennen.

Einfach anschauen und ster^H^H^H^HEKs holen :)

Ama*

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



Re^5: Man munkelt... (Agony, 28. Feb 2001, 18:46:16):
~#! rn=Orktoeter rt=983382242 rg=d.polar
~#! tid=983305017
dass ein derzeitig hauptberuflicher kaempfer das nicht nachvollziehen kann,
wissen wir auch ohne deinen moralisierenden querschlaeger.

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



Re^6: Man munkelt... (Anacrion, 28. Feb 2001, 20:05:08):
~#! rn=Agony rt=983382376 rg=d.polar
~#! tid=983305017
Danke Agony. 

erpsaret mir ein Flame.

Das ein Kawempfer einem was von Problemen, eine Schadensart erzeugen oder
abwehren zu koennen erzaehlen will, verwundert mich ja doch etwas.

Ist so, als ob die Kuh nem Huhn das Eierlegen erklaeren will.

Anac* - saerulich.

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



Re^3: Man munkelt... (Panic, 28. Feb 2001, 20:15:47):
~#! rn=Vardion rt=983380190 rg=d.polar
~#! tid=983305017
lass mich raten... gegen boesen Schaden extrem anfaellig ? :)

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



Re^4: Man munkelt... (Anacrion, 28. Feb 2001, 20:16:17):
~#! rn=Panic rt=983387747 rg=d.polar
~#! tid=983305017
Koennte auch Terror oder heilig sein ;)

Anac*

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



Re^5: Man munkelt... (Amaryllis, 28. Feb 2001, 20:18:06):
~#! rn=Anacrion rt=983387777 rg=d.polar
~#! tid=983305017
[ ] ihr habt Euch das Vieh angeschaut.

Ama* :)

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



Re^6: Man munkelt... (Anacrion, 28. Feb 2001, 20:19:34):
~#! rn=Amaryllis rt=983387886 rg=d.polar
~#! tid=983305017
Hab ich das behauptet ? Ich bin nur mal die Schadensarten durchgegangen, die
ich nciht machen kann ;)

Anac*

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



Re^7: Man munkelt... (Wurzel, 28. Feb 2001, 22:10:12):
~#! rn=Anacrion rt=983387974 rg=d.polar
~#! tid=983305017
stellt euch nicht so an, kinder.
wenn ihr das vieh nicht umhauen koennt, lasst es eben. oder sucht euch
eben ein team.
aber wahrscheinlich wollt ihr nur wieder jammerskill ueben... dafuer
ist das hier allerdings die falsche rubrik.

wurzel meint: pappnasen abwerten!

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



Re^8: Man munkelt... (Heromcfly, 28. Feb 2001, 22:17:20):
~#! rn=Wurzel rt=983394612 rg=d.polar
~#! tid=983305017
richtitsch ... wenn euch das moorhuhn zu stark 
ist haut doch den necromanten :)


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



Re^9: Man munkelt... (Wurzel, 28. Feb 2001, 22:19:45):
~#! rn=Heromcfly rt=983395040 rg=d.polar
~#! tid=983305017
nette idee :)
es gibt aber genug alternativen, nicht nur in der unterwelt.
alternativ koennte man auch versuchen, das forscherpunktkonto aufzufuellen :)

wurzel

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



Re^7: Man munkelt... (Solmyr,  1. Mar 2001, 05:14:41):
~#! rn=Anacrion rt=983387974 rg=d.polar
~#! tid=983305017
Seit doch alle mal froh :) Immerhin gibt es Spieler, so wie ich, die 
nicht mal wissen, wo das Ding ist und auch das Teil garantiert nicht
umhaun koennen :)

Solmyr

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



Kleiner Bugfix (Gor,  7. Mar 2001, 12:37:54):
Der Drache sollte nun killbar sein, nachdem man die Quest gemacht hat. Ebenso
verschindet der gelbe Kopf mit allen anderen Koepfen, wenn der Drache
wegfliegt und die Wunschfee hilft jetzt auch Froeschen :)

Viel Spass und danke fuerdie Bugmeldungen.


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



Soeren & SMS (Tilly, 17. Mar 2001, 20:21:36):
Moin moin,

Soeren zeigt sich ueberaus lernfaehig. So wird er nun die Faehigkeiten,
im Kampf mit dem Speermeister-Speer umzugehen, etwas genauer ausspucken.

Falls noch jemand Anregungen / Fragen oder dergleichen hat, bitte mailen.

 - Tilly - 

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



Re: Soeren & SMS (Daria, 21. Mar 2001, 16:44:14):
~#! rn=Tilly rt=984856896 rg=d.polar
~#! tid=984856896
Seit wann gibts im MG Short-Message-Service?
-> schmarrn
Daria

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



Man is dat leer! (Terrorist, 17. Mai 2001, 11:47:17):
Hallo,

Oki, ich habe eine kleine Bitte an euch ... nachdem ich laengere Zeit nicht da
war, wuerde es mich Interessieren ob an der Gruft im Polar (Lilith und Co)
irgendetwas verbesserungswuerdig ist.
Ob es Fehler gibt die euch aufgefallen sind, Items die nicht mehr dem Stand
der Dinge entsprechen, und aehnliches.
Ichwerde die Gruft nicht verstaerken oder aehnliches, sondern will sie im
Urzustand behalten.
Sollte es jedoch Kleinigkeiten geben die man verbessern kann, wuerde ich mich
ueber eine Mail freuen :)


Gruesse


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



Re: Man is dat leer! (Deepblue, 17. Mai 2001, 12:23:21):
~#! rn=Terrorist rt=990092837 rg=d.polar
~#! tid=990092837
Wie waers mit ner Para-2-Gruft?

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



Re: Re: Man is dat leer! (Terrorist, 17. Mai 2001, 12:29:22):
~#! rn=Deepblue rt=990095001 rg=d.polar
~#! tid=990092837
Oeh ...
Es gibt Para2?

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



Re: Man is dat leer! (Ark, 17. Mai 2001, 13:21:26):
~#! rn=Terrorist rt=990092837 rg=d.polar
~#! tid=990092837
Mehr Details, die ueber einen "Subjekt-Verb-Adverb" Satz o.ae. Struktur
hinausgehen ;^)
War ja klar, dass ich das sagen musste, oder?


              *** ARK * the * Magnificent ***


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



Re: Man is dat leer! (Gloinson, 17. Mai 2001, 13:22:40):
~#! rn=Terrorist rt=990092837 rg=d.polar
~#! tid=990092837
Die Gruft ist doch fuer Kaempfer so popelig geworden - die sollte oefters mal
Besuch aus dem Schacht bekommen. Ich hab gehoert, dass der/die/das Tarrasque
ein sehr reisefreudiger/e/r Wyrm ist. Ausserdem koennten die Nekromanten mal
ein paar Tricks lernen.

Gloin(son)

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



Re: Re: Man is dat leer! (Gloinson, 17. Mai 2001, 13:23:16):
~#! rn=Ark rt=990098486 rg=d.polar
~#! tid=990092837
Du willst eine Metzelgegend mit Details entweihen? Schaem Dich :)

Gloin(son)

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



Re: Re: Man is dat leer! (Bambi, 17. Mai 2001, 14:38:35):
~#! rn=Ark rt=990098486 rg=d.polar
~#! tid=990092837
Meinst Du sowas wie ...

Der Raum ist gross,
der Raum ist leer.
Geh weg von hier,
dann siehst Du mehr!


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



Re^3: Man is dat leer! (Anacrion, 17. Mai 2001, 14:40:43):
~#! rn=Bambi rt=990103115 rg=d.polar
~#! tid=990092837
Eher

Der Knopf war klein,
der Raum war leer,
dann drueckst Du ihn,
und lebst nicht mehr ....


Als Meldung auf -Tod, freilich ;-)

Anac* - kennt Arks gebiete

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



Re: Re: Man is dat leer! (Terrorist, 17. Mai 2001, 14:41:52):
~#! rn=Gloinson rt=990098560 rg=d.polar
~#! tid=990092837
Wie gesagt ... ich wolltesie nicht staerker machen.
Was ist mit Leuten die nicht max sind? solls nurnoch fuer die was geben?

Gruesse

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



Re^4: Man is dat leer! (Ark, 17. Mai 2001, 14:43:08):
~#! rn=Anacrion rt=990103243 rg=d.polar
~#! tid=990092837
Unnoetige P(r)olemik :-)


              *** ARK * the * Magnificent ***


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



Re^5: Man is dat leer! (Wurzel, 17. Mai 2001, 14:46:58):
~#! rn=Ark rt=990103388 rg=d.polar
~#! tid=990092837
wieder ein schoenes neues wort gelernt: prolemik... die deutsche sprache
kann so vielseitig sein :)

wurzel

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



Re: Man is dat leer! (Isis, 21. Mai 2001, 09:30:52):
~#! rn=Terrorist rt=990092837 rg=d.polar
~#! tid=990092837
Also ich finde die Gruft verdient fast Denkmalschutz und sollte vor
eventuellen verschlimmboeserungen verschont bleiben...;-)

Hera

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



Re: Re: Man is dat leer! (Sharia, 21. Mai 2001, 10:44:07):
~#! rn=Isis rt=990430252 rg=d.polar
~#! tid=990092837
jawoll!

Sharia wedelt mit eine 'Stellt Schrumpfis Gruft unter Denkmalschutz' -
Faehnchen

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



Re^3: Man is dat leer! (Terrorist, 21. Mai 2001, 14:38:33):
~#! rn=Sharia rt=990434647 rg=d.polar
~#! tid=990092837
*g* Hab Schrumpf damals nicht umsonst versprochen die Gruft so zu lassen wie
sie war.
Also keine Sorge, Lilith wird euch weiter den Hintern verkloppen (*hoff*)

Aber kleine Typos ausbuegeln ist doch erlaubt?

Gruesse

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



Re^4: Man is dat leer! (Mupfel, 23. Mai 2001, 00:49:26):
~#! rn=Terrorist rt=990448713 rg=d.polar
~#! tid=990092837
Nein ist nicht erlaubt ;)

-mupfel- (weiss wovon er spricht ;)

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



Re^5: Man is dat leer! (Amaryllis, 23. Mai 2001, 00:52:44):
~#! rn=Mupfel rt=990571766 rg=d.polar
~#! tid=990092837
solange er sie mittels 'rm <repfile>'[1] bearbeitet, bleibt doch alles beim
alten, nur keine Aufregung :)

Ama* :)

[1] gern praktiziert Vorgehensweise zur schnellen Abarbeitung von Bugs und
Typos.

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



Klippentempel (Tsunami,  6. Jul 2001, 00:16:11):
Auf vielfachen Wunsch eines Einzelnen hat der mattglaenzende Panzer von 
Madellaine nun neu die ID "mattglaenzender panzer". Sollte die vielen 
Kaempfer berfriedigen, die zig Panzer mit sich rumschleppen.

Lobmails an Tsunami, Beschwerden an Noel :)

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



Re: Klippentempel (Ark,  6. Jul 2001, 11:33:56):
~#! rn=Tsunami rt=994371371 rg=d.polar
~#! tid=994371371
Hoffentlich als Adjektiv, ich weigere mich, unt mattglaenzender panzer
einzugeben *fies grins*

Kampf der Raeschtchraipunkh.


              *** ARK * the * Magnificent ***


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



Speermeister-Speer (mal wieder) (Tilly, 11. Jul 2001, 00:35:37):
So, ich hab mal eine neue Version des SMS angeschlossen.

Die Leute, die einen solchen Speer haben, koennen mal ein
bisschen testen. Um Rueckmeldungen wird gebeten, solange
ich da nix bekomme, bleiben die Lektionen bei Soeren erst-
mal deaktiviert.

 - Tilly - 

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



Kurzurlaub (Tsunami, 17. Jul 2001, 22:32:33):
die naechsten zehn Tage bin ich kaum hier, ein alter Freund aus der Schweiz
kommt mich besuchen.

Tsunami. Braucht Ferien von den Ferien.

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



ja, Tsunami gibts noch (Tsunami,  3. Aug 2001, 23:14:58):
Ich habe total viel um die Ohren in RL. Das heisst aber nicht, dass ich keine
Zeit mehr habe, ins MG reinzuschauen. Wenn ich mich einlogge dann meist
unsichtbar damit ich in Ruhe meine Mails lesen und Polarkram abarbeiten kann.
Wenn es die Zeit erlaubt mach ich mich sichtbar und mudde ein bisschen.

Also bitte keinen Unsinn auf den Ebenen verbreiten wie 'Tsunami kommt nicht
mehr...' Letze Zeit war ich halt total im Stress (muss Zwischenberichte an
den Schweizer NationalFonds abliefern damit ich meinen Lohn fuers naechste
Jahr
bekomme und andere nicht ganz unwichtige RL-Sachen...) und war drum nur invis
hier.

Wenns was Wichtiges ist, wie gehabt eine Mail an den guten alten Tsu*
schicken,
ich schau's mir schon an, auch wenn es bei 'finger tsunami' heisst, ich sei
seit 21 Tagen nicht mehr hier gewesen. Invis einloggen setzt das letze login
Datum absichtlich (fuer Spieler) nicht hoch.

Tsunami. Oefter hier als man denkt :)

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



Re: ja, Tsunami gibts noch (Deepblue,  3. Aug 2001, 23:41:19):
~#! rn=Tsunami rt=996873298 rg=d.polar
~#! tid=996873298
vis
invis und das logindatumkram ist erledigt :)

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



Rodelbahn Tribuene wieder offen (Tsunami, 17. Aug 2001, 20:16:14):
Hallo Rodler und Gaffer,

Die Tribuene hat wieder einen Ausgang. Ich habe den neuen Verkaeufer aus der
Wueste ueberreden koennen, sein Angebot auch hier zur Verfuegung zu stellen.

Danke an mich, Beschwerden an die Verantworlichen der Wueste, die Pfade
verschieben :)

Tsunami, sich von der Rache der Fee versteckend :))

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



BugAttack() (Gor, 20. Aug 2001, 00:42:41):
Sodala

[1] Der Schaedel sollte nun auch Meldungen, die die folgenden Woerter doppelt
    enthalten annehmen: ins, in das, in dem, in
    

[2] Der goldene Drache ist nun nicht mehr fest davon ueberzeugt, dass euch ein
    hilfsbereiter Magier das eine oder andere Item gecloned hat.
    Danke an dieser Stelle an Gnome, der sich an die richtige Reihenfolge 
    erinnerte. ;)

Gruss Gor

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



Verhandlungen mit den Trollen (Fizban, 27. Sep 2001, 21:46:28):
Hi zusammen
Es tut mir Leid aber hiermit erklaere ich meine Verhandlungen mit den Trollen
auf Oeffnung von Sirajan fuer gescheitert.
Wenn sich ein anderer bereiterklaert mit den Trollen weiter zuverhandeln soll
er sein Glueck probieren.
fizban

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



mikroskopisch winzig kleine Aenderung. (Tsunami,  2. Okt 2001, 19:13:56):
Gildenquest Rettungsaktion in der Eismine:

Eine klitzekleine Aenderung am Schluessel, den der Hauptmann bei sich 
traegt: ich empfehle nun, den Schluessel aus der Leiche zu nehmen *bevor*
ihr die Leiche aufesst (was sowieso igitt! ist).

Falls ihr sterbt ist der Schluessel auch weg. So war es von Anfang an geplant,
bloss hat der Schluessel nicht so richtig kooperiert :)

Vielen Dank an die, die mir das gemeldet haben.

Tsunami.

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



Re: mikroskopisch winzig kleine Aenderung. (Terrorist,  2. Okt 2001, 19:19:54):
~#! rn=Tsunami rt=1002042836 rg=d.polar
~#! tid=1002042836
Das wird ja immer schoener .... 

Der "Schluessel" hat immer richtig funktioniert! Wer sollte das besser wissen
als ich? ;)

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



Re: Re: mikroskopisch winzig kleine Aenderung. (Zook,  2. Okt 2001, 19:22:48):
~#! rn=Terrorist rt=1002043194 rg=d.polar
~#! tid=1002042836
Richtig funktionieren und mit Tsunami kooperieren kann ja nur bedeuten,
moeglichst Lars moeglichts viele Besuche auf Tsunamis Konto abzustatten.

Zook.

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



Re^3: mikroskopisch winzig kleine Aenderung. (Zook,  2. Okt 2001, 19:23:03):
~#! rn=Zook rt=1002043368 rg=d.polar
~#! tid=1002042836
Jaja, ich weiss, dass da nen Typo drin ist ;)

Zook.

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



Re^4: mikroskopisch winzig kleine Aenderung. (Tsunami,  2. Okt 2001, 19:24:39):
~#! rn=Zook rt=1002043383 rg=d.polar
~#! tid=1002042836
Ich weiss nicht was du meinst. Der Schluessel ist doch voellig harmlos und
100% aus Metall. Keine versteckte Magie, kein Mini-Boings-Hoellenfeuer,
keine Giftstacheln, kein eingeschlossener Daemon, kein garnichts. 

Tsunami. Lieb und nett.

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



Re^5: mikroskopisch winzig kleine Aenderung. (Terrorist,  2. Okt 2001, 19:26:21):
~#! rn=Tsunami rt=1002043479 rg=d.polar
~#! tid=1002042836
Und sowas ist von Dir?

Schaem Dich, Du hast mich bitter enttaeuscht ;)

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



Re^6: mikroskopisch winzig kleine Aenderung. (Zook,  2. Okt 2001, 19:26:41):
~#! rn=Terrorist rt=1002043581 rg=d.polar
~#! tid=1002042836
Tsunami?


Zook.

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



Re^7: mikroskopisch winzig kleine Aenderung. (Tsunami,  2. Okt 2001, 19:27:13):
~#! rn=Zook rt=1002043601 rg=d.polar
~#! tid=1002042836
Haende weg von dieser Rubrik!

Bloedsinn bitte direkt nach Schmarrn.

Tsunami. Schaut streng.

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



Re^7: mikroskopisch winzig kleine Aenderung. (Varlarion,  2. Okt 2001, 19:27:15):
~#! rn=Zook rt=1002043601 rg=d.polar
~#! tid=1002042836
Glaubt nie einem Magier, der behauptet, lieb und nett zu sein!

Varl*, spricht aus Erfahrung

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



Re^8: mikroskopisch winzig kleine Aenderung. (Zook,  2. Okt 2001, 19:27:37):
~#! rn=Tsunami rt=1002043633 rg=d.polar
~#! tid=1002042836
Verleg doch, verleg doch! ;)

Zook kichert.

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



Re^8: mikroskopisch winzig kleine Aenderung. (Terrorist,  2. Okt 2001, 19:27:49):
~#! rn=Varlarion rt=1002043635 rg=d.polar
~#! tid=1002042836
Ich kenn nur einen der das staendig wiederholt ...

Aber der is nicht mehr wirklich Magier


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



Aenderung geaendert! (Tsunami,  2. Okt 2001, 19:42:38):
Auf vielfachen Wunsch eines Einzelnen kann man den Hauptmann weiterhin
entsorgen (ack, Zaubis!) und der Schluessel ist dann noch da.
Des weiteren kann man den Schluessel nun endlich loswerden.

Dankes- und Lobesbriefe an mich, Beschwerden an... hmmm... Zook z.B., der
idlet naemlich staendig nur rum anstatt was zu tun. Jawoll.

Tsunami. Mal wieder fleissig.

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



Re^5: mikroskopisch winzig kleine Aenderung. (Rochus,  2. Okt 2001, 19:43:44):
~#! rn=Tsunami rt=1002043479 rg=d.polar
~#! tid=1002042836
Dafuer aber viele nette Anregungen :)

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



Re^8: mikroskopisch winzig kleine Aenderung. (Mupfel,  3. Okt 2001, 00:19:16):
~#! rn=Varlarion rt=1002043635 rg=d.polar
~#! tid=1002042836
ja? 

-mupfel-

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



TTB (Amaryllis, 19. Nov 2001, 15:56:36):
Hi,

nachdem sich das TTB energisch allen "schoenen" Debug-Versuchen wiedersetzt
hat, habe ich es jetzt ersteinmal "brute-force" debuggt - nicht schoen, aber
brauchbar.

Soll heissen: Leute mit vielen Toden sollten sich nur noch einzelne anschauen,
da es sonst bisschen scrollt :-)

Aber ich arbeite bereits an einem Spielervorschlag, der das ganze grafisch
etwas optimierter ausgeben laesst.

Gruss,
Ama*

PS: "unt ttb" funktioniert jetzt auch.

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



Re: TTB (Gor, 19. Nov 2001, 17:07:59):
~#! rn=Amaryllis rt=1006181796 rg=d.polar
~#! tid=1006181796
Wenn du jetzt den restlichen 90% der Todestagebuchbesitzer erklaerst, dass TTB
== Todestagebuch is, isset ok. }:-)

Gor im Schnee

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



wir heissen alle Vanion willkommen (Tsunami, 11. Dez 2001, 20:46:22):
herzlich Willkommen Vanion, neuster Mitarbeiter Polar.

Ich hoffe wir werden noch viel von dir sehen/hoeren :)

Tsunami.

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



Re: wir heissen alle Vanion willkommen (Mandragon, 11. Dez 2001, 20:46:48):
~#! rn=Tsunami rt=1008099982 rg=d.polar
~#! tid=1008099982
Wahrscheinlich ne Menge Zaps :o)

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



Orks und Timing (Vanion, 21. Dez 2001, 12:32:03):
Hallo Abenteurer,

Nachdem Don Zacharias durch den mutigen Einsatz vieler von euch wieder Herr in
seinem eigenen Palast war, entschloss er sich, diesen erstmal von Grunde auf
zu renovieren.

Gestern gab der Don nach langem Warten einen Empfang, der den Abschluss der
Renovierungsarbeiten zum Anlass hatte. Viele bekannte Magier waren dort:
Rumata, Zook, Silvana und Tsunami. Aber auch NPCs aus der High Society der
Polarregion waren unter den Gaesten . Alles in allem war es ein rauschendes
und gelungenes Fest.

Nun moechte ich aber zu dem Grund kommen, aus dem ich diesen Artikel schreibe:

Einige Stunden nachdem der letzte Gast gegangen war, als Don Zacharias sich
gerade zu Bett begeben wollte, krachte es an der Eingangstuer, als wuerde da
draussen jemand Einlass verlangen. Die spaeten Gaeste hielten sich jedoch
nicht damit auf, auf den Hausherren zu warten, sondern schlugen mit ihren
Aexten die Haustuer ein.

DIE ORKS WAREN ZURUECK. MIT VERSTAERKUNG.

Der Don konnte den eindringenden Orks knapp mit dem Leben entkommen und haelt
sich nun wieder im Palast versteckt. Die Orks haben alle Fenster aufgerissen,
und im Schloss zieht es wie Hechtsuppe. Wenn nicht bald etwas passiert, holt
sich der Don eine fiese Erkaeltung und wird die Weihnachtsferien im
Krankenhaus verbringen.

Du siehst: Dem armen Mann muss geholfen werden!

Ich hoffe also auf Deinen Mut und Deine Geschicklichkeit, damit der Don bald
wieder Herr in seinem eigenen Hause ist.

Im Auftrag,
V*

PS: Ich danke den oben erwaehnten Magiern fuer ihre Mithilfe und 
    unermuedliches Testen.

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



Re: Orks und Timing (Morgoth, 21. Dez 2001, 13:47:33):
~#! rn=Vanion rt=1008934323 rg=d.polar
~#! tid=1008934323
Ne Metzelquest ?????

Geil, dann muss ich glatt meine Charaktere mal einloggen um wieder selbst zu
Questen !

M*

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



Re: Orks und Timing (Ark, 21. Dez 2001, 14:03:46):
~#! rn=Vanion rt=1008934323 rg=d.polar
~#! tid=1008934323
Hm, ist das jetzt ueberarbeitet worden oder ne Paraversion? ;^)


              *** ARK * the * Magnificent ***


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



Re: Re: Orks und Timing (Zanac, 21. Dez 2001, 14:04:24):
~#! rn=Ark rt=1008939826 rg=d.polar
~#! tid=1008934323
Haette spontan an ne Ueberarbeitung gedacht ...

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



Re^3: Orks und Timing (Muaddib, 21. Dez 2001, 14:05:01):
~#! rn=Zanac rt=1008939864 rg=d.polar
~#! tid=1008934323
Paraversion isses nicht :)

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



Edda Knutsson ihr Buero (Tilly, 16. Jan 2002, 16:09:39):
Alle adoptionswilligen Spieler einmal herhoeren:

Edda Knutsson nimmt ab sofort wieder ihre Arbeit auf. Hoffentlich
erledigt sie diese auch zu meiner (und Euren) vollsten Zufrieden-
heit.

Magier und Testspieler sind, wie gehabt, von diesem Service ausge-
schlossen. Da seht Ihrs mal, Magier sein ist doch nicht so toll ;)

 - Tilly -

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



Re: Edda Knutsson ihr Buero (Elberet, 16. Jan 2002, 16:10:44):
~#! rn=Tilly rt=1011193779 rg=d.polar
~#! tid=1011193779
was passiert denn wenn adoptierte bzw adoptierende magier werden?

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



Re: Re: Edda Knutsson ihr Buero (Tilly, 16. Jan 2002, 16:11:38):
~#! rn=Elberet rt=1011193844 rg=d.polar
~#! tid=1011193779
Ganz einfach, die koennen nicht Magier werden. >:)

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



Re^3: Edda Knutsson ihr Buero (Elberet, 16. Jan 2002, 16:12:12):
~#! rn=Tilly rt=1011193898 rg=d.polar
~#! tid=1011193779
coooooooooool :)

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



Re^4: Edda Knutsson ihr Buero (Firehawk, 16. Jan 2002, 16:37:28):
~#! rn=Elberet rt=1011193932 rg=d.polar
~#! tid=1011193779
Aha, das ist also mal ein Weg, die ganzen leute loszuwerden, die fragen, ob
ich nicht doch gerne Magier werden will >:)

Firehawk, darauf wartend dass Toechterchen sich wieder einloggt.

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



MHK (Amaryllis, 27. Jan 2002, 18:16:41):
$subject aufgrund berechtigter Beschwerden etwas abgeschwaecht.

Ama*

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



Soeren sein Speer (Tilly,  2. Feb 2002, 13:25:26):
Soderle, nach langer Abstinenz hat Soeren beschlossen,
wieder Lektionen im Speerkampf zu geben. Auch die Ab-
stufungen beim Skill-Info sollten das tatsaechliche
Koennen wiederspiegeln.

Damit Ihr das alles auch richtig schoen nutzen koennt,
hat Soeren natuerlich auch wieder einen seiner Speere
dabei wenn man ihn besucht. Sonst waere das recht sin-
nlos :-)

Bei der Skillberechnung sind die Bugs ausgebaut, kann
sein, das sich einige wenige (2-3) wundern werden,
wieso ihr Skill nicht mehr in so astronomischen Hoehen
liegt.

Vielen Dank an Eppi, der nicht lockergelassen hat, bis
ich den Speer debugt hatte und mir dann als aufopferungs-
williger Testi zur Verfuegung stand.

 - Tilly -

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



Langeweile (Gor, 15. Feb 2002, 14:57:11):
Hiho,
zusammen, mir war eben ein bisschen langweilig. Die Parawelt hat etwas
Nachwuchs erhalten. 

Gruesse & frohes Metzeln Gor

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



Pitlane speedlimit (Gor, 21. Feb 2002, 16:04:56):
Hiho,
beware, scripting in the inner pitlane will cause harmfull damage.

Danke fuer die Hinweise.

Gor

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



Zwergenangriff (Amaryllis, 24. Feb 2002, 15:51:47):
Hi,

das Messer sollte nun auch zu finden sein :-)
Ich frag mich nur, warum sich ausser _einem_ da keiner beschwert hat, bzw. wo
die die Information her hatten...

Ama*, fuer den Hinweis dankend.

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



Re: Zwergenangriff (Gor, 25. Feb 2002, 14:20:29):
~#! rn=Amaryllis rt=1014562307 rg=d.polar
~#! tid=1014562307
Das hab ich schon vor 1,5 Jahren gesacht. Das ich das Messer auch nur finde,
weil ich weiss wos ist. ;) Aber auf mich hoerste ja eh net.

Gor

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



Re: Re: Zwergenangriff (Joshua, 25. Feb 2002, 14:22:45):
~#! rn=Gor rt=1014643229 rg=d.polar
~#! tid=1014562307
Na ja, ich hab halt gedacht ich stell mich zu bloed an. Ich gehe ja
normalerweise erstmal davon aus, dass der Fehler an mir liegt und nicht am
Magier. Sehr Magier-freundliche Einstellung oder? Hab' da jedenfalls viele
Stunden nach gesucht und es nicht gefunden. Aber wenn ich immer, wenn ich was
nicht finde, ne Mitteilung an nen Magier schreibe, dann bin ich in spaetestens
zwei Tagen aus dem MG verbannt ;)
Josh

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



Re^3: Zwergenangriff (Gor, 25. Feb 2002, 14:24:31):
~#! rn=Joshua rt=1014643365 rg=d.polar
~#! tid=1014562307
Uebernimmst du das mal Zook? Das mit dem verbannen? };-)

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



Re: Re: Zwergenangriff (Amaryllis, 25. Feb 2002, 14:24:53):
~#! rn=Gor rt=1014643229 rg=d.polar
~#! tid=1014562307
Jo, stimmt. Aber wenigstens weiss ich jetzt, wer den Spielern dann immer die
Messer in die Hand gedrueckt hat :)

Ama*

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



Re^3: Zwergenangriff (Gor, 25. Feb 2002, 14:26:19):
~#! rn=Amaryllis rt=1014643493 rg=d.polar
~#! tid=1014562307
Gor denkt: "Klein, blond, ca. 165, der sich als Elf tarnt?"

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



Totenschaedel (Gor, 17. Mar 2002, 18:49:28):
Hallo liebe Spieler, es waere doch schoen, wenn ein Bugreport an mich gehen
wuerde, wenn $subject aus irgendeinem Grund nicht mehr geht, anstatt sich das
Maul zu zeressissen, dass es nicht mehr geht. Hier nocheinmal die Syntax fuer
die KL-Spieler unter euch. mail gor\ntotenschaedel\ndein schaedelgeht nicht
mehr\n. Laesst sich auch prima in ein Script einbauen. Jedenfalls sollte er
wieder gehen. 

Gor

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



Humni neu RM Polar (Tsunami, 17. Apr 2002, 01:35:00):
Hallo ihrs,

damit das auch noch in der Polarrubrik steht:

Humni ist per sofort Regionsmagier Polar und ich freue mich riesig dass
ich Verstaerkung erhalten habe.

Willkommen Humni!

Tsunami.

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



Sonderbare Ereignisse... (Humni, 10. Jun 2002, 17:54:49):
Sonderbare Ereignisse in einer mysterioesen Welt namens RL, die gerade dazu
fuehren, dass unser allseits beliebter Mudgott Zook sich in einem anderen
Kontinent aufhaelt, koennen nun angemessen bewettet werden. Hierzu dient eine
kleine Huette am Polarweg, die wohl nach diesen Ereignissen wieder
verschwinden wird.

Ich kann leider noch nicht hundertprozentig fuer die Buglosigkeit der Sache
garantieren. Deshalb geschieht das Abschliessen von Wetten auf eigene Gefahr.
Ja, das ganze sollte sogar Rebootfest sein. Aber sagt nicht, ich haette Euch
nicht gewarnt, wenn doch was fehlerhaft laeuft...

Humni macht mal wieder nur Unsinn....

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



Nicht der Rede wert .... (Tilly,  3. Jul 2002, 13:53:47):
Moin moin auch ...

Fuer alle wackeren Seher gibt es nun eine neue, schreckliche
und gefaehrliche Herausforderung:

      >>>>>>    DIE PARA-POST-QUEST IST DA!    <<<<<<

Natuerlich heisst sie anders, aber das wird den meisten von
Euch eh egal sein.

Mein innigster Dank gilt Silvana und Paracelsus, die mir bei
der Entwicklung in der Entstehungsphase (die nun schon 3 1/2
Jahre zurueckliegt) sehr geholfen haben, wie auch den zahl-
reichen anderen Magiern, die selbstlos Monster und anderes
zur Verfuegung stellten.

Aller guten Dinge sind drei. Oder vier. Wer weiss :)

Ich wuensch Euch viel Spass damit.


                            - Tilly -

p.s.: Unerwaehnt lassen moechte ich nicht Zephyr, Twingi und
      Anatol, die mir mit zahlreichen Textfiles ausgeholfen
      haben. Und natuerlich Ark, dessen erste Questabnahme
      dies war :)

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



Re: stati in B (Gloinson,  3. Jul 2002, 14:53:37):
~#! rn=Gnome rt=1025700336 rg=treffen
~#! tid=1025700336
Seher, welche die Quest noch nicht geloest haben muessen zum Mailschreiben
wieder auf die Postkabinen zurueckgreifen? :)

Gloin(son)

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



Re: Re: stati in B (Grimmborn,  3. Jul 2002, 15:04:39):
~#! rn=Gloinson rt=1025700817 rg=d.polar
~#! tid=1025700336
Und das hat jetzt genau was mit dem Berliner Stammtisch zu tun?

GdA

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



Re^3: stati in B (Gloinson,  3. Jul 2002, 15:10:11):
~#! rn=Grimmborn rt=1025701479 rg=d.polar
~#! tid=1025700336
Bei naeherer Betrachtung verbindet beide Artikel nur das bei mir herrschende
Netzlag.

Gloin(son)

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



Wettbuero (Humni, 16. Jul 2002, 11:12:27):
Huhu,

nachdem nun die Fussball-WM vorbei ist und da immer noch ein Wettbuero
rumsteht, ist die Frage, ob und wie es damit weitergehen soll. Das Ding war
(wie ich finde) fuer die Zeit der WM eine lustige und spontane Aktion, als
solche war es auch konzipiert, und eigentlich wollte ich das danach einfach
wieder abhaengen (konzipiert ist hier uebrigens ein hartes Wort fuer eine
kurze Ueberleg- und dann Einfach-drauflosprogg-Phase, daher buggte das anfangs
auch gut, aber die WM lief ja schon und ich wollte das schnell fertigbasteln).

Nun stellt sich die Frage, ob ueberhaupt generell erwuenscht ist, dass
RL-Einfluesse hier im MG Platz nehmen - schliesslich geht es hier um Eure
Muenzen. Ich weiss aber andererseits auch, dass Muenzen natuerlich eigentlich
scheissegal sind. Andererseits hab ich nicht die Zeit, z.B. jede Woche die
Bundesligaspiele einzutragen, mitsamt Ergebnissen usw. Wenn es eine Gruppe von
Leuten gibt (einer ist dafuer IMHO zu wenig) die das uebernhemen will oder die
das fuer was anderes verwenden will, bitte ich um Vorschlaege. Ebenso um
Meinungsaeusserungen ob sowas ueberhaupt gewuenscht wird.

Die Zeiten/Modalitaeten/Geldvergabe kann man alles veraendern, ich weiss, dass
an meiner Geldvergabe sehr viel herumgemosert wurde, und das bestimmt nicht
nur zu Unrecht. Wie gesagt: Es war ein Schnellschuss. Aber vielleicht findet
ja jemand Gefallen daran.

Dieserjenige/Diejenigen muessen uebrigens keine Magier sein. Und ich muss die
Zeit finden das umzubauen, wenn das wirklich weitergehen soll. Aber nun duerft
Ihr erstmal Eure Meinung sagen ;-)

Humni

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



Re: Wettbuero (Jameson, 16. Jul 2002, 11:14:50):
~#! rn=Humni rt=1026810747 rg=d.polar
~#! tid=1026810747
Warum muss man unbedingt um RL-Dinge wetten? :) Gibt bestimmt auch einige
nette Sachen, die im MG stattfinden.

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



Re: Re: Wettbuero (Elberet, 16. Jul 2002, 11:16:12):
~#! rn=Jameson rt=1026810890 rg=d.polar
~#! tid=1026810747
zB die ergebnisse in der schattenarena :)

Aber kann man da nicht schon wetten?

Elbi

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



Re^3: Wettbuero (Boing, 16. Jul 2002, 11:17:21):
~#! rn=Elberet rt=1026810972 rg=d.polar
~#! tid=1026810747
Natuerlich kann man da wetten ... die Frage ist, ob das noch irgendjemand
macht ...
  Boing

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



Re^4: Wettbuero (Elberet, 16. Jul 2002, 11:18:05):
~#! rn=Boing rt=1026811041 rg=d.polar
~#! tid=1026810747
also ich schaus mir auf jeden fall an, wenn ich gerad nicht idle bin

Elbi

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



Re^5: Wettbuero (Cuchullin, 16. Jul 2002, 13:37:01):
~#! rn=Elberet rt=1026811085 rg=d.polar
~#! tid=1026810747
Ich verlier da regelmaessig Cash. Bin mir sehr sicher, dass Durian da
das Rennen manipuliert, wenn grosse Einsaetze gegeben sind. ;)


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



Re: Nicht der Rede wert .... (Tilly, 25. Jul 2002, 14:37:34):
~#! rn=Tilly rt=1025697227 rg=d.polar
~#! tid=1025697227
Moin moin auch,

ich habe die ersten Questmails zur ParaPost-Quest ausgewertet
und einige Aenderungen vorgenommen.

Dank an diejenigen, die mit konstruktiver Kritik nicht ge-
spart haben.

Die wichtigste und auffaelligste Aenderung ist wohl, das ich
die einfachsten Briefkaesten verschoben habe. Mittlerweile
duerften sich die anderen Standorte rumgesprochen haben ...

Falls Probleme auftauchen sollten, mailt es mir bitte unver-
zueglich.

 - Tilly -

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



Kjarazzi ... (Tilly,  5. Aug 2002, 10:48:59):
... hat seinen Ring wiedergefunden.

 - Tilly - 

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



Postkutsche (Tilly, 30. Aug 2002, 23:42:31):
Moin moin,

die Postkutsche steht nun auch fuer 'reise' zur Verfuegung.

 - Tilly -

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



Re: Postkutsche (Tilly,  2. Sep 2002, 14:11:09):
~#! rn=Tilly rt=1030743751 rg=d.polar
~#! tid=1030743751
Slanderscree ebenso.

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



Re: Postkutsche (Tilly,  4. Sep 2002, 10:39:57):
~#! rn=Tilly rt=1030743751 rg=d.polar
~#! tid=1030743751
Pegasus auch.

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



Re: Re: Postkutsche (Muaddib,  4. Sep 2002, 18:40:13):
~#! rn=Tilly rt=1031128797 rg=d.polar
~#! tid=1030743751
lade xyz ein auf reise nach fernwest?

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



Re^3: Postkutsche (Roland,  4. Sep 2002, 19:38:35):
~#! rn=Muaddib rt=1031157613 rg=d.polar
~#! tid=1030743751
lade xyz ein zur reise nach fernwest ...(find ich bessa)
oder
lade xyz zur reise nach fernwest ein ...

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



Re^4: Postkutsche (Foobar,  4. Sep 2002, 19:40:35):
~#! rn=Roland rt=1031161115 rg=d.polar
~#! tid=1030743751
Oder:
>sag: Geh zu Fuss, Du Arsch.

Gruss,

   Foobar

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



Re^5: Postkutsche (Amaryllis,  4. Sep 2002, 19:41:20):
~#! rn=Foobar rt=1031161235 rg=d.polar
~#! tid=1030743751
Wieso auf diesem Gossenniveau?

Ama*, entsetzt.

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



Re^6: Postkutsche (Foobar,  4. Sep 2002, 19:41:56):
~#! rn=Amaryllis rt=1031161280 rg=d.polar
~#! tid=1030743751
Bin Zwerch, hab kein anderes.

Foobar

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



Re^7: Postkutsche (Mandragon,  4. Sep 2002, 19:58:46):
~#! rn=Foobar rt=1031161316 rg=d.polar
~#! tid=1030743751
Ja. Zwerge riechen gleich beim Reinkommen schon nach Gosse. Der restliche Raum
im Uebrigen auch, zumindest kurze Zeit spaeter.

Ma* (Elf und froh darueber)

P.S.: Weniger froh bin ich ueber meine gute Nase nur, wenn oben beschriebenes
Ereignis eintritt ....

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



Re^8: Postkutsche (Foobar,  4. Sep 2002, 20:22:53):
~#! rn=Mandragon rt=1031162326 rg=d.polar
~#! tid=1030743751
Tut mir leid, aber das ist schlicht falsch.

Wir riechen schon lange vor dem Reinkommen nach Gosse. Und zumindest ich bin
stolz drauf.

Foobar

PS: Wer hat Mandragon das Astloch weggenommen? ;o)

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



Re^9: Postkutsche (Orktoeter,  4. Sep 2002, 20:24:03):
~#! rn=Foobar rt=1031163773 rg=d.polar
~#! tid=1030743751
 Hatte der letze Elf den du umgehauen hast nur ein Bein? *g*

OrkT.

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



Top-Helden-Liste (Gor, 28. Okt 2002, 21:11:42):
Hallo ihr Edlen,
ihr werdet nun seit dem letzten Reboot wieder entsprechend gehuldigt. Was son
paar Ticks mehr ausmachen... };-)

Gor

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



Nur weil hier schon so lange nix drinsteht... (Humni, 12. Dez 2002, 16:41:54):
sonst wuerde ich das nicht erwaehnen.... aber ein uebler, boeser Hack, den man
mir bitte nicht nachmachen sollte, sorgt nun hoffentlich dafuer, dass ein
gewisser Gulli oefter anzutreffen ist und man nicht erst beim freundlichen
Magier darum bitten muss, dass er geladen wird.

Nicht weiter wichtig, wie gesagt, aber die Rubrik war so leer.

Humni

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



MHK (Amaryllis, 20. Jan 2003, 09:42:36):
$subject hat nun auch die ID "mhk".

Doll, nich?

Nur weil das soviele gefragt haben...

Ama*

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



Sowas. (Oham, 24. Feb 2003, 18:30:25):
Hmpf. Ganz schoen nervig, aber ich fange mal vorne an:

Wieder einmal war ich am Polarmeer gelandet und wieder einmal pfiff der Wind
mir eisig durch die Haare. Wieder einmal schaute ich auf den kleinen Ort, der
neben dem Saphirhafen gewachsen war und bereitete mich darauf vor, die
Bevoelkerung dieses kleinen Ortes um einige Leben zu dezimieren.

Das war eines der Hauptprobleme. Die Leute in diesem Ort vermehrten sich wie
die Karnickel, keine Ahnung was fuer Mittel die immer nahmen. Und dann
stellten sie so eine bloede Wache vor die Tuer. Ich glaube, der doofste von
ihnen durfte diesen Posten uebernehmen. Also ging ich hin (oder sonstwer) und
haute diese Wache kaputt. Das uebt - fuer uns Kaempfer jedenfalls - auch
unsere Technik, unseren Stil und unsere Kraefte.

Folglich zog ich den Bienenstachel aus der Parallelwelt und grinste die Wache
an. ,,Hallo eine Wache!'' sagte ich zu ihr. ,,Wie geht es Dir heute?'' -
,,Beschissen.'' antwortete diese. ,,Ich darf hier den ganzen Tag rumstehen und
das Tor bewachen. Wie schoen es waere, tot zu sein.''

Das ist kein groesseres Problem.'' erklaerte ich und durchbohrte den
daemlichen Depp mit meinem Bienenstachel. Seufzend sank er zu Boden
schaute mich noch einmal mit einem seltsam flehenden Blick an und blieb dann
liegen.

Ich packte seine Sachen in ein Paket und ging in die Siedlung rein, um dort
die Dockarbeiter und die uebrigen Wachen umzuhauen. Die nervten naemlich
gewaltig.

Kurz darauf lag die Bevoelkerung des Dorfes am Saphirhafen tot zu meinen
Fuessen und ich ging in die Kneipe um mich dort hemmungslos zu betrinken, wie
es meine Art ist. ,,Verstandesklarheit und Sinnesschaerfe leite unser
Denken.'' - das hab ich immer schon gewusst. Besonders klar kann mein Geist
geleitet werden, wenn er im Inneren von Flaschen gefunden wird, vor allem das,
was den Geist leitet. Wenn jemand meinen letzten Satz nicht verstanden haben
sollte, das macht nichts, der ergibt auch so keinen Sinn und ist auch nicht
wichtig.

Naja jedenfalls war ich gerade beim dritten Bier als von draussen ein lautes
Grollen zu hoeren war. ,,Scheisse'' dachte ich, ,,ein Erdbeben.'' Also ging
ich raus und schaute den Huegel empor, der sich suedlich des Saphirhafens
erstreckt, denn von dort kam das unheimliche Grollen.

Mit gewaltigem Donnergetoese kam eine Geroellawine den Berg hinunter. Die
Lawine begrub die Wache, die am suedlichen Ende der Siedlung gestanden hatte
und die verzweifelt noch versuchte wegzulaufen.

Ich dachte bei mir . o O (Prima, die Dumpfnase hatte ich ganz vergessen) und
ging dahin, um ihre Ausruestung mitzunehmen. Ich wuehlte ein wenig in den
Geroellteilen herum, und tatsaechlich, ich fand die stinkenden, faulenden
Ueberreste der Wache (jaja, die war noch nicht am faulen, und sie stank nur
nach Angstschweiss, aber das soll ja nach was klingen hier). Einige der
Koerperteile waren abgerissen, auch die Ruestung war nicht mehr zu brauchen,
nur das Eiselfenschwert war noch gut genug, um in mein Paket geschmissen zu
werden.

Seufzend stand ich da und schaute den Berg hinauf. Das war ja ein toller Tag.
Erst die bloeden Dockarbeiter hauen. Kannte ich den nix besseres? Durfte ich
nie mit den grossen Jungs spielen und hauen gehen? Die hauten den Drachengott,
und ich stand hier, schaute einer Lawine hinterher und suchte die bloeden
Sachen zusammen, die ich nichtmal selbst ermetzelt hatte. Deprimiert ging ich
in die Kneipe, um meine Verstandesklarheit wiederzufinden.

Fuenfzehn Bier spaeter wankte ich aus der Kneipe, um erstmal in den Struv
zurueckzukehren. Leider verwechselte ich links und rechts und lief so nicht
aus dem Saphirhafen, sondern ging nach Sueden. Naja, haette ja nix gemacht, da
gehts ja nach kurzer Zeit nicht weiter.

Dachte man zumindest, doch die Lawine war nun endgueltig den Pfad
hinabgesegelt, und der Berg suedlich des Saphirhafens muss wohl besteigbar
sein. Keine Ahnung. Jedenfalls bin ich vermutlich da hochgelaufen und stand
auf einmal vor einem riesigen Schloss.

Ich betrat das Schloss und fand lauter Merkwuerdigkeiten, doch davon will ich
lieber nix erzaehlen, denn das kann ich nicht, da ich alles vergessen habe, da
ich wohl voellig betrunken war. Es endete damit, dass ein grosser, boese
aussehender Zauberer meinte, die Zeit sei noch nicht reif und mich aus dem
Schloss warf. Er gab mir eine Schaufel mit, mit dem Auftrag, mir mein eigenes
Grab zu schaufeln, das wollte ich dann auch tun, war aber leider betrunken,
und grub so eine Schneewehe. Die baute ich ganz hoch. So hoch, dass keiner
mehr durchkam und die auch keiner mehr wegraeumen kann. Jedenfalls nicht bis
ich das will. So.

Tja, das war wohl das erste Mal, dass einer eine Schneewehe gebaut hat, und
nicht der Wind selbst (in Koproduktion mit dem Schnee) aber hey - so ist das
Leben nunmal. Ich selbst ging wieder zurueck, als ich langsam ausnuechterte
(das arbeiten machte ganz schoen warm, und ich schwitzte wie ein tambiarisches
Schwein, dabei schwitzte ich den ganzen Alkohol aus) und kam noch an einem
komischen Typen vorbei, der was von einer Hoehle und von einem Zauberer
brabbelte. Ich erklaerte ihm, zu dem komme er jetzt eh nicht mehr zurueck,
schliesslich haette ich da ja schon den Schneeberg, den ich mal Schneewehe
genannet hatte, hingeschaufelt, und damit ging es nicht wieder dahin. Er
meinte, sein alter Kumpel sei gefangen genommen worden und blah, war mir aber
auch egal, ich ging nach Hause und besoff mich ziemlich.

Naja, und dem Depp, der mir eine MPA in die Hand gedrueckt hat, sollte man
auch nochmal in alles Ruhe schimpfen. Ich schreibe da ja wirklich nur Scheisse
rein. Das ist ja unglaublich.

Oham der Avatar, nicht nuechtern.

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



Re: Sowas. (Oham,  7. Mar 2003, 14:05:16):
~#! rn=Oham rt=1046107825 rg=d.polar
~#! tid=1046107825
Noe. Sowas aber auch.

Was soll ich nun sagen? Ich ging nochmal daher. Und mit meinem grossen Holze
wollte ich sie hauen. Naja, nicht hauen, aber ich hab mal geschaut was es tut.
Und es vibrierte.

Manchmal vibrieren Dinge, die vorher nicht vibriert haben, sagte schon
irgendwann so ein komischer Typ (Lembold? Keine Ahnung.) Und nicht nur
Pinguine.

Wenn mich keiner versteht, bin ich vermutlich schon wieder betrunken.

Sowas aber auch.

Oham

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



Tja... (Humni,  2. Apr 2003, 14:19:54):
eigentlich dachte ich, Zauberer waeren die grossen Jammerer. Aber troestet
Euch, Eure Erwartungshaltung, jegliche Viecher von mir sollten einfach so
umfallen wenn Ihr alleine den Raum betretet, nur weil Ihr Kaempfer seid und
das bei Zauberern auch geht, wird sich immer mehr erfuellen. Bevor mir noch
mehr Leute in den Ohren liegen und mir Mails schreiben: Shnivla ist
mittlerweile was leichter geworden. Dafuer wird sie auch nie mehr interessante
Items kriegen als sie jetzt schon hat. So.

Und mehr Stupse wirds fuer sie auch nicht geben.

Humni geht auf Spielerwuensche ein - IHR lebt mit den Folgen.

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



Re: Tja... (Hisasul,  2. Apr 2003, 14:23:26):
~#! rn=Humni rt=1049285994 rg=d.polar
~#! tid=1049285994
Hmpf, so hart war die kleine aber auch nich :)
Du solltest Namen nennen, dann kann Briesel Verweise wgn Jammern verteilen
oder solche Leute aus der Gilde schmeissen ;)

His* kopfschuettelnd.

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



Re: Re: Tja... (Fenriz,  5. Apr 2003, 23:08:26):
~#! rn=Hisasul rt=1049286206 rg=d.polar
~#! tid=1049285994

Frauen zuerst...

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



Kurzinfo (Humni, 23. Apr 2003, 14:10:06):
Huhu,

gibt nen neuen NPC im Polar. Wichtig ist er fuer die Werwoelfe. Kann sein,
dass irgendwo noch mehr solche auftauchen. Nur dass keiner sagt, ich haette
nix gesagt ;-)

Humni

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



Schoener Mist. (Hugalf, 14. Mai 2003, 22:32:17):
Mitten in der Tundra. Nur Nebel um mich rum. Und dann diese ewigen Fata
Morganas. Kann mal jemand bitte diese doofe Tundra abstellen? Die nervt
wirklich. Vor allem, wenn man Berge sieht, wo vorher keine waren.

Hugalf ist ernsthaft sauer.

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



Parapostquestgrabsteine (Humni, 21. Mai 2003, 15:42:55):
Huhu,

es gab eine kleine Aenderung bei der Parapostquest. Ab sofort sollte es schon
ein Seher sein, der da gestorben ist, sonst ist das ja schliesslich albern,
wenn ihr einen Grabstein aufstellt. Selbstverstaendlich koennt ihr nach wie
vor Grabsteine aufstellen wie ihr lustig seid.

Humni

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



Re: Parapostquestgrabsteine (Humni, 21. Mai 2003, 15:51:28):
~#! rn=Humni rt=1053524575 rg=d.polar
~#! tid=1053524575
Noch einer: 

Faketode werden auch ausgebaut. Einen hab ich schon, fuer weitere Hinweise bin
ich dankbar.

Humni

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



Re: Re: Parapostquestgrabsteine (Humni, 21. Mai 2003, 16:08:45):
~#! rn=Humni rt=1053525088 rg=d.polar
~#! tid=1053524575
OK Ok das war ein Fehler.. bitte keine Hinweise auf Faketode mehr, ich komm
sonst gar nicht mehr zum arbeiten. Ich versuchs anders.

Humni

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



Re: Na super. (Zook, 12. Jun 2003, 11:01:09):
~#! rn=Catweazle rt=1055403987 rg=gejammer
~#! tid=1055403987
Manches Gejammer.... ach, was erzaehl ich da? Kuemmert Euch doch um Euren
eigenen Mist! ;)

Zook.

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



Re: Re: Na super. (Catweazle, 12. Jun 2003, 11:04:13):
~#! rn=Zook rt=1055408469 rg=d.polar
~#! tid=1055403987
Du musst ja auch nicht ueberall deine Finger im Spiel haben, gell?

Du bist Gott, was interessiert es dich da, ob Werwoelfe in Eismienen stehen.
Oder ob darueber gejammert wird ...

YTC

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



Re^3: Na super. (Zook, 12. Jun 2003, 11:05:11):
~#! rn=Catweazle rt=1055408653 rg=d.polar
~#! tid=1055403987
Das war auch nur ein Artikel im Rahmen des Dienstaufsicht ueber die vorschnell
handelnden [W] ;)

Zook.

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



Neulich, auf einer wohlbekannten Insel... (Gabylon, 15. Jun 2003, 23:22:57):
Ein riesengrosses Schneefeld.
Es gibt einen sichtbaren Ausgang: sueden.
Es wird merklich kuehler. Ein leises Summen ertoent.
Ploetzlich fliegt eine kleine Waldfee herein und kuesst Dich auf die Nase.
Sie fluestert: 'Seid gegruesst, Gabylon!'
Du schaust etwas verwirrt.
 Alsdann bilden sich kleine goldene Sternchen aus dem Nichts zu einem Wirbel,
der langsam menschenaehnliche Gestalt annimmt, bis nach einigen Momenten vor
Dir eine wunderhuebsche Frau knapp ueber dem Boden schwebt.
 Sie hat ein langes weisses Gewand an, welches so hell strahlt, dass Du die
Augen zusammenkneifen musst, um etwas zu erkennen.
Ihre Lippen bewegen sich kaum, als sie anfaengt zu reden:
 'Hallo Gabylon. Ich bin Cherlindrea, Hueterin von Ti Aslin.'
Ihre Stimme klingt melancholisch und geheimnisvoll, so dass Dir ein leichter
Schauer ueber den Ruecken jagt.
Du wagst nicht wirklich, etwas zu sagen.
 'Wir brauchen Eure Hilfe... Galdakor ist von Koenigin Bavmordas Truppen dem
  Erdboden gleichgemacht worden, und ihre Macht wird staendig groesser.
  Ti Aslin ist auch nicht mehr sicher, seitdem Bavmorda Raziel verbannt hat.'
Cherlindrea macht eine kleine Pause. Dabei schwirrt sie mal hier, mal dahin,
gerade so, als ob sie ueberlegen muesste, was sie als naechstes sagen soll.

Dann faehrt sie fort:
'Ich weiss, dass Ihr selber nicht in das Gefuege eingreifen duerft. Drum
 bitte ich Euch, Euch mindestens drei, doch besser vier tapfere und erfahrene
 Recken zu suchen, die Bavmorda Einhalt gebieten koennen. Wenn sie es nicht
 schaffen, ist Ti Aslin dem Untergang geweiht...'
Du schluckst.
Du sagst:
 'Und da kommt Ihr gerade zu mir, Cherlindrea? Wer sagt Euch, dass ich der
  Richtige bin, um diese Eskorte zusammenzustellen?'
Cherlindrea wispert:
 'Ich weiss, dass Ihr der Richtige seid, Gabylon. Ihr seid eine gute Freundin
  der Herrin des Sees. Also habe ich Vertrauen in Euch. Lasst Bavmorda
  vernichten, befreit Raziel und der Lohn fuer die Muehen der tapferen Helden
  wird gross sein!'
Du ziehst eine Augenbraue hoch.
Du fragst: 'So? Welcher Lohn erwartet sie denn? Vielleicht kann ich sie
  damit locken?'
Cherlindrea laechelt wissend:
 'Nunja, ausser der Gewissheit, dass sie Ti Aslin und der ganzen Nordwelt
  einen grossen Dienst erwiesen haben... lasst Euch ueberraschen...'
Du seufzst tief.
Cherlindrea schwirrt etwas naeher heran:
 'Ich wuensche Euren Helden viel Glueck, das koennen sie wahrlich
  brauchen...'

Als der Wirbel wieder kleiner zu werden beginnt und die Sternchen erst
verblassen, dann zusammen mit Cherlindrea allmaehlich durchsichtig werden,
meinst Du, aus Richtung der Sternchen noch Wortfetzen zu vernehmen:
 '...geistigen Beistand... dringend notwendig...'

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



Eine Hexe... (Gabylon,  4. Jul 2003, 14:26:17):
war auf einem Hexenlehrgang und ist jetzt noch boeser und furchtbarer
geworden.

ich soll euch nur warnen...

gab

-----------------------------------------------------------------------------



es weihnachtet sehr (Uschi, 23. Jul 2003, 14:21:17):
es ist hochsommer und wie jeden sommer und winter und fruehjahr und ueberhaupt
zu jeder zeit, ist bei den innuits weihnachten. darum hab ich mich eben mit
gluehwein betrunken und massig lebkuchenherzen aufgegessen.
und gleich halte ich noch ein schwaetzchen mit lotta, die ist naemlich genauso
blond wie ich!

beste weihnachtliche gruesse
uschi, 22, frisoese

-----------------------------------------------------------------------------



Die Zoellner in Fizbans Gebiet im Polar ... (Arathorn, 29. Jul 2003, 23:30:02):
... sind derzeit leider unpaesslich. 

Aufgrund eines Bugs ist das Teilgebiet ab dem oestlichen Zollhaus vorueber-
gehend nicht zugaenglich. Wer dort ein Seherhaus gebaut hat, sollte berueck-
sichtigen, dass der Weg aus dem Gebiet heraus auch nicht funktioniert. ;-)

Sorry dafuer, aber mit den mir zur Verfuegung stehenden Moeglichkeiten geht
das leider nicht anders.
Gruss, 
Arathorn.

P.S.: Der verursachende Bug ist bekannt und wird sehr wahrscheinlich in
      Kuerze behoben werden.

-----------------------------------------------------------------------------



Re: Die Zoellner in Fizbans Gebiet im Polar ... (Humni,  4. Aug 2003, 14:39:33):
~#! rn=Arathorn rt=1059514202 rg=d.polar
~#! tid=1059514202
Der Bug wurde behoben. Das Gebiet ist wieder da.

Viel Spass,

Humni

-----------------------------------------------------------------------------



Tief im Norden (Stop, 11. Aug 2003, 09:58:14):
Erschreckend musste ich feststellen, dass sich tief im Norden eine Schneise,
nennt es auch weg ;o) - geschlagen hat, die kaelter ist, als was man sonst in
unserer Welt kennt.
Und mich duenkt das Gefuehl, dass das erst der harmlose Anfang von etwas ist,
dass in absehbarer Zukunft den Himmel ueber dem Polar in blutrot tauchen wird.
Denn aus sicherer Quelle habe ich erfahren, dass eine ominoese Heilige eine
absurde Allianz mit einem boesen schwarzen Drachen geschlossen hat, der
besonders um Mitternacht in weissen Laken ueber die Lande zieht, um euch
Freunde das Schrecken zu lehren!
Nehmt euch in acht, dass Erenc euch nicht das Messer in den Ruecken rammt!
In voelliger Verstoerung
Stop

-----------------------------------------------------------------------------



Re: Tief im Norden (Zarniya, 11. Aug 2003, 15:57:21):
~#! rn=Stop rt=1060588694 rg=d.polar
~#! tid=1060588694
zum glueck ist hier immer MorgenGrauen.... 

-----------------------------------------------------------------------------



seherhaustiere (Leibi, 13. Aug 2003, 20:00:05):
lotta hat nun endlich ihre formulare fuer die seherhaustiere geliefert
bekommen und verteilt nun gerne einzigartige tiere fuers haus mitsamt dem
kaefig.

viel spass damit.
leibi

-----------------------------------------------------------------------------



Re: Tief im Norden (Humni, 16. Aug 2003, 19:48:25):
~#! rn=Stop rt=1060588694 rg=d.polar
~#! tid=1060588694
Solltet ihr auf Stops Spuren bemerkt haben, dass der Weg.. inkonsistent ist:
Das ist er nun nicht mehr ;-)

Humni

-----------------------------------------------------------------------------



Frustbewaeltigung (Humni, 11. Sep 2003, 23:38:21):
Huhu,

aufgrund akuter Frustbewaeltigungsnot gibts wen neues zum Umhauen. Bitte alle
machen. Und moeglichst langsam und blutig.

Ja, ich nutze meinen RM-Posten gerade aus.

Humni
PS: Stichwort Baerenhoehle.
PPS: Noch ist er Selbstzweck, er wird noch einen Sinn fuer die Werwoelfe
kriegen.

-----------------------------------------------------------------------------



auf dem weihnachtsmarkt.... (Uschi, 19. Sep 2003, 01:13:29):
 ... hab ich tatsaechlich so blaue dixiklos entdeckt.
die waren so blau, dass man fast den schmutz nimmer gesehen hat. aber ich
konnte trotzdem darin meine haare richten. besuch von einer klofrau waere
nett.

beste blonde gruesse
uschi - 22 - frisoese

-----------------------------------------------------------------------------



Re: auf dem weihnachtsmarkt.... (Gloinson, 19. Sep 2003, 01:15:55):
~#! rn=Uschi rt=1063926809 rg=d.polar
~#! tid=1063926809
Mhh. Dixiklos. Damit verbinde ich seit einiger Zeit die Erinnerung an einen
sehr geschichtstraechtigen Park in Moskau (Kolomenskoje, auf der (grossen)
Liste der 7 neuen Weltwunder). Der Behaelter war gefuellt. Es ragte die Brille
hoch. Es war schon um die Brille herum alles zu. Aber man konnte den Raum noch
benutzen um mit Abstand und Luftanhalten ungesehen die Blase zu entleeren.


-----------------------------------------------------------------------------



Re: auf dem weihnachtsmarkt.... (Imda, 19. Sep 2003, 01:19:59):
~#! rn=Uschi rt=1063926809 rg=d.polar
~#! tid=1063926809
Da mussich doch gleich mal testen, ob ma die auch umschmeissen kann...

-----------------------------------------------------------------------------



Re: Re: auf dem weihnachtsmarkt.... (Leibi, 19. Sep 2003, 01:21:31):
~#! rn=Imda rt=1063927199 rg=d.polar
~#! tid=1063926809
neee, klein uschi ist zu schwach, das umzuwerfen. aber vielleicht kann man ja
bald mal die waende bemalen :)

leibi

-----------------------------------------------------------------------------



Re^3: auf dem weihnachtsmarkt.... (Imda, 19. Sep 2003, 01:21:55):
~#! rn=Leibi rt=1063927291 rg=d.polar
~#! tid=1063926809
erstmal mussich das dumme ding finden. hab mich schonwoeder verlaufen

-----------------------------------------------------------------------------



Re^4: auf dem weihnachtsmarkt.... (Bran, 19. Sep 2003, 01:22:31):
~#! rn=Imda rt=1063927315 rg=d.polar
~#! tid=1063926809


gaaaaanz falsche gegend :)

-----------------------------------------------------------------------------



Re^5: auf dem weihnachtsmarkt.... (Amazora, 19. Sep 2003, 10:59:23):
~#! rn=Bran rt=1063927351 rg=d.polar
~#! tid=1063926809
vielleicht kann man die anzuenden? ;-)
dixiklos erinnern mich immer an das force attack...

-----------------------------------------------------------------------------



Rodelbahn (Humni, 16. Feb 2004, 22:56:44):
Huhu,

einen Bug hab ich gefixed. Wenn noch was auffaellt bitte melden, und sorry,
dass das so lange gedauert hat, aber:

Ich erklaere die Rodelbahn hiermit bis zum Auftauchen des naechsten
Rodelbahn-Bugs fuer wieder benutzbar. Viel Spass.

Humni

-----------------------------------------------------------------------------



Kachelmann (Tilly, 24. Feb 2004, 01:31:23):
Moin auch,

der Kachelmann ist wieder da. Alle, die die Quest geloest haben, koennen
ihn nun aufsuchen. Muessen natuerlich vorher noch zu wem anders, wegen ...
dem .. aeh der .. oder so ... na Ihr werdets schon wissen.

Wer den EK bereits hatte muss ihn sich leider nochmal holen. Aber so
schwer wars nun auch nicht.

Desweiteren hab ich 3-4 neue Empfaenger fuer die ParaPost-Quest einge-
tragen. Als naechstes kommen die Briefkaesten dran >:)

 - Tilly -


-----------------------------------------------------------------------------



Kjarazzi (Tilly, 22. Mar 2004, 00:58:05):
Moin moin.

Ich habe, und mein Dank gebuehrt der spielenden Balance, Kjarazzi
eine Kleinigkeit zugesteckt. Ist vielleicht fuer die Kleineren
unter uns von Interesse :-)

 - Tilly -

-----------------------------------------------------------------------------



Kobolde... (Humni,  6. Jun 2004, 18:34:26):
.. fallen jetzt eventuell um, nachdem das halbe Mud meint, es waere wirklich
gemein, boese, schrecklich, furchtbar, grauenhaft, ekelerregend, hundsgemein
und nur eines schwarzen Drachen wuerdig, NPCs, die nicht umfallen stupsen zu
lassen.

Nachdem ich diverse drohende Faeuste gesehen und mich an ihren ohnmaechtigen
Gesten geweidet habe, diverse Spieler die voller Ueberzeugung meine
Inkompetenz verkuendeten ausgelacht und mich ueber ihre Machtlosigkeit
innerlich lustig gemacht habe droht nun eine weitere Gefahr: Dass ich mich
totlache, wenn ich so weiter mache.

Den Gefallen tue ich Euch natuerlich nicht, sonst waere ich ja lieb. Um Euch
weiterzuquaelen wird also nun ein gewisser Kobold vielleicht mal umfallen.
Wenn er Euch nicht ,,umfaellt'', wie das in der Fachsprache der NPCs so
heisst.

Humni, schrecklich, boese und gemein und wills bleiben.

-----------------------------------------------------------------------------



Re: Kobolde... (Zook,  6. Jun 2004, 18:38:44):
~#! rn=Humni rt=1086539666 rg=d.polar
~#! tid=1086539666
HOSSA!

Zook.

-----------------------------------------------------------------------------



Wetten, Wetten, Wetten! (Humni, 12. Jun 2004, 11:31:50):
Hallo wettgeilies Pack,

das Wettbuero im Polar ist wieder eroeffnt, diesmal mit den Spielen der
Fussball-EM. Die ersten sind schon eingetragen, den Rest der Vorrunde bau ich
gleich. Nein, die Quoten haben sich nicht geaendert. 

Die Topliste wird natuerlich weitergefuehrt.

Viel Spass!

Humni

-----------------------------------------------------------------------------



Re: Wetten, Wetten, Wetten! (Zook, 12. Jun 2004, 12:22:52):
~#! rn=Humni rt=1087032710 rg=d.polar
~#! tid=1087032710
Wieso wird die Toplsite "natuerlich" weitergefuehrt? Da steht doch sogar
noch dran, dass es die Topliste der WM-Tipper sei. Aber wir tippen doch 
fuer die EM, oder?

Zook quengelt um eine frische EM-Topliste.


-----------------------------------------------------------------------------



Re: Re: Wetten, Wetten, Wetten! (Humni, 12. Jun 2004, 13:20:16):
~#! rn=Zook rt=1087035772 rg=d.polar
~#! tid=1087032710
Na gut.

Humni loescht dann mal.

-----------------------------------------------------------------------------



Wettbuero (Humni, 12. Jun 2004, 18:06:35):
Da ich shcon bei der WM darueber stundenlang diskutieren musste und das nicht
nochmal tun werde:

1. Ich werde die Formeln fuer den Gewinn nicht aendern
2. Ja, wenn man viel viel Geld auf ein Ergebnis setzt kann es sein, dass man
wenn man nur die Tendenz richtig hat trotzdem Verlust macht. Das liegt daran,
dass das Wettbuero keine Geldquelle sein soll, und an den Formeln. Fuer diese
gilt Punkt 1.
3. Selbiges kann passieren, wenn andere schon viel auf ein zu erwartendes
Ergebnis gesetzt haben.

Humni

-----------------------------------------------------------------------------



Re: Wettbuero (Humni, 14. Jun 2004, 14:38:52):
~#! rn=Humni rt=1087056395 rg=d.polar
~#! tid=1087056395
Also, da das auch nicht klar zu sein scheint:

Wenn ihr nicht auf der Topliste erscheint, ist das nicht sofort ein Bug.
Ihr erscheint erst auf der Topliste, wenn ihr INSGESAMT durch Wetten Gewinn
gemacht habt.
Sprich: Ihr habt 1000 Muenzen auf ein Ergebnis gesetzt, mit dem eh jeder
rechnet (z.B. Deutschland gewinnt gegen Saudi-Arabien bei der letzten WM),
aber das falsche Ergebnis getippt (7:0 statt 8:0). Das Wettbuero zahlt dafuer
nur 900 Muenzen aus -> Ihr habt 100 Muenzen verlust, da nur die Tendenz
stimmte, und seid NICHT auf der Topliste.
Oder ihr habt 3 Spiele gesetzt, jeweils 1000 Muenzen, lagt 2 mal daneben und
habt einmal 1580 Muenzen gewonnen -> Ihr habt 1420 Muenzen verlust und
erscheint NICHT auf der Topliste.

Nur zum klarstellen ;-)

Humni

-----------------------------------------------------------------------------



Re: Re: Wettbuero (Catweazle, 14. Jun 2004, 15:05:01):
~#! rn=Humni rt=1087216732 rg=d.polar
~#! tid=1087056395
Prima.

Ich hab gewettet.

Wo war das Wettbuero doch gleich? :-)

YTC

-----------------------------------------------------------------------------



Speermeister-Speer / Soeren (Tilly, 17. Jun 2004, 15:28:28):
Wegen Auftragens einer neuen, wiederstandfaehigeren Politur werden
heute Abend alle im Umlauf befindlichen Speere des Speermeisters
einer Ueberholung unterzogen.

Aus technischen Gruenden werden alle Lernerfolge die AB 18 Uhr des
heutigen Tages erzielt werden, NICHT erfasst.

Die Auslieferung der neuen Speere wird durch einen weiteren Artikel
in dieser Rubrik bekannt gegeben.

 - Tilly - 

-----------------------------------------------------------------------------



Speermeister-Speer / Soeren, Teil II (Tilly, 17. Jun 2004, 19:50:57):
Moin moin,

die Rueckrufaktion des Speeres ist soweit erfolgreich verlaufen.

Ich bedanke mich bei den Spielern der Balance die ihn in den
letzten Wochen ausfuehrlich getestet haben.

Was ist nun neu?

Die Skillberechnung sollte sich etwas einfacher gestalten und
nicht mehr so anfaellig bei Stecken/Zuecken in Verbindung mit
Waffenguertel oder anderen Behaeltnissen sein.

Der Stand der naechsten Top-SchuelerInnen-Liste entspricht etwa
dem Stand von 18:30h heute. Der Lernerfolg in der Stunde bis ca.
19:30h blieb unberuecksichtigt.

Die Intuition sollte etwas ausfuehrlicher sein, aber immer noch
weit davon entfernt, den Erfolg in Prozentschritten anzuzeigen.
Eventuell bekomme ich Soeren dazu, seine Informationen endlich
auch dem tatsaechlichen Stand entsprechend zu formulieren.

Bei Problemen bitte Mail an mich.

 - Tilly -

p.s.: Das mit der Politur war gelogen :-)

-----------------------------------------------------------------------------



Moulokin (im gefaehrlichen Teil der Wirklichkeit) (Tilly,  5. Sep 2004, 22:56:58):
Moin moin,

im Suedosten von Moulokin ist es den Centauren gelungen, noch etwas
mehr Zerstoerung zu leisten. 

Vielleicht faellt da auch eine Kleinigkeit fuer Euch ab.

Gruss,

 - Tilly - 

p.s.: Wer es als erstes findet (Magier ausgenommen) bekommt nen Keks.

-----------------------------------------------------------------------------



Re: Moulokin (im gefaehrlichen Teil der Wirklichkeit) (Zook,  5. Sep 2004, 22:58:54):
~#! rn=Tilly rt=1094417818 rg=d.polar
~#! tid=1094417818
Explodiert der Keks dann wenigstens?

Zook.

-----------------------------------------------------------------------------



Re: Re: Moulokin (im gefaehrlichen Teil der Wirklichkeit) (Tilly,  5. Sep 2004, 22:59:52):
~#! rn=Zook rt=1094417934 rg=d.polar
~#! tid=1094417818
Wenn Dein Zweiti es als erster findet bekommt er die Knalltuete >:)

-----------------------------------------------------------------------------



Re: Moulokin (im gefaehrlichen Teil der Wirklichkeit) (Tilly,  5. Sep 2004, 23:10:51):
~#! rn=Tilly rt=1094417818 rg=d.polar
~#! tid=1094417818
Der Keks ist wech :)

-----------------------------------------------------------------------------



Neuer RM (Humni, 23. Nov 2004, 14:34:27):
Ja, das muss auch hier stehen, auch wenns in Bekanntmachungen schon steht:

Willkommen, Noel, als neuer RM des Polargebietes!

Humni freut sich auf die Zusammenarbeit.

-----------------------------------------------------------------------------



Re: Neuer RM (Noel, 23. Nov 2004, 14:42:43):
~#! rn=Humni rt=1101216867 rg=d.polar
~#! tid=1101216867

Danke, danke :-)

Damit hab ich endlich die Moeglichkeit, in meiner liebsten Region
nicht nur zu proggen, sondern ... *g*

Auf gute Zusammenarbeit und danke Dir und Zook fuer die Befoerderung!

Noel


-----------------------------------------------------------------------------



Re: Re: Neuer RM (Gloinson, 23. Nov 2004, 14:50:31):
~#! rn=Noel rt=1101217363 rg=d.polar
~#! tid=1101216867
Hui, dann gibt es ja bald wieder eklige Gegenden und ein Tor oeffnet sich und
Gloin kann da alles bekehren und Cakey kann da wieder sterben ...


-----------------------------------------------------------------------------



Geruechte aus dem Polargebiet (Noel,  2. Feb 2005, 18:53:08):

 Wie Wanderer zu berichten wissen, gehen in der Naehe der
 alten Torfstecherei oestlich von Umjak merkwuerdige Dinge
 vor.

 Man sagt, das Moor dort wuerde sich veraendern und neue
 Wege und Gefahren ans Licht bringen.

 Genaues weiss man nicht, aber nach dem Verschwinden einer
 Gruppe von Forschern ...

 cu,
 Noel


-----------------------------------------------------------------------------



Re: Geruechte aus dem Polargebiet (Zarniya,  3. Feb 2005, 05:28:01):
~#! rn=Noel rt=1107366788 rg=d.polar
~#! tid=1107366788
hmm ist das nicht inzwischen langweilig? Wanderer berichtet, Verschwinden
einer Forschergruppe.... kann sich noch einer an die wirklich grandiosen
Ankuendigungen neuer Gebiete erinnern? Kennt noch einer Dancer? :)

Gruss, 
Marc

-----------------------------------------------------------------------------



Re: Re: Geruechte aus dem Polargebiet (Deepblue,  3. Feb 2005, 10:30:29):
~#! rn=Zarniya rt=1107404881 rg=d.polar
~#! tid=1107366788
Kannst ja mal im Archiv kramen und was re-senden :-)
BTW: Der Wanderer weiss garnix :-)

-----------------------------------------------------------------------------



Re: Re: Geruechte aus dem Polargebiet (Gloinson,  3. Feb 2005, 13:23:51):
~#! rn=Zarniya rt=1107404881 rg=d.polar
~#! tid=1107366788
Liest du eigentlich manchmal noch die Zeitung oder ueberliest du zB Arks
Questankuendigungen damit dein "frueher war alles besser" ueberzeugender
klingt?


-----------------------------------------------------------------------------



Re^3: Geruechte aus dem Polargebiet (Muadib,  3. Feb 2005, 17:08:59):
~#! rn=Gloinson rt=1107433431 rg=d.polar
~#! tid=1107366788
ich kann mich an die schwerttaenzerankuendigung gut erinnern. obwohl sie gar
nicht veroeffentlicht wurde

-----------------------------------------------------------------------------



Re: Geruechte aus dem Polargebiet (Bambi,  4. Feb 2005, 19:12:49):
~#! rn=Noel rt=1107366788 rg=d.polar
~#! tid=1107366788
Ha. Das liegt aber nicht am Sumpf, sondern an der Tatsache, dass ein paar Oger
die Hydra metzeln wollten. Bloed wie sie sind, haben sie sich aber verlaufen
und sind auf besagte "Gruppe von Forschern" gestossen. Tja. Die Forscher
hatten wohl Hydrahoerner dabei, sonst waere natuerlich nie im Leben eine
derartige Verwechslung moeglich gewesen.

-----------------------------------------------------------------------------



Re: Re: Geruechte aus dem Polargebiet (Kellybundy,  4. Feb 2005, 20:48:01):
~#! rn=Bambi rt=1107540769 rg=d.polar
~#! tid=1107366788
Und? haben nu die Forscher die Oger vergewaltigt oder umgekehrt?

-----------------------------------------------------------------------------



Eisfestung einige Tage abgehaengt (Noel,  6. Feb 2005, 20:53:56):

hallo,

wie einige von euch bemerkt (zu spueren bekommen) haben,
sind die zwergenangriffe etwas ausser kontrolle geraten.

an der entfilzung der verlaus... aeh behebung des problems
wird gearbeitet.

lg und cya,
noel


-----------------------------------------------------------------------------



Re: Eisfestung einige Tage abgehaengt (Amaryllis,  7. Feb 2005, 15:44:58):
~#! rn=Noel rt=1107719636 rg=d.polar
~#! tid=1107719636
Moin,

der Zwergenangriff ist wieder am Start.

Gruss,
Ama*

-----------------------------------------------------------------------------



In Ermangelung ... (Tilly, 31. Jul 2005, 21:32:40):
... einer eigenen Gildenrubrik eben an dieser Stelle:

Fuer die Eiskrieger gibts eine neue (die erste! :) Gildenquest. Wow.

-----------------------------------------------------------------------------



Re: In Ermangelung ... (Tilly,  1. Aug 2005, 22:02:07):
~#! rn=Tilly rt=1122838360 rg=d.polar
~#! tid=1122838360
Na sowas ... was ein Typo alles anrichten kann >:)

Wer von Euch beim ID Lowfyr statt Lofwyr stehen hat moege sich bitte per Mail
bei mir melden. Ich kann das auch in Eurer Abwesenheit fixen, aber erst wenn
ihr bei der entsprechenden Aufgabe angelangt seit.

-----------------------------------------------------------------------------



Re: Re: In Ermangelung ... (Vector,  1. Aug 2005, 22:13:49):
~#! rn=Tilly rt=1122926527 rg=d.polar
~#! tid=1122838360
merci.
Vector, morgen wieder Drachen jagend

-----------------------------------------------------------------------------



Re: In Ermangelung ... (Tilly,  4. Aug 2005, 14:33:26):
~#! rn=Tilly rt=1122838360 rg=d.polar
~#! tid=1122838360
So, und nochmal was. Gute Neuigkeiten :-)

Wer durch Typo oder anderes Probleme mit dem Kaestchen und 
seiner/ihrer aktuellen Aufgabe hat moege sich doch einfach
zu Lasse Rein begeben und diesem das Kaestchen zeigen.

Er (Lasse) hat mir versichert, den/die Fehler dann zu
beheben. Hoffentlich macht ers auch >:)

Tilly

-----------------------------------------------------------------------------



An alle Schueler/-innen von Soeren (Tilly, 24. Aug 2005, 13:46:43):
Der Lehrmeister Soeren Moerken hat mir aufgetragen Euch mitzuteilen das
seine Arbeit an einer neuen Generation von Speermeister-Speeren vom 
Erfolg gekroent sei. Durch eine neuartige Ausbalancierung sei es nun 
wohl auch moeglich ihn einhaendig zu zuecken.

Nunja, wenn er meint das huelfe Euch weiter :)

Tilly

-----------------------------------------------------------------------------



Re: An alle Schueler/-innen von Soeren (Darkwing, 24. Aug 2005, 14:48:08):
~#! rn=Tilly rt=1124884003 rg=d.polar
~#! tid=1124884003
Wenn noch eine Blasrohtoption und ein paar Knoepfe fuer verschiedene
Schadensarten drin waehren ... dann wird es auch nichts helfen. Das einzig
wahre SMS ist ein Schwert :-)

-----------------------------------------------------------------------------



Endlich! (Tilly, 11. Nov 2005, 02:32:58):
Das mag ein mancher von Euch sagen, wenn er/sie/es erfaehrt (letzteres gilt
fuer Zwerge), das es nun endlich die Belohnung fuer die ParaPost-Quest gibt.
Nachdem ich mich mehrere Jahre davor gedrueckt habe ... nunja, geht hin - 
holts Euch :-)

-----------------------------------------------------------------------------



Noch so einer... (Humni, 12. Nov 2005, 09:45:29):
Ein gewisser Mensch, der einigen Icewars-Spielern bekannt sein sollte, steht
im Polar herum. Eigentlich ist er fuer die Werwoelfe gut. Schadet also nichts,
wenn ihr den jetzt schonmal besuchen geht.

Humni

-----------------------------------------------------------------------------



Noch einer! (Humni, 21. Dez 2005, 18:15:01):
So. Es tut sich was im Polar. Lukand kennt sich ein wenig aus, wenn man ihn
nach Zukling fragt.

Ja. Da stupst was. Fuer mich. Wenn ihr sterbt... wuahahahaha! (Naja, gut, so
schlimm isses nicht, wenn man aufpasst).

Humni

-----------------------------------------------------------------------------



Knueppel (Humni, 25. Feb 2006, 01:53:45):
Ein gewisser Knueppel Bendeidigschen Ursprungs mag nun nicht mehr die volle
Durchschlagskraft haben. Schlagt bitte nicht den RM Polar, ich war nur
ausfuehrendes Organ, schlagt die Balance. Argl, Mist..

Humni

-----------------------------------------------------------------------------



Persoenlicher Frust... (Humni,  2. Mar 2006, 20:37:54):
... fuehrt manchmal dazu, dass man ihn darin abbaut, dass man bescheuerte NPCs
schreibt. Ein paar sehr betrunkene Leute im Polar haben jemand neues
dabeistehen. Keine Angst, er greift nicht mit im Team an, haut ihn einfach um.
Danke.

Humni

-----------------------------------------------------------------------------



Poalrhuette... (Humni, 18. Jun 2006, 22:56:18):
Huhu,

viel zu spaet hab ich diesmal angefangen, sorry, aber die ersten 3 Spiele
stehen nun in der Polarhuette. Fehler beim Eintragen koennen passieren, bitte
melden. Ihr koennt nun auf die Spiele morgen setzen, ich bau gleich evtl. noch
mehr ein, spaetestens jedenfalls morgen ;-)

Viel Spass und viel Erfolg beim Wetten!

Humni
PS: Wer sie noch nicht kennt, darf sich auf dem Polarweg noerdlich des
Amundsen und Scott ein wenig umsehen. Ist nicht schwer zu finden ;-)


-----------------------------------------------------------------------------



Tief im Norden (Humni, 29. Jun 2006, 10:48:50):
Kalt war es, als Rachekralle sich aufmachte. Das "Boese". Ein seltsames
Konzept, das fand er zumindest. Wie auch immer, seltsam war das schon. Die
Duesternis, die sich hier ueber die Landschaft gesenkt hatte, diese Kaelte.
Und diese Wachen, Erenc und Iwein.

Er hatte einen Weg gefunden, sie zu umgehen, und war in die dahinterliegende
Festung eingedrungen. Schwarze, duestere und dicke Waende umgaben ihn, und
schon bald hatte er sich beinahe verlaufen. Das lag aber nicht an den Waenden,
oder an den Gaengen, nein, es lag an den finsteren Gestalten, die ihn
verfolgten...

Polz, der grosse Hobbit, war hinter ihm her, und auch Beemepopwerda wollte ihn
kriegen.

Niemand hat seither etwas von Rachekralle gehoert.

Viel Spass.

Ein unbekannter Reisender

-----------------------------------------------------------------------------



Noch ein paar Hinweise (Humni, 29. Jun 2006, 10:51:38):
Also:

1. Das ist nur der Anfang. Ja, es wird an einer Stelle weitergehen, ja, was
dahinterliegt ist zum Grossteil fertig, aber noch nicht ganz.
2. Ich war das keineswegs alleine. Magdalena hat einen Grossteil davon
geschrieben. Ja, sie weiss, dass ich das weiterfuehre. Nein, sie hat nix
dagegen.
3. Ich warte jetzt erstmal ab, wie ihr da zurechtkommt und passe dann die
inneren Bereiche noch an ;-) (hehehe...)

Humni

-----------------------------------------------------------------------------



Neue Wette in Humnis Wettbuero (Zesstra, 18. Nov 2006, 21:18:18):
Huhu,

ich freue mich, verkuenden zu duerfen, dass das Wettbuero im Polar eine neue
Wette bekommen hat, die man spielen kann. Ich bin mal gespannt, wie gut ihr
dabei sein werdet. ;-)

Vielen Dank an Humni, der meiner Wettidee Platz in seinem Wettbuero geben hat!
:-)

Viele Spass wuenscht euch
Zesstra

P.S. Ich hab die Wette getestet, ich hoffe auch, dass alles in Ordnung ist und
keine groesseren Probleme auftauchen. Falls doch, sagt bitte Bescheid, kann ja
sein, dass ich was uebersehen hab.

-----------------------------------------------------------------------------



Probleme in der Tundra? (Humni, 11. Feb 2007, 21:36:35):
Huhu,

es kann passieren, das es in der Tundra Probleme gibt. Ich habe noch nicht
ganz heraus, wieso.

Ich habe jetzt in dem mir vorliegenden Fall eine Meldung eingebaut, die den
Spieler ins void (jenseits der Welt) bewegt - von da kommt ihr mit "Welt"
wieder zurueck. Der Fall war fuer mich leider nicht reproduzierbar. Ich bitte
darum, wenn der Fehler auftritt, sich bei mir zu melden - wichtig ist fuer
mich, welcher Raum der letzte war, in dem ihr dann gestanden habt oder was
genau passiert ist.

Danke fuer die Aufmerksamkeit,
Humni
PS: Das ganze steht auch in einer Meldung, ich wollte hier nur verkuenden,
dass das ein neues und kein uraltes Problem ist ;-)

-----------------------------------------------------------------------------



Grafik entschaerft (Ennox, 27. Apr 2007, 23:19:23):
Im Weihnachtsmarkt und Ratte debuggt.

Ennox, Grafik--

-----------------------------------------------------------------------------



Geister in der Festung... (Humni,  3. Dez 2007, 19:19:43):
Huhu,

nein. Geister sollten nie in die Festung der Daemmerung reinkommen. Dass das
trotzdem geklappt hat, war ein bug, kein Feature, und geht nun auch nicht
mehr.

So, bitte mal ein wenig jammern, damit ich merke, dass es Leute gibt, die das
ueberhaupt bemerken...

Humni, schwarz, boese, fies.

-----------------------------------------------------------------------------



Extralook der Para-Post-Quest (Zesstra, 14. Dez 2007, 21:58:44):
Huhu,

ich hab den Extralook der Parapostquest auf den neuen Mechanismus umgebaut,
der kein unsichtbares Objekt im Spielerinventar mehr braucht. Damit sollten
betroffene Spieler wieder einen Platz mehr frei haben. ;-)

Zesstra

-----------------------------------------------------------------------------



Re: Extralook der Para-Post-Quest (Vanir, 14. Dez 2007, 22:16:01):
~#! rn=Zesstra rt=1197665924 rg=d.polar
~#! tid=1197665924
danke.
V.

-----------------------------------------------------------------------------



Wettbuero! (Humni,  7. Jun 2008, 15:35:22):
Juchhu!

Ja, so gerade eben noch rechtzeitig ;-) gilt:

Das Wettbuero im Polar ist wieder eroeffnet! Die ersten beiden Spiele fuer
heute abend stehen schon drin, die restliche Vorrunde werde ich bald
eintragen, dann koennt ihr schonmal auf die Spiele setzen. 

Viel Erfolg!

Humni
PS: Wer nicht weiss wo die Wetthuette ist sollte am einfachsten rumfragen. Sie
ist nicht weit weg vom Polarweg.

-----------------------------------------------------------------------------



Re: Wettbuero! (Humni, 10. Jun 2008, 13:08:44):
~#! rn=Humni rt=1212845722 rg=d.polar
~#! tid=1212845722
So, es gibt einen kleinen Bug: Auf Spanien - Russland kann nur setzen, wer das
nicht schon bei der letzten EM/WM-begegnung getan hat... ja, schlau
programmiert von mir *hmpf*

Ich kuemmer mich bald drum, hab gerade leider Jobstress.

Humni

-----------------------------------------------------------------------------



Re: Re: Wettbuero! (Humni, 11. Jun 2008, 08:45:06):
~#! rn=Humni rt=1213096124 rg=d.polar
~#! tid=1212845722
So. Vermeidungstaktik ist, dass ich einige der Nationen nun absichtlich falsch
schreibe. Hoffe, das nimmt mir niemand uebel - bei der naechsten Veranstaltung
(WM 2010) wird der Bug gefixt, versprochen.

Humni

-----------------------------------------------------------------------------



Re^3: Wettbuero! (Boing, 11. Jun 2008, 09:31:34):
~#! rn=Humni rt=1213166706 rg=d.polar
~#! tid=1212845722
Dir ist bewusst dass im Halbfinale zwei Vorrundengegner erneut aufeinander
treffen koennen?
  Boing

-----------------------------------------------------------------------------



Re^4: Wettbuero! (Croft, 11. Jun 2008, 09:39:07):
~#! rn=Boing rt=1213169494 rg=d.polar
~#! tid=1212845722
Das laesst sich mit hinreichend vielen Tippfehlern kompensieren.

Croft

-----------------------------------------------------------------------------



Re^4: Wettbuero! (Orktoeter, 11. Jun 2008, 19:48:43):
~#! rn=Boing rt=1213169494 rg=d.polar
~#! tid=1212845722
Bist du dir da sicher? Es kommen aus jeder Gruppe 2 Teams weiter und die setzt
man ueblicherweise einmal in die obere und einmal in die unter Haelfte, damit
koennen sie aber erst im Finale wieder aufeinandertreffen.

OrkT

-----------------------------------------------------------------------------



Re^5: Wettbuero! (Croft, 12. Jun 2008, 09:14:18):
~#! rn=Orktoeter rt=1213206523 rg=d.polar
~#! tid=1212845722
Schau dir den Tunierplan genauer an:
http://en.euro2008.uefa.com/tournament/matches/index.html

Croft

-----------------------------------------------------------------------------



Re^6: Wettbuero! (Orktoeter, 12. Jun 2008, 23:30:40):
~#! rn=Croft rt=1213254858 rg=d.polar
~#! tid=1212845722
Ich sehs mit staunen. Ich kenne es nur so, dass Gruppenerste und Gruppenzweite
in die ubere und untere Haelfte des KO-Systems kommen und damit erst im
Endspiel wieder aufeinander treffen koennen (macht in meinen Augen auch mehr
Sinn).

OrkT.

-----------------------------------------------------------------------------



ZT (Humni,  9. Jan 2009, 18:09:09):
Ein ZT-Spruch (es geht um 4 Kraeuter bzw. eine Hexe) funktioniert temporaer
nicht. Da er vermutlich heute nacht schon wieder funktionieren wird, werdet
ihr sicher damit leben koennen.

Humni

-----------------------------------------------------------------------------



Re: ZT (Zesstra,  9. Jan 2009, 23:59:09):
~#! rn=Humni rt=1231520949 rg=d.polar
~#! tid=1231520949
Der ZT sollte jetzt wieder erreichbar sein.

Zesstra

-----------------------------------------------------------------------------



Vor gar nicht allzu langer Zeit... (Arathorn, 31. Jan 2010, 01:02:28):
... in einem gar nicht so unbekannten Land, dem Polargebiet, wuetete der
grosse, schreckliche, boese Drache Humni und riss eine gewisse Liste von
der Wand in der Kneipe der Eiselfenfestung. Bisher gingen wir davon aus, 
dass er sie mit seinem schrecklichen, feurigen Drachenodem abgefackelt habe,
dem war jedoch nicht so. Er hatte sie "lediglich" gefressen und irgendwann
einfach vergessen, dass er das getan hatte. Ein Blick in seinen Magen
foerderte die Liste jetzt wieder zu Tage.

Ich habe sie vorhin "mal eben" wieder rangeklebt.

Gruss, Arathorn.

-----------------------------------------------------------------------------



Der Polar-Button (Arathorn, 31. Jan 2010, 01:06:15):
Hallo zusammen,

beim Polar-Button ist neulich eine kleinere Reparatur faellig geworden,
die es erforderlich gemacht hat, Eure bereits existierenen Buttons
durch neue zu ersetzen. Falls Ihr sie also getragen hattet, bitte nicht
drueber wundern, wenn das jetzt nicht mehr so ist. 

Gruss, Arathorn.

P.S.: Bei der Gelegenheit habe ich die Buttons auch gleich frisch poliert,
      ich hoffe, das gleicht die Unannehmlichkeit des Wieder-Anziehens
      zumindest ein wenig aus. ;-)

-----------------------------------------------------------------------------



Briefe in Parapostquest (Ark, 10. Feb 2010, 21:24:19):
Ich habe die Briefe gerade dergestalt geaendert, dass nur der austragende
Skla^H^H^H^HPostmeister sie nicht mehr weglegen kann. Man sollte sie nun also
auch mit sonstwem bergen und ablegen koennen. Falls nicht, bitte um Meldung.
Dies gilt nur fuer jetzt neu ausgegebene Briefe, nicht fuer solche, die ihr
schon mit herumtragt.


              *** ARK * the * Magnificent ***


-----------------------------------------------------------------------------



Sehertore (Gummiportale) auf Temong (Humni,  1. Jun 2010, 21:59:15):
Huhu,

die Seherportale (Gummiportale) auf Temong fuehrten zu unerwuenschtem
Verhalten und schrecklichen Bugs und gruseligen Missverstaendnissen und hatten
grauenhafte und schreckliche Folgen, die abzuschaetzen die Welt ins Chaos
gefuehrt haette.

Nachdem ich mich daran ergoetzt hatte, hat mich Gabylon nun doch dazu bringen
koennen, die Portale wegzuverlegen. Lobt und preiset ihn, sonst haette ich das
naemlich nie getan, und die Welt waere ein grauenhafterer Ort! Was ja mein
Ziel ist.

Die Portale, die vorher auf Temong waren, habe ich erstmal nur mit einem
Fluegelstoss zur Anlegestelle gepustet. Wenn die nun woanders hinsollen, kann
man in diesem Fall mit einem EM seiner Wahl darueber reden - ihr wolltet die
ja auf Temong, nur da koennen sie nicht mehr hin.

Ach ja, ueber den letzten Punkt wird auch nicht diskutiert. ;-)

Humni

-----------------------------------------------------------------------------



Parapostquest (Humni, 11. Aug 2010, 00:33:58):
Huhu,

eine kleine technische Umstellung (vermute ich) machte einen Workaround bei
der Parapostquest noetig. Nicht ueber Flaschen wundern.

Humni

-----------------------------------------------------------------------------



Ein Schwert... (Gabylon, 27. Feb 2011, 00:25:54):
... darf nun oefter als bisher geholt werden.
Dank an die Balance fuer die schnelle Bearbeitung.

gab

-----------------------------------------------------------------------------



Na super! (Oham, 27. Aug 2011, 11:52:11):
Mir reichts langsam.

Humni, Du bist ein Spinner.
Was meinst Du mit "neu" und "sollte man sich angucken"? Wer soll das machen?
Ein Kaempfer? Alleine wohl kaum. Mit "drei anderen dabei"? Was soll das
bringen?
Die Viecher sind zu heftig, man kommt ja so schon kaum da durch. Du spinnst
einfach.

Ich finde, Du solltest das einfach bleibenlassen. Viecher bauen kannst du
nicht, die sind viel zu hart. 

Hoer einfach auf, solche Gebiete wie die neuen Teile der Festung
anzuschliessen. Vielleicht redet dann ja endlich wieder wer mit Dir.

In der Festung der Daemmerung siehst Du mich bestimmt so schnell nicht, meinen
EK kriegst du da nicht. Das sei Dir hiermit versprochen.

Oham

-----------------------------------------------------------------------------



Re: Na super! (Humni, 27. Aug 2011, 11:54:07):
~#! rn=Oham rt=1314438731 rg=d.polar
~#! tid=1314438731
Das Miniforscher wie Du keine Ahnung haben, und Du immer noch kein General
bist, sind zwei Fakten.

Und: Wenn Du Dich davor nur mal ein wenig - wirklich nur ein wenig! -
umschaust, findest Du vielleicht was, was Dir elendem Jammerlappen
weiterhilft.

Volldeppen.

Humni

-----------------------------------------------------------------------------



Auferstehung (Amaryllis,  5. Nov 2011, 02:44:58):
Hi,

ein lange vermisster Chaot ist wieder auferstanden. Nur fuer die, die ihn
suchten...

Ama*

-----------------------------------------------------------------------------



Es lebe die Tundra! (Caldra, 22. Dez 2011, 16:12:41):
Die bei Magiern sehr ungeliebte Tundra hat das Zeitliche gesegnet :-)
Es lebe die neue Tundra!!!!

Fuer Spieler hat das folgende (hoffentlich als positiv empfundene)
Auswirkungen:
- Klamotten werden nicht mehr ploetzlich einfach so zerstoert
  (also erst, wenn man laenger nicht mehr an dieser Stelle gewesen ist)
- jetzt koennen mehrere Spieler unabhaengig in der Tundra rumlaufen

Folgende Aenderungen koennten als nicht so positiv empfunden werden:
- In der Tundra rumzurennen, geht jetzt merklich auf die Kondition
- Ein maechtiges Wesen hat sich in der Tundra ein zu Hause eingerichtet,
  das zum Ableben von Spielern fuehren wird :-)
  
Im unwahrscheinlichen Fall von Problemen bitte Kontakt mir mir aufnehmen!

Caldra

-----------------------------------------------------------------------------



Re: Es lebe die Tundra! (Humni, 22. Dez 2011, 19:53:36):
~#! rn=Caldra rt=1324566761 rg=d.polar
~#! tid=1324566761
:jubelt!

Humni

-----------------------------------------------------------------------------



Ein Magiewesenzahn (Humni, 11. Jan 2012, 12:39:22):
Huhu ihr,

ich habe heute ein wenig auf dem Magiewesenzahn herumgekaut und festgestellt,
dass er meinen Drachenzaehnen vom Haertegrad her Konkurrenz machte.

Das geht nicht, da meine Zaehne grundsaetzlich die spitzesten, schlimmsten und
grausamsten sind (per Definition).

Darum ist der Magiewesenzahn nun nicht mehr so scharf, spitz, schorfkantig und
hauptwuselig, wie er mal war, sondern ein wenig faseriger, hornig und
holzsplitterig.

Lebt damit. Haha.

Humni
(fieser, abwertender Drache)

-----------------------------------------------------------------------------



Re: Ein Magiewesenzahn (Jimdigriz, 12. Jan 2012, 21:44:29):
~#! rn=Humni rt=1326281962 rg=d.polar
~#! tid=1326281962
Menno, den agiewesenzahn schon wieder abwerten. *noelnoelnoel*

-----------------------------------------------------------------------------



Zwergenangriff (Amaryllis, 20. Mai 2012, 01:02:35):
Hi,

der Zwergenangriff sollte nun auch wieder normal spielpar sein.

Weitere Fehlermeldungen gerne an mich.

Gruss,
Ama*

-----------------------------------------------------------------------------



Re: Zwergenangriff (Ark, 21. Mai 2012, 00:10:50):
~#! rn=Amaryllis rt=1337468555 rg=d.polar
~#! tid=1337468555
Schaffst Du es jetzt endlich ueber das 0. Mal hinaus? *scnr* :)


              *** ARK * the * Magnificent ***


-----------------------------------------------------------------------------



Re: Re: Zwergenangriff (Amaryllis, 21. Mai 2012, 01:25:19):
~#! rn=Ark rt=1337551850 rg=d.polar
~#! tid=1337468555
Noe, das liegt immer noch im Argen ;)

AMa*

-----------------------------------------------------------------------------



Eilmeldungen zu spaeter Stunde (Caldra, 10. Okt 2012, 21:33:08):
Ein stinksaurer Henker hat jetzt nach Jahren der stillen Wut ob
der sinnlosen Entwendung seinen Richtblock ein fuer alle Mal
festgeschraubt.
Wir wuenschen ihm weiteres Gelingen bei der Ausuebung seines 
Handwerks.

Nachdem die Tundra vor einiger Zeit der Welt ihren wahren
Charakter offenbarte, duerften jetzt auch junge Spieler nicht
mehr ganz so verzweifelt nach einem Ausweg suchen muessen.
Vielen Dank an Orangebeard!

Wer beim boesen Polarhasen versagt, muss nun neben
der Schmach nicht auch noch den endgueltigen Verlust seiner
Ausruestung verkraften. Ihm sei eine zweite Chance gewaehrt.

Mit diesem Kurznachrichten verabschieden wir uns und
wuenschen gute Nacht!

Caldra

-----------------------------------------------------------------------------



Re: Eilmeldungen zu spaeter Stunde (Vanir, 18. Okt 2012, 15:42:27):
~#! rn=Caldra rt=1349897588 rg=d.polar
~#! tid=1349897588
Also einen Teil der Aenderungen finde ich ja nachvollziehbar. Aber wieso
sollte ein Richblock am Boden festgeschraubt werden? Und so ein Richblock ist
doch ein wundervoller uns nuetzlicher Gegenstand. Ich habe regelmaessig eine
tolle Verwendung dafuer gehabt. Ich weiss auch nicht wodurch ich den ersetzen
koennte. Ich bin dafuer, dass man dann wenigstens irgendwo einen
Schraubenzieher findet um zur Demontage schreiten zu koennen. 
Gruss V.

-----------------------------------------------------------------------------



Verlorenes Herz... (Humni, 13. Jan 2013, 21:00:22):
sollte nun an ein, zwei Stellen etwas entschaerft sein. Probleme an mich. Und
toedlich kann so manches immer noch sein.

Humni

-----------------------------------------------------------------------------



Roger, die singende Ziege. (Rhovan, 19. Apr 2013, 22:14:50):
Auf dem kleinen Bauernhof nahe Umjak hat der Sohn des dort lebenden Bauern ein
grosses Problem in Form einer singenden Ziege.
Er wartet sehnsuechtig auf mutige Abenteurer, die nicht nur ihn, seinen Vater
und die dort lebenden Schafe, sondern vermutlich auch ganz Umjak vor dem
schlimmen Schicksal eines Hoersturzes bewahren koennen.
Schaut doch mal bei ihm vorbei!

Gruss 
Rhovan

-----------------------------------------------------------------------------



Re: Roger, die singende Ziege. (Huraxprax, 15. Mai 2013, 22:14:43):
~#! rn=Rhovan rt=1366402490 rg=d.polar
~#! tid=1366402490
Ich hoffe doch sehr, dass diese singende Ziege ein ordentlicher chaotischer
und satanischer Ziegendaemon ist, irgendwoher muessen die im Torfmoor ja
kommen.
Und wenn nicht, muss die wenigstens stupsen und einen leckeren Ziegenbraten
droppen.

hurax


-----------------------------------------------------------------------------



Re: Re: Roger, die singende Ziege. (Ark, 15. Mai 2013, 22:21:34):
~#! rn=Huraxprax rt=1368648883 rg=d.polar
~#! tid=1366402490
1 out of 3 ... well, there are worse odds :-)


              *** ARK * the * Magnificent ***


-----------------------------------------------------------------------------



Spruehdose (Humni, 28. Mai 2013, 23:06:30):
Eine gewisse Spruehdose ist nun ... nicht mehr ... ganz so gut und kein
Schwert mehr.

Humni

-----------------------------------------------------------------------------



Ein Faehnchen... (Humni,  2. Jun 2013, 01:56:35):
aus der Eismine ist nun in gewissen Abstaenden auch waehrend einer Uptime
mehrfah zu holen. Aber nur so alle Vierteljahre. Und: Hofft nicht auf
"durchwechseln". Nein. Keine Chance.

Ein Drache

-----------------------------------------------------------------------------



T'emong 2.0 (Gabylon,  7. Jul 2013, 01:22:54):
Hi,


puenktlich zum 10-jaehrigen Jubilaeum sind die Renovierungsarbeiten um T'emong
nun abgeschlossen.
Diese betreffen ausschliesslich Dinge technischer Art (bisher sporadisch
auftretende Inkonsistenzen beseitigt, Codeoptimierung, etc.).
Sollten also Abweichungen vom bekannten Verhalten festzustellen sein, so ist
dies nicht beabsichtigt und darf gemeldet werden.

Froehliches Sterben wuenscht weiterhin


gab

-----------------------------------------------------------------------------



It's magic! (Ark, 16. Sep 2013, 22:53:03):
And the wizard spoke up, and he spoke truly yet kind:
'Lo, behold, look at the tiger of old and despair. He looks so ugly, has a
club with fine hair. His tail looks so clumsy, let's make it lean.'
With just one word and a 'PUFF' the tail is now thin. No longer ridiculous, no
longer a club, the tail is a whip, and the tiger looked up. He licked the
wizard's hand, thankful and proud. The wizard turned around, waits patiently
for comments, applause from the crowd.


              *** ARK * the * Magnificent ***


-----------------------------------------------------------------------------



Re: It's magic! (Gloinson, 16. Sep 2013, 22:58:59):
~#! rn=Ark rt=1379364783 rg=d.polar
~#! tid=1379364783
... mit Peitschenknall?


-----------------------------------------------------------------------------



Re: Re: It's magic! (Ark, 16. Sep 2013, 23:01:07):
~#! rn=Gloinson rt=1379365139 rg=d.polar
~#! tid=1379364783
Du hoerst es leise puscheln.


              *** ARK * the * Magnificent ***


-----------------------------------------------------------------------------



Neuigkeiten aus der Eiswueste (Humni,  8. Jan 2014, 19:28:21):
Liebe Mitmudder,

warum auch immer da was passiert ist... aber in der Eiswueste lauert jetzt
etwas im Schnee, das da seit Ewigkeiten haette lauern sollen. Glaube ich
zumindest.

Dankt nicht mir. Dankt Arathorn. Und Kilar. Und Slax.
Und Brumni.

Humni

-----------------------------------------------------------------------------



Ein uralter Vampir ... (Bugfix, 24. Jan 2014, 11:09:52):
... sollte jetzt nichtmehr imun gegen alle Arten von Zaubern sein.

Bei Problemen bitte an mich wenden.

BF

-----------------------------------------------------------------------------



Ein Daemon aus einem Waeldchen ... (Bugfix, 21. Feb 2014, 09:24:27):
... wurde ein bisschen gefoltert und belohnt seine Helfer jetzt etwas mehr.

BF

-----------------------------------------------------------------------------



Ein kleines rotes Feuerwehrauto (Bugfix, 22. Feb 2014, 19:56:30):
Moin,

besagtes Spassobjekt hat soeben eine tiefgreifende Ueberarbeitung erfahren.
Leider bietet es einen zu grossen Funktionsumfang um vollstaendig sicher zu
sein, dass dabei nichts kaputt gegangen ist. Ich rechne zwar nicht damit, aber
bei eventuellem unerwarteten Verhalten bitte ich um Rueckmeldung.

BF

-----------------------------------------------------------------------------



Schlittenrennen (Tijo, 16. Mar 2014, 18:35:16):
Hi in die Runde!
Jedem duerfte per Hinweisschild bekannt sein, dass es im MG ja eine Rodelbahn
gibt. Ich selber hab mich lange nicht dafuer interessiert, aber irgendwann hab
ich sie aufgesucht.
Ich habs nicht bereut. Es ist ein witziger Zeitvertreib, bei dem man hohe
reaktionsschnelligkeit braucht und eine menge Spass hat. Nach einigen Rennen
gegen Moonshine und spaeter gegen saray viel mir allerdings auf: Mit 3-6
Mitfahrern waere das ganze viel cooler. Wenn man ins Ziel kommt, braucht der
nachfolgende naemlich oft ewig, bis er da ist --- nicht gut.
Daher wuerde es mich freuen, wenn sich samstags oder sonntags mit mir einige
bei der Rodelbahn treffen wuerden.
Die Rodelbahn ist ein richtiges Schlachtfeld --- man versucht den gegnern mit
Feuerbaellen, Steinen, Felsen, Lag und aehnlichem zu bewerfen, um seinen
Schlitten zu beschaedigen/verlangsamen. gleichzeitig muss man auch noch lenken
--- das ist schwierig.
Die Ausruestung und Waffe kann man daheim im Zimmer/Haus lassen - die braucht
man nicht. Man sollte nur ein Grundkapital von 5 -10.000 muenzen mitbringen...
Wenn man gewinnt, erhaelt man 800 muenzen - kein Reichtum, aber ausreichend,
um die Reperatur- und Anmeldekosten ohne Verlust zu decken.
LG Tijo

-----------------------------------------------------------------------------



Re: Traurige Nachricht: Der Spieler Miro hat uns uns fuer immer verlassen... (Tijo, 16. Mar 2014, 18:41:04):
~#! rn=Zook rt=1394179884 rg=bekanntmachungen
~#! tid=1394179884
Achso, mich wies Saray gerade darauf hin, dass es auch mehr als 800 muenzen
beim Sieg sein koennen.

-----------------------------------------------------------------------------



Re: Re: Traurige Nachricht: Der Spieler Miro hat uns uns fuer immer verlassen... (Tijo, 17. Mar 2014, 15:04:15):
~#! rn=Tijo rt=1394991664 rg=d.polar
~#! tid=1394179884
Huch, wieso steht das hier in polar? offenbar bezug vergessen...

-----------------------------------------------------------------------------



Re: Schlittenrennen (Zook, 18. Mar 2014, 12:01:58):
~#! rn=Tijo rt=1394991316 rg=d.polar
~#! tid=1394991316
Ui, die Rodelbahn ist mir ja wieder voellig aus dem Sinn gerutscht... 

Danke fuers Erinnern.

VG,
Zook.

-----------------------------------------------------------------------------



Re: Re: Schlittenrennen (Tijo, 20. Mar 2014, 19:07:23):
~#! rn=Zook rt=1395140518 rg=d.polar
~#! tid=1394991316
*g* gern geschehn ;-)
LG tijo

-----------------------------------------------------------------------------



Ich, Pubert, der tolle Chaot ... (Ark, 21. Apr 2014, 23:48:58):
... bitte um Eure Aufmerksamkeit. Da gibt es jemanden, der Eurer Hilfe Bedarf.
Auch wenn wir den Klerus und seine Diener, Guenstlinge und Buecklinge zutiefst
verachten, wuerden wir uns ... graem^H^H^H^H^Hfreuen, sollten sich ...
Verbuen^H^H^H^H^H^HHelfer (und aeh dings ... Helferinnen *Bloedsinn*) finden,
um uns in einer kleinen "Situation" (die das Chaos auch so loesen koennte,
aber gerade nicht will) unter die Arme zu greifen (das Wort "Hilfe" negieren
wir hiermit auf das Heftigste!!11El!f!!1!666).
So, und jetzt kommt endlich bei, sonst ueberziehen wir Eure "Zivilisation" mit
den Daemonen der Hoelle. Brief und Siegel darauf. Und Exkremente! Verdammt
noch eins.


              *** ARK * the * Magnificent ***


-----------------------------------------------------------------------------



Informationen.... (Humni, 28. Dez 2014, 19:49:23):
Liebe Mudgemeinde,

ich wage es nun erst schon einmal zu verkuenden: Es gibt einen neuen
Polarbewohner.

Er hat keinen festen Ort, er beglueckt mehrere davon mit seiner Anwesenheit.
Und er weiss Dinge.

Welche, muesst Ihr selbst herausfinden.

Ihr koennt ihn auch toeten. Aber dann sagt er Euch nix, da er dann ja tot ist.

Macht, was ihr wollt.

Bugmeldungen und Co an mich, bin hoffentlich auch noch eine Weile hier.

Humni

-----------------------------------------------------------------------------



Tiger und ihre Schwaenze... (Humni,  6. Jan 2015, 00:08:31):
sind fuer so manchen ein Grund fuer ein Aergernis.

Da so manch ein Kaempfer sich ueber eine Umwidmung einer gewissen hinteren
fellbeschichteten Ausweitung eines Tierkoerpers geaergert hat, sei nun
verkuendet:

Die Umwidmung bleibt bestehen.
Die Kaempfer sollten aber wieder in etwa so gut damit klarkommen wie vorher,
zumindest zu dem eigentlichen Zwecke.

Humni

-----------------------------------------------------------------------------



Pegasus (Arathorn,  8. Mar 2015, 23:36:00):
Hallo zusammen,

ich habe heute im Laufe des Tages in Abstimmung mit den Kollegen Erzmagiern
eine Aenderung in die Tat umgesetzt, die schon laenger geplant war:
Pegasus kann jetzt von allen Spielern genutzt werden, um einen Rundflug
ueber das Morgengrauen zu unternehmen und womoeglich weit entfernte und
bislang unbekannte Orte zu entdecken!

Dazu wurden die Flugpreise an die Geldboerse der zu erwartenden Reisenden
angepasst, so dass es fuer jeden erschwinglich sein duerfte, eine solche
Reise zu unternehmen. Zudem wurde die Flugroute des Rundfluges etwas 
angepasst, um dem geneigten Mitreisenden attraktivere Reiseziele zu bieten. 

Es ist jedoch weiterhin moeglich, dass ein Seher einen anderen Reisenden
einlaedt, indem er dessen Flugpreis entrichtet. Allerdings konnten wir
Pegasus nicht ueberreden, mehr als zwei Reisende gleichzeitig zu tragen.
Er ist zwar ein grosses, starkes Tier, aber dennoch lehnte er unser
Ansinnen mit dem Hinweis ab, er koenne zwar sehr wohl drei oder gar mehr
Dunkelelfen oder Goblins auf einmal tragen, aber wir sollten doch
bitteschoen bedenken, dass es auch Zwerge und Hobbits gaebe, und drei von
*denen*, also das waere undenkbar.

Wie dem auch sei, jedenfalls wuenschen wir viel Vergnuegen bei euren 
Rundfluegen um die Welt.

Gruss, Arathorn.

-----------------------------------------------------------------------------



Matrixkristall (Zesstra, 29. Mar 2015, 11:39:58):
Ich habe den Mechanismus des Matrixkristalls umgebaut, das war bisher ein
unschoener Hack.
Wenn es da Probleme gibt, meldet euch.

Zesstra

-----------------------------------------------------------------------------



Das TTB... (Amaryllis,  1. Jul 2015, 20:59:01):
...liest sich jetzt auch (auf einzelnen Wunsch hin) mit Seitenumbruch, wie man
das von langen Artikeln hier auch gewohnt ist.

Ama*

-----------------------------------------------------------------------------



Re: Das TTB... (Tin,  1. Jul 2015, 20:59:24):
~#! rn=Amaryllis rt=1435777141 rg=d.polar
~#! tid=1435777141
Juhuuuuuuuuu
danke!
tin

-----------------------------------------------------------------------------



Re: Re: Das TTB... (Saray,  2. Jul 2015, 19:39:25):
~#! rn=Tin rt=1435777164 rg=d.polar
~#! tid=1435777141
Ach, so einzeln war der gar nicht, ich hatte nur immer vergessen, ne Mail zu
schreiben.
Sehr schoen. Danke!
Saray

-----------------------------------------------------------------------------



Re: Das TTB... (Amaryllis,  2. Jul 2015, 20:32:38):
~#! rn=Amaryllis rt=1435777141 rg=d.polar
~#! tid=1435777141
Aus aktuellem Anlass mach ich hier mal die Ingrid:

Leider fehlen dem TTB insofern die "magischen Kraefte", als dass es Eure Tode
nicht "erfaehrt", wenn es in einer Autoloader-Truhe liegt.
Sprich: Ihr muesst es schon mit rumschleppen ;)

Ama*

-----------------------------------------------------------------------------



Bavmordas Upgrade (Gabylon, 21. Sep 2015, 10:44:01):
Bavmorda verliess neulich ihre Feste fuer einige Tage, um sich in Taramis
endlich mal die passenden Unterstuetzungen fuer ihre Ausruestung anzaubern
zu lassen. Einige bemerkenswerte Ergebnisse sind dabei herausgekommen.

Vielen Dank an Elendil fuer die Inspiration und an Chagall fuer die schnelle
und problemlose Umsetzung!

gab

-----------------------------------------------------------------------------



Jackomo Carvanossa (Humni, 21. Dez 2015, 17:24:34):
Hallo ihr,

besagter NPC macht in letzter Zeit komische Dinge. Wenn ich ihn aber neu
starte, tut er das erst einmal nicht. Sollte er das wieder tun, bitte eine
Mail an mich, da er das gerade nicht tut, ist das schwierig zu reproduzieren.
Danke sehr!

Humni

-----------------------------------------------------------------------------



Das Todestagebuch (Arathorn, 15. Apr 2016, 11:34:02):
Hallo zusammen,

ich habe gerade eine kleine Aenderung am Todestagebuch von Amaryllis
vorgenommen, die bewirken soll, dass sich das TTB weniger stark in den
Vordergrund draengelt, wenn es um das "lies"-Kommando geht. In der Vergangen-
heit kam es gelegentlich vor, dass z.B. Tagebuecher in einem Raum deshalb
nicht lesbar waren. Spaetestens bei "lies tagebuch in raum" fuehlt sich
das TTB jetzt nicht mehr zustaendig.

Die Aenderung gilt nur fuer neue Todestagebuecher, d.h. Ende/Reboot oder 
eure Autoloadertruhe helfen weiter.

Gruss, Arathorn.

-----------------------------------------------------------------------------



Die Slanderscree (Humni, 30. Apr 2016, 19:14:47):
Der groesste aller Eissegler ist dieses Schiff. Legenden und Sagen ranken sich
um seinen Namen: Slanderscree. Ueber 250 Meter lang und 120 Meter breit ist
sein Rumpf, getragen von fuenf maechtigen Metallkufen und gezimmert aus
kraeftigen Nordlandfoehren. Das Schiff ist wie ein Clipper getakelt und die
riesigen roten Segel flattern im Wind.

Dieser Anblick ist vielen von Euch bereits bekannt. Einigen aber nicht. Das
liegt daran, dass dieser Ort der Freude, dieses gigantische Schiff, dieses
Fanal der Hoffnung im ewigen Eis bisher Sehern (und Magiern) vorbehalten war.

Unzaehlig sind die Legenden, die sich um dieses Schiff ranken, unter den
Spielern, die nicht den Seherstatus haben. Die Spieler, die sich immer fragen,
welche Parties auf diesem Schiff gefeiert werden, mit Strippern und
Stripperinnen, mit Kuchen und Schnitzel und lauter Dingen, die man sonst
feiern kann.

Das Leben als Seher ist schoen, denn nur ein Seher kann die Slanderscree
benutzen. Eines der Privilegien, auf die man als Seher nicht verzichten
moechte.

Aber die Seher sind grossherzig. Sie haben unter sich vereinbart, dass die
vielen Parties an Bord dieses Schiffes nichts sind, was unter ihnen bleiben
muss. Das Erlebnis, mit irrsinniger Geschwindigkeit ueber das Eis zu gleiten
darf nun auch anderen vergoennt werden.

Seit heute nimmt die Slanderscree jeden mit. Ausnahmslos. Sei es Spieler oder
Spielerin, Seher oder Seherin, Elf oder Hobbit, Zwerg oder Elf, Kaempfer oder
Zauberer, Chaot oder Kleriker, Tanjian oder Bierschuettler. Niemand muss
draussen bleiben.

Geniesst die Fahrt auf dem Eis.

Humni

-----------------------------------------------------------------------------



Matrixkristall weniger vergesslich (Arathorn,  5. Mai 2016, 12:31:34):
Hallo zusammen,

der Matrixkristall vergisst nun nicht mehr, dass ihr ueber den Zustand
eurer Gegner informiert werden wolltet ("kampfinfo"), wenn ihr ihn aus
der Hand legt und wieder aufnehmt. 

Wenn ihr darauf wert legt, muesstet ihr euch bitte einen neuen Kristall
holen. Ich habe bewusst nicht alle existierenden Kristalle ausgetauscht,
weil das dazu gefuehrt haette, dass jeder seinen Kristall neu haette
einstimmen muessen.

Gruss, Arathorn.

-----------------------------------------------------------------------------



Nanu? (Humni, 19. Aug 2016, 23:09:57):
Kein Geflame hier?

Was ist los?

Humni

-----------------------------------------------------------------------------



Re: Nanu? (Oham, 19. Aug 2016, 23:10:27):
~#! rn=Humni rt=1471640997 rg=d.polar
~#! tid=1471640997
Was soll los sein?

Du meinst, ich renne jetzt los und suche, was Du da angeschlossen hast? Hast
Du Dich geschnitten.

Oham

-----------------------------------------------------------------------------



Re: Re: Nanu? (Humni, 19. Aug 2016, 23:10:48):
~#! rn=Oham rt=1471641027 rg=d.polar
~#! tid=1471640997
Oeh. Ja, machst Du doch sonst immer ...

Weichei.

Humni

-----------------------------------------------------------------------------



Re^3: Nanu? (Oham, 19. Aug 2016, 23:11:38):
~#! rn=Humni rt=1471641048 rg=d.polar
~#! tid=1471640997
Wer ist hier das Weichei? Der, der den Kram baut und dann mit magischen
Kraeften dafuer sorgt, dass er da nicht sterben kann, oder der, der sich
einfach nur weigert, sich irgendwelchen Mist anzutun?

Und ausserdem: Da komm ich doch eh nicht hin.

Oham

-----------------------------------------------------------------------------



Re^4: Nanu? (Humni, 19. Aug 2016, 23:13:08):
~#! rn=Oham rt=1471641098 rg=d.polar
~#! tid=1471640997
Naja, gut, das stimmt.

Also, darum nochmal fuer alle: Da Oham gerade da nicht sterben gehen will, das
Weichei: In der Festung geht es nun weiter. Normalerweise wuerde ich Euch
jetzt einfach wie bloede suchen lassen, wo. Darum hier ein Hinweis: Ein Hebel
im Norden hatte bisher sehr wenig Effekt. Nun hat er den. 

Viel Spass.

Humni, wartet nun darauf, dass alles mit Bugs zusammenbricht. Obschon er das
getestet hat.
Echt.

-----------------------------------------------------------------------------



Re^5: Nanu? (Humni, 19. Aug 2016, 23:13:55):
~#! rn=Humni rt=1471641188 rg=d.polar
~#! tid=1471640997
Hmpf. Der Grund ist natuerlich, dass Ihr den Hebel vermutlich schon lange
entdeckt habt und das vermutlich auch vergessen hattet. So, nun aber wirklich
genug.

Humni
(muss heute nacht noch einige Artikel schreiben)

-----------------------------------------------------------------------------



Wunsch eines Spielers (Humni, 26. Aug 2016, 12:30:49):
Auf Wunsch eines Spielers kann man einen gewissen Wurm nun nach einem Ort der
Erleichterung fragen.

Humni

-----------------------------------------------------------------------------



Eure Waschbrettbaeuche ... (Ark, 25. Mai 2017, 12:55:07):
Da dieses Objekt dank altem Look dauernd bugte, hab ich es geaendert. Es
sollte nicht mehr buggen. Zum dauerhaften Frieden habe ich alle Baeuche
entsorgt (was nichts an eurem Fitnesszustand aendert). Bitte bei Bedarf neue
holen.


              *** ARK * the * Magnificent ***


-----------------------------------------------------------------------------



Der Gaertner war im Hexenwald ... (Humni,  5. Feb 2018, 09:46:51):
und hat dort Dinge angepflanzt. Damit ihr wisst, wo sich evtl. noch einmal zu
"forschen" lohnt ...

Humni

-----------------------------------------------------------------------------



Der Gaertner in Neskaya ... (Humni,  5. Feb 2018, 11:54:26):
... war auch fleissig.

Humni

-----------------------------------------------------------------------------



Generalueberholung (Bugfix, 18. Feb 2018, 21:07:06):
Moin,

Kopka und Anhang wurden soeben generalueberholt. Das Kampfverhalten koennte
leicht anders aussehen als bisher, duerfte aber nicht zu gravierend sein.
Vorallem sind die drei jetzt leichter wartbar und verbrauchen viel viel
weniger Rechenzeit.

Bugfix

-----------------------------------------------------------------------------



Blaetter ... (Humni, 23. Apr 2018, 23:25:17):
... haben sich ein wenig geaendert.

Danke an Arathorn fuer das Auffinden von Denkfehlern meinerseits.

Weitere Aenderungen moegen auch moeglich sein.

Humni

-----------------------------------------------------------------------------



Der Totenschaedel von Gor (Arathorn, 20. Mai 2018, 23:24:22):
Hallo zusammen,

ich habe gerade eine Kleinigkeit am Totenschaedel aus Gors Festung repariert,
ihr solltet einen neuen auf dem ueblichen Weg bekommen, d.h. Ende oder ueber
die Autoloadertruhe, sofern ihr eine besitzt. Falls sich anschliessend etwas
anders verhaelt als vorher, meldet euch bitte.

Gruss, Arathorn.

-----------------------------------------------------------------------------



Blumen von Noel (Zesstra,  1. Aug 2018, 23:00:01):
Huhu,

bei Noel im Sumpf koennten gefaehrliche Blumen jetzt (wieder) wachsen...
Angeblich waren die frueher mal da, wie lange schon nicht mehr, kann ich nicht
sagen.
Passt auf euch auf...

Zesstra

-----------------------------------------------------------------------------



EKs in der FDD ... (Humni, 10. Feb 2019, 20:15:49):
Hallo ihr,

es tut mir echt leid, aber ich hatte in der FDD einige der Wachen nicht mit
der noetigen Infrastruktur ausgestattet, dass das Kerbholz auf sie reagierte
und sie ... schlichtweg nicht als EK zaehlten.

Das tun sie jetzt.

Sorry, dass ich einigen nun sicher zumute, das alles nochmal zu hauen ...

Es handelt sich um die Wachen in den Erkern.

Wenn es noch Probleme gibt, meldet euch bitte.

Humni

-----------------------------------------------------------------------------



Kampfelch (Arathorn, 27. Apr 2019, 16:16:34):
Hallo zusammen,

ich habe gerade diverse Fehler in Raummeldungen des Kampfelchs repariert.
Da es nur Meldungen betraf und keine wichtige Funktionalitaet kaputt war,
habe ich mich dagegen entschieden, alle existierenden Elche zu ersetzen.
Ausserdem waere dabei der Name, den ihr eurem Elch gegeben habt, verloren-
gegangen. Wer also von der Reparatur profitieren will, muesste sich bitte
einen neuen Elch holen.

Gruss, Arathorn.

-----------------------------------------------------------------------------



Re: Kampfelch (Tizona, 27. Apr 2019, 23:35:17):
~#! rn=Arathorn rt=1556374594 rg=d.polar
~#! tid=1556374594
So, jetzt nochmal richtig (ich MPA-Noob, dieses Megaschmarrn-Manifest verlehrt
einem alle wichtigen Skills).

Das "um ihrer zu heben" und "um seiner zu heben" klingt zwar etwas verkorkst,
aber mir kam das immer sehr gewollt vor.

Zudem ist beim Elchtest noch etwas anders in der Meldung an den testenden
Spieler: Du hoffst, dass das "gutgeht" steht da nun, vorher war das
auseinander. Da bin ich gerade ueberfragt, meine Grammatix sind gerade beim
Versuch die MPA zu bedienen verstorben.

-----------------------------------------------------------------------------



Re: Re: Kampfelch (Arathorn, 28. Apr 2019, 11:12:44):
~#! rn=Tizona rt=1556400917 rg=d.polar
~#! tid=1556374594
Fuer mich sah es im Code bei weitem nicht gewollt aus, weil es nicht
an allen Stellen gleich war, sondern mal richtig und mal falsch. Zudem 
sah der Code sehr deutlich danach aus, dass Fizban seinerzeit die Funktion
zur Ermittlung des Personalpronomens mit denselben Argumenten gefuettert
hat wie die zur Ermittlung des Possessivpronomens. 

Die "gutgeht"-Aenderung kam allerdings schon vor einer Weile, als die 
Zeilenumbrueche in den Meldungen ergaenzt wurden. Ich bin mir relativ
sicher, dass es zulaessig ist, das zusammenzuschreiben.

Arathorn.

-----------------------------------------------------------------------------



Re^3: Kampfelch (Tizona, 29. Apr 2019, 21:10:50):
~#! rn=Arathorn rt=1556442764 rg=d.polar
~#! tid=1556374594
Na gut.

Muss ich mich wohl umgewoehnen.

Danke fuer die Wartung des wichtigsten Objekts!

-----------------------------------------------------------------------------



Seherhaustiere (Zesstra, 29. Apr 2019, 22:23:13):
Eigentlich gehoerts fast in ne andere Rubrik, aber da man das Formular fuer
die Seherhaustiere ja im Polar findet: man kann in das Formular nun auch
Gewicht und Groesse eingeben...

Zesstra

-----------------------------------------------------------------------------



Guter Erzmagier, Boeser Erzmagier (Humni,  8. Jan 2020, 00:35:28):
Wie sich ergab, gibt es nette Erzmagier und nicht so nette Erzmagier. Ein sehr
netter Erzmagier ist Arathorn. Der hat den Zugang zu einer gewissen kalten
Insel erheblich vereinfacht.
Und es gibt boese Erzmagier. Ein solcher boeser Erzmagier ist Humni. Das bin
ich uebrigens. Der hat die Moeglichkeiten der Heilung der verbesserten
Ausgangslage angepasst. Die Heilstellen sind noch da, aber ein wenig
eingeschraenkter.

Ihr werdet alle sterben.

Harhar.

Humni
PS: Arathorn hat die Hauptarbeit gemacht. Ich verkuende das hier nur.

-----------------------------------------------------------------------------



Aufraeumarbeiten in Neskaya (Bendeigid, 14. Apr 2020, 20:27:40):
Hallo liebe Spieler,

im Zuge einer internen Aufraeumaktion wurden auch ein paar (interne) Dinge in
und um Neskaya gesaeubert. Das betrifft die Besitzer von Darkovanerdolchen,
Matrices und Verrinfalken. Wenn da irgendwas nicht so funktioniert wie gewohnt
bitte Bescheid sagen! (ja, jetzt reicht sogar der Polar-RM, EM ist nicht mehr
moetig).
Bei der Putzaktion ist auch die Para-Chaoswolke unter die Raeder gekommen. Sie
ist leicht stinkig und ... naja, schaut sie euch an. Diese Uptime wurde sie ja
noch nicht behelligt, vielleicht besaenftigt sie das ja.

Z'par Servu,
Bendeigid

-----------------------------------------------------------------------------



Zwergenangriff (Arathorn,  2. Mai 2020, 15:39:14):
Hallo zusammen,

ich habe gerade ein Update des Zwergenangriffs eingespielt. Es handelt sich
nur um Aenderungen an den Interna, fuer euch sollte sich nicht viel aendern.

Wie immer gilt aber: wenn euch doch was auffaellt, dann bitte melden.

Gruss, Arathorn.

-----------------------------------------------------------------------------



Der Friedhof im Hexenwald (Arathorn,  7. Sep 2020, 20:05:40):
Hallo zusammen,

ich habe gerade einen Batzen Aenderungen am Friedhof eingespielt. Diese sind
zwar nur Dinge im Backstage-Bereich, die euch als Spieler nicht beeinflussen
sollten, aber wie immer kann bei sowas natuerlich auch unvorhergesehen etwas
kaputtgehen.

Wenn euch also etwas auffaellt, das sich nicht wie gewohnt verhaelt, meldet
euch gerne bei mir. Sollten Fehler im Raum-Zeit-Gefuege auftreten, gilt wie
immer, dass ihr die nicht nochmal extra melden muesst.

Gruss, Arathorn.

-----------------------------------------------------------------------------



Die Abhandlung in der FDD (Arathorn, 24. Okt 2020, 23:42:54):
...ist aufgrund eines Fehlers voruebergehend nicht verfuegbar. Humni ist
informiert, dass es da ein Problem gibt, und ich hoffe, dass es sich bald
beheben laesst.

Gruss, Arathorn.

-----------------------------------------------------------------------------



Re: Die Abhandlung in der FDD (Humni, 25. Okt 2020, 01:31:00):
~#! rn=Arathorn rt=1603575774 rg=d.polar
~#! tid=1603575774
Die Abhandlung ist wieder da. Danke fuer das Abhaengen!

Dabei habe ich gleich ein paar Dinge aufgeraeumt, die Buecher betreffen. Falls
also damit jemand nun auf einmal ein Problem hat, meldet euch!

Humni

-----------------------------------------------------------------------------



Der dunkle Speer (Notstrom, 27. Nov 2020, 15:54:29):
    Hallo zusammen,

der dritte Teil der kleinen Miniquest-Reihe fuer Seher, die im Para-
Bambuswald beginnt, ist nun auch gluecklich abgenommen und angeschlossen.
Abermals gilt mein Dank meinen Testern, Magierkollegen und den Spielern,
die mir Feedback und Motivation angedeihen lassen. Viele dieser Leute
haben ein paar wertvolle Stunden (oder Tage) ihrer knappen Zeit geopfert,
um dieses neue Gebiet zu ermoeglichen, und dafuer bin ich ihnen dankbar.

Ich wuensche allen Sehern, die sich dieser epischen Aufgabe (vielleicht
nicht solo) annehmen, viel Spass und Erfolg. Idealerweise habt Ihr Euch
schon durch den Para-Bambuswald gemetzelt und auf der Wiese bei Para-
Tikitaki umgesehen, bevor Ihr Euch in die kalte, scheinbar oede Lilientundra
einer anderen Realitaet begebt. Auf dem Weg zwischen Gors Festung und
Moulokin solltet Ihr etwas Neues finden, wenn Ihr gut aufpasst.

Notstrom.

-----------------------------------------------------------------------------



Haufen (Notstrom, 20. Dez 2020, 17:31:41):
... verhalten sich nun etwas anders, wenn man ueberladen ist. Jedenfalls die
in einer gewissen Schlucht. Bedankt Euch bei Bugfix.

Hth,
Notstrom.

-----------------------------------------------------------------------------



Nilsquest (Arathorn, 27. Dez 2020, 19:49:38):
Hallo zusammen,

ich habe heute diverse Raeume, NPCs und Objekte bei den Innuit geaendert, um
da ein paar Fehler zu beseitigen. Das meiste war Kleinkram, von dem ihr nix
merken solltet, aber es kann trotzdem sein, dass das ein oder andere dabei
kaputtgegangen ist.

In dem Fall bitte ich um etwas Geduld, ich kuemmer mich drum, sobald ich das
sehe. Wie immer gilt, bei Raum-Zeit-Fehlern muesste ihr nicht extra was
absetzen.

Gruss, Arathorn.

-----------------------------------------------------------------------------



Eiselfenpanzer (Arathorn,  3. Jan 2021, 14:51:05):
Hallo zusammen,

ich habe gerade eine kleine Aenderung am Eiselfenpanzer vorgenommen, die mit
dessen Schutzwirkung zu tun hat. Existierende Ruestungen habe ich schon
ausgetauscht, d.h. ihr muesstet euren einmal neu anziehen, wenn ihr einen
getragen hattet.

Gruss, Arathorn.

-----------------------------------------------------------------------------



Schreckensschwingen (Arathorn,  3. Jan 2021, 15:57:54):
Hallo zusammen,

ich habe gerade eine kleine Aenderung an den Schreckensschwingen vorgenommen,
die mit ihrer Schutzwirkung zu tun hat. Existierende Schwingen habe ich schon
ausgetauscht.

Gruss, Arathorn.

-----------------------------------------------------------------------------



Kampfstab aus dem Klippentempel (Arathorn, 15. Jan 2021, 16:50:45):
Hallo zusammen,

ein gewisser Kampfstab aus dem Klippentempel hat eine Aenderung erfahren und
duerfte jetzt nuetzlicher sein als vorher. Bestehende Exemplare habe ich
bereits ausgetauscht.

Gruss, Arathorn.

-----------------------------------------------------------------------------



Miniquest im Polargebiet (Arathorn, 16. Jan 2021, 00:53:23):
Hallo zusammen,

im Polargebiet gibt es eine neue Miniquest fuer euch, genauer gesagt, eine
schon laenger bestehende, kleine Aufgabe wird jetzt zusaetzlich mit ein paar
Stufenpunkten belohnt.

Jackomo verraet euch fuer ein paar Muenzen sicher gern, worum es sich handeln
koennte.

Gruss, Arathorn.

-----------------------------------------------------------------------------



Re: Miniquest im Polargebiet (Arathorn, 16. Jan 2021, 10:28:27):
~#! rn=Arathorn rt=1610754803 rg=d.polar
~#! tid=1610754803
Bevor ich's vergesse: Preiset Ark fuer die umgehende Genehmigung und Tizona
fuer die Idee! Preiset, ja oh ja, preiset! :-)

Arathorn.

-----------------------------------------------------------------------------



Re: Re: Miniquest im Polargebiet (Ark, 16. Jan 2021, 10:56:20):
~#! rn=Arathorn rt=1610789307 rg=d.polar
~#! tid=1610754803
Ich preise meine Arbeit ein, ja, oh ja. Moege jeder 10 Vollstrecker und
unendliche Tanken und Enttanken (mobil) an meinem Domizil opfern. Dies ist
mein Preis, ja, oh ja. Preiset!


              *** ARK * the * Magnificent ***


-----------------------------------------------------------------------------



Speere (Humni, 17. Feb 2021, 20:15:03):
Ein Finnspeer hat dank Arathornscher Ideen nun einige ... Verbesserungen
erfahren. Ich finde, das sollte man verkuenden. Preiset den Arathorn! Preiset
die Balance, die es sogar genehmigt hat!

Humni

-----------------------------------------------------------------------------



Diverse Waffen in der Eisfestung (Humni,  4. Apr 2021, 23:05:52):
Diverse Waffen in der Eisfestung (und in der Herzquest) sind nun ein wenig
besser brauchbar. Neu-Einschaetzen und ausprobieren kann sich lohnen.

Danke an Arathorn, der sich die neuen Werte ausgedacht hat!

Humni

-----------------------------------------------------------------------------



Der magische Schaedel (Arathorn, 11. Apr 2021, 16:01:22):
Hallo zusammen,

der magische Schaedel aus der Herzquest von Gor hatte einen Fehler bei der
Farbdarstellung (wenn ihr Farben anzeigen lasst). Ich habe den Fehler gerade
beseitigt und alle im Umlauf befindlichen Schaedel ausgetauscht, es kann daher
sein, dass ihr ihn ggf. neu einstellen muesst.

Gruss, Arathorn.

-----------------------------------------------------------------------------



Cthulhus Krallen (Arathorn, 16. Mai 2021, 12:01:35):
Moin,

ich habe gerade die Krallen von Cthulhu geaendert und damit auf den Stand
gebracht, den sie schon seit 15 Jahren haetten haben sollen. ;-)

Bestehende Exemplare wurden ausgetauscht, daher muesst ihr sie ggf. neu
anziehen.

Wenn ihr wissen wollt, was neu ist, identifziert sie mal. :-)

Gruss, Arathorn.

-----------------------------------------------------------------------------



Inspirationen (Humni, 23. Jul 2021, 20:12:45):
Hallo,

die Campingwoche in Datteln inspiriert ein wenig. Das erste furchtbare,
schreckliche Ergebnis koennt ihr jetzt direkt bestaunen. Ich sag mal, ihr
muesst nicht ganz bis zur FDD, nur kurz hinter den Polartiger. Irgendwo
koennte eine Tuer sein.

Ist nicht viel, aber ist echt Datteln-inspiriert.

Humni

-----------------------------------------------------------------------------



Gesaenge des Jackomo Corvanossa (Arathorn, 28. Jul 2021, 19:46:12):
Hallo zusammen,

auf vielfachen Wunsch hin haben wir Jackomos Gesaenge etwas realistischer
gestaltet, was jedoch den Nachteil hat, dass ihr sie bedauerlicherweise nicht
mehr hoeren koennt, wenn ihr taub seid. Ich hoffe, das ist nicht allzu
tragisch.

Gruss, Arathorn.

-----------------------------------------------------------------------------



Individueller Bedarf (Humni, 27. Jul 2023, 13:58:11):
Hallo Mudgemeinde,

einige von euch haben angeblich manchmal Bedarf an einer Kneipe. Und der
Bedarf koennte individuell sein.

Wenn ihr diesen Bedarf habt, koenntet ihr ihn stillen.

Dazu koennte man sich im Polar auf dem Weg zur Eismine umschauen.

Viel Spass. 

Humni

-----------------------------------------------------------------------------



Re: Individueller Bedarf (Humni,  5. Jan 2024, 00:05:05):
~#! rn=Humni rt=1690459091 rg=d.polar
~#! tid=1690459091
Hallo Mudgemeinde,

damit hier auch mal andere Dinge stehen: Es gibt nun auch Kaesespaetzle in der
Kneipe.

Ja, dafuer gibts hier einen MPA-Artikel. Wahnsinn! Ein neuer Menueeintrag in
einer Kneipe, und ich schreibe dafuer einen Artikel!

Hammer.

Humni
PS: Das neue Gericht wurde von realen Eingebungen inspiriert.

-----------------------------------------------------------------------------



