diff --git a/src/dispatch.cpp b/src/dispatch.cpp index aedfd7e..6e3ccb7 100644 --- a/src/dispatch.cpp +++ b/src/dispatch.cpp @@ -210,33 +210,6 @@ ENUM_PACK_RET_TYPE CDispatch::UseEquipmentMoveItem(CUser* user, PacketBuf* pBuf) } } - - - /* - - - - - - */ - - //if (!item_citem->is_stackable() || (equipment_citem->GetItemType() != 20)) - //{ - // LOG("citem->is_stackable() || (citem->GetItemType() : error \n"); - // pUser->SendCmdErrorPacket(205, 209); - // return 0; - //} - - /* - [DNF_PROJECT] Recv() class:1 id:2000 len:21 packet_data :01 D0 07 15 00 00 00 36 E2 41 37 12 00 09 00 AD 6B 00 00 03 00 - [DNF_PROJECT] UseEquipmentMoveItem :01 D0 07 15 00 00 00 36 E2 41 37 12 00 09 00 AD 6B 00 00 03 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 - - [DNF_PROJECT] UseEquipmentMoveItem [ equipment_pos:9 equipment_id:27565 item_pos:3 item_id:2660238 ] - - [DNF_PROJECT] Data: equipment_citem->GetItemType=0 item_citem->is_stackable=1 item_citem->GetItemType=11 - - */ - /* 缓冲Call (2000) 密钥Call (装备位置,2) @@ -244,10 +217,6 @@ ENUM_PACK_RET_TYPE CDispatch::UseEquipmentMoveItem(CUser* user, PacketBuf* pBuf) 密钥Call (物品位置,2) 发包Call () */ - - - - return PAK_OK; } @@ -271,14 +240,14 @@ ENUM_PACK_RET_TYPE CDispatch::Dispatcher_ModItemAttr_dispatch_sig(Dispatcher_Mod user->SendCmdErrorPacket(84, 4); return PAK_IGNORE; } - CItem* equipment_item = CDataManager::G_CDataManager()->find_item(equipment_id); + CEquipItem* equipment_item = (CEquipItem*)CDataManager::G_CDataManager()->find_item(equipment_id); if (!equipment_item) { user->SendCmdErrorPacket(84, 4); return PAK_IGNORE; } - int equipment_Type = ((CEquipItem*)equipment_item)->GetItemType(); + int equipment_Type = equipment_item->GetItemType(); if (equipment_Type <= 9 || equipment_Type > 21 || equipment_Type == 11) { diff --git a/src/sdk_class.h b/src/sdk_class.h index 9bf4c24..b68e439 100644 --- a/src/sdk_class.h +++ b/src/sdk_class.h @@ -349,31 +349,13 @@ public: }; -class CStackableItem -{ -public: - //鑾峰彇娑堣楀搧绫诲瀷 - int GetItemType() - { - typedef int (*__func)(void* a1); - return ((__func)base::CStackableItem::GetItemType)(this); - } - - //鑾峰彇寰界珷鏀寔鐨勯暥宓屾Ы绫诲瀷 - int getJewelTargetSocket() - { - typedef int (*__func)(CStackableItem* a1); - return ((__func)base::CStackableItem::getJewelTargetSocket)(this); - } -}; - -class CItem : public CStackableItem +class CItem { public: /** * @brief 鏄惁涓烘秷鑰楀搧 - * @return + * @return */ bool is_stackable() { @@ -389,7 +371,7 @@ public: /** * @brief 鍙栭檮鍔犵被鍨 - * @return + * @return */ int GetAttachType() { @@ -567,7 +549,25 @@ public: private: }; -class CEquipItem +class CStackableItem : public CItem +{ +public: + //鑾峰彇娑堣楀搧绫诲瀷 + int GetItemType() + { + typedef int (*__func)(void* a1); + return ((__func)base::CStackableItem::GetItemType)(this); + } + + //鑾峰彇寰界珷鏀寔鐨勯暥宓屾Ы绫诲瀷 + int getJewelTargetSocket() + { + typedef int (*__func)(CStackableItem* a1); + return ((__func)base::CStackableItem::getJewelTargetSocket)(this); + } +}; + +class CEquipItem : public CItem { public: int GetItemType()