2025-06-16 20:50:06 +08:00
|
|
|
|
syntax = "proto3";
|
|
|
|
|
|
package serverproto;
|
|
|
|
|
|
|
|
|
|
|
|
import "user.proto";
|
|
|
|
|
|
|
|
|
|
|
|
//该proto下文件会使用router节点进行转发
|
|
|
|
|
|
///////////////局部跨服 section cross
|
|
|
|
|
|
//远航试炼
|
|
|
|
|
|
message SSCrossYuanHangTrialViewListReq { //project crossserver //RouteRule crossserver
|
|
|
|
|
|
}
|
|
|
|
|
|
message SSCrossYuanHangTrialViewListAck { //project game
|
|
|
|
|
|
int32 error = 1;
|
|
|
|
|
|
repeated YuanHangTrialData trial_view_list = 2; //界面上可视列表
|
|
|
|
|
|
}
|
|
|
|
|
|
message SSCrossYuanHangTrialSelfReq { //project crossserver //RouteRule crossserver
|
|
|
|
|
|
uint64 self_uid = 1; //获取自身当前的远航数据(有可能已经结束)
|
|
|
|
|
|
|
|
|
|
|
|
//意外情况下导致远航没有出现在跨服,在每次获取自身数据时重新设置一遍
|
|
|
|
|
|
int32 trial_type = 2;
|
|
|
|
|
|
uint64 end_time_stamp = 3;
|
|
|
|
|
|
FightRoleInfo self_fight_info = 4;
|
|
|
|
|
|
int32 duration_time = 5; //持续时间(分钟)
|
|
|
|
|
|
}
|
|
|
|
|
|
message SSCrossYuanHangTrialSelfAck { //project game
|
|
|
|
|
|
YuanHangTrialData self_info = 1; //自身远航数据(和玩家个人保存数据有区别)
|
|
|
|
|
|
}
|
|
|
|
|
|
//发起远航试炼
|
|
|
|
|
|
message SSCrossYuanHangTrialReq { //project crossserver //RouteRule crossserver
|
|
|
|
|
|
int32 trial_type = 1;
|
|
|
|
|
|
uint64 end_time_stamp = 2;
|
|
|
|
|
|
FightRoleInfo self_fight_info = 3;
|
|
|
|
|
|
int32 duration_time = 4; //持续时间(分钟)
|
|
|
|
|
|
}
|
|
|
|
|
|
message SSCrossYuanHangTrialAck {
|
|
|
|
|
|
}
|
|
|
|
|
|
//远航试炼挑战
|
|
|
|
|
|
message SSCrossYuanHangTrialChallengeReq { //project crossserver //RouteRule crossserver
|
|
|
|
|
|
uint64 challenge_uid = 1;
|
|
|
|
|
|
uint64 challenge_uid_end_time = 2;
|
|
|
|
|
|
int32 be_challenge_max_num = 3; //最大被挑战次数
|
|
|
|
|
|
}
|
|
|
|
|
|
message SSCrossYuanHangTrialChallengeAck { //project game
|
|
|
|
|
|
int32 error = 1; //错误码
|
|
|
|
|
|
uint64 challenge_uid = 2;
|
|
|
|
|
|
uint64 challenge_uid_end_time = 3;
|
|
|
|
|
|
FightRoleInfo fight_info = 5; //被挑战玩家战斗数据
|
|
|
|
|
|
}
|
|
|
|
|
|
//变更列表通知
|
|
|
|
|
|
message SSCrossYuanHangTrialViewNtf { //project social|game
|
|
|
|
|
|
repeated YuanHangTrialData trial_view_list = 1; //界面上可视列表
|
|
|
|
|
|
}
|
|
|
|
|
|
//挑战结果通知
|
|
|
|
|
|
message SSCrossYuanHangTrialChallengeResultReq { //project crossserver //RouteRule crossserver
|
|
|
|
|
|
uint64 challenged_uid = 1;
|
|
|
|
|
|
uint64 challenged_uid_end_time = 2;
|
|
|
|
|
|
int32 fight_time = 3; //战斗持续时间(判断合法性)
|
|
|
|
|
|
bool win = 4;
|
|
|
|
|
|
string self_nick_name = 5; //玩家自己昵称
|
|
|
|
|
|
int32 self_zone = 6; //顽疾自己所在区服ID
|
|
|
|
|
|
FightRoleInfo fight_info = 7; //挑战玩家战斗数据
|
|
|
|
|
|
}
|
|
|
|
|
|
message SSCrossYuanHangTrialChallengeResultAck { //project game
|
|
|
|
|
|
int32 error = 1; //错误码
|
|
|
|
|
|
bool win = 2;
|
|
|
|
|
|
int32 ship_trial_level = 3; //远航试炼登记
|
|
|
|
|
|
YuanHangTrialLogData log_data = 4; //有则添加到自身记录中
|
|
|
|
|
|
}
|
|
|
|
|
|
//远航试炼排行榜积分更新
|
|
|
|
|
|
message SSCrossYuanHangTrialUpdateRankScoreNtf { //project crossserver //RouteRule crossserver
|
|
|
|
|
|
uint64 uid = 1;
|
|
|
|
|
|
uint64 rank_score = 2;
|
|
|
|
|
|
}
|
|
|
|
|
|
//获取远航试炼排行榜
|
|
|
|
|
|
message SSCrossYuanHangTrialRankListReq { //project crossserver //RouteRule crossserver
|
|
|
|
|
|
uint64 uid = 1;
|
|
|
|
|
|
int32 start_idx = 2;
|
|
|
|
|
|
}
|
|
|
|
|
|
message SSCrossYuanHangTrialRankListAck { //project game
|
|
|
|
|
|
int32 start_idx = 1;
|
|
|
|
|
|
uint32 self_rank = 2; //自身排名
|
|
|
|
|
|
uint64 self_score = 3; //自身积分
|
|
|
|
|
|
uint32 total_rank = 4; //当前参加排名的人数
|
|
|
|
|
|
repeated CommonRankInfo rank_list = 5;
|
|
|
|
|
|
}
|
|
|
|
|
|
//被挑战日志通知
|
|
|
|
|
|
message SSCrossYuanHangTrialLogNtf { //project social|game|db
|
|
|
|
|
|
uint64 ntf_uid = 1;
|
|
|
|
|
|
YuanHangTrialLogData log_data = 2; //有则添加到自身记录中
|
|
|
|
|
|
}
|
|
|
|
|
|
//查询飞艇信息
|
|
|
|
|
|
message SSCrossYuanHangTrialInfoReq { //project crossserver //RouteRule crossserver
|
|
|
|
|
|
uint64 trial_uid = 1;
|
|
|
|
|
|
uint64 trial_end_time = 2;
|
|
|
|
|
|
}
|
|
|
|
|
|
message SSCCrossYuanHangTrialInfoAck { //project game
|
|
|
|
|
|
int32 error = 1;
|
|
|
|
|
|
YuanHangTrialData trial_data = 2;
|
|
|
|
|
|
string nick_name = 3;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
//跨服-巅峰爬塔
|
|
|
|
|
|
//排行榜按照最大战力/阵容数据实时刷新(不是最大战力时的阵容)
|
|
|
|
|
|
message SSCrossRankUpdateNtf { //project crossrank //RouteRule crossrank
|
|
|
|
|
|
uint64 self_max_fight_power = 1;
|
|
|
|
|
|
FightRoleInfo fight_info = 2; //挑战玩家战斗数据
|
|
|
|
|
|
}
|
|
|
|
|
|
//进入巅峰之塔玩家阵容信息更新
|
|
|
|
|
|
message SSCrossRankFightInfoUpdateNtf { //project crossrank //RouteRule crossrank
|
|
|
|
|
|
FightRoleInfo fight_info = 1; //挑战玩家战斗数据
|
|
|
|
|
|
uint64 cur_self_max_fight_power = 2; //当前玩家战斗力(不在榜上时更新用当前战斗力更新榜信息)
|
|
|
|
|
|
}
|
|
|
|
|
|
//巅峰之塔匹配玩家
|
|
|
|
|
|
message SSCrossTopTowerMatchFightReq { //project crossrank //RouteRule crossrank
|
|
|
|
|
|
// repeated KeyValueTypeList match_list = 1; //1-10层匹配参数
|
|
|
|
|
|
}
|
|
|
|
|
|
message SSCrossTopTowerMatchFightAck { //project game
|
|
|
|
|
|
int32 error = 1;
|
|
|
|
|
|
repeated TopTowerFightRoleInfo fight_info_list = 2; //挑战玩家战斗数据
|
|
|
|
|
|
}
|
|
|
|
|
|
//买路排行榜通知
|
|
|
|
|
|
message SSCrossTopTowerForceWinRankUpdateNtf { //project crossrank //RouteRule crossrank
|
|
|
|
|
|
uint64 fight_uid = 1;
|
|
|
|
|
|
}
|
|
|
|
|
|
//获取买路排行榜
|
|
|
|
|
|
message SSCrossTopTowerForceWinRankListReq { //project crossrank //RouteRule crossrank
|
|
|
|
|
|
uint64 uid = 1;
|
|
|
|
|
|
int32 start_idx = 2;
|
|
|
|
|
|
}
|
|
|
|
|
|
message SSCrossTopTowerForceWinRankListAck { //project game
|
|
|
|
|
|
int32 start_idx = 1;
|
|
|
|
|
|
uint32 self_rank = 2; //自身排名
|
|
|
|
|
|
uint64 self_score = 3; //自身积分
|
|
|
|
|
|
uint32 total_rank = 4; //当前参加排名的人数
|
|
|
|
|
|
repeated CommonRankInfo rank_list = 5;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
//该proto下文件会使用router节点进行转发
|
|
|
|
|
|
///////////////全局跨服global cross
|
|
|
|
|
|
//跨服聊天(根据类型区分局部跨服还是整体跨服)
|
|
|
|
|
|
message SSGCrossChatMessageReq { //project gcrossmap //RouteRule gcrossmap
|
|
|
|
|
|
int32 type = 1;
|
|
|
|
|
|
ChatMessageInfo message = 2;//消息内容
|
|
|
|
|
|
uint64 target_id = 3;//私人聊天,好友聊天时发送的目标玩家
|
|
|
|
|
|
ChatPlayerBriefInfo from_id = 4;//私人聊天,好友聊天时发送的来源玩家
|
|
|
|
|
|
int32 cur_space_id = 5;
|
|
|
|
|
|
}
|
|
|
|
|
|
message SSGCrossChatMessageAck { //project game
|
|
|
|
|
|
int32 error = 1; //错误码
|
|
|
|
|
|
uint64 target_id = 2; //目标玩家(离线玩家ID)
|
|
|
|
|
|
ChatMessageInfo message = 3;//消息内容
|
|
|
|
|
|
int32 type = 4;
|
|
|
|
|
|
}
|
|
|
|
|
|
message SSGCrossChatMessageNtf { //project game
|
|
|
|
|
|
repeated MessageContentInfo msg_list = 1;
|
|
|
|
|
|
repeated SystemMessage s_msg_list = 2;
|
|
|
|
|
|
}
|
|
|
|
|
|
//map进程通过etcd上报自己的状态,maprouter进程通过etcd的监听来获取每个map的状态
|
|
|
|
|
|
//角色进入地图,选择合适的AOI节点(由玩家决定进入哪个线)
|
|
|
|
|
|
//地图通用参数
|
|
|
|
|
|
//1,情侣
|
|
|
|
|
|
message SelfCrossMapParam {
|
|
|
|
|
|
uint64 lover_uid = 1;// 情侣
|
|
|
|
|
|
}
|
|
|
|
|
|
message SSGCrossMapEnterReq { //project gcrossmap //RouteRule gcrossmap
|
|
|
|
|
|
int32 aoi_line = 1; //选择进入的地图
|
|
|
|
|
|
int32 map_type = 2; //选择的地图功能类型
|
|
|
|
|
|
PlayerShowInfo show_info = 3;
|
|
|
|
|
|
Vector3 pos = 4; //位置
|
|
|
|
|
|
Vector3 dir = 5; //朝向
|
|
|
|
|
|
SelfCrossMapParam self_map_param = 6;
|
|
|
|
|
|
}
|
|
|
|
|
|
message SSGCrossMapEnterAck { //project game
|
|
|
|
|
|
int32 error = 1; //错误码
|
|
|
|
|
|
int32 line_num = 2;
|
|
|
|
|
|
int32 map_type = 3;
|
|
|
|
|
|
string map_sid = 4;
|
|
|
|
|
|
UnitPosAndDir unit_info = 5;
|
|
|
|
|
|
}
|
|
|
|
|
|
//通知其他玩家,有单位进入地图
|
|
|
|
|
|
message SSGCrossMapEnterNtf { //project game
|
|
|
|
|
|
repeated UnitPosAndDir unit_info_list = 1;
|
|
|
|
|
|
}
|
|
|
|
|
|
message SSGCrossMapLeaveReq { //project gcrossmap //RouteRule gcrossmap
|
|
|
|
|
|
Vector3 pos = 1;
|
|
|
|
|
|
}
|
|
|
|
|
|
message SSGCrossMapLeaveAck { //project game
|
|
|
|
|
|
}
|
|
|
|
|
|
message SSGCrossMapLeaveNtf { //project game
|
|
|
|
|
|
repeated UnitPosAndDir unit_info_list = 1;
|
|
|
|
|
|
}
|
|
|
|
|
|
//客户端1s内发送的位置同步包
|
|
|
|
|
|
message SSGCrossMapSyncPosReq { //project gcrossmap //RouteRule gcrossmap
|
|
|
|
|
|
Vector3 pos = 1; //位置
|
|
|
|
|
|
Vector3 dir = 2; //朝向
|
|
|
|
|
|
int32 is_on_ground = 3; //是否在地面上
|
|
|
|
|
|
int32 cur_space_id = 4; //当前所在场景ID
|
|
|
|
|
|
}
|
|
|
|
|
|
//客户端模拟使用
|
|
|
|
|
|
message SSGCrossMapSyncParamReq { //project gcrossmap //RouteRule gcrossmap
|
|
|
|
|
|
Vector3 pos = 1; //位置
|
|
|
|
|
|
Vector3 dir = 2; //朝向
|
|
|
|
|
|
int32 is_on_ground = 3; //是否在地面上
|
|
|
|
|
|
int32 cur_space_id = 4; //当前所在场景ID
|
|
|
|
|
|
int32 param_id = 5;
|
|
|
|
|
|
}
|
|
|
|
|
|
//不合法的移动时返回错误码
|
|
|
|
|
|
message SSGCrossMapSyncPosAck {
|
|
|
|
|
|
int32 error = 1; //错误码
|
|
|
|
|
|
Vector3 pos = 2; //位置
|
|
|
|
|
|
Vector3 dir = 3; //朝向
|
|
|
|
|
|
}
|
|
|
|
|
|
message SSGCrossMapSyncPosNtf { //project game
|
|
|
|
|
|
repeated UnitPosAndDir sync_unit_list = 1; //是自己则表示自己进入地图成功或者自己的操作成功
|
|
|
|
|
|
}
|
|
|
|
|
|
//参数信息同步广播
|
|
|
|
|
|
message SSGCrossMapSyncParamNtf{ //project game
|
|
|
|
|
|
repeated UnitPosAndDir sync_unit_list = 1;
|
|
|
|
|
|
}
|
|
|
|
|
|
//获取其他玩家角色信息,AOI地图显示使用(注意:每次发送不超过10个玩家,超过10个后服务器不会返回,做保护处理)
|
|
|
|
|
|
message SSGCrossMapOtherUnitShowInfoReq { //project gcrossmap //RouteRule gcrossmap
|
|
|
|
|
|
int32 cur_space_id = 1;
|
|
|
|
|
|
repeated uint64 show_uid_list = 2;
|
|
|
|
|
|
}
|
|
|
|
|
|
message SSGCrossMapOtherUnitShowInfoNtf { //project game
|
|
|
|
|
|
repeated PlayerShowInfo show_info_list = 1; //玩家角色信息
|
|
|
|
|
|
}
|
|
|
|
|
|
//avatar信息同步等数据相关消息(//玩家显示变更通知) 定时更新
|
|
|
|
|
|
message SSGCrossMapUnitShowUpdateNtf { //project gcrossmap //RouteRule gcrossmap
|
|
|
|
|
|
int32 cur_space_id = 1;
|
|
|
|
|
|
repeated PlayerShowInfo show_info_list = 2;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|