Nur, um die 1970 endlich mal wegzukriegen... (Freund, 19. Jul 1993, 11:18:36):
Ist eigentlich noch jemand fuer den Dschungel zustaendig?
Osterhasi, den Dschungelhasen habe ich schooooon soooooooo laange
nicht mehr gesehen...:(

Morgengrauens FREUND.

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



Standard-Dschungelraum :) (Angus, 12. Jul 1994, 18:20:42):
Hallo !
Moensch ist das leer hier :) Wird Zeit, dass der Dschungel "oeffnet"
Leider kann das aber noch etwas dauern (zumindest mit meiner Quest im
Dschungel),
da ich aufgrund von Spielerbeschwerden (Stichwort "Spielspass") und des
daraus
resultierenden Labyrinth-Verbots, einen Teil besagter Quest voellig
umschreiben
muss... Keine Sorge, leichter wirds dadurch bestimmt nicht, es dauert halt
etws
laenger mit der Fertigstellung... (aber die besten Fiesheiten fallen einem ja
bekanntlich ein, wenn man ueber was zweimal nachdenken muss ;)
Um jedoch zu zeigen, dass ich einer derjenigen bin, der sich solche
"Beschwerden"
SCHWERST zu Herzen nimmt, und auch Besserung gelobt (wirklich, das Labyrinth
war ja noch VIEL zu HARMLOS !!!), habe ich fuer den Dschungel einen Standard-
Raum entworfen, der allen Spielerwuenschen jetzt und in der Zukunft gerecht
werden sollte. Da es wie gessagt mit der Oeffnung noch etwas dauert, hier
fuer die ganz Ungeduldigen ein kleiner Vorgeschmack aus meiner Quest :

Du betrittst einen Raum, im Dschungel... Ueberall das selbe, Blaetter,
Pflanzen,
Baeume, gefaehrliche Tiere... (Ueberfluessige Details werden weggelassen !)
OB DA IN DEM ASTLOCH WOHL EIN ZAUBERTRANK VERSTECKT SEIN KOENNTE ???? (Wage
Hinweise auf eventuelle ZT's)
Auf jeden Fall laeufst Du gen Norden in eine fiese Falle !!! (Auch Fallen
sollten
ersichtlich sein, BEVOR man sie betritt...)
Das Monster in diesem Raum hat Level X, eine Ruestung von AC Y, und bringt Z
XP,
wenn man es Plaettet !! (So ist der Spieler optimal informiert !)
Sage das Zauberwort, welches in die Rinde des Baumes geritzt ist (Syntax: UNT
RINDE,
dann: SAG ABRACADABRA) (Syntax-erklaerung nicht vergessen ;) und Du bekommst
sofort 999 AP und kannst Seher werden, IST DAS NICHT SCHOEN ?? :)))
(ZUUU schwer solls ja nun auch nicht werden !)
Wenn Du hier deine Ausruestung verbuddelst, ueberdauert sie jeden Reboot,
ausserdem gibts auf hier vergrabenes Geld sogar ZINSEN :)) (hiermit waere dem
Wunsch nach einer Bank genuege getan !)
Im Sueden gibt es ausserdem eine Megawaffe, die mit einem Schlag JEDES
Monster zerlegt.

HERZLICHEN GLUECKWUNSCH, DU HAST DAS MUD-SPIEL GEWONNEN !!!

Naaa ??? Gefaellt das ??? :))
Bleibt nur noch eine Frage: Wo ist DIESER TOLLE RAUM versteckt ?
Viel Spass beim Suchen wuenscht
           Angus, der Finstere !

P.S.: Ach ja, eins haett ich fast vergessen: Der Raum hat EINEN Nachteil....
      Es wird ihn nie geben... (er wuerde MIR den "Programmierspass"
verderben !!)

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



re-angus (Thorin, 12. Jul 1994, 18:45:48):
Statt Dschungel sollte der Artikel in Witze, wenn du mich fragst. Aber du
hast denselben merkwuerdigen Humor wie ich :))). Aber im Ernst : ich frag mich
ob du dich wirklich auf die Fuesse getreten fuehlst, wenn nein, gut so, denn
es ist zum besseren des
MUDS, wenn doch, Pech gehabt :)))) Denn was anderes als Labs kann man
wirklich von Magiern erwarten wie ich finde...
Servus, Thorin

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



Neues Quest (Sethos, 10. Aug 1994, 12:42:22):
Hallo!

Jetzt schreibe ich auch (zum Ersten mal in dieser Zeitung) was.
Bald wird im Dschungel ein neues Quest angeschlossen werden, in
dem es weniger um Schlachten und Metzeln geht. Ich habe absichtlich versucht,
eine
Quest zu schreiben, in der man auch jede Menge Spass haben soll. Die Meinung
der Tester
(dank an Drizzt, Kassandra, Tremor, Gatsby und Kirk, hoffentlich habe ich
keinen vergessen)
in dieser Hinsicht ist eindeutig positiv. Ich hoffe das auch die
Spieler es so sehen werden. Also, aufgepasst, demnaechst gibnt es eine Quest
mehr.
Gruesse
Sethos

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



Neue Quest (Sethos, 15. Aug 1994, 18:00:58):
Hi, ihr alle,
jetzt ist es also soweit, im Dschungel (es wird ihn nun endlich
geben) gibt es was zu tun. Es wird nicht mehr lange dauern,
bis man in den Tiefen des gruenen Urwaldes nach dem
Schicksal von Olaf Huusg forschen kann. Voll von
Gefahren und noch voller von Unterhaltung,
so hoffe ich, kann man sich als Urwald-
faehrtensucher betaetigen. Ueber eine starke Resonanz, wie immer
sie auch ausfaellt, wuerde ich mich sehr freuen.

Also, viel Spass beim Questen, im neuen Abschnitt des MG.

Viele Gruesse,

Sethos

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



Ofiziell offen! (Sethos, 17. Aug 1994, 12:39:27):

Tiefer im Dschungel haben neuere Forschungen ein Dorf ausfindig gemacht.
Geruechten zu Folge, soll es sich um ein Dorf der Wangas handeln. Eine
friedliche Sippe, die im Dschungel ein gemuetliches Leben
fuehren und niemanden etwas Boeses wollen. Hier, so
die Forscher, soll es auch Arbeit fuer Spieler geben, doch
genauere Informationen wollte das Team vorerst nicht
preisgeben. Der Weg zum Dorf ist etwas beschwerlich, aber durchaus lohnend.
Es soll im suedlichen
Teil des Dschungel liegen. Soweit die Berichte.

Auch im Namen von Gum, der momentan keine Zeit hat, soll ich
allen Muddies viel Spass im neuen Gebiet des MG wuenschen.
Der Dschungel und das Quest sind ofiziell offen, betretbar,
spielbar und loesbar.


Gruesse

Sethos, Gum

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



Zu der Huusg-Quest (Sethos, 25. Aug 1994, 17:59:36):
Ich will hier noch einige Anmerkungen fuer Spieler der
Huusg-Quest machen:

1) Der Vogel ist NICHT an einen Raum gebunden, also nicht
   in einem einzigen Raum warten, wo er erscheinen sollte
   (hier wird er zwar in das Spiel eingefuegt, fliegt aber
    kurz darauf weg, in einen anderen Teil dieses Dschungels).

2) Man muss nicht die absolute Metzelorgie abziehen, um an
   den Stein im Dorf zu gelangen.

3) Gegen Ende der Quest sollte man sich reiflich ueberlegen,
   ob man die Geister fordern soll oder nicht.
   (Einige werden schon wissen, was ich damit meine.)

So, das waren die haeufigsten Anfragen zu meiner Quest und
nun weiter viel Spass beim Spielen,

Sethos

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



re: zu der huusge quest (Guldukat, 26. Aug 1994, 15:18:32):
3) Gegen Ende der Quest sollte man sich reiflich ueberlegen,
   ob man die Geister fordern soll oder nicht.
   (Einige werden schon wissen, was ich damit meine.)

 *grins*

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



Re: re: zu der huusge quest (Steve, 29. Aug 1994, 23:19:17):
Ich hab nochmal die Huusg-Quest durchgespielt, aber ich komme einfach
nicht darauf, wie man an den Schluessel zur Vitrine kommt, ohne den Waechter
zu toeten.
Weiss da jemand Rat ?

             Ciao, Euer Steve


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



Huusg-Quest (Guybrush, 28. Sep 1994, 14:51:59):
Ich wuerd die Quest ja auch viel lieber ohne Gemetzel loesen, aber jetzt lauf
ich seit sicher 3 (Spiel) Stunden durch das Dorf, finde aber keinen Hinweis.
Soll ich Randale im Dorf machen (waechter-Gespraech) und wenn, dann wie? Soll
ich mit den beiden anderen Waechtern Karten spielen? Ist was im Schrank? (der
geht nicht auf). Wie beleidige ich den Haeuptling, den Stolz der Wache?

	Guybrush, sich seine Gedanken machend...

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



Credits ;-) (Angus, 10. Nov 1994, 18:11:47):
Hier ein kleines Dankeschoen an alle, die mir beim Schreiben
meiner Quest behilflich waren, im Speziellen:
- Hate und Troy fuer Doku in /dev/brain ;)
- Vrai fuer einen schnellen Hack... (jaaa... es laeuft!) :))
- Gum fuer 6 (ja, sechs!) Seiten Typos ... (aehh...danke, denke ich...)
- Kirk, Yantro und Toeter fuer exzessives Testen
und nicht zuletzt Firma Erdinger fuer die nie versiegende
Weissbierquelle... (*Hicks*)

Weitere Typos, Bugs und aehnliches an mich,
Flames und Gemecker -> /dev/null....

   - Angus - Slayer Inc.&Co.

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



Wangadorf (Isnogood, 16. Nov 1994, 13:28:57):
Ist irgendetwas mit dem Wangadorf? Auf dem normalen weg scheint man nicht
mehr hinzukommen?

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



Tote Bedienung? (Sethos,  7. Dez 1994, 16:05:37):
Fuer diesen, nun zugegeben etwas seltsamen Bug (wer will schon von einer
halb verwesten Leiche bedient werden?), wurde im Zuge einiger Realitaets-
anpassungen eine Angleichung an bestehende Formen vorgenommen.
Wir versprechen, das derartige Abartigkeiten der Vergangenheit angehoehren
und wuenschen viel Spass im Dschungelgebiet.

Sethos

P.S.: Jetzt aber nicht boese sein, wenn Ihr seht was passiert. (Keine
Angst, es ist absolut ungefaehrlich!!)

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



Knuddeln (Anatol, 20. Feb 1995, 13:24:53):

High ihr alle.

Es geschah am Wochenende, irgendwann gegen halb fuenf morgens, dass ein
Magier namens Zuerileu auf der Allgemein-Ebene fragte, was denn eigentlich
"knuddeln" nun genau sei.
Zunaechst wollte ich mal herzhaft grinsen, dann fiel mir zum Glueck noch
rechtzeitig ein, dass ich es ihm nicht haette erklaeren koennen.
Die "Antworten" auf Zueris Frage waren aber allerdings auch nur sehr vage...

Deshalb moechte ich das jetzt mal so in den Raum stellen:

   Was genau ist "knuddeln"?

Auf die Antworten (besonders auf die von Semira und Torfdueng) gespannt...

Anatol (knuddelt und wird geknuddelt)

PS: JA, dieser Artikel steht absichtlich in der falschen Rubrik. Die war eh
leer und da stoerts auch keinen.

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



Re: Knuddeln (Cerebus, 20. Feb 1995, 13:33:01):
#! rn=Anatol rt=793283093
Moin, Moin!

Hm.. Was ist Knuddeln?
Zunaechst einmal muss ich sagen, dass ich mir das Wort auch im rl angewoehnt
habe und oefter mal Freunde, WG-Kumpanen etc. knuddle.
Meine Definition von 'Knuddeln' lautet:
Das uneingeschraenkte Liebhaben von einer Person, ohne dabei
(notwendigerweise) irgendwelche Hintergedanken (beischlafmaessiger Art :-)) zu
haben.

Diese Definition erfuellt die Kriterien a) Unverstaendlichkeit und b)
Kompliziertheit und ist somit gelungen.

Dreifach "Gut Rauch"
Cerebus

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



Re: Re: Knuddeln (Bongo, 20. Feb 1995, 14:24:37):
#! rn=Cerebus rt=793283581
Also unter knuddeln verstehe ich ein liebes in den Arm nehmen, druecken,
und vielleicht auch mal Stupsen oder Knuffen. Halt einfach nur eine
Art, jemanden zu zeigen, dass man ihn/sie sympathisch findet ohne
in Gedanken so weit zu gehen und gleich an eine Anmache oder gar an Sex zu
denken. Dafuer gibt es andere verben :-))

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



 (Semira, 20. Feb 1995, 17:04:49):
Alles Knuddeln oder was???

Nun treibe ich hier schon fast 1 Jahr mein Unwesen und es gibt immer noch
arme Muddies, denen ich die persoenliche Knuddeldefinition der Knuddelmaus
noch nicht an eigenem Leib demonstriert hab??? Das erstaunt mich doch sehr!

Bevor ich also zur Definition schreite hier erstmal eine herzliche Einladung
an alle Knuddelfreunde und solche die es werden wollen zu einem umfassenden
Knuddelseminar von und mit Semira.

Aber nun zur Sache. Was ist Knuddeln? Knuddeln ist keine Taetigkeit, Knuddeln
ist eine Lebensphilosophie (oder wie immer man das nach der Rechtschreibreform
schreiben darf). Knuddeln ist der beste Weg lieben Leuten zu zeigen, dass man
sie gerne hat und
(mist textpuffer zu klein) skeptischen Leuten zu zeigen, was fuer ein netter
Mensch/Muddie man ist. Funktioniert uebrigens in allen muds, auch in dem
namens RL.

Leider gibt es hier wie dort immernoch einige Unbelehrbare, die sich den
neuen Horizonten verschliessen, die ihnen das Knuddeln eroeffnen koennte.
Bedauernswerte, arme Wesen!

Naja, ich arbeite jedenfalls daran, diese neue Lebensgefuehl ueberall zu
verbreiten und gebe nicht auf auch die Skeptiker zu ueberzeugen...einige
Mega-Skeptiker ausgenommen...denn fuer die ist die Knuddelenergie vergeudet!

Hm, stelle gerade fest, dass es selbst mir nicht gelingt, Knuddeln
abschliessend zu definieren. So bleibt Euch allen nur das Experiment, um die
Wahrheit am eigenen Leib zu erfahren. Knuddelt, so werdet ihr geknuddelt. Oder
sagt mir einfach Hallo, dann
werdet ihr auch geknuddet. Ach eigentlich koennt Ihr machen, was Ihr wollt -
ich knuddel Euch trotzdem.


Tja, und so sage ich nun - von einem scrollendem Bildschirm und allmaehlich
einsetzendem Knuddelentzug genervt - tschuessi ihrs. Fuehlt Euch geknuddelt!
Es sei denn Ihr heisst T....

Die schnurrende Knuddelmaus Semira - ist uebrigens fuer Anregungen immer
dankbar!

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



Re: Knuddeln (Mateese, 20. Feb 1995, 19:03:07):
#! rn=Anatol rt=793283093
> Was genau ist "knuddeln"?
Inzwischen fast nur noch laestig.
 -- Mateese, gestandene Blut-Und-Schwert-Mudderin.

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



Re: Knuddeln (Aranya, 21. Feb 1995, 14:57:35):
#! rn=Anatol rt=793283093
Tja, nach Semiras langem Artikel traut man sich ja fast gar nicht, noch was
hinzuzufuegen...
Trotzdem noch eine fuer mich sehr wichtige Ergaenzung zum bereits gesagten/
geschriebenen (so Richtung Artikel 3 oder so): Knuddeln muss auch - zumin-
dest fuer mich - so ein kleines Schuetteln beinhalten. Also mehr als umar-
men oder druecken. Knuddeln eben. Knuddeln ist nicht statisch. Knuddeln ist
dynamisch!
Findet zumindest
                Aranya

PS: Endlich mal eine nette Diskussion in der MPA!

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



Re: Re: Knuddeln (Dancer, 21. Feb 1995, 23:22:12):
#! rn=Aranya rt=793375055
Schuetteln? Ich meine eher so in Richtung Rubbeln..Schrubbeln...knuffig
durchfluppen...sowas....also nicht so in der Art von Abdropfeln, sondern
mehr hinterglurpfig kampfschnubbeln... aehm... ach...

Dancer


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



Re^3: Knuddeln (Zuerileu, 22. Feb 1995, 01:43:32):
#! rn=Dancer rt=793405332
Sali zaeme,
Ach irgentwie leuchtet mir die ganze sache schon ein was man darunter
versteht.Aber ich kenne halt das schweizerdeutsche Wort nicht dafuer weil es
kein speziellen Begriff dafuer giebt.
Nun vielleicht 'schmusae' aber das ist auch wieder fuer Liebespaare, oder
fruendschaftlichs Umarmae (freundschaftliches Umarmen) kommt der Sache schon
naeher. tja was soll ich sagen ich stimme Semira zu und Anatol danke ich fuer
das wirklich gute Thema und natuerlich allen die geschrieben haben und
hoffentlich werden.! =:) Nun leider giebts so etwas wie knuddeln in real
nicht, oder wennigstens meine Kollegen wuerden mich komisch anschauen wenn ich
sie ploetzlich umarme und abknutsche (hihi mal abgesehen w
... aemm mal abgesehen wie ich da bloed schauen wuerde =:) ) *scheiss
editor*. Also mich koennt ihr auch knuddeln wenn ihr wollt und lass
knuddelhasser, knuddelhasser sein (es werden nun keine Namen genannt, gell
TD).

Tschuess zaeme euer hoffentlich lieblingsmagier Zuerileu =:)

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



Re:  (Acrimon, 22. Feb 1995, 02:15:37):
#! rn=Semira rt=793296289
Hallo Semira!

Da interessiert mich jetzt aber doch, wie du das genau im RL machst, wenn du
es schon so schlecht definieren kannst.
Wie knuddelst Du im RL?

Einen herzlichen Knuddler von mir
Acrimon

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



Re^3: Knuddeln (Wargon, 22. Feb 1995, 09:47:11):
#! rn=Dancer rt=793405332
Kampfschnubbeln? Beziehst Du Dich da auf Semira? ;)
  Sich eines leichten Grinsens nicht erwehren koennend,
    Wargon

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



Re^3: Knuddeln (Puma, 22. Feb 1995, 12:12:41):
#! rn=Dancer rt=793405332
Aehhh...

Schrubbeln ist etwas ganz anderes und hat eher was mit Teddybaeren und
ihre Vorliebe fuer Skateboardfahren zu tun...

..aber das ist ein anderes Thema ..  :))))


PUMA

(PP&P-Fan)


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



Re:  (Roadrunner, 24. Feb 1995, 17:40:31):
#! rn=Semira rt=793296289
Tja, knuddelige Semira,

Ich knuddle ja auch gerne, finde aber dass das manchmal etwas inflationaer
gehandhabt wird.
Damit es seinen Wert behaelt, der ja unbestreitbar vorhanden ist, sollte man
vor allem neulingen zeigen, dass es zwar recht gerne gemacht wird, aber jeden
voellig wahllos damit zu versorgen ist manchmal etwas zuviel. Ich war am
anfang doch etwas irritiert.

Mag sein, dass man als Hohenloher ein etwas reserviertes verhaeltnis zum
knuddeln hat, aber mir geht es da wie vielen Volksstaemmen in Europa. ~r
-- ich warte immer ein weilchen, bis ich anfange zu knuddeln und aehnliches.
Abgesehen davon: Sei herzlich geknuddelt

				Roadrunner

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



Re: Re:  (Caradhras, 27. Feb 1995, 12:48:36):
#! rn=Roadrunner rt=793644031
Du bist Hohenloher?? An mein Herz. :-))) *kicher*
Ansonsten muss ich Dir auch voellig beistimmen, aber VR ist nun
mal nicht RL, in VR kann man viel mehr tun und lassen was man will.

       tschoe              Caradhras

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



Re^3:  (Anthea, 28. Feb 1995, 16:00:58):
#! rn=Caradhras rt=793885716
Du hast im RL noch nie geknuddelt? Mei, scheinbar lauter verklemmte Leute
hier...
Einfach alles ein bisschen lockerer nehmen, dann koennen andere Leute das
Knuddeln manchmal auch aktzeptieren. Bei einigen lasse ich es allerdings auch
beim Versuch, wenn ich merke, dass die das in den falschen Hals kriegen :)

          Anthea
                     knuddelt auch gerne

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



Re^4:  (Dancer, 28. Feb 1995, 18:13:15):
#! rn=Anthea rt=793983658
Was bitte hat es mit Verklemmtheit zu tun, wenn man sich von Leuten
antatschen laesst, die einem zuwider sind...
Knuddeln ist eindeutig was fuer Leute, die man total sympathisch findet.

Dancer


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



Re^5:  (Anthea, 28. Feb 1995, 19:34:27):
#! rn=Dancer rt=793991595
Habe ich behauptet, dass ich das bei JEDEM mache, dem ich begegne? aber auch
einige Leute, die ich schon laenger kenne, haben irgendwie was dagegen,
waehrend ander haben diese (Un)Sitte auch schon weitergetragen :)
      Anthea

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



Re^3:  (Roadrunner,  1. Mar 1995, 10:30:37):
#! rn=Caradhras rt=793885716
STimmt wohl. vergesse ich gelegentlich, dass es hier doch viele Freiheiten
gibt, die im RL nicht existieren. Aendert bei mir aber nichts daran, dass so
ganz bestimmte Verhaltensweisen doch immer wieder durchdruecken.
Tja jedenfalls freut es mich, dass hier sich auch heimat tummelt aus dem rl.

                                    RR
P.S. Kennst Du Tullau?

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



Knuddeln (Grimmborn,  1. Mar 1995, 12:43:52):
So, jetzt ist mal die Ketter der unglaublich spannenden Titel (Re^18:)
durchbochen...
Was ist knuddeln? Also, ich denke, ihr seid da alle auf dem falschen Dampfer.
Knuddeln ist doch eindeutig eine Bezeichnung fuer hemmungslosen, suendigen
Sex!
Nix mit ein bischen schuetteln oder druecken, nein, dabei gehts zur Sache,
aber wie!Deshalb finde ich das rknuddeln ja von der Vorstellung her auch so
lustig.
Aber in rl gleich jeden zu knuddeln, der einem ueber den Weg laeuft, ich
weiss nicht... Was sagen denn die Leute dazu? Ist da schon oft die Polizei
geholt worden, Erregung oeffentlichen Aergernisses oder so? Also, ich wuerd da
ja schon dumm schauen, geb ich ja zu... ;-)

Hmm, dumm, laenger kann ich mich vermutlich hier nicht mehr vorm Arbeiten
druecken, ich muss mal was tun. :-(
Fazit (haette ich fast vergessen): Ich weiss auch nicht genau, was knuddeln
ist. Aber wen haette das blosse statement schon interessiert?

Grimmborn der Atheist

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



Re: Knuddeln (Loco,  1. Mar 1995, 14:59:58):
#! rn=Grimmborn rt=794058232
knuddeln != knulla. Auch wenns so aehnlich klingt...

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



Knuddeln auch in RL (Gwyndon,  1. Mar 1995, 16:17:06):
So, nun auch meine erste Nachricht in der MPA... (nicht dass ich glaube, Ihr
haettet alle nur drauf gewartet, aber das ist einfach ein schoenes Thema) 
:-))

Knuddeln kommt aus dem Norddeutschen Raum (urspruenglich), wo auch so nette
Worte wie 'Gnubbel' fuer zB einen kleinen Bleistiftrest entstanden sind. Und
ganz zweifellos ist es eine Bezeichnung fuer einen lockeren, unkomplizierten
Umgang mit netten anderen Menschen und mit Zaertlichkeit.
Und wer meine Figur anschaut, oder wie T... abhoert (? *kopfschuettel*)
weiss, dass ich das auch im MG gerne mache, ebenso spontan wie es manchmal
(selten) vorkommt, dass ich jemand spontan mag und die Freundschaft anbiete...
  Da hat das MG einen positiven Effekt auf mein RL: Es wird durch das MG
normaler, zu tun, wonach mir sowieso eigentlich ist, naemlich Sympathie offen
zu zeigen, wo sie da ist oder entsteht.
   Und das funktioniert eben nicht nur im MG, wie Knuddlmaus Semira richtig
festgestellt hat (*rknuddel semira /einfach so*), sondern im Multilinechat
einer Mailbox ebenso wie in RL. Und wer rknuddel mal in RL ausprobieren
moechte, sollte einfach mal versuchwen, alle Menschen zu moegen (wie ich das
mit 2 Ausnahmen tue) und sich ueber einen schoenen Tag zu freuen, und dann
Leute im Voruebergehen, Entgegenkommende auf dem Buergersteig, Nebenstehende
an der Ampel, einfach anzulaecheln (_nicht_ grinsen, das ist nicht das
Gleiche). Anlaecheln ist das, was in RL einem rknuddel am naechsten kommt. Und
das mit der freundlichen Antwort funktioniert fast ebenso sicher wie ein
rknuddel semira...
   Alle, die in RL zu scheu (oder anders erzogen) sind, als dass sie einen
netten Menschen einfach stubsen, knuffen, oder einen freund umarmen koennten,
sollten vielleicht spasshalber mal ein Live-Rollenspiel ausprobieren. Und zwar
keines mit ueblen Gegnern und Monstern, wo man schon aus Angst niemand naeher
als 5m an sich ran laesst, und auch keines das kuerzer als 1 1/2 tage ist. In
einer Rolle ist es (wie in VR) einfacher, normale Hemmungen zu ueberwinden.
Probierts mal aus....  (jemand Interesse? 26-28.05. Steinsberg, Infos per
anfrage an myra@uni-tuebingen.de - oder waere das jetzt eine anzeige gewesen?)

Und tschuess...  seid zum Abschied, wenn Ihr moegt, herzlich geknuddelt, vor
allem (Reihenfolge ist keine Wertung) Alena, Castaway, Dusty, Eileen, Etain,
Jelantha, Magee, Semira ua...

gez. Gwyndon, der kaum zum Questen kommt und froh ist, doch schon Ritter zu
sein :-))

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



Bezug:Knuddeln (Anatol, 20. Feb 1995, 13:24:53) (Toastbrot,  8. Mar 1995, 12:22:23):
Knuddeln : Herzliches in die arme fallen.Auch umarmen genant.
           Heftiges aneinanderdruecken zweier Koerper im Friedlichen sinne.

Also zumindest sowas in der richtung.

Toastbrot der es Liebt geknuddelt zu werden,und auch andere gern Knuddelt.


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



Toedliche Knuddelallergie?? :) (Zephyr, 13. Mar 1995, 22:30:40):
Am Wasserfall.
Nostradamus der RL-Seher.

Du seufzt.
Du knuddelst Nostradamus.

Ploetzlich weicht alles Leben aus Nostradamus.

[schau]
Am Wasserfall.
Nostradamus der RL-Seher (netztot).


Zephyr, fassungslos

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



Re: Toedliche Knuddelallergie?? :) (Aranya, 15. Mar 1995, 15:50:25):
#! rn=Zephyr rt=795130240
Ist das jetzt die MUD-Antwort auf die sogenannte oder auch 'Lustseuche' AIDS?

(Sorry, wenn ich jemandem auf den Schlips getreten sein sollte)

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



Aenderung an der Mayaquest (Bertram,  3. Apr 1995, 11:58:54):
Moin zusammen

Ich habe heute die Sperre ausgebaut, die verhinderte, dass man die Quest
mehrmals loest.

              Viel Spass wuenscht  Bertram

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



Let`s go Spielkinder! (Azzuro,  5. Jun 1995, 14:58:26):
Explosive Bekanntmachung:

Wolltest Du schon immer mal deinen Widersacher besiegen?
Bist Du zu schwach fuer die Arena?

Dann ab in den Dschungel und messt euch in einem Spiel.
In Ohort wurde ein laengst vergessenes Hinterzimmer gefunden. Dort steht das
legendenumwobene Spiel der Spiele. (oder auch das Spiel derer die Arbeiten
sollten und es nicht tun.)

Also nichts wie hin und deplaziert euren Widersacher auf der Rangliste.

Aberr Vorrsicht: It's hot man.        *Bumm*

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



Re: Let`s go Spielkinder! (Anthea,  5. Jun 1995, 17:08:03):
#! rn=Azzuro rt=802357106
>Aberr Vorrsicht: It's hot man.        *Bumm*
Tja... was soll man da sagen:
   Some like it hot :)
  Anthea
    (mag es lieber nass)

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



Steppe entdeckt (Quinolin, 24. Jun 1995, 22:58:47):
Hallo Abenteurer,

