Files
aixianling 5c9f1dae4a init
2025-01-09 17:45:40 +08:00

74 lines
3.5 KiB
C
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

#ifndef _CROSS_PROTO_H_
#define _CROSS_PROTO_H_
/*
CopyRight@2021 跨服通用结构
author: 马海龙
time: 2021-04-28
*/
/**
全局会话结构
在修改此结构的时候需要注意一下结构大小通过内存池申请的中等包的大小是256字节
如果此结构大于256字节且小于64K则会造成较多的内存浪费
**/
typedef struct tagGameCross
{
Uint64 nSessionID; //会话ID
int nServerIndex; //会话登录的服务器ID
int nIsRawLogin; //是否在原始服务器登录
LONGLONG nIPAddr; //会话登录的IP地址支持IPv6
TICKCOUNT dwSessionTick; //会话建立的时间
jxSrvDef::GSSTATE nState; //会话状态(登录、查询角色还是已经进入游戏)
jxSrvDef::ACCOUNT sAccount; //会话账号
TICKCOUNT dwTimeOut; //会话超时时间(在等待查询角色以及等待进入游戏状态下有效)
int nConfimSrvCount;//确认会话是否登录,需要等待回应的服务器数量
UINT64 lKey; //登陆的随机key
}GAMECROSS, *PGAMECROSS;
/*
** 记录逻辑服务器ID、服务器名称以及连接的公共服务器ID等信息
*/
typedef struct tagLogicServerInfo
{
int server_id; // 服务器ID
int cserver_id; // 连接的公共服务器ID
char serverName[32]; // 服务器名称
}LOGICSERVERINFO, *PLOGICSERVERINFO;
//客户端登录失败错误号
#define LOGINERR_USRNOTEXISTS -1 //用户不存在
#define LOGINERR_PSWDFAILURE -2 //密码错误
#define LOGINERR_USERDISABLED -3 //账号已被禁用
#define LOGINERR_USERNOTAVAILABLE -4 //尚未激活游戏
#define LOGINERR_LOGINLOCKCHECKFAIL -5 //
#define LOGINERR_DISABLELOGINTHISGAME -6 //
#define LOGINERR_ALREADYLOGIN -7
#define LOGINERR_SERVERBUSY -8
#define LOGINERR_LOGINONWAITING -9
#define LOGINERR_INPUT_SECURENUMBER -10
#define LOGINERR_USERFULL -11
/* 网关模块内部消息定义
*******************************************/
#define GTIM_CONFIM_SESSION_RESULT 10001 //会话服务器向网关用户投递确认会话是否在线的结果(Param1=会话IDParam2=是否在线(0:1))
#define GTIM_CONFIRM_OPEN_SESSION 10012 //确认已经打开了会话
/* 跨服服务器模块内部消息定义
*******************************************/
#define CSIM_POST_CLOSE_SESSION 20001 //按会话ID关闭会话(Param1=会话ID,Param2=会话连续在线时间(用于防沉迷中统计在线时间))
#define CSIM_USER_EXISTS_OF_SESSION_RESULT 20002 //网关按会话ID检查用户是否存在后向DBSSClient返回的消息(Param1=会话ID,Param2=BOOL)
#define CSIM_CHANGE_SESSION_STATE 20003 //网关向SessionServer投递改变会话状态的消息(Param1=会话ID,Param2=会话状态)
#define CSIM_GATE_USER_CLOSED 20004 //网关向SessionServer投递网关用户已关闭的消息(Param1=会话ID)
#define CSIM_POST_ALL_CLIENT_MSG 20005 //向所有会话服务器的客户端发送消息(Param1=服务器类型,Param2=数据包,Param3=数据包大小)
#define CSIM_CONFIM_SESSION_ONLINE 20006 //确认会话是否在线(Param1=会话ID,Param2=服务器ID)
#define CSIM_CONFIM_SESSION_RESULT 20007 //数据或引擎客户端返回会话是否在线(Param1=会话ID,Param2=是否在线0:1)
#define CSIM_CLOSE_SESSION_BY_ACCOUNT 20008 //通过账号字符串查找并关闭会话(Param1=字符串指针)
#define CSIM_CLOSE_SESSION_BY_ACCOUNTID 20012 //通过accountid关闭会话
#define CSIM_KICK_ONLINE_CROSSSERVER_ACTOR 20013 //踢掉在线的跨服用户
#endif //_CROSS_PROTO_H_