Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include "luai.h"
- #include <windows.h>
- #include "detours.h"
- #pragma comment(lib, "detours.lib")
- DWORD WINAPI MyThread(LPVOID);
- DWORD g_threadID;
- HMODULE g_hModule;
- HANDLE Console = GetStdHandle(STD_INPUT_HANDLE);
- luai luaObj;
- int (__stdcall* PauseGame)();
- int (__stdcall* ResumeGame)();
- static int MyPauseGame()
- {
- luaObj.PrintConsole("Game paused");
- return PauseGame();
- }
- static int MyPauseGame2(lua_State *L) { MyPauseGame(); return 0; }
- static int MyResumeGame()
- {
- luaObj.PrintConsole("Game resumed");
- ResumeGame();
- return 0;
- }
- static int MyResumeGame2(lua_State *L) { MyResumeGame(); return 0; }
- INT APIENTRY DllMain(HMODULE hDLL, DWORD Reason, LPVOID Reserved)
- {
- switch(Reason)
- {
- case DLL_PROCESS_ATTACH:
- PauseGame = (int (__stdcall*)())DetourFunction((PBYTE)0x0100341C, (PBYTE)MyPauseGame);
- ResumeGame = (int (__stdcall*)())DetourFunction((PBYTE)0x0100344C, (PBYTE)MyResumeGame);
- g_hModule = hDLL;
- DisableThreadLibraryCalls(hDLL);
- CreateThread(NULL, NULL, &MyThread, NULL, NULL, &g_threadID);
- luaObj.CreateConsole();
- luaObj.LoadLua();
- lua_register(luai::L,"PauseGame",MyPauseGame2);
- lua_register(luai::L,"PauseGame",MyResumeGame2);
- break;
- case DLL_THREAD_ATTACH:
- case DLL_PROCESS_DETACH:
- //DetourRemove((PBYTE)0x009C630C, (PBYTE)a_chatclear);
- case DLL_THREAD_DETACH:
- break;
- }
- return TRUE;
- }
- DWORD WINAPI MyThread(LPVOID)
- {
- while(true)
- {
- if(luaObj.isLoaded)
- {
- luaObj.RunLuaScript("Thread()");
- }
- }
- FreeLibraryAndExitThread(g_hModule, 0);
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement