Hallo,
da ich die new equipment slots für Gürtel und Ringe nicht gebraucht habe, habe ich diesen Teil bei Tutorials immer ignoriert gehabt. Nun möchte ich sie allerdings nutzen und muss feststellen, dass ingame alle Slots ab Gürtel (new equipment + 0) verschoben sind. Ich habe bereits einiges probiert, aber bräuchte ein bisschen Erklärung von jemandem mit Ahnung.
1) Zunächst einmal: Wie genau funktioniert das Slotsystem von Metin, wo im Serversource Code wird definiert, wo an welcher Stelle im grid (muss es ja eigentlich geben oder? Son Itemgrid?) welche Item vnum steht. Ich hab bei mir 180 Inventar Slots + Darauf kommen 32 Equip bzw. Wear Slots (Max) + einige für die DSA und dann kommt new Equpment Types.
2) Wofür steht:
und wieso wird dieser Wert inkrementiert, also der Start im Grid verschoben wenn ich z.B: einen neuen Costume Type einfüge?
3) Wie bekomme ich die richtige Reihenfolge heraus bzw. was genau muss ich tuen damit im Inventar alle Slots an ihrer korrekten Stelle sind? (Unter Vorraussetz. das inventorywindow.py richtige Koordinaten eingetragen hat für die entsprechenden Itemslots)
Zum Schluss hier noch mein Code an den beiden von mir verdächtigten Stellen, vielleicht sieht einer von euch den Fehler ja sogar direkt:
- #ifdef ENABLE_COSTUME_SYSTEM
- const DWORD c_Costume_Slot_Start = c_Equipment_Start + 19; // [주의] 숫자(19) 하드코딩 주의. 현재 서버에서 코스츔 슬롯은 19부터임. 서버 common/length.h 파일의 EWearPositions 열거형 참고.
- const DWORD c_Costume_Slot_Body = c_Costume_Slot_Start + 0;
- const DWORD c_Costume_Slot_Hair = c_Costume_Slot_Start + 1;
- #ifdef ENABLE_MOUNT_COSTUME_SYSTEM
- const DWORD c_Costume_Slot_Mount = c_Costume_Slot_Start + 2;
- #endif
- #ifdef ENABLE_ACCE_COSTUME_SYSTEM
- const DWORD c_Costume_Slot_Acce = c_Costume_Slot_Start + 3;
- #endif
- #ifdef ENABLE_EFFECT_SYSTEM
- const DWORD c_Costume_Effect_Body = c_Costume_Slot_Start + 4;
- const DWORD c_Costume_Effect_Weapon = c_Costume_Slot_Start + 5;
- #endif
- #if defined(ENABLE_EFFECT_SYSTEM)
- const DWORD c_Costume_Slot_Count = 6;
- #elif defined(ENABLE_WEAPON_COSTUME_SYSTEM) || defined(ENABLE_ACCE_COSTUME_SYSTEM)
- const DWORD c_Costume_Slot_Count = 4;
- #elif defined(ENABLE_MOUNT_COSTUME_SYSTEM)
- const DWORD c_Costume_Slot_Count = 3;
- #else
- const DWORD c_Costume_Slot_Count = 2;
- #endif
- const DWORD c_Costume_Slot_End = c_Costume_Slot_Start + c_Costume_Slot_Count;
- #ifdef ENABLE_WEAPON_COSTUME_SYSTEM
- const DWORD c_Costume_Slot_Weapon = c_Costume_Slot_End + 1;
- #endif
- #endif
- #ifdef ENABLE_NEW_EQUIPMENT_SYSTEM
- const DWORD c_New_Equipment_Start = c_Equipment_Start + 21
- #ifdef ENABLE_MOUNT_COSTUME_SYSTEM
- + 1
- #endif
- #if defined(ENABLE_WEAPON_COSTUME_SYSTEM) || defined(ENABLE_ACCE_COSTUME_SYSTEM)
- + 1
- #endif
- #ifdef ENABLE_EFFECT_SYSTEM
- + 2
- #endif
- ;
- const DWORD c_New_Equipment_Count = 4;
- const DWORD c_Equipment_Ring1 = c_New_Equipment_Start + 0;
- const DWORD c_Equipment_Ring2 = c_New_Equipment_Start + 1;
- const DWORD c_Equipment_Belt = c_New_Equipment_Start + 2;
- #ifdef ENABLE_PET_SLOT
- const DWORD c_Equipment_Pet = c_New_Equipment_Start + 3;
- #endif
- #endif
Das Problem im Prinzip ist dieser neu hinzugefügte "EQUIPMENT_PET" Slot, der aus der Reihe tanzt. Je nachdem wie ich den Startwert verschiebe, passt zwar der, aber dann sind die Ringe an den falschen Stellen oder der Gürtel eben.
Vielen Dank schonmal für eure Zeit.