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

📄 rpgdatabasetables.h

📁 五行MMORPG引擎系统V1.0
💻 H
字号:
//RPGDatabaseDefine.h
/*/////////////////////////////////////////////////////////////////

   李亦
	liease@163.com 4040719
	2006-7-20
/*/////////////////////////////////////////////////////////////////
#ifndef _RPG__RPGDATABASETABLES_H_
#define _RPG__RPGDATABASETABLES_H_

#ifndef _RPG__RPGDEFINE_H_
#include "rpg/RPGDefine.h"
#endif

#ifndef _RPG__GPLAYER_H_
#include "rpg/gobjects/GPlayer.h"
#endif

#ifndef _RPG__GGOODSDEFINE_H_
#include "rpg/gobjects/ggoodsDefine.h"
#endif

#ifndef _RPG__GDIALOG_H_
#include "rpg/gobjects/GDialog.h"
#endif

#ifndef _RPG__GNPC_H_
#include "rpg/gobjects/GNpc.h"
#endif

#ifndef _RPG__GSCENE_H_
#include "rpg/gobjects/GScene.h"
#endif

namespace RPG
{
namespace DB
{

#define  DBNUL	(U32)-1



/////////////////////////////////////////////
//功效数据定义

typedef struct tagGEfficacy
{
	U32					dwID;
	RPG::GEFFICACY		data;
}GEFFICACY;


typedef struct tagGEfficacySelf
{
	U32			dwID;
	U32			dwSelfID;
	U32			dwEfficacyID;
}GEFFICACYSELF;


/////////////////////////////////////////////
//任务数据定义
typedef struct tagGPlayerTaskState
{
	U32	dwID;
	STE	sPlayerName;
	U32	dwTaskStateID;
}GPLAYERTASKSTATE;

typedef struct tagGTaskState
{
	U32				dwID;
	STE				sNpcName;
	U32				dwTaskID;
	EGTaskStates	nState;
	EGTaskStates	arPieceStates[16];
}GTASKSTATE;


typedef struct tagGTaskBase
{
	U32				dwID;
	U32				dwRequireID;
	U32				dwGoalID;
	U32				dwPremiumID;
	U32				dwGoalObjectID;
	U32				dwReserved;//dwGoalResultID;
	STE				sFromNpcName;
	STE				sToNpcName;
	U32				arDialogsID[GTS_AMOUNT];

	RPG::GTASKBASE	data;
}GTASKBASE;

typedef struct tagGTask 
{
	U32			dwID;
	U32			dwTaskBaseID;
	RPG::GTASK	data;
}GTASK;

typedef struct tagGTaskTaskPiece
{
	U32	dwID;
	U32	dwTaskID;
	U32	dwTaskPieceID;
	U32	nOrder;
}GTASKTASKPIECE;

typedef struct tagGTaskPiece
{
	U32					dwID;
	U32					dwTaskBaseID;
	RPG::GTASKPIECE	data;
}GTASKPIECE;



/////////////////////////////////////////////
//场景数据定义
typedef struct tagGScene
{
	U32					dwID;		//编号
	RPG::GSCENE			data;
}GSCENE;

typedef struct tagGSceneNpc
{
	U32		dwID;			
	//U32		dwSceneID;
	//U32		dwNpcID;
	STE		sSceneIDName;
	STE		sNpcName;
}GSCENENPC;

typedef struct tagGScenePlayer
{
	U32		dwID;			
	//U32		dwSceneID;
	//U32		dwPlayerID;
	STE		sSceneIDName;
	STE		sPlayerName;
}GSCENEPLAYER;


/////////////////////////////////////////////
//对话片段定义
typedef struct tagGDlgPiece
{
	U32					dwID;		//编号
	U32					dwCmdID;
	U32					arAnswerIDs[GDLG_ANSWER_NUM];
	U32					arNextIDs[GDLG_ANSWER_NUM];
	U32					arNext2IDs[GDLG_ANSWER_NUM];
	RPG::GDLGPIECE		data;
}GDLGPIECE;

typedef struct tagGDlgAnswer
{
	U32					dwID;		//编号
	U32					dwCmdID;
	RPG::GDLGANSWER	data;
}GDLGANSWER;


typedef struct tagGDialog
{
	U32				dwID;			//编号
	U32				dwRequireID;//
	U32				dwPieceID;
	RPG::GDIALOG	data;
}GDIALOG;



/////////////////////////////////////////////
//物品定义
typedef struct tagGGoodsDefine
{
	U32						dwID;
	RPG::GGOODSDEFINE		data;
}GGOODSDEFINE;

typedef struct tagGGoods
{
	U32				dwID;
	U32				dwEfficacyID;
	U32				dwRequireID;
	STE				sToNpc;
	STE				sFromNpc;
	RPG::GGOODS		data;
}GGOODS;


//////////////////////////////////////////////////
//人物数据
typedef struct tagGCharacter
{
	U32					dwID;			//编号
	RPG::GCHARACTER	data;
}GCHARACTER;


//////////////////////////////////////////////////
//NPC数据定义
typedef struct tagGNPC
{
	U32					dwID;		//编号
	RPG::GCHARACTER	dataChar;
	RPG::GNPC			data;
	U32					dwEquipmentsID;
	U32					dwBagGoodsID;
}GNPC;


//NPC对话关联
typedef struct tagGNPCDialog
{
	U32		dwID;
	//U32		dwNpcID;
	STE		sNpcName;
	U32		dwDialogID;
}GNPCDIALOG;

//NPC任务关联
typedef struct tagGNpcTask
{
	U32		dwID;
	//U32		dwNpcID;
	STE		sNpcName;
	U32		dwTaskID;
}GNPCTASK;


//////////////////////////////////////////////////
//玩家数据
typedef struct tagGPlayer
{
	U32	dwID;			//编号
	//U32	dwCharacterID;

	RPG::GCHARACTER	dataChar;
	RPG::GPLAYER		data;

	U32	dwEquipmentsID;
	U32	dwBagGoodsID;
	U32	dwSkillsID;
	U32	dwActionsID;
	U32	dwKeyCellsID;


}GPLAYER;


///////////////////////////
typedef struct tagGEquipments
{
	U32	dwID;
	U32	arUnits[EQUIP_SLOTNUM];	//装备槽
}GEQUIPMENTS;

///////////////////////////
typedef struct tagGBagGoods
{
	U32	dwID;
	U32	arUnits[BAG_SLOTNUM];		//背包槽
}GBAGGOODS;

///////////////////////////
typedef struct tagGSkills
{
	U32	dwID;
	U32	arUnits[SKILL_SLOTNUM];		//技能槽
}GSKILLS;


typedef struct tagGActions
{
	U32	dwID;
	U32	arUnits[ACTION_AMOUNT];
}GACTIONS;


typedef struct tagGKeyCells
{
	U32	dwID;
	U32	arUnits[KEY_CELL_AMOUNT];
}GKEYCELLS;


////////////////////////////////////////////////////
//通行证数据
typedef struct tagGPassport
{
	U32		dwID;
	STE		pAccount;
	STE		pPassword;
	//最多5个可玩人物
	STE		arPCs[RPG_PC_MAX];
}GPASSPORT;



/////////////////////////////////////////////////////////////////
//数据表模拟
#define DECLARE_DBTABLE(TYPE,Name)\
	static TYPE				ms_ar##Name##s[];\
	static const U32		ms_n##Name##RecordNum


#define BEGIN_DBTABLE(TYPE,Name)\
	TYPE				Tables::ms_ar##Name##s[]={

#define END_DBTABLE(TYPE,Name)\
	};\
	const U32		Tables::ms_n##Name##RecordNum = sizeof(ms_ar##Name##s) / sizeof(TYPE);

#define DB_RECORDNUM(Name)		DB::Tables::ms_n##Name##RecordNum
#define DB_TABLE(Name)			DB::Tables::ms_ar##Name##s
#define DB_RECORD(Name,n)		DB::Tables::ms_ar##Name##s[n]
#define DB_RECDAT(Name,n)		DB::Tables::ms_ar##Name##s[n].data
#define DB_RECCHAR(Name,n)		DB::Tables::ms_ar##Name##s[n].dataChar


/////////////////////////////////////
//数据表
class Tables
{
public:

