From 57d06aa890113a90444f19560fccdde968b4215a Mon Sep 17 00:00:00 2001 From: meixiongfeng <766881921@qq.com> Date: Wed, 8 Nov 2023 18:14:49 +0800 Subject: [PATCH 1/3] =?UTF-8?q?=E7=9F=B3=E9=98=B5=E7=A7=98=E5=A2=83?= =?UTF-8?q?=E5=BC=BA=E5=8C=96=E5=95=86=E5=BA=97=E9=9A=8F=E6=9C=BA=E5=BC=BA?= =?UTF-8?q?=E5=8C=96=E8=8B=A5=E5=B9=B2buff=20=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- modules/stonehenge/api_story.go | 70 +++++++++- pb/battle_struct.pb.go | 10 +- pb/stonehenge_msg.pb.go | 237 +++++++++++++++++--------------- 3 files changed, 199 insertions(+), 118 deletions(-) diff --git a/modules/stonehenge/api_story.go b/modules/stonehenge/api_story.go index d3422de38..633c939de 100644 --- a/modules/stonehenge/api_story.go +++ b/modules/stonehenge/api_story.go @@ -28,6 +28,7 @@ func (this *apiComp) Story(session comm.IUserSession, req *pb.StonehengeStoryReq newEvent int32 conf *cfg.GameStoneStoryData event []string + curbuff []int32 ) if errdata = this.StoryCheck(session, req); errdata != nil { return @@ -122,15 +123,82 @@ func (this *apiComp) Story(session comm.IUserSession, req *pb.StonehengeStoryReq stone.Rooms.Eventid[newEvent] = false } } + if eventConf, err := this.module.configure.GetStoneEventDataById(req.Eventid); err != nil { + errdata = &pb.ErrorData{ + Code: pb.ErrorCode_ConfigNoFound, + Title: pb.ErrorCode_ConfigNoFound.ToString(), + Message: err.Error(), + } + return + } else { + if eventConf.EventType == EventType23 { + buff := make(map[int32]struct{}, 0) + for i := 0; i < int(eventConf.Value1); i++ { + if eventConf.Value2 == 0 { // 强化所有1级buff + for _, v := range stone.Userbuff { + if conf, e := this.module.configure.GetStoneBuffDataById(v); e != nil { + if conf.BuffLevel == 1 && conf.Type != 5 { // 5是负面buff + if nextConf, e := this.module.configure.GetStoneBuffDataById(v + 1); e != nil { // 是否有2级 + delete(stone.Userbuff, v) + stone.Userbuff[nextConf.BuffId] = 1 + buff[nextConf.BuffId] = struct{}{} + break + } + } + } + } + } else if eventConf.Value2 == 1 { // 强化类型 buff + itype := eventConf.Value3 + for _, v := range stone.Userbuff { + if conf, e := this.module.configure.GetStoneBuffDataById(v); e != nil { + if conf.BuffLevel == 1 && conf.Type != itype { + if nextConf, e := this.module.configure.GetStoneBuffDataById(v + 1); e != nil { // 是否有2级 + delete(stone.Userbuff, v) + stone.Userbuff[nextConf.BuffId] = 1 + buff[nextConf.BuffId] = struct{}{} + break + } + } + } + } + } else if eventConf.Value2 == 2 { // 强化品质buff + quility := eventConf.Value3 + for _, v := range stone.Userbuff { + if conf, e := this.module.configure.GetStoneBuffDataById(v); e != nil { + if conf.BuffLevel == 1 && conf.Quality == quility && conf.Type != 5 { + if nextConf, e := this.module.configure.GetStoneBuffDataById(v + 1); e != nil { // 是否有2级 + delete(stone.Userbuff, v) + stone.Userbuff[nextConf.BuffId] = 1 + buff[nextConf.BuffId] = struct{}{} + break + } + } + } + } + } + } + for k := range buff { + curbuff = append(curbuff, k) + } + stone.Rooms.Eventid[newEvent] = true // 直接完成该事件 + newEvent = 0 + if eventConf.Probability >= comm.GetRandNum(0, 1000) { // 命中 + newEvent = eventConf.PostEvent // 直接添加后置事件 + } + } + } } } - this.module.modelStonehenge.AddNewEvent([]int32{newEvent}, stone) + if newEvent != 0 { + this.module.modelStonehenge.AddNewEvent([]int32{newEvent}, stone) + } update["rooms"] = stone.Rooms this.module.modelStonehenge.ChangeStonehengeData(session.GetUserId(), update) session.SendMsg(string(this.module.GetType()), "story", &pb.StonehengeStoryResp{ Story: stone.Rooms.Story, NewEvent: newEvent, Room: stone.Rooms, + Curbuff: curbuff, }) return } diff --git a/pb/battle_struct.pb.go b/pb/battle_struct.pb.go index 10e11b58f..6ce0aecf6 100644 --- a/pb/battle_struct.pb.go +++ b/pb/battle_struct.pb.go @@ -41,6 +41,7 @@ const ( EffectTipsType_Bleed EffectTipsType = 15 //流血 EffectTipsType_Recovery EffectTipsType = 16 //复苏 EffectTipsType_BeatBack EffectTipsType = 17 //反击 + EffectTipsType_Diseased EffectTipsType = 18 //禁疗 ) // Enum value maps for EffectTipsType. @@ -64,6 +65,7 @@ var ( 15: "Bleed", 16: "Recovery", 17: "BeatBack", + 18: "Diseased", } EffectTipsType_value = map[string]int32{ "Eff_Success": 0, @@ -84,6 +86,7 @@ var ( "Bleed": 15, "Recovery": 16, "BeatBack": 17, + "Diseased": 18, } ) @@ -1948,7 +1951,7 @@ var file_battle_battle_struct_proto_rawDesc = []byte{ 0x56, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x63, 0x75, 0x72, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x26, 0x0a, 0x0e, 0x43, 0x6f, 0x6d, 0x53, 0x77, 0x69, 0x74, 0x63, 0x68, 0x53, 0x63, 0x65, 0x6e, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x73, 0x63, 0x65, 0x6e, 0x65, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x73, 0x63, 0x65, 0x6e, 0x65, 0x2a, 0x9c, 0x02, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x73, 0x63, 0x65, 0x6e, 0x65, 0x2a, 0xaa, 0x02, 0x0a, 0x0e, 0x45, 0x66, 0x66, 0x65, 0x63, 0x74, 0x54, 0x69, 0x70, 0x73, 0x54, 0x79, 0x70, 0x65, 0x12, 0x0f, 0x0a, 0x0b, 0x45, 0x66, 0x66, 0x5f, 0x53, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x10, 0x00, 0x12, 0x0f, 0x0a, 0x0b, 0x4e, 0x6f, 0x74, 0x5f, 0x53, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, @@ -1966,8 +1969,9 @@ var file_battle_battle_struct_proto_rawDesc = []byte{ 0x6e, 0x64, 0x65, 0x61, 0x64, 0x10, 0x0d, 0x12, 0x0c, 0x0a, 0x08, 0x50, 0x6f, 0x69, 0x73, 0x6f, 0x6e, 0x65, 0x64, 0x10, 0x0e, 0x12, 0x09, 0x0a, 0x05, 0x42, 0x6c, 0x65, 0x65, 0x64, 0x10, 0x0f, 0x12, 0x0c, 0x0a, 0x08, 0x52, 0x65, 0x63, 0x6f, 0x76, 0x65, 0x72, 0x79, 0x10, 0x10, 0x12, 0x0c, - 0x0a, 0x08, 0x42, 0x65, 0x61, 0x74, 0x42, 0x61, 0x63, 0x6b, 0x10, 0x11, 0x42, 0x06, 0x5a, 0x04, - 0x2e, 0x3b, 0x70, 0x62, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x0a, 0x08, 0x42, 0x65, 0x61, 0x74, 0x42, 0x61, 0x63, 0x6b, 0x10, 0x11, 0x12, 0x0c, 0x0a, 0x08, + 0x44, 0x69, 0x73, 0x65, 0x61, 0x73, 0x65, 0x64, 0x10, 0x12, 0x42, 0x06, 0x5a, 0x04, 0x2e, 0x3b, + 0x70, 0x62, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( diff --git a/pb/stonehenge_msg.pb.go b/pb/stonehenge_msg.pb.go index 64dba05f0..c09f503f4 100644 --- a/pb/stonehenge_msg.pb.go +++ b/pb/stonehenge_msg.pb.go @@ -882,6 +882,7 @@ type StonehengeStoryResp struct { Story int32 `protobuf:"varint,1,opt,name=story,proto3" json:"story"` // 剧情id NewEvent int32 `protobuf:"varint,2,opt,name=newEvent,proto3" json:"newEvent"` // 新事件 Room *RoomData `protobuf:"bytes,3,opt,name=room,proto3" json:"room"` + Curbuff []int32 `protobuf:"varint,4,rep,packed,name=curbuff,proto3" json:"curbuff"` // 当前变化的buff } func (x *StonehengeStoryResp) Reset() { @@ -937,6 +938,13 @@ func (x *StonehengeStoryResp) GetRoom() *RoomData { return nil } +func (x *StonehengeStoryResp) GetCurbuff() []int32 { + if x != nil { + return x.Curbuff + } + return nil +} + //商店购买 type StonehengeStoreReq struct { state protoimpl.MessageState @@ -1893,125 +1901,126 @@ var file_stonehenge_stonehenge_msg_proto_rawDesc = []byte{ 0x12, 0x10, 0x0a, 0x03, 0x63, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x63, 0x69, 0x64, 0x12, 0x10, 0x0a, 0x03, 0x70, 0x6f, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x70, 0x6f, 0x73, 0x12, 0x18, 0x0a, 0x07, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x69, 0x64, 0x18, - 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x69, 0x64, 0x22, 0x66, - 0x0a, 0x13, 0x53, 0x74, 0x6f, 0x6e, 0x65, 0x68, 0x65, 0x6e, 0x67, 0x65, 0x53, 0x74, 0x6f, 0x72, - 0x79, 0x52, 0x65, 0x73, 0x70, 0x12, 0x14, 0x0a, 0x05, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x12, 0x1a, 0x0a, 0x08, 0x6e, - 0x65, 0x77, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x6e, - 0x65, 0x77, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x12, 0x1d, 0x0a, 0x04, 0x72, 0x6f, 0x6f, 0x6d, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x69, 0x64, 0x22, 0x80, + 0x01, 0x0a, 0x13, 0x53, 0x74, 0x6f, 0x6e, 0x65, 0x68, 0x65, 0x6e, 0x67, 0x65, 0x53, 0x74, 0x6f, + 0x72, 0x79, 0x52, 0x65, 0x73, 0x70, 0x12, 0x14, 0x0a, 0x05, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x12, 0x1a, 0x0a, 0x08, + 0x6e, 0x65, 0x77, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, + 0x6e, 0x65, 0x77, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x12, 0x1d, 0x0a, 0x04, 0x72, 0x6f, 0x6f, 0x6d, + 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x09, 0x2e, 0x52, 0x6f, 0x6f, 0x6d, 0x44, 0x61, 0x74, + 0x61, 0x52, 0x04, 0x72, 0x6f, 0x6f, 0x6d, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x75, 0x72, 0x62, 0x75, + 0x66, 0x66, 0x18, 0x04, 0x20, 0x03, 0x28, 0x05, 0x52, 0x07, 0x63, 0x75, 0x72, 0x62, 0x75, 0x66, + 0x66, 0x22, 0x2e, 0x0a, 0x12, 0x53, 0x74, 0x6f, 0x6e, 0x65, 0x68, 0x65, 0x6e, 0x67, 0x65, 0x53, + 0x74, 0x6f, 0x72, 0x65, 0x52, 0x65, 0x71, 0x12, 0x18, 0x0a, 0x07, 0x73, 0x74, 0x6f, 0x72, 0x65, + 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x49, + 0x64, 0x22, 0xbb, 0x01, 0x0a, 0x13, 0x53, 0x74, 0x6f, 0x6e, 0x65, 0x68, 0x65, 0x6e, 0x67, 0x65, + 0x53, 0x74, 0x6f, 0x72, 0x65, 0x52, 0x65, 0x73, 0x70, 0x12, 0x18, 0x0a, 0x07, 0x73, 0x74, 0x6f, + 0x72, 0x65, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x73, 0x74, 0x6f, 0x72, + 0x65, 0x49, 0x64, 0x12, 0x32, 0x0a, 0x04, 0x73, 0x68, 0x6f, 0x70, 0x18, 0x02, 0x20, 0x03, 0x28, + 0x0b, 0x32, 0x1e, 0x2e, 0x53, 0x74, 0x6f, 0x6e, 0x65, 0x68, 0x65, 0x6e, 0x67, 0x65, 0x53, 0x74, + 0x6f, 0x72, 0x65, 0x52, 0x65, 0x73, 0x70, 0x2e, 0x53, 0x68, 0x6f, 0x70, 0x45, 0x6e, 0x74, 0x72, + 0x79, 0x52, 0x04, 0x73, 0x68, 0x6f, 0x70, 0x12, 0x1d, 0x0a, 0x04, 0x72, 0x6f, 0x6f, 0x6d, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x09, 0x2e, 0x52, 0x6f, 0x6f, 0x6d, 0x44, 0x61, 0x74, 0x61, - 0x52, 0x04, 0x72, 0x6f, 0x6f, 0x6d, 0x22, 0x2e, 0x0a, 0x12, 0x53, 0x74, 0x6f, 0x6e, 0x65, 0x68, - 0x65, 0x6e, 0x67, 0x65, 0x53, 0x74, 0x6f, 0x72, 0x65, 0x52, 0x65, 0x71, 0x12, 0x18, 0x0a, 0x07, - 0x73, 0x74, 0x6f, 0x72, 0x65, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x73, - 0x74, 0x6f, 0x72, 0x65, 0x49, 0x64, 0x22, 0xbb, 0x01, 0x0a, 0x13, 0x53, 0x74, 0x6f, 0x6e, 0x65, - 0x68, 0x65, 0x6e, 0x67, 0x65, 0x53, 0x74, 0x6f, 0x72, 0x65, 0x52, 0x65, 0x73, 0x70, 0x12, 0x18, - 0x0a, 0x07, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, - 0x07, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x49, 0x64, 0x12, 0x32, 0x0a, 0x04, 0x73, 0x68, 0x6f, 0x70, - 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x53, 0x74, 0x6f, 0x6e, 0x65, 0x68, 0x65, - 0x6e, 0x67, 0x65, 0x53, 0x74, 0x6f, 0x72, 0x65, 0x52, 0x65, 0x73, 0x70, 0x2e, 0x53, 0x68, 0x6f, - 0x70, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x04, 0x73, 0x68, 0x6f, 0x70, 0x12, 0x1d, 0x0a, 0x04, - 0x72, 0x6f, 0x6f, 0x6d, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x09, 0x2e, 0x52, 0x6f, 0x6f, - 0x6d, 0x44, 0x61, 0x74, 0x61, 0x52, 0x04, 0x72, 0x6f, 0x6f, 0x6d, 0x1a, 0x37, 0x0a, 0x09, 0x53, - 0x68, 0x6f, 0x70, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, - 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, - 0x3a, 0x02, 0x38, 0x01, 0x22, 0x31, 0x0a, 0x1b, 0x53, 0x74, 0x6f, 0x6e, 0x65, 0x68, 0x65, 0x6e, - 0x67, 0x65, 0x41, 0x63, 0x74, 0x69, 0x76, 0x61, 0x74, 0x65, 0x54, 0x61, 0x6c, 0x65, 0x6e, 0x74, - 0x52, 0x65, 0x71, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x05, 0x52, 0x04, 0x6e, 0x6f, 0x64, 0x65, 0x22, 0x82, 0x03, 0x0a, 0x1c, 0x53, 0x74, 0x6f, 0x6e, - 0x65, 0x68, 0x65, 0x6e, 0x67, 0x65, 0x41, 0x63, 0x74, 0x69, 0x76, 0x61, 0x74, 0x65, 0x54, 0x61, - 0x6c, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x73, 0x70, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x6f, 0x64, 0x65, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x6e, 0x6f, 0x64, 0x65, 0x12, 0x41, 0x0a, 0x06, - 0x74, 0x61, 0x6c, 0x65, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x53, - 0x74, 0x6f, 0x6e, 0x65, 0x68, 0x65, 0x6e, 0x67, 0x65, 0x41, 0x63, 0x74, 0x69, 0x76, 0x61, 0x74, - 0x65, 0x54, 0x61, 0x6c, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x73, 0x70, 0x2e, 0x54, 0x61, 0x6c, 0x65, - 0x6e, 0x74, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x06, 0x74, 0x61, 0x6c, 0x65, 0x6e, 0x74, 0x12, - 0x59, 0x0a, 0x0e, 0x74, 0x61, 0x6c, 0x65, 0x6e, 0x74, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, - 0x79, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x31, 0x2e, 0x53, 0x74, 0x6f, 0x6e, 0x65, 0x68, + 0x52, 0x04, 0x72, 0x6f, 0x6f, 0x6d, 0x1a, 0x37, 0x0a, 0x09, 0x53, 0x68, 0x6f, 0x70, 0x45, 0x6e, + 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, + 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, + 0x31, 0x0a, 0x1b, 0x53, 0x74, 0x6f, 0x6e, 0x65, 0x68, 0x65, 0x6e, 0x67, 0x65, 0x41, 0x63, 0x74, + 0x69, 0x76, 0x61, 0x74, 0x65, 0x54, 0x61, 0x6c, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x12, 0x12, + 0x0a, 0x04, 0x6e, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x6e, 0x6f, + 0x64, 0x65, 0x22, 0x82, 0x03, 0x0a, 0x1c, 0x53, 0x74, 0x6f, 0x6e, 0x65, 0x68, 0x65, 0x6e, 0x67, + 0x65, 0x41, 0x63, 0x74, 0x69, 0x76, 0x61, 0x74, 0x65, 0x54, 0x61, 0x6c, 0x65, 0x6e, 0x74, 0x52, + 0x65, 0x73, 0x70, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x05, 0x52, 0x04, 0x6e, 0x6f, 0x64, 0x65, 0x12, 0x41, 0x0a, 0x06, 0x74, 0x61, 0x6c, 0x65, 0x6e, + 0x74, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x53, 0x74, 0x6f, 0x6e, 0x65, 0x68, 0x65, 0x6e, 0x67, 0x65, 0x41, 0x63, 0x74, 0x69, 0x76, 0x61, 0x74, 0x65, 0x54, 0x61, 0x6c, 0x65, - 0x6e, 0x74, 0x52, 0x65, 0x73, 0x70, 0x2e, 0x54, 0x61, 0x6c, 0x65, 0x6e, 0x74, 0x70, 0x72, 0x6f, - 0x70, 0x65, 0x72, 0x74, 0x79, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0e, 0x74, 0x61, 0x6c, 0x65, - 0x6e, 0x74, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x12, 0x32, 0x0a, 0x09, 0x70, 0x72, - 0x69, 0x76, 0x69, 0x6c, 0x65, 0x67, 0x65, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0e, 0x32, 0x14, 0x2e, - 0x53, 0x74, 0x6f, 0x6e, 0x65, 0x68, 0x65, 0x6e, 0x67, 0x65, 0x50, 0x72, 0x69, 0x76, 0x69, 0x6c, - 0x65, 0x67, 0x65, 0x52, 0x09, 0x70, 0x72, 0x69, 0x76, 0x69, 0x6c, 0x65, 0x67, 0x65, 0x1a, 0x39, - 0x0a, 0x0b, 0x54, 0x61, 0x6c, 0x65, 0x6e, 0x74, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, - 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, - 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x05, - 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x41, 0x0a, 0x13, 0x54, 0x61, 0x6c, - 0x65, 0x6e, 0x74, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x45, 0x6e, 0x74, 0x72, 0x79, - 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, - 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x05, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x17, 0x0a, 0x15, - 0x53, 0x74, 0x6f, 0x6e, 0x65, 0x68, 0x65, 0x6e, 0x67, 0x65, 0x42, 0x6f, 0x6f, 0x6b, 0x49, 0x6e, - 0x66, 0x6f, 0x52, 0x65, 0x71, 0x22, 0x3f, 0x0a, 0x16, 0x53, 0x74, 0x6f, 0x6e, 0x65, 0x68, 0x65, - 0x6e, 0x67, 0x65, 0x42, 0x6f, 0x6f, 0x6b, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x73, 0x70, 0x12, - 0x25, 0x0a, 0x04, 0x69, 0x6e, 0x66, 0x6f, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, - 0x44, 0x42, 0x53, 0x74, 0x6f, 0x6e, 0x65, 0x68, 0x65, 0x6e, 0x67, 0x65, 0x42, 0x6f, 0x6f, 0x6b, - 0x52, 0x04, 0x69, 0x6e, 0x66, 0x6f, 0x22, 0x44, 0x0a, 0x16, 0x53, 0x74, 0x6f, 0x6e, 0x65, 0x68, - 0x65, 0x6e, 0x67, 0x65, 0x42, 0x6f, 0x6f, 0x6b, 0x41, 0x77, 0x61, 0x72, 0x64, 0x52, 0x65, 0x71, - 0x12, 0x14, 0x0a, 0x05, 0x62, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, - 0x05, 0x62, 0x74, 0x79, 0x70, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x67, 0x65, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x73, 0x74, 0x61, 0x67, 0x65, 0x22, 0x68, 0x0a, 0x17, - 0x53, 0x74, 0x6f, 0x6e, 0x65, 0x68, 0x65, 0x6e, 0x67, 0x65, 0x42, 0x6f, 0x6f, 0x6b, 0x41, 0x77, - 0x61, 0x72, 0x64, 0x52, 0x65, 0x73, 0x70, 0x12, 0x14, 0x0a, 0x05, 0x62, 0x74, 0x79, 0x70, 0x65, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x62, 0x74, 0x79, 0x70, 0x65, 0x12, 0x14, 0x0a, - 0x05, 0x73, 0x74, 0x61, 0x67, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x73, 0x74, - 0x61, 0x67, 0x65, 0x12, 0x21, 0x0a, 0x05, 0x61, 0x77, 0x61, 0x72, 0x64, 0x18, 0x03, 0x20, 0x03, - 0x28, 0x0b, 0x32, 0x0b, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x41, 0x73, 0x73, 0x65, 0x74, 0x73, 0x52, - 0x05, 0x61, 0x77, 0x61, 0x72, 0x64, 0x22, 0x28, 0x0a, 0x16, 0x53, 0x74, 0x6f, 0x6e, 0x65, 0x68, - 0x65, 0x6e, 0x67, 0x65, 0x57, 0x65, 0x65, 0x6b, 0x41, 0x77, 0x61, 0x72, 0x64, 0x52, 0x65, 0x71, - 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x69, 0x64, - 0x22, 0xdd, 0x01, 0x0a, 0x17, 0x53, 0x74, 0x6f, 0x6e, 0x65, 0x68, 0x65, 0x6e, 0x67, 0x65, 0x57, - 0x65, 0x65, 0x6b, 0x41, 0x77, 0x61, 0x72, 0x64, 0x52, 0x65, 0x73, 0x70, 0x12, 0x0e, 0x0a, 0x02, - 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x69, 0x64, 0x12, 0x4e, 0x0a, 0x0c, - 0x77, 0x65, 0x65, 0x6b, 0x6c, 0x79, 0x72, 0x65, 0x77, 0x61, 0x72, 0x64, 0x18, 0x02, 0x20, 0x03, - 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x53, 0x74, 0x6f, 0x6e, 0x65, 0x68, 0x65, 0x6e, 0x67, 0x65, 0x57, - 0x65, 0x65, 0x6b, 0x41, 0x77, 0x61, 0x72, 0x64, 0x52, 0x65, 0x73, 0x70, 0x2e, 0x57, 0x65, 0x65, - 0x6b, 0x6c, 0x79, 0x72, 0x65, 0x77, 0x61, 0x72, 0x64, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0c, - 0x77, 0x65, 0x65, 0x6b, 0x6c, 0x79, 0x72, 0x65, 0x77, 0x61, 0x72, 0x64, 0x12, 0x21, 0x0a, 0x05, - 0x61, 0x77, 0x61, 0x72, 0x64, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0b, 0x2e, 0x55, 0x73, - 0x65, 0x72, 0x41, 0x73, 0x73, 0x65, 0x74, 0x73, 0x52, 0x05, 0x61, 0x77, 0x61, 0x72, 0x64, 0x1a, - 0x3f, 0x0a, 0x11, 0x57, 0x65, 0x65, 0x6b, 0x6c, 0x79, 0x72, 0x65, 0x77, 0x61, 0x72, 0x64, 0x45, - 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x05, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, - 0x22, 0x17, 0x0a, 0x15, 0x53, 0x74, 0x6f, 0x6e, 0x65, 0x68, 0x65, 0x6e, 0x67, 0x65, 0x54, 0x61, - 0x73, 0x6b, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x71, 0x22, 0xaf, 0x01, 0x0a, 0x16, 0x53, 0x74, - 0x6f, 0x6e, 0x65, 0x68, 0x65, 0x6e, 0x67, 0x65, 0x54, 0x61, 0x73, 0x6b, 0x49, 0x6e, 0x66, 0x6f, - 0x52, 0x65, 0x73, 0x70, 0x12, 0x25, 0x0a, 0x06, 0x63, 0x6f, 0x6e, 0x6c, 0x64, 0x73, 0x18, 0x01, - 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x43, 0x6f, 0x6e, 0x49, 0x50, 0x72, 0x6f, 0x67, 0x72, - 0x65, 0x73, 0x73, 0x52, 0x06, 0x63, 0x6f, 0x6e, 0x6c, 0x64, 0x73, 0x12, 0x35, 0x0a, 0x04, 0x74, - 0x61, 0x73, 0x6b, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x53, 0x74, 0x6f, 0x6e, - 0x65, 0x68, 0x65, 0x6e, 0x67, 0x65, 0x54, 0x61, 0x73, 0x6b, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, - 0x73, 0x70, 0x2e, 0x54, 0x61, 0x73, 0x6b, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x04, 0x74, 0x61, - 0x73, 0x6b, 0x1a, 0x37, 0x0a, 0x09, 0x54, 0x61, 0x73, 0x6b, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, + 0x6e, 0x74, 0x52, 0x65, 0x73, 0x70, 0x2e, 0x54, 0x61, 0x6c, 0x65, 0x6e, 0x74, 0x45, 0x6e, 0x74, + 0x72, 0x79, 0x52, 0x06, 0x74, 0x61, 0x6c, 0x65, 0x6e, 0x74, 0x12, 0x59, 0x0a, 0x0e, 0x74, 0x61, + 0x6c, 0x65, 0x6e, 0x74, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x18, 0x03, 0x20, 0x03, + 0x28, 0x0b, 0x32, 0x31, 0x2e, 0x53, 0x74, 0x6f, 0x6e, 0x65, 0x68, 0x65, 0x6e, 0x67, 0x65, 0x41, + 0x63, 0x74, 0x69, 0x76, 0x61, 0x74, 0x65, 0x54, 0x61, 0x6c, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x73, + 0x70, 0x2e, 0x54, 0x61, 0x6c, 0x65, 0x6e, 0x74, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, + 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0e, 0x74, 0x61, 0x6c, 0x65, 0x6e, 0x74, 0x70, 0x72, 0x6f, + 0x70, 0x65, 0x72, 0x74, 0x79, 0x12, 0x32, 0x0a, 0x09, 0x70, 0x72, 0x69, 0x76, 0x69, 0x6c, 0x65, + 0x67, 0x65, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0e, 0x32, 0x14, 0x2e, 0x53, 0x74, 0x6f, 0x6e, 0x65, + 0x68, 0x65, 0x6e, 0x67, 0x65, 0x50, 0x72, 0x69, 0x76, 0x69, 0x6c, 0x65, 0x67, 0x65, 0x52, 0x09, + 0x70, 0x72, 0x69, 0x76, 0x69, 0x6c, 0x65, 0x67, 0x65, 0x1a, 0x39, 0x0a, 0x0b, 0x54, 0x61, 0x6c, + 0x65, 0x6e, 0x74, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, + 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, + 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x41, 0x0a, 0x13, 0x54, 0x61, 0x6c, 0x65, 0x6e, 0x74, 0x70, 0x72, + 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, + 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, + 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x76, 0x61, + 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x17, 0x0a, 0x15, 0x53, 0x74, 0x6f, 0x6e, 0x65, + 0x68, 0x65, 0x6e, 0x67, 0x65, 0x42, 0x6f, 0x6f, 0x6b, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x71, + 0x22, 0x3f, 0x0a, 0x16, 0x53, 0x74, 0x6f, 0x6e, 0x65, 0x68, 0x65, 0x6e, 0x67, 0x65, 0x42, 0x6f, + 0x6f, 0x6b, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x73, 0x70, 0x12, 0x25, 0x0a, 0x04, 0x69, 0x6e, + 0x66, 0x6f, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x44, 0x42, 0x53, 0x74, 0x6f, + 0x6e, 0x65, 0x68, 0x65, 0x6e, 0x67, 0x65, 0x42, 0x6f, 0x6f, 0x6b, 0x52, 0x04, 0x69, 0x6e, 0x66, + 0x6f, 0x22, 0x44, 0x0a, 0x16, 0x53, 0x74, 0x6f, 0x6e, 0x65, 0x68, 0x65, 0x6e, 0x67, 0x65, 0x42, + 0x6f, 0x6f, 0x6b, 0x41, 0x77, 0x61, 0x72, 0x64, 0x52, 0x65, 0x71, 0x12, 0x14, 0x0a, 0x05, 0x62, + 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x62, 0x74, 0x79, 0x70, + 0x65, 0x12, 0x14, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x67, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, + 0x52, 0x05, 0x73, 0x74, 0x61, 0x67, 0x65, 0x22, 0x68, 0x0a, 0x17, 0x53, 0x74, 0x6f, 0x6e, 0x65, + 0x68, 0x65, 0x6e, 0x67, 0x65, 0x42, 0x6f, 0x6f, 0x6b, 0x41, 0x77, 0x61, 0x72, 0x64, 0x52, 0x65, + 0x73, 0x70, 0x12, 0x14, 0x0a, 0x05, 0x62, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x05, 0x52, 0x05, 0x62, 0x74, 0x79, 0x70, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x67, + 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x73, 0x74, 0x61, 0x67, 0x65, 0x12, 0x21, + 0x0a, 0x05, 0x61, 0x77, 0x61, 0x72, 0x64, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0b, 0x2e, + 0x55, 0x73, 0x65, 0x72, 0x41, 0x73, 0x73, 0x65, 0x74, 0x73, 0x52, 0x05, 0x61, 0x77, 0x61, 0x72, + 0x64, 0x22, 0x28, 0x0a, 0x16, 0x53, 0x74, 0x6f, 0x6e, 0x65, 0x68, 0x65, 0x6e, 0x67, 0x65, 0x57, + 0x65, 0x65, 0x6b, 0x41, 0x77, 0x61, 0x72, 0x64, 0x52, 0x65, 0x71, 0x12, 0x0e, 0x0a, 0x02, 0x69, + 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x69, 0x64, 0x22, 0xdd, 0x01, 0x0a, 0x17, + 0x53, 0x74, 0x6f, 0x6e, 0x65, 0x68, 0x65, 0x6e, 0x67, 0x65, 0x57, 0x65, 0x65, 0x6b, 0x41, 0x77, + 0x61, 0x72, 0x64, 0x52, 0x65, 0x73, 0x70, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x05, 0x52, 0x02, 0x69, 0x64, 0x12, 0x4e, 0x0a, 0x0c, 0x77, 0x65, 0x65, 0x6b, 0x6c, + 0x79, 0x72, 0x65, 0x77, 0x61, 0x72, 0x64, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2a, 0x2e, + 0x53, 0x74, 0x6f, 0x6e, 0x65, 0x68, 0x65, 0x6e, 0x67, 0x65, 0x57, 0x65, 0x65, 0x6b, 0x41, 0x77, + 0x61, 0x72, 0x64, 0x52, 0x65, 0x73, 0x70, 0x2e, 0x57, 0x65, 0x65, 0x6b, 0x6c, 0x79, 0x72, 0x65, + 0x77, 0x61, 0x72, 0x64, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0c, 0x77, 0x65, 0x65, 0x6b, 0x6c, + 0x79, 0x72, 0x65, 0x77, 0x61, 0x72, 0x64, 0x12, 0x21, 0x0a, 0x05, 0x61, 0x77, 0x61, 0x72, 0x64, + 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0b, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x41, 0x73, 0x73, + 0x65, 0x74, 0x73, 0x52, 0x05, 0x61, 0x77, 0x61, 0x72, 0x64, 0x1a, 0x3f, 0x0a, 0x11, 0x57, 0x65, + 0x65, 0x6b, 0x6c, 0x79, 0x72, 0x65, 0x77, 0x61, 0x72, 0x64, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, - 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x32, 0x0a, 0x18, 0x53, + 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x17, 0x0a, 0x15, 0x53, + 0x74, 0x6f, 0x6e, 0x65, 0x68, 0x65, 0x6e, 0x67, 0x65, 0x54, 0x61, 0x73, 0x6b, 0x49, 0x6e, 0x66, + 0x6f, 0x52, 0x65, 0x71, 0x22, 0xaf, 0x01, 0x0a, 0x16, 0x53, 0x74, 0x6f, 0x6e, 0x65, 0x68, 0x65, + 0x6e, 0x67, 0x65, 0x54, 0x61, 0x73, 0x6b, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x73, 0x70, 0x12, + 0x25, 0x0a, 0x06, 0x63, 0x6f, 0x6e, 0x6c, 0x64, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, + 0x0d, 0x2e, 0x43, 0x6f, 0x6e, 0x49, 0x50, 0x72, 0x6f, 0x67, 0x72, 0x65, 0x73, 0x73, 0x52, 0x06, + 0x63, 0x6f, 0x6e, 0x6c, 0x64, 0x73, 0x12, 0x35, 0x0a, 0x04, 0x74, 0x61, 0x73, 0x6b, 0x18, 0x02, + 0x20, 0x03, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x53, 0x74, 0x6f, 0x6e, 0x65, 0x68, 0x65, 0x6e, 0x67, + 0x65, 0x54, 0x61, 0x73, 0x6b, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x73, 0x70, 0x2e, 0x54, 0x61, + 0x73, 0x6b, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x04, 0x74, 0x61, 0x73, 0x6b, 0x1a, 0x37, 0x0a, + 0x09, 0x54, 0x61, 0x73, 0x6b, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, + 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, + 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x05, 0x76, 0x61, 0x6c, + 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x32, 0x0a, 0x18, 0x53, 0x74, 0x6f, 0x6e, 0x65, 0x68, + 0x65, 0x6e, 0x67, 0x65, 0x54, 0x61, 0x73, 0x6b, 0x52, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x52, + 0x65, 0x71, 0x12, 0x16, 0x0a, 0x06, 0x74, 0x61, 0x73, 0x6b, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x05, 0x52, 0x06, 0x74, 0x61, 0x73, 0x6b, 0x69, 0x64, 0x22, 0xb1, 0x01, 0x0a, 0x19, 0x53, 0x74, 0x6f, 0x6e, 0x65, 0x68, 0x65, 0x6e, 0x67, 0x65, 0x54, 0x61, 0x73, 0x6b, 0x52, 0x65, 0x63, - 0x65, 0x69, 0x76, 0x65, 0x52, 0x65, 0x71, 0x12, 0x16, 0x0a, 0x06, 0x74, 0x61, 0x73, 0x6b, 0x69, - 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x74, 0x61, 0x73, 0x6b, 0x69, 0x64, 0x22, - 0xb1, 0x01, 0x0a, 0x19, 0x53, 0x74, 0x6f, 0x6e, 0x65, 0x68, 0x65, 0x6e, 0x67, 0x65, 0x54, 0x61, - 0x73, 0x6b, 0x52, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x52, 0x65, 0x73, 0x70, 0x12, 0x38, 0x0a, - 0x04, 0x74, 0x61, 0x73, 0x6b, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x53, 0x74, - 0x6f, 0x6e, 0x65, 0x68, 0x65, 0x6e, 0x67, 0x65, 0x54, 0x61, 0x73, 0x6b, 0x52, 0x65, 0x63, 0x65, - 0x69, 0x76, 0x65, 0x52, 0x65, 0x73, 0x70, 0x2e, 0x54, 0x61, 0x73, 0x6b, 0x45, 0x6e, 0x74, 0x72, - 0x79, 0x52, 0x04, 0x74, 0x61, 0x73, 0x6b, 0x12, 0x21, 0x0a, 0x05, 0x61, 0x77, 0x61, 0x72, 0x64, - 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0b, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x41, 0x73, 0x73, - 0x65, 0x74, 0x73, 0x52, 0x05, 0x61, 0x77, 0x61, 0x72, 0x64, 0x1a, 0x37, 0x0a, 0x09, 0x54, 0x61, - 0x73, 0x6b, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, - 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, - 0x02, 0x38, 0x01, 0x22, 0x32, 0x0a, 0x16, 0x53, 0x74, 0x6f, 0x6e, 0x65, 0x68, 0x65, 0x6e, 0x67, - 0x65, 0x52, 0x65, 0x73, 0x65, 0x74, 0x42, 0x75, 0x66, 0x66, 0x52, 0x65, 0x71, 0x12, 0x18, 0x0a, - 0x07, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, - 0x65, 0x76, 0x65, 0x6e, 0x74, 0x69, 0x64, 0x22, 0x39, 0x0a, 0x17, 0x53, 0x74, 0x6f, 0x6e, 0x65, - 0x68, 0x65, 0x6e, 0x67, 0x65, 0x52, 0x65, 0x73, 0x65, 0x74, 0x42, 0x75, 0x66, 0x66, 0x52, 0x65, - 0x73, 0x70, 0x12, 0x1e, 0x0a, 0x0a, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x62, 0x75, 0x66, 0x66, - 0x18, 0x01, 0x20, 0x03, 0x28, 0x05, 0x52, 0x0a, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x62, 0x75, - 0x66, 0x66, 0x42, 0x06, 0x5a, 0x04, 0x2e, 0x3b, 0x70, 0x62, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, - 0x6f, 0x33, + 0x65, 0x69, 0x76, 0x65, 0x52, 0x65, 0x73, 0x70, 0x12, 0x38, 0x0a, 0x04, 0x74, 0x61, 0x73, 0x6b, + 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x53, 0x74, 0x6f, 0x6e, 0x65, 0x68, 0x65, + 0x6e, 0x67, 0x65, 0x54, 0x61, 0x73, 0x6b, 0x52, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x52, 0x65, + 0x73, 0x70, 0x2e, 0x54, 0x61, 0x73, 0x6b, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x04, 0x74, 0x61, + 0x73, 0x6b, 0x12, 0x21, 0x0a, 0x05, 0x61, 0x77, 0x61, 0x72, 0x64, 0x18, 0x02, 0x20, 0x03, 0x28, + 0x0b, 0x32, 0x0b, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x41, 0x73, 0x73, 0x65, 0x74, 0x73, 0x52, 0x05, + 0x61, 0x77, 0x61, 0x72, 0x64, 0x1a, 0x37, 0x0a, 0x09, 0x54, 0x61, 0x73, 0x6b, 0x45, 0x6e, 0x74, + 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, + 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x08, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x32, + 0x0a, 0x16, 0x53, 0x74, 0x6f, 0x6e, 0x65, 0x68, 0x65, 0x6e, 0x67, 0x65, 0x52, 0x65, 0x73, 0x65, + 0x74, 0x42, 0x75, 0x66, 0x66, 0x52, 0x65, 0x71, 0x12, 0x18, 0x0a, 0x07, 0x65, 0x76, 0x65, 0x6e, + 0x74, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x65, 0x76, 0x65, 0x6e, 0x74, + 0x69, 0x64, 0x22, 0x39, 0x0a, 0x17, 0x53, 0x74, 0x6f, 0x6e, 0x65, 0x68, 0x65, 0x6e, 0x67, 0x65, + 0x52, 0x65, 0x73, 0x65, 0x74, 0x42, 0x75, 0x66, 0x66, 0x52, 0x65, 0x73, 0x70, 0x12, 0x1e, 0x0a, + 0x0a, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x62, 0x75, 0x66, 0x66, 0x18, 0x01, 0x20, 0x03, 0x28, + 0x05, 0x52, 0x0a, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x62, 0x75, 0x66, 0x66, 0x42, 0x06, 0x5a, + 0x04, 0x2e, 0x3b, 0x70, 0x62, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( From 16249e20e9bd18bc0bb4d947b1b71db17a3acbba Mon Sep 17 00:00:00 2001 From: meixiongfeng <766881921@qq.com> Date: Thu, 9 Nov 2023 12:34:19 +0800 Subject: [PATCH 2/3] =?UTF-8?q?=E5=85=83=E7=B4=A0=E8=94=93=E5=BB=B6?= =?UTF-8?q?=E6=8A=80=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- modules/entertainment/xxlPlat.go | 54 +++++++++++++++++-------------- modules/entertainment/xxl_test.go | 3 ++ 2 files changed, 33 insertions(+), 24 deletions(-) diff --git a/modules/entertainment/xxlPlat.go b/modules/entertainment/xxlPlat.go index a13bc0428..1efd51005 100644 --- a/modules/entertainment/xxlPlat.go +++ b/modules/entertainment/xxlPlat.go @@ -64,7 +64,6 @@ func (this *MapData) CreateGride(count int) (girdes []*pb.GirdeData) { Score: 1, Special: 0, } - id = this.GetRandType() conf, err = this.module.configure.GetGameBlockByKey(id) if err == nil { @@ -149,6 +148,9 @@ func (this *MapData) InitMap(module *Entertainment, iType int32) { this.SetIndelibilityPlat() this.Plat = this.GetPalatData() //this.SetMap() // 方便测试固定地图 + + fmt.Printf("=======%v=========\n", this.Skill3(24, 0)) + this.Debugf() } // 交换之前先判断是不是特殊元素的交换 @@ -227,11 +229,11 @@ func (this *MapData) SwapGirde(oldId, newId int32) (bSwap bool) { func (this *MapData) Debugf() { fmt.Printf("================\n") - //var v int + var v int for index := Width - 1; index >= 0; index-- { for j := 0; j < Height; j++ { - // v = index + j*7 - fmt.Printf("%d:%d ", this.Plat[index+j*Height].Oid, this.Plat[index+j*Height].Cid) + v = index + j*7 + fmt.Printf("%d:%d ", v, this.Plat[index+j*Height].Cid) } fmt.Printf("\n") @@ -726,19 +728,10 @@ func (this *MapData) SkillUp(pos int32, color int32, skillid int32, value int32, ids = append(ids, 3*Width+i) } } else if skillid == 3 { // 四周蔓延 第一次100% 第二次 60% 第三次 30% 第四次 10% 最多4次 - var mids map[int]struct{} - mids = make(map[int]struct{}, 0) - for i := 0; i < 4; i++ { - dd := this.Skill3(pos, int32(i)) - for k := range dd { - for s := range this.Skill3(int32(k), int32(i)) { - mids[s] = struct{}{} - } - } - } - for k := range mids { + for k := range this.Skill3(pos, 0) { ids = append(ids, k) // 转换成最终消除的坐标 } + ids = append(ids, int(pos)) // 包含自己 } for _, id := range ids { if s := this.Plat[id].Special; s != 0 { @@ -810,7 +803,7 @@ func (this *MapData) CheckAndRefreshPlat() (bEliminate bool) { // xia pos := k - 1 if x > 0 { - if pos%Height > 0 { // 左右 + if pos%Height >= 0 { // 左右 if pos/Width-1 >= 0 { //左 p := this.Plat[pos-Width].Color if p == k1 { @@ -980,7 +973,9 @@ func (this *MapData) SetIndelibilityPlat() { oldId := Total - 1 for i := 0; i < Total; i++ { if this.Plat[oldId].Color == k3 { // 找到颜色不一样的 - oldId -= 1 + if oldId > 0 { + oldId -= 1 + } } else { break } @@ -1045,6 +1040,7 @@ func (this *MapData) Skill3(pos int32, count int32) (m map[int]struct{}) { m = make(map[int]struct{}, 0) var sz []int var percent int32 + var cur []int // 先找出可以蔓延的方向 x := int(pos / Width) y := int(pos % Height) @@ -1061,12 +1057,12 @@ func (this *MapData) Skill3(pos int32, count int32) (m map[int]struct{}) { sz = append(sz, (x+1)*Width+(y)) } - if count == 0 { + if count == 0 { // 蔓延技能概率调整支持配置 percent = 100 } else if count == 1 { - percent = 100 + percent = 60 } else if count == 2 || count == 3 { - percent = 100 + percent = 30 } else { return } @@ -1075,6 +1071,18 @@ func (this *MapData) Skill3(pos int32, count int32) (m map[int]struct{}) { for _, v := range szid { if percent >= comm.GetRandNum(0, 100) { m[sz[v]] = struct{}{} + cur = append(cur, sz[v]) + } + } + count++ + + // for _, v := range cur { + // fmt.Printf("=======蔓延的id:%d====,count=%d====\n", v, count) + // } + // fmt.Printf("=======count=%d====\n", count) + for _, k := range cur { + for k1 := range this.Skill3(int32(k), count) { // 递归蔓延 + m[k1] = struct{}{} } } @@ -1206,10 +1214,8 @@ func (this *MapData) SpecialElem(id int, s int32) (x map[int]struct{}) { if k == id { continue } - sp := this.Plat[k].Special - if sp != 0 { - this.Plat[k].Special = 0 - ids := this.SpecialElem(k, sp) // 递归调用 + if this.Plat[k].Special != 0 { + ids := this.SpecialElem(k, this.Plat[k].Special) // 递归调用 for key := range ids { x[key] = struct{}{} } diff --git a/modules/entertainment/xxl_test.go b/modules/entertainment/xxl_test.go index c56e789d8..adcb7c482 100644 --- a/modules/entertainment/xxl_test.go +++ b/modules/entertainment/xxl_test.go @@ -89,7 +89,10 @@ func Test_Main(t *testing.T) { // fmt.Printf("xxxx%v", sz) m := new(entertainment.MapData) m.InitMap(nil, 1) + m.SetMap() + m.Debugf() + fmt.Printf("xxxx %v\n", m.Skill3(24, 0)) //m.SkillUp(24, 1, 3, 7, true) b := m.GetFireBoom(1, 7) From d9d1d6a3e9479c5903a884613598a7e7ab1fc03c Mon Sep 17 00:00:00 2001 From: meixiongfeng <766881921@qq.com> Date: Thu, 9 Nov 2023 13:39:19 +0800 Subject: [PATCH 3/3] =?UTF-8?q?=E7=A7=BB=E9=99=A4=E6=B5=8B=E8=AF=95?= =?UTF-8?q?=E6=95=B0=E6=8D=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- modules/entertainment/xxlPlat.go | 3 --- 1 file changed, 3 deletions(-) diff --git a/modules/entertainment/xxlPlat.go b/modules/entertainment/xxlPlat.go index 1efd51005..9e0ecd301 100644 --- a/modules/entertainment/xxlPlat.go +++ b/modules/entertainment/xxlPlat.go @@ -148,9 +148,6 @@ func (this *MapData) InitMap(module *Entertainment, iType int32) { this.SetIndelibilityPlat() this.Plat = this.GetPalatData() //this.SetMap() // 方便测试固定地图 - - fmt.Printf("=======%v=========\n", this.Skill3(24, 0)) - this.Debugf() } // 交换之前先判断是不是特殊元素的交换