📄 cheatmsgparser.cpp
字号:
// CheatMsgParser.cpp: implementation of the CCheatMsgParser class.
//
//////////////////////////////////////////////////////////////////////
#include "stdafx.h"
#include "ChatManager.h"
#include "CheatMsgParser.h"
#include "mhnetwork.h"
#include "objectmanager.h"
#include "Movemanager.h"
#include "ItemManager.h"
#include "DebugDlg.h"
#include "GameIn.h"
#include "MAINGAME.h"
#include "StatsCalcManager.h"
#include "PeaceWarModeManager.h"
#include "ObjectStateManager.h"
#include "./Audio/MHAudioManager.h"
#include "FilteringTable.h"
#ifdef _GMTOOL_
#include "GMToolManager.h"
#endif
#include "mhfile.h"
#include "InventoryExDialog.h"
#include "WindowIdEnum.h"
#include "./Interface/cWindowManager.h"
#include "cDivideBox.h"
#include "QuickManager.h"
#include "UserInfoManager.h"
#include "MapChange.h"
#include "EventMapInfo.h"
#ifdef _GMTOOL_
#include "MHCamera.h"
#endif
//////////////////////////////////////////////////////////////////////
// Construction/Destruction
//////////////////////////////////////////////////////////////////////
GLOBALTON(CCheatMsgParser)
#ifdef _CHEATENABLE_
BOOL CheatFunc(char* cheat)
{
char code[256];
char buf[128];
sscanf(cheat,"%s",code);
strupr(code);
// //KES CHEAT!!!
/*
if(strcmp(code,"MAPNAME")==0)
{
if( strcmp( USERINFOMGR->GetUserID(), "mkteam2" ) != 0
&& strcmp( USERINFOMGR->GetUserID(), "MKTEAM2" ) != 0
&& strcmp( USERINFOMGR->GetUserID(), "andyamy" ) != 0 )///
return FALSE;
//MAPTYPE mapnum;
sscanf(cheat,"%s %s",code,buf);
WORD mapnum = GetMapNumForName( buf );
if( mapnum == 0 )
return TRUE;
MSG_NAME_DWORD2 msg;
msg.Category = MP_CHEAT;
msg.Protocol = MP_CHEAT_CHANGEMAP_SYN;
msg.dwObjectID = HEROID;
msg.dwData1 = (DWORD)mapnum;
msg.dwData2 = (DWORD)gChannelNum;
msg.Name[0] = 0;
NETWORK->Send( &msg, sizeof(msg) );
return TRUE;
}
//
*/
if( strcmp(code,"MONEYBEGETSMONEY") == 0 )
{
CHEATMGR->SetCheatEnable( TRUE );
CHATMGR->AddMsg( CTC_CHEAT_1, "01001010010101110100101010101010010010011" );
CHATMGR->AddMsg( CTC_CHEAT_1, "01001 [ Welcome To the Real World ] 11011" );
CHATMGR->AddMsg( CTC_CHEAT_1, "11001101010100111010100001010010101111011" );
return TRUE;
}
if( !CHEATMGR->IsCheatEnable() ) return FALSE;
if(strcmp(code,"CAMERAMODE")==0)
{
WORD onoff;
sscanf(cheat,"%s %d",code,&onoff);
if(onoff)
HERO->GetEngineObject()->Show();
else
HERO->GetEngineObject()->Hide();
MSG_DWORD2 msg;
msg.Category = MP_USERCONN;
msg.Protocol = MP_USERCONN_SETVISIBLE;
msg.dwObjectID = HEROID;
msg.dwData1 = HEROID;
msg.dwData2 = onoff;
NETWORK->Send(&msg,sizeof(msg));
return TRUE;
}
else if(strcmp(code,"MOVE")==0)
{
float x,z;
sscanf(cheat,"%s %f %f",code,&x,&z);
VECTOR3 pos;
pos.x = x;
pos.y = 0;
pos.z = z;
#ifdef _TESTCLIENT_
MOVEMGR->SetPosition(HERO,&pos);
#else
MOVE_POS msg;
msg.Category = MP_CHEAT;
msg.Protocol = MP_CHEAT_MOVE_SYN;
msg.dwObjectID = HEROID;
msg.dwMoverID = HEROID;
msg.cpos.Compress(&pos);
NETWORK->Send(&msg,sizeof(msg));
#endif
return TRUE;
}
else if(strcmp(code,"MAP")==0)
{
MAPTYPE mapnum;
sscanf(cheat,"%s %d",code,&mapnum);
MSG_NAME_DWORD2 msg;
msg.Category = MP_CHEAT;
msg.Protocol = MP_CHEAT_CHANGEMAP_SYN;
msg.dwObjectID = HEROID;
msg.dwData1 = (DWORD)mapnum;
msg.dwData2 = (DWORD)gChannelNum;
msg.Name[0] = 0;
NETWORK->Send( &msg, sizeof(msg) );
return TRUE;
}
else if(strcmp(code,"LIFE")==0)
{
WORD life;
sscanf(cheat,"%s %d",code,&life);
#ifdef _TESTCLIENT_
// STATSMGR->Set_Life(HERO,life);
#else
MSG_WORD msg;
msg.Category = MP_CHEAT;
msg.Protocol = MP_CHEAT_LIFE_SYN;
msg.dwObjectID = HEROID;
msg.wData = life;
NETWORK->Send(&msg,sizeof(msg));
#endif
return TRUE;
}
else if(strcmp(code,"RELOAD")==0)
{
MSGBASE msg;
msg.Category = MP_CHEAT;
msg.Protocol = MP_CHEAT_RELOADING;
msg.dwObjectID = HEROID;
NETWORK->Send(&msg,sizeof(msg));
return TRUE;
}
else if(strcmp(code,"MP")==0)
{
WORD mp;
sscanf(cheat,"%s %d",code,&mp);
MSG_WORD msg;
msg.Category = MP_CHEAT;
msg.Protocol = MP_CHEAT_MP_SYN;
msg.dwObjectID = HEROID;
msg.wData = mp;
NETWORK->Send(&msg,sizeof(msg));
return TRUE;
}
else if(strcmp(code,"ITEM")==0)
{
WORD item;
sscanf(cheat,"%s %d",code,&item);
MSG_WORD2 msg;
msg.Category = MP_CHEAT;
msg.Protocol = MP_CHEAT_ITEM_SYN;
msg.dwObjectID = HEROID;
msg.wData1 = item;
msg.wData2 = 1;
NETWORK->Send(&msg,sizeof(msg));
return TRUE;
}
else if(strcmp(code, "DS") == 0)
{
CDebugDlg* pDbg = GAMEIN->GetDebugDlg();
pDbg->SetActive(TRUE);
return TRUE;
}
else if(strcmp(code, "DH") == 0)
{
CDebugDlg* pDbg = GAMEIN->GetDebugDlg();
pDbg->SetActive(FALSE);
return TRUE;
}
else if(strcmp(code, "MANA") == 0)
{
WORD mp;
sscanf(cheat,"%s %d",code,&mp);
MSG_WORD msg;
msg.Category = MP_CHEAT;
msg.Protocol = MP_CHEAT_MANA_SYN;
msg.dwObjectID = HEROID;
msg.wData = mp;
NETWORK->Send(&msg,sizeof(msg));
return TRUE;
}
/*
else if(strcmp(code, "MUNPAFIELD_REQ") == 0)
{
DWORD munpaid;
sscanf(cheat,"%s %d",code,&munpaid);
MSG_DWORD msg;
msg.Category = MP_BATTLE;
msg.Protocol = MP_BATTLE_MUNPAFIELD_REQUEST_SYN;
msg.dwObjectID = HEROID;
msg.dwData = munpaid;
NETWORK->Send(&msg,sizeof(msg));
return TRUE;
}
*/
else if(strcmp(code, "SUNG") == 0)
{
WORD mugong;
sscanf(cheat,"%s %d",code,&mugong);
MSG_WORD2 msg;
msg.Category = MP_CHEAT;
msg.Protocol = MP_CHEAT_MUGONGSUNG_SYN;
msg.dwObjectID = HEROID;
msg.wData1 = mugong;
msg.wData2 = 7;
NETWORK->Send(&msg,sizeof(msg));
return TRUE;
}
else if(strcmp(code, "MONEY") == 0)
{
DWORD money;
sscanf(cheat,"%s %d",code,&money);
MSG_DWORD msg;
msg.Category = MP_CHEAT;
msg.Protocol = MP_CHEAT_MONEY_SYN;
msg.dwObjectID = HEROID;
msg.dwData = money;
NETWORK->Send(&msg,sizeof(msg));
return TRUE;
}
else if(strcmp(code, "CLEARSTATE") == 0)
{
OBJECTSTATEMGR->EndObjectState(HERO, HERO->GetState());
return TRUE;
}
else if(strcmp(code, "VOLUME") == 0)
{
float m,s,b;
sscanf(cheat,"%s %f %f %f",code,&m,&s,&b);
AUDIOMGR->SetMasterVolume(m);
AUDIOMGR->SetSoundVolume(s);
AUDIOMGR->SetBGMVolume(b);
return TRUE;
}
//murim-net test
else if(strcmp(code, "MURIMNET") == 0)
{
MAINGAME->SetGameState( eGAMESTATE_MURIMNET );
return TRUE;
}
else if(strcmp(code, "LEVELUP") == 0)
{
WORD val = 1;
sscanf(cheat,"%s %d",code,&val);
if(val <= HERO->GetLevel())
val = HERO->GetLevel()+1;
MSG_WORD msg;
msg.Category = MP_CHEAT;
msg.Protocol = MP_CHEAT_LEVELUP_SYN;
msg.dwObjectID = HEROID;
msg.wData = val;
NETWORK->Send(&msg,sizeof(msg));
return TRUE;
}
else if(strcmp(code, "RMS") == 0)
{
WORD val = 0;
sscanf(cheat,"%s %d",code,&val);
if(val == 0)
return TRUE;
if((val < 12) || (val > 400))
val = 12;
MSG_WORD msg;
msg.Category = MP_CHEAT;
msg.Protocol = MP_CHEAT_GENGOL_SYN;
msg.dwObjectID = HEROID;
msg.wData = val;
NETWORK->Send(&msg,sizeof(msg));
return TRUE;
}
else if(strcmp(code, "ALS") == 0)
{
WORD val = 0;
sscanf(cheat,"%s %d",code,&val);
if(val == 0)
return TRUE;
if((val < 12) || (val > 400))
val = 12;
MSG_WORD msg;
msg.Category = MP_CHEAT;
msg.Protocol = MP_CHEAT_MINCHUB_SYN;
msg.dwObjectID = HEROID;
msg.wData = val;
NETWORK->Send(&msg,sizeof(msg));
return TRUE;
}
else if(strcmp(code, "CP") == 0)
{
WORD val = 0;
sscanf(cheat,"%s %d",code,&val);
if(val == 0)
return TRUE;
if((val < 12) || (val > 400))
val = 12;
MSG_WORD msg;
msg.Category = MP_CHEAT;
msg.Protocol = MP_CHEAT_CHERYUK_SYN;
msg.dwObjectID = HEROID;
msg.wData = val;
NETWORK->Send(&msg,sizeof(msg));
return TRUE;
}
else if(strcmp(code, "TLA") == 0)
{
WORD val = 0;
sscanf(cheat,"%s %d",code,&val);
if(val == 0)
return TRUE;
if((val < 12) || (val > 400))
val = 12;
MSG_WORD msg;
msg.Category = MP_CHEAT;
msg.Protocol = MP_CHEATE_SIMMEK_SYN;
msg.dwObjectID = HEROID;
msg.wData = val;
NETWORK->Send(&msg,sizeof(msg));
return TRUE;
}
else if(strcmp(code, "ABIL") == 0)
{
DWORD abilexp;
sscanf(cheat,"%s %d",code,&abilexp);
MSG_DWORD msg;
msg.Category = MP_CHEAT;
msg.Protocol = MP_CHEAT_ABILITYEXP_SYN;
msg.dwObjectID = HEROID;
msg.dwData = abilexp;
NETWORK->Send(&msg,sizeof(msg));
return TRUE;
}
else if( strcmp(code, "MOVETO") == 0 )
{
/*
DWORD dwID;
sscanf(cheat,"%s %d", code, &dwID);
MOVE_POS msg;
msg.Category = MP_CHEAT;
msg.Protocol = MP_CHEAT_MOVETOCHAR_SYN;
msg.dwObjectID = HEROID;
msg.dwMoverID = dwID; //target
// msg.cpos.Compress(&pos);
NETWORK->Send(&msg,sizeof(msg));
return TRUE;
*/
sscanf(cheat, "%s %s", code, buf);
//buf-A
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -