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

📄 rpgerror.cc

📁 五行MMORPG引擎系统V1.0
💻 CC
字号:
//RPGError.cc
/*/////////////////////////////////////////////////////////////////

   李亦
	liease@163.com 4040719
	2006-7-18
/*/////////////////////////////////////////////////////////////////

#include "rpg/RPGError.h"
#include "console/macroManager.h"


namespace RPG
{

RPGError* g_pRPGError = NULL;

IMPLEMENT_CONOBJECT(RPGError);


StringTableEntry RPGError::ms_arErrorText[EBASE_AMOUNT]=
{
	"操作成功",
	"未识别代码",
	"(数据库)未识别代码",

	//////////////////////////////////////////////
	// 以下已知代码
	"Debug型错误",//
	"指令超时",
	"指令缺少所需参数",

	"SILENT型错误",
	"上装下装失败",
	"背包已满",
	"物品不存在",
	"装备槽不存在",
	"背包中物品不存在",
	"删除背包中物品失败",
	"加物品到背包失败",
	"加物品到地面失败",
	"删除地面物品失败",
	"地图不存在",
	"NPC不存在",


	"Warning型错误",

	"Error型错误",
	"通行证未登录",
	"通行证密码不匹配",
	"通行证不存在",
	"通行证已登录",
	"无效的通行证",

	"可玩人物不存在",
	"可玩人物密码不匹配",
	"可玩人物已存在",
	"可玩人物已满",
	"可玩人物创建失败",
	"可玩人物非GM",

	"数据繁忙",
	"系统繁忙",
	"系统已断开连接",
	"系统连接失败",
	"服务器过载",
	"系统检验无效",

	"错误代码总量"

};

StringTableEntry RPGError::ms_arErrorLabel[EBASE_AMOUNT]=
{
	//成功代码
	"E_OK",

	// 以下为未知错误代码
	"E_UNKNOW",
	"E_DB_UNKNOW",

	//////////////////////////////////////////////
	// 以下已知代码

	//Debug型错误代码
	"EBASE_DEBUG",	
	"E_CMD_TIMEOUT",
	"E_CMD_PARAM_MISS",

	//SILENT型错误代码
	"EBASE_SILENT",
	"E_ARMING_FAILED",
	"E_BAG_FULL",
	"E_GOODS_NOTEXIST",
	"E_EQUIPSLOT_NOTEXIST",
	"E_BAGGOODS_NOTEXIST",
	"E_BAGGOODS_REMOVE_FAILED",
	"E_BAGGOODS_ADD_FAILED",
	"E_SCENEGOODS_ADD_FAILED",
	"E_SCENEGOODS_REMOVE_FAILED",
	"E_SCENE_NOTEXIST",
	"E_NPC_NOTEXIST",

	//Warning型错误代码
	"EBASE_WARNING",	


	//////////////////////////////////////////
	//错误型代码
	"EBASE_ERROR",
	"E_PP_NOTLOGIN",//未登录
	"E_PP_PWDNOTMATCH",//密码不匹配
	"E_PP_NOTEXIST",//通行证不存在
	"E_PP_LOGINED",
	"E_PP_INVALID",


	"E_PC_NOTEXIST",
	"E_PC_PWDNOTMATCH",
	"E_PC_EXISTED",
	"E_PC_FULL",
	"E_PC_CREATEFAILED",
	"E_PC_NOTGM",


	"E_DB_BUSINESS",

	"E_SYS_BUSINESS",
	"E_SYS_DISCONNECTED",
	"E_SYS_CONNECT_FAILED",
	"E_SYS_SERVER_EXCEED",
	"E_SYS_VERIFY_INVALID",

	"EBASE_MAX"
	//////////////////////////////////
	//以下为自定义错误代码
};

///////////////////////////////////////////////////////////////
//构造函数 /析构函数
RPGError::RPGError()
:m_errorDict(HASHSIZE)
{
}
RPGError::~RPGError()
{
}

void RPGError::Initialize(CSTR pScriptName)
{
	AssertWarn(g_pRPGError==NULL,"RPGError实例不能创建第2个");
	U32 n;
	StringTableEntry	pValue;

	g_pRPGError = new RPGError();
	g_pRPGError->registerObject(pScriptName);

	//增加E_系列的脚本常量
	for(n=0; n < EBASE_AMOUNT; n++)
	{	
		ms_arErrorText[n] = StringTable->insert(ms_arErrorText[n]);
		ms_arErrorLabel[n] = StringTable->insert(ms_arErrorLabel[n]);

		pValue = StringTable->insert( avar("%d",n) );
		gMacroDictionary.insert(ms_arErrorLabel[n], pValue );
	}

}

void RPGError::Destroy()
{
	if(g_pRPGError)
	{
		g_pRPGError->deleteObject();
		g_pRPGError = NULL;
	}
}

void RPGError::initPersistFields()
{
	Parent::initPersistFields();
}

void RPGError::consoleInit()
{
}


void RPGError::RegisterError(U32 nError, StringTableEntry pName, StringTableEntry pDesc)
{
	GERROR_ENTRY* pEntry = m_errorDict.Insert(nError);
	pEntry->pName	= pName;
	pEntry->pDesc	= pDesc;
}


bool RPGError::GetError(U32 nError, StringTableEntry& pName, StringTableEntry& pDesc)
{
	GERROR_ENTRY* pEntry = m_errorDict.Get(nError);
	if(!pEntry)
		return false;

	pName	= pEntry->pName;
	pDesc	= pEntry->pDesc;
	return true;
}



};//namespace RPG

⌨️ 快捷键说明

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