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.
       => Details unter "hilfe pvp" (pvp = "Player-vs-Player")

    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.
       => Details unter "hilfe zweitieregeln" und "hilfe zweitspieler"

    3) Loesungsanleitungen und Forscherpunktlisten duerfen nicht an
       andere Personen weitergegeben werden.
       => Details unter "hilfe kl" (kl = "Komplettloesung")

    4) Ein Spieler darf nur eingeschraenkt mit Scripten oder Triggern
       eines Clients unterstuetzt werden: keine Automatisierung!
       => Details unter "hilfe skripte"

    5) Fehler muessen gemeldet und duerfen nicht ausgenutzt werden.
       => Details unter "hilfe fehlerausnutzung"

    6) Karten von Anfaengergebieten duerfen erstellt werden; die
       Bereitstellung erfolgt ueber die MG-Homepage
       => Details unter "hilfe karten"

    7) Videos vom Spiel duerfen unter bestimmten Voraussetzungen erstellt
       und veroeffentlicht werden.
       => Details unter "hilfe videos"

  Fuer Details und Grautoene lest bitte die laengeren Versionen durch, auf
  die oben verwiesen wird, und schaltet vor allem den gesunden
  Menschenverstand ein: das Spiel soll allen Mitspielern Spass machen.

                                *

  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:
    pvp, zweitieregeln, kl, skripte, fehlerausnutzung, karten, videos,
    zweitspieler, zweitiemarkierung, fehler, sheriff

 LETZTE AeNDERUNG:
    2020-09-18, Arathorn.
