#pragma once /**************************************************************************************** * 服务端之间通信协议定义 * 命名规范: * namespace 服务端名称Proto * { * enum e目标服务端名称Code * { * //通信消息号注释,数据段格式(数据名称:数据类型【byte,short,int,shortString,string】) * c消息号别名 = 消息号值,其中c表示通信双方中的客户端方发送,从1开始 * //通信消息号注释,数据段格式(数据名称:数据类型【byte,short,int,shortString,string】) * s消息号别名 = 消息号值,其中s表示通信双方中的服务端方发送,从1开始 * }; * }; ****************************************************************************************/ namespace InterSrvComm { static const int DBSER_VER = 161122; namespace DbServerProto { enum SystemId { siDefault = 0, //特殊命令 siActor = 1, siGuild = 2, siConsignment = 3, siMsg = 4, siRank = 5, siGlobal = 6, siFight = 7, siMail = 8, siCommon = 9, siConfig = 10, siWarTeam = 11, siTxApi = 12, siCommonDB = 13, siAuction = 14, siTrading = 15, }; enum DefaultSysId { dcInitDB = 1, //初始化数据库,特殊指令 dcExecDB = 2, //执行sql语句 }; /**数据服务器和逻辑服务器的命令码**/ // 部分在脚本使用到了,所以不要任意修改 // 注意:部分的数据在跨服战中不用读取,部分是读取但不用保存 enum EntityMgrId { dcDefault, //默认处理,0 // g-d dcQuery = 1, //查询数据 dcSave = 2, //保存数据 actors dcSaveRole, // roles dcSaveVar, //加载角色变量 actorvariable.variable dcSaveItem, // items dcSaveMail, dcSaveStore, dcSaveTogHitEquip, //保存合击装备 dcLogout, // 玩家下线 // d-g dcLoad, dcLoadRole, dcLoadItem, dcLoadMail, dcLoadVar, //加载角色变量 dcLoadStore, //加载商城 dcLoadTogHitEquip, //加载合击装备 dcLoadFriends = 35, // 读取本人的好友相关列表 dcUpdateFriend = 36, // 更新好友的信息 dcDelFriend = 37, // 删除好友信息 dcLoadMsg = 27, //读取用户的消息数据 dcDeleteMsg = 28, //删除某条消息 // todo下面是旧的,以后整理删掉 //dcLoadQuest = 3, //装置任务数据 //dcSaveQuest = 4, //保存用户的任务数据(跨服战不保存) //dcLoadSkill = 5, //装置技能数据 ////dcSaveSkill = 6, //保存技能数据(跨服战不保存) //dcLoadBagItem = 7, //装载背包物品 //dcSaveBagItem = 8, //保存背包物品数据 (跨服战要保存,因为要消耗药品) //dcLoadEquipItem = 9, //装载装备物品 //dcSaveEquipItem = 10, //保存装备物品(跨服战不保存) //dcLoadDepotItem = 11, //装载仓库物品 (跨服战不读取) //dcSaveDepotItem = 12, //保存仓库物品,13(跨服战不保存) dcLoadBuff = 15, //加载角色buff的数据 dcSaveBuff = 16, //保存角色buff的数据(跨服战保存,有buff时间) dcAddMember = 23, //增加帮派成员 dcSaveActorGuild = 24, //保存个人帮派信息 dcDeleteMember = 25, //删除某个成员 dcLoadConsiTimeoutItem = 26, //读取已经下架的个人物品 (跨服战不读取) dcLoadSpiritItemData = 29, // 读取宝物数据 dcSaveGemItemData = 30, // 保存宝物数据 (跨服战不保存) dcLoadMountData = 31, //装载坐骑的数据 dcSaveMountData = 32, //保存坐骑的技能数据 (跨服战不保存) dcSaveDmkjItem = 33, //保存抽奖的仓库物品 (跨服战不保存) dcLoadDmkjItem = 34, //读取抽奖仓库的数据 (跨服战不读取) dcUpdateFriendInfo = 38, //更新好友数据(下线时间) dcUpdateFriendContact = 39, //更新最近联系时间(下线的时候) dcSaveCale = 40, //保存副本统计数据(跨服战不读取) dcLoadCale = 41, //读副本统计数据 dcLoadFbCountData = 42, // 读取每天进入副本次数数据(跨服战不读取) dcSaveFbCountData = 43, // 保存每天进入副本次数数据 // 剧情动画 dcLoadPlotData = 48, //(跨服战不读取) dcSavePlotData = 49, // 这两个已无用 //dcLoadMiscStruct = 50, // 读取杂七杂八数据 (跨服战不读取) //dcSaveMiscStruct = 51, // 保存杂七杂八数据 // 竞技场 dcLoadFightLog = 55, // 读取PK记录 (跨服战不读取) dcAddFightLog = 56, // 添加一条PK记录 dcSlaveAll = 57, // 苦工系统相关的数据保存,由脚本处理 (取消) dcDelFightLog = 58, // 删除一条PK记录 // dcLoadMail = 59, //读取用户的邮件数据 (跨服战不读取) dcDeleteMail = 60, //删除邮件 dcUpdateMailStatus = 61, //更新邮件状态 dcDeleteMailFile = 62, //删除邮件附件 dcGetActorIdFromActroName = 63, //根据玩家名字获取玩家ID dcSaveEntrustItem = 64, //保存副本委托的仓库物品 (跨服战不读取) dcLoadEntrustItem = 65, //读取副本委托仓库的数据 dcSaveActorMisc = 68, // 保存杂七杂八的数据 dcLoadActorMisc = 69, // 读取杂七杂八的数据 dcSavePetCrossItem = 70, //保存宠物闯关仓库(珍宝囊)(跨服战不保存) dcLoadPetCrossItem = 71, //读取宠物闯关仓库(珍宝囊)的数据(跨服战不读取) dcResetCrossPos = 80, // 重置跨服位置 dcLoadCrossVar = 81, //加载角色跨服战变量 dcSaveCrossVar = 82, //保存角色跨服战变量 dcLoadSkillMiji = 83, //读取技能秘籍数据 dcSaveSkillMiji = 84, //保存秘籍数据(跨服战不保存) dcSaveTongTianTaStoreItem = 85, //保存通天塔仓库(跨服战不保存) dcLoadTongTianTaStoreItem = 86, //读取通天塔仓库(跨服战不读取) dcSaveWing = 87, //保存翅膀 dcLoadWing = 88, //读取翅膀 //宠物相关 //dcLoadAllPet = 96, // 加载所有宠物 //dcDeletePet = 97, // 删除宠物 dcLoadPetBase = 98, // 加载宠物基础数据 dcSavePetBase = 99, // 更新宠物 dcPetSkill = 100, // 宠物技能相关 //dcLoadPetGotType = 101, // 读取宠物的历史记录(跨服战不读取) //dcAddPetGotType = 102, // 增加宠物的历史记录(跨服战不保存) dcPetLoadEquip = 103, // 加载宠物装备 dcPetSaveEquip = 104, // 保存宠物装备 dcClearActorDbCache = 105, //清空玩家的缓存 //铭刻相关 dcAddEqSign = 106,//新增铭刻信息 dcInheritEqSign = 107,//继承替换铭刻信息 dcGetEqSignList = 108,//获取某装备上的铭刻信息 dcSaveOnceTime = 111, // 设置保存一次的时间 dcSaveRankVar = 112, // 保存排行榜相关数据 dcSetDataValid = 115, // 设置有效性标识 dcEnableCheckValid = 116, // 是否启用检查数据有效性 dcLoadActorGuild = 117, //读取角色帮派信息 dcSaveMarryInfo = 118, //保存结婚信息 dcLoadMarryInfo = 119, //加载结婚信息 dcOfflineLogout = 120, //下线时,对方不在线,写入相关数据 dcOfflineDivorce = 121, //离婚时,对方不在线,写入相关数据 dcSaveCsWarVar = 122, //保存角色跨服专用变量 dcLoadCsWarVar = 123, //加载角色跨服专用变量 dcActorCacheSave = 124, dcActorCacheLoad = 125, }; enum ConsignmentSysId { dcLoadConsignment = 1, //读取所有的寄卖物品信息 dcSaveConsignmentItem, //保存寄卖物品,包括删除和添加 dcConsignmentCount, // 寄卖物品总数 }; enum GuildMgrId { dcLoadGuildList = 1, // 帮派组件读入所有帮派的数据 dcLoadGuildDetail, // 帮派的详细数据 dcAddGuild, // 增加帮派 dcDeleteGuild, // 解散帮派 dcSaveGuild, // 保存帮派的信息 dcLoadGuildMgrData, // 读取帮派名称列表等 dcLoadGuildDepot, // 读取仙宗仓库物品信息 dcSaveGuildDepot, // 保存仙宗仓库物品信息 dcLoadBeastLog, // 读取帮派神兽记录 dcAddBeastLog, // 添加帮派神兽记录 dcDeleteBeastLog, // 删除帮派神兽记录 dcLoadGuildLog, // 读取仙宗事件 dcAddGuildLog, // 添加仙宗事件 dcDelGuildLog, // 删除仙宗事件 dcLoadOneGuild, // 加载一个帮派的数据 dcGuildCount, // 帮派数量 dcSaveGuildVar, // 保存帮派数据(静态变量) dcLoadGuildVar, // 读取帮派数据(静态变量) dcSaveGuildChat, // 保存公会聊天记录 dcLoadGuildStore, // 读取公会商店记录 dcSaveGuildStore, // 保存公会商店记录 }; enum AuctionId { dcAuctionAdd = 1, dcAuctionDel, dcAuctionUpdate, }; enum TopTitleId { dcLoadRank = 1, //读取有关头衔的排行榜数据 dcLoadRankUser = 2, // 用户详细数据 dcLoadRankPet = 3, //宠物详细数据 dcRankUserCount, // 用户详细数据的数量 }; enum MsgMgrId { dcAddMsg = 1, //增加用户一条信息 dcAddChat = 2, //聊天监控的信息 }; enum MailMgrId { dcAddMail = 1, //增加用户一条邮件 dcAddMailByActorName, // 增加用户一条信息(通过玩家名称) dcAddMailByAccountName, // 增加用户一条信息(通过open id) }; enum GlobalMgr { dcLoadBossKiller = 1, // 保存世界boss的击杀者 dcSaveBossKiller, dcLoadMaster, // 读取天元之主装备信息 dcSaveMaster, // 保存天元之主装备信息 dcGmCmd, // 发送gm命令 暂时改到lua里注册,以后整理消息时要改 //dcAllActorBI, // 发送用户数据到BI系统(已无用) dcCheckVer, // 检查gameworld的版本是否与dbserver一致 dcLoadMarry, // 读取全服仙侣数据 dcAddMarry, // 增加一个结婚记录 dcBattleFlag, // 表示这个连接是否从战斗服发起,如果是,则不读取gmcmd表的数据 dcAddQuestion = 10, //增加一条问题 dcLoadQuestions, //读取玩家所有的问题 dcLoadQuestion, //读取某一条问题 dcUpdateQuestion, //更新问题 已阅读 dcAddBug = 14, //增加一条bug dcLoadGoldRank, //读取神榜内容 dcAddGameServerInfo, //添加一条gameworld相关信息 }; enum FightRankId { dcLoadFightRank = 1, // 读取竞技场排行榜 dcSaveFightRank, // 保存竞技场排行榜 }; enum SysVarMgrId { dcAddSysVar = 1, dcLoadSysVar, dcUpdateSysVar, dcSysVarCount, }; enum configType { ctLoadGiftItem = 1, //读取礼包作为物品的数据 ctLoadGiftConfig = 2, //读取礼包奖励数据 }; // 通信的错误码定义 enum tagResultError { reSucc = 0, reDbErr, //数据库执行错误 reNoActor, //没有该角色的属性信息 reSaveErr, //保存属性失败 reNoLoad, //还没有读入数据 reDbNotConnected, //DB连接不上 reParamError, //参数错误 reNameError, //名字不合法 reNameInUse, //名字被使用 reTimeOut, //操作超时 reInterErr, //内部错误 }; // 战队消息ID enum WarTeamSysId { dcLoadWarTeam = 0, dcAddWarTeam, dcDelWarTeam, dcUpdateWarTeam, dcLoadWarTeamMember, dcAddWarTeamMember, dcDelWarTeamMember, dcUpdateWarTeamMember, dcLoadOneWarTeam, // 获取一个战队的信息 dcWarTeamCount, // 本服需要加载的战队数量 }; enum TxApiMsg { // 充值返回 sFeeCallBack = 1, // 腾讯api返回 sTxApiMsg = 2, // 更新用户身份证号码 sUpdateIdentity = 4, // 关闭或开启赌博系统 sCloseGamble = 5, // 用户充值获取token sChargeToken = 6, // 开通黄钻等获取token sGetToken = 7, //增值序列号 sAddValueCard = 8, // 查询增值卡 sQueryAddValueCard = 9, // 查询元宝数量 sQueryYuanbaoCount = 10, // 提取元宝 sWithdrawYuanbao = 11, // 发送登陆的key sLoginKey = 12, }; enum CommonDBMsg { dcDBExec = 1, // 执行预定义 }; enum TradingMgrId { dcAddTrading = 1, dcUpdateTrading, dcDelTrading, }; } namespace AsyncOperatorCode { enum tagAsyncOpError { soeSucc = 0, // 成功 soeDBErr, // db执行错误(或者db无法连接) soeNoCardInfo, // 不存在此卡信息 soeTimeExpired, // 查询超时 }; } // gameworld之间通信的协议 namespace GameWorldProto { enum GwP { gpRegReq = 1, // 注册消息,发送最基本的信息,比如serverid gpRegResp = 2, gpKeyReq = 3, // 发送key的请求和回复 gpKeyResp = 4, gpUserLogin = 5, // 广播玩家登陆的消息 gpBatchOnline = 6, // 同步在线玩家的信息 gpUserExit = 7, // 玩家下线消息 gpCloseUser = 8, // 踢玩家下线 gpGateway = 9, // 同步网关的信息 gpTtData = 10, // 转传协议 gpSsData = 11, // C++代码内,服务器之间的游戏逻辑消息 gpLfData = 12, // 连服相关系统信息 // 除此之外的全是游戏逻辑相关的信息 gpCommonMsg, // 游戏逻辑相关的消息 gpCrossRelogin, // 通知跨服服务器玩家重复登录 }; enum LfSysType { lsDefault = 0, lsGuild, lsRank, }; enum SSP { stBroadCast, //广播 stRankList, //发送排行榜列表 stUserLogin, //玩家登录 stUserLogout, //玩家登出 stBatchOnline, //批量上线(同步玩家登录信息) //stRecvMail, //通知玩家收邮件 todo lua实现 stKickUser, //踢掉连服的玩家 //stRecvOfflineMsg, //通知玩家收离线消息 todo lua实现 stNormalMax = 100, //后面开始是脚本处理的消息 }; enum LfGuildCmd { lcGuildList, // 更新仙宗列表 lcGuildUnion, // 仙宗结盟 lcGuildDelUnion, // lcCreateGuild, // 创建仙宗 lcDelGuild, // 删除仙宗 lcUpdateGuild, // 更新仙宗信息 lcDelGuildMem, // lcAddGuildMem, // lcGuildBroadCast, // 仙宗广播 lcUpGuildMemInfo, // lcGuildOnline, // 普通服通知仙宗在线状态 lcGuildLeaderInfo, //发送帮主的一些信息 lcAddItemToDepot, //增加一个道具到仓库 lcAddGuildLog, //增加一条帮派见闻 lcSendFightVal, //发送帮派战力 lcChangePos, //改变玩家职位 lcDepotAvailible, //帮派仓库剩余位置 lcImpeach, //弹劾 }; enum LfRankCmd { lcRankList = 0, // 发送排行榜列表 lcRankTitle = 1, //发送通知修改排行榜称号 }; }; // gameworld 和 centerserver 之间的通信协议 namespace CenterProto { enum CWP { cwComm = 1, // 直接转发的的数据包 cwActorOnline = 2, //在某服在线或不在线 cwActorServer = 3, //根据actorid发送到actorid所在服务器 cwActorServerInfo = 4, //玩家在哪个服务器 }; struct ActorOnline { int actorid_; int sid_; inline bool operator != (const ActorOnline& data) const { return actorid_ != data.actorid_; } inline bool operator > (const ActorOnline& data) const { return actorid_ > data.actorid_; } inline bool operator < (const ActorOnline& data) const { return actorid_ < data.actorid_; } }; } }