ich war da. George an brett (Georgesand, 20. Aug 1993, 16:22:23):
ich war hier. George **
-----------------------------------------------------------------------------



Mischwienix, bitte melden! (Misselli, 14. Sep 1993, 15:22:29):

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



Neue Insel (Fleance, 29. Nov 1993, 17:07:30):
Hallo Maedels!

Der erste Teil einer neuen Insel (genauer: der Ostteil) mit dem einfallslosen
Namen "Feuerinsel" ist ploetzlich aus dem Meer emporgewachsen und wartet nur
darauf, von ahnungslosen Touristen besucht zu werden.
Ein Quest wird im Augenblick noch nicht angeboten, aber in den naechsten 2-3
Jahrzehnten wird sich das aendern. Dafuer gibt es dort andere Ueberaschungen.

Den Weg zu dieser Insel werdet Ihr mit der Zeit schon finden (obwohl der eine
oder andere waehrend der Erdbebenphase schon mal in der Naehe war).

Na dann viel Spass!

Fleance, Gouverneur.

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



Unter Wasser (Anthea,  6. Dez 1993, 15:47:54):
Auf den Inseln ist eine Stadt ins Meer gefallen. D.h. sie ist
ziemlich ueberflutet, aber trotzdem begehbar. Man kann mit dem Piratenschiff
in ihre Naehe fahren, um dann den Zugang zu suchen.

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



Wann der Koenig seine Wuensche aendert... (Rumata, 18. Mai 1994, 11:15:00):
Hi,
zu der Frage von Drchaos: der Koenig aendert seine Wuensche, wenn eine
laengere Zeit ihn niemand besuchen kommt, oder jemand seine Wuensche
erfuellt.
Nach einem Gespraech mit dem Koenig steht fest, dass das auch in Zukunft so
bleiben wird.

Rumata
(mit schoenen Gruessen vom Koenig der Oktopusse)

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



Vize Regionschef fuer Inseln gesucht! (Hate, 14. Jun 1994, 20:57:21):
Hiermit moechte ich offiziell eine Ausschreibung fuer einen Vize-
RegionsErzMagier bekanntgeben:

Gewuenscht wird:

  Verantwortungsgefuehl,
  Sehr gute Kenntnisse der Sprache LPC
  Spass an Koordination und Organisation

Wer Interesse hat soll ich bitte per mud-mail bei mir melden, dann
werden die Bewerber von den Goettern und Erzmagieren ausgewaehlt.

Hate.

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



Titiwu (Boing, 16. Jun 1994, 12:51:29):
Hallo Leute,

nicht erschrecken, wenn ihr euch im Dschungel von Titiwu nicht mehr auskennt,
ich habe ihn geaendert. Allerdings denke ich, dass die Aenderungen positiv
(aus Spielersicht) sind.
  Boing

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



Torraum (Anthea, 22. Jun 1994, 18:35:33):

Wer sich in Atlantis ueber den sich im Rohbau befindlichen Raum im Stadttor
gewundert/geaertert hat, bzw. ihn ueberhaupt gefunden hat, kann sich jetzt
freuen: Durch einen nicht genau erkennbaren Magie-Schub hat der Raum
ploetzlich beschlossen, dass er mit seinem gegenwaertigen Status nicht mehr
zufrieden ist, und hat sich selbst fertiggestellt.

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



Re: Torraum (Highlander, 23. Jun 1994, 11:11:30):
Hallo!
Anthea, forsch mal, die Magie muss ich haben! Raeume, die
sich selber fertigstellen *schmacht*   ;>
 H.

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



Aenderung (Anthea, 14. Jul 1994, 15:53:52):
Nicht dass jemand behauptet, ich haette nicht gewarnt..... Auf alle Faelle
hat sich einer eurer Mitspieler "beschwert", dass der Waechter keinen Schild
hat, obwohl das in der Beschreibung steht.... Naja, jetzt hat er einen.
Dadurch hat sich natuerlich seine Ruestung etwas verbessert. Viel Spass ;)

         Fuerstin Anthea

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



Schiffskapitaene (Anthea, 16. Jul 1994, 15:12:38):
Aufgrund des Wunsches eines bestimmten Spielers kann man jetzt auf
der Jolle und dem Piratenschiff den Kapitaen treten. Viel Spass dabei ]:)

   Anthea

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



Fund auf Aurora! (Wargon, 20. Jul 1994, 12:24:43):
WichtelPress meldet:
Auf der Insel Aurora wurde bei Flurbereinigungsarbeiten eine
bislang unbekannte Stadt entdeckt. Leider ist es bis jetzt
noch nicht gelungen, die Stadt zu betreten, da sie mit einem
Fluch belegt zu sein scheint.
Tatendurstige AbenteurerInnen haben die Chance, sich mit der
Erforschung der Stadt Geld, Erfahrung und Ansehen zu verdienen.
Die Stadt befindet sich im nordoestlichen Teil der Inseln, ein
Weg dorthin ist, wie uns mitgeteilt wurde, schon seit langer
Zeit ausgeschildert.
 -WichtelPress- fuer MPA

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



Tarko Reub! (Wargon,  5. Sep 1994, 19:42:34):
  Hallo zusammen!
Die Durststrecke ist ueberwunden! Tarko Reub ist wiedereroeffnet! ;)
Ich hoffe, dass jetzt alles wieder so funktioniert, wie es sollte...
Ausserdem gibt es eine kleine Neuerung: Man kann das Abenteuer
auch weiterspielen, wenn man mal Ende getippt hat oder einem ein
Reboot dazwischengekommen ist. Das bezieht sich allerdings nur
auf die groesseren Etappen, nicht auf die Kleinigkeiten (ihr
werdet schon merken, was ich damit meine ;).

UND NOCH EIN HINWEIS IN EIGENER SACHE:
NEIN, ICH BIN WEDER FUER DIE PYRAMIDEN (Durian) NOCH FUER
OLAF HUUSG (Sethos) ZUSTAENDIG! (Ich bin naemlich schon von mehreren
Seiten auf diese Abenteuer angesprochen worden ;)

  Viel Spass wuenscht (wieder)
    Fuerst Wargon von Sateen

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



Questzustaendigkeit (Catweazle,  6. Sep 1994, 18:15:55):
Hmm, dazu faellt mir ein, das in der Gilde am Brett
mit der Liste der Quests der verantwortliche Magier angegeben
ist.
Also..erst nachschauen, dann fragen!
YT,
    Catweazle

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



Meditation (Wargon, 15. Nov 1994, 13:24:34):
  Huhu!
Fuer alle, die Tarko Reub geloest haben:
ES DARf MEDITIERT WERDEN! ;)
  Ciao,
    Wargon

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



Soso, Meditation (Grimmborn, 16. Nov 1994, 13:11:37):

Hmm, ist mir ja peinlich immer nur zu meckern, aber:
Ich laufe frohgemut auf die bewusste Lichtung, meditiere, soweit alles prima.
Dann denke ich mir: Wieso nicht ausprobieren, hier war doch immer...und
tatsaechlich, da war sie, die Kreuzotter. Ich also froehlich angegriffen, ohne
Magie, die mp kann man ja noch brauchen.
Tatsaechlich, nach dem Kampf verliere ich lp. Macht nix, denk ich, dafuer
hast DU ja den Spruch. Und wirklich, ich bekomme die aufmunternde Meldung: Du
linderst Deine Vergiftung etwas. Naja, lp verliere ich zwar noch aber das wird
sich doch machen lassen. Ich habe in kurzer Zeit LOCKER 600mp reingepulvert.
Von diesen ca. 20 Spruechen waren vielleicht zwei Drittel missglueckt, bleiben
rund 7 erfolgreiche Sprueche (Untergrenze!). Die Vergiftung hat sich davon
nicht beeindrucken lassen.
Also ich will ja gar nicht wissen, was bisher eine Vergiftung war und nun
vermutlich nicht mehr ist. Kann ich beruhigt gegen Ghule antreten,
Zombieleichen essen? Ich probiers nicht aus, wenn schon gegen das "Hausgift"
der Spruch nicht wirkt.

Als ich nix mehr essen und trinken konnte bin ich dann reumuetig zum
Kurpfuscher gegangen. Der konnte mir dann wirklich helfen.

Ein durchaus enttaeuschter
                          Grimmborn der Atheist

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



gegengift?? (Nixihou, 17. Nov 1994, 08:01:28):
also ich kann grimmborn da nur zustimmen. so 7-8 maliges erfolgreiches
anwenden des gegengiftspruchs hat bei mir die vergiftung
auch nicht beendet. ich hab es allerdings in der SSP versucht Disir glaube
ich.
also der spruch gehoert meiner bescheidenen meinung nach gehoerig
uberarbeitet!

NIXI, ist auch zum Kurpfuscher gegangen

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



Re: Meditation (Wargon, 18. Nov 1994, 09:42:24):
  Huhu!
So, der Spruch sollte jetzt RICHTIG funktionieren! ;)
  Ciao,
    Wargon

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



Titiwu: Schlafzimmer (Boing, 24. Nov 1994, 14:45:01):
Das ist eine FAQ:
BUGS von bert aus dem Schlafzimmer von Habakuk Tibatong (23. Nov 1994):
Der Ausgang muss doch hier nach nw gehen, oder scheck ich hier was nicht ?

Der Raum sieht in etwa so aus:

  -------------------------------
  |       Arbeitszimmer         |
                                |
         X                      |
  |                             |
  -----     -----------    ------
  |             |               |
  |  Kueche     |  Schlaf-      |
  |             |  zimmer       |
  |             |               |
  -------------------------------

Das X bezeichnet den Standpunkt, nach Sueden geht's in die Kueche, nach
Suedosten ins Schlafzimmer, trotzdem kommt man aus beiden Raeumen nach
Norden zurueck ins Arbeitszimmer.

Alles klar?
  Boing

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



Re: Titiwu: Schlafzimmer (Nixihou, 25. Nov 1994, 13:10:18):
#! rn=Boing rt=785684701
Tja, nur wenn du es so zeichnest und dann aus dem schlafzimmer nach n gehst
dann muesste die kueche im sw sein.
ganz so einfach ist das nicht !

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



Re: Titiwu: Schlafzimmer (Bert, 28. Nov 1994, 20:53:22):
#! rn=Boing rt=785684701

Ahso .. muss einem doch gesagt werden.

  Bert (muede)

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



Entgiftung (Grimmborn,  4. Dez 1994, 19:10:30):

Hej!
Nur als kurze Notitz: Auf Tamibar gibts eine Schlange, deren Biss sich nicht
mit dem Spruch heilen laesst. Wieso auch immer...

Grimmborn der Atheist und Depp. Haett ich das Vieh mal in Ruhe gelassen...

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



Re: Entgiftung (Rochus,  6. Dez 1994, 10:22:52):
Es gibt auch andere Heilmittel...

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



Re: Re: Entgiftung (Grimmborn,  6. Dez 1994, 13:30:11):
#! rn=Rochus rt=786705772

Gut, also ausfuehrlicher.
WENN ich vergiftet bin, und WENN ich einen entgifte-Spruch kann, dann erwarte
ich, dass er funktioniert. Natuerlich gibts andere Moeglichkeiten, klar. Ich
kann auch ohne zu zaubern Monster besiegen, obwohl es Feuerbaelle gibt. Das
ist ja nicht der Punkt.
Ich bin nach besagter Feststellung zum Kurpfuscher gelaufen, der konnte mich
auch nicht heilen (und der ist Spezialist fuer Entgiftungen), dann nach
Nibelheim (die haben sowas nicht im Angebot, aber weiss ich das auswendig?)
und daraufhin eingeschlafen, um mich dann via Grimmdeath (der sich diebisch
gefreut hat) bitter zu beschweren. Dann viel mir ein, dass man auch
eingeschlafen noch lp verlieren kann und ich bin wieder aufgewacht, um statt
dessen zu quitten. Da merkte ich, dass ich keine lp mehr verlor.
Die anwesenden Magier beteuerten ihre Unschuld an meiner Heilung. Das war
dann ja der Punkt, der mich am meisten ueberrascht hat. Eine Vergiftung bei
Rochus, die durch schlafen weggeht? Man glaubt es kaum... ;-)

Also, wenn eine Vergiftung nicht mit dem Spruch zu bekaempfen ist dann haette
ich gerne eine Erklaerung. Eine gute Erklaerung. Und nicht ein Hinweis auf
Alternativen.

Grimmborn der Atheist. Kichert. Aber das ist eine andere Geschichte...

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



Hafenausbau beendet (Wargon, 18. Jan 1995, 10:50:42):
  Huhu!
Nachdem ich sie mit mehreren Faessern Rum bestochen
habe, haben sich die Piraten auf Aurora endlich be-
quemt, den Hafenausbau zu vollenden.
Leider haben sie die Faesser VOR dem Bauen geleert,
so dass die Hafenstrasse eher krumm geworden ist...
Andererseits freut sich der Besitzer der Hafenkneipe
jetzt ueber den strategischen Standort seiner Spe-
lunke ;)
  Tschuess,
    Wargon

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



Oh Wunder (Raistlin,  3. Feb 1995, 13:54:50):
Grosser Jof aeh Boing, aeh Gott,
es existiert ja tatsaechlich eine Insel-Rubrik.
So fern ich mich zurueckerinnern kann, und das sind auch schon einige Tage :)
habe ich hier noch keinen Artikel gesehen.
Was ist los mit den Inselleuten?
(kein Kommentar aus der Wueste, dem Wald oder aus dem Polargebiet :)))))) )

--Raistlin (hoffend auf bessere Zeiten fuer die Inseln)

PS: Sorry (wie immer) fuers zerhackte Layout, und...
  JA, JA mir faellt auch nicht viel ein, was ich schreiben kann :)

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



Re: Re: Artikelschreiben ist uebel... (Raistlin,  3. Feb 1995, 13:58:31):
#! rn=Ronda rt=791812880
Wasn das fuern Titel? Wo kommt der her? Ich wollte auf meinen :) Artikel
antworten.
Ich muss zerknirscht zugeben, dass Wargon vor mir da war, aber es ist
wirklich der ERSTE
Artikel den ich in dieser Rubrik lese (von meinem abgesehen)

-R

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



Re: Oh Wunder (Yantro,  3. Feb 1995, 14:22:01):
#! rn=Raistlin rt=791816090

Der Wald ist und bleibt die schoenste Insel im MG ;)))

        Yantro:)

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



Re: Re: Oh Wunder (Wargon,  3. Feb 1995, 14:28:35):
#! rn=Yantro rt=791817721
Ist nicht das ganze MG nur eine Insel im Meer von
Raum und Zeit? ;)
Ausserdem machst Du Dich nicht gerade bei den
Waldschraten ... aeh ... Waldmagiern beliebt.
Die staenden dann naemlich auch unter Antheas,
Hates und meiner Fuchtel. ;)
  Wargon

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



Re^3: Oh Wunder (Hate,  3. Feb 1995, 22:02:52):
#! rn=Wargon rt=791818115
Da muss ich Wargon zustimmen!
Hate.

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



Re^4: Oh Wunder (Anthea,  4. Feb 1995, 03:20:17):
#! rn=Hate rt=791845372
Und ich sowieso.
Ich frage mich nur, warum wird die Insel-Rubrik von Waldschraten belebt? Gibt
es denn nichts neues von den Inseln zu berichten?
Ich frage nur so nebenbei, weil ich wegen Praktikum im Moment nicht so oft
nach den Inseln schauen kann.... leider. :(    Hoffentlich aendert sich das
bald wieder!

          Anthea

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



Re: Re: Oh Wunder (Li,  4. Feb 1995, 11:55:29):
#! rn=Yantro rt=791817721
Oh nein, die schoenste Insel wird Fernwest werden:

Die Insel der Zivilisation!

Li   :-)

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



Re^3: Oh Wunder (Sysop,  6. Feb 1995, 12:20:33):
#! rn=Wargon rt=791818115
Ja ja ... und die Inseln gibts eh nur noch so lange, bis das Meer mit
Wuestensand aufgefuellt wird. Ihr solltet mal in der Arena einen
"Kampf der Regionen" machen ... :-)
-- Sysop

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



Re^4: Oh Wunder (Asmodis,  6. Feb 1995, 13:03:02):
#! rn=Sysop rt=792069633
Und in dem mit Sand aufgefuellten Meer werden dann Baeume gepflanzt, somit
sind wir wieder bei Wald :)

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



Re^5: Oh Wunder (Highlander,  6. Feb 1995, 14:36:29):
#! rn=Asmodis rt=792072182
... worauf wir dann einen majestaetischen Gebirgszug werfen -
voila, wir bauen uns ein Gebirge (tm) :>

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



Re^6: Oh Wunder (Wargon,  6. Feb 1995, 14:41:27):
#! rn=Highlander rt=792077789
...welches immer noch eine Insel im Ozean der
Welten darstellt... ;)

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



Re^7: Oh Wunder (Rumata,  6. Feb 1995, 14:47:58):
#! rn=Wargon rt=792078087
Hey Leute, was regt ihr euch auf, alles ist eine Unterregion der
Region /d/pizza, das das MG bekanntlich eine Pizza ist, die Jof, Boing
und ich uns gerade bruzzeln.

Rumata, der auf einmal Appetit auf Calzone bekommt :-))

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



Re^8: Oh Wunder (Wargon,  6. Feb 1995, 14:54:16):
#! rn=Rumata rt=792078478
Na gut: ...ist das Gebirge auch wider nur eine Salami im
Teig von Raum und Zeit...
Hmm, lecker! ;)

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



Re^8: Oh Wunder (Hardil,  6. Feb 1995, 16:26:04):
#! rn=Rumata rt=792078478

Rumata, Du willst aus dem MG eine Calzone machen? Zusammenklappen?
Dann moechte ich nicht RM sein und hinterher aufraeumen muessen. ;)

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



Re^9: Oh Wunder (Anthea,  7. Feb 1995, 23:48:32):
#! rn=Wargon rt=792078856
Und das Meer ist dann sowas wie Tabasco.... Es gibt erst die richtige Wuerze
dazu :)

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



HILFE, was war das! (Wizzard,  9. Feb 1995, 11:06:12):
Hallo Leute,
also auch ich bin Inselmagier und hatte immer nur das vergnuegen, den Streit
zwischen
Wald und Wueste (muss an dem "W" liegen) mitzuverfolgen.
Doch ich kann euch nur sagen:
Die Inseln waren im kommen, sind stark und werden mehr denn je kommen.#

Eine riesige Flutwelle wird die Wueste als (Sand)Boden nutzen, denn Wald zu
Treibgut
degradieren und die Inselmagier werden ihr neugewonnenes Reich in Besitz
nehmen und formen.

Ein euch lieb und frech aus der Ferne knuddelnder Wizzard

*ist idle, forscht nach den Spruch fuer Flutwellen*

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



Betrifft :Das muid eine PIZZA??? (Toastbrot,  8. Mar 1995, 16:20:22):
Also neulich haben sich doch einige darueber aufgeregt das einige
Bewohner des Schlaraffenlandes nun im MUD vertreten
sind(Roesti,Marmelade,Butter,Ruerei,Craecker,Pommes,usw
und jetst sagt mir ein GOTT das daS MUD EINE PIZZA IST?
ICH MUSS MICH DOCH SEHR WUNDERN.

TOASTBROT(DER UEBER EINE NAMENSENDERUNG NACHDENKT....WIE WAER ES MIT CONAN
ODER MAGARITA...ODER TUNFISCH???

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



Re: Betrifft :Das muid eine PIZZA??? (Rumata,  8. Mar 1995, 18:07:11):
#! rn=Toastbrot rt=794676022
Du brauchst Deinen Namen nicht zu aendern. Schau Dich Doch um, dann
siehst Du, womit eine Pizza MorgenGrauen belegt ist.

Rumata

PS: Mag am liebsten die Stelle mit Hydra :-))

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



kaffeehaus (Nudei,  4. Apr 1995, 12:42:37):
was mich bass erstaunt hat, war, mitten im Dungeon ein Wiener Kaffeehaus
anzutreffen.
Nun gut. Eine feine Sache, mit einem Melange R&R zu machen,aaaaber:
Als ich die Speisekarte studierte, gab es meinem Nationalgefuehl einen Stich
ins Herz. In keinem originalen kaffeehaus in Wien gibt es KAESEKUCHEN!!!
Grmbl. Das heisst TOPFENTORTE! Sowas voin typo, foerchterlich!

Nudei, der weiss, wie ein Kaffeehaus von Innen ausschaut

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



Re: kaffeehaus (Anthea,  5. Apr 1995, 16:41:57):
#! rn=Nudei rt=796992157
So, vielleicht werde ich diesmal fertig, bevor meine Verbindung abstuerzt...

Ich habe inzwischen ziemlich viele Meldungen gekriegt mein Kaffeehaus
betreffend. Bisher habe ich mich nicht darum gekuemmert, weil mir vor etlicher
Zeit ein bestimmter Spieler versprochen hat, mal eine Beschreibung zu
entwerfen und auch eine Liste der Speisen&Getraenke anzufertigen, die da
reingehoeren. Ich bin mir der groben Fehler wie Kaesekuchen oder der fehlenden
'Melange' (steht auf der Maengelliste auf Platz 1) durchaus bewusst. Leider
habe ich bis heute immer noch nichts von diesem Spieler wideder gehoert.

Na, Nudei, hast Du nicht vielleicht Lust, mal so etwas zu schreiben? :))

Ansonsten gebe ich das Warten demnaechst vielleicht mal auf und mache mich
selber dran... aber dann uebernehme ich keine Garantie fuer den Koch, dass der
sich noch mit den Zutaten auskennt :)

Anthea

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



kaffeehausbeschreibung (Nudei, 11. Mai 1995, 09:07:49):
Geschaetzte Anthea!

Erst mal grats zur ansprechenden Inselbeschreibung und der hervorragenden
Wetterwachsquest. Dabei fiel mir nur bei der Episode mit Sascha, dem
aufRECHTEN Deutschen auf, dass er eine Karte von '41 hat. Zwar ist den Faschos
Dummheit jedweden Grades zuzutrauen, aber das Dt.Reich hatte seine groesste
Ausdehnung im Winter '42 (jaja, vor Stalingrad). Nur zur berichtigung.

Meine eigentliche Bemerkung gilt dem gemuetlichen Kaffeehaus.
Der Ober hat immer einen Namen, und wird mit "Herr Franz" oder jedenfalls
seinem Vornamen gerufen, dennoch gesiezt, das verleit dem Umgang mit solchen
Domestiken einen gewissen adeligen Flair.
Die Kaffes heissen nicht Kaffe schwarz oder kafee mit milch etc. sondern:
Melange (=Milchkaffee)
Gr.Brauner, kl.Brauner (variiert mit der Staerke)
desweiteren gibt es eine Fuelle von Kreationen, wie etwa ein "Einspaenner"
(Schlagobers mit Kaffee uebergossen)
Weitere fallen mir auf anhieb nicht ein, werde sie aber nachreichen.
Zu jedem Kaffee gibt es ein Glas wasser, um je anch geschmack zu verduenne
oder durst zu stillen.
Desweiteren gibt es Eiskaffee (Vanilleeis mit Schlagobers, mit Kaltem Kaffee
uebergossen)
Die Kuchen&Torten sind sehr ansprechend, der Frankfurter kranz ist jedoch
unter diesem Namen unbekannt, er ist gaenzlich unbekannt.
Und die Sahnetorte wird durch den toerismus immer verbreiteter, heisst aber
im Original Topfentorte.
Kaesekuchen ist ebenfalls hooribel, denn er heisst Topfenkuchen.
Und als letztes Versaeumnis ist anzumerken, dass Apfelstrudel, DAS
oesterreichische Identifikationsgericht,fehlt.
Und DAS Wiener Hofgericht, der Kaiserguglhupf, ist ebenfalls ein MUSS fuer
jedes Kaffeehaus altwiener Schule.

Danke fuer die Aufmerksamkeit
Nudei, der Buchhalter

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



Re: kaffeehausbeschreibung (Wargon, 11. Mai 1995, 09:37:34):
#! rn=Nudei rt=800176069
Hm, also mit dem Luftschloss hat Anthea nix am Hut! ;)
Der oestliche Teil von Aurora ist MEIN Gebiet, von Anthea ist
eigentlich nur die Anlegestelle am Hafen und der Klippenpfad
mit allem, was dort zu finden ist.
Zur Karte bei Sascha: Upps! ;)
Zur Quest: Danke, aber mit der Meinung stehst Du wohl ziemlich
alleine da ;)
  Tschuess,
    Wargon

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



Re: Re: kaffeehausbeschreibung (Boing, 11. Mai 1995, 13:46:33):
#! rn=Wargon rt=800177854
Also ich finde die Quest auch sehr schoen, das einzige was meiner
Meinung nach total stoert ist die Pudding-Fresserei.
  Boing

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



kaffeehausbeschreibung^1 (Hawk, 11. Mai 1995, 19:10:21):
Tja. Zur Ehrenrettung der Questschreiber muss ich sagen,
dass ich auch der Meinung bin, dass dir gute
alte Oma eine der besten im Lande ist.
HAWK, liebt Oma.

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



Auch mal Senf zu Oma (Bendeigid, 11. Mai 1995, 19:15:41):
Hi!
Tja, Oma Wetterwachs hat mir auch sehr gut gefallen...Bis ich in das
Labyrinth kam. Ich finde es absolut ueberfluessig und schon fast ein
Stilbruch, da unten ein derart umstaendliches Lab hinzubauen. Kann man aber
wohl kaum noch aendern. Ein paar mehr Raetsel der Marke Affen oder so waeren
geschickter, finde ich. Ist es Gotteslaesterung, wenn ich jetzt sage, dass ich
den Pudding ganz lecker fand? ;-)

Z' par Servu,
             Bendeigid

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



Re: kaffeehausbeschreibung (Aell, 13. Mai 1995, 07:38:39):
#! rn=Nudei rt=800176069
  Ganz meine Meinung, das Kaffeehaus jagdt jedem Wiener Angstschauer
ueber den Ruecken :)

  Ad Apfelstrudel: Bitte bitte OHNE Vanillesauce (grusel)

    Aell

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



Re: Re: kaffeehausbeschreibung (Zuerileu, 14. Mai 1995, 01:45:59):
#! rn=Aell rt=800343519
Sali,
Och macht doch nichtso ein Theater, warum muessen die Oestereicher so
pingelig sein ich mach doch auch kein Theater (mehr!) das bei der
Moerder-Meldung der schweizerdeutsche Satz 'isch das kool man' total falsch
geschrieben ist, nunja nicht total aber ziemlich =:). hihi.. ne und ich liebe
Abpfelstrudel mit heisser Vannilsouce, einfach leker =:)

Nein...  NEEEEEIIINN Bitte nicht schlagen !!!  ... Tschuess Zuerileu

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



Re^3: kaffeehausbeschreibung (Paracelsus, 15. Mai 1995, 12:50:42):
#! rn=Boing rt=800192793
Wie recht du hast, Boing. Insbesondere wenn man nix mehr essen kann...
Para.

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



Entgiftungs-Spruch (Wargon, 18. Mai 1995, 10:39:33):
  Hi!
Der Entgiftungsspruch scheint leichte Probleme zu machen...
Obwohl er eigentlich gildenunabhaengig sein sollte, wird er
aus noch unbekannten Gruenden zusaetzlich der Gilde zugeordnet,
der man momentan angehoert. Dabei gehen dem Spruch leider wichtige
Informationen floeten, und bei "entgifte" erscheint nur ein "Wie
bitte?"...
Das Problem ist nun, dass das Phaenomen nur bei manchen auftritt,
bei manchen dagegen nicht (ich kann entgiften, mein Testie kanns
nicht).
Wir sind aber auf der Suche nach dem fehler und hoffen, ihn bald
behoben zu haben.
  Wargon

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



Re: Entgiftungs-Spruch (Wargon, 23. Mai 1995, 09:57:20):
#! rn=Wargon rt=800786373
  Nochmal Hi!
So, die Ursache des Fehlers ist gefunden und behoben.
Allerdings wirkt er bei den Betroffenen immer noch nach...
Deshalb moechte ich diejenigen, bei denen der entgifte-
Spruch nicht funktioniert, bitten sich bei mir zu melden.
  Tschuess,
    Wargon

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



Atlantis-Quest (Anthea, 11. Jun 1995, 19:42:23):
Hallo ihr Abenteurer.

Nach etlichen Beschwerden, dass der Kampf mit dem Schwarzen Waechter in auf
der Stadtmauer nicht in den Stil der Quest passt, gibt es jetzt eine
(zugegeben, nicht ganz logische) Moeglichkeit, den Kampf zu umgehen. Also, wer
nicht unbedingt kaempfen will.... lege die Musterloesung zur Seite und mache
sich auf die Suche.

  Anthea, Moechtegern-Herrscherin von Atlantis

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



WWW (Hate,  7. Jul 1995, 21:46:16):
Ich glaube einige der Inselbesitzer sollten sich mal um eine Beschreibung
kuemmern, da waeren zu nennen:
   Tamibar -- Rochus
   Svolvaer -- Loco
   Feuerinsel -- Fleance

Hate.

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



Re: WWW (Asmodis,  7. Jul 1995, 23:14:32):
#! rn=Hate rt=805146376
Huch, Fleance? Nie gehoert, nie gesehen, das fingern sagt auch, dass er am
22. November letzten Jahres da war, also wohl keine Chance, Hate :)

                     Ciao, Asmodis

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



Re: Re: WWW (Asmodis,  7. Jul 1995, 23:15:16):
#! rn=Asmodis rt=805151672
zum letzten Mal da war, meine ich :)

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



Re^3: WWW (Engywuck,  7. Jul 1995, 23:29:21):
#! rn=Asmodis rt=805151716
Noe, ich glaub an dem Datum war die Umbauaktion von Pascal auf Santana. Es
gibt hier keine Charakter, die das letzte mal VOR diesem Datum eingeloggt
waren.

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



Re: WWW (Yendi, 10. Jul 1995, 18:16:06):
#! rn=Hate rt=805146376

Meine Guete, es ist anderthalb Jahre her, dass ich Fleance das letzte Mal
gesehen habe -- oder noch laenger? Der ist doch noch vor Jonas ausgestiegen,
oder?


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



Re: Re: WWW (Hate, 10. Jul 1995, 19:41:01):
#! rn=Yendi rt=805392966
Dann soll mir wer was schreiben, der sich dort auskennt. :)
Hate.

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



WWW (Loco, 11. Jul 1995, 16:31:50):
Was spricht eigentlich dagegen, fuer die eigenen Seiten Schreibberechtigungen
zu bekommen? Soll heissen: Ich habe mittlerweile eine Seite zu Svolvaer
geschrieben, finde es aber ziemlich nervig, dass ich jetzt fuer jede
Kleinigkeit, Erweiterung etc. einen (Regions-)Erzmagier fragen muss, der die
neue Version gnaedigerweise einbaut. Uebrigens auch der Grund, warum es die
Seite bisher nicht gab.
  Loco

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



Re: WWW (Anthea, 12. Jul 1995, 00:02:28):
#! rn=Loco rt=805473110
Hm, mit dem access_rights.c-File sollte es eigentlich keine Probleme machen,
da entsprechenden Zugriff auf eigene Files zu gewaehren.
Sollte ich (oder Wargon oder Hate) vielleicht mal demnaechst machen :)
        Anthea

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



Re: Re: WWW (Anthea, 14. Jul 1995, 19:28:19):
#! rn=Anthea rt=805500148
So. Jetzt ist es getan. Ich habe nun es so eingerichtet, dass fuer jeden ein
eigenes WWW-Verzeichnis existieren kann. Wer eines braucht, melde sich bitte
bei Hate, Wargon oder mir, wir richten dann ein entsprechendes Verzeichnis ein
(unter /d/inseln/WWW/<name>) auf das Ihr dann schreibzugriff habt. Wenn die
entsprechende Seite dann existiert, muss nur noch der Link in der Hauptseite
geaendert werden, und schon habt Ihr Eure eigene Inselseite.

       Anthea

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



Blockhuette auf Titiwu (Boing, 23. Aug 1995, 17:04:05):
Hallo,
nachdem immer wieder der folgende bugreport bei mir landet, will ich mal
wieder kurz darauf antworten: (Koennte mal in die FAQ ;)

die tuer im arbeiitszimmer geht nach SO und die beschreibung sagt auch SO -
hier liegt das Arbeitszimmer aber im N und der weg geht nach N - sollte doch
wohl NW sein - oder ? Gruss H.

Der Raum sieht in etwa so aus:

  -------------------------------
  |       Arbeitszimmer         |
                                |
         X                      |
  |                             |
  -----     -----------    ------
  |             |               |
  |  Kueche     |  Schlaf-      |
  |             |  zimmer       |
  |             |               |
  -------------------------------

Das X bezeichnet den Standpunkt, nach Sueden geht's in die Kueche, nach
Suedosten ins Schlafzimmer, trotzdem kommt man aus beiden Raeumen nach
Norden zurueck ins Arbeitszimmer.

Alles klar?
  Boing

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



Re: Blockhuette auf Titiwu (Zephyr, 23. Aug 1995, 17:17:06):
#! rn=Boing rt=809190245


  -------------------------------
  |       Arbeitszimmer         |
                                |
         X                      |
  |                             |
  -----     -----------    ------
  |             |             Y |
  |  Kueche     |  Schlaf-      |
  |             |  zimmer       |
  |             |               |
  -------------------------------

Also angenommen, X ist der Startpunkt, ok.
Geh ich jetzt von X so, lande ich bei Y.
Wenn ich dann nach n gehe, wie angegeben,
renne ich gegen ne Wand. Ist das gesund? :)
Zephyr, wuerde auch lieber nach nw

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



Re: Blockhuette auf Titiwu (Charly, 23. Aug 1995, 17:31:17):
#! rn=Boing rt=809190245
dann muesste man aber nachdem man vom schlaf- ins arbeitszimmer
ist mit sw in die kueche kommen...wennschon dennschon
(von mir aus braeuchte es nur n o s w geben)

charly
..hat es immer noch nicht geschafft das gebiet bei hilberts turm 100 %-ig
zu kartographieren

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



Re: Re: Blockhuette auf Titiwu (Raffi, 24. Aug 1995, 13:40:52):
#! rn=Zephyr rt=809191026
Zephhyrs argumentation hat was fuer sich :)

was mir nur so neu war, ist das es ploetzlich einen standort in einem raum
gibt der nicht der raummitte entspricht. - ich verstehe ja Boings
problem einen raum mit 2 tueren die nach sueden gehen darzustellen.

sowas git es halt in der MUD Welt nicht :). aine andere moeglichkeit waere ja
der uebergang zu einer beschreibung wie in der Huette im Tal von Grisu
da gibt es garkein N oder S oder so sondern raumnamen also warum nicht
> unt raum
Du bist im arbeitszimmer.........rabarberblasuelz .... im sueden siehst du 2
eine Tuer zur Kuecke und eine zum Schlafzimmer des Profs.

Sichtbare ausgaenge: Westen, Kueche, Schlafzimmer
> "

in den zimmern kannst du dann wieder den ausgang nach norden einbauen.

Das problem kannst du mit dieser mail nicht beheben - jeder der zum ersten
mal nach titiwu kommt wird sich daran stossen.

Gruss
H.

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



Re^3: Blockhuette auf Titiwu (Guybrush, 24. Aug 1995, 14:44:05):
#! rn=Raffi rt=809264452
Hm, bevor ich es vergesse: *******IRONIE ON********
Gibt es da nicht einen begabten Mag, oder wars gar ein Grimmbornscher NPC,
welcher so tolle Richtungsangaebn wie suedwestoben und nordostunten
definierte?
Ist da nicht ein kleines Problem solche Richtungen wie linke Tuer und rechte
Tuer, oder
laufgegendiewandwenndudietuernichtfindestundholdireinebeuleundhabdann15lpweniger
definieren?
Wenn die Unlogik der Raeumlichkeiten die einzige im MUD waere, dann sollte
man da abhelfen. Aber da's mal nicht so ist, lasst uns lieber mal gegen die
Wand rennen und alle 6 Monate auf diese Diskussion warten...apropos
Diskussion..war schon lang keine NAmensdiskussion mehr...

oops, fast vergessen:
*******IRONIE OFF********
Guybrush, musste mal wieder Senfen (Geld hab ich keins, egal in welcher
Waehrung)

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



Re^4: Blockhuette auf Titiwu (Raffi, 24. Aug 1995, 15:43:38):
#! rn=Guybrush rt=809268245
>Guybrush: apropos Diskussion..war schon lang keine NAmensdiskussion mehr...

nein _grins_

na dann gib mal ein stichwort - ich bin dabei.....

Gruss
H.

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



Re^3: Blockhuette auf Titiwu (Catweazle, 24. Aug 1995, 16:35:09):
#! rn=Raffi rt=809264452
Tja, Raeume mit 2 suedlichen Tueren sind nicht einfach.
Aber stell doch mal den SPieler in die Raummitte...dann sollte es logischer-
weise nach suedosten in den rechten und mit suedwesten in den linken Raum
gehen. Hm, moment, suedwesten? Aber im Westen in doch eine Tuer! Ist der
linke Raum etwas mitten auf der Strasse? Ne auch schlecht geloest :)
Dann lieber so wie jetzt :)
YTC

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



Re^4: Blockhuette auf Titiwu (Anthea, 26. Aug 1995, 21:54:29):
#! rn=Guybrush rt=809268245
Hm, soll ich im Nirwana der Rasselkettenquest ALLE Richtungsmoeglichkeiten
einbauen? das waeren dann ja nur... denk... rechen.... 18 Ausgaenge pro
raum.... blickt dann noch jeder durch?
    Anthea

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



Re^5: Blockhuette auf Titiwu (Caradhras, 26. Aug 1995, 22:07:37):
#! rn=Anthea rt=809466869
Nee danke, Anthea, muss nich sein.

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



Re^6: Blockhuette auf Titiwu (Anthea, 26. Aug 1995, 22:45:24):
#! rn=Caradhras rt=809467657
Wieso muss das nicht sein? Da bietet man mal an, eine echte Erweiterung
einzubauen, und gleich kriegt man wieder so negative Reaktionen...
Tja, denn halt nicht, dann muesst ihr euch halt mit den 6 Ausgaengen
begnuegen... :)
        Anthea

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



Re^5: Blockhuette auf Titiwu (Dhojakt, 27. Aug 1995, 06:45:05):
#! rn=Anthea rt=809466869
Hm, also ich komme auf 26 Ausgaenge pro Raum, unten, suedwestunten,
westunten, ..., sw, w, nw, ... bis nordostoben, oben.

Khidar - ok, ab damit nach Schmarrn...

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



Re^5: Blockhuette auf Titiwu (Golum, 27. Aug 1995, 15:45:14):
#! rn=Anthea rt=809466869
OOps 18 Ausgaenge per Raum und das bei einem Lab das 5*5*5 gros ist .. argl
Da hat man doch so schon genug probs .. grummel ...
Sage das empfehele ich nicht ;)
Gruss Golum *hasst unuebersichtliche Labs*

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



Re^6: Blockhuette auf Titiwu (Caradhras, 27. Aug 1995, 22:09:14):
#! rn=Golum rt=809531114
teile fanuidhol mit ]Fyt hat mir mitgeteilt: also ich dachte du haettest ein
ali fuer 'gib 53 kugeln an
teile fanuidhol mit Fyt hat mir mitgeteilt: zephir'? [22:08]
Falsch, Khidar, du hast noch suedsuedwesten, suedsuedsuedwesten,
nordwestmitteoben, mittenuntenhochrunter.... und viele andere
vergessen.

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



Re^7: Blockhuette auf Titiwu (Caradhras, 27. Aug 1995, 22:15:36):
#! rn=Caradhras rt=809554154
Huch, vergesst die ersten 3 Zeilen. *erroet in RL*

   Caradhras - versteckt sich unter der Bank in PV

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



Re^7: Blockhuette auf Titiwu (Hardil, 28. Aug 1995, 11:15:43):
#! rn=Anthea rt=809469924

Oooch Anthea,

so ein paar zusaetzliche Nirvana-Ausgaenge waeren doch nciht schlecht. Zum
Beispiel vorneobenlinks, und suedwestunten. Oder am besten nur noch solche
Ausgaenge. :-)

-Hardil. Findet es gut, wenn Magier von sich aus Verbesserungsvorschlaege
haben

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



Re^8: Blockhuette auf Titiwu (Yendi, 28. Aug 1995, 14:07:44):
#! rn=Hardil rt=809601343

Da faellt mir natuerlich "Hintenrum (Ost)" und "Hintenrum (West)" ein...
Wie waers mit "raus", "hier raus", "da raus", "nur weg hier" und
"schleudersitz"?


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



Re^5: Blockhuette auf Titiwu (Mupfel, 28. Aug 1995, 20:29:08):
#! rn=Anthea rt=809466869
hihi

wer sagt dir ueberhaupt, dass das nirvana 3dimensional ist? jaja ich hoer ja
schon auf :-)

-mupfel-

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



Re^7: Blockhuette auf Titiwu (Yantro, 29. Aug 1995, 09:05:51):
#! rn=Caradhras rt=809554154

Wie waere es mit der angabe der ausgaenge in Polarkoordinaten?? dann sind es
unendlich viele... nu aber SCHLUSS mit dem Mist ;-)

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



Re^9: Blockhuette auf Titiwu (Raffi, 29. Aug 1995, 20:45:16):
#! rn=Yendi rt=809611664
Und vergesst nicht Oben raus und unten raus und hinten rein und ... aeh wer
kennt eigentlich den witz woh sich Kinkel und Geissler im Magen vom Kohl
treffen ?

Gruss H.

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



Re^10: Blockhuette auf Titiwu (Aranya, 31. Aug 1995, 17:26:07):
#! rn=Raffi rt=809721916
Ich kenn ihn, warum?

Aranya
      erzaehlt ihn nicht, erzaehlt ihn nicht. Ausserdem ist der Witz alt.

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



Re^10: Blockhuette auf Titiwu (Silvana,  1. Sep 1995, 08:12:12):
#! rn=Raffi rt=809721916
Wenn ihr schon dabei seit, Ausgaenge aufzuzaehlen, vergesst bitte nicht
'rueckwaerts norden' 'rueckwaerts oben' ect

Silvana denkt . o O (war das jetzt Spielerhilfe?)

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



Re^11: Blockhuette auf Titiwu (Bendeigid,  1. Sep 1995, 09:21:46):
#! rn=Silvana rt=809935932
Wenn wir schon so nette Ausgaenge suchen: kommt bald mal auf meine huebshen
Gebirgspass, der bietet solche Feinheiten in grosser Fuelle! Ich hoffe, es
wird bis Anfang Oktober was... Und nochwas: beim Hinlaufen kriegt man keine
nassen Fuesse, wie das fuer die Inseln wohl unausweichlich ist. :-))

Z'par Servu,
            Bendeigid, Darkovaner

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



Re^11: Blockhuette auf Titiwu (Cuchullin,  1. Sep 1995, 16:07:18):
#! rn=Silvana rt=809935932


Auweia, ich seh es schon in Taramis:
"krieche rueckwaerts westnordwesthintenmittehalbunten"
Na denn...

Cuch.- (entdeckt die Exitophobie)


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



Re^12: Blockhuette auf Titiwu (Mupfel,  1. Sep 1995, 16:59:53):
#! rn=Cuchullin rt=809964438
naja... nordnordunten ist doch auch ganz nett :-)

-mupf-

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



Re^11: Blockhuette auf Titiwu (Raffi,  1. Sep 1995, 18:13:45):
#! rn=Aranya rt=809882767
> Aranya
>     erzaehlt ihn nicht, erzaehlt ihn nicht. Ausserdem ist der Witz alt.

Das schon hat aber bestens auf die richtungsdisk gepasst :)

Gruss
H.

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



Re: Blockhuette auf Titiwu (Dhojakt,  2. Sep 1995, 05:28:55):
#! rn=Boing rt=809190245
Wie waere es denn, wenn du einfach die fraglichen 2 Richtungen mit suedlinks
und suedrechts bezeichnest? Da kann sich keiner was drunter vorstellen und es
kommen keine Bugreports mehr :)

Ein schon im voraus lachender Khidar.

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



Eine neue Insel (Morgoth, 25. Sep 1995, 12:02:05):
Endlich sind die Geruechte bestaetigt worden.
Was lange nur hinter hervorgehaltener Hand getuschelt wurde, kann jetzt laut
ausgesprochen werden.
Es ist wiederentdeckt!
Das Verlorene Land......
Es wurde am Montag, den 25. September genau um 12 Uhr Mittags von Wargon und
Morgoth wieder ins leben gerufen.
Die Moeglichkeit fuer Euch, es zu besuchen besteht in einer kleinen
Schiffsreise mit dem Piratenschiff.
Viel Vergnuegen im.........Verlorenen Land........wuenscht Euch .....
Euer Valar Morgoth

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



KATAKOMBEN ENTDECKT !!! (Morgoth, 28. Sep 1995, 14:36:56):
Die Orks der Stadt Orkhausen haben unter ihrer Stadt ein paar
Katakombengaenge gefunden. Nun werden mutige, erfahrenen Abenteurer (auch
Karateka oder Chaoten) gesucht, die diese Katakomben erkunden.
Viel Spass beim entdecken wuenscht Euch
Valar Morgoth

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



Orkhausener Marktplatz (Morgoth,  4. Okt 1995, 15:46:46):
tja, fleissig wie die orks nunmal sind, haben sie einen kleinen Marktplatz
gebaut
er ist nun allen zugaengig...
tja, das wars, kurz und knapp **stichel**
morgoth

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



Re: Orkhausener Marktplatz (Grimmborn,  4. Okt 1995, 15:47:36):
#! rn=Morgoth rt=812818006

...so wie die Raumbeschreibungen...*auchstichel*

Grimmborn der Atheist, der Fan der Einzeilenartikel.

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



Re: Re: Orkhausener Marktplatz (Morgoth,  4. Okt 1995, 15:48:23):
#! rn=Grimmborn rt=812818056
ha, er hats gemerkt, wow!

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



Drudenwald (Saikan, 17. Okt 1995, 22:10:09):
Kurz und buendig: Auf dem verlorenen Land gibt es jetzt einen schoenen
grossen Drudenwald....

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



Re: Drudenwald (Asmodis, 17. Okt 1995, 23:16:49):
#! rn=Saikan rt=813964209
Ja, kann ich bestaetigen, er ist schoen :)

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



Drudensumpf und Moor (Saikan, 24. Okt 1995, 11:00:12):
Im Suedwesten des Drudenwaldes auf dem Verlorenen Land wurde ein riesiges
Moor gefunden.
Ebenfalls wurde von einem Sumpf gesprochen. Im Sueden des Moores sollen sich
zahlreiche
Hexe nieder gelassen haben.

Saikan

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



Re: Drudensumpf und Moor (Guybrush, 24. Okt 1995, 11:00:59):
#! rn=Saikan rt=814528812
hmm...ist da nicht ne Schlucht?
Ist die jetzt ueberquerbar?
G. war mal neugierig.

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



Re: Drudensumpf und Moor (Asmodis, 24. Okt 1995, 19:53:01):
#! rn=Saikan rt=814528812
Huch, das hatte ich doch schon letzte Woche gefunden :)

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



Re: Re: Drudensumpf und Moor (Toss, 25. Okt 1995, 20:47:51):
#! rn=Asmodis rt=814560781
Nein, nicht Du, sondern "Beobachter, der vorgeschickte Anfaenger und
Sterber".

Ryne. Erinnert sich gerne an Moron, als Asmodis 5 Scouts vorschickte, um
bloss nicht zu sterben. Und wer ging drauf ?

Asmodis.

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



Re^3: Drudensumpf und Moor (Cuchullin, 25. Okt 1995, 20:49:12):
#! rn=Toss rt=814650471

Kann ich im verlorenen Land aber voll und ganz verstehen.
Dem ganzen Laerm nach werde ich da ganz sicher nicht selbst hingehen.
Aber Hoppla,
Cuch.-

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



Re^4: Drudensumpf und Moor (Toss, 25. Okt 1995, 20:51:55):
#! rn=Cuchullin rt=814650552
Hmm. Also, ich war mit Ryne da im Sumpf, und mir kams nicht gefaehrlich vor.
Allerdings muss ich auch mal sagen, dass ich auch zweities benutze, um
Gegenden zu mappen. Aber eben nicht, wenns gefaehrlich wird. Das ist naemlich
eine mittlerweile weitverbreitete unsitte.

Ryne

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



Re^5: Drudensumpf und Moor (Schrumpfi, 25. Okt 1995, 20:55:07):
#! rn=Toss rt=814650715
Nu hoert doch mal auf, auf Asmodis und seiner Familie rumzuhacken.! Ich kann
das nicht mehr hoeren, wenn er so spielen will, dann soll er das auch machen.
Wo sind wir denn hier?
Schrumpfi

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



Re^6: Drudensumpf und Moor (Raffi, 26. Okt 1995, 13:00:15):
#! rn=Schrumpfi rt=814650907

> Wo sind wir denn hier?

 In Deutschlad ?


Gruss
H.
(Nein, Keine Disk - ich konnte nur nicht wiederstehen)

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



Re^7: Drudensumpf und Moor (Grimmborn, 26. Okt 1995, 13:34:34):
#! rn=Raffi rt=814708815

Irrtum, das hier ist die HD eines (Pentium) Rechners in Muenster. Deutschland
ist das, was drumherum ist. Und wenn ich sage "drumherum" meine ich auch
"drumherum", und zwar umfassend. ;-)

Grimmborn der Atheist

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



Re^3: Drudensumpf und Moor (Asmodis, 26. Okt 1995, 15:12:04):
#! rn=Toss rt=814650471

Die einzigen aus meiner Truppe, die je im Drudensumpf und Moor waren sind
Asmodis und Issomad, Beobachter war nie da, wenn du es nicht glaubst,
frag einfach Saikan, der hat das sicher irgendwo geloggt.

  Ciao, Asmodis (nein, ich will kein reply)

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



Re^4: Drudensumpf und Moor (Bambulko, 26. Okt 1995, 15:12:52):
#! rn=Asmodis rt=814716724
Du bekommst aber ein reply :-)

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



Re^5: Drudensumpf und Moor (Aranya, 26. Okt 1995, 16:15:56):
#! rn=Bambulko rt=814716772
Das musste ja sein... :)
Ab nach muell.

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



Re^7: Drudensumpf und Moor (Schrumpfi, 26. Okt 1995, 16:42:11):
#! rn=Raffi rt=814708815
Ich nicht.

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



Re^8: Drudensumpf und Moor (Caradhras, 26. Okt 1995, 19:05:51):
#! rn=Schrumpfi rt=814722131
Raffi>  In Deutschlad ?

Ich bin auch nicht in Deutschlad.
Und ausserdem ist es glaube ich ziemlich wurscht ob Asmodis jetzt seine
Zweities aeh Ersties vorschickt weil er Angst hat oder nicht.
Zweities sind auch nur Menschen, und Asmodis ist ja Zweitie, also ist
ja sowieso klar dass er nicht gehen sollte. :)
Soviel zu Logik.

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



Re^9: Drudensumpf und Moor (Asmodis, 26. Okt 1995, 22:33:07):
#! rn=Caradhras rt=814730751
Jo, ausserdem wenn ich sage, dass Issomad jetzt mein Erstie ist,
dann ist er jetzt mein Erstie, diese Entscheidung wurde getroffen, weil er
etwas besser kaempfen kann wie ich :)
Dass er etwas juenger ist, ist irrelevant, ebenso, dass ich mehr Ep
habe, die nehmen ja auch schon staendig ab.

                Ciao, Asmodis

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



Ausbau von Orkhausen (Morgoth, 15. Dez 1995, 13:10:57):
die orks waren mal wieder sehr fleissig und haben einen neuen kleinen
stadtteil erbaut. dort gibt es wieder ein paar neuigkeiten, wie z.b. einen
wunderheiler oder einen platz fuer seherhaeuser...und noch einiges mehr (wovon
einiges aber noch in planung ist)
ok, viel spass im neuen stadtteil
morgoth

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



Bericht vom Dortmunder Stammtisch folgt! (Gast1, 18. Dez 1995, 16:14:59):

Disclaimer: dieser Artikel ist in d.inseln gepostet, damit Saikan, deralle
anderen Rubriken uebersrpingt, ihn nicht uebersieht. Auf besonderen Wunsch.


Aaaalso, da geht man als harmloser Gast mal auf einen der beruechtigten
Dortmunder Stammtische, und...

Schalten sie morgen wieder ein, wenn sie lesen wollen, was einem da so alles
ueber den Weg laufen und auch sonst passieren kann.

Gast.

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



Verlorene Land im WWW (Saikan, 19. Dez 1995, 15:23:31):
Wegen einiger Richtlinienrangeleien (wuerg) ist die W3 Seite des Verlorenen
Landes nicht ueber
die MG W3 Seiten zu erreichen sondern ueber :
http://www.wi-inf.uni-essen.de/~wahl/verloren/verloren.html
Mal sehen ob und wann ich meine Seite an die MG Richtlinien anpasse.

Saikan ist mal wieder abgrundtief boese.

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



Re: Bericht vom Dortmunder Stammtisch folgt! (Gast1,  8. Jan 1996, 11:44:14):
~#! rn=Gast1 rt=819299699
~#! tid=819299699

Da kommt man mal so ganz ahnungslos auf einen Dortmunder Stammtisch, und dann
das. Jede Menge Mudder. Und Mudderinnen. Und aehnliches. Unglaublich.
Um meinen Schrecken der geehrten Leserschaft etwas naeherzubringen, folgt
eine Kurzbeschreibung der anwesenden Individuen...
(Disclaimer: Reihenfolge ohne Wertung)

* Bienchen: kann noch nicht so gut U-Bahn fahren, das ist naemlich viel
komplizierter als S-Bahn (z.B. neue Haltestellen lernen). Blond als Beruf.
Oder als berufung? Man weiss es nicht so genau.

* Shakedbeer: Wird seinem Namen nicht gerecht, trinkt naemlich nur Cola.
Dynamischer Junginformatiker mit Fanclub aus Low-Level-Spielern.

* Bloodyharry: Alterspraesident. Diesmal schon vor 11 Uhr freigelassen und
deswegen recht frueh auf dem Stammtisch. Ausserdem aeusserst spendabel. Wer
freundlichen Gaesten ein Bier ausgibt, bekommt auch gute Presse.

* Bitmaster: Cokemaster, aber bitte kein Bit.

* Saikan: traut sich nicht mehr nach Bochum auf den Stammtisch, deswegen
jetzt hier. Versucht, die Besucherzahlen auf Morgoths Orkinsel zu verdoppeln.
Nervt Desasta mit konsequentem Olivengenuss. Sonderpreis der Frisoer-Innung
"Mr. Haarlack '95".

* DeSaSTa: nervt Saikan mit konsequentem Nikotingenuss. Sorgt nachts fuer
Glatteis auf Dortmunds Strassen. :-)

* Gringor: Gesichtsjuengster. Mitglied des Shakedbeer-Fanclubs (SFC).

* Thufir: Nimm zwei, Tu vier. Oder Tuffi-Milch? Jedenfalls SFC-Mitglied.

* Xanthia: Ein Zweitie von Aline. Aline brachte eine gemietete Schauspielerin
mit, die nur nett laechelte, aber kein Wort sagen durfte.

* Aline: Hagens Antwort auf Schrumpfi. Waere gerne blond, ist aber zu blond,
um in der Drogerie die richtige Coloration zu finden.

* Paracelsus: Wuschelkopf ohne Angriffsstellen. Trotzdem nicht aalglatt -
Grats.

* Leusel: Blond sind viele, Informatiker auch. Brille = Fielmann.

* Craig: kam wie immer zu spaet, musste noch die neue Todessequenz testen.

* Qnybert: Marita ohne Schnurrbart. Und etwas ruhiger. Zu seinem Vorteil.
 SFC-Mitglied.

* Morgoth: hat seit dem letzten Stammtisch (4 Wochen her) das T-Shirt immer
noch nciht gewechselt. Trinkt Cola-Light, verspricht sich dadurch die
befoerderung zum Erzmagier. Dortmunds Yantro

* Hardil: Hat die ganze Zeit nur mit Locutus MAGIC gespielt.

* Locutus: Hat die ganze Zeit nur mit Hardil MAGIC gespielt.

* Marita: Hat Haare nicht nur auf den Zaehnen, sondern auch massig auf der
Oberlippe. Zudem Inhaber einer Sextanerblase.

* Pampers: war gar nicht da, weil auf Laenderspiel in Suedafrika. Aber sein
Geist schwebte ueber uns.

Mehr war nicht da. Aber sagt selbst - war das nciht genug?

DISCLAIMER: dieser Artikel steht in d.inseln, weil Saikan ihn sonst nicht
liest. Saikan wird gebeten, ihn nach dem Lesen nach treffen zu verlegen.

Gast.

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



Re: Re: Bericht vom Dortmunder Stammtisch folgt! (Marita,  9. Jan 1996, 00:27:58):
~#! rn=Gast1 rt=821097854
~#! tid=819299699
Nicht ganz, Hardil: Du hast Blockbuster vergessen.

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



Stau bei Oma Wetterwachs (Wargon,  9. Jan 1996, 11:14:42):
  Hi!
Der "Reset-Stau" bei Oma Wetterwachs, der entstehen konnte, wenn mehrere
Leute relativ gleichzeitig die Quest beenden wollten, ist jetzt abgeschafft.
Ausserdem ist der Gnom mit seinen Fragen jetzt etwas hartnaeckiger. ;)
  Wargon

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



Re: Stau bei Oma Wetterwachs (Jerrico,  9. Jan 1996, 14:35:20):
~#! rn=Wargon rt=821182482
~#! tid=821182482
Hartnaeckiger ? Schade, dann muss ich mich mit dem naechsten xtie, wohl etwas
genauer umschauen muessen :)

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



drudenwald (Catweazle,  9. Jan 1996, 19:29:39):
[Verlegt von allgemeines, Saikan,  9. Jan 1996, 18:22:48]:
ist wieder auf .


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



neues gebiet im verlorenen land (Morgoth, 15. Jan 1996, 12:25:00):
durch die geldknapptheit, die hier herrscht, war auch bauer maggot gezwungen
teile seiner felder und laendereien zu verkaufen. dies hatte zur folge, dass
sie vollkommen verwahllost sind. nun sind diese felder nicht mehr von bauer
maggot geschuetzt, so dass sie jeder betreten kann.
inselvater morgoth

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



Betelnuss auf der Sonneninsel (Cheasy, 16. Jan 1996, 17:36:58):
Der Title sagt eigentlich schon allees: auf der Sonneninsel steht eine
Betelpalme, an der die fuer die Chilana-Quest benoetigte Betelnuesse haengen.
Nach insgesamt fuenf Stunden probieren (laut logfile) hab ich das Ding immer
noch nicht -- entweder ich bin zu bloed, oder da ist was faul. Hier also ein
kurzer Ueberblick meiner Aktionen:
schau -> Um Dich herum... [snip] Ein Palme.
untersuche palme ->
Die mindestens fuenfzehn Schritt hohe Betelpalme mit ihren bis zu zwei
...[snip]... zwei Stiele, an denen zahlreiche eifoermige Nuesse wachsen.
schau stiele -> Sowas siehst Du hier nicht!
schau nuesse ->Sowas siehst Du hier nicht!
schau betelnuesse -> Sowas siehst Du hier nicht!
Soso. Hier also nicht. Vielleicht hochklettern?
kletter palme -> Wie bitte?
kletter auf palme -> Wie bitte?
kletter palme hoch -> Wie bitte?
Undsoweiter in tausend variationen. Nix geht. ARGL!
Naechste Idee: einfach nehmen.
nimm nuesse -> Das geht nicht!
Inzwischen weiss ich wie's geht... alleerdings sollte irgendwo ein Hinweis
versteckt sein, zum Beispieel in Chilana's Notizbuch, wie man die Nuss kriegt.

-Cheasy
P.S: Sorry fuer die Tippfehler -- im lag tippt sich's schlecht.

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



Re: Betelnuss auf der Sonneninsel (Silvana, 18. Jan 1996, 08:00:04):
~#! rn=Cheasy rt=821810218
~#! tid=821810218
Auch wenn's eigentlich nach d.wald gehoert - da gehoert die Quest naemlich
hin: Es ist immer wieder erstaunlich, wie kompliziert Spieler denken
koennen. ;) Ich hatte echte Muehe, mir 8 (ACHT) verschiedene Syntax-
moeglichkeiten auszudenken. Aber ich hoffe mal, Du hast fleissig Ideen
abgesetzt, damit ich das etwas vereinfachen kann. An Syntax-Problemen
sollte die Quest eigentlich nicht scheitern.
Silvana

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



Der arme Priester (Morgoth, 23. Jan 1996, 07:12:07):
Tja, da hat ers schon schwer den Glauben seiner Rasse zu vertreten, da
verliert er auch noch seinen Ring. Bitte helft ihm doch bei der Suche.
Morgoth

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



Fehler weg (Saikan, 23. Jan 1996, 16:34:57):
Es wurden einige Fehler im Drudenwald beseitig.
Es liegen jetzt nicht nur schlechte Pilze im Wald rum ;)
Ausserdem wurden Aenderungen am Dolch und an den Pilzen vorgenommen.

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



Siegelring-Quest-Bug (Morgoth, 24. Jan 1996, 10:59:54):
da ich viele mails bekommen habe, was das oeffnen der luke angeht, habe ich
diesen teil leicht abgeaendert. es sollte nun keine probleme mehr mit dieser
luke geben.
danke fuer die mails und anregungen....
morgoth

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



tester gesucht (Morgoth,  1. Feb 1996, 12:07:19):
ich habe, auf wunsch einiger seher, ein dartspeil geproggt.
dieses haengt nur in meiner orkkneipe (marktplatz).
es ist zu testzwecken freigegeben.
macht bitte gebrauch davon, damit es perfekt wird.....
fuer bugs uebernehme ich (im moment noch) keine haftung....
btw. ist nur fuer seher zugaenglich
morgoth

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



dartspiel-funktionen korrigiert (Morgoth,  2. Feb 1996, 09:47:44):
erstmal danke an orktoeter und nial, denn sie haben (wohl als einzige) mein
dartspiel getestet und mir einige anregungen gegeben. ein besonderer dank
gebuehrt slyfox, der mir diese ekligen funktionen zur umrechnung der x,y
koordinaten in polarkoordinaten geschrieben hat. ohne ohn wuerde es nicht
funktionieren.
nun also nochmals die bitte an alle seher, das dartspiel auf herz und nieren
zu pruefen. zur zeit ist das ganze noch die 'abgespeckte' version, aber es
wird immer wieder erweitert. je eher diese varianten (301, 501, D-in, D-out)
offiziell angeschlossen werden, kann ich mich dransetzen und cricket oder
around the clock proggen....
es ist also in eurem intresse (wer gern dartet)....
danke
morgoth

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



Re: dartspiel-funktionen korrigiert (Bloodyharry,  5. Feb 1996, 10:00:04):
~#! rn=Morgoth rt=823250864
~#! tid=823250864
Aber bitte sehr....

Opipirat Bloody Harry

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



Orkmagier in Orkhausen (Morgoth,  6. Feb 1996, 09:41:41):
Mal wieder hat sich ein neuer Einwohner fuer Orkhausen gefunden. Es ist ein
alter Magier, der in der Wohnsiedlung sein Haus gefunden hat. Er bietet allen
Interessenten einen hilfreichen Dienst.
Morgoth

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



Schuettelbier fuer Shaky Island (Shakedbeer,  9. Feb 1996, 17:14:39):
Hallo Muddies.

Die Shakies sind da! Bevor jetzt alle fragen: 'Was sind Shakies?' kommt
hier eine kurze Geschichte:
Die Shakies sind Wesen, die den Menschen aehneln. Sie lebten einst in der
Wueste des MG, sind aber aus schuettelbierproduktionstechnischen Gruenden
auf die Wuesteninsel Shaky Island ausgewandert. Sie freuen sich bestimmt
ueber einen kleinen Besuch. Wer eine Verbindung zu dieser Insel sucht, sollte
sich mal am Steg vom Verlorenen Land umschauen.

Shakedbeer - der Vater aller Shakies.


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



Re: Schuettelbier fuer Shaky Island (Hardil,  9. Feb 1996, 17:17:14):
~#! rn=Shakedbeer rt=823882479
~#! tid=823882479

... und wen interessierts?
Wen interessiert das Verlogene Land?
Sobald ein Sehertor aufgestellt ist, steigt die P(Besuch) evtl. Aber auch
nicht zwingend.

-Hardil. Rentner. Erforschungspunkte - nein danke. :)

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



Re: Re: Schuettelbier fuer Shaky Island (Shakedbeer,  9. Feb 1996, 17:18:31):
~#! rn=Hardil rt=823882634
~#! tid=823882479
Nunja.

Ich werde nur gefragt, wo die neue Quest beginnt. :)

Shakedbeer - interessiert sich fuer das Verlorene Land.

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



Re: Re: Schuettelbier fuer Shaky Island (Bernhard,  9. Feb 1996, 17:19:12):
~#! rn=Hardil rt=823882634
~#! tid=823882479

...meiner Ansicht gibt es sogar schon ein Seherportal im 'verlogenen' Land

Bernhard.

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



Re: Re: Schuettelbier fuer Shaky Island (Boing,  9. Feb 1996, 17:19:26):
~#! rn=Hardil rt=823882634
~#! tid=823882479
Es gibt sicher einige Leute, die das verlorene Land interessiert, Du
musst nicht Deine Ignoranz auf andere uebertragen.
  Boing

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



Re^3: Schuettelbier fuer Shaky Island (Hardil,  9. Feb 1996, 17:21:48):
~#! rn=Boing rt=823882766
~#! tid=823882479
Ja, das kann schon sein.
Ich hab vergessen "just my 2 pennies" drunterzuschreiben.
Sorry dafuer.

Dieser Artikel wurde per Trigger erstellt. Dass Gri^H^H^HHardil als Autor
genannt wurde, ist rein zufaellig.

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



Re: Re: Schuettelbier fuer Shaky Island (Escubar,  9. Feb 1996, 17:22:48):
~#! rn=Hardil rt=823882634
~#! tid=823882479
Wenn Dich das verlorene Land net interessiert, dann lass es halt bleiben,
aber demotivier bitte nicht andere Leute.

Offenbar liegt Deine Besechsrate auf dem verlorenen Land bei Null, denn sonst
haettest Du wenigstens Sehertor Nr. 19 entdeckt.

Escubar

PS: Es gibt auch viele schoene Ausruestungsgegenstaende auf dem verlorenen
Land...

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



Re^3: Schuettelbier fuer Shaky Island (Hardil,  9. Feb 1996, 17:24:55):
~#! rn=Escubar rt=823882968
~#! tid=823882479
Das Sehertor auf dem Verlo*enem Land habe ich gefunden. Ich meinte Shaky
Island. Aber das ist egal. Ich finde es nur interessant, wie man mit einem
klitzekleinem Artikel, der evtl Kritik oder Misfallen ausdrueckt, ganze
Schwaerme an Replies von mindetsens
demselben Ausmass erzeugen kann.

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



Re^3: Schuettelbier fuer Shaky Island (Mupfel,  9. Feb 1996, 22:25:08):
~#! rn=Escubar rt=823882968
~#! tid=823882479
>PS: Es gibt auch viele schoene Ausruestungsgegenstaende auf dem
>verlorenen Land...

jou... fast schon zuviele zuschoene :-)

-mupfel-

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



Re^4: Schuettelbier fuer Shaky Island (Fyt, 11. Feb 1996, 16:25:50):
~#! rn=Mupfel rt=823901108
~#! tid=823882479
Hm, Mupfel, besonders nett find ich immer den kostenlosen Trans
zu Lars :))

Fyt.

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



Titiwu (Boing, 11. Feb 1996, 16:55:57):
Ich habe Titiwu etwas ueberarbeitet, unter anderem hat sich auch der
Loesungsweg fuer die Quest veraendert. Ich hoffe, es sind keine groben
Fehler mehr drin, wenn doch, bitte melden! Ueber Ideen und Anregungen
bin ich natuerlich dankbar.
  Boing

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



Land in Sicht! (Wargon, 20. Feb 1996, 19:31:07):
  Hi!
Wie aus gewoehnlich gut informierten Kreisen berichtet wird, verbindet eine
Barke zwei neue Inseln mit der bisher bekannten Welt.
Auf der einen der beiden Inseln soll jedoch noch nicht all zu viel los sein.
  Viel Spass beim Suchen,
    Wargon

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



Re: Land in Sicht! (Asmodis, 20. Feb 1996, 23:07:11):
~#! rn=Wargon rt=824841067
~#! tid=824841067
Hoffentlich ist das keine Totenbarke :)

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



Re: Land in Sicht! (Morgoth, 21. Feb 1996, 19:44:34):
~#! rn=Wargon rt=824841067
~#! tid=824841067
ja, ganz toll...ich hab zwar noch nicht geschaut, aber wenn ihr
typomeldungen absetzt, dann setzt sie NICHT BEI MRI ab, sondern
bezieht sie auf die barke.....ist das denn so schwer?
typo barke: ....schif>f< !!!
Morgoth hofft, dass Wargon das schnell aendert

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



Re: Re: Land in Sicht! (Anakin, 21. Feb 1996, 19:45:32):
~#! rn=Morgoth rt=824928274
~#! tid=824841067
typo Morgoth NICHT BEI MRI soll wohl MIR heissen...

Anakin.

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



Questbelohnung der Shakies (Shakedbeer, 28. Feb 1996, 11:46:48):
Die Shakies haben einen Kriesenrat einberufen und sind zu dem Entschluss
gekommen, jedem Abenteurer, der ihnen auch ein weiteres Mal das Erdbeben
zurueckbringt, die Questbelohnung zu ueberreichen. Sie entschuldigen sich
bei allen, die es bereits versucht haben, fuer ihre Unhoeflichkeit.

Shakedbeer - der Vater aller Shakies.

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



Labyrinth-Anleitung (Shakedbeer, 12. Apr 1996, 12:33:23):
Hi!

Treblih hat mich gestern gebeten, den Spielern einen Gefallen zu tun, die
das Verrueckte Labyrinth als Brettspiel nicht kennen. Deshalb habe ich im
Raum mit dem Labyrintheingang eine umfassendere Gebrauchsanweisung
ausgehaengt.
Ich hoffe, ihr kommt jetzt besser klar. :)

Shakedbeer - macht fast alles was Treblih sagt.

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



0251845737 (Toeter, 14. Apr 1996, 11:16:10):
Hoi,
ich hab mal wieder Repfile und Mails zu Akhar Nth'tar abgearbeitet und
moechte mich fuer darin geaeussertes Lob und die teils ausfuehrlichen
Anregungen bedanken. Besonders ist mir dabei allerdings aufgefallen, dass
viele meinten, die Moenche waeren zu stark/bloed/stinkend. Deshalb weise
ich noch einmal darauf hin, dass man auch als Gast1 fast alle Vorteile des
Klosters - wie auch die der Insel allgemein - in Anspruch nehmen kann (bis
auf die Killtools natuerlich, aber wer nicht metzeln will, will auch nicht
metzeln). Ansonsten nicht locker lassen, was die weitere Inspektion angeht,
vieles hat naemlich noch keiner gefunden (hallo Rudi ;) was mich allerdings
nicht daran hindert, weiter an der Insel zu basteln.
Bis denn, Toeter


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



Akhar Nth'tar (Toeter, 26. Apr 1996, 15:00:58):
Hi,
ein paar kleine Neuigkeiten:
1. Die Reise in die Geisterwelt im einsamen Waechter ist jetzt etwas
   lagfreundlicher, d.h. die Steuerung geht ein wenig schneller. Ausserdem
   wirkt dort jetzt auch die Vorsicht, Feiglinge muessen also nicht mehr
   sterben.
2. Der Drujschaedel ist nach 'ende' nicht mehr weg, sondern liegt zusammen
   mit dem anderen Krempel in der Gegend herum.
3. Einer der Moenche wird jetzt mit Y'nakhs Segen oder dem Stirnreif zum
   Kinderspiel.
4. Wenn ihr etwas habt, worueber ihr euch schon immer einmal mit eurem
   Schutzgeist unterhalten wolltet, stosst mir Bescheid (aber nicht sowas
   wie "Wo sind meine restlichen ZTs" ;)
Keep up the good work,
  Toeter

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



Re: Schuettelbier ALKOHOLFREI (Schrumpfi, 30. Apr 1996, 03:17:42):
~#! rn=Shakedbeer rt=830810662
~#! tid=830810662
Der soll sich was schaemen der Ruettler. Alkoholfreies Bier, BAEH! :)
Schrumpfi

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



Re: Re: Schuettelbier ALKOHOLFREI (Shakedbeer, 30. Apr 1996, 09:57:40):
~#! rn=Schrumpfi rt=830827062
~#! tid=830810662
*GRINS* War ja Gott sei Dank nicht meine Idee ;)

Shakedbeer - fuehlt sich unschulig.

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



Re: Schuettelbier ALKOHOLFREI (Guybrush, 30. Apr 1996, 17:44:08):
~#! rn=Shakedbeer rt=830810662
~#! tid=830810662
*doppelwuerg*

erst schuetteln und nu noch ohne alk!!!
Guybrush, entsetzt!

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



Re: Re: Schuettelbier ALKOHOLFREI (Shakedbeer,  1. Mai 1996, 01:15:14):
~#! rn=Guybrush rt=830879048
~#! tid=830810662
Hey! Das original Schuettelbier ist immer noch zu haben! ;)

Shakedbeer - haette nicht gedacht, dass eine Panik ausbricht :)

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



Re^3: Schuettelbier ALKOHOLFREI (Li,  2. Mai 1996, 11:39:07):
~#! rn=Shakedbeer rt=830906114
~#! tid=830810662
Keine ANGST Shzaky*, es gibt auch Leute, die alkfreies bier moegen. Ich
gehoere dazu!
Li (hat sich gerade als Jever Light Liebhaber geoutet)

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



Re: Schuettelbier ALKOHOLFREI (Raffi,  2. Mai 1996, 12:37:27):
~#! rn=Shakedbeer rt=830810662
~#! tid=830810662

Ich dachte die Shakys machen Bier und keine Limonade ?

Hoffentlich kommt es zu keiner Infektion ala Pirot!

Gruss
H.

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



Re^4: Schuettelbier ALKOHOLFREI (Willow,  3. Mai 1996, 23:20:26):
~#! rn=Li rt=831029947
~#! tid=830810662
hmmm... irgendwie hab ich da etwas anders in erinnerung. ich selbst trink
auch gerne mal nen alk-freies bier (uups, selbst geoutet) aber li, jever-light
ist alk-REDUZIERT und nicht alkfrei!
das alkfreie von jever heisst jever fun und schmeckt ganz lecker (fuer nen
alkfreies bier), aber mittlerweile hab ich noch nen leckereres alkfreies
entdeckt... flensburger frei!
Weidchen Willow trinkt gerne bier und faehrt gerne auto...

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



Re^5: Schuettelbier ALKOHOLFREI (Li,  7. Mai 1996, 08:54:48):
~#! rn=Willow rt=831158426
~#! tid=830810662
Ja richtig, Fun meine ich auch...
Danke fuer die Berichtigung! :-)
Li

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



Doppelkopf (Shakedbeer, 30. Mai 1996, 18:29:24):
Hallo!

Ich habe gerade mal mit dem Wirt in der Kneipe von Shakyisland ein
kleines Schwaetzchen bei einem kuehlen Schuettelbier abgehalten und da hat
der mir erzaehlt, dass er expandiert hat. Er meinte, dass bei dem ganzen
Besucherandrang wegen der Gilde im Dachgeschoss ein groesseres Geschaeft
zu machen sei. Deshalb hat er seinen Keller ausgeraeumt und fuer Spieler
eingerichtet, die gerne eine Partie Doppelkopf spielen moechten. Natuer-
lich hat er auch Regeln ausgelegt. Fuer alle, die es nicht wissen: Doppel-
kopf ist ein Kartenspiel fuer vier Spieler. Ich habe dem Wirt versprochen,
ihm in naechster Zeit einige Sonderregeln beizubringen, die er dann den
Spielern ermoeglichen moechte. Er hat auch schon vorgeschlagen, dass es
bald moeglich sein wird, um Muenzen zu spielen. 

Shakedbeer - wird wohl demnaechst oefter im Keller als im Dachgeschoss der
             Kneipe anzutreffen sein :)

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



Re: Doppelkopf (Shakedbeer, 30. Mai 1996, 21:11:28):
~#! rn=Shakedbeer rt=833473764
~#! tid=833473764
Hmmm.

Da der Doppelkopftisch unter der Kneipe sofort von so vielen Spielern 
belagert wurde, habe ich kurzerhand noch einen in meiner Huette aufgestellt.

Shakedbeer.

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



Doko (Shakedbeer,  2. Jun 1996, 21:55:43):
Hallo Doppelkopffreunde!

Gerade sind folgende Aenderungen aktiv geworden:
- Der Wirt hat extra-starke Waende einbauen lassen. Seitdem ist der Keller
  der Kneipe Erdbebensicher.
- Wenn man nicht mehr am Tisch platznehmen kann, kann man nun mit 'betrachte
  spiel' das Spielgeschehen verfolgen.
- Wenn man an der Reihe ist, werden automatisch die aktuellen Karten
  angezeigt. Damit sollten auch die Probleme mit den wechselnden Zahlen
  geloest sein.

Shakedbeer - freut sich schon auf die naechste Partie Doppelkopf.

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



Re: Doko (Asmodis,  3. Jun 1996, 17:03:11):
~#! rn=Shakedbeer rt=833745343
~#! tid=833745343
Danke, Shaky, jetzt fehlen nur noch die 'Sonderregeln', die bei uns 
selbstverstaendlich sind :)

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



DoKo-Sonderregeln (Shakedbeer,  4. Jun 1996, 17:15:52):
Hallo Doppelkopffreunde!

Gerade sind wieder ein paar Aenderungen aktiv geworden:
- Mit dem Kommando 'spielstatus' erhaellt man eine kurze Uebersicht ueber
  folgende Themen: 
    *) Wie sind die aktuellen Spielvarianten-Einstellungen?
    *) Wer ist dran? 
    *) Ist ein Vorbehalt aktiv?
    *) Wer spielt ein Solo? 
    *) Was wurde bisher angesagt? 
    *) Wer hat im Moment wie viele Punkte?
- Derjenige, der sich zuerst an den Doppelkopftisch setzt, kann nun einige
  Einstellungen vornehmen:
    *) Sollen Bockrunden gezaehlt werden?
    *) Soll ein 'Schweinchen' angesagt werden koennen?
    *) Soll ein 'Charlie' berechnet werden?
    *) Soll die zweite Dulle die erste schlagen?

Shakedbeer - baut gerne noch ein paar Sonderregeln ein, wenn Ihr mir die mit
             ner kurzen Mail erklaert.

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



Re: DoKo-Sonderregeln (Caradhras,  5. Jun 1996, 23:49:46):
~#! rn=Shakedbeer rt=833901352
~#! tid=833901352
Jetzt musste mir nur noch erklaeren warum wir neulich mit 35 Punkten nen
Doppelkopf hatten. Ich dachte, den gibts erst ab 40. *gruebelstaun*

        tuess         Caradhras 
   - wird dem Sensi untreu und sitzt am Spieltisch auf Shaky Island

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



Re: Re: DoKo-Sonderregeln (Shakedbeer,  6. Jun 1996, 08:47:16):
~#! rn=Caradhras rt=834011386
~#! tid=833901352
Stimmt. Da wurde eine Variable nicht zurueckgesetzt, wenn man mitten 
im Stich aufstand. Ist bereits behoben. ;)

Shakedbeer - bastelt weiter.

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



Re: Re: DoKo-Sonderregeln (Acrimon,  6. Jun 1996, 14:04:15):
~#! rn=Caradhras rt=834011386
~#! tid=833901352
Lade doch den Sensi zum Doppelkopf ein!

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



Re: DoKo-Sonderregeln (Snuggle,  7. Jun 1996, 12:11:47):
~#! rn=Shakedbeer rt=833901352
~#! tid=833901352
ich will kuehe^M^M^M^Mneuner!

snuggle

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



akhar_nth.tar (Toeter,  7. Jun 1996, 12:38:00):
Hi,
in dem Hoehlensystem nahe des Steinbachwasserfalls geht es jetzt noch ein
bisschen weiter. Besonders Freunde von bewusstseinserweiternden Drogen, kommen
dort auf ihre Kosten. Rein symbolisch (**zwinkerzwinker**) weise ich noch
auf ein zusaetzliches Ausstellungsstueck im Klostermuseum (Ihr wisst schon,
da wo ihr immer sterbt ;) hin.
  Toeter

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



Re: Re: DoKo-Sonderregeln (Shakedbeer,  7. Jun 1996, 12:55:56):
~#! rn=Snuggle rt=834142307
~#! tid=833901352
Hmmm. Neuner sind mit dieser Doko-Version leider genauso schlecht um-
zusetzen wie Doko zu dritt. Wenn ich in den Semesterferien Zeit finde,
werde ich das Programm mal ganz auf den Kopf stellen. Bis dahin werdet ihr
Euch wohl mit der 4-Spieler / 40-Karten-Version begnuegen muessen.

Shakedbeer.

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



Nochmal Doko :) (Shakedbeer,  7. Jun 1996, 14:37:26):
So. Fuer alle echten Spieler unter Euch habe ich das Doko-Spiel so erweitert,
dass man jetzt auch um Geld spielen kann. Der Punktwert wird wie alles vom
ersten Spieler estimmt. Jeder Spieler muss stets 50*Punktwert auf dem
Tisch liegen haben. Das geschieht mit 'zahle <anz> ein'. Von diesem Geld
wird dann immer an andere Spieler verteilt, wenn man Punkte verliert.
Ausgezahlt wird, wenn ein Spieler aufsteht.

Viel Spass damit wuenscht: Shakedbeer.

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



Re: Nochmal Doko :) (Morgoth,  7. Jun 1996, 14:39:08):
~#! rn=Shakedbeer rt=834151046
~#! tid=834151046
ein zehntel davon sollte direkt als vergnuegungssteuer in die bank gezahlt
werden. es gibt doch schon ein paar seuchtige, die das sicher auf sich nehmen.
morgoth (hat wieder fiese ideen)

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



Re: Re: Nochmal Doko :) (Wurzel,  7. Jun 1996, 14:47:52):
~#! rn=Morgoth rt=834151148
~#! tid=834151046
hmm, irgendwie ist das ungerecht. xcall $m->AddMoney(10000000) steht leider
nicht allen offen. duerfen magier dann ueberhaupt noch spielen?

wurzel mag doko

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



Re^3: Nochmal Doko :) (Shakedbeer,  7. Jun 1996, 14:49:16):
~#! rn=Wurzel rt=834151672
~#! tid=834151046
Es darf mit max. 20M/Pkt gespielt werden ;)

Das sollte keine Geldprobleme bringen ;)

Shakedbeer.

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



Re^3: DoKo-Sonderregeln (Caradhras,  7. Jun 1996, 15:13:26):
~#! rn=Acrimon rt=834062655
~#! tid=833901352
Hm, klappt glaube ich nicht, ich fluche schon seit 2 Jahren weil das
erwarte sensenmann nicht geht.

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



Re^4: DoKo-Sonderregeln (Mupfel, 10. Jun 1996, 10:59:06):
~#! rn=Caradhras rt=834153206
~#! tid=833901352
Natuerlich geht das. Aber glaubst Du, wie bauen das extra fuer Dich ein?? :-)

-mupfel-

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



Re^5: DoKo-Sonderregeln (Hardil, 11. Jun 1996, 11:23:07):
~#! rn=Mupfel rt=834397146
~#! tid=833901352
Hmmm. Vielleicht sollte man dem DoKo-Tisch erstmal richtiges Abrechnen
beibringen. :)
Bei Cuch*s Trumpfsolo gestern, gegen das wir keine 90 angesagt hatten (mit
Recht) sind wir dann nur auf 122 Punkte gekommen, weil Oetti Cuch* einen DoKo
geschenkt hat, statt einzustechen. (Jaja, Tippfehler, so nennt man das). Und
trotzdem hat uns der Tisch glatt mal 4 Punkte gutgeschrieben. Aber egal. :)

-Hardil. Spielt viel lieber RL-DoKo.

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



Re^6: DoKo-Sonderregeln (Anatol, 11. Jun 1996, 12:30:08):
~#! rn=Hardil rt=834484987
~#! tid=833901352

*pfffft* 
Mir hat ja auch keiner verraten, dass der Solist nicht automatisch
'rauskommt'. Unwissenheit schuetzt vor Strafe nicht, ich weiss ;-)

Haette ansonsten HAUSHOCH gewonnen, trotz dass er nach Skat-art gezaehlt hat,
Anacuch

-> Schmarrn?


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



Re^7: DoKo-Sonderregeln (Felagund, 11. Jun 1996, 12:48:16):
~#! rn=Anatol rt=834489008
~#! tid=833901352
Dass der Solist nedd rauskommt is eh ein bug ;)
gruss..Fela

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



Re^8: DoKo-Sonderregeln (Boing, 11. Jun 1996, 12:48:42):
~#! rn=Felagund rt=834490096
~#! tid=833901352
Quatsch, das ist ne Weicheierregel ...
  Boing

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



Re^9: DoKo-Sonderregeln (Anatol, 11. Jun 1996, 12:51:34):
~#! rn=Boing rt=834490122
~#! tid=833901352

Wo wir schon dabei sind....
    
    Mit oder ohne Neuner?
]:)
Anatol


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



Re^10: DoKo-Sonderregeln (Felagund, 11. Jun 1996, 12:59:41):
~#! rn=Anatol rt=834490294
~#! tid=833901352
Mit...ohne is naemlich AUCH ne weicheierregel

Boing hat ja bloss Angst, dass dann alle Soli gegen ihn gewinnen ;)

gruss...Fela

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



Re^11: DoKo-Sonderregeln (Shakedbeer, 11. Jun 1996, 13:23:44):
~#! rn=Felagund rt=834490781
~#! tid=833901352
Schreibt das alles mal nach Idee. ;)

Shakedbeer - hat bald nur noch mit DoKo zu tun :)

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



Re^12: DoKo-Sonderregeln (Zephyr, 11. Jun 1996, 13:24:23):
~#! rn=Shakedbeer rt=834492224
~#! tid=833901352
Liest Du eigentlich Dein Repfile? ;)

Zephyr, Ideen absetzend

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



Re^13: DoKo-Sonderregeln (Shakedbeer, 11. Jun 1996, 13:27:08):
~#! rn=Zephyr rt=834492263
~#! tid=833901352
Hihi. In letzter Zeit lese ich mehr im Repfile als Mail und Gilden-
Repfile zusammen :)

Shakedbeer.

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



Re^14: DoKo-Sonderregeln (Ancalagon, 12. Jun 1996, 10:33:13):
~#! rn=Shakedbeer rt=834492428
~#! tid=833901352
Moin erstmal!
Jetzt geb ich auch meinen senf dabei. Doko mit neunern
is doof und "Solo kommt selbst" ist was fuer Weicheier...
demnaechst werden hier auch noch super- und hyperschwein eingefuehrt, hae !?!
Bei dieser vorstellung in Kraempfe ausbrechend,
                                                   Ancalagon
                                             Draco knuddellensis major

P.S.: nich schlagen bitte! :)

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



Re^15: DoKo-Sonderregeln (Bendeigid, 12. Jun 1996, 10:35:13):
~#! rn=Ancalagon rt=834568393
~#! tid=833901352
Natuerlich MUESSEN Neuner rein!
Wer Was anderes behauptet ist ein Warmduscher.

Z'par Servu,
            Bendeigid

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



Re^16: DoKo-Sonderregeln (Yantro, 12. Jun 1996, 10:36:32):
~#! rn=Bendeigid rt=834568513
~#! tid=833901352

Neuner sind was fuer Feiglinge :)

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



Es gibt Kredit! (Shakedbeer, 12. Jun 1996, 14:43:34):
Hi!

Gerade habe ich Geruechte gehoert, dass auf Shaky Island eine Kreditbank
ihre Tore geoeffnet hat. Dort sollen alle Spieler ab Level 7 Kredit
erhalten. Man munkelt, dass man tausend mal sein Level in Muenzen erhalten
kann, aber nicht mehr als 25000. Wie es da allerdings mit den Rueckzahlungs-
bedingungen aussieht, ist mir nicht bekannt. Vielleicht solltet ihr da mal
nachsehen. Das ganze ist bestimmt fuer alle interessant, die nach einem
Reboot schnell zu neuer Ausruestung kommen wollen. Ich glaube aber nicht,
das die Kreditbankbeamten die Schulden ueber einen Reboot vergessen werden.

Shakedbeer - hat keine Schulden :)

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



Re: Es gibt Kredit! (Durian, 12. Jun 1996, 16:26:24):
~#! rn=Shakedbeer rt=834583414
~#! tid=834583414

Spieltische, Kreditinstitute, verarmte Spieler ...

Ist Shaky Island die MUD-Antwort auf Las Vegas?

Gibt es dort auch schon die ersten Suchtberatungsstellen???

- Durian

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



Re^16: DoKo-Sonderregeln (Boing, 13. Jun 1996, 11:06:45):
~#! rn=Bendeigid rt=834568513
~#! tid=833901352
MIT Neunern?? Igitt! Damit jede Farbe zweimal laeuft? Damit jeder 
potentielle Doko mit nem dummen Neuner versaut wird? Damit sogar 
Herz immer laeuft? Ich brech zusammen ...
  Boing :)

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



Hoerrohr (Shakedbeer, 14. Jun 1996, 13:36:19):
Hallo Quester!

Viele Spieler haben mich darauf angesprochen, dass das Hoerrohr leider nicht
autoload ist. Deshalb bin ich mal zum schwerhoerigen Shaky gegegangen und
habe ihm gesagt, dass er das mal aendern soll. Ich habe Stunden gebraucht
und musste mit Haenden und Fuessen sprechen, aber schliesslich hat er mich
doch verstanden und hat zugesagt, allen Spielern, die schon die Shaky-Quest
gespielt haben ein neues Hoerrohr zu ueberreichen. 

Shakedbeer - hofft, dass ihr auch mit Haenden und Fuessen sprechen koennt ;)

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



Hoerrohr (Shakedbeer, 25. Jun 1996, 01:08:57):
Hi!

Nach dem naechsten Reboot oder 'ende' lohnt es sich, das Hoerrohr noch mal
unter die Lupe zu nehmen. Wer jetzt ein Hoerrohr vom schwerhoerigen Shaky
holt, kann die erweiterte Funktion schon nutzen.

Shakedbeer - wurde von Myself hellhoerig gemacht.

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



Re: Hoerrohr (Shakedbeer, 25. Jun 1996, 19:12:10):
~#! rn=Shakedbeer rt=835657737
~#! tid=835657737
Oha!
Falls Ihr feststellen solltet, dass Euer Hoerrohr auf mysterioese Weise ver-
schwunden ist, so sagt mir das bitte oder holt Euch direkt ein neues.

Shakedbeer.

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



Hoerrohr (mal wieder) (Shakedbeer, 10. Jul 1996, 18:47:11):
Hi!

Da der Hoerrohrbefehl von manchen Raeumen ueberschrieben wurde, habe ich den
geaendert. Also identifiziert Eure Hoerrohre nach dem naechsten Reboot oder 
Ende mal, wenn 'hoere' nicht mehr geht ;)

Shakedbeer.

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



Re: Hoerrohr (mal wieder) (Acrimon, 10. Jul 1996, 20:13:01):
~#! rn=Shakedbeer rt=837017231
~#! tid=837017231
Und wie kann ich dann im Raum hoeren?

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



gib repfiles keine Chance (Toeter, 14. Jul 1996, 03:16:00):
Hi,
ich habe mich mal wieder um die Last meines rep-files erleichtert und moechte 
mich auf diesem Wege haerzlisch fuer die zahlreichen Hinweise und Anregungen 
bedanken. Die bemaengelten Bugs (Jaja, Oxid auf mein Haupt) sollten nun 
draussen oder zumindest durch eine aktuelle Version ersetzt sein. Bei 
Nichtgefallen empfiehlt sich unflaetiges Beschweren (Hallo Rudi :) bei mir.
  Toeter

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



Bug in der Shaky-Quest beseitigt. (Shakedbeer, 20. Aug 1996, 13:30:08):
Hi!

In der letzten Zeit ist ein Fehler am Ende der Shaky-Quest ans Tageslicht 
getreten: Einige von Euch duerften statt einer Questbelohnung nur einen RZG-
Fehler erhalten haben :( Bitte meldet Euch in so einem Fall bei mir, wenn
ich mal anwesend bin, dann uebberreiche ich Euch diese stellverteten fuer
Treblih ;) Der Bug ist gefixt.

Shakedbeer - bittet um Entschuldigung.

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



Re: Bug in der Shaky-Quest beseitigt. (Lefty, 20. Aug 1996, 16:58:39):
~#! rn=Shakedbeer rt=840540608
~#! tid=840540608
zum schwerhoerigen shaky gehen und auf das hoerrohr deuten half da auch, shaky
:)
Lefty

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



Re: Re: Bug in der Shaky-Quest beseitigt. (Zardoz, 20. Aug 1996, 17:02:41):
~#! rn=Lefty rt=840553119
~#! tid=840540608
Ich dachte immer, man muesste dem Shaky Wasser ins Hoerrohr giessen? So haben
wir das jedenfalls gemacht :)

Ciao Zardoz

Moege das Boese ewig ueber das Gute siegen!!!

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



Re^3: Bug in der Shaky-Quest beseitigt. (Fyt, 20. Aug 1996, 17:03:44):
~#! rn=Zardoz rt=840553361
~#! tid=840540608

Oh ihr Gluecklichen! Bei uns hat er das Rohr gleich nach unten gedreht...

XXX (Troll)

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



Re^4: Bug in der Shaky-Quest beseitigt. (Shakedbeer, 22. Aug 1996, 09:56:18):
~#! rn=Fyt rt=840553424
~#! tid=840540608
Hihi!

Man lernt aus manchen Sachen sehr schnell ;)
Ich rede abe3r nicht nur vom Hoerrohr sondern auch von der Schuettelruestung.

Shaky.

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



Neue Insel entdeckt (Bloodyharry, 24. Okt 1996, 16:22:12):
Endlich ist es uns gelungen das Versteck der lange vermissten Pirateninsel
Tortuga zu finden. Zwischen zwei grossen Huegeln versteckt, mit einer
vorgelagerten Steilkueste gelangt das Piratenschiff nun auch zu dem gut
versteckten Piratenhafen der Insel. Es ist also zu erwarten, dass die Insel
und vor allem die derzeit noch etwas spaerlichen Ausstattungen, weiter wachsen
und gedeien werden. Um dies zu beschleunigen, waeren die Piraten ueber Eure
zahlreichen Ideen, Hinweise und Fehlermeldungen hoch erfreut.


Bloody Harry
Gouverneur von Tortuga

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



Akhar Nth'tar (Toeter,  4. Nov 1996, 08:23:07):
Hi,
ich habe mal ungefaehr mein Koerpergewicht in rep-files abgearbeitet, und
ein paar von euren Meldungen verwertet. Vielen Dank fuer die zahlreichen
Typo-, Idea-, und Bugmeldungen! Momentan komme ich hier allerdings zu sehr
wenig, so dass es mit Erweiterungen nur sehr schleppend vorangeht. Diejeni-
gen, die auf das dritte Symbol warten, muessen sich also noch ein Weilchen
gedulden.
  Toeter

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



hupps... (Toe,  6. Nov 1996, 00:05:54):

Du versinkst mit den Fuessen bis an die Knoechel im Schlamm. Aber weiter
unterhalb dieser Schlammoberflaeche scheint der Boden sehr hart zu sein.
> unt schlamm
Sowas siehst Du da nicht!
> suche schlamm
Du suchst, findest aber nichts.

grins, toe

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



Re: hupps... (Bloodyharry,  6. Nov 1996, 08:20:11):
~#! rn=Toe rt=847235154
~#! tid=847235154
Ich weise in diesem Zusammenhang auf die Komandos idee, fehler und typo
hin. Ich bin, wie wohl die meissten Magier, auch auf Eure feedbacks
angewiesen, die ich sehr gerne entgegen nehme.

bh

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



Urwald auf Tortuga (Astar, 19. Dez 1996, 14:20:24):
Auf Tortuga wurde ein kleiner Teil des Weges nach Westen freigelegt. Er fuehrt
in einen Urwald, in dem es ziemlich grosse Baeume und gefaehrliche Tiere gibt.
Naja, die meisten greifen einen allerdings nicht gleich an. Kurz gesagt,
Tortuga hat jetzt ein Metzelgebiet fuer all diejenigen, die mal wieder ein
paar neue und z.T. nicht so ohne weiteres zu schlangende NPC's metzeln wollen.
An dieser Stelle sollte ich vielleicht noch die Harpie erwaehnen, mit der
schon einige durch einen "kleinen" Unfall Bekanntschaft gemacht haben.
Ansonsten, wie immer schoen nach Fehlern suchen und auch Bugreports und Typos
absetzen, vorallem, da es mein erstes Gebiet ist.

Happy testing...
         Astar

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



Re: Urwald auf Tortuga (Bendeigid, 19. Dez 1996, 15:00:20):
~#! rn=Astar rt=851001624 rg=d.inseln
~#! tid=851001624
Interessant... ich dachte, das testen findet vor Anschluss des Gebietes statt?
Naja, auf den Inseln laeuft das wohl anders. :))
Eine Frage: wieso heisst das Vieh Harpie und nicht Harpye? Oder geht beides?
Oder ueberhaupt?

Z'par Servu,
           Bendeigid

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



Re: Re: Urwald auf Tortuga (Asmodis, 19. Dez 1996, 15:01:23):
~#! rn=Bendeigid rt=851004020 rg=d.inseln
~#! tid=851001624
Heisst es nicht Harphie ??

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



Noch keine Queste auf Tortuga (Bloodyharry, 19. Dez 1996, 15:03:14):
Entgegen einiger anderslautenden Geruechten gibt es leider NOCH keine Quest
auf der Insel Tortuga. Das Piratendiplom ist keine so einfache und schnelle
Angelegenheit. Und meine Zeit ist doch recht knapp bemessen.
Aber ich hoffe, ich kann Euch bald ein klein wenig mit einer kleineren
Quest entschaedigen.

bh

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



Re^3: Urwald auf Tortuga (Raffi, 20. Dez 1996, 14:13:07):
~#! rn=Asmodis rt=851004083
~#! tid=851001624

Du meinst wohl Harphe, Asmo*?

Gruss
H.

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



Re^4: Urwald auf Tortuga (Gordo, 23. Dez 1996, 22:51:39):
~#! rn=Raffi rt=851087587 rg=d.inseln
~#! tid=851001624

Also laut Shadowrun Source-Book heisst es Harpyie (lat. Harpyia gregaria)


G.

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



Re^5: Urwald auf Tortuga (Bloodyharry, 24. Dez 1996, 01:50:30):
~#! rn=Gordo rt=851377899 rg=d.inseln
~#! tid=851001624
Sorry, wenn ich gerade auf Deinen Artikel antworte, Gordo. Ich meine aber
damit alle vorherigen Antworter: Ihr habt wohl gerade nix besseres zu tun,
oder warum regt ihr Euch nun ueber die korrekte Schreibweise, eines
realtiv unbedeutsamen NPC Namens auf.

BH - wuenscht trotzdem und wohl gerade deshalb allen eine frohe Weihnacht und
den obligatorischen guten Rutsch ins ungewisse, neue Jahr.

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



Re^6: Urwald auf Tortuga (Gordo, 24. Dez 1996, 02:14:10):
~#! rn=Bloodyharry rt=851388630 rg=d.inseln
~#! tid=851001624

1.Ja ich habe nichts besseres zutun:)
2.Hab ich mich ueberhaupt nicht darueber aufgeregt,ich hab halt gedacht
vielleicht
interesiert jemanden die korrekte Schreibweise.
3.Ist es tatsaechlich ziemlich egal wie man sowas schreibt.
4.Ist dieser Artikel und alle anderen die zu diesem thread gehoeren (ausser
dem ersten natuerlich)voelliger Mist;)
und 5.hmmmm Was war das nochmals??   Achja schoene Weihnachten und einen guten
Rutsch :)

G.


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



Re^7: Urwald auf Tortuga (Astar, 27. Dez 1996, 13:51:59):
~#! rn=Gordo rt=851390050 rg=d.inseln
~#! tid=851001624
So, schluss mit der Diskussion, ich hab nachgeschaut (in insgesamt 8 Buechern,
darunter auch der neue Duden und n Brockhaus und so) fast ueberall habe ich
"Harpyie" gefunde (hier waere vielleicht noch ein Lexikon aus der DDR
erwaehnenswert, das als einziges Harpye hatte :) ) und so hab ichs jetzt auch
geaendert (hatte ich ja versprochen)

Astar
  ((((( schweiss Klammern )))))
,

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



Re^4: Urwald auf Tortuga (Asmodis, 28. Dez 1996, 17:08:48):
~#! rn=Raffi rt=851087587 rg=d.inseln
~#! tid=851001624
Noe, Harphe spiele ich nicht :)
Scheibt man das jetzt so nach der Rechtschreibreform ?

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



Re^5: Urwald auf Tortuga (Raffi,  2. Jan 1997, 11:08:55):
~#! rn=Asmodis rt=851789328 rg=d.inseln
~#! tid=851001624
Noe, ist nur ein vorgriff auf den naechsten Duden, der dann komplett in
Denglisch gehalten ist.

Gruss
H.

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



Bring dem Leuchtturmwaerter von Tortuga die Erleuchtung (Bloodyharry, 29. Jan 1997, 16:17:52):
Jahrelang hatte Ben Gunn, einsam sitzend in seinem Leuchtturm auf Tortuga
seine Piratenrente mit einem Job als Leuchtturmwaerter aufbessern koennen.
Jahrelang gab es auch ueberhaupt keine Probleme mit dem Leuchtturm. Der
Betrieb
war gesichert und er haette sich so schoen in seinen Erinnerungen an die
Kaperfahrten zuruecklehnen koennen.
Doch dann passierte es - und das ruhige Leben war mit einem Schlag vorbei.
Denn es gab ein kleines aber fuer ihn sehr wichtiges Problem zu loesen.
Auf einmal hatte er... aber fragt in doch selber danach. Denn er benoetigt
dringend eure Hilfe.

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



Harpyie (Astar, 30. Jan 1997, 19:52:22):
Ich habe die Harpyie etwas geaendert, sie reagiert auf Zaubersprueche jetzt
etwas "allergisch" ;)
Dafuer gibt sie aber wieder etwas mehr ep's

Have fun.
So long Astar.

PS: Sterbt recht schoen :>

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



Umtauschaktion (Bloodyharry,  4. Feb 1997, 12:52:48):
Ben Gunn konnte sein Fernrohr ein wenig verbessern, wodurch die Handhabbarkeit
dieses nuetzlichen Teils etwas leichter geworden ist: Es kennt nun auch die
Abkuerzungen der wichtigsten Windrichtungen.
Wer es gegen ein neueres Modell tauschen moechte, kann dies ab jetzt bei Ben
erledigen. Er hat sicher genuegend Fernrohre vorraetig, solange der Andrang
nicht zu gross wird.

bh

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



Re^5: Urwald auf Tortuga (Wong,  5. Feb 1997, 16:20:20):
~#! rn=Gordo rt=851377899 rg=d.inseln
~#! tid=851001624
Wer zieht sein Wissen schon aus Shadowrun-Source-Books ???

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



Oelbaeume (Bloodyharry,  5. Feb 1997, 20:58:52):
Ich hoffe der Engpass mit den Oelfruechten hat sich nun endlich etwas
gebessert? Es sollte jedenfalls so sein. Denn wie ich gehoert habe, fuehlten
die Piraten, die diese Baeume gepflegt haben, dazu genoetigt unmengen von
Duengemitteln auf die Wurzeln zu streuen, auf das die Baeume zu Kraeften und
vor allem zu vielen Fruechten gelangen werden.
Falls ich da falsch informiert sein sollte und dieser Umstand wieder Erwarten
nicht eingetreten ist, bitte ich um eine entsprechende Rueckmeldung an meine
Wenigkeit.

bh - muss die Spieler wieder aus den Baeumen und auf den Boden der Tatsachen
zurueck bekommen.

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



Re: Oelbaeume (Teddy,  7. Feb 1997, 10:13:59):
~#! rn=Bloodyharry rt=855172732 rg=d.inseln
~#! tid=855172732
Duengemitel auf Wurzel? Der Arme ;)
Teddy

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



Nochmal Harpyie (Astar, 24. Feb 1997, 13:59:28):
Auf Anregung einiger Magier auf der Fete in KA hab ich die Harpyie nochmal
etwas geaendert.Kaempfer treffen sie jetzt weniger, da sie gegnueber den
anderen Gilde einen unfaeren Vorteil hatten (wegen der Spells).

So long

Astar

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



Re: Nochmal Harpyie (Felagund,  3. Mar 1997, 15:14:36):
~#! rn=Astar rt=856789168 rg=d.inseln
~#! tid=856789168
Unfairer Vorteil?? Es ist doch gerade der SINN von Gilden, dass bei
verschiedenen Monstern verschiedene Gilden Vorteile haben.
sich wundernd...Fela

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



Re: Re: Nochmal Harpyie (Jasper,  3. Mar 1997, 17:34:21):
~#! rn=Felagund rt=857398476 rg=d.inseln
~#! tid=856789168
giessen->zombie is nu freenet frei, deine mail liest du ja eh nicht :)


OJ:harpywas?

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



Re: Re: Nochmal Harpyie (Astar,  3. Mar 1997, 17:42:30):
~#! rn=Felagund rt=857398476 rg=d.inseln
~#! tid=856789168
Mit unfair meine ich, dass sie sich praktisch nicht gewehrt hat.

Astar

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



Re^3: Nochmal Harpyie (Felagund,  5. Mar 1997, 00:10:53):
~#! rn=Jasper rt=857406861 rg=d.inseln
~#! tid=856789168
Du hast ja neddmal versucht eine zu schreiben, Nasenbaer, ausserdem weiss ich
das laengst ;))
Fela...denkt . o O (MUDDER!!)

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



Nochmal Harpyie (Key,  8. Mar 1997, 04:37:13):
Halloe
Hmm naja also wenn ich nem Vieh finsternis druffhau wehrt es sich auch net ;)
Un die armen kleinen Kaempfer die eh nix schaffen ham es doch verdient das es
ein NPC im MG gibt den sie kleinkriegen *wartet kichernd auf Schlaege* :)
Jaja
Key

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



Und nochmal Harpyie (Astar, 13. Mar 1997, 17:48:53):
Jaja, ich weiss, ihr seid es langsam leid, aber ich wollte hier nochmal fuer
alle Karatekas hier reinschreiben, dass die Harpyie noch einen Bug hatte. Fuer
Karatekas ist sie jetzt leichter (vorher war sie nicht zu verletzen).

Astar

PS: Danke an JimDiGriz fuer den Bugreport...

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



Kannibalen (Astar,  7. Apr 1997, 15:40:33):
So liebe Leute, es ist endlich so weit, auf Tortuga wurde soeben eine zweite
Quest angeschlossen.
Es handelt sich um den Ritus der Kannibalen (mehr erfahrt ihr wie immer beim
Wanderer).

Viel Spass beim questen
    Astar

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



Insel-Web-Seite (Bloodyharry, 29. Apr 1997, 14:56:07):
Nachdem die Insel Tortuga nun schon eine geraume Zeit existiert, wurde es doch
notwendig endlich eine entsprechende Seite in den Inselseiten des
MG-Webservers zu setzen. Es ist erst einmal eine Seite und Unterseiten fehlen
noch gaenzlich. Aber das kommt schon noch...

bh

ps: achja, wenn der Hintergrund zu dunkel sein sollte, ist sicher nur euer
Monitor zu dunkel gestellt. :)

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



will tarko reub wieder haben (Asmodis, 12. Mai 1997, 17:28:58):

Wann wird Tarko Reub eigentlich wieder angeschlossen und warum wurde
es eigentlich abgehaengt ??

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



Re: will tarko reub wieder haben (Schlips, 12. Mai 1997, 22:04:38):
~#! rn=Asmodis rt=863450938 rg=d.inseln
~#! tid=863450938
Warum es abgehaengt wurde wurde ja lang und breit diskutiert - ueber den Sinn
kann man streiten - haben wir auch getan.
Ausserdem gab es Vorschlaege wie man den Grund des Abhaengens
verhindern/mildern
kann und es hat sich auch sonst einiges getan ...
Ich moechte daher Asmodis' Wunsch unterstuetzen und wuensche mir auch den
'entgifte' Spruch wieder.
Komm Wargon, gib Deinem Herz einen Stoss ...

Schlips

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



Re: Re: will tarko reub wieder haben (Asmodis, 12. Mai 1997, 22:08:51):
~#! rn=Schlips rt=863467478 rg=d.inseln
~#! tid=863450938
Aeh, warum es abgehaengt wurde, ist noch nicht beantwortet worden.
Dass ein paar Typen da etwas manipuliert haben, ist fuer mich
keine Begruendung, das haben sie bei anderen Quests sicher auch :)

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



Re^3: will tarko reub wieder haben (Schlips, 12. Mai 1997, 22:21:50):
~#! rn=Asmodis rt=863467731 rg=d.inseln
~#! tid=863450938
Naja - Du musst es ja net begruenden - es reicht schon, dass Wargon es so
begruendet hat.
Und was das Bescheissen bei anderen Quests angeht: umso mehr ein Grund die
Quest wieder anzuhangen - oder haengt doch einfach alle Quests ab ...

Schlips

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



Re^4: will tarko reub wieder haben (Grimmborn, 13. Mai 1997, 09:10:18):
~#! rn=Schlips rt=863468510 rg=d.inseln
~#! tid=863450938
Ist eigentlich recht bezeichnend, dass hier gesagt wird "will tarko reub
wieder haben", dabei eigentlich aber wohl gemeint ist "will den
entgifte-spruch wiederhaben". Aber ich mache folgenden Vorschlag: Wenn die
Leute Tarko Reub wiederhaben wollen, kann man das ja anhaengen. Wenn sie auch
den entgifte-Spruch wiederhaben wollen, kann man sie auf die Klerikergilde
verweisen.

Grimmborn der Atheist gruendet die Kampagne "Tarko ja, aber ohne entgifte"

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



Re^3: will tarko reub wieder haben (Fyt, 13. Mai 1997, 09:43:05):
~#! rn=Asmodis rt=863467731 rg=d.inseln
~#! tid=863450938

Naja ganz kurze Bilanz: Es war wieder mal Stimmung, es hat wieder mal
kleine Fische getroffen, weiter so.

Fyt.

PS: Tarko kann ruhig wegbleiben, hab ich schon mal gespielt, muss ich
nicht nochmal haben...

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



Re: will tarko reub wieder haben (Wargon, 13. Mai 1997, 10:20:32):
~#! rn=Asmodis rt=863450938 rg=d.inseln
~#! tid=863450938
Es ist nie abgehaengt worden, es gibt nur keine AP mehr.
Und daran wird sich auch nichts aendern. (Und damit auch nicht an 'entgifte'.)
  Wargon

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



Re: Re: will tarko reub wieder haben (Gnome, 13. Mai 1997, 10:38:01):
~#! rn=Wargon rt=863511632 rg=d.inseln
~#! tid=863450938
na super!

wenn es fuer TR keine APs mehr gibt, dann nimm den quest doch gleich ganz
raus. wer spielt denn einen quest, fuer den es WEDER APs NOCH ein beloh-
nung gibt...?

gnOme, sich nun einen kleriker-2tie hochzuechtend (wollt ich eigentlich
       nicht, aber angesichts der umstaende...)

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



Re^3: will tarko reub wieder haben (Grimmborn, 13. Mai 1997, 10:39:35):
~#! rn=Gnome rt=863512681 rg=d.inseln
~#! tid=863450938
Was soll das denn? Vielleicht gibt es ja auch Leute, die im Gegenteil zu Dir
auch aus 'Spass an der Freud' spielen und nicht staendig Belohnungen brauchen.
Goenn denen doch das Vergnuegen.

Grimmborn der Atheist

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



Re^4: will tarko reub wieder haben (Gnome, 13. Mai 1997, 10:59:06):
~#! rn=Grimmborn rt=863512775 rg=d.inseln
~#! tid=863450938
ich goenn denen ja das vergnuegen. nur mein ich, dass es keinen anreiz mehr
gibt, diesen quest zu spielen. ausser halt der spass daran.
versteht mich nicht falsch: IMHO ist es einer der besten quests, die das MG
zu bieten hat; um so bedauerlicher ist es, dass es dafuer nichts mehr geben
wird! schade eigentlich...

gnOme

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



Re^5: will tarko reub wieder haben (Grimmborn, 13. Mai 1997, 11:07:04):
~#! rn=Gnome rt=863513946 rg=d.inseln
~#! tid=863450938
Dich nicht falsch verstehen? Ich finde, eine Aussage wie "wenns da keine AP
und keine Belohnung gibt kann man sie gleich ganz abhaengen" laesst sich gar
nicht mehr falsch verstehen. Und Deine Forderung laeuft letztlich darauf
hinaus, zu sagen, wenns Dir nicht gefaellt, braucht sich ja auch kein anderer
damit zu befassen.
Vielleicht solltest Du mit so einer Einstellung ein anderes Spiel suchen. Oder
in die Politik gehen. Aber vermeide alles, was mit sozialer Interaktion zu tun
haben koennte.

Grimmborn der Atheist

P.S. Ausserdem, was heisst da nichts geben? Es gibt doch weiterhin FP, oder?
Und so betrachtet hat auch noch keiner gefordert, der Besuch des Lupinentals
muesse mit AP oder anderen Belohnungen ausgestattet werden, weil es sich sonst
nicht lohnt, ein schoenes Gebiet, das nicht ganz ungefaehrlich ist, zu
besuchen.

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



Re^5: will tarko reub wieder haben (Schlips, 13. Mai 1997, 12:12:14):
~#! rn=Grimmborn rt=863507418 rg=d.inseln
~#! tid=863450938
Also Grimmborn
vielleicht solltest Du mal wieder als Spieler durchs MG laufen und Dir
ne mitteltoedliche Vergiftung holen, dann wirst Du merken, dass Kleriker
(noch, vielleicht auch nie) ein adaequater ersatz fuer den Entgifte-Spruch
sind.
Momentan sind es einfach zu wenige Kleriker die das koennen.
Auf Dauer fuehr das dann dazu dass sich jeder nen Kleriker hochzuechtet -
worauf sich dann wieder jemand aufregt, dass in der Kleriker-Gilde nur
(ok - fast nur) Zweities sind ...

Schlips glaubt schon dass dadurch das Gleichgewicht gestoert wurde ...

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



Re^6: will tarko reub wieder haben (Anatol, 13. Mai 1997, 12:21:33):
~#! rn=Schlips rt=863518334 rg=d.inseln
~#! tid=863450938
Also wenn Wargon der Meinung ist, dass 'entgifte' fuer alle durch die
Existenz einer Gilde, die diesen Spruch ohne Einschraenkung auf Personenzahl
zur Verfuegung stellt, hinfaellig ist, so ist das durchaus nachvollziehbar.

Aber ich glaube, dass dann eine kurze Notiz in 'magier.sonstwo' angebracht
waere, damit die rumspinnenden Magier, die ihre Gegenden ziemlich
spielerfeindlich gestalteten (d.vl*, Tigonen etc.), sich danach ausrichten und
Vergiftungen den neuen Gegebenheiten anpassen koennen...
.... well, vielleicht hat er das ja getan? :)

Nur weil ich tatsaechlich einen Kleriker-Zweitie mein Eigen nenne, will ich
den ja auch nicht ueberall hin mitschleppen, macht ja irgendwie auch keinen
richtigen Spass...

Anatol


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



Re^6: will tarko reub wieder haben (Schlips, 13. Mai 1997, 12:23:39):
~#! rn=Grimmborn rt=863514424 rg=d.inseln
~#! tid=863450938
Das Lupinental ist wohl ein recht schwache Beispiel, weil
1. beginnt die Inferno-Quest dort
2. ist es ein Metzelgebiet fuer die Hydra

Insofern hat Gnome schon recht, dass es momentan fast keinen Anreiz gib
dorthinzugehen, denn es gibt inzwischen ja reichlich schoene Gebiete.
Was den 'entgifte' Spruch angeht, so war es natuerlich der hauptanreiz
die Quest zu machen (mal abgesehen davon dass die quest natuerlich recht
schoen war - zumindest mir hat sie gefallen; wenn ich auch zugebe, dass ich
nicht auf alles selbst gekommen bin). Meiner meinung nach greift die
Wegnahme des entgifte-Spruchs empfindlich in das Gleichgewicht des Spiels
ein
Schlips

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



Re^7: will tarko reub wieder haben (Roadrunner, 13. Mai 1997, 13:08:05):
~#! rn=Schlips rt=863519019 rg=d.inseln
~#! tid=863450938

Da"s ich bei Tarko Reub den entgifte-Spruch bekommen muesste fiel mir auf,
als ich in der geigerquest vergiftet wurde. Da bekam ich den tip, zuerst mal
tarko 
reub zu machen. - allerdings hatte ich die quest schon - nur nicht bemerkt
dass 
es da die belohnung gab.

Ich fand die quest als solche schoen - bemerkte erst nachtr"aglich dass der
entgifte-
spruch fuer den spielablauf ziemlich wichtig ist. - und ich habe eben nicht
immer auf der wasserebene meinen nicht vorhandenen kleriker-zweitie dabei wenn
ich mal alleine da runter will etc.. mal ganz abgesehen von solchen quests in
welchen man mal alleine ist und sich dann nur mit ende retten kann ... -
ziemlich aergerlich - man denke auch an die katakomben in orkhausen - da
ueberlegt man sich dann gleich zweimal ob man einfach mal unbedarft
irgendwelche gegenden erkunden 

RR

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



Re^7: will tarko reub wieder haben (Patryn, 13. Mai 1997, 13:11:08):
~#! rn=Anatol rt=863518893 rg=d.inseln
~#! tid=863450938
tigonen sind ja nun nich grad das richtige beispiel...peinlich, peilich

------
patryn

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



Re^8: will tarko reub wieder haben (Mahatma, 13. Mai 1997, 13:21:24):
~#! rn=Patryn rt=863521868 rg=d.inseln
~#! tid=863450938
Sie sind sogar ein hervorragendes Beispiel, weil man da so heftig vergiftet
wird, dass man gar nicht mehr solange lebt, wie ein Kleriker braucht, um
einen zum Zweck des Entgiftens aufzusuchen. 

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



Re^9: will tarko reub wieder haben (Fyt, 13. Mai 1997, 13:23:14):
~#! rn=Mahatma rt=863522484 rg=d.inseln
~#! tid=863450938

Hm, ich kann mich dran erinnern, da dran gestorben zu sein, gebetet zu
haben und gleich wieder bei Lars gewesen zu sein. Es war also keine
*kleine* Vergiftung...

Fyt.

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



Re^10: will tarko reub wieder haben (Mahatma, 13. Mai 1997, 13:34:18):
~#! rn=Fyt rt=863522594 rg=d.inseln
~#! tid=863450938
Hmm, ich glaube mich zu erinnern, dass in die() P_POISON auf 0 gesetzt wird.
Es gibt aber immer wieder raffinierte Magier, die erst den Schaden abziehen
und danach vergiften, wenn man also an dem Schaden stirbt, wird man erst
vergiftet, wenn man schon tot ist, so dass man dann natuerlich nach dem 
Beten sofort erwischt wird.

Mahatma (denkt an seinen Tod an einem gewissen Fischmaul)

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



Re^11: will tarko reub wieder haben (Nirdavo, 13. Mai 1997, 15:42:50):
~#! rn=Mahatma rt=863523258 rg=d.inseln
~#! tid=863450938
  Ich schliesse mich den Leuten an, die den entgifte-Spruch wiederhaben
wollen. Ich hab jedenfalls keine lust, mir einen 2tie in der Klerikergilde
heranzuzuechten, nur damit ich dann feststelle, wenn ich mal vergiftet bin,
dass ich den nicht schnell genuegend zu mir bekomme. Von der laestigen Ueberei
mal ganz abgesehen. Ohne Entgifte traut man sich ja kaum noch in fuer einen
unbekannte Gebiete hinein, denn man weiss ja nie, was da so herumkreucht und
fleucht. (Ich lasse mir den Spass beim Antesten von neuen Monstern jedenfalls
nicht dadurch verderben, dass mir jemand vorher mehr oder minder geschaetzte
Stats und Spezialeigenschaften mitteilt).  Komm schon, Wargon, gib uns den
Engifte-Spruch wieder! (Es gibt naemlich auch durchaus Zeiten, wo KEINE
Kleriker anwesend sind)
  Was mich allerdings noch mehr wurmt, ist, dass mich das Wegnehmen von Tarko
Raeub eine Stufe gekostet hat, und an APs sogar mehr, als die Quest ueberhaupt
bringt! (Jedenfalls meine ich das, nachpruefen kann ich es natuerlich nicht
mehr) Noch mehr wundert mich meine etwas merkwuerdige Zahl von APs, denn 1561
laesst sich auf normalem Wege wohl kaum erreichen, oder?


       Nirdavo, schliesst sich der Liga 'Gebt Und Den Entgifte Wieder' an

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



Kann auf 'entgifte' verzichten. (Ringor, 13. Mai 1997, 16:14:02):
Hiho!

Dass Tarko Reub eine der schoensten Quests hier ist, scheint ja ausnahmsweise
mal die Meinung der meisten zu sein. Aber dass sie das durch die Runterstufung
auf einen AP nicht mehr sein soll, kann ich noch nicht ganz nachvollziehen.

Die einzigen, die den 'Anreiz' der AP brauchen, sind die Spieler, die die
Bedingungen zur Seherwerdung erfuellen muessen. Und die unter ihnen, die Tarko
Reub schon hatten, sind meiner Meinung nach jetzt auch die einzigen
'geschaedigten', da sie zum Seher jetzt noch eine Quest aus dem Block
brauchen. 

Alle anderen sollten Quests doch eher aus Spass an der Quest machen oder weil
sie FPs suchen oder beides. Eine Belohnung als 'Anreiz' brauche ich doch eher
bei einer ansonsten schlechten Quest, weil ich die sonst nie machen wuerde.

Dass es mit entgifte einen mittlerweile leider recht grundlegenden Befehl
getroffen hat, den die Spieler jetzt nicht mehr zur Verfuegung haben, ist zwar
nicht so toll .... aber hat sich schonmal jemand Gedanken gemacht, dass es
vielleicht auch noch andere Moeglichkeiten ausser einem entgifte fuer jeden
oder dem vielzitierten Klerikerzweitie gibt?

Anstatt jetzt viel Zeit und Arbeit in das Hochueben irgendwelcher
Entgifte-Zweities zu stecken, schaut euch mal lieber im MG um und sucht schon
vorhandene Moeglichkeiten zum Entgiften. Geruechteweise ( ;-) ) soll es die
nicht nur fest installiert, sondern auch portabel geben. 

Und wem die vorhandenen Moeglichkeiten nicht ausreichen, der kann sich ja
vielleicht bei einem Magier seiner Wahl stark machen fuer eine portable
Entgiftemoeglichkeit (eine Hand voll Kraeuter, ein kleiner Trank etc.). 

Und da Wargon die Questbelohnung ja definitiv entgueltig abgehaengt hat, steht
notfalls auch wieder eine 'neue' Questbelohnung fuer kommende Quests aus. Da
das Abhaengen von Tarko Reub ja anscheinend nix mehr mit einer zeitlich
begrenzten Protestaktion zu tun hat, waer das Programmieren einer aehnlichen
Questbelohung ja auch kein 'in den Ruecken fallen', oder? :)

Ringor. Haette Wargons Aktion eigentlich nur bei einer zeitlichen Begrenzung
so richtig nachvollziehen koennen, kommt aber auch ganz gut ohne entgifte aus.

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



Re^5: will tarko reub wieder haben (Asmodis, 13. Mai 1997, 16:54:59):
~#! rn=Grimmborn rt=863507418 rg=d.inseln
~#! tid=863450938
noe, vom entgifte-Spruch hab ich nix gesagt, ich hab genug Kleriker :)

Aber vielleicht wollen andere ihn haben....
Mir fehlen eben die Aps und Stupse vom Tarko-reub-Quest, das ich
fair und ohne KL geloest habe !!!

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



Re^7: will tarko reub wieder haben (Sharia, 13. Mai 1997, 22:54:43):
~#! rn=Anatol rt=863518893 rg=d.inseln
~#! tid=863450938
also da das ja noch zu der Zeit abgehaengt wurde als ich noch boeeser
mag-Zweiti war: in magier.xxx stand da nix oder ich hab nix gelesen :-)

Ups war das jetzt Spielerhilfe ?... also mich stoerts nich das entgifte raus
ist aber wer versteht das nich ? Nein also ich moechte mich wirklich
beschweren, denn es ist einfach nervig staendig leute heilen zu muessen ! Nein
so ist es auch nicht denn das war eigentlich der Hauptgrund warum ich Kleriker
wurde, eben WEIL ich dann andere Leute heilen kann und ich faendes auch nicht
schlecht wenn man vielleicht als Kleriker sogar heilen MUSS :-)
Nunja achja was immerwider witzig ist, ist das wettrennen wenn ein Spieler um
hilfe bruellt und einige Kleriker hinrennen.. nur was ist wenn mal keiner da
ist ??? was dann ?? tja ich habs noch nich mitbekommen aber waere auch
unlogisch und ausserdem bitte ich um ....

------> SCHMARRN.. oder so naja halb ich bin muede :-)

Sharia die Hohepriesterin des Lembold (NOCH ? :-) )

P.S.: Zauberer abwerten !! :-)
P.P.S: oder nich ? :-)

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



Re: Kann auf 'entgifte' verzichten. (Hardil, 14. Mai 1997, 13:04:28):
~#! rn=Ringor rt=863532842 rg=d.inseln
~#! tid=863532842

Ringor schreibt:
Und wem die vorhandenen Moeglichkeiten nicht ausreichen, der kann sich ja
vielleicht bei einem Magier seiner Wahl stark machen fuer eine portable
Entgiftemoeglichkeit (eine Hand voll Kraeuter, ein kleiner Trank etc.). 


Jaja, genau! Am besten hat jeder dann seinen Zweitie-Magier, der einem dann
unauffaellig die Kraeuter zusteckt, weil das Heilen ja mitgeloggt wird.
Tolle Idee!

-Hardil.
Freut sich schon auf unzaehlige Loeschungen, empoerte Artikel in der mpa und
nnn. :)

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



Re: Re: Kann auf 'entgifte' verzichten. (Ringor, 14. Mai 1997, 14:56:08):
~#! rn=Hardil rt=863607868 rg=d.inseln
~#! tid=863532842
Hab ich mich jetzt so missverstaendlich ausgedrueckt?

Mit dem 'stark machen fuer eine portable Entgiftemoeglichkeit' ist keine
Spielerhilfe gemeint, sondern der Anschluss eines neuen Objektes, das
natuerlich fuer alle erhaeltlich ist.

Von alleine kommen manche Magier eben nicht drauf, was die Spieler sich
wuenschen. Daher ist eine kleine 'Inspiration' von Seiten der Spieler manchmal
recht nuetzlich.

Ringor. Hat schon so manchen Magier zu netten Kaempfersachen inspiriert ;)

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



Re^3: Kann auf 'entgifte' verzichten. (Grimmborn, 14. Mai 1997, 14:59:49):
~#! rn=Ringor rt=863614568 rg=d.inseln
~#! tid=863532842
Ach so, das ist natuerlich was anderes. Wenn so eine portable Moeglichkeit
angeschlossen ist, dann ist es fuer Magier natuerlich unmoeglich, sowas
illegal zu clonen und Spielern unterzuschieben, ganz klar.

Komm, sag mir, dass Du das mit Absicht missverstanden hast, ansonsten schoenen
Gruss an Deinen Zwillingsbruder...

Grimmborn der Atheist

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



Re^4: Kann auf 'entgifte' verzichten. (Ringor, 14. Mai 1997, 16:23:56):
~#! rn=Grimmborn rt=863614789 rg=d.inseln
~#! tid=863532842
Natuerlich koennen Magier einem angeschlossene Objekte unterschieben. Aber
wenn Du meinen ersten Artikel gelesen haettest, wuesstest Du, dass es diese
transportablen Entgiftemoeglichkeiten schon gibt. Und auch diese koennen
natuerlich schon zur Spielerhilfe missbraucht werden.

Aber da eigentlich fast jedes Objekt von Magiern gecloned und an Spieler
weitergegeben werden kann, versteh ich Deine Argumentation noch nicht ganz. 

Ringor. Zwerg. Anscheinend nicht intelligent genug fuer manche Diskussionen.

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



Neues Fernrohr (v1.2) (Bloodyharry, 14. Mai 1997, 17:38:24):
Ben Gunn, immer bestrebt seine Arbeiten zu perfektionieren, hat sein Fernrohr
nun so umkonstruiert, dass es auch in den Parawelten richtig funktioniert.
Fuer alle mit Durchblick tauscht Ben das alte Fernrohr wie gehabt gegen das
Neuere aus.
Dank an dieser Stelle auch fuer Angrim, dem dieser Missstand zu erst auf
gefallen ist und mir flux eine Nachricht zukommen lies.


BloodyHarry - im Auftrag fuer Ben Gunn, Tortuga

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



Anspruch? (Larissa, 14. Mai 1997, 19:35:08):
Hoi,

hmm, sagt mal, wer von denen die jetzt nach dem 'entgifte'-Spruch schreien,
haben sich denn bei Wargon bedankt, dass er ihn ueberhaupt erst erfunden hat?
Und wie waere es denn, wenn mal was konstruktives kommt, zum Beispiel eine
nette mail an Hate: Bitte bitte lieber Hate progg uns eine Quest wo es als
belohnung einen 'entgifte'-Sruch gibt.... oder sowas *grins*

Was ich sagen will ist: Bitte ein bisschen mehr Ruecksicht und Kreativitaet
als immer Meckern, ob Wargons Veraenderungen nun toll sind oder nicht...

Lari, sucht neue Wege.

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



Re: Anspruch? (Wurzel, 14. Mai 1997, 21:01:21):
~#! rn=Larissa rt=863631308 rg=d.inseln
~#! tid=863631308
au ja... eine quest von hate! da wuerde ich mir doch glatt einen zweiti dafuer
machen :) ein denkbarer titel waere z.b. "die raetsel der mudlib" oder "die
gefahren der ebenen" oder sowas ... hau rein hate!

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



Re^3: Kann auf 'entgifte' verzichten. (Silvana, 14. Mai 1997, 21:33:10):
~#! rn=Ringor rt=863614568 rg=d.inseln
~#! tid=863532842
Gibt es schon fast so lange wie den entgifte-Spruch, wenn ich das
mal anmerken darf. :) Wurstseher, tststs...
  Silvana

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



Re^4: Kann auf 'entgifte' verzichten. (Ringor, 14. Mai 1997, 21:43:35):
~#! rn=Silvana rt=863638390 rg=d.inseln
~#! tid=863532842
Und Du liest die MPA anscheinend nich sonderlich gruendlich, wenn ich das mal
anmerken darf. :-)

Ringor. Kennt andere Moeglichkeiten als den entgifte-Spruch.

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



Re^7: will tarko reub wieder haben (Snuggle, 15. Mai 1997, 10:35:27):
~#! rn=Schlips rt=863519019 rg=d.inseln
~#! tid=863450938
Dasses den Spruch nich mehr gibt, ist wohl kaum ein 'empfindlicher Eingriff',
da Wargon ihn wohl nur in Ermangelung eines solchen Spruches in Spielerhand
(Klerikergilde) eingebaut hat. 
(aeh - wer den Bezugsartikel nicht mehr im Kopf hat - es geht natuerlich
um 'entgifte') :-)

Eine andere Sache isses mit den Punkten fuer die Quest. Dass es keine
AP mehr gibt, ist eine Sache, aber die SP (das heisst Stufenpunkte) setzen
sich zusammen aus: AP,EP,FP,ErstkillSP und MiniquestSP. Nachdem Tarko nun
sicher mehr als nur eine Miniquest ist, faend ichs nett, wenn es zumindest
SP dafuer gaebe.

YTSnuggle

PS Was ist denn mit der bisher noch heiligen Kuh 'Besitzstandswahrung'?
Wurde die heimlich still und leise geschlachtet?

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



Re: Anspruch? (Asmodis, 15. Mai 1997, 14:38:47):
~#! rn=Larissa rt=863631308 rg=d.inseln
~#! tid=863631308
Baeh, der entgifte-Spruch war doch erst der grund, dass man nun
an jeder Ecke vergiftet wird.
Vielleicht sollte man das doch mal etwas zurueckschrauben !

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



Re: Re: Anspruch? (Beelzebub, 15. Mai 1997, 14:47:28):
~#! rn=Asmodis rt=863699927 rg=d.inseln
~#! tid=863631308
yo, kuerzlich war ich bei der einer Trves-Quest unterhalb von Wilhemsburg
(ist von Wurzel), wo ich viermal oder so von einer truhe vergiftet wurde, 
bis ich endlich diesen Scheiss-Schluessel hatte... Man gut dass es noch 
freundliche Kleriker gibt :) 
Warum kann man im Nibelheim-Hospital eigentlich nicht vernuenftig entgiftet
werden ? Oder hab ich da was ueberlesen ?

Beelze*

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



Re^3: Anspruch? (Grimmborn, 15. Mai 1997, 14:51:28):
~#! rn=Beelzebub rt=863700448 rg=d.inseln
~#! tid=863631308
Man kann im Hospital nicht entgiftet werden, weil es ja den entgifte-Spruch
gibt. Das zumindest war die Argumentation vor zweieinhalb Jahren. :-)

Grimmborn der Atheist

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



Re^8: will tarko reub wieder haben (Schlips, 15. Mai 1997, 15:08:31):
~#! rn=Snuggle rt=863685327 rg=d.inseln
~#! tid=863450938
Hmm, das mit den Klerikern wurde ja in anderen Artikeln schon diskutiert,
unter anderem ja auch von der Klerikerin Sharia.
Aber weil Du schon Besitzstandswahrung angesprochen hast, Snuggle, faellt
'entgifte' nicht darunter?

Schlips, ehemaliger Besitzer des 'entgifte'-Spruchs, der den Spruch durch
Magierhilfe wieder verlernt hat ;)

PS: inzwischen hab ich auch eine portable entgifte-Moeglichkeit - allerdings
eine fuer die ich einiges Metzeln musste (und wie gut die ist weiss ich noch
net ...)

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



Re: Re: Anspruch? (Schlips, 15. Mai 1997, 15:09:55):
~#! rn=Asmodis rt=863699927 rg=d.inseln
~#! tid=863631308
Was moechtest Du zurueckschrauben?
Die Vergiftungen im Morgengrauen?
Die Vergiftung des Klimas?
Die Vergiftung von ...?

Schlips het mal wieder gar nix verstanden ....

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



Re^4: Anspruch? (Anthea, 16. Mai 1997, 00:08:24):
~#! rn=Grimmborn rt=863700688 rg=d.inseln
~#! tid=863631308
In es gibt nicht nur das eine "Hospital".

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



Re^5: Anspruch? (Willi, 16. Mai 1997, 11:13:13):
~#! rn=Anthea rt=863734104 rg=d.inseln
~#! tid=863631308
Richtig. Aber bis das Piratenschiff in PV ist, bist du laengst tot.

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



Re^6: Anspruch? (Atoz, 16. Mai 1997, 12:30:52):
~#! rn=Willi rt=863773993 rg=d.inseln
~#! tid=863631308
Musste Seher werden, dann biste schneller da

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



Re^7: Anspruch? (Willi, 16. Mai 1997, 12:41:44):
~#! rn=Atoz rt=863778652 rg=d.inseln
~#! tid=863631308
Bin Seher. Hab aber gehoert, das auch Spieler vergiftet werden ...

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



Tortuga (Astar, 16. Jun 1997, 13:35:37):
So, noch mal ne kleine Aendrung in der Quest "Der Ritus der Kannibalen", ist
aber nix schlimmes. Viel spass beim suchen. ;)

Astar

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



Tortuga (Astar,  3. Jul 1997, 15:56:52):
Auf Tortuga gibt es jetzt auch in der Parallelwelt etwas nettes zu sehen.
Also, wer ein bischen Risiko vertraegt kann sich gerne mal im Urwald dort
umsehen.

Astar

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



Re: Tortuga (Astar,  4. Jul 1997, 13:30:09):
~#! rn=Astar rt=867938212 rg=d.inseln
~#! tid=867938212
So, noch was, ich hab noch ein paar kleiner Aenderungen vorgenommen. Also,
viel Spass beim _Gruppen_metzeln.

Astar

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



Lampenoel fuer den Leuchtturm (Bloodyharry, 10. Sep 1997, 13:54:21):
Da die Lampenoelquest vergleichsweise zu viel Abenteuerpunkte vergeben hat,
habe ich sie heute abwerten lassen.

bh

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



Fernrohr (Bloodyharry,  1. Nov 1997, 22:08:06):
Mir ist zu Ohren gekommen, dass das Fernrohr bugen soll (Fehler im RZG). Wenn
dies passieren sollte, bitte sofort eine Mail an mich mit Angabe von Raum und
Richtung, in die geschaut werden sollte.

bh

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



Nochmal Fernrohr (Bloodyharry,  1. Nov 1997, 22:11:14):
Ben Gunn behauptet, das man sein Fernrohr auch im Seherladen kaeuflich
erwerben koenne. Dies trifft leider aber noch nicht zu. Ich hoffe dieser
Zustand aendert sich bald.

bh

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



Akhar Nth'tar (Toeter, 24. Nov 1997, 20:58:45):
Hi,
ich habe am Wochenende mal wieder ein wenig Mail und repfile abgearbeitet
und dabei einige Bugs (hoffentlich) beseitigt. Wenn es in Folge des Neu-
einspielens zu irgendwelchen Unregelmaessigkeiten kommen sollte, oder Bugs 
immer noch vorhanden sind, bitte ich um eine kurze Nachricht. Ich moechte 
mich auf diesem Wege auch bei den Magiern bedanken, die mich auf Bugs 
aufmerksam gemacht haben, bzw. diese direkt gefixt haben.
  Toeter

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



Schiffe (Bloodyharry, 12. Dez 1997, 23:17:11):
Hi folks!

Ich denke, es sollte mal was an den Schiffen geaendert bzw. erweitert werden.
Dass das Piratenschiff zu lange unterwegs ist, ist bekannt und wird auch bald
wieder besser werden, wenn Morgoths Orkgaleere seinen Dienst antritt.
Ich dachte aber vielmehr an die vielen Schiffe und sonstige Transportmoeglich-
keiten ueber nichtfestem Boden. Der ueberwiegende Teil hat nur eine Funktion
zum ausschliesslichen Transport und zudem erschreckend wenig Details.
Das moechte ich aendern. Wenn also irgendwelche Ideen oder spezielle Wuensche
mit einfliessen sollen, so moege man mir dies bitte kund tun.
Es ist ja fast alles moeglich, da dies ein Fantasy-Spiel ist.

ciao
bh

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



Re: Schiffe (Mango, 15. Dez 1997, 07:34:03):
~#! rn=Bloodyharry rt=881965031 rg=d.inseln
~#! tid=881965031
Wie waers wenn es doppelt so schnell geht wenn man selbst mit anpackt beim
uebersetzen? "Auf Sklave rudere, moege die Galeere schneller sein!".

Mango, seit Ewigkeiten kein Schiff mehr gefahren.


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



Re: Re: Schiffe (Bloodyharry, 15. Dez 1997, 09:42:27):
~#! rn=Mango rt=882167643 rg=d.inseln
~#! tid=881965031
Gute Idee. Und wieviele Magiepunkte soll das kosten?

bh

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



Re^3: Schiffe (Sharia, 15. Dez 1997, 09:43:10):
~#! rn=Bloodyharry rt=882175347 rg=d.inseln
~#! tid=881965031
keine ? :-)
sharia 

P.S.: ICH HABE KEINEN BART !!!

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



Re^4: Schiffe (Bloodyharry, 15. Dez 1997, 09:46:27):
~#! rn=Sharia rt=882175390 rg=d.inseln
~#! tid=881965031
> keine ? :-)

Man koennte ja mal versuchen den Kapitaen zu bestechen. So ab ca 1000
Goldmuenzen findet er sicher eine Abkuerzung. :-)

bh

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



Re^3: Schiffe (Mango, 15. Dez 1997, 10:31:52):
~#! rn=Bloodyharry rt=882175347 rg=d.inseln
~#! tid=881965031
Ist mir egal, denk Dir was aus :)

Mango, Teleporter aus Ueberzeugung.


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



Namenloser Raum?? (Smurf,  1. Feb 1998, 18:58:14):
Wenn einer der gesachaetzten Inselmagier die <namenloser Raum>-Raeume
rund um den Monolithen zu Raeumen mit sinnvollen Kurznamen umbauen
wuerde, faende ich das ganz dolle nett. ;-)

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



Re: Namenloser Raum?? (Key,  1. Feb 1998, 18:59:55):
~#! rn=Smurf rt=886355894 rg=d.inseln
~#! tid=886355894
Wieso????

Key

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



Re: Re: Namenloser Raum?? (Smurf,  1. Feb 1998, 19:24:54):
~#! rn=Key rt=886355995 rg=d.inseln
~#! tid=886355894
Weil es nervt?


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



Re^3: Namenloser Raum?? (Raffi, 13. Feb 1998, 16:04:12):
~#! rn=Smurf rt=886357494 rg=d.inseln
~#! tid=886355894
Wiso ?
H.

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



Re^4: Namenloser Raum?? (Smurf, 15. Feb 1998, 12:23:02):
~#! rn=Raffi rt=887382252 rg=d.inseln
~#! tid=886355894
Ich hab hier ein Programm (selber geschrieben), das mir beim Rumlaufen
eine Karte malt und die auch beschriftet. Da will ich gerne einigermassen
aussagekraeftige Bezeichnungen an den Raeumen haben und nicht
"namenloser Raum" (der Text sollte eher heissen "Da war ein Magier
wiedermal zu faul", meiner Meinung nach).

Woanders (es ist mir letzthin in FW aufgefallen) geht ab und zu jemand
durch und repariert solche Sachen. Kann also nicht allzu schwer sein...

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



Re^5: Namenloser Raum?? (Key, 16. Feb 1998, 09:35:39):
~#! rn=Smurf rt=887541782 rg=d.inseln
~#! tid=886355894
Kann es auch sein das es absicht ist?
Vielleicht haste nur nicht den tiefen Einblick in das alles ...

Hmm aber dein prog klingt interessant ;) Schieb mal rueber ,)

Key

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



Piratenspelunke (Bloodyharry, 25. Feb 1998, 07:44:35):
Das klingt jetzt vielleicht etwas merkwuerdig, weil es eher piratenuntypisch
waere. Aber die Spelunke auf Tortuga fuehrt nun wieder legale Getraenke.


ciao
bh

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



Kleintier (Bloodyharry, 25. Feb 1998, 13:16:01):
Im noerdlichen Urwald auf Tortuga hat sich nicht gaenzlich ungefaehrliches 
Kleintier eingefunden. Will es etwa ahnungslosen Abenteurern auflauern?
Naja. Was soll man schon von solcherlei Spezies erwarten!


ciao
bh

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



Die Spelunke auf Tortuga (Bloodyharry, 13. Mar 1998, 15:30:20):
Der Wirt aus der Spelunke auf Tortuga hat in der Erwartung, dass bald mehr
Besucher auftauchen werden, seinen Speise- und Getraenkeplan schon mal etwas
erweitert.

bh

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



Eiswagen auf Tortuga (Astar, 23. Mar 1998, 16:32:46):
HiHo!

Da das Wetter auf Tortuga bekanntlich besser ist, als der Fuehlingsanfang
(zumindest bis jetzt), hat sich Dino Dinelli entschlossen, eine kleine
fahrbare Eisdiele zu eroeffnen.
Viel Spass beim Suchen und Eisessen.

Astar

PS: Die Seher sollten auch mal in der Parawelt einen Blick riskieren.

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



Re: Eiswagen auf Tortuga (Trekan, 23. Mar 1998, 17:55:29):
~#! rn=Astar rt=890667166 rg=d.inseln
~#! tid=890667166
Mmmh .. para isses dann eine eis-schleuder oder artillerie?
*smile*
Trekan

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



Re: Re: Eiswagen auf Tortuga (Astar, 23. Mar 1998, 17:56:20):
~#! rn=Trekan rt=890672129 rg=d.inseln
~#! tid=890667166
Hmm

Das ware auch ne Idee gewesen. ;)

Astar

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



Eiswagen auf Tortuga (die 2te) (Astar,  8. Apr 1998, 13:38:14):
HiHo!

Wie ich gehoert habe waren die Eissorten in der Parawelt nicht sonderlich
sinnvoll, daher habe ich sie etwas geaendert.

Astar

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



Achtung! (Tilly, 15. Apr 1998, 00:07:45):
Moin moin,
auf der Feuerinsel hat sich einiges veraendert/getan usw. Schauts euch an...

Tilly

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



Runenstab (Toeter, 25. Apr 1998, 18:40:11):
Wer seinen Runenstab verloren hat, kann nun die Runen, die er bereits
beim Wirt vorgezeigt hat, ohne weiteres wieder in den Stab schnitzen
(Symbole waren schon immer runenstabverlustsicher).
  Toeter

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



Re: Runenstab (Zorro, 25. Apr 1998, 18:43:28):
~#! rn=Toeter rt=893522411 rg=d.inseln
~#! tid=893522411
Das stimmt wohl nicht gnz, ich habe meine Symbole nicht wieder bekommen ...

Zorro symbollos

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



Re: Re: Runenstab (Zorro, 25. Apr 1998, 18:53:42):
~#! rn=Zorro rt=893522608 rg=d.inseln
~#! tid=893522411
Zorro nimmt alles zurueck.

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



Re: Re: Runenstab (Toeter, 25. Apr 1998, 18:54:27):
~#! rn=Zorro rt=893522608 rg=d.inseln
~#! tid=893522411
Die Symbole muessen natuerlich neu in den Stab geschnitzt werden, von
selbst sind sie nicht automatisch drin.
  Toeter

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



Mal was Neues... (Wargon, 27. Apr 1998, 12:44:22):
  Huhu!
Der Tempelbezirk in der Stadt auf der Insel am Ende der Welt ist ein wenig
gewachsen. Nur zur Information, damit man mit seinen Wegescripts nicht vor die
Wand rennt :)
Fuer Kartenzeichner: Der ganze Bereich nimmt zur Zeit den Platz ein, den
vorher der Tempel allein einnahm.
  Wargon

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



Re: Mal was Neues... (Bottom, 28. Apr 1998, 15:16:19):
~#! rn=Wargon rt=893673862 rg=d.inseln
~#! tid=893673862

Danke Wargon! Endlich nimmt der Tempelbezirk Gestalt an - sieht gut aus
bisher!


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



Piratengilde (Astar, 28. Apr 1998, 15:44:52):
HiHo!

Ich hab letzte Woche oder so mal die Piratengilde fuer alle zugaenglich
gemacht (eintreten kann man noch nicht).

Astar (vergesslich)

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



Re: Mal was Neues... (Gorog, 28. Apr 1998, 19:41:16):
~#! rn=Wargon rt=893673862 rg=d.inseln
~#! tid=893673862
JO Is nett der neue Tempel Bezirk (; besonders die kneipe da gefaellt mir. Was
ich allerdings gerne taete, waere die jolenden Jugendlichen (?) zurecht zu
weisen (; , inquisieren oder so.

Gorog heute mal nur scheinheilig aber ehrlich

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



Re: Re: Mal was Neues... (Bottom, 29. Apr 1998, 18:58:26):
~#! rn=Gorog rt=893785276 rg=d.inseln
~#! tid=893673862

Hmmm...die Jugendlichen ueberlass ich Bruder Gorog gerne...ich wuerde mir
lieber mal die schnuckelige Ordensschwester im Kraeutergarten vornehmen...

Moege mir Lembold verzeihen! *huestel*


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



Re^3: Mal was Neues... (Gorog, 30. Apr 1998, 09:18:26):
~#! rn=Bottom rt=893869106 rg=d.inseln
~#! tid=893673862
Also ich weiss ja nicht ob sonne alte Orkfrau die nur zetert wenn man das
falsche tut schnuckelig ist (;

Gorog der doch eher interspeziell bleibt

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



Hiho Piraten! (Bloodyharry,  5. Mai 1998, 08:19:54):
Die Spelunke im Hafen von Tortuga ist nun die offizielle Gildenkneipe der
Piraten. Somit habe ich alle Getraenke und Speisen diesem Umstand angepasst
und entsprechend geaendert.

bh

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



Todesfallen (Morgar,  5. Mai 1998, 12:53:30):
Was soll eigentlich die scheiss Todesfalle in der Huette auf der Magieinsel?
Es steht zwar eine Warnung dabei, aber da diese er im naechsten Absatz steht,
hab ich sie natuerlich erst nach dem untersuchen gelesen.
Solche Sachen gehoeren meiner Meinung nach VERBOTEN und wenn man unbedingt so
was einbauen will, sollte man einen fake Tod machen und nicht einfach die()
aufrufen. Baut das Ding SOFORT wieder aus!

Morgar (verflucht sauer)

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



Re: Todesfallen (Highlander,  5. Mai 1998, 13:26:44):
~#! rn=Morgar rt=894365610 rg=d.inseln
~#! tid=894365610
Abgesehen davon, dass das fuer mich ein einziger Absatz ist - wenn Du 
nicht liest, was man Dir schreibt, bevor Du weitermachst, ist das
Dein Problem. So natuerlich ist das naemlich nicht, dass man ohne
Gehirn (ohne das jetzt unterstellen zu wollen, aber halt wie ein
untersuche-skript) der Reihe nach alle Hauptwoerter untersucht.
Nein, auch das ohne Gehirn will ich Dir nicht unterstellen, aber so
hast Du Dich meiner Meinung nach verhalten.
Oder untersuchst Du das Hackwerk von so einem Gartenhaecksler auch,
ohne zu gucken, was Du da gerade untersuchst und ob das vielleicht noch
laeuft?

     HrT

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



Re: Re: Todesfallen (Morgar,  5. Mai 1998, 13:31:22):
~#! rn=Highlander rt=894367604 rg=d.inseln
~#! tid=894365610
Ich sag dazu gar nix mehr, ausser, dass ich diese Insel jetzt wieder aus
meiner Karte entfernt habe. (Fuer immer!)
Ich weiss nicht, ab es das ist, was Bierchen damit erreichen wollte, aber das
Ding steht jetzt zumindest in der MPA, was sie ziemlich wirkungslos machen
sollte...

Morgar

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



Re^3: Todesfallen (Key,  5. Mai 1998, 14:45:04):
~#! rn=Morgar rt=894367882 rg=d.inseln
~#! tid=894365610
Hmm bin immernoch gegen jegliche Art von Todesfallen ....
Sterben tut man in ehrlicher Weise im Kampf net durch sowas ...

Naja sind wohl zuweniger der gleichen Meinung ... trotzdem der Vorschlag
solche Sachen zu verbieten ...

Key

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



Re^4: Todesfallen (Teddy,  5. Mai 1998, 14:47:16):
~#! rn=Key rt=894372304 rg=d.inseln
~#! tid=894365610
In diesem Fall stand da in etwa folgendes: 
Du siehst eine unsichtbare Todesfalle. Die solltest du nicht untersuchen, da
dies absolut toedlich ist.
Ich finde die Warnung deutlich genug. Da sollten im Groist.en und Ganzen nur
Skripte und SEHR unvorsichtige Leute reingeraten.


Teddy, hat jetzt bestimmt einigen Leuten auf den Fuss getreten.

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



Re^5: Todesfallen (Anatol,  5. Mai 1998, 14:49:12):
~#! rn=Teddy rt=894372436 rg=d.inseln
~#! tid=894365610
Ich kenne besagte Insel nicht. Was ich aber weiss, ist, dass man solche 
Dinge an viel zu vielen Orten untersuchen _muss_, um weiterzukommen. Als
Todesfalle demnach denkbar ungeeignet. Bei einem Knopf, an dem "Vorsicht, 
Deckenabsenkung!" dran steht, sieht die Sache anders aus.

Anatol...? Ja.


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



Re^5: Todesfallen (Key,  5. Mai 1998, 14:50:02):
~#! rn=Teddy rt=894372436 rg=d.inseln
~#! tid=894365610
Hmm ja schoen ne Warnung gibbet ...
Und wahrscheinlich haette nichtmal ich das untersucht ... wobei ich doch
neugierig bin ob der mag das ernst meint ..

Aber es ist und bleibt nunmal ne Todesfalle ... und sowas mag ich numal net ,)
Ob mit oder ohne Warnung ... 

Key

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



Re^6: Todesfallen (Teddy,  5. Mai 1998, 14:51:56):
~#! rn=Anatol rt=894372552 rg=d.inseln
~#! tid=894365610
Ich weiss, das es solche Stellen gibt, bin selbst schon dran gestorben, aber
es gibt auch Stellen, an denen man stirbt, wenn man ne falsche Richtung
angibt, sogar wenn der Ausgang nicht angegeben ist.
In diesem Fall steht, das diese Todesfalle absolut toedlich ist.
Morgar hatte sich ausserdem nur darueber beschwert, das es erst weiter unten
stand und er es zu spaet gelesen hat.


Teddy

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



Re^6: Todesfallen (Key,  5. Mai 1998, 14:52:47):
~#! rn=Anatol rt=894372552 rg=d.inseln
~#! tid=894365610
Noe ,) Denn vielleicht senkt sich ja auf wunderbare Weise die Decke nur vor
einem .. und man kann draufgehen ... oder die Decke ist durchlaessig oder
teleportiert oder oder oder ..
Es gibt genug moeglichkeiten jede Todesfalle auch als Weg zum weiterkommen zu
sehen, und selbst wenn man tippt teleportiere nach tod ist es nicht unbedingt
toedlich ... Das sieht man bei anderen Magiern ..

Das Mg ist nunmal von vielen mit verschiedenen Ideen zusdammengewuerfeltes
Spiel ... Der eine ist mies und killt einen, der andere veraeppelt einen nur
nen bisserl ... 
Wie soll man da wissen welche Warnung man ernst nehmen muss? .)

Key

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



Re^7: Todesfallen (Morgar,  5. Mai 1998, 14:53:51):
~#! rn=Key rt=894372767 rg=d.inseln
~#! tid=894365610
Ich hatte mich uebrigens auch im allgemeinen ueber solche Todesfallen
beschwert...

Morgar

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



Re^8: Todesfallen (Zardoz,  5. Mai 1998, 15:00:08):
~#! rn=Morgar rt=894372831 rg=d.inseln
~#! tid=894365610
Ich kenne Todesfallen aus anderen Muds. Dort ist es so, dass der Tod in einer
Todesfalle keine Auswirkungen hat, ausser, dass das Equip weg ist, was schlimm
genug ist. Vielleicht sollte man sich hier auch mal eine Sonderregelung
ueberlegen, denn ganz ohne Todesfallen ist es doch ein bisschen langweilig.

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



Re^9: Todesfallen (Teddy,  5. Mai 1998, 15:02:19):
~#! rn=Zardoz rt=894373208 rg=d.inseln
~#! tid=894365610
Also ich finde Todesfallen ohne Warnung auch nicht gut, aber wenn ne deutliche
Warnung dran steht, kann ich vorher meine Sache ablegen oder sowas, denn mir
tut im Moment zumindest verlorene Ausruestung mehr weh, als ein Tod mehr auf
dem Zaehler.
+
Teddy.

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



Re^10: Todesfallen (Anatol,  5. Mai 1998, 15:10:22):
~#! rn=Teddy rt=894373339 rg=d.inseln
~#! tid=894365610
> "...denn mir tut im Moment zumindest verlorene Ausruestung mehr weh, als
> ein Tod mehr auf dem Zaehler."

Dass Du damit frueher oder spaeter den allgemeinen Wunsch nach einer
'Verschaerfung' des Todes weckst, ist Dir hoffentlich klar? Schliesslich
sollte der Tod etwas sein, dem man aus dem Weg geht, solange man kann -
bewusstes Einplanen des eigenen Ablebens empfinde zumindest ich als falsch.

Anatol, haengt am Lebeeeeeeaargh..... :)


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



Re^11: Todesfallen (Schoko,  5. Mai 1998, 15:36:08):
~#! rn=Anatol rt=894373822 rg=d.inseln
~#! tid=894365610
Hmmm also ich weiss nich, aber findet ihr z.B. Feuerwehrs Gebiet so
langweilig? Da gibts auch jede Menge STellen, an denen man "sterben" kann, is
aber doch (fast) alles nur fake. Das tut IMHO den Spass jedoch keinerlei
Abbruch....
Es ios halt nunmal einfach so hier, dass es Gebiete gibt, in denen man
wirkrlich _jeden_ Scheissdreck untersuchen muss und kann, und am Ende gibts
dann dafuer auch nochn FP. Waruym sollte gerade hinter diesem Detail kein FP
stecken??? In andren muds werden solche Sachen wohl gerne eingebaut, um
Untersuche Skripte zu verhindern, das sit hier aber absolut unueblich und
deswegen wuerde wophl niemand beim ersten Mal in diesem neuen Gebiet etwas
derartiges vermuten, oder?

Schoko (findet Todesfallen keine gute Art um Langweile im Mud zu
bekaempfen....)

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



Re^12: Todesfallen (Ark,  5. Mai 1998, 16:37:27):
~#! rn=Schoko rt=894375368 rg=d.inseln
~#! tid=894365610
Oehm *erroet*, als direkt Betroffener will ich meine schuechterne
Meinung FUER Todesfallen aeussern :-)
Das soll heissen, dass es dafuer KEINE FPs geben soll, und dass sie schon
so markiert sind, dass man davon vorsichtigerweise Abstand nehmen kann.
Ob das bei oben genanntem Beispiel der Fall ist, sei mal dahingestellt.
Ich haette mich auch geaergert, wenn ich beim untersuchen der Todesfalle
einfach mal ins Gras gebissen haette, aber naja, das ist halt Sache des
Magiers. Spannender macht es das Spiel allgemein aber allemal, jawoll.
So, steinigen Sie Ark bitte JETZT ...


              *** ARK * the * Magnificent ***


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



Re^13: Todesfallen (Morgar,  5. Mai 1998, 16:38:45):
~#! rn=Ark rt=894379047 rg=d.inseln
~#! tid=894365610
Also meiner Meinung nach machen Todesfallen das Spiel nicht spannender,
sondern eher frustrierender.

Morgar

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



Re^14: Todesfallen (Ark,  5. Mai 1998, 16:42:06):
~#! rn=Morgar rt=894379125 rg=d.inseln
~#! tid=894365610
Ach komm, sonst ist es als hoher Seher so *fast* ohne Spannung :-)


              *** ARK * the * Magnificent ***


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



Re^14: Todesfallen (Anatol,  5. Mai 1998, 16:43:11):
~#! rn=Morgar rt=894379125 rg=d.inseln
~#! tid=894365610
Ich weiss nicht. Ich war damals einer der ersten in der Inferno-Quest,
die damals mit allem Moeglichen ("zimtfarbener Tod", "Die Maechte des
Infernos","Iris"...) auf [Tod:]... ich habe in den 27 Stunden Questen 
stellenweise Blut und Wasser schwitzend vor dem Monitor gesessen. DER
Nervenkitzel war einfach oberscharf.

Anatol, den Klostergarten schief anguggend


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



Re^15: Todesfallen (Morgar,  5. Mai 1998, 16:43:25):
~#! rn=Ark rt=894379326 rg=d.inseln
~#! tid=894365610
Ein harter NPC, den man mit mehreren Seher zusammen killen muss und dann
vielleicht noch vorher ein paar Dinge besorgen, so was ist spannen, aber nicht
Todesfallen, bei denen man stirbt, wenn man sie sich anschaut...

Morgar

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



Re`16 Todesfallen (Smarte,  5. Mai 1998, 17:00:54):
aus meiner rollenspielerfahrung haette ich auch geschlossen das ich das
untersuchen kann.
in den meisten abenteuern wird vieles auch als todesfalle beschrieben aber um
die quest zu loesen muss man trotzdem rein.
anders haette ich mich wahrscheinlich verhalten wenn die warnung komplett
gross geschrieben worden waere.

Smarte stirbt auch oefters istz aber meist selbst daran schuld.

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



Re: Re`16 Todesfallen (Anacrion,  5. Mai 1998, 19:03:10):
~#! rn=Smarte rt=894380454 rg=d.inseln
~#! tid=894380454

Hmmmm.
Also normalerweise versuche ich ja, mich aus derartigen Disjussionen
rauszuhalten, da es nun mal verschiedenene Meinungen zu dem Thema gibt. Ich
habe mit Ark auch RL schopn lange und fruchtlos zu dem Thema diskutiert ....
Ich denke , die Fuersprecher der Todesfallen wollen vor allem das Folgende
erreichen: mehr Nervenkitzel (man soll sich gefaelligst alles angucken),
Skriptfalle usw. ... EIGENTLICH ist gegen diese durchaus ehrwuerdigen Gruende
auch nichts zu sagen, aber, ABER: 
Es ist doch nunmal so, dass verschiedene Magier unterschiedliche Meinungen zu
diesem Thema haben. Der eine gibt Dir nen FP, wenn du von ner Bruecke in den
Abgrund springst oder nen ZT, der andere schickt Dich zu Lars. Direkt. Ohne
ueber Los zu gehen. 
Ich denke, dass DA des Pudels Kern liegt. Es geht naemlich nicht unbedingt
darum, Todesfallen abzuschaffen, sondern es gibt Stellen , an denen man sich
offensichtlich umbringen muss, um weiterzukommen, an anderen kkriegt man ne
geballte Ladung Todessequenz ab. Ich denke, wenn das vereinheitlicht waere,
wuerde auch dieser Thread ein Ende haben (auch wenn das Ende des Threads wohl
frueher kommen wird).

Anac*

P.S. Ich spreche mich hier nochmals ausdruecklich gegen instanttode, die durch
eingzelnen falschen Buchstaben entstehen .... wie oft vertippt man sich mal,
gerade, wenn es schnell gehen muss (da hab ich doch beim phoenix mal w statt q
erwischt und so ... alles GAR NICHT GUT ...)

P.P.S. Falls man sich nicht auf ein einheitliches FP/ZT/die()-Konzept einigen
kann, waere doch ein Fake ne ganz gute Loesung oder ... ?

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



Re: Re: Re`16 Todesfallen (Rikus,  5. Mai 1998, 19:54:38):
~#! rn=Anacrion rt=894387790 rg=d.inseln
~#! tid=894380454
Hi,
die Magier, die FPs, ZTs an bestimmten Stellen haben moechten, muessen
diese bei mir anmelden und ich trage sie ein, wenn ich sie fuer ok be-
finde. Ich kann nicht fuer die Zeit vor mir reden und auch nicht alle
Stellen ansehen, die da schon eingetragen wurden. Habt ihr also bei
dieser Diskussion bestimmte Stellen im Auge, so gebt mir eine Nachricht
(MPA les ich nicht dauernd).
ZTs tiefer in Quests braucht ihr mir nicht mehr mailen, habe schon einige
solche Stellen, kann die aber erst ersetzen, wenn ich andere/neue ZTs
zum Eintragen bekomme.

ciao, Rikus

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



Re^3: Re`16 Todesfallen (Anatol,  5. Mai 1998, 19:56:03):
~#! rn=Rikus rt=894390878 rg=d.inseln
~#! tid=894380454
Spieler haben es mit dem "Ich maile Dir einen FP, der sehr unguenstig
verteilt ist" etwas schwer, weisst Du? :)

Anatol ;-)

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



Re^4: Re`16 Todesfallen (Rikus,  5. Mai 1998, 19:56:35):
~#! rn=Anatol rt=894390963 rg=d.inseln
~#! tid=894380454
Naja, ich wollte nur FP-Listenbesitzer erkennen :)

Rikus

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



Re^4: Re`16 Todesfallen (Sting,  5. Mai 1998, 19:56:47):
~#! rn=Anatol rt=894390963 rg=d.inseln
~#! tid=894380454
Das uebernehmen die HLPs und die koennen das ja wohl ? Ein einfacher Blick in
die Liste genuegt.

Sting

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



Re^5: Re`16 Todesfallen (Sting,  5. Mai 1998, 19:57:23):
~#! rn=Sting rt=894391007 rg=d.inseln
~#! tid=894380454
PS zum vorherigen Artikel: Ich meinte natuerlich die Top-Liste :)

Sting

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



Re^15: Todesfallen (Rantanplan,  5. Mai 1998, 22:58:43):
~#! rn=Zuerileu rt=894400157 rg=d.inseln
~#! tid=894365610
Und fuer seine Grammatik ;-)

Oe*

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



Re^16: Todesfallen (Schoko,  6. Mai 1998, 00:56:08):
~#! rn=Rantanplan rt=894401923 rg=d.inseln
~#! tid=894365610
Hmm sorry, aber _Dein_ Artikel is irgendwie auch nich viel Besser
Zuerileu....anscheinend steht doch (abgesehen von der eusseren Form des
Artikels, der noch lange keine derartige Schimpftirade rechtfertig) Morgar gar
nicht so alleine mit seiner Meinung da. Also mach Dir selber nen Schnuller,
machn bisschen Baldrian rein, dann wiest Du ruhiger =;))

Schoko (den solche extrem persoenlichen Artikel nerven: getroffene Hunde
jaulen oder wie war das?)

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



Re^17: Todesfallen (Bierchen,  6. Mai 1998, 02:38:34):
~#! rn=Schoko rt=894408968 rg=d.inseln
~#! tid=894365610
moin,
nun, dazu muss ich auch mal etwas sagen. und zwar dies: ich, wie auch viele
andere mags, investieren ungemein viel zeit fuer dieses spiel, manchmal sogar
viel zuviel davon. auf jeden einzelnen spieler kann man einfach nicht
eingehen, aber zumindest gebe ich mir muehe, dies dennoch zu schaffen. wenn
ich mir irgendwelche beschimpfungen anhoeren muss, sei es ueber mails, in
einem rep-file, der mpa oder sonstwo, darf sich nicht wundern, dass sich
nichts aendert... sowas geht auch anders, leute, wobei einige mal ihren ton
ueberdenken sollten!
gruss,
  - Bierchen - 

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



Re^18: Todesfallen (Dieder,  6. Mai 1998, 02:42:48):
~#! rn=Bierchen rt=894415114 rg=d.inseln
~#! tid=894365610
ganz meine Meinung.

Dieder, spielt hier gern, stirbt oft und hat dennoch seinen Spass.

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



Re^3: Re`16 Todesfallen (Teddy,  6. Mai 1998, 07:02:34):
~#! rn=Rikus rt=894390878 rg=d.inseln
~#! tid=894380454
Falls du von Spielern Vorschlaege fuer ZT-Stellen brauchen kannst, sag
Bescheid.

Teddy, konstruktiv.

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



Erlebnisfall (Bloodyharry,  6. Mai 1998, 08:27:26):
Ich habe den nicht ganz unbegruendeten Verdacht, es wird hier auf Kosten von
Bierchen aufgestauter Frust abgeladen - das hat er ganz sicher nicht verdient!
Jedem sollte klar sein, dass man Fehler machen kann. Und niemand kann sich
davon ganz frei sprechen. 
Morgar hat allerdings auch recht, wenn er diesen seinen Tod reklamiert:
Gestorben wird an allen Ecken und Kanten; aber hier fehlte es
zugegebenermassen derzeit noch an der richtigen Umsetzung.
Da daran noch gearbeitet wird, ist jede weitere Diskussion hier voellig
ueberfluessig und der Sache nicht sonderlich dienlich.
Konstruktive Realisationsvorschlaege sind selbstverstaendlich immer
willkommen; wenngleich nicht im gleichen Masse bindend.


bh

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



Re^15: Todesfallen (Morgar,  6. Mai 1998, 13:31:28):
~#! rn=Zuerileu rt=894400157 rg=d.inseln
~#! tid=894365610
Muss ich mich hier verarschen lassen? So was wie die Monster abwerten hab ich
NIE gesagt! Und haette ich die Warnung rechtzeitig gesehen, haette ich nen
Zweiti geholt. Die stand nur dummerweise erst im naechsten Satz, den ich erst
nach dem Untersuchen der Todesfalle gelesen hab. Wenn so was eingebaut ist,
weil es zum Beispiel zu einer Quest gehoert, habe ich ja gar nix gegen
Todesfallen, die man mit etwas Denken umgehen muss, aber so was einfalls und
sinnloses wie dieses Ding hat meiner Meinung nach in einem Mud nichts zu
suchen.

Morgar

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



Re^16: Todesfallen (Patryn,  6. Mai 1998, 13:59:00):
~#! rn=Morgar rt=894454288 rg=d.inseln
~#! tid=894365610
also ich finde den tip:
 'musst halt nen zweitie holen, um die todesfalle abzutesten'
ziemlich daneben. das wiederspricht nicht nur voellig dem konzept des
spiels, sondern macht auch noch jede spielatmosphaere zunichte. ich
jedenfalls hasse es, wenn leute mit ganzen brigaden durch die gegend
laufen, um sich nur jeden vorteil davon zu erhaschen. wenn man das jetzt
auch noch erzwingen will, finde ich das nicht eben gelungen.
eindeutige todesfallen sind sicher recht nett, wenn man die spannung
erhoehe will, nur will ich mal ein beispiel nennen:
 es gibt bestimmt 10 orte, an denen man bei einem 'springe von soundso'
in den vorher angemahnten tod springt und mindestens ebenso viele stellen,
wo dies trotz der mahnung nicht passiert. es wurde in der vergangenheit
viel zu inkonsequent damit umgegangen, als das man so etwas jetzt
durchsetzen koennte. ein fake-tod tuts auch und alle haben noch mal etwas
spass gehabt dabei.

------
patryn

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



Re^17: Todesfallen (Key,  6. Mai 1998, 16:13:01):
~#! rn=Patryn rt=894455940 rg=d.inseln
~#! tid=894365610
Yep stimme Patryn da voll zu ...
Die Spannung durch nen Tod erheben ist eh nen bisserl laecherlich ... 
Spannung hat doch was mit der Entdeckung von was neuem zu tun ... und nicht
mit sowas ueblichen (Fuer mich ueblich ;) )

Und wenns ne Scriptfalle darstellen soll ... reicht ein Fake-Tod auch allemale
... Dazu noch ne witzige Todessequenz und alle sind zufrieden :)

Key 

P.S.: Uebrigens .. keiner meiner Artikel richtet sich gegen einen speziellen
Magier ... sondern gegen eine spezielle Art zu sterben ;)

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



Re: Re: Todesfallen (Asmodis,  6. Mai 1998, 18:56:55):
~#! rn=Highlander rt=894367604 rg=d.inseln
~#! tid=894365610
Hmm, man kann Dinge untersuchen, ohne seine Finger reinzustecken ...

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



Re^15: Todesfallen (Asmodis,  6. Mai 1998, 19:01:12):
~#! rn=Anatol rt=894379391 rg=d.inseln
~#! tid=894365610
Hmm, ja, am Tor wars auch schwierig, die richtige Methode zu finden, um nicht
zu sterben :)

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



Re^16: Todesfallen (Zuerileu,  7. Mai 1998, 01:19:45):
~#! rn=Morgar rt=894454288 rg=d.inseln
~#! tid=894365610
Hi,
Sorry Morgar, 
aber jeder normale Mudder liest eine Raumbeschreibung zuerst fertig, bevor er
irgentwas untersucht. Ich kann mir einfach nicht vorstellen wie man seine
Fehler anderen ankreiden kann. Stehe doch dazu das du scheisse gebaut hast.
Sorry, wenn du bei einem Bahnhof ueber die Gleise laeufst und Dich ein Zug
ueberollt, dann kannst du auch nicht sagen du haetest erst nachher das
Verbotsschild gelesen. Denn danach kannst du halt nicht mehr lesen weil du tot
bist. Und das ist in diesem Beispiel halt nicht anders.

Tschau Alain

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



Re^17: Todesfallen (Smurf, 23. Mai 1998, 05:18:33):
~#! rn=Zuerileu rt=894496785 rg=d.inseln
~#! tid=894365610
Es ist aber durchaus so, dass an anderer Stelle, um beim Beispiel mit
den Gleisen zu bleiben, was ganz anderes passiert. zB die Sandfallen
hinterm Bahnhof, da hatte ich auch erst Angst reinzulaufen, normaler-
weise ist sowas schliesslich auch toedlich.

Ich finde, es braucht einfach ein paar Methoden (muessen ja nicht
unbedingt _so_ supereinfach zu bekommen sein ;-) rauszufinden,
ob eine Aktion wie zB "springe runter" nun wirklich toedlich ist oder
ob sich dahinter was anderes verbirgt. Kann ja ruhig zB ein paar
MPs kosten.

Meinetwegen "suche todesgefahren" => "Der Abgrund sieht
ungesund aus" oder so. 

Smurf, den die Inkonsistenzen re Gefahren ziemlich nerven

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



Vulkan (Tilly,  6. Jun 1998, 01:04:32):
Moin moin,
ich hab den Vulkan auf der Feuerinsel etwas umgestrickt.
Man kann dort immer noch sterben, jedoch gibt es eine Moeglichkeit seine
Sachen wiederzubekommen. Diese liegen aber NICHT in der Lava. 
Ich hoffe, Euch damit ein bisschen entgegenzukommen.
Gruss,
             Tilly

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



Re: Vulkan (Lug,  6. Jun 1998, 01:05:11):
~#! rn=Tilly rt=897087872 rg=d.inseln
~#! tid=897087872
Pffft,

mir doch egal ;9

FidKG
Lug

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



Re: Re: Vulkan (Teddy,  7. Jun 1998, 23:47:53):
~#! rn=Lug rt=897087911 rg=d.inseln
~#! tid=897087872
Bringt den Vulkan zu Lug, freiwillig geht er da eh nicht hin ;)

Teddy

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



Re^3: Vulkan (Lug,  8. Jun 1998, 00:56:38):
~#! rn=Teddy rt=897256073 rg=d.inseln
~#! tid=897087872
Hm,

nagut, wenn er zu mir kommt, hab ich nix dagegen ;)

FidKG
Lug

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



Re^4: Vulkan (Hasim,  8. Jun 1998, 10:23:51):
~#! rn=Lug rt=897260198 rg=d.inseln
~#! tid=897087872
Wenn der Prophet nicht zum Berg kommt....

Hasim (grinsend)

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



Auf der Feuerinsel... (Tilly, 19. Jul 1998, 22:09:56):
Und wiedermal hat die Feuerinsel einen Emigranten aufgenommen. Es handelt
sich um einen Niederlaender, der nun dort feine Waren aus dem Lande der
unbegrenzten Moeglichkeiten feilbietet.

Viel Spass (*kicher*) und ein gesundes Augenmass :)

                              - Tilly -

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



Ghoulgaenge (Tilly, 22. Jul 1998, 04:54:45):
Moin moin,
ich hab die Ghoulgaenge mal ein bisschen umgestrickt. Tut mir leid fuer
diejenigen, die sich da eine Karte gemalt haben.
Gruss,
           Tilly

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



Re: Ghoulgaenge (Therin, 22. Jul 1998, 04:55:19):
~#! rn=Tilly rt=901076085 rg=d.inseln
~#! tid=901076085

rtrete tilly


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



Re: Magieinsel (Bierchen, 12. Aug 1998, 00:03:00):
~#! rn=Anacrion rt=902798472 rg=d.inseln
~#! tid=902798472
moin, 
uhi, hast recht, das heisst doch da tatsaechlich AD anstelle von AddDetail..
magier sind wirklich unberechenbar.
gruss,
       - Bierchen -

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



Tarko Reub (Wargon,  3. Sep 1998, 11:56:50):
  Hiho!
Es gibt jetzt wieder was fuer Tarko Reub (nein, keine AP).
  Wargon

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



Re: Tarko Reub (Anatol,  3. Sep 1998, 12:53:31):
~#! rn=Wargon rt=904816610 rg=d.inseln
~#! tid=904816610
 Bist Du Dir ganz sicher, dass Du den Zweck des Gegenstands nicht 
 aeusserst (!) kontra-intuitiv darstellst? Eigentlich muessten doch 
 alle anderen das bekommen, was dem Anwender in der jetzigen Version
 genommen wird? :)

 *immernoch rotfl*
 Anatol :)


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



Re: Re: Tarko Reub (Key,  3. Sep 1998, 16:54:42):
~#! rn=Anatol rt=904820011 rg=d.inseln
~#! tid=904816610
Koennt ihr mal auf deutsch weiterreden? :) Und deutlich? :))

Key

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



Re: Re: Tarko Reub (Wargon,  4. Sep 1998, 11:13:42):
~#! rn=Anatol rt=904820011 rg=d.inseln
~#! tid=904816610
Das Teil toent so durchdringend, da hilft nicht mal Taubheit.
Alles klar? :)
  Wargon

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



Achja ... (Tilly, 15. Jan 1999, 18:37:36):
... hatte ich fast vergessen. Der 'Schlund des Ymir' ist nun angeschlossen. 
Viel Spass ...
                                 - Tilly -

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



Re: Achja ... (Asmodis, 15. Jan 1999, 22:52:06):
~#! rn=Tilly rt=916425456 rg=d.inseln
~#! tid=916425456
Du hast was vergessen: Das sollte wohl 'Viel Spass beim Sterben' heissen :-)

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



Neuer RM (Boing, 20. Jan 1999, 15:30:39):
Da Bloodyharry nur noch wenig Zeit hat, gibt es einen neuen RM: Tilly

  Boing

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



Re: Neuer RM (Sharia, 20. Jan 1999, 15:33:29):
~#! rn=Boing rt=916846239 rg=d.inseln
~#! tid=916846239
Gratulation und VIEL ERFOLG !!

Sharia

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



Neu - Eroeffnung !! (Tilly,  3. Feb 1999, 15:35:50):
 Diese Bekanntmachung richtet sich an alle Rentner im MorgenGrauen:

Mit nicht geringem Stolz geben wir die Eroeffnung der Rollstuhl - Manufaktur
auf der Feuerinsel bekannt. Kommen auch Sie! Keine Angebote und Schnaeppchen!

                       Der Leiter der Manufaktur 

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



Re: Neu - Eroeffnung !! (Anatol,  3. Feb 1999, 16:02:07):
~#! rn=Tilly rt=918056150 rg=d.inseln
~#! tid=918056150
Feuerinsel? Gibt es da auch Essen auf Raedern?

Anatol :o)


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



Re: Re: Neu - Eroeffnung !! (Key,  3. Feb 1999, 16:26:27):
~#! rn=Anatol rt=918057727 rg=d.inseln
~#! tid=918056150
Um Gottes Willen!
Wie sollen die Rentner denn da hin kommen? Wir koennen die doch net mitm
Schiffche fahren lassen ... .)

Key

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



Re^3: Neu - Eroeffnung !! (Anatol,  3. Feb 1999, 16:27:10):
~#! rn=Key rt=918059187 rg=d.inseln
~#! tid=918056150
Ach was, Key - wenn Tilly wirklich fuer uns Rentner was haette tun
wollen, gaebe es eine 24-Sekunden-Hauszustellung...

Anatol


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



Re^3: Neu - Eroeffnung !! (Tilly,  3. Feb 1999, 16:27:44):
~#! rn=Key rt=918059187 rg=d.inseln
~#! tid=918056150
Hmja, Du hast recht Key. Vielleicht sollt ich noch nen Zivi in Port Vain
abstellen :-)

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



Re^4: Neu - Eroeffnung !! (Key,  3. Feb 1999, 16:28:43):
~#! rn=Tilly rt=918059264 rg=d.inseln
~#! tid=918056150
Gute Idee :)
Einen der einen ruebertraegt uebers grosse Wasser :)

Key

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



Re^5: Neu - Eroeffnung !! (Alpha,  3. Feb 1999, 16:29:25):
~#! rn=Key rt=918059323 rg=d.inseln
~#! tid=918056150
ich melde mich freiwillig.
Alpha.

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



Re: Neu - Eroeffnung !! (Jehova,  3. Feb 1999, 18:19:15):
~#! rn=Tilly rt=918056150 rg=d.inseln
~#! tid=918056150
Ob die Krankenkasse die Kosten uebernimmt ?

J*

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



Re: Re: Neu - Eroeffnung !! (Asmodis,  4. Feb 1999, 21:57:36):
~#! rn=Jehova rt=918065955 rg=d.inseln
~#! tid=918056150
Wie waers mit einem Zeppelin, der von Port Vain zur Feuerinsel fliegt ? oder
ein Sehertor? Ich bin ja auch nicht mehr so gut zu Fuss :-)

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



Re^3: Neu - Eroeffnung !! (Teddy,  4. Feb 1999, 21:57:57):
~#! rn=Asmodis rt=918165456 rg=d.inseln
~#! tid=918056150
Also streng genommen gibts da nen Sehertor ;-)

Teddy

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



Re^4: Neu - Eroeffnung !! (Smeagol,  4. Feb 1999, 21:58:16):
~#! rn=Teddy rt=918165477 rg=d.inseln
~#! tid=918056150
aber SEHR streng ...:-)

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



Re^5: Neu - Eroeffnung !! (Teddy,  4. Feb 1999, 21:58:46):
~#! rn=Smeagol rt=918165496 rg=d.inseln
~#! tid=918056150
Noe, gibt 2 Methoden da ueber nen Sehertor hinzukommen ;)

Teddy

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



Re^6: Neu - Eroeffnung !! (Alpha,  4. Feb 1999, 22:12:42):
~#! rn=Teddy rt=918165526 rg=d.inseln
~#! tid=918056150
Auffer Feuerinsel gibbet Portal - is mir noi...wo denn? Die naechsten Portale
sind doch in PV un auffer Maggie-Insel...aber den Weg durch Vulkane oda mits
Schiffen Rentnern zuzumuten - nene..die fallen noch vonna Reeling oda inne
Lava - da koennen die ja nich mal bestattet werden - und der oertliche
Bestatter wird arbeitslos. Lasst die Rentner friedlich im Bette dahingehen und
sorgt fuer Arbeit beim Undertaker...
Alpha..

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



Re^3: Neu - Eroeffnung !! (Catweazle,  5. Feb 1999, 10:15:35):
~#! rn=Asmodis rt=918165456 rg=d.inseln
~#! tid=918056150
Apropos Zeppelin....

Catweazle, zu Boing rueberschielend :)

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



Re^4: Neu - Eroeffnung !! (Boing,  5. Feb 1999, 10:18:15):
~#! rn=Catweazle rt=918209735 rg=d.inseln
~#! tid=918056150
Urghs ... da war ja noch was ... *schluck*
  Boing

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



Re^5: Neu - Eroeffnung !! (Asmodis,  5. Feb 1999, 20:05:35):
~#! rn=Boing rt=918209895 rg=d.inseln
~#! tid=918056150
hehe, wieder an die Arbeit erinnert :-)

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



Re^6: Neu - Eroeffnung !! (Wurzel,  8. Feb 1999, 17:57:23):
~#! rn=Asmodis rt=918245135 rg=d.inseln
~#! tid=918056150
ein zeppelin zur feuerinsel? aber nur echt mit wasserstofffuellung :)

wurzel

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



para-magieinsel (Bierchen, 13. Jun 1999, 05:36:19):
Hiho,
ich bitte euch, die para-magieinsel bis zu einer entwarnung zu meiden. es gibt
leichte master-probleme und bierchen hat sich daher entschlossen, 'alte', aber
stabile master zu benutzen, sprich: es finden umbauarbeiten statt, die
jegliches p* entfernen.
     - Bierchen -

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



Re: para-magieinsel (Bierchen, 13. Jun 1999, 05:39:13):
~#! rn=Bierchen rt=929244979 rg=d.inseln
~#! tid=929244979
uhi, fast vergessen,
vielen dank an shade, der mich darauf aufmerksam gemacht hat, nein, ich
ignoriere ihn deshalb nicht :)

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



Re: para-magieinsel (Bierchen, 13. Jun 1999, 17:42:10):
~#! rn=Bierchen rt=929244979 rg=d.inseln
~#! tid=929244979
okay,
sollte jetzt wieder alles richtig laufen.
gruss,
   - Bierchen -

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



Seher-Laden (Tilly, 10. Aug 1999, 21:19:28):
Moin moin,

ich habe vor einigen Tagen die Klagen eines Sehers vernommen, der sich
darueber beklagte, dass der Seherladen keine neue Sachen mehr verkaufen
wuerde. Dies war Anlass genug, ihn um ein weiteres Objekt zu bestuecken,
welches Ihr nun kaeuflich erwerben koennt.

Ein dickes 'DANKE' geht an Rikus.
Ideen und Anregungen fuer weiterer Neuerungen sind willkommen.

 - Tilly ruft: Kauft Grabsteine! -

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



Re: Seher-Laden (Morgoth, 11. Aug 1999, 06:05:52):
~#! rn=Tilly rt=934319968 rg=d.inseln
~#! tid=934319968
Hey, kann man damit genausoviel Scheiss machen, wie mit Rochus' Sarg?? ;-))

M*

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



Piratengilde auf Tortuga (Kernbeisser, 30. Okt 1999, 23:01:53):
~#! on=Kernbeisser ot=941317129 og=d.dschungel
Ist das nur eine Pseudogilde, oder hat die mal existiert?

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



Re: Piratengilde auf Tortuga (Goofy, 31. Okt 1999, 15:48:32):
~#! rn=Kernbeisser rt=941317313 rg=d.inseln
~#! tid=941317313
Die ist seit Jahren (na mindestens seit einem) im Test und
erinnert mich irgendwie an Taramis...
Goofy, selber gespannt auf ne kompetentere Antwort

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



uuupss.. (Wim,  1. Nov 1999, 16:21:37):
Durch ein kleines Malheur sind einige Artikel aus der Modeboutique im Inventar
aeh... verschuett gegangen.
Da es aber durchweg preisuenstige Artikel waren, moege man (Frau?) mir das
nachsehen.


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



Achtung Aenderung! :-) (Tilly,  3. Nov 1999, 03:18:19):
Moin moin,

auf Anfrage und Antrag eines nicht naeher genannten Gremiums gibt es zwei
kleine Aenderungen bei dem Stirnreif und dem Zynh auf Toeters Insel. Wer
nicht weiss wovon ich rede, hoert einfach weg.

Fuer alle anderen: Der Reif wird wohl nur noch lokal nutzbar sein, das
                   Zynh hat nun eine innigere Verbundenheit mit demjenigen,
                   vom dem es Ihr Euch holt.

Dies wird wohl zum Teil schon vor Reboot / Crash Auswirkungen zeigen.

Gruss,
           - Tilly -

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



Re: Achtung Aenderung! :-) (Wurzel,  4. Nov 1999, 20:34:18):
~#! rn=Tilly rt=941595499 rg=d.inseln
~#! tid=941595499
bist du jetzt auch noch unter die propheten gegangen? oder hast du den crash
geplant hervorgerufen?

wurzel

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



Runenstab (Tiamak, 20. Mar 2000, 20:57:55):
Hiho!

Der Runenstab funktioniert ab sofort wieder richtig. Allen Spielern, die
innerhalb des letzten halben Jahres oder so neue Runen bekommen haben, kann
ich nur empfehlen, eine weitere Rune zu schnitzen, bevor sie ihren Stab
verbummeln. ;-)

Wer seinen Stab vorher schon verloren hatte ... gehe direkt auf Start. Gehe
nicht ueber Los. Ziehe keine bekannten Runen ein.

Tiamak

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



Re: Runenstab (Deepblue, 21. Mar 2000, 08:24:40):
~#! rn=Tiamak rt=953582275 rg=d.inseln
~#! tid=953582275
>Wer seinen Stab vorher schon verloren hatte ... gehe direkt auf Start.Gehe
>nicht ueber Los. Ziehe keine bekannten Runen ein.

Muss man das verstehen?

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



Re: Re: Runenstab (Rardian, 21. Mar 2000, 12:05:07):
~#! rn=Deepblue rt=953623480 rg=d.inseln
~#! tid=953582275
Ich glaube, Tia* meinte, dass Du die Ar***-karte hast, wenn Du Deinen
Runenstab zuvor verloren hast...

Rar.

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



Re^3: Runenstab (Tiamak, 21. Mar 2000, 13:43:31):
~#! rn=Rardian rt=953636707 rg=d.inseln
~#! tid=953582275
Korrekt, genau das meinte ich.

Falls jemand von den Betroffenen zufaellig einen Eintrag auf der Tafel beim
Wirt vorweisen kann, ist es allerdings moeglich, die Runen per Hand wieder zu
restaurieren. 

Tiamak

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



Re^4: Runenstab (Lanfear, 25. Mar 2000, 01:02:45):
~#! rn=Tiamak rt=953642611 rg=d.inseln
~#! tid=953582275
Nur mal so fuer die Dummen...
Ich dachte immer, der Runenstab repraesentiert die anzahl der gefundenen
FPs... wenn das so ist, wo ist denn das Problem nachzusehen wiviele FPs der
betreffende Spieler hat und im die entsprechenden Runen zu geben ?

Lanfear

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



Re^5: Runenstab (Nevok, 25. Mar 2000, 01:06:47):
~#! rn=Lanfear rt=953942565 rg=d.inseln
~#! tid=953582275
meines Wissens gabs da auch noch Symbole der Macht, die wohl FP unabhaengig
sind....aber wissen tu ich das genau auch net, als ich da genauer nachschauen
wollte hab ich dummerweise den stab in den waffenguertel von morgoth gepackt
gehabt....puff weg war er....und seither hab ich net mehr bock gehabt da
irgendwas mit zu machen ausser den wiederbeschaffenen stab mit den runen
auszustatten 

Nevok, der fuer hinweise mit diesen Machtdingern recht dankbar waere
((

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



Re^5: Runenstab (Tiamak, 25. Mar 2000, 19:43:27):
~#! rn=Lanfear rt=953942565 rg=d.inseln
~#! tid=953582275
Wenn Toeter den Runenstab als automatische FP-Anzeige gewollt haette, haette
er sich den ganzen Schnickschnack drumherum mit Sequenzen und Schnitzen etc.
wohl gespart.

Hat er aber nicht.

Tiamak. Wollte am Konzept selber nichts aendern.

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



Re^5: Runenstab (Jamalski,  4. Apr 2000, 19:03:47):
~#! rn=Lanfear rt=953942565 rg=d.inseln
~#! tid=953582275
Weil man mehr FPs, als dazugehoerende Runen besitzen kann?!

= /world jamal

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



Ueberraschenderweise ... (Bierchen, 14. Mai 2000, 19:14:11):
... hat sich Rhetra, der Gott der Ghoule unter Feuerinsel, entschlossen,
wieder Besucher zu empfangen. Ob damit doch irgendwem ein Gefallen getan
ist, sei dahingestellt.

Wie dem auch sei, ich denke mal es ist fuer jeden was dabei.

 - Tilly -

p.s.: Das Bierchen als Autor genannt wird ist nicht nur Zufall oder
      Absicht sondern auch nicht zu aendern  :)

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



Obacht :-) (Tilly,  2. Jul 2000, 17:19:41):
Ich habe die Tage noch was feines gefunden, das ich gleich Rhetra
zugesteckt habe. Vielleicht kann der/die ein oder andere von Euch
etwas damit anfangen.

Gruss,
                   - Tilly -

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



Rollstuhl (Tilly, 19. Jul 2000, 21:35:46):
Moin moin,
ich habe heute eine Kleinigkeit an dem Rolli geaendert. Sollte es zu Problemen
kommen, teilt mir diese bitte (per Mail) mit.

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



Re: Rollstuhl (Liara, 19. Jul 2000, 22:27:46):
~#! rn=Tilly rt=964035346 rg=d.inseln
~#! tid=964035346
Hm, is das ein Unfall, wenn Dieder mit der Kiste ueber die Klippen fliegt?
;-))

Liara, Zwergenzauberine, sucht Ausreden

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



Re: Re: Rollstuhl (Dieder, 19. Jul 2000, 23:18:14):
~#! rn=Liara rt=964038466 rg=d.inseln
~#! tid=964035346
wehe du willst dem armen Oppa was boeses... :=)

Dieder

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



Piet braucht Hilfe (Tilly, 23. Jul 2000, 14:22:32):
Moin moin!

Piet bat mich, doch einige mutige Leute zu finden, die sich bereit
erklaeren, ihm etwas wieder zubringen. Was das ist, verraet er auf
Anfrage selber. Es gibt sogar eine kleine Belohnung glaube ich ...

Gruss und frohes Ausfragen,
                                   - Tilly -

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



Re: Piet braucht Hilfe (Dieder, 23. Jul 2000, 16:55:20):
~#! rn=Tilly rt=964354952 rg=d.inseln
~#! tid=964354952
Wer is Piet? :)

Dieder, Wurst aus Leidenschaft :)

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



Feuerinsel (Tilly, 24. Jul 2000, 21:31:43):
Ahoi!

Aufgrund kleinerer Umbauarbeiten ist es auf der Feuerinsel zu zwei
unerheblichen Aenderungen gekommen, die ich hier nur deswegen poste,
da ich Langeweile hab.

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



Re: Feuerinsel (Tiamak, 24. Jul 2000, 21:32:47):
~#! rn=Tilly rt=964467103 rg=d.inseln
~#! tid=964467103
Stell Dir vor, wie die Spieler wieder geschrien haetten, wenn Du *nichts*
davon geschrieben haettest!


Tiamak denkt . o O(nur gut, dass Tilly ab und zu Langeweile hat)

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



Re: Re: Feuerinsel (Paracelsus, 24. Jul 2000, 21:34:56):
~#! rn=Tiamak rt=964467167 rg=d.inseln
~#! tid=964467103
Ach was, die schreien nicht. Ich schreib auch nicht jede Aenderung die
ich mache in die MPA. ]:->

Paracelsus.

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



Re^3: Feuerinsel (Liara, 24. Jul 2000, 21:36:40):
~#! rn=Paracelsus rt=964467296 rg=d.inseln
~#! tid=964467103
Bekommen Mags im Moment irgendwie eine Verguenstigung auf ]:->? ;-)

Liara, Zwergenzauberine

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



Re^4: Feuerinsel (Paracelsus, 24. Jul 2000, 21:37:30):
~#! rn=Liara rt=964467400 rg=d.inseln
~#! tid=964467103
Nein - naja, zumindest nicht alle.

Paracelsus.

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



Re^5: Feuerinsel (Liara, 24. Jul 2000, 21:38:22):
~#! rn=Paracelsus rt=964467450 rg=d.inseln
~#! tid=964467103
Ok, Erzmagier. ;-)))

Liara, Zwergenzauberine

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



Re^6: Feuerinsel (Grimmborn, 24. Jul 2000, 21:44:05):
~#! rn=Liara rt=964467502 rg=d.inseln
~#! tid=964467103
In Erinnerung an einen Freund, der ueber 230 Tage nicht mehr da war (was ist
eigentlich aus ihm geworden?): 
=:)

Grimmborn der Atheist

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



Re^7: Feuerinsel (Acrimon, 24. Jul 2000, 21:56:55):
~#! rn=Grimmborn rt=964467845 rg=d.inseln
~#! tid=964467103
Vielleicht hat er das Handtuch geworfen :-)

Acrimon

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



Re: Feuerinsel (Gnome, 26. Jul 2000, 02:13:34):
~#! rn=Tilly rt=964467103 rg=d.inseln
~#! tid=964467103
aehem.
du _kannst_ gar keine langeweile haben.

gnOme deutet dezent in richtung toeters insel... :)

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



Toeters Insel (Tilly,  1. Okt 2000, 01:43:49):
Moin moin,

hab in den Nebelwaeldern auf Akhar Nth'tar eine kleine Aenderung bei
zwei Wegen vorgenommen. Wundert Euch also nicht :-)

Hat sich noch was geaendert, aber das merkt ihr wahrscheinlich schon ...

 - Tilly - 

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



Nur fuer Seher interessant :-) (Tilly, 15. Jan 2001, 22:51:02):
Moin moin auch,

Portal 30 ist wieder voll funktionsfaehig. Es wurde natuerlich umgestellt,
deswegen sind sicher einige Wege von oder zur Feuerinsel zu ueberarbeiten.

Aber alles in allem ist das ein sehr geringer Aufwand :-)

Achja, Neu-Seher werden um etwas Geduld gebeten. Falls sie diese nicht auf-
bringen: aergert Euch.

Sucht schoen,
                    - Tilly - 

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



Re: Nur fuer Seher interessant :-) (Anacrion, 18. Jan 2001, 04:39:37):
~#! rn=Tilly rt=979595462 rg=d.inseln
~#! tid=979595462
Super ...

ist halt dumm, dass ich nu doch wieder nen Fuss auf die Rieseninsel setzen
muss ..

Koennte aber sein, dass da jetzt evtl. mal ein paar Raeume entstehen ausser
den 6 , die schon laenger da sind :)

Anac* freut sich schon

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



Re: Re: Nur fuer Seher interessant :-) (Solmyr, 18. Jan 2001, 09:09:08):
~#! rn=Anacrion rt=979789177 rg=d.inseln
~#! tid=979595462
Armitage und meiner Einer sind daran schon gut beschaeftigt. Bin
grad am Proggen, Plaene liegen die Woche in meinem home...also falls
es jemanden interessiert ;=)

Subl

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



Re: Nur fuer Seher interessant :-) (Tilly, 31. Jan 2001, 13:08:34):
~#! rn=Tilly rt=979595462 rg=d.inseln
~#! tid=979595462
Ahoi,

Portal 30 kann ab sofort auch wieder von Neu-Sehern bzw solchen, die
es noch nicht haben, wieder gefunden werden.

 - Tilly - 

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



Fast vergessen, aber eben nur fast :) (Tilly, 22. Mar 2001, 15:22:06):
Moin moin,

die Perlen fuer den Samtpanzer sind nun wieder alle im MG verstreut :-)

Frohes suchen,
                      - Tilly - 

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



Re: Fast vergessen, aber eben nur fast :) (Hight, 22. Mar 2001, 17:43:30):
~#! rn=Tilly rt=985270926 rg=d.inseln
~#! tid=985270926
hat den je einer ernsthaft benutzt ?

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



Re: Re: Fast vergessen, aber eben nur fast :) (Gorog, 22. Mar 2001, 18:56:47):
~#! rn=Hight rt=985279410 rg=d.inseln
~#! tid=985270926
Ja

Gorog kurz und kanpp

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



Hilferuf! (Hoehlengnom, 16. Aug 2001, 22:03:10):

Hilfe, was ist das denn hier? Hoert mich jemand? Oh je! :( Wohl eher nicht.
Ich schreib' hier trotzdem mal was rein - vielleicht liest das ja doch jemand,
der (oder die) mutig genug ist, sich in diese finsteren Tiefen zu wagen.

Ach ja ... Ich sitze hier fest! Verfolgt von brutalen Grauzwergen und
finsteren Nachtelfen komme ich hier alleine nicht mehr weg. Zwar habe ich
schon einige mutige Abenteurer hier herumlaufen sehen die sich entweder als
Cinderella, Lurchi, Talona, Varlarion oder Zephyr ausgaben, aber diese konnten
mir bis auf eine Ausnahme bisher nicht zur vollstaendigen Flucht verhelfen.
Aber ich gebe die Hoffnung nicht auf ...

Falls jemand den unterirdischen See im ghoulverseuchten Hoehlensystem der
Feuerinsel zu finden in der Lage ist ...   so moege er (oder sie :) doch an
mich denken!


Ein armer kleiner Hoehlengnom


PS: Ich soll noch Papa (Rabenvater! :) Tilly, 'n paar E's und R's gruessen,
die wohl alle mal Arbeit mit mir hatten. :)

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



Re: Hilferuf! (Tilly, 16. Aug 2001, 22:06:59):
~#! rn=Hoehlengnom rt=997992190 rg=d.inseln
~#! tid=997992190
Den 'Rabenvater' dementiere ich heftigst!

Hoffentlich hilft Dir keiner .... verdient haettest Du es >:)


 - Tilly - 


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



Para-Piratenschiff (Tilly, 23. Nov 2001, 13:07:39):
Moin moin!

Nachdem das Para-Piratenschiff durch eine etwas un-
gluecklich verlaufende Aufraeumaktion eines unge-
nannten Magiers abhanden kam, ist es nun wieder
aufgetaucht.

Dank an Zwirion, der mir das Fehlen des Schiffes 
meldete. Ich haets so schnell ganz sicher nicht bemerkt.

 - Tilly - 


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



Re: Para-Piratenschiff (Gor, 23. Nov 2001, 16:42:33):
~#! rn=Tilly rt=1006517259 rg=d.inseln
~#! tid=1006517259
Ich finde, dass man den Namen erwaehnen sollte. }:-)

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



Seltsame Dinge (Humni,  5. Jan 2002, 17:21:12):
Huhu,

wie mir berichtet wurde haben ein paar seltsame Moenche mit einer Barke nun -
sehr zum Verdruss der wackeren Trves - eine weitere Haltestelle.

Viel Spass.

Humni

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



Tod (Elizabeth,  5. Jan 2002, 18:43:26):
ok, ich bin also die erste die auf der insel gestorben ist, krieg ich dafuer
was?
Und was noch erwaehnt werden sollte, es war von innerhalb 20 minuten..
wenn das mal keine leistung ist ;)
.s
,

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



Re: Tod (Vanion,  5. Jan 2002, 18:45:44):
~#! rn=Elizabeth rt=1010252606 rg=d.inseln
~#! tid=1010252606
Der letzte kriegt was.

-> schmarrn
V*

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



Re: Re: Tod (Morgoth,  5. Jan 2002, 18:46:14):
~#! rn=Vanion rt=1010252744 rg=d.inseln
~#! tid=1010252606
OK, abhaengen...dann gibts den Preis !

M*

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



Re^3: Tod (Elberet,  5. Jan 2002, 18:46:38):
~#! rn=Morgoth rt=1010252774 rg=d.inseln
~#! tid=1010252606
ich geh mal eben in den Katas sterben :-)

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



Re^4: Tod (Elizabeth,  5. Jan 2002, 18:47:12):
~#! rn=Elberet rt=1010252798 rg=d.inseln
~#! tid=1010252606
nicht abhaengen, nur irgendwie...rueckgaengig machen da ich die erste
bin..oder mir ein paar fps schenken oder so 8)
.s
igh

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



Re^4: Tod (Morgoth,  5. Jan 2002, 18:47:46):
~#! rn=Elberet rt=1010252798 rg=d.inseln
~#! tid=1010252606
Hey, kein Problem. Wenn Du nicht mehr reinwillst, kann ich die fuer Dich
sperren, musst Du mir nur sagen. Dafuer schmeiss ich sogar mal wieder nen
Editor an.

M*

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



Re^5: Tod (Elberet,  5. Jan 2002, 18:48:22):
~#! rn=Morgoth rt=1010252866 rg=d.inseln
~#! tid=1010252606
ich hab nicht gesagt, dass ich nimmer reinwollte, im gegenteil, ich wollt doch
gerade vorbeischauen ;)

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



Re^6: Tod (Mupfel,  5. Jan 2002, 18:49:40):
~#! rn=Elberet rt=1010252902 rg=d.inseln
~#! tid=1010252606
Vielleicht solltest Du einbauen, dass er nicht mehr *raus* kann, Morgoth? ;)

-mupfel-

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



Re^7: Tod (Morgoth,  5. Jan 2002, 18:50:07):
~#! rn=Mupfel rt=1010252980 rg=d.inseln
~#! tid=1010252606
Du meinst nur noch den Exit "Lars" freigeben fuer ihn ? :))

M*

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



Re^8: Tod (Zook,  5. Jan 2002, 18:50:35):
~#! rn=Morgoth rt=1010253007 rg=d.inseln
~#! tid=1010252606
Du muesstest dann nur noch ne passende Stelle zum Beten fuer ihn einrichten,
damit er sich wieder entgeistern kann.

Zook.

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



Re^8: Tod (Elberet,  5. Jan 2002, 18:50:41):
~#! rn=Morgoth rt=1010253007 rg=d.inseln
~#! tid=1010252606
Lars ist mein bester Freund ;)

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



Re^9: Tod (Elberet,  5. Jan 2002, 18:51:03):
~#! rn=Elberet rt=1010253041 rg=d.inseln
~#! tid=1010252606
es gibt doch in den Katas nen Altar ;)

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



Re^10: Tod (Zook,  5. Jan 2002, 18:51:27):
~#! rn=Elberet rt=1010253063 rg=d.inseln
~#! tid=1010252606
Na, wenn man sich da entgeistern kann, dann ist ja alles klar.

Zook.

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



Re^11: Tod (Elberet,  5. Jan 2002, 18:51:43):
~#! rn=Zook rt=1010253087 rg=d.inseln
~#! tid=1010252606
btw was gibts fuer re100? ;)

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



Re^12: Tod (Zook,  5. Jan 2002, 18:52:05):
~#! rn=Elberet rt=1010253103 rg=d.inseln
~#! tid=1010252606
Einen Spezial-Zombievirus-Tod?

Zook.

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



Re^13: Tod (Elberet,  5. Jan 2002, 18:52:17):
~#! rn=Zook rt=1010253125 rg=d.inseln
~#! tid=1010252606
geil, will ich ;)

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



Re^14: Tod (Mupfel,  5. Jan 2002, 19:00:06):
~#! rn=Elberet rt=1010253137 rg=d.inseln
~#! tid=1010252606
das ist der megaschmarrn-virus: man antwortet immer auf den letzten artikel...

-mupfel-

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



Re^15: Tod (Elizabeth,  5. Jan 2002, 19:00:44):
~#! rn=Mupfel rt=1010253606 rg=d.inseln
~#! tid=1010252606
ich geb eine tuete gummibaerchen fuer re 123

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



Re^16: Tod (Elberet,  5. Jan 2002, 19:01:26):
~#! rn=Elizabeth rt=1010253644 rg=d.inseln
~#! tid=1010252606
dann mal los ;)

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



Re^15: Tod (Noki,  5. Jan 2002, 19:02:24):
~#! rn=Mupfel rt=1010253606 rg=d.inseln
~#! tid=1010252606
Hast Du ihn etwas gerade? ;-)

noki

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



Re^17: Tod (Zook,  5. Jan 2002, 19:03:36):
~#! rn=Elberet rt=1010253686 rg=d.inseln
~#! tid=1010252606
Neee... Ihr Abtruennigen. Elizabeth, setz die Tuete lieber fuer ein
Bambi in "Megaschmarrn" aus ;)

Zook.

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



Re^18: Tod (Elizabeth,  5. Jan 2002, 19:03:54):
~#! rn=Zook rt=1010253816 rg=d.inseln
~#! tid=1010252606
das hab ich ja abbestellt ;) *G*

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



Re^19: Tod (Zook,  5. Jan 2002, 19:05:10):
~#! rn=Elizabeth rt=1010253834 rg=d.inseln
~#! tid=1010252606
Fehler, grosser Fehler! Zook.

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



Re^20: Tod (Elizabeth,  5. Jan 2002, 19:05:24):
~#! rn=Zook rt=1010253910 rg=d.inseln
~#! tid=1010252606
wieso ? was ist daran ein fehler? .. megaschmarrn stinkt.

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



Re^21: Tod (Cuchullin,  5. Jan 2002, 19:31:16):
~#! rn=Elizabeth rt=1010253924 rg=d.inseln
~#! tid=1010252606
Noch 102.

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



Re^22: Tod (Silvana,  5. Jan 2002, 22:41:35):
~#! rn=Cuchullin rt=1010255476 rg=d.inseln
~#! tid=1010252606
Die spinnen, die Mudder...
Was macht das eigentlich in d.inseln? Gings nicht grad noch um Katakomben?

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



Re^18: Tod (Bambi,  5. Jan 2002, 23:00:27):
~#! rn=Zook rt=1010253816 rg=d.inseln
~#! tid=1010252606
Ich werde nicht in megaschmarrn schreiben. Nicht in diesem Thread und in
keinem anderen.

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



Re^19: Tod (Amaryllis,  5. Jan 2002, 23:04:18):
~#! rn=Bambi rt=1010268027 rg=d.inseln
~#! tid=1010252606
Hast Du durchaus schon - die waren nur in der falschen Rubrik :-)

scnr,
Ama*, in Deckung gehend :)

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



Re^20: Tod (Silvana,  5. Jan 2002, 23:15:27):
~#! rn=Amaryllis rt=1010268258 rg=d.inseln
~#! tid=1010252606
Koenntet Ihr wenigstens auf den letzten Artikel im Thread antworten? Keine
Disziplin, also wirklich!

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



Re^21: Tod (Amaryllis,  5. Jan 2002, 23:17:09):
~#! rn=Silvana rt=1010268927 rg=d.inseln
~#! tid=1010252606
Halt dei Babbn (c) Amaryllis

Ama*, heute mal respektlos :-)

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



Re^22: Tod (Cuchullin,  5. Jan 2002, 23:19:20):
~#! rn=Amaryllis rt=1010269029 rg=d.inseln
~#! tid=1010252606
Das ist das, was Megaschmarrnschreiber von gemeinem Poepel wie Dir,
Amaryllis, abhebt: Megaschmarrner haben Kultur. :)

Cuch

PS: Ich weiss. Aber ich konnte mich zwischen Poebel und Popel nicht
    entscheiden... ;o)


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



Re^23: Tod (Amaryllis,  5. Jan 2002, 23:22:56):
~#! rn=Cuchullin rt=1010269160 rg=d.inseln
~#! tid=1010252606
Soso, jetzt wirds aber beleidigend...
Dabei habe ich doch alles richtig gemacht, oder? Zumindest auf den letzten
Artikel geantwortet - aber ja, zum Megaschmarrer fehlt mir die Erfahrung, hab
auch die Gruppe nicht abonniert...

Ama*, den Ironie-Schalter wieder nach unten legend.

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



Re^24: Tod (Varlarion,  5. Jan 2002, 23:24:02):
~#! rn=Amaryllis rt=1010269376 rg=d.inseln
~#! tid=1010252606
Hach, das entwickelt sich hier wieder zu so einem richtig schoenen
"zuruecklehnen-und-Popcorn-futtern"-Thread.

Varl*, das Popcorn suchend

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



Re^24: Tod (Cuchullin,  5. Jan 2002, 23:24:06):
~#! rn=Amaryllis rt=1010269376 rg=d.inseln
~#! tid=1010252606
Oh, habe ich mein "heute mal respektlos ;)" vergessen? Verdammt ;)

Cuchullin (irgendwasharteswerfed (c) Isi)

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



Re^25: Tod (Grimmborn,  5. Jan 2002, 23:34:44):
~#! rn=Cuchullin rt=1010269446 rg=d.inseln
~#! tid=1010252606
Wusste gar nicht dass Isis Mousse schon versteinert zu sein pflegt?

GdA

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



Werwolf (Roland,  6. Jan 2002, 18:53:51):
Wann wird der reise befehl eingestllt fuer die insel .. ich verpass das
aussteigen immer :)

MfG - Der rasende Roland

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



Re^26: Tod (Zarniya,  7. Jan 2002, 09:03:13):
~#! rn=Grimmborn rt=1010270084 rg=d.inseln
~#! tid=1010252606
Zook, hat da Elberet nicht in Artikel 17 um einen Tod gebeten? Du hast es
sogar schriftlich... oder schick Grimmborn vor :)


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



Werwoelfe (Humni, 21. Mar 2002, 15:50:31):
Huhu,

nur ums anzukuendigen: Ich habe vor ein wenig an der entstehenden Werwolfgilde
herumzuspielen. Davon sind evtl. auch die Gilden-NPCs betroffen. Also wundert
Euch bitte nicht, wenn deren Kampfkraft in naechster Zeit ein wenig schwankt.

Humni

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



Buesche (Humni, 27. Mar 2002, 17:11:49):
..haben die Tendenz, von marodierenden Horden
eingeschlagen/getreten/gestochen/zerschnitten oder sonstwie kaputt gemacht zu
werden.

Machmal auch von mir.

Humni

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



Rieseninsel (Twingi, 10. Apr 2002, 20:00:00):
Ein Fels stuerzte ins Wasser ;-)
Die Rieseninsel scheint doch nicht so unbelebt zu sein, wie immer angenommen
wurde. Ein paar gruendliche Forscher haben, nach eingehendem Studium des
Gesteines und der Vegetation, Leben auf diesem einst oeden Eiland gefunden.

Viel Erfolg beim F****** ;-)

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



Artikel :) (Nyx, 15. Apr 2002, 11:54:16):
Der gute, alte Wanderer hat seinen Wortschatz
doch tatsaechlich erweitert.

Fragt ihn doch man nach den Lemmingen :)

 - La Nyx -


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



seherhaus (Tyrion, 30. Apr 2002, 06:06:35):
kann mir wer sagen, ob bei der sherhausbeschreibung was geaendert worden ist?
oder warum ich in meiner hoehle auf aurora keine befehle/aktionen mehr aendern
kann? fuer hinweise/hilfen sehr dankbar...

tyrion ;)

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



seherhaus2 (Tyrion, 30. Apr 2002, 06:08:36):
aehm, ... falls es hilft... da kommt ne meldung: kein befehl zum beschreiben
uebrig (oder s.ae.) ;

tyrion

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



Wiederholung und Neuanmahung ;-) (Humni, 11. Mai 2002, 22:42:12):
Da gerade einige Testies der Werwolfgilde herumlaufen, da selbige noch recht
klein und frustriert sind, wenn ihre Spells nix bringen, und ich um die bei
Lauene zu halten permanent die Gilde aufwerte schlaegt sich das auch auf die
Werwoelfe nieder, die da rumstehen. 

Ansonsten wirds dafuer in naechster Zeit noch ein paar Aenderungen geben. Die
NPCs schwanken also sehr stark. Wenn frueher die 3 NPCs von nem Zaubi mit
Vorsicht 30 gestanden werden konnten kann es sein, dass das nun nicht mehr
geht.

So, ich wollte nur gewarnt haben.

Humni

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



Kurze Information ... (Armitage, 25. Mai 2002, 01:13:56):
In den Tiefen der Unterwelt unter der Insel des Feuers hat sich tatsaechlich
noch etwas veraendert! Zwei Dinge sind  neu entstanden bzw. sind endlich so,
wie sie urspruenglich sein sollten. Eine andere Sache wurde wegen der zu hohen
laufenden Kosten und Beschwerden des Vermieters erst einmal auf Eis gelegt.

Insgesamt ist's aber nichts weltbewegendes. :)

Fuer naehere Hinweise bitte den voellig ausgeglichenen Hobbit befragen, der
dort sicher herumwuselt und bald besser Bescheid  weiss, als ich. ;)

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



Am Rande seis kurz erwaehnt ... (Tilly, 31. Mai 2002, 11:53:28):
So, nun ist es also wirklich passiert.

Damit  gerechnet  wurde  schon  eine  geraume Weile ....

Der Vulkan im Suedwesten der Feuerinsel ist ausgebrochen.


Durch die  starken Eruptionen  rasten Schockwellen durch
das  ansonsten so feste  Gestein, die es  schlussendlich
doch teilweise zum Einsturz brachten.


Eine  erste  Bestandsaufnahme  brachte nur  geringfuegige
Schaedigungen zu Tage. Doch den Wald hat es wohl ziemlich
stark  erwischt. Teile von ihm  wurden  verschuettet, die
komplette  Hoehlendecke  ist  eingestuerzt, so dass  sich
dort nun ein tiefes Tal befindet.


Ortskundige des dortigen Waldes werden nicht umhin kommen,
das Gebiet neu zu skizzieren. Die Inselverwaltung hat als
Ausgleich  dazu  im  Rahmen  der  Aufraeumarbeiten  eine
komplette  Renaturierung  und  Ueberarbeitung vorgenommen.

        - Tilly, im Auftrag der Inselverwaltung -

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



Lars gruesst. (Humni, 21. Jun 2002, 13:16:26):
Ihr solltet ihn zurueckgruessen. Jedenfalls dann, wenn ihr ihn trefft, was ich
hoffe, dass bald der Fall sein wird.

Jedenfalls kann man sich mittlerweile in eine gewisse Hoehle trauen. Wenn man
drin ist merkt man hoffentlich, warum man sich da so lange nicht reingetraut
hat. Hoffe ich. Weiss ich aber nicht.

Humni

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



Re: Lars gruesst. (Mupfel, 21. Jun 2002, 21:31:18):
~#! rn=Humni rt=1024658186 rg=d.inseln
~#! tid=1024658186
Och, also ich hab Lars das letzte Mal zur CeBIT getroffen ;) Was der jetzt in
irgendwelchen Hoehlen treibt weiss ich dann auch nicht...

-mupfel-

-mupfel-

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



Neues auf der Rieseninsel (Twingi, 10. Jul 2002, 20:32:52):
Und wieder ist auf der Rieseninsel ein kleiner Stein ins Wasser gefallen.

Die alten Raeume haben neidisch auf das schoene Hexendorf geblickt, und
energisch ein neues Kleidchen fuer sich selbst gefordert.
Der Forderung wurde nachgegeben.

Die Insel-Verwaltung

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



Paraversion Lemminge-Quest. (Bambi, 13. Jul 2002, 13:24:24):
Hi alle.
Nein, es gibt meines Wissens keine Para-Version der Lemming-Quest. Ich wollte
nur darauf hinweisen, dass man es bis auf weiteres unterlassen sollte, das
Gebiet der Lemming-Quest in einer Parallelwelt zu betreten, weil man ansonsten
ohne Magier (oder _eigenem_ Fluchtteleport) nicht wieder rauskommt.
Die betroffenen^hzustaendigen Magier werden informiert.

MfG, Bambi.

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



Re: Paraversion Lemminge-Quest. (Eldaron, 13. Jul 2002, 14:07:16):
~#! rn=Bambi rt=1026559464 rg=d.inseln
~#! tid=1026559464
Para2 darf man aber?

Eldaron, lachend.

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



Re: Paraversion Lemminge-Quest. (Gor, 13. Jul 2002, 21:09:49):
~#! rn=Bambi rt=1026559464 rg=d.inseln
~#! tid=1026559464
Oh weia, wieder mal ein Zeichen grenzenloser Inkompetenz.  Herzlichen
GLueckwunsch!

Gor schuettelt den kopf.

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



Schwerter (Humni, 27. Aug 2002, 12:22:23):
Huhu,

heilige Schwerter sollten auch dementsprechend gewuerdigt werden. 

Waffen des Guten
fuehren zum Bluten
Und den Boesewichtern
haun sie aus die Lichter.

Humni

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



Wer dies liest weiss, worum es geht (Tilly, 28. Sep 2002, 22:08:08):
Moin moin,

da hab ich mal wieder ein bisschen in altem, nicht angeschlossenem
Zeugs gekramt und tatsaechlich etwas gefunden, das ich vor langer
Zeit eigentlich ganz woanders anschliessen wollte. Naja, jetzt hats
eben die Feuerinsel erwischt :-)

 - Tilly -

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



Moenche machen Kurzurlaub... (Zook, 14. Okt 2002, 16:54:10):
Aufgrund der vielen anstrengenden Besuche von Abenteurern haben sich die
Moenche auf AnkDINGENS entschlossen, einen Kruzurlaub bis ca. morgen Abend
zu unternehmen. Ich hoffe, Ihr habt dafuer Verstaendnis, dass die armen
Kreaturen wirklich mal ein wenig Zeit fuer Kontemplation brauchen. 

Gruss, Zook.


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



Re: Moenche machen Kurzurlaub... (Vanion, 15. Okt 2002, 10:57:03):
~#! rn=Zook rt=1034607250 rg=d.inseln
~#! tid=1034607250
Was eine kleine Nackenmassage so alles ausmacht. Die Moenche sind wieder
erfrischt und munter. Der Kater von der Party (Sturmfreie Bude muss man
nutzen) is auch so langsam dahin.

Wie ueblich freuen sich die Moenche auf einen kleinen Besuch und einen netten
"Chat".

V*
PS: Danke fuers Testen an Katharin.

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



Re: Wer dies liest weiss, worum es geht (Tilly, 25. Okt 2002, 00:22:59):
~#! rn=Tilly rt=1033243688 rg=d.inseln
~#! tid=1033243688
Moin moin auch.

Ich hab noch ein bisschen in der Kiste gekramt und dabei
herausgekommen ist noch etwas fuer die Feuerinsel.

Wer Winfried kannte, wird sich nun freudig dorthin be-
geben. Ist auch was fuer Kleriker und Chaoten dabei :-)

Bisschen Vorsicht waere angebracht, habs zwar eingehend
getestet, aber man weiss ja nie ...

 - Tilly -

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



Neues aus Brimborium (Twingi, 20. Nov 2002, 21:59:13):
Sophie ist es zu Ohren gekommen, dass die meisten Spieler recht lieb gewesen
sind uebers Jahr. Daher haelt sie eine kleine Ueberaschung fuer die
Vorweihnachtszeit bereit. Besucht sie doch einfach einmal.

Die Inselverwaltung

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



Regionsmagier Inseln (Zook, 22. Jan 2003, 13:34:33):
Hallo zusammen,

Hate und Shakedbeer sind von ihren Posten als Regionsmagier in der Region
Inseln zurueckgetreten. Vielen Dank Euch zweien fuer Eure Mitarbeit!

Wargon steht als Regionsmagier fuer Bugfixes und kleinere Dinge zur
Verfuegung. Fuer Gebietsabnahme oder andere umfrangreiche Sachen wendet
Euch bis zur Ernennung eines weiteren Regionsmagiers bitte an mich.

Gruss, Zook.

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



Geruechte (Twingi, 31. Jan 2003, 09:41:33):
Es gibt Geruechte, dass Julius im Augenblick Tag und Nacht arbeitet, um den
Spielern, die nach dem Reboot den Scroll ihres Weihnachtsbaerchens vermissen
einen Ersatz anbieten zu koennen. Natuerlich auch allen anderen, die immer
schon einmal wissen wollten wie man sich als Baerchenbesitzer fuehlt ;-)

Die Oberhexe

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



Fundstueck (Miril, 16. Feb 2003, 18:24:22):
In den Ruinen der Akademie von Port Vain wurde eine alte Schriftrolle
gefunden. Ihr koennte sie ab sofort in einer Vitrine in meinem Turm
finden. Wehe, jemand schlaegt die Tueren ein ;-)
Miril

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



Die Erde bebt, das Meer brodelt ... (Mandragon, 28. Feb 2003, 14:55:14):

... und obwohl sie noch da sind, wo sie sind, haben Svolvaer und Titiwu ihre
Daseinsebene gewechselt. Das erkennt ihr daran, dass Spieler, die sich auf 
einer dieser Inseln befinden nun auch bei 'kwer region inseln' zu sehen sind.

Falls jemandem in diesem Zusammenhang ungewoehnliche Dinge auffallen, bitte
schickt einfach eine kurze Mail an mich. Denn auch, wenn wir alles Unternommen
haben, um Fehler auszuschliessen, koennen sie dennoch auftreten ;-)

Mandragon

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



Die Geisterwelt, Daemonen und andere Verfolger (Mandragon,  2. Mar 2003, 14:33:05):

Alle diejenigen, die schon mit dem Problem zu kaempfen hatten, dass die
dienstbaren Geister (?) sich nach einem Besuch z.B. bei 3 alten Damen in Luft
aufgeloest hatten und die ihnen gegebene Ausruestung gleich mit, duerfen ab
sofort aufatmen. 

Genannte Wesen bewachen nun brav den schlafenden Koerper ihres Herrn und
Meisters.

Sollten irgendwelche Nebenwirkungen auftreten, bitte mail an mich.

Ma*

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



Mutige Helden gesucht! (Twingi,  3. Mar 2003, 20:38:59):
Sophie, die liebe Zuckerfee, sucht die besten der Besten, die ihr mutig ihre
Dienste anbieten wollen.

Sie erwartet Euch in ihrem kleinen Laden.

Die Inselregierung

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



Re: Mutige Helden gesucht! (Ark,  3. Mar 2003, 20:43:42):
~#! rn=Twingi rt=1046720339 rg=d.inseln
~#! tid=1046720339
Sogar ich musste schockiert mit ansehen, wie sich unsere suesse kleine Hexe in
ein spielermordendes Monster verwandelte. Jof sei Dank, dass Ihr bei Warnungen
vorsichtig agiert. Maeh.


              *** ARK * the * Magnificent ***


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



Der Stempel ... (Mandragon,  5. Mar 2003, 14:08:59):

... kann jetzt alle Objekte bestempeln.

Dabei hat er aber verlernt, Ausdruecke zu stempeln, die nicht mit 'stempel_'
anfangen :(

Ma* (der sich die Logfiles mal angesehen hat ... )

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



Neues von der Zuckerfee (Twingi, 11. Mar 2003, 14:29:49):
Und wieder ist es mir gelungen einem der Magier sein Rezept fuer eine leckere
Suessigkeit zu entlocken.
Daher habe ich jetzt in meinem Laden wieder etwas Neues im Angebot.

Die liebe Zuckerfee

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



WARNUNG (Mandragon, 28. Mar 2003, 16:11:09):

Liebe Klosterbesucher!

Aufgrund einiger Bugfixes wurde die Repopulationsgeschwindigkeit der NPCS
unglaublich stark gesteigert.


i.A. Mandragon
(Klosterverwaltung)

P.S. Sind die Spieler platt wie Teller, war der Reset wieder schneller ....


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



... (Mandragon,  1. Apr 2003, 15:19:28):

... und es erschien vor Deinem Auge ein Symbol, das sich mit gleissender
Helligkeit in deinem Auge einbrannte....

RUMMS!

Ma*

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



Re: ... (Mandragon,  2. Apr 2003, 06:44:43):
~#! rn=Mandragon rt=1049203168 rg=d.inseln
~#! tid=1049203168

Tja. Wenn man auf das Datum guckt, dann haette es tatsaechlich sein
koennen, dass mein Artikel eine Ente war. War er aber nicht. In der
Tat hat besagtes RUMMS schon vor Jahren stattgefunden. Das Problem
ist nur, dass derzeit nur Kaempfer mit dem Zweig 'Runenkrieger' hin-
koennen. 

Ja wie? Runenkrieger? Das soll ja wohl ein Scherz sein? Kann sein ....

.... mehr demnaechst.

Ma*

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



Kloster mal wieder .... (Mandragon,  3. Apr 2003, 16:50:11):

Die magische unsichtbare Macht hat gelernt, auch in Pakete zu gucken.

Ma*

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



Kloster mal wieder .... (Mandragon,  7. Apr 2003, 09:13:23):
Die magische Kraft ist nun extrem magisch ..... 

... und weiterhin haben einige Moenche den Umgang mit ihren Waffen, der Ihnen
bisher durch Bugs verwehrt war, erlernt :o)

Ma*

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



Re: Kloster mal wieder .... (Muaddib,  7. Apr 2003, 23:01:18):
~#! rn=Mandragon rt=1049381411 rg=d.inseln
~#! tid=1049381411
hmpf.

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



Re: Re: Kloster mal wieder .... (Mandragon,  7. Apr 2003, 23:01:52):
~#! rn=Muaddib rt=1049749278 rg=d.inseln
~#! tid=1049381411
Wird noch schlimmer .... 

Ma* murmelt was von 'Spitze des Eisbergs'

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



Re^3: Kloster mal wieder .... (Muaddib,  7. Apr 2003, 23:02:26):
~#! rn=Mandragon rt=1049749312 rg=d.inseln
~#! tid=1049381411
War ja auch schon zu trivial das Ganze.

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



Re^4: Kloster mal wieder .... (Mandragon,  7. Apr 2003, 23:02:54):
~#! rn=Muaddib rt=1049749346 rg=d.inseln
~#! tid=1049381411
Jo. Die Moenche haben jetzt auch Tolle Meldungen auf -T ... :o)

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



Re^5: Kloster mal wieder .... (Muaddib,  7. Apr 2003, 23:18:11):
~#! rn=Mandragon rt=1049749374 rg=d.inseln
~#! tid=1049381411
Cool. Wenn ich nicht so muede waere, wuerde ich gleich sterben gehen :)

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



Re^6: Kloster mal wieder .... (Anatol,  8. Apr 2003, 12:27:44):
~#! rn=Muaddib rt=1049750291 rg=d.inseln
~#! tid=1049381411
Lachen sie wieder boese? *seufz* :)


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



Re^7: Kloster mal wieder .... (Mandragon,  8. Apr 2003, 15:13:45):
~#! rn=Anatol rt=1049797664 rg=d.inseln
~#! tid=1049381411
Definitiv :-))

Ma*

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



Warnung (Mandragon,  8. Apr 2003, 20:54:48):
Eine Axt tut jetzt, was sie soll. Das hat positive und negative Effekte.

Ma* (fleissig weiter debuggend)

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



Saufende Werwoelfe... (Humni, 23. Apr 2003, 14:11:30):
sind gar nicht so selten. Jetzt wohnt da auch einer auf einer gewissen Insel.

Nicht wichtig, aber sagen wollt ichs doch mal ;-)

Humni
PS: Auch hier koennen im Laufe der Zeit ein paar NPCs hinzukommen. Nur als
Vorwarnung.

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



Schiffe (Mandragon, 23. Apr 2003, 15:47:14):

Hallihallo,

dieser Artikel richtet sich vornehmlich an die kleineren unter Euch:

In der naechsten Zeit ist (leider) damit zu rechnen, dass in erhoehtem Masse
Schiffe stehen bleiben. Ich hoffe, im folgenden dafuer zu Sorgen, dass selbige
NICHT mehr stehen bleiben ....

Ma*

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



Ein paar Moenche .... (Mandragon,  6. Mai 2003, 12:03:02):

kaempfen jetzt wieder. 

Ma* (beteiligt sich bald mit 10% an Toeters Kills ;-) )

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



Eine Salbe ..... (Mandragon, 15. Mai 2003, 22:39:52):

ist eine Salbe und kein Blitzableiter.

Ma*

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



Kristallkugelquest (Mandragon, 22. Mai 2003, 14:07:00):

Die Kristallkugelquest wird naechste Woche temporaer nicht spielbar sein
wegen mittleren Erdbeben in der Region um Thorshavn.

Bitte passen sie Ihre Reiseplanung entsprechend an.


Die Reiseleitung (i.A. Mandragon)

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



Re: Kristallkugelquest (Mandragon, 26. Mai 2003, 09:17:37):
~#! rn=Mandragon rt=1053605220 rg=d.inseln
~#! tid=1053605220
Wegen schwerer Seebeben hat der Trawler nach Thorshavn seinen Betrieb einge-
stellt. Sollten sich noch Personen auf Thorshavn befinden, sollten diese
dringend einen Magier ihrer Wahl zwecks sicherem Ruecktransport konsultieren.

Die Reiseleitung (i.A. Mandragon)

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



Re: Re: Kristallkugelquest (Mandragon,  1. Jun 2003, 21:40:58):
~#! rn=Mandragon rt=1053933457 rg=d.inseln
~#! tid=1053605220

Die Seebeben sind vorbei und nach langer Bedenkzeit hat die Fischereigesell-
schaft Moulokin die Trawlerfahrten wieder aufgenommen.

Es empfiehlt sich, eine Erstbesichtigung jedoch noch um 1-2 Wochen zu ver-
schieben, da sich die Erforschung von Schloss Jarven dann auch wirklich lohnen
wird. Ab dann kann man Thorshavn dann auch offiziell einen zweiten Besuch 
abstatten.

Viel Vergnuegen wuenscht

Ihr Reisebuero

(i.A. Mandragon)

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



Zynh ... (Mandragon, 16. Jun 2003, 13:26:50):

heilt jetzt unabhaengig von Schnellkampfskill ...

Ma*

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



Re: Zynh ... (Zook, 16. Jun 2003, 13:28:20):
~#! rn=Mandragon rt=1055762810 rg=d.inseln
~#! tid=1055762810
Zook zeichnet sich dafuer verantwortlich. 

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



Forschen ... (Mandragon, 24. Jul 2003, 14:17:24):

in und um Thorshavn lohnt sich jetzt etwas mehr als vorher.

Dank geht an Twingi und Rikus :-)

Ma*

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



Re: Forschen ... (Anatol, 24. Jul 2003, 14:22:35):
~#! rn=Mandragon rt=1059049044 rg=d.inseln
~#! tid=1059049044
Ist Thorshavn diese Insel, auf die man nach Bestehen der Troy-Quest
"Kristallkugel" nicht mehr reisen kann?

Anatol 


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



Re: Re: Forschen ... (Mandragon, 24. Jul 2003, 14:22:52):
~#! rn=Anatol rt=1059049355 rg=d.inseln
~#! tid=1059049044
Sollte ausgebaut sein.

Ma*

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



Re^3: Forschen ... (Anatol, 24. Jul 2003, 14:23:12):
~#! rn=Mandragon rt=1059049372 rg=d.inseln
~#! tid=1059049044
Oh. Fein. :)

A*


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



Dunkelelfen auf der Werwolfinsel (Humni,  9. Aug 2003, 21:10:26):
Huhu Delfen,

wer von Euch ein Problem hatte, auf der Werwolfinsel rumzulaufen, und keinen
Schutz: Ab sofort braucht ihr da keinen mehr, da es unlogisch ist, dass einem
an einem Ort, wo nur der Mond scheint, die Sonne auf den Pelz rueckt ;-)

Humni
PS: Danke an Padreic fuer das schnelle Einbauen einer Schnittstelle. Wenn Euch
da noch was auffaellt, sagt bescheid, vielleicht hab ich was uebersehen.

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



Re: Dunkelelfen auf der Werwolfinsel (Twilight,  9. Aug 2003, 21:43:58):
~#! rn=Humni rt=1060456226 rg=d.inseln
~#! tid=1060456226
Hmm im Dschungel sieht man angeblich die Sonne auch nicht, weil das
Blaetterdach so dicht ist. *zu Protokoll geb*

Twilight.

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



Re: Re: Dunkelelfen auf der Werwolfinsel (Mandragon,  9. Aug 2003, 21:44:42):
~#! rn=Twilight rt=1060458238 rg=d.inseln
~#! tid=1060456226
Ob man sich demnaechst mit nem Sonnenschirm aus der Affaere ziehen kann?