mutige Forscher haben sich vor einiger Zeit auf den Weg gemacht, um den
Uebergang zwischen der Wueste und dem Dschungel genaeuer zu erkunden.
Jetzt sind sie zurueckgekehrt und haben von einer grossen Steppe und
einer Feuchtsavanne berichtet. Auch ein neues Dorf wurde entdeckt. Mit
einem bisher unbekannten Spiel, das die dortigen Buschmaenner gerne spielen.

Also, macht euch auf den Weg und folgt den Spuren der Forscher ...


Viele Gruesse, Quinolin.

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



Leichenberge im Orkenhort (Romili, 19. Nov 1995, 17:44:01):

Pex beklagt in letzter Zeit, dass er Berge von Leichen aus seinem
Tunnel schaufeln muss. Zudem klagt er die mangelnde Risikobereit-
schaft der Abenteurer an.
Deshalb hat er seine Waechter angewiesen, nur noch solche Abenteurer
mehrfach einzulassen, die bereit sind ein bisschen mehr einzusetzen
als ihr armseliges Leben.

i.A. Romili

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



Re: Leichenberge im Orkenhort (Asmodis, 20. Nov 1995, 10:37:51):
#! rn=Romili rt=816799441
Ach so, der Tunnel ist von dir, Romili ?
Finde ich aber nicht gut, dass der Nachschub mit Fackeln und Nahrung nicht
mehr durchkommt :(

   Ciao, Asmodis (Einmal drin und nie wieder)

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



Mitarbeit (Rikus, 22. Jan 1997, 22:54:28):
Hi,

wie ich hoerte, haben einige Interesse angemeldet, im Dschungel mitzuar-
beiten. Wer also nette Ideen hat und/oder diese auch selbst umsetzen
moechte, moege sich bitte bei mir melden.

Rikus, auf Resonanz gespannt

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



Baum umgefallen (Rikus,  3. Mar 1997, 23:25:34):
Nicht nur im Wald und in der Wueste, nein auch im Dschungel faellt ab und
zu ein Baum um und eroeffnet neue Wege...

Viel Spass beim Suchen wuenscht Rikus

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



Re: Baum umgefallen (Fyt,  3. Mar 1997, 23:26:42):
~#! rn=Rikus rt=857427934 rg=d.dschungel
~#! tid=857427934

Hm, ich hab schon lustigere Questankuendigungen gesehen *grins*

Fyt.

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



Re: Re: Baum umgefallen (Rikus,  3. Mar 1997, 23:30:40):
~#! rn=Fyt rt=857428002 rg=d.dschungel
~#! tid=857427934
Das sollte ne Warnung sein :) rotfl

Rikus

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



WWW-Seiten (Rikus,  3. Mar 1997, 23:38:45):
Hi,
Falls jemand Interesse und Lust hat, die WWW-Pages ds Dschungels zu
erneuern/erweitern etc., moege sich bitte bei mir melden!

Rikus.

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



kleine Aenderung (Rikus,  7. Mar 1997, 15:09:31):
Hi,
in der Mine habe ich eine kleine Aenderung vorgenommen, also an die
gerichtet, die sich dort vielleicht schon mal ein bisschen umgesehen
haben...

Rikus

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



Lehrgang (Rikus, 11. Mar 1997, 18:59:47):
Hi,
da der Besitzer des Teiches in letzter Zeit nicht mehr so recht mit der
Arbeit seines Waechters zufrieden sein konnte, hat er sich nach einem
etwas staerkeren umgesehen.

Rikus

PS: Er hat zwar eine gute Ausbildung genossen, hat aber auch so seine
    Fehler...

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



Neues Angebot (Rikus, 22. Mar 1997, 19:51:43):
Hi,
seit 2 Tagen fuehrt der Wirt der Kneipe "Zur alten Mine" etwas neues in
seinem Angebot. Vielleicht hilft es Euch in einer brenzligen Situation...

Rikus

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



verlassene Huette entdeckt (Quinolin, 14. Apr 1997, 17:43:50):
In der Steppe wurde vor kurzem eine alte, schon lange
verlassene Huette entdeckt. Besonders viel gibt es dort nicht
zu sehen. Aber damit es den Besuchern nicht zu langweilig wird,
haben die ehemaligen Bewohner ein Spiel zurueckgelassen, dass man
mit zwei bis vier Personen spielen kann.
Viel Spass beim Ausprobieren wuenscht
  Quinolin.

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



Re: verlassene Huette entdeckt (Atoz, 14. Apr 1997, 17:44:57):
~#! rn=Quinolin rt=861032630 rg=d.dschungel
~#! tid=861032630
Was ist das denn? jemand nimmt nicht nur etwas nicht weg, sondern schliesst
sogar was Neues an? Cool!

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



Re: Re: verlassene Huette entdeckt (Nasim, 14. Apr 1997, 22:10:54):
~#! rn=Atoz rt=861032697 rg=d.dschungel
~#! tid=861032630
Ist bestimmt 'ne Falle.

Nasim, Pessimist

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



Re^3: verlassene Huette entdeckt (Jasper, 14. Apr 1997, 22:25:18):
~#! rn=Nasim rt=861048654 rg=d.dschungel
~#! tid=861032630
take it easy :)

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



Erweiterung des Spiels (Quinolin, 10. Mai 1997, 13:16:25):
Aufgrund des teilweise recht grossen Andrangs wurde das Spiel
erweitert. Es koennen nun zwei bis maximal acht Spieler mitmachen.
Ausserdem wurden einige Neuerungen eingebaut.
Wen es interessiert, sollte das Schild aufmerksam lesen.
 Quinolin.

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



Bug in TIE-Liste entfernt (Quinolin,  4. Jun 1997, 17:45:46):
Hallo, liebe T.I.E.-Fangemeinde !

Zephyr hat mir heute mittag mitgeteilt, dass wohl
etwas mit der Schnitt-Berechnung innerhalb der 
Top-Liste wohl nicht stimmen kann. Es gab erhebliche
Abweichungen von den Ergebnissen, die sie fuer sich
selbst ausgerechnet hatte.
Deshalb habe ich mich mal ans Werk gemacht und mal
geschaut, woran das liegen koennte.
Ich habe den Fehler gefunden und habe mein komplettes
Log-File und dessen Auswertung umgeschrieben.
Damit ist das Problem hoffentlich geloest.
Weil ich sowieso grade am Umschreiben war, habe ich
jetzt die Top- und die Schnittliste auf 20 erweitert.

In den aktualisierten Top- und Schnittlisten sind 
alle Spiele, die heute zwischen 12 und 17.30 absolviert
wurden, nicht beruecksichtigt. Ich bitte um Verstaendnis.

Bei weiteren "Beschwerden" bitte Mail an mich.

Viel Spass weiterhin bei dem wohl besten Spiel in MG ...
 wuenscht Euch (grinsend)
   Quinolin.

P.S. Dank nochmal an Zephyr fuer den Hinweis.



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



Regionsmitarbeiter (Rikus, 29. Jun 1997, 00:17:55):
Hallo!

wieder einmal moechte ich diejenigen ansprechen, die vielleicht Lust
verspueren, im Dschungel anzufangen. Zum einen sind viele der Regions-
mitarbeiter einfach nicht mehr da, zum anderen hat der rest kaum noch
Zeit, was zu machen. Ich bin also fuer alle Ideen, die Ihr mitbringt,
offen und habe auch mehrere mehr als halbfertige Sachen rumliegen, die
es wert sind, fertiggestellt zu werden...

Danke, Rikus

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



Wunderlampe geaendert (Romili,  6. Jul 1997, 15:06:48):
Mit dem neuen ZT-System macht der Wunsch "Zaubertrank" in der Wunderlampe
bzw. im Dschinn wirklich keinen Sinn mehr, da das Orakel im Prinzip diese
Funktion uebernimmt.
Ausserdem waere es schlecht, wenn der Dschinn ZT-Verstecke verraet, die
ihr noch nicht bekommen koennt, weil sie vom Orakel noch nicht frei-
geschaltet worden sind.
Daher habe ich diesen Wunsch in der Wunderlampe deaktiviert.
Ich wuerde gerne, diesen ehemals sehr attraktiven Wunsch, durch einen
anderen ersetzen, und waere daher fuer Anregungen sehr dankbar.
Bitte mailt mir Eure Ideen, da ich die Zeitung - im Gegensatz zu meiner
Mail - nicht sehr oft lese.

liebe Gruesse, Romili

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



Re: Wunderlampe geaendert (Asmodis,  7. Jul 1997, 14:17:05):
~#! rn=Romili rt=868194408 rg=d.dschungel
~#! tid=868194408
Wie waers, wenn man einen Magier seiner Wahl loeschen koennte ? :)

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



Re: Re: Wunderlampe geaendert (Fyt,  7. Jul 1997, 14:30:07):
~#! rn=Asmodis rt=868277825 rg=d.dschungel
~#! tid=868194408

Au geil... dafuer wuerde ich dann glatt noch 'n Zweiti hochspielen ;-)

Fyt.

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



Re^3: Wunderlampe geaendert (Asmodis,  7. Jul 1997, 15:14:56):
~#! rn=Fyt rt=868278607 rg=d.dschungel
~#! tid=868194408
Jo, dafuer wuerde ich auch noch ein paar Tode einstecken :)

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



Re^4: Wunderlampe geaendert (Taragon,  7. Jul 1997, 17:49:59):
~#! rn=Asmodis rt=868281296 rg=d.dschungel
~#! tid=868194408
bombige idee
dafuer wuerd ich sogar mich selbst loeschen lassen und neu anfangen ;)

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



Re^5: Wunderlampe geaendert (Mupfel,  7. Jul 1997, 23:28:10):
~#! rn=Taragon rt=868290599 rg=d.dschungel
~#! tid=868194408
Ist es also schon so weit gekommen... *seufz*


-mupfel-
P.S.: mich doch nicht, oder? :-)

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



Re: Re: Wunderlampe geaendert (Lug,  8. Jul 1997, 01:18:28):
~#! rn=Asmodis rt=868277825 rg=d.dschungel
~#! tid=868194408
Aeh Asmo:

Pruuuuuuuuuuuuuuuuussssssttttt ;)

-> Schmarren
Lug

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



ZT in alter Mine ??? (Taragon, 18. Jul 1997, 01:46:45):
Hallo !

Ich hab da ein Problem. Laut Orakel befindet sich in der alten Mine im
Dschungel ein Zaubertrank. Ich habe aber nun schon seit Wochen versucht,
diesen zu finden, doch sowohl mir als auch _einigen_ Spielern, die ich gefragt
habe, faellt so langsam nichts mehr ein.
Gibt es den ueberhaupt ? Wenn ja, meine ich, dass er etwas _zu_ bloed bzw.
schwer versteckt wurde.

Gruesse aus dem Allgaeu ;)
  Taragon

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



Re: ZT in alter Mine ??? (Acrimon, 21. Jul 1997, 17:07:03):
~#! rn=Taragon rt=869183205 rg=d.dschungel
~#! tid=869183205
Es gibt ihn. Definitiv.
Er ist eigentlich nicht schwer versteckt - dafuer aber stupide:
man musz in einem Raum etwas tun, worauf man zwar leicht kommt, was aber in
den anderen 8 Raeumen nur die Meldung "Wie bitte?" bringt.

Acrimon, der Rote Ritter

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



Re: Re: ZT in alter Mine ??? (Mupfel, 23. Jul 1997, 05:57:26):
~#! rn=Acrimon rt=869497623 rg=d.dschungel
~#! tid=869183205
Na genioes. Ich kenn 100te von Raeumen, wo ein Kommando/Detail Wie bitte/Nicht
vorhanden gibt. Nen ZT dazwischen, den findet keiner :-)

-mupfel-

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



take it easy (Rikus,  2. Nov 1997, 12:48:32):
Hi,
Take it Easy sollte nun auch bei Spielern gehen, die Grossbuchstaben im
Namen verwendet haben.

ciao, Rikus

PS: ich meine damit das Spiel in Quinolins Huette.

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



gefixt (Rikus, 10. Dez 1997, 22:11:40):
Hiho,

Bei den Kannibalen stirbt man nun nicht mehr im Gefaengis, falls man
netztot wurde und bei Olaf Huusg habe ich bei Sim was gefixt.
Bei weiteren Hinweisen/Ideen zu Gebieten lange nicht anwesender Magier
bitte mail an mich!

ciao, Rikus

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



Aenderungen (Paracelsus, 18. Feb 1998, 13:23:27):
Hi.

Einige kleine Aenderungen, die in und um Katzmandu bzw. die Felinen
gemacht wurden:

a) Felinen koennen jetzt in der Abenteurergilde ein- bzw austreten, wenn
   sie das moechten.

b) Auf Wunsch der Initiative 'Sauberes MorgenGrauen - rettet die Umwelt'
   koennen nicht mehr benutzbare Krallenspitzer jetzt im 'Felis Coloris'
   zurueckgegeben werden. Gibt es sogar einige Muenzen fuer ;)

c) Ab und zu wird es wohl einige neue Sachen im 'Felis Coloris' geben,
   also gelegentlich mal nachsehen.

Ansonsten kaempfe ich mich jetzt erstmal weiter durch die ganzen Typos und
Ideen.

Paracelsus.

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



Aenderungen  (Cyrax, 22. Feb 1998, 14:55:30):
was ist 'felis coloris' ??

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



Mitarbeiter (Rikus,  4. Mar 1998, 11:13:00):
Hi,
nach dem "Ausscheiden" von Jennifer als Dschungelmagier bin ich
auf der Suche nach Leuten, die gern bei mir was machen moechten.
Zum einen gibt es Ideen und auch schon teilweise fertiges, was
umgesetzt bzw. erweitert werden kann, zum anderen sind auch
eigene Ideen sehr willkommen!
Also meldet Euch bitte bei mir direkt oder per mail!

Danke, Rikus

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



Kneipen (Rikus,  5. Mar 1998, 22:42:23):
Hi,
die Kneipen sollten nun laut neuem System angepasst sein, seht
ihr noch was, so bitte bei mir melden.

Rikus

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



Fellfarbe (Paracelsus, 10. Mar 1998, 00:35:34):
Hi.

Da einige Hobbits darum baten kann die Fellfarbe nun auch von Hobbits
benutzt werden, auch wenn sie damit nur ihren Fusspelz (nein, nicht
Fusspilz, pElz ;) faerben.

Paracelsus.

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



Re: Fellfarbe (Kartoffel, 11. Mar 1998, 00:37:57):
~#! rn=Paracelsus rt=889486534 rg=d.dschungel
~#! tid=889486534
J U B E L !!!!

Kartoffel - laesst Para hochleben und rennt sofort mal zum Laden

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



Re: Re: Fellfarbe (Knurt, 11. Mar 1998, 01:15:42):
~#! rn=Kartoffel rt=889569477 rg=d.dschungel
~#! tid=889486534
Auch JUBEL!
Knurt (rennt Kartoffel hinterher)
uebe

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



Re^3: Fellfarbe (Bottom, 11. Mar 1998, 15:28:08):
~#! rn=Knurt rt=889571742 rg=d.dschungel
~#! tid=889486534

D O P P E L J U B E L !!!!

Bottom - jubelt gerne :)


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



Fellfarbe (Kintara, 11. Mar 1998, 16:23:20):
~#! rn=Paracelsus rt=889486534 rg=d.dschungel
~#! tid=889486534
JUCHEEE!!!
Kintara hinterlaesst eine grosse Staubwolke......

Kintara treibts gern bunt

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



Neuer Mitarbeiter (Rikus, 12. Okt 1998, 14:09:42):
Hi,
ich begruesse Greifax als neuen (hoffentlich aktiven) Mitarbeiter. Wer
sonst noch Lust hat, melde sich doch bitte bei mir. :)

Rikus

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



Re: Neuer Mitarbeiter (Morgoth, 12. Okt 1998, 14:11:40):
~#! rn=Rikus rt=908194182 rg=d.dschungel
~#! tid=908194182
Naja, wer will schon im Dschungel arbeiten? Andauernd dieser Regen, dumme
Baeume, die eh alle gleich aussehen ;-))
Nee nee, kein Dschungel...

M*

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



Re: Re: Neuer Mitarbeiter (Ark, 12. Okt 1998, 14:15:12):
~#! rn=Morgoth rt=908194300 rg=d.dschungel
~#! tid=908194182
Ooooch, Ideen haette ich da schon, nur hat man halt nur ein Programmiererleben
:-)


              *** ARK * the * Magnificent ***


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



Re: Re: Neuer Mitarbeiter (Rikus, 12. Okt 1998, 14:18:04):
~#! rn=Morgoth rt=908194300 rg=d.dschungel
~#! tid=908194182
hm, da hab ich doch von Dir eine mail mit Erstkills... Ob ich die nach
Deinem Artikel eben nach /dev/null schicke? :-)

Rikus

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



Re: Re: Neuer Mitarbeiter (Gando, 12. Okt 1998, 14:18:42):
~#! rn=Morgoth rt=908194300 rg=d.dschungel
~#! tid=908194182
genau .. hier in bonn regnets genug. da geh ich lieber in die wueste
Gando

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



Re^3: Neuer Mitarbeiter (Morgoth, 12. Okt 1998, 14:21:47):
~#! rn=Rikus rt=908194684 rg=d.dschungel
~#! tid=908194182
Hey, es ist Deine Aufgabe, das einzutragen. Ich habe nur meine Meinung
kundgetan. ;-)

M*

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



Re^4: Neuer Mitarbeiter (Azzuro, 16. Okt 1998, 01:48:02):
~#! rn=Morgoth rt=908194907 rg=d.dschungel
~#! tid=908194182
Halt Dich klein Morgoth, wenn im verlorenen Land nicht andauernd Baeume
umfallen wuerden, waer es auch schon ein Dschungel. ;)

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



Katzmandu (Paracelsus, 17. Okt 1998, 00:33:38):
So, in Katzmandu gibts jetzt auch Happa Happa zum Tanken.

Para.

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



Ausgaenge? (Rardian, 26. Feb 1999, 15:31:37):
Neulich schlenderte ich mal wieder nichts boeses ahnend durch den Dschungel.
Ich kam zu einer Stelle, wo ich wie immer den Spuren von Tieren folgen wollte,
um hinauszugelangen (nahe bei dem Schild der Kannibalen), in der Raumbe-\
schreibung steht immer noch, dass es keine sichtbaren Ausgaenge gebe, darunter
stehen
aber die beiden zur Verfuegung stehenden Ausgaenge, warum?
Liegt das an meinem Level? Oder sehen das jetzt prinzipiell alle
dschungelerfahrenen Felinen? Oder wie oder was?

Rardian, sehr verwirrt.

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



Re: Ausgaenge? (Rikus, 26. Feb 1999, 15:37:41):
~#! rn=Rardian rt=920043097 rg=d.dschungel
~#! tid=920043097
Hi,
setz doch bitte in dem Raum eine Bug-/Ideemeldung ab, dann seh ich auch,
wo es genau ist und um was es geht. Bisher stehst Du in keinerlei
Reportfiles aus dem Dschungel...
Oder ruf einem Magier, wenn Du grade dort an der Stelle bist.

Rikus

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



Re: Re: Ausgaenge? (Mccauls, 28. Feb 1999, 21:15:11):
~#! rn=Rikus rt=920043461 rg=d.dschungel
~#! tid=920043097
ich kann das phaenomaen bestaetigen.
ging mir auch so ... dachte das muss evtl. so sein, da ich grad seher geworden
bin

