添加进入人物和退出人物hook
This commit is contained in:
@@ -8,11 +8,7 @@
|
||||
|
||||
#include "controller.h"
|
||||
|
||||
Controller::Controller() :
|
||||
old_IPacketDispatcher_ParamBase_dispatch_template((IPacketDispatcher_ParamBase_dispatch_template_Type*)base::IPacketDispatcher::ParamBase::dispatch_template),
|
||||
old_UseJewel_dispatch_sig((UseJewel_dispatch_sig_Type*)base::Dispatcher_UseJewel::dispatch_sig),
|
||||
old_Dispatcher_ModItemAttr_dispatch_sig((Dispatcher_ModItemAttr_dispatch_sig_Type*)base::Dispatcher_ModItemAttr::dispatch_sig),
|
||||
old_PacketDispatcher_doDispatch((PacketDispatcher_doDispatch_Type*)base::PacketDispatcher::doDispatch)
|
||||
Controller::Controller()
|
||||
{
|
||||
|
||||
}
|
||||
@@ -45,15 +41,17 @@ void Controller::init()
|
||||
|
||||
|
||||
|
||||
//mhook_IPacketDispatcher_ParamBase_dispatch_template.Hook((void**)&old_IPacketDispatcher_ParamBase_dispatch_template, (void*)hook_IPacketDispatcher_ParamBase_dispatch_template);
|
||||
//HOOK_SETUP(IPacketDispatcher_ParamBase_dispatch_template);
|
||||
|
||||
HOOK_SETUP(UseJewel_dispatch_sig);
|
||||
|
||||
mhook_UseJewel_dispatch_sig.Hook((void**)&old_UseJewel_dispatch_sig, (void*)hook_UseJewel_dispatch_sig);
|
||||
HOOK_SETUP(Dispatcher_ModItemAttr_dispatch_sig);
|
||||
|
||||
mhook_Dispatcher_ModItemAttr_dispatch_sig.Hook((void**)&old_Dispatcher_ModItemAttr_dispatch_sig, (void*)hook_Dispatcher_ModItemAttr_dispatch_sig);
|
||||
HOOK_SETUP(PacketDispatcher_doDispatch);
|
||||
|
||||
mhook_PacketDispatcher_doDispatch.Hook((void**)&old_PacketDispatcher_doDispatch, (void*)hook_PacketDispatcher_doDispatch);
|
||||
HOOK_SETUP(DisPatcher_MoveMap_dispatch_sig);
|
||||
|
||||
HOOK_SETUP(Inter_LoadEtc_dispatch_sig);
|
||||
|
||||
LOG("Controller::init()");
|
||||
|
||||
@@ -99,8 +97,8 @@ int Controller::hook_Dispatcher_ModItemAttr_dispatch_sig(Dispatcher_ModItemAttr*
|
||||
PacketBuf new_buf;
|
||||
memcpy(&new_buf, pBuf, sizeof(PacketBuf));
|
||||
short equipment_pos = 0;
|
||||
int equipment_id = 0;
|
||||
short item_pos = 0;
|
||||
int equipment_id = 0;
|
||||
short item_pos = 0;
|
||||
|
||||
if ((unsigned __int8)new_buf.get_short(&equipment_pos) != 1
|
||||
|| (unsigned __int8)new_buf.get_int(&equipment_id) != 1
|
||||
@@ -121,7 +119,7 @@ int Controller::hook_Dispatcher_ModItemAttr_dispatch_sig(Dispatcher_ModItemAttr*
|
||||
int result = (ret == PAK_ERROR) ? 1 : 0;
|
||||
return result;
|
||||
}
|
||||
return Controller::Get()->old_Dispatcher_ModItemAttr_dispatch_sig(dis_mod, user, pBuf);
|
||||
return Get()->old_Dispatcher_ModItemAttr_dispatch_sig(dis_mod, user, pBuf);
|
||||
}
|
||||
|
||||
int Controller::hook_PacketDispatcher_doDispatch(PacketDispatcher* a1, CUser* user, int packet_class, int packet_id, char* packet_src, int packet_len, int a7, int a8)
|
||||
@@ -172,7 +170,25 @@ int Controller::hook_PacketDispatcher_doDispatch(PacketDispatcher* a1, CUser* us
|
||||
}
|
||||
return result;
|
||||
}
|
||||
return Controller::Get()->old_PacketDispatcher_doDispatch(a1, user, packet_class, packet_id, packet_src, packet_len, a7, a8);
|
||||
return Get()->old_PacketDispatcher_doDispatch(a1, user, packet_class, packet_id, packet_src, packet_len, a7, a8);
|
||||
}
|
||||
|
||||
int Controller::hook_DisPatcher_MoveMap_dispatch_sig(void* a1, CUser* pUser, PacketBuf* pBuf)
|
||||
{
|
||||
ENUM_PACK_RET_TYPE ret = CDispatch::Get()->MoveMap_dispatch_sig(a1, pUser, pBuf);
|
||||
int result = (ret == PAK_ERROR) ? 1 : 0;
|
||||
return result;
|
||||
}
|
||||
|
||||
int Controller::hook_Inter_LoadEtc_dispatch_sig(void* a1, CUser* pUser, char* a3)
|
||||
{
|
||||
CDispatch::Get()->Inter_LoadEtc_dispatch_sig(a1, pUser, a3);
|
||||
return Get()->old_Inter_LoadEtc_dispatch_sig(a1, pUser, a3);
|
||||
}
|
||||
|
||||
int Controller::hook_DisPatcher_ReturnToSelectCharacter_dispatch_sig(void* a1, CUser* pUser, char* a3)
|
||||
{
|
||||
CDispatch::Get()->DisPatcher_ReturnToSelectCharacter_dispatch_sig(a1, pUser, a3);
|
||||
return Get()->old_DisPatcher_ReturnToSelectCharacter_dispatch_sig(a1, pUser, a3);
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user