Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #pragma once
- #include "chat_logger.h"
- // THE DIRECTORY TO SAVE THE LOGS
- #define dir ".\\ChatLog"
- // THE MAPS TO SAVE CHAT
- int mapas[2] = { 3,21 };
- bool FolderExists(char* file)
- {
- DWORD returnvalue;
- returnvalue = GetFileAttributes(file);
- if(returnvalue == ((DWORD)-1))
- return false;
- else
- return true;
- }
- #pragma region Dumps the message
- void DumpChat()
- {
- if(!FolderExists(dir)) CreateDirectoryA(dir,NULL);
- SYSTEMTIME SystemTime;
- GetLocalTime(&SystemTime);
- char* map_offset = (char*)player_table + 0x80;
- int char_map = *(int*)map_offset;
- bool proceed = false;
- for(int i=0;i<2;i++)
- {
- if(mapas[i] == char_map)
- {
- proceed = true;
- break;
- }
- }
- if(proceed)
- {
- char buffer[1024];
- wsprintfA(buffer,"%s\\%d-%d.txt",dir,SystemTime.wDay,SystemTime.wMonth);
- FILE* f = fopen(buffer,"a+");
- wsprintfA(buffer,"(%d:%d:%d) -> %s (MAP: %d) \r\n",SystemTime.wHour,SystemTime.wMinute,SystemTime.wSecond,msg,char_map);
- fwrite(buffer,1,strlen(buffer),f);
- fclose(f);
- }
- }
- void DumpCommandChat()
- {
- if(strncmp(msg,"/TRADE>",7) == 0) // trade
- {
- if(!FolderExists(dir)) CreateDirectoryA(dir,NULL);
- SYSTEMTIME SystemTime;
- GetLocalTime(&SystemTime);
- char* userid = (char*)player_table + 0xA8;
- char* map_offset = (char*)player_table + 0x80;
- int char_map = *(int*)map_offset;
- bool proceed = false;
- for(int i=0;i<2;i++)
- {
- if(mapas[i] == char_map)
- {
- proceed = true;
- break;
- }
- }
- if(proceed)
- {
- char buffer[1024];
- wsprintfA(buffer,"%s\\%d-%d.txt",dir,SystemTime.wDay,SystemTime.wMonth);
- FILE* f = fopen(buffer,"a+");
- wsprintfA(buffer,"(%d:%d:%d) -> %s: %s (TRADE MESSAGE IN MAP %d)\r\n",SystemTime.wHour,SystemTime.wMinute,SystemTime.wSecond,userid,msg+7,char_map);
- fwrite(buffer,1,strlen(buffer),f);
- fclose(f);
- }
- }
- }
- #pragma endregion
- #pragma region Hook
- NAKED void Save()
- {
- __asm { mov _edi,EDI }
- __asm { mov player_table, ESI }
- memcpy(msg,_edi+0x34,100);
- if(msg[0] == '/')
- DumpCommandChat();
- else
- DumpChat();
- ret
- }
- NAKED EXPORT void Jump()
- {
- __asm
- {
- mov a, EDI
- mov b, ESI
- mov c, EDX
- }
- Save();
- __asm
- {
- MOV EDI,a
- MOV ESI,b
- MOV EDX,c
- ADD EDI,0x34
- MOV DWORD PTR DS:[ESI+0x6C78],EDX
- RETN
- }
- }
- #pragma endregion
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement