Isto é para programadores só, eu não vou responder a perguntas newbie.
ZChatCmdManager.h
#pragma once class ZChatCmdManager { public: void ZChatCmdManager::AddCommand(int, char*, void (__cdecl *)( char *, int, char ** ), ULONG, int, int, bool, char*, char*); };
#pragma once #include "ZChatCmdManager.h" class ZChat // 0x1c7c { public: void *vTable; ZChatCmdManager m_CmdManager; // +0x4(0x1c) ULONG m_nLastInputTime; // +0x20(0x4) int m_nSameMsgCount; // +0x24(0x4) char m_nLastInputMsg[512]; // +0x28(0x200) ULONG m_nLastAbuseTime; // +0x228(0x4) int m_nAbuseCounter; // +0x22c(0x4) char m_szWhisperLastSender[64]; // +0x230(0x40) char Unknow[6668]; };
#include "zchatcmdmanager.h" void ZChatCmdManager::AddCommand( int nID, char *szName, void(__cdecl *fnProc)( char *, int, char ** ), ULONG flag, int nMinArgs, int nMaxArgs, bool bRepeatEnabled, char *szUsage, char *szHelp ) { __asm { push szHelp push szUsage push bRepeatEnabled push nMaxArgs push nMinArgs push flag push fnProc push szName push nID mov ecx, this mov eax, 0x431170 //! 08 July Address call eax } }
Agora vou postar o código para você usar esta função:#define ZGetGameInterface() ((DWORD(*)())0x4AD790)() void ChatCmd_Close_Game( char *line, int argc, char *argv[] ) { ExitProcess(0); } void ChatCmd_ForADMandGMonly( char *line, int argc, char *argv[] ) { ExitProcess(0); } void ZComandos() { //! You will need to have ZGetGameInterface function while( !ZGetGameInterface() ) Sleep(50); ZChat *m_pChat = (ZChat*)(ZGetGameInterface() + 0x380); m_pChat->m_CmdManager.AddCommand( 0, "fechar_jogo", ChatCmd_Close_Game, 0xF, -1, -1, 1, "/close_game", (char*)0x62286C ); //! For ADM and GM Only, because flag is 0x80 m_pChat->m_CmdManager.AddCommand( 0, "teste", ChatCmd_ForADMandGMonly, 0x80, -1, -1, 1, "/test", (char*)0x62286C ); }
Como eu disse, isso é para programadores, e não para novatos... Por exemplo, se você digitar /fechar_jogo o jogo se fechará. E se vc digitar /teste apenas os GMs e ADMs conseguirão fazer o que vc irá programar....
Créditos:
Blasper - Por postar
Espanish - Por publicar o código
0 comentários:
Enviar um comentário