Drachenseelen-Refine-Protokoll aus dem Client-Engine-Code entfernen
Dritter, zuvor uebersehener Teil der Drachenseelen-Entfernung: das Visual-Studio-Projekt, das Metin2Client.exe baut und die an Python exponierten Module (player/chr/item/app/net) bereitstellt. Entfernt: NEW_AFFECT_DRAGON_SOUL_QUALIFIED/_DECK1/_DECK2 (InstanceBase.h + Python-Bindings), das komplette Refine-Netzwerkprotokoll (HEADER_CG/GC_DRAGON_SOUL_REFINE, TPacketCG/GCDragonSoulRefine, Send/RecvDragonSoulRefine(Packet) inkl. aller Aufrufstellen, playerSendDragonSoulRefine, DS_SUB_HEADER_*-Bindings in gleich zwei Modulen), playerIsDSEquipmentSlot, sowie die ungenutzten EDragonSoulStepTypes-Enum. Sicherheitsprinzip wie serverseitig beachtet: ESlotType, EWindows und CItemData::EItemType sind sequentielle Enums, in denen SLOT_TYPE_DRAGON_SOUL_INVENTORY / DRAGON_SOUL_INVENTORY / ITEM_TYPE_DS / ITEM_TYPE_SPECIAL_DS mitten drin liegen und mit dem Server sowie gespeicherten Item-Daten synchron bleiben muessen (u.a. wegen BELT_INVENTORY danach) - diese bleiben bewusst als reservierte, ungenutzte Werte stehen, ebenso EDragonSoulGradeTypes (wird noch von c_DragonSoul_Inventory_Count zur Groessenberechnung des aDSItem[]-Arrays gebraucht). WICHTIG: Dieses Projekt kann ich nicht selbst kompilieren (Windows/Visual Studio). Bitte einmal durchbauen und mir Fehler zurückmelden.
This commit is contained in:
@@ -152,7 +152,6 @@ enum
|
||||
HEADER_CG_HS_ACK = 203,
|
||||
HEADER_CG_XTRAP_ACK = 204,
|
||||
|
||||
HEADER_CG_DRAGON_SOUL_REFINE = 205,
|
||||
HEADER_CG_STATE_CHECKER = 206,
|
||||
|
||||
#ifdef __AUCTION__
|
||||
@@ -356,7 +355,6 @@ enum
|
||||
#endif
|
||||
|
||||
HEADER_GC_SPECIFIC_EFFECT = 208,
|
||||
HEADER_GC_DRAGON_SOUL_REFINE = 209,
|
||||
HEADER_GC_RESPOND_CHANNELSTATUS = 210,
|
||||
|
||||
HEADER_GC_KEY_AGREEMENT_COMPLETED = 0xfa, // _IMPROVED_PACKET_ENCRYPTION_
|
||||
@@ -2762,48 +2760,6 @@ typedef struct SPacketGCSpecificEffect
|
||||
char effect_file[128];
|
||||
} TPacketGCSpecificEffect;
|
||||
|
||||
// 용혼석
|
||||
enum EDragonSoulRefineWindowRefineType
|
||||
{
|
||||
DragonSoulRefineWindow_UPGRADE,
|
||||
DragonSoulRefineWindow_IMPROVEMENT,
|
||||
DragonSoulRefineWindow_REFINE,
|
||||
};
|
||||
|
||||
enum EPacketCGDragonSoulSubHeaderType
|
||||
{
|
||||
DS_SUB_HEADER_OPEN,
|
||||
DS_SUB_HEADER_CLOSE,
|
||||
DS_SUB_HEADER_DO_UPGRADE,
|
||||
DS_SUB_HEADER_DO_IMPROVEMENT,
|
||||
DS_SUB_HEADER_DO_REFINE,
|
||||
DS_SUB_HEADER_REFINE_FAIL,
|
||||
DS_SUB_HEADER_REFINE_FAIL_MAX_REFINE,
|
||||
DS_SUB_HEADER_REFINE_FAIL_INVALID_MATERIAL,
|
||||
DS_SUB_HEADER_REFINE_FAIL_NOT_ENOUGH_MONEY,
|
||||
DS_SUB_HEADER_REFINE_FAIL_NOT_ENOUGH_MATERIAL,
|
||||
DS_SUB_HEADER_REFINE_FAIL_TOO_MUCH_MATERIAL,
|
||||
DS_SUB_HEADER_REFINE_SUCCEED,
|
||||
};
|
||||
|
||||
typedef struct SPacketCGDragonSoulRefine
|
||||
{
|
||||
SPacketCGDragonSoulRefine() : header (HEADER_CG_DRAGON_SOUL_REFINE)
|
||||
{}
|
||||
BYTE header;
|
||||
BYTE bSubType;
|
||||
TItemPos ItemGrid[DS_REFINE_WINDOW_MAX_NUM];
|
||||
} TPacketCGDragonSoulRefine;
|
||||
|
||||
typedef struct SPacketGCDragonSoulRefine
|
||||
{
|
||||
SPacketGCDragonSoulRefine() : header(HEADER_GC_DRAGON_SOUL_REFINE)
|
||||
{}
|
||||
BYTE header;
|
||||
BYTE bSubType;
|
||||
TItemPos Pos;
|
||||
} TPacketGCDragonSoulRefine;
|
||||
|
||||
typedef struct SChannelStatus
|
||||
{
|
||||
short nPort;
|
||||
|
||||
Reference in New Issue
Block a user