这里是服务端任务数据的读取 这里我只是写了一个简短的,读取方式这个的看你们自己项目策划的要求是什么类型的任务,这里读取的也只是一个静态数据xml表,
#ifndef __BRUCE_GAME_QUESTXMLVO__HEADER__
#define __BRUCE_GAME_QUESTXMLVO__HEADER__
#include <typedef.hpp>
GAME_NS_BEGIN
//常量任务读取字段;
class QuestXmlVo
{
public:
// 任务ID;
BRUCE_SYNTHESIZE_PASS_BY_REF(int, m_nQuestID, QuestID);
//任务线;
BRUCE_SYNTHESIZE_PASS_BY_REF(int, m_nQuestGroup, QuestGroup);
// 任务类型;
BRUCE_SYNTHESIZE_PASS_BY_REF(int, m_nQuestType, QuestType);
// 任务次数;
BRUCE_SYNTHESIZE_PASS_BY_REF(int, m_nQuestCoin, QuestCoin);
};
APP_NS_END
“QuestSystem.h”
这个文件 还有这个文件的cpp 是获取服务端那边过来的任务的数据,比如完成的,或者没完成的提交的信息或到数据库中去查询,任务的处理这些;这些都是我将自己做的然后自己写的一个简单的实例出来。掌握这样做运行的起来,不吭坑你们这些初学者的 坑你们我又得不到什么.注释也写的比较详细.我还是那句话师傅领进门 修行靠自己。
ifndef __BRUCE_GAME_QUEST_SYSTEM_HEADER__
#define __BRUCE_GAME_QUEST_SYSTEM_HEADER__
#include "typedef.hpp"
#include <Network.hpp>
#include <GameServer/Quest.hpp>
#include "QuestCommon.hpp"
#include "Character.hpp"
#include <vector>
#include "QuesXmlVo.hpp"
GAME_NS_BEGIN
//任务类型;
enum
{
QUEST_MISSION_ORDINARY, //关卡的类型任务类型;
QUEST_MISSION_ELITE, //精英关卡任务类型;
QUEST_TIME_ORDINARY, //时光之穴的任务类型;
QUEST_TIME_ELITE
};
class QuestSystem
{
public:
QuestSystem();
~QuestSystem();
int initialize();
void finalize();
//接收客户端到服服务端的任务请求信息;
void handleClientToSeverQuestInfoReq(Message::Ptr& message);
//去寻找当前提交的任务信息是否与与关卡中的相匹配;
void QueryMissionInfo(C2GS_QuestSubmitReq xQuestSubmitReq, int n_QusetType);
//关卡获取的任务是否达到次数条件的信息与当前提交的任务的信息进行比较,如果条件达到就删除该数据,如果没有达到就返回Reuct=1;
void QuestJudgeInfoAck(Message::Ptr &message);
//删除任务信息的返回;
void QuestDeleteInfoAck(Message::Ptr &message);
//保存已完成的任务;
void QuestSeaveCurrentlyInfo(Message::Ptr &message);
public:
QuestXmlVo* getQuestXmlVo(int n_QuestId);
// 容器共有;
public: