Im trying to call tibia attack function by injecting dll, the problem is that the parameter (creature id) is not passed properly and i dont know why. Here is my code:
Code:
#include <windows.h>
DWORD WINAPI MyThread(LPVOID);
DWORD g_threadID;
HMODULE g_hModule;
void __cdecl CallFunction(int);
INT APIENTRY DllMain(HMODULE hDLL, DWORD Reason, LPVOID Reserved)
{
switch(Reason)
{
case DLL_PROCESS_ATTACH:
g_hModule = hDLL;
DisableThreadLibraryCalls(hDLL);
CreateThread(NULL, NULL, &MyThread, NULL, NULL, &g_threadID);
break;
case DLL_THREAD_ATTACH:
case DLL_PROCESS_DETACH:
case DLL_THREAD_DETACH:
break;
}
return TRUE;
}
DWORD WINAPI MyThread(LPVOID)
{
int creatureID = 0x40030E6B;
CallFunction(creatureID);
FreeLibraryAndExitThread(g_hModule, 0);
return 0;
}
void __cdecl CallFunction(int param1)
{
typedef void(__cdecl *pFunctionAddress)(int);
pFunctionAddress pMySecretFunction = (pFunctionAddress)(0x01310EC0);
pMySecretFunction(param1);
}