-
Автор темы
- #1
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
so yeah i show u guys how to hook scene end for ur ayy pasta, then if u want add fake angle chams urself
first of all define our scene end, open ur hooks.cpp
and define it here
Now it's time for init
Go to ur
b1g hard part, hook for scene end
Still hooks.cpp, paste code here
And above ur painttraverse
Now, search for ur IClientUnknown class in entities.h, it should looks like mine
Use one methond that u like, callvmt or GetVirtualFunction
time for callvmt func in MiscDefinitions.h
And materials.h
first of all define our scene end, open ur hooks.cpp
and define it here
Код:
typedef void(__fastcall* hSceneEnd)(void*, void*);
hSceneEnd oSceneEnd;
Go to ur
Код:
tvoid Hooks::Initialise()
Код:
VMTRenderView.Initialise((DWORD*)Interfaces::RenderView);
oSceneEnd = (hSceneEnd)VMTRenderView.HookMethod((DWORD)&Hooked_SceneEnd, 9);
Still hooks.cpp, paste code here
Код:
void __fastcall Hooked_SceneEnd(void* thisptr, void* edx);
Код:
void __fastcall Hooked_SceneEnd(void* thisptr, void* edx)
{
static auto scene_end_o = (hSceneEnd)Hooks::VMTRenderView.GetOriginalFunction(9);
scene_end_o(thisptr, edx);
}
Код:
class IClientUnknown
{
public:
ICollideable* GetCollideable()
{
return (ICollideable*)((DWORD)this + 0x318);
}
virtual IClientNetworkable* GetClientNetworkable() = 0;
virtual IClientRenderable* GetClientRenderable() = 0;
virtual IClientEntity* GetIClientEntity() = 0;
virtual IClientEntity* GetBaseEntity() = 0;
virtual IClientThinkable* GetClientThinkable() = 0;
void* GetClientRenderables()
{
return reinterpret_cast<void*>(this + 0x4);
}
IClientRenderable* GetClientRenderable2()
{
return reinterpret_cast<IClientRenderable*>(this + 0x4);
}
};
time for callvmt func in MiscDefinitions.h
Код:
template< typename Function > Function call_vfunc(PVOID Base, DWORD Index)
{
PDWORD* VTablePointer = (PDWORD*)Base;
PDWORD VTableFunctionBase = *VTablePointer;
DWORD dwAddress = VTableFunctionBase[Index];
return (Function)(dwAddress);
}
Код:
template <typename Fn> __forceinline Fn GetVirtualFunction(void* pClassBase, int nFunctionIndex)
{
return (Fn)((PDWORD)*(PDWORD*)pClassBase)[nFunctionIndex];
}