cgverifytimehandler.cpp

来自「天之炼狱1服务器端源文件游戏服务端不完整」· C++ 代码 · 共 116 行

CPP
116
字号
//////////////////////////////////////////////////////////////////////////////// Filename    : CGVerifyTimeHandler.cc// Written By  : elca@ewestsoft.com// Description ://////////////////////////////////////////////////////////////////////////////#include "CGVerifyTime.h"#ifdef __GAME_SERVER__	#include "GamePlayer.h"	#include "Assert.h"	#include "Slayer.h"	#include "Vampire.h"	#include "Ousters.h"	#include "DB.h"	#include "Properties.h"#endif////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////void CGVerifyTimeHandler::execute (CGVerifyTime* pPacket , Player* pPlayer)	 throw (ProtocolException , Error){	__BEGIN_TRY __BEGIN_DEBUG_EX		#ifdef __GAME_SERVER__	Assert(pPacket != NULL);	Assert(pPlayer != NULL);	GamePlayer* pGamePlayer = dynamic_cast<GamePlayer*>(pPlayer);	if (!(pGamePlayer->verifySpeed(pPacket))) 	{		saveSpeedHackPlayer( pPlayer );		throw DisconnectException("胶乔靛琴 迭! 吧妨结!!");	}#endif			__END_DEBUG_EX __END_CATCH}////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////void CGVerifyTimeHandler::saveSpeedHackPlayer( Player* pPlayer ){	__BEGIN_TRY#ifdef __GAME_SERVER__	GamePlayer* pGamePlayer = dynamic_cast<GamePlayer*>(pPlayer);	Creature* pCreature = pGamePlayer->getCreature();	string ID = pPlayer->getID();	string IP = pPlayer->getSocket()->getHost();	string Name = "";	if ( pCreature != NULL )	{		if ( pCreature->isSlayer() )		{			Slayer* pSlayer = dynamic_cast<Slayer*>(pCreature);			Name = "Slayer:" + pSlayer->getName();		}		else if ( pCreature->isVampire() )		{			Vampire* pVampire = dynamic_cast<Vampire*>(pCreature);			Name = "Vampire:" + pVampire->getName();		}		else if ( pCreature->isOusters() )		{			Ousters* pOusters = dynamic_cast<Ousters*>(pCreature);			Name = "Ousters:" + pOusters->getName();		}	}	filelog("SpeedHack.log", "ID[%s], Name[%s], IP[%s]", ID.c_str(), Name.c_str(), IP.c_str());	/////////////////////////////////////////////////////////	// 叼厚俊 包访 沥焊甫 持绰促.	/////////////////////////////////////////////////////////	Statement* pStmt = NULL;	try 	{		static WorldID_t 		WorldID 		= g_pConfig->getPropertyInt( "WorldID" );		static ServerGroupID_t 	ServerGroupID 	= g_pConfig->getPropertyInt( "ServerID" );		BEGIN_DB		{			pStmt = g_pDatabaseManager->getDistConnection("PLAYER_DB")->createStatement();			pStmt->executeQuery( "UPDATE SpeedHackPlayer SET IP = '%s', NAME = '%s', WorldID = %d, ServerGroupID = %d, Date = now(), Count = Count + 1 WHERE PlayerID = '%s'",								IP.c_str(), Name.c_str(), (int)WorldID, (int)ServerGroupID, ID.c_str() );			if ( pStmt->getAffectedRowCount() == 0 )			{				pStmt->executeQuery( "INSERT IGNORE INTO SpeedHackPlayer( PlayerID, IP, Name, WorldID, ServerGroupID, Date, Count ) VALUES ( '%s', '%s', '%s', %d, %d, now(), 1 )",								ID.c_str(), IP.c_str(), Name.c_str(), (int)WorldID, (int)ServerGroupID );			}			SAFE_DELETE( pStmt );		}		END_DB(pStmt)	}	catch ( Throwable& t )	{		filelog("SpeedHackLogError.log", "%s", t.toString().c_str() );	}#endif	__END_CATCH}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?