上传优化代码

This commit is contained in:
liwei1dao 2023-04-10 16:30:45 +08:00
parent 6da2eeb0a6
commit 50b7f88226
7 changed files with 191 additions and 86 deletions

View File

@ -82,6 +82,7 @@ const (
ModuleDispatch core.M_Modules = "dispatch" //武馆派遣
ModulePractice core.M_Modules = "practice" //熊猫武馆 练功系统
ModulePandaAtlas core.M_Modules = "atlas" //熊猫图鉴
ModuleParkour core.M_Modules = "parkour" //跑酷系统
)
// 数据表名定义处

41
modules/parkour/module.go Normal file
View File

@ -0,0 +1,41 @@
package parkour
import (
"go_dreamfactory/comm"
"go_dreamfactory/lego/base"
"go_dreamfactory/lego/core"
"go_dreamfactory/modules"
)
/*
模块名:跑酷系统
描述:捕羊大赛
开发:李伟
*/
func NewModule() core.IModule {
m := new(Parkour)
return m
}
type Parkour struct {
modules.ModuleBase
service base.IRPCXService
}
//模块名
func (this *Parkour) GetType() core.M_Modules {
return comm.ModuleParkour
}
//模块初始化
func (this *Parkour) Init(service core.IService, module core.IModule, options core.IModuleOptions) (err error) {
err = this.ModuleBase.Init(service, module, options)
this.service = service.(base.IRPCXService)
return
}
func (this *Parkour) Start() (err error) {
err = this.ModuleBase.Start()
return
}

View File

@ -25,6 +25,7 @@ func (this *apiComp) Qiecuo(session comm.IUserSession, req *pb.PracticeQiecuoReq
err error
result *pb.DBPracticeQiecuoRecord
fresult *pb.DBPracticeQiecuoRecord
user *pb.DBUser
keep bool
)
@ -47,6 +48,12 @@ func (this *apiComp) Qiecuo(session comm.IUserSession, req *pb.PracticeQiecuoReq
code = pb.ErrorCode_PracticeQiecuoing
return
}
if user = this.module.ModuleUser.GetUser(session.GetUserId()); user == nil {
code = pb.ErrorCode_DBError
return
}
keep = false
for _, v := range result.Targets {
if v.Uid == req.Fid {
@ -75,7 +82,7 @@ func (this *apiComp) Qiecuo(session comm.IUserSession, req *pb.PracticeQiecuoReq
}
this.module.SendMsgToUser(string(this.module.GetType()), "qiecuonotify",
&pb.PracticeQiecuonotifyPush{Uid: session.GetUserId(), NotifyType: 1}, req.Fid)
&pb.PracticeQiecuonotifyPush{Uid: session.GetUserId(), Name: user.Name, NotifyType: 1}, req.Fid)
return
}

View File

