cgpartyleavehandler.cpp

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

CPP
126
字号
//////////////////////////////////////////////////////////////////////////////// Filename    : CGPartyLeaveHandler.cpp// Written By  : excel96// Description : //////////////////////////////////////////////////////////////////////////////#include "CGPartyLeave.h"#ifdef __GAME_SERVER__	#include "GamePlayer.h"	#include "Creature.h"	#include "Zone.h"	#include "Party.h"	#include "PCFinder.h"	#include "Gpackets/GCPartyLeave.h"	#include "Gpackets/GCPartyError.h"	#include "SystemAvailabilitiesManager.h"#endif////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////void CGPartyLeaveHandler::execute (CGPartyLeave* pPacket , Player* pPlayer)	 throw (ProtocolException , Error){	__BEGIN_TRY __BEGIN_DEBUG_EX#ifdef __GAME_SERVER__	Assert(pPacket != NULL);	Assert(pPlayer != NULL);	SYSTEM_ASSERT( SYSTEM_PARTY );	GamePlayer* pGamePlayer = dynamic_cast<GamePlayer*>(pPlayer);	string TargetName = pPacket->getTargetName();	Creature* pCreature = pGamePlayer->getCreature();	Assert(pCreature != NULL);	Zone* pZone = pCreature->getZone();	Assert(pZone != NULL);	int PartyID = pCreature->getPartyID();	if (PartyID == 0)	{		//filelog("PARTY_EXCEPTION.log", "CGPartyLeaveHandler::execute() : 颇萍ID啊 0涝聪促. [%s]", pCreature->toString().c_str());		throw ProtocolException();	}	GCPartyError gcPartyError;	// 鸥百 捞抚捞 NULL捞扼搁 胶胶肺 颇萍甫 栋唱绊磊 窍绰 巴捞促.	if (TargetName == "")	{		// 臂肺国 颇萍俊辑 昏力秦 霖促.		// 2疙牢 惑怕俊辑 促弗 窍唱甫 眠规沁促搁, 		// 捞 郴何俊辑 臂肺国 颇萍绰 昏力等促.		// 巢篮 颇萍盔甸狼 ID绰 0栏肺 官诧促.		//cout << "===== 颇萍甫 栋唱扁 傈狼 臂肺国 颇萍 概聪历 惑怕" << endl;		//cout << g_pGlobalPartyManager->toString() << endl;		//cout << "================================================" << endl;		g_pGlobalPartyManager->deletePartyMember(PartyID, pCreature);		//cout << "===== 颇萍甫 栋抄 饶狼 臂肺国 颇萍 概聪历 惑怕" << endl;		//cout << g_pGlobalPartyManager->toString() << endl;		//cout << "================================================" << endl;		// 肺拿 颇萍俊辑 昏力秦霖促.		LocalPartyManager* pLocalPartyManager = pZone->getLocalPartyManager();		Assert(pLocalPartyManager != NULL);		pLocalPartyManager->deletePartyMember(PartyID, pCreature);	}	// 捞抚捞 促福促搁 颇萍 郴俊 粮犁窍绰 促弗 颇萍盔阑 眠规窍绊磊 窍绰 巴捞促.	else 	{		//cout << "===== 眠规傈狼 臂肺国 颇萍 概聪历 惑怕" << endl;		//cout << g_pGlobalPartyManager->toString() << endl;		//cout << "=======================================" << endl;		// 臂肺国 颇萍俊辑 昏力秦霖促.		// 2疙牢 惑怕俊辑 促弗 窍唱甫 眠规沁促搁, 		// 捞 郴何俊辑 臂肺国 颇萍绰 昏力等促.		// 巢篮 颇萍盔甸狼 ID绰 0栏肺 官诧促.		g_pGlobalPartyManager->expelPartyMember(PartyID, pCreature, TargetName);		//cout << "===== 眠规饶狼 臂肺国 颇萍 概聪历 惑怕" << endl;		//cout << g_pGlobalPartyManager->toString() << endl;		//cout << "=======================================" << endl;		// 瞒牢 仇阑 肺拿 颇萍俊辑 昏力秦霖促.		__ENTER_CRITICAL_SECTION((*g_pPCFinder))		Creature* pTargetCreature = g_pPCFinder->getCreature_LOCKED(TargetName);		//Assert(pTargetCreature != NULL);		// NoSuch力芭. by sigi. 2002.5.2			if (pTargetCreature==NULL)		{			g_pPCFinder->unlock();			return;		}		Zone* pTargetZone = pTargetCreature->getZone();		Assert(pTargetZone != NULL);		LocalPartyManager* pLocalPartyManager = pTargetZone->getLocalPartyManager();		Assert(pLocalPartyManager != NULL);		//cout << "===== 眠规 傈狼 肺拿 颇萍 概聪历 惑怕" << endl;		//cout << pLocalPartyManager->toString() << endl;		//cout << "=======================================" << endl;		pLocalPartyManager->deletePartyMember(PartyID, pTargetCreature);		//cout << "肺拿 颇萍俊辑 眠规寸茄 敲饭捞绢甫 昏力沁嚼聪促." << endl;		__LEAVE_CRITICAL_SECTION((*g_pPCFinder))	}#endif	__END_DEBUG_EX __END_CATCH}

⌨️ 快捷键说明

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