261 lines
6.7 KiB
C++
261 lines
6.7 KiB
C++
#pragma once
|
||
|
||
/*******************************************************/
|
||
/*
|
||
/* 逻辑服务器常量定义头
|
||
/*
|
||
/*******************************************************/
|
||
|
||
//定义游戏逻辑引擎版本号
|
||
#define LOGIC_KN_VERSION MAKEFOURCC(15,4,9,1)
|
||
|
||
class CScene;
|
||
class CFuBen;
|
||
|
||
class EntityHandle : public Counter<EntityHandle>
|
||
{
|
||
public:
|
||
EntityHandle( void ) : m_Handle( 0 ) { }
|
||
EntityHandle(Uint64 handle):m_Handle(handle){}
|
||
inline void init(unsigned nEntityType,unsigned nIndex)
|
||
{
|
||
m_EntityType = nEntityType;
|
||
m_Index = nIndex;
|
||
}
|
||
unsigned int GetIndex ( void ) const { return ( m_Index ); }
|
||
unsigned int GetType ( void ) const { return ( m_EntityType ); }
|
||
Uint64 GetHandle( void ) const { return ( m_Handle ); }
|
||
bool IsNull ( void ) const { return ( !m_Handle ); }
|
||
inline operator Uint64 ( void ) const { return ( m_Handle ); }
|
||
inline EntityHandle& operator = (const Uint64 handleValue) { m_Handle = handleValue; return *this; }
|
||
inline EntityHandle& operator = (const EntityHandle handleValue) { m_Handle = handleValue.m_Handle; return *this; }
|
||
private:
|
||
union
|
||
{
|
||
struct
|
||
{
|
||
unsigned int m_Index : 32; //实体的handle
|
||
unsigned int m_EntityType : 32; //实体的类型
|
||
|
||
};
|
||
Uint64 m_Handle;
|
||
};
|
||
};
|
||
const static EntityHandle INVALID_ENTITY_HANDLE ; //非法的实体的句柄
|
||
|
||
typedef struct tagEntityPos
|
||
{
|
||
// unsigned int nFbHandler; //副本handler
|
||
CFuBen* pFb;
|
||
CScene* pScene; //scence handler
|
||
WORD nSceneId; //场景id
|
||
} ENTITYPOS,*PENTITYPOS;
|
||
|
||
// 场景位置信息
|
||
typedef struct tagScenePosInfo
|
||
{
|
||
WORD nSceneId;
|
||
WORD nPosX;
|
||
WORD nPosY;
|
||
|
||
void SetData(const int _nSceneId, const int _nPosX, const int _nPosY)
|
||
{
|
||
nSceneId = _nSceneId;
|
||
nPosX = _nPosX;
|
||
nPosY = _nPosY;
|
||
}
|
||
}ScenePosInfo;
|
||
|
||
enum tagLogicInternalMessage
|
||
{
|
||
SSM_GATE_CREATE_ACTOR =1, //create actor
|
||
|
||
SSM_GATE_USER_LOGOUT, //USER LOGOUT
|
||
|
||
SSM_DB_RET_DATA, //db返回数据
|
||
|
||
SSM_FRIEND_LIST, // db返回好友列表
|
||
|
||
SSM_FRIEND_CHANGED, // 好友发生变化
|
||
|
||
SSM_FRIEND_INFO_UPDATE_SVR_ADDR, // 好友服务器地址信息 added by caphone 2011.4.11
|
||
|
||
SSM_SS_RET_DATA, //会话服务器返回数据
|
||
|
||
SSM_MS_RET_DATA, //后台服务器的相关信息
|
||
|
||
SSM_SET_SIGN, //设置签名
|
||
|
||
SSM_LOGIN_FAIL, //玩家登陆失败
|
||
|
||
SSM_LOGIC_2_COMMONLOGIC_DATA, // 逻辑服务器->公共逻辑服务器
|
||
|
||
SSM_COMMONLOGIC_2_LOGIC_DATA, // 公共逻辑服务器->逻辑服务器
|
||
|
||
SSM_SESSION_KICK_USER, //Session服务器发消息来踢下线一个玩家
|
||
|
||
SSM_RECV_LOGIN_DATA, //收到的登陆的网络数据
|
||
|
||
SSM_RECV_LOGIN_CMD, //收到的登陆的命令码
|
||
|
||
SSM_KICK_USER, //踢人下线
|
||
|
||
SSM_CLOSE_SERVER, //关闭网关程序
|
||
|
||
SSM_NEWBACKMGR_DATA, //BackStage数据
|
||
|
||
SSM_ASYNC_WORK_THREAD,//异步工作线程
|
||
|
||
SSM_LOGIC_2_CROSS_DATA, // 逻辑服务器->跨服逻辑服务器
|
||
|
||
SSM_CROSS_2_LOGIC_DATA, // 跨服逻辑服务器->逻辑服务器
|
||
|
||
SSM_CROSS_CEHCK_ACTORDATA, //验证玩家数据
|
||
SSM_CROSS_SERVER_DB_DATA, //跨服数据服->跨服逻辑服
|
||
};
|
||
|
||
|
||
// 服务器加载玩家数据
|
||
enum
|
||
{
|
||
eMSG_USR_LOGIN_DATA_NULL = 0,
|
||
eMSG_USR_LOGIN_DATA_ACTOR_SYSTEM = 1, //玩家数据
|
||
eMSG_USR_LOGIN_DATA_ACHIEVE_SYSTEM = 2, //玩家数据
|
||
eMSG_USR_LOGIN_DATA_ACTIVITY_SYSTEM = 3, //技能数据
|
||
eMSG_USR_LOGIN_DATA_STATICCOUNT_SYSTEM = 4,
|
||
eMSG_USR_LOGIN_DATA_STRENGTHEN_SYSTEM = 5,
|
||
eMSG_USR_LOGIN_DATA_ACTORVARSUB_SYSTEM = 6,
|
||
eMSG_USR_LOGIN_DATA_FRIEND_SYSTEM = 7,
|
||
eMSG_USR_LOGIN_DATA_HERO_SYSTEM = 8,
|
||
eMSG_USR_LOGIN_DATA_MAIL_SYSTEM = 9,
|
||
eMSG_USR_LOGIN_DATA_EQUIP_SYSTEM = 10,
|
||
eMSG_USR_LOGIN_DATA_SKILL_SYSTEM = 11,
|
||
eMSG_USR_LOGIN_DATA_GHOST_SYSTEM = 12,
|
||
eMSG_USR_LOGIN_DATA_NEWTITLE_SYSTEM = 13,
|
||
eMSG_USR_LOGIN_DATA_HALLOWS_SYSTEM = 14,
|
||
eMSG_USR_LOGIN_DATA_LOOTPET_SYSTEM = 15,
|
||
eMSG_USR_LOGIN_DATA_REBATE_SYSTEM = 16,
|
||
eMSG_USR_LOGIN_DATA_ACTOR_CUSTOM = 17, //玩家自定义数据
|
||
eMSG_USR_LOGIN_DATA_MAX, //同步结束结束
|
||
};
|
||
|
||
// 跨服服务器到逻辑服的消息定义
|
||
enum tagCross2LogicMsg
|
||
{
|
||
C2L_Mail = 1, // 邮件
|
||
C2L_ReqLoginData = 2, //发送登录数据
|
||
C2L_CloseActor = 3, //踢下线
|
||
};
|
||
|
||
|
||
// 跨服服务器到逻辑服的消息定义
|
||
enum //tagMsg2CorssServerEnum
|
||
{
|
||
MSG_CACTOR, //玩家数据
|
||
MSG_CSKILL, //技能数据
|
||
MSG_CEQUIP, //装备数据
|
||
MSG_CGAMESET, //设置数据
|
||
MSG_CTITLE, //称号数据
|
||
MSG_CFASH, //时装数据
|
||
MSG_CHALIDOME, //圣物数据
|
||
MSG_CSTRENGTH, //强化数据
|
||
MSG_CGHOST, //神魔数据
|
||
MSG_CUSEBAG, //背包数据
|
||
MSG_CRELIVE, //复活数据
|
||
MSG_LOOTPET, //宠GLOBLE物数据
|
||
MSG_GLOBAL_DATA,//系统数据
|
||
MSG_CLOADGUILD, //加载行会数据数据
|
||
MSG_CS_END, //同步结束结束
|
||
};
|
||
|
||
// 逻辑服务器之间的消息定义
|
||
enum tagLogic2LogicMsg
|
||
{
|
||
L2L_ReqTransmit, // 请求传送
|
||
L2L_ReqTransmitAck, // 请求传送应答
|
||
L2L_StartTransmit, // 开始传送
|
||
L2L_EndTransmit, // 传送完毕
|
||
};
|
||
|
||
enum tagLoginErrorCode
|
||
{
|
||
eNoSessionData=1, //会话找不到会话状态
|
||
eSessionStatusIsError=2, //会话状态不正确
|
||
eDbStatusError=3, //数据服务器的状态错误
|
||
eIsLogin =4, //已经登陆了游戏
|
||
};
|
||
|
||
|
||
#define TYPE_PHYSICAL_ATTACK 1 //物理攻击类型
|
||
#define TYPE_MAGIC_ATTACK 2 //魔法攻击类型
|
||
#define TYPE_WIZARD_ATTACK 3 //道术法攻击类型
|
||
#define TYPE_TOXIC_ATTACK 4 //毒物攻击,也就是debuf
|
||
#define TYPE_HOLY_ATTACK 5 //神圣攻击
|
||
|
||
#define INVALID_CAMP_ID 0
|
||
|
||
//玩家领取奖励的统一配置
|
||
typedef struct tagActorAward
|
||
{
|
||
BYTE btType;
|
||
WORD wId;
|
||
int wCount;
|
||
// BYTE btQuality;
|
||
// BYTE btStrong;//不使用
|
||
// WORD wStar;
|
||
// BYTE btStarLost;
|
||
// BYTE btBind;
|
||
// BYTE btInscriptLevel;
|
||
// int nAreaId;
|
||
// BYTE btLuck;
|
||
// WORD nQualityDataIndex;//极品属性索引
|
||
// int nSmith[5];
|
||
// WORD wIdentifyslotnum;
|
||
// WORD wIdentifynum;
|
||
// int nResourceCount;//资源数量(邮件奖励资源用这个存)
|
||
tagActorAward()
|
||
{
|
||
memset(this, 0, sizeof(*this));
|
||
}
|
||
}ACTORAWARD, *PACTORAWARD;
|
||
|
||
enum enLogicWayId
|
||
{
|
||
lwiInitActorFail = 1,
|
||
lwiCloseAllUser,
|
||
lwiCloseTransmitAllUser,
|
||
lwiUseQuickTool,
|
||
lwiRecvTransmit,
|
||
lwiAcupointDbFail,
|
||
lwiAlmirahDbFail,
|
||
lwiGmTickActor,
|
||
lwiCheckSpeedSystemTick,
|
||
lwiCheckSpeedConfirmSpeed, //10
|
||
lwiLoadDiamondTypeFail,
|
||
lwiLoadDiamondPosFail,
|
||
lwiLoadDiamondDbRetFail,
|
||
lwiMagicDbFail,
|
||
lwiFcmExitTick,
|
||
lwiMoveSysIdle,
|
||
lwiEquipDbFail,
|
||
lwiBackStageTickActor,
|
||
lwiBackStageTickAccount,
|
||
lwiBackStageTickAll, //20
|
||
lwiGateCreateKeyError,
|
||
lwiGateUserLogout,
|
||
lwiSessionKickActor,
|
||
lwiNetMgrKickByActorName,
|
||
lwiNetMgrKickByAccountName,
|
||
lwiBackStageTickActorByLevel,
|
||
lwiSameActorLogin,
|
||
lwiBackStageForbidActor,
|
||
lwiSimulatorSameActorLogin,
|
||
lwiSimulatorRankDown,
|
||
};
|
||
//归属boss
|
||
typedef struct tagBeLongBoss
|
||
{
|
||
int nBossId;
|
||
int nSceneId;
|
||
}BeLongBoss;
|