actioncancelquest.cpp

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

CPP
122
字号
////////////////////////////////////////////////////////////////////////////////// Filename    : ActionCancelQuest.cpp// Written By  : // Description :////////////////////////////////////////////////////////////////////////////////#include "ActionCancelQuest.h"#include "Creature.h"#include "PlayerCreature.h"#include "GamePlayer.h"#include "NPC.h"#include "VariableManager.h"#include "mission/QuestInfoManager.h"#include "mission/QuestManager.h"#include "mission/MonsterKillQuestInfo.h"#include "Gpackets/GCNPCResponse.h"#include "Gpackets/GCNPCAsk.h"////////////////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////////////////void ActionCancelQuest::read (PropertyBuffer & propertyBuffer)    throw (Error){    __BEGIN_TRY	try 	{		m_ScriptID = propertyBuffer.getPropertyInt("ScriptID");		m_CounterScriptID = propertyBuffer.getPropertyInt("CounterScriptID");	} 	catch (NoSuchElementException & nsee)	{		throw Error(nsee.toString());	}	    __END_CATCH}////////////////////////////////////////////////////////////////////////////////// 咀记阑 角青茄促.////////////////////////////////////////////////////////////////////////////////void ActionCancelQuest::execute (Creature * pCreature1 , Creature * pCreature2) 	throw (Error){	__BEGIN_TRY	Assert(pCreature2 != NULL);	Assert(pCreature2->isPC());	PlayerCreature* pPC = dynamic_cast<PlayerCreature*>(pCreature2);	Assert( pPC != NULL );	Player* pPlayer = pCreature2->getPlayer();	Assert( pPlayer != NULL );	GCNPCResponse gcNPCResponse;	gcNPCResponse.setCode( NPC_RESPONSE_QUEST );	QuestManager* pQM = pPC->getQuestManager();	QuestMessage result;	if ( pQM != NULL )	{		result = pQM->cancelQuest();	}	else	{		result = CANCEL_NOT_IN_QUEST;	}	gcNPCResponse.setParameter( (uint)result );	pPlayer->sendPacket( &gcNPCResponse );	if ( pCreature1 != NULL && pCreature1->isNPC() )	{		ScriptID_t	sID;		if ( result == CANCEL_SUCCESS )			sID = m_ScriptID;		else			sID = m_CounterScriptID;		if ( sID != 0 )		{			GCNPCAsk gcNPCAsk;			gcNPCAsk.setObjectID(pCreature1->getObjectID());			gcNPCAsk.setScriptID( sID );			gcNPCAsk.setNPCID( dynamic_cast<NPC*>(pCreature1)->getNPCID() );			pPlayer->sendPacket( &gcNPCAsk );		}		else		{			gcNPCResponse.setCode( NPC_RESPONSE_QUIT_DIALOGUE );			pPlayer->sendPacket( &gcNPCResponse );		}	}	__END_CATCH}////////////////////////////////////////////////////////////////////////////////// get debug string////////////////////////////////////////////////////////////////////////////////string ActionCancelQuest::toString () const 	throw (){	__BEGIN_TRY	StringStream msg;	msg << "ActionCancelQuest("	    << ")";	return msg.toString();	__END_CATCH}

⌨️ 快捷键说明

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