Itemdata.h / GameType.h bzw. lenght.h

  • Da es viele User gibt, die nicht wirklich wissen, was in den Files eigentlich passiert, hier eine Erklärung zu Itemdata.h / GameType.h bzw. lenght.h


    Zu aller erst:

    - Itemdata.h / GameType.h ist der Binary (Client SRC) Teil.

    - lenght.h findet man im Server SRC unter common


    Fangen wir mit den "EWearPositions" an.

    Jeweils lenght.h und ItemData.h

    In diesem "enum" (enumerable ~ Aufzählung auf deutsch) werden die Indizes aller WearPositions gelistet.

    Position 1 hat Index 0, Position 2 hat Index 1, usw.

    Wichtig ist, dass diese Datein gleich sein müssen in Client / Server.

    Sonst könnte es sein, dass der Client "WEAR_BELT" abfragt, was dort den Index 21 hat, aber im Server 22. Dann kommt es schnell zu Bugs.


    Ich empfehle die EWearPositions zu kontrollieren, ob dort alles stimmt. Die Reihenfolge könnt ihr frei wählen, es empfiehlt sich aber, die gegebene Struktur so zu lassen.

    Hier meine aktuelle EWearPositions:

    Was kann man erkennen ?

    Ich habe wegen der Übersicht alle "ifdef / endif" entfernt.
    WEAR_MAX steht am Ende und ist die Anzahl der gelisteten Elemente. In meinem Fall 34.

    Ich werde später noch erklären, warum der Costume-Teil bei mir über dem Gürtel/Ring steht.

    Der Client-Teil braucht die Zuweisung von WEAR_MAX_NUM nicht, da diese den Index 34 hat.



    Kommen wir nun zum 2. Teil.

    GameType.h

    Hier wird festgelegt, an welchem Index was im Client liegt.

    Ich hab es unter "EDragonSoulStepTypes{...}" angelegt.

    Hier wird immer viel mit +1 / +2 gerechnet, so, dass man am Ende nicht mehr weiß, was das alles soll.

    Diese Zuordnung bezieht sich auf den 1. Teil.

    Bsp.: Wear_Max ist wieder 34.

    Code
    1. const DWORD c_Wear_Max = 34;

    Der interessante Teil beginnt ab "const DWORD c_ItemSlot_Count = c_Inventory_Page_Size * c_Inventory_Page_Count;"

    Hier mein Code:

    Meine Ordnung beginnt mit den Equipment-Slots.

    Der c_Equipment_Start ist bei c_ItemSlot_Count.

    c_ItemSlot_Count ist c_Inventory_Page_Size * c_Inventory_Page_Count.

    Das bedeutet c_ItemSlot_Count = (5*9) * 5 (Ich habe 5 Inventarseiten)

    Wir beginnen also mit dem Equipment hinter dem letzten Slot auf der letzten Inventarseite.

    Ist bei mir 225. Das heißt, c_Equipment_Body = c_Equipment_Start + 0; bedeutet c_Equipment_Body = 225 + 0;

    Man kann die +0 natürlich weglassen !

    Das c_Equipment_Shield ist somit auf Index 225+10 = 235.


    Nun kommt bei mir der Costume-Teil.

    Die Reihenfolge hier spielt nun keine Rolle. Ich habe ihn nur über den c_New_Equipment_Start gepackt, weil das Shining auch mit New_Equipment gekoppelt ist.

    Warum steht bei "const DWORD c_Costume_Slot_Start" jetzt eine +19 ?

    Wegen der acht "WEAR_ABILITY".

    Wie ich vorhin in der lenght.h / ItemData.h angegeben habe, will ich die Costume ab Index 19 haben (WEAR_COSTUME_BODY, // 19).

    ACHTUNG

    Falls ihr meinen "Code" bei euch einfügen möchtet, müsst ihr "c_Costume_Slot_Pet" / "WEAR_COSTUME_PET, "entfernen.


    Nun kommt der New_Equipment Teil. WEAR_BELT hat Index 25, also +25 als Start.

    Man könnte auch schreiben 250 (225+25).

    Aber mit Zahlen kommt man schnell durcheinander und Variablen sind immer gut lesbar.


    Man kann auch den Start immer an das Ende des Teils davor knüpfen.

    z.B.:

    c_Shining_Slot_Start ist bei mir der Index c_New_Equipment_End.


    Was bringt das jetzt alles ?

    Man kann jetzt die jeweiligen Python Teile des Inventar / Costume / Shining verstehen und Ändern, wie man möchte.

    z.B.:

    Code: costumewindow.py
    1. "slot" : (
    2. {"index":COSTUME_START_INDEX+0, "x":64, "y":48, "width":29, "height":64},#rüstung Sub 0
    3. {"index":COSTUME_START_INDEX+1, "x":64, "y":12, "width":29, "height":32},#helm sub 1
    4. {"index":COSTUME_START_INDEX+2, "x":16, "y":131, "width":29, "height":32},#Sash sub 2
    5. {"index":COSTUME_START_INDEX+3, "x":65, "y":131, "width":32, "height":32},#Mount sub 3
    6. {"index":COSTUME_START_INDEX+4, "x":64, "y":182, "width":32, "height":32},#Pet sub 5
    7. {"index":COSTUME_START_INDEX+5, "x":16, "y":17, "width":32, "height":96},#Waffe sub 4
    8. ),



    So kann nie wieder ein Item beim Anlegen einfach verschwinden !

    Viel Erfolg beim Aufräumen und Herumprobieren.


  • Dieses Thema enthält einen weiteren Beitrag, der nur für registrierte Benutzer sichtbar ist, bitte registrieren Sie sich oder melden Sie sich an um diesen lesen zu können.