sexta-feira, 7 de outubro de 2011

Adicionando novos comandos

Este código é para você adicionar comandos para o seu gunz usando a classe ZChatCmdManager.

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*); };

ZChat.h

#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]; };

ZChatCmdManager.cpp


#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

Aula Gunz todos os direitos reservados (C) - Webdesigner Aula Gunz 2009 - 2012
▲ Topo