235 lines
12 KiB
Protocol Buffer
Raw 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.

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;
}