sgquitguildokhandler.cpp

来自「dk1游戏的原代码文件,完整.编译系统redhat7.3,mysql 3.23 」· C++ 代码 · 共 184 行

CPP
184
字号
//----------------------------------------------------------------------//// Filename    : SGQuitGuildOKHandler.cpp// Written By  : Reiot// Description :////----------------------------------------------------------------------// include files#include "SGQuitGuildOK.h"#include "Properties.h"#ifdef __GAME_SERVER__	#include "Guild.h"	#include "GuildManager.h"	#include "PCFinder.h"	#include "Player.h"	#include "PlayerCreature.h"	#include "Zone.h"	#include "StringPool.h"	#include "Gpackets/GCModifyInformation.h"	#include "Gpackets/GCModifyGuildMemberInfo.h"	#include "Gpackets/GCSystemMessage.h"	#include "Gpackets/GCOtherModifyInfo.h"	#include <stdio.h>#endif//----------------------------------------------------------------------// // SGQuitGuildOKHandler::execute()// //----------------------------------------------------------------------void SGQuitGuildOKHandler::execute ( SGQuitGuildOK* pPacket )	 throw ( ProtocolException , Error ){	__BEGIN_TRY __BEGIN_DEBUG_EX#ifdef __GAME_SERVER__	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;	string memberName = pGuildMember->getName();	// 立加秦 乐促搁 皋矫瘤甫 焊辰促.	__ENTER_CRITICAL_SECTION((*g_pPCFinder))	Creature* pCreature = g_pPCFinder->getCreature_LOCKED( memberName );	if ( pCreature != NULL && pCreature->isPC() )	{		Player* pPlayer = pCreature->getPlayer();		Assert( pPlayer != NULL );		PlayerCreature* pPlayerCreature = dynamic_cast<PlayerCreature*>(pCreature);		Assert( pPlayerCreature != NULL );		if ( pGuild->getState() == Guild::GUILD_STATE_ACTIVE )		{			////////////////////////////////////////////////////////////////////////////////			// 劝悼 吝牢 辨靛 看促搁 Slayer, Vampire 辨靛 酒捞叼甫 啊涝 救茄 惑怕肺 官槽促.			////////////////////////////////////////////////////////////////////////////////			if ( pPlayerCreature->isSlayer() )			{				pPlayerCreature->setGuildID( 99 );		// 浇饭捞绢狼 啊涝救茄 惑怕狼 辨靛 ID				// 努扼捞攫飘肺 皋矫瘤甫 焊辰促.				GCModifyGuildMemberInfo gcModifyGuildMemberInfo;				gcModifyGuildMemberInfo.setGuildID( pGuild->getID() );				gcModifyGuildMemberInfo.setGuildName( pGuild->getName() );				gcModifyGuildMemberInfo.setGuildMemberRank( pGuildMember->getRank() );				pPlayer->sendPacket( &gcModifyGuildMemberInfo );			}			else if ( pPlayerCreature->isVampire() )			{				pPlayerCreature->setGuildID( 0 );		// 轨颇捞绢狼 啊涝救茄 惑怕狼 辨靛 ID				// 努扼捞攫飘肺 皋矫瘤甫 焊辰促.				GCModifyGuildMemberInfo gcModifyGuildMemberInfo;				gcModifyGuildMemberInfo.setGuildID( pGuild->getID() );				gcModifyGuildMemberInfo.setGuildName( pGuild->getName() );				gcModifyGuildMemberInfo.setGuildMemberRank( pGuildMember->getRank() );				pPlayer->sendPacket( &gcModifyGuildMemberInfo );			}			else if ( pPlayerCreature->isOusters() )			{				pPlayerCreature->setGuildID( 66 );		// 酒快胶磐令狼 啊涝救茄 惑怕狼 辨靛 ID				// 努扼捞攫飘肺 皋矫瘤甫 焊辰促.				GCModifyGuildMemberInfo gcModifyGuildMemberInfo;				gcModifyGuildMemberInfo.setGuildID( pGuild->getID() );				gcModifyGuildMemberInfo.setGuildName( pGuild->getName() );				gcModifyGuildMemberInfo.setGuildMemberRank( pGuildMember->getRank() );				pPlayer->sendPacket( &gcModifyGuildMemberInfo );			}		}		if ( pGuild->getState() == Guild::GUILD_STATE_WAIT && pGuildMember->getRank() == GuildMember::GUILDMEMBER_RANK_SUBMASTER )		{			///////////////////////////////////////////////////////////			// 措扁 吝牢 辨靛狼 辑宏 付胶磐扼搁 殿废厚甫 券阂茄促.			///////////////////////////////////////////////////////////			Gold_t Gold = pPlayerCreature->getGold();			Gold = min( Gold + (uint)RETURN_SLAYER_SUBMASTER_GOLD, (long unsigned int)2000000000 );			pPlayerCreature->setGoldEx( Gold );			GCModifyInformation gcModifyInformation;			gcModifyInformation.addLongData( MODIFY_GOLD, Gold );			pPlayer->sendPacket( &gcModifyInformation );		}		// 辨靛 呕硼 皋矫瘤甫 焊辰促.		GCSystemMessage gcSystemMessage;        if ( pGuild->getRace() == Guild::GUILD_RACE_SLAYER )            gcSystemMessage.setMessage( g_pStringPool->getString( STRID_QUIT_TEAM ) );        else if ( pGuild->getRace() == Guild::GUILD_RACE_VAMPIRE )            gcSystemMessage.setMessage( g_pStringPool->getString( STRID_QUIT_CLAN ) );        else if ( pGuild->getRace() == Guild::GUILD_RACE_OUSTERS )            gcSystemMessage.setMessage( g_pStringPool->getString( STRID_QUIT_CLAN ) );		pPlayer->sendPacket( &gcSystemMessage );		if ( pGuild->getState() == Guild::GUILD_STATE_ACTIVE )		{			// 林困俊 舅赴促.			Zone* pZone = pCreature->getZone();			Assert( pZone != NULL );			GCOtherModifyInfo gcOtherModifyInfo;			gcOtherModifyInfo.setObjectID( pCreature->getObjectID() );			gcOtherModifyInfo.addShortData( MODIFY_GUILDID, pPlayerCreature->getGuildID() );			pZone->broadcastPacket( pCreature->getX(), pCreature->getY(), &gcOtherModifyInfo, pCreature );		}	}	// 辨靛俊辑 昏力茄促.	pGuild->deleteMember( memberName );	// 辨靛 付胶磐俊霸 皋矫瘤甫 焊辰促.	pCreature = g_pPCFinder->getCreature_LOCKED( pGuild->getMaster() );	if ( pCreature != NULL && pCreature->isPC() )	{		Player* pPlayer = pCreature->getPlayer();		Assert( pPlayer != NULL );//		StringStream msg;//		msg << memberName << "丛捞 辨靛甫 呕硼窍看嚼聪促.";        char msg[100];        if ( pGuild->getRace() == Guild::GUILD_RACE_SLAYER )            sprintf( msg, g_pStringPool->c_str( STRID_QUIT_TEAM_2 ), memberName.c_str() );        else if ( pGuild->getRace() == Guild::GUILD_RACE_VAMPIRE )            sprintf( msg, g_pStringPool->c_str( STRID_QUIT_CLAN_2 ), memberName.c_str() );        else if ( pGuild->getRace() == Guild::GUILD_RACE_OUSTERS )            sprintf( msg, g_pStringPool->c_str( STRID_QUIT_CLAN_2 ), memberName.c_str() );		GCSystemMessage gcSystemMessage;		gcSystemMessage.setMessage( msg );		pPlayer->sendPacket( &gcSystemMessage );	}	else	{		// 鞍篮 辑滚俊 辨靛 付胶磐啊 绝绰 版快. how?	}	__LEAVE_CRITICAL_SECTION((*g_pPCFinder))#endif			__END_DEBUG_EX __END_CATCH}

⌨️ 快捷键说明

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