Ein kleiner Leitfaden zum Spiel im MorgenGrauen
===================================================

  Das MorgenGrauen ist ein Spiel. Wie bei jedem Spiel muessen, um den
  Spielspass moeglichst fuer alle zu erhalten, ein paar wenige Regeln
  beachtet werden. Diese Regeln gelten sowohl fuer Spieler als auch
  fuer Magier.

  Kurzgefasst lauten die Regeln wie folgt:

    1) Ein Spieler darf keine anderen Spieler angreifen oder irgendwie
       toeten.
    2) Eine Person darf mehrere Spielcharaktere (Spieler) besitzen.
       2.1) Zusaetzliche Spieler (Zweitspieler) muessen markiert sein.
       2.2) Es duerfen nur gleichzeitig zwei Spieler einer Person
            aktiv spielen.
       2.3) Spieler duerfen verliehen werden und sind in dem Moment
            Zweitspieler der anderen Person. Zurueck zu 2.2.
    3) Loesungsanleitungen und Forscherpunktlisten duerfen nicht an
       andere Personen weitergegeben werden.
    4) Ein Spieler darf nur eingeschraenkt mit Scripten oder Triggern
       eines Clients unterstuetzt werden: keine Automatisierung!
    5) Fehler muessen gemeldet und duerfen nicht ausgenutzt werden.

  Fuer Details und Grautoene lest doch bitte die folgend laengeren Versionen
  durch und schaltet vor allem den gesunden Menschenverstand ein: das Spiel
  soll allen Mitspielern Spass machen.

                                *

    Die wichtigste Regel betrifft das Angreifen und Toeten anderer
    Spieler.

    ES IST STRIKT UNTERSAGT ANDERE SPIELER ANZUGREIFEN ODER ZU TOETEN.

    Auch das absichtliche indirekte Toeten von Spielern durch
    Gildenfaehigkeiten, spezielle Objekte oder aehnliches faellt unter
    diese Regel.

    Sollte man einen Spieler umgebracht haben, treten sofort
    Beschraenkungen in Kraft, die nur durch einen Erzmagier wieder
    aufgehoben werden koennen.

    Will man sich dennoch mit anderen Spielern messen, so existieren
    extra dafuer eingerichtete Gebiete, wie zum Beispiel die Arena in
    der Wueste, in denen man sich gegenseitig bekaempfen kann.

                                *

    Hat man mit seinem Charakter eine Zeit lang gespielt, so entsteht
    oft der Wunsch, einmal eine andere Rasse, Gilde oder einfach einen
    anderen Rollenspielcharakter zu spielen.
    Seinen bisherigen Charakter kann oder moechte man dazu allerdings
    nicht benutzen.
    Daher kann jeder Spieler weitere Charaktere anlegen.

    Diese muessen dann jedoch als sogenannter Zweitspieler des ersten
    Charakters markiert werden.
    Diese Markierung kann man zum Beispiel beim Schmied in der
    Zwergenstadt oder beim Dorfschreiber im Elfendorf erhalten.
    Diese Markierung kann man auch vor anderen Spielern verbergen.

    Man kann beliebig viele seiner Charaktere gleichzeitig einloggen,
    doch ist hierbei darauf zu achten, dass nur zwei dieser Charaktere
    aktiv am Spielgeschehen, das ist alles was ueber reine
    Kommunikation hinausgeht, teilnehmen.
    Die anderen Charaktere muessen sich auf die Kommunikation
    beschraenken.

    Weitere Einschraenkungen existieren fuer Magier.

    Ein Magier darf nicht gleichzeitig mit seinen Spielercharakteren
    eingeloggt sein, diese manipulieren oder fuer seine Zweitspieler
    fremden Code analysieren.

    Dazu gibt es nur ein Ausnahme: Zum Zwecke der Zweitiemarkierung
    darf der Magier sich gleichzeitig mit dem Spielercharakter
    einloggen.

    Der Magier-Zweitspieler sollte darauf achten, anderen Spielern
    nicht durch seinen eventuellen Wissensvorteil bei Questen zu
    helfen.

    Ein Magier-Zweitspieler sollte weiterhin darauf achten, andere
    Spieler nicht in ihrem Spiel zu behindern. Dies koennte zum
    Beispiel durch Blockieren von Quests oder bestimmter limitierter
    Gildenraenge geschehen.
    Den Programmierern von Quests oder Gilden steht es natuerlich frei,
    hier eine eigene Vorsorge zu treffen.

                                *

    Wer im MorgenGrauen spielt, der ist des oefteren auf die Hilfe
    Anderer angewiesen. Eine Form der Hilfe ist es, einen Charakter
    auszuleihen oder ausgeliehen zu bekommen.
    Um sprachlich begruendete Missverstaendnisse im weiteren zu
    vermeiden, hier kurz folgende Nomenklatur:

      Ein Spieler, der einem anderen Spieler einen Charakter zur
      Verfuegung stellt, wird als Verleiher bezeichnet.

      Ein Spieler, der einen Charakter eines anderen Spielers nutzt,
      wird als Nutzer bezeichnet.

    Das Ausleihen von Charakteren ist mit gewissen Randbedingungen
    erlaubt.

    Ein ausgeliehener Charakter wird als aktiver Zweitspieler des
    Nutzers betrachtet und ist somit den Regelungen fuer Zweitspieler
    unterworfen.

    Besonders zu beachten ist, dass der ausgeliehene Charakter nicht
    mit dem Nutzer, oder einem Zweitspieler des Nutzers, in ein Team
    darf.

    Sowohl der Nutzer des ausgeliehenen Spielers als auch Verleiher,
    koennen fuer die Handlungen des ausgeliehen Charakters
    verantwortlich gemacht werden.

                                *

    Wer mit einem Charakter Aufgaben geloest hat oder zu bestimmten
    Vermutungen ueber Forscherpunkte gelangt ist, der notiert dies oft,
    um bei spaeteren Charakteren auf diese Informationen zugreifen zu
    koennen.

    Solche Forscherpunktlisten oder Komplettloesungen sind zum
    Eigengebrauch, das heisst fuer die eigenen Zweitspieler erlaubt.

    Die Weitergabe dieser Informationen oder das Nutzen von nicht
    selbst erstellten Komplettloesungen oder Forscherpunktlisten sind
    anderen Spielern gegenueber im hoechsten Masse unfair und daher
    untersagt.

                                *

    Um das Spielen von Muds zu vereinfachen und komfortabler zu
    gestalten, gibt es eine Reihe sogenannter Mud-Clients.

    Diese Clienten bieten oftmals die Moeglichkeit, mehrere Kommandos
    im Mud auf eine einzige Aktion hin auszufuehren oder auf Ausgaben
    mit solchen Kommandoketten zu reagieren.

    Man spricht hier von Scripten oder Triggern.

    Zusammen mit einer internen Programmiersprache der Clienten lassen
    sich vielfach bestimmte Aktionen im Mud automatisieren.

    Die Verwendung solcher Scripte ist mit einigen Auflagen jedem
    Spieler freigestellt.

    Sogenannte Untersuchescripte, die selbstaendig eine oder mehrere
    Detailtiefen von Raeumen, Monstern oder anderen Gegenstaenden
    abfragen, sind nicht erlaubt.

    Jeder Charakter sollte individuell gesteuert werden, daher sind
    Scripte, die mehrere Charaktere auf einmal steuern untersagt.

    Scripte, welche einen Charakter im Sinne einer Komplettloesung
    durch eine Quest fuehren oder eine Forscherpunktliste abarbeiten
    sind nicht erlaubt.

    Grundsaetzlich duerfen andere Spieler durch Scripte nicht in ihrem
    Spiel behindert oder belaestigt werden.

    Alle anderen Scripte sind erlaubt, soweit der Spieler innerhalb
    einer Minute im Rahmen seiner Moeglichkeiten ansprechbar bleibt.

    Als unerlaubtes Skript zaehlt auch der Kampf mit einem Monster,
    wenn der Spieler dabei laengere Zeit keine Tastatureingaben
    vornimmt und dabei nicht ansprechbar ist(totidlen). Dies gilt vor
    allem wenn der Tod des Monsters nicht absehbar ist.

                                *

    Das MorgenGrauen baut auf die Arbeit vieler freiwilliger
    Programmierer auf. Wie bei jedem Programm kann es dabei zu Fehlern,
    auch Bugs genannt, kommen.

    Jeder Spieler sollte ein Interesse daran haben, dass diese Fehler
    beseitigt werden.

    Dies kann man durch eine Meldung des Fehlers an den jeweiligen
    Magier oder falls dieser nicht erreichbar ist, durch eine Meldung
    an den entsprechenden Regionsmagier erreichen. Auch der Befehl
    "fehler" kann hier nuetzliche Dienste leisten.

    Wer diese Magier sind, kann jedem Spieler bei Bedarf durch einen
    anwesenden Magier oder oft auch anderen Spieler mitgeteilt werden.

    Dieses Vorgehen sollte auch fuer Fehler gelten, die dem Spieler,
    der diese Fehler entdeckt, zum Vorteil gereichen.

    Sollte sich ein Spieler nicht sicher sein, ob es sich bei einem
    bestimmten Verhalten von Gegenstaenden, Monstern oder Raeumen um
    einen Fehler handelt oder um Absicht des Programmieres, so kann er
    den zustaendigen Magier problemlos danach fragen und somit bei der
    Beseitigung von Fehlern aktiv helfen.

    Das Verschweigen und Ausnutzen von Fehlern ist anderen Spielern
    gegenueber unfair und ist daher zu unterlassen.

                                *

    Grundsaetzlich sollte der Spielspass fuer moeglichst alle Spieler
    erhalten bleiben. Dazu gehoert auch ein gewisses Mass an Fairness
    der Spieler untereinander.

    Es ist nicht der Sinn der Regeln, das Spielen im MorgenGrauen durch
    Ueberreglement zu behindern oder reizlos zu gestalten.

    Daher ist es jedoch auch moeglich, dass im Spiel Situationen
    auftreten, die den Spielspass anderer Spieler und die allgemeine
    Fairness beeintraechtigen, ohne dass diese Situation durch diesen
    Leitfaden abgedeckt ist.

    Hier ist jeder Spieler und auch Magier gefragt, seinen gesunden
    Menschenverstand zu befragen und zu ueberlegen, wie er eine solche
    Situation vermeiden oder entspannen kann, auch wenn man damit auch
    einmal auf einen Vorteil verzichten muss.

    Es ist also durchaus nicht alles erlaubt, was nicht explizit
    verboten ist.

                                *

    Fuer Magier gelten natuerlich zusaetzlich die Regeln des
    Magiervertrages.

                                *

    Sollte ein Spieler oder Magier gegen Regeln verstossen haben, so
    kann dies vom Sheriff, seinen Deputies oder den Erzmagiern geahndet
    werden.
    Strafen koennen sich von einer einfachen Verwarnung bis hin zur
    Loeschung von Charakteren erstrecken.

    Die Strafen werden in einem gesunden Verhaeltnis zum Fehlverhalten
    des Spielers stehen.

                                *

    Wer die Funktion des Sheriffs oder eines Deputies wahrnimmt, kann
    man mit dem Kommando 'hilfe sheriff' erfragen.


 SIEHE AUCH:
    zweitiemarkierung, fehler, sheriff

 LETZTE AeNDERUNG:
    Fri, 08.06.2001, 11:35:00 von Nonne
    
