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

📄 questmanager.h

📁 天之炼狱1服务器端源文件游戏服务端不完整
💻 H
字号:
#ifndef __QUEST_MANAGER_H__#define __QUEST_MANAGER_H__#include "Types.h"#include "Exception.h"#include "QuestInfo.h"#include "QuestStatus.h"#include "Gpackets/GCNPCResponse.h"#include <hash_map>const DWORD PET_QUEST_ID = 0xffff;class QuestStatus;class MonsterKillQuestStatus;class PlayerCreature;class EventQuestAdvanceManager;class Monster;class Item;class NPC;class QuestManager{public:	QuestManager(PlayerCreature* pOwner);	~QuestManager() throw(Error);	void				load() throw(Error);	bool				canStartMoreQuest() const { return m_Quests.size() < MAX_QUEST_NUM; }	bool				hasQuest( QuestID_t qID ) const { return m_Quests.find(qID) != m_Quests.end(); }	void				addQuest( QuestStatus* pQS ) throw(Error);	void				questRewarded( QuestID_t qID ) { m_Quests.erase( qID ); }	QuestMessage		isQuestComplete( QuestID_t qID ) const throw(Error);	QuestStatus*		getQuestStatus( QuestID_t qID ) throw(Error);	void				sendQuestInfo() throw(Error);	void				adjustQuestStatus() throw(Error);	template<class QOutItr, class ROutItr>	void				getCompletedQuestRewards(QOutItr qitr, ROutItr oitr) const	{		for ( hash_map<QuestID_t, QuestStatus*>::const_iterator itr = m_Quests.begin() ;				itr != m_Quests.end(); ++itr )		{			if ( itr->second->isSuccess() )			{				(*qitr++)=itr->second->getQuestID();				(*oitr++)=itr->second->getRewardClass();			}		}	}	QuestMessage		cancelQuest() throw(Error);	QuestMessage		failQuest() throw(Error);	bool				hasQuest() const { return m_Quests.size() != 0; }	bool				hasEventQuest( int questLevel, QuestID_t& qID ) const;	bool				successEventQuest( int questLevel, QuestID_t& qID ) const;	RewardClass_t		getEventQuestReward( int questLevel ) const;	QuestStatus*		getQuestStatusByQuestClass( QuestClass qClass ) const throw(Error);	EventQuestAdvanceManager*	getEventQuestAdvanceManager() const { return m_pEventQuestAdvanceManager; }public:	bool				killedMonster( Monster* pMonster ) throw(Error);//	bool				gotItem( Item* pItem ) throw(Error);	bool				metNPC( NPC* pNPC ) throw(Error);	bool				isTargetNPC( NPC* pNPC ) throw(Error);	bool				submitMiniGameScore( int GameType, uint GameScore );	bool				completeMonsterKillQuest();protected:	PlayerCreature*		getOwner() const { return m_pOwner; }	friend class		QuestStatus;private:	static const hash_map<QuestID_t, QuestStatus*>::size_type MAX_QUEST_NUM;	PlayerCreature*		m_pOwner;	EventQuestAdvanceManager*	m_pEventQuestAdvanceManager;	hash_map<QuestID_t, QuestStatus*>	m_Quests;};#endif// __QUEST_MANAGER_H__

⌨️ 快捷键说明

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