feat: 添加段位系统。

main
NorthLan 3 years ago
parent fb7c0d4e63
commit 73c0c1a7ae

File diff suppressed because it is too large Load Diff

@ -139,6 +139,18 @@ message UserBuyNobilityReq {
int64 endTime = 12; //
}
message Grade {
int32 grade = 1; //
int32 level = 2; //
int32 star = 3; //
int64 bravePoint = 4; // ()
}
message UserGradeResp {
int64 userId = 1;
Grade grade = 2;
}
// -PvP statistics.pvp.report
message StatPvPReportReq {
message Item {
@ -162,11 +174,29 @@ message StatPvPReportReq {
// -PvP
message StatPvPReportResp {
enum GradeResult {
Keep = 0; // ()
GradeUp = 1; //
LevelUp = 2; //
StarUp = 3; //
GradeDown = 4; //
LevelDown = 5; //
StarDown = 6; //
}
enum GradeReason {
Win = 0; //
Lost = 1; //
BravePoint = 2; //
}
message Item {
int64 uid = 1; // ID
string uname = 2; //
int32 position = 3; //
float score = 4; //
// grade
Grade grade = 5;
GradeResult gradeResult = 6; //
GradeReason gradeReason = 7; //
}
int32 winCamp = 1; // 1- 2-
int64 battleId = 2; // ID
@ -359,6 +389,9 @@ service userCenter {
// rpc increaseWelfare(IncreaseWelfareReq) returns (Empty);
/// @ZeroGroup: grade
rpc getUserGrade(UserIdReq) returns (UserGradeResp);
/// @ZeroGroup: rank
// rankPvp pvp

@ -41,6 +41,8 @@ type UserCenterClient interface {
UserBuyNobility(ctx context.Context, in *UserBuyNobilityReq, opts ...grpc.CallOption) (*Empty, error)
StatPvpReport(ctx context.Context, in *StatPvPReportReq, opts ...grpc.CallOption) (*StatPvPReportResp, error)
DrawGiftPack(ctx context.Context, in *DrawGiftPackReq, opts ...grpc.CallOption) (*DrawGiftPackResp, error)
/// @ZeroGroup: grade
GetUserGrade(ctx context.Context, in *UserIdReq, opts ...grpc.CallOption) (*UserGradeResp, error)
// rankPvp pvp排行
RankPvp(ctx context.Context, in *RankPvpReq, opts ...grpc.CallOption) (*RankPvpResp, error)
RankPvpSubmit(ctx context.Context, in *RankPvpSubmitReq, opts ...grpc.CallOption) (*RankPvpSubmitResp, error)
@ -160,6 +162,15 @@ func (c *userCenterClient) DrawGiftPack(ctx context.Context, in *DrawGiftPackReq
return out, nil
}
func (c *userCenterClient) GetUserGrade(ctx context.Context, in *UserIdReq, opts ...grpc.CallOption) (*UserGradeResp, error) {
out := new(UserGradeResp)
err := c.cc.Invoke(ctx, "/pb.userCenter/getUserGrade", in, out, opts...)
if err != nil {
return nil, err
}
return out, nil
}
func (c *userCenterClient) RankPvp(ctx context.Context, in *RankPvpReq, opts ...grpc.CallOption) (*RankPvpResp, error) {
out := new(RankPvpResp)
err := c.cc.Invoke(ctx, "/pb.userCenter/rankPvp", in, out, opts...)
@ -264,6 +275,8 @@ type UserCenterServer interface {
UserBuyNobility(context.Context, *UserBuyNobilityReq) (*Empty, error)
StatPvpReport(context.Context, *StatPvPReportReq) (*StatPvPReportResp, error)
DrawGiftPack(context.Context, *DrawGiftPackReq) (*DrawGiftPackResp, error)
/// @ZeroGroup: grade
GetUserGrade(context.Context, *UserIdReq) (*UserGradeResp, error)
// rankPvp pvp排行
RankPvp(context.Context, *RankPvpReq) (*RankPvpResp, error)
RankPvpSubmit(context.Context, *RankPvpSubmitReq) (*RankPvpSubmitResp, error)
@ -314,6 +327,9 @@ func (UnimplementedUserCenterServer) StatPvpReport(context.Context, *StatPvPRepo
func (UnimplementedUserCenterServer) DrawGiftPack(context.Context, *DrawGiftPackReq) (*DrawGiftPackResp, error) {
return nil, status.Errorf(codes.Unimplemented, "method DrawGiftPack not implemented")
}
func (UnimplementedUserCenterServer) GetUserGrade(context.Context, *UserIdReq) (*UserGradeResp, error) {
return nil, status.Errorf(codes.Unimplemented, "method GetUserGrade not implemented")
}
func (UnimplementedUserCenterServer) RankPvp(context.Context, *RankPvpReq) (*RankPvpResp, error) {
return nil, status.Errorf(codes.Unimplemented, "method RankPvp not implemented")
}
@ -552,6 +568,24 @@ func _UserCenter_DrawGiftPack_Handler(srv interface{}, ctx context.Context, dec
return interceptor(ctx, in, info, handler)
}
func _UserCenter_GetUserGrade_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
in := new(UserIdReq)
if err := dec(in); err != nil {
return nil, err
}
if interceptor == nil {
return srv.(UserCenterServer).GetUserGrade(ctx, in)
}
info := &grpc.UnaryServerInfo{
Server: srv,
FullMethod: "/pb.userCenter/getUserGrade",
}
handler := func(ctx context.Context, req interface{}) (interface{}, error) {
return srv.(UserCenterServer).GetUserGrade(ctx, req.(*UserIdReq))
}
return interceptor(ctx, in, info, handler)
}
func _UserCenter_RankPvp_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
in := new(RankPvpReq)
if err := dec(in); err != nil {
@ -765,6 +799,10 @@ var UserCenter_ServiceDesc = grpc.ServiceDesc{
MethodName: "drawGiftPack",
Handler: _UserCenter_DrawGiftPack_Handler,
},
{
MethodName: "getUserGrade",
Handler: _UserCenter_GetUserGrade_Handler,
},
{
MethodName: "rankPvp",
Handler: _UserCenter_RankPvp_Handler,

@ -26,6 +26,7 @@ type (
GiftPackItem = pb.GiftPackItem
GiveEliteReq = pb.GiveEliteReq
GiveTitleReq = pb.GiveTitleReq
Grade = pb.Grade
IncreaseWelfareReq = pb.IncreaseWelfareReq
PlatformUserReq = pb.PlatformUserReq
PlatformUserResp = pb.PlatformUserResp
@ -49,6 +50,7 @@ type (
UserDetailsResp = pb.UserDetailsResp
UserDetailsResp_EliteItem = pb.UserDetailsResp_EliteItem
UserDetailsResp_TitleItem = pb.UserDetailsResp_TitleItem
UserGradeResp = pb.UserGradeResp
UserIdReq = pb.UserIdReq
UserIdResp = pb.UserIdResp
UserRankReq = pb.UserRankReq
@ -76,6 +78,8 @@ type (
UserBuyNobility(ctx context.Context, in *UserBuyNobilityReq, opts ...grpc.CallOption) (*Empty, error)
StatPvpReport(ctx context.Context, in *StatPvPReportReq, opts ...grpc.CallOption) (*StatPvPReportResp, error)
DrawGiftPack(ctx context.Context, in *DrawGiftPackReq, opts ...grpc.CallOption) (*DrawGiftPackResp, error)
// @ZeroGroup: grade
GetUserGrade(ctx context.Context, in *UserIdReq, opts ...grpc.CallOption) (*UserGradeResp, error)
// rankPvp pvp排行
RankPvp(ctx context.Context, in *RankPvpReq, opts ...grpc.CallOption) (*RankPvpResp, error)
RankPvpSubmit(ctx context.Context, in *RankPvpSubmitReq, opts ...grpc.CallOption) (*RankPvpSubmitResp, error)
@ -162,6 +166,12 @@ func (m *defaultUserCenter) DrawGiftPack(ctx context.Context, in *DrawGiftPackRe
return client.DrawGiftPack(ctx, in, opts...)
}
// @ZeroGroup: grade
func (m *defaultUserCenter) GetUserGrade(ctx context.Context, in *UserIdReq, opts ...grpc.CallOption) (*UserGradeResp, error) {
client := pb.NewUserCenterClient(m.cli.Conn())
return client.GetUserGrade(ctx, in, opts...)
}
// rankPvp pvp排行
func (m *defaultUserCenter) RankPvp(ctx context.Context, in *RankPvpReq, opts ...grpc.CallOption) (*RankPvpResp, error) {
client := pb.NewUserCenterClient(m.cli.Conn())

@ -34,7 +34,7 @@ Game:
# 1元=10 Coin (1元40个步兵)
CoinFoodRatio: 4
OutbreakCount: 3
OutbreakMaxCount: 10 # 3x10=30
OutbreakMaxCount: 30 # 3x10=30
OutbreakBaseCost: 5
OutbreakCostDict:
1: 1 # 步兵

@ -35,7 +35,7 @@ func NewCommonLiveGameLogic(svcCtx *svc.ServiceContext) *LiveGameLogic {
return resp.LiveGameLogic
}
func (h *commonGameLogic) handleCheckIn(roomId int64, _ []rune, user *pbCommon.PbUser) {
func (h *commonGameLogic) handleCheckIn(roomId int64, _ string, _ []rune, user *pbCommon.PbUser) {
room, err := manager.GameManager.RoomByLiveRoomId(roomId)
if err != nil {
return

@ -20,7 +20,7 @@ type (
GiftHandler GiftHandlerFunc // 礼物处理
NobilityHandler NobilityHandlerFunc // 贵族购买处理
}
CMDHandlerFunc func(roomId int64, content []rune, user *pbCommon.PbUser)
CMDHandlerFunc func(roomId int64, msgId string, content []rune, user *pbCommon.PbUser)
GiftHandlerFunc func(roomId int64, user *pbCommon.PbUser, gift *pbMq.MqGift)
NobilityHandlerFunc func(roomId int64, user *pbCommon.PbUser, nobility *pbMq.MqNobilityBuy)
@ -69,7 +69,7 @@ func (l *LiveGameLogic) HandleDanmaku(pushCommonMsg bool, user *pbCommon.PbUser,
cmdStruct := l.CmdParser.Parse(dm.Msg)
if cmdStruct.IsCMD {
for _, m := range cmdStruct.Matches {
l.handleCMD(dm.LiveRoomId, m.Prefix, m.Content, user)
l.handleCMD(dm.LiveRoomId, dm.MsgId, m.Prefix, m.Content, user)
}
} else if pushCommonMsg {
room, err := manager.GameManager.RoomByLiveRoomId(dm.LiveRoomId)
@ -84,9 +84,9 @@ func (l *LiveGameLogic) HandleDanmaku(pushCommonMsg bool, user *pbCommon.PbUser,
}
}
func (l *LiveGameLogic) handleCMD(roomId int64, prefix string, content []rune, user *pbCommon.PbUser) {
func (l *LiveGameLogic) handleCMD(roomId int64, msgId string, prefix string, content []rune, user *pbCommon.PbUser) {
if h, ok := l.CmdHandlerMapper[prefix]; ok {
h(roomId, content, user)
h(roomId, msgId, content, user)
}
}

@ -23,6 +23,8 @@ import (
type ZhgGameLogic struct {
svcCtx *svc.ServiceContext
*LiveGameLogic
tmpOutbreakCountMap map[string]int64
}
func NewZhgLiveGameLogic(svcCtx *svc.ServiceContext) *LiveGameLogic {
@ -80,6 +82,7 @@ func NewZhgLiveGameLogic(svcCtx *svc.ServiceContext) *LiveGameLogic {
resp := &ZhgGameLogic{
svcCtx: svcCtx,
LiveGameLogic: NewLiveGameLogic(pbRoom.GameType_ZHG, cmdParser),
tmpOutbreakCountMap: make(map[string]int64),
}
resp.RegisterCMDHandler(resp.handleQuery, "q")
resp.RegisterCMDHandler(resp.handleJoinGame, "j")
@ -100,7 +103,7 @@ func NewZhgLiveGameLogic(svcCtx *svc.ServiceContext) *LiveGameLogic {
return resp.LiveGameLogic
}
func (h *ZhgGameLogic) handleQuery(roomId int64, _ []rune, user *pbCommon.PbUser) {
func (h *ZhgGameLogic) handleQuery(roomId int64, _ string, _ []rune, user *pbCommon.PbUser) {
room, err := manager.GameManager.RoomByLiveRoomId(roomId)
if err != nil {
return
@ -163,17 +166,26 @@ func (h *ZhgGameLogic) handleQuery(roomId int64, _ []rune, user *pbCommon.PbUser
})
}
}
grade, err := h.svcCtx.UserCenterRpc.GetUserGrade(h.svcCtx.Ctx, &usercenter.UserIdReq{UserId: user.UserId})
if err != nil {
return
}
resp.Grade = &pbGameZhg.Grade{
Grade: grade.Grade.Grade,
Level: grade.Grade.Level,
Star: grade.Grade.Star,
BravePoint: grade.Grade.BravePoint,
}
room.Broadcast(pb.PushUserQuery, resp)
}
func (h *ZhgGameLogic) handleJoinGame(roomId int64, _ []rune, user *pbCommon.PbUser) {
func (h *ZhgGameLogic) handleJoinGame(roomId int64, _ string, _ []rune, user *pbCommon.PbUser) {
room, err := manager.GameManager.RoomByLiveRoomId(roomId)
if err != nil {
return
}
logger.SLog.Debugf("用户 [%s] 加入游戏", user.Username)
details, err := h.svcCtx.UserCenterRpc.GetUserDetails(h.svcCtx.Ctx, &usercenter.UserIdReq{
UserId: user.UserId,
})
@ -203,10 +215,22 @@ func (h *ZhgGameLogic) handleJoinGame(roomId int64, _ []rune, user *pbCommon.PbU
}
}
grade, err := h.svcCtx.UserCenterRpc.GetUserGrade(h.svcCtx.Ctx, &usercenter.UserIdReq{UserId: user.UserId})
if err != nil {
return
}
resp.Grade = &pbGameZhg.Grade{
Grade: grade.Grade.Grade,
Level: grade.Grade.Level,
Star: grade.Grade.Star,
BravePoint: grade.Grade.BravePoint,
}
logger.SLog.Debugf("用户 [%s] 加入游戏", user.Username)
room.Broadcast(pb.PushZhgJoinGame, resp)
}
func (h *ZhgGameLogic) handleOutbreak(roomId int64, content []rune, user *pbCommon.PbUser) {
func (h *ZhgGameLogic) handleOutbreak(roomId int64, msgId string, content []rune, user *pbCommon.PbUser) {
room, err := manager.GameManager.RoomByLiveRoomId(roomId)
if err != nil {
return
@ -216,14 +240,15 @@ func (h *ZhgGameLogic) handleOutbreak(roomId int64, content []rune, user *pbComm
logger.SLog.Debugf("用户 [%s] 普通暴兵", user.Username)
room.Broadcast(pb.PushZhgOutbreak, &pbGameZhg.Outbreak{User: user})
} else {
h.handleOutbreakFood(room, content, user)
h.handleOutbreakFood(room, msgId, content, user)
}
}
func (h *ZhgGameLogic) handleOutbreakFood(room *manager.Room, content []rune, user *pbCommon.PbUser) {
func (h *ZhgGameLogic) handleOutbreakFood(room *manager.Room, msgId string, content []rune, user *pbCommon.PbUser) {
if len(content) < 1 {
return
}
zhgCfg := config.Config.Game.Zhg
// s1,10s2,10s3,10s4,10 11,0 111,
contentStr := string(content)
@ -231,7 +256,7 @@ func (h *ZhgGameLogic) handleOutbreakFood(room *manager.Room, content []rune, us
var unitTypeStr string
var count int64
var err error
idxSplit := strings.IndexRune(contentStr, ',')
idxSplit := strings.IndexRune(contentStr, ' ')
if idxSplit == -1 {
// 没有分隔符,判断内容位数?
unitTypeStr = string(content)
@ -254,6 +279,12 @@ func (h *ZhgGameLogic) handleOutbreakFood(room *manager.Room, content []rune, us
}
}
//if allCount, ok := h.tmpOutbreakCountMap[msgId]; ok {
// if allCount+count > zhgCfg.OutbreakMaxCount {
// return
// }
//}
unitType, err := strconv.Atoi(unitTypeStr)
if err != nil {
return
@ -276,7 +307,7 @@ func (h *ZhgGameLogic) handleOutbreakFood(room *manager.Room, content []rune, us
})
}
func (h *ZhgGameLogic) handleCreateUnit(roomId int64, content []rune, user *pbCommon.PbUser) {
func (h *ZhgGameLogic) handleCreateUnit(roomId int64, _ string, content []rune, user *pbCommon.PbUser) {
room, err := manager.GameManager.RoomByLiveRoomId(roomId)
if err != nil {
return
@ -293,7 +324,7 @@ func (h *ZhgGameLogic) handleCreateUnit(roomId int64, content []rune, user *pbCo
})
}
func (h *ZhgGameLogic) handleMove(roomId int64, content []rune, user *pbCommon.PbUser) {
func (h *ZhgGameLogic) handleMove(roomId int64, _ string, content []rune, user *pbCommon.PbUser) {
room, err := manager.GameManager.RoomByLiveRoomId(roomId)
if err != nil {
return
@ -310,7 +341,7 @@ func (h *ZhgGameLogic) handleMove(roomId int64, content []rune, user *pbCommon.P
})
}
func (h *ZhgGameLogic) handleWai(roomId int64, _ []rune, user *pbCommon.PbUser) {
func (h *ZhgGameLogic) handleWai(roomId int64, _ string, _ []rune, user *pbCommon.PbUser) {
room, err := manager.GameManager.RoomByLiveRoomId(roomId)
if err != nil {
return
@ -321,7 +352,7 @@ func (h *ZhgGameLogic) handleWai(roomId int64, _ []rune, user *pbCommon.PbUser)
room.Broadcast(pb.PushZhgWhere, &pbGameZhg.Wai{User: user})
}
func (h *ZhgGameLogic) handleMode(roomId int64, content []rune, user *pbCommon.PbUser) {
func (h *ZhgGameLogic) handleMode(roomId int64, _ string, content []rune, user *pbCommon.PbUser) {
room, err := manager.GameManager.RoomByLiveRoomId(roomId)
if err != nil {
return
@ -339,7 +370,7 @@ func (h *ZhgGameLogic) handleMode(roomId int64, content []rune, user *pbCommon.P
})
}
func (h *ZhgGameLogic) handleBuyFood(roomId int64, content []rune, user *pbCommon.PbUser) {
func (h *ZhgGameLogic) handleBuyFood(roomId int64, _ string, content []rune, user *pbCommon.PbUser) {
room, err := manager.GameManager.RoomByLiveRoomId(roomId)
if err != nil {
return
@ -363,7 +394,7 @@ func (h *ZhgGameLogic) handleBuyFood(roomId int64, content []rune, user *pbCommo
})
}
func (h *ZhgGameLogic) handleBuyElite(roomId int64, content []rune, user *pbCommon.PbUser) {
func (h *ZhgGameLogic) handleBuyElite(roomId int64, _ string, content []rune, user *pbCommon.PbUser) {
room, err := manager.GameManager.RoomByLiveRoomId(roomId)
if err != nil {
return
@ -401,7 +432,7 @@ func (h *ZhgGameLogic) handleBuyElite(roomId int64, content []rune, user *pbComm
room.Broadcast(pb.PushBuyGoods, resp)
}
func (h *ZhgGameLogic) handleChangeElite(roomId int64, content []rune, user *pbCommon.PbUser) {
func (h *ZhgGameLogic) handleChangeElite(roomId int64, _ string, content []rune, user *pbCommon.PbUser) {
room, err := manager.GameManager.RoomByLiveRoomId(roomId)
if err != nil {
return
@ -434,7 +465,7 @@ func (h *ZhgGameLogic) handleChangeElite(roomId int64, content []rune, user *pbC
room.Broadcast(pb.PushZhgChangeElite, resp)
}
func (h *ZhgGameLogic) handleChangeTitle(roomId int64, content []rune, user *pbCommon.PbUser) {
func (h *ZhgGameLogic) handleChangeTitle(roomId int64, _ string, content []rune, user *pbCommon.PbUser) {
room, err := manager.GameManager.RoomByLiveRoomId(roomId)
if err != nil {
return
@ -467,7 +498,7 @@ func (h *ZhgGameLogic) handleChangeTitle(roomId int64, content []rune, user *pbC
room.Broadcast(pb.PushZhgChangeTitle, resp)
}
func (h *ZhgGameLogic) handleRankSubmit(roomId int64, content []rune, user *pbCommon.PbUser) {
func (h *ZhgGameLogic) handleRankSubmit(roomId int64, _ string, content []rune, user *pbCommon.PbUser) {
room, err := manager.GameManager.RoomByLiveRoomId(roomId)
if err != nil {
return
@ -488,6 +519,9 @@ func (h *ZhgGameLogic) handleRankSubmit(roomId int64, content []rune, user *pbCo
rankType := pbVars.RankType_General
if r, err := strconv.ParseInt(string(content), 10, 0); err == nil {
rankType = pbVars.RankType(r)
} else {
// 无效的rankTye
return
}
rpcResp, err := h.svcCtx.UserCenterRpc.RankPvpSubmit(h.svcCtx.Ctx, &usercenter.RankPvpSubmitReq{
RankType: rankType,

@ -55,7 +55,7 @@ func NewZhghzLiveGameLogic() *ZhghzGameLogic {
return resp
}
func (h *ZhghzGameLogic) handleJoinGame(roomId int64, content []rune, user *pbCommon.PbUser) {
func (h *ZhghzGameLogic) handleJoinGame(roomId int64, _ string, content []rune, user *pbCommon.PbUser) {
room, err := manager.GameManager.RoomByLiveRoomId(roomId)
if err != nil {
return
@ -72,7 +72,7 @@ func (h *ZhghzGameLogic) handleJoinGame(roomId int64, content []rune, user *pbCo
})
}
func (h *ZhghzGameLogic) handleMove(roomId int64, content []rune, user *pbCommon.PbUser) {
func (h *ZhghzGameLogic) handleMove(roomId int64, _ string, content []rune, user *pbCommon.PbUser) {
room, err := manager.GameManager.RoomByLiveRoomId(roomId)
if err != nil {
return
@ -89,7 +89,7 @@ func (h *ZhghzGameLogic) handleMove(roomId int64, content []rune, user *pbCommon
})
}
func (h *ZhghzGameLogic) handleShoot(roomId int64, _ []rune, user *pbCommon.PbUser) {
func (h *ZhghzGameLogic) handleShoot(roomId int64, _ string, _ []rune, user *pbCommon.PbUser) {
room, err := manager.GameManager.RoomByLiveRoomId(roomId)
if err != nil {
return
@ -99,7 +99,7 @@ func (h *ZhghzGameLogic) handleShoot(roomId int64, _ []rune, user *pbCommon.PbUs
})
}
func (h *ZhghzGameLogic) handleWai(roomId int64, _ []rune, user *pbCommon.PbUser) {
func (h *ZhghzGameLogic) handleWai(roomId int64, _ string, _ []rune, user *pbCommon.PbUser) {
room, err := manager.GameManager.RoomByLiveRoomId(roomId)
if err != nil {
return

@ -61,7 +61,7 @@ func NewZhgzdLiveGameLogic(svcCtx *svc.ServiceContext) *LiveGameLogic {
return resp.LiveGameLogic
}
func (h *ZhgzdGameLogic) handleJoinGame(roomId int64, _ []rune, user *pbCommon.PbUser) {
func (h *ZhgzdGameLogic) handleJoinGame(roomId int64, _ string, _ []rune, user *pbCommon.PbUser) {
room, err := manager.GameManager.RoomByLiveRoomId(roomId)
if err != nil {
return
@ -71,13 +71,13 @@ func (h *ZhgzdGameLogic) handleJoinGame(roomId int64, _ []rune, user *pbCommon.P
room.Broadcast(pb.PushZhgzdJoinGame, &pbGameZhgzd.JoinGame{User: user})
}
func (h *ZhgzdGameLogic) handleDispatch(roomId int64, content []rune, user *pbCommon.PbUser) {
func (h *ZhgzdGameLogic) handleDispatch(roomId int64, msgId string, content []rune, user *pbCommon.PbUser) {
room, err := manager.GameManager.RoomByLiveRoomId(roomId)
if err != nil {
return
}
if len(content) == 0 {
h.handleOutbreak(roomId, content, user)
h.handleOutbreak(roomId, msgId, content, user)
} else {
const cmdType = "s"
@ -102,7 +102,7 @@ func (h *ZhgzdGameLogic) handleDispatch(roomId int64, content []rune, user *pbCo
}
}
func (h *ZhgzdGameLogic) handleOutbreak(roomId int64, content []rune, user *pbCommon.PbUser) {
func (h *ZhgzdGameLogic) handleOutbreak(roomId int64, _ string, content []rune, user *pbCommon.PbUser) {
room, err := manager.GameManager.RoomByLiveRoomId(roomId)
if err != nil {
return
@ -126,7 +126,7 @@ func (h *ZhgzdGameLogic) handleOutbreak(roomId int64, content []rune, user *pbCo
})
}
func (h *ZhgzdGameLogic) handleChangeUnit(roomId int64, content []rune, user *pbCommon.PbUser) {
func (h *ZhgzdGameLogic) handleChangeUnit(roomId int64, _ string, content []rune, user *pbCommon.PbUser) {
room, err := manager.GameManager.RoomByLiveRoomId(roomId)
if err != nil {
return
@ -153,7 +153,7 @@ func (h *ZhgzdGameLogic) handleChangeUnit(roomId int64, content []rune, user *pb
})
}
func (h *ZhgzdGameLogic) handlePosition(roomId int64, content []rune, user *pbCommon.PbUser) {
func (h *ZhgzdGameLogic) handlePosition(roomId int64, _ string, content []rune, user *pbCommon.PbUser) {
room, err := manager.GameManager.RoomByLiveRoomId(roomId)
if err != nil {
return
@ -181,7 +181,7 @@ func (h *ZhgzdGameLogic) handlePosition(roomId int64, content []rune, user *pbCo
})
}
func (h *ZhgzdGameLogic) handleMove(roomId int64, content []rune, user *pbCommon.PbUser) {
func (h *ZhgzdGameLogic) handleMove(roomId int64, _ string, content []rune, user *pbCommon.PbUser) {
room, err := manager.GameManager.RoomByLiveRoomId(roomId)
if err != nil {
return
@ -209,7 +209,7 @@ func (h *ZhgzdGameLogic) handleMove(roomId int64, content []rune, user *pbCommon
})
}
func (h *ZhgzdGameLogic) handleWhere(roomId int64, _ []rune, user *pbCommon.PbUser) {
func (h *ZhgzdGameLogic) handleWhere(roomId int64, _ string, _ []rune, user *pbCommon.PbUser) {
room, err := manager.GameManager.RoomByLiveRoomId(roomId)
if err != nil {
return
@ -220,7 +220,7 @@ func (h *ZhgzdGameLogic) handleWhere(roomId int64, _ []rune, user *pbCommon.PbUs
room.Broadcast(pb.PushZhgzdWhere, &pbGameZhgzd.Where{User: user})
}
func (h *ZhgzdGameLogic) handleMode(roomId int64, content []rune, user *pbCommon.PbUser) {
func (h *ZhgzdGameLogic) handleMode(roomId int64, _ string, content []rune, user *pbCommon.PbUser) {
room, err := manager.GameManager.RoomByLiveRoomId(roomId)
if err != nil {
return

@ -68,7 +68,7 @@ func (p *PvP) Report(s *session.Session, msg *pbGameZhg.StatPvPReportReq) error
IsGeneral: item.IsGeneral,
})
}
// 战局ID
// 战
resp, err := p.svcCtx.UserCenterRpc.StatPvpReport(p.svcCtx.Ctx, &usercenter.StatPvPReportReq{
WinCamp: msg.WinCamp,
BattleId: manager.GameManager.BattleIdBySession(s),
@ -86,6 +86,14 @@ func (p *PvP) Report(s *session.Session, msg *pbGameZhg.StatPvPReportReq) error
Uname: item.Uname,
Position: item.Position,
Score: item.Score,
Grade: &pbGameZhg.StatPvPReportResp_Grade{
Grade: item.Grade.Grade,
Level: item.Grade.Level,
Star: item.Grade.Star,
BravePoint: item.Grade.BravePoint,
},
GradeReason: pbGameZhg.StatPvPReportResp_GradeReason(item.GradeReason),
GradeResult: pbGameZhg.StatPvPReportResp_GradeResult(item.GradeResult),
})
}
for _, item := range resp.LostItems {
@ -94,6 +102,14 @@ func (p *PvP) Report(s *session.Session, msg *pbGameZhg.StatPvPReportReq) error
Uname: item.Uname,
Position: item.Position,
Score: item.Score,
Grade: &pbGameZhg.StatPvPReportResp_Grade{
Grade: item.Grade.Grade,
Level: item.Grade.Level,
Star: item.Grade.Star,
BravePoint: item.Grade.BravePoint,
},
GradeReason: pbGameZhg.StatPvPReportResp_GradeReason(item.GradeReason),
GradeResult: pbGameZhg.StatPvPReportResp_GradeResult(item.GradeResult),
})
}

@ -25,38 +25,42 @@ namespace Pb.Game.Zhg {
byte[] descriptorData = global::System.Convert.FromBase64String(
string.Concat(
"ChZnYW1lL3poZy9jb21tYW5kLnByb3RvEgtwYi5nYW1lLnpoZxoTY29tbW9u",
"L2NvbW1vbi5wcm90byKqAQoISm9pbkdhbWUSHwoEdXNlchgBIAEoCzIRLnBi",
"LmNvbW1vbi5QYlVzZXISFQoNbm9iaWxpdHlMZXZlbBgCIAEoBRIMCgRjb2lu",
"GAMgASgDEioKDGN1cnJlbnRUaXRsZRgKIAEoCzIULnBiLmNvbW1vbi5UaXRs",
"ZUl0ZW0SLAoMY3VycmVudEVsaXRlGAsgASgLMhYucGIuZ2FtZS56aGcuRWxp",
"dGVJdGVtIjsKCkNyZWF0ZVVuaXQSHwoEdXNlchgBIAEoCzIRLnBiLmNvbW1v",
"bi5QYlVzZXISDAoEdW5pdBgCIAEoCSI1CgRNb3ZlEh8KBHVzZXIYASABKAsy",
"ES5wYi5jb21tb24uUGJVc2VyEgwKBGxpbmUYAiABKAkiKwoIT3V0YnJlYWsS",
"HwoEdXNlchgBIAEoCzIRLnBiLmNvbW1vbi5QYlVzZXIiXgoMT3V0YnJlYWtG",
"b29kEh8KBHVzZXIYASABKAsyES5wYi5jb21tb24uUGJVc2VyEhAKCHVuaXRU",
"eXBlGAIgASgJEg0KBWNvdW50GAMgASgFEgwKBGNvc3QYBCABKAMiJgoDV2Fp",
"Eh8KBHVzZXIYASABKAsyES5wYi5jb21tb24uUGJVc2VyIj0KDEJ1aWxkaW5n",
"TW9kZRIfCgR1c2VyGAEgASgLMhEucGIuY29tbW9uLlBiVXNlchIMCgRtb2Rl",
"GAIgASgJIk0KC0NoYW5nZUVsaXRlEgwKBGNvZGUYASABKAUSHwoEdXNlchgC",
"IAEoCzIRLnBiLmNvbW1vbi5QYlVzZXISDwoHZWxpdGVJZBgDIAEoAyJbCgtD",
"aGFuZ2VUaXRsZRIMCgRjb2RlGAEgASgFEh8KBHVzZXIYAiABKAsyES5wYi5j",
"b21tb24uUGJVc2VyEg8KB3RpdGxlSWQYAyABKAMSDAoEbmFtZRgEIAEoCSI7",
"Cg1CdXlCYXR0bGVGb29kEg4KBnVzZXJJZBgBIAEoAxIMCgRjb3N0GAIgASgD",
"EgwKBGZvb2QYAyABKAMiNQoJRWxpdGVJdGVtEgoKAmlkGAEgASgDEgwKBHNv",
"cnQYAiABKAUSDgoGcmVtYWluGAMgASgFItICCgxVc2VyUXVlcnlNc2cSHwoE",
"dXNlchgBIAEoCzIRLnBiLmNvbW1vbi5QYlVzZXISMAoEcmFuaxgCIAMoCzIi",
"LnBiLmdhbWUuemhnLlVzZXJRdWVyeU1zZy5SYW5rSXRlbRIMCgRjb2luGAMg",
"ASgDEiQKBnRpdGxlcxgKIAMoCzIULnBiLmNvbW1vbi5UaXRsZUl0ZW0SJgoG",
"ZWxpdGVzGAsgAygLMhYucGIuZ2FtZS56aGcuRWxpdGVJdGVtEioKDGN1cnJl",
"bnRUaXRsZRgMIAEoCzIULnBiLmNvbW1vbi5UaXRsZUl0ZW0SLAoMY3VycmVu",
"dEVsaXRlGA0gASgLMhYucGIuZ2FtZS56aGcuRWxpdGVJdGVtGjkKCFJhbmtJ",
"dGVtEhAKCHJhbmtUeXBlGAEgASgFEg0KBXNjb3JlGAIgASgDEgwKBHJhbmsY",
"AyABKAVCIFoeZGNnL2dhbWUvcGIvZ2FtZS96aGc7cGJHYW1lWmhnYgZwcm90",
"bzM="));
"L2NvbW1vbi5wcm90byJHCgVHcmFkZRINCgVncmFkZRgBIAEoBRINCgVsZXZl",
"bBgCIAEoBRIMCgRzdGFyGAMgASgFEhIKCmJyYXZlUG9pbnQYBCABKAMizQEK",
"CEpvaW5HYW1lEh8KBHVzZXIYASABKAsyES5wYi5jb21tb24uUGJVc2VyEhUK",
"DW5vYmlsaXR5TGV2ZWwYAiABKAUSDAoEY29pbhgDIAEoAxIhCgVncmFkZRgE",
"IAEoCzISLnBiLmdhbWUuemhnLkdyYWRlEioKDGN1cnJlbnRUaXRsZRgKIAEo",
"CzIULnBiLmNvbW1vbi5UaXRsZUl0ZW0SLAoMY3VycmVudEVsaXRlGAsgASgL",
"MhYucGIuZ2FtZS56aGcuRWxpdGVJdGVtIjsKCkNyZWF0ZVVuaXQSHwoEdXNl",
"chgBIAEoCzIRLnBiLmNvbW1vbi5QYlVzZXISDAoEdW5pdBgCIAEoCSI1CgRN",
"b3ZlEh8KBHVzZXIYASABKAsyES5wYi5jb21tb24uUGJVc2VyEgwKBGxpbmUY",
"AiABKAkiKwoIT3V0YnJlYWsSHwoEdXNlchgBIAEoCzIRLnBiLmNvbW1vbi5Q",
"YlVzZXIiXgoMT3V0YnJlYWtGb29kEh8KBHVzZXIYASABKAsyES5wYi5jb21t",
"b24uUGJVc2VyEhAKCHVuaXRUeXBlGAIgASgJEg0KBWNvdW50GAMgASgFEgwK",
"BGNvc3QYBCABKAMiJgoDV2FpEh8KBHVzZXIYASABKAsyES5wYi5jb21tb24u",
"UGJVc2VyIj0KDEJ1aWxkaW5nTW9kZRIfCgR1c2VyGAEgASgLMhEucGIuY29t",
"bW9uLlBiVXNlchIMCgRtb2RlGAIgASgJIk0KC0NoYW5nZUVsaXRlEgwKBGNv",
"ZGUYASABKAUSHwoEdXNlchgCIAEoCzIRLnBiLmNvbW1vbi5QYlVzZXISDwoH",
"ZWxpdGVJZBgDIAEoAyJbCgtDaGFuZ2VUaXRsZRIMCgRjb2RlGAEgASgFEh8K",
"BHVzZXIYAiABKAsyES5wYi5jb21tb24uUGJVc2VyEg8KB3RpdGxlSWQYAyAB",
"KAMSDAoEbmFtZRgEIAEoCSI7Cg1CdXlCYXR0bGVGb29kEg4KBnVzZXJJZBgB",
"IAEoAxIMCgRjb3N0GAIgASgDEgwKBGZvb2QYAyABKAMiNQoJRWxpdGVJdGVt",
"EgoKAmlkGAEgASgDEgwKBHNvcnQYAiABKAUSDgoGcmVtYWluGAMgASgFIvUC",
"CgxVc2VyUXVlcnlNc2cSHwoEdXNlchgBIAEoCzIRLnBiLmNvbW1vbi5QYlVz",
"ZXISMAoEcmFuaxgCIAMoCzIiLnBiLmdhbWUuemhnLlVzZXJRdWVyeU1zZy5S",
"YW5rSXRlbRIMCgRjb2luGAMgASgDEiEKBWdyYWRlGAQgASgLMhIucGIuZ2Ft",
"ZS56aGcuR3JhZGUSJAoGdGl0bGVzGAogAygLMhQucGIuY29tbW9uLlRpdGxl",
"SXRlbRImCgZlbGl0ZXMYCyADKAsyFi5wYi5nYW1lLnpoZy5FbGl0ZUl0ZW0S",
"KgoMY3VycmVudFRpdGxlGAwgASgLMhQucGIuY29tbW9uLlRpdGxlSXRlbRIs",
"CgxjdXJyZW50RWxpdGUYDSABKAsyFi5wYi5nYW1lLnpoZy5FbGl0ZUl0ZW0a",
"OQoIUmFua0l0ZW0SEAoIcmFua1R5cGUYASABKAUSDQoFc2NvcmUYAiABKAMS",
"DAoEcmFuaxgDIAEoBUIgWh5kY2cvZ2FtZS9wYi9nYW1lL3poZztwYkdhbWVa",
"aGdiBnByb3RvMw=="));
descriptor = pbr::FileDescriptor.FromGeneratedCode(descriptorData,
new pbr::FileDescriptor[] { global::Pb.Common.CommonReflection.Descriptor, },
new pbr::GeneratedClrTypeInfo(null, null, new pbr::GeneratedClrTypeInfo[] {
new pbr::GeneratedClrTypeInfo(typeof(global::Pb.Game.Zhg.JoinGame), global::Pb.Game.Zhg.JoinGame.Parser, new[]{ "User", "NobilityLevel", "Coin", "CurrentTitle", "CurrentElite" }, null, null, null, null),
new pbr::GeneratedClrTypeInfo(typeof(global::Pb.Game.Zhg.Grade), global::Pb.Game.Zhg.Grade.Parser, new[]{ "Grade_", "Level", "Star", "BravePoint" }, null, null, null, null),
new pbr::GeneratedClrTypeInfo(typeof(global::Pb.Game.Zhg.JoinGame), global::Pb.Game.Zhg.JoinGame.Parser, new[]{ "User", "NobilityLevel", "Coin", "Grade", "CurrentTitle", "CurrentElite" }, null, null, null, null),
new pbr::GeneratedClrTypeInfo(typeof(global::Pb.Game.Zhg.CreateUnit), global::Pb.Game.Zhg.CreateUnit.Parser, new[]{ "User", "Unit" }, null, null, null, null),
new pbr::GeneratedClrTypeInfo(typeof(global::Pb.Game.Zhg.Move), global::Pb.Game.Zhg.Move.Parser, new[]{ "User", "Line" }, null, null, null, null),
new pbr::GeneratedClrTypeInfo(typeof(global::Pb.Game.Zhg.Outbreak), global::Pb.Game.Zhg.Outbreak.Parser, new[]{ "User" }, null, null, null, null),
@ -67,13 +71,325 @@ namespace Pb.Game.Zhg {
new pbr::GeneratedClrTypeInfo(typeof(global::Pb.Game.Zhg.ChangeTitle), global::Pb.Game.Zhg.ChangeTitle.Parser, new[]{ "Code", "User", "TitleId", "Name" }, null, null, null, null),
new pbr::GeneratedClrTypeInfo(typeof(global::Pb.Game.Zhg.BuyBattleFood), global::Pb.Game.Zhg.BuyBattleFood.Parser, new[]{ "UserId", "Cost", "Food" }, null, null, null, null),
new pbr::GeneratedClrTypeInfo(typeof(global::Pb.Game.Zhg.EliteItem), global::Pb.Game.Zhg.EliteItem.Parser, new[]{ "Id", "Sort", "Remain" }, null, null, null, null),
new pbr::GeneratedClrTypeInfo(typeof(global::Pb.Game.Zhg.UserQueryMsg), global::Pb.Game.Zhg.UserQueryMsg.Parser, new[]{ "User", "Rank", "Coin", "Titles", "Elites", "CurrentTitle", "CurrentElite" }, null, null, null, new pbr::GeneratedClrTypeInfo[] { new pbr::GeneratedClrTypeInfo(typeof(global::Pb.Game.Zhg.UserQueryMsg.Types.RankItem), global::Pb.Game.Zhg.UserQueryMsg.Types.RankItem.Parser, new[]{ "RankType", "Score", "Rank" }, null, null, null, null)})
new pbr::GeneratedClrTypeInfo(typeof(global::Pb.Game.Zhg.UserQueryMsg), global::Pb.Game.Zhg.UserQueryMsg.Parser, new[]{ "User", "Rank", "Coin", "Grade", "Titles", "Elites", "CurrentTitle", "CurrentElite" }, null, null, null, new pbr::GeneratedClrTypeInfo[] { new pbr::GeneratedClrTypeInfo(typeof(global::Pb.Game.Zhg.UserQueryMsg.Types.RankItem), global::Pb.Game.Zhg.UserQueryMsg.Types.RankItem.Parser, new[]{ "RankType", "Score", "Rank" }, null, null, null, null)})
}));
}
#endregion
}
#region Messages
public sealed partial class Grade : pb::IMessage<Grade>
#if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
, pb::IBufferMessage
#endif
{
private static readonly pb::MessageParser<Grade> _parser = new pb::MessageParser<Grade>(() => new Grade());
private pb::UnknownFieldSet _unknownFields;
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
[global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
public static pb::MessageParser<Grade> Parser { get { return _parser; } }
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
[global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
public static pbr::MessageDescriptor Descriptor {
get { return global::Pb.Game.Zhg.CommandReflection.Descriptor.MessageTypes[0]; }
}
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
[global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
pbr::MessageDescriptor pb::IMessage.Descriptor {
get { return Descriptor; }
}
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
[global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
public Grade() {
OnConstruction();
}
partial void OnConstruction();
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
[global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
public Grade(Grade other) : this() {
grade_ = other.grade_;
level_ = other.level_;
star_ = other.star_;
bravePoint_ = other.bravePoint_;
_unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields);
}
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
[global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
public Grade Clone() {
return new Grade(this);
}
/// <summary>Field number for the "grade" field.</summary>
public const int Grade_FieldNumber = 1;
private int grade_;
/// <summary>
/// 段位
/// </summary>
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
[global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
public int Grade_ {
get { return grade_; }
set {
grade_ = value;
}
}
/// <summary>Field number for the "level" field.</summary>
public const int LevelFieldNumber = 2;
private int level_;
/// <summary>
/// 段位等级
/// </summary>
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
[global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
public int Level {
get { return level_; }
set {
level_ = value;
}
}
/// <summary>Field number for the "star" field.</summary>
public const int StarFieldNumber = 3;
private int star_;
/// <summary>
/// 等级星级
/// </summary>
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
[global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
public int Star {
get { return star_; }
set {
star_ = value;
}
}
/// <summary>Field number for the "bravePoint" field.</summary>
public const int BravePointFieldNumber = 4;
private long bravePoint_;
/// <summary>
/// 剩余 骁勇分(历史评分累计)
/// </summary>
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
[global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
public long BravePoint {
get { return bravePoint_; }
set {
bravePoint_ = value;
}
}
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
[global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
public override bool Equals(object other) {
return Equals(other as Grade);
}
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
[global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
public bool Equals(Grade other) {
if (ReferenceEquals(other, null)) {
return false;
}
if (ReferenceEquals(other, this)) {
return true;
}
if (Grade_ != other.Grade_) return false;
if (Level != other.Level) return false;
if (Star != other.Star) return false;
if (BravePoint != other.BravePoint) return false;
return Equals(_unknownFields, other._unknownFields);
}
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
[global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
public override int GetHashCode() {
int hash = 1;
if (Grade_ != 0) hash ^= Grade_.GetHashCode();
if (Level != 0) hash ^= Level.GetHashCode();
if (Star != 0) hash ^= Star.GetHashCode();
if (BravePoint != 0L) hash ^= BravePoint.GetHashCode();
if (_unknownFields != null) {
hash ^= _unknownFields.GetHashCode();
}
return hash;
}
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
[global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
public override string ToString() {
return pb::JsonFormatter.ToDiagnosticString(this);
}
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
[global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
public void WriteTo(pb::CodedOutputStream output) {
#if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
output.WriteRawMessage(this);
#else
if (Grade_ != 0) {
output.WriteRawTag(8);
output.WriteInt32(Grade_);
}
if (Level != 0) {
output.WriteRawTag(16);
output.WriteInt32(Level);
}
if (Star != 0) {
output.WriteRawTag(24);
output.WriteInt32(Star);
}
if (BravePoint != 0L) {
output.WriteRawTag(32);
output.WriteInt64(BravePoint);
}
if (_unknownFields != null) {
_unknownFields.WriteTo(output);
}
#endif
}
#if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
[global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
void pb::IBufferMessage.InternalWriteTo(ref pb::WriteContext output) {
if (Grade_ != 0) {
output.WriteRawTag(8);
output.WriteInt32(Grade_);
}
if (Level != 0) {
output.WriteRawTag(16);
output.WriteInt32(Level);
}
if (Star != 0) {
output.WriteRawTag(24);
output.WriteInt32(Star);
}
if (BravePoint != 0L) {
output.WriteRawTag(32);
output.WriteInt64(BravePoint);
}
if (_unknownFields != null) {
_unknownFields.WriteTo(ref output);
}
}
#endif
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
[global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
public int CalculateSize() {
int size = 0;
if (Grade_ != 0) {
size += 1 + pb::CodedOutputStream.ComputeInt32Size(Grade_);
}
if (Level != 0) {
size += 1 + pb::CodedOutputStream.ComputeInt32Size(Level);
}
if (Star != 0) {
size += 1 + pb::CodedOutputStream.ComputeInt32Size(Star);
}
if (BravePoint != 0L) {
size += 1 + pb::CodedOutputStream.ComputeInt64Size(BravePoint);
}
if (_unknownFields != null) {
size += _unknownFields.CalculateSize();
}
return size;
}
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
[global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
public void MergeFrom(Grade other) {
if (other == null) {
return;
}
if (other.Grade_ != 0) {
Grade_ = other.Grade_;
}
if (other.Level != 0) {
Level = other.Level;
}
if (other.Star != 0) {
Star = other.Star;
}
if (other.BravePoint != 0L) {
BravePoint = other.BravePoint;
}
_unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields);
}
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
[global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
public void MergeFrom(pb::CodedInputStream input) {
#if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
input.ReadRawMessage(this);
#else
uint tag;
while ((tag = input.ReadTag()) != 0) {
switch(tag) {
default:
_unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input);
break;
case 8: {
Grade_ = input.ReadInt32();
break;
}
case 16: {
Level = input.ReadInt32();
break;
}
case 24: {
Star = input.ReadInt32();
break;
}
case 32: {
BravePoint = input.ReadInt64();
break;
}
}
}
#endif
}
#if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
[global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
void pb::IBufferMessage.InternalMergeFrom(ref pb::ParseContext input) {
uint tag;
while ((tag = input.ReadTag()) != 0) {
switch(tag) {
default:
_unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, ref input);
break;
case 8: {
Grade_ = input.ReadInt32();
break;
}
case 16: {
Level = input.ReadInt32();
break;
}
case 24: {
Star = input.ReadInt32();
break;
}
case 32: {
BravePoint = input.ReadInt64();
break;
}
}
}
}
#endif
}
/// <summary>
/// 加入游戏 push -> game.join
/// </summary>
@ -91,7 +407,7 @@ namespace Pb.Game.Zhg {
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
[global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
public static pbr::MessageDescriptor Descriptor {
get { return global::Pb.Game.Zhg.CommandReflection.Descriptor.MessageTypes[0]; }
get { return global::Pb.Game.Zhg.CommandReflection.Descriptor.MessageTypes[1]; }
}
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
@ -114,6 +430,7 @@ namespace Pb.Game.Zhg {
user_ = other.user_ != null ? other.user_.Clone() : null;
nobilityLevel_ = other.nobilityLevel_;
coin_ = other.coin_;
grade_ = other.grade_ != null ? other.grade_.Clone() : null;
currentTitle_ = other.currentTitle_ != null ? other.currentTitle_.Clone() : null;
currentElite_ = other.currentElite_ != null ? other.currentElite_.Clone() : null;
_unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields);
@ -167,6 +484,21 @@ namespace Pb.Game.Zhg {
}
}
/// <summary>Field number for the "grade" field.</summary>
public const int GradeFieldNumber = 4;
private global::Pb.Game.Zhg.Grade grade_;
/// <summary>
/// 段位
/// </summary>
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
[global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
public global::Pb.Game.Zhg.Grade Grade {
get { return grade_; }
set {
grade_ = value;
}
}
/// <summary>Field number for the "currentTitle" field.</summary>
public const int CurrentTitleFieldNumber = 10;
private global::Pb.Common.TitleItem currentTitle_;
@ -215,6 +547,7 @@ namespace Pb.Game.Zhg {
if (!object.Equals(User, other.User)) return false;
if (NobilityLevel != other.NobilityLevel) return false;
if (Coin != other.Coin) return false;
if (!object.Equals(Grade, other.Grade)) return false;
if (!object.Equals(CurrentTitle, other.CurrentTitle)) return false;
if (!object.Equals(CurrentElite, other.CurrentElite)) return false;
return Equals(_unknownFields, other._unknownFields);
@ -227,6 +560,7 @@ namespace Pb.Game.Zhg {
if (user_ != null) hash ^= User.GetHashCode();
if (NobilityLevel != 0) hash ^= NobilityLevel.GetHashCode();
if (Coin != 0L) hash ^= Coin.GetHashCode();
if (grade_ != null) hash ^= Grade.GetHashCode();
if (currentTitle_ != null) hash ^= CurrentTitle.GetHashCode();
if (currentElite_ != null) hash ^= CurrentElite.GetHashCode();
if (_unknownFields != null) {
@ -259,6 +593,10 @@ namespace Pb.Game.Zhg {
output.WriteRawTag(24);
output.WriteInt64(Coin);
}
if (grade_ != null) {
output.WriteRawTag(34);
output.WriteMessage(Grade);
}
if (currentTitle_ != null) {
output.WriteRawTag(82);
output.WriteMessage(CurrentTitle);
@ -289,6 +627,10 @@ namespace Pb.Game.Zhg {
output.WriteRawTag(24);
output.WriteInt64(Coin);
}
if (grade_ != null) {
output.WriteRawTag(34);
output.WriteMessage(Grade);
}
if (currentTitle_ != null) {
output.WriteRawTag(82);
output.WriteMessage(CurrentTitle);
@ -316,6 +658,9 @@ namespace Pb.Game.Zhg {
if (Coin != 0L) {
size += 1 + pb::CodedOutputStream.ComputeInt64Size(Coin);
}
if (grade_ != null) {
size += 1 + pb::CodedOutputStream.ComputeMessageSize(Grade);
}
if (currentTitle_ != null) {
size += 1 + pb::CodedOutputStream.ComputeMessageSize(CurrentTitle);
}
@ -346,6 +691,12 @@ namespace Pb.Game.Zhg {
if (other.Coin != 0L) {
Coin = other.Coin;
}
if (other.grade_ != null) {
if (grade_ == null) {
Grade = new global::Pb.Game.Zhg.Grade();
}
Grade.MergeFrom(other.Grade);
}
if (other.currentTitle_ != null) {
if (currentTitle_ == null) {
CurrentTitle = new global::Pb.Common.TitleItem();
@ -388,6 +739,13 @@ namespace Pb.Game.Zhg {
Coin = input.ReadInt64();
break;
}
case 34: {
if (grade_ == null) {
Grade = new global::Pb.Game.Zhg.Grade();
}
input.ReadMessage(Grade);
break;
}
case 82: {
if (currentTitle_ == null) {
CurrentTitle = new global::Pb.Common.TitleItem();
@ -432,6 +790,13 @@ namespace Pb.Game.Zhg {
Coin = input.ReadInt64();
break;
}
case 34: {
if (grade_ == null) {
Grade = new global::Pb.Game.Zhg.Grade();
}
input.ReadMessage(Grade);
break;
}
case 82: {
if (currentTitle_ == null) {
CurrentTitle = new global::Pb.Common.TitleItem();
@ -470,7 +835,7 @@ namespace Pb.Game.Zhg {
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
[global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
public static pbr::MessageDescriptor Descriptor {
get { return global::Pb.Game.Zhg.CommandReflection.Descriptor.MessageTypes[1]; }
get { return global::Pb.Game.Zhg.CommandReflection.Descriptor.MessageTypes[2]; }
}
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
@ -711,7 +1076,7 @@ namespace Pb.Game.Zhg {
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
[global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
public static pbr::MessageDescriptor Descriptor {
get { return global::Pb.Game.Zhg.CommandReflection.Descriptor.MessageTypes[2]; }
get { return global::Pb.Game.Zhg.CommandReflection.Descriptor.MessageTypes[3]; }
}
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
@ -952,7 +1317,7 @@ namespace Pb.Game.Zhg {
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
[global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
public static pbr::MessageDescriptor Descriptor {
get { return global::Pb.Game.Zhg.CommandReflection.Descriptor.MessageTypes[3]; }
get { return global::Pb.Game.Zhg.CommandReflection.Descriptor.MessageTypes[4]; }
}
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
@ -1153,7 +1518,7 @@ namespace Pb.Game.Zhg {
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
[global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
public static pbr::MessageDescriptor Descriptor {
get { return global::Pb.Game.Zhg.CommandReflection.Descriptor.MessageTypes[4]; }
get { return global::Pb.Game.Zhg.CommandReflection.Descriptor.MessageTypes[5]; }
}
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
@ -1474,7 +1839,7 @@ namespace Pb.Game.Zhg {
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
[global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
public static pbr::MessageDescriptor Descriptor {
get { return global::Pb.Game.Zhg.CommandReflection.Descriptor.MessageTypes[5]; }
get { return global::Pb.Game.Zhg.CommandReflection.Descriptor.MessageTypes[6]; }
}
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
@ -1675,7 +2040,7 @@ namespace Pb.Game.Zhg {
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
[global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
public static pbr::MessageDescriptor Descriptor {
get { return global::Pb.Game.Zhg.CommandReflection.Descriptor.MessageTypes[6]; }
get { return global::Pb.Game.Zhg.CommandReflection.Descriptor.MessageTypes[7]; }
}
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
@ -1913,7 +2278,7 @@ namespace Pb.Game.Zhg {
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
[global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
public static pbr::MessageDescriptor Descriptor {
get { return global::Pb.Game.Zhg.CommandReflection.Descriptor.MessageTypes[7]; }
get { return global::Pb.Game.Zhg.CommandReflection.Descriptor.MessageTypes[8]; }
}
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
@ -2191,7 +2556,7 @@ namespace Pb.Game.Zhg {
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
[global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
public static pbr::MessageDescriptor Descriptor {
get { return global::Pb.Game.Zhg.CommandReflection.Descriptor.MessageTypes[8]; }
get { return global::Pb.Game.Zhg.CommandReflection.Descriptor.MessageTypes[9]; }
}
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
@ -2509,7 +2874,7 @@ namespace Pb.Game.Zhg {
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
[global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
public static pbr::MessageDescriptor Descriptor {
get { return global::Pb.Game.Zhg.CommandReflection.Descriptor.MessageTypes[9]; }
get { return global::Pb.Game.Zhg.CommandReflection.Descriptor.MessageTypes[10]; }
}
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
@ -2784,7 +3149,7 @@ namespace Pb.Game.Zhg {
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
[global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
public static pbr::MessageDescriptor Descriptor {
get { return global::Pb.Game.Zhg.CommandReflection.Descriptor.MessageTypes[10]; }
get { return global::Pb.Game.Zhg.CommandReflection.Descriptor.MessageTypes[11]; }
}
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
@ -3059,7 +3424,7 @@ namespace Pb.Game.Zhg {
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
[global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
public static pbr::MessageDescriptor Descriptor {
get { return global::Pb.Game.Zhg.CommandReflection.Descriptor.MessageTypes[11]; }
get { return global::Pb.Game.Zhg.CommandReflection.Descriptor.MessageTypes[12]; }
}
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
@ -3082,6 +3447,7 @@ namespace Pb.Game.Zhg {
user_ = other.user_ != null ? other.user_.Clone() : null;
rank_ = other.rank_.Clone();
coin_ = other.coin_;
grade_ = other.grade_ != null ? other.grade_.Clone() : null;
titles_ = other.titles_.Clone();
elites_ = other.elites_.Clone();
currentTitle_ = other.currentTitle_ != null ? other.currentTitle_.Clone() : null;
@ -3139,6 +3505,21 @@ namespace Pb.Game.Zhg {
}
}
/// <summary>Field number for the "grade" field.</summary>
public const int GradeFieldNumber = 4;
private global::Pb.Game.Zhg.Grade grade_;
/// <summary>
/// 段位
/// </summary>
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
[global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
public global::Pb.Game.Zhg.Grade Grade {
get { return grade_; }
set {
grade_ = value;
}
}
/// <summary>Field number for the "titles" field.</summary>
public const int TitlesFieldNumber = 10;
private static readonly pb::FieldCodec<global::Pb.Common.TitleItem> _repeated_titles_codec
@ -3215,6 +3596,7 @@ namespace Pb.Game.Zhg {
if (!object.Equals(User, other.User)) return false;
if(!rank_.Equals(other.rank_)) return false;
if (Coin != other.Coin) return false;
if (!object.Equals(Grade, other.Grade)) return false;
if(!titles_.Equals(other.titles_)) return false;
if(!elites_.Equals(other.elites_)) return false;
if (!object.Equals(CurrentTitle, other.CurrentTitle)) return false;
@ -3229,6 +3611,7 @@ namespace Pb.Game.Zhg {
if (user_ != null) hash ^= User.GetHashCode();
hash ^= rank_.GetHashCode();
if (Coin != 0L) hash ^= Coin.GetHashCode();
if (grade_ != null) hash ^= Grade.GetHashCode();
hash ^= titles_.GetHashCode();
hash ^= elites_.GetHashCode();
if (currentTitle_ != null) hash ^= CurrentTitle.GetHashCode();
@ -3260,6 +3643,10 @@ namespace Pb.Game.Zhg {
output.WriteRawTag(24);
output.WriteInt64(Coin);
}
if (grade_ != null) {
output.WriteRawTag(34);
output.WriteMessage(Grade);
}
titles_.WriteTo(output, _repeated_titles_codec);
elites_.WriteTo(output, _repeated_elites_codec);
if (currentTitle_ != null) {
@ -3289,6 +3676,10 @@ namespace Pb.Game.Zhg {
output.WriteRawTag(24);
output.WriteInt64(Coin);
}
if (grade_ != null) {
output.WriteRawTag(34);
output.WriteMessage(Grade);
}
titles_.WriteTo(ref output, _repeated_titles_codec);
elites_.WriteTo(ref output, _repeated_elites_codec);
if (currentTitle_ != null) {
@ -3316,6 +3707,9 @@ namespace Pb.Game.Zhg {
if (Coin != 0L) {
size += 1 + pb::CodedOutputStream.ComputeInt64Size(Coin);
}
if (grade_ != null) {
size += 1 + pb::CodedOutputStream.ComputeMessageSize(Grade);
}
size += titles_.CalculateSize(_repeated_titles_codec);
size += elites_.CalculateSize(_repeated_elites_codec);
if (currentTitle_ != null) {
@ -3346,6 +3740,12 @@ namespace Pb.Game.Zhg {
if (other.Coin != 0L) {
Coin = other.Coin;
}
if (other.grade_ != null) {
if (grade_ == null) {
Grade = new global::Pb.Game.Zhg.Grade();
}
Grade.MergeFrom(other.Grade);
}
titles_.Add(other.titles_);
elites_.Add(other.elites_);
if (other.currentTitle_ != null) {
@ -3390,6 +3790,13 @@ namespace Pb.Game.Zhg {
Coin = input.ReadInt64();
break;
}
case 34: {
if (grade_ == null) {
Grade = new global::Pb.Game.Zhg.Grade();
}
input.ReadMessage(Grade);
break;
}
case 82: {
titles_.AddEntriesFrom(input, _repeated_titles_codec);
break;
@ -3442,6 +3849,13 @@ namespace Pb.Game.Zhg {
Coin = input.ReadInt64();
break;
}
case 34: {
if (grade_ == null) {
Grade = new global::Pb.Game.Zhg.Grade();
}
input.ReadMessage(Grade);
break;
}
case 82: {
titles_.AddEntriesFrom(ref input, _repeated_titles_codec);
break;

@ -33,18 +33,28 @@ namespace Pb.Game.Zhg {
"EhAKCGtpbGxVbml0GAUgASgDEhIKCmRlS2lsbFVuaXQYBiABKAMSEgoKZmly",
"c3RCbG9vZBgHIAEoCBIUCgxkZUZpcnN0Qmxvb2QYCCABKAgSEgoKa2lsbFBs",
"YXllchgJIAEoAxIUCgxkZUtpbGxQbGF5ZXIYCiABKAgSEQoJaXNHZW5lcmFs",
"GAsgASgIIuoBChFTdGF0UHZQUmVwb3J0UmVzcBIPCgd3aW5DYW1wGAEgASgF",
"GAsgASgIIogFChFTdGF0UHZQUmVwb3J0UmVzcBIPCgd3aW5DYW1wGAEgASgF",
"EhAKCGJhdHRsZUlkGAIgASgDEjUKCHdpbkl0ZW1zGAogAygLMiMucGIuZ2Ft",
"ZS56aGcuU3RhdFB2UFJlcG9ydFJlc3AuSXRlbRI2Cglsb3N0SXRlbXMYCyAD",
"KAsyIy5wYi5nYW1lLnpoZy5TdGF0UHZQUmVwb3J0UmVzcC5JdGVtGkMKBEl0",
"ZW0SCwoDdWlkGAEgASgDEg0KBXVuYW1lGAIgASgJEhAKCHBvc2l0aW9uGAMg",
"ASgFEg0KBXNjb3JlGAQgASgCQiBaHmRjZy9nYW1lL3BiL2dhbWUvemhnO3Bi",
"R2FtZVpoZ2IGcHJvdG8z"));
"KAsyIy5wYi5nYW1lLnpoZy5TdGF0UHZQUmVwb3J0UmVzcC5JdGVtGkcKBUdy",
"YWRlEg0KBWdyYWRlGAEgASgFEg0KBWxldmVsGAIgASgFEgwKBHN0YXIYAyAB",
"KAUSEgoKYnJhdmVQb2ludBgEIAEoAxr6AQoESXRlbRILCgN1aWQYASABKAMS",
"DQoFdW5hbWUYAiABKAkSEAoIcG9zaXRpb24YAyABKAUSDQoFc2NvcmUYBCAB",
"KAISMwoFZ3JhZGUYBSABKAsyJC5wYi5nYW1lLnpoZy5TdGF0UHZQUmVwb3J0",
"UmVzcC5HcmFkZRI/CgtncmFkZVJlc3VsdBgGIAEoDjIqLnBiLmdhbWUuemhn",
"LlN0YXRQdlBSZXBvcnRSZXNwLkdyYWRlUmVzdWx0Ej8KC2dyYWRlUmVhc29u",
"GAcgASgOMioucGIuZ2FtZS56aGcuU3RhdFB2UFJlcG9ydFJlc3AuR3JhZGVS",
"ZWFzb24iaQoLR3JhZGVSZXN1bHQSCAoES2VlcBAAEgsKB0dyYWRlVXAQARIL",
"CgdMZXZlbFVwEAISCgoGU3RhclVwEAMSDQoJR3JhZGVEb3duEAQSDQoJTGV2",
"ZWxEb3duEAUSDAoIU3RhckRvd24QBiIwCgtHcmFkZVJlYXNvbhIHCgNXaW4Q",
"ABIICgRMb3N0EAESDgoKQnJhdmVQb2ludBACQiBaHmRjZy9nYW1lL3BiL2dh",
"bWUvemhnO3BiR2FtZVpoZ2IGcHJvdG8z"));
descriptor = pbr::FileDescriptor.FromGeneratedCode(descriptorData,
new pbr::FileDescriptor[] { },
new pbr::GeneratedClrTypeInfo(null, null, new pbr::GeneratedClrTypeInfo[] {
new pbr::GeneratedClrTypeInfo(typeof(global::Pb.Game.Zhg.StatPvPReportReq), global::Pb.Game.Zhg.StatPvPReportReq.Parser, new[]{ "WinCamp", "BattleId", "WinItems", "LostItems" }, null, null, null, new pbr::GeneratedClrTypeInfo[] { new pbr::GeneratedClrTypeInfo(typeof(global::Pb.Game.Zhg.StatPvPReportReq.Types.Item), global::Pb.Game.Zhg.StatPvPReportReq.Types.Item.Parser, new[]{ "Uid", "Uname", "Damage", "DeDamage", "KillUnit", "DeKillUnit", "FirstBlood", "DeFirstBlood", "KillPlayer", "DeKillPlayer", "IsGeneral" }, null, null, null, null)}),
new pbr::GeneratedClrTypeInfo(typeof(global::Pb.Game.Zhg.StatPvPReportResp), global::Pb.Game.Zhg.StatPvPReportResp.Parser, new[]{ "WinCamp", "BattleId", "WinItems", "LostItems" }, null, null, null, new pbr::GeneratedClrTypeInfo[] { new pbr::GeneratedClrTypeInfo(typeof(global::Pb.Game.Zhg.StatPvPReportResp.Types.Item), global::Pb.Game.Zhg.StatPvPReportResp.Types.Item.Parser, new[]{ "Uid", "Uname", "Position", "Score" }, null, null, null, null)})
new pbr::GeneratedClrTypeInfo(typeof(global::Pb.Game.Zhg.StatPvPReportResp), global::Pb.Game.Zhg.StatPvPReportResp.Parser, new[]{ "WinCamp", "BattleId", "WinItems", "LostItems" }, null, new[]{ typeof(global::Pb.Game.Zhg.StatPvPReportResp.Types.GradeResult), typeof(global::Pb.Game.Zhg.StatPvPReportResp.Types.GradeReason) }, null, new pbr::GeneratedClrTypeInfo[] { new pbr::GeneratedClrTypeInfo(typeof(global::Pb.Game.Zhg.StatPvPReportResp.Types.Grade), global::Pb.Game.Zhg.StatPvPReportResp.Types.Grade.Parser, new[]{ "Grade_", "Level", "Star", "BravePoint" }, null, null, null, null),
new pbr::GeneratedClrTypeInfo(typeof(global::Pb.Game.Zhg.StatPvPReportResp.Types.Item), global::Pb.Game.Zhg.StatPvPReportResp.Types.Item.Parser, new[]{ "Uid", "Uname", "Position", "Score", "Grade", "GradeResult", "GradeReason" }, null, null, null, null)})
}));
}
#endregion
@ -1240,6 +1250,364 @@ namespace Pb.Game.Zhg {
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
[global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
public static partial class Types {
public enum GradeResult {
/// <summary>
/// 不变(因为骁勇分抵扣)
/// </summary>
[pbr::OriginalName("Keep")] Keep = 0,
/// <summary>
/// 段位提升
/// </summary>
[pbr::OriginalName("GradeUp")] GradeUp = 1,
/// <summary>
/// 段位等级提升
/// </summary>
[pbr::OriginalName("LevelUp")] LevelUp = 2,
/// <summary>
/// 等级星级提升
/// </summary>
[pbr::OriginalName("StarUp")] StarUp = 3,
/// <summary>
/// 掉段
/// </summary>
[pbr::OriginalName("GradeDown")] GradeDown = 4,
/// <summary>
/// 降级
/// </summary>
[pbr::OriginalName("LevelDown")] LevelDown = 5,
/// <summary>
/// 掉星
/// </summary>
[pbr::OriginalName("StarDown")] StarDown = 6,
}
public enum GradeReason {
/// <summary>
/// 因为获胜
/// </summary>
[pbr::OriginalName("Win")] Win = 0,
/// <summary>
/// 因为战败
/// </summary>
[pbr::OriginalName("Lost")] Lost = 1,
/// <summary>
/// 因为骁勇分保护,所以不掉星
/// </summary>
[pbr::OriginalName("BravePoint")] BravePoint = 2,
}
public sealed partial class Grade : pb::IMessage<Grade>
#if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
, pb::IBufferMessage
#endif
{
private static readonly pb::MessageParser<Grade> _parser = new pb::MessageParser<Grade>(() => new Grade());
private pb::UnknownFieldSet _unknownFields;
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
[global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
public static pb::MessageParser<Grade> Parser { get { return _parser; } }
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
[global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
public static pbr::MessageDescriptor Descriptor {
get { return global::Pb.Game.Zhg.StatPvPReportResp.Descriptor.NestedTypes[0]; }
}
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
[global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
pbr::MessageDescriptor pb::IMessage.Descriptor {
get { return Descriptor; }
}
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
[global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
public Grade() {
OnConstruction();
}
partial void OnConstruction();
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
[global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
public Grade(Grade other) : this() {
grade_ = other.grade_;
level_ = other.level_;
star_ = other.star_;
bravePoint_ = other.bravePoint_;
_unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields);
}
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
[global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
public Grade Clone() {
return new Grade(this);
}
/// <summary>Field number for the "grade" field.</summary>
public const int Grade_FieldNumber = 1;
private int grade_;
/// <summary>
/// 段位
/// </summary>
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
[global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
public int Grade_ {
get { return grade_; }
set {
grade_ = value;
}
}
/// <summary>Field number for the "level" field.</summary>
public const int LevelFieldNumber = 2;
private int level_;
/// <summary>
/// 段位等级
/// </summary>
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
[global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
public int Level {
get { return level_; }
set {
level_ = value;
}
}
/// <summary>Field number for the "star" field.</summary>
public const int StarFieldNumber = 3;
private int star_;
/// <summary>
/// 等级星级
/// </summary>
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
[global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
public int Star {
get { return star_; }
set {
star_ = value;
}
}
/// <summary>Field number for the "bravePoint" field.</summary>
public const int BravePointFieldNumber = 4;
private long bravePoint_;
/// <summary>
/// 剩余 骁勇分(历史评分累计)
/// </summary>
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
[global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
public long BravePoint {
get { return bravePoint_; }
set {
bravePoint_ = value;
}
}
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
[global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
public override bool Equals(object other) {
return Equals(other as Grade);
}
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
[global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
public bool Equals(Grade other) {
if (ReferenceEquals(other, null)) {
return false;
}
if (ReferenceEquals(other, this)) {
return true;
}
if (Grade_ != other.Grade_) return false;
if (Level != other.Level) return false;
if (Star != other.Star) return false;
if (BravePoint != other.BravePoint) return false;
return Equals(_unknownFields, other._unknownFields);
}
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
[global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
public override int GetHashCode() {
int hash = 1;
if (Grade_ != 0) hash ^= Grade_.GetHashCode();
if (Level != 0) hash ^= Level.GetHashCode();
if (Star != 0) hash ^= Star.GetHashCode();
if (BravePoint != 0L) hash ^= BravePoint.GetHashCode();
if (_unknownFields != null) {
hash ^= _unknownFields.GetHashCode();
}
return hash;
}
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
[global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
public override string ToString() {
return pb::JsonFormatter.ToDiagnosticString(this);
}
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
[global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
public void WriteTo(pb::CodedOutputStream output) {
#if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
output.WriteRawMessage(this);
#else
if (Grade_ != 0) {
output.WriteRawTag(8);
output.WriteInt32(Grade_);
}
if (Level != 0) {
output.WriteRawTag(16);
output.WriteInt32(Level);
}
if (Star != 0) {
output.WriteRawTag(24);
output.WriteInt32(Star);
}
if (BravePoint != 0L) {
output.WriteRawTag(32);
output.WriteInt64(BravePoint);
}
if (_unknownFields != null) {
_unknownFields.WriteTo(output);
}
#endif
}
#if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
[global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
void pb::IBufferMessage.InternalWriteTo(ref pb::WriteContext output) {
if (Grade_ != 0) {
output.WriteRawTag(8);
output.WriteInt32(Grade_);
}
if (Level != 0) {
output.WriteRawTag(16);
output.WriteInt32(Level);
}
if (Star != 0) {
output.WriteRawTag(24);
output.WriteInt32(Star);
}
if (BravePoint != 0L) {
output.WriteRawTag(32);
output.WriteInt64(BravePoint);
}
if (_unknownFields != null) {
_unknownFields.WriteTo(ref output);
}
}
#endif
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
[global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
public int CalculateSize() {
int size = 0;
if (Grade_ != 0) {
size += 1 + pb::CodedOutputStream.ComputeInt32Size(Grade_);
}
if (Level != 0) {
size += 1 + pb::CodedOutputStream.ComputeInt32Size(Level);
}
if (Star != 0) {
size += 1 + pb::CodedOutputStream.ComputeInt32Size(Star);
}
if (BravePoint != 0L) {
size += 1 + pb::CodedOutputStream.ComputeInt64Size(BravePoint);
}
if (_unknownFields != null) {
size += _unknownFields.CalculateSize();
}
return size;
}
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
[global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
public void MergeFrom(Grade other) {
if (other == null) {
return;
}
if (other.Grade_ != 0) {
Grade_ = other.Grade_;
}
if (other.Level != 0) {
Level = other.Level;
}
if (other.Star != 0) {
Star = other.Star;
}
if (other.BravePoint != 0L) {
BravePoint = other.BravePoint;
}
_unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields);
}
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
[global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
public void MergeFrom(pb::CodedInputStream input) {
#if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
input.ReadRawMessage(this);
#else
uint tag;
while ((tag = input.ReadTag()) != 0) {
switch(tag) {
default:
_unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input);
break;
case 8: {
Grade_ = input.ReadInt32();
break;
}
case 16: {
Level = input.ReadInt32();
break;
}
case 24: {
Star = input.ReadInt32();
break;
}
case 32: {
BravePoint = input.ReadInt64();
break;
}
}
}
#endif
}
#if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
[global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
void pb::IBufferMessage.InternalMergeFrom(ref pb::ParseContext input) {
uint tag;
while ((tag = input.ReadTag()) != 0) {
switch(tag) {
default:
_unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, ref input);
break;
case 8: {
Grade_ = input.ReadInt32();
break;
}
case 16: {
Level = input.ReadInt32();
break;
}
case 24: {
Star = input.ReadInt32();
break;
}
case 32: {
BravePoint = input.ReadInt64();
break;
}
}
}
}
#endif
}
public sealed partial class Item : pb::IMessage<Item>
#if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
, pb::IBufferMessage
@ -1254,7 +1622,7 @@ namespace Pb.Game.Zhg {
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
[global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
public static pbr::MessageDescriptor Descriptor {
get { return global::Pb.Game.Zhg.StatPvPReportResp.Descriptor.NestedTypes[0]; }
get { return global::Pb.Game.Zhg.StatPvPReportResp.Descriptor.NestedTypes[1]; }
}
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
@ -1278,6 +1646,9 @@ namespace Pb.Game.Zhg {
uname_ = other.uname_;
position_ = other.position_;
score_ = other.score_;
grade_ = other.grade_ != null ? other.grade_.Clone() : null;
gradeResult_ = other.gradeResult_;
gradeReason_ = other.gradeReason_;
_unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields);
}
@ -1347,6 +1718,51 @@ namespace Pb.Game.Zhg {
}
}
/// <summary>Field number for the "grade" field.</summary>
public const int GradeFieldNumber = 5;
private global::Pb.Game.Zhg.StatPvPReportResp.Types.Grade grade_;
/// <summary>
/// grade
/// </summary>
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
[global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
public global::Pb.Game.Zhg.StatPvPReportResp.Types.Grade Grade {
get { return grade_; }
set {
grade_ = value;
}
}
/// <summary>Field number for the "gradeResult" field.</summary>
public const int GradeResultFieldNumber = 6;
private global::Pb.Game.Zhg.StatPvPReportResp.Types.GradeResult gradeResult_ = global::Pb.Game.Zhg.StatPvPReportResp.Types.GradeResult.Keep;
/// <summary>
/// 段位结果
/// </summary>
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
[global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
public global::Pb.Game.Zhg.StatPvPReportResp.Types.GradeResult GradeResult {
get { return gradeResult_; }
set {
gradeResult_ = value;
}
}
/// <summary>Field number for the "gradeReason" field.</summary>
public const int GradeReasonFieldNumber = 7;
private global::Pb.Game.Zhg.StatPvPReportResp.Types.GradeReason gradeReason_ = global::Pb.Game.Zhg.StatPvPReportResp.Types.GradeReason.Win;
/// <summary>
/// 段位结果原因
/// </summary>
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
[global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
public global::Pb.Game.Zhg.StatPvPReportResp.Types.GradeReason GradeReason {
get { return gradeReason_; }
set {
gradeReason_ = value;
}
}
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
[global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
public override bool Equals(object other) {
@ -1366,6 +1782,9 @@ namespace Pb.Game.Zhg {
if (Uname != other.Uname) return false;
if (Position != other.Position) return false;
if (!pbc::ProtobufEqualityComparers.BitwiseSingleEqualityComparer.Equals(Score, other.Score)) return false;
if (!object.Equals(Grade, other.Grade)) return false;
if (GradeResult != other.GradeResult) return false;
if (GradeReason != other.GradeReason) return false;
return Equals(_unknownFields, other._unknownFields);
}
@ -1377,6 +1796,9 @@ namespace Pb.Game.Zhg {
if (Uname.Length != 0) hash ^= Uname.GetHashCode();
if (Position != 0) hash ^= Position.GetHashCode();
if (Score != 0F) hash ^= pbc::ProtobufEqualityComparers.BitwiseSingleEqualityComparer.GetHashCode(Score);
if (grade_ != null) hash ^= Grade.GetHashCode();
if (GradeResult != global::Pb.Game.Zhg.StatPvPReportResp.Types.GradeResult.Keep) hash ^= GradeResult.GetHashCode();
if (GradeReason != global::Pb.Game.Zhg.StatPvPReportResp.Types.GradeReason.Win) hash ^= GradeReason.GetHashCode();
if (_unknownFields != null) {
hash ^= _unknownFields.GetHashCode();
}
@ -1411,6 +1833,18 @@ namespace Pb.Game.Zhg {
output.WriteRawTag(37);
output.WriteFloat(Score);
}
if (grade_ != null) {
output.WriteRawTag(42);
output.WriteMessage(Grade);
}
if (GradeResult != global::Pb.Game.Zhg.StatPvPReportResp.Types.GradeResult.Keep) {
output.WriteRawTag(48);
output.WriteEnum((int) GradeResult);
}
if (GradeReason != global::Pb.Game.Zhg.StatPvPReportResp.Types.GradeReason.Win) {
output.WriteRawTag(56);
output.WriteEnum((int) GradeReason);
}
if (_unknownFields != null) {
_unknownFields.WriteTo(output);
}
@ -1437,6 +1871,18 @@ namespace Pb.Game.Zhg {
output.WriteRawTag(37);
output.WriteFloat(Score);
}
if (grade_ != null) {
output.WriteRawTag(42);
output.WriteMessage(Grade);
}
if (GradeResult != global::Pb.Game.Zhg.StatPvPReportResp.Types.GradeResult.Keep) {
output.WriteRawTag(48);
output.WriteEnum((int) GradeResult);
}
if (GradeReason != global::Pb.Game.Zhg.StatPvPReportResp.Types.GradeReason.Win) {
output.WriteRawTag(56);
output.WriteEnum((int) GradeReason);
}
if (_unknownFields != null) {
_unknownFields.WriteTo(ref output);
}
@ -1459,6 +1905,15 @@ namespace Pb.Game.Zhg {
if (Score != 0F) {
size += 1 + 4;
}
if (grade_ != null) {
size += 1 + pb::CodedOutputStream.ComputeMessageSize(Grade);
}
if (GradeResult != global::Pb.Game.Zhg.StatPvPReportResp.Types.GradeResult.Keep) {
size += 1 + pb::CodedOutputStream.ComputeEnumSize((int) GradeResult);
}
if (GradeReason != global::Pb.Game.Zhg.StatPvPReportResp.Types.GradeReason.Win) {
size += 1 + pb::CodedOutputStream.ComputeEnumSize((int) GradeReason);
}
if (_unknownFields != null) {
size += _unknownFields.CalculateSize();
}
@ -1483,6 +1938,18 @@ namespace Pb.Game.Zhg {
if (other.Score != 0F) {
Score = other.Score;
}
if (other.grade_ != null) {
if (grade_ == null) {
Grade = new global::Pb.Game.Zhg.StatPvPReportResp.Types.Grade();
}
Grade.MergeFrom(other.Grade);
}
if (other.GradeResult != global::Pb.Game.Zhg.StatPvPReportResp.Types.GradeResult.Keep) {
GradeResult = other.GradeResult;
}
if (other.GradeReason != global::Pb.Game.Zhg.StatPvPReportResp.Types.GradeReason.Win) {
GradeReason = other.GradeReason;
}
_unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields);
}
@ -1514,6 +1981,21 @@ namespace Pb.Game.Zhg {
Score = input.ReadFloat();
break;
}
case 42: {
if (grade_ == null) {
Grade = new global::Pb.Game.Zhg.StatPvPReportResp.Types.Grade();
}
input.ReadMessage(Grade);
break;
}
case 48: {
GradeResult = (global::Pb.Game.Zhg.StatPvPReportResp.Types.GradeResult) input.ReadEnum();
break;
}
case 56: {
GradeReason = (global::Pb.Game.Zhg.StatPvPReportResp.Types.GradeReason) input.ReadEnum();
break;
}
}
}
#endif
@ -1545,6 +2027,21 @@ namespace Pb.Game.Zhg {
Score = input.ReadFloat();
break;
}
case 42: {
if (grade_ == null) {
Grade = new global::Pb.Game.Zhg.StatPvPReportResp.Types.Grade();
}
input.ReadMessage(Grade);
break;
}
case 48: {
GradeResult = (global::Pb.Game.Zhg.StatPvPReportResp.Types.GradeResult) input.ReadEnum();
break;
}
case 56: {
GradeReason = (global::Pb.Game.Zhg.StatPvPReportResp.Types.GradeReason) input.ReadEnum();
break;
}
}
}
}

@ -21,6 +21,78 @@ const (
_ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20)
)
type Grade struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
// 段位
Grade int32 `protobuf:"varint,1,opt,name=grade,proto3" json:"grade,omitempty"` // 段位
Level int32 `protobuf:"varint,2,opt,name=level,proto3" json:"level,omitempty"` // 段位等级
Star int32 `protobuf:"varint,3,opt,name=star,proto3" json:"star,omitempty"` // 等级星级
BravePoint int64 `protobuf:"varint,4,opt,name=bravePoint,proto3" json:"bravePoint,omitempty"` // 剩余 骁勇分(历史评分累计)
}
func (x *Grade) Reset() {
*x = Grade{}
if protoimpl.UnsafeEnabled {
mi := &file_game_zhg_command_proto_msgTypes[0]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *Grade) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*Grade) ProtoMessage() {}
func (x *Grade) ProtoReflect() protoreflect.Message {
mi := &file_game_zhg_command_proto_msgTypes[0]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use Grade.ProtoReflect.Descriptor instead.
func (*Grade) Descriptor() ([]byte, []int) {
return file_game_zhg_command_proto_rawDescGZIP(), []int{0}
}
func (x *Grade) GetGrade() int32 {
if x != nil {
return x.Grade
}
return 0
}
func (x *Grade) GetLevel() int32 {
if x != nil {
return x.Level
}
return 0
}
func (x *Grade) GetStar() int32 {
if x != nil {
return x.Star
}
return 0
}
func (x *Grade) GetBravePoint() int64 {
if x != nil {
return x.BravePoint
}
return 0
}
// 加入游戏 push -> game.join
type JoinGame struct {
state protoimpl.MessageState
@ -30,6 +102,7 @@ type JoinGame struct {
User *common.PbUser `protobuf:"bytes,1,opt,name=user,proto3" json:"user,omitempty"`
NobilityLevel int32 `protobuf:"varint,2,opt,name=nobilityLevel,proto3" json:"nobilityLevel,omitempty"` // 贵族等级 3舰长 0总督
Coin int64 `protobuf:"varint,3,opt,name=coin,proto3" json:"coin,omitempty"` // 金币数量
Grade *Grade `protobuf:"bytes,4,opt,name=grade,proto3" json:"grade,omitempty"` // 段位
CurrentTitle *common.TitleItem `protobuf:"bytes,10,opt,name=currentTitle,proto3" json:"currentTitle,omitempty"` // 当前佩戴的称号
CurrentElite *EliteItem `protobuf:"bytes,11,opt,name=currentElite,proto3" json:"currentElite,omitempty"` // 当前装备的精英单位
}
@ -37,7 +110,7 @@ type JoinGame struct {
func (x *JoinGame) Reset() {
*x = JoinGame{}
if protoimpl.UnsafeEnabled {
mi := &file_game_zhg_command_proto_msgTypes[0]
mi := &file_game_zhg_command_proto_msgTypes[1]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@ -50,7 +123,7 @@ func (x *JoinGame) String() string {
func (*JoinGame) ProtoMessage() {}
func (x *JoinGame) ProtoReflect() protoreflect.Message {
mi := &file_game_zhg_command_proto_msgTypes[0]
mi := &file_game_zhg_command_proto_msgTypes[1]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@ -63,7 +136,7 @@ func (x *JoinGame) ProtoReflect() protoreflect.Message {
// Deprecated: Use JoinGame.ProtoReflect.Descriptor instead.
func (*JoinGame) Descriptor() ([]byte, []int) {
return file_game_zhg_command_proto_rawDescGZIP(), []int{0}
return file_game_zhg_command_proto_rawDescGZIP(), []int{1}
}
func (x *JoinGame) GetUser() *common.PbUser {
@ -87,6 +160,13 @@ func (x *JoinGame) GetCoin() int64 {
return 0
}
func (x *JoinGame) GetGrade() *Grade {
if x != nil {
return x.Grade
}
return nil
}
func (x *JoinGame) GetCurrentTitle() *common.TitleItem {
if x != nil {
return x.CurrentTitle
@ -114,7 +194,7 @@ type CreateUnit struct {
func (x *CreateUnit) Reset() {
*x = CreateUnit{}
if protoimpl.UnsafeEnabled {
mi := &file_game_zhg_command_proto_msgTypes[1]
mi := &file_game_zhg_command_proto_msgTypes[2]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@ -127,7 +207,7 @@ func (x *CreateUnit) String() string {
func (*CreateUnit) ProtoMessage() {}
func (x *CreateUnit) ProtoReflect() protoreflect.Message {
mi := &file_game_zhg_command_proto_msgTypes[1]
mi := &file_game_zhg_command_proto_msgTypes[2]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@ -140,7 +220,7 @@ func (x *CreateUnit) ProtoReflect() protoreflect.Message {
// Deprecated: Use CreateUnit.ProtoReflect.Descriptor instead.
func (*CreateUnit) Descriptor() ([]byte, []int) {
return file_game_zhg_command_proto_rawDescGZIP(), []int{1}
return file_game_zhg_command_proto_rawDescGZIP(), []int{2}
}
func (x *CreateUnit) GetUser() *common.PbUser {
@ -170,7 +250,7 @@ type Move struct {
func (x *Move) Reset() {
*x = Move{}
if protoimpl.UnsafeEnabled {
mi := &file_game_zhg_command_proto_msgTypes[2]
mi := &file_game_zhg_command_proto_msgTypes[3]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@ -183,7 +263,7 @@ func (x *Move) String() string {
func (*Move) ProtoMessage() {}
func (x *Move) ProtoReflect() protoreflect.Message {
mi := &file_game_zhg_command_proto_msgTypes[2]
mi := &file_game_zhg_command_proto_msgTypes[3]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@ -196,7 +276,7 @@ func (x *Move) ProtoReflect() protoreflect.Message {
// Deprecated: Use Move.ProtoReflect.Descriptor instead.
func (*Move) Descriptor() ([]byte, []int) {
return file_game_zhg_command_proto_rawDescGZIP(), []int{2}
return file_game_zhg_command_proto_rawDescGZIP(), []int{3}
}
func (x *Move) GetUser() *common.PbUser {
@ -225,7 +305,7 @@ type Outbreak struct {
func (x *Outbreak) Reset() {
*x = Outbreak{}
if protoimpl.UnsafeEnabled {
mi := &file_game_zhg_command_proto_msgTypes[3]
mi := &file_game_zhg_command_proto_msgTypes[4]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@ -238,7 +318,7 @@ func (x *Outbreak) String() string {
func (*Outbreak) ProtoMessage() {}
func (x *Outbreak) ProtoReflect() protoreflect.Message {
mi := &file_game_zhg_command_proto_msgTypes[3]
mi := &file_game_zhg_command_proto_msgTypes[4]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@ -251,7 +331,7 @@ func (x *Outbreak) ProtoReflect() protoreflect.Message {
// Deprecated: Use Outbreak.ProtoReflect.Descriptor instead.
func (*Outbreak) Descriptor() ([]byte, []int) {
return file_game_zhg_command_proto_rawDescGZIP(), []int{3}
return file_game_zhg_command_proto_rawDescGZIP(), []int{4}
}
func (x *Outbreak) GetUser() *common.PbUser {
@ -276,7 +356,7 @@ type OutbreakFood struct {
func (x *OutbreakFood) Reset() {
*x = OutbreakFood{}
if protoimpl.UnsafeEnabled {
mi := &file_game_zhg_command_proto_msgTypes[4]
mi := &file_game_zhg_command_proto_msgTypes[5]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@ -289,7 +369,7 @@ func (x *OutbreakFood) String() string {
func (*OutbreakFood) ProtoMessage() {}
func (x *OutbreakFood) ProtoReflect() protoreflect.Message {
mi := &file_game_zhg_command_proto_msgTypes[4]
mi := &file_game_zhg_command_proto_msgTypes[5]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@ -302,7 +382,7 @@ func (x *OutbreakFood) ProtoReflect() protoreflect.Message {
// Deprecated: Use OutbreakFood.ProtoReflect.Descriptor instead.
func (*OutbreakFood) Descriptor() ([]byte, []int) {
return file_game_zhg_command_proto_rawDescGZIP(), []int{4}
return file_game_zhg_command_proto_rawDescGZIP(), []int{5}
}
func (x *OutbreakFood) GetUser() *common.PbUser {
@ -345,7 +425,7 @@ type Wai struct {
func (x *Wai) Reset() {
*x = Wai{}
if protoimpl.UnsafeEnabled {
mi := &file_game_zhg_command_proto_msgTypes[5]
mi := &file_game_zhg_command_proto_msgTypes[6]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@ -358,7 +438,7 @@ func (x *Wai) String() string {
func (*Wai) ProtoMessage() {}
func (x *Wai) ProtoReflect() protoreflect.Message {
mi := &file_game_zhg_command_proto_msgTypes[5]
mi := &file_game_zhg_command_proto_msgTypes[6]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@ -371,7 +451,7 @@ func (x *Wai) ProtoReflect() protoreflect.Message {
// Deprecated: Use Wai.ProtoReflect.Descriptor instead.
func (*Wai) Descriptor() ([]byte, []int) {
return file_game_zhg_command_proto_rawDescGZIP(), []int{5}
return file_game_zhg_command_proto_rawDescGZIP(), []int{6}
}
func (x *Wai) GetUser() *common.PbUser {
@ -394,7 +474,7 @@ type BuildingMode struct {
func (x *BuildingMode) Reset() {
*x = BuildingMode{}
if protoimpl.UnsafeEnabled {
mi := &file_game_zhg_command_proto_msgTypes[6]
mi := &file_game_zhg_command_proto_msgTypes[7]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@ -407,7 +487,7 @@ func (x *BuildingMode) String() string {
func (*BuildingMode) ProtoMessage() {}
func (x *BuildingMode) ProtoReflect() protoreflect.Message {
mi := &file_game_zhg_command_proto_msgTypes[6]
mi := &file_game_zhg_command_proto_msgTypes[7]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@ -420,7 +500,7 @@ func (x *BuildingMode) ProtoReflect() protoreflect.Message {
// Deprecated: Use BuildingMode.ProtoReflect.Descriptor instead.
func (*BuildingMode) Descriptor() ([]byte, []int) {
return file_game_zhg_command_proto_rawDescGZIP(), []int{6}
return file_game_zhg_command_proto_rawDescGZIP(), []int{7}
}
func (x *BuildingMode) GetUser() *common.PbUser {
@ -451,7 +531,7 @@ type ChangeElite struct {
func (x *ChangeElite) Reset() {
*x = ChangeElite{}
if protoimpl.UnsafeEnabled {
mi := &file_game_zhg_command_proto_msgTypes[7]
mi := &file_game_zhg_command_proto_msgTypes[8]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@ -464,7 +544,7 @@ func (x *ChangeElite) String() string {
func (*ChangeElite) ProtoMessage() {}
func (x *ChangeElite) ProtoReflect() protoreflect.Message {
mi := &file_game_zhg_command_proto_msgTypes[7]
mi := &file_game_zhg_command_proto_msgTypes[8]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@ -477,7 +557,7 @@ func (x *ChangeElite) ProtoReflect() protoreflect.Message {
// Deprecated: Use ChangeElite.ProtoReflect.Descriptor instead.
func (*ChangeElite) Descriptor() ([]byte, []int) {
return file_game_zhg_command_proto_rawDescGZIP(), []int{7}
return file_game_zhg_command_proto_rawDescGZIP(), []int{8}
}
func (x *ChangeElite) GetCode() int32 {
@ -516,7 +596,7 @@ type ChangeTitle struct {
func (x *ChangeTitle) Reset() {
*x = ChangeTitle{}
if protoimpl.UnsafeEnabled {
mi := &file_game_zhg_command_proto_msgTypes[8]
mi := &file_game_zhg_command_proto_msgTypes[9]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@ -529,7 +609,7 @@ func (x *ChangeTitle) String() string {
func (*ChangeTitle) ProtoMessage() {}
func (x *ChangeTitle) ProtoReflect() protoreflect.Message {
mi := &file_game_zhg_command_proto_msgTypes[8]
mi := &file_game_zhg_command_proto_msgTypes[9]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@ -542,7 +622,7 @@ func (x *ChangeTitle) ProtoReflect() protoreflect.Message {
// Deprecated: Use ChangeTitle.ProtoReflect.Descriptor instead.
func (*ChangeTitle) Descriptor() ([]byte, []int) {
return file_game_zhg_command_proto_rawDescGZIP(), []int{8}
return file_game_zhg_command_proto_rawDescGZIP(), []int{9}
}
func (x *ChangeTitle) GetCode() int32 {
@ -587,7 +667,7 @@ type BuyBattleFood struct {
func (x *BuyBattleFood) Reset() {
*x = BuyBattleFood{}
if protoimpl.UnsafeEnabled {
mi := &file_game_zhg_command_proto_msgTypes[9]
mi := &file_game_zhg_command_proto_msgTypes[10]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@ -600,7 +680,7 @@ func (x *BuyBattleFood) String() string {
func (*BuyBattleFood) ProtoMessage() {}
func (x *BuyBattleFood) ProtoReflect() protoreflect.Message {
mi := &file_game_zhg_command_proto_msgTypes[9]
mi := &file_game_zhg_command_proto_msgTypes[10]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@ -613,7 +693,7 @@ func (x *BuyBattleFood) ProtoReflect() protoreflect.Message {
// Deprecated: Use BuyBattleFood.ProtoReflect.Descriptor instead.
func (*BuyBattleFood) Descriptor() ([]byte, []int) {
return file_game_zhg_command_proto_rawDescGZIP(), []int{9}
return file_game_zhg_command_proto_rawDescGZIP(), []int{10}
}
func (x *BuyBattleFood) GetUserId() int64 {
@ -651,7 +731,7 @@ type EliteItem struct {
func (x *EliteItem) Reset() {
*x = EliteItem{}
if protoimpl.UnsafeEnabled {
mi := &file_game_zhg_command_proto_msgTypes[10]
mi := &file_game_zhg_command_proto_msgTypes[11]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@ -664,7 +744,7 @@ func (x *EliteItem) String() string {
func (*EliteItem) ProtoMessage() {}
func (x *EliteItem) ProtoReflect() protoreflect.Message {
mi := &file_game_zhg_command_proto_msgTypes[10]
mi := &file_game_zhg_command_proto_msgTypes[11]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@ -677,7 +757,7 @@ func (x *EliteItem) ProtoReflect() protoreflect.Message {
// Deprecated: Use EliteItem.ProtoReflect.Descriptor instead.
func (*EliteItem) Descriptor() ([]byte, []int) {
return file_game_zhg_command_proto_rawDescGZIP(), []int{10}
return file_game_zhg_command_proto_rawDescGZIP(), []int{11}
}
func (x *EliteItem) GetId() int64 {
@ -710,6 +790,7 @@ type UserQueryMsg struct {
User *common.PbUser `protobuf:"bytes,1,opt,name=user,proto3" json:"user,omitempty"` // 用户信息
Rank []*UserQueryMsg_RankItem `protobuf:"bytes,2,rep,name=rank,proto3" json:"rank,omitempty"` // 排行数据(多个榜)
Coin int64 `protobuf:"varint,3,opt,name=coin,proto3" json:"coin,omitempty"` // 弹币
Grade *Grade `protobuf:"bytes,4,opt,name=grade,proto3" json:"grade,omitempty"` // 段位
Titles []*common.TitleItem `protobuf:"bytes,10,rep,name=titles,proto3" json:"titles,omitempty"` // 称号ID列表具体称号配置 给接口取
Elites []*EliteItem `protobuf:"bytes,11,rep,name=elites,proto3" json:"elites,omitempty"` // 拥有的精英单位列表
CurrentTitle *common.TitleItem `protobuf:"bytes,12,opt,name=currentTitle,proto3" json:"currentTitle,omitempty"` // 当前佩戴的称号
@ -719,7 +800,7 @@ type UserQueryMsg struct {
func (x *UserQueryMsg) Reset() {
*x = UserQueryMsg{}
if protoimpl.UnsafeEnabled {
mi := &file_game_zhg_command_proto_msgTypes[11]
mi := &file_game_zhg_command_proto_msgTypes[12]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@ -732,7 +813,7 @@ func (x *UserQueryMsg) String() string {
func (*UserQueryMsg) ProtoMessage() {}
func (x *UserQueryMsg) ProtoReflect() protoreflect.Message {
mi := &file_game_zhg_command_proto_msgTypes[11]
mi := &file_game_zhg_command_proto_msgTypes[12]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@ -745,7 +826,7 @@ func (x *UserQueryMsg) ProtoReflect() protoreflect.Message {
// Deprecated: Use UserQueryMsg.ProtoReflect.Descriptor instead.
func (*UserQueryMsg) Descriptor() ([]byte, []int) {
return file_game_zhg_command_proto_rawDescGZIP(), []int{11}
return file_game_zhg_command_proto_rawDescGZIP(), []int{12}
}
func (x *UserQueryMsg) GetUser() *common.PbUser {
@ -769,6 +850,13 @@ func (x *UserQueryMsg) GetCoin() int64 {
return 0
}
func (x *UserQueryMsg) GetGrade() *Grade {
if x != nil {
return x.Grade
}
return nil
}
func (x *UserQueryMsg) GetTitles() []*common.TitleItem {
if x != nil {
return x.Titles
@ -811,7 +899,7 @@ type UserQueryMsg_RankItem struct {
func (x *UserQueryMsg_RankItem) Reset() {
*x = UserQueryMsg_RankItem{}
if protoimpl.UnsafeEnabled {
mi := &file_game_zhg_command_proto_msgTypes[12]
mi := &file_game_zhg_command_proto_msgTypes[13]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@ -824,7 +912,7 @@ func (x *UserQueryMsg_RankItem) String() string {
func (*UserQueryMsg_RankItem) ProtoMessage() {}
func (x *UserQueryMsg_RankItem) ProtoReflect() protoreflect.Message {
mi := &file_game_zhg_command_proto_msgTypes[12]
mi := &file_game_zhg_command_proto_msgTypes[13]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@ -837,7 +925,7 @@ func (x *UserQueryMsg_RankItem) ProtoReflect() protoreflect.Message {
// Deprecated: Use UserQueryMsg_RankItem.ProtoReflect.Descriptor instead.
func (*UserQueryMsg_RankItem) Descriptor() ([]byte, []int) {
return file_game_zhg_command_proto_rawDescGZIP(), []int{11, 0}
return file_game_zhg_command_proto_rawDescGZIP(), []int{12, 0}
}
func (x *UserQueryMsg_RankItem) GetRankType() int32 {
@ -867,101 +955,113 @@ var file_game_zhg_command_proto_rawDesc = []byte{
0x0a, 0x16, 0x67, 0x61, 0x6d, 0x65, 0x2f, 0x7a, 0x68, 0x67, 0x2f, 0x63, 0x6f, 0x6d, 0x6d, 0x61,
0x6e, 0x64, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x0b, 0x70, 0x62, 0x2e, 0x67, 0x61, 0x6d,
0x65, 0x2e, 0x7a, 0x68, 0x67, 0x1a, 0x13, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2f, 0x63, 0x6f,
0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0xe1, 0x01, 0x0a, 0x08, 0x4a,
0x6f, 0x69, 0x6e, 0x47, 0x61, 0x6d, 0x65, 0x12, 0x25, 0x0a, 0x04, 0x75, 0x73, 0x65, 0x72, 0x18,
0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x70, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f,
0x6e, 0x2e, 0x50, 0x62, 0x55, 0x73, 0x65, 0x72, 0x52, 0x04, 0x75, 0x73, 0x65, 0x72, 0x12, 0x24,
0x0a, 0x0d, 0x6e, 0x6f, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x18,
0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0d, 0x6e, 0x6f, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x4c,
0x65, 0x76, 0x65, 0x6c, 0x12, 0x12, 0x0a, 0x04, 0x63, 0x6f, 0x69, 0x6e, 0x18, 0x03, 0x20, 0x01,
0x28, 0x03, 0x52, 0x04, 0x63, 0x6f, 0x69, 0x6e, 0x12, 0x38, 0x0a, 0x0c, 0x63, 0x75, 0x72, 0x72,
0x65, 0x6e, 0x74, 0x54, 0x69, 0x74, 0x6c, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14,
0x2e, 0x70, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x54, 0x69, 0x74, 0x6c, 0x65,
0x49, 0x74, 0x65, 0x6d, 0x52, 0x0c, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x54, 0x69, 0x74,
0x6c, 0x65, 0x12, 0x3a, 0x0a, 0x0c, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x45, 0x6c, 0x69,
0x74, 0x65, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x70, 0x62, 0x2e, 0x67, 0x61,
0x6d, 0x65, 0x2e, 0x7a, 0x68, 0x67, 0x2e, 0x45, 0x6c, 0x69, 0x74, 0x65, 0x49, 0x74, 0x65, 0x6d,
0x52, 0x0c, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x45, 0x6c, 0x69, 0x74, 0x65, 0x22, 0x47,
0x0a, 0x0a, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x55, 0x6e, 0x69, 0x74, 0x12, 0x25, 0x0a, 0x04,
0x75, 0x73, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x70, 0x62, 0x2e,
0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x50, 0x62, 0x55, 0x73, 0x65, 0x72, 0x52, 0x04, 0x75,
0x73, 0x65, 0x72, 0x12, 0x12, 0x0a, 0x04, 0x75, 0x6e, 0x69, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28,
0x09, 0x52, 0x04, 0x75, 0x6e, 0x69, 0x74, 0x22, 0x41, 0x0a, 0x04, 0x4d, 0x6f, 0x76, 0x65, 0x12,
0x25, 0x0a, 0x04, 0x75, 0x73, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e,
0x70, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x50, 0x62, 0x55, 0x73, 0x65, 0x72,
0x52, 0x04, 0x75, 0x73, 0x65, 0x72, 0x12, 0x12, 0x0a, 0x04, 0x6c, 0x69, 0x6e, 0x65, 0x18, 0x02,
0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6c, 0x69, 0x6e, 0x65, 0x22, 0x31, 0x0a, 0x08, 0x4f, 0x75,
0x74, 0x62, 0x72, 0x65, 0x61, 0x6b, 0x12, 0x25, 0x0a, 0x04, 0x75, 0x73, 0x65, 0x72, 0x18, 0x01,
0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x70, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e,
0x2e, 0x50, 0x62, 0x55, 0x73, 0x65, 0x72, 0x52, 0x04, 0x75, 0x73, 0x65, 0x72, 0x22, 0x7b, 0x0a,
0x0c, 0x4f, 0x75, 0x74, 0x62, 0x72, 0x65, 0x61, 0x6b, 0x46, 0x6f, 0x6f, 0x64, 0x12, 0x25, 0x0a,
0x04, 0x75, 0x73, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x70, 0x62,
0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x50, 0x62, 0x55, 0x73, 0x65, 0x72, 0x52, 0x04,
0x75, 0x73, 0x65, 0x72, 0x12, 0x1a, 0x0a, 0x08, 0x75, 0x6e, 0x69, 0x74, 0x54, 0x79, 0x70, 0x65,
0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x75, 0x6e, 0x69, 0x74, 0x54, 0x79, 0x70, 0x65,
0x12, 0x14, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52,
0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x63, 0x6f, 0x73, 0x74, 0x18, 0x04,
0x20, 0x01, 0x28, 0x03, 0x52, 0x04, 0x63, 0x6f, 0x73, 0x74, 0x22, 0x2c, 0x0a, 0x03, 0x57, 0x61,
0x69, 0x12, 0x25, 0x0a, 0x04, 0x75, 0x73, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32,
0x11, 0x2e, 0x70, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x50, 0x62, 0x55, 0x73,
0x65, 0x72, 0x52, 0x04, 0x75, 0x73, 0x65, 0x72, 0x22, 0x49, 0x0a, 0x0c, 0x42, 0x75, 0x69, 0x6c,
0x64, 0x69, 0x6e, 0x67, 0x4d, 0x6f, 0x64, 0x65, 0x12, 0x25, 0x0a, 0x04, 0x75, 0x73, 0x65, 0x72,
0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x70, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x6d,
0x6f, 0x6e, 0x2e, 0x50, 0x62, 0x55, 0x73, 0x65, 0x72, 0x52, 0x04, 0x75, 0x73, 0x65, 0x72, 0x12,
0x12, 0x0a, 0x04, 0x6d, 0x6f, 0x64, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6d,
0x6f, 0x64, 0x65, 0x22, 0x62, 0x0a, 0x0b, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x45, 0x6c, 0x69,
0x74, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05,
0x52, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x12, 0x25, 0x0a, 0x04, 0x75, 0x73, 0x65, 0x72, 0x18, 0x02,
0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x70, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e,
0x2e, 0x50, 0x62, 0x55, 0x73, 0x65, 0x72, 0x52, 0x04, 0x75, 0x73, 0x65, 0x72, 0x12, 0x18, 0x0a,
0x07, 0x65, 0x6c, 0x69, 0x74, 0x65, 0x49, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x07,
0x65, 0x6c, 0x69, 0x74, 0x65, 0x49, 0x64, 0x22, 0x76, 0x0a, 0x0b, 0x43, 0x68, 0x61, 0x6e, 0x67,
0x65, 0x54, 0x69, 0x74, 0x6c, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x01,
0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x12, 0x25, 0x0a, 0x04, 0x75, 0x73,
0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x70, 0x62, 0x2e, 0x63, 0x6f,
0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x50, 0x62, 0x55, 0x73, 0x65, 0x72, 0x52, 0x04, 0x75, 0x73, 0x65,
0x72, 0x12, 0x18, 0x0a, 0x07, 0x74, 0x69, 0x74, 0x6c, 0x65, 0x49, 0x64, 0x18, 0x03, 0x20, 0x01,
0x28, 0x03, 0x52, 0x07, 0x74, 0x69, 0x74, 0x6c, 0x65, 0x49, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x6e,
0x61, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x22,
0x4f, 0x0a, 0x0d, 0x42, 0x75, 0x79, 0x42, 0x61, 0x74, 0x74, 0x6c, 0x65, 0x46, 0x6f, 0x6f, 0x64,
0x12, 0x16, 0x0a, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03,
0x52, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x63, 0x6f, 0x73, 0x74,
0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x04, 0x63, 0x6f, 0x73, 0x74, 0x12, 0x12, 0x0a, 0x04,
0x66, 0x6f, 0x6f, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x04, 0x66, 0x6f, 0x6f, 0x64,
0x22, 0x47, 0x0a, 0x09, 0x45, 0x6c, 0x69, 0x74, 0x65, 0x49, 0x74, 0x65, 0x6d, 0x12, 0x0e, 0x0a,
0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x02, 0x69, 0x64, 0x12, 0x12, 0x0a,
0x04, 0x73, 0x6f, 0x72, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x73, 0x6f, 0x72,
0x74, 0x12, 0x16, 0x0a, 0x06, 0x72, 0x65, 0x6d, 0x61, 0x69, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28,
0x05, 0x52, 0x06, 0x72, 0x65, 0x6d, 0x61, 0x69, 0x6e, 0x22, 0xa7, 0x03, 0x0a, 0x0c, 0x55, 0x73,
0x65, 0x72, 0x51, 0x75, 0x65, 0x72, 0x79, 0x4d, 0x73, 0x67, 0x12, 0x25, 0x0a, 0x04, 0x75, 0x73,
0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x70, 0x62, 0x2e, 0x63, 0x6f,
0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x50, 0x62, 0x55, 0x73, 0x65, 0x72, 0x52, 0x04, 0x75, 0x73, 0x65,
0x72, 0x12, 0x36, 0x0a, 0x04, 0x72, 0x61, 0x6e, 0x6b, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32,
0x22, 0x2e, 0x70, 0x62, 0x2e, 0x67, 0x61, 0x6d, 0x65, 0x2e, 0x7a, 0x68, 0x67, 0x2e, 0x55, 0x73,
0x65, 0x72, 0x51, 0x75, 0x65, 0x72, 0x79, 0x4d, 0x73, 0x67, 0x2e, 0x52, 0x61, 0x6e, 0x6b, 0x49,
0x74, 0x65, 0x6d, 0x52, 0x04, 0x72, 0x61, 0x6e, 0x6b, 0x12, 0x12, 0x0a, 0x04, 0x63, 0x6f, 0x69,
0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x04, 0x63, 0x6f, 0x69, 0x6e, 0x12, 0x2c, 0x0a,
0x06, 0x74, 0x69, 0x74, 0x6c, 0x65, 0x73, 0x18, 0x0a, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x14, 0x2e,
0x70, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x54, 0x69, 0x74, 0x6c, 0x65, 0x49,
0x74, 0x65, 0x6d, 0x52, 0x06, 0x74, 0x69, 0x74, 0x6c, 0x65, 0x73, 0x12, 0x2e, 0x0a, 0x06, 0x65,
0x6c, 0x69, 0x74, 0x65, 0x73, 0x18, 0x0b, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x70, 0x62,
0x2e, 0x67, 0x61, 0x6d, 0x65, 0x2e, 0x7a, 0x68, 0x67, 0x2e, 0x45, 0x6c, 0x69, 0x74, 0x65, 0x49,
0x74, 0x65, 0x6d, 0x52, 0x06, 0x65, 0x6c, 0x69, 0x74, 0x65, 0x73, 0x12, 0x38, 0x0a, 0x0c, 0x63,
0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x54, 0x69, 0x74, 0x6c, 0x65, 0x18, 0x0c, 0x20, 0x01, 0x28,
0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x67, 0x0a, 0x05, 0x47, 0x72,
0x61, 0x64, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x67, 0x72, 0x61, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01,
0x28, 0x05, 0x52, 0x05, 0x67, 0x72, 0x61, 0x64, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x6c, 0x65, 0x76,
0x65, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x12,
0x12, 0x0a, 0x04, 0x73, 0x74, 0x61, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x73,
0x74, 0x61, 0x72, 0x12, 0x1e, 0x0a, 0x0a, 0x62, 0x72, 0x61, 0x76, 0x65, 0x50, 0x6f, 0x69, 0x6e,
0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0a, 0x62, 0x72, 0x61, 0x76, 0x65, 0x50, 0x6f,
0x69, 0x6e, 0x74, 0x22, 0x8b, 0x02, 0x0a, 0x08, 0x4a, 0x6f, 0x69, 0x6e, 0x47, 0x61, 0x6d, 0x65,
0x12, 0x25, 0x0a, 0x04, 0x75, 0x73, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11,
0x2e, 0x70, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x50, 0x62, 0x55, 0x73, 0x65,
0x72, 0x52, 0x04, 0x75, 0x73, 0x65, 0x72, 0x12, 0x24, 0x0a, 0x0d, 0x6e, 0x6f, 0x62, 0x69, 0x6c,
0x69, 0x74, 0x79, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0d,
0x6e, 0x6f, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x12, 0x12, 0x0a,
0x04, 0x63, 0x6f, 0x69, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x04, 0x63, 0x6f, 0x69,
0x6e, 0x12, 0x28, 0x0a, 0x05, 0x67, 0x72, 0x61, 0x64, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b,
0x32, 0x12, 0x2e, 0x70, 0x62, 0x2e, 0x67, 0x61, 0x6d, 0x65, 0x2e, 0x7a, 0x68, 0x67, 0x2e, 0x47,
0x72, 0x61, 0x64, 0x65, 0x52, 0x05, 0x67, 0x72, 0x61, 0x64, 0x65, 0x12, 0x38, 0x0a, 0x0c, 0x63,
0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x54, 0x69, 0x74, 0x6c, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28,
0x0b, 0x32, 0x14, 0x2e, 0x70, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x54, 0x69,
0x74, 0x6c, 0x65, 0x49, 0x74, 0x65, 0x6d, 0x52, 0x0c, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74,
0x54, 0x69, 0x74, 0x6c, 0x65, 0x12, 0x3a, 0x0a, 0x0c, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74,
0x45, 0x6c, 0x69, 0x74, 0x65, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x70, 0x62,
0x45, 0x6c, 0x69, 0x74, 0x65, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x70, 0x62,
0x2e, 0x67, 0x61, 0x6d, 0x65, 0x2e, 0x7a, 0x68, 0x67, 0x2e, 0x45, 0x6c, 0x69, 0x74, 0x65, 0x49,
0x74, 0x65, 0x6d, 0x52, 0x0c, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x45, 0x6c, 0x69, 0x74,
0x65, 0x1a, 0x50, 0x0a, 0x08, 0x52, 0x61, 0x6e, 0x6b, 0x49, 0x74, 0x65, 0x6d, 0x12, 0x1a, 0x0a,
0x08, 0x72, 0x61, 0x6e, 0x6b, 0x54, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52,
0x08, 0x72, 0x61, 0x6e, 0x6b, 0x54, 0x79, 0x70, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x73, 0x63, 0x6f,
0x72, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x12,
0x12, 0x0a, 0x04, 0x72, 0x61, 0x6e, 0x6b, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x72,
0x61, 0x6e, 0x6b, 0x42, 0x20, 0x5a, 0x1e, 0x64, 0x63, 0x67, 0x2f, 0x67, 0x61, 0x6d, 0x65, 0x2f,
0x70, 0x62, 0x2f, 0x67, 0x61, 0x6d, 0x65, 0x2f, 0x7a, 0x68, 0x67, 0x3b, 0x70, 0x62, 0x47, 0x61,
0x6d, 0x65, 0x5a, 0x68, 0x67, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
0x65, 0x22, 0x47, 0x0a, 0x0a, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x55, 0x6e, 0x69, 0x74, 0x12,
0x25, 0x0a, 0x04, 0x75, 0x73, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e,
0x70, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x50, 0x62, 0x55, 0x73, 0x65, 0x72,
0x52, 0x04, 0x75, 0x73, 0x65, 0x72, 0x12, 0x12, 0x0a, 0x04, 0x75, 0x6e, 0x69, 0x74, 0x18, 0x02,
0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x75, 0x6e, 0x69, 0x74, 0x22, 0x41, 0x0a, 0x04, 0x4d, 0x6f,
0x76, 0x65, 0x12, 0x25, 0x0a, 0x04, 0x75, 0x73, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b,
0x32, 0x11, 0x2e, 0x70, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x50, 0x62, 0x55,
0x73, 0x65, 0x72, 0x52, 0x04, 0x75, 0x73, 0x65, 0x72, 0x12, 0x12, 0x0a, 0x04, 0x6c, 0x69, 0x6e,
0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6c, 0x69, 0x6e, 0x65, 0x22, 0x31, 0x0a,
0x08, 0x4f, 0x75, 0x74, 0x62, 0x72, 0x65, 0x61, 0x6b, 0x12, 0x25, 0x0a, 0x04, 0x75, 0x73, 0x65,
0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x70, 0x62, 0x2e, 0x63, 0x6f, 0x6d,
0x6d, 0x6f, 0x6e, 0x2e, 0x50, 0x62, 0x55, 0x73, 0x65, 0x72, 0x52, 0x04, 0x75, 0x73, 0x65, 0x72,
0x22, 0x7b, 0x0a, 0x0c, 0x4f, 0x75, 0x74, 0x62, 0x72, 0x65, 0x61, 0x6b, 0x46, 0x6f, 0x6f, 0x64,
0x12, 0x25, 0x0a, 0x04, 0x75, 0x73, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11,
0x2e, 0x70, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x50, 0x62, 0x55, 0x73, 0x65,
0x72, 0x52, 0x04, 0x75, 0x73, 0x65, 0x72, 0x12, 0x1a, 0x0a, 0x08, 0x75, 0x6e, 0x69, 0x74, 0x54,
0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x75, 0x6e, 0x69, 0x74, 0x54,
0x79, 0x70, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01,
0x28, 0x05, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x63, 0x6f, 0x73,
0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, 0x04, 0x63, 0x6f, 0x73, 0x74, 0x22, 0x2c, 0x0a,
0x03, 0x57, 0x61, 0x69, 0x12, 0x25, 0x0a, 0x04, 0x75, 0x73, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01,
0x28, 0x0b, 0x32, 0x11, 0x2e, 0x70, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x50,
0x62, 0x55, 0x73, 0x65, 0x72, 0x52, 0x04, 0x75, 0x73, 0x65, 0x72, 0x22, 0x49, 0x0a, 0x0c, 0x42,
0x75, 0x69, 0x6c, 0x64, 0x69, 0x6e, 0x67, 0x4d, 0x6f, 0x64, 0x65, 0x12, 0x25, 0x0a, 0x04, 0x75,
0x73, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x70, 0x62, 0x2e, 0x63,
0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x50, 0x62, 0x55, 0x73, 0x65, 0x72, 0x52, 0x04, 0x75, 0x73,
0x65, 0x72, 0x12, 0x12, 0x0a, 0x04, 0x6d, 0x6f, 0x64, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09,
0x52, 0x04, 0x6d, 0x6f, 0x64, 0x65, 0x22, 0x62, 0x0a, 0x0b, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65,
0x45, 0x6c, 0x69, 0x74, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20,
0x01, 0x28, 0x05, 0x52, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x12, 0x25, 0x0a, 0x04, 0x75, 0x73, 0x65,
0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x70, 0x62, 0x2e, 0x63, 0x6f, 0x6d,
0x6d, 0x6f, 0x6e, 0x2e, 0x50, 0x62, 0x55, 0x73, 0x65, 0x72, 0x52, 0x04, 0x75, 0x73, 0x65, 0x72,
0x12, 0x18, 0x0a, 0x07, 0x65, 0x6c, 0x69, 0x74, 0x65, 0x49, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28,
0x03, 0x52, 0x07, 0x65, 0x6c, 0x69, 0x74, 0x65, 0x49, 0x64, 0x22, 0x76, 0x0a, 0x0b, 0x43, 0x68,
0x61, 0x6e, 0x67, 0x65, 0x54, 0x69, 0x74, 0x6c, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x63, 0x6f, 0x64,
0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x12, 0x25, 0x0a,
0x04, 0x75, 0x73, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x70, 0x62,
0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x50, 0x62, 0x55, 0x73, 0x65, 0x72, 0x52, 0x04,
0x75, 0x73, 0x65, 0x72, 0x12, 0x18, 0x0a, 0x07, 0x74, 0x69, 0x74, 0x6c, 0x65, 0x49, 0x64, 0x18,
0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x07, 0x74, 0x69, 0x74, 0x6c, 0x65, 0x49, 0x64, 0x12, 0x12,
0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61,
0x6d, 0x65, 0x22, 0x4f, 0x0a, 0x0d, 0x42, 0x75, 0x79, 0x42, 0x61, 0x74, 0x74, 0x6c, 0x65, 0x46,
0x6f, 0x6f, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x64, 0x18, 0x01, 0x20,
0x01, 0x28, 0x03, 0x52, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x63,
0x6f, 0x73, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x04, 0x63, 0x6f, 0x73, 0x74, 0x12,
0x12, 0x0a, 0x04, 0x66, 0x6f, 0x6f, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x04, 0x66,
0x6f, 0x6f, 0x64, 0x22, 0x47, 0x0a, 0x09, 0x45, 0x6c, 0x69, 0x74, 0x65, 0x49, 0x74, 0x65, 0x6d,
0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x02, 0x69, 0x64,
0x12, 0x12, 0x0a, 0x04, 0x73, 0x6f, 0x72, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04,
0x73, 0x6f, 0x72, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x72, 0x65, 0x6d, 0x61, 0x69, 0x6e, 0x18, 0x03,
0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x72, 0x65, 0x6d, 0x61, 0x69, 0x6e, 0x22, 0xd1, 0x03, 0x0a,
0x0c, 0x55, 0x73, 0x65, 0x72, 0x51, 0x75, 0x65, 0x72, 0x79, 0x4d, 0x73, 0x67, 0x12, 0x25, 0x0a,
0x04, 0x75, 0x73, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x70, 0x62,
0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x50, 0x62, 0x55, 0x73, 0x65, 0x72, 0x52, 0x04,
0x75, 0x73, 0x65, 0x72, 0x12, 0x36, 0x0a, 0x04, 0x72, 0x61, 0x6e, 0x6b, 0x18, 0x02, 0x20, 0x03,
0x28, 0x0b, 0x32, 0x22, 0x2e, 0x70, 0x62, 0x2e, 0x67, 0x61, 0x6d, 0x65, 0x2e, 0x7a, 0x68, 0x67,
0x2e, 0x55, 0x73, 0x65, 0x72, 0x51, 0x75, 0x65, 0x72, 0x79, 0x4d, 0x73, 0x67, 0x2e, 0x52, 0x61,
0x6e, 0x6b, 0x49, 0x74, 0x65, 0x6d, 0x52, 0x04, 0x72, 0x61, 0x6e, 0x6b, 0x12, 0x12, 0x0a, 0x04,
0x63, 0x6f, 0x69, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x04, 0x63, 0x6f, 0x69, 0x6e,
0x12, 0x28, 0x0a, 0x05, 0x67, 0x72, 0x61, 0x64, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32,
0x12, 0x2e, 0x70, 0x62, 0x2e, 0x67, 0x61, 0x6d, 0x65, 0x2e, 0x7a, 0x68, 0x67, 0x2e, 0x47, 0x72,
0x61, 0x64, 0x65, 0x52, 0x05, 0x67, 0x72, 0x61, 0x64, 0x65, 0x12, 0x2c, 0x0a, 0x06, 0x74, 0x69,
0x74, 0x6c, 0x65, 0x73, 0x18, 0x0a, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x70, 0x62, 0x2e,
0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x54, 0x69, 0x74, 0x6c, 0x65, 0x49, 0x74, 0x65, 0x6d,
0x52, 0x06, 0x74, 0x69, 0x74, 0x6c, 0x65, 0x73, 0x12, 0x2e, 0x0a, 0x06, 0x65, 0x6c, 0x69, 0x74,
0x65, 0x73, 0x18, 0x0b, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x70, 0x62, 0x2e, 0x67, 0x61,
0x6d, 0x65, 0x2e, 0x7a, 0x68, 0x67, 0x2e, 0x45, 0x6c, 0x69, 0x74, 0x65, 0x49, 0x74, 0x65, 0x6d,
0x52, 0x06, 0x65, 0x6c, 0x69, 0x74, 0x65, 0x73, 0x12, 0x38, 0x0a, 0x0c, 0x63, 0x75, 0x72, 0x72,
0x65, 0x6e, 0x74, 0x54, 0x69, 0x74, 0x6c, 0x65, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14,
0x2e, 0x70, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x54, 0x69, 0x74, 0x6c, 0x65,
0x49, 0x74, 0x65, 0x6d, 0x52, 0x0c, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x54, 0x69, 0x74,
0x6c, 0x65, 0x12, 0x3a, 0x0a, 0x0c, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x45, 0x6c, 0x69,
0x74, 0x65, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x70, 0x62, 0x2e, 0x67, 0x61,
0x6d, 0x65, 0x2e, 0x7a, 0x68, 0x67, 0x2e, 0x45, 0x6c, 0x69, 0x74, 0x65, 0x49, 0x74, 0x65, 0x6d,
0x52, 0x0c, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x45, 0x6c, 0x69, 0x74, 0x65, 0x1a, 0x50,
0x0a, 0x08, 0x52, 0x61, 0x6e, 0x6b, 0x49, 0x74, 0x65, 0x6d, 0x12, 0x1a, 0x0a, 0x08, 0x72, 0x61,
0x6e, 0x6b, 0x54, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x72, 0x61,
0x6e, 0x6b, 0x54, 0x79, 0x70, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x18,
0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x12, 0x12, 0x0a, 0x04,
0x72, 0x61, 0x6e, 0x6b, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x72, 0x61, 0x6e, 0x6b,
0x42, 0x20, 0x5a, 0x1e, 0x64, 0x63, 0x67, 0x2f, 0x67, 0x61, 0x6d, 0x65, 0x2f, 0x70, 0x62, 0x2f,
0x67, 0x61, 0x6d, 0x65, 0x2f, 0x7a, 0x68, 0x67, 0x3b, 0x70, 0x62, 0x47, 0x61, 0x6d, 0x65, 0x5a,
0x68, 0x67, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
}
var (
@ -976,47 +1076,50 @@ func file_game_zhg_command_proto_rawDescGZIP() []byte {
return file_game_zhg_command_proto_rawDescData
}
var file_game_zhg_command_proto_msgTypes = make([]protoimpl.MessageInfo, 13)
var file_game_zhg_command_proto_msgTypes = make([]protoimpl.MessageInfo, 14)
var file_game_zhg_command_proto_goTypes = []interface{}{
(*JoinGame)(nil), // 0: pb.game.zhg.JoinGame
(*CreateUnit)(nil), // 1: pb.game.zhg.CreateUnit
(*Move)(nil), // 2: pb.game.zhg.Move
(*Outbreak)(nil), // 3: pb.game.zhg.Outbreak
(*OutbreakFood)(nil), // 4: pb.game.zhg.OutbreakFood
(*Wai)(nil), // 5: pb.game.zhg.Wai
(*BuildingMode)(nil), // 6: pb.game.zhg.BuildingMode
(*ChangeElite)(nil), // 7: pb.game.zhg.ChangeElite
(*ChangeTitle)(nil), // 8: pb.game.zhg.ChangeTitle
(*BuyBattleFood)(nil), // 9: pb.game.zhg.BuyBattleFood
(*EliteItem)(nil), // 10: pb.game.zhg.EliteItem
(*UserQueryMsg)(nil), // 11: pb.game.zhg.UserQueryMsg
(*UserQueryMsg_RankItem)(nil), // 12: pb.game.zhg.UserQueryMsg.RankItem
(*common.PbUser)(nil), // 13: pb.common.PbUser
(*common.TitleItem)(nil), // 14: pb.common.TitleItem
(*Grade)(nil), // 0: pb.game.zhg.Grade
(*JoinGame)(nil), // 1: pb.game.zhg.JoinGame
(*CreateUnit)(nil), // 2: pb.game.zhg.CreateUnit
(*Move)(nil), // 3: pb.game.zhg.Move
(*Outbreak)(nil), // 4: pb.game.zhg.Outbreak
(*OutbreakFood)(nil), // 5: pb.game.zhg.OutbreakFood
(*Wai)(nil), // 6: pb.game.zhg.Wai
(*BuildingMode)(nil), // 7: pb.game.zhg.BuildingMode
(*ChangeElite)(nil), // 8: pb.game.zhg.ChangeElite
(*ChangeTitle)(nil), // 9: pb.game.zhg.ChangeTitle
(*BuyBattleFood)(nil), // 10: pb.game.zhg.BuyBattleFood
(*EliteItem)(nil), // 11: pb.game.zhg.EliteItem
(*UserQueryMsg)(nil), // 12: pb.game.zhg.UserQueryMsg
(*UserQueryMsg_RankItem)(nil), // 13: pb.game.zhg.UserQueryMsg.RankItem
(*common.PbUser)(nil), // 14: pb.common.PbUser
(*common.TitleItem)(nil), // 15: pb.common.TitleItem
}
var file_game_zhg_command_proto_depIdxs = []int32{
13, // 0: pb.game.zhg.JoinGame.user:type_name -> pb.common.PbUser
14, // 1: pb.game.zhg.JoinGame.currentTitle:type_name -> pb.common.TitleItem
10, // 2: pb.game.zhg.JoinGame.currentElite:type_name -> pb.game.zhg.EliteItem
13, // 3: pb.game.zhg.CreateUnit.user:type_name -> pb.common.PbUser
13, // 4: pb.game.zhg.Move.user:type_name -> pb.common.PbUser
13, // 5: pb.game.zhg.Outbreak.user:type_name -> pb.common.PbUser
13, // 6: pb.game.zhg.OutbreakFood.user:type_name -> pb.common.PbUser
13, // 7: pb.game.zhg.Wai.user:type_name -> pb.common.PbUser
13, // 8: pb.game.zhg.BuildingMode.user:type_name -> pb.common.PbUser
13, // 9: pb.game.zhg.ChangeElite.user:type_name -> pb.common.PbUser
13, // 10: pb.game.zhg.ChangeTitle.user:type_name -> pb.common.PbUser
13, // 11: pb.game.zhg.UserQueryMsg.user:type_name -> pb.common.PbUser
12, // 12: pb.game.zhg.UserQueryMsg.rank:type_name -> pb.game.zhg.UserQueryMsg.RankItem
14, // 13: pb.game.zhg.UserQueryMsg.titles:type_name -> pb.common.TitleItem
10, // 14: pb.game.zhg.UserQueryMsg.elites:type_name -> pb.game.zhg.EliteItem
14, // 15: pb.game.zhg.UserQueryMsg.currentTitle:type_name -> pb.common.TitleItem
10, // 16: pb.game.zhg.UserQueryMsg.currentElite:type_name -> pb.game.zhg.EliteItem
17, // [17:17] is the sub-list for method output_type
17, // [17:17] is the sub-list for method input_type
17, // [17:17] is the sub-list for extension type_name
17, // [17:17] is the sub-list for extension extendee
0, // [0:17] is the sub-list for field type_name
14, // 0: pb.game.zhg.JoinGame.user:type_name -> pb.common.PbUser
0, // 1: pb.game.zhg.JoinGame.grade:type_name -> pb.game.zhg.Grade
15, // 2: pb.game.zhg.JoinGame.currentTitle:type_name -> pb.common.TitleItem
11, // 3: pb.game.zhg.JoinGame.currentElite:type_name -> pb.game.zhg.EliteItem
14, // 4: pb.game.zhg.CreateUnit.user:type_name -> pb.common.PbUser
14, // 5: pb.game.zhg.Move.user:type_name -> pb.common.PbUser
14, // 6: pb.game.zhg.Outbreak.user:type_name -> pb.common.PbUser
14, // 7: pb.game.zhg.OutbreakFood.user:type_name -> pb.common.PbUser
14, // 8: pb.game.zhg.Wai.user:type_name -> pb.common.PbUser
14, // 9: pb.game.zhg.BuildingMode.user:type_name -> pb.common.PbUser
14, // 10: pb.game.zhg.ChangeElite.user:type_name -> pb.common.PbUser
14, // 11: pb.game.zhg.ChangeTitle.user:type_name -> pb.common.PbUser
14, // 12: pb.game.zhg.UserQueryMsg.user:type_name -> pb.common.PbUser
13, // 13: pb.game.zhg.UserQueryMsg.rank:type_name -> pb.game.zhg.UserQueryMsg.RankItem
0, // 14: pb.game.zhg.UserQueryMsg.grade:type_name -> pb.game.zhg.Grade
15, // 15: pb.game.zhg.UserQueryMsg.titles:type_name -> pb.common.TitleItem
11, // 16: pb.game.zhg.UserQueryMsg.elites:type_name -> pb.game.zhg.EliteItem
15, // 17: pb.game.zhg.UserQueryMsg.currentTitle:type_name -> pb.common.TitleItem
11, // 18: pb.game.zhg.UserQueryMsg.currentElite:type_name -> pb.game.zhg.EliteItem
19, // [19:19] is the sub-list for method output_type
19, // [19:19] is the sub-list for method input_type
19, // [19:19] is the sub-list for extension type_name
19, // [19:19] is the sub-list for extension extendee
0, // [0:19] is the sub-list for field type_name
}
func init() { file_game_zhg_command_proto_init() }
@ -1026,7 +1129,7 @@ func file_game_zhg_command_proto_init() {
}
if !protoimpl.UnsafeEnabled {
file_game_zhg_command_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*JoinGame); i {
switch v := v.(*Grade); i {
case 0:
return &v.state
case 1:
@ -1038,7 +1141,7 @@ func file_game_zhg_command_proto_init() {
}
}
file_game_zhg_command_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*CreateUnit); i {
switch v := v.(*JoinGame); i {
case 0:
return &v.state
case 1:
@ -1050,7 +1153,7 @@ func file_game_zhg_command_proto_init() {
}
}
file_game_zhg_command_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*Move); i {
switch v := v.(*CreateUnit); i {
case 0:
return &v.state
case 1:
@ -1062,7 +1165,7 @@ func file_game_zhg_command_proto_init() {
}
}
file_game_zhg_command_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*Outbreak); i {
switch v := v.(*Move); i {
case 0:
return &v.state
case 1:
@ -1074,7 +1177,7 @@ func file_game_zhg_command_proto_init() {
}
}
file_game_zhg_command_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*OutbreakFood); i {
switch v := v.(*Outbreak); i {
case 0:
return &v.state
case 1:
@ -1086,7 +1189,7 @@ func file_game_zhg_command_proto_init() {
}
}
file_game_zhg_command_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*Wai); i {
switch v := v.(*OutbreakFood); i {
case 0:
return &v.state
case 1:
@ -1098,7 +1201,7 @@ func file_game_zhg_command_proto_init() {
}
}
file_game_zhg_command_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*BuildingMode); i {
switch v := v.(*Wai); i {
case 0:
return &v.state
case 1:
@ -1110,7 +1213,7 @@ func file_game_zhg_command_proto_init() {
}
}
file_game_zhg_command_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*ChangeElite); i {
switch v := v.(*BuildingMode); i {
case 0:
return &v.state
case 1:
@ -1122,7 +1225,7 @@ func file_game_zhg_command_proto_init() {
}
}
file_game_zhg_command_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*ChangeTitle); i {
switch v := v.(*ChangeElite); i {
case 0:
return &v.state
case 1:
@ -1134,7 +1237,7 @@ func file_game_zhg_command_proto_init() {
}
}
file_game_zhg_command_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*BuyBattleFood); i {
switch v := v.(*ChangeTitle); i {
case 0:
return &v.state
case 1:
@ -1146,7 +1249,7 @@ func file_game_zhg_command_proto_init() {
}
}
file_game_zhg_command_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*EliteItem); i {
switch v := v.(*BuyBattleFood); i {
case 0:
return &v.state
case 1:
@ -1158,7 +1261,7 @@ func file_game_zhg_command_proto_init() {
}
}
file_game_zhg_command_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*UserQueryMsg); i {
switch v := v.(*EliteItem); i {
case 0:
return &v.state
case 1:
@ -1170,6 +1273,18 @@ func file_game_zhg_command_proto_init() {
}
}
file_game_zhg_command_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*UserQueryMsg); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_game_zhg_command_proto_msgTypes[13].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*UserQueryMsg_RankItem); i {
case 0:
return &v.state
@ -1188,7 +1303,7 @@ func file_game_zhg_command_proto_init() {
GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
RawDescriptor: file_game_zhg_command_proto_rawDesc,
NumEnums: 0,
NumMessages: 13,
NumMessages: 14,
NumExtensions: 0,
NumServices: 0,
},

@ -6,11 +6,21 @@ import "common/common.proto";
option go_package = "dcg/game/pb/game/zhg;pbGameZhg";
message Grade {
//
int32 grade = 1; //
int32 level = 2; //
int32 star = 3; //
int64 bravePoint = 4; // ()
}
// push -> game.join
message JoinGame{
pb.common.PbUser user = 1;
int32 nobilityLevel = 2; // 3 0
int64 coin = 3; //
Grade grade = 4; //
pb.common.TitleItem currentTitle = 10; //
EliteItem currentElite = 11; //
}
@ -94,6 +104,7 @@ message UserQueryMsg {
pb.common.PbUser user = 1; //
repeated RankItem rank = 2; // ()
int64 coin = 3; //
Grade grade = 4; //
repeated pb.common.TitleItem titles = 10; // ID
repeated EliteItem elites = 11; //

@ -20,6 +20,116 @@ const (
_ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20)
)
type StatPvPReportResp_GradeResult int32
const (
StatPvPReportResp_Keep StatPvPReportResp_GradeResult = 0 // 不变(因为骁勇分抵扣)
StatPvPReportResp_GradeUp StatPvPReportResp_GradeResult = 1 // 段位提升
StatPvPReportResp_LevelUp StatPvPReportResp_GradeResult = 2 // 段位等级提升
StatPvPReportResp_StarUp StatPvPReportResp_GradeResult = 3 // 等级星级提升
StatPvPReportResp_GradeDown StatPvPReportResp_GradeResult = 4 // 掉段
StatPvPReportResp_LevelDown StatPvPReportResp_GradeResult = 5 // 降级
StatPvPReportResp_StarDown StatPvPReportResp_GradeResult = 6 // 掉星
)
// Enum value maps for StatPvPReportResp_GradeResult.
var (
StatPvPReportResp_GradeResult_name = map[int32]string{
0: "Keep",
1: "GradeUp",
2: "LevelUp",
3: "StarUp",
4: "GradeDown",
5: "LevelDown",
6: "StarDown",
}
StatPvPReportResp_GradeResult_value = map[string]int32{
"Keep": 0,
"GradeUp": 1,
"LevelUp": 2,
"StarUp": 3,
"GradeDown": 4,
"LevelDown": 5,
"StarDown": 6,
}
)
func (x StatPvPReportResp_GradeResult) Enum() *StatPvPReportResp_GradeResult {
p := new(StatPvPReportResp_GradeResult)
*p = x
return p
}
func (x StatPvPReportResp_GradeResult) String() string {
return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
}
func (StatPvPReportResp_GradeResult) Descriptor() protoreflect.EnumDescriptor {
return file_game_zhg_stat_proto_enumTypes[0].Descriptor()
}
func (StatPvPReportResp_GradeResult) Type() protoreflect.EnumType {
return &file_game_zhg_stat_proto_enumTypes[0]
}
func (x StatPvPReportResp_GradeResult) Number() protoreflect.EnumNumber {
return protoreflect.EnumNumber(x)
}
// Deprecated: Use StatPvPReportResp_GradeResult.Descriptor instead.
func (StatPvPReportResp_GradeResult) EnumDescriptor() ([]byte, []int) {
return file_game_zhg_stat_proto_rawDescGZIP(), []int{1, 0}
}
type StatPvPReportResp_GradeReason int32
const (
StatPvPReportResp_Win StatPvPReportResp_GradeReason = 0 // 因为获胜
StatPvPReportResp_Lost StatPvPReportResp_GradeReason = 1 // 因为战败
StatPvPReportResp_BravePoint StatPvPReportResp_GradeReason = 2 // 因为骁勇分保护,所以不掉星
)
// Enum value maps for StatPvPReportResp_GradeReason.
var (
StatPvPReportResp_GradeReason_name = map[int32]string{
0: "Win",
1: "Lost",
2: "BravePoint",
}
StatPvPReportResp_GradeReason_value = map[string]int32{
"Win": 0,
"Lost": 1,
"BravePoint": 2,
}
)
func (x StatPvPReportResp_GradeReason) Enum() *StatPvPReportResp_GradeReason {
p := new(StatPvPReportResp_GradeReason)
*p = x
return p
}
func (x StatPvPReportResp_GradeReason) String() string {
return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
}
func (StatPvPReportResp_GradeReason) Descriptor() protoreflect.EnumDescriptor {
return file_game_zhg_stat_proto_enumTypes[1].Descriptor()
}
func (StatPvPReportResp_GradeReason) Type() protoreflect.EnumType {
return &file_game_zhg_stat_proto_enumTypes[1]
}
func (x StatPvPReportResp_GradeReason) Number() protoreflect.EnumNumber {
return protoreflect.EnumNumber(x)
}
// Deprecated: Use StatPvPReportResp_GradeReason.Descriptor instead.
func (StatPvPReportResp_GradeReason) EnumDescriptor() ([]byte, []int) {
return file_game_zhg_stat_proto_rawDescGZIP(), []int{1, 1}
}
// PvP战报 request -> statistics.pvp.report
type StatPvPReportReq struct {
state protoimpl.MessageState
@ -291,6 +401,77 @@ func (x *StatPvPReportReq_Item) GetIsGeneral() bool {
return false
}
type StatPvPReportResp_Grade struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
Grade int32 `protobuf:"varint,1,opt,name=grade,proto3" json:"grade,omitempty"` // 段位
Level int32 `protobuf:"varint,2,opt,name=level,proto3" json:"level,omitempty"` // 段位等级
Star int32 `protobuf:"varint,3,opt,name=star,proto3" json:"star,omitempty"` // 等级星级
BravePoint int64 `protobuf:"varint,4,opt,name=bravePoint,proto3" json:"bravePoint,omitempty"` // 剩余 骁勇分(历史评分累计)
}
func (x *StatPvPReportResp_Grade) Reset() {
*x = StatPvPReportResp_Grade{}
if protoimpl.UnsafeEnabled {
mi := &file_game_zhg_stat_proto_msgTypes[3]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *StatPvPReportResp_Grade) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*StatPvPReportResp_Grade) ProtoMessage() {}
func (x *StatPvPReportResp_Grade) ProtoReflect() protoreflect.Message {
mi := &file_game_zhg_stat_proto_msgTypes[3]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use StatPvPReportResp_Grade.ProtoReflect.Descriptor instead.
func (*StatPvPReportResp_Grade) Descriptor() ([]byte, []int) {
return file_game_zhg_stat_proto_rawDescGZIP(), []int{1, 0}
}
func (x *StatPvPReportResp_Grade) GetGrade() int32 {
if x != nil {
return x.Grade
}
return 0
}
func (x *StatPvPReportResp_Grade) GetLevel() int32 {
if x != nil {
return x.Level
}
return 0
}
func (x *StatPvPReportResp_Grade) GetStar() int32 {
if x != nil {
return x.Star
}
return 0
}
func (x *StatPvPReportResp_Grade) GetBravePoint() int64 {
if x != nil {
return x.BravePoint
}
return 0
}
type StatPvPReportResp_Item struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
@ -300,12 +481,16 @@ type StatPvPReportResp_Item struct {
Uname string `protobuf:"bytes,2,opt,name=uname,proto3" json:"uname,omitempty"` // 用户名
Position int32 `protobuf:"varint,3,opt,name=position,proto3" json:"position,omitempty"` // 名次(特指在某一方的名次)
Score float32 `protobuf:"fixed32,4,opt,name=score,proto3" json:"score,omitempty"` // 评分(一位小数)
// grade
Grade *StatPvPReportResp_Grade `protobuf:"bytes,5,opt,name=grade,proto3" json:"grade,omitempty"`
GradeResult StatPvPReportResp_GradeResult `protobuf:"varint,6,opt,name=gradeResult,proto3,enum=pb.game.zhg.StatPvPReportResp_GradeResult" json:"gradeResult,omitempty"` // 段位结果
GradeReason StatPvPReportResp_GradeReason `protobuf:"varint,7,opt,name=gradeReason,proto3,enum=pb.game.zhg.StatPvPReportResp_GradeReason" json:"gradeReason,omitempty"` // 段位结果原因
}
func (x *StatPvPReportResp_Item) Reset() {
*x = StatPvPReportResp_Item{}
if protoimpl.UnsafeEnabled {
mi := &file_game_zhg_stat_proto_msgTypes[3]
mi := &file_game_zhg_stat_proto_msgTypes[4]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@ -318,7 +503,7 @@ func (x *StatPvPReportResp_Item) String() string {
func (*StatPvPReportResp_Item) ProtoMessage() {}
func (x *StatPvPReportResp_Item) ProtoReflect() protoreflect.Message {
mi := &file_game_zhg_stat_proto_msgTypes[3]
mi := &file_game_zhg_stat_proto_msgTypes[4]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@ -331,7 +516,7 @@ func (x *StatPvPReportResp_Item) ProtoReflect() protoreflect.Message {
// Deprecated: Use StatPvPReportResp_Item.ProtoReflect.Descriptor instead.
func (*StatPvPReportResp_Item) Descriptor() ([]byte, []int) {
return file_game_zhg_stat_proto_rawDescGZIP(), []int{1, 0}
return file_game_zhg_stat_proto_rawDescGZIP(), []int{1, 1}
}
func (x *StatPvPReportResp_Item) GetUid() int64 {
@ -362,6 +547,27 @@ func (x *StatPvPReportResp_Item) GetScore() float32 {
return 0
}
func (x *StatPvPReportResp_Item) GetGrade() *StatPvPReportResp_Grade {
if x != nil {
return x.Grade
}
return nil
}
func (x *StatPvPReportResp_Item) GetGradeResult() StatPvPReportResp_GradeResult {
if x != nil {
return x.GradeResult
}
return StatPvPReportResp_Keep
}
func (x *StatPvPReportResp_Item) GetGradeReason() StatPvPReportResp_GradeReason {
if x != nil {
return x.GradeReason
}
return StatPvPReportResp_Win
}
var File_game_zhg_stat_proto protoreflect.FileDescriptor
var file_game_zhg_stat_proto_rawDesc = []byte{
@ -400,7 +606,7 @@ var file_game_zhg_stat_proto_rawDesc = []byte{
0x61, 0x79, 0x65, 0x72, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0c, 0x64, 0x65, 0x4b, 0x69,
0x6c, 0x6c, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x12, 0x1c, 0x0a, 0x09, 0x69, 0x73, 0x47, 0x65,
0x6e, 0x65, 0x72, 0x61, 0x6c, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x08, 0x52, 0x09, 0x69, 0x73, 0x47,
0x65, 0x6e, 0x65, 0x72, 0x61, 0x6c, 0x22, 0xaf, 0x02, 0x0a, 0x11, 0x53, 0x74, 0x61, 0x74, 0x50,
0x65, 0x6e, 0x65, 0x72, 0x61, 0x6c, 0x22, 0x8e, 0x06, 0x0a, 0x11, 0x53, 0x74, 0x61, 0x74, 0x50,
0x76, 0x50, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x52, 0x65, 0x73, 0x70, 0x12, 0x18, 0x0a, 0x07,
0x77, 0x69, 0x6e, 0x43, 0x61, 0x6d, 0x70, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x77,
0x69, 0x6e, 0x43, 0x61, 0x6d, 0x70, 0x12, 0x1a, 0x0a, 0x08, 0x62, 0x61, 0x74, 0x74, 0x6c, 0x65,
@ -413,16 +619,46 @@ var file_game_zhg_stat_proto_rawDesc = []byte{
0x18, 0x0b, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x70, 0x62, 0x2e, 0x67, 0x61, 0x6d, 0x65,
0x2e, 0x7a, 0x68, 0x67, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x50, 0x76, 0x50, 0x52, 0x65, 0x70, 0x6f,
0x72, 0x74, 0x52, 0x65, 0x73, 0x70, 0x2e, 0x49, 0x74, 0x65, 0x6d, 0x52, 0x09, 0x6c, 0x6f, 0x73,
0x74, 0x49, 0x74, 0x65, 0x6d, 0x73, 0x1a, 0x60, 0x0a, 0x04, 0x49, 0x74, 0x65, 0x6d, 0x12, 0x10,
0x0a, 0x03, 0x75, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x03, 0x75, 0x69, 0x64,
0x12, 0x14, 0x0a, 0x05, 0x75, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52,
0x05, 0x75, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69,
0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69,
0x6f, 0x6e, 0x12, 0x14, 0x0a, 0x05, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28,
0x02, 0x52, 0x05, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x42, 0x20, 0x5a, 0x1e, 0x64, 0x63, 0x67, 0x2f,
0x67, 0x61, 0x6d, 0x65, 0x2f, 0x70, 0x62, 0x2f, 0x67, 0x61, 0x6d, 0x65, 0x2f, 0x7a, 0x68, 0x67,
0x3b, 0x70, 0x62, 0x47, 0x61, 0x6d, 0x65, 0x5a, 0x68, 0x67, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74,
0x6f, 0x33,
0x74, 0x49, 0x74, 0x65, 0x6d, 0x73, 0x1a, 0x67, 0x0a, 0x05, 0x47, 0x72, 0x61, 0x64, 0x65, 0x12,
0x14, 0x0a, 0x05, 0x67, 0x72, 0x61, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05,
0x67, 0x72, 0x61, 0x64, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x18, 0x02,
0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x12, 0x12, 0x0a, 0x04, 0x73,
0x74, 0x61, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x73, 0x74, 0x61, 0x72, 0x12,
0x1e, 0x0a, 0x0a, 0x62, 0x72, 0x61, 0x76, 0x65, 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x18, 0x04, 0x20,
0x01, 0x28, 0x03, 0x52, 0x0a, 0x62, 0x72, 0x61, 0x76, 0x65, 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x1a,
0xb8, 0x02, 0x0a, 0x04, 0x49, 0x74, 0x65, 0x6d, 0x12, 0x10, 0x0a, 0x03, 0x75, 0x69, 0x64, 0x18,
0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x03, 0x75, 0x69, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x75, 0x6e,
0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x75, 0x6e, 0x61, 0x6d, 0x65,
0x12, 0x1a, 0x0a, 0x08, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01,
0x28, 0x05, 0x52, 0x08, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x14, 0x0a, 0x05,
0x73, 0x63, 0x6f, 0x72, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x02, 0x52, 0x05, 0x73, 0x63, 0x6f,
0x72, 0x65, 0x12, 0x3a, 0x0a, 0x05, 0x67, 0x72, 0x61, 0x64, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28,
0x0b, 0x32, 0x24, 0x2e, 0x70, 0x62, 0x2e, 0x67, 0x61, 0x6d, 0x65, 0x2e, 0x7a, 0x68, 0x67, 0x2e,
0x53, 0x74, 0x61, 0x74, 0x50, 0x76, 0x50, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x52, 0x65, 0x73,
0x70, 0x2e, 0x47, 0x72, 0x61, 0x64, 0x65, 0x52, 0x05, 0x67, 0x72, 0x61, 0x64, 0x65, 0x12, 0x4c,
0x0a, 0x0b, 0x67, 0x72, 0x61, 0x64, 0x65, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x18, 0x06, 0x20,
0x01, 0x28, 0x0e, 0x32, 0x2a, 0x2e, 0x70, 0x62, 0x2e, 0x67, 0x61, 0x6d, 0x65, 0x2e, 0x7a, 0x68,
0x67, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x50, 0x76, 0x50, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x52,
0x65, 0x73, 0x70, 0x2e, 0x47, 0x72, 0x61, 0x64, 0x65, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x52,
0x0b, 0x67, 0x72, 0x61, 0x64, 0x65, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x12, 0x4c, 0x0a, 0x0b,
0x67, 0x72, 0x61, 0x64, 0x65, 0x52, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x18, 0x07, 0x20, 0x01, 0x28,
0x0e, 0x32, 0x2a, 0x2e, 0x70, 0x62, 0x2e, 0x67, 0x61, 0x6d, 0x65, 0x2e, 0x7a, 0x68, 0x67, 0x2e,
0x53, 0x74, 0x61, 0x74, 0x50, 0x76, 0x50, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x52, 0x65, 0x73,
0x70, 0x2e, 0x47, 0x72, 0x61, 0x64, 0x65, 0x52, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x52, 0x0b, 0x67,
0x72, 0x61, 0x64, 0x65, 0x52, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x22, 0x69, 0x0a, 0x0b, 0x47, 0x72,
0x61, 0x64, 0x65, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x12, 0x08, 0x0a, 0x04, 0x4b, 0x65, 0x65,
0x70, 0x10, 0x00, 0x12, 0x0b, 0x0a, 0x07, 0x47, 0x72, 0x61, 0x64, 0x65, 0x55, 0x70, 0x10, 0x01,
0x12, 0x0b, 0x0a, 0x07, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x55, 0x70, 0x10, 0x02, 0x12, 0x0a, 0x0a,
0x06, 0x53, 0x74, 0x61, 0x72, 0x55, 0x70, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x47, 0x72, 0x61,
0x64, 0x65, 0x44, 0x6f, 0x77, 0x6e, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x4c, 0x65, 0x76, 0x65,
0x6c, 0x44, 0x6f, 0x77, 0x6e, 0x10, 0x05, 0x12, 0x0c, 0x0a, 0x08, 0x53, 0x74, 0x61, 0x72, 0x44,
0x6f, 0x77, 0x6e, 0x10, 0x06, 0x22, 0x30, 0x0a, 0x0b, 0x47, 0x72, 0x61, 0x64, 0x65, 0x52, 0x65,
0x61, 0x73, 0x6f, 0x6e, 0x12, 0x07, 0x0a, 0x03, 0x57, 0x69, 0x6e, 0x10, 0x00, 0x12, 0x08, 0x0a,
0x04, 0x4c, 0x6f, 0x73, 0x74, 0x10, 0x01, 0x12, 0x0e, 0x0a, 0x0a, 0x42, 0x72, 0x61, 0x76, 0x65,
0x50, 0x6f, 0x69, 0x6e, 0x74, 0x10, 0x02, 0x42, 0x20, 0x5a, 0x1e, 0x64, 0x63, 0x67, 0x2f, 0x67,
0x61, 0x6d, 0x65, 0x2f, 0x70, 0x62, 0x2f, 0x67, 0x61, 0x6d, 0x65, 0x2f, 0x7a, 0x68, 0x67, 0x3b,
0x70, 0x62, 0x47, 0x61, 0x6d, 0x65, 0x5a, 0x68, 0x67, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f,
0x33,
}
var (
@ -437,23 +673,30 @@ func file_game_zhg_stat_proto_rawDescGZIP() []byte {
return file_game_zhg_stat_proto_rawDescData
}
var file_game_zhg_stat_proto_msgTypes = make([]protoimpl.MessageInfo, 4)
var file_game_zhg_stat_proto_enumTypes = make([]protoimpl.EnumInfo, 2)
var file_game_zhg_stat_proto_msgTypes = make([]protoimpl.MessageInfo, 5)
var file_game_zhg_stat_proto_goTypes = []interface{}{
(*StatPvPReportReq)(nil), // 0: pb.game.zhg.StatPvPReportReq
(*StatPvPReportResp)(nil), // 1: pb.game.zhg.StatPvPReportResp
(*StatPvPReportReq_Item)(nil), // 2: pb.game.zhg.StatPvPReportReq.Item
(*StatPvPReportResp_Item)(nil), // 3: pb.game.zhg.StatPvPReportResp.Item
(StatPvPReportResp_GradeResult)(0), // 0: pb.game.zhg.StatPvPReportResp.GradeResult
(StatPvPReportResp_GradeReason)(0), // 1: pb.game.zhg.StatPvPReportResp.GradeReason
(*StatPvPReportReq)(nil), // 2: pb.game.zhg.StatPvPReportReq
(*StatPvPReportResp)(nil), // 3: pb.game.zhg.StatPvPReportResp
(*StatPvPReportReq_Item)(nil), // 4: pb.game.zhg.StatPvPReportReq.Item
(*StatPvPReportResp_Grade)(nil), // 5: pb.game.zhg.StatPvPReportResp.Grade
(*StatPvPReportResp_Item)(nil), // 6: pb.game.zhg.StatPvPReportResp.Item
}
var file_game_zhg_stat_proto_depIdxs = []int32{
2, // 0: pb.game.zhg.StatPvPReportReq.winItems:type_name -> pb.game.zhg.StatPvPReportReq.Item
2, // 1: pb.game.zhg.StatPvPReportReq.lostItems:type_name -> pb.game.zhg.StatPvPReportReq.Item
3, // 2: pb.game.zhg.StatPvPReportResp.winItems:type_name -> pb.game.zhg.StatPvPReportResp.Item
3, // 3: pb.game.zhg.StatPvPReportResp.lostItems:type_name -> pb.game.zhg.StatPvPReportResp.Item
4, // [4:4] is the sub-list for method output_type
4, // [4:4] is the sub-list for method input_type
4, // [4:4] is the sub-list for extension type_name
4, // [4:4] is the sub-list for extension extendee
0, // [0:4] is the sub-list for field type_name
4, // 0: pb.game.zhg.StatPvPReportReq.winItems:type_name -> pb.game.zhg.StatPvPReportReq.Item
4, // 1: pb.game.zhg.StatPvPReportReq.lostItems:type_name -> pb.game.zhg.StatPvPReportReq.Item
6, // 2: pb.game.zhg.StatPvPReportResp.winItems:type_name -> pb.game.zhg.StatPvPReportResp.Item
6, // 3: pb.game.zhg.StatPvPReportResp.lostItems:type_name -> pb.game.zhg.StatPvPReportResp.Item
5, // 4: pb.game.zhg.StatPvPReportResp.Item.grade:type_name -> pb.game.zhg.StatPvPReportResp.Grade
0, // 5: pb.game.zhg.StatPvPReportResp.Item.gradeResult:type_name -> pb.game.zhg.StatPvPReportResp.GradeResult
1, // 6: pb.game.zhg.StatPvPReportResp.Item.gradeReason:type_name -> pb.game.zhg.StatPvPReportResp.GradeReason
7, // [7:7] is the sub-list for method output_type
7, // [7:7] is the sub-list for method input_type
7, // [7:7] is the sub-list for extension type_name
7, // [7:7] is the sub-list for extension extendee
0, // [0:7] is the sub-list for field type_name
}
func init() { file_game_zhg_stat_proto_init() }
@ -499,6 +742,18 @@ func file_game_zhg_stat_proto_init() {
}
}
file_game_zhg_stat_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*StatPvPReportResp_Grade); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_game_zhg_stat_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*StatPvPReportResp_Item); i {
case 0:
return &v.state
@ -516,13 +771,14 @@ func file_game_zhg_stat_proto_init() {
File: protoimpl.DescBuilder{
GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
RawDescriptor: file_game_zhg_stat_proto_rawDesc,
NumEnums: 0,
NumMessages: 4,
NumEnums: 2,
NumMessages: 5,
NumExtensions: 0,
NumServices: 0,
},
GoTypes: file_game_zhg_stat_proto_goTypes,
DependencyIndexes: file_game_zhg_stat_proto_depIdxs,
EnumInfos: file_game_zhg_stat_proto_enumTypes,
MessageInfos: file_game_zhg_stat_proto_msgTypes,
}.Build()
File_game_zhg_stat_proto = out.File

@ -27,11 +27,35 @@ message StatPvPReportReq {
// PvP response -> statistics.pvp.report
message StatPvPReportResp {
message Grade {
int32 grade = 1; //
int32 level = 2; //
int32 star = 3; //
int64 bravePoint = 4; // ()
}
enum GradeResult {
Keep = 0; // ()
GradeUp = 1; //
LevelUp = 2; //
StarUp = 3; //
GradeDown = 4; //
LevelDown = 5; //
StarDown = 6; //
}
enum GradeReason {
Win = 0; //
Lost = 1; //
BravePoint = 2; //
}
message Item {
int64 uid = 1; // ID
string uname = 2; //
int32 position = 3; //
float score = 4; //
// grade
Grade grade = 5;
GradeResult gradeResult = 6; //
GradeReason gradeReason = 7; //
}
int32 winCamp = 1; // 1- 2-
int64 battleId = 2; // ID

Loading…
Cancel
Save