	DECLARE_DBTABLE( GEFFICACY,		Efficacy);
	DECLARE_DBTABLE( GEFFICACYSELF,	EfficacySelf);
	//DECLARE_DBTABLE( GREQUIRE,			Require);
	DECLARE_DBTABLE( GSCENE,			Scene);
	DECLARE_DBTABLE( GSCENENPC,		SceneNpc);
	DECLARE_DBTABLE( GSCENEPLAYER,	ScenePlayer);
	DECLARE_DBTABLE( GNPC,					Npc);
	DECLARE_DBTABLE( GNPCDIALOG,			NpcDialog);
	DECLARE_DBTABLE( GNPCTASK,				NpcTask);
	DECLARE_DBTABLE( GPLAYERTASKSTATE,	PlayerTaskState);
	DECLARE_DBTABLE( GTASKSTATE,			TaskState);
	DECLARE_DBTABLE( GTASKBASE,			TaskBase);
	DECLARE_DBTABLE( GTASK,					Task);
	DECLARE_DBTABLE( GTASKTASKPIECE,		TaskTaskPiece);
	DECLARE_DBTABLE( GTASKPIECE,			TaskPiece);
	DECLARE_DBTABLE( GDIALOG,			Dialog);
	DECLARE_DBTABLE( GDLGPIECE,		DlgPiece);
	DECLARE_DBTABLE( GDLGANSWER,		DlgAnswer);
	DECLARE_DBTABLE( GPASSPORT,		Passport);
	DECLARE_DBTABLE( GPLAYER,			Player);
	DECLARE_DBTABLE( GEQUIPMENTS,		Equipments);
	DECLARE_DBTABLE( GBAGGOODS,		BagGoods);
	DECLARE_DBTABLE( GSKILLS,			Skills);
	DECLARE_DBTABLE( GKEYCELLS,		KeyCells);
	DECLARE_DBTABLE( GACTIONS,			Actions);
	DECLARE_DBTABLE( GGOODSDEFINE,	GoodsDefine);
	DECLARE_DBTABLE( GGOODS,			Goods);

};


};//namespace DB

};//namespace RPG

#endif //_RPG__RPGDATABASETABLES_H_

⌨️ 快捷键说明

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