McCauls, selten im Dschungel unterwegs

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



re ausgaenge  (Spirill,  1. Mar 1999, 17:42:21):
bei mir auch, und ich bin (noch) kein seher...soll wohl so sein..?

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



Re^3: Ausgaenge? (Kuguar,  7. Mar 1999, 22:30:38):
~#! rn=Mccauls rt=920236511 rg=d.dschungel
~#! tid=920043097
Ich sehe auch keine Ausgaenge. Aber im Dschungel finde ich das beim ersten mal
O.K., da man sichnicht auskennt. Danach sollte das dann fuer einen aber
eigendlich sichtbar sein, da man den Weg ja kennt. Ich weiss aber nicht wie
kompliziert das zu programmieren ist....
Kuguar

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



Katzenjammer (Paracelsus, 20. Jun 1999, 22:31:44):
Hi.

Ich habe gerade mal einige technische Aenderungen an der Katzenjammer-
Quest vorgenommen. Eigentlich sollte es da keine Probleme geben, aber
ihr wisst ja, wie das manchmal ist.

Auf eine bugfreie Umstellung hoffend,
  Paracelsus.

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



Mitarbeiter? (Rikus, 21. Jun 1999, 10:04:50):
Hi,
da sichnun eben wieder (nach Monaten/Jahren) ein Artikel in dieser Rubrik
befand, wollte ich es gleich zum Anlass nehmen, nach (hoch)motivierten
Mitarbeitern fuer meine Region zu suchen! Leider ist es so, dass die An-
zahl der bisherigen aktiven Mitarbeiter gegen 0 (naja 1.5) konvergierte.
Mailt mich doch bitte bei Interesse an!

Thx, Rikus

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



wanted! (Rikus, 29. Okt 1999, 15:28:59):
So, wieder mal mein alljaehrlicher Artikel zu diesem Thema: Wer moechte
gern Mitarbeiter im Dschungel werden? Die Jobs da sind gutbezahlt :)

Rikus

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



Re: wanted! (Silvana, 29. Okt 1999, 15:43:15):
~#! rn=Rikus rt=941203739 rg=d.dschungel
~#! tid=941203739
Aehm... Bezahlt...? Mach nen Angebot, vielleicht geh ich ja drauf ein, wenn
Taramis fertig ist... ;-)

  Silvana (nicht _ganz_ ernst)

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



Re: Re: wanted! (Wurzel, 30. Okt 1999, 10:29:04):
~#! rn=Silvana rt=941204595 rg=d.dschungel
~#! tid=941203739
ebenfalls. angebote per mail, sowas muss man ja nicht in der mpa auswalzen :)

wurzel

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



Re^3: wanted! (Tilly, 30. Okt 1999, 11:38:31):
~#! rn=Wurzel rt=941272144 rg=d.dschungel
~#! tid=941203739
Oehm,
zuechtet sich magier dafuer nicht Kinder? Nicht dass das bei mir geklappt
haette, aber ... :)
 - Tilly -

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



Re^4: wanted! (Rikus, 30. Okt 1999, 20:03:58):
~#! rn=Tilly rt=941276311 rg=d.dschungel
~#! tid=941203739
tja, irgendwie wizzt ihr mir alle vor der nase weg... :(

rikus

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



Re^5: wanted! (Teddy, 30. Okt 1999, 20:04:24):
~#! rn=Rikus rt=941306638 rg=d.dschungel
~#! tid=941203739
Selber zuechten, Rikus ;)

Teddy, empfiehlt Fortpflanzung.

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



Re^5: wanted! (Bierchen, 31. Okt 1999, 16:19:20):
~#! rn=Rikus rt=941306638 rg=d.dschungel
~#! tid=941203739
he!
ich hab dir mal eines meiner plagen verkauft, wenn du die nicht richtig
zuechtigen kannst... :)
gruss,
  - Bierchen -

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



Re: wanted! (Tunixgut,  4. Nov 1999, 22:51:12):
~#! rn=Rikus rt=941203739 rg=d.dschungel
~#! tid=941203739
Was GENAU heisst denn "gutbezahlt"??? ;o)

's Karate-Zwerchle - mit dem zweiten Vornamen "GOLDGIER"... ;o)

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



Re: Re: wanted! (Anatol,  4. Nov 1999, 22:52:02):
~#! rn=Tunixgut rt=941752272 rg=d.dschungel
~#! tid=941203739
Du kriegst im Dschungel ungefaehr drei- bis sechsmal so viel wie im Gebirge.

Anatol

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



Re: Re: wanted! (Rikus,  4. Nov 1999, 22:52:10):
~#! rn=Tunixgut rt=941752272 rg=d.dschungel
~#! tid=941203739
Gut heisst 1 Muenze pro fehlerfreier Codezeile, wobei Leerzeilen
und Kommentare nicht zaehlen.

Rikus

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



Re^3: wanted! (Mahatmu,  5. Nov 1999, 08:54:40):
~#! rn=Rikus rt=941752330 rg=d.dschungel
~#! tid=941203739
Nix, da mach ich nicht mit. Da wird ja seitenfuellender Code gefoerdert.
Dabei kann man in LPC so schoen komprimieren :) (wie auch in C).

Mahatmu

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



Wunderlampe (Wim,  3. Feb 2000, 03:39:30):
Besitzern einer Wunderlampe sei hiermit nahegelegt, einmal sich die Anwendung
des Befehles "ende" angedeihen zu lassen.


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



der dschungel lebt (noch) (Wurzel,  2. Nov 2001, 14:28:58):
im dschungel gibt es, wie viele wissen, noch mehr als nur schlingpflanzen,
baeume und insekten. gelegentlich finden mutige abenteurer auch ueberbleibsel
und ruinen laengst untergegangener zivilisationen und abstruser religionen.
unlaengst wurde eine ruine entdeckt, die auf einen dieser alten kulte
zurueckgeht. sehr viel ist nicht bekannt ueber diese staette, nur dass sie
einen ungewoehnlich starken einfluss auf schlangen ausuebt. eine expedition,
die mehr in erfahrung bringen sollte, ist leider niemals zurueckgekehrt. es
kann also davon ausgegangen werden, dass es unbekannte gefahren gibt, die
dort in der ruine lauern...

wurzel

p.s. auch wenn es im dschungel heiss ist: zieht euch warm an.

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



Re: der dschungel lebt (noch) (Birdy,  2. Nov 2001, 14:37:35):
~#! rn=Wurzel rt=1004707738 rg=d.dschungel
~#! tid=1004707738
Ueberlebt man dort, wenn man forscht oder waere es gesuender, dort nur mit
vielen Freunden hinzugehen?

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



Re: Re: der dschungel lebt (noch) (Wurzel,  2. Nov 2001, 14:38:43):
~#! rn=Birdy rt=1004708255 rg=d.dschungel
~#! tid=1004707738
kommt drauf an, was du vorhast. sich umzuschauen war noch nie eine schlechte
idee.

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



Re: Re: der dschungel lebt (noch) (Elberet,  2. Nov 2001, 14:38:57):
~#! rn=Birdy rt=1004708255 rg=d.dschungel
~#! tid=1004707738
das steht doch da im artikel, nie wer zurueckgekehrt, sagt das nicht alles?
Aber geh hin und schau nach, dann weisst es ;)

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



Re^3: der dschungel lebt (noch) (Pitfall,  2. Nov 2001, 14:39:10):
~#! rn=Wurzel rt=1004708323 rg=d.dschungel
~#! tid=1004707738
for**** ist toedlich...

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



Re^3: der dschungel lebt (noch) (Boing,  2. Nov 2001, 14:39:24):
~#! rn=Elberet rt=1004708337 rg=d.dschungel
~#! tid=1004707738
Kann es sein, dass Du Birdy loswerden willst? :)
  Boing

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



Re^4: der dschungel lebt (noch) (Elberet,  2. Nov 2001, 14:40:20):
~#! rn=Boing rt=1004708364 rg=d.dschungel
~#! tid=1004707738
noe, aber sterben fuer die forschung ist doch so schlimm nicht ;)

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



Re^5: der dschungel lebt (noch) (Ark,  2. Nov 2001, 14:49:31):
~#! rn=Elberet rt=1004708420 rg=d.dschungel
~#! tid=1004707738
Ich winke mal mit dem 'Tod-dem-Nichtforschen' Faehnchen.


              *** ARK * the * Magnificent ***


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



Re^6: der dschungel lebt (noch) (Ahab,  2. Nov 2001, 14:49:57):
~#! rn=Ark rt=1004708971 rg=d.dschungel
~#! tid=1004707738
Du meinst wohl 'Tod den Nichtforschern'?

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



Re^6: der dschungel lebt (noch) (Elberet,  2. Nov 2001, 14:50:17):
~#! rn=Ark rt=1004708971 rg=d.dschungel
~#! tid=1004707738
och, ich find sterben, wenn die atmosphaere stimmt, ok :)

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



Re^7: der dschungel lebt (noch) (Ark,  2. Nov 2001, 14:51:28):
~#! rn=Ahab rt=1004708997 rg=d.dschungel
~#! tid=1004707738
Neee, das stimmt schon so wie geschrieben ;^)

Immer das Verhalten anprangern, keine Personen, hilft oft :-)


              *** ARK * the * Magnificent ***


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



Re^8: der dschungel lebt (noch) (Montanus,  2. Nov 2001, 17:55:11):
~#! rn=Ark rt=1004709088 rg=d.dschungel
~#! tid=1004707738
Also wenn das wie in Wilhelmsburg ist - man guckt sich unschuldig etwas um,
faellt ploetzlich in ein Erdloch und wird, bevor man auch nur "licht"
eintippen kann, von Schweinehunden zerfleischt - dann will ich da lieber nicht
forschen. :-)

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



Re^9: der dschungel lebt (noch) (Terrorist,  2. Nov 2001, 17:58:30):
~#! rn=Montanus rt=1004720111 rg=d.dschungel
~#! tid=1004707738
Angsthase, Schattenparker, Sitzpinkler ;)
Heul doch! (c) Lug


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



Re^10: der dschungel lebt (noch) (Janka,  3. Nov 2001, 08:43:28):
~#! rn=Terrorist rt=1004720310 rg=d.dschungel
~#! tid=1004707738
Genau!
Heul' doch. (c) Anatol

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



Re^11: der dschungel lebt (noch) (Elendil,  4. Nov 2001, 12:31:23):
~#! rn=Janka rt=1004773408 rg=d.dschungel
~#! tid=1004707738
Hi zusammen,

ich moechte hier nur kurz darauf hinweisen, dass ihr vorsichtig
zu dem neuen Gebiet gehen solltet, da die Falle auf dem Weg leicht
buggt. D.h. wenn die Lanze einmal weg ist (das ist eine Vermutung)
kann man sich nicht mehr befreien. Das bedeutet wiederum, ende oder

Tod.

Gruss Ele

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



Re^12: der dschungel lebt (noch) (Wurzel,  4. Nov 2001, 15:12:38):
~#! rn=Elendil rt=1004873483 rg=d.dschungel
~#! tid=1004707738
gegen buggende dschungelfallen kann ich wenig tun. es gibt jetzt aber noch
eine weitere moeglichkeit, die ruine zu erreichen.

wurzel

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



Re^12: der dschungel lebt (noch) (Gor,  5. Nov 2001, 12:15:41):
~#! rn=Elendil rt=1004873483 rg=d.dschungel
~#! tid=1004707738
Hehe, und wenn jeder nimm alles macht, nachdem er sich befreit hat, wird der
danach sterben. ;)

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



Re^11: der dschungel lebt (noch) (Pest,  5. Nov 2001, 14:54:40):
~#! rn=Janka rt=1004773408 rg=d.dschungel
~#! tid=1004707738
Exakt: Heul doch (c) Anatol und LOESCH DICH (c) Lug

Ich war noch nie so ein sentimentaler Typ w[C[[3~          aeh Mist wie Anatol

I.V.                                                                     
Pest.
Scheiss java...

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



Re^12: der dschungel lebt (noch) (Grimmborn,  5. Nov 2001, 15:07:09):
~#! rn=Pest rt=1004968480 rg=d.dschungel
~#! tid=1004707738
Ich muss Dich leider korrigieren, das "loesch Dich" geht auf mich zurueck, und
das "ende" auf das Treibsandhilfegeschrei moeglicherweise auch.

GdA

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



Re^12: der dschungel lebt (noch) (Janka,  9. Nov 2001, 01:06:52):
~#! rn=Pest rt=1004968480 rg=d.dschungel
~#! tid=1004707738
Aber wenn schon dann bitte auch an das "'" hinter heul' denken, da ja hier ein
"e" wegfaellt. 

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



Re^13: der dschungel lebt (noch) (Tiamak,  9. Nov 2001, 17:44:51):
~#! rn=Janka rt=1005264412 rg=d.dschungel
~#! tid=1004707738
Wieso faellt da ein "e" weg?


Tiamak. Findet den Imperativ mit "heul" auch ohne zweites "e" vollstaendig.

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



Re^14: der dschungel lebt (noch) (Janka,  9. Nov 2001, 20:56:07):
~#! rn=Tiamak rt=1005324291 rg=d.dschungel
~#! tid=1004707738
www.heul-doch.de
oder aber auch:
http://www.heul--doch.de.vu/
wobei sich ein Besuch nicht lohnt :)

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



Kannibalenfalle (Rikus, 16. Okt 2002, 11:00:10):
... verhaelt sich nun leicht anders :)

Rikus

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



Wildrosen (Vardion, 19. Jun 2003, 22:50:04):
Auf einer Lichtung im Dschungel hat die Natur einen Rosenbusch hervorgebracht.
Die dort zu findenen Rosen werden euch bekannt vorkommen, sind aber doch ein
klein wenig anders.

Vardion

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



Re: Wildrosen (Zook, 19. Jun 2003, 23:04:05):
~#! rn=Vardion rt=1056055804 rg=d.dschungel
~#! tid=1056055804
Und schon steigt die Menge der Rosen gewaltig an. ;)

Zook.

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



Re: Re: Wildrosen (Ahab, 19. Jun 2003, 23:04:28):
~#! rn=Zook rt=1056056645 rg=d.dschungel
~#! tid=1056055804
Qualitaet spricht sich rum. :-)

Ahoi!

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



Re^3: Wildrosen (Zook, 19. Jun 2003, 23:05:02):
~#! rn=Ahab rt=1056056668 rg=d.dschungel
~#! tid=1056055804
Schleimer! 

Zook.

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



Wunderlampe und Dschinn von Romili (Rikus, 24. Mai 2005, 10:43:58):
... hat Gabylon ueberarbeitet. Sollten irgendwelche Probleme auftauchen, so
meldet Euch bitte direkt bei ihm. Es wurde der Code ueberarbeitet, die
Funktionalitaet an sich ist wie bisher.

Gruss, Rikus

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



Wunderlampe (Ark, 11. Mai 2006, 16:50:14):
Grad einen Bug in der Lampe gefixed (hoffentlich), der beim Heilwunsch die
Haende blockierte. Deshalb bis auf weiteres von diesem Wunsch Abstand nehmen,
bis nach Ende/Reboot eine "neue" Lampe im Inventar ist. Diese blinkt nicht,
deshalb diese Information :-)
Wundere mich eh, warum das niemand frueher bemerkt hat.


              *** ARK * the * Magnificent ***


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



Hilf dem Heiler ;-) (Zesstra, 22. Mar 2007, 23:43:43):
Huhu,

dem Heiler in Katzmandu koennen neue (und alte) Spieler jetzt ein
klitzekleines Bisschen behilflich sein. :-)
Vielen Danke an Ark fuer Beratung und schnelles Testen und an Sator ebenfalls
fuers Testen. ;-)

Zesstra

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



Die Quest "Schwert der Gnade"... (Arathorn, 11. Dez 2007, 21:51:37):
... hatte unter der Haube einige Aenderungen noetig, die Zesstra und ich 
heute abend erledigt haben. Sollten sich die NPCs im Questgebiet irgendwie
anders verhalten als frueher, meldet Euch bitte kurz.

Gruss, Arathorn.

P.S. Die Quest an sich *sollte* nicht beeinflusst worden sein. ;-)

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



Auch im Dschungel tut sich was! (Humni, 30. Jun 2008, 23:54:05):
Huhu,

naja. Ob sich viel tun wird? Jedenfalls bin ich erstmal temporaer dafuer da,
im Dschungel ein wenig mit auszuhelfen. Ich bin nicht der RM, aber ich werde
mal schauen, was zu tun ist, und sollte jemand im Dschungel ein problem haben,
bin ich erstmal (oft sicher nur per Mail) dafuer da.

So, dann schaue ich mal, welche Typos da so meiner harren und werde sicher
weinen...

(Nein, boese Drachen weinen nicht, die fressen nur die Leute auf. Merken.)

Humni

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



Neuer RM (Ark, 18. Mai 2009, 11:06:17):
Falls ihr besonders nervige/aergerliche Stellen schon jahrelang kennt und nie
was getan wurde, dann schreibt mir. Ich werde das dann gleich mal angehen ...
zaubern kann ich nicht, priorisieren schon :-)


              *** ARK * the * Magnificent ***


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



Vier Elemente Quest (Ark, 21. Sep 2009, 12:15:40):
Wer im Abgrund landet, hat jetzt auch eine Moeglichkeit, wieder an seine
Besitztuemer zu gelangen.


              *** ARK * the * Magnificent ***


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



Naturkatastrophe im Dschungel (Arathorn, 29. Sep 2012, 21:32:50):
Hallo zusammen,

wohl von den meisten unbemerkt, gab es heute im Dschungel ein kleineres 
Erdbeben. Der Nabla trat kurzzeitig ueber die Ufer und hat etliches
fortgeschwemmt, darunter bedauerlicherweise einige Tiere. Andere sind schon
lange vor dem eigentlichen Beben geflohen und seither nicht wiedergekehrt.
In der Zeit nach dem Ereignis haben allerdings einige neue Bewohner des
Urwaldes die Gelegenheit beim Schopfe gepackt und sind in das betroffene
Gebiet eingewandert.

Wer sich persoenlich ein Bild von den Auswirkungen des Naturereignisses 
machen moechte, ist herzlich eingeladen, den westlich von Katzmandu
gelegenen Dschungel zu erkunden. Ich hoffe, es wird niemand von umfallenden
Baeumen, herabstuerzenden Felsen oder sonstigen Nachwirkungen des Bebens
unangenehm ueberrascht.

Gruss, Arathorn.

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



Forscher aufgemerkt (Miril, 20. Nov 2012, 23:05:59):
Frei nach dem Motto: "Besser spaet als nie" wurde das Questgebiet zur Quest
Schwert der Gnade fuer Forscher aufgewertet. Im Klartext: Es gibt dort jetzt
FPs zu finden.

Jaja, ihr werdet das jetzt fies und gemein finden und vielleicht ein bisschen
rumjammern, aber seht es einfach als neue Chance, ein altes und vergessenes
Gebiet noch einmal anzuschauen, um das Gedaechtnis aufzufrischen.

Miril

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



