
Seher
=====

    Seher im MorgenGrauen sind Spieler, die durch das Erfuellen 
    bestimmter Anforderungen zeigen, dass sie sich im MorgenGrauen
    gut auskennen und schon eine Reihe von Herausforderungen 
    gemeistert haben. Die Seher-Anforderungen muss man auch erfuellen,
    um Magier werden zu koennen.

    Mit dem Status des Sehers sind einige Vorrechte verbunden, die dem
    'kleinen' Spieler nicht zur Verfuegung stehen:

     * Seher koennen einige Aspekte ihrer Charakterbeschreibung wie z.B. den
       Titel, das Presay oder die Bewegungsmeldungen aendern.
     * Seher koennen sich ein Haus bauen und weitgehend frei einrichten. Das
       Haus dient danach auch als Startpunkt nach ende oder einem Reboot.
     * In einigen Gilden stehen die hoechsten Raenge, Zaubersprueche oder
       Kampftechniken nur Sehern offen.
     * Weitere Bonbons stellt die Fraternitas dono Archmagorum 
       zur Verfuegung. 

    Die Bedingungen fuer den Seherstatus sind wie folgt festgelegt:

    Insgesamt benoetigt man 3800 Stufenpunkte und muss die 
    Spielerstufe 42 erreicht haben, um Seher zu werden. Fuer die 
    Stufenpunkte muss man in einigen Bereichen gewisse Mindestpunkt-
    zahlen erreichen:

     * Man muss mindestens 1610 Abenteuerpunkte erzielt haben.
     * Man muss mindestens 100 Forscherpunkte gesammelt haben, dem
       entsprechen 600 Stufenpunkten. 
     * Man muss mindestens 40 Zaubertraenke gefunden haben, dem
       entsprechen 200 Stufenpunkte.
     * Man muss eine Reihe von wuerdigen Gegnern erlegt haben, so 
       dass man aus diesen "Erstkills" 150 Stufenpunkte erzielt.

    Die verbleibenden Stufenpunkte koennen auf jede beliebiege
    Art gesammelt werden (so auch die Stufenpunkte, die fuer die 
    Gildenfaehigkeiten, fuer MiniQuests etc. vergeben werden). 

    ** WICHTIGER HINWEIS: 
    ** Die Seheranforderungen werden jaehrlich von den Erzmagiern
    ** evaluiert und ggf. nach oben oder unten angepasst. Der Termin
    ** fuer solche etwaig willkuerliche Anpassungen ist jedes Jahr
    ** der 15. September. 

    Wenn man alle Anforderungen erfuellt hat, kann man sich von
    Merlin befoerdern lassen. 

    Ist man einmal Seher, und bekommt ploetzlich doch Lust, sich als Magier zu
    betaetigen, so kann man ohne weiteres Magier werden (wenn man einen
    Sponsor findet).

SIEHE AUCH:
    allg. Hilfe: merlin, stufen, stufenpunkte, abenteuer, forscherpunkte, 
                 magier
    Seherhilfe: hausbau, extralook, fehlermeldung, fluchtrichtung, presay, 
                review, sethands, setmin, setmout, setmmin, setmmout, titel
                (nur ab Seherstatus lesbar)

LETZTE AeNDERUNG: 2016-06-05 von Arathorn
