|
Dann erklär ichs dir mal.
Wie ein Server<>Client Verhältnis funktioniert, ist dir hoffentlich bewusst.
Am besten fängst du erstmal damit an, dir im Klaren zu sein, wo was von den Items liegt.
Bilder und Texte im Server zu speichern ist sinnlos, das würde zuviel Traffic verbrauchen und keinen stört es, wenn sie geändert werden. Die Stats und Scripts des Items allerdings liegen serverseitig, klar, sonst kann man sich ja im Client selbst imba-Items zusammenbasteln.
Der Server braucht einen Weg, dem Client mitzuteilen, welchen Sprite etc. er für das Item benutzen soll. Dafür könnte man nun die ItemID nehmen, allerdings ist diese unique (einmalig), d.h. man könnte Items nur schwer "kopieren".
Hier kommt die ViewID ins Spiel (der letzte Wert, eine Zahl, vor den Item Scripts (Item Scripts erkennt man an den {}) in der item_db.txt).
Clientseitig sind in den Lua-Files (Wie im eAthena Wiki Guide beschrieben) View IDs festgelegt und verweisen auf einen Sprite in der GRF (Jeweils einen Drop Sprite, einen männlichen Charsprite und einen weiblichen Charsprite, die Ordner dafür stehen im Guide).
Der Server speichert die ViewID in der ItemDB und teilt sie dem Client mit, wenn er sie braucht.
Dann sind im Client noch die num2xxxxtables und idnum2xxxxtables.
Kurze erklärung:
idnum2itemresnametable.txt <- Name des Sprites für das Item, wenn es identifiziert ist (Ohne Endung)
idnum2itemdisplaynametable.txt <- Name des Items, wenn es idenfifiziert ist
idnum2itemdisplaynametable.txt <- Beschreibung des Items, wenn es idenfiziert ist.
Die anderen 3 num2itemxxxxtables sind für dasselbe, nur halt für das unidentifizierte items.
Der Aufbau ist folgender:
<ItemID>#<Wert>#
Hier aber die normale ItemID verwenden, nicht die ViewID
Beispiel:
Du hast ein Custom Item.
Das besteht aus Drop Sprite, Char-Sprite (Männlich und Weiblich sind meißtens derselbe), Collection Image (Für die Itembeschreibung) und Item Image (Für die Anzeige im Inventar).
(ACT und SPR müssen immer zusammenbleiben)
dein_item.spr/.act <- Dropsprite
³²_dein_item.spr/.act <- Männlicher Charsprite ( /data/sprite/¾Ç¼¼»ç¸®/³²)
¿©_dein_item.spr/.act <- Weiblicher Charsprite (/data/sprite/¾Ç¼¼»ç¸®/¿©)
dein_item.bmp <- (Das größere, das Collection Image (data/texture/À¯ÀúÀÎÅÍÆäÀ̽º/collection)
dein_item.bmp <- (Das Item Image (data/texture/À¯ÀúÀÎÅÍÆäÀ̽º/collection/item)
Ignorier die Ordnernamen, das ist Koreanisch in ASCII.
Die id/num2itemresnametable.txt verweist auf den Dropsprite, das Collection Image und das Item Image.
Die ViewID legt den Namen des Sprites für die Charakter-Sprites fest.
Nun nurnoch 1 und 1 zusammenzählen und du kriegst es alleine hin.
|