Re: Forscher aufgemerkt (Vanir, 20. Nov 2012, 23:33:40):
~#! rn=Miril rt=1353449159 rg=d.dschungel
~#! tid=1353449159
Da kommen Erinnerungen an alte Zeiten. Das ich so eine Meldung noch mal lesen
darf.
V.

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



Re: Re: Forscher aufgemerkt (Ark, 20. Nov 2012, 23:50:31):
~#! rn=Vanir rt=1353450820 rg=d.dschungel
~#! tid=1353449159
Deshalb "Gnade" :-)


              *** ARK * the * Magnificent ***


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



Der Bibliothekar der Felinen (Arathorn, 26. Nov 2012, 22:45:03):
Hallo zusammen,

der Bibliothekar in Katzmandu sprach mich heute abend an. Er sagte, er
wuerde sich sehr freuen, wenn ihn der eine oder andere interessierte
Abenteurer gelegentlich besuchen wuerde, um ihm etwas zur Hand zu gehen.
Er meinte, seine alten Knochen wuerden nicht mehr so gut mitspielen, wie
noch vor einigen Jahren.

Schaut doch mal bei ihm vorbei und helft ihm, wenn Ihr koennt.

Gruss, Arathorn.

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



Re: Naturkatastrophe im Dschungel (Arathorn, 22. Dez 2012, 16:22:48):
~#! rn=Arathorn rt=1348947170 rg=d.dschungel
~#! tid=1348947170
Hallo zusammen,

im Gefolge des Erdbebens im Dschungel gab es vor einer Weile einige
kleinere Nachbeben, die weitere Veraenderungen ausgeloest haben. Es ist
bereits ein junger Forscher in den Urwald aufgebrochen, um sich die Sache
einmal anzusehen, und wer es ihm gleichtun moechte, kann sich gerne
ebenfalls dorthin begeben.

Es ist allerdings vielleicht ratsam, zunaechst die Dschungelpost in 
Katzmandu aufzusuchen, denn mir wurde berichtet, dass es im Zusammenhang
mit der Erforschung des Dschungels zu Zwischenfaellen gekommen sei, und
dass fuer die geneigten Abenteurer, die ebenfalls dorthin aufbrechen wollen,
eine Nachricht hinterlegt worden sei.

Viel Erfolg!
Arathorn.

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



Aufraeumarbeiten (Arathorn,  2. Sep 2013, 21:26:34):
Hallo zusammen,

ich habe heute mal eine gewisse Pyramide im Dschungel aufgesucht und einige
laengst faellige Aufraeumarbeiten erledigt. In deren Zuge wurde auch ein
Gang freigelegt, der weiter nach unten fuehrt.

Vielleicht interessiert sich ja der ein oder andere furchtlose, abenteuer-
lustige Recke dafuer, sich dort einmal genauer umzusehen?

Gruss, Arathorn.

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



Es ist getan ... (Ark, 10. Nov 2014, 23:17:19):
Als geuebter Schlangenbeschwoerer ist es mir gelungen, der Goettin ein Serum
zu injizieren, welches verhindert, dass wertvolle Spielerausruestung verdaut
wird. Diese Meduzin (Koagulierende Oralverabreichte Tenside Zur
Energieregulierung) fuehrt dazu, dass alles moegliche im Verdauungstrakt
verbleibt, es ist also "sicher" vor unbefugtem Zugriff ... solange der nicht
zu lange auf sich warten laesst :-)
Auf Rostmechanismen wurde die Meduzin nicht geprueft, aber der Schlangen-Tuev
urteilt "Sehr gut".


              *** ARK * the * Magnificent ***


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



Der Sumpf des Erbarmens ... (Ark, 30. Aug 2015, 17:44:09):
Im boesen Sumpf suedlich von Orkenhort hat eine guetige Fee dafuer gesorgt,
dass die Leichen nicht mehr fuer immer verschwinden, sondern von Sumpfleuchten
an feste Gefilde gezogen werden. Wer sich zufaellig dort aufhaelt, kann das
sogar beobachten. Zum Helfen ist es allerdings zu spaet, nur die Ueberreste
lassen sich dann noch bergen.


              *** ARK * the * Magnificent ***


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



Krallenlack und Fellfarbe (Bambi,  8. Mar 2019, 00:31:08):
Hi,

der Krallenlack und die Fellfarbe aus der Katzmanduer Boutique haben in den
letzten Jahren aufgrund einer Umstellung leider nicht mehr zu einem Extralook
gefuehrt. Lustig dabei war, dass der Extralook dann "doch noch" auftauchte,
wenn man Ende gemacht oder sich nach einem Reboot eingeloggt hat.

Wir konnten den Fehler nun beseitigen, sodass der Extralook nun instant zu
sehen ist. Ein weiterer Bonus ist ebenfalls dabei abgefallen: der Extralook
wirkt sich nicht mehr nachteilig auf die Item-Obergrenze aus.

Leider belegen die aktuell schon vorhandenen Fellfarben- und
Krallenlack-Extralooks weiterhin noch Inventarplaetze, auch ueber Reboot und
Ende hinaus.

Fuer die naechsten Tage planen wir daher noch einen Patch, mit dem wir die
alten Extralook-Objekte beseitigen. Wer sich einen neuen Extralook schon jetzt
holen moechte, kann das gefahrlos tun. In dem Fall hat man ggf. zwei
Extralooks: einen vom neuen System, einen vom alten. Mit dem Patch sollten die
"alten" Meldungen (wahrscheinlich ersatzlos) verschwinden.

Sollten bei der Verwendung der neuen Extralooks irgendwelche Probleme
auftreten, schickt mir bitte eine Mail. Die Bug-Meldungen aus /d/dschungel
bekomme ich ("leider") nicht zu sehen.

Bambi

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



Re: Krallenlack und Fellfarbe (Tizona,  8. Mar 2019, 07:25:06):
~#! rn=Bambi rt=1552001468 rg=d.dschungel
~#! tid=1552001468
Straehnchen und Nagellack bleiben bestehen, wenn man die Tarnung ablegt, das
ist denke ich nicht gewollt.
Bsp.:
Tizona hat ihre Haut mit Straehnchen in abgrundtief schwarz verziert.
Tizona hat ihre Fingernaegel blutrot angemalt.

Zumindest die Straehnchen will man nicht auf Haut haben, ggf. will man auch
einfach auf Fell pruefen. Andererseits koennte ich mir soetwas in Schuppen
oder Federn auch vorstellen. Ich denke da ist eine gute Portion Magierwillkuer
gefragt. ;-)

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



Re: Krallenlack und Fellfarbe (Zesstra,  8. Mar 2019, 23:21:36):
~#! rn=Bambi rt=1552001468 rg=d.dschungel
~#! tid=1552001468
Ab jetzt werden alte Krallenlacke und Fellfarben beim ersten Login nach
ende/reboot auch automatisch konvertiert, sie belegen dann keine
Inventarplaetze mehr und sind danach auch von den entsprechenden Entfernern
entfernbar.

Zesstra

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



Re: Re: Krallenlack und Fellfarbe (Zesstra,  9. Mar 2019, 10:33:49):
~#! rn=Tizona rt=1552026306 rg=d.dschungel
~#! tid=1552001468
Keine Ahnung, obs jemanden gibt, der sich da in Abhaengigkeit der Rasse
austoben will... (Ich nicht.)

Zesstra

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



Schokolade selbstgemacht (Notstrom,  5. Dez 2019, 20:01:50):
    Hallo zusammen!

ich freue mich, euch die Adventszeit mit einer kleinen, neuen Quest versuessen
zu koennen. Schaut Euch am Dschungeltuempel vor Katzmandu um, dort solltet Ihr
den Weg in ein neues Gebiet finden.

Vielen lieben Dank an alle, die involviert waren: Arathorn, Ark, Humni, Miril,
Zook, Bugfix, Mundron, Saray, Bendeigid, Deaddy. (Falls ich Dich hier
vergessen habe, dann shame on me, und lieben Dank auch an Dich.)


Viel Spass beim Spielen!
Notstrom.

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



Ein paar Arbeiten im Hintergrund (Arathorn,  9. Sep 2020, 18:01:22):
Hallo zusammen,

aufgrund einer absehbaren Aenderung in der Mudlib habe ich in diversen
Gebieten des Dschungels einige Aenderungen vorgenommen, die dieser Aenderung
Rechnung tragen. Falls es in der Region irgendwo unerwartet zu Fehlern kommen
sollte oder sich etwas anders verhaelt als gewohnt, meldet euch bitte.
(Ausnahme: Fehler im Raum-Zeit-Gefuege muesst ihr nicht separat melden.)

Gruss, Arathorn.

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



Schwert der Gnade (Arathorn,  7. Mar 2021, 15:20:39):
Moin zusammen,

ich habe gerade ein paar Dinge am Questgebiet von Schwert der Gnade geaendert
und repariert. Die fuer euch relevanteste Aenderung duerfte sein, dass das
Schwert Schildbrecher nun keine Waffen oder Ruestungen mehr unreparierbar
beschaedigt.

Sollte sich etwas anderes ungewohnt verhalten oder gar ganz kaputt sein,
meldet euch. (Wie immer gilt: Fehler im Raum-Zeit-Gefuege werden uns
automatisch gemeldet, wegen denen braucht ihr nicht Bescheid zu sagen.)

Gruss, Arathorn.

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



Der Dschinn aus der Wunderlampe (Arathorn,  1. Dez 2023, 23:04:41):
Moin zusammen,

ich habe gerade den Dschinn davon ueberzeugt, dass es aus verschiedenen
Gruenden sinnvoll ist, Spielern nicht mehr in die Todessequenz zu folgen.

Sollte er das trotzdem nochmal tun, sagt gerne Bescheid, dann rede ich nochmal
mit ihm.

Gilt natuerlich nur fuer "ab jetzt" neu beschworene Dschinns.

Gruss, Arathorn.

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



