cgstashlisthandler.cpp

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

CPP
100
字号
//////////////////////////////////////////////////////////////////////////////// Filename    : CGStashListHandler.cpp// Written By  : 辫己刮// Description : //////////////////////////////////////////////////////////////////////////////#include "CGStashList.h"#ifdef __GAME_SERVER__	#include "GamePlayer.h"	#include "Slayer.h"	#include "Vampire.h"	#include "Ousters.h"	#include "Stash.h"	#include "Gpackets/GCStashList.h"#endifvoid CGStashListHandler::execute(CGStashList* pPacket , Player* pPlayer)	 throw (ProtocolException , Error){	__BEGIN_TRY __BEGIN_DEBUG_EX	__BEGIN_DEBUG#ifdef __GAME_SERVER__	Assert(pPacket != NULL);	Assert(pPlayer != NULL);	ObjectID_t  PlayerOID   = pPacket->getObjectID();	GamePlayer* pGamePlayer = dynamic_cast<GamePlayer*>(pPlayer);	Creature*   pPC         = pGamePlayer->getCreature();	// 菩哦俊辑狼 object id客 PC狼 object id啊 促福搁 救 登瘤.	if (PlayerOID != pPC->getObjectID()) return;	if (pPC->isSlayer())	{		Slayer*     pSlayer = dynamic_cast<Slayer*>(pPC);		Stash*      pStash  = pSlayer->getStash();		Item*       pItem   = NULL;		GCStashList pkt;		pkt.setStashNum(pSlayer->getStashNum());		for (BYTE r=0; r<pSlayer->getStashNum(); r++)		{			for (BYTE i=0; i<STASH_INDEX_MAX; i++)			{				pItem = pStash->get(r, i);				if (pItem != NULL) pkt.setStashItem(r, i, pItem);			}		}		pkt.setStashGold(pSlayer->getStashGold());		pPlayer->sendPacket(&pkt);	}	else if (pPC->isVampire())	{		Vampire*    pVampire = dynamic_cast<Vampire*>(pPC);		Stash*      pStash = pVampire->getStash();		Item*       pItem  = NULL;		GCStashList pkt;		pkt.setStashNum(pVampire->getStashNum());		for (BYTE r=0; r<pVampire->getStashNum(); r++)		{			for (BYTE i=0; i<STASH_INDEX_MAX; i++)			{				pItem = pStash->get(r, i);				if (pItem != NULL) pkt.setStashItem(r, i, pItem);			}		}		pkt.setStashGold(pVampire->getStashGold());		pPlayer->sendPacket(&pkt);	}	else if (pPC->isOusters())	{		Ousters*    pOusters = dynamic_cast<Ousters*>(pPC);		Stash*      pStash = pOusters->getStash();		Item*       pItem  = NULL;		GCStashList pkt;		pkt.setStashNum(pOusters->getStashNum());		for (BYTE r=0; r<pOusters->getStashNum(); r++)		{			for (BYTE i=0; i<STASH_INDEX_MAX; i++)			{				pItem = pStash->get(r, i);				if (pItem != NULL) pkt.setStashItem(r, i, pItem);			}		}		pkt.setStashGold(pOusters->getStashGold());		pPlayer->sendPacket(&pkt);	}#endif	__END_DEBUG	__END_DEBUG_EX __END_CATCH}

⌨️ 快捷键说明

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