feat: add update items from server
This commit is contained in:
@@ -14,6 +14,7 @@ namespace Interlude
|
|||||||
Item* (__thiscall* NetworkHandlerWrapper::__GetNextItem)(NetworkHandler*, float, int) = 0;
|
Item* (__thiscall* NetworkHandlerWrapper::__GetNextItem)(NetworkHandler*, float, int) = 0;
|
||||||
User* (__thiscall* NetworkHandlerWrapper::__GetNextCreature)(NetworkHandler*, float, int) = 0;
|
User* (__thiscall* NetworkHandlerWrapper::__GetNextCreature)(NetworkHandler*, float, int) = 0;
|
||||||
int(__thiscall* NetworkHandlerWrapper::__AddNetworkQueue)(NetworkHandler*, L2::NetworkPacket*) = 0;
|
int(__thiscall* NetworkHandlerWrapper::__AddNetworkQueue)(NetworkHandler*, L2::NetworkPacket*) = 0;
|
||||||
|
int(__thiscall* NetworkHandlerWrapper::__RequestItemList)(NetworkHandler*);
|
||||||
|
|
||||||
//todo exception
|
//todo exception
|
||||||
Item* NetworkHandlerWrapper::GetNextItem(float_t radius, int prevId) const
|
Item* NetworkHandlerWrapper::GetNextItem(float_t radius, int prevId) const
|
||||||
@@ -50,6 +51,14 @@ namespace Interlude
|
|||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
int NetworkHandlerWrapper::RequestItemList() const
|
||||||
|
{
|
||||||
|
if (__RequestItemList && _target) {
|
||||||
|
return (*__RequestItemList)(_target);
|
||||||
|
}
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
void NetworkHandlerWrapper::Init(HMODULE hModule)
|
void NetworkHandlerWrapper::Init(HMODULE hModule)
|
||||||
{
|
{
|
||||||
void* initAddress = GetProcAddress(hModule, "?Tick@UNetworkHandler@@UAEXM@Z");
|
void* initAddress = GetProcAddress(hModule, "?Tick@UNetworkHandler@@UAEXM@Z");
|
||||||
@@ -58,6 +67,7 @@ namespace Interlude
|
|||||||
|
|
||||||
(FARPROC&)__GetNextItem = GetProcAddress(hModule, "?GetNextItem@UNetworkHandler@@UAEPAUItem@@MH@Z");
|
(FARPROC&)__GetNextItem = GetProcAddress(hModule, "?GetNextItem@UNetworkHandler@@UAEPAUItem@@MH@Z");
|
||||||
(FARPROC&)__GetNextCreature = GetProcAddress(hModule, "?GetNextCreature@UNetworkHandler@@UAEPAUUser@@MH@Z");
|
(FARPROC&)__GetNextCreature = GetProcAddress(hModule, "?GetNextCreature@UNetworkHandler@@UAEPAUUser@@MH@Z");
|
||||||
|
(FARPROC&)__RequestItemList = GetProcAddress(hModule, "?RequestItemList@UNetworkHandler@@UAEHXZ");
|
||||||
|
|
||||||
|
|
||||||
(FARPROC&)__AddNetworkQueue = (FARPROC)splice(
|
(FARPROC&)__AddNetworkQueue = (FARPROC)splice(
|
||||||
|
@@ -22,15 +22,17 @@ namespace Interlude
|
|||||||
Item* GetNextItem(float_t radius, int prevId) const;
|
Item* GetNextItem(float_t radius, int prevId) const;
|
||||||
User* GetNextCreature(float_t radius, int prevId) const;
|
User* GetNextCreature(float_t radius, int prevId) const;
|
||||||
User* GetHero() const;
|
User* GetHero() const;
|
||||||
|
int RequestItemList() const;
|
||||||
private:
|
private:
|
||||||
|
|
||||||
static void __fastcall __Init_hook(NetworkHandler* This, int /*edx*/, float unk);
|
static void __fastcall __Init_hook(NetworkHandler* This, int /*edx*/, float unk);
|
||||||
static int __fastcall __AddNetworkQueue_hook(NetworkHandler* This, int /*edx*/, L2::NetworkPacket* packet);;
|
static int __fastcall __AddNetworkQueue_hook(NetworkHandler* This, int /*edx*/, L2::NetworkPacket* packet);
|
||||||
|
|
||||||
static void(__thiscall* __Init)(NetworkHandler*, float);
|
static void(__thiscall* __Init)(NetworkHandler*, float);
|
||||||
static Item* (__thiscall* __GetNextItem)(NetworkHandler*, float, int);
|
static Item* (__thiscall* __GetNextItem)(NetworkHandler*, float, int);
|
||||||
static User* (__thiscall* __GetNextCreature)(NetworkHandler*, float, int);
|
static User* (__thiscall* __GetNextCreature)(NetworkHandler*, float, int);
|
||||||
static int(__thiscall* __AddNetworkQueue)(NetworkHandler*, L2::NetworkPacket*);
|
static int(__thiscall* __AddNetworkQueue)(NetworkHandler*, L2::NetworkPacket*);
|
||||||
|
static int(__thiscall* __RequestItemList)(NetworkHandler*);
|
||||||
private:
|
private:
|
||||||
static void* originalInitAddress;
|
static void* originalInitAddress;
|
||||||
static NetworkHandler* _target;
|
static NetworkHandler* _target;
|
||||||
|
@@ -197,6 +197,7 @@ namespace Interlude
|
|||||||
m_IsNewCycle = false;
|
m_IsNewCycle = false;
|
||||||
m_NewItems.clear();
|
m_NewItems.clear();
|
||||||
m_Items.clear();
|
m_Items.clear();
|
||||||
|
m_NetworkHandler.RequestItemList();
|
||||||
}
|
}
|
||||||
|
|
||||||
private:
|
private:
|
||||||
|
Reference in New Issue
Block a user