📄 rpgerror.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 + -