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:
Andreas Lierschaft
2026-08-17 23:37:09 +02:00
parent 9ae37cd0ea
commit 5bcf1b92ea
10 changed files with 0 additions and 207 deletions
@@ -626,10 +626,6 @@ void CPythonNetworkStream::GamePhase()
ret = RecvSpecificEffect();
break;
case HEADER_GC_DRAGON_SOUL_REFINE:
ret = RecvDragonSoulRefine();
break;
default:
ret = RecvDefaultPacket(header);
break;
@@ -4437,22 +4433,6 @@ bool CPythonNetworkStream::RecvDigMotionPacket()
return true;
}
// 용혼석 강화
bool CPythonNetworkStream::SendDragonSoulRefinePacket(BYTE bRefineType, TItemPos* pos)
{
TPacketCGDragonSoulRefine pk;
pk.header = HEADER_CG_DRAGON_SOUL_REFINE;
pk.bSubType = bRefineType;
memcpy (pk.ItemGrid, pos, sizeof (TItemPos) * DS_REFINE_WINDOW_MAX_NUM);
if (!Send(sizeof (pk), &pk))
{
return false;
}
return true;
}
#if defined(ENABLE_DISCORD_RPC)
#include "discord_rpc.h"
#include "Discord.h"