修复徽章镶嵌

This commit is contained in:
小疯
2022-09-17 00:49:27 +08:00
parent e41b0f976d
commit 1dc395f164
7 changed files with 95 additions and 42 deletions

View File

@@ -17,12 +17,18 @@ public:
public:
//获取时装管理器
WongWork::CAvatarItemMgr* GetAvatarItemMgrR()
int GetAvatarItemMgrR()
{
typedef WongWork::CAvatarItemMgr* (*__func)(void* a1);
typedef int (*__func)(void* a1);
return ((__func)base::CInventory::GetAvatarItemMgrR)(this);
}
int GetAvatarItemMgrW()
{
return CallT<int>(base::CInventory::GetAvatarItemMgrW, this);
}
int delete_item(INVEN_TYPE a2, int pos, int num, int a5, int a6 = 1)
{
typedef int (*__func)(CInventory* a1, INVEN_TYPE a2, int a3, int a4, int a5, int a6);

View File

@@ -231,6 +231,12 @@ public:
return CallT<int>(base::CEquipItem::GetItemType, this);
}
int getAvatarSocket(int a2, stAvatarEmblemInfo_t* a3)
{
return CallT<int>(base::CEquipItem::getAvatarSocket, this, a2, a3);
}
};
class Inven_Item
@@ -267,11 +273,6 @@ public:
return ((__func)base::Inven_Item::isEquipableItemType)(this);
}
int get_ui_id()
{
return *(int*)(this + 0x7);
}
bool IsTradeLimitAttachTypeItem()
{
return CallT<bool>(base::Inven_Item::IsTradeLimitAttachTypeItem, this);
@@ -300,8 +301,7 @@ class DB_UpdateAvatarJewelSlot
public:
static int makeRequest(int a1, unsigned int a2, void* src)
{
typedef int (*__func)(int a1, unsigned int a2, void* src);
return ((__func)base::DB_UpdateAvatarJewelSlot::makeRequest)(a1, a2, src);
return CallT<int>(base::DB_UpdateAvatarJewelSlot::makeRequest, a1, a2, src);
}
};

View File

@@ -9,7 +9,7 @@ class CSystemTime
public:
static CSystemTime* G_CSystemTime(void)
{
return *(CSystemTime**)base::GlobalData::s_systemTime_;
return (CSystemTime*)base::GlobalData::s_systemTime_;
}
CSystemTime()

View File

@@ -195,6 +195,12 @@ namespace base
namespace CEquipItem
{
const int GetItemType = 0x08514D26;
const int getAvatarSocket = 0x08150F36;
}
namespace stAvatarEmblemInfo_t
{
const int init = 0x081506E8;
}
namespace Inven_Item
@@ -219,6 +225,8 @@ namespace base
namespace CInventory
{
const int GetAvatarItemMgrR = 0x80DD576;
const int GetAvatarItemMgrW = 0x08110C6C;
const int delete_item = 0x850400C;
const int use_money = 0x84FF54C;
const int gain_money = 0x84FF29C;
@@ -360,6 +368,7 @@ namespace base
namespace CAvatarItemMgr
{
const int getJewelSocketData = 0x82F98F8;
const int setEmblemSocketData = 0x082F91CE;
}
}

View File

@@ -37,7 +37,7 @@ class PacketBuf;
class PacketGuard;
class InterfacePacketBuf;
class Dispatcher_ModItemAttr;
class stAvatarEmblemInfo_t;
@@ -95,11 +95,17 @@ namespace WongWork
{
public:
//获取时装插槽数据
int getJewelSocketData(WongWork::CAvatarItemMgr* a2)
int getJewelSocketData(int a2)
{
typedef int (*__func)(WongWork::CAvatarItemMgr* a1, void* a2);
return ((__func)base::WongWork::CAvatarItemMgr::getJewelSocketData)(this, a2);
return CallT<int>(base::WongWork::CAvatarItemMgr::getJewelSocketData, this, a2);
}
int setEmblemSocketData(int a2, stAvatarEmblemInfo_t * a3)
{
return CallT<int>(base::WongWork::CAvatarItemMgr::setEmblemSocketData, this, a2, a3);
}
};
class CHackAnalyzer
@@ -131,6 +137,27 @@ public:
};
struct EmblemInfo
{
unsigned short slot_type;
unsigned int slot_item_id;
};
struct stAvatarEmblemInfo_t
{
public:
EmblemInfo EmblemSocketData[0x05];
public:
int init()
{
return CallT<int>(base::stAvatarEmblemInfo_t::init, this);
}
};
class cUserHistoryLog
{
public: