diff --git a/extensions/sdktools/hooks.cpp b/extensions/sdktools/hooks.cpp index 79094702b3..706b478d69 100644 --- a/extensions/sdktools/hooks.cpp +++ b/extensions/sdktools/hooks.cpp @@ -234,7 +234,7 @@ void CHookManager::OnClientConnected(int client) } } - int hookid = SH_ADD_VPHOOK(IClientMessageHandler, ProcessVoiceData, (IClientMessageHandler *)((intptr_t)(pClient) + 4), SH_MEMBER(this, &CHookManager::ProcessVoiceData), true); + int hookid = SH_ADD_VPHOOK(IClientMessageHandler, ProcessVoiceData, (IClientMessageHandler *)((intptr_t)(pClient) + sizeof(void *)), SH_MEMBER(this, &CHookManager::ProcessVoiceData), true); hook.SetHookID(hookid); netProcessVoiceData.push_back(new CVTableHook(hook)); } @@ -584,7 +584,7 @@ bool CHookManager::SendFile(const char *filename, unsigned int transferID) #if !defined CLIENTVOICE_HOOK_SUPPORT bool CHookManager::ProcessVoiceData(CLC_VoiceData *msg) { - IClient *pClient = (IClient *)((intptr_t)(META_IFACEPTR(IClient)) - 4); + IClient *pClient = (IClient *)((intptr_t)(META_IFACEPTR(IClient)) - sizeof(void *)); if (pClient == NULL) { return true; diff --git a/extensions/sdktools/vhelpers.cpp b/extensions/sdktools/vhelpers.cpp index 7d5c5545d0..0dfbc08c8a 100644 --- a/extensions/sdktools/vhelpers.cpp +++ b/extensions/sdktools/vhelpers.cpp @@ -753,8 +753,8 @@ CEntityFactoryDictionary *GetEntityFactoryDictionary() int32_t funcOffset = *(int32_t *)((intptr_t)addr + offset); // Get real address of function - // Address of signature + offset of relative offset + sizeof(int32_t) offset + relative offset - addr = (void *)((intptr_t)addr + offset + 4 + funcOffset); + // Address of signature + offset of relative offset + pointer size + relative offset + addr = (void *)((intptr_t)addr + offset + sizeof(void *) + funcOffset); } pWrapper = g_pBinTools->CreateCall(addr, CallConv_Cdecl, &retData, NULL, 0);