Dokumentation zu: gildenlevel(WL)

HR Image


KONZEPT:
        Gildenlevel/Gildenstufen

AUTOR:
        Holger@Wunderland (10.11.1998)

EINLEITUNG:
        Um die Gilden von den 'normalen' Spielerleveln abzukoppeln und die
        Bedingungen zum Eintritt und/oder Aufstieg innerhalb einer Gilde
        abwechslungsreicher zu machen und eine gwisse Differenzierung der
        Spielermenge innerhalb einer Gilde zu erreichen, wurden Gildenlevel
        eingefuehrt. Wie Gildenlevel funktionieren und wie sie definiert
        werden, ist in dieser Manpage beschrieben. Die Propertie fuer das
        Gildenlevel ist P_GUILD_LEVEL. Das Bedingungen-Mappping in der Gilde
        ist P_GUILD_LEVELS.

WIEVIELE LEVEL?
        Wieviele Level es innerhalb einer Gilde gibt, ist dem Gildenpapa
        ueberlassen. Mindestzahl und Maximalzahl sind nicht fest bestimmt.
        Es sind Gilden mit nur einem Level bis hin zu Gilden mit 100 Leveln
        oder gar mehr (?!?) denkbar. Da es bislang noch keine Gildenlevel
        gibt, kann man sich vorerst an der Anzahl der erlernbaren Faehig-
        keiten orientieren. Es ist aber auch moeglich ueber das jeweilige
        Spellbook den Erfolg der Fertigkeiten an das Level zu koppeln. Dem
        Gildenpapa sind da keinerlei Grenzen gesetzt. :-) Notwendig ist nur,
        dass das kleinste Level 1 ist und die Reihe 'fortlaufend' ist, d.h,
        es keine 'Spruenge' gibt. Es muessen also auf jeden Fall immer
        _alle_ erreichbaren Level in P_GUILD_LEVELS definiert sein!

WAS IST MIT DEN BEITRITTSVORAUSSETZUNGEN?
        Die bisherigen Properties zur Angabe der Mindestvoraussetzungen an
        ein neues Mitglied gibt es nicht mehr. Da aber Level 1 das Mindest-
        level darstellt, muss ein neues Mitglied genau dessen Bedingungen
        erfuellen, um der Gilde beitreten zu koennen. Erfuellt ein Spieler
        die Voraussetzungen fuer Gildenlevel 1 nicht, kann er der Gilde
        nicht beitreten!

WAS HEISST DENN 'BEDINGUNGEN'?
        Alle 'Bedingungen' zum erreichen eines Levels sind in einem Mapping
        gespeichert. Dieses Mapping wird dann vom 'Restriktor' 
        (/std/restrictor.c) ueberprueft. Sind alle Bedingungen im Mapping
        vom Spieler erfuellt, kann der Spieler erhoehen. Ist eine Bedingung
        nicht erfuellt, wird ausgegeben, woran es scheiterte.

WOVON KANN EIN LEVEL ABHAENGEN?
        Der Restriktor kann folgende Werte in einem Spieler ueberpruefen:

        Das Level, das Gildenlevel, Erfahrunspunkte, Abenteuerpunkte, die
        'Alkoholisierung', die 'Fuellmenge' bei Essen&Trinken, die Anzahl
        der gefundenen FPs, alle 4 Attribute (Intelligenz, Geschick, Kraft,
        Ausdauer), den Charakter (Align), die Anzahl der freien Haende,
        ob der Spieler Seher ist, ob er bestimmte Quests geloest hat, ob
        er eine bestimmte Menge Geld dabei hat (die er dann zahlen muss)
        und letztlich welche Rassen dieses Level nicht erreichen koennen,
        bzw. welche es ausnahmsweise koennen. Letzteres hat aber wohl
        nur Bedeutung fuer Level 1 (=Eintrittsbedingungen).

        WICHTIG: Eventuell wird sich das noch erweitern. Es empfiehlt sich
        deshalb die Manpage 'restriktionen' zu lesen!!!

        Wem das alles nicht ausreicht, der kann auch eine Funktion in
        dem Mapping angeben, in der er selbst noch 'Ueberpruefungen'
        vornimmt. (Bei einfachen Properties, aber besser im Restriktor 
        einbauen lassen.)

WIE SIEHT DENN SO EIN MAPPING AUS?
        Also nehmen wir als Beispiel eine einfache Gilde mit 3 Leveln. Die
        Bedingungen koennten sein:

        Level 1: (=Gildeneintrittsbedingungen)
                 - 500000 Erfahrungspunkte
                 - 12 Smaragde Beitrittsgeld
                 - Annie-Quest bestanden haben
        Level 2: - 8000000 Erfahrungspunkte
                 - mindestens 40% aller Forschungspunkte im Mud
                 - absolut nuechtern
                 - mind. netter Charakter (Align 100)
                 - Intelligenz 19
        Level 3: - 2000000 Erfahrungspunkte
                 - mindestens 400 Questpunkte
                 - mindestens 60% aller Forschungspunkte
                 - heiliger Charakter
                 - Geschicklichkeit 25
                 - nur Spieler mit Anfangsbuchstabe 'H' koennen die Stufe
                   erreichen.

        Das 'Bedingungen'-Mapping fuer eine Gilde mit diesen 4 Stufen
        saehe wie folgt aus. Jedes Level hat einen Eintrag im P_GUILD_LEVELS
        Mapping (die Nummer ist der Key).
        Der Inhalt eines Eintrages ist selbst auch wieder ein Mapping.

        SetProp(P_GUILD_LEVELS,
          ([
              1: ([                                 // Level 1 Mapping
                     P_XP    : 500000,                  // 500k XPs
                     R_MONEY : 10368,                   // 864*12 Bernsteine
                     P_QUESTS: ({"Der Puppendoktor"}),  // Anniequest
                 ]),
              2: ([                                 // Level 2 Mapping
                     P_XP      : 800000,                // 800k XPs
                     R_EXPLORED: 40,                    // 40% erforscht?
                     P_ALCOHOL : 0,                     // nuechtern
                     R_GOOD    : 100,                   // besser als 100?
                     A_INT     : 19,                    // Intelligenz 19
                 ]),
              3: ([                                 // Level 3 Mapping
                     P_XP      : 2000000,               // 2 Mio XPs
                     P_QP      : 400,                   // 400 Questpunkte
                     R_EXPLORED: 60,                    // 60% erforscht
                     R_GOOD    : 900,                   // heilig
                     A_DEX     : 25,                    // Geschick 25
                     R_FUN     : "first_letter_h",      // first_letter_h(...)
                 ]),                                    // aufrufen
          ]);

        Die Bedeutung der Properties ( P_* ) sollte klar sein. Die Attribute
        ( A_* ) entsprechen ebenfalls den Definitionen bei Lebewesen im Mud.
        Damit koennen aber leider nicht alle Abfragen gebastelt werden, des-
        halb bringt der Restriktor noch ein paar eigene Defines ( R_* ) mit,
        die sozusagen als 'Kruecke' dienen, wo man mit Properties nicht
        weiterkommt. Welche Properties, Attribute und sonstige Defines der
        Restriktor genau verarbeitet, ist in 'restriktionen' beschrieben.

        Ist man sich ueber die Arbeitsweise des Restriktors im klaren,
        sollte das oben angegebene Beispiel leicht verstaendlich sein. Kann
        jetzt der Spieler zum Beispiel beim erhoehen auf Gildenlevel 2 die
        Bedingung absolut nuechtern zu sein, nicht erfuellen, bekommt er
        eine entsprechende Meldung.
        Bei Gildenstufe 3 wird als letzte Bedingung die Funktion 
        first_letter_h() mit dem Parameter this_player() aufgerufen, die 
        ueberprueft, ob der Spieler als ersten Buchstabe ein 'H' hat. Gibt
        first_letter_h() als Result 0 zurueck, darf der Spieler erhoehen,
        ansonsten wird der String ausgegeben, den first_letter_h() liefert.

WAS PASSIERT BEIM GILDENWECHSEL?
        Das Gildenlevel wird fuer jede Gilde getrennt gespeichert. Ein
        spieler->QueryProp(P_GUILD_LEVEL) liefert aber immer nur das Level
        seiner derzeitigen Gilde. spieler->SetProp(P_GUILD_LEVEL) setzt auch
        nur das Level der momentanen Gilde. Wechselt der Spieler die Gilde
        und kehrt spaeter wieder in seine alte Gilde zurueck, dann hat er
        automatisch wieder seine alte Gildenstufe.

SIND DIE FERTIGKEITEN JETZT AUCH VOM GILDENLEVEL ABHAENGIG?
        Nein. P_GUILD_SKILLS funktioniert jetzt genauso wie die Gildenlevel.
        Es muss also durchaus nicht reichen, ein bestimmtes Gildenlevel zu
        haben, um eine Fertigkeit erlernen zu koennen. Beispiele zu
        Fertigkeiten-Bedingungen stehen in P_GUILD_SKILLS.

WONACH RICHTET SICH JETZT DAS NORMALE SPIELERLEVEL?
        Das kann man wie bisher auch in seiner eignen Gilde erhoehen und
        ist nach wie vor von einer bestimmten Menge Erfahrungspunkten und
        Forschungspunkten abhaengig. Das einzige was daran jetzt anders ist,
        ist, dass es jetzt in ALLEN Gilden genau gleich viel kostet, sein
        Level zu erhoehen. Die Bedingungen zum Aufsteigen sind ergo fuer
        alle gleich.

UND DIE TITEL?
        Die Titel sind jetzt auch nur vom Gildenlevel abhaengig. In 
        P_GUILD_TITLES sollten genau so viele Titel definiert sein, wie die
        Gilde Level hat. Sind weniger definiert, wird der letzte immer
        wieder gesetzt. Sind mehr definiert, hat das keinerlei Effekt.

DAS WAR JA EINFACH :-)
        Genau. Und wenn Du was noch nicht verstanden hast, dann kopier Dir
        einfach das Beispielmapping oben und probier ein wenig herum in
        Deiner Testgilde. :)
        
SIEHE AUCH:
        restriktionen(WL), mappings(LPC), P_GUILD_SKILLS,
        P_GUILD_LEVEL, P_GUILD_LEVELS, P_GUILD_TITLES, P_LEVEL


Start » Magierhandbuch » Docu » Konzepte » Gildenlevel Letzte Generierung: 25.04.2021, 01:58
Email an: mud@wl.mud.de
Valid HTML 4.01!