⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 gsexpelguildmemberhandler.cpp

📁 dk1游戏的原代码文件,完整.编译系统redhat7.3,mysql 3.23 ,luascript v4.0 support
💻 CPP
字号:
//----------------------------------------------------------------------//// Filename    : GSExpelGuildMemberHandler.cpp// Written By  : Reiot// Description :////----------------------------------------------------------------------// include files#include "GSExpelGuildMember.h"#include "Assert.h"#ifdef __SHARED_SERVER__		#include "Guild.h"	#include "GuildManager.h"	#include "GameServerManager.h"	#include "Properties.h"	#include "DB.h"	#include "Spackets/SGExpelGuildMemberOK.h"	#include "Spackets/SGDeleteGuildOK.h"#endif//----------------------------------------------------------------------// // GSExpelGuildMemberHandler::execute()// //----------------------------------------------------------------------void GSExpelGuildMemberHandler::execute ( GSExpelGuildMember* pPacket, Player* pPlayer )	 throw ( ProtocolException , Error ){	__BEGIN_TRY __BEGIN_DEBUG_EX#ifdef __SHARED_SERVER__	//cout << "GSExpelGuildMember received" << endl;	Assert( pPacket != NULL );	// 敲饭捞绢啊 加茄 辨靛甫 啊廉柯促.	Guild* pGuild = g_pGuildManager->getGuild( pPacket->getGuildID() );	//try { Assert( pGuild != NULL ); } catch ( Throwable& ) { return; }	if (pGuild==NULL) return;	// 敲饭捞绢啊 辨靛狼 糕滚牢瘤 犬牢茄促.	GuildMember* pGuildMember = pGuild->getMember( pPacket->getName() );	//try { Assert( pGuildMember != NULL ); } catch ( Throwable& ) { return; }	if (pGuildMember==NULL) return;	// 辨靛 呕硼 肺弊甫 巢变促.	filelog( "GuildExit.log", "GuildID: %d, GuildName: %s, Expel: %s, By: %s", pGuild->getID(), pGuild->getName().c_str(), pPacket->getName().c_str(), pPacket->getSender().c_str() );	///////////////////////////////////////////////////////////////////	//  DB俊 Slayer, Vampire, Ousters 抛捞喉狼 GuildID 甫 官槽促.	///////////////////////////////////////////////////////////////////	Statement* pStmt = NULL;	BEGIN_DB	{		pStmt = g_pDatabaseManager->getConnection( "DARKEDEN" )->createStatement();		if ( pGuild->getRace() == Guild::GUILD_RACE_SLAYER )		{			pStmt->executeQuery( "UPDATE Slayer SET GuildID = 99 WHERE Name = '%s'", pGuildMember->getName().c_str() );		}		else if ( pGuild->getRace() == Guild::GUILD_RACE_VAMPIRE )		{			pStmt->executeQuery( "UPDATE Vampire SET GuildID = 0 WHERE Name = '%s'", pGuildMember->getName().c_str() );		}		else if ( pGuild->getRace() == Guild::GUILD_RACE_OUSTERS )		{			pStmt->executeQuery( "UPDATE Ousters SET GuildID = 66 WHERE Name = '%s'", pGuildMember->getName().c_str() );		}		SAFE_DELETE( pStmt );	}	END_DB(pStmt)	// Guild Member 甫 expire 矫挪促.	pGuildMember->expire();	// Guild 俊辑 昏力茄促.	pGuild->deleteMember( pGuildMember->getName() );	// 霸烙 辑滚肺 焊尘 菩哦阑 父电促.	SGExpelGuildMemberOK sgExpelGuildMemberOK;	sgExpelGuildMemberOK.setGuildID( pGuild->getID() );	sgExpelGuildMemberOK.setName( pPacket->getName() );	sgExpelGuildMemberOK.setSender( pPacket->getSender() );	// 霸烙 辑滚肺 菩哦阑 焊辰促.	g_pGameServerManager->broadcast( &sgExpelGuildMemberOK );	// 辨靛 牢盔捞 5疙 固父捞 瞪 版快 辨靛甫 昏力茄促.	if ( pGuild->getState() == Guild::GUILD_STATE_ACTIVE && pGuild->getActiveMemberCount() < 5 )	{		// 辨靛 昏力 肺弊甫 巢变促.		filelog( "GuildBroken.log", "GuildID: %d, GuildName: %s, MemberCount: %d, Expel: %s", pGuild->getID(), pGuild->getName().c_str(), pGuild->getActiveMemberCount(), pPacket->getName().c_str() );		// 辨靛 糕滚 expire and delete		HashMapGuildMember& Members = pGuild->getMembers();		HashMapGuildMemberItor itr = Members.begin();				BEGIN_DB		{			pStmt = g_pDatabaseManager->getConnection( "DARKEDEN" )->createStatement();			for ( ; itr != Members.end(); itr++ )			{				GuildMember* pGuildMember = itr->second;				///////////////////////////////////////////////////////////////////				//  DB俊 Slayer, Vampire, Ousters 抛捞喉狼 GuildID 甫 官槽促.				///////////////////////////////////////////////////////////////////				if ( pGuild->getRace() == Guild::GUILD_RACE_SLAYER )				{					pStmt->executeQuery( "UPDATE Slayer SET GuildID = 99 WHERE Name = '%s'", pGuildMember->getName().c_str() );				}				else if ( pGuild->getRace() == Guild::GUILD_RACE_VAMPIRE )				{					pStmt->executeQuery( "UPDATE Vampire SET GuildID = 0 WHERE Name = '%s'", pGuildMember->getName().c_str() );				}				else if ( pGuild->getRace() == Guild::GUILD_RACE_OUSTERS )				{					pStmt->executeQuery( "UPDATE Ousters SET GuildID = 66 WHERE Name = '%s'", pGuildMember->getName().c_str() );				}				// 辨靛 糕滚甫 expire 矫挪促.				pGuildMember->expire();				// 肯傈洒 DB俊辑 力芭茄促.				//pGuildMember->destroy();				// 辨靛 糕滚甫 昏力				SAFE_DELETE( pGuildMember );			}			SAFE_DELETE( pStmt );		}		END_DB(pStmt)		Members.clear();		// 辨靛甫 昏力茄促		pGuild->setState( Guild::GUILD_STATE_BROKEN );		pGuild->save();		SAFE_DELETE( pGuild );		g_pGuildManager->deleteGuild( pPacket->getGuildID() );		// 辨靛甫 昏力窍档废 菩哦阑 焊辰促.		SGDeleteGuildOK sgDeleteGuildOK;		sgDeleteGuildOK.setGuildID( pPacket->getGuildID() );		g_pGameServerManager->broadcast( &sgDeleteGuildOK );	}#endif			__END_DEBUG_EX __END_CATCH}

⌨️ 快捷键说明

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