Dokumentation zu: P_GXP

HR Image


PROPERTY:
        P_GXP

DEFINIERT ALS:
        "gxp"

DEFINIERT IN:
        /sys/living/life.h

WERTE:
        int

BESCHREIBUNG:
        * Wenn gesetzt hat der Spieler mehr als 2,1 Mrd Erfahrungspunkte.
        * Wenn gesetzt ist dies die Zahl der Milliarden XP des Spielers.
        * Nie gesetzt/nicht ausgewertet in NPC.
        * Soll in Spielern nie manuell gesetzt werden.

        Integer koennen nur Zahlen bis etwa 2,1 Mrd speichern. Solange ein
        Spieler weniger Punkte hat, wird die Anzahl seiner XP nur in
        P_XP gespeichert.

        Uebersteigt die Anzahl der Punkte den mit einem Integer darstellbaren
        Bereich, so stehen in P_GXP die Milliarden und der Rest in P_XP:

        Punkte des Spielers  733 324 827 193
                              |   |   |   |
                              |   +---+---+----> 324827193 in P_XP
                              |
                              +---------------->       733 in P_GXP

        Punkte = 1 Mrd * P_GXP + P_XP
               = _GXP_FACT_ * P_GXP + P_XP

        Zum Aendern der (G)XP darf nur AddExp() verwendet werden, welches
        Ueberlaufe beruecksichtigt etc!

        Wer genau aufgepasst hat, hat bemerkt, dass P_GXP niemals 1 sein
        kann. Der Spieler haette dann einen XP Wert von 1 bis 1.9 Mrd;
        dieser ist mit einem einzelnen Integer darstellbar und P_GXP wird
        noch nicht benutzt.

HINWEISE:
        Es ist also nicht ganz so einfach, die Erfahrungspunkte eines Spielers
        abzufragen, um sie mit einem Wert zu vergleichen. Am einfachsten
        ist die Verwendung von QueryExpFloat() und Fliesskommazahlen.

        Wenn man einen Integer y vergleichen will, muss man immer beide
        Eigenschaften checken:

        if (pl->QueryProp(P_GXP) < 1 && pl->QueryProp(P_XP) < y) ...

SIEHE AUCH:
        P_XP, AddExp(L), QueryExpStr(L), QueryExpFloat(L), P_HP, P_SP


Start » Magierhandbuch » Docu » Properties » P_GXP Letzte Generierung: 01.05.2021, 16:59
Valid HTML 4.01!