Ma*

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



Re^3: Dunkelelfen auf der Werwolfinsel (Boing,  9. Aug 2003, 21:46:06):
~#! rn=Mandragon rt=1060458282 rg=d.inseln
~#! tid=1060456226
Dann bau ich aber Schirmfressbeisser oder sowas ... ;)
  Boing

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



Frachtgut (Padreic, 15. Aug 2003, 12:15:01):
Ich kann alle Dunkelelfen nur davor warnen derzeit Frachtgut zu spielen, da
dort noch lang nicht alle Raeume als Indoor markiert sind. Wer auch immer es
ausbaut, wird dann hoffentlich hier Entwarnung geben das es debuggt ist.

Pad*

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



Re: Frachtgut (Grimmborn, 15. Aug 2003, 12:17:56):
~#! rn=Padreic rt=1060942501 rg=d.inseln
~#! tid=1060942501
Ist ja schon ne Weile her, aber ich meine mich zu erinnern dass Frachtgut
ueberwiegend unter freiem Himmel stattfindet. 

GdA

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



Abkuerzung (Miril, 15. Aug 2003, 12:20:36):
Als ich heute morgen bei Xetolosch vorbei kam, faselte der 
irgendwas von nem schnelleren Weg nach Krylaios. Koennt ihn
ja mal ansprechen.
Miril

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



Re: Frachtgut (Rochus, 15. Aug 2003, 14:47:58):
~#! rn=Padreic rt=1060942501 rg=d.inseln
~#! tid=1060942501
So, ich habe gerade die Huetten und Hoehlen nach innen verlegt :-)

  Rochus

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



Re: Re: Frachtgut (Boing, 15. Aug 2003, 14:49:51):
~#! rn=Rochus rt=1060951678 rg=d.inseln
~#! tid=1060942501
Und hoffentlich ein paar Hoehensonnen installiert? :)
  Boing

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



Re^3: Frachtgut (Rochus, 15. Aug 2003, 14:50:53):
~#! rn=Boing rt=1060951791 rg=d.inseln
~#! tid=1060942501
Psst, lass sie doch selber drauf kommen ;-)

  Rochus

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



Re^3: Frachtgut (Grimmborn, 15. Aug 2003, 14:51:17):
~#! rn=Boing rt=1060951791 rg=d.inseln
~#! tid=1060942501
Bin ich da eigentlich der einzige der an die eine oder andere Szene aus
'Blade' denken muss? Aus der ungeschnittenen Version, vorzugsweise.

GdA

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



Re^4: Frachtgut (Catweazle, 15. Aug 2003, 14:53:35):
~#! rn=Grimmborn rt=1060951877 rg=d.inseln
~#! tid=1060942501
So sieht das aus, wenn Delfen in einem Feuerball vergluehen?
Cool.

YTC

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



Re^5: Frachtgut (Humni, 15. Aug 2003, 15:55:28):
~#! rn=Catweazle rt=1060952015 rg=d.inseln
~#! tid=1060942501
Naja, da wirkte das Sonnenlicht ja direkt, bei Delfen wirkt das nur
langsam....

Also so spektakulaer ist das nicht. Die sind einfach bei Lars, Ende.

Humni

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



Zwergensofa (Humni,  9. Sep 2003, 15:40:51):
Da ein gewisses Objekt doch eine gewisse Funktionalitaet hatte, die man
bugmaessig nutzen konnte, wurde dieses bugtraechtige Objekt vorerst bis auf
weiteres abgeklemmt.

Humni
PS: Es ist nicht alleine die Schuld dieses Objektes. Bevor wieder jemand
meint, ich wuerde Magier anprangern.
PPS: Der NPC ist noch da. Nur die Belohnung nicht mehr. Also sind auch keine
Stupsaustragungen vonnoeten ;-)

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



Bugfixes (Shakedbeer, 27. Sep 2003, 17:48:11):
Auch Shaky Istland ist von meiner Bugfix-Wut leicht veraendert worden. Der ein
oder andere Wegepunkt duerfte in Wegescripten nicht mehr richtig erkannt
werden. Das werdet ihr dann aber schon sehen. :-)

Shaky.

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



Das Portal ... (Mandragon, 30. Sep 2003, 18:42:55):

tut wieder.

Ma* (frisch aus dem Urlaub)

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



Neues aus der Inselwelt (Twingi,  1. Okt 2003, 18:49:37):
Da auf der Rieseninsel immer mehr Bewohner eine Heimat finden, wurde
beschlossen auch den Hafen nach und nach zu erweitern. Viel Vergnuegen bei der
weiteren Erforschung der Insel.

Die Inselregierung

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



Das Informationsbuero... (Magdalena,  1. Okt 2003, 19:03:45):
teilt mit:
Die Zeit der dummen, laesterhaften Geruechte, dass die Rieseninsel doch ihren
Namen zu Unrecht traegt, ist endgueltig vorbei. 
Aus sicherer Quelle kann ich also freudig verkuenden, dass sie fuer Frau
Mendel und einem gewissen Hobbit eine neue Heimat bietet. 
Das AbenteurerVolk ist allzeit herzlich willkommen :)

Magdalena, betend

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



Re: Das Informationsbuero... (Magdalena,  5. Okt 2003, 18:08:15):
~#! rn=Magdalena rt=1065027825 rg=d.inseln
~#! tid=1065027825
Ein Hinweis:
In einer bestimmten Situation sollte man fokusaehnliche Aktionen unterlassen.
Magdalena, kann echt nix dafuer

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



Apodingens (Miril,  6. Okt 2003, 15:47:56):
beglueckt nun ihre Bezwinger mit einem Kleinod aus den Tiefen ihres
Reiches.

Vielleicht kann's der ein oder andere gebrauchen.

Miril

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



Ein gewisses Kloster (Twingi,  9. Okt 2003, 13:53:00):
Die Bewohner eines gewissen Klosters haben nun auch in ihren Raeumlichkeiten
die Sonne ausgeknipst.

Sollten doch noch letzte Strahlen sich dort Zutritt verschaffen, bitte ich um
Meldung.

Twingi

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



Sandburg (Miril, 11. Nov 2003, 12:58:12):
Xetolosch ist ein bisschen alt und senil geworden. Daher hat er bislang
leider voellig vergessen, wenn ein Spieler ihm schon einen Gefallen
getan hat und dann als Seher eine Gegenleistung dafuer erwartet hat. 
Eine kleine Verjuengungskur hat nun dafuer gesorgt, dass er sich 
daran erinnert, wenn man ihn nach der Abkuerzung fragt.

Miril

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



Die Feuerinsel lebt (mal wieder) (Tilly, 24. Feb 2004, 01:29:51):
Moin moin auch,

der Tuersteher hat ein Weiterbildungseminar besucht und kann nun ein
bisschen mehr. Ein Engagement mit ihm ist auch preiswerter geworden.

Bereits engagierte Tuersteher wissen davon allerdings nichts.

Desweiteren gibts 'ne neue Kleinigkeit auf der Feuerinsel. Und wenn
die Balance durch ist, wird es/sie/er auch noch aufgemotzt.

Das Zwergensofa ist nun auch wieder angeschlossen. Es kann allerdings
nur und ausschliesslich in Seherhaeusern abgelegt und betreten werden.
Selbst Arbeitsraeume von Magiern sind nicht gestattet.

 - Tilly -

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



RunenSTAB (Miril, 15. Mar 2004, 20:35:42):
Hi.

Der Runenstab ist nun tatsaechlich das, was der Name schon sagt und keine
haessliche Runenkeule mehr. Gilt natuerlich wie immer erst ab Reboot/Ende.

Miril

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



Neulich in einer Kneipe (Miril, 15. Mar 2004, 22:10:32):

Zollokh der Waldarbeiter trinkt in Ruhe sein Bier aus.
Zollokh sagt: Wirt, ich hab ne Idee. 
Der Wirt fragt: Welche?
Zollokh sagt: Wenn das naechste Mal ein Magier hier auftaucht und seinen
Zollokh sagt: Stab vorzeigt, dann wischt Du ihn einfach von der Tafel 
Zollokh sagt: ab, ok? Also den Namen von dem, nicht den Magier, mein ich.
Der Wirt gruebelt eine Weile herum.
Khrak nickt Zollokh zu.
Der Wirt sagt: Gut mach ich. Noch ein Bier?
Khrak nickt zustimmend.
Zollokh nickt zustimmend.

Gerade eben gehoert.
Miril

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



Re: Neulich in einer Kneipe (Vector, 16. Mar 2004, 00:08:29):
~#! rn=Miril rt=1079385032 rg=d.inseln
~#! tid=1079385032
:dankt.

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



Re: Re: Neulich in einer Kneipe (Whitetiger, 16. Mar 2004, 09:10:51):
~#! rn=Vector rt=1079392109 rg=d.inseln
~#! tid=1079385032
:seufzt.

Naja, is wohl besser so.

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



Schlafmuetze (Miril,  6. Jun 2004, 10:57:28):
Eine etwas schlaefrige Wache reagiert nun endlich doch aufs Kerbholz.

Miril

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



Neulich bei Kurt (Miril, 19. Jun 2004, 12:49:14):
Kurt erzaehlte neulich von einem Gespraech zwischen zwei aelteren
Spielern, das er vor einiger Zeit illegal belauscht hat. 
Er hatte damals ein kleines Log angefertigt, das er uns heute zukommen liess.

Xetolosch stapft mit finsterem Blick herein.
Dfender kommt mit einer Horde Touristen herein.
Dfender sagt: Huhu, Xetolosch.
Xetolosch mustert missmutig eine Horde Touristen.
Dfender grinst Xetolosch an.
Xetolosch sagt: Tach auch. Danke fuer die Einladung!
Dfender nickt.
Dfender sagt: kp
Dfender kauft ein Eis.
Dfender gibt ein Eis an Xetolosch.
Dfender kauft ein Eis.
Dfender schleckt ein Eis.
Dfender scheint arge Bauchschmerzen zu haben.
Xetolosch grinst daemonisch.
Dfender arglt ein wenig vor sich hin.
Xetolosch gibt ein albernes Kichern von sich.
Xetolosch mustert misstrauisch ein Eis.
Xetolosch grummelt irgendetwas Unverstaendliches und macht dabei magische
Zeichen. Ploetzlich bildet sich ein Riss in der Realitaet.
Kruftur kommt an.
Krufturs Augen verfinstern sich und fixieren ein Eis.
Xetolosch bedankt sich bei Kruftur.
Kruftur verschwindet als Inspirationspartikel.
Dfender scheint arge Bauchschmerzen zu haben.
Xetolosch schleckt ein Eis.
Xetolosch sagt: Hach, das ist hier ein historischer Ort! Weisst Du noch 
Xetolosch sagt: damals, als die Glocke hier noch einen anderen Sinn hatte?
Dfender nickt wehmuetig.
Dfender scheint arge Bauchschmerzen zu haben.
Xetolosch sagt: Achja, damals war auch Bierchen noch Chaosmagier. Naja, lang
Xetolosch sagt: ist's her.
Xetolosch sagt: Erinnerst Du Dich noch an den Nierenstein, der sich da immer 
Xetolosch sagt: rumwaelzte?
Dfender nickt.
Xetolosch sagt: Und wie hiess noch dieses Vieh, da unten im Graben?
Dfender gruebelt eine Weile herum.
Dfender sagt: Schwachfug oder so aehnlich?
Dfender scheint arge Bauchschmerzen zu haben.
Xetolosch sagt: Ah, Schwaech-Lich wars!
Dfender sagt: Richtig.
Dfender seufzt.
Xetolosch seufzt.
Xetolosch schleckt gedankenverloren an seinem Eis herum.
Dfender scheint arge Bauchschmerzen zu haben.
Dfender grummelt.
Xetolosch sagt: Du, ich hab ne Idee!
Dfender sagt: Welche?
Xetolosch sagt: Dein Zweitie ist doch Magier, oder?
Dfender sagt: Oeh. Das ist jetzt mein Erstie, aber egal. Ja, ist er.
Xetolosch sagt: Kannste den nich mal darauf ansetzen?
Dfender gruebelt eine Weile herum.
Dfender meint: Klingt nach nem Haufen Arbeit.
Xetolosch grinst.
Xetolosch sagt: Rate mal, wieso ich mir nie nen Vertrag andrehen liess!
Dfender mustert Xetolosch.
Dfender sagt: Hm, mal Miril fragen, was die dazu meint.
Xetolosch sagt: Die wird schon nix dagegen haben. Die kann ruhig mal was tun,
Xetolosch sagt: den Palast kriegt sie ja eh nicht fertig.
Dfender sagt: Meinst Du?
Xetolosch sagt: Nee, war nur Spass. Trotzdem, soviel Arbeit kann das ja nicht
Xetolosch sagt: sein, die soll sich mal nicht so anstellen.
Dfender sagt: Hm. Hast schon Recht. Ich werde meinem Erstie mal in den A***
Dfender sagt: treten, so kann das ja hier nicht weiter gehen. Man muesste 
Dfender sagt: mal ein paar Leute kontaktieren, die den Kram noch haben.
Xetolosch nicht zustimmend.
Xetolosch sagt: Du schaffst das schon.
Dfender sagt: Wird sich zeigen. 
Xetolosch sagt: Ok, dann wartet ja jetzt Arbeit auf Dich! Ich geh mal wieder.
Xetolosch sagt: Und danke fuer das leckere Eis ;)
Xetolosch grinst.
Dfender nickt.
Xetolosch winkt.
Dfender winkt.
Xetolosch verzieht sich fluchend nach Nordosten.
Dfender scheucht seine Touris nach Nordwesten.

Kurt hat uns dieses Log heute zukommen lassen, vor allem deshalb, weil er
heute ein merkwuerdiges Schiff gesichtet hat, das frueher schon mal bei ihm 
vorbei kam. Er meint, wir sollten das besser wissen.

Wir meinen, ihr solltet das auch wissen.

Viel Spass,
Arathorn & Miril





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



Tektonische Verschiebungen (Miril, 19. Jun 2004, 12:50:32):
Aufgrund des ueberraschenden Auftauchens einer verschollenen Insel ist es 
zu leichten tektonischen Verschiebungen im Bereich der Riesen- und Feuer-
insel gekommen.
Eventuell muessen manche Skripte angepasst werden.

Miril

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



Bekanntmachung (Miril, 21. Jun 2004, 18:46:13):
                             BEKANNTMACHUNG


Hiermit geben Wir, KOLOSSOS II., Herrscher ueber alle Zyklopen, Koenig des 
vereinigten Inselreiches von Krylaios und Illuminatos, Auserwaehlter der 
Apollinaris und des Phillumenos und HELLICONIA, genannt die Weise, Koenigin
aller Zyklopen folgendes bekannt:

Einige Jahre sind bereits ins Land gegangen, seit ein mutiger Seemann an 
unseren Gefilden strandete und Uns die Kunde von den Voelkern des Nordens 
brachte. Einige von diesen sind gekommen, um ihre Wohnstaetten hier zu er-
richten und unter uns zu leben. Sie alle haben Wir hier aufgenommen, auf 
dass sie dieKultur und das Wissen unseres Volkes bereichern sollen.
Wieder andere kamen, um uns und unser Reich kennenzulernen, unsere heiligen
Staetten zu besichtigen, mit unserem Volke zu reden und unsere Sitten und
Gebraeuche und unseren Glauben zu studieren. Das moechten Wir weiterhin
unterstuetzen, um den Frieden mit den Voelkern des Nordens, den Menschen,
Elfen, Zwergen, Hobbits, Felinen und ja, sogar mit den dunklen Bruedern der
Elfen zu wahren.
Doch es kamen auch andere, nicht so friedvolle Gesellen. Gluecksritter, die 
glaubten, unsere Untertanen ungestraft ueberfallen und unsere Schaetze rauben 
zu koennen. Der Zorn der Goetter moege sie treffen!

Bislang jedoch war es allen Fremden - seien sie nun Besucher oder Ansaessige -
verwehrt, Unseren Palast zu besuchen. Viele Gruende sprachen dafuer, viele
dagegen. Nach langen Gespraechen mit Unseren Beratern haben Wir Uns nun ent-
schlossen, dies zu revidieren. Auch Unsere koenigliche Gemahlin, Helliconia, 
die Weise, hat diesem Ansinnen zugestimmt und ist nun bereit, Fremden Audienz
zu gewaehren. So wird der Ruhm des Koenigreiches gemehrt, aber auch das Ver-
staendnis und Vertrauen der Voelker untereinander gestaerkt werden.

Doch wisset eines, ihr Fremden, die ihr Uns besuchen werdet: 
Als friedliebendes Volk sind wir freundlich zu jedem, der den Frieden wahrt. 
Unruhestifter, Streitsuechtige oder gar Moerder werden bestraft werden, wo 
immer sie sich auch blicken lassen. Die krylaischen Elitewachen, die in 
Unserem Palast ihren Dienst verrichten, haben von Uns den Auftag bekommen,
solche Frevler langfristig zu verfolgen und sie nehmen diesen Auftrag sehr
ernst.

Kolossos II.                                          Helliconia, die Weise


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



Re: Bekanntmachung (Miril, 21. Jun 2004, 19:32:03):
~#! rn=Miril rt=1087836373 rg=d.inseln
~#! tid=1087836373
Ich moechte zusaetzlich darauf hinweisen, dass auch andere Wege nun ein
Stueckchen weiter fuehren. Nur, falls der Thronsaal gerade nicht erreich-
bar ist, weil einer dort unbedingt sterben wollte.

Miril

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



Re: Re: Bekanntmachung (Todie, 21. Jun 2004, 19:33:21):
~#! rn=Miril rt=1087839123 rg=d.inseln
~#! tid=1087836373
Meinst Du etwa mich? Hmpf. :-)

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



Bug im Rollstuhl? Nicht doch! (Tilly, 25. Jul 2004, 22:46:20):
Moin moin,

ich habe eben alle geclonten Rollstuehle zerstoert, neu geladen,
geclont und in die eingelogten Besitzer gemovt.

Natuerlich sind sie jetzt nicht mehr autoload. Bitte besorgt
Euch das Spray und sprueht Euren Rolli neu ein.

Auf Rueckfrage stelle ich das auch gern zur Verfuegung :-)

Wer weiterhin Probleme mit dem Rolli haben sollte, wende sich
bitte an mich oder Humni.

 - Tilly - 

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



Re: Bug im Rollstuhl? Nicht doch! (Anatol, 25. Jul 2004, 22:46:58):
~#! rn=Tilly rt=1090788380 rg=d.inseln
~#! tid=1090788380
Fuer welche Werte von "eben"? ;)


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



Re: Re: Bug im Rollstuhl? Nicht doch! (Tilly, 25. Jul 2004, 22:50:04):
~#! rn=Anatol rt=1090788418 rg=d.inseln
~#! tid=1090788380
Hmmm,

Zeit der Veroeffentlichung des Artikels MINUS der Zeit, die ich geflucht habe,
als ich den Bug gefunden hatte :-)

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



Re: Bug im Rollstuhl? Nicht doch! (Catweazle, 26. Jul 2004, 07:32:51):
~#! rn=Tilly rt=1090788380 rg=d.inseln
~#! tid=1090788380
Aeh, was denn fuern Spray?

YTC *nur leise aufhorchend*

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



Re: Re: Bug im Rollstuhl? Nicht doch! (Zook, 26. Jul 2004, 09:45:02):
~#! rn=Catweazle rt=1090819971 rg=d.inseln
~#! tid=1090788380
Ist Megaschmarrn schon wieder voll? ;)

Zook.

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



Re^3: Bug im Rollstuhl? Nicht doch! (Montanus, 26. Jul 2004, 09:46:07):
~#! rn=Zook rt=1090827902 rg=d.inseln
~#! tid=1090788380
Nein. Wir haben Dir etwas Platz gelassen. Etwa 400+x Artikel. Aber nicht alle
auf einmal vernaschen.

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



Re^4: Bug im Rollstuhl? Nicht doch! (Humni, 26. Jul 2004, 19:33:08):
~#! rn=Montanus rt=1090827967 rg=d.inseln
~#! tid=1090788380
Ja.

Ich bin schuld.

Ich habe einen doofen Fehler gemacht, und nun bin ich schuld, darum helfe ich
auch gerne beim neue-Rollis-kriegen.

So, nun ists offiziell.

Humni

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



Tamibar (Arathorn, 28. Jul 2004, 00:46:19):
Huhu.

Auf Tamibar gibt es derzeit ein klitzekleines Problem, das dafuer sorgt,
dass Ihr nicht weiter auf der Insel rumlaufen koennt ausser an P1 und in
den Hafen.

Also nicht wundern, wenn da was klemmen sollte.

Gruss, Arathorn, nicht Insel-RM, hat's aber trotzdem kaputtgemacht. Sorry.

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



Re: Tamibar (Zook, 28. Jul 2004, 10:05:09):
~#! rn=Arathorn rt=1090968379 rg=d.inseln
~#! tid=1090968379
Gratuliere! ;)

Zook.

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



Re: Tamibar (Arathorn, 28. Jul 2004, 20:52:15):
~#! rn=Arathorn rt=1090968379 rg=d.inseln
~#! tid=1090968379
So, Entwarnung. Auf Tamibar sollte alles wieder so sein wie vorher.

Gruss, Arathorn.

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



Feuerinsel-Newsletter - A.M. Boss hat gebacken (Tilly, 29. Jul 2004, 10:15:32):
Moin moin Zwergenschaft und andere,

A.M. Boss hat fleissig geschuftet und nun endlich auch das
im Angebot ihrer Baeckerei, was da eigentlich hingehoert.

Ich habe mir die Freiheit genommen, ihre qualitativ hoch-
wertigen Produkte unter den Zwergen zu verteilen, die meiner
Verantwortung unterstehen. Ebenso bei einigen besonders
gefaehrlichen Kreaturen der parallelen Wirklichkeit.

Falls wider Erwarten keine Probleme auftauchen sollten
wuensche ich Euch viel Spass damit. Ansonsten bitte prompte
Mail an mich und nicht gross rumprobieren, ob es auch
tatsaechlich bugt :-)

Gruss,
               - Tilly - 

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



Re: Feuerinsel-Newsletter - A.M. Boss hat gebacken (Zook, 29. Jul 2004, 10:16:40):
~#! rn=Tilly rt=1091088932 rg=d.inseln
~#! tid=1091088932
Bugwaren?

Zook.

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



Re: Re: Feuerinsel-Newsletter - A.M. Boss hat gebacken (Tilly, 29. Jul 2004, 10:17:22):
~#! rn=Zook rt=1091089000 rg=d.inseln
~#! tid=1091088932
Jo, unter dem Topic liefen die bei der Balance >:)

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



Krylailer (Miril, 11. Dez 2004, 18:10:58):
Ich wollte nur mitteilen, dass der Krylailer etwas abgewertet wurde. Ich bin
zwar nicht sicher, ob damit dieser "Wer als letzter flieht und kein Chaot ist,
stirbt"- Effekt ganz weg ist, hoffe aber, dass es nun besser ist ;).
Miril

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



Weihnachtsgeschenk (Miril, 24. Dez 2004, 12:06:23):
Ein Feuermutant hat sich spontan entschlossen, sich wieder in seiner alten
Heimat niederzulassen.

Miril

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



Komische Skills (Miril,  3. Jan 2005, 11:30:16):
Ein gewisser Zwerg weiss nun etwas mehr ueber einen gewissen Skill
Miril

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



Voruebergehend geschlossen ... (Tilly,  2. Feb 2005, 13:05:42):
... wird morgen Nachmittag der Vulkan auf der Feuerinsel wegen
Wartungsarbeiten.

Wird nicht allzu lang dauern - hoffe ich.

2-3 Stuendchen evtl., wenn ueberhaupt.

Tilly

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



Metzeln, Forschen UND Spielen? (Tilly,  3. Feb 2005, 17:49:02):
Das sind ja gleich drei Sachen auf einmal!
Das geht nun wirklich nicht!!

Oder doch?

Aber sicher geht das, denn auf den Insel ist nichts unmoeglich.

Ich wuensche Euch viel Spass dabei und damit.


Tilly


p.s.  : Ich sollte vielleicht noch sagen, WO es das gibt: Im Para-Vulkan >:)
p.p.s.: Der Normal-Vulkan ist damit natuerlich wieder frei zugaenglich

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



Re: Komische Skills (Tilly,  4. Feb 2005, 00:39:32):
~#! rn=Miril rt=1104748216 rg=d.inseln
~#! tid=1104748216
Ha! Also wenn es Dir gelingt, einem Zwergen etwas beizubringen, dann
gelingt mir das auch ...

Und siehe da: der/die/das Zwergenbaecker(in) von der Feuerinsel
sagt nun auch etwas dazu. So!

Tilly

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



Zwergensofa vs. Seherhaeuser (Tilly,  4. Feb 2005, 12:39:24):
Nachdem ich das Zwergensofa kraeftig ausgeschimpft habe, wird es 
nun wohl dort bleiben, wo ihr es abstellt und sich nicht wieder
einfach aus dem Staube machen.

Tilly

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



Ich soll was verkuenden (Miril, 20. Feb 2005, 14:11:42):
Helliconia hat nun ein Kleinod dabei. Um es zu nutzen braucht man allerdings
auch von anderen Sachen "frische" Versionen.
Miril

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



Rieseninselweiterentwicklung (Humni,  7. Aug 2005, 16:06:07):
Huhu,

so ein NPC auf der Rieseninsel ist neu. Eigentlich noch einer. Hmm. Ob ihr den
findet? Ist schwierig und gemein... vielleicht gibt ja ein Werwolf Hinweise...
vielleicht findet ihr nen netten Testie.

Humni

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



Reiseempfehlung (Arathorn, 18. Aug 2005, 23:19:45):
-- Anzeige --

Machen Sie jetzt die Kreuzfahrt Ihres Lebens, reisen Sie mit dem 
Geisterschiff! Entdecken Sie unendliche Weiten, die nie ein Spieler zuvor
gesehen hat! Buchen Sie jetzt, Sie werden es nicht bereuen!

--

Gruss, Arathorn, im Auftrag des Insel-Reisebueros.

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



Noch was.. (Humni, 19. Aug 2005, 00:01:27):
Ich stehe dem nicht nach und verkuende: Es gibt auch was neues auf der
Werwolfinsel. Fuer die meisten von Euch ... ja... oeh... ach egal. Findet ihr.
Echt.

Danach aber bitte Kreuzfahrt auf dem Geisterschiff buchen. Lohnt.

Humni

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



Klein aber ... (Tilly, 19. Aug 2005, 21:11:07):
fein ist, was A.M. Boss neuerdings ihr/sein Eigen nennt.

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



Oh, was gibts denn hier Neues? (Tilly, 28. Sep 2005, 14:13:02):
Das Geheimnis des Volgonenamuletts ist noch nicht gelueftet.

Doch .. wer sich im Uktarwald bereits etwas umgeschaut hat,
vermag evtl einen Hinweis darauf zu finden.

Und dann .. nun .. ja, dann!

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



Trophaeensammler (Miril, 21. Dez 2005, 20:35:54):
Gewisse Traenen lassen sich neuerdings auch als Trophaeen sammeln.

Miril

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



Sternenlicht (Miril, 26. Jan 2006, 17:55:07):
Die Questbelohnung sollte nun auch zu was gut sein. Wozu, muesst ihr selbst
herausfinden.

Miril

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



Re: Sternenlicht (Miril, 26. Jan 2006, 18:22:30):
~#! rn=Miril rt=1138294507 rg=d.inseln
~#! tid=1138294507
Achja. Leider ist mir dabei ein kleines Missgeschick passiert. Eine fiese,
vergessene Klammer sorgte dafuer, dass ihr nun alle noch mal hochgehen muesst,
um euch eine neue zu holen.
We apologize for the inconvenience.

Miril

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



Im Nirwana (Miril, 31. Jan 2006, 18:54:11):
befindet sich nun leider die Bekanntmachung, die Kolossos hier vor kurzem
veroeffentlichen liess. Ich habe sie jedoch von dort unter schweren Muehen
zurueckgeholt und in meinen Turm befoerdert, wo sie fuer alle Zeiten sicher
vor versehentlichen Loeschungen sein sollte. Auch gegen Staub und sonstige
Alterungserscheinungen ist sie dort, wo sie nun liegt, gut geschuetzt.

Miril

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



Lemminge (Humni, 25. Apr 2006, 17:07:34):
Huhu,

da die Lemmingquest buggt und ich keine Zeit und Lust mehr habe, den Bug zu
suchen, habe ich sie temporaer abgehaengt.

Gruesse,
Humni

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



Re: Lemminge (Ark,  2. Jun 2006, 16:17:11):
~#! rn=Humni rt=1145977654 rg=d.inseln
~#! tid=1145977654
Die Quest wurde (hoffentlich temporaer) aus der Questliste entfernt. Mail an
Nyx ist raus. Wer sie kennt, kann ihr das ja nochmal so zutragen, habe leider
keinen anderen Kontakt.
Sobald das Problem gefixed ist, wird sie wieder angeschlossen/eingetragen.


              *** ARK * the * Magnificent ***


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



Bekanntmachung (Miril, 17. Jul 2006, 19:56:51):
                           BEKANNTMACHUNG

     Hiermit geben Wir, KOLOSSOS II., Herrscher ueber alle Zyklopen,
     Koenig des vereinigten Inselreiches von Krylaios und Illumina-
     tos, Auserwaehlter der Apollinaris und des Phillumenos und
     HELLICONIA, genannt die Weise, Koenigin aller Zyklopen folgen-
     des bekannt:
     
     
     Einige Zeit ist vergangen, seit Wir Bewohnern des Festlandes
     erlaubten, Fuss auf Illuminatos zu setzen. Dala, die Fischerin,
     berichtete Uns davon, dass sie zahlreiche freundliche Helden 
     getroffen habe, die sich bereitwillig eines Problems angenommen
     haben, das den Himmel auf Illuminatos betraf.
     
     Diese Erfahrungen zusammen mit Berichten der hiesigen Stadtbe-
     voelkerung liess Uns den Entschluss faellen, Fremden ab heute
     zu erlauben, einen naeheren Blick auf den heiligen Berg aller
     Zyklopen zu werfen: Atos, der maechtige Vulkan, Manifestation
     des Phillumenos auf dieser Welt.
     
     Wir danken der Maechtigen, Zesstra, dass sie Uns bei der Be-
     festigung und Markierung einer sicheren Wegstrecke durch das
     nicht ungefaehrliche Land der tausend Geysire geholfen hat.
     Denn nur so ist es Fremden moeglich, so sie denn die noetige
     Vorsicht walten lassen, unbeschadet den Atos zu erreichen.
     
     Der Zugang zum heiligen Tempel bleibt nach wie vor den Glaeu-
     bigen Unseres Volkes vorbehalten, jedoch mag sich auch dies
     einmal aendern.
     
     
Kolossos II.             Helliconia, die Weise

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



Re: Bekanntmachung (Zesstra, 17. Jul 2006, 19:57:13):
~#! rn=Miril rt=1153159011 rg=d.inseln
~#! tid=1153159011
Huhu Mudder,

Kolossos hat es ja gerade verkuendet: Ihr koennt euch nun ein bisschen mehr
der schoenen Insel Illuminatos anschauen. :-)
Ich lade euch also herzlich ein, dort zu forschen und (etwas) zu metzeln und
vielleicht etwas zu finden, was nuetzlich ist.
Weiterhin hoffe ich natuerlich sehr, dass euch die Gegend gefaellt und ihr
dort Spass haben werdet.
Fuer Anregungen bin ich natuerlich immer dankbar, also meldet euch ggf. bei
mir oder fuellt mein Repfile. ;-)

Und wie sollte es anders sein, moechte ich mich natuerlich an dieser Stelle
bedanken: allen voran bei Vanion, der mich gesponsort und viele Fragen
beantwortet hat und natuerlich bei Miril, auf deren Insel ich taetig sein
durfte, die das Gebiet begutachtet hat und die mir auch viele Tipps gab
und Fragen beantwortete. ;-)
Weiterhin aber auch bei Zook fuer die Abnahme und bei weiteren netten
Magiern (die ich besser nicht alle aufzaehle *g*), die ab und an Tipps
beigesteuert haben.
Und zuletzt auch ganz herzlich bei Janne und Mesirii, die sich als Tester
betaetigt, viel Zeit aufgewendet haben und zu einer Reihe von Verbesserungen
und Bugfixes gefuehrt haben. :-)
(Jetzt hoff ich, dass ich niemanden vergessen hab.)

Viel Spass wuenscht euch,
Zesstra

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



Zehn kleine ... (Miril, 24. Sep 2006, 12:29:31):
Zehn kleine Lemminge
war'n bis eben fort
nun haben wir sie wiederbelebt
an ihrem alten Ort

Sollten sie immer noch Probleme machen, so bitte ich Euch, mir eine Mail
mit moeglichst genauer Beschreibung des Problems zukommen zu lassen. Das
Questgebiet ist momentan auch nur fuer Spieler betretbar, die diese Quest
noch nicht geloest haben.

Viel Spass, Miril

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



Re: Zehn kleine ... (Miril, 24. Sep 2006, 14:45:47):
~#! rn=Miril rt=1159093771 rg=d.inseln
~#! tid=1159093771
So. Die Beschraenkung auf Spieler, die die Quest noch nicht geloest haben,
ist ebenfalls aufgehoben. Es wurde einiges an der Technik hinter der Quest
geaendert. Falls irgendwelche Merkwuerdigkeiten auftreten, bitte bei mir
melden.

Miril

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



Kolossos (Miril,  4. Okt 2006, 14:23:32):
Die Schmiede der Zyklopen scheinen neuerdings etwas mieseres Material bei
der Herstellung der Krylailer zu verwenden. Jedenfalls scheint ihre
Wirkung im Kampf nicht mehr ganz so fatal zu sein.

Darueber hinaus finden mutige Helden nun auch etwas fuer ihren Sammeltrieb,
wenn sie den Koenig besiegen.

Miril

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



Paraharpye (Seleven, 15. Mar 2007, 21:39:20):
Schlechte Nachricht fuer Para-Ornithologen:
Das letzte Exemplar der Paraharpye leidet unter akutem Kaeferbefall. Bis wir
die kleinen Biester gefunden haben habe ich sie abgeklemmt. Ihr muesst leider
andere Orte zum Sterben suchen.

Seleven

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



Re: Paraharpye (Seleven, 18. Mar 2007, 19:15:28):
~#! rn=Seleven rt=1173991160 rg=d.inseln
~#! tid=1173991160
Die Paraharpye ist unter Vorbehalt wieder da. Diejenigen unter Euch, die sie
bereits kennen werden eine leichte Verhaltensaenderung bemerken und, wenn sie
einer spelllastigen Gilde angehoert, sich darueber freuen.
Bei Problemen, bitte Mail an mich. Gejammer wird natuerlich direkt in den
Spamordner verschoben :^).

Seleven

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



Shakylab fuer alle (Ennox, 17. Apr 2007, 23:04:07):
Jetzt sollte auch mit Braillezeile und / oder Sprachausgabe der Ausgang
des Labyrinths unter Shaky Island findbar sein.
Danke an Innuendo, Xutelius, Trupf fuers Testen und die Vorschlaege
und an Zesstra fuers schnelle anschliessen.

Bugs an mich
Ennox

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



Re: Shakylab fuer alle (Xutelius, 17. Apr 2007, 23:06:03):
~#! rn=Ennox rt=1176843847 rg=d.inseln
~#! tid=1176843847
dank an ennox fuer die tolle umsetzung :) grad bei so einer wichtigen
questbelohung is das wichtig finde ich.

super gemacht :)

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



Re: Shakylab fuer alle (Zesstra, 17. Apr 2007, 23:07:46):
~#! rn=Ennox rt=1176843847 rg=d.inseln
~#! tid=1176843847
Huhu,

Der Nachteil: Da auch Aenderungen im Questobjekt noetig waren, welches Daten
ueber den Questverlauf fuer jeden Spieler speichert, muessen alle Spieler, die
diese Quest in der Uptime angefangen, aber nicht abgeschlossen haben, nochmal
erneut beginnen.
Ja, das ist ganz furchtbar gemein und schlimm, Beschwerden bitte an Ennox. *g*

Achja, das betrifft die folgenden Spieler, soweit ich seh:
Trupf, Belenus, Innuendo, Verleihnix, Magnix

Zesstra

Zesstra

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



Lemming-Haarfaerbemittel (Zesstra,  7. Jul 2007, 13:37:59):
Huhu,

ich habe gestern in einem Anfall von Unfaehigkeit leider alle
Lemming-Haarfaerbemittel im Spiel zerstoert (Falsche Zeile im Befehlspuffer
erwischt und nicht drauf geachtet, dass da das ganz falsche Objekt drinsteht).
Das tut mit schrecklich leid, aber kann es nun leider nicht mehr aendern.
Wem diese gruene Farbe wichtig ist, moege sich bei mir melden, ich werde sie
dann ersetzen. 
Wem es egal oder nicht wichtig ist: Wunderbar, damit ist ein Platz im Inv frei
geworden. ;-)

Viele Gruesse,
Zesstra

Zesstra

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



Verwechslung der Obsidianklingen (Zesstra, 27. Nov 2007, 00:38:39):
Huhu,
neue Obsidianklingen aus meinem Gebiet sollten leichter von denen anderer
Spieler zu unterscheiden sein. ;-) Tassram hat gestern unfreiwillig
festgestellt, dass es bisher etwas bloed war, wenn man versehentlich die
Klinge eines anderen Spielers dabei hatte.

Zesstra

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



Normalwelt-Harpyie (Zesstra, 16. Dez 2007, 20:11:09):
Die Harpyie in der Normalwelt ist jetzt auch wieder fuer Gilden vernuenftig
haubar, die nicht Kaempfer oder Karateka heissen. Danke an Towonda fuer die
Bugmeldung.

Zesstra

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



An Twingis Adventskalender (Arathorn, 20. Dez 2007, 18:47:32):
... habe ich soeben Tuerchen 20 geoelt und ein wenig gerichtet, so dass es
jetzt auch kein Problem mehr darstellt, dieses zu oeffnen.

Gruss, Arathorn.

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



neue Hoerrohre... (Zesstra, 27. Dez 2007, 19:11:57):
Ich habe mal das Hoerrohr von Shaky etwas ueberarbeitet und ihm neben einer
kleinen Code-Renovierung einige zusaettzliche Infos gegeben. Es zeigt in
Zukunft auch an, welcher Magier neben dem Autor des Objekts momentan fuer
jenes zustaendig sein sollte.
Damit sollte sich gleichzeitig die Haeufigkeit des "Du hoerst eine Stimme,
aber sie spricht zu undeutlich." deutlich verringert haben.
Bei Problemen wendet euch bitte an mich.

Zesstra

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



Shaky-Island-Vulkantouristen aufgepasst... (Shakedbeer,  1. Feb 2009, 17:32:08):
Man kann nun wieder auf gewohntem Wege zum Vulkan kommen.

Shaky - eingerostet, aber mit Hilfe fast wieder LPC-tauglich.

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



Re: Shaky-Island-Vulkantouristen aufgepasst... (Zook,  4. Feb 2009, 08:39:54):
~#! rn=Shakedbeer rt=1233505928 rg=d.inseln
~#! tid=1233505928
eingerostet? und was wird aus para-dg-dingens wie hiess das
noch...?
z

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



Re: Re: Shaky-Island-Vulkantouristen aufgepasst... (Gloinson,  4. Feb 2009, 08:42:56):
~#! rn=Zook rt=1233733194 rg=d.inseln
~#! tid=1233505928
Das ist doch in Flash, nicht in LPC! D'oh!


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



Hilfe, kreisch, jammer, heul, winsel, fluch ... (Ark, 27. Okt 2009, 19:27:41):
... denn ein EK ist verschwunden. Und bevor gleich demnaechst das Spekulieren
losgeht, es ist ne nette Dame auf der Insel am Ende der Welt. Da hat uns der
Magier naemlich kundgetan, dass die nie zum Kerbholzfreischuss freigegeben
sein sollte, aber die Implementation schlecht umgesetzt wurde, und deshalb ...
Ach, egal, der EK ist bei denen weg, die ihn haben, und damit aus :-)


              *** ARK * the * Magnificent ***


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



Wims Modekrams... (Zesstra,  1. Dez 2009, 13:11:41):
Huhu,

an den Pumps am Ende der Welt hat es eine kleine Aenderung gegeben. Fuer die
meisten duerfte das kaum auffallen, Extralook & Co sind unveraendert, aber es
findet keine reale Groessenveraenderungen des Spielers mehr statt.

Zesstra

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



Ueber Legenden und Mythen (Caldra, 10. Jan 2010, 14:09:49):
Bei Brieseltrim im Buero ist ein interessantes Gespraech gefuehrt worden,
das auch Helden interessieren duerfte, die nicht bei den Trves dienen.
Diese Helden sollten sich in der rubrik gilden.kaempfer mal die Abschrift zu
Gemuete fuehren!

Caldra

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



Fiebersumpf, erstes Fazit (Caldra, 15. Jan 2010, 21:00:07):
Hallo,

alle, die es schon in den Sumpf geschafft haben, werden auf einige
Unstimmigkeiten gestossen sein. Eine Ursache ist der Einsatz von Methoden, die
aufgrund der langen Uptime noch nicht greifen. Ich hab das jetzt
beruecksichtigt.
Wer auf Nummer sicher gehen will und es sich leisten kann :-) sollte einfach
mal "ende" nachen. Alle anderen sollten trotzdem keine Schwierigkeiten haben.
Falls trotzdem was auffaellt, bin ich fuer jeden Tipp dankbar.

gruss

Caldra

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



Neulich im Fiebersumpf (Caldra, 31. Mar 2010, 19:30:43):
Neulich im Fiebersumpf

Da spazierte ich so froehlich vor mich hin und genoss die herrliche Luft und
die Stille. Und ploetzlich entdeckte ich ein furchtbares Verbrechen an meinen
Kreaturen, sie wurden dahingemetzelt - einfach abgeschlachtet. Nur noch
ihre Ueberreste lagen vor mir. Gar gleichgueltig zuckte ich die Schultern
und sagte mir "Was solls?". Gedankenverloren ob der herrlichen Umgebung
spielte ich etwas mit den Resten und ehe ich michs versah, entstand daraus
etwas ziemlich Nettes ... so zum Umhaengen ganz praktisch.
Und weil ich grad so gute Laune hatte, dachte ich mir: "Mensch, das finden
andere Urlauber in diesem Gebiet vielleicht auch ganz toll."
Die Schlangen zischten mich zwar veraergert an, aber daraus mache ich mir
gar nix.

Besucht also mal wieder die Fiebersuempfe!

Caldra

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



Beschwerde (Caldra,  2. Apr 2010, 11:40:59):
Die Verwalterin des Lagerhauses in Gwainabar hat sich beschwert, dass ihr
keine Unterstuetzung durch die Dorfwache be Angriffen zuteil wird.
Ich musste ihr da leider recht geben ...

Caldra

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



Das musste jetzt mal sein (Caldra, 10. Apr 2010, 10:42:09):
Ich habe bei den Sumpfamazonen mal mit der Faust auf den Tisch gehauen.
Diess Jammerei, dass man seine Lieblingsklamotten nicht rausgibt, ist ja wohl
unmoeglich. Na jedenfalls hoffe ich, dass die Maedels jetzt etwas freigiebiger
mit bestimmten heiss geliebten Kleidungsstuecken umgehen.

Caldra

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



Surfbretter (Humni, 16. Jul 2010, 13:53:36):
Die Surfbretter machen irgendwelche Probleme. Ja, Bretter, da es mehrere sind,
bzw. waren. Es sollte nun nur noch ein Surfbrett geben. Sollte das nicht
funktionieren oder irgendwelche Schwierigkeiten geben, bitte Meldung an mich.

(Oder sonstwen, der sich berufen fuehlen mag).

Humni

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



ein gewisses Stueck Plastik- (Caldra, 21. Okt 2010, 17:42:30):
plane ist jetzt etwas anwenderfreundlicher und laesst sich nun auch ohne
Aufnahme ins Inv oeffnen.
Allerdings nur dort, wo man sie auch unfreiwillig manchmal verliert .-)

Caldra

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



Milia ist etwas eingefallen... (Caldra, 22. Okt 2010, 19:05:40):
Hallo,

Milia ist endlich etwas eingefallen, wie sie sich fuer erbrachte
Dienstleistungen angemessen revanchieren kann.
Fragt sie einfach mal nach Gegenleistung

gruss

Caldra

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



Schlangenguertel (Caldra, 31. Okt 2010, 10:18:18):
man kann beim Knuepfen des guertels jetzt die Anzahl der zu verwendenden
Haeute angeben:
knuepfe guertel aus x haeuten

gruss

Caldra

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



Probleme im Amazonendorf (Zesstra, 16. Jan 2011, 15:34:21):
Im Amazonendorf buggt es und Spieler kommen nicht wieder raus, weil die
Ausgaenge fehlen.
Ich hab das Dorf daher voruebergehend abgehaengt, bis Caldra oder ggf. Gabylon
sich drum kuemmern.

Zesstra

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



Re: Probleme im Amazonendorf (Gabylon, 16. Jan 2011, 22:16:10):
~#! rn=Zesstra rt=1295188461 rg=d.inseln
~#! tid=1295188461
Fixed.
Bitte bei weiteren Problemen mail an mich, Caldra ist im Urlaub.

gab

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



Re: Re: Probleme im Amazonendorf (Gloinson, 19. Jan 2011, 20:45:18):
~#! rn=Gabylon rt=1295212570 rg=d.inseln
~#! tid=1295188461
Caldra hat Netz und arbeitet unglaublich gern im Urlaub. Er hat ausser Essen
und Schlafen sonst eh nicht genug zu tun, er ist nicht ausgelastet.

*petzend*


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



Hoerrohr-Verbesserung (Zesstra, 25. Aug 2011, 20:16:50):
Huhu,

ich hab mir mal das Hoerrohr vorgenommen.
Die schlechte Nachricht: es kann sein, dass Leute mit Triggern diese mal
anfassen muessen.
Die gute Nachricht: das Hoerrohr zeigt jetzt direkt an, in welcher Region der
aktuelle Ort liegt und aus welcher Region ein Gegenstand stammt.

Zesstra

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



Re: Hoerrohr-Verbesserung (Zesstra, 25. Aug 2011, 22:11:34):
~#! rn=Zesstra rt=1314296210 rg=d.inseln
~#! tid=1314296210
Achja: Die Anfaengerregion ist jetzt auch mal endlich im Hoerrohr. ;-)

Zesstra

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



Koecher von A.M. Boss (Zesstra, 14. Sep 2011, 21:13:26):
... wechseln Waffen jetzt auch, wenn er voll ist. (Nur neue natuerlich)

Zesstra

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



Runen und Symbole (Gabylon, 22. Jan 2012, 17:14:50):
Hi,


wer aktuell weniger Symbole der Macht oder Runen auf seinem Runenstab hat als
er eigentlich sollte, kann dem Schnitzer einen Besuch abstatten und diese
erneut hineinritzen.
Dies ging schon (fast) immer. Es soll nur eine kleine Erinnerung an diese
Extrafunktion sein.


gab

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



Re: Runen und Symbole (Ark, 23. Jan 2012, 09:35:56):
~#! rn=Gabylon rt=1327248890 rg=d.inseln
~#! tid=1327248890
Die Extrafunktion, dass Symbole und Runen wieder verschwinden und erneuert
werden muessen? Oder was stell ich mir darunter genau vor *verwirrt sei*?


              *** ARK * the * Magnificent ***


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



Neulich auf Akhar Nth'tar (Caldra, 10. Mar 2012, 17:29:51):
Der Pfad fuehrt hier in leicht gebogener Manier durch das Innere eines kleinen
Waldes. Die relativ weit auseinanderstehenden Baeume sorgen dafuer, dass sich
immer wieder Tageslicht durch die Blaetterdecke stiehlt und zusammen mit dem
Duft nach Moos fuer eine angenehme Atmosphaere sorgt. Waehrend sich nach
Nordwesten die Baeume langsam lichten, dringt der Pfad im Sueden tiefer in den
Wald vor.
Es gibt zwei sichtbare Ausgaenge: sueden und nordwesten.

Du denkst . o O ( Ah, herrlich. Mal etwas ausspannen. Man kann ja nicht immer
am rostigen Getriebe herumfuhrwerken... diese Ruhe hier. Toll! )

Ploetzlich wird es gespenstisch still. Voegel hoeren zu zwitschern auf, das
Laub der Baeume raschelt nicht mehr...

Ein seltsames Gefuehl durchfaehrt Dich ploetzlich.
Du fuehlst Dich mit einem Mal nicht gut... kalt laeuft es Dir den Ruecken
hinunter, Schweiss bildet sich auf Deiner Stirn. Dein Magen beginnt sich
umzudrehen, der Kopf brummt... etwas schmerzhaftes manifestiert sich in
Deinen Gedanken... Du fuehlst... Deinen Schutzgeist! Es geht ihm nicht
gut... er windet sich in Qualen.

Dein Schutzgeist teilt Dir mit: Wulfyth koennte uns vielleicht helfen...

Die Schmerzen verschwinden.

Ein Strudel erfasst Dich.

Das Innere dieser Huette weist genausowenig Pflege auf wie ihr Aeusseres ver-
muten laesst. Dafuer liegen ueberall, pedantisch geordnet, getrocknete Kraeu-
ter und Pflanzenteile herum und erfuellen den Raum mit wuerzigem Duft. In
einer Ecke sitzt, oder besser gesagt kauert, ein alter Mann auf einem Haufen
grober Tuecher.
Es gibt einen sichtbaren Ausgang: raus.
Ein baertiger alter Mann.

Wulfyth beachtet Dich gar nicht.

Du gehst langsam auf Wulfyth zu, der weiterhin stur geradeaus schaut.

Du sagst: Hallo Wulfyth, ich hatte gerade ein seltsames Erlebnis...
Du sagst: Mein Schutzgeist erschien in meinem Kopf, ich hatte Schmerzen...
Du sagst: nun bin ich hier... aber warum und wieso weiss ich nicht...

Du gruebelst.

Wulfyth sagt: Es ist wahr, Ich hab es mit eigenen Augen gesehen! Ich war
Wulfyth sagt: dort! Das vierte Symbol!

Du sagst: Wie bitte?

Wulfyth richtet seinen Blick nun endlich auf Dich.
Wulfyth sagt: Nun, das zumindest... waren seine letzten Worte.

Du sagst: Wer? Wessen Worte?

Wulfyth seufzt leise.

Wulfyth sagt: Auf meinen Wanderungen im Norden der Insel fand ich einen im
Wulfyth sagt: Sterben liegenden Abenteurer und wurde Zeuge seines Ablebens.
Wulfyth sagt: Ich fand ihn kurz vor dem Abzweig zum Kloster des Ky'leann
Wulfyth sagt: Athtakh. Seine Hand zeigte zitternd in Richtung der Nebelberge.
Wulfyth sagt: Dann hauchte er sein Leben aus.

Du sagst: Die Moenche...?

Wulfyth wischt meine Vermutung mit einer harschen Handbewegung weg.

Wulfyth sagt: Das dachte ich zuerst auch. Aber er hatte keine aeusseren
Wulfyth sagt: Verletzungen. Er sah eher... mental erschoepft aus. Ausserdem
Wulfyth sagt: konnte ich mich dem Eindruck eines gewissen... Rauschzustandes
Wulfyth sagt: nicht erwehren. Sehr seltsam, das.

Du sagst: Und... das vierte Symbol? Was meinte er damit? Koennte es wahr
Du sagst: sein? Koennte es... tatsaechlich wahr sein?

Wulfyth sagt: Es gibt seit einiger Zeit Gemunkel unter den Dorfbewohnern.
Wulfyth sagt: Man hoert ja immer vieles und noch mehr neues... aber nun...
Wulfyth sagt: die Geruechte scheinen sich zu bestaetigen.

Du sagst: Hmm, was hat das nun mit meinem Anliegen zu tun? Ich bin herge-
Du sagst: kommen... hm, ich weiss gar nicht mehr genau wie... jedenfalls
Du sagst: hat sich mein Schutzgeist gemeldet... er scheint Hilfe gebrauchen
Du sagst: zu koennen und hat mich an Dich...

Wulfyth starrt Dich an.

Wulfyth sagt: Ja, genau das hat der Abenteurer auch noch erwaehnt! Richtig,
Wulfyth sagt: deshalb kam ich ueberhaupt darauf, Dir von ihm zu erzaehlen.
Wulfyth sagt: Sein Schutzgeist litt Qualen und er wusste weder ein noch aus.
Wulfyth sagt: Tagelang irrte er auf Akhar Nth'tar herum, in der Hoffnung,
Wulfyth sagt: ihn zu finden... nun, das hat er wohl.

Nach einer kleinen Pause, die man als eine Trauerminute fuer den
verstorbenen
Abenteurer deuten koennte, nimmt Wulfyth das Gespraech wieder auf.

Wulfyth sagt: Ich weiss auch nicht viel mehr. Moeglicherweise findest Du die
Wulfyth sagt: Antwort, wenn Du den Dingen in den Nebelbergen auf den Grund
Wulfyth sagt: gehst... aber...

Du sagt: Ja?

Wulfyth fixiert Dich.

Wulfyth sagt: Ich weiss nicht, ob die Welt schon bereit dafuer ist... es
Wulfyth sagt: scheint gefaehrlich zu sein!

Du murmelst: Das ist es doch immer.

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



Klatsch und Tratsch in Gwainabar (Caldra, 25. Mar 2012, 15:51:45):
Inwae hat mir letztens unter dem Siegel der Verschwiegenheit erzaehlt, dass 
einige Geschenke an die Amazonen, die in ihrer Huette verwahrt werden, so
hochwertig sind, dass sie sich nicht mal sicher ist, ob es sich nur um 
Nachbildungen handelt und einige Besucher auf die Idee kommen koennten, sie
verwenden zu wollen.
Ich verrate es natuerlich nicht weiter!

Ich verrate auch nicht, dass ich das Woerterbuch im Dorf gegen einen 
vollstaendigeren Fund ausgetauscht habe, der weitere Infos zu einem ganz
bestimmten geheimen Wort enthaelt ...

Caldra (verschwiegen)

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



Neue Runenstaebe (Gabylon,  6. Mai 2012, 23:04:01):
Hallo,


die Runenstaebe sind notwendigerweise nochmals erneuert worden. Es sollte
nun aber keine Probleme mehr mit verschwundenen Runen und Symbolen geben.


gab

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



Neulich auf Akhar Nth'tar II (Gabylon,  6. Mai 2012, 23:10:12):

...

Mit diesen Worten formt sich ein komplexes Bild in Deinem Kopf. Es ist das
vierte Symbol der Macht. Du solltest es in Deinen Runenstab schnitzen, bevor
die dunkle Seite in Dir es zu schwaechen vermag.

Als Du Dich wieder Deinem Schutzgeist zuwenden willst, ist er verschwunden.
Du spuerst zwar noch schwach seine Praesenz, aber ansonsten bist Du nur von
Dunkelheit umgeben.

Dann loest sich alles in Wirbeln auf. Du hast das Gefuehl, wieder im Hier und
Jetzt gelandet zu sein. Du erwachst wie aus einer Trance.

Ist das alles wirklich passiert? Dein Koerper fuehlt sich unversehrt an.
Alles, was geblieben ist, ist das Bild in Deinem Kopf...

> schau
Du stehst in einem kleinen Raum in den Nebelbergen. Welch beklemmendes
Gefuehl! Die Waende scheinen auf Dich zuzukommen. Hoffentlich stuerzt die
Decke nicht ein! Kehr lieber um, noch kannst Du es...

Du atmest tief durch. Was fuer eine Tortur, welch ein Ritt, welch ein Kampf!
Dein Herz rast immer noch. Nur langsam wird Dir bewusst, in welcher Gefahr
Du dort schwebtest... unvorstellbar.
Doch noch immer weisst Du nicht so recht, ob dies Traum oder Realitaet war.
Es fuehlte sich echt an, aber aufgrund der dort vorherrschenden Daempfe bist
Du Dir nun nicht mehr so sicher...

Du fuehlst Dich nicht gut. Es scheint Nachwirkungen der Daempfe zu geben...
Schwindel ueberfaellt Dich. Dir wird schwarz vor Augen.



Eine Ewigkeit spaeter erwachst Du. Muehsam schlaegst Du die Augen auf und
schaust in ein bartumranktes, wohlbekanntes Gesicht.

Wulfyth sagt: Na, das hat ja eine Weile gedauert. Du hast Glueck, dass ich
Wulfyth sagt: gerade in der Naehe war. Du warst zwar keiner unmittelbaren
Wulfyth sagt: Gefahr ausgesetzt, aber kalt ist es dort oben schon...

Du starrst immer noch muede drein. Dein Ruecken schmerzt irgendwie.
Wahrscheinlich vom Liegen. Wulfyth reicht Dir eine Tasse Tee. So etwas wie
Dankesworte rutschen Dir ueber die Lippen. 

Wulfyth sagt: Nun, da das Geheimnis um den armen Abenteurer gelueftet worden
Wulfyth sagt: ist, waere es vielleicht an der Zeit... aber, hmmm.

Wulfyth schaut Dich eindringlich an.

Auch wenn der aeussere Eindruck wahrscheinlich noch ein anderer ist, bist Du
innerlich nun hellwach.

Du sagst: Aehm... ja? Sprich ruhig weiter...?

Wulfyths Augen funkeln jetzt noch mehr als sonst.

Wulfyth fluestert: Das fuenfte Symbol der Macht... es scheint, als wuerde es
Wulfyth fluestert: tatsaechlich existieren!

Du haeltst den Atem an.

Wulfyth fluestert: Stell Dir vor! Ein kleiner Spaehtrupp der Trves hat es
Wulfyth fluestert: geschafft, das Land der Daemmerung zu durchqueren UND
Wulfyth fluestert: wieder zurueckzukommen. Was sie dahinter sahen... laesst
Wulfyth fluestert: mich stark vermuten, dass das fuenfte Symbol der Macht
Wulfyth fluestert: mehr als ein theoretisches Konstrukt ist...

Du hast nun spitzere Ohren als ein Elf.

Wulfyth raeuspert sich.

Wulfyth sagt: Nunja, ich weiss natuerlich in etwa, wofuer das fuenfte Symbol
Wulfyth sagt: da ist... allerdings hab ich es bisher immer als Legende
Wulfyth sagt: abgetan. Aber da Du ja nun schon beim vierten Symbol Erfolg
Wulfyth sagt: hattest, koenntest Du Dich ja vielleicht auf dieses
Wulfyth sagt: moeglichweise etwas groessere Abenteuer einlassen und mir dann
Wulfyth sagt: berichten...?

Langsam, ja fast behaebig stehst Du auf. Das fuenfte Symbol der Macht. Traum
Deiner schlaflosen Naechte. Oder so. Nun bekommst auch Du funkelnde Augen...
Enorme Kraefte... mentale Ueberlegenheit... Gegner, die reihenweise nur so
umfallen... Verschmelzung von Raum und Zeit...

Dein Blick wird klarer.

Du sagst: Aehm... wo fange ich denn da ueberhaupt zu suchen an?

Wulfyth winkt Dich zu sich heran und beugt sich vor.

Wulfyth zischt Dir etwas ins Ohr, was Du selbst kaum verstehst.

Du ziehst die Augenbrauen hoch.

Du sagst: Die hatte ich gar nicht mehr auf der Rechnung. Aber stimmt,
Du sagst: gehoert habe ich schon von ihr...

Du machst eine tiefe Verbeugung. Die leere Tasse Tee stellst Du ab.

Du sagst: Wieder einmal gehts los, in ein neues Abenteuer. Habt Dank, weiser
Du sagst: Mann!

In Wulfyths laesst sich zum Abschied zu einem Nicken herab. In seinen Augen
meinst Du ein klein wenig Anerkennung gesehen zu haben.

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



Sperrung Nebelberge (Gabylon,  6. Dez 2012, 00:44:57):
Moin,

aufgrund von kleineren Bauarbeiten ist der Zutritt ins Innere der Nebelberge
voruebergehend geschlossen worden. Die Wiedereroeffnung wird hier von Caldra
bekanntgegeben.

gab

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



Entsperrung Nebelberge (Caldra,  9. Dez 2012, 11:38:42):
Nabend,

nach Abschluss der Umbauarbeiten ist der Zutritt ins Innere der Nebelberge
wieder erlaugt. 

Caldra

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



Neues aus dem Wald... (Gabylon, 13. Dez 2012, 14:35:44):
Tach,

ein grosser Waldbewohner hinterlaesst nun auch etwas, wenn man ihn toetet,
was besonders fuer Kampfzwerge und auch Trves'sche Felinen interessant sein
duerfte.

gab

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



Zyklopenschwert (Miril,  4. Feb 2013, 22:51:08):
Der ein oder andere faehige Schmied mag nun etwas mit Kolossos Schwert
anfangen koennen.

Viel Erfolg damit.

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



Superkuh! (Zesstra, 21. Mar 2014, 22:23:23):
Irgendwas hatte der Superkuh ihre Superkraefte geraubt. Die hab ich ihr dann
mal wiederbeschafft.
Danke an Bugfix fuer die passende Meldung.

Zesstra

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



Naechsten Ausruestungsverlust.... (Rhoakka, 24. Mar 2016, 17:20:23):
so langsam verliere ich die Lust. :) Beim ausprobieren des Artefakts von den
Moenchen des Klosters auf TI, ist ein FRZG aufgetreten, danach lag bei der
leiche nur das Artefakt und der Schluessel eines Moenchs. Im Aschehaufen war
nix zu finden und sonst im raum auch nicht. Getest habe ich das ganze beim
Koch, also auch keine Stelle, wo schnell etwas verschwindet. Aergerlich das
ganze...
Oder ueberseh ich was und der kram landet irgendwo ...

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



Re: Naechsten Ausruestungsverlust.... (Humni, 24. Mar 2016, 17:36:44):
~#! rn=Rhoakka rt=1458836423 rg=d.inseln
~#! tid=1458836423
Huhu,

der Ausruestungsverlust an dieser Stelle ist Absicht, der FiRZG nicht. Ich
werde diese Stelle aber bearbeiten. Das ist im Urlaub nur nicht ganz so
einfach, dank schlechter Verbindung.

Ich selbst finde Ausruestungsverluste nicht gut, nur um das klarzustellen. Die
Entscheidung darueber ist aber nicht allein meine.

Humni

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



Steile Klippen, sandige Buchten, hungrige Seevoegel ... (Notstrom, 30. Mai 2016, 23:40:32):
    Huhu,

wie einige von Euch schon auf der Ebene bemerkten, kann man nun auch fuer
den suedlichen Teil der Inseln seine ungeloesten Miniquests orakeln.

Begebt Euch an Krylaios' Ostkueste und seht selbst!

Viel Spass,
Notstrom.

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



Re: Steile Klippen, sandige Buchten, hungrige Seevoegel ... (Notstrom,  2. Jun 2016, 22:54:15):
~#! rn=Notstrom rt=1464644432 rg=d.inseln
~#! tid=1464644432
Huhu,

ein Kraut war nicht ganz korrekt eingetragen. Das wurde nun behoben, frisch
gepflueckte Exemplare sollten also wirksam sein.

Hth,
Notstrom.

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



Neulich auf Tortuga (Miril,  4. Jul 2016, 23:34:47):
Guten Morgen Daniel, sagte Ben Gunn. Guten Morgen. Na, wie geht's den alten
Knochen heute?, erwiderte Daniel. Es muss. Manchmal habe ich Schmerzen in den
Sehnen des linken Beins, aber ich will ja nicht jammern. Schliesslich bin ich
weder paranoid noch android. Ben fuhr sich mit der Hand durch den weissen Bart
und laechelte. Wollen wir einen Morgenspaziergang am Strand machen? Die
Bibliothek oeffnet doch heute erst spaeter. Ben blickte Daniel erwartungsvoll
an. Das wird uns gut tun, Bewegung ist immer gut. Ja, warum nicht., entgegnete
Daniel. Vielleicht gibt es ja sogar ein paar neue Seherhaeuser zu bewundern.

Die beiden machten sich auf den Weg zum Strand. Oben auf den Klippen blies ein
kuehler Wind. Ben reckte sich und atmete tief ein. Ah, die frische Seeluft. Es
gibt nichts Besseres! Dann wanderten sie hinunter zum Strand. Der Eiswagen war
um diese Uhrzeit noch geschlossen, aber den beiden war auch nicht nach Eis
oder Kaffee zumute. Sie gingen weiter Richtung Westen, den langen Sandstrand
entlang, und genossen den Morgen.

Am Westende des Strandes blieb Ben vor Lorbas Leuchtturm stehen. Schade, dass
hier schon lange kein Licht mehr zu sehen ist. Aber Lorbas ist verschwunden.
Ich hoffe, er kommt irgendwann wieder. Gluecklicherweise gibt es hier keine
Riffe im Meer. 

Er blickte aufs Meer hinaus zu der kleinen Insel im Sueden. Daniel, schau mal
dort! Siehst Du das auch? Daniel blickte hin|ber. Du meinst die Rauchsaeule,
die dort aufsteigt? Ja, die sehe ich auch. Sag bloss, dort wohnt jetzt jemand?
Ich habe keine Ahnung., erwiderte Ben. Vielleicht findet sich ja mal ein
Abenteurer, der dort nachschauen geht. Ich bin jedenfalls zu alt fuer sowas.
Ben holte seine Pfeife hervor, stopfte sie und nahm einen langen Zug. Ich
werde mal dem Wanderer einen Brief schreiben, vielleicht schickt er welche
vorbei.  Daniel nickte zustimmend. Gut! Dann lass uns mal in die Stadt gehen.
Ich muss sowieso zurueck und du kannst gleich zur Post gehen und deinen Brief
aufgeben.

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



Was lange waehrt ... (Miril,  4. Jul 2016, 23:35:32):
... ist noch vor Taramis da.

Nach langer Zeit habe ich endlich ein Projekt fertiggestellt, das schon seit
2005 in der Schublade liegt. Damals hatte ich einen Grundkurs Informatik, der
ein bisschen Programmieren im Epacris gelernt hat. Im Rahmen dieses
Unterrichts ist eine kleine Insel entstanden, die wir fuer das MorgenGrauen
gebaut haben. Wie es bei Schuelerprojekten haeufig der Fall ist, war nicht
alles zum Ende des Schuljahres fertiggestellt und auch nicht alles brauchbar.
Einige Nachtreffen waren noetig, an denen Krstfrs, Yuli und VanHelsing
beteiligt waren. Bei diesen moechte ich mich an dieser Stelle auch noch mal
ganz herzlich fuer die Arbeit bedanken.
 Aber auch dann war das Ganze noch nicht anschlussreif und lag aufgrund
mangelnder Motivation in besagter Schublade herum. Jetzt hat es dann aber
endlich doch noch geklappt, nachdem ich einen weiteren Anlauf genommen und
alles noch mal ueberarbeitet habe.
Es ist sogar eine neue Quest fuer das MG daraus geworden, die euch hoffentlich
gefaellt. Es gibt zwar keine epische Hintergrundgeschichte, aber jeder
Schueler hat seine eigene kleine Aufgabe gestaltet, die mit den anderen zu
einem grossen Ganzen zusammengesetzt wurde. Mit dem Hoerrohr eines gewissen
Shaky laesst sich das auch feststellen und der Urheber erkunden.

So, genug der Rede, dann wuensche ich euch mal viel Spass mit Der Schatzinsel.

Miril

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



Flakon (Miril, 19. Jul 2016, 11:58:33):
Huhu,

ein Flakon sollte jetzt hoffentlich keine unerwarteten Fehlermeldungen mehr
von sich geben, wenn man versucht, etwas zu trinken. Sollte euch noch was
auffallen, bitte Bescheid geben.

Miril

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



Guertel aus dem Fiebersumpf (Caldra, 15. Dez 2016, 22:22:19):
Dank Bugfix ist ein gemeiner Bug im Guertel ausgebaut worden, der die Staerke
des Guertels zunichte machte, wenn ein NPC den benutzt hat.
Alle Guertel wurden ausgetauscht. Wenn es Probleme gibt, immer zu mir damit.

Caldra

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



Diskriminierende Schaedel (Humni, 25. Jul 2018, 12:35:11):
Ein auf Toeters Insel befindlicher Schaedel wurde soeben abgewertet.

Er ist jetzt nicht mehr in der Lage, bestimmte Dinge zu zerstoeren, auch wenn
er das noch versucht.

Es tut mir leid, dass ich das so sagen muss, aber dieser Schaedel war auf
diese Art einfach zu maechtig.

Humni

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



Tortuga (Arathorn,  5. Sep 2020, 12:32:42):
Hallo zusammen,

ich habe gerade auf Tortuga etwas aufgeraeumt und unbenutzte Dinge entsorgt.
Ich bin mir recht sicher, wirklich nur Unbenutztes erwischt zu haben, aber
falls ich doch etwas wichtiges weggeworfen habe und es deshalb zu Fehlern im
Raum-Zeit-Gefuege kommt, laesst sich das recht schnell korrigieren.

Wie ueblich braucht ihr dann keinen separaten Bug abzusetzen, aber etwas
Geduld koennte hilfreich sein. ;-)

Ich gehe davon aus, dass es durch die Aenderung nicht zu versteckten
Fehlfunktionen kommen wird, sondern primaer RZG-Fehler auftreten sollten.

Gruss, Arathorn.

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



Feuerinsel und Magieinsel (Arathorn, 27. Dez 2020, 19:43:24):
Hallo zusammen,

ich habe heute eine groessere Zahl von Raeumen, NPCs und Objekten auf beiden
Inseln geaendert, um diverse Fehler zu beseitigen. Das meiste war Kleinkram,
von dem ihr nix merken solltet, aber es kann trotzdem sein, dass einige Dinge
dabei kaputtgegangen sind.

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.

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



Ein Schaedel von Akhar Nthar ... (Humni,  3. Sep 2021, 21:34:09):
... sollte noch grob so funktionieren wie bisher, aber er braucht nun leider
ein wenig von eurer Konzentration. Das war ein Balance-Beschluss.

Sollte er nicht mehr so funktionieren wie gewuenscht, meldet euch bitte.

Humni, i.A. der Balance

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



Re: Ein Schaedel von Akhar Nthar ... (Humni,  3. Sep 2021, 21:55:58):
~#! rn=Humni rt=1630697649 rg=d.inseln
~#! tid=1630697649
Okay, und nun hab ich Mist gebaut ...

Ich hab alle Schaedel zerstoert. Sorry.

Meldet euch bei mir, wenn ihr einen hattet.

Ja, ich weiss, ihr hattet alle einen ...

Humni

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



Tauchen in Atlantis (Bugfix,  6. Mai 2022, 12:29:52):
Moin zusammen,

Die Sauerstoffflasche fuer Atlantis wurde technisch etwas ueberarbeitet und
ist jetzt ein Standard-Tauch-Gegenstand. Das heisst, ihr koennt jetzt die
Sauerstoffflasche auch in anderen Gebieten nutzen, aber auch andere
entsprechende Gegenstaende in Atlantis. Fuer letzteres waren einige
grossflaechige Aenderungen noetig, ich hoffe, es gibt keine Probleme. Falls
doch, bitte meldet euch.

Bugfix

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



Re: Tauchen in Atlantis (Bugfix,  6. Mai 2022, 12:32:24):
~#! rn=Bugfix rt=1651832992 rg=d.inseln
~#! tid=1651832992
Achja, die Flasche muss man jetzt anziehen, damit man aus ihr atmen kann. Und
ausziehen, damit man es nicht mehr tut. ;-)

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



Re: Tauchen in Atlantis (Vardion, 15. Mai 2022, 11:45:48):
~#! rn=Bugfix rt=1651832992 rg=d.inseln
~#! tid=1651832992
Als Hobbytaucher komme ich umhin, vom Tauchen mit einer Sauerstoffflasche
abzuraten. Mit reinem Sauerstoff sollte man nicht tiefer als 4m tauchen, da ab
einem ppO2 von 1,4 bar die Gefahr einer Sauerstoffvergiftung
(Sauerstofftoxikose) stark ansteigt. Ich empfehle das Tauchen mit Pressluft
oder anderen besser geeigneten Gasgemischen.

TLDR: ein besseres Wort waere "Luftflasche"

Vardion

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



Re: Re: Tauchen in Atlantis (Anthea, 16. Mai 2022, 09:55:50):
~#! rn=Vardion rt=1652607948 rg=d.inseln
~#! tid=1651832992
Aber "Sauerstoffflasche" hat die netten 3 f in der Mitte, was viel lustiger
aussieht als ein oedes "Luftflasche".

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



Re: Re: Tauchen in Atlantis (Bugfix, 13. Jul 2022, 16:35:08):
~#! rn=Bugfix rt=1651833144 rg=d.inseln
~#! tid=1651832992
Moin,

leider hab ich die Flasche beim Update kaputtgemacht. Abstuerzili hat es
gefunden, vielen Dank fuers Melden.

Alle im Umlauf befindlichen Exemplare habe ich uebrigens schon ersetzt, ihr
braucht also keine neuen zu besorgen.

Bugfix

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



Re^3: Tauchen in Atlantis (Arathorn, 25. Jul 2022, 20:51:24):
~#! rn=Bugfix rt=1657722908 rg=d.inseln
~#! tid=1651832992
Moin,

leider war die Flasche an anderer Stelle auch noch kaputt. Ich habe den Fehler
beseitigt und die im Umlauf befindlichen Flaschen ersetzt.

Gruss, Arathorn.

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



Re^4: Tauchen in Atlantis (Zaphob, 25. Jul 2022, 20:55:08):
~#! rn=Arathorn rt=1658775084 rg=d.inseln
~#! tid=1651832992
In der Diskussion kam die Frage auf, wieso die Flasche schlechter geworden ist
als vorher. Frueher war es problemlos moeglich, leere Flaschen mit sich
rumzuschleppen, wenn man grad nicht in Atlantis weilt. Heute bringt das den
Tod. Die Idee war, dass man sich vernuenftigerweise die leere Flasche vom
Gesicht reissen sollte, und dann normale Umgebungsluft atmen kann. Ausser,
wenn man unter Wasser ist, dann stirbt man natuerlich weiterhin.

Zap*

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



Re^5: Tauchen in Atlantis (Arathorn, 25. Jul 2022, 20:58:11):
~#! rn=Zaphob rt=1658775308 rg=d.inseln
~#! tid=1651832992
Um kleinlich zu sein: Man kann auch weiterhin leere Flaschen mit sich
rumtragen, solange man sie nicht angezogen (ausgeruestet) hat. Zu der Frage,
warum die Flasche beim Auftauchen nicht mehr automatisch ausgezogen wird, kann
ich allerdings nichts sagen.

Arathorn.

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



Re^6: Tauchen in Atlantis (Bugfix, 26. Jul 2022, 12:16:06):
~#! rn=Arathorn rt=1658775491 rg=d.inseln
~#! tid=1651832992
Es gibt leider keine Moeglichkeit zu erkennen, ob der Spieler sich unter
Wasser befindwet oder nicht. In Atlantis koennte ich es natuerlich am Pfad des
Raums erkennen, aber ueberall sonst halt nicht.

Bugfix

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



Re^7: Tauchen in Atlantis (Zaphob, 26. Jul 2022, 13:28:06):
~#! rn=Bugfix rt=1658830566 rg=d.inseln
~#! tid=1651832992
Die Idee war nur, die Flasche auszuziehen, wenn sie leer ist.
Dann kann der Spieler selbst pruefen, ob er unter Wasser atmet oder nicht.

Zap*

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



GladioPolis (Bugfix, 20. Sep 2022, 12:59:00):
Moin,

Bei GladioPolis gibt es jetzt eine Moeglichkeit, ohne Grafik anzuschauen, wem
welches Feld gehoert und was darauf erbaut wurde. Infos dazu gibt es ueber die
ueblichen Mechanismen im Spiel.

Viele Gruesse
Bugfix

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



Schiebepuzzle auf TI (Bugfix, 21. Sep 2022, 12:42:26):
Moin,

Das Schiebepuzzle, welches den Eingang zu einer bestimmten Gruft blockiert,
hat jetzt auch eine Version fuer No-ASCII ohne stoerende Rahmen.

Bugfix

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



Gladiopolis - Extralook (Bugfix, 21. Sep 2022, 22:22:14):
Moin,

Es gab eine technische Aenderung am Extralook fuer die GladioPolis-Gewinner.
Aktiv wird die zwar erst mit Ende / Reboot, sofern es Probleme geben solltet,
meldet euch aber bitte.

Bugfix

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



Re^8: Tauchen in Atlantis (Bugfix, 25. Sep 2022, 18:08:12):
~#! rn=Zaphob rt=1658834886 rg=d.inseln
~#! tid=1651832992
Moin,

die Flasche funktioniert jetzt wie vorgeschlagen. Allerdings nur neu geholte
Exemplare.

Bugfix

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



Para-Harpyie (Bugfix, 27. Dez 2022, 12:50:04):
Moin,

komische Erfahrungen bei der EK-Vergabe der Para-Harpyie sollten jetzt der
Vergangenheit angehoeren. Allerdings habe ich sie dafuer grossflaechig
ueberarbeitet, daher sind Bugerfahrungen in naechster Zukunft nicht
ausgeschlossen.

Bugfix

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



Fernrohr (Bugfix, 30. Dez 2022, 11:21:47):
Moin,

die Balance hat sich noch einmal mit dem Fenrrohr aus der Leuchtturmquest bzw.
dem Seherladen beschaeftigt und es ein bisschen angepasst:
- es zerfaellt nicht mehr von selbst nach 21 Tagen
- es zerfaellt nicht mehr von selbst nach 10 Anwendungen
- in dunklen Kellern wird man bei Fehlschlaegen nicht mehr Blind
- dafuer gibt es nach jeder Anwendung eine gewisse Wartezeit, bis es wieder
  funktioniert

Bei Problemen gebt mir bitte eine Rueckmeldung.

Viel Spass
Bugfix

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



Re: Fernrohr (Bugfix, 30. Dez 2022, 11:23:04):
~#! rn=Bugfix rt=1672395707 rg=d.inseln
~#! tid=1672395707
Achja, wie ueblich nur bei neu geholten bzw. per ende oder Sehertruhe
ausgetauschten Exemplaren.

Bugfix

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



