Erzmagier - Veraenderungen (Hate,  2. Jul 1997, 13:24:06):
             OFFIZIELLE BEKANNTMACHUNG

Erzmagier Konferenz, 2. Juli 1997, 10:00 - 12:00 Uhr 

Folgende Themen mit allgemeiner Bedeutung wurden auf dieser
Besprechung behandelt:

Veraenderungen in der Erzmagierzusammensetzung:

  * Erzmagier fuer Gilden (einstimmig):
    - Neben Rochus ist jetzt auch Zardoz berufen worden. 
    
  * Erzmagier fuer ZT, FP und Stufenpunkte (5:2):
    - Da Wargon seinen Posten abgibt wurde Yantro unter
      Auflagen auf den o.g. Posten berufen. 

  * Erzmagier Polizei:
    - Neben Catweazle wurde Highlander in den gleichen Stand
      gehoben. Beide sind als gleichwertige Ansprechpartner
      bei Problemen zwischen Spielern und/oder Magiern zu
      sehen. 

   Die Aufgabenverteilung im Ueberblick:

   * Gott, Quests, RM-Ernennung       - Boing (Rumata, Jof)
   * Polizei                          - Catweazle, Highlander
   * LPC und was sonst noch anfaellt  - Hate
   * Rassen, Seele                    - Silvana
   * Gilden                           - Rochus, Zardoz
   * GameDriver, MGtool               - Kirk
   * Balance                          - Paracelsus
   * Forscher- und Stufenpunkte       - Yantro

Probleme mit den Berufungen, sowie Probleme jeglicher Art mit
Erzmagiern sind bitte an den Gott oder Erzmagier des Vertrauens
mitzuteilen.


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



ZT Orakel (Boing,  4. Jul 1997, 17:08:18):
Sodele, was lange waehrt wird (hoffentlich) endlich gut:
         Das neue Zaubertrank-System ist da!!!

Schon seit laengerer Zeit war ja ersichtlich, dass das momentane System
nicht so ganz der Hit ist. Ohne Zaubertranklisten ist das MG praktisch
unspielbar geworden, dem wollte ich ja schon lange mal auf den Pelz 
ruecken. Vor ca. einem halben Jahr hatten wir dann in den Magierrubriken 
eine fruchtbare Diskussion, deren Ergebnis jetzt umgesetzt wurde.

Ab sofort gibt es ein Orakel, das in Abhaengigkeit von den Stufenpunkten
konkrete Hinweise zu den Zaubertrankfundstellen gibt. Wie das genau aus-
sieht, kann man mit 'hilfe zaubertraenke' erfahren. Wichtig ist, dass man
jetzt nur noch einen ZT finden kann, wenn man davor den Hinweis vom Orakel
bekommen hat! Um zu verhindern, dass man dadurch Quests noch mal machen 
muss, nur um einen ZT ganz am Ende zu bekommen, wurden diese ZTs groessten-
teils durch neue ersetzt. Das soll aber nicht heissen, dass es keine ZTs
in Questgebieten gibt. Falls wir irgendwo einen vergessen haben sollten,
dann teilt das bitte Yantro mit, der ist naemlich ab sofort fuer die
Zaubertraenke zustaendig. Das ganze sollte kompatibel zu alten Charakteren
sein, d.h. wenn jemand viel weniger Stufenpunkte als fuer seine Attribut-
Summe notwendig ist hat, dann muss der halt erst mal ne Weile Stufenpunkte
sammeln um einen Tip zu bekommen. Wenn jemand viel mehr Stupse als notwendig
hat, dann kann er beim Orakel gleich mal so richtig dick abraeumen.
Was die Auswirkungen dieser Aenderung sind, ist klar:
 - Ein Spieler, der ohne ZT-Liste spielen will, kann das endlich tun!
 - Die ZT-Listen werden perfektioniert, das ist mir aber reichlich egal,
   weil mir die Spieler, die den ersten Punkt begruessen werden, tausend
   mal wichtiger sind.
 - Das Erschaffen von Bankzweities wird schwieriger (ist mir recht)

Jetzt noch ein paar Danksagungen:
Der groesste Dank gilt Yantro, er hat naemlich die Tips zu den Zaubertraenken
(sind immerhin ca. 250 Stueck) fast im Alleingang geschrieben. Sehr viel
kam auch noch von Guybrush.
Daran beteiligt waren ausserdem Ark, Semmel, Silvana, Methedras und Augra.
Ich hoffe, ich hab jetzt niemand vergessen, wenn doch, dann tut es mir leid.

Ich hoffe, das klappt alles so, wie ich es mir vorstelle und ich hoffe auch,
dass es fuer alle Spieler eine Verbesserung ist. Falls irgendwo Fehler
auftreten sollten (was nicht auszuschliessen ist), dann sagt bitte Yantro 
oder mir Bescheid.

  Boing

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



Erzmagier deines Vertrauens: Ergebnis (Hate,  9. Jul 1997, 16:26:27):
Liebe Leute,
hier also das Ergebnis der Wahl zum Erzmagier deines Vertrauens.
Diese Wahl hat vorrangig den Zweck, den Spielern, die keinen der Erzmagier
kennen einen Ueberblick ueber die Bekanntheit und Beliebtheit der
Erzmagier zu geben, damit man sich an einen wenden kann im Fall
eines Problems oder freudigen Ereignisses.

Waerend der Zeit der Wahl hatten wir folgende Spielerstatistik:

Insgesamt eingeloggt:                 1329 Charaktere
Ohne angemeldete Zweitspieler:        1153 Charaktere
Davon Spieler ueber Level 10:          572 Charaktere

Bei 239 abgegebenen Stimmen ergibt sich daraus eine Wahlbeteiligung von 41%

Hier nun das Abstimmungsergebnis:

      Silvana:  70 - 29.29%
       Zardoz:  57 - 23.85%
        Boing:  39 - 16.32%
         Hate:  26 - 10.88%
       Yantro:  11 -  4.60%
    Catweazle:  10 -  4.18%
   Highlander:   7 -  2.93%
       Rochus:   6 -  2.51%
   Paracelsus:   5 -  2.09%
         Kirk:   4 -  1.67%
       Rumata:   3 -  1.26%
          Jof:   1 -  0.42%

Hate.

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



Neuer Insel-RM (Hate, 14. Jul 1997, 13:32:44):

Die Region Inseln hat ab sofort einen neuen Regions-Chef: Gundur
Alle Fragen, die Region betreffend sind also an Gundur zu richten.

Hate.

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



Erzmagierkonferenz (Mi, 3.9.1997) (Hate,  5. Sep 1997, 16:05:25):

Ergebnisse der Erzmagierkonferenz:

        * Markierungspflicht fuer Zweitcharaktere
                - Umsetzung bis Oktober
                - Bis dahin werden Markierungsstellen durch die
                  Regionen geschaffen
                - Der Name des Erstspielers wird nicht sichtbar sein.

        * Der Befehl "ende" wird nicht als Kampftaktik akzeptiert
                - Zeitbeschraenkung beim Kampf, bevor "ende" wirkt
                - Ob "ende" wirksam ist oder nicht wird an entsprechender
                  Stelle ("info") angegeben sein.

        * Polizei/Sheriff:
                - Es wird grundsaetzlich nach
                        + Verwarnung
                        + Strafe (Loeschung)
                  vorgegangen.
                - Highlander wird eine konkrete Liste von Massnahmen
                  vorstellen. Nichtaufgefuehrte Handlungen, die dennoch
                  als Strafwuerdig in Frage kommen sind kein Schutz
                  vor einer Strafe.

        * Kneipen/Bank
                - Es ist eine Aenderung geplant, wonach die Kneipen nicht
                  mehr in der bekannten Form als Heilstellen dienen. Ein
                  geeignetes Konzept wird erarbeitet.
                - Bis ein abgeschlossenenes Geldsystem/konzept erarbeitet
                  ist, wird es keine Banken geben. Dies deutet schon an,
                  dass etwas in der Art jedoch geplant ist.


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



Re: Erzmagierkonferenz (Mi, 3.9.1997) (Silvana,  5. Sep 1997, 21:13:44):
~#! rn=Hate rt=873468325 rg=bekanntmachungen
~#! tid=873468325
Nur als Ergaenzung zum Thema Zweities:
Fondil Farin, der Schreiber den Elfen, ist bereits in der Lage,
Zweities namentlich zu markieren. Fragt ihn einfach nach Zweities.

  Silvana

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



Reboot (Highlander, 11. Sep 1997, 13:56:38):
... wegen noetigem
file system check - einige Spieler sind zu device files geworden :>
Bezug: Thu Sep 11 13:54:52 MET DST 1997 +7 min reboot
Dauer: ca. 30 min, wenn der fsck das selber schafft.
Laenger, wenn Handarbeit noetig ist.
  HrT

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



RM-Tausch: Ebene <-> Inseln (Hate, 16. Sep 1997, 09:56:42):
Fuer Fragen und Anregungen in folgenden Regionen sind die unten genannten
Regionsmagier verantwortlich:

   Inseln: Bloodyharry
   Ebene: Gundur

Hate.

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



Zweitiemarkierungspflicht (Boing, 26. Sep 1997, 11:43:37):
Der Zwergenschmied ist jetzt auch in der Lage Zweities namentlich zu
kennzeichnen. Ich moechte nochmal daran erinnern, dass bis Ende Oktober
alle Zweities namentlich gekennzeichnet werden MUESSEN!
  Boing

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



Re: Zweitiemarkierungspflicht (Boing, 26. Sep 1997, 11:47:44):
~#! rn=Boing rt=875267017 rg=bekanntmachungen
~#! tid=875267017
Noch ein Zusatz: Der Schmied sollte auch in der Lage sein, Zweitspieler
die nach der herkoemmlichen Methode markiert waren (ohne Namen)
'umzumarkieren'. Ich habe das allerdings nicht getestet, falls es Probleme
geben sollte, dann schickt mir bitte ne mail.
  Boing

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



Konzept: Deputies (Hilfssheriffs) (Highlander,  1. Okt 1997, 14:20:59):
Hallo!
Ich moechte euch ein Konzept vorschlagen, das wir und ueberlegt haben -
die Deputies (das ist einfach kuerzer als Hilfssheriffs).
Dabei soll es sich um Spieler handeln (moeglicherweise Seher, da sind wir
uns noch nicht ganz sicher), die
- sich im MG gut auskennen
- oefter mal da sind
- sowohl von Spieler- als auch EM-Seite akzeptiert werden
und die dabei so eine Art Polizei sein sollen. Konkret sollen sie
in Abwesenheit von Magiern, die sich um Probleme kuemmern koennen
(dabei sind hier hauptsaechlich die EM gemeint) dafuer Sorge tragen,
dass sich die Leute benehmen und als Ansprechpartner dafuer dienen,
wenn ein Spieler lieber erst mal mit einem anderen Spieler reden will
Dabei dachten wir vor allem an Spielerinnen, die genervt werden.
Auch sollen sie eine Meldung bekommen, wenn ein Spieler einen andern
angreift und dagegen einschreiten koennen.
Zu diesem Zweck sollen folgende zweckgebundenen Aktionen moeglich sein:
- goto (nur bei Spielerangriffen)
- finde (etwas anders als die Seherkugel, aber nur minimal)
- Frieden stiften (fuer Spieler/Spieler-Konflikte wirksam)
- Halsweh verteilen
- im Notfall einen Spieler ins Gefaengnis schicken
Alle Aktionen wuerden selbstverstaendlich geloggt, und bei Missbrauch der
Moeglichkeiten waere der Aerger gross.
Gedacht hatten wir uns das so, dass ihr 10 Leute durch Wahl vorschlagt, von
denen wir uns 5 aussuchen, die dann, so sie wollen, einen Deputystern
angeheftet bekommen und daraufhin auf ihre Aufgabe losgelassen werden.
Wenn ihr dazu Kommentare/Kritik/Vorschlaege machen wollt:
BITTE TUT DAS IN DER RUBRIK ENTWICKLUNG.
Ich haette zwar auch dort schreiben koennen, aber hier geht
das nicht so leicht unter, denke ich.
   HrT

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



Bug bei den ZTs. (Yantro,  2. Okt 1997, 20:40:44):

Hi, 
ich hab dann mal eine traurige Nachricht, aber ich mach es kurz:

Es gab einen Bug in der ZTVerwaltung, dass es keine Zts mehr gab. Den hat
Boing so ausgebaut, dass es nun fuer alle Spieler an den ZTstellen UNENDLICH
viele Zts gab. Dies haben inzwischen einige Spieler ausgenutzt und es ueber
einen Teil der Kanaele weitergeprahlt, so dass ich keine Uebersicht mehr habe,
wer sich nun wo wieviele ZTs durch den Bug erschlichen hat. Deswegen hab ich
die ZTs erstmal generell ausgebaut und bis zur Reperatur wird es auch keine
Zts mehr geben.

Wie die zu hohen Stats reduziert werden koennen, weiss ich im Moment auch
nicht, aber ich denke, wenn es zu viele waren und es unuebersichtlich wird,
dann wird das Backup vom 1.10. hochgespielt. Dies KANN sein, muss aber nicht.

Damit es nicht noch schlimmer wird mit dem Missbrauch, wird es, damit die
sperrung der ZTs greift, einen Reboot geben.

Yantro
~

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



ZTbug (Yantro,  7. Okt 1997, 17:53:43):
Hi, 
ich hab den ZTbug inzwischen gefixed (was lange waehrt...). Man kann nun
keinen Stat mehr verlieren, wenn man nach dem Finden des ZTs aus dem Spiel
fliegt und noch nicht erhoeht hat. Mehrere ZTs an einer Stelle gehen auch
nicht mehr. Also laeuft es jetzt alles so, wie ich mir das gedacht hab.

Die Sperre des ZTfindens werdet ihr los, indem ihr auf den naechsten Reboot
wartet (kann nicht lange dauern) oder ende macht.

Backups der alten Playerfiles werden nicht hochgefahren, weil die Anzahl derer
mit erhoehten Stats gerade noch ueberschaubar geblieben ist. 

Yantro.

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



Deputies -> /dev/null (Highlander, 10. Okt 1997, 14:34:32):
Nach dem die allgemeine Meinung zu diesem Konzept so geschaetzte 2/3
in der Richtung "Bloedsinn." "Unnoetig." "Iiiih." ging, ist es hiermit
begraben. Und komme mir jetzt keiner mit "aber ich haette es gewollt" -
dann haette derjenige seinen Mund aufmachen sollen.
Einerseits wollt ihr immer mal wieder mehr mitzureden haben, aber wenn
ihr dann die Moeglichkeit haben sollt, mehr Verantwortung zu uebernehmen,
kommt so eine Reaktion. Vergesst am besten saemtliche Gedanken an einen
Spielerrat oder so. Was Yantro (von dem die Idee kam) und mich besonders
geaergert hat, war, dass wenige sachliche Kritik geaeussert haben und
einige vor allem "Das ist doof." meinten. Nicht unbedingt woertlich, aber
sinngemaess.

   HrT

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



Ein Freund, ein guter Freund... (Silvana,  6. Nov 1997, 10:04:04):
Da sich offenbar niemand dazu aeussern will, der verantwortlich ist, 
schreib ich jetzt mal was:
Freund ist nicht nur wieder da, sondern auch wieder Erzmagier.

Was fuer einen Posten er hat, wer ihn wann zum Erzmagier gemacht hat und
so ist offenbar nicht bekannt, jedenfalls fuehlt sich keiner, der etwas
wuesste, dazu gemuessigt, was dazu zu schreiben. Wie dem auch sei:
Welcome back, Freund, und keine Sorge, wir werden Arbeit fuer Dich finden...

  Silvana (boshaft grinsend)


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



REP:mg (Toeter, 17. Nov 1997, 19:26:40):
Hi,
ich habe heute mit Prof. Wirtz vom Institut fuer Informatik gesprochen,
und ihm die Einrichtung einer MorgenGrauen-AG vorgeschlagen, unter der
MG dann offiziell fungieren koennte - auf die Weise waere damit die Zu-
kunft von MG an der Uni Muenster gesichert. Er ist damit grundsaetzlich 
einverstanden, moechte allerdings dazu auch den informatischen (oder sonst-
wie wissenschaftlich gearteten) Hintergrund behandelt wissen. Ich schreibe 
ihm jetzt mal ein wenig Material zusammen, und dann kann er sehen, was ihm 
davon zusagt. Er fand zumindest die Richtung intelligente NPCs/Kampfstrate-
gien ganz interessant, da koennte man z.B. mal ein Seminarthema draus ma-
chen... 
Naja, mal schauen, jedenfalls haette MG damit erst einmal eine Legitimation, 
die ihm auch Anfeindungen von innerhalb der Uni gegenueber einen besseren 
Stand verschafft.

  Toeter

PS: Kleine Anekdote am Rande: Als er meinen Mud-Namen sah, meinte, das 
    MG koennte durchaus auch fuer Psychologen interessant sein... ;)

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



Mudgebuehren (Freund, 20. Nov 1997, 20:46:57):
Hi, im Auftrag von Catweazle folgender Text:

Moin!

Seit einiger Zeit rechnen einige Mudder am rc5-Projekt mit, unter der
Schirmherrschaft vom der Domain mud.de . Ich denke mir, dies ist eine 
hervorragende Gelegenheit, die frueher schon einmal angesprochenen 
Mudgebuehren einzurichten.

Also gelten ab demnaechst folgende Regelungen:
Pro angefangener Onlinestunde ist ein Datenblock bei rc5@mud.de abzuliefern.
Wird dies nicht getan, wird der Spieler automatisch ausgeloggt, es lohnt 
sich also einen kleinen Bloeckevorrat anzulegen.
In mitleidswuerdigen Einzelfaellen von Spielern mit armseligen Rechnern,
laesst sich vielleicht eine Ausnahmeregelung einrichten.
Dies wird in ca. 1 Woche aktiviert, wer bis dahin nicht anfaengt am Block
zu rechnen, wird Schwierigkeiten haben, sich einzuloggen. Newbies kriegen
einen Bonus von 10 Bloecken, um sich einzugewoehnen.

Naehere Infos gibt es in der Rubrik 'hardsoftware'. Websites sind:
http://rc5.distributed.net
http://rc5stats.distributet.net/
http://www.aei-potsdam.mpg.de/~wehrens/rc5/
Muendliche Info koennen Raffi, Anakin, Freund oder ich vergeben.

Yours truly,
     Catweazle (don't take me serious :-)

Gruesse von Freund, 
heute mal Ironie unterstuetzend...

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



Mail ins MUD - Komplettloesungen (Hate,  1. Dez 1997, 11:39:30):

Die Mail der letzten Tage ist nicht angekommen, weil irgendwelche
unfaehigen Komplettloesungsverteiler riesige Mails mit mehr als 3000
Zeilen ins MUD geschickt haben. Diejenigen, von denen die Mail kommt
werden sich verantworten muessen. Ich habe heute die Verstopfung
geloest.

Hate.

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



Rueckstufung Yantro (Jof, 22. Dez 1997, 16:00:07):

 Am 20.12. wurde Yantro aufgrund wiederholter Probleme, speziell mit 
der Form seiner oeffentlichen Aeusserungen, von Level 65 auf Level 45 
(RM Polar) zurueckgestuft.

 Jof

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



Neue Erzmagier (Boing,  8. Jan 1998, 11:31:52):
Es gibt zwei neue Erzmagier:
Gundur uebernimmt die Abenteuer
Rikus uebernimmt Forscherpunkte, Zaubertraenke, Stufenpunkte allgemein
  Boing

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



Ruhestand (Wargon,  3. Feb 1998, 12:47:28):
  Huhu!

Der naechste Schritt in den Ruhestand: ein paar meiner Projekte werden in
andere Haende gelegt
Im einzelnen waeren da:
- offizielle Doku-Magier sind (schon seit November) Freund (als Oberaufseher)
  und Patryn (als Schreibknecht :) zumindest was die MudLib-Doku angeht).
- Morgoth ist jetzt fuer die Kleriker-Gilde zustaendig. Ideen, Beschwerden
  und Fragen sollten also an ihn gerichtet werden! Er wird sie dann ggf.
  weiterleiten :)
- die Seherhaeuser uebernimmt Wurzel. Die Folgen fuer Ideen etc. sind die
  gleichen wie die bei den Klerikern.

Ich werde weiter meinen Ruhestand geniessen, Sumpfdrachen zuechten, den Stein
der Weisen suchen und vielleicht irgendwann noch mal am Ende der Welt rum-
basteln.

  Wargon

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



Re: Ruhestand (Wargon,  3. Feb 1998, 13:04:21):
~#! rn=Wargon rt=886506448 rg=bekanntmachungen
~#! tid=886506448
PS: Nein, meine Frau geb ich nicht ab, sonst wuerde der Ruhestand doch etwas
zu langweilig. :)

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



EM-Konferenz (Silvana,  4. Feb 1998, 19:05:17):
Hi.

Wie einigen wohl bereits gekannt sein duerfte, war gestern Abend eine
EM-Konferenz. Ueber die fuer Spieler wichtigsten Entscheidungen hier eine
kurze Vorab-Bekanntmachung. Details folgen in Kuerze (mir fehlt heute die
Zeit):

1) Spielertesties:
Es wird offiziell erlaubt, Spieler neue Regionen vor deren Anschluss testen
zu lassen - und zwar NACH dem Test durch den RM und NACH Eintragen der Fps.
Die testenden Spieler erhalten alle FPs, die sie dabei finden - aber auch
alle negativen Folgen (Tode...). Getestet wird aus Gruenden der Sicherheit
und Ueberwachbarkeit mit von dem Magier oder den EMs gestellten Testspielern.
Genaueres im Laufe der naechsten Woche in Form einer Doku von mir.

2) Keipen:
Die erste Ausbaustufe der neuen Kneipen wird Ende naechster Woche angeschlossen.
Genaue Details dann ebenfalls an dieser Stelle.

3) StGB:
Keine Sorge, es wird weiterhin keine Gesetzbuch geben. Was es geben wird, ist
eine Sammlung von Richtlinien und Praezedensfaellen, die Freund zusammen-
stellen will (und natuerlich auch pflegen sollte). :-)

4) Ruestungen:
Paracelsus hat neue Maximalwerte fuer Ruestungsklassen ausgearbeitet und wird
diese bald anschliessen. Das wird zwar einige Ruestungsteile schwaechen, aber
insgesamt steigt die maximale Ruestungsklasse sogar...

5) Teamkampf:
Nach Zardoz' Abgang ist jetzt Jof dabei das gesammelte Material zu sichten.
Es tut sich also was...

Silvana (Artikel im Schnellverfahren)

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



Neue Ruestungsstaerken (Paracelsus,  6. Feb 1998, 12:51:09):
Hi.

Wie bereits im vorangegangenen Artikel von Silvana erwaehnt, werden die
Ruestungsstaerken geaendert.
Waehrend einer etwa einen Monat dauernden Uebergangszeit ist quasi eine
Mischung aus den alten und den neuen Werten gueltig, danach gelten nur
noch die neuen Werte.
Wundert euch also nicht, wenn ihr ploetzlich seltsame Meldungen beim
Einschaetzen von Ruestungsteilen bekommt oder wenn sich die Staerken
ploetzlich aendern.
Die meisten Ruestungen werden sich wohl nicht aendern, bzw. nur scheinbar
schwaecher werden, weil sich die Einschaetzungen meist auf den maximal
erlaubten Wert beziehen.

Paracelsus.

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



Spieler-Testies (Freund,  7. Feb 1998, 13:33:18):
Frohes Mudden allerseits,

laut Beschluss der Erzmagier-Konferenz vom 3.2.98 werden ab sofort
Spieler-Testies erlaubt. 

Eine Hilfe-Seite mit Informationen ist mit "hilfe spielertesties" abrufbar.

Mit Dank an Silvana,
Freund.

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



Vorwarnung (Silvana,  9. Feb 1998, 09:22:20):
Hi.

Am Montag den 16.2. wird es im Laufe des Vormittags einen Reboot geben,
da einige Dinge (zum Teil deutlich) veraendert werden. Unter anderem gibt
es dann die neuen Kneipen.
Ausserdem werden dann die Rassen vollstaendig ueberarbeitet. Es werden
sich deutliche Differenzen zu den derzeitigen Werten ergeben (nicht in
den Stats, aber sonst). Um nicht zu viel Unmut zu erzeugen, wird es die
EINMALIGE (!) Moeglichkeit geben, seine Rasse zu aendern - wobei sich
einige Rassen-Gilden-Kombinationen ausschliessen. (Thanx to Wurzel hierfuer)
Und eine neue Rasse (incl Gebiet und Quest) gibts ebenfalls: die Felinen.

Alles naehere (vor allem eine Beschreibung der Vorzuege/Nachteile der
veraenderten Rassen) noch im Laufe der naechsten sieben Tage.

  Silvana (hofft, dass die Zwergenstadt bis dahin auch durch den Test ist)

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



Rassen (Silvana, 12. Feb 1998, 18:26:17):
Hi.

Wie versprochen mal etwas naeheres zu den Rassen:

1) Die Menschen
Naja, was soll man zu den Menschen schon sagen. Sie sind durchschnittlich,
oder um es freundlicher zu sagen: Das Mass der Dinge. Sie koennen im Prinzip
alles, aber nichts wirklich gut, haben aber dafuer keine auch keine wirklich
grossen Schwachen.
Die einzigen Punkte, bei denen Menschen etwas von der Norm abweichen sind
der koerpereigene Ruestungsschutz, der bei den staedtisch lebenden Menschen
bereits etwas verkuemmert ist und ihre, durch die akademische Neigung der
meisten Menschen hervorgerufene, etwas ueberdurchschnittliche Resistenz 
gegen Magie.

2) Hobbits
Das Hobbits gern, oft und viel essen, sollte bekannt sein. :) Nun koennen sies
auch. Dumm nur, dass sie etwas anfaellig gegen Gift sind, aber man soll halt
nicht alles in den Mund stecken...
Ansonsten sind sie bekanntermassen klein, zaeh und geschickt, was ihnen
auch bei der Abwehr von magischen Angriffen etwas zu Gute kommt.

3) Zwerge
Klein und zaeh sind die Zwerge auch - und stark zudem. Und dass man so schnell
keinen Zwerg unter den Tisch trinken kann sollte jeder wissen, der es mal
versucht hat. Und damit sich ein Zwerg auch als Zwerg fuehlen kann, geht es 
ihm natuerlich unter der Erde besser als drueber. Zwerge sind hervorragende 
Bergleute, koennen natuerlich gut klettern (zumindest auf Stein) und
eigentlich
ueberhaupt nicht schwimmen. :) Und was die Magie angeht... Naja, sie tun 
sich schwer, aber wenn sich ein Zwerg in den Kopf setzt, etwas koennen zu 
wollen, dann lernt er es auch irgendwann. Die Magie der Zwerge weist gar
einen kleinen Charakterzug ihrer Schoepfer auf: sie erweist sich als etwas
langlebiger als die Magie anderer Wesen. Und versuch mal einen Zwerg mit
Magie zu beherrschen: Er wird Dir zeigen, was Starrkoepfigkeit wirklich
bedeutet...

4) Elfen
Elfen sind die feinsinnigsten unter den Rassen. Sie sind intelligent, 
geschickt - und genuegsam. Zugegeben, klares Wasser oder Fruchtsaft vermag
sie in wahre Begeisterungsstuerme zu versetzen, aber schwere Speisen oder
gar Schnaps... Nein, viel zu deftig.
Elfen sind der Natuer verbundene Schoengeister, der Magie offen - in jede
Richtung - aber durchaus nicht leicht zu durchschauen. Alles, was mit der
Natur in Einklang steht, faellt ihnen leicht (Klettern, Schwimmen...),
alles andere sehr schwer. Unter der Erde fuehlen sie sich ueberhaupt nicht
wohl.

5) Felinen (Paracelsus moege mich korrigieren, wenn ich falsches schreibe)
Die Felinen sind aufrecht gehende Katzenwesen, haben aber von ihren 
Verwandten noch eine ganze Reihe Eigenschaften uebernommen: sie sind sehr
geschickt und intelligent, zudem sehr schnell, haben aber ueberhaupt keine
Ausdauer.
Felinen sind - schon durch ihre Heimat, den Dschungel - sehr naturverbunden
und fuehlen sich in Lebensfeindlichen Gebieten wie dem ewigen Eis oder 
der Wueste ueberhaupt nicht wohl. Im Gegensatz zu den meisten Katzen sind
sie allerdings ueberhaupt nicht wasserseu (waere auch unguestig, im
Dschungel).
Felinen sind die (bisher) einzige Rasse, die nicht von Anfang an als
Abenteurer auf die Welt kommen - sondern als Katzenkrieger.

Ausblick:
Es wird sich noch einiges tun in absehbarer Zeit: Es wird Std-Skills wie
klettern, schwimmen, balancieren... geben. Fuer Felinen, Elfen und Zwerge
sind verschiedene Variationen von Nachtsicht in Arbeit. Bei Waffen und
Ruestungen tut sich auch was... Naja, lasst Euch ueberraschen...

Ideen,Bugs -> Silvana
Flames -> Andy

    Tschau 4 now - Silvana

PS: Entschuldigt die Formatierung. DOS... *sigh*

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



Das liebe Geld... (Silvana, 16. Feb 1998, 09:48:51):
Hi.
Eine kleine Vorankuendigung schon mal: Padreic hat in muehevoller 
Kleinarbeit die Unit ueberarbeitet (also das std-Objekt, dass hinter
Zaubererkomponenten und Geld und so steckt). Als huebsches Nebenprodukt
dieser Arbeit gibt es nach dem Reboot in allen Laeden Geldboersen zu kaufen,
in denen man das Geld unterbringen kann, und aus denen DIREKT, also ohne
'nimm muenzen aus boerse' bezahlt werden kann.

  Viel Spass damit - Silvana

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



Zwerge unter die Erde gebracht (Silvana, 16. Feb 1998, 09:51:22):
Meine lieben Zwerge.

Ihr werdet Euch vielleicht nach dem Reboot wundern, wo ihr wieder zu Euch
kommt. Wurzel ist es nach langen Grabungen gelungen, die alte Zwergenfestung
wieder freizulegen. Daher werdet ihr - sofern ihr nicht Kaempfer seid oder
ein Eigenheim besitzt - dort Eure neue (sozusagen alte) Heimat wiederfinden.

  Silvana

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



Eine Bitte... (Silvana, 16. Feb 1998, 10:53:38):
Hi.

Wie ihr vielleicht mitbekommen habt, wird sich mit dem Reboot einiges 
aendern: Die Rassenshells, die Kneipen, die Std_Unit, einiges bei Waffen
und Ruestungen, Ne Kleinigkeit in den Laeden...
Zudem gibt es zwei ziemlich grosse neue Gebiete, eine neue Rassen sowie
eine neue Quest.

Dass das nicht ganz einfach ist, dass reibungslos durchzufuehren, sollte 
Euch klar sein. Wir haben zwar alles ausfuehrlich getestet, aber das
ist natuerlich keine Garantie dafuer, dass gleich alles klappt. Wenn es
also Bugs geben sollte, bitte nicht gleich schreien. Das wird eine ziemlich
aufregende Woche werden - fuer uns alle - und es faellt uns leichter, 
wenn wir uns auf ein etwas ruecksichtsvolleres Miteinander einigen koennten.

  Silvana - hegt Hoffnung

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



Aenderungen (Paracelsus, 16. Feb 1998, 11:48:45):
Hi.

Mit dem letzten Reboot haben sich einige Aenderungen ergeben, deren
Auswirkungen ihr sicherlich bemerken werdet.
So tritt z.B. mit den neuen Kneipen auch eine Aenderung bei der maximal
erlaubten Heilung in Kraft. Es sind jetzt staerkere Heilungen erlaubt,
als vorher.
Das Problem ist, dass sich vorher kaum einer daran gehalten hat, was bei
Kneipen legal ist und was nicht. Bei den neuen Kneipen hingegen wird
strikt auf die Einhaltung der Regeln geachtet. Daher kommt es jetzt wohl
in einigen Kneipen dazu, dass einige Gerichte/Getraenke nicht mehr
wirken. In so einem Fall bitte Ruhe bewahren und nicht gleich Zeter und
Mordio schrein. Wir koennen schliesslich nicht alle Kneipen gleichzeitig
anpassen.
Eine weitere Aenderung betrifft die Zahl der Aktionen, die in einer
Kampfrunde zusaetzlich gemacht werden koennen (Bumi werfen, Flammenkugeln,
etc.) Spieler sind hiervon nicht betroffen, niedriglevelige Seher kaum
bzw. eventuell sogar positiv, bei den hoeherleveligen Sehern gehts ein
klein wenig bergab (tja, die Aermsten sind halt immer die, auf deren
Ruecken solche Sachen ausgetragen werden).

Das wars erstmal von der Aenderungsfront.

Paracelsus.

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



Reboot (Paracelsus, 28. Feb 1998, 22:07:44):
Hi.

Es wird voraussichtlich im Laufe des kommenden Montages (2.3.1998) einen
Reboot geben.
Grund sind einige Aenderungen an der Mudlib.

Paracelsus.

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



Reboot verschoben (Paracelsus,  2. Mar 1998, 09:19:40):
Hi.

Da Silvana heute leider verhindert ist, wird der Reboot auf morgen
verschoben.
Voraussichtlicher Zeitpunkt: etwa gegen Mittag.

Paracelsus.

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



Reboot (Silvana,  3. Mar 1998, 10:42:00):
Hi.
Es gibt mit dem heutigen Reboot noch mal ein paar Verschiebungen in der
Heil- und Food/Drink...-Regenerationsrate. Damit verbunden ist eine
leichte Veraenderung der Berechnung der zulaessigen Getraenke.
Es kann daher im Laufe der naechsten Tage noch mal zu ein paar neuen
Ungereimtheiten in den Kneipen kommen, die ich jetzt schon mal 
entschuldigen moechte.
Bevor jetzt Entsetzensschreie laut werden: Viel aendert sich nicht, aber
das, was sich aedert, ist zum groessten Teil in Richtung MEHR Heilung.

Ausserdem gibts leichte Verschiebungen in den Magieresistenzen, was
vor allem die Elfen freuen duerfte...

Ach ja, noch was: Es gibt eine (hoffentlich) deutlich bugaermere Unit
und damit etwas 'stabileres' Geld... Hoffen wir das Beste...

  Silvana

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



Neue Ruestungsstaerken - die 2. (Paracelsus, 10. Mar 1998, 00:16:36):
Hiho.

Vor gut einem Monat hatte ich in dieser Rubrik ja bereits darauf hingewiesen,
dass die Maximal-Schutz-Werte der Ruestungen geaendert worden sind. Nachdem
die Uebergangszeit von einem Monat nun vorbei ist, werden die neuen Werte
nun 'voll aktiviert'. Daher wird es wohl hoechstwahrscheinlich morgen Abend
einen Reboot geben.
Nach dem Reboot wird es wohl hin und wieder passieren, dass ihr beim
Anziehen einer Ruestung (Arten: Ring/Amulett/Handschuhe/Schuhe) die
Meldung bekommt, ihr haettet es mit einer illegalen Ruestungsklasse
zu tun. In so einem Fall wendet euch einfach an den Magier, der das
Objekt programmiert hat (festzustellen  durch ein 'identifiziere' eines
hochleveligen Zauberers, Hoerrohr, nachfragen, etc.). Bei Magiern, die schon
laengere Zeit nicht mehr aktiv sind, wendet ihr euch am besten an den entspr.
Regionsmagier.

Paracelsus.

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



Reboot (Paracelsus, 10. Mar 1998, 22:08:58):
Reboot - kein Reboot - Reboot - kein Reboot - Reboot - kein Reboot - ...

Da der von mir angekuendigte Reboot eigentlich nicht 100%ig notwendig ist,
hab ich eben mal auf dem Seherkanal abstimmen lassen (Igitt, Demokratie ;).
Es gibt also doch keinen, warten wir auf den naechsten Crash...

Paracelsus.

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



Seherstatus (Silvana, 31. Mar 1998, 23:57:47):
Hi.

Nachdem es auf der Party wieder massive Beschwerden ueber die Schwemme
der Wurstseher gab, habe ich dem nun einen Riegel vorgeschoben. Ab dem
naechsten Reboot werden die Seheranforderungen wie folgt aussehen:

Man hat unter den Top 50 der Spieler im MG zu sein!

Wer nicht unter den Top 50 ist, verliert seinen Status mit all seinen
Rechten. Ueberzaehlige Seherhaeuser werden zur Lag-Reduzierung ebenfalls
eingestampft - natuerlich nur die der Spieler, die ihren Status ver-
lieren. Ich hoffe, damit wird das Seher-Dasein wieder etwas spannender. :)


  Gute Nacht - Silvana

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



Moegliche "Loecher" (Highlander,  2. Jun 1998, 10:17:29):
Ich habe Zardoz letzthin darauf hingewiesen (in Verbindung mit 4 Wochen
Zwangspause), dass er beim naechsten Regelverstoss faellig ist, m.a.W.
geloescht wird. Seine Antwort darauf:
--quote
Zardoz teilt Dir mit: Aha, ich erfahre das hoffentlich vorher, damit ich meine
Zardoz teilt Dir mit: Sachen, die ich geproggt habe, abhaengen kann?
tell . Das waere?
Du teilst Zardoz mit: Das waere?
[/players/highlander] Wat nu? Zardoz teilt Dir mit: Chaosgilde, Kaempfergilde
und Daemonenburg.
Zardoz teilt Dir mit: wenn ich rausfliege, auch wenns berechtigt ist, nehm ich
Zardoz teilt Dir mit: meine Sachen mit. Ich will damit keinen Druck machen,
Zardoz teilt Dir mit: damit das klar ist, nur kriegt dann nen anderes Mud die
Zardoz teilt Dir mit: dinge
--unquote

Falls also irgendwann mal Loecher auftreten, bitte nicht wundern.

   HrT

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



Mail Internet -> MG (Jof, 18. Jun 1998, 07:07:10):
 Leider geht seit Montag die Mail vom Internet ins MorgenGrauen nicht
mehr, da die Mathematik einen Firewall fuer ihre Subnetze und Port 25
eingeschaltet hat. Zudem existiert seitdem ein MX, der dafuer 
sorgt, dass die Mail fuer MG auf dem Mailhost der Mathe landet,
der damit nichts anfangen kann und sie daher entsorgt (ja, richtig,
meisstens kommt sie nichtmal zurueck). 
 Mittlerweile ist ein weiterer MX-Record beantragt (MG wird best MX
fuer sich selbst), der dann dafuer sorgt, dass der Mathe-Mailhost die
Mail weiterschickt an MG; danach ist (hoffentlich) wieder alles beim
Alten.

 Sorry for the inconvenience

 Jof

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



top-liste (Boing, 18. Jun 1998, 07:22:23):
Das gigantische Lag, was taeglich gegen 18 Uhr aufgetreten ist, lag 
wohl an der Top-Liste, die da berechnet wurde. Da sie auf einem anderen
Rechner berechnet wurde, gab es gewaltige Mengen von NFS-Load, was 
den Rechner mehr belastet als eine direkte Berechung auf mg. Also
wurde das script jetzt verlegt. Ausserdem wird die Liste nur noch
einmal pro Tag (um 0 Uhr) berechnet.
Das starke Lag (im Gegensatz zum gigantischen) was man vor allem
nachmittags beobachten kann, liegt wahrscheinlich daran, dass alle 5
Minuten ein momentan 128 MB grosses Swap-File geschrieben wird. Das
Schreiben dieser Datei laesst sich NICHT vermeiden! Die einzige Chance
hier etwas zu verbessern liegt wohl darin, dafuer zu Sorgen, dass weniger
aktive Objekte im Spiel sind. Als erster Versuch laeuft deswegen der
Zwergenladen in einer Testphase, in der bei jedem Reset ein gewisser
Prozentsatz 'Ladenhueter' entsorgt wird. Sollte das einigermassen
brauchbar funktionieren, werden alle Laeden dementsprechend angepasst.
Sobald das der Fall ist, kann also jeder zu einer Lagreduzierung
beitragen, indem er 'Muell' nicht einfach liegen laesst oder im
Seherhaus ansammelt, sondern im Laden verkauft, auch wenn man nix
mehr dafuer bekommen sollte.
  Boing - Anti-Lag-Kampagne

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



Re: top-liste (Jof, 18. Jun 1998, 15:56:26):
~#! rn=Boing rt=898154543 rg=bekanntmachungen
~#! tid=898154543
 Im Rahmen der Boing-Anti-Lag-Kampagne habe ich auch die Swap-Zeiten wieder
geaendert; es wird wieder frueher geswapped. Das klingt zwar unsinnig,
hat aber zugleich ein haeufigeres clean_up() zur Folge, so dass auch
hierdurch die Objektzahl reduziert wird. Die Aenderungen waren aller-
dings diesmal sehr moderat und muessen ggfs erweitert werden.

 Jof

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



Re: Re: top-liste (Hate, 19. Jun 1998, 08:59:55):
~#! rn=Jof rt=898185386 rg=bekanntmachungen
~#! tid=898154543
Hmm, fuer die TOPlistenberechnung solltet ihr mal im Web die Statistik
ansehen. Die wenigsten Spieler sind im MG gegen 0700 Uhr frueh.
Dort oder kurz vorher zu starten macht am meisten sinn.
Mitternacht sind immer noch ca. 60-70 Leute im MUD.

Hate.

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



Wieso das MG unten war (Boing, 24. Jun 1998, 07:55:17):
Gestern abend gab es irgendwelche Probleme mit dem SCSI-Controller (wenn 
ich Jof richtig verstanden habe). Dadurch ist zuerst das Lag extrem
angestiegen, dann das Mud stehengeblieben. Ich habe danach versucht,
den prozess abzuschiessen, der hat sich nur leider geweigert sich 
abschiessen zu lassen. NAch einem kurzen Telefonat mit Jof hat dieser
den Rechner gebooted (uebers Netz), leider war im bootup script ein
Fehler drin, der zu einer Anfrage fuehrte, die auf der Konsole haette
eingegeben werden muessen. Naja, das ist dann heute frueh geschehen.

  Boing
PS: Das bootup script wurde jetzt uebrigens geaendert ;)

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



Mail geht wieder (Jof, 24. Jun 1998, 10:27:38):

 Seit heute, 24.6.98, ca 12:00 sollte die Mail vom Internet ins MG
wieder arbeiten.

 Viel Spass
  Jof

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



Re: Wieso das MG unten war (Jof, 24. Jun 1998, 10:31:31):
~#! rn=Boing rt=898674917 rg=bekanntmachungen
~#! tid=898674917

 Konkret sieht das dann so aus:

Jun 23 19:33:32 mg kernel: scsi : aborting command due to timeout : pid
41922543
, scsi0, channel 0, id 0, lun 0 Read (6) 16 a6 38 02 00
Jun 23 19:33:32 mg kernel: scsi0 : DANGER : command running, can not abort.
Jun 23 19:33:32 mg kernel: scsi : aborting command due to timeout : pid
41922544
, scsi0, channel 0, id 0, lun 0 Read (6) 16 a6 3a 02 00
Jun 23 19:33:32 mg kernel: scsi0 : found command 41922544 in Linux issue queue
Jun 23 19:33:32 mg kernel: scsi : aborting command due to timeout : pid
41922547
, scsi0, channel 0, id 0, lun 0 Read (6) 16 a6 3c 0a 00
Jun 23 19:33:32 mg kernel: scsi0 : found command 41922547 in Linux issue queue
Jun 23 19:33:53 mg kernel: scsi : aborting command due to timeout : pid
41922543
, scsi0, channel 0, id 0, lun 0 Read (6) 16 a6 38 02 00
Jun 23 19:33:53 mg kernel: scsi0 : DANGER : command running, can not abort.
Jun 23 19:33:53 mg kernel: SCSI host 0 abort (pid 41922543) timed out -
resettin
g
Jun 23 19:33:53 mg kernel: scsi0 : DANGER : command running, can not abort.
Jun 23 19:33:53 mg kernel: SCSI host 0 abort (pid 41922543) timed out -
resettin
g
Jun 23 19:33:53 mg kernel: SCSI bus is being reset for host 0 channel 0.
Jun 23 19:33:53 mg kernel: scsi0 : DCMD|DBC=0x820b0000, DNAD=0x9082c (virt
0x000
9082c)
Jun 23 19:33:53 mg kernel:          DSA=0x55e1e8 (virt 0x0055e1e8)
Jun 23 19:33:53 mg kernel:          DSPS=0x90844, TEMP=0x55e0ac (virt
0x0055e0ac
), DMODE=0x88
Jun 23 19:33:53 mg kernel:          SXFER=0x0, SCNTL3=0x3
Jun 23 19:33:53 mg kernel:          BSY phase=MSGOUT, 0 bytes in SCSI FIFO
Jun 23 19:33:53 mg kernel:          STEST0=0x77
Jun 23 19:33:53 mg kernel: scsi0 : DSP 0x90824 (virt 0x00090824) ->
Jun 23 19:33:53 mg kernel: 0x90824 (virt 0x00090824) : 0x820b0000 0x00090844
(vi
rt 0x00090844)
Jun 23 19:33:53 mg kernel: 0x9082c (virt 0x0009082c) : 0x9f030000 0x00000000
(vi
rt 0x00000000)
Jun 23 19:33:53 mg kernel: 0x90834 (virt 0x00090834) : 0x8f0b0000 0x00090a04
(vi
rt 0x00090a04)
Jun 23 19:33:53 mg kernel: 0x9083c (virt 0x0009083c) : 0x870b0000 0x00090834
(vi
rt 0x00090834)
Jun 23 19:33:53 mg kernel: 0x90844 (virt 0x00090844) : 0x9a030000 0x00000000
(vi
rt 0x00000000)
Jun 23 19:33:53 mg kernel: 0x9083c (virt 0x0009083c) : 0x870b0000 0x00090834
(vi
rt 0x00090834)
Jun 23 19:33:53 mg kernel: 0x90844 (virt 0x00090844) : 0x9a030000 0x00000000
(vi
rt 0x00000000)
Jun 23 19:33:53 mg kernel: 0x9084c (virt 0x0009084c) : 0x1a000000 0x00000048
(vi
rt 0x00000048)
Jun 23 19:33:53 mg kernel: scsi0 : connected (SDID=0x0, SSID=0x80)
Jun 23 19:33:53 mg kernel: scsi0 : dsa at phys 0x55e1e8 (virt 0x0055e1e8)
Jun 23 19:33:53 mg kernel:         + 64 : dsa_msgout length = 1, data =
0x55e02c
 (virt 0x0055e02c)
Jun 23 19:33:53 mg kernel:                Identify disconnect allowed lun 0
Jun 23 19:33:53 mg kernel:         + 60 : select_indirect = 0x3000000
Jun 23 19:33:53 mg kernel:         + 56 : dsa_cmnd = 0x94410               
resu
lt = 0xffff, target = 0, lun = 0, cmd = Read (6) 16 a6 38 02 00
Jun 23 19:33:53 mg kernel:         + 48 : dsa_next = 0x0
Jun 23 19:33:53 mg kernel: scsi0 target 0 : sxfer_sanity = 0x0, scntl3_sanity
=
0x3
Jun 23 19:33:53 mg kernel:                    script : 0x78030300 0x0
0x78050000
 0x0 0x90080000 0x0 0x0 0x0
Jun 23 19:33:53 mg kernel: scsi0 : saved data pointer at offset 0
Jun 23 19:33:53 mg kernel: scsi0 : can't determine active data pointer offset
Jun 23 19:33:54 mg kernel: 0x90854 (virt 0x00090854) : 0x820b0000 0x0009084c
(vi
rt 0x0009084c)
Jun 23 19:33:53 mg kernel: scsi0 : can't determine active data pointer offset
Jun 23 19:33:54 mg kernel: 0x90854 (virt 0x00090854) : 0x820b0000 0x0009084c
(vi
rt 0x0009084c)
Jun 23 19:33:54 mg kernel: 0x9085c (virt 0x0009085c) : 0x8f0b0000 0x00090a04
(vi
rt 0x00090a04)
Jun 23 19:33:54 mg kernel: scsi0 : issue queue
Jun 23 19:33:54 mg kernel: scsi0 : dsa at phys 0x55c080 (virt 0x0055c080)
Jun 23 19:33:54 mg kernel:         + 64 : dsa_msgout length = 591332, data =
0x0
 (virt 0x00000000)
Jun 23 19:33:54 mg kernel:         + 60 : select_indirect = 0xc0000004
Jun 23 19:33:54 mg kernel:         + 56 : dsa_cmnd = 0x0
Jun 23 19:33:54 mg kernel:         + 48 : dsa_next = 0x0
Jun 23 19:33:54 mg kernel: scsi0 : dsa at phys 0x8080 (virt 0x00008080)
Jun 23 19:33:54 mg kernel:         + 64 : dsa_msgout length = 591332, data =
0x0
 (virt 0x00000000)
Jun 23 19:33:54 mg kernel:         + 60 : select_indirect = 0xc0000004
Jun 23 19:33:54 mg kernel:         + 56 : dsa_cmnd = 0x0
Jun 23 19:33:54 mg kernel:         + 48 : dsa_next = 0x0
Jun 23 19:33:54 mg kernel: scsi0 : schedule dsa array :
Jun 23 19:33:54 mg kernel: scsi0 : end schedule dsa array
Jun 23 19:33:54 mg kernel: scsi0 : reconnect_dsa_head :
Jun 23 19:33:54 mg kernel: scsi0 : end reconnect_dsa_head
Jun 23 19:33:54 mg kernel: The sti() implicit in a printk() prevents hangs
Jun 23 19:33:54 mg kernel: scsi0 : end reconnect_dsa_head
Jun 23 19:33:54 mg kernel: The sti() implicit in a printk() prevents hangs
Jun 23 19:33:54 mg kernel: scsi : aborting command due to timeout : pid
41922544
, scsi0, channel 0, id 0, lun 0 Read (6) 16 a6 3a 02 00
Jun 23 19:33:54 mg kernel: scsi0 : did this command ever run?
Jun 23 19:33:54 mg kernel: scsi0 : target 0 accepting asynchronous SCSI
Jun 23 19:33:54 mg kernel: scsi0 : setting target 0 to asynchronous SCSI
...

usw usw

Wir sollten uns mal nach einer UDMA-Platte umschauen, dann passiert uns 
sowas nicht mehr ...

 Jof

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



Balance-Team (Boing,  1. Jul 1998, 14:11:57):
Hallo,

wie bereits angekuendigt habe ich jetzt das Balance-Team zusammengestellt.
Das Team besteht aus Teddy, Sting, Nachtwind, Tars, Zephyr, Sharia und
mir und hat die folgenden Aufgaben:

o Neue Objekte auf ihre Auswirkung im Spielgeschehen ueberpruefen und
  bei Bedarf aendern lassen.
o Alte Objekte, die das Gleichgewicht empfindlich stoeren finden, eine
  Aenderung diskutieren und diese veranlassen.

Dabei wird innerhalb des Teams ueber bestimmte Objekte diskutiert und
dann eine Entscheidung getroffen. Diese Entscheidung ist fuer Magier
verbindlich! Die Entscheidung wird auch nicht von einer Einzelperson
getroffen (d.h. ausser in Ausnahmen auch nicht von mir allein) sondern
von den Mitgliedern des Teams.
Die Namen der Mitglieder werden hier bewusst oeffentlich gemacht, wir
sind kein Spionagering sondern wollen konstruktiv das MorgenGrauen
verbessern. 

  Boing

PS: Kommata werden nur gegen Gebuehr gesetzt

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



Neuer (alter) Gilden-Balance-EM (Boing,  7. Jul 1998, 18:09:38):
Hallo,
ich verkuende mal kurz allerseits, dass Silvana die Nachfolge von
Paracelsus im Bereich Gilden-Balance angetreten hat. Interessant wird
das natuerlich vor allem fuer die Gildenmagier und die Spieler, die 
wollen, dass ihre Gilde abgewertet wird. :)
  Boing

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



Neue RMs (Boing,  9. Jul 1998, 11:28:20):
Zur Entlastung von Wurzel (der gerade ja eh wenig Zeit hat) ist Padreic
jetzt RM Unterwelt. Ausserdem ist Feuerwehr im Polargebiet als RM
eingestiegen. 
  Boing

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



Restaurierung (Rikus, 13. Aug 1998, 14:31:26):
Hi,
 es scheint mehr oder weniger immer mehr (welch ein Ausdruck) Mode zu
werden, sich zu loeschen und 1-2 Tage spaeter wegen Restaurierung an-
zukommen. Der Spielernaem wird bei der Loeschung automatisch gesperrt.
Im aktuellen Fall habe ich es nun so gemacht (und mit den anderen abge-
sprochen), dass ich den Namen wieder freigegeben habe zum Neuanfang,
aber halt wirklich NEUanfang, also keinerlei Backup. Ueberdenkt lieber,
ob Ihr Euch aus welchem Grund auch immer loescht!

Rikus

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



Mayaquest (Gundur, 15. Aug 1998, 17:57:08):
Der empfohlene Level der Mayaquest wurde von 12 auf 15 hochgesetzt...
Gruss
Gundur

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



Reboot (Silvana, 28. Aug 1998, 17:06:26):
Durch die Umstellung des Hand-Zaubers sind heute nacht ein paar
Fehler in der Mudlib deutlich geworden, die einen Reboot
dringend erfordern. Sorry.

  Silvana

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



Geld (Gundur, 20. Sep 1998, 23:03:08):
Hi
Aufgrund eines Bugs musst ich eine alte Version des Geldes wieder einspielen
und das komplette vorhandene Geld vernichten.
Dies war noetig weil einige Spieler sich durch den bug mengen an geld
angeeignet haben.
Wer jetzt rumheult soll mal darueber nachdenken ob ihm ein reboot lieber
gewesen waer.
Gruss
G.

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



geld die zweite (Gundur, 21. Sep 1998, 09:51:09):
Klarstellung:
Der Bug des Geldes hat in keinster Weise was mit PADREIC zu tun!
Alle verstanden?!
Gruss
G.

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



neues Balance-Team-Mitglied (Boing, 23. Sep 1998, 08:03:02):
Da Tars aus zeitlichen Gruenden aus dem Balance-Team ausgetreten ist,
wurde nun als neues Mitglied Mindblade gefunden.
  Boing

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



Reboot (Rochus, 16. Dez 1998, 17:17:56):
Es wird heute Abend einen Reboot geben, den genauen Zeitpunkt kann
ich noch nicht sagen.
Grund: Der Teamkampf kann erst dann richtig getestet werden.
Sobald der ausgetestet ist wird der dann endgueltig aktiviert,
dafuer wird (wenn alles gut geht) jedoch kein zweiter Reboot
erforderlich sein sondern Ende genuegt dann.

  Rochus

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



Teamkampf/Reboot (Rochus,  8. Jan 1999, 17:43:58):
So, der Teamkampf ist soweit fertig, dass ich damit rechne, dass
er am Mittwoch fuer alle aktiviert werden kann.
Beim Testen haben sich weniger Probleme ergeben als erwartet,
leider jedoch nicht weniger als erhofft :-)
Einige der notwendigen Aenderungen erfordern leider einen
Reboot, da saemtliche Monster davon betroffen sind.
Da sich letztes Mal einige ueber die kurzfristige Ankuendigung
beschwert haben, setze ich den Reboot auf Mittwoch, den 13.1., 14 Uhr an.
Bis dahin duerfte alles weit genug fertig und getestet sein.

  Rochus

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



Teamkampf (Rochus, 13. Jan 1999, 15:11:21):
So, der Lohn des Reboots ist, dass der Teamkampf jetzt allgemein
verfuegbar ist.
Spieler erfahren mehr mit "hilfe teamkampf", Magier mit "man teams" :-)


  Rochus

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



Neuer Erzmagier (Boing, 28. Jan 1999, 14:42:48):
Es gibt einen neuen Erzmagier mit Zustaendigkeitsgebiet Mudlib-Wartung
und Dokumentation: Padreic
  Boing

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



Zweities markieren! (Highlander,  1. Feb 1999, 12:28:59):
Hallo,
ich moechte darauf hinweisen, dass Zweitspieler markiert werden muessen.
Das gilt fuer alle Spielercharaktere, bei denen noch ein weiterer
Charakter existiert, sei er Spieler (dann ist einer der Spieler der Erstie)
oder Magier (dann ist der Magier der Erstie!).
Wird ein unmarkierter Zweitie gefunden, ist im Moment vorgesehen, eine
Chance zur Markierung zu geben und danach den grossen Radiergummi auszu-
packen.
   HrT

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



Idlen und Skripte (Highlander,  1. Feb 1999, 12:32:45):
Hallo,
zuerst - mir ist klar, dass Unfaelle passieren koennen (Verbindung stirbt
o.ae.). Allerdings ist idlen und scripten, dazu wird auch idlen und kaempfen,
nun mal verboten. Wobei idlen nicht heisst, dass der Charakter nichts
macht, sondern dass keine Eingabe kommt.
Und wenn nun jemand laenger kaempft und abzusehen ist, dass das Monster nie
sterben wird (der Charakter aber auch nicht), dann ist das meiner Meinung
nach genug Anhaltspunkt, um von unlauterer Absicht auszugehen. In diesem
Fall ist also davon auszugehen, dass etwas passieren kann.
   HrT

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



Reboot (Paracelsus,  5. Feb 1999, 19:19:54):
Hoechstwahrscheinlich gibts irgendwann am Montag einen Reboot, bedingt
durch einige Aenderungen am Driver.

Para*.

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



Reboot(s) (Paracelsus,  8. Feb 1999, 18:33:14):
Hi.

Die heutige Reboots waren noetig, da einige kleine Aenderungen am Driver
vorgenommen wurde. Der Driver unterstuetzt nun Telnetnegotiations, so
dass z.B. Clients ein Prompt vernuenftig erkennen. Fuer die, die keinen
Client benutzen, aendert sich nichts.

Der Dank fuer diese Aenderungen geht zum einen an Marcus, der sie fuer das
Tappmud gebastelt hat und zum anderen an Ringor, der sie an das MG
angepasst hat.

Hinzugekommen ist damit auch ein neues Kommando:

    telnegs [ein|aus]

(Default: aus). Wer einen Client/ein Telnet hat, der/das
Telnetnegotiations unterstuetzt, kann ja mal ein 'telnegs ein' eingeben
und dann die Groesse seines Fensters aendern ;)

Ein weiteres neues Kommando ist 'kurzinfo', das vor allem die Teddylosen
kleinen Spieler freuen duerfte.

Paracelsus.

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



Re: Reboot(s) (Paracelsus,  8. Feb 1999, 18:38:19):
~#! rn=Paracelsus rt=918495194 rg=bekanntmachungen
~#! tid=918495194
Tss, ich werd alt, wieder die Haelfte vergessen ;)

Erwartete werden jetzt nach einem Wiedereinloggen immer angezeit und
das Kommando 'titel' tut jetzt das, was auf der Hilfeseite steht.

Para.

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



GameDriver (Paracelsus, 22. Feb 1999, 22:30:26):
Hi.

Die Sourcen des aktuellen GameDrivers und das Linux-Binary liegen jetzt
im open-ftp unter /Software/GameDriver/
(driver.22.02.99.tar.gz bzw. driver.22.02.99.bin.tar.gz)

Paracelsus.

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



Laeden (Padreic,  9. Mar 1999, 22:39:40):
Es gibt ab heute einige Aenderungen in den Laeden. Es kann aber durchaus
vorkommen, das bestimmte Laeden noch nicht umgestellt sind. In diesem Fall
wendet Euch dann bitte an mich, den betr. Magier oder einen RM.
Diese sachte Aenderung stiftet vielleicht ein wenig verwirrung, aber dafuer
erspart sie Euch einen Reboot :).
Die wichtigste Aenderung vorne weg:
verkaufe alles != versetze alles
Bei verkaufe alles werden Objekte nur noch verkauft, wenn der Haendler bereit
ist, mind. 10% des Werts des Gegenstandes zu bezahlen. Bei versetze alles,
verkauft man seine wertvollen Juwelen auch noch fuer 1 Muenze. 
Desweiteren kann man ab nun beim verkaufen auch die ganz normalen Bezeichner
nehmen, wie man sie auch vom nehmen und weglegen kennt. Also verkaufe jeden
helm oder verkaufe alle waffen!

Padreic

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



Neue Alias-Option (Highlander, 11. Mar 1999, 15:41:18):
Hi,

wie sich jemand gewuenscht hat, kann man jetzt seine aliases so anzeigen
lassen, dass man die Ausgabe als Befehlseingabe verwenden kann. D.h. mit
cut-and-paste kann man jetzt aliases weitergeben.
Syntax: alias -a abfrage
Siehe auch alias-Hilfeseite. Das -a MUSS direkt nach alias kommen!
Funktioniert wie immer nach reboot, crash, ende oder Hilfe
durch einen Magier.
  HrT

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



2 neue Erzmagier (Boing,  1. Apr 1999, 11:42:20):
Es gibt seit heute zwei neue Erzmagier. Da Silvana den Posten der
Gildenbalance abgegeben hat und ich Muadib lange genug gedraengelt
habe, wird das ab sofort von ihm uebernommen. Es wird allerdings wohl
ein paar Tage dauern, bis er die ganzen liegengebliebenen Sachen von
Silvana aufgearbeitet hat.
Der zweite Erzmagier ist eigentlich eine Erzmagierine, naemlich Hobo.
Sie unterstuetzt Highlander bei seiner Sheriff-Taetigkeit.
Ich wuensche den beiden viel Erfolg! :)

  Boing

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



Re: 2 neue Erzmagier (Boing,  1. Apr 1999, 17:28:52):
~#! rn=Boing rt=922966940 rg=bekanntmachungen
~#! tid=922966940
So, bevor hier noch ein Unglueck passiert ... war natuerlich ein
Aprilscherz. :) Ein paar Leute sind aber wirklich schoen reingefallen,
hervorzuheben sind hier vor allem Morgoth, der Muadib mit Mails zur
Klerikergilde bombardierte und Darkwing mit seiner herrlichen Reaktion
auf Hobos Artikel. Schade dass Darkwing seinen Artikel geloesch hat. :)
Idee und Ausfuehrung (d.h. patchen von finger, wer und hilfe erzmagier)
kam von Padreic, ich bin eigentlich nur durch den offiziellen Artikel
beteiligt. :)
Schoenen 1. April noch,
  Boing

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



Crash am 09.04.99 (Padreic, 10. Apr 1999, 13:11:01):
Am 9.4 sind durch einen Crash bei einigen Spielern saemtliche Autoloader
verloren gegangen. Aus diesem Grund steht nun fuer die naechste Woche oder so,
ein NPC in der Abenteuergilde, bei dem man sich einmalig seine Autoloader
wieder auf den Stand vom 08.04.99 um 6:30 Uhr bringen kann. Upgedatet werden
dabei _nur_ die Autoloader und nicht andere Dinge wie Quests oder Skills. Ein
herzlicher Dank geht dabei auch an 112 der so freundlich war mir bei der
schnellen Umsetzung tatkraeftig zu helfen.

Padreic

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



NPC-Balance (Boing, 12. Apr 1999, 15:14:41):
Hiho,

wir haben einen neuen Erzmagier und gleichzeitig ein neues Betaetigungsfeld,
ab sofort ist Wim Erzmagier fuer NPC-Balance. Seine Aufgabe besteht erstens
darin, bei 'unfairen' Npcs einzuschreiten und eine Aenderung zu veranlassen.
Hier ist vor allem die Mitarbeit der Spieler gefragt, er reagiert naemlich
nur auf Anfragen und wird wohl nur selten von sich aus aktiv. Fuer Magier
bedeutet das, dass es wie gehabt keine Genehmigungspflicht fuer Npcs gibt.
Weiterhin wird Wim versuchen die etwas aus dem Ruder gelaufene Erstkill-
Verteilung mal wieder gerade zu ruecken. Soll heissen: Npcs die zu viel 
oder zu wenig Stufenpunkte geben werden dementsprechend umgewertet.
Ich wuensche Wim viel Erfolg.

  Boing

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



erste Umwertungen (Wim, 13. Apr 1999, 15:43:56):
So, ich habe erstmal einige bereits vorbereitete Aenderungen bei der
Stufenpunktbewertung der NPCs eingetragen.
Es kann also zu einigen Schwankungen bei eurer Stupszahl kommen :)

Ansonsten bitte ich euch um Mitteilung, falls ihr beispielsweise einen NPC
ohne rein-angriff-raus fuer nicht schaffbar erachtet, oder der Meinung seit,
er verdient "Sonderstupse".

Weiterhin viel Spass.


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



Mud down (Catweazle, 27. Apr 1999, 15:51:48):
Moin!
 
Wir waren leider gezwungen heute Mittag den Stecker aus der
Netzkarte vom mg-rechner zu ziehen, da jemand von unserem
Rechner aus Hackversuche bei fremden Firmen gemacht hat.
 
Es war mit leider nicht moeglich irgendwelche Hinweise darauf
zu finden und so meinen Chef zu beruhigen bzw. das Loch zu stopfen,
der Rechner musste also ausbleiben. Wir haben auch noch keine logs
von der anklagenden Firma bekommen. Entweder hat sich jemand in den
MG-Rechner selbst gehackt und seine Spuren sehr gut verwischt, oder
jemand hat irgendwie nur so getan, als waere er vom mg-rechner
gekommen. Wir gehen dem auf jeden Fall nach...
 
Ich moechte nochmal erwaehnen, dass wir an der Mathe Muenster nur
geduldet sind, und bei sowas immer leicht Stress aufkommt. Wenns
bitter kommt, hat man bei sowas schnell ne Anzeige am Hals, und
das ist selbst mir Risiko zu gross.
 
Leider ist dies etwa 2Wochen zu frueh passiert, vor unserem Umzug
nach Berlin auf den neuen Rechner. Mein Chef hat sich auch nicht
breitschlagen lassen, dass fuer 10 Tage auf ner Sun laufen zu lassen.
Wir haben also die Daten schon mal provisorisch nach Berlin trans-
feriert (ca. 1GB :-), und das MG zeitweise auf Hate's eigenem
Rechner installiert. Dort bleibt es vorlaeufig, bis der neue Rechner
fertig ist.
 
Dies ist eine _Notloesung_, die dazu noch in aller Schnelle vollzogen
wurde. Einiges, wie ftp oder www, geht im Moment noch nicht, und ich
bin nicht sicher ob sich der Aufwand lohnt, das jetzt noch alles
anzupassen, da wir ja eh bald nochmal umziehen muessen. Das heisst
zum einen, dass jetzt noch einiges im Argen liegen kann, zum anderen
dass der Betrieb des MG momentan nicht gesichert ist, ihr also mit
Crashs, eher Reboots rechnen muesst.
 
Das MorgenGrauen ist also momentan ueber 'telnet www.mud.de 4711' zu 
erreichen, der DNS mg.mud.de wird wohl nicht umgetragen, da dass es 
zu lange dauern wuerde. Bitte verteilt das ueber Mundpropaganda falls  
mal jemand fragt. 
 
Anyway, have fun,
 
Yours truly,
     Catweazle

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



Der Neue Rechner und neue Namen (Hate, 30. Apr 1999, 14:28:28):
Hi,

also unser neuer Rechner wird bald wieder als mg.mud.de bekannt sein. Die DNS
Eintraege
sind jedenfalls schon aktuell. Was die WWW Seiten und das FTP angeht, so wird
sich da
etwas aendern:

WWW -> www.mg.mud.de
FTP -> ftp.mg.mud.de

Das liegt daran, dass wir es hier mit zwei Rechnern zu tun haben :-)

Hate.
P.S: Das funktioniert fruehestens naechste Woche!
Hate.

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



Der neue Rechner ... (Hate,  6. Mai 1999, 06:00:59):
HI Leute,

warum gestern so nach kurzer Zeit der Rechner rebootet hat ist mir bisher noch
unklar und ich werde es wohl auch nicht mehr herausbekommen. Auf jeden Fall
scheint er eine weitere Nacht durchgelaufen zu sein und wir muessen den
heutigen
Tag abwarten. An Speicherprobleme glaub ich noch nicht so recht, da fast die
ganzen
512MB vollgestopft sind mit 100MB mut (wird noch mehr), 230MB shared data und
230MB
Buffer. Swappen hab ich ihn noch nicht ein einziges mal gesehen.

Lasst uns testen und sehen ;-)

Hate.

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



WWW, FTP und Email (Hate, 12. Mai 1999, 22:00:30):
Also WWW geht ja wieder und FTP geht auch (auf port 4713) und die
Email ist auch wieder aktiviert.

Hate.

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



Reboot (Wim, 14. Mai 1999, 00:31:41):
Auf Grund der falschen und fehlenden resets war es noetig, das Mud zu
rebooten.
Jetzt laeuft alles wieder geschmeidig.

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



So nebenbei angefallen ... (Paracelsus, 26. Jun 1999, 22:17:07):
Hi.

Ab dem naechsten Reboot (keine Angst, der kommt bestimmt ganz schnell)
sollte bei Ruestungen eigentlich "ziehe alles aus" funktionieren.

Paracelsus.

P.S.: Nein, ein 'ende' hilft hier nicht ;)

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



Reboot (Rochus, 28. Jun 1999, 15:11:49):
Morgen, am 29.6.1999, wird es einen Reboot geben.
Grund ist eine Aenderung am Gamedriver. Dabei wird der Bug
beseitigt, dem der letzte und andere Crashs zu verdanken waren.
Diese Gelegenheit werde ich dazu nutzen, die Freundschaftsbaender
auszutauschen, durch eine ueberarbeitete Fassung bei der man nicht
gleich alle Freunde verliert wenn einem das Band mal irgendwie abhanden
kommen sollte (passiert vor allem Magiern schonmal :)
Da die Umstellung etwas dauern wird, wird das Mud nicht sofort
nach dem Reboot wieder hochfahren, ich rechne so mit 1/2 Stunde.

  Rochus

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



Re: Reboot (Rochus, 28. Jun 1999, 16:30:07):
~#! rn=Rochus rt=930575509 rg=bekanntmachungen
~#! tid=930575509
PS: 16 Uhr.

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



Netzwerkunterbrechung am Di 6.7. (Hate,  5. Jul 1999, 14:07:22):
Morgen (Di. 6.7.) wird wegen einer dringend erforderlichen Umstellung das
gesamte Netzwerk zwischen 18:30 und 18:40 abgeschaltet. 
Waehrend dieser Zeit ist weder interner noch externer Verkehr moeglich!

Naja, da es theoretisch nur 10min sind, wirds wohl kaum wen stoeren ...

Hate.

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



Crash Eben ... (Hate, 10. Jul 1999, 16:05:19):
Hi,

also so bloede es auch ist, das MUD ist wieder mal an einem BUG gecrasht und
ich muss gestehen, er wurde durch mich ausgeloest. Allerdings ohne, dass ich
wissentlich etwas dafuer kann.

Hate.

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



reboot (Padreic,  6. Aug 1999, 16:41:49):
Heute um 16:30 wurde aufgrund einer groesseren Umstellung im Mudfilesystem  
leider ein Reboot notwendig. Wir haben in den letzten Wochen daran gearbeitet 
damit dieses moeglichst reibungslos ueber die Buehne geht, dennoch kann man 
natuerlich bei einer solchen Umstellung nicht voellig ausschliessen, das es 
vereinzelt zu kleineren Bugs kommt. Sollte es also nun an Stellen die
frueher einwandfrei funktioniert haben zu Bugs kommen, dann wendet Euch
bitte an den betr. Magier, den RM, oder mich.

Padreic

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



Neues vom Balance-Team (Boing, 17. Aug 1999, 15:39:31):
Da Mindblade aufgrund seine Diplomarbeit nur noch wenig Zeit hat, ist
er aus dem Balance-Team zurueckgetreten. Dafuer konnten wir Anatol
verpflichten, womit die Zauberer auch wieder besser vertreten sind.
  Boing

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



Schon wieder Neues vom Balance-Team (Boing, 27. Aug 1999, 23:37:29):
Ja, das reisst ja langsam richtig ein, dass sich im Balance-Team was
tut. Diesmal hat Sting aufgehoert, der nichtmehr soviel Zeit eruebrigen
kann. Bei Sting moechte ich mich besonders bedanken, denn er war einer
der Leute die ueberhaupt die Idee zum Balance-Team aufgebracht haben.
Sein Nachfolger ist ab sofort Matis.
  Boing

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



Reboot vom 1. Sept. 22:40 (Hate,  2. Sep 1999, 10:04:00):
Hi,

aus bisher noch nicht geklaerter Urache ist der Rechner gestern abgestuerzt.
Die logfiles verraten wieder mal nichts, aber es koennte auch ein Strom-
ausfall oder aehnliches gewesen sein. Da bisher keine Fehler auftreten,
warten wir mal wie lange wir es diesmal aushalten :-)

Hate.

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



FTP (Hate,  2. Sep 1999, 10:07:34):
Das FTP liegt wieder auf port 4713. Der riesen port letztes mal war nur
da der 4713 belegt war mit einem zombie.

Hate,.

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



Aufwachen mit reduzierten HP (Wim,  1. Okt 1999, 16:45:01):
Einige von euch werden feststellen, dass sie mit reduzierten (teilweise sogar
0, nicht war Aline *g*) HP aufgewacht sind. 
Ich kann nur hoffen, dass keiner an einer unguenstigen Stelle eingeschlafen
ist und sich nun ueber einen Tod wundern muss.

Das Problem ist derzeit beseitigt, dies nur zur Information.

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



Neuer Erzmagier (Boing, 22. Okt 1999, 16:13:02):
Wie es ja schon seit einiger Zeit abzusehen war, wurde Nachtwind in
den Stand der Erzmagier erhoben. Er ist jetzt hauptverantwortlich fuer
die Gilden-Balance (war er zwar vorher auch schon, aber jetzt hat er 
halt auch noch den passenden Level dazu).
Ich wuensche ihm viel Erfolg! :) 
Hey, das ist kein Scherz, ich wuensch ihm das wirklich! :)
  Boing

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



2 EMs weniger ... (Boing, 29. Okt 1999, 14:55:00):
Da Kirk und Gundur schon seit einiger Zeit nicht mehr aktiv sind (vor
allem Kirk *grins*) habe ich die beiden auf Level 55 zurueckgestuft.
  Boing

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



Schon wieder ein neuer Erzmagier (Boing,  2. Nov 1999, 16:47:44):
Es gibt schon wieder einen neuen Erzmagier. Diesmal hat Tiamak das
harte Los getroffen ... ;)
Zustaendigkeitsbereich ist Mudlib (da wird er Padreic unterstuetzen und
hat auch vorher schon einiges gemacht) und Gamedriver (viel Spass *grins*).
Ich wuensche ihm natuerlich viel Erfolg und eine gute Kaeferfangquote. :)
  Boing

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



und ewig dreht das Rad (Wim,  3. Nov 1999, 21:59:56):
Um noch weiteren Fragen entgegen zu wirken, hier mal ein DREIzeiler. :)
Ja, es gab einen Crash, nach 59 Tagen und 8 Stunden, 54 Minuten uptime.
(so besser)
*hmpf*

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



Neue Option (Tiamak,  7. Nov 1999, 23:54:52):
Hiho!

Auf vielfachen Wunsch eines einzelnen Zauberzwerges gibt es eine neue Option
beim Befehl "zeilen". Allerdings haben davon nur Leute etwas, deren Telnet die
Veraenderung der Fenstergroesse auch weitermeldet.

Das Ganze funktioniert natuerlich erst nach Ende/Reboot/Crash.

Tiamak

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



Und NOCH ein neuer Erzmagier (Boing, 15. Nov 1999, 16:58:14):
Neuer Quest-EM ist ab sofort Zook. Vor allem die Magier mit halbfertigen
oder ganz fertigen Quests wird das freuen. :) 
  Boing

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



Reboot! (Padreic,  9. Dez 1999, 20:26:33):
Naechste Woche Samstag Mittag (muesste der 18 oder so sein...) wird es eine
Reboot geben muessen. Grund: Psssssttt! Geheim! :)

Padreic

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



FTP (Tiamak, 13. Dez 1999, 10:51:06):
~#! on=Tiamak ot=945078525 og=allgemeines
Hiho!

Wie manche vielleicht schon gemerkt haben, hat das MG mittlerweile einen neuen
FTP-Server. Dabei haben sich die Schreib-/Leserechte leicht geaendert, was
anscheinend schon zu ein paar Verwirrungen gefuehrt hat. Deshalb der Hinweis:

- Schreiben darf man als Spieler (sprich: per anonymen Login) ab sofort nur
  noch in /incoming
- Lesen darf man als Spieler ueberall ausser in /News und /incoming

Das Leseverbot in /incoming hat den Sinn, dass unser FTP-Server nicht als
Plattform zum Tausch von illegalen Sachen genutzt werden soll.


Tiamak

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



2tie-Markierungen (Rikus, 15. Dez 1999, 21:48:20):
Hi,
An einigen Eurer 2tie-Markierungen wird sich demnaechst was aendern,
und zwar bekommt Ihr als Markierung den Namen des ersten 1ties,
2tie-Ketten werden somit umgewandelt. Bsp: Hat der Spieler X den
2tie Y und der wiederum den 2tie Z, so hat nun X die beiden 2ties.

Rikus

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



Lichtlevel (Padreic, 18. Dez 1999, 17:03:48):
Mit dem heutigen Reboot hat es einige Aenderungen am Lichtsystem gegeben.
Fuer Euch aendert sich dadurch erstmal nocht nicht soo besonders viel. In
erster Linie werdet ihr merken, das Licht nicht mehr immer weiter additiv
ist, d.h. 100 Pfirsiche ergeben immer noch keine Sonne :).
Fuer eine Uebergangszeit gibt es im Fackelladen beim Elfendorf eine magische
besonders helle Magnesiumfackel zu kaufen mit der ihr wohl jeden Raum
erhellt bekommt. Diese Fackel wird dort etwa einen Monat oder so zu kaufen
sein, bis es erste echte andere Alternativen im MorgenGrauen zu finden gibt.

Padreic

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



Silvester 2000 (Hate, 31. Dez 1999, 13:08:35):
Hi,

da ich schon von mehreren gefragt wurde: In unserem Institut (also da
wo das MG steht) wird ueber Silvester das Netz nicht heruntergefahren
oder sonstwie eingeschraenkt. Dementsprechend wird auch das MG die
ganze Zeit weiterlaufen. Probleme seitens unseres Rechners sind eigentlich
nicht zu erwarten.

Hate.

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



Padreic zurueckgetreten (Boing,  6. Jan 2000, 19:42:32):
Da Padreic aufgrund von Pruefungen und seiner Diplomarbeit nicht mehr
so viel Zeit fuers MorgenGrauen eruebrigen kann, ist er von seinem
Posten als EM zurueckgetreten. Seine begonnenen Projekte wird er
weiterhin bearbeiten und abschliessen und er ist natuerlich nach wie
vor fuer seine eigenen Gebiete da. 
Ich denke er hat hier einiges bewegen koennen und dafuer moechte ich
mich im Namen aller bedanken. Auch die Entscheidung wegen Zeitmangel
seinen Posten freizumachen ist vorbildlich und manch anderer haette
sich hier eine Scheibe abschneiden koennen.

  Boing

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



Crashs (Tiamak, 12. Jan 2000, 13:37:20):
Heute nacht und heute mittag ist das Mud zweimal aus demselben Grund gecrasht.

Der Bug ist gefunden und behoben. DER wird das MG nicht mehr crashen.


Tiamak sagt: auf zum naechsten Driver-Bug.

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



Stufenpunkte (Tiamak, 28. Jan 2000, 13:18:31):
Einige aeltere Spieler unter Euch (die alten Saecke halt ;-) werden
feststellen, dass ihnen auf einmal ein paar Stufenpunkte fehlen. 

Die Abzuege sind rein willkuerlich und ausnahmslos zu dem Zweck, um die alten
Spieler zu aergern und aus dem MG zu vergraulen. Wer trotzdem auf den dummen
Gedanken kommen sollte, sich zu beschweren oder oeffentlich rumzuheulen, wird
standesrechtlich mit faulen Tomaten beworfen.


Tiamak

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



Re: Stufenpunkte (Tiamak, 28. Jan 2000, 13:21:44):
~#! rn=Tiamak rt=949061911 rg=bekanntmachungen
~#! tid=949061911
Und fuer die, die an der wahren Begruendung interessiert sind:

Frueher bekam man fuer gefundene ZT-Stellen auch dann Stufenpunkte
gutgeschrieben, wenn der ZT gar nicht fuer einen bestimmt war. Das ist schon
seit Ewigkeiten nicht mehr der Fall, aber auf diese Art erworbene Stufenpunkte
flossen bisher immer noch in die Berechnung ein.

Dieser Alte-Saecke-Bonus ist fuer neuere Spieler nicht zu erreichen und wurde
deshalb komplett aus der Berechnung entfernt.


Tiamak

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



Feuerwehr (Boing, 31. Jan 2000, 14:47:20):
Da Feuerwehr aufgrund seiner Diplomarbeit momentan wenig Zeit fuers MG
eruebrigen kann, ist er voruebergehend von seinem Posten als RM Polar
zurueckgetreten. Tsunami wird in der Zwischenzeit die Geschicke des
Polargebietes alleine lenken ... (weia) ;)
  Boing

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



Stufenpunkte (Tiamak,  4. Feb 2000, 00:17:27):
Wer kennt es nicht?

'kosten' -> "Dir fehlen bis zur naechsten Stufe noch 23 Stufenpunkte."
'kosten' -> "Dir fehlen bis zur naechsten Stufe noch 18 Stufenpunkte."
'kosten' -> "Dir fehlen bis zur naechsten Stufe noch 30 Stufenpunkte."

Ja was denn nun?

Diese unschoenen Schwankungen verwirren nicht nur Anfaenger. Deshalb fliegen
die Schwankungen raus. Sofort.

Okay, nicht ganz sofort. Es dauert noch bis zum persoenlichen 'ende'. Oder bis
zum naechsten Reboot. Crashs wurden per Definition abgeschafft.

Und um die ganze Angelegenheit noch ein bisschen zu verschoenern, haben wir
die schnoeden Zahlen gleich mit abgeschafft. Stattdessen gibt es jetzt Texte
als Antwort bei 'kosten'. 

Schreibt Eure Trigger aber nicht zu voreilig um - noch sind wir offen fuer
Vorschlaege zu schoeneren/lustigeren/informativeren Texten. Die koennen sich
also noch etwas aendern. 


Tiamak.
Nach Diktat verreist.

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



NPCs (Wim,  8. Feb 2000, 00:08:58):
Aus gegebenem Anlass
Nachdem ich eine grundlegende Frustration gegen einige Fiesheiten von NPCs
gehoert habe moechte ich hier einmal kundtun, dass es eigentlich eine
Selbstverstaendlichkeit sein sollte, dass solche Beschwerden nicht nur einfach
ausgesprochen werden, sondern besser auch konstruktiv formuliert an den
programmierenden Magier weitergeleitet werden.
In Faellen, bei denen ihr mit dem Magier nicht klarkommt, kein Einsehen von
ihm erwartet oder auch einfach nur anonym euch beschweren wollt, komme ich zum
Einsatz. 
Ja, wir haben auch eine NPC Balance. Allerdings geht diese nur auf Beschwerden
aus der Spielerschaft in Aktion.
Ansonsten sei mal der Blick in hilfe erzmagier bei Zeiten mal angeregt...

Gruss.

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



Crash 080200 1600 (Hate,  8. Feb 2000, 16:05:10):
Wies scheint gibts einen bug der das mud haengen laesst. Beim Versuch das
wieder in Gang zu setzen ist es abgenuddelt, Sorry.

Hate.

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



Rikus (Boing, 12. Feb 2000, 10:36:46):
Rikus liegt im Krankenhaus und wird schaetzungsweise in 3-4 Wochen
wieder da sein. Vielleicht kann ja jemand (Mudtiger?) die Adresse
herausfinden und bekanntgeben, so dass wir ihm ein paar Karten schicken
koennen.
  Boing

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



Crash vom 20.03.2000 (Tiamak, 20. Mar 2000, 18:20:28):
Zur Information:

Am 20.03.2000 gab es gegen 17:40 Uhr einen Crash aufgrund eines noch nicht
lokalisierten Driver-Bugs.

Es sind keine weiteren Reboots geplant. Den naechsten Crash gibt es
statistisch gesehen in rund vier Wochen. 


Tiamak wuenscht viel Spass beim Ausruesten.

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



Re: Rikus (Rikus, 30. Mar 2000, 15:06:20):
~#! rn=Boing rt=950348206 rg=bekanntmachungen
~#! tid=950348206
tja, ich bin nun wieder aus dem Krankenhaus raus, aber Karten koennt
Ihr dennoch gern an mich schicken :)

Rikus

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



Crash (Paracelsus,  5. Apr 2000, 21:36:26):
Tja, der letzte Crash (05.04.00) geht wohl auf meine Kappe.

Paracelsus.

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



Stromausfall (Hate, 26. Mai 2000, 14:38:36):
Hi Leute,

wir hatten heute einen Stromausfall, der ganz Berlin-Adlershof betroffen
hat. Die BEWAG hatte eine "Problem".

Hate.

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



Echos in fremden Namen (Silvana,  3. Jul 2000, 16:27:47):
~#! on=Silvana ot=962619735 og=etikette
Salve

Aus aktuellem Anlass: Echos im Namen eines anderen Spielers sind gelinde
gesagt unfair und im Zweifelsfall mehr als bloss ein Kavaliersdelikt. Eben hat
jemand - nein, ich werde keine Namen nennen, denn ich betrachte den aktuellen
Fall als erledigt - mit "echo Silvana teilt Dir mit: ....." fuer meiner
Meinung nach sehr unnoetogen Aerger gesorgt - und fuer ziemlich krasse
Aeusserungen auf dem EM-Kanal. Ich warne daher an dieser Stelle vor:
Missbrauch von echo und aehnlichen Fertigkeiten kann zu Entzug eben dieser
Fertigkeiten fuehren. Nicht, dass ich gerne Strafen verhaenge, aber ich hab
ehrlich gesagt auch besseres zu tun, als Spielern zu erklaeren, dass ich sie
nicht loeschen will, auch wenn ich angeblich vorher was anderes gesagt haben
soll.

  Silvana

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



Re: Echos in fremden Namen (Boing,  3. Jul 2000, 16:31:29):
~#! rn=Silvana rt=962634467 rg=bekanntmachungen
~#! tid=962634467
Kleine Anmerkung:
Echos von Sehern werden geloggt um Missbrauch dieser Art zu verhindern.
Insofern sollten nur Nachrichten per echo verschickt werden, von denen
man sicher ist, dass es einem nichts ausmacht, dass sie von Magiern
gelesen werden.
Das selbe gilt fuer die entsprechende Zauberer-Faehigkeit.
  Boing

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



Crash und Reboot (Tiamak,  6. Jul 2000, 15:41:14):
Heute am 06.07.2000 ist das MG aufgrund eines unachtsamen Magiers gegen 14:20
Uhr gecrasht. Der anschliessende Reboot war zum Update des Mudrechners auf
einen aktuellen Kernel notwendig.


Tiamak

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



Aenderung der Login-Sequenz (Tiamak, 21. Jul 2000, 13:53:22):
Wie einige vielleicht schon bemerkt haben, hat sich die Login-Sequenz im MG
leicht geaendert. Wirklich "betroffen" sollten eigentlich nur diejenigen sein,
die neue Charaktere erschaffen wollen. 

Nein, keine Angst - es ist keine Verschlechterung. ;-) Die Erschaffung neuer
Charaktere sollte eigentlich sogar einfacher werden und die ungewollten und
verwirrenden "fehlgeschlagenen Loginversuche" sollten demnaechst der
Vergangenheit angehoeren.

Allerdings hat die Umstellung auch eine Aenderung der Texte erfordert, die
nach dem Namen und dem Passwort fragen. Telnet-Spieler sind davon natuerlich
nicht beeintraechtigt, und TF-Benutzer sollten auch keinen Unterschied
bemerken (falls das Autologin tatsaechlich nicht mehr funktionieren sollte,
ist DAS der Zeitpunkt, an dem ihr endlich eure Welt richtig definieren solltet
;^). 

Wie ich eben erfuhr, triggert zMud aber per Default anscheinend auf die
exakten Texte. Sollte also euer Autologin mit zMud nicht mehr funktionieren,
so muesst ihr die Trigger entsprechend anpassen.


Tiamak

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



Neues vom Balance-Team (Boing, 26. Jul 2000, 22:34:22):
Hallo zusammen,

es kommt mal wieder Bewegung ins Balance-Team, Sharia und
Teddy werden das Team verlassen und wir suchen Ersatz fuer
beide.
Als erstes moechte ich mich aber bei den beiden bedanken,
sie waren von Anfang an dabei und haben sich toll fuer das
Team eingesetzt. 

Jetzt geht es um die Nachfolge, gesucht werden nach Moeglichkeit
wieder ein Chaot und ein Kleriker, es duerfen sich aber ruhig
auch andere Spieler ueber das mail-alias 'balance' bewerben.

Kriterien:
- starke Nerven
- gesunder Menschenverstand
- Zeit
- die Faehigkeit Anfeindungen von Spieler- und Magierseite
  wegzustecken
- gutes allgemeines Spielverstaendnis
- sehr gute Kenntnis des Muds

  Boing, i.A. des Balance-Teams

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



Bugfixes am Lichtsystem (Tiamak, 30. Jul 2000, 17:10:28):
Hiho!

Fuer einen Bugfix am Lichtsystem musste ich einige Objekte im MG erneuern.

Wundert euch nicht, wenn eure Muenzen auf einmal nicht mehr in der Boerse
stecken, in der sie mal waren. Falls die Boerse ganz weg ist, konntet ihr die
nicht mehr tragen - weil die Muenzen jetzt ja im Inv liegen und damit mehr
wiegen. ;-) Kauft euch dann einfach ne neue Boerse.

Der Austausch des Geldes selber sowie der Zaubererkomponenten sollte keine
Nebenwirkungen gehabt haben. Alle "normalen" Fackeln wurden auch erneuert.
Einzig "besondere" Fackeln koennten jetzt kleinere Probleme bereiten (es wird
nicht hell, obwohl man sie anzuendet etc.). 

Kurzfristige Abhilfe waere, die Lichtquelle einmal abzulegen und wieder
aufzunehmen (oder sonst einen Gegenstand). Bessere Abhilfe: sagt einem Magier
bescheid, dass die Lichtquelle mal erneuert werden sollte.

Silvanas "schau -f in paket" sollte nebenbei nach "ende" auch funktionieren.

Der naechste Crash/Reboot beseitigt auch die letzten kleineren Fehler. 
Aber damit habt ihr es doch nicht so eilig, oder? ;-)


Tiamak

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



Re: Neues vom Balance-Team (Boing, 31. Jul 2000, 10:42:54):
~#! rn=Boing rt=964643662 rg=bekanntmachungen
~#! tid=964643662
Ich hab vergessen einen Termin zu setzen, reiche ich hiermit nach:
Bewerbungsschluss ist am Freitag, 4. August.

  Boing

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



Erstkills (Wim,  9. Aug 2000, 20:25:41):
Einige Stupse fuer NPC-"Altlasten" aus nicht (mehr) angeschlossenen Gebieten
sind geloescht worden. 

Wim.

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



Heilungs-Balance (Boing, 14. Aug 2000, 18:14:55):
Hallo,

ab sofort gibt es eine Heilungs-Balance, dafuer ausgewaehlt 
wurde ein Saphina Kleriker, der sich damit auskennen sollte, 
naemlich Fizban. 
Aufgabengebiete der Heilbalance sind:

- Kneipen
- Heiler (auch Gift, Krankheit, etc.)
- feste Heilstellen 
- tragbare Heilung
- Sachen die Drink/Alc/Food runtersetzen

Fizban wird einen Leitfaden erstellen, an dem sich die Magier
orientieren koennen. In Zukunft werden auch Objekte, die in die 
oben genannten Gebiete fallen nicht mehr vom Balance-Team 
behandelt, sondern von Fizban.

  Boing

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



Balance-Team (Boing, 21. Aug 2000, 12:03:03):
Hi,
aus 13 Bewerbern (haette ja nicht gedacht dass das so viele werden)
haben wir uns jetzt 2 rausgepickt: Lurchi und Puk.
Den beiden wuensche ich viel Erfolg im Balance-Team, bei allen anderen
bedanke ich mich fuer das Interesse. 
  Boing

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



Kabeldefekt am 23. August (Hate, 24. Aug 2000, 08:12:53):
Hallo,

wer gestern nicht ins MUD gekommen ist hatte genau das gegenteilige Problem
meinerseits. Ich war ganz allein hier und das war vielleicht gruselig. 

Hier in Berlin Adlershof ist ein Kabel defekt gewesen. Durchgeknabbert oder
wie auch immer und es hat mehr als 8h gedauert das zu flicken.

Hate.

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



Reboot am 16.10.2000 (Tiamak, 15. Okt 2000, 03:48:06):
Es ist vollbracht.

Nachdem wir jetzt wochenlang alle tiefgreifenderen Aenderungen komplett
zurueckgestellt oder nur eben soweit eingebaut haben, wie es im laufenden
Betrieb moeglich war, ist die magische Grenze von einhundert Tagen Uptime
endlich ueberschritten.

Oder anders formuliert: jetzt zerbeiss' ich's! :-)

Nach bis dahin ueber 102 Tagen Uptime wird das MG am Montag Abend rebootet.
Das ist notwendig, um besagte Aenderungen endlich komplett einzuspielen.
Netterweise werden Spieler davon ueberhaupt nichts und selbst Magier
wahrscheinlich auch nichts bemerken. 

Also von den Aenderungen. Vom Reboot schon. ;-)

Das Experiment, wie lange das MG ohne derartige Eingriffe laufen koennte,
verschieben wir auf ein anderes Mal. Schliesslich braucht man ja noch Ziele.


Tiamak. Naechstes Ziel: das lagfreie MG.

P.S: Ein Schelm, wer jetzt die Parallelen zur letzten Rekord-Uptime anfuehrt.
     Nach knapp sechzig Tagen folgte kein Crash, sondern ein Reboot, um ein
     paar technische Aenderungen zu aktivieren. 

     Danach dauerte es fast fuenf Jahre, bis wir wieder in solche Uptime-
     Bereiche vordrangen ...

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



Re: Reboot am 16.10.2000 (Rikus, 16. Okt 2000, 21:32:52):
~#! rn=Tiamak rt=971574486 rg=bekanntmachungen
~#! tid=971574486
Sorry!

den heutigen Abend hatte ich fuer den Einbau langgeplanter Aenderungen,
den Reboot... freigeplant. Nun kam jedoch Besuch, den ich echt nicht
sitzenlassen kann. Tiamak und ich koennen den Reboot somit nur um
2 Tage, also auf den 18.10.00 am Abend verschieben... :(

Rikus, ausgebucht

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



Crash-Serie (Tiamak, 18. Okt 2000, 21:45:54):
Durch die Umstellungen im MG ist ein neuer (sprich: bisher gut versteckter)
Driverbug aufgefallen. Selbst der Driver, der die letzten 104 Tage brav ohne
zu mucken lief, mag nun nicht mehr.

Die gute Nachricht: der Bug ist 100%ig reproduzierbar.

Die schlechte: den Bug auszubauen kann noch ein paar Tage dauern.

-----------------------------------------------------------------------------
Bis zur Entwarnung (und dem daran anschliessenden Reboot) laeuft das MG also
erst einmal INSTABIL.
-----------------------------------------------------------------------------


Tiamak. Tut was er kann. Aber Zaubern gehoert nicht dazu.

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



Runenstab und Co (Rikus, 22. Okt 2000, 22:40:29):
Hi,
Das Erlangen (nicht der Ort :) einer neuen Rune geht im Moment
nicht wegen meiner Umstellungen am FP-System. Werde ich aber die
naechsten Tage fixen.

Rikus

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



Entwarnung (Tiamak, 23. Okt 2000, 20:57:27):
~#! rn=Tiamak rt=971898354 rg=bekanntmachungen
~#! tid=971898354
Ab dem heutigen Reboot laeuft das MG erst einmal wieder stabil.

Oder zumindest stabiler. Bis der naechste bisher unbekannt irgendwo
schlummernde Driver-Bug die Gunst der Stunde nutzt, endlich beruehmt zu
werden. ;-)

An dieser Stelle herzlichen Dank an Patryn, der den letzten schuldigen Bug
festgenagelt hat. 


Tiamak

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



Schwankungen beim Erhoehen (Rikus, 29. Okt 2000, 21:21:37):
Sie sollten nach ENDE behoben sein, der gleichen bei Reboot :)

Rikus

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



Diverse Crashs (Tiamak, 26. Nov 2000, 19:54:50):
Mahlzeit!

Ne ne ne ne ... kaum laesst man Euch mal ein paar Tage aus den Augen, und
schon crasht das Mud. Und Euch ist anscheinend nichtmal ein Crash genug - es
muessen derer gleich drei sein ...

Also fuer die Statistik: am 19.11., 23.11. und 25.11. crashte das MG jeweils
wegen (hoffentlich nur ;-) eines Driver-Bugs. Dank eines anonymen Hinweises
von Patryn bin ich auf einer heissen Spur. 

Der Bug kann zwar grob als eingegrenzt betrachtet werden, aber leider bisher
nur auf ein recht ... unuebersichtliches ... Stueck Driver-Code. Und ein recht
altes so nebenbei. Es wuerde mich nicht wundern, wenn in den letzten Jahren
schon der eine oder andere Crash auf die Kappe dieses Bugs gegangen waere.

Langer Rede kurzer Sinn: das Mud laeuft bis zur Entwarnung in dieser Rubrik
erst einmal (wieder *seufz*) instabil. Vorhersagen zum Zeitpunkt des naechsten
Crashs bzw. Reboots mache ich nicht - fragt also gar nicht erst.


Tiamak

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



Ankuendigung: Aenderungen der Questgruppierung (Zook,  2. Dez 2000, 14:22:11):
Durch die in letzter Zeit hinzugekommenen Quests ist die Einteilung in
drei Gruppen ein wenig ungleichgewichtig geworden. Aus diesem Grund 
werden einige Quests aus der zweiten Gruppe in die dritte Gruppe
verlegt. Da dies eventuell Eure Questloesungsplanung und die fuer das
Seherwerden noetigen Quests durcheinander werfen koennte, kuendige ich
Euch dies heute an. Wirksam wird die Aenderung am 21. Dezember 2000.

Gruss, Zook.

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



Von Weisen und Inseln (Boing, 11. Dez 2000, 15:34:10):
Hallo,
soeben wurde Tilly zum Weisen ernannt, er kann also jetzt in allen 
Regionen Fehler suchen und beheben. :) Seinen Posten als Insel RM hat
er abgegeben, diese Aufgabe wird ab sofort wieder von Wargon uebernommen,
der damit ja schon reichlich Erfahrung hat. :)
Ich wuensche beiden natuerlich viel Erfolg mit den neuen (alten) Aufgaben.
  Boing

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



Neues vom Balance-Team (Boing, 13. Dez 2000, 18:53:26):
Hallo,

es gab einen Wechsel im Balance-Team: Zephyr hat sich entschieden
aufzuhoeren, dafuer ist Tilly neu dabei.
Ich moechte mich bei Zephyr fuer ihre Arbeit und ihren enormen
Einsatz bedanken, sie war von Anfang an dabei und hat ihre Meinung
immer mit Nachdruck in die Diskussionen eingebracht. Tilly hat da 
eine schwere Buerde zu uebernehmen! :)

  Boing

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



Re: Ankuendigung: Aenderungen der Questgruppierung (Zook, 21. Dez 2000, 18:49:05):
~#! rn=Zook rt=975763331 rg=bekanntmachungen
~#! tid=975763331
Es ist vollbracht und sieht so aus:
Die Quests "Die vier Elemente", "Der Orkenhort" und "Nils Holgersson"
sind in Gruppe drei gelandet.

Darueberhinaus haben mir die Regionsmagier Magiere benannt, die sich
um Eure Rueckmeldungen zu Quests kuemmern, deren Ersteller schon lange
nicht mehr da waren. Ihr koennt nach wie vor einfach mit "reply"
auf die Mail antworten, sie wird dann an den "Warter" der Quest
gesendet.

Gruss, Zook.

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



An alle Jungmagiere und die es gerne werden moechten! (Zook, 21. Jan 2001, 18:43:39):
Hallihallo zusammen,

das Erzmagier-Team fuer die Betreuung der Jungmagiere und ihrer 
Gesselenstuecke ist nun wieder komplett. In Zukunft werden Silvana
und ich gemeinsam diese Taetigkeit ausueben. Fuer alle Jungmagiere und
solche, die es gerne werden moechten, stehen wir fuer Fragen, Anregungen
etc. zur Verfuegung.

Schoenen Gruss, Zook.

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



Erstkills und NPC-Balance (Rikus, 23. Jan 2001, 16:28:56):
Hi,
nachdem viele Bestechnungsgelder an uns geflossen sind, haben wir uns
zu folgendem ueberreden lassen:

Ich kuemmere mich nun (neben vielen anderen Dingen :) ) um die Erstkills
und die NPC-Balance. Amaryllis und Gor dienen unterwuerfig als meine
Berater. Ansprechpartner bin ich, ich leite jedoch an die beiden weiter
und bespreche mich mit ihnen.

Das soll's erstmal gewesen sein, aber mailt mir bitte noch nicht diese
Woche, ich will erstmal den bisherigen Datenbestand uebernehmen und ihn
erst dann durchgehen.

Rikus

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



Reboot 2001-02-02 (Tiamak, 28. Jan 2001, 18:42:15):
Salve!

Am Freitag, 02.02.2001 wird es gegen 22:00 Uhr einen Reboot geben wegen
groesserer interner Umstellungen. Das ist noch _nicht_ der Reboot fuer den
neuen Driver. 

Rikus hat hoch und heilig versprochen, den Termin diesmal einzuhalten. :-)


Tiamak

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



Crash am 29.1. (Nachtwind, 29. Jan 2001, 18:26:41):
Jaaa, wir hatten eben einen netten kleinen Crash...

*raeusper*

Der geht voll auf meine Kappe, man sollte nicht kritischen Code im laufenden
Mud testen...
Schlagt mich, tretet mich, gebt mir Tiernamen!
Immerhin gibts Freitag eh Reboot und so... *huestel*

Nachtwind verteilt Peitschen und Bretter mit rostigen Naegeln...


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



Re: Reboot 2001-02-02 (Rikus, 31. Jan 2001, 11:42:40):
~#! rn=Tiamak rt=980703735 rg=bekanntmachungen
~#! tid=980703735
Hi,

Bereitet Euch auch bitte darauf vor, dass so ab 19 oder 20 Uhr bis zum
Reboot keine Erstkills und Miniquests vergeben werden.

Rikus

PS: Freitag meine ich :)

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



Reboot-Folgen (Tiamak,  2. Feb 2001, 22:56:37):
Wer sich direkt (innerhalb der ersten 30 Minuten) nach dem Reboot wieder
eingeloggt hat, muss u.U. unter einigen Bugs leiden. Diese lassen sich durch
den Befehl "ende" beheben.


Tiamak

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



Re: Reboot-Folgen (Rikus,  4. Feb 2001, 18:25:45):
~#! rn=Tiamak rt=981150997 rg=bekanntmachungen
~#! tid=981150997
Bei wem Feuerwehrs Plakette nix anzeigt, sollte "ende" machen. Bei wem nun
weniger EKs angezeigt werden liegt das
nur daran, dass da nun keine Miniquests mehr in die Zaehlung eingehen.


Rikus

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



Forschung (Rikus,  7. Feb 2001, 12:08:03):
Hi,

Euch fiel sicherlich schon auf, dass Ihr Euch nun, verglichen mit den
Mitspielern, schlechter im MG auskennt. Das liegt daran, dass die
Bezugsgroesse der Durchschnitt der FPs der aktiven Spieler sein soll,
durch meine Umstellarbeiten jedoch seit 2 Wochen auch die Spieler mit
eingingen, die inaktiv sind und somit den Schnitt doch recht drueckten.

Rikus

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



DoS Angriffe (Boing, 22. Feb 2001, 15:26:37):
Aus gegebenem Anlass verkuende ich hier mal, dass wir Angriffe (wie gestern
geschehen) nicht einfach hinnehmen. Der Spieler, der sich gestern dadurch
hervorgetan hat, hier hunderte von logins gleichzeitig zu machen ist gerade
dabei den Zugang bei seinem bisherigen Provider zu verlieren.

  Boing

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



Killstupse (Rikus,  4. Mar 2001, 19:15:31):
Hi,
wie ihr sicherlich schon gemerkt habt, fielen einige Killstupse meiner
vorgestrigen Loeschaktion zum Opfer. Dies waren unter anderem die NPCs, die
mal auf der Maggiinsel standen. Ab und zu werde ich immer mal ein paar
Killstupse loeschen, setzen und umwerten, also nur nicht wundern :)

Rikus

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



Quests. (Zook,  1. Apr 2001, 01:24:24):
Hallo,

wir Ihr Euch erinnert, habe ich vor einiger Zeit die Einsortierung der
Quests in die Gruppen etwas angepasst, um die Gruppen ausgewogener zu
gestalten. Die Aenderungen an den Quests haben nun eine weitere Stufe
erreicht. Und zwar wird ein bereits schon einmal frueher diskutierter
Gedanke aufgegriffen: Es gibt eine Reihe von Quests im MorgenGrauen,
die eigentlich jeder Spieler einmal gespielt haben sollte, das sie
besonders gut oder schoen oder wichtig sind. Dieses Kanon sollte dann
auch verpflichtend fuer die Spieler festgelegt werden. Ich habe mich 
in den vergangenen Wochen mit einigen Spielern und Sehern zu diesem
Thema unterhalten und habe folgende Liste an Quests herausgesucht, von
denen wir meinen, dass sie wirklich zum Grundkanon jeden Sehers im 
MorgenGrauen gehoeren sollten. Daher sind diese Quests ab sofort 
verpflichtend, um Seher zu werden, d.h. man muss sie bestanden haben,
um zum Seher aufsteigen zu koennen.

Es handelt sich dabei um folgende Quests (in loser Reihenfolge):

  Befreie den Friedhof
  Eilende Briefzustellung
  Heilung fuer den Hexer
  Schrat kann nicht einschlafen
  Thors Hammer
  Chilanas Lebenselexier
  Verhaengnis des Duesterwalds
  Hilf dem Architekten

Die Umstellungen bei den Quests sind damit allerdings noch nicht 
abgeschlossen. Die Anzahl der Abenteuerpunkte, die fuer die Quests
vergeben werden, sind derzeit noch in einem Ueberpruefungsverfahren
und werden innert der naechsten Wochen geaendert. Ebenso werden wohl
einige Quests in sogenannte MiniQuests umgewandelt, d.h. sie geben
noch Stupse, aber keine Abenteuerpunkte mehr.

Gruss, Zook.

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



Re: Quests. (Zook,  2. Apr 2001, 00:11:13):
~#! rn=Zook rt=986081064 rg=bekanntmachungen
~#! tid=986081064
Sehr geehrte Damen und Herren (andere Rassen moegen passende Anreden
selbsttaetig einsetzen),

wir nehmen zu dem im Kopf in Rede stehenen Artikel, auf den wir uns 
beziehen, wie folgt Stellung: Dem geneigten Leser wird das Datum des
ersten April aufgefallen sein und er wird sich seinen Teil gedacht
haben. Fuer die anderen sei an dieser Stelle gesagt: APRIL, APRIL!
Wir bedanken uns, dass Sie uns auch dieses Jahr wieder mit netten Flames
und Entruestuengen via teile-mit, Email und MPA-Artikel beehrt haben
und bedanken uns fuer die Freude, die Sie uns damit bereiten konnten
ganz herzlich.

Es gruesst Sie freundlichst 

Ihre MorgenGrauen Questverwaltung namens

Dr. Zook (_immer_ lieb und nett ;)

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



Amaryllis -> 45 (Boing,  9. Apr 2001, 19:24:36):
Ab sofort ist Amaryllis RM Wueste. Ich wuensch Ihr viel Erfolg beim
Baeume pflanzen ... :)
  Boing

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



Erfahrungspunkte und Stupse (Rikus,  9. Mai 2001, 15:40:18):
Hi,   

eine kleine Aenderung zur Wertigkeit der Erfahrungspunkte bezueglich der
Stufenpunkte moechte ich kundtun! Bisher war es ja so, dass bis Level 9 
die Stufenpunkte im unteren Bereich unterschiedlich wertig waren und auch
beim Levelaufstieg diverse Spruenge in den Stufenpunkten auftraten.
Weiterhin ging dann der Stupsverlauf ab einer bestimmten Erfahrungspunkt-
anzahl linear nach oben, was nur das sinnlose Metzeln anspornt.
Nun ist es so, dass die Berechnung der Stupse aus den XPs levelunabhaengig
ist, die Kurve im unteren Bereich schoen steil ist und nach oben hin 
immer mehr abflacht. Stupse verliert man nun keine mehr beim Aufsteigen und
die kleineren Spieler erhalten mehr Stupse.     

Rikus

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



Re: Erfahrungspunkte und Stupse (Rikus,  9. Mai 2001, 15:43:07):
~#! rn=Rikus rt=989415618 rg=bekanntmachungen
~#! tid=989415618

Ich verweise auf hilfe stufenpunkte :)

Rikus

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



Personalentscheidungen (Boing, 14. Mai 2001, 13:35:13):
Hallo,

im Umfeld der Party (und auch schon davor) sind ein paar 
Personalentscheidungen getroffen worden:

o Paracelsus ist in den Ruhestand getreten, d.h. er ist ab
  nun Weiser. Ich moechte mich bei ihm im Namen des Muds fuer
  seine Arbeit als EM und RM Wald bedanken. Ich persoenlich
  bedauere natuerlich diese Entscheidung, weil er sehr viel
  Mudlib-Wissen und Kompetenz besitzt. 
  Im selben Atemzug suche ich jetzt natuerlich einen neuen RM 
  fuer den Wald, wer sich dafuer befaehigt haelt (Vollmagier 
  ist Voraussetzung) soll sich bitte bei mir melden.

o Highlander wurde von mir wegen Inaktivitaet auf Level 55 
  gesetzt. Auch ihm danke ich fuer seine Arbeit, auch wenn sich
  die meisten nicht mehr daran erinnern werden. :)
  Der Sheriff-Posten ist mit Muadib gut besetzt, auch wenn 
  dieser (noch *g*) kein Erzmagier ist.

o Einen neuen EM kann ich auch praesentieren: Ab sofort ist 
  Tilly Erzmagier fuer Objekt-Balance und loest damit mich ab. 
  Ich bin momentan zwar noch Mitglied im Balance-Team, werde mich
  aber mittelfristig daraus verabschieden. Eine Bekanntmachung
  zu diesem Thema wird noch folgen.
  Tilly wuensche ich fuer seine neue Aufgabe viel Erfolg! :)

o Zum Abschluss gibt es noch einen neuen Regionsmagier:
  Nonne ist absofort RM im Vland, auch ihm wuensche ich viel
  Erfolg bei seiner neuen Aufgabe!

   Boing

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



Neues von der Balance (Tilly, 14. Mai 2001, 18:44:06):
Da Boing in naher Zukunft aus der Objekt-Balance auf eigenen
Wunsch ausscheiden wird und ich seinen Posten in diesem Gre-
mium uebernehmen durfte, sucht die Balance 2 SpielerInnen,
die uns bei unserer verantwortungsvollen Aufgabe unter-
stuetzen moechten und koennen.

Du kennst Dich im MorgenGrauen gut aus?

Du traust Dir zu, in einer Diskussion zu Deiner Meinung zu
stehen und laesst Dich darin nicht von anderen beeinflussen?

Dir geht das Wohlergehen des MG ans Herz und Du moechtest nach
Kraeften etwas fuer Dein Lieblings-Mud tun?

Dann bewerbe Dich doch bitte per 'mail balance' bei uns.

Die Objekt-Balance ist sehr wichtig fuer das Mud und ebenso
wichtig ist die Repraesentanz von Spielern in diesem Gremium
und ihre aktive Teilnahme an Entscheidungen, die alle Spieler
angeht und betrifft.

Schoen, aber bei weitem weder Bedingung noch Auswahl-Kriterium
waere es, wenn sich dazu ein Hobbit und / oder Zauberer berufen
fuehlen wuerde.

Magier und Magierzweitis werden gebeten, von einer Bewerbung
abzusehen.

 I.A. der Balance

 - Tilly - 

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



Neue Wald RMs (Boing, 29. Mai 2001, 17:13:56):
Hallo,

ab sofort gibt es zwei neue Regionsmagier im Wald: Silvana und Patryn 
werden sich die Arbeit teilen. Beide haben ja schon einige Erfahrungen
auf diesem Gebiet. :) Ich wuensch den beiden viel Erfolg!
  Boing

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



Neuer EM (Boing, 12. Jun 2001, 16:50:10):
Muadib ist zum Erzmagier ernannt worden. Sheriff war er ja schon vorher,
aber jetzt hat er auch den Level, der normalerweise dazugehoert. Ich 
wuensch ihm viel Spass mit seinem neuen Level *grins*.
  Boing

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



Reboot am Mittwoch (Boing, 13. Aug 2001, 13:48:00):
Am Mittwoch abend wird es aufgrund einer groesseren Umstellung einen
Reboot geben. Zook war so freundlich den Armageddon zu ueberarbeiten,
so dass fuer die Spieler da auch einmal etwas neues zu erleben ist.
Der alte Armageddon war doch schon etwas ausgelutscht ... ;)
  Boing

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



Byebye ... :) (Boing, 15. Aug 2001, 21:05:11):
Hallo zusammen,

fuer die meisten wird es etwas ueberraschend kommen, fuer andere nicht:
Ich trete von meinem Posten als Gott des MorgenGrauens zurueck. Nach
ueber 9 Jahren hatte ich den Eindruck, dass ich lange genug fuer die
Geschicke des MGs verantwortlich war, jetzt duerfen mal andere ran. :)
Gruende? Zum einen die fehlende Zeit (berufstaetig zu sein ist halt
doch etwas ganz anderes als zu studieren), zum anderen die fehlende
Lust mich weiterhin staendig mit administrativem Kram rumzuschlagen.
Ich werde also meinen Ruhestand geniessen und die Dinge tun, die mir
Spass machen und die ich solange ruhen lassen musste: Meine Gebiete
pflegen und erweitern und die Region Gebirge zu betreuen. Die Kaempfer-
Gilde werde ich auch weiterhin betreuen, dort gibt es auch noch
einiges zu tun (Docdevil, ich hab Dich nicht vergessen :)).
Kurz: In Zukunft wird statt einem G ein R neben meinem Namen stehen.
Ich werde also auch nicht als Erzmagier oder Weiser weitermachen, denn
dann wuerde der Ruecktritt nicht den eigentlichen Zweck erfuellen:
Zeit schaffen fuer meinen eigenen Kram.

Viel hat sich veraendert seit dem 25.3.1992, dem Gruendungstag des
MorgenGrauens. Viele Leute sind gekommen und gegangen, ich habe viele
Freunde und sogar meine Frau durch das MG gewonnen, ich bereue nicht
eine Sekunde, die ich hier verbracht habe. Das MG selbst ist gewachsen
(manche wuerden sagen gewuchert) und viele haben ihren Teil dazu bei-
getragen. Das MG wird auch ohne mich weiter existieren, ich hoffe noch
fuer viele Jahre. Denn ich lasse nicht einfach alles stehen und liegen,
es gibt ab sofort einen Nachfolger und neuen Gott: Zook! Ich vertraue
ihm in jeder Hinsicht, er wird in seine neue Aufgabe hereinwachsen und
mich gut ersetzen koennen.

Es gibt ein paar Leute, bei denen ich mich noch bedanken moechte,
eigentlich sogar sehr viele Leute: Ganz vorneweg kommt Jof, er hat
dieses Mud gegruendet und mich zum Gott gemacht. Er gab mir das noetige
Vertrauen fuer diese Aufgabe, ohne sein Vertrauen haette ich hier nichts
bewegen koennen. Dann mach ich mal hierarchisch von oben weiter: Rumata
und alle Erzmagier die hier ihren Teil dazu beigetragen haben, dass das
MG heute das groesste deutsche Mud ist. Ohne faehige EMs, die auch die
Verantwortung fuer ihren Bereich uebernehmen, kann ein Mud dieser Groesse
nicht existieren. Weiter geht es mit den Regionsmagiern die hier dafuer
sorgen, dass der Wildwuchs innerhalb der Regionen nicht zu gross wird.
Dann danke ich jedem Magier, der hier irgendwas angeschlossen hat (und
liess), und sei es noch so klein. Alles gemeinsam bildet das MG. Und
auch die Spieler haben Dank verdient, durch ihre Ideen und Fehlermeldungen
konnte das MG staendig verbessert werden. Manche Spieler haben sogar
aktiv Verantwortung uebernommen (z.B. Balance-Team) und so dem MG
geholfen. Und zu guter Letzt moechte ich einem noch mal explizit danken:
Zook! Danke, dass Du den Posten uebernimmst und mir damit die Chance
gibst, abzudanken. :)

Das war's von meiner Seite, weiterhin viel Spass im MG ... und los
seid ihr mich noch lange nicht ... :)

  Boing

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



Crash vom 24.08.2001 (Tiamak, 25. Aug 2001, 02:51:48):
Oefter mal was Neues ...

Am Abend des 24.08.2001 ist der komplette MG-Rechner aus bisher noch
ungeklaerten Ursachen neu hochgefahren. Auch wenn der Driver einmal nicht
daran schuld war - da er ohne den Rechner auch nix machen kann, sind die
Auswirkungen natuerlich dieselben: das Mud ist gecrasht.


Tiamak

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



Re: Crash vom 24.08.2001 (Tiamak, 27. Aug 2001, 09:30:18):
~#! rn=Tiamak rt=998700708 rg=bekanntmachungen
~#! tid=998700708
Die Ursache fuer den Reboot des Rechners am 24.08. ist jetzt nicht mehr ganz
so "ungeklaert": der Rechner musste kurzfristig herunter gefahren werden,
damit er von den lieben Handwerkern bei ihrer Arbeit nicht beschaedigt wird.


Tiamak

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



Heilungs-Balance (Zook, 16. Okt 2001, 20:16:44):
Fizban scheidet auf eigenen Wunsch aus der Heilungs-Balance aus. Als
Nachfolger im Amte hat sich Tilly gefunden.

Vielen Dank an Fizban fuer seine Zeit und Arbeit und Tilly viel 
Erfolg im neuen Amt!

Gruss, Zook.

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



Reboot vom 26.10.2001 (Tiamak, 27. Okt 2001, 15:32:22):
Erinnert sich noch wer an den Crash vor zwei Monaten? Verursacht durch
voreilige Handwerker?

Nunja. Jetzt sind alle Spuren ihres Wirkens beseitigt.
Diesmal sogar einigermassen sauber.


Tiamak. Der mit den guten Nachrichten.

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



Neuer Regionsmagier im Gebirge (Zook, 22. Nov 2001, 18:54:51):
Hallo zusammen!

Fuer die Region Gebirge haben wie personelle Verstaerkung gefunden. Bambi
wird ab sofort als Regionsmagier mitarbeiten. Ich wuensche ihm viel
Spass und viel Erfolg und bedanke mich schon einmal im voraus fuer die
Bereitschaft, als RM hier im MorgenGrauen mitzuhelfen und mitzuarbeiten.

Gruss, Zook.


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



Crash vom 2002-01-02 (Tiamak,  2. Jan 2002, 20:50:14):
Prost Neujahr!

Das MG wurde heute gegen 19:00 Uhr etwas unsanft rebootet. 
Der Grund war ein Fehler im Driver.


Tiamak

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



Goldmuenzen-EURO-DM-Bargeld-Umtausch.... (Zook,  6. Jan 2002, 22:29:53):
Sapperlott!

Da bringt man mit Muehe und Geduld seine alten DM-Bestaende zur Bank, reiht
sich geduldig in eine Warteschlange ein und schaut zu, wie es dahin geht, 
das ganze schoene Geld. Muehsam gespart und nun einfach weg.
Dafuer bekommt man so neues Papiergeld, fasst sich unglaublich duenn an und
beim Bezahlen muss man jeder Muenze mindestens dreimal umdrehen, bis man
herausfindet, was es denn nun ist.

Und ich dachte mir so in meinem naiven Geiste: "Ha! Im Mud, da haben wir
es gut. Soweit reicht der Arm der EZB nicht." Aber oh nein. Da ist es
passiert: Unser Geld hat/wird sich aendern. Eine der groessten Geldumtausch-
aktionen im Mud sind angelaufen. Aber keine Sorge, Ihr braucht Euch 
nirgends anzustellen, sondern diese Umstellung wird voellig automatisch
ablaufen. Was ist denn nun neu am Geld, werdet Ihr Euch fragen. Nun, ein
findiger Muenzschmied hat sich unsere Zentralbank mal angeschaut und ein
paar kleinere Aenderungen am Praegeverfahren vorgenommen, so dass die 
Muenzen nun durch die Praegung deutlich faelschungssicher geworden sind und
auch sonst sind sie gewaltig aufgemoebelt worden.

Also geniesst hier im Mud ein schoeneres Geld! Typos/Bugs/Ideen koennt Ihr
an mich richten. Dank fuer die Ergaenzung bitte an Gloinson, dem ich an 
dieser Stelle fuer sein Nachhilfe bei der Praegeabteilung der Zentralbank
danken moechte.


Gruss, Zook.

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



Kleinere Umstellungen. (Zook, 14. Jan 2002, 17:07:07):
Hoi, 

die Partyseiten sind kurzzeitig mal ausm WWW heruasgenommen, da ich da
ein paar kleinere Umstellungen machen muss. Wird (so mein Terminkalender
es zulaesst) innert der naechsten Tage wieder erreichbar sein.

Gruss, Zook.

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



Warnung... (Zook, 12. Feb 2002, 18:26:27):
Hoi zaemme,

mittelschlechte Nachrichten: Das MorgenGrauen laeuft derzeit in einem
KRITISCHEN ZUSTAND und eskann jederzeit zu Spielstoerungen bis hin zu
einem Crash/Reboot kommen. Ich arbeite derzeit an einer Behebung des
Problems. 

Gruss, Zook.

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



Re: Warnung... (Zook, 12. Feb 2002, 19:17:08):
~#! rn=Zook rt=1013534787 rg=bekanntmachungen
~#! tid=1013534787
Ganz schlechte Nachrichten:

Es _wird_ heute Abend noch einen Reboot geben; ich muss dafuer aber ein
wenig etwas vorbereiten. Eine Ankuendigung via Armageddon wird Euch dann
die genaue Uhrzeit ankuendigen. Rechnet aber mal so mit 20.00 Uhr.

Gruss, Zook.

PS: Troestet Euch, es haette schlimmer kommen koennen. ;)

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



Entwarnung und auf eine lange Uptime! (Zook, 12. Feb 2002, 21:47:13):
Hoi zaemme,

so, nun haben wir den Bug eingefangen und gefixt. Kurz zur Erlaeuterung
fuer die Interessierten: Wie Ihr nach dem letzten Reboot festgestellt 
habt, konnte man einige Spieler/Magier nicht mehr fingern, nachdem sie
sich ausgeloggt hatten. Es kam eine Fehlermeldung, dass das Einlesen der
Daten nicht funktioniere. Hintergrund war, dass eine Kleinigkeit an einer
Stelle dazu gefuehrt hat, dass in den Savefiles der Spieler Mist 
abgespeichert wurde. Durch reichlich Glueck blieben jedoch Eure Spieler-
daten erhalten, jedoch mussten alle Savefiles um den "Mist" bereinigt
werden. Dazu musste jedoch das Mud nocheinmal heruntergefahren werden,
was dann die Ursache fuer den zweiten Reboot war. Die Bereinigung der
Spielerdateien hat ein Stueckchen Code erledigt fuer den ich mich bei
Mupfel gerne bedanken moechte. Ansonsten sollte das Mud nun wieder 
in der gewohnten Stabilitaet laufen. Ich wuensche Euch noch viel Spass
im MorgenGrauen und eine schoene, moeglichst lange Uptime!

Gruss, Zook.

PS: Und ich geh nu nach Haus und dann zuegig ins Bett... ;)

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



Reboot wegen Betriebssystemprobleme. (Hate,  4. Mar 2002, 17:06:32):
Wegen eines Ueberlaufs an Prozessen muss der Rechner hart rebootet
werden. Allerdings koennen wir wahrscheinlich das MUD sanft stoppen.

Hate.

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



Silvana (Zook, 12. Apr 2002, 16:54:25):
Hallo zusammen,

leider findet Silvana nicht mehr genuegend Zeit fuer ihre Aufgaben als
Erzmagierin, Regionsmagierin und Gildenmagierin, so dass sie bei mir ihr
Ruecktrittsgesuch eingereicht hat. 

Dieses habe ich schweren Herzens angenommen. Ich moechte an dieser Stelle
Silvana fuer ihr grosses Engagement und die viele Zeit, die sie fuer das
Mud investiert hat ganz herzlich danken und ich hoffe, dass sie einmal
wieder Zeit fuer das MorgenGrauen findet.

Gruss, Zook.

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



Ein neuer Weiser.... (Zook, 15. Apr 2002, 21:23:44):
Hallo zusammen,

ich habe eine freudige Mitteilung fuer Euch. Wir haben Vanion zum
Weisen ernannt. Er ist auf dieser Position fuer das Beheben von 
Fehlern in Gebieten zustaendig. Falls Ihr ueber Fehler in Gebieten,
die nicht mehr gewartet werden, stolpert oder ueber Fehler, die ganz
dringend behoben werden muessen, so wende Euch vertrauensvoll (per 
teile-mit oder per Mail) an ihn.

Ich wuensche Dir, Vanion, viel Erfolg und viel Spass bei dieser neuen
Aufgabe.

Gruss, Zook.

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



Ein neuer Regionsmagier... (Zook, 16. Apr 2002, 11:46:04):
Hallo zusammen,

auch heute habe ich wieder eine gute Nachricht fuer Euch. Wir haben
Humni zum Regionsmagier berufen. Er wird Tsunami in der Region Polar
unterstuetzen. Ich freue mich, dass wir dort eine Vertaerkung bekommen
haben und wuensche Humni viel Erfolg und Freude bei dieser neuen 
Aufgabe!

Gruss, Zook.

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



Neuer Erzmagier... (Zook, 16. Apr 2002, 23:01:19):
Hallihallo,

ich habe eine gute Nachricht fuer Euch. Wir haben heute Ark zum Erzmagier
ernannt. Er wird an meiner Statt fuer die Quests und die MiniQuests
zustaendig sein. 

Ich wuensche Dir, Ark, viel Spass und viel Erfolg bei Deiner neuen
Aufgabe!

Gruss, Zook.

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



Crash... (Zook,  6. Mai 2002, 13:19:59):
Hi, wie Ihr sicherlich bemerkt habt, ist das Mud gecrasht. 
Hoechstwahrscheinlich ist eine Unachtsamkeit eines Magiers dafuer ursaechlich.


Gruss, Zook.

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



Abwesenheitsvertretung fuer die Balance (Zook, 10. Mai 2002, 12:29:30):
Hi,

bis Tilly wieder Zeit fuer die Objekt-Balance und die Heilungs-Balance
findet, bin ich seine Urlaubsvertretung. :-) 

Gruss, Zook.

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



treffen.wegbeschreibungen (Rochus, 12. Mai 2002, 11:44:55):
Ich habe soeben die Rubrik "treffen.wegbeschreibungen" angelegt.
Sinn dieser Rubrik ist es, alle Wegbeschreibungen zu Orten
von Treffen aufzunehmen und lange Zeit zu halten,
expire liegt bei 3650 Tagen :-)
Ih halte das fuer wesentlich sinnvoller als die Beschreibungen
auf die WWW-Seite zu stellen, wo sich immer jemand zum
updaten finden muss.
Bitte dort NUR Wegbeschreibungen reinsetzen und als
Subjekt Stadt und Treffpunkt angeben.

  Rochus

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



Crash vom 14.05.2002 (Tiamak, 14. Mai 2002, 23:25:15):
Am 14.05.2002 ist das MG gegen 22:55 Uhr gecrasht.

Der Grund ist nicht ganz klar, weitere Crashs sind aber nur im "gewohnten"
Rhythmus (sprich: irgendwo zwischen jetzt und in 120 Tagen) zu erwarten.


Tiamak

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



Lag-Attack (Tiamak, 28. Mai 2002, 20:33:13):
Ich ueberbringe euch die schlechten Nachrichten ja nur ungern - aber auf das
liebgewonnene 23:15 Uhr-Megalag muesst ihr ab sofort leider verzichten. Es
wird nicht mehr wiederkommen - nichtmal zu anderen Uhrzeiten.


Tiamak. Lagjaeger. Auf der Suche nach neuen Opfern.

P.S: Wer gerne einen Schuldigen hoeren moechte, den er fuer das Lag lynchen
     darf, geht leider auch leer aus. Die Ursache war eine total harmlos 
     aussehende Stelle in der Mudlib, die sicherlich schon so alt ist wie das
     MG selber. Die Stelle wurde 24 mal am Tag aufgerufen und machte nur in
     etwas unguenstigen Konstellationen ueberhaupt Probleme ...

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



Meldungen bei erhoehe/kosten (Rikus, 27. Jun 2002, 14:52:15):
Hi,

in den Gilden gibt es nun bei diesen Befehlen eine gildenspezifische Text-
meldung und keine einheitliche mehr. Dank an Twingi fuer die Texte! Bitte
meldet auch an sie entsprechende Aenderungswuensche/Hinweise.

Rikus

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



neue Mudlib (Rikus,  2. Jul 2002, 16:16:41):
~#! on=Rikus ot=1025618767 og=magier.mudlib
... steht nun per ftp unter Software/MudLib in der Version 3.2.8 zur
Verfuegung.

Rikus

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



Gaeste und Intermud (Zook,  5. Jul 2002, 12:19:25):
Gaeste koennen Intermud-Channels nun nicht mehr benutzen, da es einigen
Aerger mit herumpoebelnden Gaesten gab.


Gruss, Zook.

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



Reboot (Vanion,  6. Jul 2002, 22:52:47):
Hi,

wie dem einen oder andern aufgefallen sein mag, gab es heute gegen
22:30 ein Reboot. 

Ursache dafuer war ein buggendes Objekt. Dieses war auch mit an
Sicherheit grezender Wahrscheinlichkeit Ursache des dauernden
Hintergrundlags der letzten Tage. Bei dem Versuch das Mud am offenen
Herzen zu reparieren, ist das Hintergrundlag dann in ein unzumutbares 
Dauerlag uebergegangen. Da das Ende dieses Lags nicht absehbar war,
haben Tilly und ich uns entschlossen, das MG zu rebooten.  

V*

PS: Fuer die Statistik: Lag: 46.2%/60, 90.1%/15, 87.9%/1 - duerfte
    alle bisherigen Rekorde schlagen. :)

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



Das Megalag hatte eine Ursache... (Zook,  8. Jul 2002, 18:46:53):
Wir hatten heute Nachmittag etwas viel Lag, soll heissen, das Mud wurde
recht heftig stranguliert. Da der Urheber mir gesagt hat, wie er das
hinbekommen hat, konnte ich es wieder ans Laufen bekommen. Ich hoffe, es
laeuft nun stabil weiter. 

Gruss, Zook.

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



Beurteilung von Gesellenstuecken (Zook, 14. Jul 2002, 17:59:43):
Hallo zusammen, hallo insbesondere an unsere Jungmagier,

in der letzten Zeit lag die Beurteilung der Gesellenstuecke ja 
auschliesslich bei mir. Dies hat sich nun erfreulicherweise
geaendert. In der Zukunft werde mir Twingi und Vanion bei der
Begutachtung der Gesellenstuecke behilflich sein. Ihre Mitarbeit
konzentriert sich dabei auf die Begutachtung. Dies bedeutet,
dass Diskussionen ueber die Konzeption im Vorfeld und ueber eine
etwaige Abnahme weiterhin mit mir zu fuehren sind. 

Ich bedanke mich bei Twingi und Vanion fuer Ihr Engagement
und freue mich auf die naechsten Gesellenstuecke, die 
hoffentlich bald fertig werden.

Bei Fragen / Ideen / Anmerkungen wendet Euch einfach direkt an
mich. 

Gruss, Zook.

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



Verstaerkung der Gilden-Balance (Zook, 16. Jul 2002, 11:37:47):
Hallo zusammen,

da Nachtwind derzeit und zukuenftig nur wenig Zeit fuer die
Gildenbalance findet, haben wir uns entschlossen, die
Gildenbalance zu ergaenzen. Fuer diesen Posten haben wir 
Humni auserkoren, der nun die Gildenbalance verstaerkt. Bitte
gebt ihm aber ausreichend Zeit, sich in diese Aufgabe einzuarbeiten.

Bei Nachtwind moechte ich mich gerne fuer sein Engagement,
seinen Einsatz und seine Zeit fuer das MG und im speziellen fuer
das Gebiet der Gilden-Balance danken. Humni wuensche ich eine
erfolgreiche Einarbeitungsphase und viel Gespuer auf dem
neuen Posten!

Gruss, Zook.

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



Neuer Regionsmagier Ebene (Zook, 17. Jul 2002, 09:48:20):
Hallo zusammen,

eine gute Nachricht fuer die Ebene. Wir haben Ragnaroek zum
weiteren Regionsmagier berufen. Er wird in der Anfangszeit von
Ark eingearbeitet, also ueberschuettet ihn nicht sofort mit
Anfragen und Ideen. Ich wuensche Dir, Ragnaroek viel Erfolg
auf Deinem neuen Posten!

Gruss, Zook.

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



Re: Beurteilung von Gesellenstuecken (Zook, 18. Jul 2002, 10:22:41):
~#! rn=Zook rt=1026662383 rg=bekanntmachungen
~#! tid=1026662383
Eine kleine Ergaenzung, da mein Hirn etwas loechrig ist und man
im Alter auch etwas tuettelig wird: Fuer die Mitarbeit bei den
Gesellenstuecken haben wir Twingi zur Hilfsmagierin (Lvl. 35)
befoerdert. Viel Erfolg und viel Freude mit der neuen Aufgabe. :-)

Zook.

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



Re: neue Mudlib (Rikus,  2. Aug 2002, 10:54:41):
~#! rn=Rikus rt=1025619401 rg=bekanntmachungen
~#! tid=1025619401
so, die bei der AB-Gilde fehlenden Files sollten nun auch in der Distri
enthalten sein.

Rikus

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



... und danke fuer den Fisch (Tiamak,  4. Aug 2002, 23:04:51):
Hallo MG,

machen wir es kurz und schmerzlos: hiermit trete ich aus persoenlichen
Gruenden mit sofortiger Wirkung von meinem Posten als Mudlib-EM zurueck und
stufe mich auf Level 21 herab.


Macht es gut,

Tiamak

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



Game over, man! Game over! (Nachtwind,  4. Aug 2002, 23:10:23):
Hallo,

Um es kurz zu machen, ich trete hiermit von meinem EM-Posten zurueck
und ueberlasse Humni ganz allein die Arbeit :) Verschleisst ihn nicht
so schnell und seid lieb zu ihm. Sonst wertet er Euch alle ab. >:)

Danke an alle, mit denen ich zusammenarbeiten durfte.

Nachtwind. Jetzt Vollmagier ohne Region (21). :)

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



Ein Dankeschoen... (Zook,  4. Aug 2002, 23:27:20):
Ich moechte mich bei Nachtwind und Tiamak sehr herzlich fuer ihre Arbeit
und Energie und die viele Zeit, die sie fuer das MG aufgebracht haben,
bedanken.

Ich hoffe, Ihr bleibt dem MG noch in der einen und anderen Form
erhalten und wuensche Euch alles Gute! :-)

Gruss, Zook.

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



Pflege der Mudlib (Rikus,  9. Aug 2002, 10:45:49):
Hi,
den vakanten Posten der Mudlibpflege habe ich nun uebernommen. Diesbezuegliche
Hinweise, Bugs, Mails etc bitte an das Mailalias em_mudlib oder direkt an
mich.

Rikus

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



Arme Spieler hinter Feuerwaenden.... (Zook,  9. Aug 2002, 20:58:34):
Fuer die armen Spieler hinter Feuerwaenden hat Hate auf dem alten
Rechner einen relayd eingerichtet. Die IP-Adresse ist

  mgserv.first.gmd.de 80

Das Ganze ist, soweit ich es verstanden habe, derzeit noch von der
Anzahl der Nutzer beschraenkt und die Original-IP-Adresse wird
auch nicht angezeigt.

Gruss, Zook.

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



Re: Arme Spieler hinter Feuerwaenden.... (Zook, 12. Aug 2002, 11:25:17):
~#! rn=Zook rt=1028919514 rg=bekanntmachungen
~#! tid=1028919514
Mittlerweile sollte auch die Adresse

  mg2.mud.de 80

funzen. Viel Spass!

Zook.

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



Nachrichtenebene (Hate,  2. Sep 2002, 21:58:00):
Hallo, wer versucht auf die Nachrichtenebene zu gelangen und es klappt nicht,
sollte das Kommando:

  ebene N=

eingeben. Gleiches gilt, wenn nach einem neulogin der channel nicht
automatisch wieder eingeschaltet ist!

Hate.

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



Ruecktritt (Rochus, 15. Sep 2002, 14:23:35):
Tja, wie viele schon bemerkt haben bin ich schon laengere Zeit
nicht mehr aktiv an der Entwicklung des MG beteiligt...
Eigentlich haette ich den EM-Posten schon laengst aufgeben sollen,
aber ich dachte, ich wuerde relativ bald wieder Zeit und Lust
finden, etwas hier zu machen... das ist nun nicht so schnell
eingetreten wie ich gehofft habe...
Deshalb stufe ich mich jetzt zum Weisen ab...
der Abschied faellt mir echt schwer, obwohl ich mir sicher
sein kann, hier wieder einen Platz zu finden, wenn ich moechte...
Ich moechte irgendwann wiederkommen, ich weiss nur nicht wann...

  Rochus

PS: Aehm, hat noch jemand ne KL fuer das RL-Mud? ;-)

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



Maexchen (Rikus,  8. Okt 2002, 11:55:50):
... laesst sich nun nur noch in bestimmten Gegenden von Port Vain
aufbauen.

Rikus

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



Re: Maexchen (Rikus,  8. Okt 2002, 11:59:21):
~#! rn=Rikus rt=1034070950 rg=bekanntmachungen
~#! tid=1034070950
wobei es sicherlich demnaechst einen tragbaren Becher geben wird.
*zwinker gloinson*

Rikus

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



Re: Maexchen (Rikus,  8. Okt 2002, 13:53:30):
~#! rn=Rikus rt=1034070950 rg=bekanntmachungen
~#! tid=1034070950
und in Seherhaeusern und Mietzimmern.

Rikus

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



team hist (Rikus,  9. Okt 2002, 12:28:34):
... gibt nun die letzten x Eintraege der History aus anstatt wie
bisher immer die ersten x.

Rikus

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



Neue Rubrik (Tilly, 12. Okt 2002, 20:56:07):
~#! on=Vanion ot=1034448555 og=treffen.bekanntmachungen
Hallo, eben wurde eine neue Rubrik treffen.bekanntmachungen eingerichtet. Sie
dient dazu die Stati-Ankuendigungen aufzunehmen, damit man diese schnell auf
einen Blick hat. Bitte seht davon ab in dieser Rubrik auf die Bekanntmachungen
in dieser Rubrik zu antworten. Dafuer ist weiterhin die Rubrik treffen
gedacht.

V*

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



Seherhaeuser (Zook, 17. Okt 2002, 16:25:04):
Folgende Nachricht von Ragnaroek hat mich erreicht, die ich gerne an Euch
weiterleite. Viel Spass wuensch Euch Zook.

--schnipp--
  _________         _                    _
_/   _____/ _____  / |__   _____   ___  / |__   ____   _   __  _____
\______  \ /  __ \|  |  \ /  __ \ /  _||  |  \ / _  | / | |  |/  ___/  ___
 /        \\  ___/|   Y  \\  ___/|  |  |   Y  \ (_) ||  |_|  |\___ \  /___/
/_________/ \___  )___|  / \___  )__|  |___|  /\____| \_____//______/
                \/     \/      \/           \/
  /\      __         __   __  /|                                   /|
 /  \    /  \_____ _|  |_|  || |__   _____ ___      ________   ___| |__
 \   \/\/   /  __ \\    _    /  __\ /  __ \\  \_/\_/  /  __ \ /  _|  __\
  \        /\  ___/ |  | |  || /_/ |\  ___/ \        /\  ___/|  | | /_/ |
   \__/\  /  \___  )|__| |__||_____/ \___  ) \__/\  /  \___  )__| |____/
        \/       \/                      \/       \/       \/


                           ==: BEKANNTMACHUNG :==


 Liebe Seher, es ist wieder soweit! Nachdem der letzte Seherhauswettbewerb
 Anfang '95 stattgefunden, und sich die Zahl der Seher (und damit auch der
 Haeuser) seitdem  drastisch erhoeht hat, ist es nun  langsam an der Zeit,
 den naechsten folgen zu lassen, und genau das wollen wir tun.
 Ab sofort findet ihr in jedem  Rassen-Startraum ein  Plakat mit aktuellen
 Infos zum Wettbewerb und der Moeglichkeit, Euch selbst fuer die Teilnahme
 einzutragen oder gar fuer die Jury zu bewerben.
 Bei  Fragen / Anregungen / Hinweisen  stehen Twingi und ich jederzeit zur
 Verfuegung. So bleibt  mir nichts, als in  erwartungsvoller  Spannung auf
 eine rege Teilnahme zu hoffen!

 :ragna:
--schnapp--

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



Stromabschaltung (Hate, 24. Okt 2002, 20:09:27):
Am "Freitag, den 25. Oktober 2002, wird ab ca. 16:00" fuer ca. 2-3 Stunden
wird es eine Stromabschaltung bei FIRST geben, so dass das MUD
heruntergefahren werden muss.

Mfg,

Hate.

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



Reboot. (Vanion, 25. Okt 2002, 21:28:44):
Wie dem einen oder anderem vielleicht aufgefallen sein mag, gab nach dem
16:00-Reboot einen weiteren. Grund hierfuer war ein ernster Fehler im Driver. 

Der Fehler wird derzeit fieberhaft gesucht, und sobald er gefunden ist, muss
das MG ein weiteres mal rebootet werden. Beruecksichtigt bitte diesen Umstand
bei der Planung eurer Ausruestungstouren. 

V*

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



Re: Reboot. (Vanion, 25. Okt 2002, 23:17:13):
~#! rn=Vanion rt=1035574124 rg=bekanntmachungen
~#! tid=1035574124
Erstmal das wichtigste:

Es sind keine weiteren Reboots geplant. Viel Spass beim Ausruesten.

Damit niemand vor Neugier sterbt, geb ich mal eine Kurzfassung von dem was 
heute passiert ist:

Da heute um 16:00 eh ein Reboot anstand, haben wir die Gelegenheit genutzt,
einige (ca. 5-6) Driverpatches einzubauen. Leider hat einer dieser Patches 
einen tiefer liegenden Fehler aus der Versenkung geholt. Dieser hat z.B. 
dafuer gesorgt, dass der Befehl 'ausruestung' nicht mehr funktionierte und 
es zu Fehlern beim Zeilenumbruch bei Ebenenemotes kam. Da wir befuerchten 
mussten, dass der Fehler frueher oder spaeter auch Savefiles betrifft, haben 
wir uns kurzfristig entschlossen das MG zu rebooten und mit dem alten Driver 
wieder zu starten.

Der 3. Reboot hat wieder einen gepatchten Driver online gebracht, diesmal 
ohne den Patch der die Fehler verursacht hat. Dies war sinnvoll und not-
wendig, da der neue Driver einige Verbesserungen enthaelt, auf die wir 
nicht verzichten wollten.

Ich hoffe, Ihr fuehlt euch nun ausreichend informiert danke fuer Euer 
Verstaendnis.

V*

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



Emailanzeige auf dem Webseiten (Rikus, 28. Okt 2002, 15:45:30):
Hi,
wegen diverser Emailgrabber wurde die Emailanzeige aus dem Fingerkommando
(WWW-Seiten) ganz entfernt. Hier im MG und auch zwischen den Muds bleibt
die Anzeige wie gehabt.

Gruss, Rikus

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



aktuelle Driversourcen (Rikus, 28. Okt 2002, 21:51:39):
... sind wie immer unter Software/GameDriver zu finden.
driver_26.10.2002.tgz entspricht dem laufenden driver.

Rikus

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



Crash und Reboot (Vanion, 22. Nov 2002, 15:23:27):
Hi,

Heute gegen Mittag gab es einen Crash des MUD. Die Ursache ist noch nicht
bekannt.

Wir wollen allerdings das Reboot nutzen, um ein paar Aenderungen am Driver zu
machen. Daher wird es innerhalb der naechsten 30 Minuten ein weiteres Reboot
geben.

V*

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



Re: Crash und Reboot (Rikus, 22. Nov 2002, 15:32:56):
~#! rn=Vanion rt=1037975007 rg=bekanntmachungen
~#! tid=1037975007
wobei es auch sonst keinen Zugriff auf dem MG-Rechner gab. War sicherlich
kein Crash des MG an sich :)

Rikus

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



Re: Crash und Reboot (Vanion, 22. Nov 2002, 15:37:03):
~#! rn=Vanion rt=1037975007 rg=bekanntmachungen
~#! tid=1037975007
So, der neue Driver ist installiert und tut seine Arbeit. 

Danke an Patryn fuer die Lieferung der Patches und an Rikus fuer den deren
Einbau.

V*

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



Reboot (Vanion, 22. Nov 2002, 22:24:04):
Hallo, 

Der Crash von heute Mittag war die Folge eines kurzen Stromausfalls. Leider
musste der MG-Rechner noch einmal runtergefahren werden um alle Folgen des
Rechnercrashes zu beseitigen. Ich hoffe, dass wir jetzt einer langen und
erfolgreichen Uptime entgegensehen.

V*

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



Letzter Crash... (Zook, 24. Nov 2002, 16:19:56):
Hallo zusammen,

bedauerlicherweise hat es vorhin einen erneuten Crash gegeben. Ein erstes
Sichten des Core-Files (Dank an Vanion!) hat ergeben, dass ein zu grosses
Postfach das Mud in den Abgrund gerissen hat. Das Postfach wurde *huestel*
*huestel* und der Spieler benachrichtigt. An einer dauerhaften Behebung 
des Fehlers wird gearbeitet. Sorry fuer die Unannehmlichkeiten.

Gruss, Zook.

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



Stromabschaltung/Reboot (Hate, 25. Nov 2002, 19:03:50):
Hallo,

wegene Bauarbeiten an der Elektroverteilung der Rechnerraeume wird der Strom
abgeschaltet, so dass das MUD morgen gegen 18:15 ca. heruntergefahren wird.
Dauert bis ca. 19:45.

Hate.

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



aktueller Driver (Rikus,  3. Dez 2002, 11:11:00):
... ist nun in Software/GameDriver als Source zu finden. In WinTCPIP habe ich
die Windows-Version abgelegt.

Gruss, Rikus

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



Abwesenheitsvertretung fuer Tilly (Zook, 10. Jan 2003, 11:25:58):
Fuer die Aufgaben "Objekt-Balance" und "Heilungs-Balance" uebernehme ich
bis Tilly wieder anwesend ist seine Abwesenheitsvertretung.

Gruss, Zook.

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



behalte (Rikus, 14. Jan 2003, 12:14:25):
Hi,
bei behalte geht nun (nach ende/reboot) auch sowas wie:
behalte schwert 3 in beutel 2

behalte alles/nichts und reines Anzeigen der behaltenen Sachen
bezieht sich jedoch weiterhin nur auf die oberste Ebene des Invs.

Gruss, Rikus

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



Neuer Erzmagier (Zook, 22. Jan 2003, 12:26:00):
Wir freuen uns ausserordentlich, dass wir mit Vanion einen weiteren
Erzmagier gewonnen haben. Er wird zustaendig sein fuer Driver, LPC-Beratung
und Weiterentwicklung Mudlib Basiskonzepte. Ich wuensche Dir Vanion viel
Spass und Erfolg bei Deiner neuen Aufgabe.

Gruss, Zook.

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



autofolge (Muadib, 24. Jan 2003, 11:15:50):
Hi,

das Verhalten des autofolge im Teamkampf wird eine 
kleine Aenderung erfahren.

Im Gegensatz zu bisher muss der Teamleiter direkt
vor dem Folgen im gleichen Raum gestanden haben
wie das autofolgende Teammitglied. 
Ist dies nicht der Fall folgt das Teammitglied nicht.

Damit kann der Teamleiter sein Team immer noch
retten oder durch die Gegend fuehren jedoch muss er
nun auch darauf achten, dass alle Mitglieder nachgefolgt
sind bevor er weiterlaeuft.

Die Aenderung tritt zum naechsten Reboot/Crash in Kraft.
Sollte dann was buggen schreit bitte.

Gruss

Muadib


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



Stromabschaltung (Hate, 30. Jan 2003, 08:08:40):
Wegen Arbeiten an den Sicherungskaesten der Serverraeume kommt es wieder
einmal zu einer Stromabschaltung. Diese wird am 31.1.2003 von ca. 15:00 bis
16:00 sein.

Mfg,

Hate.

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



Waffenfertigkeiten (Zook, 30. Jan 2003, 16:35:05):
Hallo zusammen,

ab Ende/Crash/Reboot erlernen die Spieler der Gilden Abtenteuerer,
Bierschuettler, Chaos und Katzenkrieger sogenannte allgemeine
Waffenfertigkeiten. Diese funktionieren wie folgt:

-snip-
Allgemeine Waffenfertigkeiten:
==============================

Bestimmte Gilden erlernen Waffenfertigkeiten. Dies sind bisher die
Mitglieder folgender Gilden:

 - Abenteurer
 - Bierschuettler
 - Chaos
 - Katzenkrieger

Die Spieler dieser Gilde koennen das Kaempfen mit den Waffengattungen 
Keulen, Aexte, Speere, Messer, Schwerter und Peitschen durch Benutzung 
dieser Waffen erlernen. Je besser man mit den Waffen umgehen kann, desto 
mehr Schaden kann man bei seinem Gegner verursachen. 

Neben der Faehigkeit im Umgang mit den Waffen spielt auch die Waffe
eine Rolle, sowie die eigene Kraft und Geschicklichkeit. Dabei sollte
man beruecksichtigen, dass die Waffen unterschiedliche Anforderungen 
an das Geschick stellen. So ist die Benutzung einer Peitsche sehr
komplex, zum Kampf mit einem Messer muss man sich ebenso recht
geschickt anstellen, dicht gefolgt vom Kampf mit Speeeren. Recht 
ausgeglichen zwischen Geschicklichkeit und Kraft ist der Kampf mit einem
Schwert. Die Benutzung von Aexten erfordert noch einiges Geschick, waehrend
man bei Keulen am ehesten mit purer Kraft bedient ist.

Wer wissen moechte, wie gut er den Umgang mit den Waffen bereits
beherrscht, kann dazu einen Kaempfer (mindestens im Range eines
Unteroffiziers) befragen. Der sollte dies beurteilen koennen. 


Letzte Aenderung: Don, 30. Jan 2003, 16:22:43 von Zook.
-snip-

Kleine Anmerkug noch: Die Kaempfer werden diese Faehigkeit erst zu
einem spaeteren Zeitpunkt erlernen, aber dazu wird uns dann der
Gildenmagier informieren. 

Viel Spass damit und gebt bitte Rueckmeldung an Ideen, Fehlern, Anregungen
an Humni und an mich.


Gruss, Zook.

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



MorgenGrauen, "Down"-Zeit. (Zook, 31. Jan 2003, 19:16:31):
Hallo zusammen,

wie Ihr sicher mitbekommen habt, war unser MG leider etwas laenger down
als geplant. 

Die Ursache lag in einer ungluecklichen Verkettung verschiedener kleinerer
Fehler, die sich dann dazu ausgewachsen haben, dass keine Spielerobjekte
erzeugt werden konnten.

Aus diesem Grund kann ich Euch leider auch keinen _direkten_ Schuldigen
praesentieren. Bugmitverursacher duerfen mir aber trotzdem gerne ein
Bier ausgeben.

Dank an Humni, Muadib und Rikus fuer die Hilfe ab dem Zeitpunkt, wo 
zumindest Magier das Spiel betreten konnten. 

Sorry fuer die Unannehmlichkeiten und noch eine schoene Uptime!
Das MorgenGrauen sollte nun auch genauso stabil laufen wir vor dem
Reboot.

Gruss, Zook.

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



Reboot ... (Vanion, 31. Jan 2003, 21:40:56):
Hi,

Das Reboot eben kam fuer uns ebenso ueberraschend wie fuer euch. Keine Ahnung
was da war. Leider hat der Driver es vorgezogen, alle Beweise zu vernichten.
Wir sind aber dran und suchen weiter.

Ihr koennt also anfangen euch auszuruesten, mit dem ueblichen Risiko.

V*

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



Und Murphys Gesetz gilt doch! (Vanion,  1. Feb 2003, 11:09:09):
Wie der eine oder andere wohl festgestellt hat, gab es heute morgen um 0:50
noch einen Crash. Ursache hierfuer war ein Fehler im Compiler des Drivers, der
scheinbar nicht so einfach zu reproduzieren ist. Das Problem hat also nichts
mit der unguenstigen Verkettung von Ereignissen am fruehen gestrigen Abend zu
tun.

Hoffen wir jetzt also endlich auf eine lange Uptime.

V*

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



Ruestungswechsel(geschwindigkeit) (Zook,  1. Feb 2003, 17:14:11):
~#! on=Humni ot=1043853810 og=entwicklung
Liebe Mitbewohner des MorgenGrauens,

der Ruestungswechsel im Kampf wurde soeben ein wenig erschwert. Kombinationen
wie ,,ich kaempfe mit Eis- und Feuerhose gegen das Feueranfaellige Viech,
ziehe feuerhose aus, trage eishose, kniestoss, ziehe eishose aus, trage
feuerhose'' gehen nicht mehr (so einfach). Ausserhalb vom Kampf bleibt alles
wie gehabt, da aendert sich nichts. Man verliert im Kampf aber eine Aktion
bzw. seinen Angriff, wenn man die Ruestung wechselt.

Diese Regelung ist ein Beschluss der Erzmagier, konstruktive Kritik oder
Verbesserungsvorschlaege koennt ihr gerne an mich melden, ebenso wenn Probleme
auftreten (solche buggiger Natur).

Die Regelung betrifft simplerweise saemtliche Ausruestung, die ab jetzt
erzeugt wird. Was ihr also schon habt hat noch die alte Regelung. Wenn ihr
alle ,,jaja'' schreit koennen wir wegen Chancengleichheit auch gerne ueber
einen Reboot reden.

Humni

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



Neue Regionsmagier auf den Inseln (Zook, 17. Feb 2003, 20:58:06):
Um die Inseln kuemmern sich ab sofort neben Wargon auch noch
Mandragon und Twingi. Ich wuensche Euch viel Spass und Erfolg
mit dieser Region!

Gruss, Zook.

PS: Kommt eigentlich Boschante wieder? ;)

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



Region Inseln (Zook, 24. Feb 2003, 09:25:46):
Hallo zusammen,

Wargon ist, nachdem nun mit Mandragon und Twingi zwei junge Regionsmagier
gefunden wurden, von seinem Posten als Regionsmagier Inseln zurueckgetreten.

Vielen Dank fuer Dein Engagment und die Betreuung der Region, Wargon.

Gruss, Zook.

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



Seheranforderungen (Zook, 25. Feb 2003, 16:31:14):
Hallo zusammen,

1. Die Anforderungen aus Quests und Forscherpunkten werden zu einem
Bereich "Forschung" zusammengenommen. Die Seheranforderungen bestehen
nach wie vor aus 80% der aktuellen nicht optionalen Abenteuerpunkte sowie
der Anforderunge, sich besser als der Durchschnitt im MG auszukennen.

2. Von beiden Anforderungen muss man jeweils zwingend 80% erzielen. Fuer 
die verbleibenden Forscherpunkte und Abenteuerpunkte werden AP und FP
zusammengenommen (wobei 1 FP = 6 AP gilt). D.h. fuer die verbleibenden
Anforderungen aus Quests und Forschen kann jeder Spieler selbst ueberlegen,
ob er lieber noch eine weitere Quest spielt oder ob er lieber ein Gebiet
erforscht, in der Hoffnung, dort Forscherpunkte zu finden. 

3. Wegfallen tut die Anforderung, aus jeder Gruppe von Quests 80% der
Quests zu loesen. 

4. Ebenso faellt das Privileg alter Spieler weg, die 80% der AP zu ihrem
Einloggzeitraum benoetigten. Auch alte Spieler benoetigen 80% der derzeit
erreichbaren nicht optionalen Abenteuerpunkte.

Gruss, Zook.

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



Neue RM Fernwest (Zook,  2. Mar 2003, 22:38:42):
Hallo zusammen,

die Region Fernwest ist ja in der letzten Zeit etwas "unbeaufsichtigt" 
gewesen und es fehlte fuer Anregungen, Bugs o.ae. ein Ansprechpartner.
Das wird sich nun aendern, denn Jenandra hat sich bereit erklaert, die
Region zu betreuen. Ich wuensche Dir, Jenandra, viel Spass und Erfolg
mit Deiner Region und hoffe, Du wirst nicht gleich von vollen Repfiles
und Bugreports ueberschuettet!

Gruss, Zook.

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



Crash heute... (Zook, 11. Mar 2003, 16:54:43):
Heute ist das Mud wegen eines Stromausfalls gecrasht.

Zook.

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



Lag ... (Vanion, 23. Mar 2003, 19:54:41):
Wie dem einen oder anderen bereits aufgefallen sein wird, gibt es derzeit ein
relativ gleichmaessiges Hintergrundlag. 

Grund hierfuer ist ein Mudexterner Service der ausgetickt ist. Ich denke mal,
Hate kuemmert sich morgen darum. Bis dahin bitte ich um Geduld.

V*
PS: Bevor jemand fragt, ob ich nich etwas tun koennte. Ja, koennte ich. 
    Zum Beispiel versuchen, den Mudrechner zu crashen oder Pitfall bitten,
    hinzufahren und gegenzutreten.

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



Region Schattenwelt (Zook,  1. Apr 2003, 10:31:47):
Hallo zusammen,

nachdem ich mir mittlerweile elendig viel Arbeit aufgehalst habe und auch
RL etwas unter berufliche Anspannung stehe, versuche ich mal Teile des 
ganzen Wustest wieder los zu werden. Ein erster Schritt ist dabei die
Region Schattenwelt. Wie schon oft *blinzel Richtung Megaschmarrn* besprochen,
uebernimmt Grimmborn mit mir zusammen die Region und wird neben mir als
weiterer Regionsmagier fuer die Schattenwelt zustaendig sein. Wer also neue
Raeume, Konzept o.ae. hat, kann sie derzeit bei ihm und mir einreichen. Ich
werde mich mittelfristig dann aus der Region zurueckziehen, sobald er sich
eingearbeitet hat.

Gruss, Zook.

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



Ausschreibung: Regionsmagier Unterwelt (Zook,  2. Apr 2003, 14:59:37):
Hallo zusammen,

um die Wartung und die Pflege der Region Unterwelt zu verbessern, schreiben
wir einen weiteren Regionsmagierposten fuer diese Region aus.

Ich nehme Bewerbungen entgegen. Ihr koennt mir auch Vorschlaege zusenden,
falls Ihr der Meinung seid, der eine oder andere Magier waere fuer diese
Aufgabe besonders geeignet. 

Falls Ihr ein ambitionierte Jungmagier (Lvl. 20) seid oder einen solchen 
kennt, diese koennen auch vorgeschlagen werden, da wir es mit der 
Besetzung der Stelle nicht soooo eilig haben. Nur das Gesellenstueck des
betreffenden Magiers sollte schon halbwegs fertig sein.

Gruss, Zook.

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



Re: Region Schattenwelt (Zook,  2. Apr 2003, 19:05:00):
~#! rn=Zook rt=1049185907 rg=bekanntmachungen
~#! tid=1049185907
Wegen unueberwindlicher Konzept-Differenzen musste ich Grimmborn von seinen
Aufgaben als Regionsmagier Schattenwelt entbinden. 

Zook, weiter auf der Suche nach Nachfolgern.

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



Senden auf Intermud-Kanaelen (Vanion, 29. Apr 2003, 23:26:51):
Ab demnaechst (irgendwann zwischen Jetzt und Crash/Reboot) wird es Spielern,
die das Level 5 noch nicht erreicht haben, nicht mehr moeglich sein, auf
Intermud-Kanaelen zu senden.

V*

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



Einheitliche Regionsmagierlevel. (Zook,  2. Mai 2003, 13:27:48):
Alle Regionsmagier haben nun den einheitlichen Level von 45.

Gruss, Zook.

PS: Dies brachte Cymonk und Morgoth jeweils einen Magierlevel. Grats dazu! ;)

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



Regionsmagier Gebirge (Zook,  2. Mai 2003, 13:32:49):
Hallo,

da Ketos leider nicht mehr viel Zeit fuer das MorgenGrauen aufbringen 
kann, habe ich ihn aus dem Reigen der Gebirgs-Regionsmagier herausgenommen.

Vielen Dank fuer Dein Engagement und Deine Ideen in dieser Region, Ketos!

Gruss, Zook.

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



Probleme mit Mail (Vanion,  4. Mai 2003, 12:59:31):
Hallo,

Zurzeit gibt es einige Probleme mit dem Mailer, so dass Mail von aussen nicht
in das MorgenGrauen hineinkann. Seht es sportlich: Spam kommt auch nicht
durch. Kann auch sein, dass rausgehende Mail betroffen ist.

Wir bemuehen uns natuerlich, das Problem schnellstmoeglich in den Griff zu
bekommen.

V*

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



Re: Probleme mit Mail (Vanion,  4. Mai 2003, 19:25:20):
~#! rn=Vanion rt=1052045971 rg=bekanntmachungen
~#! tid=1052045971
Mail ins MG und raus funktioniert wieder. Mail die in den letzten Tagen
rausgegangen ist (z.B. wegen Weiterleitung) ist eventuell verloren gegangen.

V*

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



Re: Abschied ... (Zook, 21. Mai 2003, 21:17:41):
~#! rn=Ark rt=1053544351 rg=d.ebene
~#! tid=1053544351
Auch hier noch einmal: Vielen Dank fuer Dein Engagement in der Ebene und
die viele Zeit, die Du dort in die Wartung und Weiterentwicklung der 
Region gesteckt hast.

Dir, Ragnaroek wuensche ich ein geschicktest Haendchen in der Ebene und viele
gute Ideen, sowie auch Zeit und Mitarbeiter, sie umzusetzen.

Meine Wuensche erstrecken sich ebenso auf Cymonk als weiteren RM. :-))


Gruss, Zook.

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



Neuer Regionsmagier... (Zook, 22. Mai 2003, 12:19:10):
Hallo zusammen, 

wir haben einen neuen Regionsmagier gefunden: Nibel wird sich zukuenftig
mit Patryn um den Wald kuemmern und sich in die Geheimnisse des RM-Daseins
im MorgenGrauen einarbeiten. Ich wuensche Dir viel Spass und viel Erfolg 
bei Deiner neuen Aufgabe, Nibel!

Gruss, Zook.

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



Rassen-Balance (Zook,  5. Jun 2003, 19:58:56):
Hallo zusammen!

Nachdem der Posten eine ganze Weile unbesetzt geblieben ist, freue ich
mich, dass wir nun einen Erzmagier gefunden haben, der sich um die Pflege
der Rassen und um die Balance der Rassen kuemmern wird. Es ist: Ark.

Viel Spass und viel Erfolg!

Gruss, Zook.

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



Neuer Driver (Vanion, 20. Jun 2003, 16:09:52):
Hallo, 

Der neue Driver (Patchlevel 145) kann per FTP heruntergeladen werden.

Der Driver liegt wie immer im Verzeichnis /Software/GameDriver.

dc226d0258767806821a1061d463a1eb  driver.03.02.1@145-030620.tar.bz2
f8f9e67d6448fe6d04ead1bb4824e477  driver.03.02.1@145-030620.tgz

Unter driver.changelog/CHANGELOG.145 liegt eine Beschreibung, welche Probleme
im neuen Driver geloest worden sind.

Eine Windows-Version des Drivers wird wohl die kommenden Tage erstellt werden.

V*

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



Regionen gibt's, das gibt's gar nicht... (Zook, 25. Jun 2003, 10:39:18):
Die "Region" Seher---bekannt durch die gleichnahmigen Haeuser---wurde bisher
von Hate und Kirk als Regionsmagier betreut. Bisher deswegen, weil ich 
beide als Regionsmagier ausgetragen habe und vorlaeufig mich dort eingetragen
habe. 

Zook.

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



Befoerderung (Zook, 25. Jun 2003, 20:07:04):
Hallo zusammen,

ich gebe bekannt, dass Njala von nun an einen Magierlevel von 15
(Lehrling) inne hat. Diese Heraufstufung wurde noetig, da ihr
Charakter in frueheren Zeiten---von der damaligen Mud-Leitung
genehmigt---in einen Zustand versetzt wurde, der ein normales Spielen
nicht mehr moeglich macht. Aus Respekt vor den Gruenden und der
Entscheidung der damaligen EM+ haben wir uns entschlossen, diese
Aenderungen am Charakter zu belassen und dafuer in diesem Einzelfall
der Spielerin einen Magierlevel zu setzen. Damit sind folgende
Bedingungen verknuepft:

  1. Njala unterliegt damit den Bedigungen des Magiervertrags.

  2. Der Magier--Level 15 erlaubt keine Lesezugriffe (ausser der frei
     verfuegbaren Dokumentation) und beinhaltet auch nicht die
     Moeglichkeit, eigene Objekte in einem Heimverzeichnis zu
     programmieren.

  3. Eine weitergehende Befoerderung ist nicht vorgesehen.


Gruss, Zook.

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



Tilly (Zook,  9. Jul 2003, 10:33:39):
Hallo zusammen, 

da Tilly momentan wenig Zeit fuer das MorgenGrauen aufbringen kann, sind wir
mit ihm uebereingekommen, dass er von seinem Posten als Erzmagier zurueck
tritt. 

Ich bedanke mich ganz herzlich bei Tilly fuer die Arbeit und das Engagement,
das er fuer das MG aufgebracht hat und fuer die angenehme Zusammenarbeit.

Die Aufgaben Objekt-Balance und Heilungs-Balance, die bisher von mir
vertretungsweise betreut wurden, fuehre ich bis auf Weiteres weiter.

Gruss, Zook.

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



Erinnerungen... (Zook, 22. Jul 2003, 21:56:14):
Auf schmerzliche Weise haben wir in den letzten Monaten erfahren muessen,
dass auch Mudder nicht gefeit sind, aus dem Leben gerufen zu werden. Wir 
moechten ihrer auch im MorgenGrauen gedenken. Dafuer haben Anatol und Guard,
denen ich an dieser Stelle meinen Dank aussprechen moechte, eine Seite
auf unserer Website erstellt. 

Sie findet sich unter http://mg.mud.de/nachruf/

Gedacht ist die Seite so, dass neben Namen und Sterbedatum auch die 
Moeglichkeit besteht, einen Link auf eine individuelle Nachrufseite 
einzufuegen. Sprecht mich dazu im Bedarfsfall einfach an.

Gruss, Zook.

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



Neue Uptime (Muadib, 28. Jul 2003, 00:52:19):
hi,

so wie es scheint hat Armageddon einen Wunsch trotz angegebener Parameter sehr
direkt umgesetzt.
Betrachtet es als Herausforderung zu Partybeginn.
Wenn jemand jemanden lynchen will, seid ihr bei mir an der richtigen Stelle.
Haut los!

Muadib

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



caveat (Muadib, 28. Jul 2003, 01:12:52):
hi,
es hat sich zur unverhofften neuen Uptime doch so einiges geaendert, deshalb
wuerde ich nicht mit einer allzulangen Ueberlebenszeit dieser Uptime rechnen.
Nur als kleine Warnung bezueglich der gewaehlten Ausruestungspolitik!

Gruss 
Muadib

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



Kommende Woche ist nicht rebootfest (Vanion,  3. Aug 2003, 22:15:21):
Hallo,

wie ihr eventuell mitbekommen habt, gibt es nach dem Ende der langen Uptime
einige Merkwuerdigkeiten. Wir werden die kommende Woche mit Hochdruck daran
arbeiten, dass das MG wieder stabil ist. Bis dahin koennen wir aber keine
Garantie geben, dass wir nicht mal schnell booten muessen.

Natuerlich werden wir nicht oefter als noetig booten, durchaus kann es aber
sein, dass es oefter ist, als euch lieb ist :) Habt bitte Verstaendnis. Wenn
wir fertig sind, geben wir Entwarnung.

V*

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



Re: Kommende Woche ist nicht rebootfest (Vanion,  4. Aug 2003, 23:08:46):
~#! rn=Vanion rt=1059941721 rg=bekanntmachungen
~#! tid=1059941721
Hi,

Machen wir es mal konkreter: Im laufe des Donnerstag abend werden wir neu
booten muessen.

V*

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



Reboot am 05.08. (Vanion,  5. Aug 2003, 20:48:04):
Hi,

Heute gab es zwei Reboots. Zweck dieser Aktion war es, einige Driverbugs, die
bisher durch andere Bugs verdeckt waren zu eleminieren. Ausserdem gab es
einige groessere Aenderungen an der Mudlib, die nach dem ersten Versuch leider
nicht ganz klappten.

Im Moment scheint alles zu funktionieren und es sieht so aus, als ob diese
Uptime stabil werden koennte.

Danke an Mandragon und Patryn fuer die Unterstuetzung bei der
Umstellung/Fehlersuche.

V*
PS: Die Uptime findet allerdings hoffentlich ihr baldiges Ende weil das MG
    einen neuen Rechner bekommt. *huepf*

PPS:Ich versuche den neuen Driver in den naechsten Tagen rauszubringen.

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



Beurteilung von Gesellenstuecken (Zook,  6. Aug 2003, 14:24:55):
Hallo zusammen,

die bisher von mir und Vanion wahrgenommene Aufgabe der Beurteilgung von
Gesellenstuecken geht nun vollstaendig auf Vanion ueber. D.h. nach der
Beurteilung durch den Regionsmagier und Twingi entscheidet Vanion nach
Durchsicht, ob das Gesellenstueck ausreichend ist oder nicht. In der Anfangs-
zeit stehe ich ihm beratend zur Verfuegung.

Konzeptdiskussionen koennen nun auch mit ihm ausgefochten werden. :)

Gruss, Zook.

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



Re: Reboot am 05.08. (Rikus,  6. Aug 2003, 16:34:01):
~#! rn=Vanion rt=1060109284 rg=bekanntmachungen
~#! tid=1060109284
Hi,

wegen eines Fehlers an den Materialien, der sich beim gestrigen Reboot
einschlich und auf den mich vorhin Lacri hinwies, wird es heute gegen
17 Uhr nen neuen Reboot geben. Der aktuelle Driver und die Lib scheinen
bisher sehr gut zu laufen, einer langen Uptime sollte dann nur der
Rechnerwechsel im Weg stehen :)

Rikus

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



Driver 03.02.1 Patchlevel 146 (Vanion,  7. Aug 2003, 23:08:48):
Hallo, 

da der 145er Patch des Drivers noch einige Schwaechen hatte und aeltere Bugs
zu Tage foerderte, haben wir einen weiteren Patch nachgeschoben.

Die Sourcen des Drivers liegen wie immer im oeffentlichen FTP-Verzeichnis
unter /Software/GameDriver/.

5cc357f5db66dbd3471ae5cf9c6e76b0  driver.03.02.1@146-030804.tar.bz2
7b67947b86b9fb7263b777b495489a27  driver.03.02.1@146-030804.tgz

Im Unterverzeichnis driver.changelog befindet sich die aktuelle Version des
Changelogs.

In den naechsten Tagen wird es auch eine Windows-Version des Drivers geben.

V*

PS: Danke an Patryn und Mandragon fuer die schnellen Patches.

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



MudLib 3.2.14 (Vanion,  8. Aug 2003, 20:05:27):
Hallo,

nachdem sich in den letzten Tagen/Wochen doch einiges an der Mudlib getan hat,
wird es mal wieder Zeit fuer ein neues Release. 

e6ec485af85a20c3a8509f7275d10794  /Software/MudLib/MorgenGrauen-3.2.14.tar.gz

Viel Spass beim basteln.

V*

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



Re: Driver 03.02.1 Patchlevel 146 (Rikus, 12. Aug 2003, 20:27:22):
~#! rn=Vanion rt=1060290528 rg=bekanntmachungen
~#! tid=1060290528
... einen Windows-Port gibt es nun auch. Wie immer unter
/Software/GameDriver/WinTCPIP zu finden. Nennt sich driver146_030804.exe und
ist mit beiliegender DLL zu nutzen. Vor Fragen ERST die readme.txt in dem
Verzeichnis lesen!

Gruss, Rikus

PS: wer Entpackprobleme der Mudlib unter Win hat, bitte nicht mich fragen,
sondern einen sinnvollen Unzipper!=Winzip nutzen.

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



Armageddon ... (Vanion, 13. Aug 2003, 09:11:45):
... ist wohl seit neuestem in der Gewerkschaft. Er meinte eben sowas wie:
"Wenn es keine gekuehlten Getraenke gibt, is Schluss mit Weltzerstoeren." Wir
haben also heute noch mal Glueck gehabt.

Trotzdem haben wir noch ein kleines Problem, auch wenn wir uns entschlossen
haben, es nicht durch ein Reboot zu loesen.

Falls ihr feststellt, dass ihr irgendwo nicht richtig heilt, oder eine
Heilstelle nich funktioniert, bitte wendet euch an einen Magier eures
Vertrauens. Gleiches gilt im Prinzip, wenn ein fiese, boese Falle ploetzlich
nun keine LP/MP mehr abzieht. 

Das merkwuerdige Verhalten ist Folge einer internen Umstellung. Es gibt zum
Teil noch aeltere Objekte (moeglicherweise auch Du!), die von der Umstellung
nicht betroffen sind. Die buggen nun, auch wenn sich das nicht in einem FiRZG
bemerkbar macht.

V*

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



Renew beim Einloggen Netztoter (Rikus, 13. Aug 2003, 11:47:21):
Hi,
durch groessere Umstellungen in der Lib sind Spieler, die sich vor 2 Tagen
einloggten, nicht kompatibel mit dem aktuellen Stand :) Entsprechende Spieler
werden nun beim Aufwachen aus dem Netztotenraum neu geladen, bitte nicht
wundern!

Danke, Rikus

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



Weiterer Regionsmagier fuer die Region "Seher" (Zook, 15. Aug 2003, 13:29:36):
Mandragon wurde zum weiteren Regionsmagier fuer die Region "Seher" berufen.
Ich wuensche ihm viel Erfolg und viel Spass mit seiner neuen Region. :)

Zook.

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



Crash am 21.08.03 (Vanion, 21. Aug 2003, 08:36:52):
Hallo,

Wie ihr vermutlich schon mitbekommen habt, gab es heute morgen einen Crash.
Ich kann schonmal soviel sagen, dass es im Driver einen Segmentation fault
gab.

Das heisst, es liegt nicht daran, dass Armageddon aus den Ferien zurueck ist
oder endlich mal jemand "shutdown -h now" ausprobieren wollte.

Was genau passiert ist, werden naehere Untersuchungen der Core ergeben, hoff
ich jedenfalls.

Ich geh erstmal nicht von einem weiteren Reboot aus. Falls ihr irgendwelche
Unregelmaessigkeiten sehr, gebt bitte Laut :)

V*

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



Re: Crash am 21.08.03 (Vanion, 21. Aug 2003, 18:15:44):
~#! rn=Vanion rt=1061447812 rg=bekanntmachungen
~#! tid=1061447812
Ursache des Crashs war, dass die Platte, auf der das Swapfile (da werden
momentan nicht benoetigte Objekte zwischengelagert) liegt, vollgelaufen 
ist. Das MG hat sich daraufhin selbst rebootet.

Mit dem neuen Rechner sollte das Problem einer vollen Platte weiter in die
Zukunft geschoben werden. Im Moment kann ich nur sagen, die Festplatten ab
jetzt intensiver im Auge haben werden, um zumindest vorgewarnt zu sein.

V*

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



Reboot um Mitternacht. (Vanion, 21. Aug 2003, 23:47:51):
Hi,

Leider ist mir vor geraumer Zeit ein Bug durch die Tastatur ins MG
geschlichen. Dieser Kaefer laesst im Moment einige NPC ziemlich zahnlos
dastehen. Der Kaefer ist fort. Um nun noch seine Brut auszumaerzen ist ein
Reboot noetig.

Tut mir leid, dass das gemacht werden muss, insbesonderer dass es direkt nach
meiner Entwarnung von heut morgen passiert. Wenn es euch troestet: Der Reboot
hat nix mit dem Crash heut morgen zu tun.

V*

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



Reboot (Humni, 27. Aug 2003, 13:16:11):
Huhu,

offenbar gab es einen Reboot des Rechners. Ursache kennen wir noch keine, wir
melden uns, sobald das ganze bekannt wird.

Humni

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



Re: Reboot (Vanion, 27. Aug 2003, 19:44:25):
~#! rn=Humni rt=1061982971 rg=bekanntmachungen
~#! tid=1061982971
Tja, was die Amerikaner koennen, kann Berlin schon lange :)

Es gab einen kurzen Stromausfall in Berlin. Der hat den Rechner gecrasht.

V*

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



Neues von der Heilungs-Balance (Zook,  9. Sep 2003, 19:21:36):
Hallo zusammen,

diesmal melde ich mich vom Schreibtisch der Heilungsbalance aus. Die
Heilungs-Balance ist eine recht wichtige Institution, da das Heilen,
Tanken, aber auch das Enttanken sehr grossen Einfluss auf die
metzelnden Spieler haben.

Ich der Uebergangszeit, in der ich diese Aufgabe von Tilly uebernommen
habe, sind einige Tankstellen beantragt und genehmigt worden, ebenso
sind einige aeltere Stellen von mir angepasst oder ueberarbeitet
worden.

Trotzdem lagen mir ein paar Sachen auf dem Herzen. Etwas merkwuerdig
beruehrt war ich von der Wirkungsweise der Klos hier im MorgenGrauen
und Arbeit bekam ich, als ein Magier fuer sein Gebiet ebenso ein Klo
beantragte. Hier war wohl irgendwie eine Aenderung und eine
Verknuepfung dieser Enttankstellen noetig. Ein anderes Thema waren
mobile Tanken, so etwas wie Essen und Trinken, das einen heilen
kann. Hier gab es noch keine ausgefeilten Regeln, welche es
ermoeglicht haetten, alle Objekte nach einheitlichen Kriterien zu
bewerten. Hier war also Regelbedarf. Als weitere grosse Aufgabe stand
eine Reevaluierung bisheriger Tanken auf dem Plan.

Alles Aufgaben, die sehr viel Zeit und Muehen benoetigen.

Zu einigen der Punkte haben wir als EM+ mittlerweile ein paar Konzepte
entwickelt. Das taten wir nicht alleine, sondern Gabylon hat uns
dankenswerter Weise bei der Ausarbeitung unterstuetzt. Er wird diese
Aenderungen, Anpassungen auch begleiten, soll heissen: Ich gebe meinen
Posten als Heilungs-Balance-Magier an ihn ab und er wird ab sofort
fuer diese Aufgabe hier im MorgenGrauen zustaendig sein. Um seine
Machtfuelle ausleben zu koennen ;), wird er zum Weisen
befoerdert. Ueber die anstehenden Aenderungen wird er Euch dann
informieren.

Ich wuensche Dir, Gabylon, viel Spass und Freude an Deiner neuen
Aufgabe und bitte Euch alle, ob Spieler oder Magier, ihn dabei zu
unterstuetzen. Fuer Hinweise, wo noch etwas im Argen liegt, ist er
sicherlich dankbar.


Gruss, Zook.


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



Regionsmagier fuer Region "Inseln" gesucht (Zook,  2. Okt 2003, 19:03:14):
Hallo zusammen,

Mandragon wird sich in kurzer Zeit auf eigenen Wunsch als Regionsmagier aus
der Region Inseln zurueckziehen. Damit die Arbeit nicht allein von
Twingi geschultert werden muss, suchen wir ab sofort einen Nachfolger, eine
Nachfolgerin. Wer Interesse an der Aufgabe hat, moege sich doch bitte per
Email bei mir melden.

Bei Dir Mandragon moechte ich mich fuer die geleistete Arbeit und Dein
Engagement ganz herzlich bedanken.

Gruss, Zook.

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



Kampfstaebe (Rikus,  6. Okt 2003, 15:20:41):
Hi,
durch den unerwarteten Neustart des MG konnte ich nun den neuen Waffentyp
Kampfstab aktivieren, den Humni und ich einbauten.
Natuerlich wird die aktuelle Anzahl verfuegbarer Staebe Null sein, aber
vielleicht finden sich ja bald Magier, die sowas anschliessen :)

Rikus

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



Reboot heute (Hate,  6. Okt 2003, 17:36:52):
Wir hatten heute ca 1/2h einen Stromausfall. Tut mir leid.

Hate.

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



Re: Regionsmagier fuer Region "Inseln" gesucht (Zook,  6. Okt 2003, 22:06:26):
~#! rn=Zook rt=1065114194 rg=bekanntmachungen
~#! tid=1065114194
Die kurze Zeit ist erreicht und Mandragon ist von seinen Aufgaben als
Regionsmagier "Inseln" und "Seher" zurueckgetreten. Vielen Dank fuer die
Betreuung der Regionen, Mandragon! :)

Zook.

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



Die Weisen kommen.... (Zook,  8. Okt 2003, 10:39:34):
Hallo zusammen,

ich habe eine freudige Mitteilung fuer Euch. Wir haben Feigling zum
Weisen ernannt. Er ist auf diesem Posten fuer das Beheben von Fehlern
in Gebieten zustaendig. Falls Ihr also ueber Fehler in Gebieten, die
nicht mehr gewartet werden, stolpert oder ueber Fehler, die ganz
dringend behoben werden muessen, so wendet Euch vertrauensvoll (per
teile-mit oder per Mail) an ihn.

Ich wuensche Dir, Feigling, viel Erfolg und viel Spass bei dieser
neuen Aufgabe.

Gruss, Zook.

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



Regionsmagier schwemmen herein... (Zook, 15. Okt 2003, 16:27:56):
Die Luecke in der Region "Inseln" koennen wir erfreulicherweise nun schon
wieder schliessen und zwar mit "altgedienten" Magiern. Miril und Shakedbeer
hatten ihr Interesse an der Region bekundet und wir haben uns entschlossen,
beide neben Twingi zu weiteren Regionsmagiern fuer die Region "Inseln" zu
berufen. Damit ist die Region, denke ich, ueberaus ueppig mit RMs gesegnet.

Ich wuensche Euch dreien viel Spass und Erfolg bei der gemeinsamen Arbeit
an der Region!

Zook.

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



Erzmagier fuer Objekt-Balance (Zook, 23. Okt 2003, 16:26:40):
Hallo zusammen,

nachdem ich nun einige Zeit dieses Amt kommissarisch uebernommen habe, wird
es wieder Zeit, von diesem Amt Abschied zu nehmen, denn wir haben einen 
Nachfolger gefunden: Nonne wird sich ab sofort um diese wichtige Aufgabe
im MorgenGrauen kuemmern. Herzlichen Glueckwunsch, Nonne! 

Dem ganzen Balance-Team wuensche ich viel Spass bei den ueblichen 4As der
Balance-Arbeit und auf dass Ihr das Geheule und Gejammer des Rest-Muds gut
ertragen moeget.

Gruss, Zook.

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



Neues Mudlib-Release (V2) (Vanion, 11. Dez 2003, 22:13:18):

Moin,

Wir haben die letzten Tage an einem neuen Release der Mudlib gestrickt.
Herunterladen koennt ihr die Files wie immer per anonymous ftp aus dem
Verzeichnis "/Software/MudLib". Das kann als gzip gepacktes tar-Archiv
gezogen werden (das sollte selbst winzip entpacken koennen) oder fuer
Bandbreite-Bewusste auch als bzip-Archiv.

 9cf261c1a1fc03a96c719553014a48b0  MorgenGrauen-3.2.15.tar.bz2
 35d81daf351fef0c28ba02967cbb5571  MorgenGrauen-3.2.15.tar.gz

Falls Problemen/Anregungen zum Release, wendet euch gern an mich, an
Rikus oder einen anderen Erzmagier eures Vertrauens.

Viel Spass beim Stoebern,
V*

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



Re: Neues Mudlib-Release (V2) (Vanion, 13. Dez 2003, 13:32:40):
~#! rn=Vanion rt=1071177198 rg=bekanntmachungen
~#! tid=1071177198
*Hust*

Da war er wieder, der Fehlerteufel. Eine Kleinigkeit ist mir beim letzten
Release untergeschnitten. Ok, zwei. Hier die berichtigte Version.

 e436d47fb93bc6b760437bdc8bb4280a  MorgenGrauen-3.2.16.tar.bz2
 493c4b4bc0012aef71ef7eff3fa228a9  MorgenGrauen-3.2.16.tar.gz

Falls noch was ist, immer raus damit. Wir haben ja noch ein paar Zahlen fuer
die Versionsnummern. :)

V*

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



Mailprobleme (Vanion, 28. Dez 2003, 00:16:53):
Mailverkehr zwischen Mud und Restderwelt tut nicht. Die Mails scheinen einfach
so im Nirvana zu verschwinden. Wir arbeiten daran.

V*

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



Re: Mailprobleme (Vanion, 28. Dez 2003, 13:11:38):
~#! rn=Vanion rt=1072567013 rg=bekanntmachungen
~#! tid=1072567013
Mail nach aussen sollte wieder funktionieren. Falls erneut Probleme auftreten,
wendet euch bitte an einen Erzmagier eures Vertrauens :)

V*

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



Aenderung Seheranforderung (kosmetisch) (Zook,  7. Jan 2004, 12:12:00):
Eine eher kosmetische Aenderung gibt es bei den Seheranforderungen: Da es
derzeit de fakto nicht moeglich ist, mit Level 20 Seher zu werden, haben wir
aus rein optischen Gruenden den Mindestlevel auf 30 angehoben.

Gruss, Zook.

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



Mudlib-Release V3.2.17 (Vanion,  3. Feb 2004, 18:08:27):
Hi Leute,

Ich habe gerade das aktuelle Release zum Download bereitgestellt. Es enthaelt
hauptsaechlich die Aenderung am AddCmd() - vermutlich aber auch noch einige
andere kleine Fixes. 

Ein Update ist fuer all die jenigen sinnvoll, die die neuen Features nutzen
wollen.

Die Files finden sich wie immer in "/Software/MudLib" im anonymen FTP.

 c83de523acccc33d2190694ed85ef12f  MorgenGrauen-3.2.17.tar.bz2
 5fed26e8c0cc719e14d84653143acbc0  MorgenGrauen-3.2.17.tar.gz

Viel Spass damit,
V*

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



Regionsmagier-Rochade (Zook, 14. Feb 2004, 14:51:21):
Hallo zusammen,

damit die Region Unterwelt wieder einen aktiven Regionsmagier erhaelt, hat
sich Patryn entschlossen, vom lauschigen Wald in die Tiefen der Unterwelt 
zu wechseln und sich dort um die Pflege der Region zu kuemmern. 

Vielen Dank, Patryn, fuer Deine Arbeit im Wald und viel Erfolg bei Deiner
neuen Aufgabe.

Zook.

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



Die Reihen der Regionsmagier lichten sich... (Zook, 24. Feb 2004, 13:05:19):
Hallo zusammen,

da beide derzeit nicht genuegend Zeit fuer das MorgenGrauen aufbringen
koennen, haben wir Tsunami und Cymonk von ihren Regionsmagier-Posten
entbunden. Herzlichen Dank Euch beiden fuer Eure Arbeit als RM! 

Zook.

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



Ausschreibung... (Zook,  1. Mar 2004, 18:33:24):

Hallo zusammen, insbesondere an ambitionierte Magier!

Nachdem sich die Reihen der Regionsmagier gelichtet haben, moechten wir
ambitionierten Magiern die Gelegenheit bieten, sich auf diese Plaetze
zu bewerben. Schreibt Eure Bewerbung mit ein paar erlaeuternden Saetzen,
warum Ihr fuer die Aufgabe geeignet seid und welche Region Euch reizen
wuerde, an "erzmagier".

Gruss, Zook.

PS: Einsendeschluss gibt es keinen; wir entscheiden dann und wenn sowieso
voellig willkuerlich... ;))

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



Re: Mailprobleme (Vanion,  3. Mar 2004, 22:53:14):
~#! rn=Vanion rt=1072567013 rg=bekanntmachungen
~#! tid=1072567013
Der Mailer tut mal wieder nich so, wie er soll. Wir arbeiten an einer Loesung.
Ich hoff, dass das Mailsystem auf dem neuen Rechner stabiler laufen wird.

V*

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



Re: Re: Mailprobleme (Vanion,  4. Mar 2004, 21:39:07):
~#! rn=Vanion rt=1078350794 rg=bekanntmachungen
~#! tid=1072567013
Da ich grad Spam gekriegt habe, geht der Mailer wohl wieder. Schuld war eine
vollgelaufene Festplatte.

Spielt schoen,
V*

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



RM Inseln (Zook, 12. Mar 2004, 08:07:58):
Hallo zusammen, das RL hat unerbittlich zugeschlagen und nun hat Shaky
leider nicht mehr genuegend Zeit fuer seinen Regionsmagierposten. Er ist 
aus diesem Grund von seiner RM-Stelle zurueckgetreten. Fuer sein wiederholtes
RM-Engagement danke ich ihm ganz herzlich! 

Gruss, Zook.

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



Mudlib-Release V3.2.18 (Vanion, 16. Mar 2004, 17:41:50):
Moin,

Ich habe gerade das aktuelle Release zum Download bereitgestellt. Es enthaelt
einige kleinere Fixes und einige Modifikationen im living/put_and_get.c.
Ausserdem gibt es eine neue Funktion: living/combat->QueryPacify().

Ein Update ist nur dann notwendig/sinnvoll, wenn die neuen Features auch
genutzt werden.

 3a42323bef25b4bc8c363d1082270b31  MorgenGrauen-3.2.18.tar.bz2
 4b75ecda8bcd1befa58faa79cec3d69d  MorgenGrauen-3.2.18.tar.gz

Die Files finden sich wie immer in "/Software/MudLib" im anonymen FTP.

Viel Spass mit dem Release,
V*

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



Dokumentation (Vanion, 18. Mar 2004, 21:21:01):
Hallo,

wir konnten Gloinson dafuer gewinnen, sich ein wenig mit der MUD-Dokumentation
zu beschaeftigen. Damit er diese Aufgabe wahrnehmen kann, hab ich ihn zum
Hilfsmagier befoerdert.

Ich wuensche Dir viel Spass und Erfolg bei der neuen Aufgabe, Gloinson.

V*
PS: Die MPA haeng ich Dir schon auch noch um den Hals :)

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



reboot (Muadib,  1. Apr 2004, 09:02:06):
Hi,

wie bestimmt schon einige gemerkt haben ist momentan das Hintergrundlag recht
hoch, aus diesem Grund und einigen bereits vorgenommenen Aenderungen die erst
nach Reboot richtig wirksam werden, welche wurde immer wieder im Lauf der Up
gepostet, naehere Auskunft geben aber gerne Vanion und Rikus, steht ein Reboot
an.

Desweiteren gibt es eine kleine Aenderung bei den FPs. 
Die bisherigen FPs sind von der Schwierigkeit sie zu finden recht inhomogen.
Dies wurde bisher noch nicht beruecksichtigt. 
Nach Reboot werden die FPs in Schwierigkeitsgrade von 1-3, leicht ueber mittel
zu schwer, unterschieden.
Fuer einen gefundenen FP wird es dann folgendermassen Stufenpunkte geben:
- fuer 1 ein drittel der bisherigen stufenpunkte
- fuer 2 die haelfte der bisherigen stufenpunkte
- fuer 3 die bisherigen stufenpunkte

Nach Reboot werden die Savefiles skriptbasiert umgestellt. Gnadenregelungen
fuer Altspieler gibt es nicht.

Flame on

Muadib

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



Re: reboot (Muadib,  1. Apr 2004, 16:00:44):
~#! rn=Muadib rt=1080802926 rg=bekanntmachungen
~#! tid=1080802926
bloeder termin heute zugegeben.
ich hab mal den arma auf morgen verschoben ihn vor der unberechtigten
laecherlichkeit zu retten

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



Re: Re: reboot (Muadib,  2. Apr 2004, 10:37:51):
~#! rn=Muadib rt=1080828044 rg=bekanntmachungen
~#! tid=1080802926
okok,

die laecherlichkeit war doch berechtigt.

fuer die die es ganz klar brauchen:

es handelte sich bei reboot und fpaenderung um einen aprilscherz, wobei
letzteres waere doch eigentlich ne ganz sinnvolle aenderung oder?

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



Umzug MG (Hate,  6. Apr 2004, 10:52:39):
Hallo liebe Spiele und Magier :-)

im laufe dieser Woche werde ich das MG auf den neuen Rechner umziehen. Leider
kann ich nicht genau sagen, wann das passieren wird, so dass ein reboot
moeglicherweise erst einige Stunden vorher angekuendigt wird. Das wichtigste
Detail bei der Umstellung ist, dass sich die IP Adresse fuer das MUD aendert.
Ich werde den DNS Server umstellen, aber die Erfahrung zeigt, dass das bis zu
zwei Tage dauern kann, bis die neue Adresse ueberall bekannt ist. Eventuell
gibt es fuer die Zwischenzeit eine Umleitung von der alten IP Adresse aus.
Desweiteren koennte es sein, dass manche Services, wie WWW oder FTP nicht
vollstaendig funktionstuechtig sind.

Also, macht euch auf was gefasst.

Hate.

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



Neue RM in der Ebene (Zook,  6. Apr 2004, 22:58:52):
Hallo zusammen,

wir haben zur Verstaerkung in der Region Ebene neue Regionsmagier gefunden.
Ab sofort werden Arathorn und Miril in der Region den Besen schwingen und 
fuer Spieler und Magier zur Verfuegung stehen. Euch beiden viel Erfolg!

Gruss, Zook.

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



Umzug heute ... (Vanion,  7. Apr 2004, 23:21:40):
Hallo Leute,

heute ist das MG auf den neuen Rechner gezogen. Dabei gab es ein paar kleinere
Komplikationen, aber eigentlich lief alles recht glatt.

Es wird in den naechsten Tagen sicher noch einiges an Arbeit auf uns zu
kommen. FTP funktioniert noch nicht und auch die Webseite ist noch nicht
wieder vollstaendig online. Das Mus selbst scheint aber stabil zu laufen und
es ist kein weiteres Reboot geplant.

Ich wuensch euch eine von nun an lagfreiere Zeit im MorgenGrauen und bedanke
mich hiermit bei Hate, der heut ziemlich geschuftet hat.

V*

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



Re: Umzug heute ... (Vanion, 17. Apr 2004, 20:34:29):
~#! rn=Vanion rt=1081372900 rg=bekanntmachungen
~#! tid=1081372900
So,

nach einigen Tagen ohne, laeuft jetzt auch wieder FTP auf dem MG-Rechner.
Danke an Hate, Muadib und Ogo fuer die Stunden, die sie darin investiert
haben, alles wieder zum laufen zu bringen.

V*

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



Probleme mit dem Webserver (Vanion,  7. Jun 2004, 11:26:37):
Hallo,

Wie einige von euch mitbekommen haben, gibt es nach dem Umzug des MorgenGrauen
auf einen neuen Rechner immer noch Probleme mit dem WWW. Diese sind nicht so
einfach zu beheben, wie bisher gedacht. Mit dem Korrigieren einiger Links ist
es nicht getan.

Wir sind derzeit dabei, neue Loesungen fuer das Content Management (ich liebe
buzzwords in Bekanntmachungen) zu ueberlegen und zu testen. Dies wird aber
noch eine Weile dauern.

Wir bitten daher um noch etwas Geduld.

V*

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



Heilungs-Balance (Zook,  8. Jun 2004, 11:18:36):
Hallo zusammen,

bisher stand ich (obwohl ich gerade festgestellt habe, dass ich das gar nicht
in die Hilfeseite geschrieben habe) Gabylon bei der Wahrnehmung seiner 
Heilungs-Balance-Aufgaben als Erzmagier fuer Rueckfragen, Problemfaelle
etc. zur Verfuegung. Diese Aufgabe geht nun auf Nonne ueber, der damit einen
Balance-Faden mehr in seinen Haenden haelt. Ueber etwaige weitere 
Aenderungen werden Euch die beiden dann direkt informieren.

Gruss, Zook.

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



Reboot 28.6.2004 18:30 - ca 23:00 (Hate, 23. Jun 2004, 11:10:44):
Am 28.6.2004 (Montag) wird es in unserem Serverraum zu einer Umstellung der
Stromversorgung kommen, die leider (trotz USV) ein Abschalten des Servers
notwendig macht. Die USV ist fuer kurzzeitige Unterbrechungen des Hauptstroms
da, kann aber keine 5 Stunden durchhalten.

Hate.

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



reboot 29.06.2004 (Muadib, 26. Jun 2004, 17:48:49):
hi,

nach dem reboot am 28. werden wir die gelegenheit wahrnehmen und einzwei
aenderungen einbauen. im verlaufe dessen wird es dienstag abend zu einem
erneuten reboot kommen.

muadib

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



Attribute (Muadib, 29. Jun 2004, 19:45:59):
Hi,

Attributsveraenderungen ueber Waffen/Ruestungen und andere Objekte haben nun
eine gegenseitige Abhaengigkeit.
Daher kann es zu Attributanhebungen ueber 4 kommen, aber auch zu nicht
wirkenden Aenderungen.

Bitte probiert nach Herzenslust aus und haltet Euch nicht mit Kommentaren
zurueck :)

Gruss

Muadib

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



Mudlib-Release (Vanion, 29. Jun 2004, 22:34:22):
Bevor die Fragen sich haeufen,

Ja, es wird demnaechst ein Mudlibrelease geben, die ganzen Neuerungen werden
zur Verfuegung gestellt werden. Gebt uns etwas Zeit, die Aenderungen zu testen
und Bugs rauszuholen und eventuell noch ein zwei andere Sachen mit
einzupflegen.

Gruesse,
V*

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



NPC-Balance (Zook, 16. Jul 2004, 12:35:14):
Hallo zusammen,

vielen Dank fuer die Eingaben und Diskussionen zu den Aufgaben einer
NPC-Balance. Wir Erzmagier haben die verschiedenen Meinungen und Ideen
gelesen und bewertet und sind nun zu folgendem Fazit gekommen:

Eine institutionalisierte NPC-Balance wollen wir forthin nicht 
aufrecht erhalten. Der fuer die Erstkill-Stupse zustaendige 
Erzmagier wird weiterhin fuer das Eintragen der Stupse zustaendig sein
und dabei natuerlich auch Vorstellungen ueber einen sinnvoll 
ausbalancierten NPC hinsichtlich der Stupse artikulieren.

Beschwerden von Spielern (Magiern) ueber unangemessene NPCs sollen 
zukuenftig ueber den Weg des Regionsmagiers bzw. direkt ueber mich
kanalisiert werden. Anregungen und Anmerkungen werden von den 
zustaendigen Magiern sicher gerne entgegen genommen.

Des Weiteren wird zukuenftig Muadib fuer das Eintragen der 
Erstkill-Stupse zustaendig sein.

Gruss, Zook.

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



Mud-Uptime (Zook, 27. Jul 2004, 16:37:23):
Liebe Mitspieler, aus bisher noch nicht bekannten Gruenden hat unser 
schoener Rechner heute Nachmittag einfach mal den Dienst eingestellt, so 
dass ein Reboot noetig wurde. An der Fehlersuche wird gearbeitet.

Wir nutzen diesen Reboot dazu, etwaige noch noetige Aenderungen im MG 
einzuspielen, es ist daher mit Spielunterbrechungen bzw. Reboots zu 
rechnen. (Naeheres vom einbauenden EM, der sich damit dann auch zum
"EM-der-Woche" bewirbt.)

Entwarnung erfolgt an dieser Stelle.

Zook.

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



Re: Mud-Uptime (Zook, 29. Jul 2004, 23:17:52):
~#! rn=Zook rt=1090939043 rg=bekanntmachungen
~#! tid=1090939043
Ich trage gerne die Nachricht von Muadib zu Euch, dass wir nun eine 
Entwarnung geben koennen. Das MG sollte nun also stabil laufen.

Zook.

PS: Bald gibt es wieder einen "Erzmagier-der-Woche....ach was, des MONATS!" ;)

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



Umzugsmeister (Zook,  9. Aug 2004, 12:15:49):
Hallo zusammen, ich gebe bekannt, dass Arathorn fuer einige Umzugsarbeiten
in den von ihm betreuten Regionen/Gebieten einen zusaetzlichen Umzugswagen
(sprich zusaetzliche Schreibrechte) zur Verfuegung gestellt bekommt. Fuer die
Dauer der Umzuege habe ich Arathorn zum Weisen [W], Magierlevel 55, 
befoerdert.

Zook.

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



Re: Umzugsmeister (Zook, 12. Sep 2004, 23:11:25):
~#! rn=Zook rt=1092046549 rg=bekanntmachungen
~#! tid=1092046549
Ich moechte mich sehr herzlich bei Arathorn fuer seine Umzugsarbeiten 
bedanken! Umzuege machen Arbeit und fuehren zu einigem Unmut, wenn
Fehler o.ae. auftreten. Insofern herzlichen Dank fuer diese Arbeit!

Zook.

PS: Damit endet auch Arathorn [W]eisendasein, Ihr muesst Euch also fuer
etwaige Schreibrechte nun wieder an andere Magier wenden.


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



Crash (Vanion, 16. Sep 2004, 07:22:56):
Ursache des Crashs heut Nacht war ein Servercrash/-reboot. Naeheres spaeter.

Gruesse, V*

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



Unterbrechung wegen Stromabschaltung am 13.10. (Hate, 11. Okt 2004, 18:36:37):
Wegen einer Stromabschaltung muss ich leider die Rechner, u.a. MG,
herunterfahren. Am Mittwoch, den 13.10.2004, zwischen ca. 17:15 und 19:00


Hate.


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



Mudlib und GameDriver (Vanion, 13. Okt 2004, 22:10:53):
Moin Leute,

Mit dem heutigen Reboot ist ein neuer GameDriver geladen worden. Es gab 
zwarein paar Startschwierigkeiten, die durch die Aenderung einiger Ver-
zeichnisnamen entstanden sind, aber soweit ich momentan erkennen kann, 
laeuft der neue Driver stabil.

Die Sourcen des neuen Drivers sind wie immer im FTP-Verzeichnis des Muds
unter Software/GameDriver zu finden:
  0ba410a3417c68a7a3d92b997106366b  driver.03.02.1@147-041013.tar.bz2
  28be48a3f91b641d2d86230adf52fa8c  driver.03.02.1@147-041013.tgz
  f26681306afa0d47e8f4d8c1c86210e4  patch.03.02.1@146-147.diff.gz
    
Diesmal wurde fuer die Leute mit duenner Leitung ein Patchfile beigelegt, 
der folgendermassen eingepflegt werden kann:
  'cd driver.146; patch -p1 < pfad/patch.03.02.1@146-147.diff.gz'

Alle Aenderungen sind im beiliegenden File CHANGELOG dokumentiert. Beim 
Compilieren aber bitte besonders beachten:

1.) Der neue Driver benutzt nun pcre fuer die Auswertung regulaerer 
    Ausdruecke, daher muss die PCRE-Bibliothek installiert sein.
2.) Der Driver geht davon aus, dass er in /home/mud/bin installiert 
    wird und dass die Mudlib in /home/mud/mudlib liegt, nicht wie 
    bisher in /home/mud/mud/...

Wie immer wird schnellstmoeglich eine unter Windows lauffaehige Version 
des Drivers nachgeliefert.

Da es in der Zwischenzeit auch die eine oder andere Lib-Aenderung gegeben
hat, gibt es gleich auch noch ein Mudlib-Release. Es findet sich im Ver-
zeichnis Software/MudLib:
  18027f39408834e059b810e0fe9090a5  MorgenGrauen-3.2.19.tar.bz2
  b13bf95e98d7f3e2bf71c7186485d275  MorgenGrauen-3.2.19.tar.gz

Mein Dank gilt dem Driver-Team fuer die prima Unterstuetzung, insbesondere
aber Ogo, aus dessen Feder (Tastatur) die meisten der Fixes dieses Driver-
Releases stammen.

V*
PS: Wenn Ihr Merkwuerdigkeiten/Fehler/Probleme findet, meldet euch bitte
    bei mir. Fehler die wir nicht kennen, koennen wir auch nicht fixen.

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



Re: Mudlib und GameDriver (Vanion, 13. Okt 2004, 22:29:20):
~#! rn=Vanion rt=1097698253 rg=bekanntmachungen
~#! tid=1097698253
Eine Source hat immer n+1 Fehler. n hat sich gerade um 1 erhoeht.

Der Crash eben war mein Fehler. Wir werden so schnell wie moeglich einen
Bugfix liefern.

V*

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



Reboot nicht ausgeschlossen ... (Vanion, 14. Okt 2004, 20:16:53):
Hallo Leute,

leider muss ich euch mitteilen, dass der aktuelle Driver nicht so stabil ist,
wie wir gern haetten. Vorgeschmack hierfuer war schon der Doppelcrash gestern.
Auch die nicht funktionierende Ebenenhistory sind Anzeichen fuer
Driver-Fehler.

Wir arbeiten derzeit an einem stabilen Driver, so dass wir, falls sich weitere
Probleme bemerkbar machen, einen Ersatz haben. Wir versuchen um einen Reboot
drumrum zu kommen, koennen ihn aber nicht ausschliessen.

Gruesse,
V*

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



Crash (Vanion, 15. Okt 2004, 06:42:23):
Heute Nacht gg 2 Uhr hat es noch einmal gecrasht. In dem Zug wurde die
fehlerhafte Stelle aus dem Driver entfernt. Ich gehe von einer mindestens
zweihunderttaegigen Uptime aus. Mindestens!

V*

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



Re: Mudlib und GameDriver (Vanion, 21. Okt 2004, 19:08:19):
~#! rn=Vanion rt=1097698253 rg=bekanntmachungen
~#! tid=1097698253
Da der letzte Driver etwas instabil war, laeuft nun eine Version, die um den
fehlerhaften Code erleichtert wurde. Wie immer liegt deine Kopie deines
Lieblingsdrivers unter Software/GameDriver.
 b4cbdf02986bfd3fccb60fb2d31a3372  driver.03.02.1@148-041015.tar.bz2
 fd80bd5d5dd59ccaa44f69db556e25f3  driver.03.02.1@148-041015.tgz

Gruesse,
V*

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



Enttanken revisited (Humni, 28. Okt 2004, 10:18:05):
Nach einigen Ueberlegungen und Beobachtungen unsererseits haben wir uns das
Tanksystem erneut angeschaut. Wir haben einige der Enttank-Werte neu
ueberdacht und ein wenig angepasst.

Ziel der Aktion war keineswegs eine Gleichmacherei. Wir wollten die Werte so
umbauen, dass die einzelnen Rassen sich durchaus unterscheiden, unter dem
Strich aber keine absoluten Ungerechtigkeiten auftreten, sondern jede Rasse
irgendwo ihre Vorteile hat.

Ich will nicht auf jede einzelne Zahl eingehen und jede Aenderung erlaeutern,
nur ein paar grundsaetzliche Dinge: Es hat keine Abwertungen gegeben, alle
koennen nun etwas mehr bzw. schneller enttanken (durch Klogaenge - nicht jede
Rasse ist auf jeden Fall mit Fluessigkeit und fester Nahrung verbessert - aber
jede Rasse hat nun einen leichten oder auch deutlichen Vorteil gegenueber dem 
Vorherigen System). 
 
Dabei sind nur die Enttank-Werte angepasst worden. Einzige Ausnahme bilden
da die Zwerge, die jetzt deutlich mehr essen koennen als vorher.

Die Aenderung gilt ab ende/renew/reboot. Solange rennt ihr noch mit den
alten Werten herum.
 
Humni

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



Heilungs-Balance (Zook, 11. Nov 2004, 22:27:46):
Hallo zusammen,

fuer die Heilungs-Balance ist kuenftig Nonne allein zustaendig, Gabylon 
scheidet aus der Heilungs-Balance aus. Fuer sein Engagement und seine
Unterstuetzung bei der Weiterentwicklung der Heilungs-Balance moechte
ich mich bei Gabylon recht herzlich bedanken.

Zook.

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



Unser Debug-Gebietswarte-Weise Feigling... (Zook, 12. Nov 2004, 09:41:40):
Hallo zusammen,

das RL hat einmal wieder zugeschlagen und diesmal unseren [W]eisen Feigling
getroffen. Leider hat er nicht mehr genuegend Zeit, um seine Aufgabe aus-
zuueben und ist daher von seinem Posten zurueckgetreten. 

Vielen Dank, Feigling, fuer Deine Mitarbeit und Engagement beim Ausrotten
der Kaefer!

Zook.

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



Neuer Regionsmagier im Polar-Gebiet (Zook, 23. Nov 2004, 13:43:25):
Hallo zusammen,

ich mache Euch die freudige Mitteilung, dass Humni nun das Polargebiet
gemeinsam mit Noel als Regionsmagier betreut. Viel Spass und viel Erfolg
bei Deiner neuen Aufgabe, Noel!

Zook.

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



Rassenstartpunkt / Gebetspunkt der Zwerge (Zook, 13. Dez 2004, 13:58:22):
Hallo zusammen,

wegen jahrelanger Verirrungen von Zwergen in ihren eigenen Gemaeuern haben
wir uns erbarmt und den Startpunkt der Zwergenrasse wieder in die 
Zwergenstadt gelegt, ebenso den Startpunkt nach einem Tod. 

Gruss, Zook.

PS: Bereits eingelogte Zwerge koennen moeglicherweise mit ende in den
Genuss kommen, ansonsten erst nach Reboot/Crash.

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



Zook sagt, ich soll was nettes schreiben ... (Vanion,  2. Jan 2005, 18:03:14):
Hi,

also schreib ich, dass ich mich nicht loeschen werde. :) Ich habe mich
allerdings entschieden, von meinem Amt als EM zurueckzutreten.

Gruende dafuer sind hauptsaechlich darin zu suchen, dass die Tage selten genug
Stunden haben. Ich schaetze, das geht wohl vielen so :)

Trotzdem, es war eine schoene Aufgabe und eine schoene Zeit und ich moechte
mich bei euch fuer die gute Zusammenarbeit bedanken.

V*
PS: Wuah, also Abschiedsreden waren nie mein Ding :)

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



Re: Zook sagt, ich soll was nettes schreiben ... (Zook,  2. Jan 2005, 18:07:20):
~#! rn=Vanion rt=1104685394 rg=bekanntmachungen
~#! tid=1104685394
Ein herzliches Dankeschoen geht von "uns" an Dich fuer Deine vielen Stunden,
in denen Du Dich um die Mudlib, den Driver, die Gesellenstuecke und vieles
andere gekuemmert hast. 

Und wir halten Dir einen Schreibtisch frei, fuer die Tage, an denen Du 
wieder mehr Zeit fuer das MorgenGrauen hast... ;))))

Zook.

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



Jungmagier (Zook,  2. Jan 2005, 18:58:39):
Hallo Jungmagier und solche, die es werden moechten! 

Mit allen Fragen zu Euren Gesellenstuecken (Fragen zum Konzept, o.ae.) 
koennt Ihr Euch an mich wenden. Ich nehme auch gerne Eure Arbeiten ab 
und befoerdere Euch dann zum Vollmagier.

Besten Gruss, Zook.

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



Re: Jungmagier (Zook,  2. Jan 2005, 19:00:39):
~#! rn=Zook rt=1104688719 rg=bekanntmachungen
~#! tid=1104688719
Nur damit keine Unklarheiten enstehen: Programmieren muesst Ihr noch 
selbst. :-)

Zook.

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



Cicerones (Humni,  4. Jan 2005, 14:28:13):
Huhu,

nach langer, reiflicher Ueberlegung sind die Erzmagier des MorgenGrauens zu
der ultimativen Erkenntnis gelangt, dass ,,Cicerone'' ein passender Begriff
fuer einen Neulingshelfer, Fremdenfuehrer oder aehnliches ist.

Darum gibt es seit heute die Moeglichkeit, sich selbst den Status eines
Cicerone zu setzen. Die Aufgabe ist dann, kleinen Spielern die ersten Schritte
im MG zu erleichtern. Die kleinen Spieler bekommen im Gegenzug eine Meldung,
welche Cicerones anwesend sind.

Der Status bringt keinerlei Privilegien mit sich und ist jederzeit ein- und
ausschaltbar. Vor einer groesseren Metzelorgie solltet ihr ihn unbeding
ausschalten.

Naeheres ueber ein- und ausschalten und den Status findet ihr unter ,,hilfe
cicerones'' und ,,hilfe cicerone''. Es werden noch ein paar Features
implementiert werden, dies betreffend. Vorschlaege bitte an mich oder an
andere EMs, oder in die entsprechenden MPA-Threads.

Bitte nutzt dieses Feature mit Gehirn und lest vorher, was man von Euch
erwartet.

Auch Magier duerfen Cicerones werden. Ihr solltet den Spielern natuerlich dann
keine Ausruestung oder Geld geben ;-) hier apelliere ich einfach an Euren
gesunden Menschenverstand.

Humni

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



Re: Cicerones (Zook,  4. Jan 2005, 14:31:43):
~#! rn=Humni rt=1104845293 rg=bekanntmachungen
~#! tid=1104845293
Humni moechte ergaenzen, dass der Befehl erst neuen Spielerobjekten
zur Verfuegung steht, also nach ende/crash/reboot.

Zook.

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



Web (Muadib,  5. Jan 2005, 16:28:52):
Hi,

die Regionen sollten im Web wieder zugaenglich sein. Auch die Gilden.
Zumindest die, deren Seiten intern liegen.
Das Shockwave-Telnet geht noch nicht wieder.

Bitte gebt bei Zugriffsfehlern Feedback an mich. Nicht bei inhaltlichen
Fehlern bitte.

Muadib

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



Re: Web (Muadib, 20. Jan 2005, 09:06:41):
~#! rn=Muadib rt=1104938932 rg=bekanntmachungen
~#! tid=1104938932
Hi,

Guard hat mich darauf hingewiesen, dass er gerne inhaltliche Fehler in den
Webseiten entgegen nimmt.

Gruss

Muadib

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



Re: Re: Mudlib und GameDriver (Rikus, 27. Jan 2005, 21:12:28):
~#! rn=Vanion rt=1098378499 rg=bekanntmachungen
~#! tid=1097698253
die Portierung fuer Win* liegt wie immer unter Software/GameDriver/WinTCPIP

Rikus

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



Re: Hejda (Zook,  3. Mar 2005, 16:39:29):
~#! rn=Nibel rt=1109864130 rg=d.wald
~#! tid=1109864130
Da bleibt mir, Dir, Nibel, ganz herzlich fuer Dein Engagement und die 
aufgewendete Zeit als RM Wald zu danken! 

Wer sich als Nachfolgerin oder Nachfolger fuer zukuenftige Rodungs-Aktionen
berufen fuehlt oder jemanden kennt, dem er/sie diese Aufgabe zutraut, bitte
ich um eine E-Mail an mich.

Gruss, Zook.

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



Was man so hoert  (Muadib,  1. Apr 2005, 00:07:37):
Vor kurzem wurde ich unfreiwillig Zeuge eines Gespraeches zwischen zwei
Personen, die ich nicht naeher nennen moechte.
Nun normalerweise veroeffentliche ich die Inhalte solcher Gespraeche nicht in
der MPA, aber hier scheint mir das Ganze doch von grossem Interesse fuer uns
alle im Morgengrauen. 
Daher folgt nun das, was ich verstehen konnte:

HAHAHA, GESCHAFFT! HURRA!
Was gibts?
ICH HAB ES GESCHAFFT, DIE SEELEN DER SPIELER GEHOEREN NUN BALD ALLE MIR. UND
AUCH DU KANNST NICHTS MEHR DARAN AENDERN.
Wie meinen?
IST DIR AUFGEFALLEN, DASS DER JUNGGOTT IN LETZTER ZEIT RECHT OFT IN DER WAND
HAENGT UND GROESSERE ZEITEN DER ABWESENHEIT HAT?
Ja, und?
UND JOF UND RUMATA SIND AUCH WENIG DA.
Ja?
BOING KALKT VOR SICH HIN UND UEBT AUCH KEINE MACHT MEHR AUS.
Worauf willst Du raus?
UND DIE ERZMAGIER SIND NUR NOCH EIN HAEUFCHEN BESCHRAENKTER KNALLKOEPPE, DIE
SICH IN IHRER KLEINEN MACHTPFUETZE SUHLEN.
Naja, also, ganz so ist es ja nicht. Aber ok, man koennte Dir zustimmen
wollen. Aber das ist doch alles nicht wirklich neu.
NUN, DA DAS MORGENGRAUEN SO GOTTVERLASSEN UND SCHUTZLOS DA LIEGT,HABE ICH MIR
DIE FREIHEIT GENOMMEN EIN WENIG IN DIE GRUNDFESTEN EINZUGREIFEN.
Ah, Du hast ein paar Bugs eingebaut?
NEINEIN, KEIN SO KINDERKRAM. 
ES BETRIFFT DIE WIEDERGEBURT.
Was ist damit?
ICH HAB SIE ABGESCHAFFT. BETRITT NUN EIN SPIELER MEIN REICH SO IST ES FUER
IMMER! HAHHAHAAAAAAAAAAA!!!!!!
Aeh, moment mal. Was ist dann mit mir?
WAS SOLL MIT DIR SEIN?
Ich hab dann keine Arbeit mehr. Hallo? Was soll das?
NA, OEH, DANN MACH DOCH URLAUB. ODER GEH IN RENTE.
Von welchem Geld? Ich hab doch nix. Ausserdem liebe ich den Job. Das ist mein
Lebensinhalt.
ACH, HAB DICH NICHT SO. ICH WEISS GENAU DASS DU MANCHEN SPIELERN IMMER WIEDER
WAS ABGEKNOEPFT HAST. UND BEI DEINEM LETZTEN SPANIENURLAUB WARST DU AUCH NICHT
SONDERLICH UNGLUECKLICH. VOR ALLEM DER BADEMEISTER TAT DIR GUT!
Aehem, naja schon. Aber da ist nochwas...
WAS?
Naja, also...
Wusstest Du schon dass Knochen bei manchen Voelkern als erotisch gelten?
AEH..
Ja, also...
Muss ich das nun wirklich ausfuehren?
Sei doch mal ein wenig sensibel.
Warum glaubst Du mach ich den Job schon so lange?
Doch nur weil ich Dich ...
Dich fuer so einen tollen Kollegen halte.
OHEM,NUN, ALSO, ICH FINDE DICH JA AUCH ... GANZ NETT
ALSO FUER EINEN LEBENDIGEN
Und nu?
VIELLEICHT KANN ICH JA NOCHMAL EIN WENIG IM GEFUEGE AENDERN, SO DASS DU DIE
SPIELER REINKARNIEREN KANNST, DIE UNBEDINGT DARAUF BESTEHEN UND ICH DEN REST
KASSIERE?
Das hoert sich sehr gut an.
NUN GUT, MACHEN WIR DAS.
UND NUN ...
Ja?
HAST DU SCHONMAL MEINE SANDUHRENSAMMLUNG GESEHEN?
Neeiiiin, noch nie?
NA DANN, SOLL ICH SIE DIR ZEIGEN???


Leider entfernten sich die beiden dann aus meiner Hoernaehe.
Was das wohl zu bedeuten hat?
Und was meinen die mit Knallkoeppe???


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



Re: Was man so hoert  (Muadib,  1. Apr 2005, 09:50:10):
~#! rn=Muadib rt=1112306857 rg=bekanntmachungen
~#! tid=1112306857
Fuer die weniger Lesefreudigen:
Ab sofort gibt es fuer neu angelegte Spieler den Hardcoremodus zur Auswahl.
Hardcoremodus bedeutet: ein Tod und das wars

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



Ruecktritt als EM (Nonne,  8. Apr 2005, 10:11:27):
Hallo Leute,

aus persoenlichen Gruenden werde ich meinen Job als EM an den Nagel haengen.
Es hat mir sehr viel Spass gemacht, auch wenn einige Leute alles dran gesetzt
haben, um das zu verhindern ;-) Ich danke trotzdem allen fuer die gute
Zusammenarbeit und hoffe, dass es einen Nachfolger gibt, der den Job zu aller
Zufriedenheit erledigt. Bis so jemand gefunden wird, werde ich den Posten
weiterhin bekleiden, um die Arbeit der Balance so wenig wie moeglich zu
verzoegern.

Nonne.

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



Ausschreibung: Erzmagier fuer Objekt-, Heilungs-Balance (Zook,  8. Apr 2005, 10:22:12):
Vorab moechte ich Nonne herzlich Danke sagen fuer die Zeit, in der er fuer 
die Objekt- und Heilungsbalance hier im MorgenGrauen zustaendig war, fuer 
die Zeit und Energie, die dafuer noetig waren.


Wir suchen nun eine Nachfolgerin, einen Nachfolger. Wer Interesse an dieser
Taetigkeit hat, ist zur Bewerbung aufgefordert. Falls Ihr jemanden kennt,
dem Ihr diese Aufgabe zutraut, so lasst uns doch auch darueber eine Nachricht
zukommen. 

Bitte richtet Vorschlaege und Bewerbungen an das Mail-Alias "balance". Wir
EM+ werden gemeinsam mit dem Balance-Team aus den Bewerbungen eine
Kandidatin oder einen Kandidaten auswaehlen.

Gruss, Zook.

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



Regionsmagier-Rochade.... (Zook, 16. Apr 2005, 20:05:39):
Hallo zusammen,

ich gebe gerne bekannt, dass Miril in der Ebene als Regionsmagierin 
ausscheidet und sich fortan statt der Ebene dem Wald widmet. 

Im Wald wird sie nicht alleine bleiben, sondern Chagall wird neuer
Regionsmagier im Wald. Viel Spass und Erfolg bei Deiner neuen Aufgabe,
Chagall!

Zook.

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



Re: Re: Was man so hoert  (Muadib, 16. Apr 2005, 22:18:44):
~#! rn=Muadib rt=1112341810 rg=bekanntmachungen
~#! tid=1112306857
der hc-modus ist uebrigens immer noch sowas von prima drinne

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



Neue Region "Anfaenger" (Zook, 19. Apr 2005, 17:28:20):
Hallo,

verschiedene Intiativen und Ideen laufen nun zusammen: Wir wollen das
Spielen fuer Anfaenger oder sehr kleine Spieler einfacher, interessanter
bzw. uebersichtlicher gestalten. Zu diesem Zweck haben wir eine neue
Region eingerichtet, in der speziell einige dieser Projekte ihren
Platz finden werden. 

Als Regionsmagier ist vorerst Ark ernannt, er koordiniert den ersten
Schwung Objekte, Teil-Projekte.

Gruss, Zook.

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



Re: Ausschreibung: Erzmagier fuer Objekt-, Heilungs-Balance (Zook, 23. Apr 2005, 16:48:37):
~#! rn=Zook rt=1112948532 rg=bekanntmachungen
~#! tid=1112948532
Als Frist fuer eine Entscheidung haben wir uns Anfang Juni vorgenommen, 
etwaige Interessneten koennen sich auch bis dahin noch melden bzw. andere
zur Bewerbung auffordern. Gruss, Zook.

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



Da es nun schon per "frufe" kursierte: (Zook, 31. Mai 2005, 18:09:43):
Meine Erzmagier machen keine Bugs!

Zook.

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



Neue Balance-EM (Zook, 11. Jun 2005, 15:31:32):
Hallo zusammen,

das Balance-Team und die Erzmagier haben aus den Bewerbungen und Vorschlaegen
eine Nachfolgerin fuer Nonne ausgewaehlt: Miril ist ab sofort fuer die
Objekt- und Heilungsbalance zustaendig. Ueber die Weitergabe der Aufgaben
von Nonne zu Miril geben uns beide in Kuerze die genauen Modalitaeten
bekannt. 

Liebe Miril, ich wuensche Dir und dem Balance-Team viel Spass bei der
Arbeit an der Balance im MG. Nonne moechte ich an dieser Stelle auch noch
einmal meinen Dank fuer die Mitarbeit in der Balance danken.

Zook.

PS: Willste die Lichtbalance eigentlich auch haben....? ;))))

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



Nonne nun nicht mehr Erzmagier... (Zook, 29. Jun 2005, 11:26:32):
Hallo zusammen, nachdem nun Miril die Leitung der Balance uebernommen
hat, ist Nonne von seinem Posten als Erzmagier zurueckgetreten und nun 
wieder zum Magierlevel 45 zurueckgekehrt. Vielen Dank, Nonne, fuer Dein
Engagement und Deine Zeit, die Du als Erzmagier aufgebracht hast.

Gruss, Zook.

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



Ein Chagall steht im Walde... (Zook, 10. Aug 2005, 21:56:54):
... und das tut er nun auch alleine, Miril zieht sich als RM aus dem Wald
zurueck und Chagall muss seine Staffelei nun alleine durch den Wald
tragen.

Zook.

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



Crash (Humni, 21. Aug 2005, 10:25:32):
Huhu,

aus einer mir gerade unbekannten Tatsache heraus ist heute morgen das Mud
gecrasht. Das gab es frueher oefter, nur so als kurze Erklaerung fuer Spieler,
die das noch nicht kennen:

* Bei einem Reboot (was auch ein Crash wie heute morgen darstellt) verliert
man alle Objekte, die man dabeihat, ausser Autoloadern.
* Man beginnt wieder an seinem Startplatz.
* Das alles ist kein Fehler, sondern tritt ab und an auch gelpant auf (gut,
der Crash heute morgen war unplanmaessig). Daher: Nein, ihr bekommt Eure
Sachen nicht zurueck. Ihr solltet ein paar Muenzen finden, als kleine
Entschaedigung. Das wars. Das Leben ist hart. Frueher gabs das jede Woche. 

Genauere Infos, wenn wir die Ursache kennen.

Humni

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



Re: Crash (Zook, 21. Aug 2005, 22:22:31):
~#! rn=Humni rt=1124612732 rg=bekanntmachungen
~#! tid=1124612732
Die Ursache ist folgende: Beim Zustellversuch einer E-Mail von ausserhalb
des Muds ist der Speicher knapp geworden und das Mud infolge fehlenden
Speichers gecrasht.

Zook.

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



Re: Abwesend (Zook, 22. Sep 2005, 13:33:43):
~#! rn=Muadib rt=1127388487 rg=magier.urlaub
~#! tid=1127388487
In Fragen willkuerlicher Regelauslegung und Ahndung etwaiger Verstoesse
koennte Ihr Euch in der Zwischenzeit gerne an mich wenden. Ich versuche
das Willkuer-Niveau zu halten.

Zook.

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



Strom aus, kein MG bis Samstag (Humni, 22. Sep 2005, 16:10:39):
Laut Hate wird am morgigen Freitag irgendwann der Strom im Hause des
MG-Rechners abgestellt. Im ganzen Haus. Ja, auch in dem Raum, wo der
MG-Rechner steht, und damit auch der MG-Rechner selbst.

Der Strom wird auch erst Samstag wieder eingeschaltet. 

Klartext: Morgen gibt es einen Reboot, der bis Samstag dauert. Erst dann ist
das MG wieder da.

Zeiten wusste Hate keine, und ich gebe das nur weiter. Also fragt gar nicht
erst, wir wissen auch nicht mehr, Hate auch nicht.

Ich kann nur "um Verstaendnis bitten", das ganze ist ausserhalb unserer
Kontrolle. In dem Haus werden die Leitungen gepfueft.

Humni

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



Nochn reboot (Rumata, 25. Sep 2005, 11:21:33):
Hallo liebe Spieler und Magier,
weil der grosse schwarze Drache seine Handtasche vergessen hatte, will
er nochmal kurz vorbeischauen und das Mud nochmal fressen.

Beim Reboot sind einige Dinge aufgefallen die zusammen mit einem
ueberfaelligen Kernelupdate dann erledigt werden koennen.

Der Termin ist: "irgendwann am Montag".

Sammelt also nicht zu fleissig.

Rum*

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



Re: Nochn reboot (Zook, 26. Sep 2005, 12:20:03):
~#! rn=Rumata rt=1127640093 rg=bekanntmachungen
~#! tid=1127640093
Das Kernel-Update wird beim naechsten regulaeren Reboot eingespielt und die
aufgefallenen Dinge sind in des schwarzen Drachens Handtasche versunken.

Soll heissen: Es gibt heute keinen Reboot, sondern das MG laeuft ganz
normal weiter...

Viel Spass!

Zook.

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



Nachfolge fuer Twingi als RM Inseln  (Zook, 15. Okt 2005, 12:05:02):
Hallo zusammen, leider findet Twingi nicht mehr genuegend Zeit, um ihre
Aufgaben als Regionsmagier in der Region Inseln auszufuellen. Daher suchen
wir nun eine Nachfolgerin bzw. einen Nachfolger. Interessenten, die schon
immer einmal dienstlich zwischen den Inseln hin- und herschippern wollten,
bitte ich um eine kurze Bewerbung! (Evtl. wird auch ein Dienstfahrzeug 
gestellt, um nicht auf die lahmen Schiffe, Wale etc. angewiesen zu sein).

Zook.

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



Wartungsarbeiten am 27. Dezember 2005 (Zook, 22. Dez 2005, 20:04:11):
Hate hat uns informiert, dass am 27. Dezember in der Zeit von ca. 17.30 
bis 20.00 Uhr Wartungsarbeiten an der Stromversorgung des Serverraums
durchgefuehrt werden muessen. Insofern wird dann das MorgenGrauen 
heruntergefahren und hoffentlich mit gewartetem Strom wieder neu gestartet.

Schoenen Gruss, Zook.

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



Re: Nachfolge fuer Twingi als RM Inseln  (Zook, 20. Jan 2006, 16:35:03):
~#! rn=Zook rt=1129370702 rg=bekanntmachungen
~#! tid=1129370702
Ich gebe hiermit freudig bekannt, dass wir einen Jungmagier gefunden haben,
der sich in diese Aufgabe als Regionsmagier einarbeiten moechte. Seleven
steht mit Miril zukuenftig fuer die Region Inseln als verantwortliche
Regionsmagier bereit! Dir viel Spass und Erfolg bei Deiner neuen Aufgabe,
Seleven! 

Bedanken moechte ich mich bei Twingi fuer die Zeit, in der sie in der
Region als Regionsmagierin kraeftig mitgeholfen hat! Besten Dank dafuer!


Zook.

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



Frosch (Muadib,  4. Feb 2006, 13:31:07):
Hi,

aus aktueller Diskussion heraus, habe ich im Froschmodus eine Kleinigkeit
geaendert.
Wirksam nach Ende/Reboot.
Ihr werdet schon merken was :)

Gruss
Muadib

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



CfD: Seheranforderungen (Zook,  6. Feb 2006, 17:51:53):
Hallo zusammen,

die derzeitigen Seher-Anforderungen passen sich dynamisch
verschiedenen Entwicklungen im MG an (Durchschnitt bei den
Forscherpunkten, feste Quote der gesamt verfuegbaren
Abenteuerpunkte). Das fuehrte in den letzten Jahren dazu, dass die
Seheranforderungen immer weiter nach oben gerueckt sind, so dass man
verschiedentlich als Erstspieler sehr lange braucht, um Seher zu
werden und dies mittlerweile oftmals erst mit einem Lvl. deutlich
groesser als 40 erreicht. 

Wir moechten die Seher-Anforderungen daher zum einen etwas absenken
und zum anderen die Dynamik herausnehmen und die Anforderungen durch
eine regelmaessige Evaluierung seitens der EM+ jaehrlich an
moeglicherweise geaenderte Gegebenheiten anpassen.

Im einzelnen saehe das so aus:

Insgesamt benoetigt man 4.000 Stufenpunkte, um Seher zu werden. Aus
den 4.000 Stufenpunkten muessen aus verschiedenen Kategorien
Mindespunktzahlen erzielt werden. Es sind dies:

 1.800 Abenteuerpunkte
   900 Stufenpunkte aus Forscherpunkten (entsprechen 150 FP oder 15
       Runen)
   300 Stufenpunkten aus Zaubertraenken (entsprechen 60 ZTs)
   200 Stufenpunkten aus Erstkill-Stufenpunkten
   100 Stufenpunkten aus Erfahrungspunkten (irgendwas knapp unter 2
       Mio EP)
   
Das machen insgesamt 3.300 Stufenpunkte. Um Seher zu werden benoetigt
man darueberhinaus dann noch 600 Stufenpunkte (100 Punkte erhaelt man
als Startstupse mit Level 1). Die verbleibenden Punkte kann man dann
beliebig einsammeln (u.a. werden auch Stufenpunkte aus dem Beherrschen
von Gildenfaehigkeiten oder dem Loesen von MiniQuests
beruecksichtigt). 

Die Anforderungen sind nach wie vor relativ hoch, jedoch sind sie nun
deutlich flexibler und die Spieler koennen auch Stufenpunkte aus allen
moeglichen Bereichen einbringen. 

Damit die Anforderungen nicht voellig statisch sind, werden wir EM+
einmal im Jahr die Erfahrungen mit den Anforderungen diskutieren und
ggf. Aenderungen nach oben oder unten vornehmen. Dies wird immer zu
einem festen Zeitpunkt im Jahr sein, so dass man sich darauf als
Spieler einstellen kann.


Bevor wir diese Aenderung der Seheranforderungen umsetzen, moechten
wir diese gerne zur Diskussion stellen. Also, egal ob Spieler, Seher
oder Magier, schreibt einfach in diesen Thread hinein, was Euch
gefaellt, nicht gefaellt, was man noch bedenken sollte etc. 


Zook.

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



Re: CfD: Seheranforderungen (Zook, 16. Feb 2006, 15:39:11):
~#! rn=Zook rt=1139244713 rg=bekanntmachungen
~#! tid=1139244713
Die Wuerfel sind gefallen und zwar wie folgt:

Um Seher zu werden, benoetigt man zukuenftig 3.800 Stufenpunkte.
Dazu muessen aus verschiedenen Kategorien Mindestpunktzahlen
erzielt werden. Es sind dies:

 1.610 Abenteuerpunkte
   600 Stufenpunkte aus Forscherpunkten (entsprechen 100 FP)
   200 Stufenpunkte aus Zaubertraenken (entsprechen 40 ZTs)
   150 Stufenpunkte aus Erstkills

Hinzu kommen 100 Stufenpunkte fuer den ersten Level. Demnach sind die
verbleibenden 1.140 Stufenpunkte aus frei waehlbaren Quellen (incl.
Erfharungspunkte, Gildenfaehigkeiten, MiniQuests) zu erzielen.

Die Seheranforderungen werden jaehrlich zu einem festen Zeitpunkt
evaluiert und ggf. nach oben oder unten angepasst.

Eingebaut wird das ganze in Kuerze, es erfolgt dann noch eine Mitteilung
in dieser Rubrik.

Vielen Dank an die vielen Rueckmeldungen, die in der MPA gelandet sind, 
aber auch per E-Mail oder im persoenlichen Gespraech geaeussert wurden.

Zook.

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



Neue Seheranforderungen (Zook, 21. Feb 2006, 11:04:29):
Nun sollte auch Merlin ueber die neuen Seheranforderungen informiert
worden sein. Soll heissen, irgendwie ist ein wenig Code angeschlossen
worden; falls irgendwas noch unklar sein sollte oder nicht funktioniert
oder zu gut funktioniert (wenn es also ne Gaeste-Seher-Schwemme gibt), dann
bitte eine kurze Nachricht an mich.

Vielen Dank an die helfenden Mitmagier!

Zook.

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



Ostern (Miril, 14. Apr 2006, 12:13:51):
Huhu!

Soeben hat mir der Osterhase mitgeteilt, dass er durch die Anfaengerstart-
gebiete gehoppelt ist und dort fuer jeden von Euch 6 Ostereier versteckt 
hat.

Ab Sonntag, 0.00 Uhr kann die Suche losgehen und muss bis Montag 23:59:59
beendet sein ;).

Viel Spass beim Suchen
Miril

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



Re: Ostern (Miril, 16. Apr 2006, 09:07:39):
~#! rn=Miril rt=1145009631 rg=bekanntmachungen
~#! tid=1145009631
Noch ein kleiner Tipp: Pro Anfaengerstartgebiet koennt ihr maximal 2 Stueck
finden.

Miril

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



Aktuelle Mudlib (3.2.20) verfuegbar (Zook, 18. Apr 2006, 22:10:34):
Hallo zusammen, die aktuelle Mudlib (Version 3.2.20) ist nun auf dem
FTP-Server verfuegbar. Sorry, dass es so lange gedauert hat, bis eine 
neue Mudlib zur Verfuegung steht. Bei Problemen oder Fehlern der 
Mudlib bitte Nachricht an mich.

Verfuegbar unter
ftp://mg.mud.de/Software/MudLib/MorgenGrauen-3.2.20.tar.gz
ftp://mg.mud.de/Software/MudLib/MorgenGrauen-3.2.20.tar.bz2

Zook.

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



WebTelnet (Muadib, 16. Mai 2006, 20:18:37):
Hallo,

das WebTelnet wird voruebergehend abgeschaltet.
Dies ist leider notwendig aus Sicherheitsgruenden, da die Verbindungsanzahl
innerhalb des Servers bei nicht korrekt geschlossenem WebTelnet linear steigt
und damit eventuell den Betrieb gefaehrdet.

Sobald dies behoben ist, wird das WebTelnet selbstverstaendlich wieder online
gehen.

Gruss
Muadib

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



Crash (Humni, 13. Jul 2006, 09:22:44):
Huhu,

wie es aussieht hat das Mud heute nacht gecrasht.

Da die vergangene Uptime ueber 200 Tage ging (oder so) hier eine kurze
Erklaerung fuer diejenigen, die das noch nicht erlebt haben:

Das Spiel wird ab und an neu gestartet. Das geschieht manchmal mit
Vorankuendigung, manchmal jedoch auch, weil ein Fehler aufgetreten ist oder
der Rechner ein Problem hatte. Das erstere nennt man Reboot, das zweitere
Crash. Selbiger ist hier aufgetreten. Die Ursache ist mir derzeit noch
vollkommen unklar, ich hab aber auch noch nicht viel rumgesucht.

Fuer Euch Spieler heisst das: Eure Gegenstaende sind alle weg. Das ist fuer
einige von Euch sicher tragisch, aber nicht zu aendern. Das ist auch kein
Programmfehler, das gehoert zum Mudleben dazu. Nutzt die Gelegenheit und
ruestet Euch neu aus. Eure Attribute, Quests und was ihr sonst erreicht habt
ist alles noch da, nur die Gegenstaende fehlen Euch, mit wenigen sogenannten
"rebootfesten" Dingen, die in der Regel Questbelohnungen sind.

Wer nun meint, das sei unfair, dem sei gesagt, dass es frueher alle paar Tage
bzw. spaeter alle paar Wochen einen Crash oder Rebbot gab.

Humni

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



Re: Crash (Muadib, 13. Jul 2006, 09:43:20):
~#! rn=Humni rt=1152775364 rg=bekanntmachungen
~#! tid=1152775364
Hallo Zusammen,

den Crash werde ich zum Anlass nehmen am Wochenende eine Aenderung in der
Mudlib vorzunehmen.
Aus diesem Anlass wird es am Sonntag einen Reboot geben.

Fuer alle, die so etwas noch nicht erlebt haben: Das Mud wird am Sonntag fuer
wenige Minuten nicht erreichbar sein, danach werden alle bis dahin gesammelten
Gegenstaende verschwunden sein. Die Ausnahmen stellen Geld und Autoloader dar.
Humni hat das ja in dem vorherigen Posting schon gut erlaeutert.

Bitte habt Verstaendnis fuer diesen beabsichtigten Reboot. Dies ist notwendig
zur Weiterentwicklung und geschieht so selten wie moeglich.

Gruss
Muadib

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



Re: Re: Crash (Muadib, 16. Jul 2006, 14:10:52):
~#! rn=Muadib rt=1152776600 rg=bekanntmachungen
~#! tid=1152775364
Hiho,

die eingebauten Aenderungen, stellen Magiern erweiterte Informationen zum
Ablauf eines Kampfes zur Verfuegung. Diese haben auf den Ablauf eines Kampfes
keinen Einfluss. 
Der Reboot ist allerdings noetig, damit diese Informationen auch konsequent
fuer alle NPCs und Spieler erstellt werden.

Die Informationen sind recht ausfuehrlich. Das bedeutet erhoehten
Rechenaufwand. Ich gehe nicht von einem staerkeren Lag oder Crashes aufgrund
von Speicherproblemen oder Evalcost-Ueberschreitungen aus, aber das Risiko
besteht.

Soweit dazu. 

Viel Spass mit der naechsten Uptime.

Muadib


PS: Eine genauere Beschreibung und Manpage fuer die Magier unter Euch folgt
noch heute

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



Re^3: Crash (Muadib, 16. Jul 2006, 16:54:17):
~#! rn=Muadib rt=1153051852 rg=bekanntmachungen
~#! tid=1152775364
Hallo Zusammen,

es gab im Rahmen der Umstellung noch ein zwei Bugs, welche jeweils einen
eigenen Reboot erforderten.
Nachdem diese zwei Reboots nun vorbei sind, scheint der Zustand stabil zu
sein, so dass ich mal vorsichtig Entwarnung geben moechte.

Falls es denoch einen Reboot geben muss, naja, dann war die Entwarnung wohl
voreilig

Viel Spass
Muadib

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



Crash/Reboot (Zook, 24. Jul 2006, 12:48:13):
Hallo zusammen,

es tut mir ein wenig leid, aber das MG hat es eben in den Abgrund 
gerissen, so dass ich es neu starten musste. Das Problem scheint im
Moment nicht mehr aufzutreten und von daher denke ich, dass das
Spiel nun wieder normal funktionieren sollte.

Zook.

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



Re: Crash/Reboot (Zook, 24. Jul 2006, 12:49:59):
~#! rn=Zook rt=1153738093 rg=bekanntmachungen
~#! tid=1153738093
Ein wenig technisch fuer die versierten Spieler/Magier:

Die Zahl der Call-Outs lief nach oben (am Ende jenseits von 3000
Call-Outs). Man konnte zwar neue hinzufuegen, ggf. wurden die dann
aber gar nicht abgearbeitet und verschwanden auch nicht mehr aus
der Liste der Call-Outs (selbst wenn das aufrufende Objekt zerstoert
wurde). 

Warum das passierte, ist im Moment unklar.

Sorry fuer die Unannehmlichkeiten.


Zook.

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



Kampfstaebe (Zook, 31. Jul 2006, 18:16:22):
Hallo zusammen,

es hat (siehe entsprechende Threads in der MPA) in letzter Zeit einige
Unklarheiten gegeben, was man unter einer Waffe der Gattung
"Kampfstaebe" verstanden werden soll. 

Wir (Erzmagier zusammen mit Gabylon) haben uns einmal zur Beratung
zurueckgezogen und moechten die Angelegenheit mit folgenden
Erlaeuterungen etwas klaeren:

Gabylon hat ausgefuehrt, dass es einerseits "Kampfstaebe" mit einer
zweihaendigen Technik gibt. Diese unterscheidet sich sehr stark von
der Kampftechnik eines einhaendig gefuehrten "Kampfstocks". Insofern
waeren, so Gabylon, eigentlich zwei unterschiedliche Waffentypen
sinnvoll. Eine Alternative bestuende darin, beide von der Technik
unterschiedlich zu fuehrenden Waffen unter einer Waffenklasse
zusammenzufassen. Eine dritte Moeglichkeit koennte darin bestehen,
dass man die einhaendig zu fuehrenden Stoecke den Keulen zuschlaegt.

Wir haben uns (auch im Hinblick auf einen einheitlichen Skill fuer
"Kampfstaebe") nun darauf verstaendigt, dass unter der Waffenklasse
"Kampfstabe" zum einen die zweihaendig zu fuehrenden Kampfstaebe, aber
auch einhaendig zu fuehrende Kampfstoecke zu verstehen sind.

Damit bleibt die Waffenkategorie der Kampfstaebe fuer beides offen und
Spieler, die sich auf den Kampf mit diesem Typus spezialisieren,
koennen dies nun auch ein- und zweihaendig tun.

Besten Gruss, Zook.

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



Crash (Zook,  2. Aug 2006, 17:29:42):
Na super :( Nun kommen wir wieder in historische Dimensionen. Der Treiber
ist aus bisher ungeklaerter Ursache mit Segfault gecrasht und hat
erfreulicherweise ein Core-File hinterlassen. Ursachenforschung laeuft.

Zook.

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



Re: Crash (Zook,  2. Aug 2006, 23:10:20):
~#! rn=Zook rt=1154532582 rg=bekanntmachungen
~#! tid=1154532582
Sehr aergerlich: Zum wiederholten mal ist es beim Zustellen einer E-Mail an
ein sehr grosses Postfach zu einem Crash des MGs gekommen. Ich pruefe
regelmaessig, ob Postfaecher zu gross werden, aber nun ist eines zwischen
den Pruefzeitpunkten zu gross geworden. Wir werden da wohl umgehend 
Loesungen ergreifen muessen, damit dies Problem nicht wieder auftritt.

Sorry fuer die Unannehmlichkeiten.


Zook.

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



Re: Re: Crash (Zook,  2. Aug 2006, 23:20:01):
~#! rn=Zook rt=1154553020 rg=bekanntmachungen
~#! tid=1154532582
Kleine Korrektur: Koennte auch etwas anderes am Mailfolder kaputt gewesen
sein und nicht nur die Groesse. Jedenfalls wars der Mailer und ein grosses
Postfach. Zook.

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



Seher-Anforderungen (Zook,  8. Sep 2006, 10:56:17):
Hallo zusammen, wie in "hilfe seher" beschrieben, haben wir EM+ die 
Seheranforderungen evaluiert und folgenden Entscheid gefaellt:

Die Seheranforderungen bleiben wie sie sind.

Zook.

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



Amtsanmassung. Dennoch: Weiterer Gildenmagier Chaos! (Zook, 16. Sep 2006, 11:14:25):
Hallo zusammen,

ich willkuere und entscheide, dass Ennox nun fuerhin der 
Chaos-Gilde als Gildenmagier seine Schaffenskraft zur
Verfuegung stellt.

Bereitet Euch schon mal auf Schlimmes vor; ich hab das Gesellenstueck
naemlich schon gesehen....

Zook.

PS: Hilfeseiten und Mailali gm_chaos passe ich an, wenn
ich nen anderen Client habe.


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



Was tun bei den derzeitigen Laufzeit-Problemen? (Zook, 17. Sep 2006, 15:36:40):
Hallo zusammen, ich moechte Euch alle kurz informieren, wo wir derzeitig
stehen und welche Massnahmen wir uns ueberlegt haben.

Wir alle bemerkt haben, sind unsere Zeiten langer Uptime aus bisher
ungeklaerten Ursachen vorbei. Regelmaessig raucht uns das MG ab und die 
Uptimes bewegen sich im Rahmen, den die Aeltern unter Euch noch aus der
Zeit Mitte der 1990er Jahre kennen. Das ist mehr als aergerlich und derzeitig
haben wir fast alle unsere Aktivitaeten auf die Behebung dieser Probleme
gerichtet.

Unterstuetzt werden wir dabei von einer Reihe von Mitspielern, die ebenfalls
versuchen, den Fehler zu finden und an einer Fehlerbehebung arbeiten. Ihn
allen sei dafuer an dieser Stelle schon einmal Dank gesagt.

Da das MG derzeitig relativ zuegig den Speicher aufbraucht und die 
Muellentsorgung das MG in einem inkonsistenten Zustand hinterlaesst,
haben wir uns verschiedene Massnahmen ueberlegt:

1. Um erst einmal die Uptimes wieder laenger werden zu lassen, werden wie
in Kuerze den Hauptspeicher des MG-Rechners erweitern. Dadurch erhalten wir
eine laengere Uptime, aber noch keine Loesung des Problems. Ggf. unterstuetzen
wir dies durch die eine oder andere Mudlib-Aenderung, die Speicher einspart.

2. Mit der derzeitigen Mudlib und dem Treiber versuchen wir im Dickicht des
Driver-Codes herauszufinden, warum zum einen der Speicher so verbraucht wird
und zum anderen, warum nicht mehr benoetigter Speicher nicht wieder
vernuenftig freigebene wird respektive die Muellentsorgung nicht funktioniert.

3. Parallel bemuehen wir uns um Tests, ob man die Driver-Basis "LPmud" nicht
zugunsten eines Driver "LDmud" aendern sollte. Bisher haben wir uns immer
dagegen gestreubt, eine Umstellung auf LDmud ins Auge zu fassen; insbs. mit
Hinweis auf den bisher sehr stabil laufenden Treiber LPmud. Die Zeiten
sind offenkundig vorbei und falls uns keine Loesung (Ziff. 2) einfaellt,
sollten wir eine Alternative zur Hand haben. (Ueber die Vor- und Nachteile
einer Umstellung will ich an dieser Stelle nicht allzuviel verlieren, dies
kann in einem gesonderten Thread eroertert werden.) 


Jeder, der aufgrund seiner Kenntnisse oder von Tests oder Ueberlegungen 
mithelfen kann und moechte, unser MG wieder stabiler zu bekommen, ist
herzlich zur Mitarbeit aufgerufen. Meldet Euch einfach einmal bei mir (am
besten per E-Mail), dann sehen wir, wie wir Euch einbinden koennen.


Konkret werden wir hoechstwahrscheinlich am kommenden Freitag im Merlin in
Essen-Kupferdreh einmal einen LDmud-Test veranstalten. Darauf hin werden 
wir entscheiden, ob es sich lohnt, diesen Weg weiterzugehen. 


Gruss, Zook.

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



Neue Erzmagierin (Zook, 22. Sep 2006, 22:21:41):
Hallo zusammen,

die Krise der kurzen Uptimes hat auch ihr Gutes. So hat sich eine
Magierin besonders hervorgetan, bei den nun anstehenden Arbeiten
am Driver und der Mudlib mitzuhelfen. Damit sie das nun auch 
ganz offiziell tun kann, begruessen wir Zesstra als neue Erzmagierin
fuer den Driver und die Mudlib und insbesondere fuer die nun 
anstehenden Arbeiten, das MG wieder stabil zu bekommen. 

Willkommen Zesstra und viel Spass bei Deiner neuen Aufgabe!

Zook.

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



"Jetzt zerbeiss ich's" (c) Arathorn (c) Tiamak. (Zesstra, 22. Sep 2006, 23:34:28):
Huhu allerseits,

mir als neuestem EM obliegt es nun offensichtlich, mich unbeliebt zu machen.
-)
Also, wir haben uns inzwischen dazu entschieden, das Morgengrauen in naechster
Zeit auf LDMud umzustellen. Dieser Vorgang ist mit einiger Arbeit und Muehe
verbunden und nicht innerhalb weniger Tagen moeglich, weswegen wir dieses als
fliessenden Vorgang gestalten moechten.
Das bedeutet, dass wir unsere Mudlib auf unserem aktuellen Gamedriver im
Laufe der naechsten Wochen LDMud-faehig machen wollen. Waehrend dieses
Vorgangs wird das Morgengrauen wie gewohnt weiterlaufen, waehrend die
Mudlib auf LD getestet wird. Wenn wir mit dem Ergebnis dieser Umstellung und
den Tests zufrieden sind, wird eine Umschaltung auf LDMud erfolgen. Dies ist
allerdings noch einige Wochen hin.

Aber: Wir werden morgen mit den Arbeiten beginnen und den Grundstein fuer
diese Arbeiten legen. Und nun komm ich zum Kern der Sache:

Wir koennen diese Arbeiten nicht im laufenden Betrieb durchfuehen, sondern
muessen das Morgengrauen fuer einige Stunden herunterfahren.
Und zwar ist hiermit ab 10:00 zu rechnen. Zieltermin fuer die
Wieder-Inbetriebnahme des Morgengrauen ist 18:00. (Moeglicherweise wird es
auch etwas frueher, aber wir koennen nix versprechen.)

Bitte habt Verstaendnis fuer diese Massnahme, wir sind uns sicher, dass wir
langfristig besser damit fahren und habt auch Verstaendnis fuer diese spaete
Ankuendigung. Wir sind morgen noch zusammen und koennen diese Aenderungen
morgen durchfuehren, waehrend wir im RL zusammensitzen, was die Sache
deutlich erleichtert.

Zum Schluss noch ein Punkt, der euch diesen Reboot hoffentlich etwas
versuesst: Wir haben vermutlich ein Speicherleck identifiziert und koennen es
in der Mudlib durch einen Workaround umgehen. Dieser wird erst mit einem
Reboot vollstaendig aktiv.

Viele Gruesse,
Zesstra

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



Re: "Jetzt zerbeiss ich's" (c) Arathorn (c) Tiamak. (Miril, 24. Sep 2006, 00:08:03):
~#! rn=Zesstra rt=1158960868 rg=bekanntmachungen
~#! tid=1158960868
Hallo!

Nun ist es wieder da, unser MG. In alter Frische und mit alter Mudlib.
Wir haben versucht, die Mudlib auf eine LD-Mud kompatiblere Version
umzustellen. Dabei sind wir auch einige Schritte weiter gekommen und haben
eine Menge gelernt, allerdings war die dann vorliegenden Version noch zu
fehlerbehaftet und instabil, um sie Euch zu praesentieren.

Wir haben uns daher entschlossen, bis auf weiteres die alte MG-Version wieder
zu starten. In den naechsten Wochen werden wir ueberlegen, wie wir die 
aufgetretenen Probleme loesen koennen.

Naehere Informationen reichen wir in den naechsten Tagen nach.

Miril, im Auftrag der Herrn unterwegs.

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



Neuer [W]eiser (Zook, 29. Sep 2006, 14:00:19):
Hallo zusammen, da fuer die geplanten Umstellungen auf den LD-Treiber
auch Aenderungen der Programme in den Regionen noetig sind, sind wir
auf Unterstuetzung angewiesen. Freundlicherweise hat Arathorn seinen
kleinen Finger ausgestreckt, den wir nun gern ergriffen haben. Er
unterstuetzt Zesstra bei ihren Basteleien. Vielen Dank an Dich,
Arathorn, fuer Deine Mithilfe!

Zook.

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



Neuer Regionsmagier fuer Fernwest (Zook,  7. Okt 2006, 12:22:48):
Vanion arbeitet nun an der Region Fernwest als Regionsmagier
mit. Viel Spass und viel Erfolg dabei, Vanion! Zook.

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



Re: Neuer [W]eiser (Zook,  7. Okt 2006, 12:40:41):
~#! rn=Zook rt=1159531219 rg=bekanntmachungen
~#! tid=1159531219
Bei der Umstellung ist uns auch Vanion behilflich, damit er dies
mit den noetigen Rechten ausueben kann, habe ich ihn ebenfalls fuer
diese Arbeiten zum [W]eisen erhoben.

Besten Dank fuer Deine Mitarbeit!

Zook.

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



Crash (Zook, 18. Okt 2006, 21:45:44):
Mist Mist Mist! Das hat also nicht so richtig geklappt. Der Treiber hat
es nach einer Garbage Collection gerade einmal 30 Minuten ausgehalten, 
bevor er sich in die ewigen Jagdgruende verabschiedet hat.

Zwischenzeitlich ist unsere Speichererweiterung eingetroffen, die wir 
wohl Anfang kommender Woche in den Rechner einbauen koennen. Daher wird
diese Uptime kurz sein, danach wird es aber spuerbar besser. 
Spuerbar meint in dem Fall ca. drei Monate. 

Gruss, Zook.

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



Rechner / Standort (Zook, 19. Okt 2006, 10:12:10):
Hallo zusammen,

zu unserem Rechner bzw. genauer zum Aufstellungsort gibt es einige
Neuigkeiten zu berichten. Bisher wurde das MorgenGrauen vom
Fraunhofer Institut FIRST freundlicherweise unterstuetzt und
kostenfrei gehostet. Dafuer grossen Dank an FIRST und an Hate, 
der die Rechnerbetreuung die vielen Jahre nebenbei mit uebernommen
hat! Nun stehen bei FIRST einige Umstellungen an, die ein 
weiteres kostenfreies Hosting nicht mehr moeglich machen. Daher
muessen wir uns mittelfristig nach einem neuen Standort
umsehen. Wir rechnen mit einem Umzug Anfang des kommenden Jahres.

Bisher sammeln wir Angebot und Moeglichkeiten, unseren Rechner
moeglichst guenstig irgendwo in ein Rack zu schieben.

Ueber Neuigkieten dazu werden wir EM+ sowie der MGeV 
zeitnah berichten. 

Gruss, Zook.

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



LD-fizierung des MorgenGrauens (1) (Zesstra, 19. Okt 2006, 21:45:22):
Huhu allerseits,
der Crash von gestern ist wenig geeignet, unsere Bemuehungen der Umstellung
auf LD zu verlangsamen, im Gegenteil. ;-)
Daher moechten wir den ersten der zwei grossen Schritte in diesem Prozess,
die einen Reboot zwingend erfordern, am Montag machen, weil wir dann eh eine
Downtime durch den Speichereinbau haben und mit diesem ersten Schritt nicht
bis nach der naechsten, vorraussichtlich deutlich laengeren Uptime warten
moechten.
Zu diesem Zweck wird das MG nach dem Speichereinbau im Laufe des Montags noch
ein paar weitere Stunden nicht spielbar sein. (Genaue Zeiten werden
kurzfristig bekanntgegeben.) 

In diesen paar Stunden ueberlegen wir momentan zwei moegliche Massnahmen, um
euch diese Wartezeit so angenehm wir moeglich zu gestalten:
a) Eine Kopie des MG wird laufen, in der zwar alles moeglich ist, aber die
Aenderungen, die in dieser Zeit erfolgen (z.B. an euren Chars), werden nach
den paar Stunden komplett verworfen.

oder 

b) Ein kleines Minimud mit wenigen Raeumen wird laufen, in dem man sich
treffen und unterhalten kann und evtl. aktuelle Infos ueber den Verlauf der
Arbeiten erhalten kann. 

Was von beidem wir vorbereiten, steht noch nicht fest, wir werden das am WE
bekanntgeben. Favorit ist momentan b), wenn mir die Zeit reicht. ;-)

Wer etwas genauer wissen will, was wir auf der technischen Seite vorhaben,
sollte hier weiterlesen, alle anderen koennen aufhoeren. ;-)

In LDMud sind einige Driver-Aufrufe (Efuns) umbenannt worden. Bevor die
Mudlib unter LDMud laeuft, muessen folglich alle betroffenen Efuns in der
Mudlib umbenannt werden. Wir moechten dies am Montag fuer die meisten
betroffenen Efuns tun. Gleichzeitig werden wir eine neue Version unseres
Drivers in Betrieb nehmen, in der diese Efuns ebenfalls umbenannt wurden. Das
bedeutet, wir haben dann einen Driver, in dem die Efuns bereits wie in LDMud
heissen, der sich aber wie unser gewohnter Driver verhaelt.
Die Mudlib, die wir dann haben, kann waehrend der naechsten Uptime so
vorbereitet werden, dass sie gleichermassen unter unserem alten wie auch dem
LDMud-Treiber funktionsfaehig ist.
Wenn wir durch Tests davon ueberzeugt ist, dass sie unter LD vernuenftig
funktioniert, werden wir bei einer sich bietenden Gelegenheit umschalten (das
wird noch ein bisschen dauern, d.h. die naechste Uptime wird solange andauern,
wie es geht (mit dem zusaetzlichen Speicher schaetzen wir ca. 3 Monate)).

Viele Gruesse,
Zesstra

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



Re: LD-fizierung des MorgenGrauens (1) (Zesstra, 23. Okt 2006, 15:38:46):
~#! rn=Zesstra rt=1161287122 rg=bekanntmachungen
~#! tid=1161287122
Huhu allerseits,

es scheint alles soweit geklappt zu haben: Die Umstellung lief gut und
zuegig, der Speicher ist drin, das Mud laeuft anscheinend weitgehend
fehlerfrei.
Zwar werden erst die naechsten Stunden richtig zeigen, ob alles gut ist, aber
wir koennen momentan optimistisch sein und erwarten keinen baldigen Crash
oder Reboot.

Da es einige Missverstaendnisse gab: Das Mud laeuft noch nicht unter LDMud.
Das war auch fuer heute nie geplant. Unsere Mudlib mit den heute getaetigten
Aenderungen laeuft zwar theoretisch unter LD, hat aber noch zuviele kleine
Fehler drin, die einen stabilen und dauerhaften Betrieb vermutlich verhindern
wuerden. Nach der naechsten Uptime (die hoffentlich dank neuem Speicher
deutlich laenger dauert als die letzten paar) wird der endgueltige Wechsel
wohl stattfinden.

Achja, noch was: Um Euch den Reboot etwas zu versuessen, haben wir uns eine
kleine Sonderaktion ausgedacht und hoffen, dass ihr Spass und Freude daran
habt. ;-) Was genau das ist, sehr ihr in Kuerze.

Viele Gruesse,
Zesstra

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



Driver 03.02.1 Patchlevel 150 (Zesstra, 13. Nov 2006, 23:18:39):
Huhu allerseits,

unter dem Motto besser spaet als nie, hab ich nun endlich die Sourcen des
aktuell im MorgenGrauen laufenden GameDrivers mit etwas angepasster Doku
versehen und fuer interessierte Magier und Spieler zusammengepackt.

Die Sourcen des neuen Drivers sind im FTP-Verzeichnis des Muds unter
Software/GameDriver zu finden:
  2ae081dfc7da63b2e00ba1557644f590  driver.03.02.1@150-20041113.tar.bz2
  3c914b8bc8794fb385900c37f84d1f84  driver.03.02.1@150-20041113.tgz

Die wichtigsten Aenderungen seit Patchlevel 148 sind im CHANGELOG zu finden.
Eine detaillierte Liste koennte ihr im SVN-Repository unter
https://mg.mud.de/svn/driver/ abrufen.

Bitte auf folgendes achten:
1. In diesem Driver wurden eine Reihe von Efuns umbenannt, die nun so heissen
   wie in LDMud. Dies wurde als Teil der Vorbereitung der MG-Mudlib fuer die
   Umstellung auf LDMud-3.3.x gemacht. Dementsprechend ist dieser Treiber
   _nicht_ kompatibel zu bisherigen Mudlib-Releases (inkl. 
   MorgenGrauen-3.2.20).

2. Das Logging im Garbage Collector wurde verbessert bzw. ausgeweitet.
   --gcollect_outfd akzeptiert nun allerdings nur noch Dateinamen, keine
   Zahlen als Dateideskriptoren mehr. Wenn beim Kompilieren GC_SEPARATE_LOGS
   definiert wird, bekommt jeder GC-Lauf sein eigenes Logfile (Suffix:
   akt. Zeitstempel).

Eine unter Windows lauffaehige Version des Drivers ist seitens Rikus in Arbeit
und wird sicher in Kuerze verfuegbar sein.

Eine neue Basis-Mudlib ist Vorbereitung und wird ebenfalls in Kuerze
nachgeliefert, wir haben da im Augenblick noch einige Kleinigkeiten zu
erledigen.

Viele Gruesse,
Zesstra

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



Verlorenes Land wiedergefunden (Zook, 17. Nov 2006, 16:47:09):
Hallo zusammen,

im Verlorenen Land gibt es einen Wechsel der Regionsmagier. Nonne tritt
von ihrem Posten zurueck und Esme rueckt dafuer nach. Besten Dank an 
Nonne fuer die lange Betreuung der Region und Dir, Esme, wuensche ich
viel Spass, Energie und Freude an Deiner neuen Aufgabe! 

Zook.

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



Neuer Hoster, neue Erzmagierin fuer Rechnerwartung, -hosting (Zook, 20. Nov 2006, 22:12:42):
Hallo zusammen,

wie schon an anderer Stelle geschrieben, muss unser Rechner nach vielen
Jahren das FhG Institut FIRST in Berlin verlassen und eine neue Bleibe
suchen. 

Bevor ich Euch berichte, wie es mit dem Rechner weitergeht, moechte ich
die Gelegenheit nutzen, meinen Dank an das FIRST-Institut fuer die 
jahrelange Unterstuetzung auszusprechen. Mein und unser Dank geht natuerlich
auch an Hate, der den Rechner vor Ort ueber die Jahre betreut hat.

Bei der Suche nach einer neuen Bleibe hat sich eine Vereinbarung mit
NetCologne in Koeln ergeben, die unseren Verein und damit auch das
MorgenGrauen mit dem kostenlosten Hosting des Rechners unterstuetzen
und sponsorn wollen. Moeglich wurde diese Vereinbarung durch
Amaryllis tatkraeftige Unterstuetzung, fuer die ihr an dieser Stelle 
gedankt sei.

Amaryllis hat sich auch bereit erklaert, die Rechnerwartung in Koeln
zu uebernehmen. Wir begruessen sie daher sehr herzlich in den Reihen
der Erzmagier und wuenschen ihr fuer ihre neue Aufgabe viel Erfolg
und wenig "Service-Einsaetze". 

Ueber die Details des Umzugs werden wir Euch in Kuerze informieren.

Gruss, Zook.

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



Re: Neuer Hoster, neue Erzmagierin fuer Rechnerwartung, -hosting (Amaryllis, 20. Nov 2006, 22:28:17):
~#! rn=Zook rt=1164057162 rg=bekanntmachungen
~#! tid=1164057162
Hallo alle,

ich danke fuer das entgegengebrachte Vertrauen und versichere, dass ich das
nicht enttaeuschen werde. Eine Rechneradministration setzt natuerlich Rechte
voraus, die ggf. missbraucht werden koennten, falls man nicht "integer"
arbeitet. Allerdings arbeite ich in dem Job schon seit langem und bin bei
NetCologne u.a. als Host/Postmaster taetig. Desweiteren laeuft das PK-Mud
schon seit ein paar Jahren ebenfalls in einem unserer Rechenzentren (unter
meiner Administration).

Ich freue mich, dass sich NetCologne ein weiteres Mal sehr kooperativ gezeigt
hat (musste nur quengeln ;)) und hoffe, dass es dem MG hier gut gehen wird -
es bekommt auf jeden Fall eine der redundantesten und besten Peerings, die ein
deutscher ISP zu bieten hat ;)

Gruesse,
Ama*

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



Sicherheitsluecke im FTP-Programm (Zook, 28. Nov 2006, 13:53:26):
Hallo zusammen,

wegen eines recht kritischen Sicherheitslochs im FTP-Programm proFTP[*]
wurde der FTP-Zugang von uns bis auf weiteres gesperrt. Wir werden in 
Kuerze eine neue Version installieren und dann den FTP-Zugang wieder 
oeffnen.

Wer zwischenzeitlich groessere Dateitransfers ausgefuehrt haben moechte,
wendet sich am besten an einen Erzmagier seines Vertrauens.

Gruss, Zook

 [*] http://www.heise.de/newsticker/meldung/81651

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



Abwesenheit (Amaryllis, 10. Dez 2006, 21:37:39):
Hi,

ich bin ab dem 18.12. bis wohl Anfang des neuen Jahres in der Uniklinik und
lasse mich da von hoffentlich knackigen Schwestern verwoehnen. Der Mudumzug
wird dadurch aber nicht aufgeschoben, nur wird meine Planung etwas "straffer".
Ich hoffe, es bleibt alles im Zeitplan und vor allem: die Feiertage in der
Uniklinik bringen mir hoffentlich was.

Daher von mir schonmal an alles frohes Fest und guten Rutsch.

Ama*

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



Re: Sicherheitsluecke im FTP-Programm (Zesstra, 11. Dez 2006, 00:32:12):
~#! rn=Zook rt=1164718406 rg=bekanntmachungen
~#! tid=1164718406
Huhu,

da wir nun leider schon laenger ohne den FTP-Dienst auskommen muessen: Wer
etwas zu uebertragen hat, schicke das bitte per Mail an zesstra@zesstra.de.
Ich schiebe das dann ins Home vom jeweiligen Magier, der dann per cp/mv von
dort weiter bewegen kann.
Das ist keine dolle Loesung, aber besser als gar nix.

Zesstra

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



Re: Re: Sicherheitsluecke im FTP-Programm (Zook, 11. Dez 2006, 09:01:06):
~#! rn=Zesstra rt=1165793532 rg=bekanntmachungen
~#! tid=1164718406
Fuer derartige Verschiebedienste steh ich auch zur Verfuegung, nutzt
dazu bitte zook@dbrunner.de als E-Mail-Adresse. Zook.

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



ftp (Muadib,  4. Jan 2007, 13:11:27):
Hallo,

der ftp sollte nun wieder gehen.
Die aktuelle mud_mod findet man unter /open/Software/FTP

Viel Spass
Muadib


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



Mudlib-Release 3.2.99 (Zesstra,  7. Jan 2007, 14:20:44):
Huhu,

es hat lange gedauert, weil es ne Reihe von Probleme gab, aber es gibt nun
doch eine neue Release der Basismudlib.
Unter ftp://mg.mud.de/Software/MudLib findet ihr nun also folgende neue
Archive:

1. MorgenGrauen-3.2.99.tar.[bz2|gz]
Dieses Archiv enthaelt eine Mudlib, die mit unserem aktuellen Driver
(03.02.1@150-20061113) lauffaehig ist. Die Versionsnr. hat einen grossen
Sprung gemacht, um anzudeuten, dass diese Mudlib mit allen aelteren Drivern
_nicht_ mehr lauffaehig ist. Ausserdem ist es sehr wahrscheinlich, dass dies
das letzte Release der MG-Basismudlib fuer einen LPMud-Gamedriver sein wird.

2. MorgenGrauen-3.3.0-beta1.tar.[bz2|gz]
Dieses Archiv enthaelt eine Mudlib, die mit LDMud-3.3.714 lauffaehig ist. Die
Unterschiede zu der in 1. erwaehnten sind uebrigens nicht sehr gross, unsere
Mudlib ist momentan recht kompatibel zu beiden Treibern. Betrachtet dieses
Paket eher als experimentell. Ich gehe allerdings davon aus, dass es
funktioniert, bisher kenne ich keine groesseren Probleme.
Es ist primaer dazu gedacht, den Leuten, die jetzt direkt auf ein
LDMud-Homemud umsteigen wollen, Arbeit zu ersparen. An Rueckmeldungen bin ich
natuerlich sehr interesssiert. ;-)

Wer ein LDMud-Homemud aufbauen will, hat es meist eigentlich recht einfach:
1. Gamedriver von http://www.bearnip.com/ftp/mud/ldmud-3.3.714.tar.gz ziehen.
2. Auspacken und konfigurieren (hierfuer bietet sich z.B. das File
Morgengrauen_LDsettings in ftp://mg.mud.de/Software/MudLib an). Hierbei muesst
ihr in dem Settingsfile noch das Basisverzeichnis fuer euer Homemud aendern
(MUDHOME). Anschliessend das Morgengrauen_LDsettings im src/ von LDMud
ausfuehren.
3. make && make install_all
4. Mudlib in MUDHOME entpacken, so dass die Mudlib in MUDHOME/mudlib liegt.
5. Gamedriver starten.

(Unter Windows braucht ihr Cygwin zum kompilieren, da kann ich gerade aber
keine speziellen Hinweise zu geben.)

OK, die Mudlib-Archive haben noch die folgenden MD5-Summen:
9907bc604cd8dacf6ede5e4e3e3c0c5c  MorgenGrauen-3.2.99.tar.bz2
366df9874e5e652b7d2d0785e66462ab  MorgenGrauen-3.2.99.tar.gz
72c9eab01b3cb865885b24dcf6a280fe  MorgenGrauen-3.3.0-beta1.tar.bz2
b6ac5b2a575c019e029089d84f61e507  MorgenGrauen-3.3.0-beta1.tar.gz


Viel Spass und Erfolg!
Zesstra

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



MG-Umzug (Amaryllis, 19. Jan 2007, 23:09:25):
Hallo,

wie Ihr sicher alle mitbekommen hat, steht der Umzug des MG-Servers ins Haus.
Ich moechte Euch hierfuer aus technischer Sicht erste Informationen geben,
damit Ihr Euch darauf einstellen koennt. Disclaimer: Dies ist die vorlaeufige
Planung, die sich aufgrund etwaiger Eventualitaeten kurzfristig aendern kann.

Der Umzug wird nach jetzigem Stand am 30./31.01/01.02. stattfinden.

Ablauf: 30.01.: Hate wird morgends ein aktuelles Backup anwerfen. Es koennte
passieren, dass beim Transport des Servers von Berlin nach Koeln Hardware
kaputtgeht oder aber die Platten nach jahrelangem Laufen nicht mehr
hochkommen. Es besteht daher das Risiko, dass ich auf ein aktuelles Backup
zurueckgreifen muss. Fuer ALLE bedeutet das: Am Abschaltungstag KEINE
wichtigen Aenderungen mehr vornehmen.

Ein Transportdienst wird ab Mittag (sobald das Backup durch ist) den Server
mitnehmen. Nach Leistungsbeschreibung wird die Lieferung in Koeln am Morgen
des naechsten Tages in Koeln erfolgen.

31.01.: Ich werde den Server in Koeln in Empfang nehmen, hoffentlich
schadensfrei. Ab hier ist Unsicherheit, was den Start des Muds angeht
(zeitnmaessig). Im schlimmsten Fall muss Hardware nachgekauft und installiert
werden. Im guenstigsten Fallrechne ich damit, dass das Mud abends wieder
laeuft. Was die neue IP angeht, so wird der DNS so zeitnah geaendert, dass er
sich bis dahin rumgesprochen haben sollte. Ich kann und will die neue IP
derzeit nicht nennen, da ich wenig Lust habe, waehrend meiner Bastelarbeiten
geDOSt zu werden ;)

Die naechsten Tage wird die Loginmeldung entsprechend adaptiert werden, damit
auch nicht-MPA-lesende Mitspieler informiert sind. Ansonsten koennen am
"Kampftag" auch Informationen ueber andere MUDs ueber d-chat erfolgen.

Entspannt Euch einfach und geniesst mal einen mudfreien Tag - man kann damit
auch RL betreiben ;)
Ansonsten hoffe ich auf eine relative stoerungsfreie (fuer mich :))
Umstellung.

Gruss
Ama*

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



LD-Umstellung (Zesstra, 22. Jan 2007, 21:30:04):
Huhu,

auch ich habe eine Bekanntmachung fuer euch. ;-)
Die Vorbereitungen fuer die LD-Umstellung, die seit September laufen, sind nun
soweit, dass wir den naechsten grossen Schritt machen koennen, die eigentliche
Umstellung naemlich. Wir wollen also nach dem Umzug das Mud mit LDMud, statt
unseres alten Gamedrivers starten.
Diese Umstellung soll zeitgleich (also 31.1./1.2.) mit dem Umzug des Rechner
gemacht werden, da es vielleicht 1-2 Tage und eine Reihe von Neustarts
erfordern wird, bevor das Mud stabil laeuft. Machen wir das waehrend des
Umzugs, tun die Neustarts keinem besonders weh. ;-)
Momentan sieht der Plan so aus:
1. Nach Shutdown des Muds werde ich die dann aktuelle Mudlib auf einen anderen
Rechner kopieren.
2. Auf diesem von mir administrierten Rechner werde ich die letzten
Vorbereitungen an der Mudlib vornehmen (die ich nicht im laufenden Betrieb
machen kann).
3. Sobald ich damit fertig bin und das Mud grundsaetzlich laeuft, werde ich
diese Instanz des Muds fuer Spieler und Magier oeffnen, wer dann will, kann
sich einloggen und mir beim Bugsuchen helfen. ;-) Alles, was in dieser Phase
an Problemen noch gefunden wird, wird uns hinterher das Leben, sprich die
Uptime verbessern.
4. Sobald der Mudrechner in Koeln von Amaryllis wieder in Betrieb genommen und
vorbereitet wurde, werde ich die vorbereite Mudlib wieder dorthin kopieren und
wir nehmen das Morgengrauen wieder 'richtig' in Betrieb.

Abschliessende Detailinformationen (wie z.B. die IP-Adresse des MG in Schritt
3 oder einen genauere Zeitplanschaetzung) werde ich in den naechsten Tagen in
der MPA veroeffentlichen.

Weitere Informationen fuer Magier, was an der Mudlib geaendert werden wird,
folgen in Kuerze in den Magierrubriken der MPA.

Also, ich hoff, dass Umzug und Umstellung planmaessig und ohne grosse Probleme
klappen. Wer bei diesem Schritt mithelfen will, Fehler im umgestellten Mud
aufzuspueren, ist herzlich eingeladen, egal ob Spieler oder Magier. Wer
einfach so mal reinschauen will, kann auch das tun.

Viele Gruesse,
Zesstra

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



Re: MG-Umzug (Amaryllis, 25. Jan 2007, 19:44:46):
~#! rn=Amaryllis rt=1169244565 rg=bekanntmachungen
~#! tid=1169244565
Update:

Dem Umzug sollte nichts mehr im Wege stehen. Das MUD wird laut Hate am
30.01.2007 um 09:00 Uhr heruntergefahren, damit Backups etc. stattfinden
koennen.

Ich rechne mit dem Anlaufen am 31.01.2007, Uhrzeit unbekannt ;)

Updates, neue Infos und insbesondere die neue IP fuer diejenigen, die sich
keinen Provider mit vernuenftig schnell aktualisiertem DNS leisten koennen
*g*, wirds auf der beim Login propagierten Webseite geben.

Ama*

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



Re: LD-Umstellung (Zesstra, 26. Jan 2007, 21:49:57):
~#! rn=Zesstra rt=1169497804 rg=bekanntmachungen
~#! tid=1169497804
Huhu allerseits,

ich praezisiere meine Informationen fuer kommenden Di/Mi auch nochmal bzw.
reiche fehlende nach:

1.
Wie geschrieben, macht Hate ab 9:00 ein komplettes Backup und bereitet den
Rechner fuer den Transport vor. Ich werde vorher die aktuelle Mudlib kopieren
und dazu das Mud abschalten muessen. Daher wird die Abschaltung des Muds
bereits etwas eher stattfinden, naemlich zwischen 08:00 und 08:30.

2.
Ich kann noch nicht genau sagen, wie lange die letzten wichtigen
Vorbereitungen an der Mudlib dauern, aber ich rechne damit, dass die
umgestellte MG-Instanz bis spaetestens zum Dienstag Nachmittag fertig und auf
mg.fcho.de (Port 4711) laufen wird. Wer dann reinschauen moechte, ist
eingeladen, dies zu tun. ;-) Wenn dabei Bugs oder Unstimmigkeiten auffallen:
direkt bescheidsagen.

3.
Ich (evtl. auch andere? ;-) ) werde fuer die Dauer des Umzugs im Epacris
(epacris.mud.de) eingeloggt sein, spaeter dann natuerlich auch auf mg.fcho.de.
Ich werde nicht die ganze Zeit ansprechbar sein, aber bei Fragen antworte ich
nach Moeglichkeit dann spaeter, wenn ich wieder Zeit hab.

Viele Gruesse
Zesstra

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



Re: Re: MG-Umzug (Amaryllis, 29. Jan 2007, 22:27:03):
~#! rn=Amaryllis rt=1169750686 rg=bekanntmachungen
~#! tid=1169244565
Hi,

um Geruechten entgegenzuwirken:
Meine Abwesenheit war bedingt durch einen Autounfall. Ich hoffe, ab morgen
wieder normal im Buero sein zu koennen. Der Umzugstermin/plan bleibt weiterhin
normal bestehen.

Ama*

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



Re: LD-Umstellung (Muadib, 31. Jan 2007, 20:19:10):
~#! rn=Zesstra rt=1169497804 rg=bekanntmachungen
~#! tid=1169497804
noch ne ankuendigung, aber wesentlich weniger text
am wochenende werde ich das mud einbiszweimal neustarten muessen, wegen einer
langaufgeschobenen mudlibaenderung

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



Re: Re: LD-Umstellung (Amaryllis, 31. Jan 2007, 20:21:28):
~#! rn=Muadib rt=1170271150 rg=bekanntmachungen
~#! tid=1169497804
Guter Reminder ;)

Das erinnert mich daran, dass ich hier auch noch rausposaunen wollte, dass das
MUD aufgrund kompletter Neuaenderung (IP, Provider, Mudlib, Admin ;)) wohl die
naechsten Tage etwas instabil ist (siehe Login-Meldung).

Ich gebe mein bestes, aber mehr auch nicht.

Ama*, erstmal geschafft.

PS: Ja, ich weiss, es laeuft noch nicht alles. FTP/WWW/Mail kommt ASAP

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



Autoloader (Zook,  2. Feb 2007, 16:47:16):
Bitte achtet einmal darauf, ob Ihr nach dem Einloggen unter LDmud noch alle
Eure Autoloader habt und gebt mir ggf. bitte Bescheid, falls etwas fehlt.

Zook

PS: Nein, ich werde nun nicht jedem eine neue Hydra-Ruestung clonen.

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



Port 23... (Amaryllis,  2. Feb 2007, 20:12:00):
...geht derzeit wieder, koennte aber ab und an mal hakeln, bis das Problem
eingekreist ist.
Im Zweifelsfall 4711 nehmen (wie passend).

Ama*

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



Welchen Gegner toete ich jetzt? (Muadib,  3. Feb 2007, 13:43:24):
Hallo Zusammen,

ehrwuerdige Seher, welche gar nicht wissen wohin sie denn zum Toeten sollen,
bekommen nun von einem vielen Gegner kennenden Geschoepf aus der Fraternitas
eine kleinere Hilfestellung dazu.
Die entsprechenden Orakelsprueche sind noch recht holperig und werden wohl
erst ueber laengere Zeit huebscher.
Das gleiche gilt fuer das angesprochene Geschoepf und dessen Informationen zu
seiner neuen Funktion.

Viel Spass damit
Muadib



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



Re: Welchen Gegner toete ich jetzt? (Muadib,  3. Feb 2007, 13:43:42):
~#! rn=Muadib rt=1170506604 rg=bekanntmachungen
~#! tid=1170506604
bugs an mich, es wird sicher welche geben

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



Re: Welchen Gegner toete ich jetzt? (Muadib,  3. Feb 2007, 13:45:08):
~#! rn=Muadib rt=1170506604 rg=bekanntmachungen
~#! tid=1170506604
Ah, 
ganz wichtig noch
Ohne Ende oder Reboot keinerlei Tips

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



Reboot (Amaryllis,  4. Feb 2007, 18:50:34):
Hi,

wenn ich alles noch hinkriege und mich mein Chef nicht wieder abruft, werde
ich morgen gg. 8 Uhr den Server rebooten. Da es noch vage ist und ich keinen
langen Armageddon einstellen kann, wird dies dann kurzfristig passieren.
Falls das nicht klappt, werden wir einen neuen Termin suchen muessen.

Gruss,
Ama*

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



Reboots heute (Amaryllis,  5. Feb 2007, 15:04:16):
Hi,

nach den zwei Reboots heute (der zweite war notwendig, weil ich gesehen habe,
dass die ganze Distri arg inkonsistent zwischen Etch und Unstable pendelte)
hat alles soweit inkl. eines Kernel-Upgrades geklappt. Ich hoffe also, dass
zumindest serverseitig so schnell kein Reboot mehr notwendig sein wird.

Obwohl meine Todoliste noch recht lange ist (Ueberwachung, Backup, ...) gehe
ich daher zumindest von einem stabilen Serverbetrieb aus.

Ich moechte die Gelegenheit nutzen und mich auch einmal bei allen am
Serverumzug beteiligten (Hate, Zesstra, Zook, Anatol etc.) recht herzlich fuer
die Unterstuetzung und den Einsatz zu bedanken.

Gruss,
Ama*

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



LD-Umstellung prinzipiell abgeschlossen. (Zesstra,  5. Feb 2007, 22:24:54):
Huhu allerseits,

nachdem die LD-Umstellung letzte Woche zwar mit zeitweiligem Stress und noch
einigem an Arbeit verbunden war, insgesamt aber besser als erwartet verlief,
moecht ich auch noch kurz auessern. ;-)
Die Vorbereitungen ueber die letzte 3-4 Monate waren anstrengend und teilweise
auch frustrierend, aber haben sich gelohnt. Ich moechte mich bei allen
bedanken, die daran mitgewirkt haben. Allen voran Arathorn, der viel Code
repariert und angepasst hat, aber auch bei Highlander, Esme und Vanion sowie
allen anderen Magiern, die ihren eigenen Code bzw. den ihrer Regionen und
Gilden angefasst haben.

Inzwischen laeuft das Mud bis auf kleinere Nachwehen ganz gut und ich geh
eigentlich davon aus, dass es nicht allzuschnell crasht oder wir einen Reboot
fuer Driver oder Mudlib brauchen.
Heut mit dem Reboot sollten nochmal einige Fehler verschwunden sein. Wer jetzt
noch grundsaetzliche Probleme hat, moege sich bitte (nochmal) melden.
(einzelne NPCs/Objekte/Raeume buggen noch, die kriegen wir in naechster Zeit
hin.)

Beispiel fuer grundsaetzliche Probleme: Bei einigen Spielern sind Daten an der
Medaille von Lasse Rein (Drachentoeterquest) kaputt. Bitte bei den RMs der
entsprechenden Regionen oder einem EM melden. ;-)

Also dann: froehliches Mudden,
Zesstra

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



erwidere (Muadib,  8. Feb 2007, 18:25:42):
Hallo,

eine kleine Unwichtigkeit am Rande:

"teile , mit <text>" hat nun die Funktion von erwidere.
Erwidere geht natuerlich immer noch.

Das Ganze geht nach Ende oder Reboot.

Ciao
Muadib

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



Morgengrauen-Mudlib 3.3.0 (Zesstra, 14. Feb 2007, 17:19:02):
Huhu,

die Mudlib hat sich bisher offenbar als halbweg stabil erwiesen. Ich bin
gestern auch dann mal dazu gekommen, ein Release zu erstellen. (Was momentan
leider etwas Handarbeit ist.)
Wie bei der letzten Release schon geschrieben, haben wir die Versionsnummern
der LD-faehigen Mudlibs auf 3.3.x erhoeht, um zu zeigen, dass es ein
groesserer Sprung ist und die Mudlib nicht mehr mit einem LP Gamedriver
funktioniert.

Auf ftp://mg.mud.de/Software/MudLib/ findet ihr nun also die
MorgenGrauen-3.3.0 zum Download.
Diese Mudlib ist fuer die Verwendung mit LDMud-3.3.714 gedacht. 
(http://www.bearnip.com/ftp/mud/ldmud-3.3.714.tar.gz)
Ein File mit den passenden 'configure'-Settings fuer die MG-Mudlib ist im
Verzeichnise 'scripts/ enthalten, ggf. muesst ihr dort die Verzeichnisse fuer
euer Homemud anpassen.

MD5-Checksummen zum Pruefen des Downloads gibts natuerlich auch:
6ea3e87041ca9dd017ee2969a46b3c2f *MorgenGrauen-3.3.0.tar.bz2
906775e7102ac7e1ec01882cc4f7d473 *MorgenGrauen-3.3.0.tar.gz

Viel Spass,
Zesstra

P.S. Bei Problemen mit der Mudlib bin ich wie immer ueber Rueckmeldungen
dankbar!

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



24/7-Aenderung (Zook, 13. Mar 2007, 15:10:27):
Hallo zusammen,

Muadib moechte zum Ende diesen Monats von seinem Posten als Sheriff und 
Erzmagier zuruecktreten. Schweren Herzens habe ich dies angenommen. Mein
besonderer Dank gilt seiner jahrelangen Arbeit als Sheriff einerseits und
seinem vielfaeltigen Engagement fuer Weiterentwicklungen andererseits! 

Ueber eine Nachfolge haben wir noch nicht entschieden; Vorschlaege 
nehme ich per Mail gern an, aber es kann auch sein, dass wir den 
Sheriff-Posten in einer anderen als der bisherigen Weise fortfuehren.

Nochmals besten Dank an Muadib! :-))) 

Zook.

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



Re: 24/7-Aenderung (Muadib, 13. Mar 2007, 18:03:57):
~#! rn=Zook rt=1173795027 rg=bekanntmachungen
~#! tid=1173795027
Ebenfalls hallo zusammen,

ich moechte mich bei allen fuer das entgegengebrachte Vertrauen einerseits und
die groesstenteils konstruktive Reibung andererseits ueber die letzten Jahre
bedanken.

Und nun alle schoen brav spielen und Werbung machen damit ich ein wenig
Konkurrenz beim Spielen habe :)

Muadib

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



Neue Regionsmagier und neue Gebiete (Zook, 26. Mar 2007, 15:58:20):
Hallo zusammen,

dem Reigen der Regionsmagier treten Ennox und Raschaua bei. Sie verstaerken
das Team in der Region "Wueste" und warten dafuer mit einem besonderen
Schmankerl fuer Euch auf: Da viele Gebiete im Mud "Epacris" nur von wenigen
Spielern besucht werden, wollen die Beiden Gebiete nach Zustimmung des 
Magiers und nach Anpassung an das MorgenGrauen an der einen oder anderen
Stelle in der Wueste auferstehen lassen. Ich finde das eine schoene Idee,
da so die Kreativitaet und Arbeit von einigen nicht verschuett geht, sondern
an andere Stelle genutzt werden kann. Ueber die genauen Modalitaeten und 
wie und wo und warum und was noch alles zu tun und zu bedenken ist, werden
uns die beiden Neu-Regionsmagier noch selbst informieren. 

Gruss, Zook.

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



***Das MG ist kein Killerspiel*** (Rumata, 31. Mar 2007, 22:42:32):
Im Rahmen der Diskussion um die sogenannten "Killerspiele", ist man an
uns herangetreten, dass auch wir der Gewalt froehnen und dass das im
MUD erlernte Konfliktverhalten wenig konstruktiv ist.

Deshalb wollen wir das Gewaltverherrlichende schrittweise aus dem Spiel
nehmen. Dazu:

- Mit jedem geschlachteten Monster wird nun eine begleitende Meldung erzeugt,
  die das Schlechte an solchen Verhalten zu vermitteln versucht.

- Es werden keine XP mehr fuer das Abschlachten von Monstern vergeben.
  Da XPs fuers Erhoehen benoetigt werden und diese ohne Metzeln schwerer
  zu bekommen sind, wird das Balanceteam neue Grenzen festlegen.
  Das dauert noch ein paar Tage.

- Das Abschlachten von Monstern ausserhalb designierter Areale (Arena und so),
  wird unter Strafe gestellt. Da dazu einige Quests umgeschrieben
  werden muessen, haben wir dafuer 12 Monate veranschlagt.

- Das Toeten allgemein kann dann allgemein ausgebaut werden.

Ich moechte ein paar Vorschlaege in den Raum werfen, wie wir das ganze
"abfedern" koennten und erbitte weitere Vorschlaege (in allgemeines, bitte)
wie:
- Kitzeln (nicht nur am Bauch) als Angriffstechnik.

- Evtl. Kissen als Wurfwaffen zulassen.

- ???

Rum**

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



Froehliches Eiersuchen! (Miril,  8. Apr 2007, 10:14:43):
Frohe Ostern wuensche ich Euch!

In diesem Jahr bin ich wieder durch einige Gegenden des MorgenGrauen gehoppelt
und habe dort Ostereier fuer Euch versteckt. Damit Ihr es etwas leichter habt,
koennt Ihr mich am Sandtiger treffen und Euch weitere Informationen dazu
abholen.

Der Osterhase

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



[W]eiser fuer Umstellung ASCII-Art (Zook, 18. Apr 2007, 09:20:37):
Hallo zusammen,

Ennox unermuedlicher Einsatz fuer die Entschaerfung von ASCII-Art kann 
sich nun fuerhin direkt und unmittelbar im Programmcode niederschlagen:
Fuer dieses "Projekt" habe ich ihn eben zum [W]eisen befoerdert.

Zook.

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



Wartungsarbeiten NetCologne Rechenzentrum II (Amaryllis, 27. Apr 2007, 21:29:20):
Hi,

in der Nacht vom 07.05. zum 08.05. finden in dem Rechenzentrum, in dem der
Mudserver steht, Wartungsarbeiten bzw. Umschaltungen am Stromnetz statt.

War ja klar (Murphy), dass ich da im Urlaub bin und das Ganze nicht mit
beobachten kann.

Ums kurz zu machen: Es koennte sein, dass der Mudserver abfliegt wegen
Stromproblemen. Da ich wie gesagt im Urlaub bin, werde ich dafuer sorgen, dass
Kollegen informiert sind und wir das zweite Netzteil, das der Server zum
Glueck hat, auf eine Stromleiste umstecken, die durchgehend Saft haben sollte.
Aber Garantie gibt es keine...

Ich kann die Aktion nicht beobachten und kann deshalb nur entsprechend
umsichtig planen - seid bitte nicht boese, wenn es wirklich zu einem Ausfall
kommen sollte, aber ich tue alles, damit das auch ohne meine Anwesenheit
klappt.

Gruss,
Ama*

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



Neuer Extralook-Mechanismus (Zesstra, 14. Mai 2007, 22:26:08):
Huhu,

ich hab heut eine der geplanten Massnahmen eingebaut, die das Ziel haben, das
Inventar von Spielern um ein paar Objekte zu "befreien".
Bei Extralooks war es bisher so, dass es im wesentlichen nur die Moeglichkeit
hab, ihm ein Objekt ins Inv zu stecken, was zur Folge haben kann, dass Spieler
einige unsichtbare Objekte im Inventar haben, die jeweils nur den Extralook
ausgeben.
Ab jetzt (nach Ende/Reboot) steht ein Mechanismus bereit, der ohne Objekt im
Spielerinventar auskommt. Wir werden in der naechsten Zeit dran arbeiten, die
haeufigsten und die Objekte, die permanent im Spieler verbleiben (autoload)
umzustellen.


Zesstra

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



Re: Neuer Extralook-Mechanismus (Rumata, 15. Mai 2007, 16:28:25):
~#! rn=Zesstra rt=1179174368 rg=bekanntmachungen
~#! tid=1179174368
Um die Anzahl der Objekte in den Raeumen etwas zu verkleinern, verhalten
sich nun die Leichen etwas anders. Anstatt vieler Gegenstaende werdet
Ihr nun einen "Haufen Kluengel" finden. Was man mit diesem Haufen machen
kann, werdet Ihr sicher schnell herausfinden.

Rum**

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



Haufen, die II. (Rumata, 15. Mai 2007, 21:24:45):
Hallo,
nun sollten die ueberfluessigen Leerzeichen im haufen nicht mehr
auftauchen, und auch das mit den leeren Haufen wird sich im Laufe
der Zeit von alleine Erledigen (einen Reboot wollen wir deshalb wohl
nicht machen, oder? ;-)

Rum**

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



Re: Haufen, die II. (Rumata, 18. Mai 2007, 12:48:21):
~#! rn=Rumata rt=1179257085 rg=bekanntmachungen
~#! tid=1179257085
Bei gleichen Monstern findet nun keine Haufeninvasion mehr statt.
Aus technischen Gruenden passiert das aber erst nach einiger Zeit.
Bereits bestehende Haufenhaufen bitte ich geneigte Spieler aufzuraeumen :)
Rum**

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



'klingelton' und 'senderwiederholung' (Zesstra, 22. Mai 2007, 20:28:47):
Huhu,

Ennox hat folgendes angeregt und gebaut:
1. Spieler koennen bei teile-mit und sage einstellen, ob sie
  "xxx teilt Dir mit: ..."
  "xxx teilt Dir mit: ..."
  "xxx teilt Dir mit: ..."
oder
  "xxx teilt Dir mit:"
  "kompletter_tm_text"
bekommen wollen. Siehe hierzu 'hilfe senderwiederholung'

2. Spieler koennen statt pauschal ein- oder aus zusaetzlich einstellen, wie
oft sie bei TMs die Piepstoene haben wollen (z.B. Piepston nur alle 60s, auch
wenn jede Sekunde ein TM reinkommt). Siehe hierzu 'hilfe klingelton'

Die Idee fand Zustimmung und ist seit heute Abend eingebaut. Um die beiden
neuen Funktionen nutzen zu koennen, braucht Ihr ein neues Spielerobjekt, d.h.
ihr muesst entweder 'ende' machen oder auf Reboot warten. ;-)

Vielen Dank an Ennox!

Zesstra

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



Mudlib-Release 3.3.1 (Zesstra, 17. Jun 2007, 20:55:12):
Huhu,

nach inzwischen wieder 4 Monaten wird es definitiv mal wieder Zeit fuer ein
neues Release der oeffentlichen Mudlib, zumal es einige Reihe von
Veraenderungen gegeben hat. ;-)
Das neue Release wurde mit einem neuen Script aus dem SVN-Repository erstellt.
Ich hoffe, es ist alles wichtige drin, es koennte aber sein, dass ich was
uebersehen hab. Falls das der Fall ist oder es sonstige Probleme mit dieser
Version gibt, meldet euch bitte bei mir. ;-)

Auf ftp://mg.mud.de/Software/MudLib/ findet ihr also ab jetzt die
MorgenGrauen-3.3.1 zum Download.

Diese Mudlib ist, wie auch die letzte Version, fuer die Verwendung mit
LDMud-3.3.714 gedacht. 
(http://www.bearnip.com/ftp/mud/ldmud-3.3.714.tar.gz)
Ein File mit den passenden 'configure'-Settings fuer die MG-Mudlib ist im
Verzeichnise 'settings/ enthalten, ggf. muesst ihr dort die Verzeichnisse fuer
euer Homemud anpassen.
Ein Windows-Binary des aktuellen LD-Treibers gibt es auch, ich glaub, das war
von Ennox/Vanion:
ftp://mg.mud.de/Software/GameDriver/ldmud-3.3.714-win.zip

MD5-Checksummen zum Pruefen des Downloads gibts natuerlich auch:
82e5504384a4559010138f2df48923e0  MorgenGrauen-3.3.1.tar.gz
2895e290817bbfc7be2a1adb307d1819  MorgenGrauen-3.3.1.tar.bz2

Viel Spass,
Zesstra

Zesstra

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



taegliche Snapshots der Mudlib (Zesstra, 17. Jun 2007, 22:48:21):
Huhu,

zukuenftig wird es in ftp://mg.mud.de/Software/MudLib auch taeglich
aktualisierte Snapshots der oeffentlichen Mudlib
(MorgenGrauen-daily.tar.*)geben, die jeweils nachts erstellt werden.

Ich bitte bei diesen allerdings folgendes zu beachten:
- sie sind in keiner Weise getestet
- es wird vorkommen, dass so ein Snapshot (gravierende) Fehler oder 
  Inkonsistenzen aufweist.
- es kann vorkommen, dass so ein Snapshot nichtmals startbar ist.

Also, wer sie nutzen und immer die aktuellste Mudlib im Homemud haben will,
kann dies mit genannten Einschraenkungen nun tun, ohne sich die einzelnen
Files per FTP zu ziehen.
Sich so einen Snapshot wirklich taeglich zu ziehen, halte ich uebrigens fuer
voellig unnoetig, Download bei groesseren Aenderungen oder alle paar Wochen
duerfte fuer die meisten Leute ausreichen.

Viele Gruesse,

Zesstra

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



Reboot (Amaryllis,  9. Jul 2007, 21:56:49):
Hi,

kann sein, dass es in absehbarer Zeit mal einen betriebsbedingten Reboot geben
muss.
Ich kann leider noch nicht viel sagen (hoffe, wir kommen drumrum), was Details
angeht, aber ich wollts nur schonmal angekuendigt haben, damit hinterher die
Meckerei nicht so gross ist ;)

Ama*

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



Cicerone-Erweiterung (Zesstra, 31. Jul 2007, 19:33:24):
Huhu,

ich hab heut den Cicerone-Status etwas umgebaut (z.B. auf meinen Wunsch hin
*g*). In Zukunft kann man auch angeben, dass man nur als Cicerone angezeigt
werden mag, wenn man nicht laenger als x Minuten idle ist.
z.B.
cicerone 5 -> Man ist Cicerone und wird nur angezeigt, wenn man weniger als 
              5min idle ist.

Die bestehenden "ein" und "aus" bleiben natuerlich bestehen, da aendert sich
nix.
Achja, funktioniert erst ab Reboot richtig mit der kwer-Anzeige, der
erweiterte Befehl geht "schon" nach Renew.

Zesstra

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



Doxygen-Doku der Basis-Mudlib (Zesstra, 21. Aug 2007, 23:50:12):
Huhu,

ich habe (endlich!) eine neue Version der Doxygen-Dokumentation der
Basis-Mudlib erstellt. Es basiert auf der Lib von heute Abend. In Zukunft will
ich diese Doku immer mit der Erstellung von Lib-Releases aktualisieren. Das
neue Doxygen enthaelt nun auch sowas wie Include-Graphen (wer inkludiert was)
und Caller-Graphen (welche Funktion ruft welche andere auf), was eine schoene
Sache ist. Allerdings der Wermutstropfen: Doxygen ist fuer C/C++/Java gedacht
und kommt mit LPC nur begrenzt zurecht.
Finden koennt ihr das unter: http://mg.mud.de/doxydir/
Ich schreib das hier mal in bekanntmachungen, weil es ja immer mal wieder auch
Spieler gibt, die sich fuer die oeffentliche Mudlib interessieren.
BTW: Wem Doxygen bisher noch gar nix sagt: Schauts euch einfach mal an, dann
seht ihr schnell, was es ist. ;-)


Zesstra

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



Spieler vs. Spieler (Ark, 12. Sep 2007, 15:43:07):
Da viele neu hier sind, dient dieser Artikel als Erinnerung der allgemein
bekannten Regel aus dem Login Text: Spieler duerfen andere Spieler nicht
ausserhalb der dafuer vorgesehenen Raeumlichkeiten (Arena, Schlachtfeld ...)
angreifen.
Spieler sind alle Interaktiven Objekte, besser verstaendlich: jeder, der
hinter einem Keyboard sitzt und einen Kampf gegen einen anderen Spieler
beginnt. Darunter fallen auch Zweitis! Der Grund ist egal, der Vorfall kann
mit Jail und Spielpause bis hin zu Loeschung der Charaktere bestraft werden.
Jeder solche Angriff wird an alle Magier gemeldet, darueber sollte sich jeder
klar sein. Auf Nachsicht zu spekulieren, davon wuerde ich abraten. Im Zweifel
ist es uns nicht moeglich, ein Versehen zu erkennen. Bei Zweitis schliesse ich
sowas aus.
Bitte haltet Euch daran, diese Regel ist nicht neu, aber es sollte immer mal
wieder daran erinnert werden, dass das kein PK Mud ist (eh klar :-)). Fuer das
Toeten und Ueben stehen mehr NPC zur Verfuegung als hier je Spieler
umhertollen.

Vielen Dank.


              *** ARK * the * Magnificent ***


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



Reboot (Amaryllis, 19. Sep 2007, 21:55:35):
Hi,

am Sonntag abend (23.09.) wird es einen Reboot geben. Uhrzeit ist noch nicht
sicher, vermutlich spaeter Abend vor Mitternacht.

Ama*

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



Crash vom 19.9.07 (Zesstra, 19. Sep 2007, 22:00:40):
Huhu,

wie ihr alle mitgekriegt habt, ist leider das Mud heut nachtmittag gecrasht.
Der Ausloeser fuer den Crash ist inzwischen bekannt. Es handelt sich um einen
Fehler im Driver, ueber den ein Magier heute ungluecklicherweise gestolpert
ist. Wir werden da hoffentlich in den naechsten Tagen die genauen Ablaeufe
enthuellen und hoffentlich auch einen Fix dafuer bauen koennen.

So, nun noch zu einem weiteren unangenehmen Punkt: Der Zeitpunkt des Crashs
war etwas unguenstig, eigentlich hatte ich vor einem Reboot noch ein paar
Dinge in der Mudlib und im Driver abschliessen wollen. Hinzu kommt, dass
einige Dinge nach dem Neustart buggen und nicht so laufen wie sie sollten, was
einigen von euch schon aufgefallen ist. Das ist nach langen Uptimes nicht ganz
ungewoehnlich, weil sich in dieser Zeit viele Aenderungen in der Mudlib
ansammeln, die erst mit einem Reboot aktiv werden. Und deren (negative)
Auswirkungen manchmal erst dann offenbar werden.
Ich werde jetzt sehen, dass ich einiger meiner Punkte noch moeglichst schnell
abarbeite und die momentan auftretenden Fehler und Inkonsistenzen eliminiere,
bis dann der von Amaryllis ja bereits angekuendigte Reboot erfolgt.

Ich moechte euch bitten, bisher unbekannte Fehler und Merkwuerdigkeiten mir
oder anderen Magier per Mail oder per TM mitzuteilen. ;-)

Zesstra

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



Re: Reboot (Amaryllis, 24. Sep 2007, 17:26:07):
~#! rn=Amaryllis rt=1190231735 rg=bekanntmachungen
~#! tid=1190231735
Reboot lief soweit problemlos, eine Kleinigkeit gibt noch Anlass zur Suche
bzw. Analyse, sollte aber die neue, hoffentlich lange Uptime nicht
beeintraechtigen.

Ama*

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



Aus alt mach neu... (Zesstra, 20. Okt 2007, 01:08:57):
Huhu,

falls ihr euch wundert, dass ihr einige Ruestungen nicht mehr anhabt: einige
Ruestungen hatten ein paar Probleme, was mich dazu bewogen hat, euch zum Teil
mit brandneuen Ersatzexemplaren auszuruesten. ;-)
Kleiner Nachteil: Ihr muesste die ersetzten Ruestungen per Hand wieder
anziehen, aber ich denk, das sollte kein grosses Problem sein. ;-)


Zesstra

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



Re: Aus alt mach neu... (Zesstra, 20. Okt 2007, 14:43:33):
~#! rn=Zesstra rt=1192835337 rg=bekanntmachungen
~#! tid=1192835337
Und ne kleine Fortsetzung bei den Autoloadern, die ich gestern noch nicht
geschafft hab. Diese werden beim Einloggen ausgetauscht. Ausser, dass ihr den
Kram ggf. neu anziehen muesste, sollten dabei keine Nebenwirkungen entstehen.
Falls ihr doch irgendwelche Probleme mit den betreffenden Items im Anschluss
bemerkt: Bitte wendet euch an mich.

Zesstra

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



EKs und Tips von Brumni (Zesstra,  8. Nov 2007, 21:00:28):
Huhu,

um den Problemen mit den kaputten Brumni-Tips (d.h. Vergeben von Tips fuer
nicht (mehr) angeschlossene NPCs) endlich mal zu entgegnen, hab ich dem
Scoremaster in den letzten Tagen einen Umbau zukommen lassen. Ganz fertig ist
es noch nicht, es ist noch geplant, ihn so umzubauen, dass EKs nicht mehr
"versehentlich" automatisch eingetragen werden koennen, das wird in den
naechsten Tagen noch kommen.
Weiterhin sind wir momentan dabei, eine Anzahl von EKs zu loeschen, die nicht
erreichbar sind. Hiervon sind sowohl noch nie angeschlossene EKs betroffen
aber auch solche, die eigentlich nie haetten stupsen sollen oder aus
irgendwelchen Gruenden abgehaengte NPCs. Sollte die Chance bestehen, dass
diese wieder angeschlossen werden, bleiben sie euch aber erhalten und koennen
spaeter wieder aktiviert werden, sobald der NPC wieder erreichbar ist.

Ihr werde also vermutlich in den naechsten Tagen beobachten, dass div. Tips
von eurer Brumni-Liste verschwinden und ihr euch dementsprechend neue holen
koennt, aber ihr werdet vielleicht auch ein paarmal feststellen, dass die
Plaketten weniger anzeigen.
Solltet ihr in einer Woche oder so noch Tips haben, bei denen ihr euch sicher
seid, dass die entsprechenden NPCs/Gebiete nicht angeschlossen/erreichbar
sind, meldet euch bitte bei einem EM eurer Wahl mit moeglichst genauer Angabe
des Spruches und warum ihr meint, dass der NPC nicht erreichbar ist. ;-)

Zesstra

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



Vielen Dank, Patryn! :-) (Zook, 21. Nov 2007, 15:12:50):
Da er leider in unserem schoenen MorgenGrauen nicht mehr
viel Zeit verbringt, hat sich Patryn entschlossen, von 
seinem Posten als Regionsmagier in der Unterwelt zurueck
zu treten.

Ich danke Dir, Patryn, fuer Dein Enagagement und Deine
Arbeit, die Du in Deine Aufgabe gesteckt hast und 
freue mich, Dich bald einmal wieder im MG zu sehen! 

Gruss, Zook.

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



-1  (Zook, 21. Nov 2007, 15:16:58):
Liebe Freunde des Verlorenen Landes,

Morgoth findet leider momentan wenig Zeit fuer 
die Pflege der Strassensaeume und Buergersteige
in Orkhausen, daher tritt er als Regionsmagier 
einen Schritt zurueck. Als Spiritus Rector des
VLands verharrt er auf dem Magierlevel 44. Fuer 
Anfragen bitte ich Euch jedoch Euch direkt an
Esme zu wenden.

Besten Dank Morgoth fuer Dein unermuedliches
Eintreten und Engagement fuer diese Region.

Gruss, Zook.

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



Ein Wind fegt durch Port Vain... (Zook, 21. Nov 2007, 15:18:45):
Liebe Mitspieler und Mitmagier,

da sie leider nicht mehr viel Zeit und Energie fuer ihre
jeweiligen Regionen aufbringen koennen, habe ich Jenandra,
Ulo und Wurzel aus den Reihen der Regionsmagier ins "normale"
Magierglied zuruecktreten lassen.

Gruss, Zook.

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



Re: EKs und Tips von Brumni (Zesstra, 21. Nov 2007, 19:55:01):
~#! rn=Zesstra rt=1194552028 rg=bekanntmachungen
~#! tid=1194552028
Bevor ichs vergesse: Die EK-Saeuberungsaktion ist vorlaeufig beendet.
Wenn ihr jetzt noch Tips von Brumni habt, die euch spanisch vorkommen, meldet
euch am besten bei einem EM.

Zesstra

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



Paar Tage weg (Amaryllis, 23. Nov 2007, 15:19:40):
s.o.

Ama*

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



Von draus vom Walde komm ich her (Miril, 30. Nov 2007, 23:54:06):

Von draus vom Walde komm ich her 
und habe viele Tuerchen fuer euch versteckt. 

Ihr habt nun den ganzen Dezember Zeit, eifrig danach zu suchen und die 
ein oder andere Ueberraschung zu finden. Ich werde in der Zeit am Sandtiger
stehen und Euch mit Tipps versorgen, damit ihr die Tuerchen auch finden
koennt.

Viel Erfolg beim Suchen.

Der Weihnachtstroll

Das soll ich euch vom Troll ausrichten. Dank an Arathorn, Ark, Humni und
Zesstra fuer die schnelle Mithilfe bei der Suche nach geeigneten Verstecken
und anderen netten Ueberraschungen.

Miril

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



Neuer Erzmagier! (Zook,  1. Dez 2007, 13:06:41):
Wir haben Arathorn als neuen Erzmagier fuer die Mudlib und die
Pflege der Erstkill-Stupse berufen. Herzlich willkommen und viel
Spass und Freude an Deiner neuen Aufgabe, Arathorn!

Gruss, Zook.

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



Frohe Feiertage! :)  (Zook, 21. Dez 2007, 11:51:37):
Liebe Mitspieler und Mitmagier,

ich wuensche Euch allen besinnliche und erholsame Feiertage
und einen guten Start in das neue Jahr! 

Zook.

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



Mudlib-rRelease 3.3.2 (Zesstra,  5. Jan 2008, 23:26:53):
Huhu,

es wird mal wieder Zeit fuer ein neues Release der Mudlib, nachdem ich ein
eigentlich fuer den Herbst geplantes habe ausfallen lassen. ;-)

Auf ftp://mg.mud.de/Software/MudLib/ findet ihr also ab jetzt die
MorgenGrauen-3.3.2 zum Download.

Diese Mudlib laeuft, wie auch die letzte Version, im MorgenGrauen mit
LDMud-3.3.714.
(http://www.bearnip.com/ftp/mud/ldmud-3.3.714.tar.gz)
Eine aktuellere Version (3.3.715, 3.3.716 geht allerdings auch.)
Ein File mit den passenden 'configure'-Settings fuer die MG-Mudlib ist im
Verzeichnise 'settings/ enthalten, ggf. muesst ihr dort die Verzeichnisse fuer
euer Homemud anpassen.

Ein Windows-Binary des aktuellen LD-Treibers gibt es auch, ich glaub, das war
von Gloinson und liegt (neben dem etwas aelteres Windows-Gamedriver von
Vanion/Ennox) in:
ftp://mg.mud.de/Software/GameDriver/

MD5-Checksummen zum Pruefen der Mudlib gibts natuerlich auch:
c0c82232cdbe5ec8fe3b2a1ea5799ed1  MorgenGrauen-3.3.2.tar.gz
3ccbcd598b19012eaa4f5eac92af7297  MorgenGrauen-3.3.2.tar.bz2

Bei Problemen und Anregungen wendet euch wie immer an mich. Kurzfristige 
Hilfe gibt es ggf. sicher auch im MG auf denen Ebenen.

Viel Spass,

Zesstra

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



Passwort-Speicherung (Zesstra, 11. Jan 2008, 23:24:21):
Huhu,

ich habe vorhin den Code modernisiert, der die Passwoerter verwaltet. Direkt
im Spielbetrieb merken sollte dies eigentlich niemand.

Allerdings werden _neue_ Passwoerter jetzt in einer sichereren Variante in den
Savefiles gespeichert (sicherer fuer den Fall, dass jemand an diese Files
herankommt, auch dann soll es moeglichst schwer sein, euer Passwort aus diesem
File herauszubekommen). Passwoerter werden naemlich nicht im Klartext in den
Files gespeichert, sondern als sogenannter Hash, von dem man nur mit
groesserem (Rechen-)Aufwand auf das urspruengliche Passwort zurueckschliessen
kann. Die alte Version, diesen Hash zu ermitteln, war etwas arg angestaubt in
Anbetracht der Geschwindigkeit moderner Computer.
Als Nebeneffekt faellt an, dass die Laenge von Passwoertern nicht mehr auf
maximal 8 Zeichen begrenzt ist (man konnte bisher zwar laengere PWs angeben,
jedoch wurden nur die ersten 8 Zeichen benutzt).

(Fuer Leute, die sich damit auskennen: Die Hashes sind jetzt nicht mehr die
klassische Unix-Hashes, sondern MD5-Hashes.)

Viele Gruesse,

Zesstra

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



Neue Sheriffine (Zook,  4. Feb 2008, 21:58:02):
Hallo zusammen,

nachdem der Sheriff-Posten etwas verwaiste, hat sich unter uns
Erzmagiern Amaryllis bereit erklaert, diesen Posten zu uebernehmen.
Bitte wendet Euch mit etwaigen Problemen und Fragen zukuenftig
direkt an Sie.

Viel Erfolg und ein gutes Haendchen bei Deinem neuen Job, Amaryllis!


Gruss, Zook.

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



Levelkorrektur (Zook,  4. Feb 2008, 22:37:09):
Mein apostolischer Visitator Muadib ist von Level 66 auf Level 26
gefallen. Ich bedanke mich bei Muadib fuer sein zahlreiches 
Engagement im MG! Zook

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



Reboot (Amaryllis, 14. Feb 2008, 09:56:19):
Hallo,

der Reboot wird heute nachmittag ca. 15 Uhr erfolgen.

Gruss,
Ama*

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



Re: Reboot (Amaryllis, 14. Feb 2008, 12:58:38):
~#! rn=Amaryllis rt=1202979379 rg=bekanntmachungen
~#! tid=1202979379
Hi,

fuer diejenigen, die angemeckert haben, dass zu wenig Vorlaufzeit war: Eine
solche Sicherheitsluecke sollte schnellstens geschlossen werden. Ergo habe ich
reagiert und als heute morgen das Update da war, habe ich beschlossen,
nachmittags zu rebooten. So kann ich, falls was schieflaeuft, nach Feierabend
noch ins RZ fahren.

Sorry, aber in solchen Faellen kann man nicht auf alles Ruecksicht nehmen.

Ama*

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



Reboot ist durch (Amaryllis, 14. Feb 2008, 16:06:52):
Hi,

von meiner Seite aus hat alles geklappt, was ich wollte. Gibt mal wieder
etliche RZGs an diversen Stellen nach dem Reboot, die werden wir hoffentlich
nach und nach ausmerzen.

Ama*

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



Erneuter Reboot (Vanion, 14. Feb 2008, 21:34:18):
Leider hat sich ein Fehler in der Mudlib eingeschlichen, der nur durch einen
erneuten Reboot behoben werden kann.

V*

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



Chagall ist ab Weiser auf Zeit geworden. (Rumata,  1. Apr 2008, 20:47:02):
Da es so viel an den Gilden zu tun gibt, und Chagall nicht wegen
jeder Kleinigkeit Zesstra nerven muss, haben wir ihn zum Weisen
auf Zeit[*] gemacht.

Die Erzmagier
[*]auf Zeit war aus eigenem Wunsch.

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



Evtl. Reboot (Amaryllis,  3. Apr 2008, 22:46:17):
Moin,

ich werde morgen nachmittag (Freitag, 04.04.) eine groessere Platte in den
Server einbauen.
Falls wider Erwarten die Platte nicht vom System erkannt wird (sollte hotplug
sein), werde ich das System herunterfahren muessen und ein bisschen basteln.
Koennte also ggf. einen Ausfall geben.

Sorry fuer die "zeitnahe" Ankuendigung, aber ich habe wider Erwarten
ploetzlich morgen Zeit, und sonst wird das wieder auf laengere Zeit gesehen
nichts.

Ama*

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



Re: Evtl. Reboot (Amaryllis,  4. Apr 2008, 16:26:46):
~#! rn=Amaryllis rt=1207255577 rg=bekanntmachungen
~#! tid=1207255577
Entwarnung.

Hat alles super geklappt, die neue Platte ist im System integriert :-)

Schoenes Wochenende,
Ama*

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



Mudlib-Release: MorgenGrauen-3.3.3 (Zesstra, 15. Mai 2008, 22:11:49):
Huhu,

eigentlich sollten noch einige neue Dinge in dieses Mudlib-Release, aber aus
diversen Gruenden, nicht zuletzt meinem RL in den letzten Monaten, wurde
leider nichts daraus. Viel laenger moechte ich jetzt aber auch nicht warten.

Auf ftp://mg.mud.de/Software/MudLib/ findet ihr also ab jetzt die
MorgenGrauen-3.3.3 zum Download.

Diese Mudlib laeuft, wie auch die letzte Version, im MorgenGrauen mit
LDMud-3.3.714.
(http://www.bearnip.com/ftp/mud/ldmud-3.3.714.tar.gz)
Eine aktuellere Version (3.3.715, 3.3.716) des LDMud-Treibers geht allerdings
auch und ist in Anbetracht einiger Bugfixes auch zu empfehlen.
Ein File mit den passenden 'configure'-Settings fuer die MG-Mudlib ist im
Verzeichnise 'settings/ enthalten, ggf. muesst ihr dort die Verzeichnisse fuer
euer Homemud anpassen.

Ein Windows-Binary des aktuellen LD-Treibers gibt es auch, ich glaub, das war
von Gloinson und liegt (neben dem etwas aelteres Windows-Gamedriver von
Vanion/Ennox) in:
ftp://mg.mud.de/Software/GameDriver/

MD5-Checksummen zum Pruefen der Mudlib gibts natuerlich auch:
8ece0e4d6843f63220a099d7cd1b1c9f  MorgenGrauen-3.3.3.tar.bz2
e29f3a8bee852406f739c4805e72e110  MorgenGrauen-3.3.3.tar.gz

Bei Problemen und Anregungen wendet euch wie immer an mich. Kurzfristige 
Hilfe gibt es ggf. sicher auch im MG auf denen Ebenen.

Das naechste Release ist zeitgleich mit dem naechsten Reboot geplant. (Nein,
einen Termin gibt es noch nicht. ;-) )

Viel Spass,

Zesstra

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



Mudlib-Aenderungen und Reboot am 9.8. (Zesstra,  5. Aug 2008, 12:59:00):
Huhu,

bereits beim letzten Reboot waren einige Aenderungen in der Mudlib geplant,
die ich aber zum Reboot-Zeitpunkt wegen Dissertations-Stress nicht einbauen
konnte. Inzwischen sind weitere dazugekommen, die beim naechsten Reboot
eingebaut werden sollen. Ich erwarte dabei, dass Fehler auftreten und muss
diesen Reboot daher so planen, dass ich 1-2 Tage Zeit fuer Fehlerkorrekturen
habe.
Ich habe diese Woche Urlaub und werde daher an der Mudlib basteln. Am Freitag,
8.8. werde ich dann den Reboot vorbereiten.

Der Reboot wird dann am Vormittag des 9.8. (Samstag) stattfinden,
vorraussichtlich etwa 10:00 - 11:00.

Wie geschrieben rechne ich mit dem Auftreten von einigen Problemen im Laufe
der ersten 1-2 Tage nach dem Reboot. Es kann daher im Laufe des Samstag
kurzfristig zu weiteren Reboots kommen. Es wird mindestens einen Reboot im
Laufe des Samstag Abends geben, bei dem Amaryllis auch den Server neustarten
will.
Falls danach alles gut laeuft, wars das. Falls jedoch danach immer noch
Probleme auftreten sollten, kann es auch zu weiteren kurzfristigen Reboots am
Sonntag kommen. Details werde ich dann via Ebenen und ggf. MPA verkuenden,
speziell, wenn ich meine, dass die Uptime wieder anhaelt. ;-)
Ich rechne zwischen den Reboots uebrigens nicht mit langen Ausfallzeiten, d.h.
ihr muesst euch nicht unbedingt ein Ausweichmud zum Chatten suchen.

Genauere Infos ueber die Neuerungen schreibe ich im Laufe dieser Woche in die
Spieler- und Magierrubriken der MPA.

Zesstra

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



Mudlibaenderungen am Samstag (Zesstra,  7. Aug 2008, 19:02:34):
Huhu,

die momentan geplanten Aenderungen fuer Samstag, welche groesser sind und
eventuell Probleme ausloesen koennten (insb. die letzten beiden), sind
folgende:

* auf Wunsch einschaltbare Teile-mit-History (von Amynthor)
* ueberarbeitete Material-Datenbank (von Raschau)
* neue Verwaltungsfunktionen fuer das Bewegen von Objekten (aufnehmen,
  fallenlassen, geben, zeigen, etc.) (von Amynthor)
* neue Skill-Attribute bzw. deren Verwaltung (von Zesstra, Arathorn)
Fuer TM-Hist und Skill-Attribute folgen noch Artikel mit genaueren Infos und
fuer die TM-Hist natuerlich noch Hilfeseiten am WE.

Hinzu kommen noch ganze viele kleinere oder groessere Dinge, die meist im
Laufe der Uptime schon hinzugekommen sind und an die ich mich groesstenteils
gar nicht mehr so recht erinner, die aber jetzt aktiv werden. ;-) Auszug:
* ueberarbeiteter Ebenenmaster, welche die Ebenenhistory beim Neuladen 
  behaelt. (von Vanion)
* Soulbefehl 'jammer' und einige weitere Bugfixes der Soul
* neue Befriedefunktionalitaet
* netztote Spieler vergessen auch irgendwann ihre Feinde
* einfachere Moeglichkeit einzustellen, wie lang eine Lebewesen sauer ist
* zu schnelles Vergessen der Feinde gefixt
* Bugfixes beim Vergeben von Zaubertraenken
* Bugfix beim "Reaktivieren" von NPC nach einem Fehler in deren Heartbeat
* paar Beschleunigungen im Kampf und Abfragen von Properties
* zu schnelles Abbauen der Paralysen gefixt
* und bestimmt noch 100 mehr... *aechz*

Zesstra

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



Re: Mudlibaenderungen am Samstag (Amaryllis,  7. Aug 2008, 21:05:27):
~#! rn=Zesstra rt=1218128554 rg=bekanntmachungen
~#! tid=1218128554
Was sich am Server aendert, spar ich mir, das interessiert eh keinen und sieht
auch niemand ;)

Ama*

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



Crash von heute 12:24 (Vanion, 10. Aug 2008, 13:34:29):
Hallo,

wie ihr vielleicht bemerkt habt, ist das Mud heute um 12:24 auf die Bretter
gegangen. Ursache hierfuer ist ein Fehler beim Zugriff auf das Swapfile
gewesen.

Ich habe eine gute und eine schlechte Nachricht:

Zunaechst die gute: Der Fehler ist einfach zu beheben und das Mud wird in den
naechsten sagen wir 10 Stunden zumindest nicht wegen dieses Fehlers crashen.

Die schlechte: Um das Problem sauber zu loesen, wird ein Reboot noetig werden.
Ich nehme an, dass daher heute im laufe des Nachmittags/Abends noch einmal
rebootet wird.

Gruesse,
V*

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



Teile-mit-Historie (Zesstra, 10. Aug 2008, 23:06:56):
Huhu,

gestern wurde u.a. die angekuendigte Geschichte fuer Teile-mits eingebaut (im
wesentlichen von Amynthor).
Ich hab jetzt endlich die Hilfeseiten dazu geschrieben bzw. alte geaendert.
Infos ueber die tmhist findet ihr in den Hilfeseiten 'teile', 'tmhist' und
'rfluestere'.
Sicherlich vorhandene Anregungen und Kritik bitte ich per Mail an mich zu
richten. ;-)

Zesstra

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



neue Uptime... (Zesstra, 10. Aug 2008, 23:15:46):
Huhu,

nach leider doch mehr Reboots als erwartet, sind die Basteleien an der Lib
seit gestern Abend abgeschlossen. Leider gabs heut dann aber noch ein
Driverproblem, welches das Mud crashte und welches mit einem weiteren Reboot
heute Abend behoben werden musste.
Inzwischen laeuft das Mud wieder seit 2h und ich hab jetzt keine groesseren
Probleme mehr berichtet bekommen. (Hoffentlich beschrei ichs jetzt nicht zu
laut.) Weitere Reboots sind also von meiner Seite aus nicht geplant. Ich
garantiere zwar fuer nix, aber ich bin momentan optimistisch, dass diese
Uptime haelt.

Zesstra

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



Re: Teile-mit-Historie (Zesstra, 11. Aug 2008, 22:36:35):
~#! rn=Zesstra rt=1218402416 rg=bekanntmachungen
~#! tid=1218402416
Huhu,

leider gab es einen bloeden Kaefer in der TM-History, was zu Fehlern fuehrte,
sobald ihr die Maximalzahl an Gespraechen erreicht habt und ein altes
geloescht werden muss. Der Bug ist jetzt repariert, aber in bestehenden
Spielern leider erst nach Ende/Reboot.
Workaround ist natuerlich das komplette Abschalten und Wiedereinschalten der
History und so per Hand alle Gespraeche zu loesen, aber falls es euch ohne
zuviel Nachteilen moeglich ist, wuerde ich ein Ende empfehlen.


Zesstra

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



Re: Re: Teile-mit-Historie (Zesstra, 11. Aug 2008, 23:25:50):
~#! rn=Zesstra rt=1218486995 rg=bekanntmachungen
~#! tid=1218402416
Nach einiger Diskussion und Ueberlegung hab ich dazu durchgerungen, allen
betroffenen Spielern ein Renew zu goennen... Also, Merlin sollte euch beim
naechsten Login ein neues Spielerobjekt verpassen und ihr behaltet eure
Objekte im Inventar.

Zesstra

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



SSL-Zertifikat, verschluesselter Zugang (Zesstra,  9. Okt 2008, 20:55:17):
Unser SSL-Zertifikat fuer die Homepage und den verschluesselten Zugang zum Mud
war leider seit einiger Zeit abgelaufen (*huestel*).
Wir haben jetzt ein neues, welches Amaryllis heut eingebaut hat. Sein
SHA1-Fingerprint ist: 
  B9:41:46:10:E2:2D:8F:29:C8:BB:38:70:92:6C:B5:FA:5B:66:20:C1

Das Zertifikat ist von CACert signiert.
Das Wurzelzertifikat von CACert koennt ihr ggf. unter 
  http://www.cacert.org/index.php?id=3 
erhalten. Dessen Fingerprints sind: 
  MD5:  A6:1B:37:5E:39:0D:9C:36:54:EE:BD:20:31:46:1F:6B
  SHA1: 13:5C:EC:36:F4:9C:B8:E9:3B:1A:B2:70:CD:80:88:46:76:CE:8F:33

Bei Fragen antwortet einfach in 'allgemeines'.

Zesstra

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



Downtime heute morgen (Amaryllis, 11. Dez 2008, 15:08:05):
Hallo,

wie einige bemerkt haben, war das Mud heute am fruehen Morgen fuer einige Zeit
nicht erreichbar. Der Server selbst hatte kein Problem, aber der Switch, an
dem die Maschine haengt. Hat einige Zeit der Entstoerung gekostet.

Tut mir leid fuer die Unannehmlichkeiten.

Ama*

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



Happy 2009! (Amaryllis, 29. Dez 2008, 23:12:17):
Hallo,

die Systemadministration (sowie die restliche Administration, denke ich) des
MorgenGrauens wuenscht Euch nach den stressigen Advents- und Weihnachtstagen
einen ruhigen und vielleicht auch einmal (muss ja nicht immer krachen!)
besinnlichen Rutsch in ein gutes neues Jahr 2009.

Ich wuensche einfach das, was jeder selbst am besten brauchen kann (so einfach
geht das).

Fuer das neue Jahr wuensche ich mir weiterhin ein erfolgreiches Projekt
Morgengrauen, sowie die Entscheidungsfreudigkeit des Foerdervereins, einen
dringend notwendigen Server anzuschaffen ;)

Liebe Gruesse,
Ama*
Serveradmin

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



Die Zweitie-Regelung der MorgenGrauen (Zesstra,  5. Jan 2009, 22:49:13):
Es existierten offenbar in der juengeren Vergangenheit bzgl. der aktuellen
Zweitieregel erneut (immer noch?) Missverstaendnisse um deren Auslegung.

Ich (stellvertretend fuer den Rest der EMs) nehme das zum Anlass, hier mal
Muadib zu zitieren (lang lang ists her).
Das Originalposting findet findet ihr im MPA-Archiv in der Rubrik
'diskussion': "Zu der Zweitieregelung (Muadib,  9. Sep 2000, 13:57:05)"
(Ja, so alt ist die Regelung.)

--- Zitat ---
Es duerfen zwei Charaktere aktiv am Spielgeschehen teilnehmen. Diese zwei
Charaktere koennen zwei Zweitspieler sein, ein Erstspieler und ein
Zweitspieler, ein Erstspieler und ein ausgeliehener Erst- oder Zweitspieler,
ein Zweitspieler und ein ausgeliehener Erst- oder Zweitspieler oder sogar zwei
ausgeliehene Erst- oder Zweitspieler sein. Es gibt also eine ganze Menge von
Kombinationen.

Alle anderen Charaktere des Spielers muessen sich auf die Kommunikation
beschraenken. Blockmonster toeten, Schutzhuellen oder Schutzhaende verteilen,
Hebel ziehen, Knoepfe druecken, Steine werfen, Heilungen vergeben, an den
richtigen Stellen zur richtigen Zeit Schirme aufzuspannen und aehnliches sind
keine Kommunikation. Dies ist wohl auch common sense, oder?

Nun stellt sich natuerlich die Frage, wie sieht es mit Auswechslungen der
aktiven Charaktere aus. Hier ist in der Tat keine verbindliche Aussage in den
jetzigen Regeln enthalten. Warum?
Wenn jemand mit zwei Charakteren zusammen spielt, so tut er es in der Regel
doch, um ein bestimmtes Ziel zu erreichen. Dieses Ziel kann einfach und kurz
definiert sein, wie zum Beispiel das Toeten eines bestimmten NPCs, oder es
kann auch etwas komplexeres sein, wie das Loesen einer Quest. Innerhalb dieses
Zieles sollten die Charaktere nicht gewechselt werden.

Es ist schwierig bis unmoeglich fuer die ganze Bandbreite von Zielen eine
verbindliche Zeitspanne zu finden, die allen diesen Zielen gerecht wird. 

Daher war hier die Hoffnung, dass was das Wechseln der aktiven Charaktere
angeht, eine aktzeptable allgemeine Praxis unter den Spielern entsteht. Dies
wird durch die Bezeichnung "common sense" uebrigens recht gut abgedeckt, auch
wenn es richtig ist, dass die Beurteilung was aktzeptabel ist oder nicht
wiederum im Streitfall bei Wenigen liegt.
--- Zitatende ---

Diese Auslegung von Muadib hat bisher immer noch Bestand. Allerdings scheinen
wir uns in juengerer Zeit zu sehr auf den zitierten 'common sense' verlassen
zu haben.

Ich schliesse aehnlich wie damals Muadib: Falls ihr der Meinung seid, dies ist
zu vage und unsicher oder aus anderen Gruenden nicht akzeptabel, so bitte ich,
das in 'diskussion' mit Alternativen zu diskutieren.

Viel Spass

Zesstra

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



Telnet-Keep-Alive (Zesstra, 19. Jan 2009, 21:46:46):
Huhu,

einige Spieler und Magier haben immer mal wieder Probleme, dass sie bei
laengerer Inaktivitaet rausfliegen, weil irgendein Router im Netzwerk die
inaktive Verbindung abbricht.
Rumata und ich haben ein 'Telnet-Keep-Alive' in die Spielershells gebastelt,
welches alle 10min Daten an eure Clients schickt, die diese nicht anzeigen,
aber ihrerseits beantworten. Das sollte Verbindungsabbruechen durch
Inaktivitaet vorbeugen.

Das ganze ist nutzbar nach Ende/Reboot und kann mit dem Kommando 'keepalive'
kontrolliert werden:
'keepalive ein' - Einschalten des Telnet-Keep-Alives
'keepalive aus' - Ausschalten des Telnet-Keep-Alives
'keepalive' - Anzeige des aktuellen Zustands
Die Hilfeseite folgt in Kuerze. Die jeweilige Einstellung ist rebootfest.

Wenn ihr mit Verbindungsabbruechen bei Inaktivitaet zu kaempfen habt, probiert
es mal aus. Habt ihr keine Probleme, braucht ihr es natuerlich nicht und
solltet es ausgeschaltet lassen. ;-)

Zesstra

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



PK-Mud ausgefallen (Zesstra,  6. Feb 2009, 20:39:20):
Huhu,

heut ausnahmsweise eine Bekanntmachung fuer das PK-Mud:
Aufgrund eines Plattenschadens ist das PK seit gestern nicht erreichbar. Am
Problem wird gearbeitet und es kommt hoffentlich in wenigen Tagen wieder hoch.
Desweiteren s. Artikel "PK down (Arath,  6. Feb 2009, 20:32:34)" in der Rubrik
allgemein (momentan der 29.).

Zesstra

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



Seheranforderungen (Zook,  8. Mar 2009, 18:31:21):
Die Erzmagier des MorgenGrauens haben eingedenk ihres 
Wunsches, die Seheranforderungen regelmaessig zu 
evaluierung (siehe "hilfe seher") am 7. Maerz 2009 
einstimmig beschlossen:

Die Seheranforderungen bleiben wie sie sind und werden in 
diesem Jahr nicht angepasst.


Zook.

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



Loeschskript (Rumata,  8. Mar 2009, 20:37:34):
Bisher war es so, dass ein inaktiver Spieler nicht geloescht wurde, wenn
er (unter anderem) aelter als 12 Stunden geworden war. Da wegen DSL
so etwas wie Onlinezeit kein Thema mehr ist, habe ich diese Beschraenkung
entfernt. Nun spielt das Onlinealter beim Loeschen keine Rolle mehr.

An den uebrigen Bedingungen (siehe "hilfe loeschskript") hat sich
nichts geaendert.

Rum**

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



Ruecktritt (Zook, 12. Mar 2009, 14:22:44):
Hallo zusammen,

da er leider keine Zeit mehr fuer das MorgenGrauen aufwenden kann,
ist Rikus von seinen Erzmagier- und Regionsmagieraemtern
zurueckgetreten. Besten Dank fuer Dein langjaehriges Engagement
im MG! :-) 

Fuer ZTs/FP ist weiterhin vertretungsweise Humni zustaendig und
fuer die Augfaben als RM im Dschungel ist vertretungsweise ...
... huch, schon wieder Humni zustaendig.

Gruss, Zook.

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



Dschungel nicht mehr verweist... (Zook, 18. Mai 2009, 10:18:40):
Ark uebernimmt die Betreuung des Dschungels. Besten Dank!
Zook.

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



neues SSL-Zertifikat und Rechnernamen (Zesstra, 20. Aug 2009, 13:11:12):
Huhu, allerseits,

1)
wir haben jetzt ein neues SSL-Zertifikat fuer sichere Verbindungen zu uns.
Es ist von CaCert.org ausgestellt und hat die folgenden Fingerprints:
SHA1 Fingerprint=B8:EA:73:7D:AD:75:F0:B3:A8:66:98:D5:CD:B6:9D:3B:A2:96:1A:A6
MD5 Fingerprint=4C:DE:40:09:51:E6:34:A4:02:C4:96:06:62:A5:81:95

Bisher ist CaCert.org den meisten Browsern von Haus aus unbekannt, sodass ihr
ne Warnung kriegen koenntet. Falls ihr CaCert vertrauen wollt, gibt es eine
Anleitung zur Einbindung ihres Root-Zertifikats auf deren Homepage:
http://wiki.cacert.org/wiki/BrowserClients

2)
Das Mud ist neben mg.mud.de auch unter den unten angegebenen Namen erreichbar.
mg.morgengrauen.info
mg.morgen-grauen.de
mg.zesstra.de
mud.morgengrauen.info
mud.morgen-grauen.de
mud.zesstra.de

Diese zusaetzlichen Namen haben wir eingerichtet, damit wir z.B. bei
unerwarteten Rechnerproblemen schneller wieder erreichbar sind, weil wir so
nicht auf nur eine einzige Person angewiesen sind, die die Zuordnung zwischen
dem Namen und dem jeweiligen Rechner aktualisieren kann (und die ja mal in
Urlaub/Dienstreisen/etc. sein kann).
Ich empfehle euch, diese Namen lokal bei euch zu speicher/aufzuschreiben. Im
Falle von ernsthaften Problemen kann es sein, dass das Mud unter einem dieser
Namen (als erstes wieder) erreichbar ist.

Zesstra

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



Magierwerdung mit einem nicht-Seher (Zesstra, 27. Okt 2009, 20:49:59):
Huhu,

dieses Thema wurde fuer viele Jahre immer mal wieder diskutiert, hat aber bis
jetzt nie ausreichend Zustimmung bei den EMs gefunden. Ein Grund dafuer war
auch, dass wir nie wollten, dass Leute einfach so einen Magier bekommen, nur
um in Magierrubiken lesen zu koennen, 'goto' zu haben etc. und daher in einem
Magier Arbeit stecken sollte.

Nach einer erneuten Diskussion in den letzen Monaten haben wir uns
entschlossen, die Regeln zur Magierberufung wie unten beschrieben zu
erweitern. Dies gilt zusaetzlich zu der bislang geltenden Prozedur der
Magierwerdung.
D.h. die Magierberufung ist einerseits einfacher, andererseits aber auch
schwieriger geworden. Zusaetzlich ist es seitens des Lehrlings noetig, aktiv
zu sein um Magier zu bleiben.

Magierwerdung mit einem nicht-Seher
-----------------------------------
  * Die Berufung eines nicht-Seher-Charakters zum Magier ist moeglich,
    sofern der betreffende RL-Spieler bereits einen Seher hat.
  * Die Berufung eines solchen Charakters zum Magier ist nur in Absprache
    mit den EMs moeglich. Bei konkreten Anfragen an EMs muss eine erste 
    Idee angegeben werden, was man sich als GS vorstellt.
  * Ein vernuenftiges, d.h. zustimmungsfaehiges Konzept muss _vor_
    Magierwerdung den EMs vorgstellt werden. An dieses werden die sonst
    ueblichen Anforderungen bzgl. Umfang und Komplexitaet gestellt. Das
    Konzept wird von EMs genehmigt, bevor die Berufung zum Magier
    erfolgt.
  * Nach Sponsorn des Charakters entfaellt die sonst uebliche Wartezeit
    von 1-2 Wochen (weil die EMs ja vorher zugestimmt haben) und der
    Char kann direkt auf Level 20 befoerdert werden.
  * Das GS muss innerhalb von 6 Monaten nach Magierwerdung fertiggestellt 
    werden.
    Die Fertigstellung ist definiert als Einreichung an den RM zur 
    Abnahme.
    Dies darf natuerlich keine pro-forma Einreichung von halbfertigem 
    Zeugs sein.
  * Eine Verlaengerung dieser Frist kann durch einen von den EMs be-
    nannten EM (idR EM fuer Gesellenstuecke) genehmigt werden, sofern ihm
    dies sinnvoll erscheint ("begruendete Faelle", fast fertig, etc.).
    In Zweifelsfaellen wird die Verlaengerung von den EMs diskutiert.
  * Muss das GS nach Abnahme durch den RM und/oder den EM Gesellenstuecke
    nachgebessert werden, sollte dieses innerhalb von 2 Monaten geschehen.
    Verlaengerungen: s.o.
  * Bei Nicht-Einhaltung der Frist erfolgt die Loeschung des Charakters.
  * Der Spieler unterliegt auch nach Loeschung dem Magiervertrag
    insofern, als dass er ueber etwaige als Magier gewonnene Interna 
    von nicht-oeffentlichem Code Stillschweigen zu wahren hat.

Zesstra

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



Re: Magierwerdung mit einem nicht-Seher (Ark, 27. Okt 2009, 21:17:44):
~#! rn=Zesstra rt=1256672999 rg=bekanntmachungen
~#! tid=1256672999
Noch eine persoenliche Anmerkung von mir:
Das ist eine Erleichterung, die trotzdem wohl ueberlegt sein muss. 6 Monate
sind fuer ein GS _eigentlich_ mehr als ausreichend, aber es bedingt gerade
fuer Nichtprogrammierer viel Arbeit, waehrend der der persoenliche
Spielbetrieb ruht/ruhen muss. Auch an der Tatsache, dass man Geduld aufbringen
muss, hat sich durchaus nichts geaendert. Es laufen halt nicht mehr soviele
aktive Magier herum, die sofort verfuegbar sind. Das soll nicht abschrecken,
aber eben bedacht sein. Ich habe leider schon zuviele (auch einige sehr gute)
Konzepte wieder aus meinem Mailfile geloescht wg. Inaktivitaet ... kurz
nachdem man Magier geworden ist.
Oft sieht man Gebieten nicht immer an, wieviel Arbeit drin steckt, und damit
meine ich nicht nur Details. Deshalb mein Tip: dreimal wieder wach werden ...
wenn man dann immer noch ueberzeugt ist, das Spielen (so wie man es kennt)
weitgehend aufzugeben und schoepfend taetig zu sein, dann koennte es was
werden :-)


              *** ARK * the * Magnificent ***


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



Frohes neues Jahr! (Zook,  3. Jan 2010, 16:59:18):
Hallo zusammen,

ich wuensche Euch allesamt ein frohes neues Jahr und viele schoene
Stunden hier im MorgenGrauen. Sei es zum Spielen, Programmieren, 
Plaudern, Treffen, Metzeln oder was auch immer! 

Viele Gruesse, Zook.

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



Zesstra entfesselt die Kraefte des Chaos und der Wind treibt uns dahin... (Zook,  8. Feb 2010, 22:53:07):
Hallo zusammen,

nachdem selbst die Spieler sich ueber die lange Uptime wundern, 
haben wir Gegenmassnahmen ergriffen. Vor allem bin ich es leid,
den ganzen Neuspielern einen "Reboot" zu erklaeren und ihnen 
klar zu machen, wo ihre Ausruestung ist. Nicht aus diesem Grund
ergreifen wir nun Massnahmen und rufen den naechsten Reboot aus.

Moege diese Uptime also in Kuerze zu Ende gehen und alle 
Stabilitaet mit sich reissen ... *hust*
Dann wird sein Heulen und Zaehneklappern ob staendiger Reboots
im 10-Tage-und-kuerzer-Rhythmus. 

So, das habt Ihr nun davon!

Zook.

PS: Das MorgenGrauen zieht zum Ende des Monats, wahrscheinlich um den 20.2. 
auf den neuen (darf man das noch so sagen?) Rechner um. Daher werden wir 
ein bisschen Downtime und mindestens einen Reboot erleben. Genauere
Informationen reichen wir nach, sobald sich die Planungen konkretisiert 
haben.

PPS: Man wird dann sehen, wie das MG neu anlaeuft, wir streben aber
wie bisher stabile und lange Uptimes an. 

PPPS: Was der Titel mit dem Inhalt zu tun hat? Ich habe nicht
die geringste Ahnung.

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



Re: Zesstra entfesselt die Kraefte des Chaos und der Wind treibt uns dahin... (Amaryllis, 10. Feb 2010, 21:23:49):
~#! rn=Zook rt=1265665987 rg=bekanntmachungen
~#! tid=1265665987
Vielleicht darf ich auch ein paar Cent einwerfen als verantwortlicher
Serveradmin, der auch vor Ort im RZ sein kann/muss.
Ich stelle mir im eigenen Interesse eine rechtzeitige Planung vor. Der
eigentliche Ablauf koennte sein: Server "einfrieren", so dass keine
Aenderungen mehr sind. Dann wird es ggf. einen halben bis einen Tag zur
Migration brauchen.

Tut mir leid, aber ich muss klarstellen, dass ich auf Spielerwuensche hier
leider keine Ruecksicht nehmen kann. Wenns soweit ist, gehts los - und dann
werden u.U. auch mal 2 Tage keine Aenderungen mehr an Savefiles passieren,
sprich: Lernsperre.

Ama*

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



Re: Re: Zesstra entfesselt die Kraefte des Chaos und der Wind treibt uns dahin... (Amaryllis, 10. Feb 2010, 23:28:53):
~#! rn=Amaryllis rt=1265833429 rg=bekanntmachungen
~#! tid=1265665987
Ich gebe zu, das war die falsche Rubrik, aber ich stehe dazu ;)

Ama*

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



Empfang und Versand externer Mails (Zesstra, 11. Feb 2010, 21:53:23):
Huhu,

ich habe auch eine kurze Bekanntmachung zu machen. ;-)

Und zwar zum Thema Mailempfang aus dem Rest des Internets und Mailsenden an
den Rest des Internets: dies wird nach dem Umzug bis auf weiteres nicht mehr
moeglich sein.
Hintergrund: Aufgrund der sog. Vorratsdatenspeicherung sind Mailprovider
verpflichtet, eine Reihe von Daten im Zusammenhang mit dem Empfang, Versand
und Abruf von Mails zu speichern. Es ist unsicher, ob wir als Mud unter eine
Ausnahme fallen, weswegen wir schon lange ueberlegt haben, unsere Mail auf
interne Mail und auf Mails zwischen den Muds zu begrenzen.
Im Laufe des Fruehjahrs wird ein Urteil des Bundesverfassungsgerichts zu der
VDS erwartet. Bis dieses Urteil verkuendet wird, werden wir keine Arbeit fuer
eine Mailanbindung investieren. Nach dem Urteil werden wir entscheiden, ob es
sich lohnt, auf dem neuen Rechner eine Mailanbindung zu basteln oder nicht.

Nicht betroffen hiervon sind uebrigens Mails an die anderen (deutschen) Muds,
d.h. sowas wie char@unitopia oder char@wunderland wird weiterhin
funktionieren.

Wer hier im MG Mails aufbewahrt, die er unbedingt zuhause haben moechte,
sollte diese Mails vor dem 20.2. zu sich nach Hause weiterleiten.

Achja, zum konkreten Ablauf am Wochenende vom 19. - 21.2. wissen wir selbst
noch nicht genug, wir werden euch informieren, sobald unser Plan steht.

Zesstra

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



verschluesselte Verbindung (SSL) ins Mud (Zesstra, 11. Feb 2010, 22:38:37):
Und noch ne kleine Bekanntmachung. ;-)

Wie ihr vielleicht wisst, besteht die Moeglichkeit, die Verbindung ins Mud zu
verschluesseln. Hierzu braucht man entweder einen SSL-tauglichen Client (z.B.
TF-5) oder man benutzt stunnel zwischen Client und Mud (s. auch
http://mg.mud.de/newweb/download/stunnel.shtml). Diese verschluesselte
Verbindung baute man bisher zum Port 992 auf mg.mud.de auf.

Nach dem Reboot wird dies nicht mehr Port 992 sein, sondern 4712.

Achja, noch ne Kleinigkeit: unsere Homepage wird auf dem neuen Rechner kein
'newweb' mehr im Pfad haben. Sollte aber kein Problem sein, weil der Webserver
euch automatisch umleiten wird.

Zesstra

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



RIP ... Rekord-Uptime (Zesstra, 13. Feb 2010, 00:28:27):
Huhu,

vorhin ist aus mir noch unbekannter Ursache das Mud gecrasht. Soviel zu
schoenen Plaenen, den Reboot naechste Woche in Ruhe ueber die Buehne zu
bringen.

So: Da wir ne lange Uptime mit vielen Aenderungen in der Lib hatten, die jetzt
alle gleichzeitig aktiv werden, ist mit Fehlern zu rechnen. Es wird eine Weile
dauern, die alle zu beseitigen. Wenn ihr FiRZG begegnet: ggf. Kaempfen
einstellen, wenns im Kampf passiert, nicht weiter in das jeweilige Gebiet
gehen, wenns beim Betreten von Raeumen passiert.

Naeheres folgt sobald bekannt.

Zesstra

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



Re: RIP ... Rekord-Uptime (Zesstra, 13. Feb 2010, 10:50:33):
~#! rn=Zesstra rt=1266017307 rg=bekanntmachungen
~#! tid=1266017307
Ich hab den Crash im Driver von heut nacht lokalisiert. Nach dem naechsten
Reboot wird der Fehler raus sein, aber ich rechne bis dahin nicht mit einem
erneuten Auftreten, da dies eine recht spezielle Situation erfordert.

Nach dem Crash musste heut Nacht noch ein Reboot sein, um ein mud-globales
Problem in den Kneipen zu beheben (Dank an Gloinson fuer schnelles Finden!).
Momentan siehts ansonsten gut aus und mir sind keine Gruende fuer nen erneuten
Neustart bekannt (s.u.).

BTW Reboot: Da wir von unserem alten Rechner runter muessen, kommen wir leider
um den/die fuer den 20.2. geplanten Reboot(s) nicht herum, auch wenn das nun
eine sehr kurze Uptime bedeutet.

Zesstra

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



Umzugsplaene am Samstag (20.2.) (Zesstra, 18. Feb 2010, 00:49:46):
Huhu,

momentan sieht unser Plan fuer den kommenden Samstag (20.2.) wie folgt aus:
Der Shutdown des Spiels erfolgt vormittags, Zeitfenster 9-10 Uhr. Nach dem
Abschalten werden wir mit dem Kopieren der Daten auf den neuen Rechner
beginnen. Amaryllis wird im Laufe des Vormittags ins Rechenzentrum fahren, die
Rechner austauschen und unserem neuen Rechner die Adresse des alten Rechners
geben.
Nach dem Abschluss des Transfers der Daten werde ich in der Mudlib einige
technische Neuerungen einspielen und wir werden noch einige Tests
durchfuehren.
Im Anschluss daran werden wir die Dienste auf dem neuen Rechner nach und nach
in Betrieb nehmen, beginnend mit dem Mud.

Ich rechne damit, dass das Morgengrauen am fruehen Nachmittag wieder
erreichbar sein wird. Es kann allerdings sein, dass in den darauffolgenden
Stunden noch ein oder mehrere Neustarts erforderlich sind. Letztendlich ist
leider fast immer so, dass div. Fehler erst durch Spieler gefunden werden, die
im Morgengrauen heraumlaufen. ;-)
(Und sollte es wider Erwarten mit dem Neustart doch etwas laenger dauern,
bitte ich euch schonmal im Vorfeld um etwas Geduld. :-) )

Zesstra

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



Umzug (Amaryllis, 20. Feb 2010, 21:14:46):
Hi,

der Umzug lief von meiner Seite aus problemlos. Ich muss aber darauf
hinweisen, dass es u.U. noch Reboot(s) geben kann. Lasst Euch dennoch nicht
beim Spiel stoeren ;)

Ama*

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



Re: Umzug (Zook, 21. Feb 2010, 21:24:35):
~#! rn=Amaryllis rt=1266696886 rg=bekanntmachungen
~#! tid=1266696886
Ich nutze, nachdem sich der Pulverdampf langsam verzogen hat, hier 
die Gelegenheit allen Beteiligten am Umzug und denjenigen, die 
im Nachgang dem MG beim ersten Schluckauf geholfen haben, meinen
Dank auszusprechen! Toll, dass das so gut geklappt hat!

Zook.

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



Jobwechsel (Amaryllis, 16. Mar 2010, 21:12:32):
Hi,

hiermit muss ich bekanntgeben, dass ich mir nach knapp 9 Jahren bei NetCologne
eine neue Herausforderung gesucht habe, die Mitte April beginnt. Dies sage ich
deshalb, weil ja der Mudserver von NetCologne gehostet wird.

Nach etwas Diskussionsarbeit in den letzten Wochen sind wir bei einem Stand
angelangt, dass der Server weiterhin gehostet wird - Vorort-Einsaetze wie z.B.
ein Plattentausch muessen auf dem "kleinen Dienstweg" geloest werden.

Ich bin zuversichtlich, dass wir damit auch in Zukunft ein stabiles Zuhause
fuer den Server haben, kann aber natuerlich nach meinem Weggang nichts
garantieren (wobei ich ehrlich gesagt nicht von "Zwischenfaellen" ausgehe).

Ich darf mich an dieser Stelle einmal fuer das mir entgegengebrachte Vertrauen
bedanken und werde im Rahmen meiner Moeglichkeiten (da ich Vor Ort bleiben
werde) das Mud auch weiterhin servertechnisch betreuen.

Ama*

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



Zeitgenauigkeit und Spruchermuedungspausen (Zesstra, 16. Mar 2010, 21:17:04):
Huhu,

als Folge der Diskussion in 'entwicklung' gebe ich dann mal hier bekannt:

Wir lassen die Zeitgenauigkeit bei 1s.

Spieler, die sich nicht an eine 1s-Granularitaet bei Spells gewoehnen koennen,
koennen eine Alternative einschalten. Bei dieser werden die Ermuedungspausen
auf Vielfache von 2s aufgerundet und in der Regel (vorbehaltlich: Lag) so im
Spieler gespeichert werden, als seien sie zum Zeitpunkt des letzten Heartbeats
eingetragen worden. Waehlt ein Spieler diesen Modus, wird dieses fuer alle
Sprueche, welche die Standardfunktionalitaet der Mudlib fuer Spruchermuedungen
benutzen, automatisch gemacht (fast alle).
Dies hat natuerlich gleichzeitig zur Folge, dass Ermuedungspausen u.U. laenger
werden. Dies betrifft auch etwaige Mali (z.B. koennte ein 1s-Malus zu 2s
werden) und Boni (1s-Bonus wird zu 0s und geht verloren) auf
Spruechermuedungspausen.

Weitere Infos zur Benutzung gibt es auf der Hilfeseite 'spruchermuedung'.
Achja: diese Wahl besteht ab Ende/Reboot.

So. Jetzt gibt es ein paar Ausnahmen. Einige Sprueche (die meisten davon bei
Kaempfern) fuehren zu nicht von der Standardmudlib verwalteten
Ermuedungspausen. In diesem Fall funktioniert die oben genannte Loesung
erstmal nicht - solange bis die betreffende Gilde entweder auf die
Standardfunktionalitaet der Mudlib umstellt oder selbst anderweitige
Massnahmen trifft.

Zesstra

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



Reboot (Amaryllis, 24. Mar 2010, 10:46:49):
Hi,

am Freitag morgen ab ca. 9-10 Uhr koennte es noch einmal spontan zu einem
kurzfristig eingeleiteten Reboot kommen.

Ama*

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



Auf eine neue Uptime! (Zesstra, 26. Mar 2010, 23:25:10):
Huhu,

ich denke, das Morgengrauen laeuft jetzt wieder stabil, nachdem wir ja leider
eine ganze Serie von Crashes wegen eines Fehlers im Driver erlebten.
Das ganze hat etwas laenger gedauert, was daran lag, dass ich heute tagsueber
waehrend meiner eigenen Arbeit einfach nicht genug Zeit hatte, mich in dem
Ausmass um Privatangelegenheiten (d.h. auch MG) zu kuemmern.
Aber immerhin wars vielleicht fuer einige eine lustige Erfahrung. ;-)

Fehler und Unregelmaessigkeiten bitte an mich, aber ich bin ab Sonntag fuer 2
Wochen fast unterunterbrochen abwesend, in der Zeit verweise ich euch mal an
meine EM-Kollegen. ;-)

Zesstra

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



Mudlib-Release 3.3.4 (Zesstra,  2. Mai 2010, 14:50:53):
Huhu,

Nach endlos langer Zeit ohne Release der Mudlib (zum Glueck gibts ja daily
snapshots *g*) gibt es jetzt mal wieder eins.

Auf ftp://mg.mud.de/Software/MudLib/ findet ihr also ab jetzt die
MorgenGrauen-3.3.4 zum Download.

Diese Mudlib laeuft im MorgenGrauen mit LDMud-3.5.x (http://www.ldmud.eu/).
Dies ist der aktuelle Zweig von LDMud, wo die Weiterentwicklung stattfindet
und er kann daher ab und an instabil sein. Wen das stoert, kann auch
LDMud-3.3.719 nehmen.

Ein File mit den passenden 'configure'-Settings fuer die MG-Mudlib ist in den
Quellen des Drivers im Verzeichnis src/settings/ enthalten. Zum Konfigurieren
des Driver sollte man im Verzeichnis src/ des Drivers sein und 
'settings/morgengrauen' ausfuehren.

Ein Windows-Binary eines recht aktuellen LD-Treibers gibt es auch. Dieses hat
Gloinson bereitgestellt und es liegt in:
ftp://mg.mud.de/Software/GameDriver/

MD5-Checksummen zum Pruefen der Mudlib gibts natuerlich auch:
b2e922c667e184934a14a135e054eff7  MorgenGrauen-3.3.4.tar.bz2
cf560bc6bb8bdb2a7a80bb3398fa7311  MorgenGrauen-3.3.4.tar.gz

Bei Problemen und Anregungen wendet euch wie immer an mich. Kurzfristige 
Hilfe gibt es ggf. sicher auch im MG auf denen Ebenen.

Das naechste Release ist (mal wieder) halbwegs zeitgleich mit dem naechsten
Reboot geplant. (Nein, einen Termin gibt es noch nicht. ;-) )

Viel Spass,
Zesstra

Zesstra

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



PHP auf dem Server... (Amaryllis,  8. Jun 2010, 21:55:03):
... ist nun aktiviert. D.h. die Bildersuche funktioniert wieder.

Ama*

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



Reboot (Amaryllis,  5. Okt 2010, 13:10:36):
Hi

es wird vermutlich morgen im Laufe des Nachmittags einen Reboot geben. Tut mir
leid, dass ich keinen genauen Zeitpunkt sagen kann, da ich von NetCologne
abhaengig bin. Daher wird es, falls es morgen klappt, nur einen sehr kurzen
Armageddon geben werden.

Hoffentlich klappt der Termin.

VG,
Ama*

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



Re: Reboot (Zesstra,  6. Okt 2010, 09:47:18):
~#! rn=Amaryllis rt=1286277036 rg=bekanntmachungen
~#! tid=1286277036
Zum Thema Reboot:
Gleich das Wichtigste ist, dass es recht wahrscheinlich ist, dass es im Laufe
des Abend oder morgen noch min. einen weiteren Reboot geben wird. Das haengt
allerdings davon ab, wieviele und welche Fehler sich nach dem Reboot
offenbaren und wie schnell sie das tun.
Des weiteren bin ich grundsaetzlich heute nachmittag am Arbeiten und komme
heute Abend vermutlich auch nicht vor 8 nach Haus. Ich versuch, mal
reinzuschauen und zu gucken, ob ich etwaige schwerere Fehler vorher beheben
kann. Kann ich aber nicht versprechen.
Wenn euch Fehler auffallen, sprecht mich an.

Zesstra

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



Re: Re: Reboot (Amaryllis,  6. Okt 2010, 15:12:09):
~#! rn=Zesstra rt=1286351238 rg=bekanntmachungen
~#! tid=1286277036
Ich habe bisher bei NetCologne keinen erreicht. Sieht danach aus, als wird die
Aktion verschoben werden muessen...

Ama*

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



Re^3: Reboot (Amaryllis,  6. Okt 2010, 15:40:01):
~#! rn=Amaryllis rt=1286370729 rg=bekanntmachungen
~#! tid=1286277036
Der Termin ist verschoben.

Naechster Termin: Freitag, 12:15 Uhr

Ama*

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



Re^4: Reboot (Zesstra,  6. Okt 2010, 15:48:17):
~#! rn=Amaryllis rt=1286372401 rg=bekanntmachungen
~#! tid=1286277036
Ok... Nach nochmaliger Beratschlagung machen wir jetzt folgendes:
Wir machen einen Reboot heut Abend. In der Zeit bis Freitag fixen wir etwaige
auftretende Fehler und testen aktuelle Mudlib+Driver. (Fuer Mithilfe beim
Testen danke ich euch schonmal im Vorraus. :-) )
Dann machen wir am Freitag Mittag den Reboot, fuer den wir NetCologne
brauchen, muessen danach aber hoffentlich nix mehr rumbasteln, so dass wir zum
WE wieder eine lange Uptime einlaeuten koennen.

D.h. Reboot erfolgt heute Abend um 21:00.

Zesstra

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



Neue Uptime (Zesstra,  8. Okt 2010, 13:19:11):
Hiho,

OK, der Reboot hat geklappt.
Seit dem letzten Reboot sind nur Kleinigkeiten aufgetreten, die gefixt wurden.
Ich gehe daher davon aus, dass jetzt erstmal kein weiterer Reboot folgt. Eine
Garantie geben ich natuerlich nicht, koennte ja sein, dass morgen jemand ueber
was stolpert, was bisher nicht auffiel. ;-)
Viel Spass diese Uptime!

Zesstra

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



FTP-Server down (Amaryllis, 14. Nov 2010, 01:31:11):
Hi,

der FTP-Server ist derzeit aufgrund einer Sicherheitsluecke down.

Fuer die Experten: Wer jemand aus dem WL kennt, der mod_mud so anpassen kann,
dass es auch unter dem Server 1.3.3c laeuft, dann bitte antriggern ;)

Ama*

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



Re: FTP-Server down (Zesstra, 14. Nov 2010, 23:15:15):
~#! rn=Amaryllis rt=1289694671 rg=bekanntmachungen
~#! tid=1289694671
Also, falls Bedarf am Hochschieben von Aenderungen zwecks Bugfixes ins MG
besteht: bitte einen EM ansprechen, der kann das dann ueber den Shellzugang
machen.
Alternativ lassen sich einfache Dinge zum Glueck auch heute noch mit dem
integrierten Editor machen (z.B. neues File hochschieben).

Zesstra

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



Region Ebene ... (Zook, 19. Nov 2010, 12:31:24):
Hallo,

Arathorn betreut die Region Ebene von nun an als alleiniger Regions-
magier. Ich habe Ragnaroek vom Regionsmagier zum normalen Magier 
zurueckgestuft.

Vielen Dank an Ragnaroek fuer seine Engagement und seine Mitarbeit
in der Ebene.

Gruss, Zook.

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



Re: Re: FTP-Server down (Zesstra, 12. Dez 2010, 23:06:30):
~#! rn=Zesstra rt=1289772915 rg=bekanntmachungen
~#! tid=1289694671
So, mal ein paar Neuigkeiten zu dem ewigen Aergernis FTP-Server:

Wir benutzten bislang proftpd und ein Zusatzmodul, mit dem dieser das Mud beim
Login und beim Dateizugriff spricht und fragt, ob der Benutzer/Magier auch
darf.
Mit den aktuellen Versionen vom proftpd ging dieses Modul nicht mehr, weil die
Entwickler vom proftpd zuviel umgebaut haben. Und trotz Bastelei lies sich
bislang auch nicht ergruenden, wie man es wieder zum Laufen bringen kann, es
scheint so, als ob die proftpd-Entwickler auch einige Fehler eingebaut
haetten.

Wir haben daher jetzt erstmal - zumindest als Zwischenloesung - den FTP-Server
gewechselt und nutzen jetzt pure-ftpd.

Fuer Spieler ist jetzt wieder alles beim Alten: ftp://mg.mud.de/ geht wieder
wie gewohnt.

Fuer Magier ist es zur Zeit leider noch nicht wieder so komfortabel wir bis
vor ein paar Wochen, aber zumindest koennen sie an alles wieder dran. Eine
genaue Anleitung fuer Magier schreib ich in einer passenden Magierrubrik.

Zesstra

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



Neuer EM-Balance: Humni (Rumata, 13. Jan 2011, 11:34:06):
Hallo,

da Miril als EM-Balance ausgeschieden ist, hat sich Humni bereit erklaert,
dieses Amt zu uebernehmen. Zook und ich danken ihm fuer die Bereitschaft
dazu und wuenschen ihm viel Erfolg bei dieser neuen Aufgabe.

Rumata

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



Crash vom 14.01.2011 (Zesstra, 15. Jan 2011, 00:46:33):
Moin allerseits,

heut Abend ist leider das Mud gescrasht. Die letztendliche Ursache war ein
Fehler meinerseits beim Neuladen der sog. simul_efuns. Normalerweise ist das
kein Problem, da das Mud dann ein Fallback auf eine Reservesammlung von
simul_efuns macht. Dieses Aktivieren der Reservesammlung schlug aufgrund einer
Ungeschicktheit im Master der Mudlib fehl. Letzteres werde ich morgen
korrigieren.
Nach der anschliessenden Aktualisierung auf eine neue Driverversion und einem
Server-Neustart laeuft das Mud wieder und ich kann zur Zeit keine Probleme
sehen, die einen weiteren Neustart erfordern wuerden.

Auf eine neue Uptime!

Zesstra

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



Ports ins Mud (Zesstra, 15. Jan 2011, 01:21:43):
Aus gegebenem Anlass: Das MG ist normalerweise via telnet auf zwei Ports
erreichbar: 23 und 4711. Jetzt kann es sein, dass einer davon nicht erreichbar
ist - speziell nach Reboots betrifft das haeufig den Port 23. In diesem Fall
sollte man einfach mal schnell den jeweils anderen ausprobieren.
Beispiel:
telnet mg.mud.de 23
telnet mg.mud.de 4711

Achja, nen verschluesselten Zugang per SSL auf Port 4712 gibt es auch noch.

Zesstra

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



Neues SSL-Zertifikat fuer mg.mud.de (Zesstra, 24. Jul 2011, 21:20:29):
Huhu,

ich habe soeben das SSL-Zertifikat fuer unseren Rechner aktualisiert. Dies
wurde zum einen notwendig, weil die genutzte Zertifizierungsagentur ein sog.
intermediaeres Zertifikat austauschte und zum anderen weil unser altes am
19.8. ausgelaufen waere und ich da im Urlaub sein werde. ;-)
Wenn Probleme auftreten, bitte bei mir melden.

Zesstra

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



SSL-Zugang (Zesstra, 22. Aug 2011, 14:24:00):
Seit Freitag ist unser SSL-Zertifikat abgelaufen. Ich hab da schon vor nem
Monat nen neues besorgt, allerdings stellte sich heraus, dass ich das zur Zeit
(ja, das wird geaendert) nur durch einen Reboot aktualisieren kann. Ich
moechte eigentlich nicht nur wegen dem SSL-Zertifikat einen Reboot machen.
Daher wird das Zertifikat wohl noch eine Weile abgelaufen bleiben. Tut mir
leid dafuer. :-(

Zesstra

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



Hardcore-Modus (Zesstra, 31. Aug 2011, 21:00:44):
Huhu,

wir haben uns entschieden, den Prozess des Charakteranlegens von unnoetigen
Fragen zu befreien. Dem zum Opfer gefallen ist jetzt erstmal der HC-Modus, da
dieser fuer kaum einen Spieler relevant ist.
Wer einen HC-Spieler haben moechte, lege sich ab jetzt bitte ganz normal einen
Spieler an und bitte einen EM, den HC-Modus zu aktiviert. Das machen wir,
sofern der Charakter noch nicht genug Stufenpunkte fuer Stufe 2 hat und noch
nicht gestorben ist.
In der Hilfe zum Hardcore-Modus laesst sich das natuerlich nachlesen.

Zesstra

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



Update (Amaryllis,  1. Sep 2011, 05:18:49):
Hi,

sorry, musste kurzfristig updaten. Nach der langen Uptime aber wohl
verschmerzbar.

Ama*, hat kaum Zeit und musste die Zeit nutzen.

PS: Sorry, Zesstra.

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



Re: Update (Zesstra,  1. Sep 2011, 09:49:56):
~#! rn=Amaryllis rt=1314847129 rg=bekanntmachungen
~#! tid=1314847129
Dann kuendige ich fuer das Wochenende direkt noch nen Reboot an. Irgendwann
Samstag mittag bis nachmittag.
Sorry, aber da gibts dann jetzt noch ein paar Dinge aufzuraeumen, sowohl in
Mudlib auch als Driver, die ich jetzt naturgemaess nicht vorbereitet hatte.

Zesstra

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



Projekt: Test-Uptime Ruestungsschutz (Zesstra,  1. Sep 2011, 10:30:28):
Huhu,

ein geplantes Projekt fuer den naechsten Reboot (also diesen) war, dies vor
einem Wochenende zu machen und dabei testweise einen verstaerkten
Ruestungsschutz zu aktivieren. Mit dem sollte das Mud ein WE laufen und Magier
und Spieler Erfahrungen sammeln, wie sich das auswirkt. (In der Hoffnung, dass
sich Spieler motivieren lassen, trotz der kurzen Test-Update etwas zu metzeln,
wenn das nicht stimmt, wird es uns nicht viel bringen.)
Nach dem WE sollte ein erneuter Reboot folgen, mit dem zunaechst der alte
Ruestungsschutz wieder aktiv wird und im Anschluss eine Diskussion erfolgen,
ob die Aenderung gut oder schlecht ist. Wenn gut, wuerde der verstaerkte
Ruestungsschutz permanent eingeschaltet.

Jetzt ist diese Planung natuerlich etwas ueber den Haufen geraten. Wir koennen
diesen ganzen Plan jetzt entweder fuer div. Monate auf Eis legen oder dennoch
versuchen durchzuziehen.
Wenn wir diesen Test wollen, bedeutet das einen Reboot am Freitag
Nachmittag/Abend zur Aktivierung und einen am Montag morgen zur Deaktivierung.
Wenn wir den Test nicht machen, gibt es einen Reboot am Samstag.

Jetzt haette ich gerne Meinungen von Spielern, ob wir dieses Test-Wochenende
jetzt am kommenden machen sollen oder nicht, da diese von Reboots ja gut
betroffen sind. ;-)
Meinungen bitte als Antwort in der Rubrik diskussion bis morgen Mittag/frueher
Nachmittag.

Zesstra

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



Re: Projekt: Test-Uptime Ruestungsschutz (Zesstra,  2. Sep 2011, 22:33:53):
~#! rn=Zesstra rt=1314865828 rg=bekanntmachungen
~#! tid=1314865828
Huhu,

zur Zeit sieht alles ganz gut aus, es ist unwahrscheinlich, dass ein weiterer
Reboot zeitnah gemacht werden muss.

Wir beginnen jetzt also eine Uptime mit dem verstaerkten Ruestungsschutz. Die
Mehrzahl der Spieler meinte, dass ein Wochenende zum Testen nicht ausreichend
sei. Daher werden wir das jetzt auf ca. 2 Wochen ausdehnen, auch etwas
abhaengig davon, wie es sich entwickelt und welche Rueckmeldungen von Spielern
und Magiern einlaufen.

Viel Spass!

Zesstra

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



Avatarbildchen (Zesstra,  3. Sep 2011, 12:08:19):
Huhu,

Mesirii bastelt ja gerade an einem neuen Webclient fuer das MG. Dieser soll
u.a. auch so kleine Bilder neben den Statusbalken fuer LP/KP anzeigen. Und
diese sollen personalisierbar sein.
Daher unterstuetzen wir das seit dieser Uptime, indem jeder Spieler fuer
seinen Char einen Link ins Netz angeben kann, welcher auf so ein
Avatarbildchen verweist. Der Client wird sich diese Information dann bei
Bedarf aus dem MG holen und den Avatar runterladen.
Dieses Avatarbildchen bzw. der Link hat keine spieltechnische Bedeutung im MG
und wird nur fuer atmosphaerische Zwecke in den das unterstuetzenden Clients
genutzt.

Setzen laesst sich das mit dem Befehl 'avatar' (s. hilfe avatar)
Per 'finger -a' kann man den Link anderer Spieler einsehen (hilfe finger).

Zesstra

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



Region Polar (Zook,  5. Sep 2011, 00:25:59):
Hallo zusammen,

die Region Polar verliert leider ihren Regionsmagier Noel; er war
eine sehr lange Zeit leider nicht mehr online. Vielen Dank, Noel,
fuer Deine Arbeit und Dein Engagement.

Zook.

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



Region Inseln (Zook,  5. Sep 2011, 11:14:06):
Hallo zusammen,

ich hatte kuerzlich Kontakt mit Seleven und leider findet sie
momentan nicht genuegend Zeit fuer ihren Regionsmagierposten,
so dass sie von ihrem Posten zuruecktritt. 

Besten Dank fuer Deine Unterstuetzung und Mitarbeit, Seleven!

Gruss, Zook.

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



Wueste (Zook,  7. Sep 2011, 09:07:03):
Hallo zusammen,

aus Zeitgruenden tritt Amaryllis von ihrem Posten als
RM Wueste zurueck. Besten Dank fuer Deine Arbeiten und Dein
Engagement, Amaryllis. 

(Fuer weitere Posten wie Sheriff und Serverwartung bleibt sie
aber weiterhin passende Ansprechpartnerin.)

Keine Angst in der Wueste, Ennox hat sich bereit erklaert,
wieder etwas aktiver als RM zu sein; da wird er aber selbst
noch etwas zu schreiben.

Zook.

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



Re: Wueste (Zook,  8. Sep 2011, 16:12:46):
~#! rn=Zook rt=1315379223 rg=bekanntmachungen
~#! tid=1315379223
Raschaua hat mir mitgeteilt, dass er momentan nicht so viel
Zeit und Gelegenheit fuer die Wueste hat; er nimmt eine RM-
Auszeit und greift hoffentlich bald wieder ein!

Viele Gruesse, Zook.

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



reboot heute... (Zesstra, 11. Sep 2011, 13:22:27):
huhu,
 ich weiss auch keine details, aber Amaryllis hat meines wissens ein
Sicherheitsupdate eingespielt, welches einen reboot erforderte.
Jetzt ist daran speziell etwas unschoen, dass die bisherige diskussion klar
gemacht hat, dass die anhebung des ruestungsschutzes zu starke auswirkungen
hat. ich bin nur leider gerade unterwegs und hab nur telnet. sobald ich wieder
einen shellzugang habe, werde ich dort einige anpassungen vornehmen. und dann
brauchen wir leider heute noch einen reboot - aber besser jetzt direkt heut
nachtmittag als in einigen tagen. naehere infos gibt es dann auch spaeter.

Zesstra

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



Re: reboot heute... (Humni, 11. Sep 2011, 16:17:53):
~#! rn=Zesstra rt=1315740147 rg=bekanntmachungen
~#! tid=1315740147
Wir haben an den Ruestungen nochmal was geaendert, aber es ist Eure Aufgabe,
rauszufinden, was. Haha. Damit jetzt keiner mit den dicken Superruestungen
rumrennt und ich Euch nochmal gerne alle fressen will, gibt es jetzt noch
einen Reboot.

Danach ist aber erstmal unser Ziel, das Ganze eine gewisse Zeit lang stabil zu
halten und haben (derzeit) eigentlich erstmal keine weiteren Reboots geplant.
Ob sich Plaene durchhalten lassen, koennen wir natuerlich auch nicht
versprechen, aber wir sind da optimistisch.

Humni

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



EMail-Adressen (Zesstra, 14. Sep 2011, 20:42:14):
Huhu,

Immer mal wieder tauchen Spieler auf, die ein neues PW haben wollen,
jedoch keine EMail-Adresse im Char hinterlegt haben. Oft ist es dann
nicht moeglich, den Char zu reaktivieren.
Daher ist die Angabe einer EMail-Adresse jetzt bei Spielererzeugung
nicht mehr optional. (ja, das loest nicht alle Probleme, aber einige.)
Ebenso akzeptiert das Kommando email jetzt kein "none" o.ae. mehr.

Es gilt wie frueher auch schon: Wir schicken keine Werbung an die Adressen und
geben sie auch nicht weiter. (Allerdings koennen Magier sie einsehen.)

Zesstra

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



Region Gebirge (Zook, 16. Sep 2011, 11:11:37):
Da Boing momentan nicht gut Zugriff auf das MG hat und in der
Regel nur ueber seine Pressesprecher kommunizieren kann und 
zukuenftige nicht so viel Zeit fuer die Region Gebirge hat,
ist er von seinem Posten zurueckgetreten.

Vielen Dank fuer die lange Betreuung der Region und die Beitraege
zu ihr!

Zook.

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



Zugaenge ins MG (Zesstra, 21. Sep 2011, 16:32:54):
Huhu,

aus aktuellem Anlass. ;-)
Wenn der Zugang via Port 23 ins MG nicht funktioniert, sind wir ueber
entsprechende Meldungen dankbar. ;-)
Das soll euch aber nicht abhalten, ins MG zu kommen, nehmt dann einfach Port
4711. (Ihr konnt auch einfach immer Port 4711 nehmen, der ist viel
zuverlaessiger.)
Und als dritte Option haben wir noch nen verschluesselten Zugang auf Port
4712, den ihr mit entsprechenden Clients oder einem Programm namens stunnel
nutzen koennt.
Links:
http://mg.mud.de/online/index.shtml
http://mg.mud.de/download/stunnel.shtml

Zesstra

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



Neues Web-Telnet auf der Homepage (Zesstra, 24. Sep 2011, 00:21:38):
Huhu,

Mesirii hat uns ein neues Web-Telnet gebastelt. Das soll in Zukunft noch mehr
koennen, aber es ist in einem Zustand angekommen, in dem man damit auf den
meisten Browsern spielen kann.
Ich habe das heute auch auf dem MG-Server installiert, sodass die Verbindung
jetzt nicht mehr ueber Mesiriis Server gehen muss.

Ihr findet das neue WebTelnet auf unserer Homepage. Der direkte Link ist:
http://mg.mud.de/WebTelnet/mg-client.html

Ueber Anregungen/Ideen/Fehlerberichte, etwaiges Lob (dass bitte insb. an
Mesirii) und ggf. Mithilfe beim Basteln (s. Rubrik mudclients) oder auch
Dokuschreiben freuen wir uns. ;-)
http://wiki.morgengrauen.info/index.php?n=MorgenGrauen.MG-Client
(Dort gibt es auch Anfaenge einer Doku.)

Auf Mesiriis Server werden weiterhin Testversionen laufen, welche Features
enthalten, die erst spaeter "bei uns" ankommen, weil sie noch entwickelt oder
getestet werden:
http://x.cd/3w

Vielen Dank an Mesirii!

Zesstra

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



Neuer RM in Polar (Zook, 25. Sep 2011, 00:57:59):
Hallo zusammen,

wir haben einen neuen Regionsmagier fuer die Region Polar gefunden.
Caldra wird Humni bei dieser Aufgabe zukuenftig unterstuetzen.

Vielen Dank fuer Deine Bereitschaft, Caldra! Und gebt Caldra
ein wenig Zeit, sich in diese Region und neue Aufgabe einzuarbeiten.

Gruss, Zook.

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



Erzmagier-Treffen (Zook, 25. Sep 2011, 19:57:42):
Es hat gestern und heute ganz konspirativ ein Erzmagier-Treffen
gegeben. Ergebnisse ... aeh, mal ueberlegen, naja, lasst Euch
ueberraschen.

Zook.

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



Neue Zustaendigkeit fuer Forscherpunkte und Zaubertraenke (Zook, 25. Sep 2011, 20:12:04):
Hallo zusammen,

ab heute ist Miril fuer die Vergabe von Forscherpunkten und die Verwaltung
der Zaubertraenke zustaendig. 

Viel Freude bei Deiner neuen Aufgabe, Miril!

Zook.


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



Statusreporte fuer Spieler (Zesstra, 26. Sep 2011, 12:50:49):
Huhu,

wir haben uns dafuer entschieden, Statusreporte direkt im Spielerobjekt zu
integrieren.
Spieler koennen sich ab ende/reboot ohne irgendwelche Hilfsmittel wie Teddy,
Zauberstab, Gilden etc. ueber Aenderungen ihrer Lebenspunkte,
Konzentrationspunkte, Vergiftungen, Vorsicht und Fluchtrichtung informieren
lassen.
Hierbei steht der LP-Report von Anfang an zur Verfuegung, fuer die anderen
muss man etwas tun:
Konzentrationspunkte: Quest Hilf den Gnarfen
Vergiftungen: Katzenjammer
Vorsicht: Schrat kann nicht einschlafen
Fluchtrichtung: Seher

Die Statusreporte lassen sich einzeln mit dem Befehl "report" einschalten (s.
entsprechende Hilfeseite).

Der Teddy behaelt vorlaeufig die Reportfunktionalitaet, langfristig wird er
sich jedoch veraendern.

Zesstra

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



Re: Statusreporte fuer Spieler (Arathorn, 26. Sep 2011, 18:02:48):
~#! rn=Zesstra rt=1317034249 rg=bekanntmachungen
~#! tid=1317034249
Hallo zusammen,

zu diesem Thema noch zwei Kleinigkeiten:

1) Die Quest-NPCs der von Zesstra genannten Quests sollten jetzt die 
   zusaetzlichen Report-Infos korrekt freischalten. Wenn Probleme auftreten,
   bitte melden.

2) Fuer die Funktionsweise sei nochmal auf die zugehoerige Hilfeseite
   "report" verwiesen.

Viel Spass mit dem Feature!

Gruss, Arathorn.

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



Spieler-Spieler-Kaempfe (Zesstra,  5. Okt 2011, 22:36:38):
Huhu,

in Zukunft werden Spieler-Spieler-Kaempfe ausserhalb der dafuer vorgesehenen
Kampfarenen (d.h. ausserhalb der Region Schattenwelt) automatisch abgebrochen
bzw. gar nicht erst aufgenommen.

Was sich nicht aendert: Wer sich zum Deppen macht, indem er andere Spieler
angreift, wird auch in Zukunft ausgeschimpft und bei Uneinsichtigkeit ggf. aus
dem Spiel entfernt.

Zesstra

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



Re: Spieler-Spieler-Kaempfe (Zesstra,  5. Okt 2011, 23:01:12):
~#! rn=Zesstra rt=1317846998 rg=bekanntmachungen
~#! tid=1317846998
Ok, da jemand (Goetter sind echt anspruchsvoll) fragte, ob ich eine kleine
Begruendung ergaenzen koennte:
Im Gegensatz zu frueher sind die Moeglichkeiten, eine Spieler-Spieler-Kampf
auszuloesen, vielfaeltiger, komplexer und unueberschaubarer geworden, nicht
zuletzt durch gemischte Teams. Eine erstmal fuer sich harmlos erscheinenden
NPC-Manipulation konnte z.B. dazu fuehren, dass der begleitete Spieler mit nem
anderen Spieler in den Kampf geraet. Dieses in jedem einzelnen Fall
nachzuverfolgen bzw. nach Moeglichkeit bereits im Vorraus zu erkennen,
erfordert Zeit und Muehe jedes Magiers, die eigentlich besser anderweitig
genutzt werden kann.

Zesstra

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



Anforderungen zum Seher (Zook,  5. Okt 2011, 23:03:10):
Hallo zusammen,

wie in der entsprechenden Hilfeseite zu den Seheranforderungen nieder-
gelegt, haben wir EM+ uns vorgenommen, jedes Jahr die Seheranforderungen
auf Angemessenheit zu pruefen und ggf. nach oben oder unten anzupassen.

Nach langer Diskussion und vielfaeltigem Bedenken und Austausch 
von Ideen und Anregungen und wieder ueberlegen und neu bedenken
und erst einmal zur Seite legen, dann wieder aufnehmen, alle
Argumente noch einmal neu aufwaermen, aufkoecheln, abkuehlen, 
wieder aufwaermen, durchkochen, verdunsten lassen und .... 

... naja, das Ergebnis unserer Evaluierung:

Die Seheranforderungen bleiben, wie sie sind. 

Gruss, Zook.

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



Magierlevel [H] und [W] (Zook, 10. Okt 2011, 08:58:12):
Hallo,

wir wollen hier im MorgenGrauen zukuenftig Magierlevel nur noch
dann vergebeben, wenn dahinter Aufgaben und Verantwortlichkeiten
stehen. Aus diesem Grund sind einige aeltere [H]/[W]-Zuordnungen
von mir geaendert worden und die entsprechenden Magier auf einen
passenden Vollmagier-Level geaendert worden.

Gruss, Zook.

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



Mud down (Amaryllis, 22. Nov 2011, 13:47:49):
Hi,

es kann sein, dass das Mud am Wochenende temporaer nicht erreichbar ist wegen
Updates. Ich werde aber dafuer kaempfen, dass der Server online bleibt und
somit die Uptime nicht leidet. Naehere Infos, sobald ich was weiss.

Ama*

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



Re: Mud down (Amaryllis, 24. Nov 2011, 20:00:13):
~#! rn=Amaryllis rt=1321966069 rg=bekanntmachungen
~#! tid=1321966069
Die Uptime sollte nicht beeintraechtigt sein, der Server laeuft weiter.
Allerdings koennte es ggf. zu kurzen Netzhaengern kommen (mehr erwarte ich
eigentlich bei einem vernuenftigen Provider auch nicht, der entsprechende
Redundanz hat).

AMa*

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



Re: Re: Mud down (Amaryllis, 27. Nov 2011, 16:09:13):
~#! rn=Amaryllis rt=1322161213 rg=bekanntmachungen
~#! tid=1321966069
Arbeiten abgeschlossen.

Wenn ich das richtig sehe, gab keine Aussetzer.

Schoenes Rest-WE noch.
Ama*

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



Adventskalender 2011 (Zesstra,  1. Dez 2011, 23:39:45):
Huhu,

es hat dieses Jahr leider etwas laenger gedauert...
Aber der Weihnachtstroll hat jetzt doch Tuerchen versteckt und auch der
Para-Weihnachtstroll sucht wieder nach Hilfe...

Und auch ich suche nach Hilfe - naemlich beim Verstecken von neuen Tuerchen
und der Auswahl neuer Diebe... Ich versuche, in den naechsten Tagen einen
kleinen Gegenstand zu bauen, mit dem ihr mir helfen koennt, den
Adventskalender fuer alle vielseitiger zu machen. Ihr koennt damit
Details/Kommmandos in einem Raum als Tuerchenversteck und NPCs als Dieb
vorschlagen. Ich hoffe, dass ihr damit dann bald noch mehr Spass mit selbst
versteckten Tuerchen und Wirbeln habt. ;-)

Bei Problemen sprecht mich bitte an, ich versuchte die dann schnellstens aus
der Welt zu schaffen.

Zesstra

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



Frohes neues Jahr! :-) (Zook,  1. Jan 2012, 14:20:18):
Hallo liebe Mitspieler und Mitentwickler! :) 

Ich moechte mich bei Euch allen fuer das Mitspielen, Mitmachen,
Mithelfen, Mitprogrammieren, Mitadministrieren, Mitbalancieren etc.
im vergangenen Jahr bedanken. Ohne die Spieler und ohne viele Stunden
an Hilfe im Hintergrund wuerde ein Spiel wie das unsere schnell leer,
langeweilig und doof. Daher meinen besten Dank!

Ich hoffe, wir finden alle im neuen Jahr wieder viel Zeit zum Mudden,
ich sehe da noch eine Reihe von spannenden neuen Themen, die man
weiter vertiefen koennte. Und ich hoffe natuerlich auf eine tolle 
Party(-Woche) im Sommer. 

Beste Gruesse, Euer Zook.

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



Re: Frohes neues Jahr! :-) (Rumata,  2. Jan 2012, 10:34:52):
~#! rn=Zook rt=1325424018 rg=bekanntmachungen
~#! tid=1325424018
Auch von mir ein frohes neues Jahr!
:-)

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



Reboot (Amaryllis, 13. Mai 2012, 09:40:21):
Hi,

am Dienstag wird es voraussichtlich einen Reboot geben.
Aufgrund enger Termingrenzen kann dies ziemlich rasch geschehen.

Ama*

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



Uptime wohl eher fehlerbehaftet und kurz... (Zesstra, 15. Mai 2012, 21:57:25):
Leider muss ich sagen, dass das MG noch Fehler hat. Und dass ich keine Zeit
mehr habe, das zu fixen. (s. mein Artikel in magier.urlaub)
Ich bin erst wieder am WE wieder da. Bis dahin laufen div. Dinge nicht
richtig, wenn das nicht noch von jemand anderem gefixt wird.
Dementsprechend ist davon auszugehen, dass es spaetestens am So zu min einem
weiteren Reboot kommen wird.

Zesstra

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



Neue Uptime... (Zesstra, 16. Mai 2012, 00:04:14):
So, inzwischen hat sich die Lage nach Bastelei und einem neuen Reboot etwas
geaendert. Aktueller Stand:
Die bislang bekannten Fehler konnten sich soweit klaeren lassen, dass jetzt -
soweit bekannt - nur noch lokale Probleme vorhanden sind, die sich ohne einen
Reboot beheben lassen. Wenn das so bleibt, dann wird es am Wochenende doch
keinen Reboot mehr geben und wir koennen die Uptime hoffentlich geniessen.

Wenn ihr Fehler bemerkt, meldet euch bitte direkt. Nichts ist aergerlicher als
ein Fehler, der 2 Wochen spaeter zum Reboot fuehrt. ;-)

Zesstra

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



Videos aus dem MorgenGrauen (Humni, 14. Jun 2012, 22:28:32):
Hallo zusammen,

Bei einigen Spielern kam der Gedanke auf, Videos im Sinne eines "How to play
Morgengrauen" zu erstellen. Generell wollen wir das natuerlich nicht nur
erlauben, sondern natuerlich unterstuetzen. Allerdings stehen dabei
zugegebenermassen die Regeln ein wenig im Weg, da man ja "Geheimnisse" des
Morgengrauens nach den Regeln nicht einfach veroeffentlichen darf.

Darum moechten wir an dieser Stelle die Regeln ein wenig konkretisieren: Es
ist natuerlich erlaubt, ein Video (oder auch eine anders geartete
Beispielsequenz) aus dem Mud zu zeigen. Hier darf man auch ein wenig in das
Spiel einsteigen. So darf auch eine kleine Anfaenger-Miniquest als Beispiel
gezeigt werden (konkret denke ich an Lisa und die Badewanne bei den Zwergen),
ebenso natuerlich Mudfeatures wie Kommunikation und auch Mechanismen
erlaeutert werden (warum Lisa nicht mehr da ist, wenn man ihr gerade geholfen
hat zum Beispiel).

Was wir nach wie vor nicht wollen sind Komplettloesungen von ,,richtigen''
Quests oder ,,Wie metzle ich den Drachengott''.

An sich wuerden wir allerdings die Werke vor der youtube-Veroeffentlichung
gerne sehen.

Wenn ihr Euch unsicher seid, sprecht einfach einen Erzmagier Eures Vertrauens
an, bevor ihr Sequenzen einbaut, die dann geloescht werden sollten. (Ich denke
ueberigens, dass der gesunde Menschenverstand hier auch sein uebriges tut).

Und natuerlich wird gerne gesehen, wenn ihr in der MPA schreibt, was ihr wo
veroeffentlicht - man will das ja dann auch sehen ;-)

Humni

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



EK-Update (Arathorn,  9. Aug 2012, 13:41:31):
Hallo zusammen,

ich habe gerade einen weiteren, seit Ewigkeiten nicht mehr angeschlossenen
Erstkill (temporaer) ausgetragen, d.h. einige von Euch werden eventuell
feststellen, dass ihnen ein EK fehlt. Ich schreibe die Info hier hin, weil
es relativ viele Spieler betrifft (vor allem alte Saecke), und ich 
Euch (und mir) die manuelle Nachfrage ersparen will.

Gruss, Arathorn.

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



Re: EK-Update (Arathorn,  9. Aug 2012, 15:08:23):
~#! rn=Arathorn rt=1344512491 rg=bekanntmachungen
~#! tid=1344512491
Und noch ein Gedicht. Wieder ein alter NPC, der fuer Spieler derzeit nicht
erreichbar ist. Sofern der reaktiviert wird, kommt auch der EK wieder, dies
ist aber derzeit nicht absehbar.

Gruss, Arathorn.

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



Gastzugaenge temporaer deaktiviert (Arathorn, 12. Aug 2012, 03:46:14):
Hallo zusammen,

aufgrund der unerfreulichen Besuche eines hartnaeckigen Trolls habe ich 
gerade saemtliche Gast-Logins deaktiviert, um weiteren Unannehmlichkeiten
vorzubeugen. Die Gastzugaenge werden voraussichtlich nur wenige Tage
deaktiviert bleiben.

Ich bitte um Verstaendnis fuer diese Massnahme. Auch mir gefallen die 
dadurch ausgeloesten Nebenwirkungen nicht, aber derzeit bleibt keine
andere Wahl, da besagter Troll auch ueber Intermud-Kanaele spammt, und ich 
ihm diese Moeglichkeit zumindest vom MG aus verwehren moechte.

Gruss, Arathorn.

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



Teamspeak-Server (Arathorn, 13. Aug 2012, 21:03:29):
Hallo zusammen,

da von verschiedenen Seiten der Wunsch geaeussert wurde, einen MG-eigenen
VoiceChat nutzen zu wollen, hat sich Olli dankenswerterweise bereit 
erklaert, uns einen Slot auf seinem Teamspeak3-Server zur Verfuegung zu 
stellen.

  Den Client koennt Ihr hier bekommen: http://www.teamspeak.com
  Die Server-IP ist 85.214.250.188, Port 4711
  Als Server-Passwort dient der Name unseres bekannten Urvaters aller Magier.

Der Vorteil gegenueber Skype und aehnlichen Loesungen ist m.E., dass alle
Kommunikation ueber eigene Kanaele laeuft und nicht bei Fremdfirmen mitge-
loggt wird.

Der Server steht erst einmal temporaer zum Ausloten der Resonanz zur
Verfuegung und insbesondere als Entgegenkommen von Olli - benehmt Euch also,
wenn Ihr da drauf seid. ;-)

Ich habe bereits einige Channel dort eingerichtet einschliesslich einem
Magiertreff, wenn man mal in Ruhe technische Dinge bereden will/muss. Um da
reinzukommen, braucht man entsprechende Berechtigungen, die ich auf Anfrage
gerne einstelle. Sprecht mich einfach hier im Mud oder auf dem TS an, wenn
ich dort bin.

Viel Spass & Gruss,
Arathorn.

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



Teile-mit in andere Muds ("Intermud-TM") (Arathorn, 21. Aug 2012, 01:01:58):
Hallo zusammen,

als erste (vorlaeufige) Massnahme zur Eindaemmung des Spam-Problems wurde
eingefuehrt, dass Spieler zum Absenden von Intermud-tms mindestens einen
Abenteuerpunkt haben muessen. Dies basiert auf der Annahme, dass unsere
"internationalen Gaeste" in Ermangelung ausreichender Kenntnisse der
deutschen Sprache nicht in der Lage sein werden, hier im MG eine Quest
zu loesen. Gaeste koennen grundsaetzlich keine Quests loesen und werden daher
keine Intermud-TMs mehr senden koennen.

Diese Bedingung loest natuerlich nicht das Problem, dass hier lokal im MG
rumgespammt wird. Um diesen Punkt kuemmern wir uns noch, der soll aber nicht
Gegenstand dieses Postings sein. Was wir damit jedoch verhindern, ist der
von MG ausgehende Spam in andere Muds, was auch wichtig ist, da von verschie-
dener Seite im Zuge der juengsten Spamwelle Meldungen ueber den Missbrauch
von Intermud-TMs eingegangen sind.

Die EM-Runde wird fuer die MG-interne ("lokale") Spamproblematik noch eine
sinnvolle Abhilfe einfuehren, die moeglichst nebenwirkungsarm sein muss,
um die erwuenschte Kommunikation zwischen allen Spielern gleichermassen 
nicht zu beeintraechtigen, und die daher leider nicht von heute auf morgen
implementiert werden kann. Wenn es hier eine tragfaehige Loesung gibt,
werden wir uns noch einmal melden bzw. diese ggf. zur Diskussion stellen.

Gruss, Arathorn.

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



Re: Teamspeak-Server (Arathorn, 27. Sep 2012, 20:46:32):
~#! rn=Arathorn rt=1344884609 rg=bekanntmachungen
~#! tid=1344884609
Hallo zusammen,

es kann sein, dass Olli die Tage mal den TS-Server neu aufsetzen muss. Wenn
danach jemand Berechtigungsprobleme haben sollte oder andere Stoerungen
auftreten, bitte melden.

Gruss, Arathorn.

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



Evalulierung Seheranforderungen (Zook,  8. Okt 2012, 09:26:32):
Nach langen Bedenken, einer Woche Auszeit zum Nachdenken meinerseits,
haben wir uns entschieden, bei der diesjaehrigen Evaluierung der
Seher-Anforderungen diese wie folgt anzupassen: Keine Aenderung.

Zook

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



AFK (Amaryllis, 28. Okt 2012, 01:23:41):
Hi,

ich bin (vermutlich) ab Montag fuer ein paar Tage weg (sofern ich meinen
OP-Termin bekomme).

Falls demn so ist: haltet das Mud sauber ;)

Ama*

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



Re: Teamspeak-Server (Zook, 29. Okt 2012, 21:26:32):
~#! rn=Arathorn rt=1344884609 rg=bekanntmachungen
~#! tid=1344884609
Es geht nun auch mgts.mud.de als Adresse.
Port muss man noch 4711 angeben.

Mehr Infos kommen noch.

Zook

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



Re: Re: Teamspeak-Server (Zook, 30. Okt 2012, 20:05:27):
~#! rn=Zook rt=1351542392 rg=bekanntmachungen
~#! tid=1344884609
So, gerade noch mal gesprochen, es muesste nun einfach gehen, 
indem wir mgts.mud.de angeben; Port-Angabe muss nicht zwingend
sein.

Zook

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



Spielerstufen und Stufenpunkte (Zesstra,  1. Nov 2012, 19:31:13):
Huhu,

wie ihr ja vermutlich alle wisst, gibt es im MG einen Spielerlevel alle 100
Stufenpunkte. Dies hat den Nachteil, dass man als kleiner Spieler ziemlich
lange braucht, bis man mal nen Level geschafft hat. Wenn man tagelage spielen
muss, bis man ein sichtbares Ergebnis in einem neuen Spiel erkennt, fuehrt
dies zu ziemlich viel Frustration.

Wir haben uns deshalb entschieden, das in Zukunft fuer kleine Spielerlevel
weniger als 100 Stufenpunkte notwendig sein werden.
Konkret braucht ihr fuer neue Spielerlevel (nicht Gildenlevel!) dann folgende
Menge an Stufenpunkten:

1 -> 2: 20
2 -> 3: 20
3 -> 4: 40
4 -> 5: 40
5 -> 6: 60
6 -> 7: 60
7 -> 8: 80
8 -> 9: 80

Ab Spielerlevel 9 kostet ein Spielerlevel wieder wie gewohnt 100 Stufenpunkte.

Die Aenderungen in den Gilden sind bereits aktiv.
Fuer die korrekte Funktion des Spielerbefehls "info" braucht ihr jedoch ein
ende/Reboot. Erhoehen koennt ihr aber auch ohne das.

Wenn ihr in einer Gilde Probleme mit dem Spielerstufenaufstieg bemerkt, meldet
euch bitte bei dem jeweiligen Gildenmagier und/oder mir.

Wenn ihr an anderen Objekten Fehler bei der Anzeige eurer aktuellen oder
erreichbaren Spielerstufe bemerkt, wendet euch bitte an den zustaendigen
Gebiets- oder Regionsmagier.

Zesstra

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



Re: Spielerstufen und Stufenpunkte (Zesstra,  1. Nov 2012, 19:31:22):
~#! rn=Zesstra rt=1351794673 rg=bekanntmachungen
~#! tid=1351794673
Einige Folgen, die die Aktion hat:

Ja, alle Spieler, die bisher Level 6 und mehr hatten, haben jetzt 4 Level
'geschenkt' bekommen.

Ja, das bedeutet, dass man schneller zu Stufen kommt, auf denen man
Zaubersprueche oder sonstige Faehigkeiten lernen kann (bzw. allgemein dass
alles etwas schneller geht, was nach Spielerstufe und nicht nach Stufenpunkten
vergeben wird).

Die Seheranforderungen werden nach Stufenpunkten bemessen, d.h. die
Seherwerdung verschiebt sich automatisch 4 Spielerstufen nach oben - ihr
braucht aber die gleiche Anzahl an Stufenpunkten.

(Wer hierzu etwas schreiben will, darf das zwar nicht hier tun, aber in
diskussion.)

Zesstra

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



Ungeplanter Neustart des Spiels am 7.11. (Zesstra,  7. Nov 2012, 00:26:27):
Huhu allerseits,

heute morgen um 0:03 ist es zu einem ungeplanten Neustart des Servers
gekommen. Nicht nur des Muds, sondern des kompletten Rechners. Zur Zeit ist
und leider noch unklar, warum dies passiert ist.

Und jetzt was wichtiges: vor dem naechsten geplanten Reboot waren einige
wichtige Wartungsarbeiten an der Mudlib geplant, die einen anschliessenden
Neustart des Spiels erfordern.
Dies hier war jetzt wie gesagt, nicht geplant. Wie werden jetzt versuchen,
diese Arbeiten morgen abend durchzufuehren und dann im Anschluss im Laufe des
Abends das Morgengrauen nochmal neuzustarten.

Das heisst: geht von einem oder mehreren Reboots morgen im Laufe des Abends
aus!

Zesstra

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



Neue Uptime! (Zesstra,  7. Nov 2012, 22:30:00):
Huhu,

die Arbeiten an Driver und Mudlib sind anscheinend ganz gut gelaufen. Das MG
laeuft wieder und bislang gibt es keine Anzeichen fuer aussergewoehnliche
Probleme. Hoffen wir, dass es so bleibt und einer neuen langen Uptime nichts
im Wege steht. Zum aktuellen Stand ist kein erneuter Reboot geplant.

Wenn ihr noch Probleme und Ungereimtheiten bemerkt, meldet euch bitte.

Zesstra

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



MSdT 16.11.2012 (Rumata, 16. Nov 2012, 11:16:53):
Der megaschmarrn des Tages geht an Anthea fuer Re^173780

Rum**

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



Loginfehler von heute behoben... (Zesstra,  6. Feb 2013, 00:07:40):
Huhu,

die Probleme beim Login sind jetzt soweit behoben.

Wer jetzt noch Probleme hat, melde sich bitte bei einem EM, bei denen sind es
sozusagen Folgefehler.

Bitte entschuldigt die Unannehmlichkeiten... :-( Und vielen Dank an alle, die
geholfen haben, die Auswirkungen fuer die Spieler zu minimieren!

Zesstra

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



Reboot und Downtime (Humni, 20. Feb 2013, 09:02:35):
Hallo ihr,

dem Log nach ist das Mud heute Nacht (vermutlich) gecrasht, gegen 1:44.

Ich habe es irgendwie (!) wieder zum Laufen bekommen. Das war vermutlich nicht
schlau, und nicht klug.

Ich halte es nicht fuer unwahrscheinlich, dass weitere Reboots noetig sind.

Questen und Leveln geht also, aber ich fuerchte, es werden weitere Reboots
noetig sein. Metzelt also vorerst nicht zuviel Ausruestung.

Wer von Euch neu ist, und das nicht kennt: In gewissen Abstaenden muss das Mud
wegen Wartungsarbeiten herunterfahren. Das nennt man Reboot. Manchmal passiert
das auch durch einen Fehler. Das nennt man Crash.

Letzteres ist offensichtlich heute Nacht passiert. Warum, weiss ich noch
nicht. Dazu wird spaeter mehr verkuendet.

Ja, es ist normal, dass ihr ausser sogenannten "Autoloadern" Eure Ausruestung
verliert. Ja, auch Euer Seherhaus oder Hotelzimmer ist nun leer.

Soweit fuers erste, rechnet bitte im Zweifel mit weiteren Reboots.

Humni, der hofft, dass er eben bei den Wiederbelebungsversuchen nicht zuviel
Mist gebaut hat.

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



Neue Uptime ab 21.2. (Zesstra, 21. Feb 2013, 01:09:16):
Huhu,

letzte nacht im 1:44 ist unser Driver leider abgestuerzt und hat unsere
schoene Uptime beendet. Sehr aergerlich. So wie es aussieht, war es auch ein
echter Fehler im Driver - leider haben wir ihn noch nicht gefunden. Er scheint
aber hinreichend selten zu sein, dass man trotzdem laengere Uptimes hinkriegt.

Wir haben heute Abend dann die Gelegenheit genutzt, noch einige Fixes und
neuen Code einzubauen und dann nochmal neuzustarten. Das war etwas holpriger
als gedacht, aber wir hatten auch nicht viel Zeit zum Vorbereiten...

Zur Zeit siehts recht vielversprechend fuer eine neue lange Uptime aus. Wenn
ihr irgendwelche Fehler findet, sagt am besten schnellstens Bescheid.

Mit dieser Uptime gibt es auch ein neues SSL-Zertifikat fuer den
verschluesselten Zugang ins Mud, der dann wieder bis 2015 haelt (auch wenn ich
nicht denken, dass die Uptime bis dahin haelt *g*).

Zum Abschluss moechte ich Humni nochmal meinen Dank aussprechen, der das Mud
wieder gestartet und einige grobe Fehler ausgebuegelt hat!

Zesstra

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



Neuerlicher Crash am 22.2. (Zesstra, 22. Feb 2013, 00:19:20):
Huhu,

es tut mir furchtbar leid, aber unser Crash im Driver hat sich leider
wiederholt. Das positive dran ist, dass dies mich auf der Suche nach der
Ursache naeher ans Ziel bringt.

Dummerweise muss ich natuerlich morgen tagsueber meine Broetchen verdienen,
d.h. so richtig intensiv kann ich erst wieder morgen abend suchen.

Bis auf weiteres geht bitte davon aus, dass sich dieses Ereignis wiederholen
kann - allerdings nicht muss. Der erste Crash war nach einer Uptime von >3
Monaten, d.h. es geht auch laenger einen Tag. ;-)

Ich halte euch auf dem laufenden, sobald ich naeheres rauskriege. Ich gehe
davon aus, dass wir das Problem spaetestens am WE geloest kriegen.

Zesstra

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



Re: Neuerlicher Crash am 22.2. (Zesstra, 22. Feb 2013, 00:55:01):
~#! rn=Zesstra rt=1361488760 rg=bekanntmachungen
~#! tid=1361488760
Kurzer Zwischenstand: Wir haben das Objekt identifiziert, bei dem der Driver
sich beide Male verschluckt hat. Als Workaround haben wir das jetzt
abgehaengt. Als Folge davon wandern zur Zeit die NPCs von Troy nicht mehr.
Bitte nutzt das nicht aus (falls das geht) und wundert euch nicht.
Ansonsten setzen wir die Fehlersuche morgen fort.

Zesstra

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



Re: Re: Neuerlicher Crash am 22.2. (Zesstra, 23. Feb 2013, 15:40:33):
~#! rn=Zesstra rt=1361490901 rg=bekanntmachungen
~#! tid=1361488760
Der Fehler hat sich letzte Nacht nach einem sehr langen Abend gefunden, die
Suche war recht muehselig (dicken Dank an Gnomi@Unitopia).

Der Fehler existierte seit 2007 und hat mit dem Aufraeumen von bestimmten
Datenstrukturen zu tun. Dass wir zweimal in kurzer Zeit dran gestorben sind,
muss ein ziemlicher Zufall gewesen sein - es braucht auch eine etwas spezielle
Bedingungen, damit die Auswirkung ein Crash ist.

Allerdings ist es so, dass ne ganze Menge Code ihn potentiell ausloesen
koennte. Daher muessen wir das Mud auch nochmal neustarten. Dies im Laufe des
Abends geschehen. Danach werden wir hoffentlich wieder eine lange Uptime
haben.

Zesstra

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



Uptime ab 23.2. (Zesstra, 23. Feb 2013, 23:13:33):
Huhu,

nachdem wir jetzt mit einem fehlerbereinigtem Driver und noch ein paar
weiteren in den wenigen Tagen angefallenen Bugfixes nochmal neugestartet
haben, sieht alles soweit gut aus.
Bislang keine Fehler und keine Beschwerden von Spielern. Ich denke, das ist
ein gutes Zeichen fuer die bevorstehende Uptime. :-)
(Falls ihr was schwerwiegendes habt, meldet euch so schnell wie moeglich!)

Und jetzt viel Spass!

Zesstra

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



Wenn es kommt, kommt es heftig. (Rumata, 25. Feb 2013, 09:43:16):
So wie es aussieht, hat es heute nacht um 1:00 einen reboot des
Rechners gegeben. Ich wusste davon auch nix. Mal sehen, ob wir
rausfinden, was da bei netcologne los war...

Rum**

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



FP-Veraenderungen (Humni,  1. Apr 2013, 11:43:34):
Huhu,

uns sind einige Schwierigkeiten mit dem bisherigen FP-System aufgefallen.

Zum einen haben wir viele Spieler, die sich nicht auf eine Rasse und Gilde
festlegen wollen. Diese muessen schon ihren ersten Seher hochspielen, und dann
die anderen Spieler ebenso. Nun kann man sich merken, wo und wie man Monster
toetet und Quests loest, aber die FPs sind die Crux: Die Spieler haben
keinerlei Moeglichkeit, zu erkennen, ob sie einen Forscherpunkt gefunden
haben.

Dies war einmal so beabsichtigt, ist aber nicht mehr zeitgemaess.

Ich gebe gerne zu, dass dies auch mir (als echtem Magiererstie) immer sauer
aufgestossen ist. Zaehneknirschend habe ich dabei immer zugesehen, wie andere
mit ihren Spielern gross wurden, ohne selbst (da Humni ja Magier ist) dabei
mithalten zu koennen.

Wir haben daher lange diskutiert, was man machen kann, und Miril als
zustaendiger Erzmagierin kam daher die Idee, dass Forscherpunkte einfach eine
Meldung erzeugen sollen.

Sprich, ab sofort seht ihr, wenn ihr einen Forscherpunkt bekommt. Es passiert
nicht immer ganz direkt, ein wenig (!) sollt ihr ja noch mit den Zweitspielern
nachhorchen muessen.

Aber ab sofort gibt es weniger Unterschiede zwischen Erst- und Zweitspielern.
Ich denke, wir haben so die Pizzawelt ein Stueck gerechter gemacht.

Humni

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



Re: FP-Veraenderungen (Humni,  2. Apr 2013, 02:03:22):
~#! rn=Humni rt=1364809414 rg=bekanntmachungen
~#! tid=1364809414
Nun gut, das war wohl zu dick aufgetragen. Aber vielleicht gibts ja doch den
oder die wenigen, die es erstmal nicht gemerkt haben.

Fuer diese sei gesagt: APRIL APRIL!

Und wer sich ueber die Meldungen gewundert hat: Die waren (ich vermute quasi
fast nur von mir) persoenlich handgefertigt.

Humni

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



Seher-Anforderungen (Zook, 29. Sep 2013, 11:25:42):
Hallo,

wie der Hilfe-Seite zu "seher" zu entnehmen ist, evaluierien wir
Erzmagier+ jedes Jahr die Seheranforderungen und entscheiden 
ueber Anpassungen. 

Die diesjaehrige Evaluierung hat sich aufgrund meiner Abwesenheit
ein bisschen verzoegert, aber hier ist das Ergebnis:

Die Anforderungen bleiben wie bisher.

Zook

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



Neue Alternative zum Webtelnet (Zesstra, 23. Okt 2013, 20:46:48):
Huhu,

ich habe ein zweites WebTelnet auf der Homepage verlinkt, welches alternativ
zum bisher angebotenen verwendet werden kann:
http://mg.mud.de/online/webtelnet_simple.html

Es ist optisch schlichter und hat div. Funktionen nicht. Dafuer ist es
technisch IMHO ausgereifter und wird nicht nur von uns genutzt, sondern auch
vom Nightfall und anderen Projekten (nicht-MUDs).
Vor allem letzteres ist wichtig, da wir zur Zeit nicht die Manpower haben, das
Webtelnet weiterzuentwickeln.

Es sind beide Webtelnets von http://mg.mud.de/online/index.shtml verlinkt.
Beim "Klick" auf den Spielen-Knopf wird das bisherige Webtelnet benutzt.

Jetzt zwei Fragen:
Welchen findet ihr besser fuer Anfaenger?
Ist die neue Alternative geeignet fuer Screenreader?
(Antworten bitte in die Rubrik diskussion.)

Zesstra

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



Frohes Neues! :-) (Zook,  1. Jan 2014, 11:54:47):
Hallo liebe Mitspieler/Mitmagier/Mitetwase :-)

Ich wuensche Euch allen ein frohes neues Jahr 2014 und viele schoene
gemeinsame Stunden hier im MorgenGrauen. Euch allen vielen Dank fuer das
Mitspielen, Mithelfen, Mitdiskutieren im vergangenen Jahr.

Beste Gruesse,
Zook.

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



Verschluesselter Webtelnet-Zugang (Zesstra,  6. Jan 2014, 19:22:43):
Ich habe heute einem von unseren beiden Webtelnet-Zugaengen Verschluesselung
(mit HTTPS/SSL/TLS) beigebracht.

Soll heissen, ihr koennt euch jetzt auch ueber den Webtelnet einloggen ohne
euer Passwort der NSA zu geben.
Hierfuer muss dieser Link benutzt werden:
https://mg.mud.de/online/webtelnet_ssl.html

Sowohl unverschluesselte als auch verschluesselte Variante sind von
https://mg.mud.de/online/ und http://mg.mud.de/online/
verlinkt.

Vorraussetzung, dass das geht, ist, dass euer Browser unser durch CAcert
signiertes Zertifikat akzeptiert. Hierzu koennt ihr entweder in eurem Browser
das sog. Rootzertifikat von CAcert importieren
(http://www.cacert.org/index.php?id=3) oder eine einzelne Ausnahme fuer
unseren Seite im Browser einrichten (der Browser fragt meistens nach, wenn ihr
verschluesselt zu uns Verbindung aufnehmt und er CAcert nicht kennt).


Zesstra

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



Abkuerzung tm fuer teile-mit (Zesstra, 12. Jan 2014, 14:37:32):
Und weil mich das eigentlich schon ewig nervt:
Neue Spieler und alte Spieler nach Ende/Reboot haben ein neues eingebautes
Kommando 'tm', welches genau das tut, was ihr vermutlich alle als Alias habt:
eine Abkuerzung fuer 'teile x mit y'.

Sprich: eure Aliase sind dann alle unnoetig und ich waere euch dankbar, wenn
ihr sie alsbald loescht.

(Ausnahmsweise in bekanntmachungen, damit das moeglichst viele Leute
 mitkriegen.)

Zesstra

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



Traurige Nachricht: Der Spieler Miro hat uns uns fuer immer verlassen... (Zook,  7. Mar 2014, 09:11:24):
Hallo,

ich muss Euch heute eine traurige Nachricht ueberbringen: Der Spieler, der
hier im MorgenGrauen unter dem Namen Miro bekannt war und in den 1990er
Jahren auch intensiver gespielt hatte, ist Anfang Februar ploetzlich und
unerwartet verstorben.

Fuer mich ist das ein schmerzlicher Verlust: Den Spieler "Miro" kannte
ich hier im MorgenGrauen gar nicht; ich lernte den diesen Charakter
spielenden Menschen vor einigen Jahren in einem beruflich/halb-privaten
Umfeld kennen und schaetzen---ohne je zu wissen, dass er auch hier im 
MorgenGrauen spielt bzw. gespielt hat. Die Nachricht von seinem Tod
hat mich bereits Anfang Februar erreicht, aber erst vor einigen
Tagen hat sich ein Mitspieler gemeldet und darauf hingewiesen, dass
er hier im MorgenGrauen als Miro bekannt war.

Wir werden ihm ein ehrendes Andenken bewahren.

Zook

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



Sicherheitsluecke Heartbleed (Zesstra,  8. Apr 2014, 20:01:35):
Einige von euch haben vielleicht mitgekriegt, dass heute eine schwere
Sicherheitsluecke in einer Software namens OpenSSL bekannt wurde[1,2]. Diese
wird von zahlreichen Diensten im Netz benutzt. Die Sicherheitsluecke
ermoeglicht einem Angreifer u.a. das Auslesen von privaten Schluesseln,
Usernamen, Passwoertern und ggf. weiteren Dingen.

Die gute Nachricht: alle verschluesselten Dienste vom Morgengrauen waren nicht
betroffen.

Die schlechte Nachricht: verwendet ihr z.B. Passwoerter nicht nur im MG,
sondern auch woanders, koennten sie von anderen (verwundbaren) Diensten
geleakt/kompromittiert worden sein. In diesem Fall empfehle ich euch, im MG
neue Passwoerter zu setzen.

Magier, welche sich mit einem SSH-Schluessel anmelden (z.B. fuer den Zugriff
auf git), sollten ggf. neue SSH-Schluessel erzeugen und eintragen lassen,
sofern sie auf ihren Rechnern in den letzten 2 Jahren verwundbare Versionen
hatten.

Neue Passwoerter solltet ihr auf keinen Fall ebenfalls bei Diensten verwenden,
die noch verwundbar sind... Es gibt Websites[3], mit denen sich andere
Websites testen lassen, ob sie die Sicherheitsluecke (noch) haben.

[1]: https://netzpolitik.org/2014/heartbleed-ein-openssl-bug-der-weitreichende
-folgen-haben-koennte/
[2]: http://heartbleed.com/
[3]: http://possible.lv/tools/hb/

Bei Fragen, bitte ggf. in diskussion nachfragen/diskutieren.

Zesstra

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



Re: Sicherheitsluecke Heartbleed (Zesstra,  8. Apr 2014, 23:16:27):
~#! rn=Zesstra rt=1396980095 rg=bekanntmachungen
~#! tid=1396980095
Nach weiterer Recherche: Magier muessen sich um ihre SSH-Schluessel doch keine
Sorgen machen. Alles andere stimmt aber. ;-)

Zesstra

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



Aufraeumarbeiten... (Zesstra, 10. Apr 2014, 07:37:32):
Huhu,

heute Abend vermutlich zwischen 19:00 und 20:00 werde ich den Driver einige
Aufraeumarbeiten im Mud durchfuehren lassen. Diese werden leider einige Weile
brauchen. Ich kann das nur schaetzen auf irgendwas zwischen 5 und 20 Minuten.
Waehrend dieser Zeit wird das Mud auf nichts reagieren - kein Login moeglich
und keine Spielereingaben werden verarbeitet. Ich werde den Beginn noch auf
den Ebenen ankuendigen, aber damit wisst ihr schonmal Bescheid.

Zesstra

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



Crash am Donnerstag Abend (10.4.) (Zesstra, 11. Apr 2014, 10:28:03):
Huhu,

wir ihr bemerkt habt, ist das MG ohne Vorwarnung neugestartet. Das war nicht
beabsichtigt (und stellt uns EMs tatsaechlich vor einige Probleme, da mehrere
von uns gerade in Urlaub fahren - ich bin gerade sogar unterwegs).

Aktueller Stand der Ursachenforschung fuer den Crash ist, dass es ein
Programmierfehler eines Magiers war, der zu einer massiv rekursiven
Datenstruktur fuehrte. Diese wuchs an, bis er Driver bei ihrer Handhabung
soviele Systemressourcen brauchte, dass er vom Betriebssystem abgebrochen
wurde.

Nach dem Reboot sind einige Probleme offenbar geworden (wie immer beim ersten
Reboot nach langen Uptimes), die zur Zeit noch gefixt werden muessen. Es sind 
allerdings ueberraschend wenig. Es ist jedoch wahrscheinlich, dass wir nach
Abschlus der Arbeiten das MG nochmal neustarten werden. Wann dies der Fall
sein wird, kann ich leider noch nicht sagen, vermutlich in den naechsten
Tagen. Naeheres folgt in dieser Rubrik.

Zesstra

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



Reboot am Dienstag Abend, 29.04. (Zesstra, 27. Apr 2014, 17:08:06):
Huhu allerseits,

der angekuendigte Reboot ist jetzt fuer den kommenden Dienstag Abend geplant.
Es ist u.a. ein Update des Betriebssystems auf dem MG-Rechner geplant.
Ausserdem nochmal ein paar Arbeiten an der Mudlib. Daher wird es ein bisschen
Wartezeit geben, bis das Mud wieder laeuft.

Zesstra

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



Re: Reboot am Dienstag Abend, 29.04. (Amaryllis, 27. Apr 2014, 17:46:01):
~#! rn=Zesstra rt=1398611286 rg=bekanntmachungen
~#! tid=1398611286
Hi,

nur, damit Ihr eine ungefaehre Zeitangabe habt: Ich werde ca. 20:30 Uhr mit
dem Update des Servers beginnen. Ende offen.

Vorher koennt Ihr also noch Maxrue metzeln ;)

Ama*

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



Neustart 29/30.04.2014 (Zesstra, 30. Apr 2014, 00:49:53):
Huhu,

wir hatten leider nach dem ersten geplanten Reboot noch Problemchen, weswegen
wir noch ein zweites Mal neustarten mussten.

Es einige Unregelmaessigkeiten im Zusammenhang mit Geld, bei denen wir nicht
ganz sicher sind, ob das eigentliche Problem beseitigt wurde.
Je nachdem, was morgen an Rueckmeldungen reinkommt, kann es sein, dass wir
noch was fixen muessen und je nachdem, wie diese Korrekturen aussehen, kann
das auch auf einen neuen Reboot hinauslaufen.

Weiterhin: es gab ein paar Aenderungen an Code, der fuer die Kommunikationen
von und mit Spielern zustaendig ist. Ich bin sehr daran interessiert, etwaige
Fehlfunktionen (oder grob anderes Verhalten) zeitnah zu erfahren, um
festzustellen, ob dort schwerwiegende Probleme auftreten.

Zesstra

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



Re: Neustart 29/30.04.2014 (Zesstra,  1. Mai 2014, 13:43:17):
~#! rn=Zesstra rt=1398811793 rg=bekanntmachungen
~#! tid=1398811793
Ich bin inzwischen recht optimistisch, dass wir keinen weiteren Reboot
brauchen.

Die mir bislang berichteten Probleme dieser Uptime sind zwar teilweise etwas
nervig zu finden und zu fixen. Aber sie sind nicht sooo schwerwiegend, so dass
Spieler sie ggf. mit einem "ende" selber aus der Welt schaffen koennen oder
dass sie sogar ohne "ende" behebbar sind.

(Es gilt natuerlich wie immer: schwerwiegende Probleme koennen auch spaeter
noch zu Tage treten. Insofern ist das mein Kenntnisstand zu diesem Zeitpunkt.)

Zesstra

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



Seheranforderungen (Zook, 29. Sep 2014, 15:24:15):
Hallo,

wie im Abschnitt zu "hilfe seher" beschrieben, haben wir auch dieses
Jahr die Seheranforderungen evaluiert und ueber Anpassungen beraten
und einen entsprechenden Beschluss gefasst. Dieser fiel am 15. 
September 2014. Die Verkuendung musste jedoch aufgrund meines
Urlaubs bis heute warten. 

Insofern gebe ich bekannt:

Die Seheranforderungen bleiben wie sie sind.

Gruss,
Zook

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



Rechnercrash (Rumata, 19. Nov 2014, 11:31:05):
Hallo Leute,
so wie es aussieht ist heute unser Rechner neu gebootet. Und der Gamedriver
hat auch ein Problem. Also macht es Euch vorerst nicht zu bequem.

Rum**

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



Geldprobleme (Vanion, 19. Nov 2014, 12:27:23):
Liebe Spielerinnen* und Spieler,

derzeit sind erhebliche Mengen an Falschgeld im Umlauf. Folge ist eine
erhebliche Unsicherheit bei unseren Handelsleuten, ob euer Geld nun echt ist,
oder nicht. Sie haben sich daher entschlossen, gar kein Geld mehr anzunehmen,
bis das Problem geloest ist.

Die Taeter sind umzingelt, haben sich aber verbarrikadiert. Es wird also eine
Weile (sicher bis heute Abend) dauern, bis das Problem geloest ist. (Fuer die
Entfernung des ganzen Falschgeldes wird ein Reboot noetig sein.)

Euer Geld ist natuerlich sicher, falls ihr Falschgeld habens solltet, wird
dies nach der Krise automatisch in der Zentralbank umgetauscht.

Fuer die MorgenGrauen-Zentralbank,
V*

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



Re: Rechnercrash (Zesstra, 19. Nov 2014, 23:15:45):
~#! rn=Rumata rt=1416393065 rg=bekanntmachungen
~#! tid=1416393065
Nachdem wir jetzt nach dem ungeplanten Reboot erstmal einige Probleme aufgrund
halbfertiger Baustellen hatten (an dieser Stelle vielen Dank an Rumata,
Arathorn und Vanion) bis es wieder lief, haben wir uns heute Abend mehr der 
Fehlersuche zugewandt.

Nach Auswertung der Systemlogs sind wir etwas schlauer bzgl. dessen, was
passierte. Es kam heute um 9:55 zu einem Drivercrash.
Das automatische Neustarten des Muds klappte leider nicht, weil der Driver
sofort wieder crashte. Daher dauerte es bis zu Rumatas manuellem Eingreifen
bis es wieder lief.

2 Baustellen haben wir heute im Laufe des Tages und Abends hergerichtet. Die
Geldprobleme sollten erledigt sein (vielleicht bis auf kleine, lokale
Probleme).
Allerdings gibts es noch kleinere unerledigte Dinge (z.B. auch mal den
aktuellen Zustand im Homemud laufen zu lassen) und dazu blieb heute abend
keine Zeit mehr (ungeplante Reboots sind ne Pest!). Daher wird es heute keinen
Reboot mehr geben, aber es gibt noch einen spaeter in dieser Woche - mit etwas
Glueck morgen Abend.

Die eigentliche Ursache des Drivercrashes ist leider unklar. Und weil uns
aufgrund eines sehr ungluecklichen Umstandes (der sich in Zukunft nicht mehr
wiederholen wird) ein wesentliches "Beweisstueck" (fuer Techniker: der
coredump) ueberschrieben wurde, steht zu befuerchten, dass wir es auch nicht
(so schnell) herausfinden werden. Ich erwarte aber nicht, dass es sich in der
naechsten Uptime schnell wiederholt - wenn es nicht ohnehin ein bereits in den
letzten Monaten gefixter Fehler war, dann ist zumindest ein seltener Fehler.

Sobald wir was neues wissen oder nen belastbareren Plan haben, informieren wir
euch (wie immer) hier.

Zesstra

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



Re: Re: Rechnercrash (Zesstra, 20. Nov 2014, 22:04:56):
~#! rn=Zesstra rt=1416435345 rg=bekanntmachungen
~#! tid=1416393065
Heute zwischen 23:00 und 0:00 ist ein Reboot zu erwarten.

Zesstra

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



Schoene neue Welt... (Zesstra, 20. Nov 2014, 23:31:27):
Huhu,

das wichtigste ist jetzt erstmal wieder vorbereitet.
Ein weiterer Reboot ist nicht geplant und wir hoffen auf eine lange Uptime.

(Es kann natuerlich immer sein, dass unvorgesehene Probleme auftauchen, die
dann doch wieder nicht ohne Reboot zu loesen sind. Wir gehen aber nicht davon
aus.)

Wer irgendwelche Fehler oder Probleme findet, vor allem wenn es was ist, was
nicht nur lokal auftritt, bitte direkt bescheidsagen.

Zesstra

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



Traurige Nachricht: Der Spieler Vampire hat uns fuer immer verlassen... (Zook, 28. Nov 2014, 14:24:07):
Heute morgen habe ich die traurige Nachricht erhalten, dass Vampire 
verstorben ist. Wir werden ihm ein ehrendes Andenken bewahren.

Zook

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



Adventskalender: viel Spass beim Tuerchenfinden (Zesstra,  1. Dez 2014, 00:13:13):
Huhu,

wir EMs wuenschen euch bei der diesjaehrigen Suche nach Tuerchen und (in der
Parawelt) Wiederbeschaffen von Weihnachtsgeschenken viel viel Spass und
Erfolg!

Uebrigens: viele eurer Vorschlaege vom letzten Jahr wurden fuer dieses Jahr
eingebaut (vielen Dank an Arathorn), vielleicht erkennt ihr sie wieder. ;-)

Ich wuerde mich freuen, wenn ihr auch dieses Jahr uns wieder Feedback fuer
neue Tuerchen, Diebe oder einfach andere Einschaetzungen geben wuerdet.

Zesstra

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



MG Konnektivitaetsprobleme (Amaryllis, 22. Dez 2014, 22:20:20):
Hi,

anscheinend gab es fuer den einen oder anderen das Problem, das MG zu
erreichen.

Problem koennten die DDOS-Attacken auf 1&1 und ggf Strato sein, aber auch
andere Ursachen sind denkbar, da hier auch diverse Sicherheitsmechanismen wie
IDS, Blacklisting o.ae. laufen.

Wer betroffen ist, moege zunaechst einmal nach Moeglichkeit andere Zugaenge
versuchen, z.B. ueber TorBrowser, da dieser andere IP-Adressen benutzt.

Ansonsten mir bitte einmal mitteilen, von welchen IP-Adressen Ihr kommt, dann
kann ich mal in den Filterregeln nachschauen.

Derzeit ist m.E. weder Strato noch 1&1 hier firewalltechnisch gesperrt.

Ama*

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



Notstrom neuer Regionsmagier Wueste. (Zook,  2. Jan 2015, 23:23:46):
Ich ernannte Notstrom zum neuen Regionsmagier fuer die Wueste. Vielleicht
kann er der Region neues Leben einhauchen. Hoffentlich versandet er 
nicht wie andere, die sich diese Aufgabe vornahmen. 

SCNR, das ist irgendwie zu verlockend gewesen.

Nein, ganz ernsthaft: Notstrom kuemmert sich ab sofort um die Wueste, wir
freuen uns, dass er die Region betreut und wuenschen ihm viel Erfolg dabei!

Gruss,
Zook.

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



Crashs und Reboot (Zook,  7. Jan 2015, 16:30:01):
Ersten Analysen nach wird fuer die Fehlerbehebung sicherlich noch ein
Reboot benoetigt.

Zook

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



Re: Crashs und Reboot (Zesstra,  8. Jan 2015, 23:04:24):
~#! rn=Zook rt=1420644601 rg=bekanntmachungen
~#! tid=1420644601
Der Fehler ist identifiziert. Aber da wir morgen noch RL haben und einige
andere Dinge auch noch zu erledigen sind, wird besagter Reboot wohl am WE
stattfinden.

Zesstra

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



Re: Re: Crashs und Reboot (Zesstra, 10. Jan 2015, 14:14:10):
~#! rn=Zesstra rt=1420754664 rg=bekanntmachungen
~#! tid=1420644601
Also: wenn ich etwas halbwegs definitives sagen kann, wann es diesen Reboot
gibt, werde ich das in bekanntmachungen tun und/oder Armageddon starten. Bis
dahin: ich weiss es auch nicht und die anderen Magier auch nicht.
(Und es nutzt auch nix, wenn ihr andere Magier, die fragen dann naemlich mich
und sie kriegen die gleiche Antwort.)
Es ist fertig, wenn es fertig ist.

Zesstra

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



Re^3: Crashs und Reboot (Zesstra, 11. Jan 2015, 02:56:46):
~#! rn=Zesstra rt=1420895650 rg=bekanntmachungen
~#! tid=1420644601
Aktuelle Planung:
Reboot des Muds am spaeten Sonntag Nachmittag (11.1.) mit anschliessendem
Test. Wenn dabei Spieler durchs Mud laufen, wird der Test besser. ;-) Dabei
finden wir hoffentlich verbliebene Probleme, die im Homemud/Testmud nicht
auffielen.
Anschliessend gegen/am Abend nochmal ein Neustart des Rechners wegen einiger
Updates am Betriebssystem. Das wird vermutlich zuegig gehen.

Zesstra

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



Neue Uptime... Neues Glueck... ;-) (Zesstra, 11. Jan 2015, 23:56:51):
So. Nachdem nun scheinbar alles ruhig laeuft und weder viele Debugmeldungen
scrollen noch von euch Beschwerden kommen, gehe ich mal davon aus, dass wir
jetzt wieder eine laengere Uptime vor uns haben bzw. dass der naechste
geplante Reboot ne ganze Weile hin ist.

Viel Vergnuegen und spielt es nicht so schnell wieder kaputt. ;-)

Zesstra

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



Bugfix neuer Regionsmagier fuer das Verlorene Land (Zook, 18. Jan 2015, 15:23:05):
Hallo,

ich habe heute Bugfix als neuen Regionsmagier fuer das Verlorene Land
berufen. Viel Spass und Erfolg mit Deiner neuen Region!

Zook

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



Versuchskaninchen fuer den Test giftiger Kraeutertees gesucht (Zesstra, 22. Apr 2015, 21:30:47):
Huhu,

wir (die EMs) suchen ein paar Spieler, die Lust haben, die kombinierte Wirkung
von den diversen im Spiel zu findenden Kraeutern am eigenen Koerper zu testen.
(Den Testkoerper muesst ihr stellen, ihr bekommt aber ggf. einen neuen, wenn
die Wirkung gar zu toedlich war. Fuer die Ausruestung wird keine Haftung
uebernommen.)

Die Erwartung waere: ueber ein paar Wochen (natuerlich nebenbei) Kraeuter
sammeln und miteinander zu kombinieren und die entsprechende Wirkung zu
testen, auch ggf. in Wechselwirkung mit anderen Dingen. Dementsprechend waere
es also noetig, in den kommenden Wochen auch tatsaechlich aktiv zu spielen.
;-)

Vor allem technische Probleme wollen wir in der Phase ausmerzen, aber auch
allgemeine Kommentare dazu sind willkommen (auch wenn ich nicht versprechen
kann, dass wir allen folgen).

Was gibts dafuer? Oeh. Die Chance, es vor allen anderen ausprobieren zu
koennen, schonmal zu lernen und das gute Gefuehl, mitgeholfen zu haben. ;-)
Vielleicht sogar ein paar lobende goettliche Worte.

Interessenten melden sich bitte bei mir oder Arathorn.

Zesstra

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



Re: Versuchskaninchen fuer den Test giftiger Kraeutertees gesucht (Zook, 28. Apr 2015, 10:23:15):
~#! rn=Zesstra rt=1429731047 rg=bekanntmachungen
~#! tid=1429731047
Lobende goettliche Worte sage ich selbstredend zu. Voraussetzung
sind allerdings ein paar schoene Tode.

Zook

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



Zugang ins MG: Port 23 und 4711 (Zesstra, 28. Apr 2015, 21:41:38):
Huhu allerseits,

aus aktuellem Anlass eine kleine Erinnerung. ;-)
In den letzten Tagen gab es Spieler, die sich ueber den Port 23 nicht ins MG
einloggen konnten. Eine moegliche Ursache ist, dass Netzbetreiber Verkehr auf
diesem Port ausfiltern.
Deswegen gibt es schon seit Ewigkeiten zwei Zugaenge ins MG:
Port 23 und 4711.
Siehe auch: http://mg.mud.de/online/index.shtml
Wenn ihr also Probleme mit dem Login habt und euer Client sich zu Port 23
verbindet, versucht einfach mal 4711.

(Oder - wenn ihr auch nicht wollt, dass jemand zwischen euch und dem MG euer
Passwort und eure Kommunikation mitlesen kann, koennte auch den
verschluesselten Zugang benutzen: http://mg.mud.de/download/stunnel.shtml)

Zesstra

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



Morgengrauen-TS (Arathorn,  5. Jun 2015, 17:49:55):
Hallo zusammen,

das MG-Teamspeak ist jetzt wieder wie gewohnt ueber mgts.mud.de erreichbar.
Hate hatte seinen DNS-Eintrag vor einer Weile mal bereinigt und dabei
wohl diese Subdomain mit entsorgt. Er hat sie uns dankenswerterweise nun
aber wiederhergestellt, so dass jetzt wieder alles beim alten ist.

Gruss, Arathorn.

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



Re^5: Filterregeln Morgengrauen-Telnet (?) (Amaryllis, 15. Jul 2015, 21:23:22):
~#! rn=Anatol rt=1436936463 rg=hardsoftware
~#! tid=1435647689
*GNARF*

Davon, dass man am Gras zieht, waechst es auch nicht schneller!
Und es duerfte wohl nicht sooo entscheidend sein, ob Du nun von Deinem VServer
aus oder von sonstwo daueridelst...

Ich zitiere mal aus einem anderen Posting:
> 1&1 verweist auf NetCologne.
> NetCologne Kontakt verweist auf NetCologne Stoerung.
> NetCologne Stoerung verweist auf abuse@.
> abuse@ reagiert nicht.

> Zeile 2 und 3 mit maximaler Unfreundlichkeit. Ich bin ja kein NetCologne-
  Kunde.

Hierzu stelle ich fest:

Dass "2 und 3 mit maximaler Unfreundlichkeit" erlebt wurde, kann ich weder
bestaetigen noch dementieren, bin aber vom NC-Support anderes gewohnt.

Die Punkte 2-4 sind komplett irrelevant, da Punkt 1 schon nicht vom
verantwortlichen Provider (hier: 1&1) geloest wurde. Sich zurueckzulehnen
und an den "Blockierer" zu verweisen, ohne die Dutzenden von Beschwerden,
die vorliegen, zu bearbeiten - geschweigedenn das Problem zu loesen -
zeugt nur von maximaler Ignoranz ala "Wir sind so gross, es kann sich eh
keiner leisten, uns zu blocken!". Und dann einfach nur den Ball zurueck-
zuspielen, ist wohl der Gipfel der Unverschaemtheit.

Nochmal: Es erfolgten Dutzende von Beschwerden mit Logfile-Excerpts inkl.
Timestamps, WHOIS etc. - also noch einfacher kann man es einer
funktionierenden
Abuse-Abteilung (die 1&1 anscheinend nicht hat) nicht machen. Im Gegensatz
zu NetCologne bekommt man bei dem Laden auch noch nicht einmal einen Auto-
Responder ueber die eingegangene Beschwerde - da ist selbst die oft so
vielgeschmaehte Telekom besser, die in meinen Faellen sowohl einen Auto-
Responder als auch i.d.R. innerhalb eines Tages nochmal die Rueckmeldung
schickte, dass der Vollpatient geerdet ist.

Erwartet die 1&1 ernsthaft, dass man sich das taegliche Flooding von gehackten
Kisten etc. antut (mit der Gefahr, ggf. selbst kompromittiert zu werden, z.B.
durch BruteForce-SSH-Attempts), auch noch den Traffic dieses Muells bezahlt
und dann auch noch ruhig zusieht, wie dieser Saftladen die Haende in den
Schoss legt?

Ich hatte vor einiger Zeit einmal ueberlegt, aufgrund des Preises mit meinen
Internetdiensten zu 1&1 zu wechseln. Ich werde nach den ganzen Erfahrungen
hier
den Teufel tun! What you pay is what you get - das sollte man sich mal ueber-
legen, *warum* ggf. die Dienste dort so billig sind? Weil sie vielleicht genau
am Support und an solchen, fuer einen guten ISP selbstverstaendlichen Dienst-
leistungen (zu denen sie uebrigens auch verpflichtet sind) sparen?

Ich habe gute Kontakte zu einigen Admins bei der 1&1, die mir das leider in
den letzten Tagen bestaetigt haben. Ihnen sind natuerlich die Haende gebunden,
aber sie sagten mir auch: Was Ihr da tut, ist voellig verstaendlich, und Ihr
seid nicht die Einzigen. Es wird der Moment kommen, da wird sich diese
Ignoranz
insofern raechen, als es dann erheblich mehr Aufwand bedeutet, die ganzen
verbrannten Netze wieder von den hunderten von Blacklists zu kratzen...

Was bleibt nun als Loesung?
Ich habe jetzt die Moeglichkeit gefunden, einzelne IPs aus den Blocks
herauszu-
nehmen, werde davon aber auch nur im begruendeten Einzelfall Gebrauch machen,
weil mir das administrativ einfach zu aufwendig ist. Was das Routing bei NC
angeht, so sollte das wieder vollstaendig offen sein. Wer also meint, dass
seine (statische) IP hier geblockt sein sollte (bitte hierbei zuerst die
relevanten Ports 23, 4711 und auch 80 durchprobieren - wenn z.B. nur 23
geblockt ist, ist es sehr sicher ein Filter bei Eurem Provider oder Arbeit-
geber!), moege mir die IP mitteilen, dann kann ich das nachschauen.

Ich bitte um Verstaendnis, dass es einige Zeit gekostet hat, aber es hat mich
auch einiges an Arbeit gekostet, und dass die Gespraeche mit NC jetzt nicht
auf Prio1 bei denen waren, sollte bei einem FullSponsored-Server eigentlich
einleuchten. (Zudem ist auch noch Urlaubszeit...)

Ama*


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



Region Wald (Zook, 26. Jul 2015, 21:07:04):
Chagall ist von seinem Posten als Regionsmagier im Wald 
zurueckgetreten. Ich bedanke mich bei ihm fuer die vielen 
Jahre, in denen er diesen Job inne hatte und fuer seine Zeit
und Engagement in der Region.

Zook

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



Reboot (Amaryllis, 11. Sep 2015, 03:48:39):
Hallo zusammen,

es wird noch in diesem Monat einen Reboot geben.

Grund (obwohl ich mich dafuer angesichts der hohen Uptime imho nicht
rechtferigen muss ;)) ist ein OS-Update, das mir weitere Security-Optionen
ermoeglicht, die in letzter Zeit angemeckert wurden und auf deren Reaktion,
die von meiner Seite aus mit recht hohem Aufwand verbunden ist, ich keine 
Lust mehr habe.

Ich plane diesen Reboot fuer die kommende KW. Sollten Unwaegbarkeiten
hinzukommen, die ich derzeit noch nicht komplett abschaetzen kann, eine Woche
spaeter, d.h. letzte September-Woche.

Es tut mir leid, dass ich Euch keinen genauen Termin nennen kann, aber ich bin
gerade selbst hier etwas am "Rotieren" und weiss nur, dass ich den Reboot noch
in diesem Monat hinkriegen sollte, um bei Notfaellen zeitnah im RZ sein zu
koennen und nicht ggf. irgendwo in Auslandsprojekten "abzuhaengen".

Sry for the inconvenience. Aber dem Spielspass, den uebervollen
Seherschraenken
und anderen Dingen koennte es sogar etwas gut tun ;)

Schoenes Wochenende,
Ama*

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



Re: Reboot (Amaryllis, 14. Sep 2015, 07:19:35):
~#! rn=Amaryllis rt=1441936119 rg=bekanntmachungen
~#! tid=1441936119
Hi,

nach meinen jetzigen Planungen findet das Update und der damit verbundene
Reboot etc. am Mittwoch abend (16.09.) statt.
Rechnet mal mit einer laengeren Downtime.

Und ja, genauer kann ich es nicht sagen - sogar das ist ohne Gewaehr ;)

Ama*

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



Reboot (Amaryllis, 17. Sep 2015, 21:41:27):
Hi,

das Upgrade inkl. Reboot war soweit zum Glueck erfolgreich, die Vorarbeit hat
sich gelohnt und ich musste nicht vor Ort sein ;)
Es bugt wie immer nach Reboot hier und da, aber ich bin derzeit optimistisch,
dass wir das ohne einen weiteren Reboot hinbekommen.

Ein Dank geht an Arathorn und Zesstra, die per TS mit dabei waren, Daumen
gedrueckt und nach erfolgreichem Reboot mitgeholfen haben (was Servertests
angeht).
EM-Power at it's best ;)

Gruss,
Ama*

PS: Das Problem mit dem Webserver habe ich leider erst ca. eine Stunde nach
Reboot geloest bekommen (doofer Apache), also ist nichts bei Euch kaputt
gewesen, wenn Webseite und/oder Webtelnet nicht funktioniert haben ;)

Auf eine hoffentlich lange Uptime!

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



reboot (Amaryllis, 13. Okt 2015, 22:24:21):
hi,

es war leider kurzfristig noch ein reboot notwendig. ich hoffe, dass er der
stabilitaet dienlich ist.

gruss
ama
(sry fuer tipfehler, bin ueber handy online)

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



Re: reboot (Zesstra, 14. Okt 2015, 11:06:50):
~#! rn=Amaryllis rt=1444767861 rg=bekanntmachungen
~#! tid=1444767861
Wir haben die konkrete Ursache fuer den Reboot am Montag vormittag ermittelt.
Es handelte sich nicht um einen technischen Defekt. Weiterhin gehe ich davon
aus, dass sich der Anlass in absehbarer Zukunft nicht wiederholt.
Fuer einen weiteren Reboot in naher Zukunft ist zur Zeit auch kein Grund
absehbar. Insofern wird die Uptime jetzt hoffentlich wieder laenger.

Viel Spass!

Zesstra

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



Ignorieren (Zesstra, 28. Okt 2015, 20:41:08):
Huhu,

ich moechte eure Aufmerksamkeit auf den Befehl "ignoriere" lenken.
Und zwar, weil mir aufgefallen ist, dass einige von euch den offenbar falsch
benutzen. Guckt bitte alle mal in die Hilfeseite von dem Befehl und
anschliessend in eure Ignoriereliste.

Einige Bespiele, die nicht funktionieren (oder es zumindest bald nicht mehr
tun):
* faerbe
* segen.spieler
* finde
* laeutere
* segne
* beschwoere

Alle diese Beispiele wuerden nur Spieler mit diesem Namen ignorieren, aber
keine Aktion.

Zesstra

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



Nachruf: Slaibnyr  (Zook, 14. Dez 2015, 19:46:17):
Hallo zusammen!

Ich habe die traurige Nachricht weiterzugeben, dass der Mensch, der
hinter dem Spieler Slaibnyr stand verstorben ist. Wir werden ihm ein 
Andenken bewahren.

Zook.

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



Neuer Regionsmagier im Wald: Notstrom (Zook, 18. Dez 2015, 16:52:51):
Hallo,


nachdem im Wald langsam mangels Aufsicht der Schlendrian einzuziehen 
droht, berufe ich Notstrom als Regionsmagier. Er hat schon die Baumschere,
Kaefervernichtungsspray etc. bereit. 

Ich wuensche Dir viel Spass und ein gutes Haendchen bei dieser Region!

Zook.

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



SSL Zugang (Rumata,  9. Jan 2016, 16:29:13):
Hallo Leute,

leider ist unser SSL Zertifikat abgelaufen, deshalb kann man sich
momentan nicht auf dem SSL Zugang einloggen (wenn es doch geht, ist
euer Client jedenfalls buggy ;-) Wir pruefen gerade, ob wir das
Zertifikat ohne Reboot erneuern koennen, falls nicht waere in naeherer
Zukunft ein Reboot faellig.

Das zur Info
Rum**

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



Neues SSL-Zertifikat fuer mg.mud.de (Zesstra,  9. Jan 2016, 17:08:07):
Hallo allerseits,

unser Driver war zum Glueck auch schon neu genug, um das Austauschen der
SSL-Zertifikate ohne Neustart zu erlauben (das kam tatsaechlich erst letztes
jahr).
Ich habe jetzt das Zertifikat fuer das Mud und auch fuer den Webserver
aktualisiert. (Sollte noch irgendwo nen altes kommen, bitte bescheidsagen.)
Der Vollstaendigkeit halber:
Auch das neue Zertifikat ist von Cacert.org.
Es hat den Fingerprint (SHA256): F5:E6:F3:B7:DF:15:0E:32:9C:1D:66:85:5B:02:EE:
BB:76:09:FF:7D:6B:E2:35:BF:04:93:2B:32:78:0D:7D:7B
Der verwendete private Schluessel hat 4096 bit Laenge.

Zesstra

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



Re: Neues SSL-Zertifikat fuer mg.mud.de (Rumata,  9. Jan 2016, 18:19:40):
~#! rn=Zesstra rt=1452355687 rg=bekanntmachungen
~#! tid=1452355687
Danke, Zesstra, fuer das schnelle fixen.

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



Re: Neues SSL-Zertifikat fuer mg.mud.de (Amaryllis,  9. Jan 2016, 19:37:00):
~#! rn=Zesstra rt=1452355687 rg=bekanntmachungen
~#! tid=1452355687
ich wusste doch, wieso ich im alten Jahr noch ein Upgrade durchgefuehrt
habe... -)

Ama**

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



Uebervolle Postfaecher bitte aufraeumen (Zesstra, 31. Jan 2016, 21:16:20):
Huhu allerseits...

ich moechte mal darum bitten, dass ihr eure Postfaecher von Zeit zu Zeit auch
mal aufraeumt. Insb. sofern ihr mehr als 200kb belegt habt. Dies koennt ihr am
Ende der Briefeliste an dieser Angabe sehen: "Gesamtgroesse Deines Postfachs:
300 KB."

Ihr werdet auch durch Meldungen wie diese drauf aufmerksam gemacht, z.B. fuer
Postfaecher groesser als 500KB: ;-)
* Dein Postfach hat eine absolut unakzeptable Groesse erreicht. * 
* Uebergrosse Postfaecher verursachen unnoetiges Lag fuer alle! *
* Bitte raeume es dringend auf, d.h. loesche alle Briefe, die   *
* Du nicht _unbedingt_ benoetigst, oder lager sie aus und       *
* loesche sie anschliessend. Hauptsache, weg damit.             *

Vor allem wenn div. Multi-Megabyte-Postfaecher nicht mal schlanker werden,
koennte es passieren, dass jemand irgendwann eure Postfaecher fuer euch
sortiert (ungelesen natuerlich) oder ihr der Postbeamte sich weigert, weitere
Briefe reinzustopfen. ;-)

Zesstra

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



Reboot (Amaryllis, 17. Feb 2016, 19:27:17):
Hi,

sry, aber aufgrund eines akuten s
Sicherheitsproblems wird es heute abend einen Reboot geben.

Ama*

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



Re: Reboot (Zesstra, 17. Feb 2016, 20:44:17):
~#! rn=Amaryllis rt=1455733637 rg=bekanntmachungen
~#! tid=1455733637
Es stehen einige Driver + Mudlibaenderungen in der Warteschlange, welche
zumindest am besten mit einem Reboot gemacht werden. Weil die Zeit heute abend
allerdings viel zu knapp fuer solche Spielereien ist, wird es vermutlich nicht
bei einem Reboot bleiben...

Ich schaetze, dass es am Freitag abend nochmal einen gibt. (Ich haette zwar
gerne mehr Zeit fuer die Vorbereitung, aber naja... geht hoffentlich...)

Ich halte euch auf dem Laufenden, sobald die Planungen konkret genug sind.
Oder sich erledigen, falls es in dem zur Verfuegung stehenden Zeitfenster
nicht zu machen ist.

Zesstra

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



Re: Re: Reboot (Arathorn, 20. Feb 2016, 01:18:16):
~#! rn=Zesstra rt=1455738257 rg=bekanntmachungen
~#! tid=1455733637
Hallo zusammen.

Wir haben heute abend verschiedene Male rebooten muessen, um die Aenderungen
an der Mudlib einzuspielen. Es waren noch einige Fehler im System, die wir
nun weitgehend ausgemerzt haben. Einige haben das im Laufe des Abends 
festgestellt, weil es Probleme mit Ausgaengen gab, die aber jetzt behoben
sind.

Was noch nicht ganz erledigt ist, ist die Aenderung an den Seherhaeusern.
Fuer die Seher unter euch, ihr werdet hin und wieder Notausgaenge im Haus
finden, die da nicht hingehoeren. Das ist ein Problem, das mit der 
Ueberarbeitung Einzug hielt und das wir noch nicht komplett vertrieben 
haben. Ueberzaehlige Notausgaenge raeumen sich beim naechsten Reset des
Raumes von selbst weg, es kann aber sein, dass die irgendwann wiederkommen.
Diese Notausgaenge sind nicht nur fehl am Platz, sondern leider auch kaputt.
Daher einfach nicht benutzen, sondern ignorieren, bis sie weg sind.

Die Behebung des Notausgang-Problems wird hoffentlich keinen weiteren Reboot
erfordern. Wir kuemmern uns zeitnah darum und werden euch auf dem Laufenden
halten, wie es mit dieser Baustelle weitergeht.

Ansonsten sollte normaler Spielbetrieb moeglich sein.

Alles weitere in Kuerze an dieser Stelle.
Viel Spass bis dahin!

Arathorn.

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



Re^3: Reboot (Zesstra, 20. Feb 2016, 11:04:59):
~#! rn=Arathorn rt=1455927496 rg=bekanntmachungen
~#! tid=1455733637
Der Fehler, der zu den ueberfluessigen (und kaputten) Ausgaengen gefuehrt hat,
ist behoben.
Neu geladene Seherhaustruhen lassen sich ab jetzt auch wieder von erlaubten
Spielern oeffnen. (Einzelne Raeume/Truhen lade ich auch per Hand neu, wenn
Bedarf besteht.)
Ein erneuter Reboot ist zum aktuellen Zeitpunkt nicht noetig - sofern ihr
nicht noch schwerwiegende bzw. grossflaechige Fehlfunktionen findet. ;-)

Bei ungewoehnlichen oder neuen Problemen bitte mit oder einem anderen EM
Bescheid sagen.

Eine Sache noch: wir mussten heute nacht ein Backup der Seherhaeuser von
gestern morgen (19.2. ca. 8 Uhr) einspielen - falls ihr gestern im Laufe des
Tages wichtige Dinge an eurem Haus gemacht habt, muessen wir ggf. gucken, ob
man das wiederherstellen kann.

Zesstra

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



Crash vom 20.02.2016 gegen 12:00 Uhr (Arathorn, 20. Feb 2016, 12:21:31):
Hallo zusammen,

es gab heute kurz vor 12 Uhr in kurzer Folge zwei Crashes. Die Ursache dafuer
ist noch nicht bekannt, wir sind aber dran.

Wenn sich bestaetigt, dass es sich um einen Fehler im Gamedriver handelt,
bedeutet das, dass wir nach der Reparatur noch mindestens einmal rebooten
muessen.

Der Crash scheint mit dem Zauber "segne" der Klerusgilde zusammenzuhaengen,
daher habe ich diesen voruebergehend abgehaengt. Es kann aber sein, dass
das nicht der einzige Ausloeser ist, wundert euch also nicht, wenn es ggf.
nochmal knallt.

Soweit von mir.
Gruss, Arathorn

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



Re: Crash vom 20.02.2016 gegen 12:00 Uhr (Arathorn, 20. Feb 2016, 13:44:00):
~#! rn=Arathorn rt=1455967291 rg=bekanntmachungen
~#! tid=1455967291
So, die Reparatur des Gamedrivers war insoweit erfolgreich, als dass das
Problem behoben ist, das zu den Crashes fuehrte. Wir haben das Mud nach dem
Einspielen des Fixes bereits neu gestartet. Wie immer bei groesseren
Aenderungen kann natuerlich irgendwoanders in den Untiefen des Drivers noch
anderes Ungemach lauern, bisher sieht aber alles gut aus.

An dieser Stelle auch einmal herzlichen Dank an Zesstra, die auf Zuruf zur
Stelle war, einen Quickfix im Mud eingebaut hat, dann den Driverfehler
gesucht, gefunden und behoben hat, und den neuen Driver auf dem Mudrechner 
eingespielt und zumindest grundlegend getestet hat. Und das zu allem 
Ueberfluss von unterwegs ueber Mobilfunk-Internet, wo wir alle wissen, wie
beschwerlich das sein kann. Danke dafuer!

Zu guter Letzt bleibt mir nur zu sagen: Auf eine hoffentlich lange neue
Uptime!

Viel Spass!
Arathorn.

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



Re: Re: Crash vom 20.02.2016 gegen 12:00 Uhr (Amaryllis, 22. Feb 2016, 20:55:41):
~#! rn=Arathorn rt=1455972240 rg=bekanntmachungen
~#! tid=1455967291
Ich muss hier leider gegensteuern . .. es koennte noch einen reboot geben, lt
hoster. bin unterwegs dnaher keine naehere info. vllt morgen. mfg Ama 

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



Re^3: Crash vom 20.02.2016 gegen 12:00 Uhr (Zesstra, 26. Feb 2016, 19:11:30):
~#! rn=Amaryllis rt=1456170941 rg=bekanntmachungen
~#! tid=1455967291
Um einigen Geruechten entgegen zu wirken: bislang gibt es nichts uns bekanntes
neues. Wenn es das gibt, informieren wir euch hier.
Und solange hier keine Zeit fuer einen Reboot angekuendigt ist, ist keiner
angekuendigt. ;-)

Zesstra

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



Forscherpunkte ausgetragen (Arathorn, 25. Mai 2016, 00:02:58):
Hallo zusammen,

zu eurer Info, ich habe heute im Laufe des Abends insgesamt 42 FPs
ausgetragen. Es gibt verschiedene Gruende, warum ein FP geloescht worden 
sein kann. Zur Illustration will ich einige davon auffuehren, jedoch ohne
Anspruch auf Vollstaendigkeit:

- Raum nicht angeschlossen oder keine Datei mehr vorhanden
- Detail/Info gar nicht vorhanden
- Kette zu Detail/Info nicht vorhanden
- nur fuer einen Teil der Spieler zugaenglich
- nur unter sehr speziellen Bedingungen zu finden
- technisch fehlerhafte Implementierung

Vorteile:
Dadurch, dass sich die Gesamtzahl an FPs reduziert hat, koennte sich die
FP-Statistik zu euren Gunsten veraendert haben, d.h. die Angabe, wie gut ihr
euch relativ zu allen anderen auskennt. Das haengt aber davon ab, wie viele
FP ihr schon habt.

Nachteile: 
Keine. Insbesondere sind _niemandem_ Stufenpunkte verlorengegangen. Die FPs
wurden ausschliesslich aus der zentralen Datenbank ausgetragen, nicht aus
euren Spielerdaten. Falls also wider Erwarten die Daten nicht konsistent
gewesen sein sollten, geht die Austragung nicht zu Lasten eurer Stufenpunkte.

Gruss, Arathorn.

P.S.: Es gibt aktuell noch weitere Kandidaten fuer Austragungen, diese sind
      in der EM-Runde zur Diskussion gestellt. Wenn es noch weitere FPs
      erwischt, sage ich euch in der MPA nochmal Bescheid.

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



Re: Forscherpunkte ausgetragen (Arathorn, 31. Mai 2016, 20:16:54):
~#! rn=Arathorn rt=1464127378 rg=bekanntmachungen
~#! tid=1464127378
zur Info: Ich habe gerade weitere 8 FPs ausgetragen, die in die bereits
genannten Kategorien fielen.

Gruss, Arathorn.

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



Neuer Regionsmagier Unterwelt (Zook, 30. Jul 2016, 17:53:31):
Hallo, wir freuen uns: Rhovan moechte sich zukuenftig um die Unterwelt
kuemmern. Ab sofort ist er Regionsmagier fuer diese Region. Wir w
~
kuemmern. Ab sofort ist er Regionsmagier fuer diese Region. Wir 
wuenschen Dir viel Erfolg!

Zook

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



Kurzfassung der Regeln (Zesstra, 20. Sep 2016, 20:33:23):
Auf Spielerwunsch haben wir jetzt am Anfang der Spielregeln eine kurze
Zusammenfassung.
Wenn jemand meint, das sei nicht ausreichend nah an der Langfassung, meldet
euch. ;-)
Vielen Dank an Gloinson!

Zesstra

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



Aus gegebenem Anlass... (Humni, 24. Sep 2016, 00:04:17):

Wenn Ihr den Verdacht habt, dass gegen Regeln verstossen wird, dann meldet das
bitte den entsprechenden Stellen im Mud, hier insbesondere dem Sherriff. Dinge
"selbst in die Hand nehmen" oder einen Verdacht einfach in der Spielerschaft
weiterzuverbreiten kann und wird hier nicht geduldet werden.

Das Morgengrauen ist keine Plattform fuer Mobbing.

Humni

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



Re: Aus gegebenem Anlass... (Amaryllis, 28. Sep 2016, 22:31:47):
~#! rn=Humni rt=1474668257 rg=bekanntmachungen
~#! tid=1474668257
Das kann ich nur unterschreiben.

Ich bin zwar momentan wegen Stress nicht taeglich erreichbar, aber ich
reagiere durchaus noch.

Ama*

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



Einladung: 25 Jahre Morgengrauen (Arathorn,  4. Okt 2016, 22:42:53):
***********************************************************************
Hallo allerseits!

wir senden aktuell die untenstehende Einladung per Mail an viele aktive und
ehemalige Mitspieler. Ich poste sie hier noch einmal fuer alle, die eine
MPA haben, da diese Rubrik im Standard-Rubriken-Abo enthalten ist.

Komment zuhauf!

Arathorn.
************************************************************************

HTTP/1.0 302 Found
Location: http://mg.mud.de/

NetCologne, Koeln, Germany. Local time: Sat Oct  1 20:58:29 2016

MorgenGrauen LDmud, NATIVE mode, driver version 3.5.0.5 (3.5.0.5)

>>> MorgenGrauen, hosted by NetCologne (http://www.netcologne.de) <<<

Du verlierst die Besinnung...

... und ploetzlich sind 25 Jahre um.

Du tauchst in einen Strudel bunter Farben ein.
Ein kleiner gruener Steinbeisser erscheint.

Der Steinbeisser sagt:
Hallo!

Vielleicht erinnerst Du Dich noch an mich. Mich gibt es seit dem 25.3.1992.
Das heisst, im naechsten Jahr werde ich 25 Jahre alt und moechte Dich daher
zur grossen

                        MorgenGrauen-Jubilaeumsparty

einladen.

Der Steinbeisser haelt ein grosses Schild mit den wichtigsten Infos hoch:
Ort:         Bochum (bzw. naehere Umgebung)
Datum:       25.3.2017
[Team:Orga]  Arathorn, Humni, Miril, Zesstra et al.

Der Steinbeisser sagt:
[Team:Orga] plant eine Abendveranstaltung und evtl. noch ein Programm fuer
den Tag. Da es bislang keine Vorstellung hat, wie viele von euch zusagen
werden, benoetigt es verlaessliche Informationen, um einen Partyraum zu
buchen und einen Caterer zu engagieren. Um einen Schlafplatz kuemmerst Du
Dich bitte selbst (Hotels, Hostels und JH sind in Bochum zahlreich zu
finden, wir helfen gerne, falls noetig).
Die Party wird in einer von der Groesse her passenden Lokalitaet (Tanke mit
Enttanke) im Grossraum Bochum stattfinden. Da [Team:Orga] noch keine Zahlen
vorliegen, kann ich Dir leider noch nicht mehr sagen, werde dies aber
rechtzeitig tun.

Der Steinbeisser ergaenzt:
Daher ist es noetig, dass Du Dich verbindlich anmeldest und eine Anzahlung
in Hoehe von 15 Euro leistest, damit [Team:Orga] in die konkrete Planung
und Buchung einsteigen kann. Diese 15 Euro werden fuer die Raummiete
verwendet und koennen Dir bei Verhinderung leider nicht erstattet werden.

Bitte melde Dich per Mail an mud@mg.mud.de an; achte dabei darauf, dass Du
Deinen Spielernamen in der Mail angibst. Ausserdem ueberweise bitte 15 Euro
auf folgendes Konto:

Foerderverein Projekt Morgengrauen e.V.
IBAN: DE09 2802 0050 9204 1417 00
BIC: OLBODEH2XXX
Oldenburgische Landesbank AG

Als Verwendungszweck gib bitte an: MG-Party 2017 - Spielername
(Wenn das nicht da steht, wird es eine Spende an den Verein...)

Viele Gruesse,
der Begruessungs-Steinbeisser, vor lauter Vorfreude ausser Rand und Band.

P.S.: Bitte meldet euch bis 22.10.2016 an und ueberweist den genannten
Betrag.

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



Re: Einladung: 25 Jahre Morgengrauen (Arathorn,  4. Okt 2016, 22:46:10):
~#! rn=Arathorn rt=1475613773 rg=bekanntmachungen
~#! tid=1475613773
Hallo zusammen,

ich nochmal.

Wir haben eine wichtige Bitte an euch: in der Rubrik part.bekanntmachungen
poste ich eine Liste mit den Namen der Spieler, die wir per E-Mail bislang
nicht erreichen konnten, weil die Mailadresse nicht mehr funktioniert.
Wir bitten daher darum, dass jeder einmal dort hineinschaut und ueberlegt,
ob er nicht irgendwie Kontakt zu einem oder mehreren der dort Genannten
hat oder herstellen kann - zur Not auch ueber fuenf Ecken. Es waere doch
schade, wenn nicht jeder die Info bekaeme.

Ein dickes Dankeschoen vorab!

Gruss,
[Team:Orga] Arathorn.

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



Re: Re: Einladung: 25 Jahre Morgengrauen (Arathorn, 17. Okt 2016, 00:18:03):
~#! rn=Arathorn rt=1475613970 rg=bekanntmachungen
~#! tid=1475613773
Hallo zusammen,

auch hier nochmal die Info, weil diese Rubrik von mehr Leuten gelesen wird:
es gibt einen Nachschlag mit Spielernamen, deren Mails zurueckgekommen sind.
Seid doch bitte so nett, da einmal draufzuschauen und ggf. die Einladung
weiterzuleiten, wenn ihr jemanden kennt und noch andere Kontaktmoeglich-
keiten habt.

Danke!

Gruss,
[Team:Orga] Arathorn.

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



Re: Einladung: 25 Jahre Morgengrauen (Arathorn, 25. Okt 2016, 18:00:48):
~#! rn=Arathorn rt=1475613773 rg=bekanntmachungen
~#! tid=1475613773
Hallo zusammen,

ich habe zwei wichtige Updates und eine wissenwerte Info fuer euch 
hinsichtlich der 25-Jahres-Party.

1) Der Party-Ort steht nun nach Klaerung der wesentlichen Details fest:
   
        Wir feiern im "Excalibur", Marienstrasse 13, 58455 Witten.
   
   Die Start-Uhrzeit wird vermutlich so gegen 18:00 Uhr sein, das legen wir
   noch fest. Die Kruege und Becher werden das letzte Mal zur vierten 
   Morgenstund gefuellt, damit zur fuenften die Tore geschlossen werden
   koennen. (Man koennte meinen, die Welt steht kopf - wir wissen noch nicht,
   wann es losgeht, aber das Ende der Party steht schon fest. Typisch. *g*)

2) Aufgrund der grossen Flexibilitaet der Excalibur-Truppe sind wir in der
   Lage, die Anmeldefrist um ein sattes Vierteljahr zu verlaengern! 
   
          Neuer Anmeldeschluss ist daher der 31. Januar 2017!

   Das Excalibur braucht angenehm wenig Vorlaufzeit fuer die eigene Planung,
   so dass wir auch mit einem spaeten Anmeldeschluss gut arbeiten koennen.
   Das sollte allen, die ihre Terminplanung fuer das Party-Wochenende noch
   nicht absehen koennen, ausreichend Zeit verschaffen.
   Daher nochmal unsere Bitte: Wenn ihr noch Kontakt zu alten Spielern habt,
   die vielleicht kommen wollen, gebt diese Info gerne an sie weiter, damit
   wir moeglichst viele erreichen. Danke!

3) Die Getraenkeversorgung zur Party wird voraussichtlich so funktionieren,
   wie auf der Homepage des Excalibur angegeben (www.excalibur-partysaal.de),
   d.h. es gibt Pauschalen, die je nach Bedarf nur Softdrinks oder zusaetz-
   lich Bier, oder Sekt und Cocktails enthalten. Die Wahl von Pauschale 
   oder Einzelberechnung pro Getraenk wird jeder Partygast im Excalibur
   selbst treffen koennen. Die Abrechnung der Getraenke regelt ihr jeweils
   selbst. Eure Anzahlung wird fuers Catering verwendet.

Gruss,
[Team:Orga] Arathorn.

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



Adventskalender (Zesstra,  2. Dez 2016, 19:30:31):
Huhu...

Unsere beiden Adventskalender - in der Normalwelt wie in der Parawelt fuer
Seher - gibt es auch dieses Jahr. An sich seit gestern, allerdings waren
einige der Tuerchen in der Normalwelt noch nicht da. Wenn ihr also bei euren
ersten 2 Tuerchen Probleme hattet, versucht es jetzt nochmal, sie sind jetzt
alle da.

Wie immer koennt ihr mit dem Amulett vom Weihnachtstroll Vorschlaege fuer neue
Tuerchen machen und in der Parawelt koennt ihr auch die Schwierigkeit von
Tuerchen bewerten.

Es ist zwar nicht alles neu, aber ich hoffe, dass jeder ein paar neue Tuerchen
findet. ;-)

Und: Kein Stress - ihr muesste nicht jeden Tag ein Tuerchen finden, ihr
bekommt nur max. einen neuen Tip fuer Tuerchen pro Tag. Und ihr habt auch
nicht nur Zeit bis zum 24.12., sondern bis zum Ende des Jahres, d.h.
31.12.2016, 23:59:59, um alle Tuerchen zu finden.

Ich wuensche euch dann viel Spass im Namen der Erzmagier und Goetter.

Zesstra

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



RM-Veraenderung im Gebirge: Das "B" bleibt! (Zook, 10. Apr 2017, 11:09:03):
Hallo zusammen,

im Gebirge haben wir eine Veraenderung in den Regionsmagier-Posten
zu vermelden. Bambi gibt seinen Posten an Bugfix weiter.

Besten Dank, Bambi, fuer Deine Arbeit und Unterstuetzung als
Regionsmagier. Und Dir, Bugfix, viel Spass und Freude und 
Bug-Suche in Deiner neuen Region.

Zook

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



Lag aktuell (Zook, 20. Mai 2017, 20:22:27):
Hey, es gibt grad gelegentlich immer etwas Lag, heute war es wohl 
sehr schlimm. Ich habe einmal ein paar Massnahmen ergriffen; bitte rechnet
erst noch einmal mit Lag. Wir muessen einmal sehen, was die Ursache und
eine moegliche Massnahme ist.

Mehr kann ich derzeit noch nicht sagen, ausser: Vorsicht! ;) 

Zook

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



Re: Lag aktuell (Amaryllis, 21. Mai 2017, 21:56:48):
~#! rn=Zook rt=1495304547 rg=bekanntmachungen
~#! tid=1495304547
Problem sollte behoben sein.

Gruss,Ama

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



Reboot-Wochenende 16. bis 18.6. (vrs.) (Zesstra,  6. Jun 2017, 21:18:47):
Hallo allerseits,

nachdem die Uptime ja nunmehr deutlich ueber ein Jahr als ist, wird es
allmaehlich mal Zeit, den naechsten Reboot zu planen.

Und da ich das ungern im Stress zwischendurch machen will, ist mein
Wunschzeitpunkt das Wochenende vom 16-18.6. Vorbereitungen will ich dann ab
Freitag treffen, den (ersten) eigentlichen Reboot gibt es dann vermutlich am
17.6. (tagsueber). Wie immer nach so langen Uptimes ist damit zu rechnen, dass
wir mehr als einen Reboot machen (muessen). Und wenn das Mud wieder ordentlich
laeuft, kommt vermutlich das Betriebssystem auch nochmal dran...
Sprich: es kann sein, dass es am Sa Abend wieder gut laeuft und alles erledigt
ist, koennte aber auch Sonntag werden. Eine laengere Downtime (d.h. >30min)
ist bislang nicht geplant.

Naehere Infos (ggf. auch Absage des Termins *g*) gibt es wie immer in dieser
Rubrik.

Zesstra

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



Reboot und neue Uptime (Zesstra, 18. Jun 2017, 00:07:55):
Huhu allerseits,

wir hatten heute leider zwischenzeitlich ein paar Probleme mit den
Seherhausraeumen, aber dank der tatkraeftigen Hilfe von Vanion konnten diese
auch zuegig geloest werden. Vielen Dank an Vanion! :-)

Das MG und der Rechner wurden neugestartet. Es gibt Objekte und Raeume, die
gerade nicht ladbar sind, aber dies sind "einzelne" Probleme, um die sich
Magier nach und nach kuemmern muessen.

Zur Zeit sieht es fuer mich nicht so aus, als gaebe es ein systematisches,
schwerwiegendes Problem, welches einen weiteren Reboot erfordert. Sollte es
hierbei bleiben, besteht von meiner Seite kein Anlass, morgen noch einen
durchzufuehren. Falls jemandem ein systematisches Fehlverhalten auffallen
sollte, bitte schnellstmoeglich bescheidsagen.

Etwas allgemeines zur kommenden Uptime: wir haben auch unseren Gamedriver
aktualisiert. Nachdem wir die letzten Jahre einen ziemlich stabilen Driver
hatten, der uns lange Uptimes verschafft hat, haben wir jetzt wieder einen
Gamedriver im Einsatz, der eine Reihe von Aenderungen/Entwicklungen (das
kommende LDMud 3.5.0) enthaelt. Ich kann mir daher vorstellen, dass wir
vielleicht in den naechsten Monaten auch mal wieder einen Crash erleben
koennten.

Zesstra

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



Syntaxprobleme melden (Zesstra, 18. Jun 2017, 14:58:54):
Huhu...

seit Reboot gibt es einen gesonderten Befehl, um Syntaxprobleme melden zu
koennen. Diese kommen dann in eine gesonderte Liste, welche von Magiern evtl.
schneller bearbeitet wird.
Ihr koennt Probleme mit Syntaxen mit dem Befehl "syntaxhinweis" absetzen.

Fuer Magier: ihr koennt die Syntaxhinweise in eurem Fehlerteufel einsehen (s.
Doku).

Zesstra

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



TLS-Zertifikat (Zesstra,  8. Jan 2018, 20:46:40):
Huhu...

Mal wieder ist das TLS-Zertifikat abgelaufen, was wir zur Verschluesselung des
Verkehrs vom und zum MG benutzen. Seit vorhin ist es jetzt wieder erneuert.
Zumindest allen Magiern sei ein Blick auf verschluesselte Verbindungen ins Mud
empfohlen.

Zesstra

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



GM-Ruecktritt (Humni, 31. Jan 2018, 18:44:15):
Liebe Mitmudder,

ich muss leider verkuenden, dass Chagall von seinem Posten als Gildenmagier
der Zauberer und Tanjian zurueckgetreten ist.

Chagall war seit 2006, also fast 12 Jahre lang, Gildenmagier der Zauberer. Ich
danke ihm im Namen aller Erzmagier fuer die geleistete Arbeit.

Beide Posten bleiben vorerst vakant, in dem Sinne, dass wir niemanden haben,
der sich intensiv um eine Weiterentwicklung der beiden Gilden kuemmert. Ich
bin aber bei Problemen derjenige, den ihr ansprechen koennt. Ob ich dann auf
Zeit gesehen auch einmal etwas an den Gilden anfasse, was sie weiterbringt,
sehen wir dann.

Humni

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



Neuer GM Kaempfer (Humni,  4. Feb 2018, 22:21:05):
Liebe Mitmudder,

wir haben Gabylon aus seiner Verantwortung fuer die Kaempfergilde entlassen.
Diese Gilde bleibt aber nicht unbesetzt: Notstrom hat sich bereiterklaert, die
Verantwortung fuer die Kaempfer zu uebernehmen.

Wir wuenschen gutes Gelingen!

Humni i.A. der EMs

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



Crash (Zook, 13. Feb 2018, 16:19:49):
Hallo, heute Nachmittag gegen 16.00 Uhr ist das Mud gecrasht und hat
uns einen schoenen Dump hinterlassen. Aufraeumarbeiten sind im Gange,
es kann aber ggf. ein Reboot noetig werden. Haltet Euch entsprechend
an den Haenden und wartet weitere Nachrichten ab.

Zook

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



Re: Crash (Zesstra, 13. Feb 2018, 21:52:30):
~#! rn=Zook rt=1518535189 rg=bekanntmachungen
~#! tid=1518535189
Der Crash konnte schnell identifiziert werden und wir haben mit einem
fehlerbereinigten Driver (mit potentiellen 5 Crashes weniger) das Mud
neugestartet.
Der Mudrechner wurde ebenfalls neugestartet. Zwar war wieder keine Zeit fuer
ein OS-Update, aber nun gut, irgendwas ist ja immer...

Wenn nix ueberraschendes passiert, kann das MG wieder laenger laufen.

Vielen Dank an alle Magier, die heute mitgeholfen haben, die auflaufenden
Probleme zu loesen und insbesondere an alle, die heute Nachtmittag verfuegbar
waren!

Zesstra

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



Re: Re: Crash (Amaryllis, 14. Feb 2018, 10:23:18):
~#! rn=Zesstra rt=1518555150 rg=bekanntmachungen
~#! tid=1518535189
Hi,

da gestrn leider kein WLAN verfuegbahr war, konnte ich an der boot-Orige nics
teilnehmen.
IIch bitte darum entsprechender weise mir z meldenm und was ggf noch fehlt -
denn eigentlich war der Server auf dem letzten Stand.

Happy 
Amaryllis

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



Der Fall eines Magiers (Zesstra, 19. Feb 2018, 21:30:20):
Hallo liebe Mitspieler,

vor einiger Zeit hat sich Gabylon dazu entschieden, im Morgengrauen nicht mehr
als Magier taetig zu sein und sich ein neues Mud gesucht. Normalerweise waere
dies nicht weiter berichtenswert, allerdings hat sich Gabylon entschieden,
mehr zu tun als nicht mehr im MG zu spielen.

In den letzten Monaten hat er heimlich viele tausend Dateien aus dem
Morgengrauen zu sich kopiert - Todessequenzen, Gebiete, Gilden und Regionen
fuer die er nicht zustaendig war und mit deren Erschaffung und Wartung er
nichts zu tun hatte.

Zeitgleich hat er im Anderland Aenderungen angekuendigt. Diese betrafen zum
einen Aenderungen an der Basis-Mudlib, zum anderen aber auch neue Gilden und
Gebiete. Die Aenderungen an der Basis-Mudlib hat er ohne Nennung des Ursprungs
aus dem MG uebernommen, seinen Namen drunter geschrieben (und alle anderen
geloescht) und dann auch gleich passende Ankuendigungsartikel von Arathorn und
Zesstra komplett kopiert, in die Anderland-Zeitung gesetzt und seinen Namen
druntergeschrieben.

In dieser Zeit ist er (ohne sonstige Absprachen) an einige Autoren von
aelteren Gilden und Gebieten herangetreten und hat sie um Erlaubnis gefragt,
diese Spielinhalte in einem anderen Mud zu verwenden. Einige haben diesem
zugestimmt, woraufhin Gabylon im Anderland angekuendigt hat, dass die neuen
Gilden "Kaempfer", "Kleriker", "Bierschuettler" und "Schatten" durch ihn in
Entwicklung seien.
Weiterhin vermuten wir, dass er vorhat, weitere Gebiete wie Shaky Island,
Toeters Insel oder die Katakomben im verlorenen Land anzuschliessen.

Gabylon gab an, alle "relevanten" Urheber gefragt zu haben bzw. das tun zu
wollen. Wir halten schon diese Aussage fuer problematisch, insb. wenn Gabylon
allein entscheidet, wer relevant ist. Gabylon hat keinen "historischen" Code
aus den Zeiten von Shaky, Morgoth oder Toeter kopiert, sondern den aktuell im
MG laufenden. Nur die damaligen Urheber zu fragen verkennt, dass das MG ein
Gemeinschaftprojekt ist, an dem viele Leute Anteil daran haben, dass der Code
kontinuierlich weiterlaeuft. Keine der erwaehnten Gilden oder Gebiete wuerde
mit dem historischen Code der gefragten Autoren auf dem aktuell im Anderland
verwendeten Gamedriver laufen, ohne dass hier im MG Magier Zeit investiert
haetten.

Da sich einige von euch bestimmt demnaechst etwas wundern, was es mit diesen
alten Bekannten im Anderland auf sich hat, wollen wir hiermit etwas zum
Hintergrund beitragen und unsere Sicht der Dinge darstellen.

Amaryllis, Arathorn, Ark, Humni, Miril, Rumata, Zesstra und Zook

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



Crash am 20.10. (Humni, 20. Okt 2018, 20:42:27):
Hallo ihr,

das Mud ist heute mehrfach gecrasht. Die Ursache ist bekannt und fuers erste
behoben, ob der erste Hotfix reicht, wird noch besprochen.

Da auf jeden Fall auch noch ein Server-Update geplant ist, wird es in der
Folgezeit noch mindestens einen Reboot geben.

Sprich, heftig zu holende Ausruestung metzeln lohnt sich gerade noch nicht.
Wir melden uns, wenn die Reboot-Gefahr von unserer Seite aus gebannt aussieht.

Wenn sich sonst Dinge komisch verhalten, meldet euch ebenso.

Humni

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



Re: Crash am 20.10. (Arathorn, 22. Okt 2018, 20:21:29):
~#! rn=Humni rt=1540060947 rg=bekanntmachungen
~#! tid=1540060947
Hallo zusammen,

hier der aktuelle Stand zum Crash, die entscheidenden Infos zuerst.

1) Die aktuelle Uptime laeuft bis auf weiteres weiter, das Mud wird aber in
   absehbarer Zeit neugestartet werden. Wann das ist, haengt davon ab, wie
   schnell sich der Fehler lokalisieren und beheben laesst.

2) Wir versuchen, den notwendigen Mud-Neustart mit einem Server-Neustart
   zu verbinden. Wie gut das klappt, haengt von der Verfuegbarkeit der
   noetigen Magier ab - insbesondere Zesstra und Amaryllis. Solange der 
   Zeitbedarf fuer 1) nicht klar ist, koennen wir hier keinen verbindlichen
   Termin angeben.

Details:

Bei den Crashes vom Wochenende handelt es sich um einen Driverfehler, der
sehr wahrscheinlich[1] bislang nicht bekannt war. Ausgeloest wurde der 
Fehler durch ein Magiertool, dessen Nutzung wir bis auf weiteres technisch
so gut es geht[2] verhindern.

Momentan kuemmert sich vor allem Zesstra darum, den Fehler zu suchen und im
Drivercode zu lokalisieren. Danach muss der Driver repariert und der neue
Driver im Rahmen eines Mud-Neustarts eingespielt werden (siehe 1). Die
Fehlersuche kann einige Zeit dauern, und bis dahin lassen wir die Uptime erst
einmal laufen.

Da es aktuell weitere, bereits bekannte Fehler im Driver gibt, und zudem der
Mud-Server selbst auch (mindestens) einmal durchgestartet werden muss, planen
wir derzeit, den Server-Neustart mit dem Einspielen des reparierten Drivers
zu verbinden. Wenn das klappt und alles gutgeht, kann es sein, dass die 
Downtime nur eine Viertelstunde betraegt; wenn was beim Server schiefgeht,
ggf. laenger.

Wir halten euch auf jeden Fall ueber den Fortgang auf dem Laufenden.

Gruss, Arathorn.

[1] Solange wir den Bug noch nicht klar eingrenzen und auf einen sauberen
    Testfall eindampfen konnten, koennen wir noch nicht sagen, ob es nun ein
    eigenstaendiger, neuer Bug ist oder ggf. doch eine Variante eines 
    bereits bekannten.
    
[2] Ein hinreichend abenteuerlustiger Magier mit entsprechenden 
    Berechtigungen kann diese Massnahmen nach wie vor umgehen, wir vertrauen
    aber erst einmal darauf, dass entsprechende "Interessenten" rechtzeitig
    innehalten werden. ;-)

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



Re: Re: Crash am 20.10. (Zesstra, 23. Okt 2018, 18:42:31):
~#! rn=Arathorn rt=1540232489 rg=bekanntmachungen
~#! tid=1540060947
Huhu,

gute Nachrichten:
Wir haben den Fehler gestern abend eingrenzen und mit der Hilfe vom zweiten
Teil des LDMud-Teams (Gnomi@Unitopia) auch im Drivercode lokalisieren koennen.
Der Fehler ist seit vorhin behoben, ich werden den neuen Driver heute abend
installieren.
Punkt 1) ist damit erledigt.

Ich hoffe, dass die Updates vom Betriebssystem und Serverneustart auch bald
gemacht werden koennen.

Zesstra

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



Server-Reboot (Amaryllis, 25. Okt 2018, 22:21:08):
Hallo,

da der letzte Crash die schoene Uptime schon kaputtgemacht hat, werde ich das
ausnutzen und den Server auf ein neues OS-Release upgraden.

Das Ganze findet am Sonntag, 28.10.2018, statt. Uhrzeit ca. ab 20-21 Uhr, mit
Armageddon.
Keep your fingers crossed ;)

Ama

PS: Das Upgrade kann eine Weile dauern, und nach dem hoffentlich erfolgreichen
Server-Reboot kann es noch den einen oder anderen Mud-Neustart geben, mit dem
man rechnen muss.

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



Ennox nicht mehr Regionsmagier Wueste (Zook, 26. Okt 2018, 09:33:14):
Hallo, 

nachdem Ennox nun eine Weile nicht mehr online war, habe ich ihn
aus der Liste der Regionsmagier Wueste gestrichen. Ich bedanke mich
bei Ennox fuer seine Arbeit in der Wueste und hoffe, dass er bald
einmal wieder aktiv vorbeischaut.

Viele Gruesse,
Zook

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



Fehlerkorrekturen am Driver und neue Uptime (Zesstra, 28. Okt 2018, 22:51:27):
Huhu,

wir haben Server und Mud heute abend neugestartet. Wie immer gabs etwas
Stress. ;-) Aber der Driver hat nun ein paar Fehler weniger (Dank an
Gnomi@Unitopia) und das Betriebssystem des Servers wurde auch aktualisiert
(Danke an Amaryllis).

Wenn jetzt die naechsten Stunden keine schwerwiegenden Probleme auftauchen
(nach denen es nicht aussieht, sonst haette ich diesen Artikel nicht
geschrieben), ist aus meiner Sicht ein weiterer Reboot nicht absehbar und wir
koennen uns auf eine neue Uptime freuen.

Zesstra

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



Notstrom nicht mehr Regionsmagier (Zook, 19. Dez 2018, 14:03:30):
Hallo,

Notstrom hat mich gebeten, ihn von seinen Aufgaben als Regionsmagier
zu entbinden.

Ich moechte hiermit meinen besonderen Dank fuer die Arbeit
an den Regionen (Ueberarbeitung bestehender Code,
Erweiterungen etc.) aussprechen. Danke, Notstrom.

Viele Gruesse,
Zook

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



Beste Wuensche (Amaryllis, 25. Dez 2018, 13:43:54):
Guten Tag liebe Mitmudder,

die Server-Administration des MorgenGrauens wuenscht allen hier ein ruhiges,
besinnliches Weihnachtsfest.
Moege auch das kommende Jahr relativ reboot-los sein, und Ihr bleibt dem MG
gewogen.

Gruesse,
Ama

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



Aktuelles Lag im MG (Zesstra, 27. Mar 2019, 00:59:53):
Huhu allerseits,

seit gestern morgen haben wir im MG leider ein sporadisches, aber sehr
deutliches Lag. Wir wissen zwar, wo es grob herkommt, aber noch nicht, was die
Ursache ist und wie wir es ohne Reboot abstellen koennen.
(Fuer die technisch interessierten: die durchschnittliche Wartezeit fuer
Datentransfers von und zur Festplatte ist erheblich angestiegen.)

Wenn es was neues gibt, melde ich mich wieder.

Zesstra

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



Re: Aktuelles Lag im MG (Zesstra, 31. Mar 2019, 20:19:23):
~#! rn=Zesstra rt=1553644793 rg=bekanntmachungen
~#! tid=1553644793
Huhu allerdings,

ihr habt es ja vermutlich gemerkt: das Lag ist jetzt eine Weile weg. Ich habe
jetzt erstmal abgewartet in der Erwartung, dass es zurueckkommt, aber nunja...
Also, erstmal ist alles wieder OK, wenn es wiederkommt, haben wir ne Idee, was
man als Workaround machen kann...

Viel Spass beim Spielen!

Zesstra

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



Vertretung Ark (Quests, Rassen) (Zook,  6. Jul 2019, 18:16:20):
Ich erhielt von Ark die Nachricht, dass er derzeit sehr wenig
Zeit fuer das MorgenGrauen findet. Bis sich dies wieder
aendert, habe ich seine Vertretung uebernommen.

Viele Gruesse, Zook.

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



Geplanter Neustart am 26. und 27.11. (Zesstra, 14. Nov 2019, 19:22:12):
Huhu allerseits,

wir haben inzwischen eine stattliche Uptime von mehr als einem Jahr erreicht -
sehr erfreulich! :-)

Aber es haben sich in der Zwischenzeit div. Aenderungen in der Mudlib
angesammelt, die mal geladen und aktiv werden wollen, es steht ein grosses
Driver-Update an (mehr dazu spaeter) und auch das Betriebssystem des Rechners
moechte allmaehlich mal aktualisiert werden.

Aus diesem Grunde haben wir uns vorgenommen, vor Beginn des Dezember einen
Reboot vorzunehmen. Die Terminfindung war leider etwas schwierig, weswegen wir
uns auch zwei Abende fuer die ganze Aktion herausnehmen wollen.

Der aktuelle Plan ist es, am Abend des 26.11. (vermutlich ab 20:00) das
Morgengrauen neuzustarten und Mudlib und Driver zu aktualisieren.
Erfahrungsgemaess kommt es nach so langen Uptimes aufgrund der Vielzahl von
Aenderungen zu einigen Problemen, weswegen ich damit rechne, dass es mehrere
Neustarts im Laufe des Abends geben wird.

Am Abend des 27.11. wird dann ein Betriebssystem-Update des Rechners
stattfinden und anschliessend noch ein letztes Mal alles neugestartet. Dies
bietet auch Gelegenheit, an dem Abend auch unerwartete Probleme im MG zu
fixen, die im Laufe des 27.11. auftreten (sofern sie mir zu Ohren kommen!).

Wie immer wird das ein kleines Abenteuer (zumindest fuer uns Magier) und ich
hoffe, dass einige von euch Zeit finden, online zu sein und beim Testen und
Entkaefern helfen koennen.
Und fuer alle nicht-Magier: auch ihr koennt mithelfen, indem ihr spielt und
Dinge ausprobiert. Je schneller Probleme auffallen, desto besser. Ganz
besonders wuenschenswert ist, dass moeglichst viele Defekte vor dem
Rechner-Neustart am 27.11. auffallen, damit es danach sofort mit einer neuen
langen Uptime weitergehen kann. ;-)


Zesstra

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



Re: Geplanter Neustart am 26. und 27.11. (Amaryllis, 27. Nov 2019, 20:58:21):
~#! rn=Zesstra rt=1573755732 rg=bekanntmachungen
~#! tid=1573755732
Aufgrund technischer Kniffligkeiten muss das Server-Upgrade inkl. des Reboots
erstmal verschoben werden. D.h. unabhaengig davon, ob das Mud an sich wieder
stabil laeuft, wird es definitiv nochmal einen Neustart geben, sobald das neue
System online ist.

Ich werde hier bekanntgeben, sobald ich etwas Neues weiss.

Ama*

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



Re: Re: Geplanter Neustart am 26. und 27.11. (Zesstra, 29. Nov 2019, 10:30:57):
~#! rn=Amaryllis rt=1574884701 rg=bekanntmachungen
~#! tid=1573755732
Da ihr verstaendlicherweise irritiert sein, melde ich mich kurz mit dem Stand:
Es gab gestern abend einen Reboot, das war aber leider nicht der geplante um
Zuge des Betriebssystem-Upgrades. Es hat sich ein Fehler in einem zentralen
Objekt der Mudlib entwickelt (fuer Techniker: im Mudlib-Master), der nicht
korrigiert werden konnte, da dieses Objekt nicht mehr im Betrieb neuladbar
war. Da in der Folge zahlreiche weitere Bugs auftragen (Bewegungen, Ausgaenge,
Erzeugen von Objekten und auch Kommunikation auf Ebenen), musste kurzfristig
und ohne Armageddon neugestartet werden. Die Ursache fuer dieses Problem ist
natuerlich behoben und ich habe dafuer gesorgt, dass in zukuenftigen
vergleichbaren Situationen der Mudlib-Master neuladbar sein wird.

Das Betriebssystem-Upgrade macht Amaryllis leider Probleme und ich kann euch
nichts ueber ihren Planungsstand sagen. Es tut mir leid, euch in der Schwebe
haengen zu lassen, aber ich kann zur Zeit auch nichts ueber den weiteren
Zeitablauf sagen. Ich denke, Amaryllis meldet sich mit naeheren Infos bald
selber hier.

Zesstra

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



Server-Reboot (Amaryllis,  3. Dez 2019, 01:14:13):
Hallo,

nachdem ich das grosser Server-Upgrade auf naechstes Jahr *g* verschoben habe,
findet heute Abend dennoch ein geplanter Reboot des Servers statt. Dies wird
so ca. ab 20:30 oder 21:00 sein - auch mit Armageddon.

Danach koennt Ihr denn erstmal wieder ein paar Monate hoffentlich ungestoert
spielen ;)

Das Server-Upgrade schiebe ich also hiermit in Q1/2020, da doch noch etliche
Details im Vorfeld zu klaeren sind.

Ama*

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



Neue Uptime (Zesstra,  3. Dez 2019, 22:26:21):
Huhu allerseits,

also, damit schnell alle das wichtigste wissen: wir denken, dass es jetzt bis
auf weiteres keine Reboots mehr geben wird und die Uptime zumindest mal einige
Monate lang wird.

Von mir kommen demnaechst noch einige weitere Infos, aber dazu brauch ich
erstmal einige Minuten Ruhe. Gerade ist noch zu viel zu tun. Bis dahin wuensch
ich froehliches Spielen! :-)

Ach! Am Stadttor von Port Vain steht jetzt mit Verspaetung auch ein
Weihnachtstroll - vielleicht moechtet ihr ihn ja mal besuchen. ;-) (Einige
haben ihn schon vermisst, hoere ich.)

Zesstra

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



(Technische) Neuerungen in dieser Uptime (Zesstra,  6. Dez 2019, 00:27:35):
Huhu allerseits,

ich wollte ja noch ein paar Worte ueber technische Aenderungen verlieren, die
es in dieser Uptime gibt...

Also, da gibts erstmal welche im Driver:

Der Driver ist "strenger" geworden bei der Pruefung, was korrekter Code ist.
Langfristig ist das gut, weil Fehler schneller erkannt bzw. lokalisiert
werden. Kurzfristig kann es aber sein, dass ihr oefter als vorher einen
"Fehler im Raumzeitgefuege" erlebt, bis wir diese ganzen fragwuerdigen bis
kaputten Konstrukte ersetzt haben.

Der Driver unterstuetzt nun sog. Zeichensaetze. Diese beschreiben
letztendlich, in welcher Form Sonderzeichen (z.B. Umlaute) gespeichert und
uebertragen werden. Sendet ein Spieler solche Sonderzeichen, kommen die nur
bei denen an, die den gleichen Zeichensatz benutzen und es gibt Muell bei
allen anderen. Der Driver kann nun allerdings diese Situation verbessen: wenn
er weiss, welche Zeichensaetze zwei Spieler verwenden, kann zwischen den
beiden umwandeln: Arbeitet Spieler A in Zeichensatz Z und Spieler B in
Zeichensatz Y, wird der Driver alle Nachrichten von A nach B in den
Zeichensatz Y umwandeln und alle Nachrichten von B nach A in Zeichensatz Z und
so koennen die beiden korrekt miteinander reden.
Das einzige Problem: es fehlt uns noch eine Moeglichkeit, zu wissen, welchen
Zeichensatz jeder Spieler verwendet. Ich hoffe, da in den naechsten Monaten
was dafuer zu bauen.

Ansonsten gabs nen Haufen Fehlerkorrekturen und kleinere Dinger, die Spieler
(und viele Magier) kaum bemerken werden.

Und in der Mudlib? Das gab es ueber das Jahr eine Menge kleinerer Aenderungen,
die nun aktiv geworden sind - an die meisten davon erinnere ich mir gar nicht
mehr. Einiges waren Fehlerkorrekturen, anderes erleichtert Magier die Arbeit
und anderes waren auch "Aufraeumarbeiten", bei denen alter, nicht mehr
benutzter Code entfernt wurde.

Aber eine groessere Sache ist hinzugekommen, welche Magiern eine weitere
Moeglichkeit gibt, Details und Objekte in einem Raum reichhaltig zu
beschreiben. Dieses Konzept erleichtert es auch, Objekte im Raum zu erzeugen,
die dort nicht offen "rumliegen", aber untersuchbar und mitnehmbar sind (z.B.
einen Kerzenstaender auf einem Tisch). Bislang mussten Magier da viel
fehleranfaelligen Code fuer schreiben. Die Zeit wird zeigen, wie das
angenommen und genutzt werden wird. ;-)

Und bislang gibts in dieser Uptime einzelnen Schluckauf, aber IMHO nichts
besorgniserregendes. Insofern viel Spass mit der Uptime. :-)

Zesstra

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



MGCoronaSchVO (Amaryllis,  1. Apr 2020, 06:39:23):
Aufgrund aktuellen Anlasses ergeht hiermit folgende

MGCoronaSchVO (MorgenGrauen Corona-Schutzverordnung)
====================================================

1 Reiserueckkehrer aus Infektionsgebieten
Reiserueckkehrer aus Risikogebieten (hierzu zaehlen u.a. Fernwest) muessen
sich
in eine 14taegige haeusliche Quarantaene begeben. Fuer Seher bedeutet dies das
eigene Seherhaus, fuer Nichtseher gibt es fuer das Hotel in Port Vain eine
Ausnahmegenehmigung (siehe 7).
 
2 Stationaere Gesundheits- und Pflegeeinrichtungen
In diesen Einrichtungen sind Besuche untersagt, die nicht der medizinischen
oder pflegerischen Versorgung dienen oder aus Rechtsgruenden erforderlich
sind. Hierzu zaehlen insbesondere alle Krankenhaeuser und Kliniken, aber auch
Pflegereinrichtungen wie das Irrenhaus auf Aurora.

3 Freizeit-, Kultur-, Sport- und Vergnuegungsstaetten
Der Betrieb der o.g. Einrichtungen und Begegnungsstaetten wird untersagt.
Dies betrifft insbesonders Staetten fuer oeffentliche Grossveranstaltungen wie
beispielsweise das Diamond- und Feuerbergstadion oder die grosse Kampfarena.

4 Bibliotheken
Bibliotheken haben den Zugang zu ihren Angeboten zu beschraenken und nur
unter strengen Schutzauflagen zu gestatten. Dies betrifft alle Bibliotheken
im Morgengrauen, unabhaengig von der Region.

5 Handel
Zulaessig bleiben der Betrieb von Einrichtungen des Einzelhandels fuer
Waren des taeglichen Bedarfs, insbesondere Lebensmittel. Der Handel mit
Waffen und Kleidung (auch als "Ausruestung" bekannt) bedarf einer
Ausnahmegenehmigung der Mudleitung in Person von Magiern ab Erzmagier oder
hoeher.

6 Handwerk, Dienstleistungsgewerbe
Handwerker und Dienstleister koennen ihrer Taetigkeit mit Vorkehrungen zum
Schutz vor Infektionen weiterhin nachgehen, soweit in den folgenden
Absaetzen nichts anderes bestimmt ist. Dienstleistungen und
Handwerksleistungen, bei denen ein Mindestabstand von 1,5 Metern zum Kunden
nicht eingehalten werden kann (z.B. die Dienste von Amanda), sind untersagt.

7 Beherbergung, Tourismus
Uebernachtungsangebote sind untersagt. Eine Ausnahme bildet hier das Hotel in
Port Vain, das an Nichtseher ausnahmsweise Zimmer vermieten darf, sofern diese
eine haeusliche Quarantaene ableisten muessen. (Siehe hierzu auch 1.)

8 Gastronomie
Der Betrieb von Gaststaetten, Imbissen, Kneipen und anderen gastronomischen
Einrichtungen ist untersagt. Nicht oeffentlich zugaengliche gastronomische
Staetten duerfen zur Versorgung betrieben werden, wenn die erforderlichen
Vorkehrungen zur Hygiene, zur Steuerung des Zutritts, zur Vermeidung von
Warteschlangen und zur Gewaehrleistung eines Mindestabstands von 1,5 Metern
gewaehrleistet sind. Abweichend sind die Belieferung mit Speisen und
Getraenken sowie der Ausser-Haus-Verkauf durch Restaurants, Gaststaetten und
Kneipen zulaessig, wenn die zum Schutz vor Infektionen erforderlichen
Abstaende eingehalten werden. Der Verzehr ist in einem Umkreis von 5 Raeumen
um die gastronomische Einrichtung untersagt.

9 Veranstaltungen und Versammlungen
Veranstaltungen und Versammlungen sind untersagt. Dies gilt insbesondere
fuer das Versammeln groesserer Spielerscharen in einem Raum (z.B. Sammeln
eines Teams vor einem entsprechenden Metzelraum, Partys, Ideln in Raeumen
wie Abenteurergilde o.ae.).

10 Ansammlungen, Aufenthalt im oeffentlichen Raum
Zusammenkuenfte und Ansammlungen in der Oeffentlichkeit von mehr als 2
Personen sind untersagt. Ausgenommen sind Verwandte in gerader Linie
(z.B. Zweitspieler), Ehegatten oder Lebenspartner (dies betrifft auch
Raeume von Seherhaeusern). Sind mehr als 2 Spieler in einem Raum anwesend,
haben alle Spieler den Raum umgehend zu verlassen.

11 Verhaltensweisen
Saemtliche Spieler haben sich in oeffentlich zugaenglichen Raeumen so zu
verhalten, dass eine Ansteckungsgefahr minimiert wird. Husten, Spucken,
Aufstossen, Flatulieren und andere Taetigkeiten sind unbedingt zu
unterlassen. Dies gilt auch in Raeumen, in denen gerade keine weiteren
Spieler anwesend sind.

12 Verfuegungen der oertlichen Ordnungsbehoerden
Die Bestimmungen dieser Verordnung gehen widersprechenden und
inhaltsgleichen Allgemeinverfuegungen (z.B. den allgemeinen Regeln) vor.
Im Uebrigen,insbesondere hinsichtlich darin verfuegter weitergehender
Schutzmassnahmen, bleiben bereits erfolgte oder zukuenftige Anordnungen der
zustaendigen Behoerden unberuehrt.

13 Durchsetzung der Verbote, Bussgelder, Strafen
Die zustaendigen Behoerden (vulgo: Mudleitung) sind gehalten, die
Bestimmungen dieser Verordnung energisch, konsequent und, wo noetig, mit
Zwangsmitteln durchzusetzen. Dabei werden sie von der Polizei (in Person
des Sheriffs) gemaess den allgemeinen Bestimmungen unterstuetzt. Verstoesse
werden als Ordnungswidrigkeiten mit den aus den allgemeinen Regeln
bekannten Massnahmen (Skillabzug o.ae.) und als Straftaten mit
Freiheitsstrafe (Spielpause bis hin zur Spielerloeschung) verfolgt.

14 Inkrafttreten, Ausserkrafttreten
Diese Verordnung tritt am Tag dieser Verkuendung in Kraft und erst nach
einer weiteren Bekanntmachung in dieser Rubrik wieder ausser Kraft.

Gez.
Amaryllis
Sheriff

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