@ -45,10 +45,10 @@ func (this *modelPandata) queryUserMartialhall(uid string) (result *pb.DBPractic
Knapsack: make(map[string]int32),
Gymaction: 0,
Gymrefresh: 0,
Pillar1: &pb.DBPracticePillar{Index: 1, Isunlock: 2, Lv: 1},
Pillar1: &pb.DBPracticePillar{Index: 1, Isunlock: 0, Lv: 1},
Pillar2: &pb.DBPracticePillar{Index: 2, Lv: 1},
Pillar3: &pb.DBPracticePillar{Index: 3, Lv: 1},
Pillarf: &pb.DBPracticePillar{Index: 4, Isunlock: 2, Lv: 1},
Pillarf: &pb.DBPracticePillar{Index: 4, Isunlock: 0, Lv: 1},
Statuers: make([]*pb.DBPracticeStatuer, 0),
}
if err = this.refreshnpc(result); err != nil {

View File

@ -2,7 +2,6 @@ package practice
import (
"context"
"fmt"
"go_dreamfactory/comm"
"go_dreamfactory/lego/base"
"go_dreamfactory/lego/core"
@ -11,9 +10,7 @@ import (
"go_dreamfactory/modules"
"go_dreamfactory/pb"
"go_dreamfactory/sys/configure"
cfg "go_dreamfactory/sys/configure/structs"
"go_dreamfactory/sys/db"
"strconv"
"time"
"go.mongodb.org/mongo-driver/bson/primitive"
@ -134,10 +131,10 @@ func (this *Practice) AddItems(session comm.IUserSession, items map[string]int32
Knapsack: make(map[string]int32),
Gymaction: 0,
Gymrefresh: 0,
Pillar1: &pb.DBPracticePillar{Index: 1, Isunlock: 2, Lv: 1},
Pillar1: &pb.DBPracticePillar{Index: 1, Isunlock: 0, Lv: 1},
Pillar2: &pb.DBPracticePillar{Index: 2, Lv: 1},
Pillar3: &pb.DBPracticePillar{Index: 3, Lv: 1},
Pillarf: &pb.DBPracticePillar{Index: 4, Isunlock: 2, Lv: 1},
Pillarf: &pb.DBPracticePillar{Index: 4, Isunlock: 0, Lv: 1},
Statuers: make([]*pb.DBPracticeStatuer, 0),
}
id = make([]string, 0)
@ -177,23 +174,37 @@ func (this *Practice) TaskComplete(session comm.IUserSession, taskid int32) {
log.Field{Key: "session", Value: session.GetUserId()},
log.Field{Key: "taskid", Value: taskid},
)
// if !this.IsCross() {
// err := this.service.AcrossClusterRpcCall(context.Background(), this.GetCrossTag(),
// comm.Service_Worker, string(comm.RPC_ModulePracticeUnLockPillar),
// &pb.RPCGeneralReqA2{Param1: session.GetUserId(), Param2: fmt.Sprintf("%d", taskid)}, &pb.EmptyResp{})
// if err != nil {
// this.Errorln(err)
// return
// }
// } else {
// this.RPC_ModulePracticeUnLockPillar(context.Background(), &pb.RPCGeneralReqA2{Param1: session.GetUserId(), Param2: fmt.Sprintf("%d", taskid)}, &pb.EmptyResp{})
// }
}
func (this *Practice) OpenCmdNotice(session comm.IUserSession, key string) {
this.Debug("OpenCmdNotice",
log.Field{Key: "session", Value: session.GetUserId()},
log.Field{Key: "key", Value: key},
)
if !this.IsCross() {
err := this.service.AcrossClusterRpcCall(context.Background(), this.GetCrossTag(),
comm.Service_Worker, string(comm.RPC_ModulePracticeUnLockPillar),
&pb.RPCGeneralReqA2{Param1: session.GetUserId(), Param2: fmt.Sprintf("%d", taskid)}, &pb.EmptyResp{})
&pb.RPCGeneralReqA2{Param1: session.GetUserId(), Param2: key}, &pb.EmptyResp{})
if err != nil {
this.Errorln(err)
return
}
} else {
this.RPC_ModulePracticeUnLockPillar(context.Background(), &pb.RPCGeneralReqA2{Param1: session.GetUserId(), Param2: fmt.Sprintf("%d", taskid)}, &pb.EmptyResp{})
this.RPC_ModulePracticeUnLockPillar(context.Background(), &pb.RPCGeneralReqA2{Param1: session.GetUserId(), Param2: key}, &pb.EmptyResp{})
}
}
func (this *Practice) OpenCmdNotice(session comm.IUserSession, key string) {
}
func (this *Practice) ChallengeResults(bid, red, bule string, winSide int32) {
this.Debug("ChallengeResults",
log.Field{Key: "bid", Value: bid},
@ -302,57 +313,92 @@ func (this *Practice) ChallengeResults(bid, red, bule string, winSide int32) {
func (this *Practice) RPC_ModulePracticeUnLockPillar(ctx context.Context, args *pb.RPCGeneralReqA2, reply *pb.EmptyResp) (err error) {
this.Debug("RPC_ModulePracticeUnLockPillar",
log.Field{Key: "uid", Value: args.Param1},
log.Field{Key: "taskid", Value: args.Param2},
log.Field{Key: "key", Value: args.Param2},
)
var (
configure []*cfg.GamePandamasJsData
// configure []*cfg.GamePandamasJsData
room *pb.DBPracticeRoom
taskid int64
// taskid int64
)
if taskid, err = strconv.ParseInt(args.Param2, 10, 64); err != nil {
this.Errorln(err)
return
}
if configure, err = this.configure.getGamePandamasJs(); err != nil {
this.Errorln(err)
return
}
// if taskid, err = strconv.ParseInt(args.Param2, 10, 64); err != nil {
// this.Errorln(err)
// return
// }
// if configure, err = this.configure.getGamePandamasJs(); err != nil {
// this.Errorln(err)
// return
// }
if room, err = this.modelPandata.queryUserMartialhall(args.Param1); err != nil {
this.Errorln(err)
return
}
for _, v := range configure {
if v.UnlockCondition == int32(taskid) {
switch v.Id {
case 1:
if room.Pillar1.Isunlock == 0 {
room.Pillar1.Isunlock = 1
switch args.Param2 {
case "practice_ pillar1":
room.Pillar1.Isunlock = 2
if room.Pillarf.Isunlock == 0 {
room.Pillarf.Isunlock = 2
}
this.modelPandata.Change(args.Param1, map[string]interface{}{
"pillar1": room.Pillar1,
"pillarf": room.Pillarf,
})
this.atlas.CheckActivatePandaAtlasCollect(args.Param1, "1001")
this.atlas.CheckActivatePandaAtlasCollect(args.Param1, "100001")
break
case 2:
if room.Pillar2.Isunlock == 0 {
room.Pillar2.Isunlock = 1
case "practice_ pillar2":
room.Pillar2.Isunlock = 2
if room.Pillarf.Isunlock == 0 {
room.Pillarf.Isunlock = 2
}
this.modelPandata.Change(args.Param1, map[string]interface{}{
"pillar2": room.Pillar2,
"pillarf": room.Pillarf,
})
this.atlas.CheckActivatePandaAtlasCollect(args.Param1, "1001")
this.atlas.CheckActivatePandaAtlasCollect(args.Param1, "100001")
break
case 3:
if room.Pillar3.Isunlock == 0 {
room.Pillar3.Isunlock = 1
case "practice_ pillar3":
room.Pillar3.Isunlock = 2
if room.Pillarf.Isunlock == 0 {
room.Pillarf.Isunlock = 2
}
this.modelPandata.Change(args.Param1, map[string]interface{}{
"pillar3": room.Pillar3,
"pillarf": room.Pillarf,
})
this.atlas.CheckActivatePandaAtlasCollect(args.Param1, "1001")
this.atlas.CheckActivatePandaAtlasCollect(args.Param1, "100001")
break
}
}
}
// for _, v := range configure {
// if v.UnlockCondition == int32(taskid) {
// switch v.Id {
// case 1:
// if room.Pillar1.Isunlock == 0 {
// room.Pillar1.Isunlock = 1
// }
// this.modelPandata.Change(args.Param1, map[string]interface{}{
// "pillar1": room.Pillar1,
// })
// this.atlas.CheckActivatePandaAtlasCollect(args.Param1, "1001")
// break
// case 2:
// if room.Pillar2.Isunlock == 0 {
// room.Pillar2.Isunlock = 1
// }
// this.modelPandata.Change(args.Param1, map[string]interface{}{
// "pillar2": room.Pillar2,
// })
// this.atlas.CheckActivatePandaAtlasCollect(args.Param1, "1001")
// break
// case 3:
// if room.Pillar3.Isunlock == 0 {
// room.Pillar3.Isunlock = 1
// }
// this.modelPandata.Change(args.Param1, map[string]interface{}{
// "pillar3": room.Pillar3,
// })
// this.atlas.CheckActivatePandaAtlasCollect(args.Param1, "1001")
// break
// }
// }
// }
return
}

View File

@ -118,6 +118,7 @@ func (this *User) GetUser(uid string) (user *pb.DBUser) {
}
if user.Id == "" {
this.Errorf("查询玩家信息 uid:%v", uid)
return nil
}
return user

View File

@ -1684,7 +1684,8 @@ type PracticeQiecuonotifyPush struct {
unknownFields protoimpl.UnknownFields
Uid string `protobuf:"bytes,1,opt,name=uid,proto3" json:"uid"` //发起者(切磋)
NotifyType int32 `protobuf:"varint,2,opt,name=notifyType,proto3" json:"notifyType"` //1发起通知 2接受通知 3拒绝通知
Name string `protobuf:"bytes,2,opt,name=name,proto3" json:"name"` //发起者用户名
NotifyType int32 `protobuf:"varint,3,opt,name=notifyType,proto3" json:"notifyType"` //1发起通知 2接受通知 3拒绝通知
}
func (x *PracticeQiecuonotifyPush) Reset() {
@ -1726,6 +1727,13 @@ func (x *PracticeQiecuonotifyPush) GetUid() string {
return ""
}
func (x *PracticeQiecuonotifyPush) GetName() string {
if x != nil {
return x.Name
}
return ""
}
func (x *PracticeQiecuonotifyPush) GetNotifyType() int32 {
if x != nil {
return x.NotifyType
@ -2165,36 +2173,37 @@ var file_practice_practice_msg_proto_rawDesc = []byte{
0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x75, 0x69, 0x64, 0x22, 0x2c, 0x0a,
0x12, 0x50, 0x72, 0x61, 0x63, 0x74, 0x69, 0x63, 0x65, 0x52, 0x65, 0x66, 0x75, 0x73, 0x65, 0x52,
0x65, 0x73, 0x70, 0x12, 0x16, 0x0a, 0x06, 0x69, 0x73, 0x53, 0x75, 0x63, 0x63, 0x18, 0x01, 0x20,
0x01, 0x28, 0x08, 0x52, 0x06, 0x69, 0x73, 0x53, 0x75, 0x63, 0x63, 0x22, 0x4c, 0x0a, 0x18, 0x50,
0x01, 0x28, 0x08, 0x52, 0x06, 0x69, 0x73, 0x53, 0x75, 0x63, 0x63, 0x22, 0x60, 0x0a, 0x18, 0x50,
0x72, 0x61, 0x63, 0x74, 0x69, 0x63, 0x65, 0x51, 0x69, 0x65, 0x63, 0x75, 0x6f, 0x6e, 0x6f, 0x74,
0x69, 0x66, 0x79, 0x50, 0x75, 0x73, 0x68, 0x12, 0x10, 0x0a, 0x03, 0x75, 0x69, 0x64, 0x18, 0x01,
0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x75, 0x69, 0x64, 0x12, 0x1e, 0x0a, 0x0a, 0x6e, 0x6f, 0x74,
0x69, 0x66, 0x79, 0x54, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x6e,
0x6f, 0x74, 0x69, 0x66, 0x79, 0x54, 0x79, 0x70, 0x65, 0x22, 0x47, 0x0a, 0x15, 0x50, 0x72, 0x61,
0x63, 0x74, 0x69, 0x63, 0x65, 0x4e, 0x50, 0x43, 0x42, 0x61, 0x74, 0x74, 0x6b, 0x6c, 0x65, 0x52,
0x65, 0x71, 0x12, 0x2e, 0x0a, 0x09, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18,
0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x42, 0x61, 0x74, 0x74, 0x6c, 0x65, 0x46, 0x6f,
0x72, 0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x09, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x69,
0x6f, 0x6e, 0x22, 0x59, 0x0a, 0x16, 0x50, 0x72, 0x61, 0x63, 0x74, 0x69, 0x63, 0x65, 0x4e, 0x50,
0x43, 0x42, 0x61, 0x74, 0x74, 0x6b, 0x6c, 0x65, 0x52, 0x65, 0x73, 0x70, 0x12, 0x1e, 0x0a, 0x04,
0x63, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x0a, 0x2e, 0x45, 0x72, 0x72,
0x6f, 0x72, 0x43, 0x6f, 0x64, 0x65, 0x52, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x12, 0x1f, 0x0a, 0x04,
0x69, 0x6e, 0x66, 0x6f, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0b, 0x2e, 0x42, 0x61, 0x74,
0x74, 0x6c, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x04, 0x69, 0x6e, 0x66, 0x6f, 0x22, 0x44, 0x0a,
0x1b, 0x50, 0x72, 0x61, 0x63, 0x74, 0x69, 0x63, 0x65, 0x4e, 0x50, 0x43, 0x42, 0x61, 0x74, 0x74,
0x6b, 0x6c, 0x65, 0x46, 0x69, 0x6e, 0x69, 0x73, 0x68, 0x52, 0x65, 0x71, 0x12, 0x25, 0x0a, 0x06,
0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x42,
0x61, 0x74, 0x74, 0x6c, 0x65, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x52, 0x06, 0x72, 0x65, 0x70,
0x6f, 0x72, 0x74, 0x22, 0x36, 0x0a, 0x1c, 0x50, 0x72, 0x61, 0x63, 0x74, 0x69, 0x63, 0x65, 0x4e,
0x50, 0x43, 0x42, 0x61, 0x74, 0x74, 0x6b, 0x6c, 0x65, 0x46, 0x69, 0x6e, 0x69, 0x73, 0x68, 0x52,
0x65, 0x73, 0x70, 0x12, 0x16, 0x0a, 0x06, 0x69, 0x73, 0x73, 0x75, 0x63, 0x63, 0x18, 0x01, 0x20,
0x01, 0x28, 0x08, 0x52, 0x06, 0x69, 0x73, 0x73, 0x75, 0x63, 0x63, 0x22, 0x16, 0x0a, 0x14, 0x50,
0x72, 0x61, 0x63, 0x74, 0x69, 0x63, 0x65, 0x4e, 0x50, 0x43, 0x44, 0x69, 0x61, 0x6c, 0x6f, 0x67,
0x52, 0x65, 0x71, 0x22, 0x2f, 0x0a, 0x15, 0x50, 0x72, 0x61, 0x63, 0x74, 0x69, 0x63, 0x65, 0x4e,
0x50, 0x43, 0x44, 0x69, 0x61, 0x6c, 0x6f, 0x67, 0x52, 0x65, 0x73, 0x70, 0x12, 0x16, 0x0a, 0x06,
0x69, 0x73, 0x73, 0x75, 0x63, 0x63, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x06, 0x69, 0x73,
0x73, 0x75, 0x63, 0x63, 0x42, 0x06, 0x5a, 0x04, 0x2e, 0x3b, 0x70, 0x62, 0x62, 0x06, 0x70, 0x72,
0x6f, 0x74, 0x6f, 0x33,
0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x75, 0x69, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d,
0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1e, 0x0a,
0x0a, 0x6e, 0x6f, 0x74, 0x69, 0x66, 0x79, 0x54, 0x79, 0x70, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28,
0x05, 0x52, 0x0a, 0x6e, 0x6f, 0x74, 0x69, 0x66, 0x79, 0x54, 0x79, 0x70, 0x65, 0x22, 0x47, 0x0a,
0x15, 0x50, 0x72, 0x61, 0x63, 0x74, 0x69, 0x63, 0x65, 0x4e, 0x50, 0x43, 0x42, 0x61, 0x74, 0x74,
0x6b, 0x6c, 0x65, 0x52, 0x65, 0x71, 0x12, 0x2e, 0x0a, 0x09, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74,
0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x42, 0x61, 0x74, 0x74,
0x6c, 0x65, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x09, 0x66, 0x6f, 0x72,
0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x59, 0x0a, 0x16, 0x50, 0x72, 0x61, 0x63, 0x74, 0x69,
0x63, 0x65, 0x4e, 0x50, 0x43, 0x42, 0x61, 0x74, 0x74, 0x6b, 0x6c, 0x65, 0x52, 0x65, 0x73, 0x70,
0x12, 0x1e, 0x0a, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x0a,
0x2e, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x43, 0x6f, 0x64, 0x65, 0x52, 0x04, 0x63, 0x6f, 0x64, 0x65,
0x12, 0x1f, 0x0a, 0x04, 0x69, 0x6e, 0x66, 0x6f, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0b,
0x2e, 0x42, 0x61, 0x74, 0x74, 0x6c, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x04, 0x69, 0x6e, 0x66,
0x6f, 0x22, 0x44, 0x0a, 0x1b, 0x50, 0x72, 0x61, 0x63, 0x74, 0x69, 0x63, 0x65, 0x4e, 0x50, 0x43,
0x42, 0x61, 0x74, 0x74, 0x6b, 0x6c, 0x65, 0x46, 0x69, 0x6e, 0x69, 0x73, 0x68, 0x52, 0x65, 0x71,
0x12, 0x25, 0x0a, 0x06, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b,
0x32, 0x0d, 0x2e, 0x42, 0x61, 0x74, 0x74, 0x6c, 0x65, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x52,
0x06, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x22, 0x36, 0x0a, 0x1c, 0x50, 0x72, 0x61, 0x63, 0x74,
0x69, 0x63, 0x65, 0x4e, 0x50, 0x43, 0x42, 0x61, 0x74, 0x74, 0x6b, 0x6c, 0x65, 0x46, 0x69, 0x6e,
0x69, 0x73, 0x68, 0x52, 0x65, 0x73, 0x70, 0x12, 0x16, 0x0a, 0x06, 0x69, 0x73, 0x73, 0x75, 0x63,
0x63, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x06, 0x69, 0x73, 0x73, 0x75, 0x63, 0x63, 0x22,
0x16, 0x0a, 0x14, 0x50, 0x72, 0x61, 0x63, 0x74, 0x69, 0x63, 0x65, 0x4e, 0x50, 0x43, 0x44, 0x69,
0x61, 0x6c, 0x6f, 0x67, 0x52, 0x65, 0x71, 0x22, 0x2f, 0x0a, 0x15, 0x50, 0x72, 0x61, 0x63, 0x74,
0x69, 0x63, 0x65, 0x4e, 0x50, 0x43, 0x44, 0x69, 0x61, 0x6c, 0x6f, 0x67, 0x52, 0x65, 0x73, 0x70,
0x12, 0x16, 0x0a, 0x06, 0x69, 0x73, 0x73, 0x75, 0x63, 0x63, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08,
0x52, 0x06, 0x69, 0x73, 0x73, 0x75, 0x63, 0x63, 0x42, 0x06, 0x5a, 0x04, 0x2e, 0x3b, 0x70, 0x62,
0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
}
var (