From 54b3bb32e9cddf0ae80e592255d7b70a963f53f6 Mon Sep 17 00:00:00 2001 From: meixiongfeng <766881921@qq.com> Date: Thu, 14 Dec 2023 16:50:38 +0800 Subject: [PATCH 01/16] =?UTF-8?q?=E4=B8=89=E6=B6=88=E7=8E=A9=E5=AE=B6?= =?UTF-8?q?=E6=8A=80=E8=83=BD=E5=8D=A1=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- comm/core.go | 23 ++-- comm/imodule.go | 1 + modules/entertainment/module.go | 81 +++++++++++- modules/entertainment/room.go | 29 ++-- modules/gm/module.go | 2 +- modules/modulebase.go | 47 +++++-- pb/entertain_db.pb.go | 220 ++++++++++++++++++++----------- pb/entertain_msg.pb.go | 225 +++++++++++++++++--------------- 8 files changed, 417 insertions(+), 211 deletions(-) diff --git a/comm/core.go b/comm/core.go index f135f31e7..7e47a92ff 100644 --- a/comm/core.go +++ b/comm/core.go @@ -34,17 +34,18 @@ type ISC_MatchComp interface { // 游戏类资源类型 const ( - AttrType = "attr" //用户属性资源 例如货币 经验 之类的 - PerType = "per" //用户皮肤,动作,背景 相关资源 - ItemType = "item" //道具物品资源 - HeroType = "hero" //卡片资源 例如英雄卡,检验卡 - EquipmentType = "equi" //武器资源 - VipType = "vip" //vip - AtlasType = "atlas" //铁匠铺资源 - PandaType = "panda" //熊猫武馆资源 - MountsType = "mts" //捕羊大赛坐骑资源 - TitleType = "title" //称号资源 - XxlType = "xxl" //三消卡片资源 + AttrType = "attr" //用户属性资源 例如货币 经验 之类的 + PerType = "per" //用户皮肤,动作,背景 相关资源 + ItemType = "item" //道具物品资源 + HeroType = "hero" //卡片资源 例如英雄卡,检验卡 + EquipmentType = "equi" //武器资源 + VipType = "vip" //vip + AtlasType = "atlas" //铁匠铺资源 + PandaType = "panda" //熊猫武馆资源 + MountsType = "mts" //捕羊大赛坐骑资源 + TitleType = "title" //称号资源 + XxlType = "xxl" //三消卡片资源 + XxlSkill = "xxlskill" //三消技能资源 ) type Autogenerated struct { diff --git a/comm/imodule.go b/comm/imodule.go index 8acd93581..28c826f1f 100644 --- a/comm/imodule.go +++ b/comm/imodule.go @@ -687,6 +687,7 @@ type ( IEntertainment interface { // 添加三消卡片资源 AddXxlCard(session IUserSession, cards map[string]int32, bPush bool) (errdata *pb.ErrorData) + AddXxlSkillCard(session IUserSession, skill map[string]int32, bPush bool) (errdata *pb.ErrorData) CreateRoom(sessions []IUserSession, rulesStr string) (roomid string, err error) //用户离线 diff --git a/modules/entertainment/module.go b/modules/entertainment/module.go index 32436b9a9..26e060624 100644 --- a/modules/entertainment/module.go +++ b/modules/entertainment/module.go @@ -10,6 +10,7 @@ import ( "go_dreamfactory/lego/sys/log" "go_dreamfactory/modules" "go_dreamfactory/pb" + "strconv" ) func NewModule() core.IModule { @@ -118,9 +119,13 @@ func (this *Entertainment) ConsumXxlCard(session comm.IUserSession, card string) }) } - session.SendMsg(string(this.GetType()), "titlelist", &pb.EntertainChangePush{ + session.SendMsg(string(this.GetType()), "change", &pb.EntertainChangePush{ Card: result.Card, }) + // 写数据统计 + go this.AsynHandleSession(session.Clone(), func(session comm.IUserSession) { + this.WriteUserLog(session.GetUserId(), "", comm.GMResDelType, "ConsumXxlCard", result.Card[card]) + }) return } @@ -240,3 +245,77 @@ func (this *Entertainment) UserOffline(roomid string, uid string) (err error) { func (this *Entertainment) AdmitDefeat(roomid string, uid string) (err error) { return } + +func (this *Entertainment) AddXxlSkillCard(session comm.IUserSession, skill map[string]int32, bPush bool) (errdata *pb.ErrorData) { + + var ( + result *pb.DBXXLData + err error + ) + // for k := range skill { + // if _, err := this.model.module.configure.GetGameConsumeHero(k); err != nil { + // errdata = &pb.ErrorData{ + // Code: pb.ErrorCode_ReqParameterError, + // Title: pb.ErrorCode_ReqParameterError.ToString(), + // Message: err.Error(), + // } + // return + // } + // } + if result, err = this.model.getEntertainmList(session.GetUserId()); err != nil { + return + } + for k, v := range skill { + if iKey, err := strconv.Atoi(k); err != nil { + errdata = &pb.ErrorData{ + Code: pb.ErrorCode_ReqParameterError, + Title: pb.ErrorCode_ReqParameterError.ToString(), + Message: err.Error(), + } + return + } else { + result.Skill[int32(iKey)] += v + } + } + this.model.modifyEntertainmList(session.GetUserId(), map[string]interface{}{ + "skill": result.Skill, + }) + + if bPush { + session.SendMsg(string(this.GetType()), "change", &pb.EntertainChangePush{ + Skill: result.Skill, + }) + } + return +} + +// 消耗一张技能卡 +func (this *Entertainment) ConsumXxlSkillCard(session comm.IUserSession, skillCard int32) (errdata *pb.ErrorData) { + + var ( + result *pb.DBXXLData + err error + ) + + if result, err = this.model.getEntertainmList(session.GetUserId()); err != nil { + return + } + if _, ok := result.Skill[skillCard]; ok { + if result.Skill[skillCard] <= 0 { + return + } + result.Skill[skillCard] -= 1 + this.model.modifyEntertainmList(session.GetUserId(), map[string]interface{}{ + "skill": result.Skill, + }) + } + + session.SendMsg(string(this.GetType()), "change", &pb.EntertainChangePush{ + Skill: result.Skill, + }) + // 写数据统计 + go this.AsynHandleSession(session.Clone(), func(session comm.IUserSession) { + this.WriteUserLog(session.GetUserId(), "", comm.GMResDelType, "ConsumXxlSkillCard", result.Skill[skillCard]) + }) + return +} diff --git a/modules/entertainment/room.go b/modules/entertainment/room.go index 32fe734ac..6f37b7ff1 100644 --- a/modules/entertainment/room.go +++ b/modules/entertainment/room.go @@ -553,20 +553,32 @@ func (this *Room) GameOver() (errdata *pb.ErrorData) { } // 失败卡类型 if conf, err := this.module.configure.GetGameConsumeHero(lostPlayer.Cardid); err == nil && lostPlayer.Userinfo.Uid != "999" { - if conf.Type != 1 { //卡片类型不为1 - if list, err := this.module.model.getEntertainmList(lostPlayer.Userinfo.Uid); err == nil { - if list.Card[lostPlayer.Cardid] >= 1 { + + if list, err := this.module.model.getEntertainmList(lostPlayer.Userinfo.Uid); err == nil { + update := map[string]interface{}{} + if list.Liansheng != 0 { + list.Liansheng = 0 // 修改连胜 + update["liansheng"] = list.Liansheng + } + + if conf.Type != 1 { //卡片类型不为1 + if list.Card[lostPlayer.Cardid] >= 1 { //删除卡片 list.Card[lostPlayer.Cardid] -= 1 - this.module.model.modifyEntertainmList(lostPlayer.Userinfo.Uid, map[string]interface{}{ - "card": list.Card, - }) + update["card"] = list.Card } } + if len(update) > 0 { + this.module.model.modifyEntertainmList(lostPlayer.Userinfo.Uid, update) + } } } // 查看能不能获得箱子 if winner.Userinfo.Uid != "999" { if list, err := this.module.model.getEntertainmList(winner.Userinfo.Uid); err == nil { + update := map[string]interface{}{} + // 修改连胜 + list.Liansheng += 1 + update["liansheng"] = list.Liansheng if len(list.Box) < 3 { // 可以获得一个宝箱 if c, err := this.module.configure.GetGameRandomConsumeBoxConf(); err == nil { if c.Color != 0 { @@ -575,13 +587,12 @@ func (this *Room) GameOver() (errdata *pb.ErrorData) { Opentime: int64(c.Cd) + configure.Now().Unix(), } list.Box = append(list.Box, box) + update["box"] = list.Box - this.module.model.modifyEntertainmList(winner.Userinfo.Uid, map[string]interface{}{ - "box": list.Box, - }) } } } + this.module.model.modifyEntertainmList(winner.Userinfo.Uid, update) } } diff --git a/modules/gm/module.go b/modules/gm/module.go index b6f8b7581..e589e4875 100644 --- a/modules/gm/module.go +++ b/modules/gm/module.go @@ -77,7 +77,7 @@ func (this *GM) CreateCmd(session comm.IUserSession, cmd string) (errdata *pb.Er datas := strings.Split(keys[1], ",") if len(datas) == 3 && (comm.TitleType == datas[0] || comm.PerType == datas[0] || datas[0] == comm.AttrType || datas[0] == comm.ItemType || datas[0] == comm.HeroType || datas[0] == comm.EquipmentType || datas[0] == comm.VipType || - datas[0] == comm.AtlasType || datas[0] == comm.PandaType || datas[0] == comm.MountsType || datas[0] == comm.XxlType) { + datas[0] == comm.AtlasType || datas[0] == comm.PandaType || datas[0] == comm.MountsType || datas[0] == comm.XxlSkill || datas[0] == comm.XxlType) { num, err := strconv.Atoi(datas[2]) if err != nil { errdata = &pb.ErrorData{ diff --git a/modules/modulebase.go b/modules/modulebase.go index 10b7e9a36..887427b3b 100644 --- a/modules/modulebase.go +++ b/modules/modulebase.go @@ -472,17 +472,18 @@ func (this *ModuleBase) ConsumeRes(session comm.IUserSession, res []*cfg.Gameatn // 发放资源 func (this *ModuleBase) DispenseRes(session comm.IUserSession, res []*cfg.Gameatn, bPush bool) (errdata *pb.ErrorData) { var ( - items map[string]int32 // 道具背包 批量处理 - heros map[string]int32 // 英雄 - attrs map[string]int32 // 属性 - equips map[string]uint32 // 装备 - vip map[string]int32 // vip - atlas map[string]int32 // 铁匠铺资源 - panda map[string]int32 // 熊猫武馆资源 - mts map[string]int32 // 捕羊大赛资源 - per map[string]int32 // 捕羊大赛资源 - title map[string]int32 // 称号资源 - xxl map[string]int32 // 三消卡片资源 + items map[string]int32 // 道具背包 批量处理 + heros map[string]int32 // 英雄 + attrs map[string]int32 // 属性 + equips map[string]uint32 // 装备 + vip map[string]int32 // vip + atlas map[string]int32 // 铁匠铺资源 + panda map[string]int32 // 熊猫武馆资源 + mts map[string]int32 // 捕羊大赛资源 + per map[string]int32 // 捕羊大赛资源 + title map[string]int32 // 称号资源 + xxl map[string]int32 // 三消卡片资源 + xxlSkill map[string]int32 // 三消技能 ) items = make(map[string]int32, 0) heros = make(map[string]int32, 0) @@ -495,6 +496,7 @@ func (this *ModuleBase) DispenseRes(session comm.IUserSession, res []*cfg.Gameat per = make(map[string]int32, 0) title = make(map[string]int32, 0) xxl = make(map[string]int32, 0) + xxlSkill = make(map[string]int32, 0) for _, v := range res { switch v.A { @@ -522,6 +524,8 @@ func (this *ModuleBase) DispenseRes(session comm.IUserSession, res []*cfg.Gameat title[v.T] = 1 case comm.XxlType: xxl[v.T] += v.N + case comm.XxlSkill: + xxlSkill[v.T] += v.N default: this.Error("not found res type", log.Field{Key: "Type", Value: v.A}) // 找不到资源类型 } @@ -578,6 +582,10 @@ func (this *ModuleBase) DispenseRes(session comm.IUserSession, res []*cfg.Gameat errdata = this.ModuleEntertain.AddXxlCard(session, xxl, bPush) this.Debugf("发放三消卡片资源资源: %v errdata: %v", mts, errdata) } + if len(xxlSkill) > 0 { + errdata = this.ModuleEntertain.AddXxlSkillCard(session, xxlSkill, bPush) + this.Debugf("发放三消技能资源资源: %v errdata: %v", mts, errdata) + } return } @@ -718,6 +726,7 @@ func (this *ModuleBase) DispenseAtno(session comm.IUserSession, res []*cfg.Gamea per map[string]int32 // 捕羊大赛资源 title map[string]int32 // 称号资源 xxl map[string]int32 // 三消资源 + xxlSkill map[string]int32 // 三消资源 equipschange []*pb.DB_Equipment heroschange []*pb.UserAtno itemschange []*pb.UserAtno @@ -733,6 +742,7 @@ func (this *ModuleBase) DispenseAtno(session comm.IUserSession, res []*cfg.Gamea per = make(map[string]int32, 0) title = make(map[string]int32, 0) xxl = make(map[string]int32, 0) + xxlSkill = make(map[string]int32, 0) for _, v := range res { switch v.A { @@ -760,6 +770,8 @@ func (this *ModuleBase) DispenseAtno(session comm.IUserSession, res []*cfg.Gamea title[v.T] = 1 case comm.XxlType: xxl[v.T] += v.N + case comm.XxlSkill: + xxlSkill[v.T] += v.N default: this.Error("not found res type", log.Field{Key: "Type", Value: v.A}) // 找不到资源类型 } @@ -901,6 +913,19 @@ func (this *ModuleBase) DispenseAtno(session comm.IUserSession, res []*cfg.Gamea } this.Debugf("发放三消卡片资源资源: %v errdata: %v", xxl, errdata) } + if len(xxlSkill) > 0 { + if errdata = this.ModuleEntertain.AddXxlSkillCard(session, xxlSkill, bPush); errdata != nil { + return + } + for k, v := range xxl { + atno = append(atno, &pb.UserAtno{ + A: comm.TitleType, + T: k, + N: v, + }) + } + this.Debugf("发放三消卡片资源资源: %v errdata: %v", xxl, errdata) + } return } diff --git a/pb/entertain_db.pb.go b/pb/entertain_db.pb.go index f396776e5..f7cc79e06 100644 --- a/pb/entertain_db.pb.go +++ b/pb/entertain_db.pb.go @@ -177,12 +177,13 @@ type PlayerData struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Userinfo *BaseUserInfo `protobuf:"bytes,1,opt,name=userinfo,proto3" json:"userinfo"` - Score int32 `protobuf:"varint,2,opt,name=score,proto3" json:"score"` // 本局战斗得分 - Ps int32 `protobuf:"varint,3,opt,name=ps,proto3" json:"ps"` // 体力 - Cardid string `protobuf:"bytes,4,opt,name=cardid,proto3" json:"cardid"` // 出战的英雄卡 - Energy int32 `protobuf:"varint,5,opt,name=energy,proto3" json:"energy"` // 能量进度 - Consumeexp int32 `protobuf:"varint,6,opt,name=consumeexp,proto3" json:"consumeexp"` // 消消乐积分 + Userinfo *BaseUserInfo `protobuf:"bytes,1,opt,name=userinfo,proto3" json:"userinfo"` + Score int32 `protobuf:"varint,2,opt,name=score,proto3" json:"score"` // 本局战斗得分 + Ps int32 `protobuf:"varint,3,opt,name=ps,proto3" json:"ps"` // 体力 + Cardid string `protobuf:"bytes,4,opt,name=cardid,proto3" json:"cardid"` // 出战的英雄卡 + Energy int32 `protobuf:"varint,5,opt,name=energy,proto3" json:"energy"` // 能量进度 + Consumeexp int32 `protobuf:"varint,6,opt,name=consumeexp,proto3" json:"consumeexp"` // 消消乐积分 + Skill map[int32]int32 `protobuf:"bytes,7,rep,name=skill,proto3" json:"skill" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"` // 出战的技能卡 key consume_playerskill表中cid value 数量 } func (x *PlayerData) Reset() { @@ -259,6 +260,13 @@ func (x *PlayerData) GetConsumeexp() int32 { return 0 } +func (x *PlayerData) GetSkill() map[int32]int32 { + if x != nil { + return x.Skill + } + return nil +} + // 消消乐匹配数据 type DBXXLMatch struct { state protoimpl.MessageState @@ -390,10 +398,13 @@ type DBXXLData struct { Rtime int64 `protobuf:"varint,5,opt,name=rtime,proto3" json:"rtime"` // 刷新时间 (客户端不用) Playtype []int32 `protobuf:"varint,6,rep,packed,name=playtype,proto3" json:"playtype"` // 每天随机玩法 // map boxid = 7; // 宝箱 key 宝箱id value 可领取的时间 - Box []*BoxData `protobuf:"bytes,7,rep,name=box,proto3" json:"box"` - Roomid string `protobuf:"bytes,8,opt,name=roomid,proto3" json:"roomid"` // 房间id 重连用 - ServicePath string `protobuf:"bytes,9,opt,name=servicePath,proto3" json:"servicePath"` // 目标服务节点 重连RPC用 - Etime int64 `protobuf:"varint,10,opt,name=etime,proto3" json:"etime"` // 赛季结束时间 + Box []*BoxData `protobuf:"bytes,7,rep,name=box,proto3" json:"box"` + Roomid string `protobuf:"bytes,8,opt,name=roomid,proto3" json:"roomid"` // 房间id 重连用 + ServicePath string `protobuf:"bytes,9,opt,name=servicePath,proto3" json:"servicePath"` // 目标服务节点 重连RPC用 + Etime int64 `protobuf:"varint,10,opt,name=etime,proto3" json:"etime"` // 赛季结束时间 + Touxiang int32 `protobuf:"varint,11,opt,name=touxiang,proto3" json:"touxiang"` // 今天投降的次数 + Skill map[int32]int32 `protobuf:"bytes,12,rep,name=skill,proto3" json:"skill" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"` // key 技能id value 数量(可为0) + Liansheng int32 `protobuf:"varint,13,opt,name=liansheng,proto3" json:"liansheng"` // 连胜 } func (x *DBXXLData) Reset() { @@ -498,15 +509,38 @@ func (x *DBXXLData) GetEtime() int64 { return 0 } +func (x *DBXXLData) GetTouxiang() int32 { + if x != nil { + return x.Touxiang + } + return 0 +} + +func (x *DBXXLData) GetSkill() map[int32]int32 { + if x != nil { + return x.Skill + } + return nil +} + +func (x *DBXXLData) GetLiansheng() int32 { + if x != nil { + return x.Liansheng + } + return 0 +} + // 三消游戏规则 type DBXxlRules struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - RoomType int32 `protobuf:"varint,1,opt,name=RoomType,proto3" json:"RoomType"` // 房间类型 - Card1 string `protobuf:"bytes,2,opt,name=card1,proto3" json:"card1"` // player1 卡 - Card2 string `protobuf:"bytes,3,opt,name=card2,proto3" json:"card2"` // player2 卡 + RoomType int32 `protobuf:"varint,1,opt,name=RoomType,proto3" json:"RoomType"` // 房间类型 + Card1 string `protobuf:"bytes,2,opt,name=card1,proto3" json:"card1"` // player1 卡 + Card2 string `protobuf:"bytes,3,opt,name=card2,proto3" json:"card2"` // player2 卡 + Skill1 []int32 `protobuf:"varint,4,rep,packed,name=skill1,proto3" json:"skill1"` // 玩家1携带的技能 + Skill2 []int32 `protobuf:"varint,5,rep,packed,name=skill2,proto3" json:"skill2"` // 玩家2携带的技能 } func (x *DBXxlRules) Reset() { @@ -562,6 +596,20 @@ func (x *DBXxlRules) GetCard2() string { return "" } +func (x *DBXxlRules) GetSkill1() []int32 { + if x != nil { + return x.Skill1 + } + return nil +} + +func (x *DBXxlRules) GetSkill2() []int32 { + if x != nil { + return x.Skill2 + } + return nil +} + var File_entertain_entertain_db_proto protoreflect.FileDescriptor var file_entertain_entertain_db_proto_rawDesc = []byte{ @@ -583,7 +631,7 @@ var file_entertain_entertain_db_proto_rawDesc = []byte{ 0x28, 0x05, 0x52, 0x03, 0x63, 0x69, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x73, 0x70, 0x65, 0x63, 0x69, 0x61, 0x6c, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, - 0x73, 0x70, 0x65, 0x63, 0x69, 0x61, 0x6c, 0x22, 0xad, 0x01, 0x0a, 0x0a, 0x50, 0x6c, 0x61, 0x79, + 0x73, 0x70, 0x65, 0x63, 0x69, 0x61, 0x6c, 0x22, 0x95, 0x02, 0x0a, 0x0a, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x44, 0x61, 0x74, 0x61, 0x12, 0x29, 0x0a, 0x08, 0x75, 0x73, 0x65, 0x72, 0x69, 0x6e, 0x66, 0x6f, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x42, 0x61, 0x73, 0x65, 0x55, 0x73, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x08, 0x75, 0x73, 0x65, 0x72, 0x69, 0x6e, 0x66, @@ -594,50 +642,70 @@ var file_entertain_entertain_db_proto_rawDesc = []byte{ 0x16, 0x0a, 0x06, 0x65, 0x6e, 0x65, 0x72, 0x67, 0x79, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x65, 0x6e, 0x65, 0x72, 0x67, 0x79, 0x12, 0x1e, 0x0a, 0x0a, 0x63, 0x6f, 0x6e, 0x73, 0x75, 0x6d, 0x65, 0x65, 0x78, 0x70, 0x18, 0x06, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x63, 0x6f, 0x6e, - 0x73, 0x75, 0x6d, 0x65, 0x65, 0x78, 0x70, 0x22, 0x6f, 0x0a, 0x0a, 0x44, 0x42, 0x58, 0x58, 0x4c, - 0x4d, 0x61, 0x74, 0x63, 0x68, 0x12, 0x29, 0x0a, 0x08, 0x75, 0x73, 0x65, 0x72, 0x69, 0x6e, 0x66, - 0x6f, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x42, 0x61, 0x73, 0x65, 0x55, 0x73, - 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x08, 0x75, 0x73, 0x65, 0x72, 0x69, 0x6e, 0x66, 0x6f, - 0x12, 0x16, 0x0a, 0x06, 0x63, 0x61, 0x72, 0x64, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x06, 0x63, 0x61, 0x72, 0x64, 0x69, 0x64, 0x12, 0x1e, 0x0a, 0x0a, 0x63, 0x6f, 0x6e, 0x73, - 0x75, 0x6d, 0x65, 0x65, 0x78, 0x70, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x63, 0x6f, - 0x6e, 0x73, 0x75, 0x6d, 0x65, 0x65, 0x78, 0x70, 0x22, 0x3b, 0x0a, 0x07, 0x42, 0x6f, 0x78, 0x44, - 0x61, 0x74, 0x61, 0x12, 0x14, 0x0a, 0x05, 0x62, 0x6f, 0x78, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x05, 0x52, 0x05, 0x62, 0x6f, 0x78, 0x69, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x6f, 0x70, 0x65, - 0x6e, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x08, 0x6f, 0x70, 0x65, - 0x6e, 0x74, 0x69, 0x6d, 0x65, 0x22, 0x99, 0x03, 0x0a, 0x09, 0x44, 0x42, 0x58, 0x58, 0x4c, 0x44, - 0x61, 0x74, 0x61, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x02, 0x69, 0x64, 0x12, 0x10, 0x0a, 0x03, 0x75, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x03, 0x75, 0x69, 0x64, 0x12, 0x2e, 0x0a, 0x06, 0x72, 0x65, 0x77, 0x61, 0x72, 0x64, 0x18, - 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x44, 0x42, 0x58, 0x58, 0x4c, 0x44, 0x61, 0x74, - 0x61, 0x2e, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x06, 0x72, - 0x65, 0x77, 0x61, 0x72, 0x64, 0x12, 0x28, 0x0a, 0x04, 0x63, 0x61, 0x72, 0x64, 0x18, 0x04, 0x20, - 0x03, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x44, 0x42, 0x58, 0x58, 0x4c, 0x44, 0x61, 0x74, 0x61, 0x2e, - 0x43, 0x61, 0x72, 0x64, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x04, 0x63, 0x61, 0x72, 0x64, 0x12, - 0x14, 0x0a, 0x05, 0x72, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, - 0x72, 0x74, 0x69, 0x6d, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x6c, 0x61, 0x79, 0x74, 0x79, 0x70, - 0x65, 0x18, 0x06, 0x20, 0x03, 0x28, 0x05, 0x52, 0x08, 0x70, 0x6c, 0x61, 0x79, 0x74, 0x79, 0x70, - 0x65, 0x12, 0x1a, 0x0a, 0x03, 0x62, 0x6f, 0x78, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x08, - 0x2e, 0x42, 0x6f, 0x78, 0x44, 0x61, 0x74, 0x61, 0x52, 0x03, 0x62, 0x6f, 0x78, 0x12, 0x16, 0x0a, - 0x06, 0x72, 0x6f, 0x6f, 0x6d, 0x69, 0x64, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x72, - 0x6f, 0x6f, 0x6d, 0x69, 0x64, 0x12, 0x20, 0x0a, 0x0b, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, - 0x50, 0x61, 0x74, 0x68, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x73, 0x65, 0x72, 0x76, - 0x69, 0x63, 0x65, 0x50, 0x61, 0x74, 0x68, 0x12, 0x14, 0x0a, 0x05, 0x65, 0x74, 0x69, 0x6d, 0x65, - 0x18, 0x0a, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x65, 0x74, 0x69, 0x6d, 0x65, 0x1a, 0x39, 0x0a, - 0x0b, 0x52, 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, 0x05, 0x52, 0x05, 0x76, - 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x37, 0x0a, 0x09, 0x43, 0x61, 0x72, 0x64, - 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, 0x54, 0x0a, 0x0a, 0x44, 0x42, 0x58, 0x78, 0x6c, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x12, - 0x1a, 0x0a, 0x08, 0x52, 0x6f, 0x6f, 0x6d, 0x54, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x05, 0x52, 0x08, 0x52, 0x6f, 0x6f, 0x6d, 0x54, 0x79, 0x70, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x63, - 0x61, 0x72, 0x64, 0x31, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x63, 0x61, 0x72, 0x64, - 0x31, 0x12, 0x14, 0x0a, 0x05, 0x63, 0x61, 0x72, 0x64, 0x32, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x05, 0x63, 0x61, 0x72, 0x64, 0x32, 0x42, 0x06, 0x5a, 0x04, 0x2e, 0x3b, 0x70, 0x62, 0x62, - 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x73, 0x75, 0x6d, 0x65, 0x65, 0x78, 0x70, 0x12, 0x2c, 0x0a, 0x05, 0x73, 0x6b, 0x69, 0x6c, 0x6c, + 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x44, + 0x61, 0x74, 0x61, 0x2e, 0x53, 0x6b, 0x69, 0x6c, 0x6c, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x05, + 0x73, 0x6b, 0x69, 0x6c, 0x6c, 0x1a, 0x38, 0x0a, 0x0a, 0x53, 0x6b, 0x69, 0x6c, 0x6c, 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, + 0x6f, 0x0a, 0x0a, 0x44, 0x42, 0x58, 0x58, 0x4c, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x12, 0x29, 0x0a, + 0x08, 0x75, 0x73, 0x65, 0x72, 0x69, 0x6e, 0x66, 0x6f, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x0d, 0x2e, 0x42, 0x61, 0x73, 0x65, 0x55, 0x73, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x08, + 0x75, 0x73, 0x65, 0x72, 0x69, 0x6e, 0x66, 0x6f, 0x12, 0x16, 0x0a, 0x06, 0x63, 0x61, 0x72, 0x64, + 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x63, 0x61, 0x72, 0x64, 0x69, 0x64, + 0x12, 0x1e, 0x0a, 0x0a, 0x63, 0x6f, 0x6e, 0x73, 0x75, 0x6d, 0x65, 0x65, 0x78, 0x70, 0x18, 0x03, + 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x63, 0x6f, 0x6e, 0x73, 0x75, 0x6d, 0x65, 0x65, 0x78, 0x70, + 0x22, 0x3b, 0x0a, 0x07, 0x42, 0x6f, 0x78, 0x44, 0x61, 0x74, 0x61, 0x12, 0x14, 0x0a, 0x05, 0x62, + 0x6f, 0x78, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x62, 0x6f, 0x78, 0x69, + 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x6f, 0x70, 0x65, 0x6e, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x03, 0x52, 0x08, 0x6f, 0x70, 0x65, 0x6e, 0x74, 0x69, 0x6d, 0x65, 0x22, 0xba, 0x04, + 0x0a, 0x09, 0x44, 0x42, 0x58, 0x58, 0x4c, 0x44, 0x61, 0x74, 0x61, 0x12, 0x0e, 0x0a, 0x02, 0x69, + 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x10, 0x0a, 0x03, 0x75, + 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x75, 0x69, 0x64, 0x12, 0x2e, 0x0a, + 0x06, 0x72, 0x65, 0x77, 0x61, 0x72, 0x64, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x16, 0x2e, + 0x44, 0x42, 0x58, 0x58, 0x4c, 0x44, 0x61, 0x74, 0x61, 0x2e, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, + 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x06, 0x72, 0x65, 0x77, 0x61, 0x72, 0x64, 0x12, 0x28, 0x0a, + 0x04, 0x63, 0x61, 0x72, 0x64, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x44, 0x42, + 0x58, 0x58, 0x4c, 0x44, 0x61, 0x74, 0x61, 0x2e, 0x43, 0x61, 0x72, 0x64, 0x45, 0x6e, 0x74, 0x72, + 0x79, 0x52, 0x04, 0x63, 0x61, 0x72, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x72, 0x74, 0x69, 0x6d, 0x65, + 0x18, 0x05, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x72, 0x74, 0x69, 0x6d, 0x65, 0x12, 0x1a, 0x0a, + 0x08, 0x70, 0x6c, 0x61, 0x79, 0x74, 0x79, 0x70, 0x65, 0x18, 0x06, 0x20, 0x03, 0x28, 0x05, 0x52, + 0x08, 0x70, 0x6c, 0x61, 0x79, 0x74, 0x79, 0x70, 0x65, 0x12, 0x1a, 0x0a, 0x03, 0x62, 0x6f, 0x78, + 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x08, 0x2e, 0x42, 0x6f, 0x78, 0x44, 0x61, 0x74, 0x61, + 0x52, 0x03, 0x62, 0x6f, 0x78, 0x12, 0x16, 0x0a, 0x06, 0x72, 0x6f, 0x6f, 0x6d, 0x69, 0x64, 0x18, + 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x72, 0x6f, 0x6f, 0x6d, 0x69, 0x64, 0x12, 0x20, 0x0a, + 0x0b, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x50, 0x61, 0x74, 0x68, 0x18, 0x09, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x0b, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x50, 0x61, 0x74, 0x68, 0x12, + 0x14, 0x0a, 0x05, 0x65, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, + 0x65, 0x74, 0x69, 0x6d, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x74, 0x6f, 0x75, 0x78, 0x69, 0x61, 0x6e, + 0x67, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x74, 0x6f, 0x75, 0x78, 0x69, 0x61, 0x6e, + 0x67, 0x12, 0x2b, 0x0a, 0x05, 0x73, 0x6b, 0x69, 0x6c, 0x6c, 0x18, 0x0c, 0x20, 0x03, 0x28, 0x0b, + 0x32, 0x15, 0x2e, 0x44, 0x42, 0x58, 0x58, 0x4c, 0x44, 0x61, 0x74, 0x61, 0x2e, 0x53, 0x6b, 0x69, + 0x6c, 0x6c, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x05, 0x73, 0x6b, 0x69, 0x6c, 0x6c, 0x12, 0x1c, + 0x0a, 0x09, 0x6c, 0x69, 0x61, 0x6e, 0x73, 0x68, 0x65, 0x6e, 0x67, 0x18, 0x0d, 0x20, 0x01, 0x28, + 0x05, 0x52, 0x09, 0x6c, 0x69, 0x61, 0x6e, 0x73, 0x68, 0x65, 0x6e, 0x67, 0x1a, 0x39, 0x0a, 0x0b, + 0x52, 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, 0x05, 0x52, 0x05, 0x76, 0x61, + 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x37, 0x0a, 0x09, 0x43, 0x61, 0x72, 0x64, 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, + 0x1a, 0x38, 0x0a, 0x0a, 0x53, 0x6b, 0x69, 0x6c, 0x6c, 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, 0x84, 0x01, 0x0a, 0x0a, 0x44, + 0x42, 0x58, 0x78, 0x6c, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x12, 0x1a, 0x0a, 0x08, 0x52, 0x6f, 0x6f, + 0x6d, 0x54, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x52, 0x6f, 0x6f, + 0x6d, 0x54, 0x79, 0x70, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x63, 0x61, 0x72, 0x64, 0x31, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x63, 0x61, 0x72, 0x64, 0x31, 0x12, 0x14, 0x0a, 0x05, 0x63, + 0x61, 0x72, 0x64, 0x32, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x63, 0x61, 0x72, 0x64, + 0x32, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x6b, 0x69, 0x6c, 0x6c, 0x31, 0x18, 0x04, 0x20, 0x03, 0x28, + 0x05, 0x52, 0x06, 0x73, 0x6b, 0x69, 0x6c, 0x6c, 0x31, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x6b, 0x69, + 0x6c, 0x6c, 0x32, 0x18, 0x05, 0x20, 0x03, 0x28, 0x05, 0x52, 0x06, 0x73, 0x6b, 0x69, 0x6c, 0x6c, + 0x32, 0x42, 0x06, 0x5a, 0x04, 0x2e, 0x3b, 0x70, 0x62, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, + 0x33, } var ( @@ -652,7 +720,7 @@ func file_entertain_entertain_db_proto_rawDescGZIP() []byte { return file_entertain_entertain_db_proto_rawDescData } -var file_entertain_entertain_db_proto_msgTypes = make([]protoimpl.MessageInfo, 9) +var file_entertain_entertain_db_proto_msgTypes = make([]protoimpl.MessageInfo, 11) var file_entertain_entertain_db_proto_goTypes = []interface{}{ (*MapData)(nil), // 0: MapData (*GirdeData)(nil), // 1: GirdeData @@ -661,22 +729,26 @@ var file_entertain_entertain_db_proto_goTypes = []interface{}{ (*BoxData)(nil), // 4: BoxData (*DBXXLData)(nil), // 5: DBXXLData (*DBXxlRules)(nil), // 6: DBXxlRules - nil, // 7: DBXXLData.RewardEntry - nil, // 8: DBXXLData.CardEntry - (*BaseUserInfo)(nil), // 9: BaseUserInfo + nil, // 7: PlayerData.SkillEntry + nil, // 8: DBXXLData.RewardEntry + nil, // 9: DBXXLData.CardEntry + nil, // 10: DBXXLData.SkillEntry + (*BaseUserInfo)(nil), // 11: BaseUserInfo } var file_entertain_entertain_db_proto_depIdxs = []int32{ - 1, // 0: MapData.data:type_name -> GirdeData - 9, // 1: PlayerData.userinfo:type_name -> BaseUserInfo - 9, // 2: DBXXLMatch.userinfo:type_name -> BaseUserInfo - 7, // 3: DBXXLData.reward:type_name -> DBXXLData.RewardEntry - 8, // 4: DBXXLData.card:type_name -> DBXXLData.CardEntry - 4, // 5: DBXXLData.box:type_name -> BoxData - 6, // [6:6] is the sub-list for method output_type - 6, // [6:6] is the sub-list for method input_type - 6, // [6:6] is the sub-list for extension type_name - 6, // [6:6] is the sub-list for extension extendee - 0, // [0:6] is the sub-list for field type_name + 1, // 0: MapData.data:type_name -> GirdeData + 11, // 1: PlayerData.userinfo:type_name -> BaseUserInfo + 7, // 2: PlayerData.skill:type_name -> PlayerData.SkillEntry + 11, // 3: DBXXLMatch.userinfo:type_name -> BaseUserInfo + 8, // 4: DBXXLData.reward:type_name -> DBXXLData.RewardEntry + 9, // 5: DBXXLData.card:type_name -> DBXXLData.CardEntry + 4, // 6: DBXXLData.box:type_name -> BoxData + 10, // 7: DBXXLData.skill:type_name -> DBXXLData.SkillEntry + 8, // [8:8] is the sub-list for method output_type + 8, // [8:8] is the sub-list for method input_type + 8, // [8:8] is the sub-list for extension type_name + 8, // [8:8] is the sub-list for extension extendee + 0, // [0:8] is the sub-list for field type_name } func init() { file_entertain_entertain_db_proto_init() } @@ -777,7 +849,7 @@ func file_entertain_entertain_db_proto_init() { GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: file_entertain_entertain_db_proto_rawDesc, NumEnums: 0, - NumMessages: 9, + NumMessages: 11, NumExtensions: 0, NumServices: 0, }, diff --git a/pb/entertain_msg.pb.go b/pb/entertain_msg.pb.go index 260a7d0e6..e6bc785f9 100644 --- a/pb/entertain_msg.pb.go +++ b/pb/entertain_msg.pb.go @@ -401,7 +401,7 @@ type EntertainOperatorReq struct { unknownFields protoimpl.UnknownFields Roomid string `protobuf:"bytes,1,opt,name=roomid,proto3" json:"roomid"` // 房间id - Itype int32 `protobuf:"varint,2,opt,name=itype,proto3" json:"itype"` // 操作类型 0 默认交换元素 1 技能 + Itype int32 `protobuf:"varint,2,opt,name=itype,proto3" json:"itype"` // 操作类型 0 默认交换元素 999 技能 Curid int32 `protobuf:"varint,3,opt,name=curid,proto3" json:"curid"` // 当前key Targetid int32 `protobuf:"varint,4,opt,name=targetid,proto3" json:"targetid"` // 目标key } @@ -1305,7 +1305,8 @@ type EntertainChangePush struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Card map[string]int32 `protobuf:"bytes,1,rep,name=card,proto3" json:"card" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"` // key 卡id value 数量(可为0) + Card map[string]int32 `protobuf:"bytes,1,rep,name=card,proto3" json:"card" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"` // key 卡id value 数量(可为0) + Skill map[int32]int32 `protobuf:"bytes,2,rep,name=skill,proto3" json:"skill" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"` // } func (x *EntertainChangePush) Reset() { @@ -1347,6 +1348,13 @@ func (x *EntertainChangePush) GetCard() map[string]int32 { return nil } +func (x *EntertainChangePush) GetSkill() map[int32]int32 { + if x != nil { + return x.Skill + } + return nil +} + // 创建一个房间 type EntertainCreateRoomReq struct { state protoimpl.MessageState @@ -2276,76 +2284,83 @@ var file_entertain_entertain_msg_proto_rawDesc = []byte{ 0x74, 0x61, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0a, 0x2e, 0x44, 0x42, 0x58, 0x58, 0x4c, 0x44, 0x61, 0x74, 0x61, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x12, 0x21, 0x0a, 0x06, 0x72, 0x65, 0x77, 0x61, 0x72, 0x64, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x09, 0x2e, 0x55, 0x73, 0x65, - 0x72, 0x41, 0x74, 0x6e, 0x6f, 0x52, 0x06, 0x72, 0x65, 0x77, 0x61, 0x72, 0x64, 0x22, 0x82, 0x01, + 0x72, 0x41, 0x74, 0x6e, 0x6f, 0x52, 0x06, 0x72, 0x65, 0x77, 0x61, 0x72, 0x64, 0x22, 0xf3, 0x01, 0x0a, 0x13, 0x45, 0x6e, 0x74, 0x65, 0x72, 0x74, 0x61, 0x69, 0x6e, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x50, 0x75, 0x73, 0x68, 0x12, 0x32, 0x0a, 0x04, 0x63, 0x61, 0x72, 0x64, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x45, 0x6e, 0x74, 0x65, 0x72, 0x74, 0x61, 0x69, 0x6e, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x50, 0x75, 0x73, 0x68, 0x2e, 0x43, 0x61, 0x72, 0x64, 0x45, 0x6e, - 0x74, 0x72, 0x79, 0x52, 0x04, 0x63, 0x61, 0x72, 0x64, 0x1a, 0x37, 0x0a, 0x09, 0x43, 0x61, 0x72, - 0x64, 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, 0x30, 0x0a, 0x16, 0x45, 0x6e, 0x74, 0x65, 0x72, 0x74, 0x61, 0x69, 0x6e, 0x43, - 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x6f, 0x6f, 0x6d, 0x52, 0x65, 0x71, 0x12, 0x16, 0x0a, 0x06, - 0x69, 0x64, 0x63, 0x61, 0x72, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x69, 0x64, - 0x63, 0x61, 0x72, 0x64, 0x22, 0x4f, 0x0a, 0x17, 0x45, 0x6e, 0x74, 0x65, 0x72, 0x74, 0x61, 0x69, - 0x6e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x6f, 0x6f, 0x6d, 0x52, 0x65, 0x73, 0x70, 0x12, - 0x16, 0x0a, 0x06, 0x72, 0x6f, 0x6f, 0x6d, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x06, 0x72, 0x6f, 0x6f, 0x6d, 0x69, 0x64, 0x12, 0x1c, 0x0a, 0x09, 0x73, 0x65, 0x72, 0x76, 0x65, - 0x70, 0x61, 0x74, 0x68, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x73, 0x65, 0x72, 0x76, - 0x65, 0x70, 0x61, 0x74, 0x68, 0x22, 0x46, 0x0a, 0x14, 0x45, 0x6e, 0x74, 0x65, 0x72, 0x74, 0x61, - 0x69, 0x6e, 0x4a, 0x6f, 0x69, 0x6e, 0x52, 0x6f, 0x6f, 0x6d, 0x52, 0x65, 0x71, 0x12, 0x16, 0x0a, - 0x06, 0x72, 0x6f, 0x6f, 0x6d, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x72, - 0x6f, 0x6f, 0x6d, 0x69, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x69, 0x64, 0x63, 0x61, 0x72, 0x64, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x69, 0x64, 0x63, 0x61, 0x72, 0x64, 0x22, 0x2d, 0x0a, - 0x15, 0x45, 0x6e, 0x74, 0x65, 0x72, 0x74, 0x61, 0x69, 0x6e, 0x4a, 0x6f, 0x69, 0x6e, 0x52, 0x6f, - 0x6f, 0x6d, 0x52, 0x65, 0x73, 0x70, 0x12, 0x14, 0x0a, 0x05, 0x62, 0x4a, 0x6f, 0x69, 0x6e, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x05, 0x62, 0x4a, 0x6f, 0x69, 0x6e, 0x22, 0x7b, 0x0a, 0x1b, - 0x45, 0x6e, 0x74, 0x65, 0x72, 0x74, 0x61, 0x69, 0x6e, 0x4a, 0x6f, 0x69, 0x6e, 0x43, 0x72, 0x65, - 0x61, 0x74, 0x65, 0x52, 0x6f, 0x6f, 0x6d, 0x50, 0x75, 0x73, 0x68, 0x12, 0x16, 0x0a, 0x06, 0x72, - 0x6f, 0x6f, 0x6d, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x72, 0x6f, 0x6f, - 0x6d, 0x69, 0x64, 0x12, 0x21, 0x0a, 0x05, 0x75, 0x73, 0x65, 0x72, 0x31, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x0b, 0x2e, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x44, 0x61, 0x74, 0x61, 0x52, - 0x05, 0x75, 0x73, 0x65, 0x72, 0x31, 0x12, 0x21, 0x0a, 0x05, 0x75, 0x73, 0x65, 0x72, 0x32, 0x18, - 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0b, 0x2e, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x44, 0x61, - 0x74, 0x61, 0x52, 0x05, 0x75, 0x73, 0x65, 0x72, 0x32, 0x22, 0x31, 0x0a, 0x17, 0x45, 0x6e, 0x74, - 0x65, 0x72, 0x74, 0x61, 0x69, 0x6e, 0x4d, 0x61, 0x73, 0x74, 0x65, 0x72, 0x53, 0x74, 0x61, 0x72, - 0x74, 0x52, 0x65, 0x71, 0x12, 0x16, 0x0a, 0x06, 0x72, 0x6f, 0x6f, 0x6d, 0x69, 0x64, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x72, 0x6f, 0x6f, 0x6d, 0x69, 0x64, 0x22, 0x1a, 0x0a, 0x18, - 0x45, 0x6e, 0x74, 0x65, 0x72, 0x74, 0x61, 0x69, 0x6e, 0x4d, 0x61, 0x73, 0x74, 0x65, 0x72, 0x53, - 0x74, 0x61, 0x72, 0x74, 0x52, 0x65, 0x73, 0x70, 0x22, 0x32, 0x0a, 0x18, 0x45, 0x6e, 0x74, 0x65, - 0x72, 0x74, 0x61, 0x69, 0x6e, 0x44, 0x69, 0x73, 0x73, 0x6f, 0x6c, 0x76, 0x65, 0x52, 0x6f, 0x6f, - 0x6d, 0x52, 0x65, 0x71, 0x12, 0x16, 0x0a, 0x06, 0x72, 0x6f, 0x6f, 0x6d, 0x69, 0x64, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x72, 0x6f, 0x6f, 0x6d, 0x69, 0x64, 0x22, 0x1b, 0x0a, 0x19, - 0x45, 0x6e, 0x74, 0x65, 0x72, 0x74, 0x61, 0x69, 0x6e, 0x44, 0x69, 0x73, 0x73, 0x6f, 0x6c, 0x76, - 0x65, 0x52, 0x6f, 0x6f, 0x6d, 0x52, 0x65, 0x73, 0x70, 0x22, 0x39, 0x0a, 0x1f, 0x45, 0x6e, 0x74, - 0x65, 0x72, 0x74, 0x61, 0x69, 0x6e, 0x44, 0x69, 0x73, 0x73, 0x6f, 0x6c, 0x76, 0x65, 0x4d, 0x61, - 0x73, 0x74, 0x65, 0x72, 0x52, 0x6f, 0x6f, 0x6d, 0x50, 0x75, 0x73, 0x68, 0x12, 0x16, 0x0a, 0x06, + 0x74, 0x72, 0x79, 0x52, 0x04, 0x63, 0x61, 0x72, 0x64, 0x12, 0x35, 0x0a, 0x05, 0x73, 0x6b, 0x69, + 0x6c, 0x6c, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x45, 0x6e, 0x74, 0x65, 0x72, + 0x74, 0x61, 0x69, 0x6e, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x50, 0x75, 0x73, 0x68, 0x2e, 0x53, + 0x6b, 0x69, 0x6c, 0x6c, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x05, 0x73, 0x6b, 0x69, 0x6c, 0x6c, + 0x1a, 0x37, 0x0a, 0x09, 0x43, 0x61, 0x72, 0x64, 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, 0x1a, 0x38, 0x0a, 0x0a, 0x53, 0x6b, 0x69, + 0x6c, 0x6c, 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, 0x30, 0x0a, 0x16, 0x45, 0x6e, 0x74, 0x65, 0x72, 0x74, 0x61, 0x69, 0x6e, + 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x6f, 0x6f, 0x6d, 0x52, 0x65, 0x71, 0x12, 0x16, 0x0a, + 0x06, 0x69, 0x64, 0x63, 0x61, 0x72, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x69, + 0x64, 0x63, 0x61, 0x72, 0x64, 0x22, 0x4f, 0x0a, 0x17, 0x45, 0x6e, 0x74, 0x65, 0x72, 0x74, 0x61, + 0x69, 0x6e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x6f, 0x6f, 0x6d, 0x52, 0x65, 0x73, 0x70, + 0x12, 0x16, 0x0a, 0x06, 0x72, 0x6f, 0x6f, 0x6d, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x06, 0x72, 0x6f, 0x6f, 0x6d, 0x69, 0x64, 0x12, 0x1c, 0x0a, 0x09, 0x73, 0x65, 0x72, 0x76, + 0x65, 0x70, 0x61, 0x74, 0x68, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x73, 0x65, 0x72, + 0x76, 0x65, 0x70, 0x61, 0x74, 0x68, 0x22, 0x46, 0x0a, 0x14, 0x45, 0x6e, 0x74, 0x65, 0x72, 0x74, + 0x61, 0x69, 0x6e, 0x4a, 0x6f, 0x69, 0x6e, 0x52, 0x6f, 0x6f, 0x6d, 0x52, 0x65, 0x71, 0x12, 0x16, + 0x0a, 0x06, 0x72, 0x6f, 0x6f, 0x6d, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, + 0x72, 0x6f, 0x6f, 0x6d, 0x69, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x69, 0x64, 0x63, 0x61, 0x72, 0x64, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x69, 0x64, 0x63, 0x61, 0x72, 0x64, 0x22, 0x2d, + 0x0a, 0x15, 0x45, 0x6e, 0x74, 0x65, 0x72, 0x74, 0x61, 0x69, 0x6e, 0x4a, 0x6f, 0x69, 0x6e, 0x52, + 0x6f, 0x6f, 0x6d, 0x52, 0x65, 0x73, 0x70, 0x12, 0x14, 0x0a, 0x05, 0x62, 0x4a, 0x6f, 0x69, 0x6e, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x05, 0x62, 0x4a, 0x6f, 0x69, 0x6e, 0x22, 0x7b, 0x0a, + 0x1b, 0x45, 0x6e, 0x74, 0x65, 0x72, 0x74, 0x61, 0x69, 0x6e, 0x4a, 0x6f, 0x69, 0x6e, 0x43, 0x72, + 0x65, 0x61, 0x74, 0x65, 0x52, 0x6f, 0x6f, 0x6d, 0x50, 0x75, 0x73, 0x68, 0x12, 0x16, 0x0a, 0x06, 0x72, 0x6f, 0x6f, 0x6d, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x72, 0x6f, - 0x6f, 0x6d, 0x69, 0x64, 0x22, 0x4c, 0x0a, 0x16, 0x45, 0x6e, 0x74, 0x65, 0x72, 0x74, 0x61, 0x69, - 0x6e, 0x47, 0x61, 0x6d, 0x65, 0x52, 0x65, 0x61, 0x64, 0x79, 0x50, 0x75, 0x73, 0x68, 0x12, 0x18, - 0x0a, 0x07, 0x70, 0x31, 0x72, 0x65, 0x61, 0x64, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, - 0x07, 0x70, 0x31, 0x72, 0x65, 0x61, 0x64, 0x79, 0x12, 0x18, 0x0a, 0x07, 0x70, 0x32, 0x72, 0x65, - 0x61, 0x64, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x70, 0x32, 0x72, 0x65, 0x61, - 0x64, 0x79, 0x22, 0x2d, 0x0a, 0x15, 0x45, 0x6e, 0x74, 0x65, 0x72, 0x74, 0x61, 0x69, 0x6e, 0x42, - 0x6f, 0x78, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x52, 0x65, 0x71, 0x12, 0x14, 0x0a, 0x05, 0x69, - 0x6e, 0x64, 0x65, 0x78, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x69, 0x6e, 0x64, 0x65, - 0x78, 0x22, 0x57, 0x0a, 0x16, 0x45, 0x6e, 0x74, 0x65, 0x72, 0x74, 0x61, 0x69, 0x6e, 0x42, 0x6f, - 0x78, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x52, 0x65, 0x73, 0x70, 0x12, 0x1a, 0x0a, 0x03, 0x62, - 0x6f, 0x78, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x08, 0x2e, 0x42, 0x6f, 0x78, 0x44, 0x61, - 0x74, 0x61, 0x52, 0x03, 0x62, 0x6f, 0x78, 0x12, 0x21, 0x0a, 0x06, 0x72, 0x65, 0x77, 0x61, 0x72, - 0x64, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x09, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x41, 0x74, - 0x6e, 0x6f, 0x52, 0x06, 0x72, 0x65, 0x77, 0x61, 0x72, 0x64, 0x22, 0x32, 0x0a, 0x18, 0x45, 0x6e, - 0x74, 0x65, 0x72, 0x74, 0x61, 0x69, 0x6e, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x4f, - 0x76, 0x65, 0x72, 0x52, 0x65, 0x71, 0x12, 0x16, 0x0a, 0x06, 0x72, 0x6f, 0x6f, 0x6d, 0x69, 0x64, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x72, 0x6f, 0x6f, 0x6d, 0x69, 0x64, 0x22, 0x1b, - 0x0a, 0x19, 0x45, 0x6e, 0x74, 0x65, 0x72, 0x74, 0x61, 0x69, 0x6e, 0x4f, 0x70, 0x65, 0x72, 0x61, - 0x74, 0x6f, 0x72, 0x4f, 0x76, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x22, 0x42, 0x0a, 0x16, 0x45, - 0x6e, 0x74, 0x65, 0x72, 0x74, 0x61, 0x69, 0x6e, 0x53, 0x74, 0x61, 0x72, 0x54, 0x69, 0x6d, 0x65, - 0x72, 0x50, 0x75, 0x73, 0x68, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x05, 0x52, 0x04, 0x74, 0x69, 0x6d, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x70, 0x6f, 0x77, - 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x70, 0x6f, 0x77, 0x65, 0x72, 0x42, - 0x06, 0x5a, 0x04, 0x2e, 0x3b, 0x70, 0x62, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x6f, 0x6d, 0x69, 0x64, 0x12, 0x21, 0x0a, 0x05, 0x75, 0x73, 0x65, 0x72, 0x31, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x0b, 0x2e, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x44, 0x61, 0x74, 0x61, + 0x52, 0x05, 0x75, 0x73, 0x65, 0x72, 0x31, 0x12, 0x21, 0x0a, 0x05, 0x75, 0x73, 0x65, 0x72, 0x32, + 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0b, 0x2e, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x44, + 0x61, 0x74, 0x61, 0x52, 0x05, 0x75, 0x73, 0x65, 0x72, 0x32, 0x22, 0x31, 0x0a, 0x17, 0x45, 0x6e, + 0x74, 0x65, 0x72, 0x74, 0x61, 0x69, 0x6e, 0x4d, 0x61, 0x73, 0x74, 0x65, 0x72, 0x53, 0x74, 0x61, + 0x72, 0x74, 0x52, 0x65, 0x71, 0x12, 0x16, 0x0a, 0x06, 0x72, 0x6f, 0x6f, 0x6d, 0x69, 0x64, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x72, 0x6f, 0x6f, 0x6d, 0x69, 0x64, 0x22, 0x1a, 0x0a, + 0x18, 0x45, 0x6e, 0x74, 0x65, 0x72, 0x74, 0x61, 0x69, 0x6e, 0x4d, 0x61, 0x73, 0x74, 0x65, 0x72, + 0x53, 0x74, 0x61, 0x72, 0x74, 0x52, 0x65, 0x73, 0x70, 0x22, 0x32, 0x0a, 0x18, 0x45, 0x6e, 0x74, + 0x65, 0x72, 0x74, 0x61, 0x69, 0x6e, 0x44, 0x69, 0x73, 0x73, 0x6f, 0x6c, 0x76, 0x65, 0x52, 0x6f, + 0x6f, 0x6d, 0x52, 0x65, 0x71, 0x12, 0x16, 0x0a, 0x06, 0x72, 0x6f, 0x6f, 0x6d, 0x69, 0x64, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x72, 0x6f, 0x6f, 0x6d, 0x69, 0x64, 0x22, 0x1b, 0x0a, + 0x19, 0x45, 0x6e, 0x74, 0x65, 0x72, 0x74, 0x61, 0x69, 0x6e, 0x44, 0x69, 0x73, 0x73, 0x6f, 0x6c, + 0x76, 0x65, 0x52, 0x6f, 0x6f, 0x6d, 0x52, 0x65, 0x73, 0x70, 0x22, 0x39, 0x0a, 0x1f, 0x45, 0x6e, + 0x74, 0x65, 0x72, 0x74, 0x61, 0x69, 0x6e, 0x44, 0x69, 0x73, 0x73, 0x6f, 0x6c, 0x76, 0x65, 0x4d, + 0x61, 0x73, 0x74, 0x65, 0x72, 0x52, 0x6f, 0x6f, 0x6d, 0x50, 0x75, 0x73, 0x68, 0x12, 0x16, 0x0a, + 0x06, 0x72, 0x6f, 0x6f, 0x6d, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x72, + 0x6f, 0x6f, 0x6d, 0x69, 0x64, 0x22, 0x4c, 0x0a, 0x16, 0x45, 0x6e, 0x74, 0x65, 0x72, 0x74, 0x61, + 0x69, 0x6e, 0x47, 0x61, 0x6d, 0x65, 0x52, 0x65, 0x61, 0x64, 0x79, 0x50, 0x75, 0x73, 0x68, 0x12, + 0x18, 0x0a, 0x07, 0x70, 0x31, 0x72, 0x65, 0x61, 0x64, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, + 0x52, 0x07, 0x70, 0x31, 0x72, 0x65, 0x61, 0x64, 0x79, 0x12, 0x18, 0x0a, 0x07, 0x70, 0x32, 0x72, + 0x65, 0x61, 0x64, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x70, 0x32, 0x72, 0x65, + 0x61, 0x64, 0x79, 0x22, 0x2d, 0x0a, 0x15, 0x45, 0x6e, 0x74, 0x65, 0x72, 0x74, 0x61, 0x69, 0x6e, + 0x42, 0x6f, 0x78, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x52, 0x65, 0x71, 0x12, 0x14, 0x0a, 0x05, + 0x69, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x69, 0x6e, 0x64, + 0x65, 0x78, 0x22, 0x57, 0x0a, 0x16, 0x45, 0x6e, 0x74, 0x65, 0x72, 0x74, 0x61, 0x69, 0x6e, 0x42, + 0x6f, 0x78, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x52, 0x65, 0x73, 0x70, 0x12, 0x1a, 0x0a, 0x03, + 0x62, 0x6f, 0x78, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x08, 0x2e, 0x42, 0x6f, 0x78, 0x44, + 0x61, 0x74, 0x61, 0x52, 0x03, 0x62, 0x6f, 0x78, 0x12, 0x21, 0x0a, 0x06, 0x72, 0x65, 0x77, 0x61, + 0x72, 0x64, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x09, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x41, + 0x74, 0x6e, 0x6f, 0x52, 0x06, 0x72, 0x65, 0x77, 0x61, 0x72, 0x64, 0x22, 0x32, 0x0a, 0x18, 0x45, + 0x6e, 0x74, 0x65, 0x72, 0x74, 0x61, 0x69, 0x6e, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, + 0x4f, 0x76, 0x65, 0x72, 0x52, 0x65, 0x71, 0x12, 0x16, 0x0a, 0x06, 0x72, 0x6f, 0x6f, 0x6d, 0x69, + 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x72, 0x6f, 0x6f, 0x6d, 0x69, 0x64, 0x22, + 0x1b, 0x0a, 0x19, 0x45, 0x6e, 0x74, 0x65, 0x72, 0x74, 0x61, 0x69, 0x6e, 0x4f, 0x70, 0x65, 0x72, + 0x61, 0x74, 0x6f, 0x72, 0x4f, 0x76, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x22, 0x42, 0x0a, 0x16, + 0x45, 0x6e, 0x74, 0x65, 0x72, 0x74, 0x61, 0x69, 0x6e, 0x53, 0x74, 0x61, 0x72, 0x54, 0x69, 0x6d, + 0x65, 0x72, 0x50, 0x75, 0x73, 0x68, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x74, 0x69, 0x6d, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x70, 0x6f, + 0x77, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x70, 0x6f, 0x77, 0x65, 0x72, + 0x42, 0x06, 0x5a, 0x04, 0x2e, 0x3b, 0x70, 0x62, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( @@ -2360,7 +2375,7 @@ func file_entertain_entertain_msg_proto_rawDescGZIP() []byte { return file_entertain_entertain_msg_proto_rawDescData } -var file_entertain_entertain_msg_proto_msgTypes = make([]protoimpl.MessageInfo, 39) +var file_entertain_entertain_msg_proto_msgTypes = make([]protoimpl.MessageInfo, 40) var file_entertain_entertain_msg_proto_goTypes = []interface{}{ (*EntertainMatchReq)(nil), // 0: EntertainMatchReq (*EntertainMatchResp)(nil), // 1: EntertainMatchResp @@ -2401,44 +2416,46 @@ var file_entertain_entertain_msg_proto_goTypes = []interface{}{ (*EntertainOperatorOverResp)(nil), // 36: EntertainOperatorOverResp (*EntertainStarTimerPush)(nil), // 37: EntertainStarTimerPush nil, // 38: EntertainChangePush.CardEntry - (*PlayerData)(nil), // 39: PlayerData - (*MapData)(nil), // 40: MapData - (*UserAtno)(nil), // 41: UserAtno - (*BoxData)(nil), // 42: BoxData - (*DBXXLData)(nil), // 43: DBXXLData + nil, // 39: EntertainChangePush.SkillEntry + (*PlayerData)(nil), // 40: PlayerData + (*MapData)(nil), // 41: MapData + (*UserAtno)(nil), // 42: UserAtno + (*BoxData)(nil), // 43: BoxData + (*DBXXLData)(nil), // 44: DBXXLData } var file_entertain_entertain_msg_proto_depIdxs = []int32{ - 39, // 0: EntertainStartGamePush.user1:type_name -> PlayerData - 39, // 1: EntertainStartGamePush.user2:type_name -> PlayerData - 40, // 2: EntertainStartGamePush.mpadata:type_name -> MapData - 40, // 3: EntertainOperatorRstPush.mpadata:type_name -> MapData - 39, // 4: EntertainOperatorRstPush.user1:type_name -> PlayerData - 39, // 5: EntertainOperatorRstPush.user2:type_name -> PlayerData - 39, // 6: EntertainGameOverPush.user1:type_name -> PlayerData - 39, // 7: EntertainGameOverPush.user2:type_name -> PlayerData - 40, // 8: EntertainGameOverPush.mpadata:type_name -> MapData - 41, // 9: EntertainGameOverPush.reward:type_name -> UserAtno - 42, // 10: EntertainGameOverPush.box:type_name -> BoxData - 39, // 11: EntertainEnterRoomPush.user1:type_name -> PlayerData - 39, // 12: EntertainEnterRoomPush.user2:type_name -> PlayerData - 40, // 13: EntertainReconnectResp.mpadata:type_name -> MapData - 39, // 14: EntertainReconnectResp.user1:type_name -> PlayerData - 39, // 15: EntertainReconnectResp.user2:type_name -> PlayerData - 40, // 16: EntertainRefreshPlatResp.mpadata:type_name -> MapData - 40, // 17: EntertainRefreshPush.mpadata:type_name -> MapData - 43, // 18: EntertainGetListResp.data:type_name -> DBXXLData - 43, // 19: EntertainRewardResp.data:type_name -> DBXXLData - 41, // 20: EntertainRewardResp.reward:type_name -> UserAtno + 40, // 0: EntertainStartGamePush.user1:type_name -> PlayerData + 40, // 1: EntertainStartGamePush.user2:type_name -> PlayerData + 41, // 2: EntertainStartGamePush.mpadata:type_name -> MapData + 41, // 3: EntertainOperatorRstPush.mpadata:type_name -> MapData + 40, // 4: EntertainOperatorRstPush.user1:type_name -> PlayerData + 40, // 5: EntertainOperatorRstPush.user2:type_name -> PlayerData + 40, // 6: EntertainGameOverPush.user1:type_name -> PlayerData + 40, // 7: EntertainGameOverPush.user2:type_name -> PlayerData + 41, // 8: EntertainGameOverPush.mpadata:type_name -> MapData + 42, // 9: EntertainGameOverPush.reward:type_name -> UserAtno + 43, // 10: EntertainGameOverPush.box:type_name -> BoxData + 40, // 11: EntertainEnterRoomPush.user1:type_name -> PlayerData + 40, // 12: EntertainEnterRoomPush.user2:type_name -> PlayerData + 41, // 13: EntertainReconnectResp.mpadata:type_name -> MapData + 40, // 14: EntertainReconnectResp.user1:type_name -> PlayerData + 40, // 15: EntertainReconnectResp.user2:type_name -> PlayerData + 41, // 16: EntertainRefreshPlatResp.mpadata:type_name -> MapData + 41, // 17: EntertainRefreshPush.mpadata:type_name -> MapData + 44, // 18: EntertainGetListResp.data:type_name -> DBXXLData + 44, // 19: EntertainRewardResp.data:type_name -> DBXXLData + 42, // 20: EntertainRewardResp.reward:type_name -> UserAtno 38, // 21: EntertainChangePush.card:type_name -> EntertainChangePush.CardEntry - 39, // 22: EntertainJoinCreateRoomPush.user1:type_name -> PlayerData - 39, // 23: EntertainJoinCreateRoomPush.user2:type_name -> PlayerData - 42, // 24: EntertainBoxRewardResp.box:type_name -> BoxData - 41, // 25: EntertainBoxRewardResp.reward:type_name -> UserAtno - 26, // [26:26] is the sub-list for method output_type - 26, // [26:26] is the sub-list for method input_type - 26, // [26:26] is the sub-list for extension type_name - 26, // [26:26] is the sub-list for extension extendee - 0, // [0:26] is the sub-list for field type_name + 39, // 22: EntertainChangePush.skill:type_name -> EntertainChangePush.SkillEntry + 40, // 23: EntertainJoinCreateRoomPush.user1:type_name -> PlayerData + 40, // 24: EntertainJoinCreateRoomPush.user2:type_name -> PlayerData + 43, // 25: EntertainBoxRewardResp.box:type_name -> BoxData + 42, // 26: EntertainBoxRewardResp.reward:type_name -> UserAtno + 27, // [27:27] is the sub-list for method output_type + 27, // [27:27] is the sub-list for method input_type + 27, // [27:27] is the sub-list for extension type_name + 27, // [27:27] is the sub-list for extension extendee + 0, // [0:27] is the sub-list for field type_name } func init() { file_entertain_entertain_msg_proto_init() } @@ -2912,7 +2929,7 @@ func file_entertain_entertain_msg_proto_init() { GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: file_entertain_entertain_msg_proto_rawDesc, NumEnums: 0, - NumMessages: 39, + NumMessages: 40, NumExtensions: 0, NumServices: 0, }, From fbb089314a6c9306860bc8b52ba28b16463ca37c Mon Sep 17 00:00:00 2001 From: meixiongfeng <766881921@qq.com> Date: Fri, 15 Dec 2023 18:49:43 +0800 Subject: [PATCH 02/16] =?UTF-8?q?=E7=8E=A9=E5=AE=B6=E6=8A=80=E8=83=BD?= =?UTF-8?q?=E5=B8=A6=E5=85=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- modules/entertainment/api_match.go | 56 ++-- modules/entertainment/configure.go | 16 ++ modules/entertainment/match.go | 6 + pb/entertain_db.pb.go | 121 +++++---- pb/entertain_msg.pb.go | 408 +++++++++++++++-------------- 5 files changed, 334 insertions(+), 273 deletions(-) diff --git a/modules/entertainment/api_match.go b/modules/entertainment/api_match.go index 1a1b24df0..dc906ff2a 100644 --- a/modules/entertainment/api_match.go +++ b/modules/entertainment/api_match.go @@ -8,7 +8,7 @@ import ( //参数校验 func (this *apiComp) MatchCheck(session comm.IUserSession, req *pb.EntertainMatchReq) (errdata *pb.ErrorData) { - if req.Idcard == "" { + if req.Idcard == "" || len(req.Skillcard) != 2 { errdata = &pb.ErrorData{ Code: pb.ErrorCode_ReqParameterError, Title: pb.ErrorCode_ReqParameterError.ToString(), @@ -23,6 +23,7 @@ func (this *apiComp) Match(session comm.IUserSession, req *pb.EntertainMatchReq) user *pb.DBUser err error conf *cfg.GameConsumeHeroData + list *pb.DBXXLData ) user, err = this.module.ModuleUser.GetUser(session.GetUserId()) if err != nil { @@ -36,34 +37,53 @@ func (this *apiComp) Match(session comm.IUserSession, req *pb.EntertainMatchReq) } return } - if conf.Type != 1 { // 校验数量够不够 - if list, err := this.module.model.getEntertainmList(session.GetUserId()); err != nil { + if list, err = this.module.model.getEntertainmList(session.GetUserId()); err != nil { + errdata = &pb.ErrorData{ + Code: pb.ErrorCode_DBError, + Title: pb.ErrorCode_DBError.ToString(), + Message: err.Error(), + } + return + } + for _, v := range req.Skillcard { + if _, err = this.module.configure.GetGamePlaySkill(v); err != nil { errdata = &pb.ErrorData{ - Code: pb.ErrorCode_DBError, - Title: pb.ErrorCode_DBError.ToString(), + Code: pb.ErrorCode_ConfigNoFound, + Title: pb.ErrorCode_ConfigNoFound.ToString(), Message: err.Error(), } return - } else { - if list.Card[req.Idcard] <= 0 { // 需要购买 - if errdata = this.module.ConsumeRes(session, conf.Consume, true); errdata != nil { - return - } - go this.module.AsynHandleSession(session.Clone(), func(session comm.IUserSession) { - this.module.WriteUserLog(session.GetUserId(), req, comm.GMResDelType, "EntertainMatchReq", conf.Consume) - }) - list.Card[req.Idcard] += 1 - this.module.model.modifyEntertainmList(session.GetUserId(), map[string]interface{}{ - "card": list.Card, - }) - } } + if list.Skill[v] <= 0 { // 道具数量不足 + errdata = &pb.ErrorData{ + Code: pb.ErrorCode_ItemsNoEnough, + Title: pb.ErrorCode_ItemsNoEnough.ToString(), + } + return + } + } + if conf.Type != 1 { // 校验数量够不够 + + if list.Card[req.Idcard] <= 0 { // 需要购买 + if errdata = this.module.ConsumeRes(session, conf.Consume, true); errdata != nil { + return + } + go this.module.AsynHandleSession(session.Clone(), func(session comm.IUserSession) { + this.module.WriteUserLog(session.GetUserId(), req, comm.GMResDelType, "EntertainMatchReq", conf.Consume) + }) + list.Card[req.Idcard] += 1 + this.module.model.modifyEntertainmList(session.GetUserId(), map[string]interface{}{ + "card": list.Card, + }) + } + } this.module.match.MatchReq(&pb.DBXXLMatch{ Userinfo: comm.GetUserBaseInfo(user), Cardid: req.Idcard, Consumeexp: user.Consumeexp, + Skill: req.Skillcard, }) session.SendMsg(string(this.module.GetType()), "match", &pb.EntertainMatchResp{ diff --git a/modules/entertainment/configure.go b/modules/entertainment/configure.go index c3e06537c..f8fba4406 100644 --- a/modules/entertainment/configure.go +++ b/modules/entertainment/configure.go @@ -18,6 +18,7 @@ const ( game_consumeIntegral = "game_consumeintegral.json" game_playingmethod = "game_playingmethod.json" consume_box = "game_consumebox.json" + game_playerskill = "game_playerskill.json" ) // /配置管理组件 @@ -39,6 +40,7 @@ func (this *configureComp) Init(service core.IService, module core.IModule, comp game_consumeIntegral: cfg.NewGameConsumeIntegral, game_playingmethod: cfg.NewGamePlayingMethod, consume_box: cfg.NewGameConsumeBox, + game_playerskill: cfg.NewGamePlayerSkill, }) configure.RegisterConfigure(game_block, cfg.NewGameBlock, this.LoadGameBlock) @@ -272,3 +274,17 @@ func (this *configureComp) GetGameNormalElem() (rd int32) { rd = comm.GetRandW(szWeight) + 1 return } +func (this *configureComp) GetGamePlaySkill(skillid int32) (conf *cfg.GamePlayerSkillData, err error) { + var ( + v interface{} + ) + if v, err = this.GetConfigure(game_playerskill); err == nil { + if configure, ok := v.(*cfg.GamePlayerSkill); ok { + if conf = configure.Get(skillid); conf != nil { + return + } + } + } + err = comm.NewNotFoundConfErr(moduleName, game_playerskill, skillid) + return +} diff --git a/modules/entertainment/match.go b/modules/entertainment/match.go index 9f940fa0e..4ecd1a0f8 100644 --- a/modules/entertainment/match.go +++ b/modules/entertainment/match.go @@ -68,17 +68,23 @@ func (this *matchComp) MatchNotic(players map[string]interface{}) (err error) { playerSlice = append(playerSlice, v.(*pb.DBXXLMatch)) } for pos, v := range playerSlice { + t := make(map[int32]int32, 0) + for _, v := range v.Skill { + t[v] = 1 + } if pos == 0 { p1 = &pb.PlayerData{ Userinfo: v.Userinfo, Cardid: v.Cardid, Consumeexp: v.Consumeexp, + Skill: t, } } else if pos == 1 { p2 = &pb.PlayerData{ Userinfo: v.Userinfo, Cardid: v.Cardid, Consumeexp: v.Consumeexp, + Skill: t, } } else { break diff --git a/pb/entertain_db.pb.go b/pb/entertain_db.pb.go index f7cc79e06..eb5772bc1 100644 --- a/pb/entertain_db.pb.go +++ b/pb/entertain_db.pb.go @@ -276,6 +276,7 @@ type DBXXLMatch struct { Userinfo *BaseUserInfo `protobuf:"bytes,1,opt,name=userinfo,proto3" json:"userinfo"` Cardid string `protobuf:"bytes,2,opt,name=cardid,proto3" json:"cardid"` // 选择的卡片ID Consumeexp int32 `protobuf:"varint,3,opt,name=consumeexp,proto3" json:"consumeexp"` // 消消乐积分 + Skill []int32 `protobuf:"varint,4,rep,packed,name=skill,proto3" json:"skill"` // } func (x *DBXXLMatch) Reset() { @@ -331,6 +332,13 @@ func (x *DBXXLMatch) GetConsumeexp() int32 { return 0 } +func (x *DBXXLMatch) GetSkill() []int32 { + if x != nil { + return x.Skill + } + return nil +} + type BoxData struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -649,63 +657,64 @@ var file_entertain_entertain_db_proto_rawDesc = []byte{ 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, - 0x6f, 0x0a, 0x0a, 0x44, 0x42, 0x58, 0x58, 0x4c, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x12, 0x29, 0x0a, - 0x08, 0x75, 0x73, 0x65, 0x72, 0x69, 0x6e, 0x66, 0x6f, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x0d, 0x2e, 0x42, 0x61, 0x73, 0x65, 0x55, 0x73, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x08, - 0x75, 0x73, 0x65, 0x72, 0x69, 0x6e, 0x66, 0x6f, 0x12, 0x16, 0x0a, 0x06, 0x63, 0x61, 0x72, 0x64, - 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x63, 0x61, 0x72, 0x64, 0x69, 0x64, - 0x12, 0x1e, 0x0a, 0x0a, 0x63, 0x6f, 0x6e, 0x73, 0x75, 0x6d, 0x65, 0x65, 0x78, 0x70, 0x18, 0x03, - 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x63, 0x6f, 0x6e, 0x73, 0x75, 0x6d, 0x65, 0x65, 0x78, 0x70, - 0x22, 0x3b, 0x0a, 0x07, 0x42, 0x6f, 0x78, 0x44, 0x61, 0x74, 0x61, 0x12, 0x14, 0x0a, 0x05, 0x62, - 0x6f, 0x78, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x62, 0x6f, 0x78, 0x69, - 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x6f, 0x70, 0x65, 0x6e, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x03, 0x52, 0x08, 0x6f, 0x70, 0x65, 0x6e, 0x74, 0x69, 0x6d, 0x65, 0x22, 0xba, 0x04, - 0x0a, 0x09, 0x44, 0x42, 0x58, 0x58, 0x4c, 0x44, 0x61, 0x74, 0x61, 0x12, 0x0e, 0x0a, 0x02, 0x69, - 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x10, 0x0a, 0x03, 0x75, - 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x75, 0x69, 0x64, 0x12, 0x2e, 0x0a, - 0x06, 0x72, 0x65, 0x77, 0x61, 0x72, 0x64, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x16, 0x2e, - 0x44, 0x42, 0x58, 0x58, 0x4c, 0x44, 0x61, 0x74, 0x61, 0x2e, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, - 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x06, 0x72, 0x65, 0x77, 0x61, 0x72, 0x64, 0x12, 0x28, 0x0a, - 0x04, 0x63, 0x61, 0x72, 0x64, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x44, 0x42, - 0x58, 0x58, 0x4c, 0x44, 0x61, 0x74, 0x61, 0x2e, 0x43, 0x61, 0x72, 0x64, 0x45, 0x6e, 0x74, 0x72, - 0x79, 0x52, 0x04, 0x63, 0x61, 0x72, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x72, 0x74, 0x69, 0x6d, 0x65, - 0x18, 0x05, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x72, 0x74, 0x69, 0x6d, 0x65, 0x12, 0x1a, 0x0a, - 0x08, 0x70, 0x6c, 0x61, 0x79, 0x74, 0x79, 0x70, 0x65, 0x18, 0x06, 0x20, 0x03, 0x28, 0x05, 0x52, - 0x08, 0x70, 0x6c, 0x61, 0x79, 0x74, 0x79, 0x70, 0x65, 0x12, 0x1a, 0x0a, 0x03, 0x62, 0x6f, 0x78, - 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x08, 0x2e, 0x42, 0x6f, 0x78, 0x44, 0x61, 0x74, 0x61, - 0x52, 0x03, 0x62, 0x6f, 0x78, 0x12, 0x16, 0x0a, 0x06, 0x72, 0x6f, 0x6f, 0x6d, 0x69, 0x64, 0x18, - 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x72, 0x6f, 0x6f, 0x6d, 0x69, 0x64, 0x12, 0x20, 0x0a, - 0x0b, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x50, 0x61, 0x74, 0x68, 0x18, 0x09, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x0b, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x50, 0x61, 0x74, 0x68, 0x12, - 0x14, 0x0a, 0x05, 0x65, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, - 0x65, 0x74, 0x69, 0x6d, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x74, 0x6f, 0x75, 0x78, 0x69, 0x61, 0x6e, - 0x67, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x74, 0x6f, 0x75, 0x78, 0x69, 0x61, 0x6e, - 0x67, 0x12, 0x2b, 0x0a, 0x05, 0x73, 0x6b, 0x69, 0x6c, 0x6c, 0x18, 0x0c, 0x20, 0x03, 0x28, 0x0b, - 0x32, 0x15, 0x2e, 0x44, 0x42, 0x58, 0x58, 0x4c, 0x44, 0x61, 0x74, 0x61, 0x2e, 0x53, 0x6b, 0x69, - 0x6c, 0x6c, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x05, 0x73, 0x6b, 0x69, 0x6c, 0x6c, 0x12, 0x1c, - 0x0a, 0x09, 0x6c, 0x69, 0x61, 0x6e, 0x73, 0x68, 0x65, 0x6e, 0x67, 0x18, 0x0d, 0x20, 0x01, 0x28, - 0x05, 0x52, 0x09, 0x6c, 0x69, 0x61, 0x6e, 0x73, 0x68, 0x65, 0x6e, 0x67, 0x1a, 0x39, 0x0a, 0x0b, - 0x52, 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, + 0x85, 0x01, 0x0a, 0x0a, 0x44, 0x42, 0x58, 0x58, 0x4c, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x12, 0x29, + 0x0a, 0x08, 0x75, 0x73, 0x65, 0x72, 0x69, 0x6e, 0x66, 0x6f, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x0d, 0x2e, 0x42, 0x61, 0x73, 0x65, 0x55, 0x73, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x52, + 0x08, 0x75, 0x73, 0x65, 0x72, 0x69, 0x6e, 0x66, 0x6f, 0x12, 0x16, 0x0a, 0x06, 0x63, 0x61, 0x72, + 0x64, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x63, 0x61, 0x72, 0x64, 0x69, + 0x64, 0x12, 0x1e, 0x0a, 0x0a, 0x63, 0x6f, 0x6e, 0x73, 0x75, 0x6d, 0x65, 0x65, 0x78, 0x70, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x63, 0x6f, 0x6e, 0x73, 0x75, 0x6d, 0x65, 0x65, 0x78, + 0x70, 0x12, 0x14, 0x0a, 0x05, 0x73, 0x6b, 0x69, 0x6c, 0x6c, 0x18, 0x04, 0x20, 0x03, 0x28, 0x05, + 0x52, 0x05, 0x73, 0x6b, 0x69, 0x6c, 0x6c, 0x22, 0x3b, 0x0a, 0x07, 0x42, 0x6f, 0x78, 0x44, 0x61, + 0x74, 0x61, 0x12, 0x14, 0x0a, 0x05, 0x62, 0x6f, 0x78, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x05, 0x52, 0x05, 0x62, 0x6f, 0x78, 0x69, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x6f, 0x70, 0x65, 0x6e, + 0x74, 0x69, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x08, 0x6f, 0x70, 0x65, 0x6e, + 0x74, 0x69, 0x6d, 0x65, 0x22, 0xba, 0x04, 0x0a, 0x09, 0x44, 0x42, 0x58, 0x58, 0x4c, 0x44, 0x61, + 0x74, 0x61, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, + 0x69, 0x64, 0x12, 0x10, 0x0a, 0x03, 0x75, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x03, 0x75, 0x69, 0x64, 0x12, 0x2e, 0x0a, 0x06, 0x72, 0x65, 0x77, 0x61, 0x72, 0x64, 0x18, 0x03, + 0x20, 0x03, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x44, 0x42, 0x58, 0x58, 0x4c, 0x44, 0x61, 0x74, 0x61, + 0x2e, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x06, 0x72, 0x65, + 0x77, 0x61, 0x72, 0x64, 0x12, 0x28, 0x0a, 0x04, 0x63, 0x61, 0x72, 0x64, 0x18, 0x04, 0x20, 0x03, + 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x44, 0x42, 0x58, 0x58, 0x4c, 0x44, 0x61, 0x74, 0x61, 0x2e, 0x43, + 0x61, 0x72, 0x64, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x04, 0x63, 0x61, 0x72, 0x64, 0x12, 0x14, + 0x0a, 0x05, 0x72, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x72, + 0x74, 0x69, 0x6d, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x6c, 0x61, 0x79, 0x74, 0x79, 0x70, 0x65, + 0x18, 0x06, 0x20, 0x03, 0x28, 0x05, 0x52, 0x08, 0x70, 0x6c, 0x61, 0x79, 0x74, 0x79, 0x70, 0x65, + 0x12, 0x1a, 0x0a, 0x03, 0x62, 0x6f, 0x78, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x08, 0x2e, + 0x42, 0x6f, 0x78, 0x44, 0x61, 0x74, 0x61, 0x52, 0x03, 0x62, 0x6f, 0x78, 0x12, 0x16, 0x0a, 0x06, + 0x72, 0x6f, 0x6f, 0x6d, 0x69, 0x64, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x72, 0x6f, + 0x6f, 0x6d, 0x69, 0x64, 0x12, 0x20, 0x0a, 0x0b, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x50, + 0x61, 0x74, 0x68, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x73, 0x65, 0x72, 0x76, 0x69, + 0x63, 0x65, 0x50, 0x61, 0x74, 0x68, 0x12, 0x14, 0x0a, 0x05, 0x65, 0x74, 0x69, 0x6d, 0x65, 0x18, + 0x0a, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x65, 0x74, 0x69, 0x6d, 0x65, 0x12, 0x1a, 0x0a, 0x08, + 0x74, 0x6f, 0x75, 0x78, 0x69, 0x61, 0x6e, 0x67, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, + 0x74, 0x6f, 0x75, 0x78, 0x69, 0x61, 0x6e, 0x67, 0x12, 0x2b, 0x0a, 0x05, 0x73, 0x6b, 0x69, 0x6c, + 0x6c, 0x18, 0x0c, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x44, 0x42, 0x58, 0x58, 0x4c, 0x44, + 0x61, 0x74, 0x61, 0x2e, 0x53, 0x6b, 0x69, 0x6c, 0x6c, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x05, + 0x73, 0x6b, 0x69, 0x6c, 0x6c, 0x12, 0x1c, 0x0a, 0x09, 0x6c, 0x69, 0x61, 0x6e, 0x73, 0x68, 0x65, + 0x6e, 0x67, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x6c, 0x69, 0x61, 0x6e, 0x73, 0x68, + 0x65, 0x6e, 0x67, 0x1a, 0x39, 0x0a, 0x0b, 0x52, 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, 0x05, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x37, + 0x0a, 0x09, 0x43, 0x61, 0x72, 0x64, 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, 0x1a, 0x37, 0x0a, 0x09, 0x43, 0x61, 0x72, 0x64, 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, - 0x1a, 0x38, 0x0a, 0x0a, 0x53, 0x6b, 0x69, 0x6c, 0x6c, 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, 0x84, 0x01, 0x0a, 0x0a, 0x44, - 0x42, 0x58, 0x78, 0x6c, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x12, 0x1a, 0x0a, 0x08, 0x52, 0x6f, 0x6f, - 0x6d, 0x54, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x52, 0x6f, 0x6f, - 0x6d, 0x54, 0x79, 0x70, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x63, 0x61, 0x72, 0x64, 0x31, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x63, 0x61, 0x72, 0x64, 0x31, 0x12, 0x14, 0x0a, 0x05, 0x63, - 0x61, 0x72, 0x64, 0x32, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x63, 0x61, 0x72, 0x64, - 0x32, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x6b, 0x69, 0x6c, 0x6c, 0x31, 0x18, 0x04, 0x20, 0x03, 0x28, - 0x05, 0x52, 0x06, 0x73, 0x6b, 0x69, 0x6c, 0x6c, 0x31, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x6b, 0x69, - 0x6c, 0x6c, 0x32, 0x18, 0x05, 0x20, 0x03, 0x28, 0x05, 0x52, 0x06, 0x73, 0x6b, 0x69, 0x6c, 0x6c, - 0x32, 0x42, 0x06, 0x5a, 0x04, 0x2e, 0x3b, 0x70, 0x62, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, - 0x33, + 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x38, 0x0a, 0x0a, 0x53, 0x6b, 0x69, 0x6c, 0x6c, + 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, 0x84, 0x01, 0x0a, 0x0a, 0x44, 0x42, 0x58, 0x78, 0x6c, 0x52, 0x75, 0x6c, 0x65, 0x73, + 0x12, 0x1a, 0x0a, 0x08, 0x52, 0x6f, 0x6f, 0x6d, 0x54, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x05, 0x52, 0x08, 0x52, 0x6f, 0x6f, 0x6d, 0x54, 0x79, 0x70, 0x65, 0x12, 0x14, 0x0a, 0x05, + 0x63, 0x61, 0x72, 0x64, 0x31, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x63, 0x61, 0x72, + 0x64, 0x31, 0x12, 0x14, 0x0a, 0x05, 0x63, 0x61, 0x72, 0x64, 0x32, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x05, 0x63, 0x61, 0x72, 0x64, 0x32, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x6b, 0x69, 0x6c, + 0x6c, 0x31, 0x18, 0x04, 0x20, 0x03, 0x28, 0x05, 0x52, 0x06, 0x73, 0x6b, 0x69, 0x6c, 0x6c, 0x31, + 0x12, 0x16, 0x0a, 0x06, 0x73, 0x6b, 0x69, 0x6c, 0x6c, 0x32, 0x18, 0x05, 0x20, 0x03, 0x28, 0x05, + 0x52, 0x06, 0x73, 0x6b, 0x69, 0x6c, 0x6c, 0x32, 0x42, 0x06, 0x5a, 0x04, 0x2e, 0x3b, 0x70, 0x62, + 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( diff --git a/pb/entertain_msg.pb.go b/pb/entertain_msg.pb.go index e6bc785f9..5e98042f6 100644 --- a/pb/entertain_msg.pb.go +++ b/pb/entertain_msg.pb.go @@ -26,7 +26,8 @@ type EntertainMatchReq struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Idcard string `protobuf:"bytes,1,opt,name=idcard,proto3" json:"idcard"` //出战的英雄卡 + Idcard string `protobuf:"bytes,1,opt,name=idcard,proto3" json:"idcard"` //出战的英雄卡 + Skillcard []int32 `protobuf:"varint,2,rep,packed,name=skillcard,proto3" json:"skillcard"` } func (x *EntertainMatchReq) Reset() { @@ -68,6 +69,13 @@ func (x *EntertainMatchReq) GetIdcard() string { return "" } +func (x *EntertainMatchReq) GetSkillcard() []int32 { + if x != nil { + return x.Skillcard + } + return nil +} + // 匹配结果 type EntertainMatchResp struct { state protoimpl.MessageState @@ -2155,212 +2163,214 @@ var file_entertain_entertain_msg_proto_rawDesc = []byte{ 0x72, 0x74, 0x61, 0x69, 0x6e, 0x5f, 0x6d, 0x73, 0x67, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1c, 0x65, 0x6e, 0x74, 0x65, 0x72, 0x74, 0x61, 0x69, 0x6e, 0x2f, 0x65, 0x6e, 0x74, 0x65, 0x72, 0x74, 0x61, 0x69, 0x6e, 0x5f, 0x64, 0x62, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x0a, 0x63, - 0x6f, 0x6d, 0x6d, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x2b, 0x0a, 0x11, 0x45, 0x6e, 0x74, + 0x6f, 0x6d, 0x6d, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x49, 0x0a, 0x11, 0x45, 0x6e, 0x74, 0x65, 0x72, 0x74, 0x61, 0x69, 0x6e, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x52, 0x65, 0x71, 0x12, 0x16, 0x0a, 0x06, 0x69, 0x64, 0x63, 0x61, 0x72, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, - 0x69, 0x64, 0x63, 0x61, 0x72, 0x64, 0x22, 0x2a, 0x0a, 0x12, 0x45, 0x6e, 0x74, 0x65, 0x72, 0x74, - 0x61, 0x69, 0x6e, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x52, 0x65, 0x73, 0x70, 0x12, 0x14, 0x0a, 0x05, - 0x6d, 0x61, 0x79, 0x63, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x05, 0x6d, 0x61, 0x79, - 0x63, 0x68, 0x22, 0x19, 0x0a, 0x17, 0x45, 0x6e, 0x74, 0x65, 0x72, 0x74, 0x61, 0x69, 0x6e, 0x43, - 0x61, 0x6e, 0x63, 0x65, 0x6c, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x52, 0x65, 0x71, 0x22, 0x30, 0x0a, - 0x18, 0x45, 0x6e, 0x74, 0x65, 0x72, 0x74, 0x61, 0x69, 0x6e, 0x43, 0x61, 0x6e, 0x63, 0x65, 0x6c, - 0x4d, 0x61, 0x74, 0x63, 0x68, 0x52, 0x65, 0x73, 0x70, 0x12, 0x14, 0x0a, 0x05, 0x6d, 0x61, 0x79, - 0x63, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x05, 0x6d, 0x61, 0x79, 0x63, 0x68, 0x22, - 0x2b, 0x0a, 0x11, 0x45, 0x6e, 0x74, 0x65, 0x72, 0x74, 0x61, 0x69, 0x6e, 0x52, 0x65, 0x61, 0x64, - 0x79, 0x52, 0x65, 0x71, 0x12, 0x16, 0x0a, 0x06, 0x72, 0x6f, 0x6f, 0x6d, 0x69, 0x64, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x72, 0x6f, 0x6f, 0x6d, 0x69, 0x64, 0x22, 0x2a, 0x0a, 0x12, - 0x45, 0x6e, 0x74, 0x65, 0x72, 0x74, 0x61, 0x69, 0x6e, 0x52, 0x65, 0x61, 0x64, 0x79, 0x52, 0x65, - 0x73, 0x70, 0x12, 0x14, 0x0a, 0x05, 0x72, 0x65, 0x61, 0x64, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x08, 0x52, 0x05, 0x72, 0x65, 0x61, 0x64, 0x79, 0x22, 0xe2, 0x01, 0x0a, 0x16, 0x45, 0x6e, 0x74, - 0x65, 0x72, 0x74, 0x61, 0x69, 0x6e, 0x53, 0x74, 0x61, 0x72, 0x74, 0x47, 0x61, 0x6d, 0x65, 0x50, - 0x75, 0x73, 0x68, 0x12, 0x21, 0x0a, 0x05, 0x75, 0x73, 0x65, 0x72, 0x31, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x0b, 0x2e, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x44, 0x61, 0x74, 0x61, 0x52, - 0x05, 0x75, 0x73, 0x65, 0x72, 0x31, 0x12, 0x21, 0x0a, 0x05, 0x75, 0x73, 0x65, 0x72, 0x32, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0b, 0x2e, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x44, 0x61, - 0x74, 0x61, 0x52, 0x05, 0x75, 0x73, 0x65, 0x72, 0x32, 0x12, 0x22, 0x0a, 0x07, 0x6d, 0x70, 0x61, - 0x64, 0x61, 0x74, 0x61, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x08, 0x2e, 0x4d, 0x61, 0x70, - 0x44, 0x61, 0x74, 0x61, 0x52, 0x07, 0x6d, 0x70, 0x61, 0x64, 0x61, 0x74, 0x61, 0x12, 0x14, 0x0a, - 0x05, 0x70, 0x6f, 0x77, 0x65, 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x70, 0x6f, - 0x77, 0x65, 0x72, 0x12, 0x14, 0x0a, 0x05, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x18, 0x05, 0x20, 0x01, - 0x28, 0x05, 0x52, 0x05, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x72, 0x6f, 0x6f, - 0x6d, 0x69, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x72, 0x6f, 0x6f, 0x6d, 0x69, - 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x6c, 0x61, 0x79, 0x74, 0x79, 0x70, 0x65, 0x18, 0x07, 0x20, - 0x01, 0x28, 0x05, 0x52, 0x08, 0x70, 0x6c, 0x61, 0x79, 0x74, 0x79, 0x70, 0x65, 0x22, 0x76, 0x0a, - 0x14, 0x45, 0x6e, 0x74, 0x65, 0x72, 0x74, 0x61, 0x69, 0x6e, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, - 0x6f, 0x72, 0x52, 0x65, 0x71, 0x12, 0x16, 0x0a, 0x06, 0x72, 0x6f, 0x6f, 0x6d, 0x69, 0x64, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x72, 0x6f, 0x6f, 0x6d, 0x69, 0x64, 0x12, 0x14, 0x0a, - 0x05, 0x69, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x69, 0x74, - 0x79, 0x70, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x63, 0x75, 0x72, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, - 0x28, 0x05, 0x52, 0x05, 0x63, 0x75, 0x72, 0x69, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x74, 0x61, 0x72, - 0x67, 0x65, 0x74, 0x69, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x74, 0x61, 0x72, - 0x67, 0x65, 0x74, 0x69, 0x64, 0x22, 0x31, 0x0a, 0x15, 0x45, 0x6e, 0x74, 0x65, 0x72, 0x74, 0x61, - 0x69, 0x6e, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x52, 0x65, 0x73, 0x70, 0x12, 0x18, - 0x0a, 0x07, 0x73, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, - 0x07, 0x73, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x22, 0xaa, 0x02, 0x0a, 0x18, 0x45, 0x6e, 0x74, - 0x65, 0x72, 0x74, 0x61, 0x69, 0x6e, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x52, 0x73, - 0x74, 0x50, 0x75, 0x73, 0x68, 0x12, 0x22, 0x0a, 0x07, 0x6d, 0x70, 0x61, 0x64, 0x61, 0x74, 0x61, - 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x08, 0x2e, 0x4d, 0x61, 0x70, 0x44, 0x61, 0x74, 0x61, - 0x52, 0x07, 0x6d, 0x70, 0x61, 0x64, 0x61, 0x74, 0x61, 0x12, 0x14, 0x0a, 0x05, 0x70, 0x6f, 0x77, - 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x70, 0x6f, 0x77, 0x65, 0x72, 0x12, - 0x1a, 0x0a, 0x08, 0x63, 0x75, 0x72, 0x70, 0x6f, 0x77, 0x65, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x08, 0x63, 0x75, 0x72, 0x70, 0x6f, 0x77, 0x65, 0x72, 0x12, 0x14, 0x0a, 0x05, 0x73, - 0x63, 0x6f, 0x72, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x73, 0x63, 0x6f, 0x72, - 0x65, 0x12, 0x14, 0x0a, 0x05, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, - 0x52, 0x05, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x12, 0x21, 0x0a, 0x05, 0x75, 0x73, 0x65, 0x72, 0x31, - 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0b, 0x2e, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x44, - 0x61, 0x74, 0x61, 0x52, 0x05, 0x75, 0x73, 0x65, 0x72, 0x31, 0x12, 0x21, 0x0a, 0x05, 0x75, 0x73, - 0x65, 0x72, 0x32, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0b, 0x2e, 0x50, 0x6c, 0x61, 0x79, - 0x65, 0x72, 0x44, 0x61, 0x74, 0x61, 0x52, 0x05, 0x75, 0x73, 0x65, 0x72, 0x32, 0x12, 0x14, 0x0a, - 0x05, 0x69, 0x74, 0x79, 0x70, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x69, 0x74, - 0x79, 0x70, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x63, 0x75, 0x72, 0x69, 0x64, 0x18, 0x09, 0x20, 0x01, - 0x28, 0x05, 0x52, 0x05, 0x63, 0x75, 0x72, 0x69, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x74, 0x61, 0x72, - 0x67, 0x65, 0x74, 0x69, 0x64, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x74, 0x61, 0x72, - 0x67, 0x65, 0x74, 0x69, 0x64, 0x22, 0xfe, 0x01, 0x0a, 0x15, 0x45, 0x6e, 0x74, 0x65, 0x72, 0x74, - 0x61, 0x69, 0x6e, 0x47, 0x61, 0x6d, 0x65, 0x4f, 0x76, 0x65, 0x72, 0x50, 0x75, 0x73, 0x68, 0x12, - 0x21, 0x0a, 0x05, 0x75, 0x73, 0x65, 0x72, 0x31, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0b, - 0x2e, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x44, 0x61, 0x74, 0x61, 0x52, 0x05, 0x75, 0x73, 0x65, - 0x72, 0x31, 0x12, 0x21, 0x0a, 0x05, 0x75, 0x73, 0x65, 0x72, 0x32, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x0b, 0x2e, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x44, 0x61, 0x74, 0x61, 0x52, 0x05, - 0x75, 0x73, 0x65, 0x72, 0x32, 0x12, 0x22, 0x0a, 0x07, 0x6d, 0x70, 0x61, 0x64, 0x61, 0x74, 0x61, - 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x08, 0x2e, 0x4d, 0x61, 0x70, 0x44, 0x61, 0x74, 0x61, - 0x52, 0x07, 0x6d, 0x70, 0x61, 0x64, 0x61, 0x74, 0x61, 0x12, 0x14, 0x0a, 0x05, 0x70, 0x6f, 0x77, - 0x65, 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x70, 0x6f, 0x77, 0x65, 0x72, 0x12, + 0x69, 0x64, 0x63, 0x61, 0x72, 0x64, 0x12, 0x1c, 0x0a, 0x09, 0x73, 0x6b, 0x69, 0x6c, 0x6c, 0x63, + 0x61, 0x72, 0x64, 0x18, 0x02, 0x20, 0x03, 0x28, 0x05, 0x52, 0x09, 0x73, 0x6b, 0x69, 0x6c, 0x6c, + 0x63, 0x61, 0x72, 0x64, 0x22, 0x2a, 0x0a, 0x12, 0x45, 0x6e, 0x74, 0x65, 0x72, 0x74, 0x61, 0x69, + 0x6e, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x52, 0x65, 0x73, 0x70, 0x12, 0x14, 0x0a, 0x05, 0x6d, 0x61, + 0x79, 0x63, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x05, 0x6d, 0x61, 0x79, 0x63, 0x68, + 0x22, 0x19, 0x0a, 0x17, 0x45, 0x6e, 0x74, 0x65, 0x72, 0x74, 0x61, 0x69, 0x6e, 0x43, 0x61, 0x6e, + 0x63, 0x65, 0x6c, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x52, 0x65, 0x71, 0x22, 0x30, 0x0a, 0x18, 0x45, + 0x6e, 0x74, 0x65, 0x72, 0x74, 0x61, 0x69, 0x6e, 0x43, 0x61, 0x6e, 0x63, 0x65, 0x6c, 0x4d, 0x61, + 0x74, 0x63, 0x68, 0x52, 0x65, 0x73, 0x70, 0x12, 0x14, 0x0a, 0x05, 0x6d, 0x61, 0x79, 0x63, 0x68, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x05, 0x6d, 0x61, 0x79, 0x63, 0x68, 0x22, 0x2b, 0x0a, + 0x11, 0x45, 0x6e, 0x74, 0x65, 0x72, 0x74, 0x61, 0x69, 0x6e, 0x52, 0x65, 0x61, 0x64, 0x79, 0x52, + 0x65, 0x71, 0x12, 0x16, 0x0a, 0x06, 0x72, 0x6f, 0x6f, 0x6d, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x06, 0x72, 0x6f, 0x6f, 0x6d, 0x69, 0x64, 0x22, 0x2a, 0x0a, 0x12, 0x45, 0x6e, + 0x74, 0x65, 0x72, 0x74, 0x61, 0x69, 0x6e, 0x52, 0x65, 0x61, 0x64, 0x79, 0x52, 0x65, 0x73, 0x70, + 0x12, 0x14, 0x0a, 0x05, 0x72, 0x65, 0x61, 0x64, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, + 0x05, 0x72, 0x65, 0x61, 0x64, 0x79, 0x22, 0xe2, 0x01, 0x0a, 0x16, 0x45, 0x6e, 0x74, 0x65, 0x72, + 0x74, 0x61, 0x69, 0x6e, 0x53, 0x74, 0x61, 0x72, 0x74, 0x47, 0x61, 0x6d, 0x65, 0x50, 0x75, 0x73, + 0x68, 0x12, 0x21, 0x0a, 0x05, 0x75, 0x73, 0x65, 0x72, 0x31, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x0b, 0x2e, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x44, 0x61, 0x74, 0x61, 0x52, 0x05, 0x75, + 0x73, 0x65, 0x72, 0x31, 0x12, 0x21, 0x0a, 0x05, 0x75, 0x73, 0x65, 0x72, 0x32, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x0b, 0x2e, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x44, 0x61, 0x74, 0x61, + 0x52, 0x05, 0x75, 0x73, 0x65, 0x72, 0x32, 0x12, 0x22, 0x0a, 0x07, 0x6d, 0x70, 0x61, 0x64, 0x61, + 0x74, 0x61, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x08, 0x2e, 0x4d, 0x61, 0x70, 0x44, 0x61, + 0x74, 0x61, 0x52, 0x07, 0x6d, 0x70, 0x61, 0x64, 0x61, 0x74, 0x61, 0x12, 0x14, 0x0a, 0x05, 0x70, + 0x6f, 0x77, 0x65, 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x70, 0x6f, 0x77, 0x65, + 0x72, 0x12, 0x14, 0x0a, 0x05, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, + 0x52, 0x05, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x72, 0x6f, 0x6f, 0x6d, 0x69, + 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x72, 0x6f, 0x6f, 0x6d, 0x69, 0x64, 0x12, + 0x1a, 0x0a, 0x08, 0x70, 0x6c, 0x61, 0x79, 0x74, 0x79, 0x70, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, + 0x05, 0x52, 0x08, 0x70, 0x6c, 0x61, 0x79, 0x74, 0x79, 0x70, 0x65, 0x22, 0x76, 0x0a, 0x14, 0x45, + 0x6e, 0x74, 0x65, 0x72, 0x74, 0x61, 0x69, 0x6e, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, + 0x52, 0x65, 0x71, 0x12, 0x16, 0x0a, 0x06, 0x72, 0x6f, 0x6f, 0x6d, 0x69, 0x64, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x06, 0x72, 0x6f, 0x6f, 0x6d, 0x69, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x69, + 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x69, 0x74, 0x79, 0x70, + 0x65, 0x12, 0x14, 0x0a, 0x05, 0x63, 0x75, 0x72, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, + 0x52, 0x05, 0x63, 0x75, 0x72, 0x69, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x74, 0x61, 0x72, 0x67, 0x65, + 0x74, 0x69, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x74, 0x61, 0x72, 0x67, 0x65, + 0x74, 0x69, 0x64, 0x22, 0x31, 0x0a, 0x15, 0x45, 0x6e, 0x74, 0x65, 0x72, 0x74, 0x61, 0x69, 0x6e, + 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x52, 0x65, 0x73, 0x70, 0x12, 0x18, 0x0a, 0x07, + 0x73, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x73, + 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x22, 0xaa, 0x02, 0x0a, 0x18, 0x45, 0x6e, 0x74, 0x65, 0x72, + 0x74, 0x61, 0x69, 0x6e, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x52, 0x73, 0x74, 0x50, + 0x75, 0x73, 0x68, 0x12, 0x22, 0x0a, 0x07, 0x6d, 0x70, 0x61, 0x64, 0x61, 0x74, 0x61, 0x18, 0x01, + 0x20, 0x03, 0x28, 0x0b, 0x32, 0x08, 0x2e, 0x4d, 0x61, 0x70, 0x44, 0x61, 0x74, 0x61, 0x52, 0x07, + 0x6d, 0x70, 0x61, 0x64, 0x61, 0x74, 0x61, 0x12, 0x14, 0x0a, 0x05, 0x70, 0x6f, 0x77, 0x65, 0x72, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x70, 0x6f, 0x77, 0x65, 0x72, 0x12, 0x1a, 0x0a, + 0x08, 0x63, 0x75, 0x72, 0x70, 0x6f, 0x77, 0x65, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x08, 0x63, 0x75, 0x72, 0x70, 0x6f, 0x77, 0x65, 0x72, 0x12, 0x14, 0x0a, 0x05, 0x73, 0x63, 0x6f, + 0x72, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, - 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x12, 0x10, 0x0a, 0x03, 0x77, 0x69, 0x6e, 0x18, 0x06, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x03, 0x77, 0x69, 0x6e, 0x12, 0x21, 0x0a, 0x06, 0x72, 0x65, 0x77, 0x61, 0x72, - 0x64, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x09, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x41, 0x74, - 0x6e, 0x6f, 0x52, 0x06, 0x72, 0x65, 0x77, 0x61, 0x72, 0x64, 0x12, 0x1a, 0x0a, 0x03, 0x62, 0x6f, - 0x78, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x08, 0x2e, 0x42, 0x6f, 0x78, 0x44, 0x61, 0x74, - 0x61, 0x52, 0x03, 0x62, 0x6f, 0x78, 0x22, 0xa8, 0x01, 0x0a, 0x16, 0x45, 0x6e, 0x74, 0x65, 0x72, - 0x74, 0x61, 0x69, 0x6e, 0x45, 0x6e, 0x74, 0x65, 0x72, 0x52, 0x6f, 0x6f, 0x6d, 0x50, 0x75, 0x73, - 0x68, 0x12, 0x14, 0x0a, 0x05, 0x72, 0x6f, 0x6f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x05, 0x72, 0x6f, 0x6f, 0x69, 0x64, 0x12, 0x1c, 0x0a, 0x09, 0x73, 0x65, 0x72, 0x76, 0x65, - 0x70, 0x61, 0x74, 0x68, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x73, 0x65, 0x72, 0x76, - 0x65, 0x70, 0x61, 0x74, 0x68, 0x12, 0x21, 0x0a, 0x05, 0x75, 0x73, 0x65, 0x72, 0x31, 0x18, 0x03, + 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x12, 0x21, 0x0a, 0x05, 0x75, 0x73, 0x65, 0x72, 0x31, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0b, 0x2e, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x44, 0x61, 0x74, 0x61, 0x52, 0x05, 0x75, 0x73, 0x65, 0x72, 0x31, 0x12, 0x21, 0x0a, 0x05, 0x75, 0x73, 0x65, 0x72, - 0x32, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0b, 0x2e, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, + 0x32, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0b, 0x2e, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x44, 0x61, 0x74, 0x61, 0x52, 0x05, 0x75, 0x73, 0x65, 0x72, 0x32, 0x12, 0x14, 0x0a, 0x05, 0x69, - 0x74, 0x79, 0x70, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x69, 0x74, 0x79, 0x70, - 0x65, 0x22, 0x2f, 0x0a, 0x15, 0x45, 0x6e, 0x74, 0x65, 0x72, 0x74, 0x61, 0x69, 0x6e, 0x52, 0x65, - 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x52, 0x65, 0x71, 0x12, 0x16, 0x0a, 0x06, 0x72, 0x6f, - 0x6f, 0x6d, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x72, 0x6f, 0x6f, 0x6d, - 0x69, 0x64, 0x22, 0xf8, 0x01, 0x0a, 0x16, 0x45, 0x6e, 0x74, 0x65, 0x72, 0x74, 0x61, 0x69, 0x6e, - 0x52, 0x65, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x52, 0x65, 0x73, 0x70, 0x12, 0x16, 0x0a, - 0x06, 0x72, 0x6f, 0x6f, 0x6d, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x72, - 0x6f, 0x6f, 0x6d, 0x69, 0x64, 0x12, 0x22, 0x0a, 0x07, 0x6d, 0x70, 0x61, 0x64, 0x61, 0x74, 0x61, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x08, 0x2e, 0x4d, 0x61, 0x70, 0x44, 0x61, 0x74, 0x61, - 0x52, 0x07, 0x6d, 0x70, 0x61, 0x64, 0x61, 0x74, 0x61, 0x12, 0x14, 0x0a, 0x05, 0x70, 0x6f, 0x77, - 0x65, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x70, 0x6f, 0x77, 0x65, 0x72, 0x12, - 0x1a, 0x0a, 0x08, 0x63, 0x75, 0x72, 0x70, 0x6f, 0x77, 0x65, 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x08, 0x63, 0x75, 0x72, 0x70, 0x6f, 0x77, 0x65, 0x72, 0x12, 0x14, 0x0a, 0x05, 0x73, - 0x63, 0x6f, 0x72, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x73, 0x63, 0x6f, 0x72, - 0x65, 0x12, 0x14, 0x0a, 0x05, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x05, - 0x52, 0x05, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x12, 0x21, 0x0a, 0x05, 0x75, 0x73, 0x65, 0x72, 0x31, - 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0b, 0x2e, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x44, - 0x61, 0x74, 0x61, 0x52, 0x05, 0x75, 0x73, 0x65, 0x72, 0x31, 0x12, 0x21, 0x0a, 0x05, 0x75, 0x73, - 0x65, 0x72, 0x32, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0b, 0x2e, 0x50, 0x6c, 0x61, 0x79, - 0x65, 0x72, 0x44, 0x61, 0x74, 0x61, 0x52, 0x05, 0x75, 0x73, 0x65, 0x72, 0x32, 0x22, 0x31, 0x0a, - 0x17, 0x45, 0x6e, 0x74, 0x65, 0x72, 0x74, 0x61, 0x69, 0x6e, 0x52, 0x65, 0x66, 0x72, 0x65, 0x73, - 0x68, 0x50, 0x6c, 0x61, 0x74, 0x52, 0x65, 0x71, 0x12, 0x16, 0x0a, 0x06, 0x72, 0x6f, 0x6f, 0x6d, + 0x74, 0x79, 0x70, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x69, 0x74, 0x79, 0x70, + 0x65, 0x12, 0x14, 0x0a, 0x05, 0x63, 0x75, 0x72, 0x69, 0x64, 0x18, 0x09, 0x20, 0x01, 0x28, 0x05, + 0x52, 0x05, 0x63, 0x75, 0x72, 0x69, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x74, 0x61, 0x72, 0x67, 0x65, + 0x74, 0x69, 0x64, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x74, 0x61, 0x72, 0x67, 0x65, + 0x74, 0x69, 0x64, 0x22, 0xfe, 0x01, 0x0a, 0x15, 0x45, 0x6e, 0x74, 0x65, 0x72, 0x74, 0x61, 0x69, + 0x6e, 0x47, 0x61, 0x6d, 0x65, 0x4f, 0x76, 0x65, 0x72, 0x50, 0x75, 0x73, 0x68, 0x12, 0x21, 0x0a, + 0x05, 0x75, 0x73, 0x65, 0x72, 0x31, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0b, 0x2e, 0x50, + 0x6c, 0x61, 0x79, 0x65, 0x72, 0x44, 0x61, 0x74, 0x61, 0x52, 0x05, 0x75, 0x73, 0x65, 0x72, 0x31, + 0x12, 0x21, 0x0a, 0x05, 0x75, 0x73, 0x65, 0x72, 0x32, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x0b, 0x2e, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x44, 0x61, 0x74, 0x61, 0x52, 0x05, 0x75, 0x73, + 0x65, 0x72, 0x32, 0x12, 0x22, 0x0a, 0x07, 0x6d, 0x70, 0x61, 0x64, 0x61, 0x74, 0x61, 0x18, 0x03, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x08, 0x2e, 0x4d, 0x61, 0x70, 0x44, 0x61, 0x74, 0x61, 0x52, 0x07, + 0x6d, 0x70, 0x61, 0x64, 0x61, 0x74, 0x61, 0x12, 0x14, 0x0a, 0x05, 0x70, 0x6f, 0x77, 0x65, 0x72, + 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x70, 0x6f, 0x77, 0x65, 0x72, 0x12, 0x14, 0x0a, + 0x05, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x72, 0x6f, + 0x75, 0x6e, 0x64, 0x12, 0x10, 0x0a, 0x03, 0x77, 0x69, 0x6e, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x03, 0x77, 0x69, 0x6e, 0x12, 0x21, 0x0a, 0x06, 0x72, 0x65, 0x77, 0x61, 0x72, 0x64, 0x18, + 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x09, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x41, 0x74, 0x6e, 0x6f, + 0x52, 0x06, 0x72, 0x65, 0x77, 0x61, 0x72, 0x64, 0x12, 0x1a, 0x0a, 0x03, 0x62, 0x6f, 0x78, 0x18, + 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x08, 0x2e, 0x42, 0x6f, 0x78, 0x44, 0x61, 0x74, 0x61, 0x52, + 0x03, 0x62, 0x6f, 0x78, 0x22, 0xa8, 0x01, 0x0a, 0x16, 0x45, 0x6e, 0x74, 0x65, 0x72, 0x74, 0x61, + 0x69, 0x6e, 0x45, 0x6e, 0x74, 0x65, 0x72, 0x52, 0x6f, 0x6f, 0x6d, 0x50, 0x75, 0x73, 0x68, 0x12, + 0x14, 0x0a, 0x05, 0x72, 0x6f, 0x6f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, + 0x72, 0x6f, 0x6f, 0x69, 0x64, 0x12, 0x1c, 0x0a, 0x09, 0x73, 0x65, 0x72, 0x76, 0x65, 0x70, 0x61, + 0x74, 0x68, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x73, 0x65, 0x72, 0x76, 0x65, 0x70, + 0x61, 0x74, 0x68, 0x12, 0x21, 0x0a, 0x05, 0x75, 0x73, 0x65, 0x72, 0x31, 0x18, 0x03, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x0b, 0x2e, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x44, 0x61, 0x74, 0x61, 0x52, + 0x05, 0x75, 0x73, 0x65, 0x72, 0x31, 0x12, 0x21, 0x0a, 0x05, 0x75, 0x73, 0x65, 0x72, 0x32, 0x18, + 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0b, 0x2e, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x44, 0x61, + 0x74, 0x61, 0x52, 0x05, 0x75, 0x73, 0x65, 0x72, 0x32, 0x12, 0x14, 0x0a, 0x05, 0x69, 0x74, 0x79, + 0x70, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x69, 0x74, 0x79, 0x70, 0x65, 0x22, + 0x2f, 0x0a, 0x15, 0x45, 0x6e, 0x74, 0x65, 0x72, 0x74, 0x61, 0x69, 0x6e, 0x52, 0x65, 0x63, 0x6f, + 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x52, 0x65, 0x71, 0x12, 0x16, 0x0a, 0x06, 0x72, 0x6f, 0x6f, 0x6d, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x72, 0x6f, 0x6f, 0x6d, 0x69, 0x64, - 0x22, 0x3e, 0x0a, 0x18, 0x45, 0x6e, 0x74, 0x65, 0x72, 0x74, 0x61, 0x69, 0x6e, 0x52, 0x65, 0x66, - 0x72, 0x65, 0x73, 0x68, 0x50, 0x6c, 0x61, 0x74, 0x52, 0x65, 0x73, 0x70, 0x12, 0x22, 0x0a, 0x07, - 0x6d, 0x70, 0x61, 0x64, 0x61, 0x74, 0x61, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x08, 0x2e, - 0x4d, 0x61, 0x70, 0x44, 0x61, 0x74, 0x61, 0x52, 0x07, 0x6d, 0x70, 0x61, 0x64, 0x61, 0x74, 0x61, - 0x22, 0x3a, 0x0a, 0x14, 0x45, 0x6e, 0x74, 0x65, 0x72, 0x74, 0x61, 0x69, 0x6e, 0x52, 0x65, 0x66, - 0x72, 0x65, 0x73, 0x68, 0x50, 0x75, 0x73, 0x68, 0x12, 0x22, 0x0a, 0x07, 0x6d, 0x70, 0x61, 0x64, - 0x61, 0x74, 0x61, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x08, 0x2e, 0x4d, 0x61, 0x70, 0x44, - 0x61, 0x74, 0x61, 0x52, 0x07, 0x6d, 0x70, 0x61, 0x64, 0x61, 0x74, 0x61, 0x22, 0x15, 0x0a, 0x13, - 0x45, 0x6e, 0x74, 0x65, 0x72, 0x74, 0x61, 0x69, 0x6e, 0x47, 0x65, 0x74, 0x4c, 0x69, 0x73, 0x74, - 0x52, 0x65, 0x71, 0x22, 0x36, 0x0a, 0x14, 0x45, 0x6e, 0x74, 0x65, 0x72, 0x74, 0x61, 0x69, 0x6e, - 0x47, 0x65, 0x74, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x12, 0x1e, 0x0a, 0x04, 0x64, - 0x61, 0x74, 0x61, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0a, 0x2e, 0x44, 0x42, 0x58, 0x58, - 0x4c, 0x44, 0x61, 0x74, 0x61, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x22, 0x26, 0x0a, 0x12, 0x45, - 0x6e, 0x74, 0x65, 0x72, 0x74, 0x61, 0x69, 0x6e, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x52, 0x65, - 0x71, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, - 0x6b, 0x65, 0x79, 0x22, 0x58, 0x0a, 0x13, 0x45, 0x6e, 0x74, 0x65, 0x72, 0x74, 0x61, 0x69, 0x6e, - 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x52, 0x65, 0x73, 0x70, 0x12, 0x1e, 0x0a, 0x04, 0x64, 0x61, - 0x74, 0x61, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0a, 0x2e, 0x44, 0x42, 0x58, 0x58, 0x4c, - 0x44, 0x61, 0x74, 0x61, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x12, 0x21, 0x0a, 0x06, 0x72, 0x65, - 0x77, 0x61, 0x72, 0x64, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x09, 0x2e, 0x55, 0x73, 0x65, - 0x72, 0x41, 0x74, 0x6e, 0x6f, 0x52, 0x06, 0x72, 0x65, 0x77, 0x61, 0x72, 0x64, 0x22, 0xf3, 0x01, - 0x0a, 0x13, 0x45, 0x6e, 0x74, 0x65, 0x72, 0x74, 0x61, 0x69, 0x6e, 0x43, 0x68, 0x61, 0x6e, 0x67, - 0x65, 0x50, 0x75, 0x73, 0x68, 0x12, 0x32, 0x0a, 0x04, 0x63, 0x61, 0x72, 0x64, 0x18, 0x01, 0x20, - 0x03, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x45, 0x6e, 0x74, 0x65, 0x72, 0x74, 0x61, 0x69, 0x6e, 0x43, - 0x68, 0x61, 0x6e, 0x67, 0x65, 0x50, 0x75, 0x73, 0x68, 0x2e, 0x43, 0x61, 0x72, 0x64, 0x45, 0x6e, - 0x74, 0x72, 0x79, 0x52, 0x04, 0x63, 0x61, 0x72, 0x64, 0x12, 0x35, 0x0a, 0x05, 0x73, 0x6b, 0x69, - 0x6c, 0x6c, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x45, 0x6e, 0x74, 0x65, 0x72, - 0x74, 0x61, 0x69, 0x6e, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x50, 0x75, 0x73, 0x68, 0x2e, 0x53, - 0x6b, 0x69, 0x6c, 0x6c, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x05, 0x73, 0x6b, 0x69, 0x6c, 0x6c, - 0x1a, 0x37, 0x0a, 0x09, 0x43, 0x61, 0x72, 0x64, 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, 0x1a, 0x38, 0x0a, 0x0a, 0x53, 0x6b, 0x69, - 0x6c, 0x6c, 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, 0x30, 0x0a, 0x16, 0x45, 0x6e, 0x74, 0x65, 0x72, 0x74, 0x61, 0x69, 0x6e, - 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x6f, 0x6f, 0x6d, 0x52, 0x65, 0x71, 0x12, 0x16, 0x0a, - 0x06, 0x69, 0x64, 0x63, 0x61, 0x72, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x69, - 0x64, 0x63, 0x61, 0x72, 0x64, 0x22, 0x4f, 0x0a, 0x17, 0x45, 0x6e, 0x74, 0x65, 0x72, 0x74, 0x61, - 0x69, 0x6e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x6f, 0x6f, 0x6d, 0x52, 0x65, 0x73, 0x70, - 0x12, 0x16, 0x0a, 0x06, 0x72, 0x6f, 0x6f, 0x6d, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x06, 0x72, 0x6f, 0x6f, 0x6d, 0x69, 0x64, 0x12, 0x1c, 0x0a, 0x09, 0x73, 0x65, 0x72, 0x76, - 0x65, 0x70, 0x61, 0x74, 0x68, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x73, 0x65, 0x72, - 0x76, 0x65, 0x70, 0x61, 0x74, 0x68, 0x22, 0x46, 0x0a, 0x14, 0x45, 0x6e, 0x74, 0x65, 0x72, 0x74, - 0x61, 0x69, 0x6e, 0x4a, 0x6f, 0x69, 0x6e, 0x52, 0x6f, 0x6f, 0x6d, 0x52, 0x65, 0x71, 0x12, 0x16, - 0x0a, 0x06, 0x72, 0x6f, 0x6f, 0x6d, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, - 0x72, 0x6f, 0x6f, 0x6d, 0x69, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x69, 0x64, 0x63, 0x61, 0x72, 0x64, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x69, 0x64, 0x63, 0x61, 0x72, 0x64, 0x22, 0x2d, - 0x0a, 0x15, 0x45, 0x6e, 0x74, 0x65, 0x72, 0x74, 0x61, 0x69, 0x6e, 0x4a, 0x6f, 0x69, 0x6e, 0x52, - 0x6f, 0x6f, 0x6d, 0x52, 0x65, 0x73, 0x70, 0x12, 0x14, 0x0a, 0x05, 0x62, 0x4a, 0x6f, 0x69, 0x6e, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x05, 0x62, 0x4a, 0x6f, 0x69, 0x6e, 0x22, 0x7b, 0x0a, - 0x1b, 0x45, 0x6e, 0x74, 0x65, 0x72, 0x74, 0x61, 0x69, 0x6e, 0x4a, 0x6f, 0x69, 0x6e, 0x43, 0x72, - 0x65, 0x61, 0x74, 0x65, 0x52, 0x6f, 0x6f, 0x6d, 0x50, 0x75, 0x73, 0x68, 0x12, 0x16, 0x0a, 0x06, - 0x72, 0x6f, 0x6f, 0x6d, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x72, 0x6f, - 0x6f, 0x6d, 0x69, 0x64, 0x12, 0x21, 0x0a, 0x05, 0x75, 0x73, 0x65, 0x72, 0x31, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x0b, 0x2e, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x44, 0x61, 0x74, 0x61, - 0x52, 0x05, 0x75, 0x73, 0x65, 0x72, 0x31, 0x12, 0x21, 0x0a, 0x05, 0x75, 0x73, 0x65, 0x72, 0x32, - 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0b, 0x2e, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x44, - 0x61, 0x74, 0x61, 0x52, 0x05, 0x75, 0x73, 0x65, 0x72, 0x32, 0x22, 0x31, 0x0a, 0x17, 0x45, 0x6e, - 0x74, 0x65, 0x72, 0x74, 0x61, 0x69, 0x6e, 0x4d, 0x61, 0x73, 0x74, 0x65, 0x72, 0x53, 0x74, 0x61, - 0x72, 0x74, 0x52, 0x65, 0x71, 0x12, 0x16, 0x0a, 0x06, 0x72, 0x6f, 0x6f, 0x6d, 0x69, 0x64, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x72, 0x6f, 0x6f, 0x6d, 0x69, 0x64, 0x22, 0x1a, 0x0a, - 0x18, 0x45, 0x6e, 0x74, 0x65, 0x72, 0x74, 0x61, 0x69, 0x6e, 0x4d, 0x61, 0x73, 0x74, 0x65, 0x72, - 0x53, 0x74, 0x61, 0x72, 0x74, 0x52, 0x65, 0x73, 0x70, 0x22, 0x32, 0x0a, 0x18, 0x45, 0x6e, 0x74, - 0x65, 0x72, 0x74, 0x61, 0x69, 0x6e, 0x44, 0x69, 0x73, 0x73, 0x6f, 0x6c, 0x76, 0x65, 0x52, 0x6f, - 0x6f, 0x6d, 0x52, 0x65, 0x71, 0x12, 0x16, 0x0a, 0x06, 0x72, 0x6f, 0x6f, 0x6d, 0x69, 0x64, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x72, 0x6f, 0x6f, 0x6d, 0x69, 0x64, 0x22, 0x1b, 0x0a, - 0x19, 0x45, 0x6e, 0x74, 0x65, 0x72, 0x74, 0x61, 0x69, 0x6e, 0x44, 0x69, 0x73, 0x73, 0x6f, 0x6c, - 0x76, 0x65, 0x52, 0x6f, 0x6f, 0x6d, 0x52, 0x65, 0x73, 0x70, 0x22, 0x39, 0x0a, 0x1f, 0x45, 0x6e, - 0x74, 0x65, 0x72, 0x74, 0x61, 0x69, 0x6e, 0x44, 0x69, 0x73, 0x73, 0x6f, 0x6c, 0x76, 0x65, 0x4d, - 0x61, 0x73, 0x74, 0x65, 0x72, 0x52, 0x6f, 0x6f, 0x6d, 0x50, 0x75, 0x73, 0x68, 0x12, 0x16, 0x0a, - 0x06, 0x72, 0x6f, 0x6f, 0x6d, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x72, - 0x6f, 0x6f, 0x6d, 0x69, 0x64, 0x22, 0x4c, 0x0a, 0x16, 0x45, 0x6e, 0x74, 0x65, 0x72, 0x74, 0x61, - 0x69, 0x6e, 0x47, 0x61, 0x6d, 0x65, 0x52, 0x65, 0x61, 0x64, 0x79, 0x50, 0x75, 0x73, 0x68, 0x12, - 0x18, 0x0a, 0x07, 0x70, 0x31, 0x72, 0x65, 0x61, 0x64, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, - 0x52, 0x07, 0x70, 0x31, 0x72, 0x65, 0x61, 0x64, 0x79, 0x12, 0x18, 0x0a, 0x07, 0x70, 0x32, 0x72, - 0x65, 0x61, 0x64, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x70, 0x32, 0x72, 0x65, - 0x61, 0x64, 0x79, 0x22, 0x2d, 0x0a, 0x15, 0x45, 0x6e, 0x74, 0x65, 0x72, 0x74, 0x61, 0x69, 0x6e, - 0x42, 0x6f, 0x78, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x52, 0x65, 0x71, 0x12, 0x14, 0x0a, 0x05, - 0x69, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x69, 0x6e, 0x64, - 0x65, 0x78, 0x22, 0x57, 0x0a, 0x16, 0x45, 0x6e, 0x74, 0x65, 0x72, 0x74, 0x61, 0x69, 0x6e, 0x42, - 0x6f, 0x78, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x52, 0x65, 0x73, 0x70, 0x12, 0x1a, 0x0a, 0x03, - 0x62, 0x6f, 0x78, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x08, 0x2e, 0x42, 0x6f, 0x78, 0x44, - 0x61, 0x74, 0x61, 0x52, 0x03, 0x62, 0x6f, 0x78, 0x12, 0x21, 0x0a, 0x06, 0x72, 0x65, 0x77, 0x61, + 0x22, 0xf8, 0x01, 0x0a, 0x16, 0x45, 0x6e, 0x74, 0x65, 0x72, 0x74, 0x61, 0x69, 0x6e, 0x52, 0x65, + 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x52, 0x65, 0x73, 0x70, 0x12, 0x16, 0x0a, 0x06, 0x72, + 0x6f, 0x6f, 0x6d, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x72, 0x6f, 0x6f, + 0x6d, 0x69, 0x64, 0x12, 0x22, 0x0a, 0x07, 0x6d, 0x70, 0x61, 0x64, 0x61, 0x74, 0x61, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x08, 0x2e, 0x4d, 0x61, 0x70, 0x44, 0x61, 0x74, 0x61, 0x52, 0x07, + 0x6d, 0x70, 0x61, 0x64, 0x61, 0x74, 0x61, 0x12, 0x14, 0x0a, 0x05, 0x70, 0x6f, 0x77, 0x65, 0x72, + 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x70, 0x6f, 0x77, 0x65, 0x72, 0x12, 0x1a, 0x0a, + 0x08, 0x63, 0x75, 0x72, 0x70, 0x6f, 0x77, 0x65, 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x08, 0x63, 0x75, 0x72, 0x70, 0x6f, 0x77, 0x65, 0x72, 0x12, 0x14, 0x0a, 0x05, 0x73, 0x63, 0x6f, + 0x72, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x12, + 0x14, 0x0a, 0x05, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, + 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x12, 0x21, 0x0a, 0x05, 0x75, 0x73, 0x65, 0x72, 0x31, 0x18, 0x07, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0b, 0x2e, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x44, 0x61, 0x74, + 0x61, 0x52, 0x05, 0x75, 0x73, 0x65, 0x72, 0x31, 0x12, 0x21, 0x0a, 0x05, 0x75, 0x73, 0x65, 0x72, + 0x32, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0b, 0x2e, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, + 0x44, 0x61, 0x74, 0x61, 0x52, 0x05, 0x75, 0x73, 0x65, 0x72, 0x32, 0x22, 0x31, 0x0a, 0x17, 0x45, + 0x6e, 0x74, 0x65, 0x72, 0x74, 0x61, 0x69, 0x6e, 0x52, 0x65, 0x66, 0x72, 0x65, 0x73, 0x68, 0x50, + 0x6c, 0x61, 0x74, 0x52, 0x65, 0x71, 0x12, 0x16, 0x0a, 0x06, 0x72, 0x6f, 0x6f, 0x6d, 0x69, 0x64, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x72, 0x6f, 0x6f, 0x6d, 0x69, 0x64, 0x22, 0x3e, + 0x0a, 0x18, 0x45, 0x6e, 0x74, 0x65, 0x72, 0x74, 0x61, 0x69, 0x6e, 0x52, 0x65, 0x66, 0x72, 0x65, + 0x73, 0x68, 0x50, 0x6c, 0x61, 0x74, 0x52, 0x65, 0x73, 0x70, 0x12, 0x22, 0x0a, 0x07, 0x6d, 0x70, + 0x61, 0x64, 0x61, 0x74, 0x61, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x08, 0x2e, 0x4d, 0x61, + 0x70, 0x44, 0x61, 0x74, 0x61, 0x52, 0x07, 0x6d, 0x70, 0x61, 0x64, 0x61, 0x74, 0x61, 0x22, 0x3a, + 0x0a, 0x14, 0x45, 0x6e, 0x74, 0x65, 0x72, 0x74, 0x61, 0x69, 0x6e, 0x52, 0x65, 0x66, 0x72, 0x65, + 0x73, 0x68, 0x50, 0x75, 0x73, 0x68, 0x12, 0x22, 0x0a, 0x07, 0x6d, 0x70, 0x61, 0x64, 0x61, 0x74, + 0x61, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x08, 0x2e, 0x4d, 0x61, 0x70, 0x44, 0x61, 0x74, + 0x61, 0x52, 0x07, 0x6d, 0x70, 0x61, 0x64, 0x61, 0x74, 0x61, 0x22, 0x15, 0x0a, 0x13, 0x45, 0x6e, + 0x74, 0x65, 0x72, 0x74, 0x61, 0x69, 0x6e, 0x47, 0x65, 0x74, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, + 0x71, 0x22, 0x36, 0x0a, 0x14, 0x45, 0x6e, 0x74, 0x65, 0x72, 0x74, 0x61, 0x69, 0x6e, 0x47, 0x65, + 0x74, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x12, 0x1e, 0x0a, 0x04, 0x64, 0x61, 0x74, + 0x61, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0a, 0x2e, 0x44, 0x42, 0x58, 0x58, 0x4c, 0x44, + 0x61, 0x74, 0x61, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x22, 0x26, 0x0a, 0x12, 0x45, 0x6e, 0x74, + 0x65, 0x72, 0x74, 0x61, 0x69, 0x6e, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x52, 0x65, 0x71, 0x12, + 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x6b, 0x65, + 0x79, 0x22, 0x58, 0x0a, 0x13, 0x45, 0x6e, 0x74, 0x65, 0x72, 0x74, 0x61, 0x69, 0x6e, 0x52, 0x65, + 0x77, 0x61, 0x72, 0x64, 0x52, 0x65, 0x73, 0x70, 0x12, 0x1e, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0a, 0x2e, 0x44, 0x42, 0x58, 0x58, 0x4c, 0x44, 0x61, + 0x74, 0x61, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x12, 0x21, 0x0a, 0x06, 0x72, 0x65, 0x77, 0x61, 0x72, 0x64, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x09, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x41, - 0x74, 0x6e, 0x6f, 0x52, 0x06, 0x72, 0x65, 0x77, 0x61, 0x72, 0x64, 0x22, 0x32, 0x0a, 0x18, 0x45, - 0x6e, 0x74, 0x65, 0x72, 0x74, 0x61, 0x69, 0x6e, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, - 0x4f, 0x76, 0x65, 0x72, 0x52, 0x65, 0x71, 0x12, 0x16, 0x0a, 0x06, 0x72, 0x6f, 0x6f, 0x6d, 0x69, - 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x72, 0x6f, 0x6f, 0x6d, 0x69, 0x64, 0x22, - 0x1b, 0x0a, 0x19, 0x45, 0x6e, 0x74, 0x65, 0x72, 0x74, 0x61, 0x69, 0x6e, 0x4f, 0x70, 0x65, 0x72, - 0x61, 0x74, 0x6f, 0x72, 0x4f, 0x76, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x22, 0x42, 0x0a, 0x16, - 0x45, 0x6e, 0x74, 0x65, 0x72, 0x74, 0x61, 0x69, 0x6e, 0x53, 0x74, 0x61, 0x72, 0x54, 0x69, 0x6d, - 0x65, 0x72, 0x50, 0x75, 0x73, 0x68, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x74, 0x69, 0x6d, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x70, 0x6f, - 0x77, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x70, 0x6f, 0x77, 0x65, 0x72, - 0x42, 0x06, 0x5a, 0x04, 0x2e, 0x3b, 0x70, 0x62, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x74, 0x6e, 0x6f, 0x52, 0x06, 0x72, 0x65, 0x77, 0x61, 0x72, 0x64, 0x22, 0xf3, 0x01, 0x0a, 0x13, + 0x45, 0x6e, 0x74, 0x65, 0x72, 0x74, 0x61, 0x69, 0x6e, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x50, + 0x75, 0x73, 0x68, 0x12, 0x32, 0x0a, 0x04, 0x63, 0x61, 0x72, 0x64, 0x18, 0x01, 0x20, 0x03, 0x28, + 0x0b, 0x32, 0x1e, 0x2e, 0x45, 0x6e, 0x74, 0x65, 0x72, 0x74, 0x61, 0x69, 0x6e, 0x43, 0x68, 0x61, + 0x6e, 0x67, 0x65, 0x50, 0x75, 0x73, 0x68, 0x2e, 0x43, 0x61, 0x72, 0x64, 0x45, 0x6e, 0x74, 0x72, + 0x79, 0x52, 0x04, 0x63, 0x61, 0x72, 0x64, 0x12, 0x35, 0x0a, 0x05, 0x73, 0x6b, 0x69, 0x6c, 0x6c, + 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x45, 0x6e, 0x74, 0x65, 0x72, 0x74, 0x61, + 0x69, 0x6e, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x50, 0x75, 0x73, 0x68, 0x2e, 0x53, 0x6b, 0x69, + 0x6c, 0x6c, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x05, 0x73, 0x6b, 0x69, 0x6c, 0x6c, 0x1a, 0x37, + 0x0a, 0x09, 0x43, 0x61, 0x72, 0x64, 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, 0x1a, 0x38, 0x0a, 0x0a, 0x53, 0x6b, 0x69, 0x6c, 0x6c, + 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, 0x30, 0x0a, 0x16, 0x45, 0x6e, 0x74, 0x65, 0x72, 0x74, 0x61, 0x69, 0x6e, 0x43, 0x72, + 0x65, 0x61, 0x74, 0x65, 0x52, 0x6f, 0x6f, 0x6d, 0x52, 0x65, 0x71, 0x12, 0x16, 0x0a, 0x06, 0x69, + 0x64, 0x63, 0x61, 0x72, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x69, 0x64, 0x63, + 0x61, 0x72, 0x64, 0x22, 0x4f, 0x0a, 0x17, 0x45, 0x6e, 0x74, 0x65, 0x72, 0x74, 0x61, 0x69, 0x6e, + 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x6f, 0x6f, 0x6d, 0x52, 0x65, 0x73, 0x70, 0x12, 0x16, + 0x0a, 0x06, 0x72, 0x6f, 0x6f, 0x6d, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, + 0x72, 0x6f, 0x6f, 0x6d, 0x69, 0x64, 0x12, 0x1c, 0x0a, 0x09, 0x73, 0x65, 0x72, 0x76, 0x65, 0x70, + 0x61, 0x74, 0x68, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x73, 0x65, 0x72, 0x76, 0x65, + 0x70, 0x61, 0x74, 0x68, 0x22, 0x46, 0x0a, 0x14, 0x45, 0x6e, 0x74, 0x65, 0x72, 0x74, 0x61, 0x69, + 0x6e, 0x4a, 0x6f, 0x69, 0x6e, 0x52, 0x6f, 0x6f, 0x6d, 0x52, 0x65, 0x71, 0x12, 0x16, 0x0a, 0x06, + 0x72, 0x6f, 0x6f, 0x6d, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x72, 0x6f, + 0x6f, 0x6d, 0x69, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x69, 0x64, 0x63, 0x61, 0x72, 0x64, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x69, 0x64, 0x63, 0x61, 0x72, 0x64, 0x22, 0x2d, 0x0a, 0x15, + 0x45, 0x6e, 0x74, 0x65, 0x72, 0x74, 0x61, 0x69, 0x6e, 0x4a, 0x6f, 0x69, 0x6e, 0x52, 0x6f, 0x6f, + 0x6d, 0x52, 0x65, 0x73, 0x70, 0x12, 0x14, 0x0a, 0x05, 0x62, 0x4a, 0x6f, 0x69, 0x6e, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x08, 0x52, 0x05, 0x62, 0x4a, 0x6f, 0x69, 0x6e, 0x22, 0x7b, 0x0a, 0x1b, 0x45, + 0x6e, 0x74, 0x65, 0x72, 0x74, 0x61, 0x69, 0x6e, 0x4a, 0x6f, 0x69, 0x6e, 0x43, 0x72, 0x65, 0x61, + 0x74, 0x65, 0x52, 0x6f, 0x6f, 0x6d, 0x50, 0x75, 0x73, 0x68, 0x12, 0x16, 0x0a, 0x06, 0x72, 0x6f, + 0x6f, 0x6d, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x72, 0x6f, 0x6f, 0x6d, + 0x69, 0x64, 0x12, 0x21, 0x0a, 0x05, 0x75, 0x73, 0x65, 0x72, 0x31, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x0b, 0x2e, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x44, 0x61, 0x74, 0x61, 0x52, 0x05, + 0x75, 0x73, 0x65, 0x72, 0x31, 0x12, 0x21, 0x0a, 0x05, 0x75, 0x73, 0x65, 0x72, 0x32, 0x18, 0x03, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0b, 0x2e, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x44, 0x61, 0x74, + 0x61, 0x52, 0x05, 0x75, 0x73, 0x65, 0x72, 0x32, 0x22, 0x31, 0x0a, 0x17, 0x45, 0x6e, 0x74, 0x65, + 0x72, 0x74, 0x61, 0x69, 0x6e, 0x4d, 0x61, 0x73, 0x74, 0x65, 0x72, 0x53, 0x74, 0x61, 0x72, 0x74, + 0x52, 0x65, 0x71, 0x12, 0x16, 0x0a, 0x06, 0x72, 0x6f, 0x6f, 0x6d, 0x69, 0x64, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x06, 0x72, 0x6f, 0x6f, 0x6d, 0x69, 0x64, 0x22, 0x1a, 0x0a, 0x18, 0x45, + 0x6e, 0x74, 0x65, 0x72, 0x74, 0x61, 0x69, 0x6e, 0x4d, 0x61, 0x73, 0x74, 0x65, 0x72, 0x53, 0x74, + 0x61, 0x72, 0x74, 0x52, 0x65, 0x73, 0x70, 0x22, 0x32, 0x0a, 0x18, 0x45, 0x6e, 0x74, 0x65, 0x72, + 0x74, 0x61, 0x69, 0x6e, 0x44, 0x69, 0x73, 0x73, 0x6f, 0x6c, 0x76, 0x65, 0x52, 0x6f, 0x6f, 0x6d, + 0x52, 0x65, 0x71, 0x12, 0x16, 0x0a, 0x06, 0x72, 0x6f, 0x6f, 0x6d, 0x69, 0x64, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x06, 0x72, 0x6f, 0x6f, 0x6d, 0x69, 0x64, 0x22, 0x1b, 0x0a, 0x19, 0x45, + 0x6e, 0x74, 0x65, 0x72, 0x74, 0x61, 0x69, 0x6e, 0x44, 0x69, 0x73, 0x73, 0x6f, 0x6c, 0x76, 0x65, + 0x52, 0x6f, 0x6f, 0x6d, 0x52, 0x65, 0x73, 0x70, 0x22, 0x39, 0x0a, 0x1f, 0x45, 0x6e, 0x74, 0x65, + 0x72, 0x74, 0x61, 0x69, 0x6e, 0x44, 0x69, 0x73, 0x73, 0x6f, 0x6c, 0x76, 0x65, 0x4d, 0x61, 0x73, + 0x74, 0x65, 0x72, 0x52, 0x6f, 0x6f, 0x6d, 0x50, 0x75, 0x73, 0x68, 0x12, 0x16, 0x0a, 0x06, 0x72, + 0x6f, 0x6f, 0x6d, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x72, 0x6f, 0x6f, + 0x6d, 0x69, 0x64, 0x22, 0x4c, 0x0a, 0x16, 0x45, 0x6e, 0x74, 0x65, 0x72, 0x74, 0x61, 0x69, 0x6e, + 0x47, 0x61, 0x6d, 0x65, 0x52, 0x65, 0x61, 0x64, 0x79, 0x50, 0x75, 0x73, 0x68, 0x12, 0x18, 0x0a, + 0x07, 0x70, 0x31, 0x72, 0x65, 0x61, 0x64, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, + 0x70, 0x31, 0x72, 0x65, 0x61, 0x64, 0x79, 0x12, 0x18, 0x0a, 0x07, 0x70, 0x32, 0x72, 0x65, 0x61, + 0x64, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x70, 0x32, 0x72, 0x65, 0x61, 0x64, + 0x79, 0x22, 0x2d, 0x0a, 0x15, 0x45, 0x6e, 0x74, 0x65, 0x72, 0x74, 0x61, 0x69, 0x6e, 0x42, 0x6f, + 0x78, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x52, 0x65, 0x71, 0x12, 0x14, 0x0a, 0x05, 0x69, 0x6e, + 0x64, 0x65, 0x78, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x69, 0x6e, 0x64, 0x65, 0x78, + 0x22, 0x57, 0x0a, 0x16, 0x45, 0x6e, 0x74, 0x65, 0x72, 0x74, 0x61, 0x69, 0x6e, 0x42, 0x6f, 0x78, + 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x52, 0x65, 0x73, 0x70, 0x12, 0x1a, 0x0a, 0x03, 0x62, 0x6f, + 0x78, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x08, 0x2e, 0x42, 0x6f, 0x78, 0x44, 0x61, 0x74, + 0x61, 0x52, 0x03, 0x62, 0x6f, 0x78, 0x12, 0x21, 0x0a, 0x06, 0x72, 0x65, 0x77, 0x61, 0x72, 0x64, + 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x09, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x41, 0x74, 0x6e, + 0x6f, 0x52, 0x06, 0x72, 0x65, 0x77, 0x61, 0x72, 0x64, 0x22, 0x32, 0x0a, 0x18, 0x45, 0x6e, 0x74, + 0x65, 0x72, 0x74, 0x61, 0x69, 0x6e, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x4f, 0x76, + 0x65, 0x72, 0x52, 0x65, 0x71, 0x12, 0x16, 0x0a, 0x06, 0x72, 0x6f, 0x6f, 0x6d, 0x69, 0x64, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x72, 0x6f, 0x6f, 0x6d, 0x69, 0x64, 0x22, 0x1b, 0x0a, + 0x19, 0x45, 0x6e, 0x74, 0x65, 0x72, 0x74, 0x61, 0x69, 0x6e, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, + 0x6f, 0x72, 0x4f, 0x76, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x22, 0x42, 0x0a, 0x16, 0x45, 0x6e, + 0x74, 0x65, 0x72, 0x74, 0x61, 0x69, 0x6e, 0x53, 0x74, 0x61, 0x72, 0x54, 0x69, 0x6d, 0x65, 0x72, + 0x50, 0x75, 0x73, 0x68, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x05, 0x52, 0x04, 0x74, 0x69, 0x6d, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x70, 0x6f, 0x77, 0x65, + 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x70, 0x6f, 0x77, 0x65, 0x72, 0x42, 0x06, + 0x5a, 0x04, 0x2e, 0x3b, 0x70, 0x62, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( From 578707dfc6232806e49db1102eb5e3709c63c378 Mon Sep 17 00:00:00 2001 From: meixiongfeng <766881921@qq.com> Date: Mon, 18 Dec 2023 10:35:57 +0800 Subject: [PATCH 03/16] =?UTF-8?q?=E4=B8=89=E6=B6=88=E6=8A=95=E9=99=8D?= =?UTF-8?q?=E8=A7=84=E5=88=99?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- modules/entertainment/api_getlist.go | 2 + modules/entertainment/api_surrender.go | 27 ++++ modules/entertainment/room.go | 63 ++++++-- pb/entertain_msg.pb.go | 193 ++++++++++++++++++++----- pb/errorcode.pb.go | 38 +++-- 5 files changed, 258 insertions(+), 65 deletions(-) create mode 100644 modules/entertainment/api_surrender.go diff --git a/modules/entertainment/api_getlist.go b/modules/entertainment/api_getlist.go index 1c504e0a7..febbae441 100644 --- a/modules/entertainment/api_getlist.go +++ b/modules/entertainment/api_getlist.go @@ -34,6 +34,8 @@ func (this *apiComp) GetList(session comm.IUserSession, req *pb.EntertainGetList for _, v := range this.module.configure.GetGameConsumeIntegral() { list.Playtype = append(list.Playtype, v.Key) // 配置读取一个玩法 } + list.Touxiang = 0 + update["touxiang"] = list.Touxiang // 每天投降次数清0 update["rtime"] = list.Rtime update["playtype"] = list.Playtype _, endSeasonTime := utils.GetMonthStartEnd() diff --git a/modules/entertainment/api_surrender.go b/modules/entertainment/api_surrender.go new file mode 100644 index 000000000..36ae850d0 --- /dev/null +++ b/modules/entertainment/api_surrender.go @@ -0,0 +1,27 @@ +package entertainment + +import ( + "go_dreamfactory/comm" + "go_dreamfactory/pb" +) + +//参数校验 +func (this *apiComp) SurrenderCheck(session comm.IUserSession, req *pb.EntertainSurrenderReq) (errdata *pb.ErrorData) { + if req.Roomid == "" { + errdata = &pb.ErrorData{ + Code: pb.ErrorCode_ReqParameterError, + Title: pb.ErrorCode_ReqParameterError.ToString(), + } + } + return +} + +func (this *apiComp) Surrender(session comm.IUserSession, req *pb.EntertainSurrenderReq) (errdata *pb.ErrorData) { + + if errdata = this.module.gameMgr.RoomDistribute(req.Roomid, session, "surrender", req); errdata == nil { + // 操作消息返回 + session.SendMsg(string(this.module.GetType()), "surrender", &pb.EntertainSurrenderResp{}) + } + + return +} diff --git a/modules/entertainment/room.go b/modules/entertainment/room.go index 6f37b7ff1..fd9dd6faa 100644 --- a/modules/entertainment/room.go +++ b/modules/entertainment/room.go @@ -181,7 +181,7 @@ func (this *Room) AiOperator() { if this.player1.Score == this.player2.Score { this.MaxRound += 1 // 增加一回合 } else { - this.GameOver() + this.GameOver(nil) } return } @@ -339,7 +339,7 @@ func (this *Room) ReceiveMessage(session comm.IUserSession, stype string, msg pr if this.player1.Score == this.player2.Score { this.MaxRound += 1 // 增加一回合 } else { - this.GameOver() + this.GameOver(nil) } return } @@ -476,6 +476,7 @@ func (this *Room) ReceiveMessage(session comm.IUserSession, stype string, msg pr } //this.operatetimer = timewheel.Add(time.Second*time.Duration(this.MaxTime), this.operateTimeOut) case "offline": + req := msg.(*pb.RPCGeneralReqA2) fmt.Printf("useroffline: %v\n", req) @@ -496,35 +497,71 @@ func (this *Room) ReceiveMessage(session comm.IUserSession, stype string, msg pr this.ModifyUserRoomInfoData() } } + + case "surrender": + if this.Status != 2 { // 不是游戏中 直接返回 + errdata = &pb.ErrorData{ + Code: pb.ErrorCode_EntertainNoGamePlayering, + Title: pb.ErrorCode_EntertainNoGamePlayering.ToString(), + } + return + } + if list, err := this.module.model.getEntertainmList(session.GetUserId()); err == nil { + if list.Touxiang >= 3 { + errdata = &pb.ErrorData{ + Code: pb.ErrorCode_EntertainMaxTouxiangCount, + Title: pb.ErrorCode_EntertainMaxTouxiangCount.ToString(), + } + } + list.Touxiang += 1 + this.module.model.modifyEntertainmList(session.GetUserId(), map[string]interface{}{ + "touxiang": list.Touxiang, + }) + var winner *pb.PlayerData + if this.player1.Userinfo.Uid == session.GetUserId() { + winner = this.player2 + } else { + winner = this.player1 + } + this.GameOver(winner) + } else { + errdata = &pb.ErrorData{ + Code: pb.ErrorCode_DBError, + Title: pb.ErrorCode_DBError.ToString(), + Message: err.Error(), + } + return + } } return } // 游戏结束 -func (this *Room) GameOver() (errdata *pb.ErrorData) { +func (this *Room) GameOver(winner *pb.PlayerData) (errdata *pb.ErrorData) { var ( atno []*pb.UserAtno winindex int32 bReward bool res []*cfg.Gameatn - winner *pb.PlayerData lostPlayer *pb.PlayerData // 输的玩家 box *pb.BoxData // 是否可以获得宝箱奖励 ) - winner = this.player1 bReward = true - if this.player1.Score < this.player2.Score { - winner = this.player2 - winindex = 1 - if this.RoomType == 2 { // 赢家是AI 的话不发奖 - bReward = false + if winner == nil { + if this.player1.Score < this.player2.Score { + winner = this.player2 + winindex = 1 + if this.RoomType == 2 { // 赢家是AI 的话不发奖 + bReward = false + } + } else { + winner = this.player1 } } if bReward { // 发奖 if user, err := this.module.ModuleUser.GetUser(winner.Userinfo.Uid); err == nil { if conf, err := this.module.configure.GetGameConsumeintegral(user.Consumeexp); err == nil { - //res = append(res, conf.Onereward...) 这奖励手动领取 res = append(res, conf.Rewards...) for _, v := range res { if v.A == "attr" && v.T == "consumeexp" { @@ -538,7 +575,7 @@ func (this *Room) GameOver() (errdata *pb.ErrorData) { if errdata, atno = this.module.DispenseAtno(this.szSession[winindex], res, true); errdata != nil { return } - go this.module.WriteUserLog(winner.Userinfo.Uid, "GameOver", comm.GMResAddType, "xxlGameReward", atno) + go this.module.WriteUserLog(winner.Userinfo.Uid, "gameover", comm.GMResAddType, "xxlGameReward", atno) this.szSession[winindex].Push() } @@ -759,7 +796,7 @@ func (this *Room) AutoOperator(uid string) { if this.player1.Score == this.player2.Score { this.MaxRound += 1 // 增加一回合 } else { - this.GameOver() + this.GameOver(nil) } return } diff --git a/pb/entertain_msg.pb.go b/pb/entertain_msg.pb.go index 5e98042f6..debcc0790 100644 --- a/pb/entertain_msg.pb.go +++ b/pb/entertain_msg.pb.go @@ -2156,6 +2156,92 @@ func (x *EntertainStarTimerPush) GetPower() string { return "" } +// 申请投降 surrender +type EntertainSurrenderReq struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Roomid string `protobuf:"bytes,1,opt,name=roomid,proto3" json:"roomid"` //房间号 +} + +func (x *EntertainSurrenderReq) Reset() { + *x = EntertainSurrenderReq{} + if protoimpl.UnsafeEnabled { + mi := &file_entertain_entertain_msg_proto_msgTypes[38] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *EntertainSurrenderReq) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*EntertainSurrenderReq) ProtoMessage() {} + +func (x *EntertainSurrenderReq) ProtoReflect() protoreflect.Message { + mi := &file_entertain_entertain_msg_proto_msgTypes[38] + 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 EntertainSurrenderReq.ProtoReflect.Descriptor instead. +func (*EntertainSurrenderReq) Descriptor() ([]byte, []int) { + return file_entertain_entertain_msg_proto_rawDescGZIP(), []int{38} +} + +func (x *EntertainSurrenderReq) GetRoomid() string { + if x != nil { + return x.Roomid + } + return "" +} + +type EntertainSurrenderResp struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields +} + +func (x *EntertainSurrenderResp) Reset() { + *x = EntertainSurrenderResp{} + if protoimpl.UnsafeEnabled { + mi := &file_entertain_entertain_msg_proto_msgTypes[39] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *EntertainSurrenderResp) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*EntertainSurrenderResp) ProtoMessage() {} + +func (x *EntertainSurrenderResp) ProtoReflect() protoreflect.Message { + mi := &file_entertain_entertain_msg_proto_msgTypes[39] + 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 EntertainSurrenderResp.ProtoReflect.Descriptor instead. +func (*EntertainSurrenderResp) Descriptor() ([]byte, []int) { + return file_entertain_entertain_msg_proto_rawDescGZIP(), []int{39} +} + var File_entertain_entertain_msg_proto protoreflect.FileDescriptor var file_entertain_entertain_msg_proto_rawDesc = []byte{ @@ -2369,8 +2455,13 @@ var file_entertain_entertain_msg_proto_rawDesc = []byte{ 0x74, 0x65, 0x72, 0x74, 0x61, 0x69, 0x6e, 0x53, 0x74, 0x61, 0x72, 0x54, 0x69, 0x6d, 0x65, 0x72, 0x50, 0x75, 0x73, 0x68, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x74, 0x69, 0x6d, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x70, 0x6f, 0x77, 0x65, - 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x70, 0x6f, 0x77, 0x65, 0x72, 0x42, 0x06, - 0x5a, 0x04, 0x2e, 0x3b, 0x70, 0x62, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x70, 0x6f, 0x77, 0x65, 0x72, 0x22, 0x2f, + 0x0a, 0x15, 0x45, 0x6e, 0x74, 0x65, 0x72, 0x74, 0x61, 0x69, 0x6e, 0x53, 0x75, 0x72, 0x72, 0x65, + 0x6e, 0x64, 0x65, 0x72, 0x52, 0x65, 0x71, 0x12, 0x16, 0x0a, 0x06, 0x72, 0x6f, 0x6f, 0x6d, 0x69, + 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x72, 0x6f, 0x6f, 0x6d, 0x69, 0x64, 0x22, + 0x18, 0x0a, 0x16, 0x45, 0x6e, 0x74, 0x65, 0x72, 0x74, 0x61, 0x69, 0x6e, 0x53, 0x75, 0x72, 0x72, + 0x65, 0x6e, 0x64, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x42, 0x06, 0x5a, 0x04, 0x2e, 0x3b, 0x70, + 0x62, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( @@ -2385,7 +2476,7 @@ func file_entertain_entertain_msg_proto_rawDescGZIP() []byte { return file_entertain_entertain_msg_proto_rawDescData } -var file_entertain_entertain_msg_proto_msgTypes = make([]protoimpl.MessageInfo, 40) +var file_entertain_entertain_msg_proto_msgTypes = make([]protoimpl.MessageInfo, 42) var file_entertain_entertain_msg_proto_goTypes = []interface{}{ (*EntertainMatchReq)(nil), // 0: EntertainMatchReq (*EntertainMatchResp)(nil), // 1: EntertainMatchResp @@ -2425,42 +2516,44 @@ var file_entertain_entertain_msg_proto_goTypes = []interface{}{ (*EntertainOperatorOverReq)(nil), // 35: EntertainOperatorOverReq (*EntertainOperatorOverResp)(nil), // 36: EntertainOperatorOverResp (*EntertainStarTimerPush)(nil), // 37: EntertainStarTimerPush - nil, // 38: EntertainChangePush.CardEntry - nil, // 39: EntertainChangePush.SkillEntry - (*PlayerData)(nil), // 40: PlayerData - (*MapData)(nil), // 41: MapData - (*UserAtno)(nil), // 42: UserAtno - (*BoxData)(nil), // 43: BoxData - (*DBXXLData)(nil), // 44: DBXXLData + (*EntertainSurrenderReq)(nil), // 38: EntertainSurrenderReq + (*EntertainSurrenderResp)(nil), // 39: EntertainSurrenderResp + nil, // 40: EntertainChangePush.CardEntry + nil, // 41: EntertainChangePush.SkillEntry + (*PlayerData)(nil), // 42: PlayerData + (*MapData)(nil), // 43: MapData + (*UserAtno)(nil), // 44: UserAtno + (*BoxData)(nil), // 45: BoxData + (*DBXXLData)(nil), // 46: DBXXLData } var file_entertain_entertain_msg_proto_depIdxs = []int32{ - 40, // 0: EntertainStartGamePush.user1:type_name -> PlayerData - 40, // 1: EntertainStartGamePush.user2:type_name -> PlayerData - 41, // 2: EntertainStartGamePush.mpadata:type_name -> MapData - 41, // 3: EntertainOperatorRstPush.mpadata:type_name -> MapData - 40, // 4: EntertainOperatorRstPush.user1:type_name -> PlayerData - 40, // 5: EntertainOperatorRstPush.user2:type_name -> PlayerData - 40, // 6: EntertainGameOverPush.user1:type_name -> PlayerData - 40, // 7: EntertainGameOverPush.user2:type_name -> PlayerData - 41, // 8: EntertainGameOverPush.mpadata:type_name -> MapData - 42, // 9: EntertainGameOverPush.reward:type_name -> UserAtno - 43, // 10: EntertainGameOverPush.box:type_name -> BoxData - 40, // 11: EntertainEnterRoomPush.user1:type_name -> PlayerData - 40, // 12: EntertainEnterRoomPush.user2:type_name -> PlayerData - 41, // 13: EntertainReconnectResp.mpadata:type_name -> MapData - 40, // 14: EntertainReconnectResp.user1:type_name -> PlayerData - 40, // 15: EntertainReconnectResp.user2:type_name -> PlayerData - 41, // 16: EntertainRefreshPlatResp.mpadata:type_name -> MapData - 41, // 17: EntertainRefreshPush.mpadata:type_name -> MapData - 44, // 18: EntertainGetListResp.data:type_name -> DBXXLData - 44, // 19: EntertainRewardResp.data:type_name -> DBXXLData - 42, // 20: EntertainRewardResp.reward:type_name -> UserAtno - 38, // 21: EntertainChangePush.card:type_name -> EntertainChangePush.CardEntry - 39, // 22: EntertainChangePush.skill:type_name -> EntertainChangePush.SkillEntry - 40, // 23: EntertainJoinCreateRoomPush.user1:type_name -> PlayerData - 40, // 24: EntertainJoinCreateRoomPush.user2:type_name -> PlayerData - 43, // 25: EntertainBoxRewardResp.box:type_name -> BoxData - 42, // 26: EntertainBoxRewardResp.reward:type_name -> UserAtno + 42, // 0: EntertainStartGamePush.user1:type_name -> PlayerData + 42, // 1: EntertainStartGamePush.user2:type_name -> PlayerData + 43, // 2: EntertainStartGamePush.mpadata:type_name -> MapData + 43, // 3: EntertainOperatorRstPush.mpadata:type_name -> MapData + 42, // 4: EntertainOperatorRstPush.user1:type_name -> PlayerData + 42, // 5: EntertainOperatorRstPush.user2:type_name -> PlayerData + 42, // 6: EntertainGameOverPush.user1:type_name -> PlayerData + 42, // 7: EntertainGameOverPush.user2:type_name -> PlayerData + 43, // 8: EntertainGameOverPush.mpadata:type_name -> MapData + 44, // 9: EntertainGameOverPush.reward:type_name -> UserAtno + 45, // 10: EntertainGameOverPush.box:type_name -> BoxData + 42, // 11: EntertainEnterRoomPush.user1:type_name -> PlayerData + 42, // 12: EntertainEnterRoomPush.user2:type_name -> PlayerData + 43, // 13: EntertainReconnectResp.mpadata:type_name -> MapData + 42, // 14: EntertainReconnectResp.user1:type_name -> PlayerData + 42, // 15: EntertainReconnectResp.user2:type_name -> PlayerData + 43, // 16: EntertainRefreshPlatResp.mpadata:type_name -> MapData + 43, // 17: EntertainRefreshPush.mpadata:type_name -> MapData + 46, // 18: EntertainGetListResp.data:type_name -> DBXXLData + 46, // 19: EntertainRewardResp.data:type_name -> DBXXLData + 44, // 20: EntertainRewardResp.reward:type_name -> UserAtno + 40, // 21: EntertainChangePush.card:type_name -> EntertainChangePush.CardEntry + 41, // 22: EntertainChangePush.skill:type_name -> EntertainChangePush.SkillEntry + 42, // 23: EntertainJoinCreateRoomPush.user1:type_name -> PlayerData + 42, // 24: EntertainJoinCreateRoomPush.user2:type_name -> PlayerData + 45, // 25: EntertainBoxRewardResp.box:type_name -> BoxData + 44, // 26: EntertainBoxRewardResp.reward:type_name -> UserAtno 27, // [27:27] is the sub-list for method output_type 27, // [27:27] is the sub-list for method input_type 27, // [27:27] is the sub-list for extension type_name @@ -2932,6 +3025,30 @@ func file_entertain_entertain_msg_proto_init() { return nil } } + file_entertain_entertain_msg_proto_msgTypes[38].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*EntertainSurrenderReq); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_entertain_entertain_msg_proto_msgTypes[39].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*EntertainSurrenderResp); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } } type x struct{} out := protoimpl.TypeBuilder{ @@ -2939,7 +3056,7 @@ func file_entertain_entertain_msg_proto_init() { GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: file_entertain_entertain_msg_proto_rawDesc, NumEnums: 0, - NumMessages: 40, + NumMessages: 42, NumExtensions: 0, NumServices: 0, }, diff --git a/pb/errorcode.pb.go b/pb/errorcode.pb.go index 20b4e8704..765b3c401 100644 --- a/pb/errorcode.pb.go +++ b/pb/errorcode.pb.go @@ -457,15 +457,17 @@ const ( //捕羊大赛的 ErrorCode_CapturesheepRankCloseed ErrorCode = 5101 //排位比赛不在开启时间内 // xxl - ErrorCode_EntertainCantSwap ErrorCode = 5201 //不能交换 - ErrorCode_EntertainNoPower ErrorCode = 5202 //对方操作 - ErrorCode_EntertainNoHeroSkill ErrorCode = 5203 //没找到该英雄对应的技能 - ErrorCode_EntertainNoEnergy ErrorCode = 5204 //技能能量不足 - ErrorCode_EntertainCreateFailed ErrorCode = 5205 // 创建房间失败 - ErrorCode_EntertainPlayerNoReady ErrorCode = 5206 // 玩家1还没准备不能开始游戏 - ErrorCode_EntertainNotMaster ErrorCode = 5207 // 不是房主 不能解散 - ErrorCode_EntertainDissolveFailed ErrorCode = 5208 // 游戏中不允许解散 - ErrorCode_EntertainBoxEndTime ErrorCode = 5209 // 宝箱开启时间没到 + ErrorCode_EntertainCantSwap ErrorCode = 5201 //不能交换 + ErrorCode_EntertainNoPower ErrorCode = 5202 //对方操作 + ErrorCode_EntertainNoHeroSkill ErrorCode = 5203 //没找到该英雄对应的技能 + ErrorCode_EntertainNoEnergy ErrorCode = 5204 //技能能量不足 + ErrorCode_EntertainCreateFailed ErrorCode = 5205 // 创建房间失败 + ErrorCode_EntertainPlayerNoReady ErrorCode = 5206 // 玩家1还没准备不能开始游戏 + ErrorCode_EntertainNotMaster ErrorCode = 5207 // 不是房主 不能解散 + ErrorCode_EntertainDissolveFailed ErrorCode = 5208 // 游戏中不允许解散 + ErrorCode_EntertainBoxEndTime ErrorCode = 5209 // 宝箱开启时间没到 + ErrorCode_EntertainMaxTouxiangCount ErrorCode = 5210 // 达到每日最大投降次数 + ErrorCode_EntertainNoGamePlayering ErrorCode = 5211 // 非游戏中 不能投降 // integral ErrorCode_TntegralDayMaxChallenge ErrorCode = 5301 // 当日挑战达上限 ) @@ -871,6 +873,8 @@ var ( 5207: "EntertainNotMaster", 5208: "EntertainDissolveFailed", 5209: "EntertainBoxEndTime", + 5210: "EntertainMaxTouxiangCount", + 5211: "EntertainNoGamePlayering", 5301: "TntegralDayMaxChallenge", } ErrorCode_value = map[string]int32{ @@ -1272,6 +1276,8 @@ var ( "EntertainNotMaster": 5207, "EntertainDissolveFailed": 5208, "EntertainBoxEndTime": 5209, + "EntertainMaxTouxiangCount": 5210, + "EntertainNoGamePlayering": 5211, "TntegralDayMaxChallenge": 5301, } ) @@ -1307,7 +1313,7 @@ var File_errorcode_proto protoreflect.FileDescriptor var file_errorcode_proto_rawDesc = []byte{ 0x0a, 0x0f, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x63, 0x6f, 0x64, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, - 0x6f, 0x2a, 0xa0, 0x4a, 0x0a, 0x09, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x43, 0x6f, 0x64, 0x65, 0x12, + 0x6f, 0x2a, 0xdf, 0x4a, 0x0a, 0x09, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x0b, 0x0a, 0x07, 0x53, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x10, 0x00, 0x12, 0x14, 0x0a, 0x10, 0x47, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x45, 0x78, 0x63, 0x65, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x10, 0x01, 0x12, 0x11, 0x0a, 0x0d, 0x4e, 0x6f, 0x46, 0x69, 0x6e, 0x64, 0x53, 0x65, 0x72, 0x76, @@ -1899,10 +1905,14 @@ var file_errorcode_proto_rawDesc = []byte{ 0x0a, 0x17, 0x45, 0x6e, 0x74, 0x65, 0x72, 0x74, 0x61, 0x69, 0x6e, 0x44, 0x69, 0x73, 0x73, 0x6f, 0x6c, 0x76, 0x65, 0x46, 0x61, 0x69, 0x6c, 0x65, 0x64, 0x10, 0xd8, 0x28, 0x12, 0x18, 0x0a, 0x13, 0x45, 0x6e, 0x74, 0x65, 0x72, 0x74, 0x61, 0x69, 0x6e, 0x42, 0x6f, 0x78, 0x45, 0x6e, 0x64, 0x54, - 0x69, 0x6d, 0x65, 0x10, 0xd9, 0x28, 0x12, 0x1c, 0x0a, 0x17, 0x54, 0x6e, 0x74, 0x65, 0x67, 0x72, - 0x61, 0x6c, 0x44, 0x61, 0x79, 0x4d, 0x61, 0x78, 0x43, 0x68, 0x61, 0x6c, 0x6c, 0x65, 0x6e, 0x67, - 0x65, 0x10, 0xb5, 0x29, 0x42, 0x06, 0x5a, 0x04, 0x2e, 0x3b, 0x70, 0x62, 0x62, 0x06, 0x70, 0x72, - 0x6f, 0x74, 0x6f, 0x33, + 0x69, 0x6d, 0x65, 0x10, 0xd9, 0x28, 0x12, 0x1e, 0x0a, 0x19, 0x45, 0x6e, 0x74, 0x65, 0x72, 0x74, + 0x61, 0x69, 0x6e, 0x4d, 0x61, 0x78, 0x54, 0x6f, 0x75, 0x78, 0x69, 0x61, 0x6e, 0x67, 0x43, 0x6f, + 0x75, 0x6e, 0x74, 0x10, 0xda, 0x28, 0x12, 0x1d, 0x0a, 0x18, 0x45, 0x6e, 0x74, 0x65, 0x72, 0x74, + 0x61, 0x69, 0x6e, 0x4e, 0x6f, 0x47, 0x61, 0x6d, 0x65, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x69, + 0x6e, 0x67, 0x10, 0xdb, 0x28, 0x12, 0x1c, 0x0a, 0x17, 0x54, 0x6e, 0x74, 0x65, 0x67, 0x72, 0x61, + 0x6c, 0x44, 0x61, 0x79, 0x4d, 0x61, 0x78, 0x43, 0x68, 0x61, 0x6c, 0x6c, 0x65, 0x6e, 0x67, 0x65, + 0x10, 0xb5, 0x29, 0x42, 0x06, 0x5a, 0x04, 0x2e, 0x3b, 0x70, 0x62, 0x62, 0x06, 0x70, 0x72, 0x6f, + 0x74, 0x6f, 0x33, } var ( From 24cd2b350222168523d1a714742a23f0a2140394 Mon Sep 17 00:00:00 2001 From: meixiongfeng <766881921@qq.com> Date: Mon, 18 Dec 2023 10:40:43 +0800 Subject: [PATCH 04/16] =?UTF-8?q?=E6=9A=82=E6=97=B6=E5=B1=8F=E8=94=BD?= =?UTF-8?q?=E7=8E=A9=E5=AE=B6=E6=8A=80=E8=83=BD=E5=8D=A1=E5=B8=A6=E5=85=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- modules/entertainment/module.go | 18 ++++++++++++------ 1 file changed, 12 insertions(+), 6 deletions(-) diff --git a/modules/entertainment/module.go b/modules/entertainment/module.go index 26e060624..a9dbc8833 100644 --- a/modules/entertainment/module.go +++ b/modules/entertainment/module.go @@ -173,12 +173,18 @@ func (this *Entertainment) useroffline(ctx context.Context, req *pb.RPCGeneralRe func (this *Entertainment) CreateRoom(sessions []comm.IUserSession, rulesStr string) (roomid string, err error) { var ( - rules *pb.DBXxlRules = &pb.DBXxlRules{} - red *pb.DBUser - blue *pb.DBUser - p1 *pb.PlayerData - p2 *pb.PlayerData - room *Room + rules *pb.DBXxlRules = &pb.DBXxlRules{ + RoomType: 0, + Card1: "", + Card2: "", + Skill1: []int32{}, + Skill2: []int32{}, + } + red *pb.DBUser + blue *pb.DBUser + p1 *pb.PlayerData + p2 *pb.PlayerData + room *Room ) if err = json.Unmarshal([]byte(rulesStr), rules); err != nil { From 5104e22cc98a2131ed0e36a90631838682cbdcdc Mon Sep 17 00:00:00 2001 From: meixiongfeng <766881921@qq.com> Date: Mon, 18 Dec 2023 10:41:11 +0800 Subject: [PATCH 05/16] =?UTF-8?q?=E4=B8=B4=E6=97=B6=E5=B1=8F=E8=94=BD?= =?UTF-8?q?=E7=8E=A9=E5=AE=B6=E6=8A=80=E8=83=BD=E5=8D=A1=E5=B8=A6=E5=85=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- modules/entertainment/api_match.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/entertainment/api_match.go b/modules/entertainment/api_match.go index dc906ff2a..776aac162 100644 --- a/modules/entertainment/api_match.go +++ b/modules/entertainment/api_match.go @@ -8,7 +8,7 @@ import ( //参数校验 func (this *apiComp) MatchCheck(session comm.IUserSession, req *pb.EntertainMatchReq) (errdata *pb.ErrorData) { - if req.Idcard == "" || len(req.Skillcard) != 2 { + if req.Idcard == "" { errdata = &pb.ErrorData{ Code: pb.ErrorCode_ReqParameterError, Title: pb.ErrorCode_ReqParameterError.ToString(), From 3cadcaa6b482700cb7422b7c4d9a00f9d088b969 Mon Sep 17 00:00:00 2001 From: meixiongfeng <766881921@qq.com> Date: Mon, 18 Dec 2023 10:50:14 +0800 Subject: [PATCH 06/16] =?UTF-8?q?=E6=9A=82=E5=AE=9A=E6=8A=95=E9=99=8D?= =?UTF-8?q?=E6=AC=A1=E6=95=B0=20=20=E5=90=8E=E7=BB=AD=E8=B5=B0=E9=85=8D?= =?UTF-8?q?=E7=BD=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- modules/entertainment/api_getlist.go | 2 +- modules/entertainment/room.go | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/modules/entertainment/api_getlist.go b/modules/entertainment/api_getlist.go index febbae441..24e625e3b 100644 --- a/modules/entertainment/api_getlist.go +++ b/modules/entertainment/api_getlist.go @@ -34,7 +34,7 @@ func (this *apiComp) GetList(session comm.IUserSession, req *pb.EntertainGetList for _, v := range this.module.configure.GetGameConsumeIntegral() { list.Playtype = append(list.Playtype, v.Key) // 配置读取一个玩法 } - list.Touxiang = 0 + list.Touxiang = 3 // 需求 默认3 后面可能走配置 update["touxiang"] = list.Touxiang // 每天投降次数清0 update["rtime"] = list.Rtime update["playtype"] = list.Playtype diff --git a/modules/entertainment/room.go b/modules/entertainment/room.go index fd9dd6faa..277fe2114 100644 --- a/modules/entertainment/room.go +++ b/modules/entertainment/room.go @@ -507,13 +507,13 @@ func (this *Room) ReceiveMessage(session comm.IUserSession, stype string, msg pr return } if list, err := this.module.model.getEntertainmList(session.GetUserId()); err == nil { - if list.Touxiang >= 3 { + if list.Touxiang > 0 { errdata = &pb.ErrorData{ Code: pb.ErrorCode_EntertainMaxTouxiangCount, Title: pb.ErrorCode_EntertainMaxTouxiangCount.ToString(), } } - list.Touxiang += 1 + list.Touxiang -= 1 this.module.model.modifyEntertainmList(session.GetUserId(), map[string]interface{}{ "touxiang": list.Touxiang, }) From 020e1304a3c98db753062214a72c7788f21c83e9 Mon Sep 17 00:00:00 2001 From: meixiongfeng <766881921@qq.com> Date: Mon, 18 Dec 2023 11:29:33 +0800 Subject: [PATCH 07/16] =?UTF-8?q?=E6=8A=95=E9=99=8D=E6=AC=A1=E6=95=B0?= =?UTF-8?q?=E6=A0=A1=E9=AA=8C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- modules/entertainment/room.go | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/modules/entertainment/room.go b/modules/entertainment/room.go index 277fe2114..f63a87f0c 100644 --- a/modules/entertainment/room.go +++ b/modules/entertainment/room.go @@ -499,7 +499,7 @@ func (this *Room) ReceiveMessage(session comm.IUserSession, stype string, msg pr } case "surrender": - if this.Status != 2 { // 不是游戏中 直接返回 + if this.Status != 1 { // 不是游戏中 直接返回 errdata = &pb.ErrorData{ Code: pb.ErrorCode_EntertainNoGamePlayering, Title: pb.ErrorCode_EntertainNoGamePlayering.ToString(), @@ -507,7 +507,7 @@ func (this *Room) ReceiveMessage(session comm.IUserSession, stype string, msg pr return } if list, err := this.module.model.getEntertainmList(session.GetUserId()); err == nil { - if list.Touxiang > 0 { + if list.Touxiang <= 0 { errdata = &pb.ErrorData{ Code: pb.ErrorCode_EntertainMaxTouxiangCount, Title: pb.ErrorCode_EntertainMaxTouxiangCount.ToString(), From b4b68cbf852b6624801e3de6166c12920b5b1294 Mon Sep 17 00:00:00 2001 From: meixiongfeng <766881921@qq.com> Date: Mon, 18 Dec 2023 14:37:56 +0800 Subject: [PATCH 08/16] =?UTF-8?q?=E4=B8=89=E6=B6=88=E6=8A=95=E9=99=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- modules/entertainment/api_surrender.go | 29 +++++++++++++++++++++++--- modules/entertainment/room.go | 29 +++++--------------------- pb/entertain_msg.pb.go | 17 ++++++++++++--- 3 files changed, 45 insertions(+), 30 deletions(-) diff --git a/modules/entertainment/api_surrender.go b/modules/entertainment/api_surrender.go index 36ae850d0..26802cb10 100644 --- a/modules/entertainment/api_surrender.go +++ b/modules/entertainment/api_surrender.go @@ -17,10 +17,33 @@ func (this *apiComp) SurrenderCheck(session comm.IUserSession, req *pb.Entertain } func (this *apiComp) Surrender(session comm.IUserSession, req *pb.EntertainSurrenderReq) (errdata *pb.ErrorData) { - + var ( + list *pb.DBXXLData + err error + ) + if list, err = this.module.model.getEntertainmList(session.GetUserId()); err != nil { + errdata = &pb.ErrorData{ + Code: pb.ErrorCode_DBError, + Title: pb.ErrorCode_DBError.ToString(), + Message: err.Error(), + } + return + } + // 操作消息返回 + if list.Touxiang <= 0 { + errdata = &pb.ErrorData{ + Code: pb.ErrorCode_EntertainMaxTouxiangCount, + Title: pb.ErrorCode_EntertainMaxTouxiangCount.ToString(), + } + } if errdata = this.module.gameMgr.RoomDistribute(req.Roomid, session, "surrender", req); errdata == nil { - // 操作消息返回 - session.SendMsg(string(this.module.GetType()), "surrender", &pb.EntertainSurrenderResp{}) + list.Touxiang -= 1 + this.module.model.modifyEntertainmList(session.GetUserId(), map[string]interface{}{ + "touxiang": list.Touxiang, + }) + session.SendMsg(string(this.module.GetType()), "surrender", &pb.EntertainSurrenderResp{ + Leftcount: list.Touxiang, + }) } return diff --git a/modules/entertainment/room.go b/modules/entertainment/room.go index f63a87f0c..741664508 100644 --- a/modules/entertainment/room.go +++ b/modules/entertainment/room.go @@ -506,32 +506,13 @@ func (this *Room) ReceiveMessage(session comm.IUserSession, stype string, msg pr } return } - if list, err := this.module.model.getEntertainmList(session.GetUserId()); err == nil { - if list.Touxiang <= 0 { - errdata = &pb.ErrorData{ - Code: pb.ErrorCode_EntertainMaxTouxiangCount, - Title: pb.ErrorCode_EntertainMaxTouxiangCount.ToString(), - } - } - list.Touxiang -= 1 - this.module.model.modifyEntertainmList(session.GetUserId(), map[string]interface{}{ - "touxiang": list.Touxiang, - }) - var winner *pb.PlayerData - if this.player1.Userinfo.Uid == session.GetUserId() { - winner = this.player2 - } else { - winner = this.player1 - } - this.GameOver(winner) + var winner *pb.PlayerData + if this.player1.Userinfo.Uid == session.GetUserId() { + winner = this.player2 } else { - errdata = &pb.ErrorData{ - Code: pb.ErrorCode_DBError, - Title: pb.ErrorCode_DBError.ToString(), - Message: err.Error(), - } - return + winner = this.player1 } + this.GameOver(winner) } return } diff --git a/pb/entertain_msg.pb.go b/pb/entertain_msg.pb.go index debcc0790..803b53da0 100644 --- a/pb/entertain_msg.pb.go +++ b/pb/entertain_msg.pb.go @@ -2208,6 +2208,8 @@ type EntertainSurrenderResp struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields + + Leftcount int32 `protobuf:"varint,1,opt,name=leftcount,proto3" json:"leftcount"` // 投降剩余次数 } func (x *EntertainSurrenderResp) Reset() { @@ -2242,6 +2244,13 @@ func (*EntertainSurrenderResp) Descriptor() ([]byte, []int) { return file_entertain_entertain_msg_proto_rawDescGZIP(), []int{39} } +func (x *EntertainSurrenderResp) GetLeftcount() int32 { + if x != nil { + return x.Leftcount + } + return 0 +} + var File_entertain_entertain_msg_proto protoreflect.FileDescriptor var file_entertain_entertain_msg_proto_rawDesc = []byte{ @@ -2459,9 +2468,11 @@ var file_entertain_entertain_msg_proto_rawDesc = []byte{ 0x0a, 0x15, 0x45, 0x6e, 0x74, 0x65, 0x72, 0x74, 0x61, 0x69, 0x6e, 0x53, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x52, 0x65, 0x71, 0x12, 0x16, 0x0a, 0x06, 0x72, 0x6f, 0x6f, 0x6d, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x72, 0x6f, 0x6f, 0x6d, 0x69, 0x64, 0x22, - 0x18, 0x0a, 0x16, 0x45, 0x6e, 0x74, 0x65, 0x72, 0x74, 0x61, 0x69, 0x6e, 0x53, 0x75, 0x72, 0x72, - 0x65, 0x6e, 0x64, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x42, 0x06, 0x5a, 0x04, 0x2e, 0x3b, 0x70, - 0x62, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x36, 0x0a, 0x16, 0x45, 0x6e, 0x74, 0x65, 0x72, 0x74, 0x61, 0x69, 0x6e, 0x53, 0x75, 0x72, 0x72, + 0x65, 0x6e, 0x64, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x12, 0x1c, 0x0a, 0x09, 0x6c, 0x65, 0x66, + 0x74, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x6c, 0x65, + 0x66, 0x74, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x42, 0x06, 0x5a, 0x04, 0x2e, 0x3b, 0x70, 0x62, 0x62, + 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( From 708ed34d28218cb909f40dfe1008447be4cbe526 Mon Sep 17 00:00:00 2001 From: meixiongfeng <766881921@qq.com> Date: Mon, 18 Dec 2023 16:19:02 +0800 Subject: [PATCH 09/16] =?UTF-8?q?=E4=B8=8A=E4=BC=A0=E4=B8=89=E6=B6=88?= =?UTF-8?q?=E5=8D=A1=E7=89=87=E6=8A=80=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- bin/json/game_playerskill.json | 8 +- modules/entertainment/api_match.go | 7 +- modules/entertainment/module.go | 4 +- modules/entertainment/room.go | 17 ++ modules/entertainment/xxlPlat.go | 51 +++++ pb/entertain_db.pb.go | 182 ++++++++++-------- sys/configure/structs/Game.PlayerSkillData.go | 4 + 7 files changed, 187 insertions(+), 86 deletions(-) diff --git a/bin/json/game_playerskill.json b/bin/json/game_playerskill.json index 65121aec1..814e4158c 100644 --- a/bin/json/game_playerskill.json +++ b/bin/json/game_playerskill.json @@ -1,20 +1,24 @@ [ { - "key": 1, + "key": 10001, + "skillvalue": 0, "icon": "", "txt": { "key": "", "text": "" }, + "skilltype": 1, "number": 1 }, { - "key": 2, + "key": 10002, + "skillvalue": 0, "icon": "", "txt": { "key": "", "text": "" }, + "skilltype": 2, "number": 1 } ] \ No newline at end of file diff --git a/modules/entertainment/api_match.go b/modules/entertainment/api_match.go index 776aac162..adf91b895 100644 --- a/modules/entertainment/api_match.go +++ b/modules/entertainment/api_match.go @@ -78,12 +78,15 @@ func (this *apiComp) Match(session comm.IUserSession, req *pb.EntertainMatchReq) } } - + mySkill := make(map[int32]int32, 0) + for _, v := range req.Skillcard { + mySkill[v] = 1 + } this.module.match.MatchReq(&pb.DBXXLMatch{ Userinfo: comm.GetUserBaseInfo(user), Cardid: req.Idcard, Consumeexp: user.Consumeexp, - Skill: req.Skillcard, + Skill: mySkill, }) session.SendMsg(string(this.module.GetType()), "match", &pb.EntertainMatchResp{ diff --git a/modules/entertainment/module.go b/modules/entertainment/module.go index a9dbc8833..8ff2c5842 100644 --- a/modules/entertainment/module.go +++ b/modules/entertainment/module.go @@ -177,8 +177,8 @@ func (this *Entertainment) CreateRoom(sessions []comm.IUserSession, rulesStr str RoomType: 0, Card1: "", Card2: "", - Skill1: []int32{}, - Skill2: []int32{}, + Skill1: make(map[int32]int32), + Skill2: make(map[int32]int32), } red *pb.DBUser blue *pb.DBUser diff --git a/modules/entertainment/room.go b/modules/entertainment/room.go index 741664508..c27a231f9 100644 --- a/modules/entertainment/room.go +++ b/modules/entertainment/room.go @@ -221,6 +221,23 @@ func (this *Room) ReceiveMessage(session comm.IUserSession, stype string, msg pr return } return + } else if req.Itype > 0 { //玩家卡牌技能 + var ( + conf *cfg.GamePlayerSkillData + err error + list *pb.DBXXLData + ) + if conf, err = this.module.configure.GetGamePlaySkill(req.Itype); err != nil { + errdata = &pb.ErrorData{ + Code: pb.ErrorCode_ConfigNoFound, // 配置校验 + Title: pb.ErrorCode_ConfigNoFound.ToString(), + Message: err.Error(), + } + return + } + if list, err = this.module.model.getEntertainmList(session.GetUserId()); err == nil { + this.module.Debugf("%v,%v", conf, list) + } } if req.Itype == 0 && req.Curid == 0 && req.Targetid == 0 { if this.curPower == this.player1.Userinfo.Uid { diff --git a/modules/entertainment/xxlPlat.go b/modules/entertainment/xxlPlat.go index 5f37d3ad2..b12c0387e 100644 --- a/modules/entertainment/xxlPlat.go +++ b/modules/entertainment/xxlPlat.go @@ -284,6 +284,57 @@ func (this *MapData) Check5X() (bEliminate bool, xiaochu []int, s map[int]int) { } } + // 校验上下左右 + for j := 0; j < Width; j++ { + for k := 0; k < Height; k++ { + pos := j*Width + k + if pos+2 < Height { + k1 := this.Plat[pos].Color + k2 := this.Plat[pos+1].Color + k3 := this.Plat[pos+2].Color + var k4 int32 + var k5 int32 + if k1 == k2 && k3 == k1 { // 三个颜色相等 + tmp := pos + index := 0 + for { + index++ + if tmp/Width-2 >= 0 { // k1 的左右 + k4 = this.Plat[tmp/Width-1].Color + k5 = this.Plat[tmp/Width-2].Color + if k1 == k4 && k1 == k5 { + bEliminate = true + s[tmp] = FiveType + this.Plat[pos].Cid = 0 + this.Plat[pos+1].Cid = 0 + this.Plat[pos+2].Cid = 0 + this.Plat[tmp/Width-1].Cid = 0 + this.Plat[tmp/Width-2].Cid = 0 + } + } + if tmp/Width+2 < Width { + k4 = this.Plat[tmp/Width+1].Color + k5 = this.Plat[tmp/Width+2].Color + if k1 == k4 && k1 == k5 { + bEliminate = true + s[tmp] = FiveType + this.Plat[pos].Cid = 0 + this.Plat[pos+1].Cid = 0 + this.Plat[pos+2].Cid = 0 + this.Plat[tmp/Width+1].Cid = 0 + this.Plat[tmp/Width+2].Cid = 0 + } + } + tmp = pos + 2 + if index == 2 { + break + } + } + } + } + + } + } return } diff --git a/pb/entertain_db.pb.go b/pb/entertain_db.pb.go index eb5772bc1..beebfa7ff 100644 --- a/pb/entertain_db.pb.go +++ b/pb/entertain_db.pb.go @@ -273,10 +273,10 @@ type DBXXLMatch struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Userinfo *BaseUserInfo `protobuf:"bytes,1,opt,name=userinfo,proto3" json:"userinfo"` - Cardid string `protobuf:"bytes,2,opt,name=cardid,proto3" json:"cardid"` // 选择的卡片ID - Consumeexp int32 `protobuf:"varint,3,opt,name=consumeexp,proto3" json:"consumeexp"` // 消消乐积分 - Skill []int32 `protobuf:"varint,4,rep,packed,name=skill,proto3" json:"skill"` // + Userinfo *BaseUserInfo `protobuf:"bytes,1,opt,name=userinfo,proto3" json:"userinfo"` + Cardid string `protobuf:"bytes,2,opt,name=cardid,proto3" json:"cardid"` // 选择的卡片ID + Consumeexp int32 `protobuf:"varint,3,opt,name=consumeexp,proto3" json:"consumeexp"` // 消消乐积分 + Skill map[int32]int32 `protobuf:"bytes,4,rep,name=skill,proto3" json:"skill" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"` // } func (x *DBXXLMatch) Reset() { @@ -332,7 +332,7 @@ func (x *DBXXLMatch) GetConsumeexp() int32 { return 0 } -func (x *DBXXLMatch) GetSkill() []int32 { +func (x *DBXXLMatch) GetSkill() map[int32]int32 { if x != nil { return x.Skill } @@ -544,11 +544,11 @@ type DBXxlRules struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - RoomType int32 `protobuf:"varint,1,opt,name=RoomType,proto3" json:"RoomType"` // 房间类型 - Card1 string `protobuf:"bytes,2,opt,name=card1,proto3" json:"card1"` // player1 卡 - Card2 string `protobuf:"bytes,3,opt,name=card2,proto3" json:"card2"` // player2 卡 - Skill1 []int32 `protobuf:"varint,4,rep,packed,name=skill1,proto3" json:"skill1"` // 玩家1携带的技能 - Skill2 []int32 `protobuf:"varint,5,rep,packed,name=skill2,proto3" json:"skill2"` // 玩家2携带的技能 + RoomType int32 `protobuf:"varint,1,opt,name=RoomType,proto3" json:"RoomType"` // 房间类型 + Card1 string `protobuf:"bytes,2,opt,name=card1,proto3" json:"card1"` // player1 卡 + Card2 string `protobuf:"bytes,3,opt,name=card2,proto3" json:"card2"` // player2 卡 + Skill1 map[int32]int32 `protobuf:"bytes,4,rep,name=skill1,proto3" json:"skill1" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"` // 玩家1携带的技能 + Skill2 map[int32]int32 `protobuf:"bytes,5,rep,name=skill2,proto3" json:"skill2" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"` // 玩家2携带的技能 } func (x *DBXxlRules) Reset() { @@ -604,14 +604,14 @@ func (x *DBXxlRules) GetCard2() string { return "" } -func (x *DBXxlRules) GetSkill1() []int32 { +func (x *DBXxlRules) GetSkill1() map[int32]int32 { if x != nil { return x.Skill1 } return nil } -func (x *DBXxlRules) GetSkill2() []int32 { +func (x *DBXxlRules) GetSkill2() map[int32]int32 { if x != nil { return x.Skill2 } @@ -657,64 +657,80 @@ var file_entertain_entertain_db_proto_rawDesc = []byte{ 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, - 0x85, 0x01, 0x0a, 0x0a, 0x44, 0x42, 0x58, 0x58, 0x4c, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x12, 0x29, + 0xd7, 0x01, 0x0a, 0x0a, 0x44, 0x42, 0x58, 0x58, 0x4c, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x12, 0x29, 0x0a, 0x08, 0x75, 0x73, 0x65, 0x72, 0x69, 0x6e, 0x66, 0x6f, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x42, 0x61, 0x73, 0x65, 0x55, 0x73, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x08, 0x75, 0x73, 0x65, 0x72, 0x69, 0x6e, 0x66, 0x6f, 0x12, 0x16, 0x0a, 0x06, 0x63, 0x61, 0x72, 0x64, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x63, 0x61, 0x72, 0x64, 0x69, 0x64, 0x12, 0x1e, 0x0a, 0x0a, 0x63, 0x6f, 0x6e, 0x73, 0x75, 0x6d, 0x65, 0x65, 0x78, 0x70, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x63, 0x6f, 0x6e, 0x73, 0x75, 0x6d, 0x65, 0x65, 0x78, - 0x70, 0x12, 0x14, 0x0a, 0x05, 0x73, 0x6b, 0x69, 0x6c, 0x6c, 0x18, 0x04, 0x20, 0x03, 0x28, 0x05, - 0x52, 0x05, 0x73, 0x6b, 0x69, 0x6c, 0x6c, 0x22, 0x3b, 0x0a, 0x07, 0x42, 0x6f, 0x78, 0x44, 0x61, - 0x74, 0x61, 0x12, 0x14, 0x0a, 0x05, 0x62, 0x6f, 0x78, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x05, 0x52, 0x05, 0x62, 0x6f, 0x78, 0x69, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x6f, 0x70, 0x65, 0x6e, - 0x74, 0x69, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x08, 0x6f, 0x70, 0x65, 0x6e, - 0x74, 0x69, 0x6d, 0x65, 0x22, 0xba, 0x04, 0x0a, 0x09, 0x44, 0x42, 0x58, 0x58, 0x4c, 0x44, 0x61, - 0x74, 0x61, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, - 0x69, 0x64, 0x12, 0x10, 0x0a, 0x03, 0x75, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x03, 0x75, 0x69, 0x64, 0x12, 0x2e, 0x0a, 0x06, 0x72, 0x65, 0x77, 0x61, 0x72, 0x64, 0x18, 0x03, - 0x20, 0x03, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x44, 0x42, 0x58, 0x58, 0x4c, 0x44, 0x61, 0x74, 0x61, - 0x2e, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x06, 0x72, 0x65, - 0x77, 0x61, 0x72, 0x64, 0x12, 0x28, 0x0a, 0x04, 0x63, 0x61, 0x72, 0x64, 0x18, 0x04, 0x20, 0x03, - 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x44, 0x42, 0x58, 0x58, 0x4c, 0x44, 0x61, 0x74, 0x61, 0x2e, 0x43, - 0x61, 0x72, 0x64, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x04, 0x63, 0x61, 0x72, 0x64, 0x12, 0x14, - 0x0a, 0x05, 0x72, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x72, - 0x74, 0x69, 0x6d, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x6c, 0x61, 0x79, 0x74, 0x79, 0x70, 0x65, - 0x18, 0x06, 0x20, 0x03, 0x28, 0x05, 0x52, 0x08, 0x70, 0x6c, 0x61, 0x79, 0x74, 0x79, 0x70, 0x65, - 0x12, 0x1a, 0x0a, 0x03, 0x62, 0x6f, 0x78, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x08, 0x2e, - 0x42, 0x6f, 0x78, 0x44, 0x61, 0x74, 0x61, 0x52, 0x03, 0x62, 0x6f, 0x78, 0x12, 0x16, 0x0a, 0x06, - 0x72, 0x6f, 0x6f, 0x6d, 0x69, 0x64, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x72, 0x6f, - 0x6f, 0x6d, 0x69, 0x64, 0x12, 0x20, 0x0a, 0x0b, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x50, - 0x61, 0x74, 0x68, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x73, 0x65, 0x72, 0x76, 0x69, - 0x63, 0x65, 0x50, 0x61, 0x74, 0x68, 0x12, 0x14, 0x0a, 0x05, 0x65, 0x74, 0x69, 0x6d, 0x65, 0x18, - 0x0a, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x65, 0x74, 0x69, 0x6d, 0x65, 0x12, 0x1a, 0x0a, 0x08, - 0x74, 0x6f, 0x75, 0x78, 0x69, 0x61, 0x6e, 0x67, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, - 0x74, 0x6f, 0x75, 0x78, 0x69, 0x61, 0x6e, 0x67, 0x12, 0x2b, 0x0a, 0x05, 0x73, 0x6b, 0x69, 0x6c, - 0x6c, 0x18, 0x0c, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x44, 0x42, 0x58, 0x58, 0x4c, 0x44, - 0x61, 0x74, 0x61, 0x2e, 0x53, 0x6b, 0x69, 0x6c, 0x6c, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x05, - 0x73, 0x6b, 0x69, 0x6c, 0x6c, 0x12, 0x1c, 0x0a, 0x09, 0x6c, 0x69, 0x61, 0x6e, 0x73, 0x68, 0x65, - 0x6e, 0x67, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x6c, 0x69, 0x61, 0x6e, 0x73, 0x68, - 0x65, 0x6e, 0x67, 0x1a, 0x39, 0x0a, 0x0b, 0x52, 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, 0x05, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x37, - 0x0a, 0x09, 0x43, 0x61, 0x72, 0x64, 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, + 0x70, 0x12, 0x2c, 0x0a, 0x05, 0x73, 0x6b, 0x69, 0x6c, 0x6c, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, + 0x32, 0x16, 0x2e, 0x44, 0x42, 0x58, 0x58, 0x4c, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x2e, 0x53, 0x6b, + 0x69, 0x6c, 0x6c, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x05, 0x73, 0x6b, 0x69, 0x6c, 0x6c, 0x1a, + 0x38, 0x0a, 0x0a, 0x53, 0x6b, 0x69, 0x6c, 0x6c, 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, 0x3b, 0x0a, 0x07, 0x42, 0x6f, 0x78, + 0x44, 0x61, 0x74, 0x61, 0x12, 0x14, 0x0a, 0x05, 0x62, 0x6f, 0x78, 0x69, 0x64, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x05, 0x52, 0x05, 0x62, 0x6f, 0x78, 0x69, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x6f, 0x70, + 0x65, 0x6e, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x08, 0x6f, 0x70, + 0x65, 0x6e, 0x74, 0x69, 0x6d, 0x65, 0x22, 0xba, 0x04, 0x0a, 0x09, 0x44, 0x42, 0x58, 0x58, 0x4c, + 0x44, 0x61, 0x74, 0x61, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x02, 0x69, 0x64, 0x12, 0x10, 0x0a, 0x03, 0x75, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x03, 0x75, 0x69, 0x64, 0x12, 0x2e, 0x0a, 0x06, 0x72, 0x65, 0x77, 0x61, 0x72, 0x64, + 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x44, 0x42, 0x58, 0x58, 0x4c, 0x44, 0x61, + 0x74, 0x61, 0x2e, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x06, + 0x72, 0x65, 0x77, 0x61, 0x72, 0x64, 0x12, 0x28, 0x0a, 0x04, 0x63, 0x61, 0x72, 0x64, 0x18, 0x04, + 0x20, 0x03, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x44, 0x42, 0x58, 0x58, 0x4c, 0x44, 0x61, 0x74, 0x61, + 0x2e, 0x43, 0x61, 0x72, 0x64, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x04, 0x63, 0x61, 0x72, 0x64, + 0x12, 0x14, 0x0a, 0x05, 0x72, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x03, 0x52, + 0x05, 0x72, 0x74, 0x69, 0x6d, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x6c, 0x61, 0x79, 0x74, 0x79, + 0x70, 0x65, 0x18, 0x06, 0x20, 0x03, 0x28, 0x05, 0x52, 0x08, 0x70, 0x6c, 0x61, 0x79, 0x74, 0x79, + 0x70, 0x65, 0x12, 0x1a, 0x0a, 0x03, 0x62, 0x6f, 0x78, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, + 0x08, 0x2e, 0x42, 0x6f, 0x78, 0x44, 0x61, 0x74, 0x61, 0x52, 0x03, 0x62, 0x6f, 0x78, 0x12, 0x16, + 0x0a, 0x06, 0x72, 0x6f, 0x6f, 0x6d, 0x69, 0x64, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, + 0x72, 0x6f, 0x6f, 0x6d, 0x69, 0x64, 0x12, 0x20, 0x0a, 0x0b, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, + 0x65, 0x50, 0x61, 0x74, 0x68, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x73, 0x65, 0x72, + 0x76, 0x69, 0x63, 0x65, 0x50, 0x61, 0x74, 0x68, 0x12, 0x14, 0x0a, 0x05, 0x65, 0x74, 0x69, 0x6d, + 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x65, 0x74, 0x69, 0x6d, 0x65, 0x12, 0x1a, + 0x0a, 0x08, 0x74, 0x6f, 0x75, 0x78, 0x69, 0x61, 0x6e, 0x67, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x05, + 0x52, 0x08, 0x74, 0x6f, 0x75, 0x78, 0x69, 0x61, 0x6e, 0x67, 0x12, 0x2b, 0x0a, 0x05, 0x73, 0x6b, + 0x69, 0x6c, 0x6c, 0x18, 0x0c, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x44, 0x42, 0x58, 0x58, + 0x4c, 0x44, 0x61, 0x74, 0x61, 0x2e, 0x53, 0x6b, 0x69, 0x6c, 0x6c, 0x45, 0x6e, 0x74, 0x72, 0x79, + 0x52, 0x05, 0x73, 0x6b, 0x69, 0x6c, 0x6c, 0x12, 0x1c, 0x0a, 0x09, 0x6c, 0x69, 0x61, 0x6e, 0x73, + 0x68, 0x65, 0x6e, 0x67, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x6c, 0x69, 0x61, 0x6e, + 0x73, 0x68, 0x65, 0x6e, 0x67, 0x1a, 0x39, 0x0a, 0x0b, 0x52, 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, 0x05, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, + 0x1a, 0x37, 0x0a, 0x09, 0x43, 0x61, 0x72, 0x64, 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, 0x1a, 0x38, 0x0a, 0x0a, 0x53, 0x6b, 0x69, + 0x6c, 0x6c, 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, 0xac, 0x02, 0x0a, 0x0a, 0x44, 0x42, 0x58, 0x78, 0x6c, 0x52, 0x75, 0x6c, + 0x65, 0x73, 0x12, 0x1a, 0x0a, 0x08, 0x52, 0x6f, 0x6f, 0x6d, 0x54, 0x79, 0x70, 0x65, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x52, 0x6f, 0x6f, 0x6d, 0x54, 0x79, 0x70, 0x65, 0x12, 0x14, + 0x0a, 0x05, 0x63, 0x61, 0x72, 0x64, 0x31, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x63, + 0x61, 0x72, 0x64, 0x31, 0x12, 0x14, 0x0a, 0x05, 0x63, 0x61, 0x72, 0x64, 0x32, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x05, 0x63, 0x61, 0x72, 0x64, 0x32, 0x12, 0x2f, 0x0a, 0x06, 0x73, 0x6b, + 0x69, 0x6c, 0x6c, 0x31, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x44, 0x42, 0x58, + 0x78, 0x6c, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x53, 0x6b, 0x69, 0x6c, 0x6c, 0x31, 0x45, 0x6e, + 0x74, 0x72, 0x79, 0x52, 0x06, 0x73, 0x6b, 0x69, 0x6c, 0x6c, 0x31, 0x12, 0x2f, 0x0a, 0x06, 0x73, + 0x6b, 0x69, 0x6c, 0x6c, 0x32, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x44, 0x42, + 0x58, 0x78, 0x6c, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x53, 0x6b, 0x69, 0x6c, 0x6c, 0x32, 0x45, + 0x6e, 0x74, 0x72, 0x79, 0x52, 0x06, 0x73, 0x6b, 0x69, 0x6c, 0x6c, 0x32, 0x1a, 0x39, 0x0a, 0x0b, + 0x53, 0x6b, 0x69, 0x6c, 0x6c, 0x31, 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, 0x1a, 0x38, 0x0a, 0x0a, 0x53, 0x6b, 0x69, 0x6c, 0x6c, - 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, 0x84, 0x01, 0x0a, 0x0a, 0x44, 0x42, 0x58, 0x78, 0x6c, 0x52, 0x75, 0x6c, 0x65, 0x73, - 0x12, 0x1a, 0x0a, 0x08, 0x52, 0x6f, 0x6f, 0x6d, 0x54, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x05, 0x52, 0x08, 0x52, 0x6f, 0x6f, 0x6d, 0x54, 0x79, 0x70, 0x65, 0x12, 0x14, 0x0a, 0x05, - 0x63, 0x61, 0x72, 0x64, 0x31, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x63, 0x61, 0x72, - 0x64, 0x31, 0x12, 0x14, 0x0a, 0x05, 0x63, 0x61, 0x72, 0x64, 0x32, 0x18, 0x03, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x05, 0x63, 0x61, 0x72, 0x64, 0x32, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x6b, 0x69, 0x6c, - 0x6c, 0x31, 0x18, 0x04, 0x20, 0x03, 0x28, 0x05, 0x52, 0x06, 0x73, 0x6b, 0x69, 0x6c, 0x6c, 0x31, - 0x12, 0x16, 0x0a, 0x06, 0x73, 0x6b, 0x69, 0x6c, 0x6c, 0x32, 0x18, 0x05, 0x20, 0x03, 0x28, 0x05, - 0x52, 0x06, 0x73, 0x6b, 0x69, 0x6c, 0x6c, 0x32, 0x42, 0x06, 0x5a, 0x04, 0x2e, 0x3b, 0x70, 0x62, - 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x39, 0x0a, 0x0b, 0x53, 0x6b, 0x69, 0x6c, 0x6c, + 0x32, 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, 0x42, 0x06, 0x5a, 0x04, 0x2e, 0x3b, 0x70, 0x62, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, + 0x6f, 0x33, } var ( @@ -729,7 +745,7 @@ func file_entertain_entertain_db_proto_rawDescGZIP() []byte { return file_entertain_entertain_db_proto_rawDescData } -var file_entertain_entertain_db_proto_msgTypes = make([]protoimpl.MessageInfo, 11) +var file_entertain_entertain_db_proto_msgTypes = make([]protoimpl.MessageInfo, 14) var file_entertain_entertain_db_proto_goTypes = []interface{}{ (*MapData)(nil), // 0: MapData (*GirdeData)(nil), // 1: GirdeData @@ -739,25 +755,31 @@ var file_entertain_entertain_db_proto_goTypes = []interface{}{ (*DBXXLData)(nil), // 5: DBXXLData (*DBXxlRules)(nil), // 6: DBXxlRules nil, // 7: PlayerData.SkillEntry - nil, // 8: DBXXLData.RewardEntry - nil, // 9: DBXXLData.CardEntry - nil, // 10: DBXXLData.SkillEntry - (*BaseUserInfo)(nil), // 11: BaseUserInfo + nil, // 8: DBXXLMatch.SkillEntry + nil, // 9: DBXXLData.RewardEntry + nil, // 10: DBXXLData.CardEntry + nil, // 11: DBXXLData.SkillEntry + nil, // 12: DBXxlRules.Skill1Entry + nil, // 13: DBXxlRules.Skill2Entry + (*BaseUserInfo)(nil), // 14: BaseUserInfo } var file_entertain_entertain_db_proto_depIdxs = []int32{ 1, // 0: MapData.data:type_name -> GirdeData - 11, // 1: PlayerData.userinfo:type_name -> BaseUserInfo + 14, // 1: PlayerData.userinfo:type_name -> BaseUserInfo 7, // 2: PlayerData.skill:type_name -> PlayerData.SkillEntry - 11, // 3: DBXXLMatch.userinfo:type_name -> BaseUserInfo - 8, // 4: DBXXLData.reward:type_name -> DBXXLData.RewardEntry - 9, // 5: DBXXLData.card:type_name -> DBXXLData.CardEntry - 4, // 6: DBXXLData.box:type_name -> BoxData - 10, // 7: DBXXLData.skill:type_name -> DBXXLData.SkillEntry - 8, // [8:8] is the sub-list for method output_type - 8, // [8:8] is the sub-list for method input_type - 8, // [8:8] is the sub-list for extension type_name - 8, // [8:8] is the sub-list for extension extendee - 0, // [0:8] is the sub-list for field type_name + 14, // 3: DBXXLMatch.userinfo:type_name -> BaseUserInfo + 8, // 4: DBXXLMatch.skill:type_name -> DBXXLMatch.SkillEntry + 9, // 5: DBXXLData.reward:type_name -> DBXXLData.RewardEntry + 10, // 6: DBXXLData.card:type_name -> DBXXLData.CardEntry + 4, // 7: DBXXLData.box:type_name -> BoxData + 11, // 8: DBXXLData.skill:type_name -> DBXXLData.SkillEntry + 12, // 9: DBXxlRules.skill1:type_name -> DBXxlRules.Skill1Entry + 13, // 10: DBXxlRules.skill2:type_name -> DBXxlRules.Skill2Entry + 11, // [11:11] is the sub-list for method output_type + 11, // [11:11] is the sub-list for method input_type + 11, // [11:11] is the sub-list for extension type_name + 11, // [11:11] is the sub-list for extension extendee + 0, // [0:11] is the sub-list for field type_name } func init() { file_entertain_entertain_db_proto_init() } @@ -858,7 +880,7 @@ func file_entertain_entertain_db_proto_init() { GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: file_entertain_entertain_db_proto_rawDesc, NumEnums: 0, - NumMessages: 11, + NumMessages: 14, NumExtensions: 0, NumServices: 0, }, diff --git a/sys/configure/structs/Game.PlayerSkillData.go b/sys/configure/structs/Game.PlayerSkillData.go index 4fe10a0a8..428d288a1 100644 --- a/sys/configure/structs/Game.PlayerSkillData.go +++ b/sys/configure/structs/Game.PlayerSkillData.go @@ -12,8 +12,10 @@ import "errors" type GamePlayerSkillData struct { Key int32 + Skillvalue int32 Icon string Txt string + Skilltype int32 Number int32 } @@ -25,8 +27,10 @@ func (*GamePlayerSkillData) GetTypeId() int32 { func (_v *GamePlayerSkillData)Deserialize(_buf map[string]interface{}) (err error) { { var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["key"].(float64); !_ok_ { err = errors.New("key error"); return }; _v.Key = int32(_tempNum_) } + { var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["skillvalue"].(float64); !_ok_ { err = errors.New("skillvalue error"); return }; _v.Skillvalue = int32(_tempNum_) } { var _ok_ bool; if _v.Icon, _ok_ = _buf["icon"].(string); !_ok_ { err = errors.New("icon error"); return } } {var _ok_ bool; var __json_text__ map[string]interface{}; if __json_text__, _ok_ = _buf["txt"].(map[string]interface{}) ; !_ok_ { err = errors.New("_v.Txt error"); return }; { var _ok_ bool; if _, _ok_ = __json_text__["key"].(string); !_ok_ { err = errors.New("key error"); return } }; { var _ok_ bool; if _v.Txt, _ok_ = __json_text__["text"].(string); !_ok_ { err = errors.New("text error"); return } } } + { var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["skilltype"].(float64); !_ok_ { err = errors.New("skilltype error"); return }; _v.Skilltype = int32(_tempNum_) } { var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["number"].(float64); !_ok_ { err = errors.New("number error"); return }; _v.Number = int32(_tempNum_) } return } From 69ff573f16dbeb0a948717ec7163cc2848e4d55e Mon Sep 17 00:00:00 2001 From: meixiongfeng <766881921@qq.com> Date: Mon, 18 Dec 2023 17:11:34 +0800 Subject: [PATCH 10/16] =?UTF-8?q?=E7=8E=A9=E5=AE=B6=E6=8A=80=E8=83=BD?= =?UTF-8?q?=E5=B8=A6=E5=85=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- modules/entertainment/match.go | 9 ++-- modules/entertainment/room.go | 87 ++++++++++++++++++++++++++++++++-- pb/errorcode.pb.go | 14 ++++-- 3 files changed, 94 insertions(+), 16 deletions(-) diff --git a/modules/entertainment/match.go b/modules/entertainment/match.go index 4ecd1a0f8..da2a698c8 100644 --- a/modules/entertainment/match.go +++ b/modules/entertainment/match.go @@ -68,23 +68,20 @@ func (this *matchComp) MatchNotic(players map[string]interface{}) (err error) { playerSlice = append(playerSlice, v.(*pb.DBXXLMatch)) } for pos, v := range playerSlice { - t := make(map[int32]int32, 0) - for _, v := range v.Skill { - t[v] = 1 - } + if pos == 0 { p1 = &pb.PlayerData{ Userinfo: v.Userinfo, Cardid: v.Cardid, Consumeexp: v.Consumeexp, - Skill: t, + Skill: v.Skill, } } else if pos == 1 { p2 = &pb.PlayerData{ Userinfo: v.Userinfo, Cardid: v.Cardid, Consumeexp: v.Consumeexp, - Skill: t, + Skill: v.Skill, } } else { break diff --git a/modules/entertainment/room.go b/modules/entertainment/room.go index c27a231f9..084271629 100644 --- a/modules/entertainment/room.go +++ b/modules/entertainment/room.go @@ -196,11 +196,12 @@ func (this *Room) ReceiveMessage(session comm.IUserSession, stype string, msg pr switch stype { case "operator": // 操作消息 var ( - curScore int32 // 该次操作的得分 - oid1 int32 // 唯一id - oid2 int32 - color int32 // 校验消除的颜色 - bAddPs bool + curScore int32 // 该次操作的得分 + oid1 int32 // 唯一id + oid2 int32 + color int32 // 校验消除的颜色 + bAddPs bool + curPlayer *pb.PlayerData ) var szMap []*pb.MapData req := msg.(*pb.EntertainOperatorReq) @@ -213,8 +214,10 @@ func (this *Room) ReceiveMessage(session comm.IUserSession, stype string, msg pr } if this.curPower == this.player1.Userinfo.Uid { color = 1 + curPlayer = this.player1 } else { color = 2 + curPlayer = this.player2 } if req.Itype == 1 { //释放技能 if errdata = this.UserSkillUp(color, req.Curid); errdata != nil { @@ -237,7 +240,23 @@ func (this *Room) ReceiveMessage(session comm.IUserSession, stype string, msg pr } if list, err = this.module.model.getEntertainmList(session.GetUserId()); err == nil { this.module.Debugf("%v,%v", conf, list) + } + if curPlayer.Skill[req.Itype] <= 0 { + errdata = &pb.ErrorData{ + Code: pb.ErrorCode_EntertainNoSkillCard, // 技能卡不足 + Title: pb.ErrorCode_EntertainNoSkillCard.ToString(), + } + return + } + curPlayer.Skill[req.Itype] -= 1 + if errdata = this.UserCardSkill(curPlayer, req.Curid); errdata != nil { + return + } + this.module.model.modifyEntertainmList(session.GetUserId(), map[string]interface{}{ + "skill": curPlayer.Skill, + }) + return } if req.Itype == 0 && req.Curid == 0 && req.Targetid == 0 { if this.curPower == this.player1.Userinfo.Uid { @@ -908,3 +927,61 @@ func (this *Room) ChangePower() { this.player2.Ps = 0 } } + +// 玩家释放技能 +func (this *Room) UserCardSkill(curPlayer *pb.PlayerData, curid int32) (errdata *pb.ErrorData) { + var ( + curScore int32 // 该次操作的得分 + oid1 int32 // 唯一id + oid2 int32 + ) + var szMap []*pb.MapData + + conf, err := this.module.configure.GetGameConsumeHero(curPlayer.Cardid) + if err != nil { + errdata = &pb.ErrorData{ + Code: pb.ErrorCode_EntertainNoHeroSkill, + Title: pb.ErrorCode_EntertainNoHeroSkill.ToString(), + } + return + } + if curPlayer.Energy >= conf.Skillload { + curPlayer.Energy = 0 // 清零 + if _, m := this.chessboard.SkillUp(curid, 1, conf.Skilleffect, conf.Skillvalue, true); len(m) > 0 { + szMap = append(szMap, m...) + } else { + szMap = append(szMap, &pb.MapData{ + Data: this.chessboard.GetPalatData(), + }) + } + for _, v := range szMap { + curScore += v.CurSocre + curPlayer.Score += v.CurSocre + v.CurSocre = curPlayer.Score + } + + } else { + errdata = &pb.ErrorData{ + Code: pb.ErrorCode_EntertainNoEnergy, + Title: pb.ErrorCode_EntertainNoEnergy.ToString(), + } + return + } + this.NexPower = this.curPower + + if err := this.module.SendMsgSyncToSession(string(this.module.GetType()), "operatorrst", &pb.EntertainOperatorRstPush{ + Mpadata: szMap, + Power: this.NexPower, + Curpower: this.curPower, + Score: curScore, + Round: this.round, + User1: this.player1, + User2: this.player2, + Itype: 1, + Curid: oid1, + Targetid: oid2, + }, this.szSession...); err != nil { + this.module.Errorln(err) + } + return +} diff --git a/pb/errorcode.pb.go b/pb/errorcode.pb.go index 765b3c401..87c5363f9 100644 --- a/pb/errorcode.pb.go +++ b/pb/errorcode.pb.go @@ -468,6 +468,7 @@ const ( ErrorCode_EntertainBoxEndTime ErrorCode = 5209 // 宝箱开启时间没到 ErrorCode_EntertainMaxTouxiangCount ErrorCode = 5210 // 达到每日最大投降次数 ErrorCode_EntertainNoGamePlayering ErrorCode = 5211 // 非游戏中 不能投降 + ErrorCode_EntertainNoSkillCard ErrorCode = 5212 //技能卡不足 // integral ErrorCode_TntegralDayMaxChallenge ErrorCode = 5301 // 当日挑战达上限 ) @@ -875,6 +876,7 @@ var ( 5209: "EntertainBoxEndTime", 5210: "EntertainMaxTouxiangCount", 5211: "EntertainNoGamePlayering", + 5212: "EntertainNoSkillCard", 5301: "TntegralDayMaxChallenge", } ErrorCode_value = map[string]int32{ @@ -1278,6 +1280,7 @@ var ( "EntertainBoxEndTime": 5209, "EntertainMaxTouxiangCount": 5210, "EntertainNoGamePlayering": 5211, + "EntertainNoSkillCard": 5212, "TntegralDayMaxChallenge": 5301, } ) @@ -1313,7 +1316,7 @@ var File_errorcode_proto protoreflect.FileDescriptor var file_errorcode_proto_rawDesc = []byte{ 0x0a, 0x0f, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x63, 0x6f, 0x64, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, - 0x6f, 0x2a, 0xdf, 0x4a, 0x0a, 0x09, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x43, 0x6f, 0x64, 0x65, 0x12, + 0x6f, 0x2a, 0xfa, 0x4a, 0x0a, 0x09, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x0b, 0x0a, 0x07, 0x53, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x10, 0x00, 0x12, 0x14, 0x0a, 0x10, 0x47, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x45, 0x78, 0x63, 0x65, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x10, 0x01, 0x12, 0x11, 0x0a, 0x0d, 0x4e, 0x6f, 0x46, 0x69, 0x6e, 0x64, 0x53, 0x65, 0x72, 0x76, @@ -1909,10 +1912,11 @@ var file_errorcode_proto_rawDesc = []byte{ 0x61, 0x69, 0x6e, 0x4d, 0x61, 0x78, 0x54, 0x6f, 0x75, 0x78, 0x69, 0x61, 0x6e, 0x67, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x10, 0xda, 0x28, 0x12, 0x1d, 0x0a, 0x18, 0x45, 0x6e, 0x74, 0x65, 0x72, 0x74, 0x61, 0x69, 0x6e, 0x4e, 0x6f, 0x47, 0x61, 0x6d, 0x65, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x69, - 0x6e, 0x67, 0x10, 0xdb, 0x28, 0x12, 0x1c, 0x0a, 0x17, 0x54, 0x6e, 0x74, 0x65, 0x67, 0x72, 0x61, - 0x6c, 0x44, 0x61, 0x79, 0x4d, 0x61, 0x78, 0x43, 0x68, 0x61, 0x6c, 0x6c, 0x65, 0x6e, 0x67, 0x65, - 0x10, 0xb5, 0x29, 0x42, 0x06, 0x5a, 0x04, 0x2e, 0x3b, 0x70, 0x62, 0x62, 0x06, 0x70, 0x72, 0x6f, - 0x74, 0x6f, 0x33, + 0x6e, 0x67, 0x10, 0xdb, 0x28, 0x12, 0x19, 0x0a, 0x14, 0x45, 0x6e, 0x74, 0x65, 0x72, 0x74, 0x61, + 0x69, 0x6e, 0x4e, 0x6f, 0x53, 0x6b, 0x69, 0x6c, 0x6c, 0x43, 0x61, 0x72, 0x64, 0x10, 0xdc, 0x28, + 0x12, 0x1c, 0x0a, 0x17, 0x54, 0x6e, 0x74, 0x65, 0x67, 0x72, 0x61, 0x6c, 0x44, 0x61, 0x79, 0x4d, + 0x61, 0x78, 0x43, 0x68, 0x61, 0x6c, 0x6c, 0x65, 0x6e, 0x67, 0x65, 0x10, 0xb5, 0x29, 0x42, 0x06, + 0x5a, 0x04, 0x2e, 0x3b, 0x70, 0x62, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( From ddda51aecee60960f588c34aa56525f26a7f2feb Mon Sep 17 00:00:00 2001 From: meixiongfeng <766881921@qq.com> Date: Tue, 19 Dec 2023 17:54:16 +0800 Subject: [PATCH 11/16] =?UTF-8?q?#41509=20=E9=9C=80=E6=B1=82=20=E3=80=90?= =?UTF-8?q?=E6=A2=A6=E5=B7=A5=E5=9C=BA=E7=B3=BB=E7=BB=9F=E3=80=91=20<-?= =?UTF-8?q?=E7=AD=96=E5=88=92->=20=E3=80=90=E6=95=B0=E5=80=BC=E3=80=91?= =?UTF-8?q?=E5=8D=8A=E4=B8=AA=E5=B0=8F=E6=97=B6=E5=90=8E=E5=BA=94=E8=AF=A5?= =?UTF-8?q?=E6=98=AF=E5=9B=9E=E5=A4=8D=E5=88=B0160=20=E7=9B=AE=E5=89=8D?= =?UTF-8?q?=E6=9C=AA=E5=9B=9E=E5=A4=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- modules/entertainment/model.go | 1 + modules/user/module.go | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/modules/entertainment/model.go b/modules/entertainment/model.go index 5448cba96..32936e228 100644 --- a/modules/entertainment/model.go +++ b/modules/entertainment/model.go @@ -39,6 +39,7 @@ func (this *modelComp) getEntertainmList(uid string) (result *pb.DBXXLData, err Reward: map[int32]int32{}, Card: map[string]int32{}, + Skill: map[int32]int32{}, } if db.IsCross() { if tag, _, b := utils.UIdSplit(uid); b { diff --git a/modules/user/module.go b/modules/user/module.go index 0fa792eeb..eb9b9fabc 100644 --- a/modules/user/module.go +++ b/modules/user/module.go @@ -1088,7 +1088,7 @@ func (this *User) recoverUserPs(user *pb.DBUser) (change bool, total int32, next return } total = pconf.PsCeiling - cur := time.Now().Unix() + cur := configure.Now().Unix() if user.LastRecoverPsSec == 0 { user.LastRecoverPsSec = cur change = true From fa7c1bb404d358331c8c56bdaf90034d259c3250 Mon Sep 17 00:00:00 2001 From: meixiongfeng <766881921@qq.com> Date: Tue, 19 Dec 2023 19:28:36 +0800 Subject: [PATCH 12/16] =?UTF-8?q?=E6=9B=BF=E6=8D=A2=E5=BF=83=E6=84=BF?= =?UTF-8?q?=E8=8B=B1=E9=9B=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- modules/hero/api_drawCard.go | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/modules/hero/api_drawCard.go b/modules/hero/api_drawCard.go index 4ecd669a3..fab704a68 100644 --- a/modules/hero/api_drawCard.go +++ b/modules/hero/api_drawCard.go @@ -247,7 +247,7 @@ func (this *apiComp) DrawCard(session comm.IUserSession, req *pb.HeroDrawCardReq tmp4 = this.module.ModuleTools.GetGlobalConf().RewardStar4 var tmp5 *cfg.Gameatn tmp5 = this.module.ModuleTools.GetGlobalConf().RewardStar5 - for _, heroId := range szCards { + for i, heroId := range szCards { HeroConf, _ := this.module.configure.GetHeroConfig(heroId) szStar = append(szStar, HeroConf.Star) // 获得许愿石 if HeroConf.Star == 4 { @@ -272,6 +272,7 @@ func (this *apiComp) DrawCard(session comm.IUserSession, req *pb.HeroDrawCardReq } } heroId = heroRecord.LimitHero // 替换成心愿英雄 + szCards[i] = heroId } } } From a9c24b2c196bac1514db1f1ac09493df44ed6412 Mon Sep 17 00:00:00 2001 From: meixiongfeng <766881921@qq.com> Date: Tue, 19 Dec 2023 20:47:02 +0800 Subject: [PATCH 13/16] =?UTF-8?q?=E4=B8=89=E6=B6=88=E6=88=98=E4=BB=A4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- comm/imodule.go | 2 + modules/entertainment/api_receive.go | 82 +++++++ modules/entertainment/configure.go | 52 ++++- modules/entertainment/module.go | 21 ++ modules/pay/module.go | 25 ++- pb/entertain_db.pb.go | 318 +++++++++++++++++---------- pb/entertain_msg.pb.go | 225 +++++++++++++++---- pb/friend_msg.pb.go | 111 +++++----- pb/pay_db.pb.go | 24 +- 9 files changed, 631 insertions(+), 229 deletions(-) create mode 100644 modules/entertainment/api_receive.go diff --git a/comm/imodule.go b/comm/imodule.go index 28c826f1f..159a729b8 100644 --- a/comm/imodule.go +++ b/comm/imodule.go @@ -694,6 +694,8 @@ type ( UserOffline(roomid string, uid string) (err error) //主动认输 AdmitDefeat(roomid string, uid string) (err error) + + IPayDelivery } IMoonlv interface { IBuriedUpdateNotify diff --git a/modules/entertainment/api_receive.go b/modules/entertainment/api_receive.go new file mode 100644 index 000000000..bdf4da719 --- /dev/null +++ b/modules/entertainment/api_receive.go @@ -0,0 +1,82 @@ +package entertainment + +import ( + "go_dreamfactory/comm" + "go_dreamfactory/pb" + cfg "go_dreamfactory/sys/configure/structs" +) + +// 参数校验 +func (this *apiComp) ReceiveCheck(session comm.IUserSession, req *pb.EntertainReceiveReq) (errdata *pb.ErrorData) { + + return +} + +// /获取系统公告 +func (this *apiComp) Receive(session comm.IUserSession, req *pb.EntertainReceiveReq) (errdata *pb.ErrorData) { + var ( + info *pb.DBXXLData + warorder *pb.Warorder + confs []*cfg.GamePassCheckData + awards []*cfg.Gameatn + award []*pb.UserAtno + err error + progress int32 + ) + if errdata = this.ReceiveCheck(session, req); errdata != nil { + return + } + if info, err = this.module.model.getEntertainmList(session.GetUserId()); err != nil { + errdata = &pb.ErrorData{ + Code: pb.ErrorCode_DBError, + Title: pb.ErrorCode_DBError.ToString(), + Message: err.Error(), + } + return + } + if confs, err = this.module.configure.getorder(req.Rtype); err != nil { + errdata = &pb.ErrorData{ + Code: pb.ErrorCode_ConfigNoFound, + Title: pb.ErrorCode_ConfigNoFound.ToString(), + Message: err.Error(), + } + return + } + progress = int32(this.module.ModuleUser.QueryAttributeValue(session.GetUserId(), comm.Consumeexp)) + awards = make([]*cfg.Gameatn, 0) + for _, v := range confs { + if v.Parameter <= progress { + if warorder.Freeprogress < v.Parameter { + awards = append(awards, v.FreeReward...) + + } + if warorder.Vip { + if warorder.Payprogress < v.Parameter { + awards = append(awards, v.PayReward...) + } + } + } + } + warorder.Freeprogress = progress + if warorder.Vip { + warorder.Payprogress = progress + } + warorder.Freeprogress = 1 + if warorder.Vip { + warorder.Payprogress = 1 + } + + if errdata, award = this.module.DispenseAtno(session, awards, true); errdata != nil { + return + } + this.module.model.Change(session.GetUserId(), map[string]interface{}{ + "freeprogress": info.Freeprogress, + "payprogress": info.Payprogress, + }) + session.SendMsg(string(this.module.GetType()), "receive", &pb.EntertainReceiveResp{Info: info, Award: award}) + + go this.module.AsynHandleSession(session.Clone(), func(session comm.IUserSession) { + this.module.WriteUserLog(session.GetUserId(), req, comm.GMResAddType, "EntertainReceiveReq", award) + }) + return +} diff --git a/modules/entertainment/configure.go b/modules/entertainment/configure.go index f8fba4406..2cedf5f7e 100644 --- a/modules/entertainment/configure.go +++ b/modules/entertainment/configure.go @@ -19,6 +19,7 @@ const ( game_playingmethod = "game_playingmethod.json" consume_box = "game_consumebox.json" game_playerskill = "game_playerskill.json" + game_passcheck = "game_passcheck.json" ) // /配置管理组件 @@ -27,6 +28,7 @@ type configureComp struct { module *Entertainment lock sync.RWMutex block map[int32]*cfg.GameBlockData + order map[int32][]*cfg.GamePassCheckData //战令 } const moduleName = "entertainment" @@ -43,7 +45,7 @@ func (this *configureComp) Init(service core.IService, module core.IModule, comp game_playerskill: cfg.NewGamePlayerSkill, }) configure.RegisterConfigure(game_block, cfg.NewGameBlock, this.LoadGameBlock) - + configure.RegisterConfigure(game_passcheck, cfg.NewGamePassCheck, this.updatePassCheck) return } @@ -288,3 +290,51 @@ func (this *configureComp) GetGamePlaySkill(skillid int32) (conf *cfg.GamePlayer err = comm.NewNotFoundConfErr(moduleName, game_playerskill, skillid) return } + +// 更新任务配置表 +func (this *configureComp) updatePassCheck() { + gwt, err := this.getPassCheckCfg() + if err != nil { + this.module.Error("世界任务配置表异常!") + return + } + + orderConf := make(map[int32][]*cfg.GamePassCheckData) + for _, v := range gwt.GetDataList() { + if _, ok := orderConf[v.PasscheckType]; !ok { + orderConf[v.PasscheckType] = make([]*cfg.GamePassCheckData, 0) + } + orderConf[v.PasscheckType] = append(orderConf[v.PasscheckType], v) + } + + this.lock.Lock() + this.order = orderConf + this.lock.Unlock() +} + +func (this *configureComp) getorder(wtype int32) (results []*cfg.GamePassCheckData, err error) { + this.lock.RLock() + defer this.lock.RUnlock() + var ok bool + if results, ok = this.order[wtype]; !ok { + err = fmt.Errorf("no found wtype:%d", wtype) + } + return +} + +// 读取任务配置表 +func (this *configureComp) getPassCheckCfg() (data *cfg.GamePassCheck, err error) { + var ( + v interface{} + ok bool + ) + if v, err = this.GetConfigure(game_passcheck); err != nil { + return + } else { + if data, ok = v.(*cfg.GamePassCheck); !ok { + err = fmt.Errorf("%T is *cfg.GameWorldTask", v) + return + } + } + return +} diff --git a/modules/entertainment/module.go b/modules/entertainment/module.go index 8ff2c5842..61fe110b5 100644 --- a/modules/entertainment/module.go +++ b/modules/entertainment/module.go @@ -325,3 +325,24 @@ func (this *Entertainment) ConsumXxlSkillCard(session comm.IUserSession, skillCa }) return } +func (this *Entertainment) Delivery(session comm.IUserSession, pId int32) (errdata *pb.ErrorData, items []*pb.UserAtno) { + + var ( + result *pb.DBXXLData + err error + ) + + if result, err = this.model.getEntertainmList(session.GetUserId()); err != nil { + errdata = &pb.ErrorData{ + Code: pb.ErrorCode_DBError, + Message: err.Error(), + } + return + } + + result.Vip = true + this.model.Change(session.GetUserId(), map[string]interface{}{ + "vip": result.Vip, + }) + return +} diff --git a/modules/pay/module.go b/modules/pay/module.go index 0b6eb420a..481813c14 100644 --- a/modules/pay/module.go +++ b/modules/pay/module.go @@ -29,13 +29,14 @@ type Pay struct { modelPayUser *modelPayUserComp modelDiamond *modelDiamondComp modelDaily *modelDailyComp - modelActivity *modelActivityComp //活动礼包 - privilege comm.IPayDelivery //月卡 - warorder comm.IWarorder //战令 - shopcenter comm.IPayDelivery //购物中心 - addrecharge comm.IAddrecharge //累充系统 - pushgiftbag comm.IPushgiftbag //推送礼包 - island comm.IIsland //海岛战令 + modelActivity *modelActivityComp //活动礼包 + privilege comm.IPayDelivery //月卡 + warorder comm.IWarorder //战令 + shopcenter comm.IPayDelivery //购物中心 + addrecharge comm.IAddrecharge //累充系统 + pushgiftbag comm.IPushgiftbag //推送礼包 + island comm.IIsland //海岛战令 + xxlPass comm.IEntertainment //三消战令 configure *configureComp } @@ -81,6 +82,10 @@ func (this *Pay) Start() (err error) { return } this.island = module.(comm.IIsland) + if module, err = this.service.GetModule(comm.ModuleEntertainment); err != nil { + return + } + this.xxlPass = module.(comm.IEntertainment) this.service.RegisterFunctionName(string(comm.Rpc_ModulePayDelivery), this.Rpc_ModulePayDelivery) return } @@ -205,6 +210,12 @@ func (this *Pay) Rpc_ModulePayDelivery(ctx context.Context, args *pb.HttpPayDeli return } break + case pb.DBPayType_XxlPass: + if errdata, items = this.xxlPass.Delivery(session, order.Pid); errdata != nil { + reply.Code = errdata.Code + return + } + break } this.addrecharge.RechargeIntegral(session, conf.Integral) //记录累充积分 for _, v := range res { diff --git a/pb/entertain_db.pb.go b/pb/entertain_db.pb.go index beebfa7ff..ae44958c3 100644 --- a/pb/entertain_db.pb.go +++ b/pb/entertain_db.pb.go @@ -267,6 +267,45 @@ func (x *PlayerData) GetSkill() map[int32]int32 { return nil } +//战令 +type XxlWarorder struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields +} + +func (x *XxlWarorder) Reset() { + *x = XxlWarorder{} + if protoimpl.UnsafeEnabled { + mi := &file_entertain_entertain_db_proto_msgTypes[3] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *XxlWarorder) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*XxlWarorder) ProtoMessage() {} + +func (x *XxlWarorder) ProtoReflect() protoreflect.Message { + mi := &file_entertain_entertain_db_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 XxlWarorder.ProtoReflect.Descriptor instead. +func (*XxlWarorder) Descriptor() ([]byte, []int) { + return file_entertain_entertain_db_proto_rawDescGZIP(), []int{3} +} + // 消消乐匹配数据 type DBXXLMatch struct { state protoimpl.MessageState @@ -282,7 +321,7 @@ type DBXXLMatch struct { func (x *DBXXLMatch) Reset() { *x = DBXXLMatch{} if protoimpl.UnsafeEnabled { - mi := &file_entertain_entertain_db_proto_msgTypes[3] + mi := &file_entertain_entertain_db_proto_msgTypes[4] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -295,7 +334,7 @@ func (x *DBXXLMatch) String() string { func (*DBXXLMatch) ProtoMessage() {} func (x *DBXXLMatch) ProtoReflect() protoreflect.Message { - mi := &file_entertain_entertain_db_proto_msgTypes[3] + mi := &file_entertain_entertain_db_proto_msgTypes[4] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -308,7 +347,7 @@ func (x *DBXXLMatch) ProtoReflect() protoreflect.Message { // Deprecated: Use DBXXLMatch.ProtoReflect.Descriptor instead. func (*DBXXLMatch) Descriptor() ([]byte, []int) { - return file_entertain_entertain_db_proto_rawDescGZIP(), []int{3} + return file_entertain_entertain_db_proto_rawDescGZIP(), []int{4} } func (x *DBXXLMatch) GetUserinfo() *BaseUserInfo { @@ -351,7 +390,7 @@ type BoxData struct { func (x *BoxData) Reset() { *x = BoxData{} if protoimpl.UnsafeEnabled { - mi := &file_entertain_entertain_db_proto_msgTypes[4] + mi := &file_entertain_entertain_db_proto_msgTypes[5] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -364,7 +403,7 @@ func (x *BoxData) String() string { func (*BoxData) ProtoMessage() {} func (x *BoxData) ProtoReflect() protoreflect.Message { - mi := &file_entertain_entertain_db_proto_msgTypes[4] + mi := &file_entertain_entertain_db_proto_msgTypes[5] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -377,7 +416,7 @@ func (x *BoxData) ProtoReflect() protoreflect.Message { // Deprecated: Use BoxData.ProtoReflect.Descriptor instead. func (*BoxData) Descriptor() ([]byte, []int) { - return file_entertain_entertain_db_proto_rawDescGZIP(), []int{4} + return file_entertain_entertain_db_proto_rawDescGZIP(), []int{5} } func (x *BoxData) GetBoxid() int32 { @@ -406,19 +445,22 @@ type DBXXLData struct { Rtime int64 `protobuf:"varint,5,opt,name=rtime,proto3" json:"rtime"` // 刷新时间 (客户端不用) Playtype []int32 `protobuf:"varint,6,rep,packed,name=playtype,proto3" json:"playtype"` // 每天随机玩法 // map boxid = 7; // 宝箱 key 宝箱id value 可领取的时间 - Box []*BoxData `protobuf:"bytes,7,rep,name=box,proto3" json:"box"` - Roomid string `protobuf:"bytes,8,opt,name=roomid,proto3" json:"roomid"` // 房间id 重连用 - ServicePath string `protobuf:"bytes,9,opt,name=servicePath,proto3" json:"servicePath"` // 目标服务节点 重连RPC用 - Etime int64 `protobuf:"varint,10,opt,name=etime,proto3" json:"etime"` // 赛季结束时间 - Touxiang int32 `protobuf:"varint,11,opt,name=touxiang,proto3" json:"touxiang"` // 今天投降的次数 - Skill map[int32]int32 `protobuf:"bytes,12,rep,name=skill,proto3" json:"skill" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"` // key 技能id value 数量(可为0) - Liansheng int32 `protobuf:"varint,13,opt,name=liansheng,proto3" json:"liansheng"` // 连胜 + Box []*BoxData `protobuf:"bytes,7,rep,name=box,proto3" json:"box"` + Roomid string `protobuf:"bytes,8,opt,name=roomid,proto3" json:"roomid"` // 房间id 重连用 + ServicePath string `protobuf:"bytes,9,opt,name=servicePath,proto3" json:"servicePath"` // 目标服务节点 重连RPC用 + Etime int64 `protobuf:"varint,10,opt,name=etime,proto3" json:"etime"` // 赛季结束时间 + Touxiang int32 `protobuf:"varint,11,opt,name=touxiang,proto3" json:"touxiang"` // 今天投降的次数 + Skill map[int32]int32 `protobuf:"bytes,12,rep,name=skill,proto3" json:"skill" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"` // key 技能id value 数量(可为0) + Liansheng int32 `protobuf:"varint,13,opt,name=liansheng,proto3" json:"liansheng"` // 连胜 + Freeprogress int32 `protobuf:"varint,14,opt,name=freeprogress,proto3" json:"freeprogress"` //已领取进度 + Payprogress int32 `protobuf:"varint,15,opt,name=payprogress,proto3" json:"payprogress"` + Vip bool `protobuf:"varint,16,opt,name=vip,proto3" json:"vip"` // 是否购买 } func (x *DBXXLData) Reset() { *x = DBXXLData{} if protoimpl.UnsafeEnabled { - mi := &file_entertain_entertain_db_proto_msgTypes[5] + mi := &file_entertain_entertain_db_proto_msgTypes[6] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -431,7 +473,7 @@ func (x *DBXXLData) String() string { func (*DBXXLData) ProtoMessage() {} func (x *DBXXLData) ProtoReflect() protoreflect.Message { - mi := &file_entertain_entertain_db_proto_msgTypes[5] + mi := &file_entertain_entertain_db_proto_msgTypes[6] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -444,7 +486,7 @@ func (x *DBXXLData) ProtoReflect() protoreflect.Message { // Deprecated: Use DBXXLData.ProtoReflect.Descriptor instead. func (*DBXXLData) Descriptor() ([]byte, []int) { - return file_entertain_entertain_db_proto_rawDescGZIP(), []int{5} + return file_entertain_entertain_db_proto_rawDescGZIP(), []int{6} } func (x *DBXXLData) GetId() string { @@ -538,6 +580,27 @@ func (x *DBXXLData) GetLiansheng() int32 { return 0 } +func (x *DBXXLData) GetFreeprogress() int32 { + if x != nil { + return x.Freeprogress + } + return 0 +} + +func (x *DBXXLData) GetPayprogress() int32 { + if x != nil { + return x.Payprogress + } + return 0 +} + +func (x *DBXXLData) GetVip() bool { + if x != nil { + return x.Vip + } + return false +} + // 三消游戏规则 type DBXxlRules struct { state protoimpl.MessageState @@ -554,7 +617,7 @@ type DBXxlRules struct { func (x *DBXxlRules) Reset() { *x = DBXxlRules{} if protoimpl.UnsafeEnabled { - mi := &file_entertain_entertain_db_proto_msgTypes[6] + mi := &file_entertain_entertain_db_proto_msgTypes[7] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -567,7 +630,7 @@ func (x *DBXxlRules) String() string { func (*DBXxlRules) ProtoMessage() {} func (x *DBXxlRules) ProtoReflect() protoreflect.Message { - mi := &file_entertain_entertain_db_proto_msgTypes[6] + mi := &file_entertain_entertain_db_proto_msgTypes[7] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -580,7 +643,7 @@ func (x *DBXxlRules) ProtoReflect() protoreflect.Message { // Deprecated: Use DBXxlRules.ProtoReflect.Descriptor instead. func (*DBXxlRules) Descriptor() ([]byte, []int) { - return file_entertain_entertain_db_proto_rawDescGZIP(), []int{6} + return file_entertain_entertain_db_proto_rawDescGZIP(), []int{7} } func (x *DBXxlRules) GetRoomType() int32 { @@ -657,80 +720,86 @@ var file_entertain_entertain_db_proto_rawDesc = []byte{ 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, - 0xd7, 0x01, 0x0a, 0x0a, 0x44, 0x42, 0x58, 0x58, 0x4c, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x12, 0x29, - 0x0a, 0x08, 0x75, 0x73, 0x65, 0x72, 0x69, 0x6e, 0x66, 0x6f, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x0d, 0x2e, 0x42, 0x61, 0x73, 0x65, 0x55, 0x73, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x52, - 0x08, 0x75, 0x73, 0x65, 0x72, 0x69, 0x6e, 0x66, 0x6f, 0x12, 0x16, 0x0a, 0x06, 0x63, 0x61, 0x72, - 0x64, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x63, 0x61, 0x72, 0x64, 0x69, - 0x64, 0x12, 0x1e, 0x0a, 0x0a, 0x63, 0x6f, 0x6e, 0x73, 0x75, 0x6d, 0x65, 0x65, 0x78, 0x70, 0x18, - 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x63, 0x6f, 0x6e, 0x73, 0x75, 0x6d, 0x65, 0x65, 0x78, - 0x70, 0x12, 0x2c, 0x0a, 0x05, 0x73, 0x6b, 0x69, 0x6c, 0x6c, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, - 0x32, 0x16, 0x2e, 0x44, 0x42, 0x58, 0x58, 0x4c, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x2e, 0x53, 0x6b, - 0x69, 0x6c, 0x6c, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x05, 0x73, 0x6b, 0x69, 0x6c, 0x6c, 0x1a, - 0x38, 0x0a, 0x0a, 0x53, 0x6b, 0x69, 0x6c, 0x6c, 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, 0x3b, 0x0a, 0x07, 0x42, 0x6f, 0x78, - 0x44, 0x61, 0x74, 0x61, 0x12, 0x14, 0x0a, 0x05, 0x62, 0x6f, 0x78, 0x69, 0x64, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x05, 0x52, 0x05, 0x62, 0x6f, 0x78, 0x69, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x6f, 0x70, - 0x65, 0x6e, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x08, 0x6f, 0x70, - 0x65, 0x6e, 0x74, 0x69, 0x6d, 0x65, 0x22, 0xba, 0x04, 0x0a, 0x09, 0x44, 0x42, 0x58, 0x58, 0x4c, - 0x44, 0x61, 0x74, 0x61, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x02, 0x69, 0x64, 0x12, 0x10, 0x0a, 0x03, 0x75, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x03, 0x75, 0x69, 0x64, 0x12, 0x2e, 0x0a, 0x06, 0x72, 0x65, 0x77, 0x61, 0x72, 0x64, - 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x44, 0x42, 0x58, 0x58, 0x4c, 0x44, 0x61, - 0x74, 0x61, 0x2e, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x06, - 0x72, 0x65, 0x77, 0x61, 0x72, 0x64, 0x12, 0x28, 0x0a, 0x04, 0x63, 0x61, 0x72, 0x64, 0x18, 0x04, - 0x20, 0x03, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x44, 0x42, 0x58, 0x58, 0x4c, 0x44, 0x61, 0x74, 0x61, - 0x2e, 0x43, 0x61, 0x72, 0x64, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x04, 0x63, 0x61, 0x72, 0x64, - 0x12, 0x14, 0x0a, 0x05, 0x72, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x03, 0x52, - 0x05, 0x72, 0x74, 0x69, 0x6d, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x6c, 0x61, 0x79, 0x74, 0x79, - 0x70, 0x65, 0x18, 0x06, 0x20, 0x03, 0x28, 0x05, 0x52, 0x08, 0x70, 0x6c, 0x61, 0x79, 0x74, 0x79, - 0x70, 0x65, 0x12, 0x1a, 0x0a, 0x03, 0x62, 0x6f, 0x78, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, - 0x08, 0x2e, 0x42, 0x6f, 0x78, 0x44, 0x61, 0x74, 0x61, 0x52, 0x03, 0x62, 0x6f, 0x78, 0x12, 0x16, - 0x0a, 0x06, 0x72, 0x6f, 0x6f, 0x6d, 0x69, 0x64, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, - 0x72, 0x6f, 0x6f, 0x6d, 0x69, 0x64, 0x12, 0x20, 0x0a, 0x0b, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, - 0x65, 0x50, 0x61, 0x74, 0x68, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x73, 0x65, 0x72, - 0x76, 0x69, 0x63, 0x65, 0x50, 0x61, 0x74, 0x68, 0x12, 0x14, 0x0a, 0x05, 0x65, 0x74, 0x69, 0x6d, - 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x65, 0x74, 0x69, 0x6d, 0x65, 0x12, 0x1a, - 0x0a, 0x08, 0x74, 0x6f, 0x75, 0x78, 0x69, 0x61, 0x6e, 0x67, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x05, - 0x52, 0x08, 0x74, 0x6f, 0x75, 0x78, 0x69, 0x61, 0x6e, 0x67, 0x12, 0x2b, 0x0a, 0x05, 0x73, 0x6b, - 0x69, 0x6c, 0x6c, 0x18, 0x0c, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x44, 0x42, 0x58, 0x58, - 0x4c, 0x44, 0x61, 0x74, 0x61, 0x2e, 0x53, 0x6b, 0x69, 0x6c, 0x6c, 0x45, 0x6e, 0x74, 0x72, 0x79, - 0x52, 0x05, 0x73, 0x6b, 0x69, 0x6c, 0x6c, 0x12, 0x1c, 0x0a, 0x09, 0x6c, 0x69, 0x61, 0x6e, 0x73, - 0x68, 0x65, 0x6e, 0x67, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x6c, 0x69, 0x61, 0x6e, - 0x73, 0x68, 0x65, 0x6e, 0x67, 0x1a, 0x39, 0x0a, 0x0b, 0x52, 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, 0x05, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, - 0x1a, 0x37, 0x0a, 0x09, 0x43, 0x61, 0x72, 0x64, 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, 0x1a, 0x38, 0x0a, 0x0a, 0x53, 0x6b, 0x69, - 0x6c, 0x6c, 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, 0xac, 0x02, 0x0a, 0x0a, 0x44, 0x42, 0x58, 0x78, 0x6c, 0x52, 0x75, 0x6c, - 0x65, 0x73, 0x12, 0x1a, 0x0a, 0x08, 0x52, 0x6f, 0x6f, 0x6d, 0x54, 0x79, 0x70, 0x65, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x52, 0x6f, 0x6f, 0x6d, 0x54, 0x79, 0x70, 0x65, 0x12, 0x14, - 0x0a, 0x05, 0x63, 0x61, 0x72, 0x64, 0x31, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x63, - 0x61, 0x72, 0x64, 0x31, 0x12, 0x14, 0x0a, 0x05, 0x63, 0x61, 0x72, 0x64, 0x32, 0x18, 0x03, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x05, 0x63, 0x61, 0x72, 0x64, 0x32, 0x12, 0x2f, 0x0a, 0x06, 0x73, 0x6b, - 0x69, 0x6c, 0x6c, 0x31, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x44, 0x42, 0x58, - 0x78, 0x6c, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x53, 0x6b, 0x69, 0x6c, 0x6c, 0x31, 0x45, 0x6e, - 0x74, 0x72, 0x79, 0x52, 0x06, 0x73, 0x6b, 0x69, 0x6c, 0x6c, 0x31, 0x12, 0x2f, 0x0a, 0x06, 0x73, - 0x6b, 0x69, 0x6c, 0x6c, 0x32, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x44, 0x42, - 0x58, 0x78, 0x6c, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x53, 0x6b, 0x69, 0x6c, 0x6c, 0x32, 0x45, - 0x6e, 0x74, 0x72, 0x79, 0x52, 0x06, 0x73, 0x6b, 0x69, 0x6c, 0x6c, 0x32, 0x1a, 0x39, 0x0a, 0x0b, - 0x53, 0x6b, 0x69, 0x6c, 0x6c, 0x31, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, + 0x0d, 0x0a, 0x0b, 0x58, 0x78, 0x6c, 0x57, 0x61, 0x72, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x22, 0xd7, + 0x01, 0x0a, 0x0a, 0x44, 0x42, 0x58, 0x58, 0x4c, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x12, 0x29, 0x0a, + 0x08, 0x75, 0x73, 0x65, 0x72, 0x69, 0x6e, 0x66, 0x6f, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x0d, 0x2e, 0x42, 0x61, 0x73, 0x65, 0x55, 0x73, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x08, + 0x75, 0x73, 0x65, 0x72, 0x69, 0x6e, 0x66, 0x6f, 0x12, 0x16, 0x0a, 0x06, 0x63, 0x61, 0x72, 0x64, + 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x63, 0x61, 0x72, 0x64, 0x69, 0x64, + 0x12, 0x1e, 0x0a, 0x0a, 0x63, 0x6f, 0x6e, 0x73, 0x75, 0x6d, 0x65, 0x65, 0x78, 0x70, 0x18, 0x03, + 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x63, 0x6f, 0x6e, 0x73, 0x75, 0x6d, 0x65, 0x65, 0x78, 0x70, + 0x12, 0x2c, 0x0a, 0x05, 0x73, 0x6b, 0x69, 0x6c, 0x6c, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, + 0x16, 0x2e, 0x44, 0x42, 0x58, 0x58, 0x4c, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x2e, 0x53, 0x6b, 0x69, + 0x6c, 0x6c, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x05, 0x73, 0x6b, 0x69, 0x6c, 0x6c, 0x1a, 0x38, + 0x0a, 0x0a, 0x53, 0x6b, 0x69, 0x6c, 0x6c, 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, 0x3b, 0x0a, 0x07, 0x42, 0x6f, 0x78, 0x44, + 0x61, 0x74, 0x61, 0x12, 0x14, 0x0a, 0x05, 0x62, 0x6f, 0x78, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x05, 0x52, 0x05, 0x62, 0x6f, 0x78, 0x69, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x6f, 0x70, 0x65, + 0x6e, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x08, 0x6f, 0x70, 0x65, + 0x6e, 0x74, 0x69, 0x6d, 0x65, 0x22, 0x92, 0x05, 0x0a, 0x09, 0x44, 0x42, 0x58, 0x58, 0x4c, 0x44, + 0x61, 0x74, 0x61, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x02, 0x69, 0x64, 0x12, 0x10, 0x0a, 0x03, 0x75, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x03, 0x75, 0x69, 0x64, 0x12, 0x2e, 0x0a, 0x06, 0x72, 0x65, 0x77, 0x61, 0x72, 0x64, 0x18, + 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x44, 0x42, 0x58, 0x58, 0x4c, 0x44, 0x61, 0x74, + 0x61, 0x2e, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x06, 0x72, + 0x65, 0x77, 0x61, 0x72, 0x64, 0x12, 0x28, 0x0a, 0x04, 0x63, 0x61, 0x72, 0x64, 0x18, 0x04, 0x20, + 0x03, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x44, 0x42, 0x58, 0x58, 0x4c, 0x44, 0x61, 0x74, 0x61, 0x2e, + 0x43, 0x61, 0x72, 0x64, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x04, 0x63, 0x61, 0x72, 0x64, 0x12, + 0x14, 0x0a, 0x05, 0x72, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, + 0x72, 0x74, 0x69, 0x6d, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x6c, 0x61, 0x79, 0x74, 0x79, 0x70, + 0x65, 0x18, 0x06, 0x20, 0x03, 0x28, 0x05, 0x52, 0x08, 0x70, 0x6c, 0x61, 0x79, 0x74, 0x79, 0x70, + 0x65, 0x12, 0x1a, 0x0a, 0x03, 0x62, 0x6f, 0x78, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x08, + 0x2e, 0x42, 0x6f, 0x78, 0x44, 0x61, 0x74, 0x61, 0x52, 0x03, 0x62, 0x6f, 0x78, 0x12, 0x16, 0x0a, + 0x06, 0x72, 0x6f, 0x6f, 0x6d, 0x69, 0x64, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x72, + 0x6f, 0x6f, 0x6d, 0x69, 0x64, 0x12, 0x20, 0x0a, 0x0b, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, + 0x50, 0x61, 0x74, 0x68, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x73, 0x65, 0x72, 0x76, + 0x69, 0x63, 0x65, 0x50, 0x61, 0x74, 0x68, 0x12, 0x14, 0x0a, 0x05, 0x65, 0x74, 0x69, 0x6d, 0x65, + 0x18, 0x0a, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x65, 0x74, 0x69, 0x6d, 0x65, 0x12, 0x1a, 0x0a, + 0x08, 0x74, 0x6f, 0x75, 0x78, 0x69, 0x61, 0x6e, 0x67, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x05, 0x52, + 0x08, 0x74, 0x6f, 0x75, 0x78, 0x69, 0x61, 0x6e, 0x67, 0x12, 0x2b, 0x0a, 0x05, 0x73, 0x6b, 0x69, + 0x6c, 0x6c, 0x18, 0x0c, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x44, 0x42, 0x58, 0x58, 0x4c, + 0x44, 0x61, 0x74, 0x61, 0x2e, 0x53, 0x6b, 0x69, 0x6c, 0x6c, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, + 0x05, 0x73, 0x6b, 0x69, 0x6c, 0x6c, 0x12, 0x1c, 0x0a, 0x09, 0x6c, 0x69, 0x61, 0x6e, 0x73, 0x68, + 0x65, 0x6e, 0x67, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x6c, 0x69, 0x61, 0x6e, 0x73, + 0x68, 0x65, 0x6e, 0x67, 0x12, 0x22, 0x0a, 0x0c, 0x66, 0x72, 0x65, 0x65, 0x70, 0x72, 0x6f, 0x67, + 0x72, 0x65, 0x73, 0x73, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0c, 0x66, 0x72, 0x65, 0x65, + 0x70, 0x72, 0x6f, 0x67, 0x72, 0x65, 0x73, 0x73, 0x12, 0x20, 0x0a, 0x0b, 0x70, 0x61, 0x79, 0x70, + 0x72, 0x6f, 0x67, 0x72, 0x65, 0x73, 0x73, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x70, + 0x61, 0x79, 0x70, 0x72, 0x6f, 0x67, 0x72, 0x65, 0x73, 0x73, 0x12, 0x10, 0x0a, 0x03, 0x76, 0x69, + 0x70, 0x18, 0x10, 0x20, 0x01, 0x28, 0x08, 0x52, 0x03, 0x76, 0x69, 0x70, 0x1a, 0x39, 0x0a, 0x0b, + 0x52, 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, 0x05, 0x52, 0x05, 0x76, 0x61, - 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x39, 0x0a, 0x0b, 0x53, 0x6b, 0x69, 0x6c, 0x6c, - 0x32, 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, 0x42, 0x06, 0x5a, 0x04, 0x2e, 0x3b, 0x70, 0x62, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, - 0x6f, 0x33, + 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x37, 0x0a, 0x09, 0x43, 0x61, 0x72, 0x64, 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, + 0x1a, 0x38, 0x0a, 0x0a, 0x53, 0x6b, 0x69, 0x6c, 0x6c, 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, 0xac, 0x02, 0x0a, 0x0a, 0x44, + 0x42, 0x58, 0x78, 0x6c, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x12, 0x1a, 0x0a, 0x08, 0x52, 0x6f, 0x6f, + 0x6d, 0x54, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x52, 0x6f, 0x6f, + 0x6d, 0x54, 0x79, 0x70, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x63, 0x61, 0x72, 0x64, 0x31, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x63, 0x61, 0x72, 0x64, 0x31, 0x12, 0x14, 0x0a, 0x05, 0x63, + 0x61, 0x72, 0x64, 0x32, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x63, 0x61, 0x72, 0x64, + 0x32, 0x12, 0x2f, 0x0a, 0x06, 0x73, 0x6b, 0x69, 0x6c, 0x6c, 0x31, 0x18, 0x04, 0x20, 0x03, 0x28, + 0x0b, 0x32, 0x17, 0x2e, 0x44, 0x42, 0x58, 0x78, 0x6c, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x53, + 0x6b, 0x69, 0x6c, 0x6c, 0x31, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x06, 0x73, 0x6b, 0x69, 0x6c, + 0x6c, 0x31, 0x12, 0x2f, 0x0a, 0x06, 0x73, 0x6b, 0x69, 0x6c, 0x6c, 0x32, 0x18, 0x05, 0x20, 0x03, + 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x44, 0x42, 0x58, 0x78, 0x6c, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x2e, + 0x53, 0x6b, 0x69, 0x6c, 0x6c, 0x32, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x06, 0x73, 0x6b, 0x69, + 0x6c, 0x6c, 0x32, 0x1a, 0x39, 0x0a, 0x0b, 0x53, 0x6b, 0x69, 0x6c, 0x6c, 0x31, 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, 0x1a, 0x39, + 0x0a, 0x0b, 0x53, 0x6b, 0x69, 0x6c, 0x6c, 0x32, 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, 0x42, 0x06, 0x5a, 0x04, 0x2e, 0x3b, 0x70, + 0x62, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( @@ -745,36 +814,37 @@ func file_entertain_entertain_db_proto_rawDescGZIP() []byte { return file_entertain_entertain_db_proto_rawDescData } -var file_entertain_entertain_db_proto_msgTypes = make([]protoimpl.MessageInfo, 14) +var file_entertain_entertain_db_proto_msgTypes = make([]protoimpl.MessageInfo, 15) var file_entertain_entertain_db_proto_goTypes = []interface{}{ (*MapData)(nil), // 0: MapData (*GirdeData)(nil), // 1: GirdeData (*PlayerData)(nil), // 2: PlayerData - (*DBXXLMatch)(nil), // 3: DBXXLMatch - (*BoxData)(nil), // 4: BoxData - (*DBXXLData)(nil), // 5: DBXXLData - (*DBXxlRules)(nil), // 6: DBXxlRules - nil, // 7: PlayerData.SkillEntry - nil, // 8: DBXXLMatch.SkillEntry - nil, // 9: DBXXLData.RewardEntry - nil, // 10: DBXXLData.CardEntry - nil, // 11: DBXXLData.SkillEntry - nil, // 12: DBXxlRules.Skill1Entry - nil, // 13: DBXxlRules.Skill2Entry - (*BaseUserInfo)(nil), // 14: BaseUserInfo + (*XxlWarorder)(nil), // 3: XxlWarorder + (*DBXXLMatch)(nil), // 4: DBXXLMatch + (*BoxData)(nil), // 5: BoxData + (*DBXXLData)(nil), // 6: DBXXLData + (*DBXxlRules)(nil), // 7: DBXxlRules + nil, // 8: PlayerData.SkillEntry + nil, // 9: DBXXLMatch.SkillEntry + nil, // 10: DBXXLData.RewardEntry + nil, // 11: DBXXLData.CardEntry + nil, // 12: DBXXLData.SkillEntry + nil, // 13: DBXxlRules.Skill1Entry + nil, // 14: DBXxlRules.Skill2Entry + (*BaseUserInfo)(nil), // 15: BaseUserInfo } var file_entertain_entertain_db_proto_depIdxs = []int32{ 1, // 0: MapData.data:type_name -> GirdeData - 14, // 1: PlayerData.userinfo:type_name -> BaseUserInfo - 7, // 2: PlayerData.skill:type_name -> PlayerData.SkillEntry - 14, // 3: DBXXLMatch.userinfo:type_name -> BaseUserInfo - 8, // 4: DBXXLMatch.skill:type_name -> DBXXLMatch.SkillEntry - 9, // 5: DBXXLData.reward:type_name -> DBXXLData.RewardEntry - 10, // 6: DBXXLData.card:type_name -> DBXXLData.CardEntry - 4, // 7: DBXXLData.box:type_name -> BoxData - 11, // 8: DBXXLData.skill:type_name -> DBXXLData.SkillEntry - 12, // 9: DBXxlRules.skill1:type_name -> DBXxlRules.Skill1Entry - 13, // 10: DBXxlRules.skill2:type_name -> DBXxlRules.Skill2Entry + 15, // 1: PlayerData.userinfo:type_name -> BaseUserInfo + 8, // 2: PlayerData.skill:type_name -> PlayerData.SkillEntry + 15, // 3: DBXXLMatch.userinfo:type_name -> BaseUserInfo + 9, // 4: DBXXLMatch.skill:type_name -> DBXXLMatch.SkillEntry + 10, // 5: DBXXLData.reward:type_name -> DBXXLData.RewardEntry + 11, // 6: DBXXLData.card:type_name -> DBXXLData.CardEntry + 5, // 7: DBXXLData.box:type_name -> BoxData + 12, // 8: DBXXLData.skill:type_name -> DBXXLData.SkillEntry + 13, // 9: DBXxlRules.skill1:type_name -> DBXxlRules.Skill1Entry + 14, // 10: DBXxlRules.skill2:type_name -> DBXxlRules.Skill2Entry 11, // [11:11] is the sub-list for method output_type 11, // [11:11] is the sub-list for method input_type 11, // [11:11] is the sub-list for extension type_name @@ -826,7 +896,7 @@ func file_entertain_entertain_db_proto_init() { } } file_entertain_entertain_db_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*DBXXLMatch); i { + switch v := v.(*XxlWarorder); i { case 0: return &v.state case 1: @@ -838,7 +908,7 @@ func file_entertain_entertain_db_proto_init() { } } file_entertain_entertain_db_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*BoxData); i { + switch v := v.(*DBXXLMatch); i { case 0: return &v.state case 1: @@ -850,7 +920,7 @@ func file_entertain_entertain_db_proto_init() { } } file_entertain_entertain_db_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*DBXXLData); i { + switch v := v.(*BoxData); i { case 0: return &v.state case 1: @@ -862,6 +932,18 @@ func file_entertain_entertain_db_proto_init() { } } file_entertain_entertain_db_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*DBXXLData); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_entertain_entertain_db_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*DBXxlRules); i { case 0: return &v.state @@ -880,7 +962,7 @@ func file_entertain_entertain_db_proto_init() { GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: file_entertain_entertain_db_proto_rawDesc, NumEnums: 0, - NumMessages: 14, + NumMessages: 15, NumExtensions: 0, NumServices: 0, }, diff --git a/pb/entertain_msg.pb.go b/pb/entertain_msg.pb.go index 803b53da0..4fa698d51 100644 --- a/pb/entertain_msg.pb.go +++ b/pb/entertain_msg.pb.go @@ -2251,6 +2251,109 @@ func (x *EntertainSurrenderResp) GetLeftcount() int32 { return 0 } +// 战令奖励领取 +type EntertainReceiveReq struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Rtype int32 `protobuf:"varint,1,opt,name=Rtype,proto3" json:"Rtype"` +} + +func (x *EntertainReceiveReq) Reset() { + *x = EntertainReceiveReq{} + if protoimpl.UnsafeEnabled { + mi := &file_entertain_entertain_msg_proto_msgTypes[40] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *EntertainReceiveReq) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*EntertainReceiveReq) ProtoMessage() {} + +func (x *EntertainReceiveReq) ProtoReflect() protoreflect.Message { + mi := &file_entertain_entertain_msg_proto_msgTypes[40] + 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 EntertainReceiveReq.ProtoReflect.Descriptor instead. +func (*EntertainReceiveReq) Descriptor() ([]byte, []int) { + return file_entertain_entertain_msg_proto_rawDescGZIP(), []int{40} +} + +func (x *EntertainReceiveReq) GetRtype() int32 { + if x != nil { + return x.Rtype + } + return 0 +} + +type EntertainReceiveResp struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Info *DBXXLData `protobuf:"bytes,1,opt,name=info,proto3" json:"info"` + Award []*UserAtno `protobuf:"bytes,4,rep,name=award,proto3" json:"award"` //奖励 +} + +func (x *EntertainReceiveResp) Reset() { + *x = EntertainReceiveResp{} + if protoimpl.UnsafeEnabled { + mi := &file_entertain_entertain_msg_proto_msgTypes[41] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *EntertainReceiveResp) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*EntertainReceiveResp) ProtoMessage() {} + +func (x *EntertainReceiveResp) ProtoReflect() protoreflect.Message { + mi := &file_entertain_entertain_msg_proto_msgTypes[41] + 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 EntertainReceiveResp.ProtoReflect.Descriptor instead. +func (*EntertainReceiveResp) Descriptor() ([]byte, []int) { + return file_entertain_entertain_msg_proto_rawDescGZIP(), []int{41} +} + +func (x *EntertainReceiveResp) GetInfo() *DBXXLData { + if x != nil { + return x.Info + } + return nil +} + +func (x *EntertainReceiveResp) GetAward() []*UserAtno { + if x != nil { + return x.Award + } + return nil +} + var File_entertain_entertain_msg_proto protoreflect.FileDescriptor var file_entertain_entertain_msg_proto_rawDesc = []byte{ @@ -2471,8 +2574,16 @@ var file_entertain_entertain_msg_proto_rawDesc = []byte{ 0x36, 0x0a, 0x16, 0x45, 0x6e, 0x74, 0x65, 0x72, 0x74, 0x61, 0x69, 0x6e, 0x53, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x12, 0x1c, 0x0a, 0x09, 0x6c, 0x65, 0x66, 0x74, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x6c, 0x65, - 0x66, 0x74, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x42, 0x06, 0x5a, 0x04, 0x2e, 0x3b, 0x70, 0x62, 0x62, - 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x66, 0x74, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x2b, 0x0a, 0x13, 0x45, 0x6e, 0x74, 0x65, 0x72, + 0x74, 0x61, 0x69, 0x6e, 0x52, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x52, 0x65, 0x71, 0x12, 0x14, + 0x0a, 0x05, 0x52, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x52, + 0x74, 0x79, 0x70, 0x65, 0x22, 0x57, 0x0a, 0x14, 0x45, 0x6e, 0x74, 0x65, 0x72, 0x74, 0x61, 0x69, + 0x6e, 0x52, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x52, 0x65, 0x73, 0x70, 0x12, 0x1e, 0x0a, 0x04, + 0x69, 0x6e, 0x66, 0x6f, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0a, 0x2e, 0x44, 0x42, 0x58, + 0x58, 0x4c, 0x44, 0x61, 0x74, 0x61, 0x52, 0x04, 0x69, 0x6e, 0x66, 0x6f, 0x12, 0x1f, 0x0a, 0x05, + 0x61, 0x77, 0x61, 0x72, 0x64, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x09, 0x2e, 0x55, 0x73, + 0x65, 0x72, 0x41, 0x74, 0x6e, 0x6f, 0x52, 0x05, 0x61, 0x77, 0x61, 0x72, 0x64, 0x42, 0x06, 0x5a, + 0x04, 0x2e, 0x3b, 0x70, 0x62, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( @@ -2487,7 +2598,7 @@ func file_entertain_entertain_msg_proto_rawDescGZIP() []byte { return file_entertain_entertain_msg_proto_rawDescData } -var file_entertain_entertain_msg_proto_msgTypes = make([]protoimpl.MessageInfo, 42) +var file_entertain_entertain_msg_proto_msgTypes = make([]protoimpl.MessageInfo, 44) var file_entertain_entertain_msg_proto_goTypes = []interface{}{ (*EntertainMatchReq)(nil), // 0: EntertainMatchReq (*EntertainMatchResp)(nil), // 1: EntertainMatchResp @@ -2529,47 +2640,51 @@ var file_entertain_entertain_msg_proto_goTypes = []interface{}{ (*EntertainStarTimerPush)(nil), // 37: EntertainStarTimerPush (*EntertainSurrenderReq)(nil), // 38: EntertainSurrenderReq (*EntertainSurrenderResp)(nil), // 39: EntertainSurrenderResp - nil, // 40: EntertainChangePush.CardEntry - nil, // 41: EntertainChangePush.SkillEntry - (*PlayerData)(nil), // 42: PlayerData - (*MapData)(nil), // 43: MapData - (*UserAtno)(nil), // 44: UserAtno - (*BoxData)(nil), // 45: BoxData - (*DBXXLData)(nil), // 46: DBXXLData + (*EntertainReceiveReq)(nil), // 40: EntertainReceiveReq + (*EntertainReceiveResp)(nil), // 41: EntertainReceiveResp + nil, // 42: EntertainChangePush.CardEntry + nil, // 43: EntertainChangePush.SkillEntry + (*PlayerData)(nil), // 44: PlayerData + (*MapData)(nil), // 45: MapData + (*UserAtno)(nil), // 46: UserAtno + (*BoxData)(nil), // 47: BoxData + (*DBXXLData)(nil), // 48: DBXXLData } var file_entertain_entertain_msg_proto_depIdxs = []int32{ - 42, // 0: EntertainStartGamePush.user1:type_name -> PlayerData - 42, // 1: EntertainStartGamePush.user2:type_name -> PlayerData - 43, // 2: EntertainStartGamePush.mpadata:type_name -> MapData - 43, // 3: EntertainOperatorRstPush.mpadata:type_name -> MapData - 42, // 4: EntertainOperatorRstPush.user1:type_name -> PlayerData - 42, // 5: EntertainOperatorRstPush.user2:type_name -> PlayerData - 42, // 6: EntertainGameOverPush.user1:type_name -> PlayerData - 42, // 7: EntertainGameOverPush.user2:type_name -> PlayerData - 43, // 8: EntertainGameOverPush.mpadata:type_name -> MapData - 44, // 9: EntertainGameOverPush.reward:type_name -> UserAtno - 45, // 10: EntertainGameOverPush.box:type_name -> BoxData - 42, // 11: EntertainEnterRoomPush.user1:type_name -> PlayerData - 42, // 12: EntertainEnterRoomPush.user2:type_name -> PlayerData - 43, // 13: EntertainReconnectResp.mpadata:type_name -> MapData - 42, // 14: EntertainReconnectResp.user1:type_name -> PlayerData - 42, // 15: EntertainReconnectResp.user2:type_name -> PlayerData - 43, // 16: EntertainRefreshPlatResp.mpadata:type_name -> MapData - 43, // 17: EntertainRefreshPush.mpadata:type_name -> MapData - 46, // 18: EntertainGetListResp.data:type_name -> DBXXLData - 46, // 19: EntertainRewardResp.data:type_name -> DBXXLData - 44, // 20: EntertainRewardResp.reward:type_name -> UserAtno - 40, // 21: EntertainChangePush.card:type_name -> EntertainChangePush.CardEntry - 41, // 22: EntertainChangePush.skill:type_name -> EntertainChangePush.SkillEntry - 42, // 23: EntertainJoinCreateRoomPush.user1:type_name -> PlayerData - 42, // 24: EntertainJoinCreateRoomPush.user2:type_name -> PlayerData - 45, // 25: EntertainBoxRewardResp.box:type_name -> BoxData - 44, // 26: EntertainBoxRewardResp.reward:type_name -> UserAtno - 27, // [27:27] is the sub-list for method output_type - 27, // [27:27] is the sub-list for method input_type - 27, // [27:27] is the sub-list for extension type_name - 27, // [27:27] is the sub-list for extension extendee - 0, // [0:27] is the sub-list for field type_name + 44, // 0: EntertainStartGamePush.user1:type_name -> PlayerData + 44, // 1: EntertainStartGamePush.user2:type_name -> PlayerData + 45, // 2: EntertainStartGamePush.mpadata:type_name -> MapData + 45, // 3: EntertainOperatorRstPush.mpadata:type_name -> MapData + 44, // 4: EntertainOperatorRstPush.user1:type_name -> PlayerData + 44, // 5: EntertainOperatorRstPush.user2:type_name -> PlayerData + 44, // 6: EntertainGameOverPush.user1:type_name -> PlayerData + 44, // 7: EntertainGameOverPush.user2:type_name -> PlayerData + 45, // 8: EntertainGameOverPush.mpadata:type_name -> MapData + 46, // 9: EntertainGameOverPush.reward:type_name -> UserAtno + 47, // 10: EntertainGameOverPush.box:type_name -> BoxData + 44, // 11: EntertainEnterRoomPush.user1:type_name -> PlayerData + 44, // 12: EntertainEnterRoomPush.user2:type_name -> PlayerData + 45, // 13: EntertainReconnectResp.mpadata:type_name -> MapData + 44, // 14: EntertainReconnectResp.user1:type_name -> PlayerData + 44, // 15: EntertainReconnectResp.user2:type_name -> PlayerData + 45, // 16: EntertainRefreshPlatResp.mpadata:type_name -> MapData + 45, // 17: EntertainRefreshPush.mpadata:type_name -> MapData + 48, // 18: EntertainGetListResp.data:type_name -> DBXXLData + 48, // 19: EntertainRewardResp.data:type_name -> DBXXLData + 46, // 20: EntertainRewardResp.reward:type_name -> UserAtno + 42, // 21: EntertainChangePush.card:type_name -> EntertainChangePush.CardEntry + 43, // 22: EntertainChangePush.skill:type_name -> EntertainChangePush.SkillEntry + 44, // 23: EntertainJoinCreateRoomPush.user1:type_name -> PlayerData + 44, // 24: EntertainJoinCreateRoomPush.user2:type_name -> PlayerData + 47, // 25: EntertainBoxRewardResp.box:type_name -> BoxData + 46, // 26: EntertainBoxRewardResp.reward:type_name -> UserAtno + 48, // 27: EntertainReceiveResp.info:type_name -> DBXXLData + 46, // 28: EntertainReceiveResp.award:type_name -> UserAtno + 29, // [29:29] is the sub-list for method output_type + 29, // [29:29] is the sub-list for method input_type + 29, // [29:29] is the sub-list for extension type_name + 29, // [29:29] is the sub-list for extension extendee + 0, // [0:29] is the sub-list for field type_name } func init() { file_entertain_entertain_msg_proto_init() } @@ -3060,6 +3175,30 @@ func file_entertain_entertain_msg_proto_init() { return nil } } + file_entertain_entertain_msg_proto_msgTypes[40].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*EntertainReceiveReq); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_entertain_entertain_msg_proto_msgTypes[41].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*EntertainReceiveResp); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } } type x struct{} out := protoimpl.TypeBuilder{ @@ -3067,7 +3206,7 @@ func file_entertain_entertain_msg_proto_init() { GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: file_entertain_entertain_msg_proto_rawDesc, NumEnums: 0, - NumMessages: 42, + NumMessages: 44, NumExtensions: 0, NumServices: 0, }, diff --git a/pb/friend_msg.pb.go b/pb/friend_msg.pb.go index 69b693872..c1630366b 100644 --- a/pb/friend_msg.pb.go +++ b/pb/friend_msg.pb.go @@ -1848,7 +1848,8 @@ type FriendGetrewardResp struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Received int32 `protobuf:"varint,1,opt,name=received,proto3" json:"received"` + Received int32 `protobuf:"varint,1,opt,name=received,proto3" json:"received"` + Atno []*UserAtno `protobuf:"bytes,2,rep,name=atno,proto3" json:"atno"` // 奖励 } func (x *FriendGetrewardResp) Reset() { @@ -1890,6 +1891,13 @@ func (x *FriendGetrewardResp) GetReceived() int32 { return 0 } +func (x *FriendGetrewardResp) GetAtno() []*UserAtno { + if x != nil { + return x.Atno + } + return nil +} + // 助战英雄更新推送 type FriendAssistHeroUpdatePush struct { state protoimpl.MessageState @@ -2483,49 +2491,51 @@ var file_friend_friend_msg_proto_rawDesc = []byte{ 0x64, 0x12, 0x25, 0x0a, 0x06, 0x72, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x41, 0x73, 0x73, 0x69, 0x73, 0x74, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x52, 0x06, 0x72, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x22, 0x14, 0x0a, 0x12, 0x46, 0x72, 0x69, 0x65, - 0x6e, 0x64, 0x47, 0x65, 0x74, 0x72, 0x65, 0x77, 0x61, 0x72, 0x64, 0x52, 0x65, 0x71, 0x22, 0x31, + 0x6e, 0x64, 0x47, 0x65, 0x74, 0x72, 0x65, 0x77, 0x61, 0x72, 0x64, 0x52, 0x65, 0x71, 0x22, 0x50, 0x0a, 0x13, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x47, 0x65, 0x74, 0x72, 0x65, 0x77, 0x61, 0x72, 0x64, 0x52, 0x65, 0x73, 0x70, 0x12, 0x1a, 0x0a, 0x08, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, - 0x64, 0x22, 0x41, 0x0a, 0x1a, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x41, 0x73, 0x73, 0x69, 0x73, - 0x74, 0x48, 0x65, 0x72, 0x6f, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x50, 0x75, 0x73, 0x68, 0x12, - 0x23, 0x0a, 0x06, 0x66, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x0b, 0x2e, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x42, 0x61, 0x73, 0x65, 0x52, 0x06, 0x66, 0x72, - 0x69, 0x65, 0x6e, 0x64, 0x22, 0x19, 0x0a, 0x17, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x41, 0x73, - 0x73, 0x69, 0x73, 0x74, 0x48, 0x65, 0x72, 0x6f, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x22, - 0x41, 0x0a, 0x18, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x41, 0x73, 0x73, 0x69, 0x73, 0x74, 0x48, - 0x65, 0x72, 0x6f, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x12, 0x25, 0x0a, 0x07, 0x66, - 0x72, 0x69, 0x65, 0x6e, 0x64, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0b, 0x2e, 0x46, - 0x72, 0x69, 0x65, 0x6e, 0x64, 0x42, 0x61, 0x73, 0x65, 0x52, 0x07, 0x66, 0x72, 0x69, 0x65, 0x6e, - 0x64, 0x73, 0x22, 0x34, 0x0a, 0x14, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x47, 0x65, 0x74, 0x52, - 0x65, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x12, 0x1c, 0x0a, 0x09, 0x74, 0x61, - 0x72, 0x67, 0x65, 0x74, 0x55, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x74, - 0x61, 0x72, 0x67, 0x65, 0x74, 0x55, 0x69, 0x64, 0x22, 0x4d, 0x0a, 0x15, 0x46, 0x72, 0x69, 0x65, - 0x6e, 0x64, 0x47, 0x65, 0x74, 0x52, 0x65, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, - 0x70, 0x12, 0x1c, 0x0a, 0x09, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x55, 0x69, 0x64, 0x18, 0x01, + 0x64, 0x12, 0x1d, 0x0a, 0x04, 0x61, 0x74, 0x6e, 0x6f, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, + 0x09, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x41, 0x74, 0x6e, 0x6f, 0x52, 0x04, 0x61, 0x74, 0x6e, 0x6f, + 0x22, 0x41, 0x0a, 0x1a, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x41, 0x73, 0x73, 0x69, 0x73, 0x74, + 0x48, 0x65, 0x72, 0x6f, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x50, 0x75, 0x73, 0x68, 0x12, 0x23, + 0x0a, 0x06, 0x66, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0b, + 0x2e, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x42, 0x61, 0x73, 0x65, 0x52, 0x06, 0x66, 0x72, 0x69, + 0x65, 0x6e, 0x64, 0x22, 0x19, 0x0a, 0x17, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x41, 0x73, 0x73, + 0x69, 0x73, 0x74, 0x48, 0x65, 0x72, 0x6f, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x22, 0x41, + 0x0a, 0x18, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x41, 0x73, 0x73, 0x69, 0x73, 0x74, 0x48, 0x65, + 0x72, 0x6f, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x12, 0x25, 0x0a, 0x07, 0x66, 0x72, + 0x69, 0x65, 0x6e, 0x64, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0b, 0x2e, 0x46, 0x72, + 0x69, 0x65, 0x6e, 0x64, 0x42, 0x61, 0x73, 0x65, 0x52, 0x07, 0x66, 0x72, 0x69, 0x65, 0x6e, 0x64, + 0x73, 0x22, 0x34, 0x0a, 0x14, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x47, 0x65, 0x74, 0x52, 0x65, + 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x12, 0x1c, 0x0a, 0x09, 0x74, 0x61, 0x72, + 0x67, 0x65, 0x74, 0x55, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x74, 0x61, + 0x72, 0x67, 0x65, 0x74, 0x55, 0x69, 0x64, 0x22, 0x4d, 0x0a, 0x15, 0x46, 0x72, 0x69, 0x65, 0x6e, + 0x64, 0x47, 0x65, 0x74, 0x52, 0x65, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, + 0x12, 0x1c, 0x0a, 0x09, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x55, 0x69, 0x64, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x09, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x55, 0x69, 0x64, 0x12, 0x16, + 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x06, + 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x22, 0x53, 0x0a, 0x12, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, + 0x41, 0x64, 0x64, 0x41, 0x67, 0x72, 0x65, 0x65, 0x50, 0x75, 0x73, 0x68, 0x12, 0x1c, 0x0a, 0x09, + 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x55, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x09, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x55, 0x69, 0x64, 0x12, 0x1f, 0x0a, 0x04, 0x69, 0x6e, + 0x66, 0x6f, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0b, 0x2e, 0x46, 0x72, 0x69, 0x65, 0x6e, + 0x64, 0x42, 0x61, 0x73, 0x65, 0x52, 0x04, 0x69, 0x6e, 0x66, 0x6f, 0x22, 0x53, 0x0a, 0x12, 0x46, + 0x72, 0x69, 0x65, 0x6e, 0x64, 0x41, 0x64, 0x64, 0x41, 0x70, 0x70, 0x6c, 0x79, 0x50, 0x75, 0x73, + 0x68, 0x12, 0x1c, 0x0a, 0x09, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x55, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x55, 0x69, 0x64, 0x12, - 0x16, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, - 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x22, 0x53, 0x0a, 0x12, 0x46, 0x72, 0x69, 0x65, 0x6e, - 0x64, 0x41, 0x64, 0x64, 0x41, 0x67, 0x72, 0x65, 0x65, 0x50, 0x75, 0x73, 0x68, 0x12, 0x1c, 0x0a, - 0x09, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x55, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x09, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x55, 0x69, 0x64, 0x12, 0x1f, 0x0a, 0x04, 0x69, - 0x6e, 0x66, 0x6f, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0b, 0x2e, 0x46, 0x72, 0x69, 0x65, - 0x6e, 0x64, 0x42, 0x61, 0x73, 0x65, 0x52, 0x04, 0x69, 0x6e, 0x66, 0x6f, 0x22, 0x53, 0x0a, 0x12, - 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x41, 0x64, 0x64, 0x41, 0x70, 0x70, 0x6c, 0x79, 0x50, 0x75, - 0x73, 0x68, 0x12, 0x1c, 0x0a, 0x09, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x55, 0x69, 0x64, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x55, 0x69, 0x64, - 0x12, 0x1f, 0x0a, 0x04, 0x69, 0x6e, 0x66, 0x6f, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0b, - 0x2e, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x42, 0x61, 0x73, 0x65, 0x52, 0x04, 0x69, 0x6e, 0x66, - 0x6f, 0x22, 0x4c, 0x0a, 0x16, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x5a, 0x61, 0x6e, 0x41, 0x6e, - 0x64, 0x52, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x52, 0x65, 0x71, 0x12, 0x14, 0x0a, 0x05, 0x7a, - 0x61, 0x6e, 0x69, 0x64, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x05, 0x7a, 0x61, 0x6e, 0x69, - 0x64, 0x12, 0x1c, 0x0a, 0x09, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x69, 0x64, 0x18, 0x02, - 0x20, 0x03, 0x28, 0x09, 0x52, 0x09, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x69, 0x64, 0x22, - 0x38, 0x0a, 0x17, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x5a, 0x61, 0x6e, 0x41, 0x6e, 0x64, 0x52, - 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x52, 0x65, 0x73, 0x70, 0x12, 0x1d, 0x0a, 0x04, 0x61, 0x74, - 0x6e, 0x6f, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x09, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x41, - 0x74, 0x6e, 0x6f, 0x52, 0x04, 0x61, 0x74, 0x6e, 0x6f, 0x42, 0x06, 0x5a, 0x04, 0x2e, 0x3b, 0x70, - 0x62, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x1f, 0x0a, 0x04, 0x69, 0x6e, 0x66, 0x6f, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0b, 0x2e, + 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x42, 0x61, 0x73, 0x65, 0x52, 0x04, 0x69, 0x6e, 0x66, 0x6f, + 0x22, 0x4c, 0x0a, 0x16, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x5a, 0x61, 0x6e, 0x41, 0x6e, 0x64, + 0x52, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x52, 0x65, 0x71, 0x12, 0x14, 0x0a, 0x05, 0x7a, 0x61, + 0x6e, 0x69, 0x64, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x05, 0x7a, 0x61, 0x6e, 0x69, 0x64, + 0x12, 0x1c, 0x0a, 0x09, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x69, 0x64, 0x18, 0x02, 0x20, + 0x03, 0x28, 0x09, 0x52, 0x09, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x69, 0x64, 0x22, 0x38, + 0x0a, 0x17, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x5a, 0x61, 0x6e, 0x41, 0x6e, 0x64, 0x52, 0x65, + 0x63, 0x65, 0x69, 0x76, 0x65, 0x52, 0x65, 0x73, 0x70, 0x12, 0x1d, 0x0a, 0x04, 0x61, 0x74, 0x6e, + 0x6f, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x09, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x41, 0x74, + 0x6e, 0x6f, 0x52, 0x04, 0x61, 0x74, 0x6e, 0x6f, 0x42, 0x06, 0x5a, 0x04, 0x2e, 0x3b, 0x70, 0x62, + 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( @@ -2602,16 +2612,17 @@ var file_friend_friend_msg_proto_depIdxs = []int32{ 0, // 6: FriendZanlistResp.list:type_name -> FriendBase 0, // 7: FriendAssistlistResp.list:type_name -> FriendBase 47, // 8: FriendAssistlistResp.record:type_name -> AssistRecord - 0, // 9: FriendAssistHeroUpdatePush.friend:type_name -> FriendBase - 0, // 10: FriendAssistHeroListResp.friends:type_name -> FriendBase - 0, // 11: FriendAddAgreePush.info:type_name -> FriendBase - 0, // 12: FriendAddApplyPush.info:type_name -> FriendBase - 48, // 13: FriendZanAndReceiveResp.atno:type_name -> UserAtno - 14, // [14:14] is the sub-list for method output_type - 14, // [14:14] is the sub-list for method input_type - 14, // [14:14] is the sub-list for extension type_name - 14, // [14:14] is the sub-list for extension extendee - 0, // [0:14] is the sub-list for field type_name + 48, // 9: FriendGetrewardResp.atno:type_name -> UserAtno + 0, // 10: FriendAssistHeroUpdatePush.friend:type_name -> FriendBase + 0, // 11: FriendAssistHeroListResp.friends:type_name -> FriendBase + 0, // 12: FriendAddAgreePush.info:type_name -> FriendBase + 0, // 13: FriendAddApplyPush.info:type_name -> FriendBase + 48, // 14: FriendZanAndReceiveResp.atno:type_name -> UserAtno + 15, // [15:15] is the sub-list for method output_type + 15, // [15:15] is the sub-list for method input_type + 15, // [15:15] is the sub-list for extension type_name + 15, // [15:15] is the sub-list for extension extendee + 0, // [0:15] is the sub-list for field type_name } func init() { file_friend_friend_msg_proto_init() } diff --git a/pb/pay_db.pb.go b/pb/pay_db.pb.go index 5e1d5ee74..43ed6dfad 100644 --- a/pb/pay_db.pb.go +++ b/pb/pay_db.pb.go @@ -32,6 +32,7 @@ const ( DBPayType_ActivityFunds DBPayType = 5 //6.活动基金 DBPayType_PushgiftBag DBPayType = 6 //7.推送礼包 DBPayType_IsLandBattlePass DBPayType = 7 //8.海岛战令 + DBPayType_XxlPass DBPayType = 8 // 9 三消战令 ) // Enum value maps for DBPayType. @@ -45,6 +46,7 @@ var ( 5: "ActivityFunds", 6: "PushgiftBag", 7: "IsLandBattlePass", + 8: "XxlPass", } DBPayType_value = map[string]int32{ "DiamondShop": 0, @@ -55,6 +57,7 @@ var ( "ActivityFunds": 5, "PushgiftBag": 6, "IsLandBattlePass": 7, + "XxlPass": 8, } ) @@ -789,7 +792,7 @@ var file_pay_pay_db_proto_rawDesc = []byte{ 0x75, 0x6d, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x62, 0x75, 0x79, 0x6e, 0x75, 0x6d, 0x12, 0x20, 0x0a, 0x0b, 0x6c, 0x61, 0x73, 0x74, 0x72, 0x65, 0x66, 0x72, 0x65, 0x73, 0x68, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0b, 0x6c, 0x61, 0x73, 0x74, - 0x72, 0x65, 0x66, 0x72, 0x65, 0x73, 0x68, 0x2a, 0x9a, 0x01, 0x0a, 0x09, 0x44, 0x42, 0x50, 0x61, + 0x72, 0x65, 0x66, 0x72, 0x65, 0x73, 0x68, 0x2a, 0xa7, 0x01, 0x0a, 0x09, 0x44, 0x42, 0x50, 0x61, 0x79, 0x54, 0x79, 0x70, 0x65, 0x12, 0x0f, 0x0a, 0x0b, 0x44, 0x69, 0x61, 0x6d, 0x6f, 0x6e, 0x64, 0x53, 0x68, 0x6f, 0x70, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x50, 0x61, 0x63, 0x6b, 0x73, 0x10, 0x01, 0x12, 0x0f, 0x0a, 0x0b, 0x4d, 0x6f, 0x6e, 0x74, 0x68, 0x6c, 0x79, 0x50, 0x61, 0x73, 0x73, @@ -799,15 +802,16 @@ var file_pay_pay_db_proto_rawDesc = []byte{ 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x46, 0x75, 0x6e, 0x64, 0x73, 0x10, 0x05, 0x12, 0x0f, 0x0a, 0x0b, 0x50, 0x75, 0x73, 0x68, 0x67, 0x69, 0x66, 0x74, 0x42, 0x61, 0x67, 0x10, 0x06, 0x12, 0x14, 0x0a, 0x10, 0x49, 0x73, 0x4c, 0x61, 0x6e, 0x64, 0x42, 0x61, 0x74, 0x74, 0x6c, 0x65, 0x50, 0x61, - 0x73, 0x73, 0x10, 0x07, 0x2a, 0x76, 0x0a, 0x0f, 0x44, 0x42, 0x50, 0x61, 0x79, 0x4f, 0x72, 0x64, - 0x65, 0x72, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x13, 0x0a, 0x0f, 0x50, 0x61, 0x79, 0x4f, 0x72, - 0x64, 0x65, 0x72, 0x5f, 0x55, 0x6e, 0x70, 0x61, 0x69, 0x64, 0x10, 0x00, 0x12, 0x11, 0x0a, 0x0d, - 0x50, 0x61, 0x79, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x5f, 0x50, 0x61, 0x69, 0x64, 0x10, 0x01, 0x12, - 0x13, 0x0a, 0x0f, 0x50, 0x61, 0x79, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x5f, 0x46, 0x69, 0x6e, 0x69, - 0x73, 0x68, 0x10, 0x02, 0x12, 0x13, 0x0a, 0x0f, 0x50, 0x61, 0x79, 0x4f, 0x72, 0x64, 0x65, 0x72, - 0x5f, 0x43, 0x61, 0x6e, 0x63, 0x65, 0x6c, 0x10, 0x03, 0x12, 0x11, 0x0a, 0x0d, 0x50, 0x61, 0x79, - 0x4f, 0x72, 0x64, 0x65, 0x72, 0x5f, 0x46, 0x61, 0x69, 0x6c, 0x10, 0x04, 0x42, 0x06, 0x5a, 0x04, - 0x2e, 0x3b, 0x70, 0x62, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x73, 0x73, 0x10, 0x07, 0x12, 0x0b, 0x0a, 0x07, 0x58, 0x78, 0x6c, 0x50, 0x61, 0x73, 0x73, 0x10, + 0x08, 0x2a, 0x76, 0x0a, 0x0f, 0x44, 0x42, 0x50, 0x61, 0x79, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x53, + 0x74, 0x61, 0x74, 0x65, 0x12, 0x13, 0x0a, 0x0f, 0x50, 0x61, 0x79, 0x4f, 0x72, 0x64, 0x65, 0x72, + 0x5f, 0x55, 0x6e, 0x70, 0x61, 0x69, 0x64, 0x10, 0x00, 0x12, 0x11, 0x0a, 0x0d, 0x50, 0x61, 0x79, + 0x4f, 0x72, 0x64, 0x65, 0x72, 0x5f, 0x50, 0x61, 0x69, 0x64, 0x10, 0x01, 0x12, 0x13, 0x0a, 0x0f, + 0x50, 0x61, 0x79, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x5f, 0x46, 0x69, 0x6e, 0x69, 0x73, 0x68, 0x10, + 0x02, 0x12, 0x13, 0x0a, 0x0f, 0x50, 0x61, 0x79, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x5f, 0x43, 0x61, + 0x6e, 0x63, 0x65, 0x6c, 0x10, 0x03, 0x12, 0x11, 0x0a, 0x0d, 0x50, 0x61, 0x79, 0x4f, 0x72, 0x64, + 0x65, 0x72, 0x5f, 0x46, 0x61, 0x69, 0x6c, 0x10, 0x04, 0x42, 0x06, 0x5a, 0x04, 0x2e, 0x3b, 0x70, + 0x62, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( From 1951f4ec0960b9798f8f54d97e3c491f16b186bd Mon Sep 17 00:00:00 2001 From: meixiongfeng <766881921@qq.com> Date: Tue, 19 Dec 2023 21:11:15 +0800 Subject: [PATCH 14/16] =?UTF-8?q?=E5=A3=B0=E8=AE=A8=E6=9E=9C=E5=AE=9E?= =?UTF-8?q?=E5=A5=96=E5=8A=B1=E9=A2=86=E5=8F=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- modules/hero/api_drawCard.go | 2 +- modules/hero/api_peachreward.go | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/modules/hero/api_drawCard.go b/modules/hero/api_drawCard.go index fab704a68..30c141ed1 100644 --- a/modules/hero/api_drawCard.go +++ b/modules/hero/api_drawCard.go @@ -350,7 +350,7 @@ func (this *apiComp) wishDrawCard(session comm.IUserSession, heroRecord *pb.DBHe update map[string]interface{} rsp *pb.HeroDrawCardResp ) - + rsp = &pb.HeroDrawCardResp{} update = make(map[string]interface{}) if conf := this.module.configure.GetWishHeroReplaceConfig(); conf != nil { if heroRecord.WishHero == "" { // 如果当前许愿英雄是空 则读取 默认许愿英雄 diff --git a/modules/hero/api_peachreward.go b/modules/hero/api_peachreward.go index 614274ac4..76b84656e 100644 --- a/modules/hero/api_peachreward.go +++ b/modules/hero/api_peachreward.go @@ -52,8 +52,8 @@ func (this *apiComp) PeachReward(session comm.IUserSession, req *pb.HeroPeachRew for k, v := range allreawd { if _, ok := heroRecord.Peach[k]; !ok { - if v1, ok := heroRecord.Race[2]; ok { - if v1 > v.Num { //可以领取 + if v1, ok := heroRecord.Race[comm.DrawCardType0]; ok { + if v1 >= v.Num { //可以领取 heroRecord.Peach[k] = true bchange = true reward = append(reward, v.Reward) From 2b80baf6ec46ec895640aa1e7ae521e58d667417 Mon Sep 17 00:00:00 2001 From: meixiongfeng <766881921@qq.com> Date: Tue, 19 Dec 2023 21:19:45 +0800 Subject: [PATCH 15/16] =?UTF-8?q?=E9=85=8D=E7=BD=AE=E5=90=8C=E6=AD=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- bin/json/game_catchbuglllustrated.json | 30 +- bin/json/game_consumegiftpack.json | 416 ++++++ bin/json/game_consumerank.json | 882 ++++++++++++ bin/json/game_consumetask.json | 107 ++ bin/json/game_consumetxt.json | 57 + bin/json/game_fightglobalevent.json | 2 + bin/json/game_gamesummary.json | 12 +- bin/json/game_global.json | 3 +- bin/json/game_lottery.json | 132 +- bin/json/game_mainstage.json | 70 +- bin/json/game_opencond.json | 10 +- bin/json/game_passcheck.json | 529 +++++++ bin/json/game_passcheckprice.json | 6 + bin/json/game_recharge.json | 146 +- bin/json/game_rechargediamond.json | 8 +- bin/json/game_ruledesc.json | 11 + bin/json/game_skillafteratk.json | 28 +- bin/json/game_skillatk.json | 20 +- bin/json/game_tdlv.json | 58 +- bin/json/game_worldtask.json | 1223 ++++++++++------- modules/activity/api_getreward.go | 2 +- modules/uigame/api_getlattice.go | 2 +- modules/uigame/api_getminer.go | 2 +- modules/uigame/api_getpuzzle.go | 2 +- sys/configure/structs/Game.ConsumeGiftpack.go | 42 + .../structs/Game.ConsumeGiftpackData.go | 67 + sys/configure/structs/Game.ConsumeRank.go | 42 + sys/configure/structs/Game.ConsumeRankData.go | 52 + sys/configure/structs/Game.ConsumeTask.go | 42 + sys/configure/structs/Game.ConsumeTaskData.go | 52 + sys/configure/structs/Game.ConsumeTxt.go | 42 + sys/configure/structs/Game.ConsumeTxtData.go | 39 + sys/configure/structs/Tables.go | 28 + sys/configure/structs/game.globalData.go | 2 + 34 files changed, 3413 insertions(+), 753 deletions(-) create mode 100644 bin/json/game_consumegiftpack.json create mode 100644 bin/json/game_consumerank.json create mode 100644 bin/json/game_consumetask.json create mode 100644 bin/json/game_consumetxt.json create mode 100644 sys/configure/structs/Game.ConsumeGiftpack.go create mode 100644 sys/configure/structs/Game.ConsumeGiftpackData.go create mode 100644 sys/configure/structs/Game.ConsumeRank.go create mode 100644 sys/configure/structs/Game.ConsumeRankData.go create mode 100644 sys/configure/structs/Game.ConsumeTask.go create mode 100644 sys/configure/structs/Game.ConsumeTaskData.go create mode 100644 sys/configure/structs/Game.ConsumeTxt.go create mode 100644 sys/configure/structs/Game.ConsumeTxtData.go diff --git a/bin/json/game_catchbuglllustrated.json b/bin/json/game_catchbuglllustrated.json index be5615830..430c5b6ed 100644 --- a/bin/json/game_catchbuglllustrated.json +++ b/bin/json/game_catchbuglllustrated.json @@ -136,7 +136,7 @@ "key": "catchbugs_Illustrated_carddescribe_10", "text": "11" }, - "pic": "bug_100010", + "pic": "bug_10010", "weights": 1000 }, { @@ -150,7 +150,7 @@ "key": "catchbugs_Illustrated_carddescribe_11", "text": "12" }, - "pic": "bug_100011", + "pic": "bug_10011", "weights": 500 }, { @@ -164,7 +164,7 @@ "key": "catchbugs_Illustrated_carddescribe_12", "text": "13" }, - "pic": "bug_100012", + "pic": "bug_10012", "weights": 500 }, { @@ -178,7 +178,7 @@ "key": "catchbugs_Illustrated_carddescribe_13", "text": "14" }, - "pic": "bug_100013", + "pic": "bug_10013", "weights": 500 }, { @@ -192,7 +192,7 @@ "key": "catchbugs_Illustrated_carddescribe_14", "text": "15" }, - "pic": "bug_100014", + "pic": "bug_10014", "weights": 500 }, { @@ -206,7 +206,7 @@ "key": "catchbugs_Illustrated_carddescribe_15", "text": "16" }, - "pic": "bug_100015", + "pic": "bug_10015", "weights": 500 }, { @@ -220,7 +220,7 @@ "key": "catchbugs_Illustrated_carddescribe_16", "text": "17" }, - "pic": "bug_100016", + "pic": "bug_10016", "weights": 500 }, { @@ -234,7 +234,7 @@ "key": "catchbugs_Illustrated_carddescribe_17", "text": "18" }, - "pic": "bug_100017", + "pic": "bug_10017", "weights": 500 }, { @@ -248,7 +248,7 @@ "key": "catchbugs_Illustrated_carddescribe_18", "text": "19" }, - "pic": "bug_100018", + "pic": "bug_10018", "weights": 500 }, { @@ -262,7 +262,7 @@ "key": "catchbugs_Illustrated_carddescribe_19", "text": "20" }, - "pic": "bug_100019", + "pic": "bug_10019", "weights": 500 }, { @@ -276,7 +276,7 @@ "key": "catchbugs_Illustrated_carddescribe_20", "text": "21" }, - "pic": "bug_100020", + "pic": "bug_10020", "weights": 500 }, { @@ -290,7 +290,7 @@ "key": "catchbugs_Illustrated_carddescribe_21", "text": "22" }, - "pic": "bug_100021", + "pic": "bug_10021", "weights": 500 }, { @@ -304,7 +304,7 @@ "key": "catchbugs_Illustrated_carddescribe_22", "text": "23" }, - "pic": "bug_100022", + "pic": "bug_10022", "weights": 100 }, { @@ -318,7 +318,7 @@ "key": "catchbugs_Illustrated_carddescribe_23", "text": "24" }, - "pic": "bug_100023", + "pic": "bug_10023", "weights": 100 }, { @@ -332,7 +332,7 @@ "key": "catchbugs_Illustrated_carddescribe_24", "text": "25" }, - "pic": "bug_100024", + "pic": "bug_10024", "weights": 100 } ] \ No newline at end of file diff --git a/bin/json/game_consumegiftpack.json b/bin/json/game_consumegiftpack.json new file mode 100644 index 000000000..35618d86c --- /dev/null +++ b/bin/json/game_consumegiftpack.json @@ -0,0 +1,416 @@ +[ + { + "lv": 1, + "integral": 0, + "reward": [ + { + "a": "attr", + "t": "gold", + "n": 1 + } + ], + "exreward": [ + { + "a": "attr", + "t": "diamond", + "n": 20 + } + ] + }, + { + "lv": 2, + "integral": 1000, + "reward": [ + { + "a": "attr", + "t": "gold", + "n": 2 + } + ], + "exreward": [ + { + "a": "attr", + "t": "diamond", + "n": 20 + } + ] + }, + { + "lv": 3, + "integral": 2000, + "reward": [ + { + "a": "attr", + "t": "gold", + "n": 3 + } + ], + "exreward": [ + { + "a": "attr", + "t": "diamond", + "n": 20 + } + ] + }, + { + "lv": 4, + "integral": 3000, + "reward": [ + { + "a": "attr", + "t": "gold", + "n": 4 + } + ], + "exreward": [ + { + "a": "attr", + "t": "diamond", + "n": 20 + } + ] + }, + { + "lv": 5, + "integral": 4000, + "reward": [ + { + "a": "attr", + "t": "gold", + "n": 5 + } + ], + "exreward": [ + { + "a": "attr", + "t": "diamond", + "n": 20 + } + ] + }, + { + "lv": 6, + "integral": 5000, + "reward": [ + { + "a": "attr", + "t": "gold", + "n": 6 + } + ], + "exreward": [ + { + "a": "attr", + "t": "diamond", + "n": 20 + } + ] + }, + { + "lv": 7, + "integral": 6000, + "reward": [ + { + "a": "attr", + "t": "gold", + "n": 7 + } + ], + "exreward": [ + { + "a": "attr", + "t": "diamond", + "n": 20 + } + ] + }, + { + "lv": 8, + "integral": 7000, + "reward": [ + { + "a": "attr", + "t": "gold", + "n": 8 + } + ], + "exreward": [ + { + "a": "attr", + "t": "diamond", + "n": 20 + } + ] + }, + { + "lv": 9, + "integral": 8000, + "reward": [ + { + "a": "attr", + "t": "gold", + "n": 9 + } + ], + "exreward": [ + { + "a": "attr", + "t": "diamond", + "n": 20 + } + ] + }, + { + "lv": 10, + "integral": 9000, + "reward": [ + { + "a": "attr", + "t": "gold", + "n": 10 + } + ], + "exreward": [ + { + "a": "attr", + "t": "diamond", + "n": 20 + } + ] + }, + { + "lv": 11, + "integral": 10000, + "reward": [ + { + "a": "attr", + "t": "gold", + "n": 11 + } + ], + "exreward": [ + { + "a": "attr", + "t": "diamond", + "n": 20 + } + ] + }, + { + "lv": 12, + "integral": 11000, + "reward": [ + { + "a": "attr", + "t": "gold", + "n": 12 + } + ], + "exreward": [ + { + "a": "attr", + "t": "diamond", + "n": 20 + } + ] + }, + { + "lv": 13, + "integral": 12000, + "reward": [ + { + "a": "attr", + "t": "gold", + "n": 13 + } + ], + "exreward": [ + { + "a": "attr", + "t": "diamond", + "n": 20 + } + ] + }, + { + "lv": 14, + "integral": 13000, + "reward": [ + { + "a": "attr", + "t": "gold", + "n": 14 + } + ], + "exreward": [ + { + "a": "attr", + "t": "diamond", + "n": 20 + } + ] + }, + { + "lv": 15, + "integral": 14000, + "reward": [ + { + "a": "attr", + "t": "gold", + "n": 15 + } + ], + "exreward": [ + { + "a": "attr", + "t": "diamond", + "n": 20 + } + ] + }, + { + "lv": 16, + "integral": 15000, + "reward": [ + { + "a": "attr", + "t": "gold", + "n": 16 + } + ], + "exreward": [ + { + "a": "attr", + "t": "diamond", + "n": 20 + } + ] + }, + { + "lv": 17, + "integral": 16000, + "reward": [ + { + "a": "attr", + "t": "gold", + "n": 17 + } + ], + "exreward": [ + { + "a": "attr", + "t": "diamond", + "n": 20 + } + ] + }, + { + "lv": 18, + "integral": 17000, + "reward": [ + { + "a": "attr", + "t": "gold", + "n": 18 + } + ], + "exreward": [ + { + "a": "attr", + "t": "diamond", + "n": 20 + } + ] + }, + { + "lv": 19, + "integral": 18000, + "reward": [ + { + "a": "attr", + "t": "gold", + "n": 19 + } + ], + "exreward": [ + { + "a": "attr", + "t": "diamond", + "n": 20 + } + ] + }, + { + "lv": 20, + "integral": 19000, + "reward": [ + { + "a": "attr", + "t": "gold", + "n": 20 + } + ], + "exreward": [ + { + "a": "attr", + "t": "diamond", + "n": 20 + } + ] + }, + { + "lv": 21, + "integral": 20000, + "reward": [ + { + "a": "attr", + "t": "gold", + "n": 21 + } + ], + "exreward": [ + { + "a": "attr", + "t": "diamond", + "n": 20 + } + ] + }, + { + "lv": 22, + "integral": 21000, + "reward": [ + { + "a": "attr", + "t": "gold", + "n": 22 + } + ], + "exreward": [ + { + "a": "attr", + "t": "diamond", + "n": 20 + } + ] + }, + { + "lv": 23, + "integral": 22000, + "reward": [ + { + "a": "attr", + "t": "gold", + "n": 23 + } + ], + "exreward": [ + { + "a": "attr", + "t": "diamond", + "n": 20 + } + ] + } +] \ No newline at end of file diff --git a/bin/json/game_consumerank.json b/bin/json/game_consumerank.json new file mode 100644 index 000000000..dbd913a92 --- /dev/null +++ b/bin/json/game_consumerank.json @@ -0,0 +1,882 @@ +[ + { + "id": 1, + "group": 1, + "reward": [ + { + "a": "attr", + "t": "gold", + "n": 1000000 + }, + { + "a": "attr", + "t": "diamond", + "n": 300 + } + ] + }, + { + "id": 2, + "group": 2, + "reward": [ + { + "a": "attr", + "t": "gold", + "n": 800000 + }, + { + "a": "attr", + "t": "diamond", + "n": 250 + } + ] + }, + { + "id": 3, + "group": 2, + "reward": [ + { + "a": "attr", + "t": "gold", + "n": 800000 + }, + { + "a": "attr", + "t": "diamond", + "n": 250 + } + ] + }, + { + "id": 4, + "group": 4, + "reward": [ + { + "a": "attr", + "t": "gold", + "n": 600000 + }, + { + "a": "attr", + "t": "diamond", + "n": 200 + } + ] + }, + { + "id": 5, + "group": 4, + "reward": [ + { + "a": "attr", + "t": "gold", + "n": 600000 + }, + { + "a": "attr", + "t": "diamond", + "n": 200 + } + ] + }, + { + "id": 6, + "group": 4, + "reward": [ + { + "a": "attr", + "t": "gold", + "n": 600000 + }, + { + "a": "attr", + "t": "diamond", + "n": 200 + } + ] + }, + { + "id": 7, + "group": 4, + "reward": [ + { + "a": "attr", + "t": "gold", + "n": 600000 + }, + { + "a": "attr", + "t": "diamond", + "n": 200 + } + ] + }, + { + "id": 8, + "group": 4, + "reward": [ + { + "a": "attr", + "t": "gold", + "n": 600000 + }, + { + "a": "attr", + "t": "diamond", + "n": 200 + } + ] + }, + { + "id": 9, + "group": 4, + "reward": [ + { + "a": "attr", + "t": "gold", + "n": 600000 + }, + { + "a": "attr", + "t": "diamond", + "n": 200 + } + ] + }, + { + "id": 10, + "group": 4, + "reward": [ + { + "a": "attr", + "t": "gold", + "n": 600000 + }, + { + "a": "attr", + "t": "diamond", + "n": 200 + } + ] + }, + { + "id": 11, + "group": 11, + "reward": [ + { + "a": "attr", + "t": "gold", + "n": 500000 + }, + { + "a": "attr", + "t": "diamond", + "n": 180 + } + ] + }, + { + "id": 12, + "group": 11, + "reward": [ + { + "a": "attr", + "t": "gold", + "n": 500000 + }, + { + "a": "attr", + "t": "diamond", + "n": 180 + } + ] + }, + { + "id": 13, + "group": 11, + "reward": [ + { + "a": "attr", + "t": "gold", + "n": 500000 + }, + { + "a": "attr", + "t": "diamond", + "n": 180 + } + ] + }, + { + "id": 14, + "group": 11, + "reward": [ + { + "a": "attr", + "t": "gold", + "n": 500000 + }, + { + "a": "attr", + "t": "diamond", + "n": 180 + } + ] + }, + { + "id": 15, + "group": 11, + "reward": [ + { + "a": "attr", + "t": "gold", + "n": 500000 + }, + { + "a": "attr", + "t": "diamond", + "n": 180 + } + ] + }, + { + "id": 16, + "group": 11, + "reward": [ + { + "a": "attr", + "t": "gold", + "n": 500000 + }, + { + "a": "attr", + "t": "diamond", + "n": 180 + } + ] + }, + { + "id": 17, + "group": 11, + "reward": [ + { + "a": "attr", + "t": "gold", + "n": 500000 + }, + { + "a": "attr", + "t": "diamond", + "n": 180 + } + ] + }, + { + "id": 18, + "group": 11, + "reward": [ + { + "a": "attr", + "t": "gold", + "n": 500000 + }, + { + "a": "attr", + "t": "diamond", + "n": 180 + } + ] + }, + { + "id": 19, + "group": 11, + "reward": [ + { + "a": "attr", + "t": "gold", + "n": 500000 + }, + { + "a": "attr", + "t": "diamond", + "n": 180 + } + ] + }, + { + "id": 20, + "group": 11, + "reward": [ + { + "a": "attr", + "t": "gold", + "n": 500000 + }, + { + "a": "attr", + "t": "diamond", + "n": 180 + } + ] + }, + { + "id": 21, + "group": 21, + "reward": [ + { + "a": "attr", + "t": "gold", + "n": 400000 + }, + { + "a": "attr", + "t": "diamond", + "n": 160 + } + ] + }, + { + "id": 22, + "group": 21, + "reward": [ + { + "a": "attr", + "t": "gold", + "n": 400000 + }, + { + "a": "attr", + "t": "diamond", + "n": 160 + } + ] + }, + { + "id": 23, + "group": 21, + "reward": [ + { + "a": "attr", + "t": "gold", + "n": 400000 + }, + { + "a": "attr", + "t": "diamond", + "n": 160 + } + ] + }, + { + "id": 24, + "group": 21, + "reward": [ + { + "a": "attr", + "t": "gold", + "n": 400000 + }, + { + "a": "attr", + "t": "diamond", + "n": 160 + } + ] + }, + { + "id": 25, + "group": 21, + "reward": [ + { + "a": "attr", + "t": "gold", + "n": 400000 + }, + { + "a": "attr", + "t": "diamond", + "n": 160 + } + ] + }, + { + "id": 26, + "group": 21, + "reward": [ + { + "a": "attr", + "t": "gold", + "n": 400000 + }, + { + "a": "attr", + "t": "diamond", + "n": 160 + } + ] + }, + { + "id": 27, + "group": 21, + "reward": [ + { + "a": "attr", + "t": "gold", + "n": 400000 + }, + { + "a": "attr", + "t": "diamond", + "n": 160 + } + ] + }, + { + "id": 28, + "group": 21, + "reward": [ + { + "a": "attr", + "t": "gold", + "n": 400000 + }, + { + "a": "attr", + "t": "diamond", + "n": 160 + } + ] + }, + { + "id": 29, + "group": 21, + "reward": [ + { + "a": "attr", + "t": "gold", + "n": 400000 + }, + { + "a": "attr", + "t": "diamond", + "n": 160 + } + ] + }, + { + "id": 30, + "group": 21, + "reward": [ + { + "a": "attr", + "t": "gold", + "n": 400000 + }, + { + "a": "attr", + "t": "diamond", + "n": 160 + } + ] + }, + { + "id": 31, + "group": 21, + "reward": [ + { + "a": "attr", + "t": "gold", + "n": 400000 + }, + { + "a": "attr", + "t": "diamond", + "n": 160 + } + ] + }, + { + "id": 32, + "group": 21, + "reward": [ + { + "a": "attr", + "t": "gold", + "n": 400000 + }, + { + "a": "attr", + "t": "diamond", + "n": 160 + } + ] + }, + { + "id": 33, + "group": 21, + "reward": [ + { + "a": "attr", + "t": "gold", + "n": 400000 + }, + { + "a": "attr", + "t": "diamond", + "n": 160 + } + ] + }, + { + "id": 34, + "group": 21, + "reward": [ + { + "a": "attr", + "t": "gold", + "n": 400000 + }, + { + "a": "attr", + "t": "diamond", + "n": 160 + } + ] + }, + { + "id": 35, + "group": 21, + "reward": [ + { + "a": "attr", + "t": "gold", + "n": 400000 + }, + { + "a": "attr", + "t": "diamond", + "n": 160 + } + ] + }, + { + "id": 36, + "group": 21, + "reward": [ + { + "a": "attr", + "t": "gold", + "n": 400000 + }, + { + "a": "attr", + "t": "diamond", + "n": 160 + } + ] + }, + { + "id": 37, + "group": 21, + "reward": [ + { + "a": "attr", + "t": "gold", + "n": 400000 + }, + { + "a": "attr", + "t": "diamond", + "n": 160 + } + ] + }, + { + "id": 38, + "group": 21, + "reward": [ + { + "a": "attr", + "t": "gold", + "n": 400000 + }, + { + "a": "attr", + "t": "diamond", + "n": 160 + } + ] + }, + { + "id": 39, + "group": 21, + "reward": [ + { + "a": "attr", + "t": "gold", + "n": 400000 + }, + { + "a": "attr", + "t": "diamond", + "n": 160 + } + ] + }, + { + "id": 40, + "group": 21, + "reward": [ + { + "a": "attr", + "t": "gold", + "n": 400000 + }, + { + "a": "attr", + "t": "diamond", + "n": 160 + } + ] + }, + { + "id": 41, + "group": 21, + "reward": [ + { + "a": "attr", + "t": "gold", + "n": 400000 + }, + { + "a": "attr", + "t": "diamond", + "n": 160 + } + ] + }, + { + "id": 42, + "group": 21, + "reward": [ + { + "a": "attr", + "t": "gold", + "n": 400000 + }, + { + "a": "attr", + "t": "diamond", + "n": 160 + } + ] + }, + { + "id": 43, + "group": 21, + "reward": [ + { + "a": "attr", + "t": "gold", + "n": 400000 + }, + { + "a": "attr", + "t": "diamond", + "n": 160 + } + ] + }, + { + "id": 44, + "group": 21, + "reward": [ + { + "a": "attr", + "t": "gold", + "n": 400000 + }, + { + "a": "attr", + "t": "diamond", + "n": 160 + } + ] + }, + { + "id": 45, + "group": 21, + "reward": [ + { + "a": "attr", + "t": "gold", + "n": 400000 + }, + { + "a": "attr", + "t": "diamond", + "n": 160 + } + ] + }, + { + "id": 46, + "group": 21, + "reward": [ + { + "a": "attr", + "t": "gold", + "n": 400000 + }, + { + "a": "attr", + "t": "diamond", + "n": 160 + } + ] + }, + { + "id": 47, + "group": 21, + "reward": [ + { + "a": "attr", + "t": "gold", + "n": 400000 + }, + { + "a": "attr", + "t": "diamond", + "n": 160 + } + ] + }, + { + "id": 48, + "group": 21, + "reward": [ + { + "a": "attr", + "t": "gold", + "n": 400000 + }, + { + "a": "attr", + "t": "diamond", + "n": 160 + } + ] + }, + { + "id": 49, + "group": 21, + "reward": [ + { + "a": "attr", + "t": "gold", + "n": 400000 + }, + { + "a": "attr", + "t": "diamond", + "n": 160 + } + ] + }, + { + "id": 50, + "group": 21, + "reward": [ + { + "a": "attr", + "t": "gold", + "n": 400000 + }, + { + "a": "attr", + "t": "diamond", + "n": 160 + } + ] + }, + { + "id": 51, + "group": 31, + "reward": [ + { + "a": "attr", + "t": "gold", + "n": 300000 + }, + { + "a": "attr", + "t": "diamond", + "n": 140 + } + ] + }, + { + "id": 200, + "group": 31, + "reward": [ + { + "a": "attr", + "t": "gold", + "n": 300000 + }, + { + "a": "attr", + "t": "diamond", + "n": 140 + } + ] + }, + { + "id": 201, + "group": 41, + "reward": [ + { + "a": "attr", + "t": "gold", + "n": 200000 + }, + { + "a": "attr", + "t": "diamond", + "n": 120 + } + ] + }, + { + "id": 500, + "group": 41, + "reward": [ + { + "a": "attr", + "t": "gold", + "n": 200000 + }, + { + "a": "attr", + "t": "diamond", + "n": 120 + } + ] + }, + { + "id": 501, + "group": 0, + "reward": [ + { + "a": "attr", + "t": "gold", + "n": 100000 + }, + { + "a": "attr", + "t": "diamond", + "n": 100 + } + ] + } +] \ No newline at end of file diff --git a/bin/json/game_consumetask.json b/bin/json/game_consumetask.json new file mode 100644 index 000000000..7190ad544 --- /dev/null +++ b/bin/json/game_consumetask.json @@ -0,0 +1,107 @@ +[ + { + "key": 1, + "task_integral": { + "a": "attr", + "t": "consumeexp", + "n": 100 + }, + "reward": [ + { + "a": "attr", + "t": "diamond", + "n": 980 + } + ] + }, + { + "key": 2, + "task_integral": { + "a": "attr", + "t": "consumeexp", + "n": 200 + }, + "reward": [ + { + "a": "attr", + "t": "diamond", + "n": 980 + } + ] + }, + { + "key": 3, + "task_integral": { + "a": "attr", + "t": "consumeexp", + "n": 300 + }, + "reward": [ + { + "a": "attr", + "t": "diamond", + "n": 980 + } + ] + }, + { + "key": 4, + "task_integral": { + "a": "attr", + "t": "consumeexp", + "n": 400 + }, + "reward": [ + { + "a": "attr", + "t": "diamond", + "n": 980 + } + ] + }, + { + "key": 5, + "task_integral": { + "a": "attr", + "t": "consumeexp", + "n": 500 + }, + "reward": [ + { + "a": "attr", + "t": "diamond", + "n": 980 + } + ] + }, + { + "key": 6, + "task_integral": { + "a": "attr", + "t": "consumeexp", + "n": 600 + }, + "reward": [ + { + "a": "attr", + "t": "diamond", + "n": 980 + } + ] + }, + { + "key": 7, + "task_integral": { + "a": "attr", + "t": "consumeexp", + "n": 700 + }, + "reward": [ + { + "a": "attr", + "t": "diamond", + "n": 980 + } + ] + } +] \ No newline at end of file diff --git a/bin/json/game_consumetxt.json b/bin/json/game_consumetxt.json new file mode 100644 index 000000000..30ef0f250 --- /dev/null +++ b/bin/json/game_consumetxt.json @@ -0,0 +1,57 @@ +[ + { + "id": 1, + "name": { + "key": "consume_consume_txt_name_01", + "text": "3连胜" + }, + "txt": { + "key": "consume_consume_txt_txt_01", + "text": "2" + } + }, + { + "id": 2, + "name": { + "key": "consume_consume_txt_name_02", + "text": "5连胜" + }, + "txt": { + "key": "consume_consume_txt_txt_02", + "text": "2.5" + } + }, + { + "id": 3, + "name": { + "key": "consume_consume_txt_name_03", + "text": "8连胜" + }, + "txt": { + "key": "consume_consume_txt_txt_03", + "text": "3" + } + }, + { + "id": 4, + "name": { + "key": "consume_consume_txt_name_04", + "text": "10连胜" + }, + "txt": { + "key": "consume_consume_txt_txt_04", + "text": "3.5" + } + }, + { + "id": 5, + "name": { + "key": "consume_consume_txt_name_05", + "text": "20连胜" + }, + "txt": { + "key": "consume_consume_txt_txt_05", + "text": "5" + } + } +] \ No newline at end of file diff --git a/bin/json/game_fightglobalevent.json b/bin/json/game_fightglobalevent.json index 9d76a1349..9d58842d7 100644 --- a/bin/json/game_fightglobalevent.json +++ b/bin/json/game_fightglobalevent.json @@ -296,6 +296,7 @@ "1", "0", "200004001", + "FriendPos/Middle", "effect_zhiliao_huan" ] }, @@ -1168,6 +1169,7 @@ "2", "0", "255002611", + "EffectPos", "effect_zhiliao_huan" ] } diff --git a/bin/json/game_gamesummary.json b/bin/json/game_gamesummary.json index 369c2eda7..60937fabe 100644 --- a/bin/json/game_gamesummary.json +++ b/bin/json/game_gamesummary.json @@ -7,8 +7,8 @@ }, "tabId": 11001, "type": 0, - "jumpId": 10042, - "icon": "ty_qp_by", + "jumpId": 10045, + "icon": "ty_icon_xlyc", "mapPos": { "x": 4195, "y": 2042 @@ -40,8 +40,8 @@ }, "tabId": 11001, "type": 1, - "jumpId": 10045, - "icon": "ty_icon_xlyc", + "jumpId": 10042, + "icon": "ty_qp_by", "mapPos": { "x": 5173, "y": 1748 @@ -69,7 +69,7 @@ "tabId": 11002, "type": 2, "jumpId": 10027, - "icon": "ty_icon_wjt", + "icon": "ty_icon_szmj", "mapPos": { "x": 2711, "y": 2111 @@ -107,7 +107,7 @@ "tabId": 11002, "type": 3, "jumpId": 10068, - "icon": "ty_icon_zc", + "icon": "ty_icon_zcz", "mapPos": { "x": 2030, "y": 980 diff --git a/bin/json/game_global.json b/bin/json/game_global.json index f43f8ad37..368552115 100644 --- a/bin/json/game_global.json +++ b/bin/json/game_global.json @@ -770,6 +770,7 @@ "catchbugturn": 6, "NewDrawcardAttempts_Nums": 30, "stonehenge_guideStage": 88, - "story_waittime": 0.8 + "story_waittime": 0.8, + "sx_ranknum": 200 } ] \ No newline at end of file diff --git a/bin/json/game_lottery.json b/bin/json/game_lottery.json index 5d117008c..62017d760 100644 --- a/bin/json/game_lottery.json +++ b/bin/json/game_lottery.json @@ -23310,7 +23310,7 @@ "type": 3, "groupwt": 0, "groupid": 0, - "subtype": 2, + "subtype": 1, "groupnum": 1, "itemid": { "a": "hero", @@ -23334,7 +23334,7 @@ "type": 3, "groupwt": 0, "groupid": 0, - "subtype": 2, + "subtype": 1, "groupnum": 1, "itemid": { "a": "hero", @@ -23358,7 +23358,7 @@ "type": 3, "groupwt": 0, "groupid": 0, - "subtype": 2, + "subtype": 1, "groupnum": 1, "itemid": { "a": "hero", @@ -23382,7 +23382,7 @@ "type": 3, "groupwt": 0, "groupid": 0, - "subtype": 2, + "subtype": 1, "groupnum": 1, "itemid": { "a": "hero", @@ -23406,7 +23406,7 @@ "type": 3, "groupwt": 0, "groupid": 0, - "subtype": 2, + "subtype": 1, "groupnum": 1, "itemid": { "a": "hero", @@ -23430,7 +23430,7 @@ "type": 3, "groupwt": 0, "groupid": 0, - "subtype": 2, + "subtype": 1, "groupnum": 1, "itemid": { "a": "hero", @@ -23454,7 +23454,7 @@ "type": 3, "groupwt": 0, "groupid": 0, - "subtype": 2, + "subtype": 1, "groupnum": 1, "itemid": { "a": "hero", @@ -23478,7 +23478,7 @@ "type": 3, "groupwt": 0, "groupid": 0, - "subtype": 2, + "subtype": 1, "groupnum": 1, "itemid": { "a": "hero", @@ -23502,7 +23502,7 @@ "type": 3, "groupwt": 0, "groupid": 0, - "subtype": 2, + "subtype": 1, "groupnum": 1, "itemid": { "a": "hero", @@ -23526,7 +23526,7 @@ "type": 3, "groupwt": 0, "groupid": 0, - "subtype": 2, + "subtype": 1, "groupnum": 1, "itemid": { "a": "hero", @@ -23550,7 +23550,7 @@ "type": 3, "groupwt": 0, "groupid": 0, - "subtype": 2, + "subtype": 1, "groupnum": 1, "itemid": { "a": "hero", @@ -23574,7 +23574,7 @@ "type": 3, "groupwt": 0, "groupid": 0, - "subtype": 2, + "subtype": 1, "groupnum": 1, "itemid": { "a": "hero", @@ -23596,9 +23596,9 @@ "lotteryid": 17050002, "description": "5星热情之火自选宝箱", "type": 3, - "groupwt": 0, + "groupwt": 1, "groupid": 1, - "subtype": 2, + "subtype": 1, "groupnum": 1, "itemid": { "a": "hero", @@ -23620,9 +23620,9 @@ "lotteryid": 17050002, "description": "5星热情之火自选宝箱", "type": 3, - "groupwt": 0, + "groupwt": 1, "groupid": 1, - "subtype": 2, + "subtype": 1, "groupnum": 1, "itemid": { "a": "hero", @@ -23644,9 +23644,9 @@ "lotteryid": 17050002, "description": "5星热情之火自选宝箱", "type": 3, - "groupwt": 0, + "groupwt": 1, "groupid": 1, - "subtype": 2, + "subtype": 1, "groupnum": 1, "itemid": { "a": "hero", @@ -23668,9 +23668,9 @@ "lotteryid": 17050003, "description": "5星感观之林自选宝箱", "type": 3, - "groupwt": 0, + "groupwt": 1, "groupid": 3, - "subtype": 2, + "subtype": 1, "groupnum": 1, "itemid": { "a": "hero", @@ -23692,9 +23692,9 @@ "lotteryid": 17050004, "description": "5星包容之水自选宝箱", "type": 3, - "groupwt": 0, + "groupwt": 1, "groupid": 2, - "subtype": 2, + "subtype": 1, "groupnum": 1, "itemid": { "a": "hero", @@ -23716,9 +23716,9 @@ "lotteryid": 17050004, "description": "5星包容之水自选宝箱", "type": 3, - "groupwt": 0, + "groupwt": 1, "groupid": 2, - "subtype": 2, + "subtype": 1, "groupnum": 1, "itemid": { "a": "hero", @@ -23740,9 +23740,9 @@ "lotteryid": 17050004, "description": "5星包容之水自选宝箱", "type": 3, - "groupwt": 0, + "groupwt": 1, "groupid": 2, - "subtype": 2, + "subtype": 1, "groupnum": 1, "itemid": { "a": "hero", @@ -23764,9 +23764,9 @@ "lotteryid": 17050004, "description": "5星包容之水自选宝箱", "type": 3, - "groupwt": 0, + "groupwt": 1, "groupid": 2, - "subtype": 2, + "subtype": 1, "groupnum": 1, "itemid": { "a": "hero", @@ -23788,9 +23788,9 @@ "lotteryid": 17050004, "description": "5星包容之水自选宝箱", "type": 3, - "groupwt": 0, + "groupwt": 1, "groupid": 2, - "subtype": 2, + "subtype": 1, "groupnum": 1, "itemid": { "a": "hero", @@ -23812,9 +23812,9 @@ "lotteryid": 17050005, "description": "5星荣耀之光自选宝箱", "type": 3, - "groupwt": 0, + "groupwt": 1, "groupid": 4, - "subtype": 2, + "subtype": 1, "groupnum": 1, "itemid": { "a": "hero", @@ -23836,9 +23836,9 @@ "lotteryid": 17050005, "description": "5星荣耀之光自选宝箱", "type": 3, - "groupwt": 0, + "groupwt": 1, "groupid": 4, - "subtype": 2, + "subtype": 1, "groupnum": 1, "itemid": { "a": "hero", @@ -23860,9 +23860,9 @@ "lotteryid": 17050005, "description": "5星荣耀之光自选宝箱", "type": 3, - "groupwt": 0, + "groupwt": 1, "groupid": 4, - "subtype": 2, + "subtype": 1, "groupnum": 1, "itemid": { "a": "hero", @@ -46325,7 +46325,7 @@ "description": "热情之火回响材料宝箱", "type": 3, "groupwt": 1, - "groupid": 1, + "groupid": 3, "subtype": 1, "groupnum": 1, "itemid": { @@ -46349,7 +46349,7 @@ "description": "感观之林回响材料宝箱", "type": 3, "groupwt": 1, - "groupid": 1, + "groupid": 3, "subtype": 1, "groupnum": 1, "itemid": { @@ -46397,7 +46397,7 @@ "description": "感观之林回响材料宝箱", "type": 3, "groupwt": 1, - "groupid": 1, + "groupid": 3, "subtype": 1, "groupnum": 1, "itemid": { @@ -46421,7 +46421,7 @@ "description": "包容之水回响材料宝箱", "type": 3, "groupwt": 1, - "groupid": 1, + "groupid": 2, "subtype": 1, "groupnum": 1, "itemid": { @@ -46445,7 +46445,7 @@ "description": "包容之水回响材料宝箱", "type": 3, "groupwt": 1, - "groupid": 1, + "groupid": 2, "subtype": 1, "groupnum": 1, "itemid": { @@ -46469,7 +46469,7 @@ "description": "包容之水回响材料宝箱", "type": 3, "groupwt": 1, - "groupid": 1, + "groupid": 2, "subtype": 1, "groupnum": 1, "itemid": { @@ -46493,7 +46493,7 @@ "description": "荣耀之光回响材料宝箱", "type": 3, "groupwt": 1, - "groupid": 1, + "groupid": 4, "subtype": 1, "groupnum": 1, "itemid": { @@ -46517,7 +46517,7 @@ "description": "荣耀之光回响材料宝箱", "type": 3, "groupwt": 1, - "groupid": 1, + "groupid": 4, "subtype": 1, "groupnum": 1, "itemid": { @@ -46541,7 +46541,7 @@ "description": "荣耀之光回响材料宝箱", "type": 3, "groupwt": 1, - "groupid": 1, + "groupid": 4, "subtype": 1, "groupnum": 1, "itemid": { @@ -46685,7 +46685,7 @@ "description": "4星直觉守护者自选箱", "type": 3, "groupwt": 1, - "groupid": 1, + "groupid": 2, "subtype": 1, "groupnum": 1, "itemid": { @@ -46709,7 +46709,7 @@ "description": "4星直觉守护者自选箱", "type": 3, "groupwt": 1, - "groupid": 1, + "groupid": 2, "subtype": 1, "groupnum": 1, "itemid": { @@ -46733,7 +46733,7 @@ "description": "4星直觉守护者自选箱", "type": 3, "groupwt": 1, - "groupid": 1, + "groupid": 2, "subtype": 1, "groupnum": 1, "itemid": { @@ -46757,7 +46757,7 @@ "description": "4星直觉守护者自选箱", "type": 3, "groupwt": 1, - "groupid": 1, + "groupid": 2, "subtype": 1, "groupnum": 1, "itemid": { @@ -46781,7 +46781,7 @@ "description": "4星直觉守护者自选箱", "type": 3, "groupwt": 1, - "groupid": 1, + "groupid": 2, "subtype": 1, "groupnum": 1, "itemid": { @@ -46901,7 +46901,7 @@ "description": "4星共情守护者自选箱", "type": 3, "groupwt": 1, - "groupid": 1, + "groupid": 3, "subtype": 1, "groupnum": 1, "itemid": { @@ -46925,7 +46925,7 @@ "description": "4星共情守护者自选箱", "type": 3, "groupwt": 1, - "groupid": 1, + "groupid": 3, "subtype": 1, "groupnum": 1, "itemid": { @@ -46949,7 +46949,7 @@ "description": "4星共情守护者自选箱", "type": 3, "groupwt": 1, - "groupid": 1, + "groupid": 3, "subtype": 1, "groupnum": 1, "itemid": { @@ -46973,7 +46973,7 @@ "description": "4星共情守护者自选箱", "type": 3, "groupwt": 1, - "groupid": 1, + "groupid": 3, "subtype": 1, "groupnum": 1, "itemid": { @@ -46997,7 +46997,7 @@ "description": "4星共情守护者自选箱", "type": 3, "groupwt": 1, - "groupid": 1, + "groupid": 3, "subtype": 1, "groupnum": 1, "itemid": { @@ -47021,7 +47021,7 @@ "description": "4星共情守护者自选箱", "type": 3, "groupwt": 1, - "groupid": 1, + "groupid": 3, "subtype": 1, "groupnum": 1, "itemid": { @@ -98357,11 +98357,11 @@ "description": "三种族招募卡自选箱", "type": 3, "groupwt": 1000, - "groupid": 11050, + "groupid": 1, "subtype": 1, "groupnum": 1, "itemid": { - "a": "iiem", + "a": "item", "t": "10000021", "n": 1 }, @@ -98381,11 +98381,11 @@ "description": "三种族招募卡自选箱", "type": 3, "groupwt": 1000, - "groupid": 11050, + "groupid": 1, "subtype": 1, "groupnum": 1, "itemid": { - "a": "iiem", + "a": "item", "t": "10000022", "n": 1 }, @@ -98405,11 +98405,11 @@ "description": "三种族招募卡自选箱", "type": 3, "groupwt": 1000, - "groupid": 11050, + "groupid": 1, "subtype": 1, "groupnum": 1, "itemid": { - "a": "iiem", + "a": "item", "t": "10000023", "n": 1 }, @@ -98430,7 +98430,7 @@ "type": 2, "groupwt": 1000, "groupid": 11001, - "subtype": 2, + "subtype": 1, "groupnum": 1, "itemid": { "a": "equi", @@ -98454,7 +98454,7 @@ "type": 2, "groupwt": 1000, "groupid": 11001, - "subtype": 2, + "subtype": 1, "groupnum": 1, "itemid": { "a": "equi", @@ -98478,7 +98478,7 @@ "type": 2, "groupwt": 1000, "groupid": 11001, - "subtype": 2, + "subtype": 1, "groupnum": 1, "itemid": { "a": "equi", @@ -98502,7 +98502,7 @@ "type": 2, "groupwt": 1000, "groupid": 11001, - "subtype": 2, + "subtype": 1, "groupnum": 1, "itemid": { "a": "equi", diff --git a/bin/json/game_mainstage.json b/bin/json/game_mainstage.json index 5a366ed8d..229939ab8 100644 --- a/bin/json/game_mainstage.json +++ b/bin/json/game_mainstage.json @@ -9769,8 +9769,8 @@ "herocolor": 1, "heroimg": "zxgq_qp_icon_gth", "bubbletext": { - "key": "", - "text": "" + "key": "main_stage_bubbletext_84", + "text": "来吧朋友,找点能吃的东西并不困难。" }, "animation": [], "prewarbubbletext": { @@ -9850,7 +9850,7 @@ "herocolor": 1, "heroimg": "zxgq_qp_icon_gth", "bubbletext": { - "key": "", + "key": "main_stage_bubbletext_85", "text": "" }, "animation": [], @@ -9931,8 +9931,8 @@ "herocolor": 1, "heroimg": "zxgq_qp_icon_gth", "bubbletext": { - "key": "", - "text": "" + "key": "main_stage_bubbletext_86", + "text": "这么多东西!你们累坏了吧?" }, "animation": [], "prewarbubbletext": { @@ -10052,8 +10052,8 @@ "herocolor": 1, "heroimg": "zxgq_qp_icon_gth", "bubbletext": { - "key": "", - "text": "" + "key": "main_stage_bubbletext_87", + "text": "你们哪儿都不许去!" }, "animation": [], "prewarbubbletext": { @@ -10173,8 +10173,8 @@ "herocolor": 1, "heroimg": "zxgq_qp_icon_gth", "bubbletext": { - "key": "", - "text": "" + "key": "main_stage_bubbletext_88", + "text": "多亏了本大爷!" }, "animation": [], "prewarbubbletext": { @@ -10254,8 +10254,8 @@ "herocolor": 1, "heroimg": "zxgq_qp_icon_gth", "bubbletext": { - "key": "", - "text": "" + "key": "main_stage_bubbletext_89", + "text": "前面就是拳猴的领地。" }, "animation": [], "prewarbubbletext": { @@ -10375,7 +10375,7 @@ "herocolor": 1, "heroimg": "zxgq_qp_icon_gth", "bubbletext": { - "key": "", + "key": "main_stage_bubbletext_90", "text": "" }, "animation": [], @@ -10454,7 +10454,7 @@ "herocolor": 1, "heroimg": "zxgq_qp_icon_gth", "bubbletext": { - "key": "", + "key": "main_stage_bubbletext_91", "text": "" }, "animation": [], @@ -10533,7 +10533,7 @@ "herocolor": 1, "heroimg": "zxgq_qp_icon_gth", "bubbletext": { - "key": "", + "key": "main_stage_bubbletext_92", "text": "" }, "animation": [], @@ -10590,7 +10590,7 @@ "buried_type": 0, "buried": 0, "grouptype": [], - "Episodetype": 7, + "Episodetype": 3, "stage_param": 0, "inherit": 0, "battle_fail": 0, @@ -10612,7 +10612,7 @@ "herocolor": 1, "heroimg": "zxgq_qp_icon_gth", "bubbletext": { - "key": "", + "key": "main_stage_bubbletext_93", "text": "" }, "animation": [], @@ -10669,7 +10669,7 @@ "buried_type": 0, "buried": 0, "grouptype": [], - "Episodetype": 7, + "Episodetype": 3, "stage_param": 0, "inherit": 0, "battle_fail": 0, @@ -10691,7 +10691,7 @@ "herocolor": 1, "heroimg": "zxgq_qp_icon_gth", "bubbletext": { - "key": "", + "key": "main_stage_bubbletext_94", "text": "" }, "animation": [], @@ -10770,8 +10770,8 @@ "herocolor": 1, "heroimg": "zxgq_qp_icon_gth", "bubbletext": { - "key": "", - "text": "" + "key": "main_stage_bubbletext_95", + "text": "哼……传承者……" }, "animation": [], "prewarbubbletext": { @@ -10849,8 +10849,8 @@ "herocolor": 1, "heroimg": "zxgq_qp_icon_gth", "bubbletext": { - "key": "", - "text": "" + "key": "main_stage_bubbletext_96", + "text": "前面好像有一片石林……" }, "animation": [], "prewarbubbletext": { @@ -10928,7 +10928,7 @@ "herocolor": 1, "heroimg": "zxgq_qp_icon_gth", "bubbletext": { - "key": "", + "key": "main_stage_bubbletext_97", "text": "" }, "animation": [], @@ -11007,8 +11007,8 @@ "herocolor": 2, "heroimg": "zxgq_qp_icon_gth", "bubbletext": { - "key": "", - "text": "" + "key": "main_stage_bubbletext_98", + "text": "总算出来了……" }, "animation": [], "prewarbubbletext": { @@ -11086,8 +11086,8 @@ "herocolor": 1, "heroimg": "zxgq_qp_icon_gth", "bubbletext": { - "key": "", - "text": "" + "key": "main_stage_bubbletext_99", + "text": "离目的地不远了。" }, "animation": [], "prewarbubbletext": { @@ -11165,7 +11165,7 @@ "herocolor": 1, "heroimg": "zxgq_qp_icon_gth", "bubbletext": { - "key": "", + "key": "main_stage_bubbletext_100", "text": "" }, "animation": [], @@ -11286,7 +11286,7 @@ "herocolor": 1, "heroimg": "zxgq_qp_icon_gth", "bubbletext": { - "key": "", + "key": "main_stage_bubbletext_101", "text": "" }, "animation": [], @@ -11365,8 +11365,8 @@ "herocolor": 1, "heroimg": "zxgq_qp_icon_gth", "bubbletext": { - "key": "", - "text": "" + "key": "main_stage_bubbletext_102", + "text": "哈哈哈哈……看看!这是谁来了!" }, "animation": [], "prewarbubbletext": { @@ -11482,8 +11482,8 @@ "herocolor": 1, "heroimg": "zxgq_qp_icon_gth", "bubbletext": { - "key": "", - "text": "" + "key": "main_stage_bubbletext_103", + "text": "你们……你们竟敢!" }, "animation": [], "prewarbubbletext": { @@ -11561,8 +11561,8 @@ "herocolor": 1, "heroimg": "zxgq_qp_icon_gth", "bubbletext": { - "key": "", - "text": "" + "key": "main_stage_bubbletext_104", + "text": "大家小心!" }, "animation": [], "prewarbubbletext": { diff --git a/bin/json/game_opencond.json b/bin/json/game_opencond.json index 6239cc842..3fce63d82 100644 --- a/bin/json/game_opencond.json +++ b/bin/json/game_opencond.json @@ -1156,7 +1156,7 @@ "main": [ { "key": 3, - "param": 20130 + "param": 20128 } ], "wkqbx": 0, @@ -3002,7 +3002,7 @@ "main": [ { "key": 1, - "param": 42 + "param": 70 } ], "wkqbx": 2, @@ -3030,7 +3030,7 @@ "main": [ { "key": 1, - "param": 43 + "param": 71 } ], "wkqbx": 2, @@ -3058,7 +3058,7 @@ "main": [ { "key": 1, - "param": 44 + "param": 72 } ], "wkqbx": 2, @@ -3086,7 +3086,7 @@ "main": [ { "key": 1, - "param": 45 + "param": 73 } ], "wkqbx": 2, diff --git a/bin/json/game_passcheck.json b/bin/json/game_passcheck.json index 3c7e322d2..82028379a 100644 --- a/bin/json/game_passcheck.json +++ b/bin/json/game_passcheck.json @@ -1999,5 +1999,534 @@ "n": 300 } ] + }, + { + "id": 60001, + "passcheck_type": 6, + "parameter": 500, + "unlock_text": { + "key": "passcheck_passcheck_unlock_text_60001", + "text": "{0}级" + }, + "free_reward": [ + { + "a": "attr", + "t": "gold", + "n": 1 + } + ], + "pay_reward": [ + { + "a": "attr", + "t": "diamond", + "n": 20 + } + ] + }, + { + "id": 60002, + "passcheck_type": 6, + "parameter": 1000, + "unlock_text": { + "key": "passcheck_passcheck_unlock_text_60002", + "text": "{0}级" + }, + "free_reward": [ + { + "a": "attr", + "t": "gold", + "n": 2 + } + ], + "pay_reward": [ + { + "a": "attr", + "t": "diamond", + "n": 20 + } + ] + }, + { + "id": 60003, + "passcheck_type": 6, + "parameter": 2000, + "unlock_text": { + "key": "passcheck_passcheck_unlock_text_60003", + "text": "{0}级" + }, + "free_reward": [ + { + "a": "attr", + "t": "gold", + "n": 3 + } + ], + "pay_reward": [ + { + "a": "attr", + "t": "diamond", + "n": 20 + } + ] + }, + { + "id": 60004, + "passcheck_type": 6, + "parameter": 3000, + "unlock_text": { + "key": "passcheck_passcheck_unlock_text_60004", + "text": "{0}级" + }, + "free_reward": [ + { + "a": "attr", + "t": "gold", + "n": 4 + } + ], + "pay_reward": [ + { + "a": "attr", + "t": "diamond", + "n": 20 + } + ] + }, + { + "id": 60005, + "passcheck_type": 6, + "parameter": 4000, + "unlock_text": { + "key": "passcheck_passcheck_unlock_text_60005", + "text": "{0}级" + }, + "free_reward": [ + { + "a": "attr", + "t": "gold", + "n": 5 + } + ], + "pay_reward": [ + { + "a": "attr", + "t": "diamond", + "n": 20 + } + ] + }, + { + "id": 60006, + "passcheck_type": 6, + "parameter": 5000, + "unlock_text": { + "key": "passcheck_passcheck_unlock_text_60006", + "text": "{0}级" + }, + "free_reward": [ + { + "a": "attr", + "t": "gold", + "n": 6 + } + ], + "pay_reward": [ + { + "a": "attr", + "t": "diamond", + "n": 20 + } + ] + }, + { + "id": 60007, + "passcheck_type": 6, + "parameter": 6000, + "unlock_text": { + "key": "passcheck_passcheck_unlock_text_60007", + "text": "{0}级" + }, + "free_reward": [ + { + "a": "attr", + "t": "gold", + "n": 7 + } + ], + "pay_reward": [ + { + "a": "attr", + "t": "diamond", + "n": 20 + } + ] + }, + { + "id": 60008, + "passcheck_type": 6, + "parameter": 7000, + "unlock_text": { + "key": "passcheck_passcheck_unlock_text_60008", + "text": "{0}级" + }, + "free_reward": [ + { + "a": "attr", + "t": "gold", + "n": 8 + } + ], + "pay_reward": [ + { + "a": "attr", + "t": "diamond", + "n": 20 + } + ] + }, + { + "id": 60009, + "passcheck_type": 6, + "parameter": 8000, + "unlock_text": { + "key": "passcheck_passcheck_unlock_text_60009", + "text": "{0}级" + }, + "free_reward": [ + { + "a": "attr", + "t": "gold", + "n": 9 + } + ], + "pay_reward": [ + { + "a": "attr", + "t": "diamond", + "n": 20 + } + ] + }, + { + "id": 60010, + "passcheck_type": 6, + "parameter": 9000, + "unlock_text": { + "key": "passcheck_passcheck_unlock_text_60010", + "text": "{0}级" + }, + "free_reward": [ + { + "a": "attr", + "t": "gold", + "n": 10 + } + ], + "pay_reward": [ + { + "a": "attr", + "t": "diamond", + "n": 20 + } + ] + }, + { + "id": 60011, + "passcheck_type": 6, + "parameter": 10000, + "unlock_text": { + "key": "passcheck_passcheck_unlock_text_60011", + "text": "{0}级" + }, + "free_reward": [ + { + "a": "attr", + "t": "gold", + "n": 11 + } + ], + "pay_reward": [ + { + "a": "attr", + "t": "diamond", + "n": 20 + } + ] + }, + { + "id": 60012, + "passcheck_type": 6, + "parameter": 11000, + "unlock_text": { + "key": "passcheck_passcheck_unlock_text_60012", + "text": "{0}级" + }, + "free_reward": [ + { + "a": "attr", + "t": "gold", + "n": 12 + } + ], + "pay_reward": [ + { + "a": "attr", + "t": "diamond", + "n": 20 + } + ] + }, + { + "id": 60013, + "passcheck_type": 6, + "parameter": 12000, + "unlock_text": { + "key": "passcheck_passcheck_unlock_text_60013", + "text": "{0}级" + }, + "free_reward": [ + { + "a": "attr", + "t": "gold", + "n": 13 + } + ], + "pay_reward": [ + { + "a": "attr", + "t": "diamond", + "n": 20 + } + ] + }, + { + "id": 60014, + "passcheck_type": 6, + "parameter": 13000, + "unlock_text": { + "key": "passcheck_passcheck_unlock_text_60014", + "text": "{0}级" + }, + "free_reward": [ + { + "a": "attr", + "t": "gold", + "n": 14 + } + ], + "pay_reward": [ + { + "a": "attr", + "t": "diamond", + "n": 20 + } + ] + }, + { + "id": 60015, + "passcheck_type": 6, + "parameter": 14000, + "unlock_text": { + "key": "passcheck_passcheck_unlock_text_60015", + "text": "{0}级" + }, + "free_reward": [ + { + "a": "attr", + "t": "gold", + "n": 15 + } + ], + "pay_reward": [ + { + "a": "attr", + "t": "diamond", + "n": 20 + } + ] + }, + { + "id": 60016, + "passcheck_type": 6, + "parameter": 15000, + "unlock_text": { + "key": "passcheck_passcheck_unlock_text_60016", + "text": "{0}级" + }, + "free_reward": [ + { + "a": "attr", + "t": "gold", + "n": 16 + } + ], + "pay_reward": [ + { + "a": "attr", + "t": "diamond", + "n": 20 + } + ] + }, + { + "id": 60017, + "passcheck_type": 6, + "parameter": 16000, + "unlock_text": { + "key": "passcheck_passcheck_unlock_text_60017", + "text": "{0}级" + }, + "free_reward": [ + { + "a": "attr", + "t": "gold", + "n": 17 + } + ], + "pay_reward": [ + { + "a": "attr", + "t": "diamond", + "n": 20 + } + ] + }, + { + "id": 60018, + "passcheck_type": 6, + "parameter": 17000, + "unlock_text": { + "key": "passcheck_passcheck_unlock_text_60018", + "text": "{0}级" + }, + "free_reward": [ + { + "a": "attr", + "t": "gold", + "n": 18 + } + ], + "pay_reward": [ + { + "a": "attr", + "t": "diamond", + "n": 20 + } + ] + }, + { + "id": 60019, + "passcheck_type": 6, + "parameter": 18000, + "unlock_text": { + "key": "passcheck_passcheck_unlock_text_60019", + "text": "{0}级" + }, + "free_reward": [ + { + "a": "attr", + "t": "gold", + "n": 19 + } + ], + "pay_reward": [ + { + "a": "attr", + "t": "diamond", + "n": 20 + } + ] + }, + { + "id": 60020, + "passcheck_type": 6, + "parameter": 19000, + "unlock_text": { + "key": "passcheck_passcheck_unlock_text_60020", + "text": "{0}级" + }, + "free_reward": [ + { + "a": "attr", + "t": "gold", + "n": 20 + } + ], + "pay_reward": [ + { + "a": "attr", + "t": "diamond", + "n": 20 + } + ] + }, + { + "id": 60021, + "passcheck_type": 6, + "parameter": 20000, + "unlock_text": { + "key": "passcheck_passcheck_unlock_text_60021", + "text": "{0}级" + }, + "free_reward": [ + { + "a": "attr", + "t": "gold", + "n": 21 + } + ], + "pay_reward": [ + { + "a": "attr", + "t": "diamond", + "n": 20 + } + ] + }, + { + "id": 60022, + "passcheck_type": 6, + "parameter": 21000, + "unlock_text": { + "key": "passcheck_passcheck_unlock_text_60022", + "text": "{0}级" + }, + "free_reward": [ + { + "a": "attr", + "t": "gold", + "n": 22 + } + ], + "pay_reward": [ + { + "a": "attr", + "t": "diamond", + "n": 20 + } + ] + }, + { + "id": 60023, + "passcheck_type": 6, + "parameter": 22000, + "unlock_text": { + "key": "passcheck_passcheck_unlock_text_60023", + "text": "{0}级" + }, + "free_reward": [ + { + "a": "attr", + "t": "gold", + "n": 23 + } + ], + "pay_reward": [ + { + "a": "attr", + "t": "diamond", + "n": 20 + } + ] } ] \ No newline at end of file diff --git a/bin/json/game_passcheckprice.json b/bin/json/game_passcheckprice.json index 76acd724b..748bce2e4 100644 --- a/bin/json/game_passcheckprice.json +++ b/bin/json/game_passcheckprice.json @@ -28,5 +28,11 @@ "pay_id": "passcheck_4", "paypro_id": "passcheckPro_4", "paymid_id": "" + }, + { + "passcheck_type": 6, + "pay_id": "sx_gift_01", + "paypro_id": "", + "paymid_id": "" } ] \ No newline at end of file diff --git a/bin/json/game_recharge.json b/bin/json/game_recharge.json index 0856500b0..c0ec6ddc5 100644 --- a/bin/json/game_recharge.json +++ b/bin/json/game_recharge.json @@ -11,7 +11,7 @@ "text": "0", "show": "6元", "image": "cz_zs_01", - "integral": 600 + "integral": 0 }, { "id": "gold30", @@ -25,7 +25,7 @@ "text": "0", "show": "30元", "image": "cz_zs_02", - "integral": 3000 + "integral": 0 }, { "id": "gold68", @@ -39,10 +39,10 @@ "text": "0", "show": "68元", "image": "cz_zs_02", - "integral": 6800 + "integral": 0 }, { - "id": "gold128", + "id": "gold98", "pid": 4, "editionid": "debug", "monetaryunit": "¥", @@ -53,10 +53,10 @@ "text": "0", "show": "98元", "image": "cz_zs_02", - "integral": 9800 + "integral": 0 }, { - "id": "gold198", + "id": "gold128", "pid": 5, "editionid": "debug", "monetaryunit": "¥", @@ -67,10 +67,10 @@ "text": "0", "show": "128元", "image": "cz_zs_03", - "integral": 12800 + "integral": 0 }, { - "id": "gold328", + "id": "gold198", "pid": 6, "editionid": "debug", "monetaryunit": "¥", @@ -81,10 +81,10 @@ "text": "0", "show": "198元", "image": "cz_zs_03", - "integral": 19800 + "integral": 0 }, { - "id": "gold448", + "id": "gold328", "pid": 7, "editionid": "debug", "monetaryunit": "¥", @@ -95,7 +95,7 @@ "text": "0", "show": "328元", "image": "cz_zs_03", - "integral": 32800 + "integral": 0 }, { "id": "gold648", @@ -109,7 +109,7 @@ "text": "0", "show": "648元", "image": "cz_zs_03", - "integral": 64800 + "integral": 0 }, { "id": "lb6_1", @@ -123,7 +123,7 @@ "text": "0", "show": "6元", "image": "", - "integral": 600 + "integral": 0 }, { "id": "day_1", @@ -137,7 +137,7 @@ "text": "0", "show": "6元", "image": "", - "integral": 600 + "integral": 0 }, { "id": "day_2", @@ -151,7 +151,7 @@ "text": "0", "show": "30元", "image": "", - "integral": 3000 + "integral": 0 }, { "id": "day_3", @@ -165,7 +165,7 @@ "text": "0", "show": "68元", "image": "", - "integral": 6800 + "integral": 0 }, { "id": "day_4", @@ -179,7 +179,7 @@ "text": "0", "show": "128元", "image": "", - "integral": 12800 + "integral": 0 }, { "id": "week_1", @@ -193,7 +193,7 @@ "text": "0", "show": "30元", "image": "", - "integral": 3000 + "integral": 0 }, { "id": "week_2", @@ -207,7 +207,7 @@ "text": "0", "show": "98元", "image": "", - "integral": 9800 + "integral": 0 }, { "id": "week_3", @@ -221,7 +221,7 @@ "text": "0", "show": "198元", "image": "", - "integral": 19800 + "integral": 0 }, { "id": "week_4", @@ -235,7 +235,7 @@ "text": "0", "show": "328元", "image": "", - "integral": 32800 + "integral": 0 }, { "id": "week_5", @@ -249,7 +249,7 @@ "text": "0", "show": "448元", "image": "", - "integral": 44800 + "integral": 0 }, { "id": "week_6", @@ -263,7 +263,7 @@ "text": "0", "show": "648元", "image": "", - "integral": 64800 + "integral": 0 }, { "id": "month_1", @@ -277,7 +277,7 @@ "text": "0", "show": "128元", "image": "", - "integral": 12800 + "integral": 0 }, { "id": "month_2", @@ -291,7 +291,7 @@ "text": "0", "show": "198元", "image": "", - "integral": 19800 + "integral": 0 }, { "id": "month_3", @@ -305,7 +305,7 @@ "text": "0", "show": "328元", "image": "", - "integral": 32800 + "integral": 0 }, { "id": "yueka_lv1", @@ -325,7 +325,7 @@ "text": "0", "show": "30元", "image": "", - "integral": 3000 + "integral": 0 }, { "id": "yueka_lv2", @@ -345,7 +345,7 @@ "text": "0", "show": "98元", "image": "", - "integral": 9800 + "integral": 0 }, { "id": "passcheck_1", @@ -359,7 +359,7 @@ "text": "0", "show": "98元", "image": "", - "integral": 9800 + "integral": 0 }, { "id": "passcheck_2", @@ -373,7 +373,7 @@ "text": "0", "show": "98元", "image": "", - "integral": 9800 + "integral": 0 }, { "id": "drawcard_pack1", @@ -387,7 +387,7 @@ "text": "0", "show": "30元", "image": "", - "integral": 3000 + "integral": 0 }, { "id": "passcheck_3", @@ -401,7 +401,7 @@ "text": "0", "show": "30元", "image": "", - "integral": 3000 + "integral": 0 }, { "id": "passcheck_4", @@ -415,7 +415,7 @@ "text": "0", "show": "68元", "image": "", - "integral": 6800 + "integral": 0 }, { "id": "fund_1", @@ -429,7 +429,7 @@ "text": "0", "show": "128元", "image": "", - "integral": 3000 + "integral": 0 }, { "id": "fund_2", @@ -443,7 +443,7 @@ "text": "0", "show": "30元", "image": "", - "integral": 3000 + "integral": 0 }, { "id": "fund_3", @@ -457,7 +457,7 @@ "text": "0", "show": "30元", "image": "", - "integral": 3000 + "integral": 0 }, { "id": "fund_4", @@ -471,7 +471,7 @@ "text": "0", "show": "30元", "image": "", - "integral": 3000 + "integral": 0 }, { "id": "fund_5", @@ -485,7 +485,7 @@ "text": "0", "show": "30元", "image": "", - "integral": 3000 + "integral": 0 }, { "id": "fund_6", @@ -499,7 +499,7 @@ "text": "0", "show": "30元", "image": "", - "integral": 3000 + "integral": 0 }, { "id": "fund_7", @@ -513,7 +513,7 @@ "text": "0", "show": "30元", "image": "", - "integral": 3000 + "integral": 0 }, { "id": "fund_8", @@ -527,7 +527,7 @@ "text": "0", "show": "6元", "image": "", - "integral": 6000 + "integral": 0 }, { "id": "fund_9", @@ -541,7 +541,7 @@ "text": "0", "show": "30元", "image": "", - "integral": 3000 + "integral": 0 }, { "id": "fund_10", @@ -555,7 +555,7 @@ "text": "0", "show": "68元", "image": "", - "integral": 6800 + "integral": 0 }, { "id": "drawcard_pack2", @@ -569,7 +569,7 @@ "text": "0", "show": "30元", "image": "", - "integral": 3000 + "integral": 0 }, { "id": "drawcard_pack3", @@ -583,7 +583,7 @@ "text": "0", "show": "30元", "image": "", - "integral": 3000 + "integral": 0 }, { "id": "drawcard_pack4", @@ -597,7 +597,7 @@ "text": "0", "show": "30元", "image": "", - "integral": 3000 + "integral": 0 }, { "id": "passcheckPro_4", @@ -623,7 +623,7 @@ "text": "0", "show": "98元", "image": "", - "integral": 9800 + "integral": 0 }, { "id": "passcheckMid_4", @@ -649,7 +649,7 @@ "text": "0", "show": "30元", "image": "", - "integral": 3000 + "integral": 0 }, { "id": "push_gift_1", @@ -663,7 +663,7 @@ "text": "0", "show": "30元", "image": "", - "integral": 3000 + "integral": 0 }, { "id": "push_gift_2", @@ -677,7 +677,7 @@ "text": "0", "show": "30元", "image": "", - "integral": 3000 + "integral": 0 }, { "id": "push_gift_3", @@ -691,7 +691,7 @@ "text": "0", "show": "30元", "image": "", - "integral": 3000 + "integral": 0 }, { "id": "push_gift_4", @@ -705,7 +705,7 @@ "text": "0", "show": "30元", "image": "", - "integral": 3000 + "integral": 0 }, { "id": "push_gift_5", @@ -719,7 +719,7 @@ "text": "0", "show": "30元", "image": "", - "integral": 3000 + "integral": 0 }, { "id": "push_gift_6", @@ -733,7 +733,7 @@ "text": "0", "show": "30元", "image": "", - "integral": 3000 + "integral": 0 }, { "id": "push_gift_7", @@ -747,7 +747,7 @@ "text": "0", "show": "30元", "image": "", - "integral": 3000 + "integral": 0 }, { "id": "push_gift_8", @@ -761,7 +761,7 @@ "text": "0", "show": "30元", "image": "", - "integral": 3000 + "integral": 0 }, { "id": "push_gift_9", @@ -775,7 +775,7 @@ "text": "0", "show": "30元", "image": "", - "integral": 3000 + "integral": 0 }, { "id": "push_gift_10", @@ -789,7 +789,7 @@ "text": "0", "show": "30元", "image": "", - "integral": 3000 + "integral": 0 }, { "id": "push_gift_11", @@ -803,7 +803,7 @@ "text": "0", "show": "30元", "image": "", - "integral": 3000 + "integral": 0 }, { "id": "push_gift_12", @@ -817,6 +817,32 @@ "text": "0", "show": "30元", "image": "", - "integral": 3000 + "integral": 0 + }, + { + "id": "sx_gift_01", + "pid": 57, + "editionid": "debug", + "monetaryunit": "¥", + "amount": 32800, + "vipexp": [ + { + "a": "attr", + "t": "diamond", + "n": 980 + } + ], + "diamond_num_double": [ + { + "a": "attr", + "t": "diamond", + "n": 980 + } + ], + "channel": "0", + "text": "0", + "show": "328元", + "image": "", + "integral": 0 } ] \ No newline at end of file diff --git a/bin/json/game_rechargediamond.json b/bin/json/game_rechargediamond.json index 780c10357..cc558b564 100644 --- a/bin/json/game_rechargediamond.json +++ b/bin/json/game_rechargediamond.json @@ -73,7 +73,7 @@ } ], "image": "cz_zs_02", - "bpoint": "gold128" + "bpoint": "gold98" }, { "id": 5, @@ -92,7 +92,7 @@ } ], "image": "cz_zs_03", - "bpoint": "gold198" + "bpoint": "gold128" }, { "id": 6, @@ -111,7 +111,7 @@ } ], "image": "cz_zs_03", - "bpoint": "gold328" + "bpoint": "gold198" }, { "id": 7, @@ -130,7 +130,7 @@ } ], "image": "cz_zs_03", - "bpoint": "gold448" + "bpoint": "gold328" }, { "id": 8, diff --git a/bin/json/game_ruledesc.json b/bin/json/game_ruledesc.json index 4ff415129..bae25b7ad 100644 --- a/bin/json/game_ruledesc.json +++ b/bin/json/game_ruledesc.json @@ -504,5 +504,16 @@ "key": "ruledesc_ruledesc_content_46", "text": "这里可以使用传承者月光与水晶的力量,迅速提升守护者的等级。
水晶会挑选你等级最高的5位守护者为核心,在右侧上阵守护者将会把等级提升至五位最高的守护者中等级最低的那一位。
上阵守护者槽位由传承者等级解锁,每一个槽位只能上阵相应品质的守护者。
卸下守护者后槽位会进入不稳定状态,稳定槽位需要等待24小时或者200月光原石迅速稳定。" } + }, + { + "id": 10047, + "title": { + "key": "ruledesc_ruledesc_title_47", + "text": "商店说明" + }, + "content": { + "key": "ruledesc_ruledesc_content_47", + "text": "金币商店
在金币商店内,可以使用金币购买所需物资。
金币商店每隔8小时刷新,也可以手动刷新,手动刷新需要消耗钻石,每天最多可以刷新8次。
等级越高,金币商店中刷出高品质装备的概率越大。
月光商店
在月光商店内,可以使用月光原石购买所需物资。
月光商店每天刷新一次,不可手动刷新。
友情专柜
在友情专柜内,可以使用友情点购买所需物资。
竞技专柜每天刷新一次,不可手动刷新。
竞技专柜
在竞技专柜内,可以使用竞技币购买所需物资。
竞技专柜每七天刷新一次,不可手动刷新。
聚乐专柜
在聚乐专柜内,可以使用月光原石购买所需物资。
聚乐专柜每七天刷新一次,不可手动刷新。
守护专柜
在守护专柜内,可以使用幸运星购买所需物资。
守护专柜每二十一天刷新一次,不可手动刷新。
冒险商店
这里面是通关冒险之旅章节后解锁的商店。
内部的商品是一次性的,通过冒险之旅获得相应的货币购买。" + } } ] \ No newline at end of file diff --git a/bin/json/game_skillafteratk.json b/bin/json/game_skillafteratk.json index b9d118600..45186d587 100644 --- a/bin/json/game_skillafteratk.json +++ b/bin/json/game_skillafteratk.json @@ -29459,7 +29459,9 @@ 800 ], "FollowSK": [], - "SucFollowSK": [], + "SucFollowSK": [ + 255007215 + ], "FailFollowSK": [], "MustHit": false, "DpsRevisiType": 0, @@ -29514,6 +29516,30 @@ "RevisiCondition": "", "RevisiParams": [] }, + { + "Id": 255007215, + "EmitPR": 1000, + "From": 3, + "Where": [], + "Order": "", + "Limit": 1, + "ExecuteCnt": 1, + "Type": 3, + "Argu": [ + 390001415, + 1000, + 5, + -1 + ], + "FollowSK": [], + "SucFollowSK": [], + "FailFollowSK": [], + "MustHit": false, + "DpsRevisiType": 0, + "DpsCondition": "", + "RevisiCondition": "", + "RevisiParams": [] + }, { "Id": 255007311, "EmitPR": 1000, diff --git a/bin/json/game_skillatk.json b/bin/json/game_skillatk.json index 99d2e55e6..92eb0062d 100644 --- a/bin/json/game_skillatk.json +++ b/bin/json/game_skillatk.json @@ -6859,9 +6859,9 @@ "level": 1, "MaxLV": 1, "UnavailablePlayTypes": [ - 7, + 17, 4, - 17 + 5 ], "SkillFlag": 0, "EffectFlag": 0, @@ -14972,7 +14972,7 @@ "level": 1, "MaxLV": 1, "UnavailablePlayTypes": [ - 7, + 5, 4, 17 ], @@ -16929,7 +16929,7 @@ "level": 1, "MaxLV": 1, "UnavailablePlayTypes": [ - 7, + 5, 4, 17 ], @@ -23845,7 +23845,7 @@ "passSkill": [], "Desc": { "key": "skill_skill_atk_Desc_155007311_1", - "text": "冰霜泰坦拥有多层生命值,且免疫速度下降类效果,自身每次受到的伤害不会超过自身最大生命值的25%。" + "text": "冰霜泰坦拥有多层生命值,且免疫速度下降类效果,自身每次受到的伤害不会超过自身最大生命值的25%。冰霜泰坦损失一层生命值时,会获得[color=#37d8a9]霜盾冰晶[/color],同时锁定最后一次对自身造成伤害的目标,对其施加[color=#e5621b]急冻深寒[/color]。" }, "buffid": [], "map": "" @@ -23864,7 +23864,7 @@ "ico": "jn_55007_3", "CorrectPos": 0, "IsMelee": 0, - "act": "Skill_1", + "act": "Skill_3", "Type": 0, "CD": 0, "Where": [], @@ -23877,7 +23877,7 @@ "passSkill": [], "Desc": { "key": "skill_skill_atk_Desc_155007312_1", - "text": "冰霜泰坦拥有多层生命值,且免疫速度下降类效果,自身每次受到的伤害不会超过自身最大生命值的25%。" + "text": "冰霜泰坦拥有多层生命值,且免疫速度下降类效果,自身每次受到的伤害不会超过自身最大生命值的25%。冰霜泰坦损失一层生命值时,会获得[color=#37d8a9]霜盾冰晶[/color],同时锁定最后一次对自身造成伤害的目标,对其施加[color=#e5621b]急冻深寒[/color]。" }, "buffid": [], "map": "" @@ -25412,7 +25412,7 @@ "level": 1, "MaxLV": 1, "UnavailablePlayTypes": [ - 7, + 5, 4, 17 ], @@ -30408,7 +30408,7 @@ "level": 1, "MaxLV": 1, "UnavailablePlayTypes": [ - 7, + 5, 4, 17 ], @@ -31701,7 +31701,7 @@ "level": 1, "MaxLV": 1, "UnavailablePlayTypes": [ - 7, + 5, 4, 17 ], diff --git a/bin/json/game_tdlv.json b/bin/json/game_tdlv.json index 0401865d7..0d3dfa22f 100644 --- a/bin/json/game_tdlv.json +++ b/bin/json/game_tdlv.json @@ -5,118 +5,118 @@ }, { "td_lv": 2, - "exp": 2 + "exp": 1000 }, { "td_lv": 3, - "exp": 8 + "exp": 1006 }, { "td_lv": 4, - "exp": 16 + "exp": 1014 }, { "td_lv": 5, - "exp": 26 + "exp": 1024 }, { "td_lv": 6, - "exp": 38 + "exp": 1036 }, { "td_lv": 7, - "exp": 52 + "exp": 1050 }, { "td_lv": 8, - "exp": 68 + "exp": 1066 }, { "td_lv": 9, - "exp": 86 + "exp": 1084 }, { "td_lv": 10, - "exp": 106 + "exp": 1104 }, { "td_lv": 11, - "exp": 128 + "exp": 1126 }, { "td_lv": 12, - "exp": 152 + "exp": 1150 }, { "td_lv": 13, - "exp": 178 + "exp": 1176 }, { "td_lv": 14, - "exp": 206 + "exp": 1204 }, { "td_lv": 15, - "exp": 236 + "exp": 1234 }, { "td_lv": 16, - "exp": 268 + "exp": 1266 }, { "td_lv": 17, - "exp": 302 + "exp": 1300 }, { "td_lv": 18, - "exp": 338 + "exp": 1336 }, { "td_lv": 19, - "exp": 376 + "exp": 1374 }, { "td_lv": 20, - "exp": 416 + "exp": 1414 }, { "td_lv": 21, - "exp": 458 + "exp": 1456 }, { "td_lv": 22, - "exp": 502 + "exp": 1500 }, { "td_lv": 23, - "exp": 548 + "exp": 1546 }, { "td_lv": 24, - "exp": 596 + "exp": 1594 }, { "td_lv": 25, - "exp": 646 + "exp": 1644 }, { "td_lv": 26, - "exp": 698 + "exp": 1696 }, { "td_lv": 27, - "exp": 752 + "exp": 1750 }, { "td_lv": 28, - "exp": 808 + "exp": 1806 }, { "td_lv": 29, - "exp": 866 + "exp": 1864 }, { "td_lv": 30, - "exp": 926 + "exp": 1924 } ] \ No newline at end of file diff --git a/bin/json/game_worldtask.json b/bin/json/game_worldtask.json index 540437d48..63b549310 100644 --- a/bin/json/game_worldtask.json +++ b/bin/json/game_worldtask.json @@ -2588,7 +2588,7 @@ "lock": 1, "lockend": 999, "ontxe": 20260, - "id_after": 20300, + "id_after": 20310, "group": 20, "exgroup": 210, "des": 2, @@ -2646,33 +2646,33 @@ "module": [] }, { - "key": 20300, + "key": 20310, "opencond": "", "lock": 1, "lockend": 999, - "ontxe": 20258, - "id_after": 20360, + "ontxe": 20261, + "id_after": 20320, "group": 20, "exgroup": 210, "des": 2, "icon": "25001", "task_name": { "key": "worldtask_world_task_task_name_45", - "text": "升级设备" + "text": "交付月光原石" }, "task_details": { "key": "worldtask_world_task_task_details_45", - "text": "总算获得了月光原石,赶快回中轴城把它交给骇客蛛吧!" + "text": "交付月光原石" }, "npctxt": { "key": "worldtask_world_task_npctxt_45", - "text": "和骇客蜘聊聊" + "text": "交付月光原石" }, "get_item": [], "trigger": 0, - "npc": 10300, + "npc": 10250, "completetask": [ - 12070180 + 12070310 ], "deliver_npc": 0, "taskend_removeitem": [], @@ -2684,28 +2684,217 @@ "finish": [], "finishparameter": "", "fnishipoint": [], - "reword": [ - { - "a": "attr", - "t": "exp", - "n": 100 - }, - { - "a": "item", - "t": "10000001", - "n": 1 - }, - { - "a": "item", - "t": "10000011", - "n": 3 - }, - { - "a": "item", - "t": "17110001", - "n": 1 - } + "reword": [], + "module": [] + }, + { + "key": 20320, + "opencond": "", + "lock": 1, + "lockend": 999, + "ontxe": 20310, + "id_after": 20330, + "group": 30, + "exgroup": 210, + "des": 2, + "icon": "25001", + "task_name": { + "key": "worldtask_world_task_task_name_46", + "text": "完成一次狩猎副本" + }, + "task_details": { + "key": "worldtask_world_task_task_details_46", + "text": "完成一次狩猎副本" + }, + "npctxt": { + "key": "worldtask_world_task_npctxt_46", + "text": "完成一次狩猎副本" + }, + "get_item": [], + "trigger": 0, + "npc": 10250, + "completetask": [ + 12070311 ], + "deliver_npc": 0, + "taskend_removeitem": [], + "auto_accept": 0, + "tasktips": 0, + "deliver_task": 0, + "deliver_task_npc": 0, + "lock_add": 0, + "finish": [], + "finishparameter": "", + "fnishipoint": [], + "reword": [], + "module": [] + }, + { + "key": 20330, + "opencond": "", + "lock": 1, + "lockend": 999, + "ontxe": 20320, + "id_after": 20340, + "group": 30, + "exgroup": 210, + "des": 2, + "icon": "25001", + "task_name": { + "key": "worldtask_world_task_task_name_47", + "text": "探访武馆" + }, + "task_details": { + "key": "worldtask_world_task_task_details_47", + "text": "探访武馆" + }, + "npctxt": { + "key": "worldtask_world_task_npctxt_47", + "text": "探访武馆" + }, + "get_item": [], + "trigger": 0, + "npc": 10250, + "completetask": [ + 12070312 + ], + "deliver_npc": 0, + "taskend_removeitem": [], + "auto_accept": 0, + "tasktips": 0, + "deliver_task": 0, + "deliver_task_npc": 0, + "lock_add": 0, + "finish": [], + "finishparameter": "", + "fnishipoint": [], + "reword": [], + "module": [] + }, + { + "key": 20340, + "opencond": "", + "lock": 1, + "lockend": 999, + "ontxe": 20330, + "id_after": 20350, + "group": 30, + "exgroup": 210, + "des": 2, + "icon": "25001", + "task_name": { + "key": "worldtask_world_task_task_name_48", + "text": "波比的烦恼" + }, + "task_details": { + "key": "worldtask_world_task_task_details_48", + "text": "波比的烦恼" + }, + "npctxt": { + "key": "worldtask_world_task_npctxt_48", + "text": "波比的烦恼" + }, + "get_item": [], + "trigger": 0, + "npc": 10250, + "completetask": [ + 12070313 + ], + "deliver_npc": 0, + "taskend_removeitem": [], + "auto_accept": 0, + "tasktips": 0, + "deliver_task": 0, + "deliver_task_npc": 0, + "lock_add": 0, + "finish": [], + "finishparameter": "", + "fnishipoint": [], + "reword": [], + "module": [] + }, + { + "key": 20350, + "opencond": "", + "lock": 1, + "lockend": 999, + "ontxe": 20340, + "id_after": 20355, + "group": 30, + "exgroup": 210, + "des": 2, + "icon": "25001", + "task_name": { + "key": "worldtask_world_task_task_name_49", + "text": "辉月等级" + }, + "task_details": { + "key": "worldtask_world_task_task_details_49", + "text": "辉月等级" + }, + "npctxt": { + "key": "worldtask_world_task_npctxt_49", + "text": "辉月等级" + }, + "get_item": [], + "trigger": 0, + "npc": 10250, + "completetask": [ + 12070314 + ], + "deliver_npc": 0, + "taskend_removeitem": [], + "auto_accept": 0, + "tasktips": 0, + "deliver_task": 0, + "deliver_task_npc": 0, + "lock_add": 0, + "finish": [], + "finishparameter": "", + "fnishipoint": [], + "reword": [], + "module": [] + }, + { + "key": 20355, + "opencond": "", + "lock": 1, + "lockend": 999, + "ontxe": 20350, + "id_after": 20360, + "group": 30, + "exgroup": 210, + "des": 2, + "icon": "25001", + "task_name": { + "key": "worldtask_world_task_task_name_50", + "text": "新的风波" + }, + "task_details": { + "key": "worldtask_world_task_task_details_50", + "text": "新的风波" + }, + "npctxt": { + "key": "worldtask_world_task_npctxt_50", + "text": "新的风波" + }, + "get_item": [], + "trigger": 0, + "npc": 10250, + "completetask": [ + 12070315 + ], + "deliver_npc": 0, + "taskend_removeitem": [], + "auto_accept": 0, + "tasktips": 0, + "deliver_task": 0, + "deliver_task_npc": 0, + "lock_add": 0, + "finish": [], + "finishparameter": "", + "fnishipoint": [], + "reword": [], "module": [] }, { @@ -2713,22 +2902,22 @@ "opencond": "", "lock": 1, "lockend": 999, - "ontxe": 20300, + "ontxe": 20355, "id_after": 20361, "group": 30, "exgroup": 210, "des": 2, "icon": "25001", "task_name": { - "key": "worldtask_world_task_task_name_46", + "key": "worldtask_world_task_task_name_51", "text": "堡垒风波" }, "task_details": { - "key": "worldtask_world_task_task_details_46", + "key": "worldtask_world_task_task_details_51", "text": "事情搞了一段落,接下来我们需要一些能强化力量的方法" }, "npctxt": { - "key": "worldtask_world_task_npctxt_46", + "key": "worldtask_world_task_npctxt_51", "text": "和骇客蜘聊聊" }, "get_item": [], @@ -2783,15 +2972,15 @@ "des": 2, "icon": "25001", "task_name": { - "key": "worldtask_world_task_task_name_47", + "key": "worldtask_world_task_task_name_52", "text": "初遇坏蛋联盟" }, "task_details": { - "key": "worldtask_world_task_task_details_47", + "key": "worldtask_world_task_task_details_52", "text": "邦尼兔因紧急情况离开,接应坏蛋联盟的重任只能一人完成了……" }, "npctxt": { - "key": "worldtask_world_task_npctxt_47", + "key": "worldtask_world_task_npctxt_52", "text": "和骇客蜘聊聊" }, "get_item": [], @@ -2846,15 +3035,15 @@ "des": 2, "icon": "25001", "task_name": { - "key": "worldtask_world_task_task_name_48", + "key": "worldtask_world_task_task_name_53", "text": "警长的阻挠" }, "task_details": { - "key": "worldtask_world_task_task_details_48", + "key": "worldtask_world_task_task_details_53", "text": "运送月光原石途中遇到坏蛋联盟死对头——警长,没办法,必须尽快通过。" }, "npctxt": { - "key": "worldtask_world_task_npctxt_48", + "key": "worldtask_world_task_npctxt_53", "text": "和骇客蜘聊聊" }, "get_item": [], @@ -2909,15 +3098,15 @@ "des": 2, "icon": "25001", "task_name": { - "key": "worldtask_world_task_task_name_49", + "key": "worldtask_world_task_task_name_54", "text": "前往卡梅洛特城堡" }, "task_details": { - "key": "worldtask_world_task_task_details_49", + "key": "worldtask_world_task_task_details_54", "text": "虽然遇到了一些意外,但并无大碍,继续向卡梅洛特城堡进发吧。" }, "npctxt": { - "key": "worldtask_world_task_npctxt_49", + "key": "worldtask_world_task_npctxt_54", "text": "和骇客蜘聊聊" }, "get_item": [], @@ -2972,15 +3161,15 @@ "des": 2, "icon": "25001", "task_name": { - "key": "worldtask_world_task_task_name_50", + "key": "worldtask_world_task_task_name_55", "text": "追击果酱教授" }, "task_details": { - "key": "worldtask_world_task_task_details_50", + "key": "worldtask_world_task_task_details_55", "text": "没想到救下的老奶奶竟是果酱教授假扮的!必须抓住他。" }, "npctxt": { - "key": "worldtask_world_task_npctxt_50", + "key": "worldtask_world_task_npctxt_55", "text": "和骇客蜘聊聊" }, "get_item": [], @@ -3035,15 +3224,15 @@ "des": 2, "icon": "25001", "task_name": { - "key": "worldtask_world_task_task_name_51", + "key": "worldtask_world_task_task_name_56", "text": "通缉果酱教授" }, "task_details": { - "key": "worldtask_world_task_task_details_51", + "key": "worldtask_world_task_task_details_56", "text": "瓦希尔指挥官发现可疑人员混入功夫塔,难道是被通缉的果酱教授?" }, "npctxt": { - "key": "worldtask_world_task_npctxt_51", + "key": "worldtask_world_task_npctxt_56", "text": "去找骇客蛛" }, "get_item": [], @@ -3098,15 +3287,15 @@ "des": 2, "icon": "25001", "task_name": { - "key": "worldtask_world_task_task_name_52", + "key": "worldtask_world_task_task_name_57", "text": "击退恐惧灵" }, "task_details": { - "key": "worldtask_world_task_task_details_52", + "key": "worldtask_world_task_task_details_57", "text": "击退恐惧灵" }, "npctxt": { - "key": "worldtask_world_task_npctxt_52", + "key": "worldtask_world_task_npctxt_57", "text": "击退恐惧灵" }, "get_item": [], @@ -3161,15 +3350,15 @@ "des": 2, "icon": "25001", "task_name": { - "key": "worldtask_world_task_task_name_53", + "key": "worldtask_world_task_task_name_58", "text": "冰霜泰坦难度1" }, "task_details": { - "key": "worldtask_world_task_task_details_53", + "key": "worldtask_world_task_task_details_58", "text": "冰霜泰坦难度1" }, "npctxt": { - "key": "worldtask_world_task_npctxt_53", + "key": "worldtask_world_task_npctxt_58", "text": "冰霜泰坦难度1" }, "get_item": [], @@ -3219,15 +3408,15 @@ "des": 2, "icon": "25001", "task_name": { - "key": "worldtask_world_task_task_name_54", + "key": "worldtask_world_task_task_name_59", "text": "剧情" }, "task_details": { - "key": "worldtask_world_task_task_details_54", + "key": "worldtask_world_task_task_details_59", "text": "剧情" }, "npctxt": { - "key": "worldtask_world_task_npctxt_54", + "key": "worldtask_world_task_npctxt_59", "text": "剧情" }, "get_item": [], @@ -3280,15 +3469,15 @@ "des": 2, "icon": "25001", "task_name": { - "key": "worldtask_world_task_task_name_55", + "key": "worldtask_world_task_task_name_60", "text": "6件装备+6" }, "task_details": { - "key": "worldtask_world_task_task_details_55", + "key": "worldtask_world_task_task_details_60", "text": "6件装备+6" }, "npctxt": { - "key": "worldtask_world_task_npctxt_55", + "key": "worldtask_world_task_npctxt_60", "text": "6件装备+6" }, "get_item": [], @@ -3338,15 +3527,15 @@ "des": 2, "icon": "25001", "task_name": { - "key": "worldtask_world_task_task_name_56", + "key": "worldtask_world_task_task_name_61", "text": "冒险5-4通关" }, "task_details": { - "key": "worldtask_world_task_task_details_56", + "key": "worldtask_world_task_task_details_61", "text": "冒险5-4通关" }, "npctxt": { - "key": "worldtask_world_task_npctxt_56", + "key": "worldtask_world_task_npctxt_61", "text": "冒险5-4通关" }, "get_item": [], @@ -3401,15 +3590,15 @@ "des": 2, "icon": "25001", "task_name": { - "key": "worldtask_world_task_task_name_57", + "key": "worldtask_world_task_task_name_62", "text": "冰霜泰坦难度2" }, "task_details": { - "key": "worldtask_world_task_task_details_57", + "key": "worldtask_world_task_task_details_62", "text": "冰霜泰坦难度2" }, "npctxt": { - "key": "worldtask_world_task_npctxt_57", + "key": "worldtask_world_task_npctxt_62", "text": "冰霜泰坦难度2" }, "get_item": [], @@ -3459,15 +3648,15 @@ "des": 2, "icon": "25001", "task_name": { - "key": "worldtask_world_task_task_name_58", + "key": "worldtask_world_task_task_name_63", "text": "冒险5-8通关" }, "task_details": { - "key": "worldtask_world_task_task_details_58", + "key": "worldtask_world_task_task_details_63", "text": "冒险5-8通关" }, "npctxt": { - "key": "worldtask_world_task_npctxt_58", + "key": "worldtask_world_task_npctxt_63", "text": "冒险5-8通关" }, "get_item": [], @@ -3522,15 +3711,15 @@ "des": 2, "icon": "25001", "task_name": { - "key": "worldtask_world_task_task_name_59", + "key": "worldtask_world_task_task_name_64", "text": "剧情" }, "task_details": { - "key": "worldtask_world_task_task_details_59", + "key": "worldtask_world_task_task_details_64", "text": "剧情" }, "npctxt": { - "key": "worldtask_world_task_npctxt_59", + "key": "worldtask_world_task_npctxt_64", "text": "剧情" }, "get_item": [], @@ -3578,15 +3767,15 @@ "des": 2, "icon": "25001", "task_name": { - "key": "worldtask_world_task_task_name_60", + "key": "worldtask_world_task_task_name_65", "text": "剧情" }, "task_details": { - "key": "worldtask_world_task_task_details_60", + "key": "worldtask_world_task_task_details_65", "text": "剧情" }, "npctxt": { - "key": "worldtask_world_task_npctxt_60", + "key": "worldtask_world_task_npctxt_65", "text": "剧情" }, "get_item": [], @@ -3639,15 +3828,15 @@ "des": 2, "icon": "25001", "task_name": { - "key": "worldtask_world_task_task_name_61", + "key": "worldtask_world_task_task_name_66", "text": "炼金塔5层" }, "task_details": { - "key": "worldtask_world_task_task_details_61", + "key": "worldtask_world_task_task_details_66", "text": "炼金塔5层" }, "npctxt": { - "key": "worldtask_world_task_npctxt_61", + "key": "worldtask_world_task_npctxt_66", "text": "炼金塔5层" }, "get_item": [], @@ -3697,15 +3886,15 @@ "des": 2, "icon": "25001", "task_name": { - "key": "worldtask_world_task_task_name_62", + "key": "worldtask_world_task_task_name_67", "text": "击退恐惧灵" }, "task_details": { - "key": "worldtask_world_task_task_details_62", + "key": "worldtask_world_task_task_details_67", "text": "击退恐惧灵" }, "npctxt": { - "key": "worldtask_world_task_npctxt_62", + "key": "worldtask_world_task_npctxt_67", "text": "击退恐惧灵" }, "get_item": [], @@ -3760,15 +3949,15 @@ "des": 2, "icon": "25001", "task_name": { - "key": "worldtask_world_task_task_name_63", + "key": "worldtask_world_task_task_name_68", "text": "击退恐惧灵" }, "task_details": { - "key": "worldtask_world_task_task_details_63", + "key": "worldtask_world_task_task_details_68", "text": "击退恐惧灵" }, "npctxt": { - "key": "worldtask_world_task_npctxt_63", + "key": "worldtask_world_task_npctxt_68", "text": "击退恐惧灵" }, "get_item": [], @@ -3818,15 +4007,15 @@ "des": 2, "icon": "25001", "task_name": { - "key": "worldtask_world_task_task_name_64", + "key": "worldtask_world_task_task_name_69", "text": "击退恐惧灵" }, "task_details": { - "key": "worldtask_world_task_task_details_64", + "key": "worldtask_world_task_task_details_69", "text": "击退恐惧灵" }, "npctxt": { - "key": "worldtask_world_task_npctxt_64", + "key": "worldtask_world_task_npctxt_69", "text": "击退恐惧灵" }, "get_item": [], @@ -3881,15 +4070,15 @@ "des": 2, "icon": "25001", "task_name": { - "key": "worldtask_world_task_task_name_65", + "key": "worldtask_world_task_task_name_70", "text": "森林泰坦难度1" }, "task_details": { - "key": "worldtask_world_task_task_details_65", + "key": "worldtask_world_task_task_details_70", "text": "森林泰坦难度1" }, "npctxt": { - "key": "worldtask_world_task_npctxt_65", + "key": "worldtask_world_task_npctxt_70", "text": "森林泰坦难度1" }, "get_item": [], @@ -3939,15 +4128,15 @@ "des": 2, "icon": "25001", "task_name": { - "key": "worldtask_world_task_task_name_66", + "key": "worldtask_world_task_task_name_71", "text": "主角星座觉醒3次" }, "task_details": { - "key": "worldtask_world_task_task_details_66", + "key": "worldtask_world_task_task_details_71", "text": "主角星座觉醒3次" }, "npctxt": { - "key": "worldtask_world_task_npctxt_66", + "key": "worldtask_world_task_npctxt_71", "text": "主角星座觉醒3次" }, "get_item": [], @@ -4002,15 +4191,15 @@ "des": 2, "icon": "25001", "task_name": { - "key": "worldtask_world_task_task_name_67", + "key": "worldtask_world_task_task_name_72", "text": "9件装备强化+6" }, "task_details": { - "key": "worldtask_world_task_task_details_67", + "key": "worldtask_world_task_task_details_72", "text": "9件装备强化+6" }, "npctxt": { - "key": "worldtask_world_task_npctxt_67", + "key": "worldtask_world_task_npctxt_72", "text": "9件装备强化+6" }, "get_item": [], @@ -4060,15 +4249,15 @@ "des": 2, "icon": "25001", "task_name": { - "key": "worldtask_world_task_task_name_68", + "key": "worldtask_world_task_task_name_73", "text": "击退恐惧灵" }, "task_details": { - "key": "worldtask_world_task_task_details_68", + "key": "worldtask_world_task_task_details_73", "text": "击退恐惧灵" }, "npctxt": { - "key": "worldtask_world_task_npctxt_68", + "key": "worldtask_world_task_npctxt_73", "text": "击退恐惧灵" }, "get_item": [], @@ -4123,15 +4312,15 @@ "des": 2, "icon": "25001", "task_name": { - "key": "worldtask_world_task_task_name_69", + "key": "worldtask_world_task_task_name_74", "text": "击退恐惧灵" }, "task_details": { - "key": "worldtask_world_task_task_details_69", + "key": "worldtask_world_task_task_details_74", "text": "击退恐惧灵" }, "npctxt": { - "key": "worldtask_world_task_npctxt_69", + "key": "worldtask_world_task_npctxt_74", "text": "击退恐惧灵" }, "get_item": [], @@ -4181,15 +4370,15 @@ "des": 2, "icon": "25001", "task_name": { - "key": "worldtask_world_task_task_name_70", + "key": "worldtask_world_task_task_name_75", "text": "剧情" }, "task_details": { - "key": "worldtask_world_task_task_details_70", + "key": "worldtask_world_task_task_details_75", "text": "剧情" }, "npctxt": { - "key": "worldtask_world_task_npctxt_70", + "key": "worldtask_world_task_npctxt_75", "text": "剧情" }, "get_item": [], @@ -4242,15 +4431,15 @@ "des": 2, "icon": "25001", "task_name": { - "key": "worldtask_world_task_task_name_71", + "key": "worldtask_world_task_task_name_76", "text": "冒险6-8通关" }, "task_details": { - "key": "worldtask_world_task_task_details_71", + "key": "worldtask_world_task_task_details_76", "text": "冒险6-8通关" }, "npctxt": { - "key": "worldtask_world_task_npctxt_71", + "key": "worldtask_world_task_npctxt_76", "text": "冒险6-8通关" }, "get_item": [], @@ -4300,15 +4489,15 @@ "des": 2, "icon": "25001", "task_name": { - "key": "worldtask_world_task_task_name_72", + "key": "worldtask_world_task_task_name_77", "text": "森林泰坦难度2" }, "task_details": { - "key": "worldtask_world_task_task_details_72", + "key": "worldtask_world_task_task_details_77", "text": "森林泰坦难度2" }, "npctxt": { - "key": "worldtask_world_task_npctxt_72", + "key": "worldtask_world_task_npctxt_77", "text": "森林泰坦难度2" }, "get_item": [], @@ -4363,15 +4552,15 @@ "des": 2, "icon": "25001", "task_name": { - "key": "worldtask_world_task_task_name_73", + "key": "worldtask_world_task_task_name_78", "text": "12件装备强化+6" }, "task_details": { - "key": "worldtask_world_task_task_details_73", + "key": "worldtask_world_task_task_details_78", "text": "12件装备强化+6" }, "npctxt": { - "key": "worldtask_world_task_npctxt_73", + "key": "worldtask_world_task_npctxt_78", "text": "12件装备强化+6" }, "get_item": [], @@ -4421,15 +4610,15 @@ "des": 2, "icon": "25001", "task_name": { - "key": "worldtask_world_task_task_name_74", + "key": "worldtask_world_task_task_name_79", "text": "武馆木桩解锁3根" }, "task_details": { - "key": "worldtask_world_task_task_details_74", + "key": "worldtask_world_task_task_details_79", "text": "武馆木桩解锁3根" }, "npctxt": { - "key": "worldtask_world_task_npctxt_74", + "key": "worldtask_world_task_npctxt_79", "text": "武馆木桩解锁3根" }, "get_item": [], @@ -4484,15 +4673,15 @@ "des": 2, "icon": "25001", "task_name": { - "key": "worldtask_world_task_task_name_75", + "key": "worldtask_world_task_task_name_80", "text": "炼金塔10层" }, "task_details": { - "key": "worldtask_world_task_task_details_75", + "key": "worldtask_world_task_task_details_80", "text": "炼金塔10层" }, "npctxt": { - "key": "worldtask_world_task_npctxt_75", + "key": "worldtask_world_task_npctxt_80", "text": "炼金塔10层" }, "get_item": [], @@ -4542,15 +4731,15 @@ "des": 2, "icon": "25001", "task_name": { - "key": "worldtask_world_task_task_name_76", + "key": "worldtask_world_task_task_name_81", "text": "冒险7-8通关" }, "task_details": { - "key": "worldtask_world_task_task_details_76", + "key": "worldtask_world_task_task_details_81", "text": "冒险7-8通关" }, "npctxt": { - "key": "worldtask_world_task_npctxt_76", + "key": "worldtask_world_task_npctxt_81", "text": "冒险7-8通关" }, "get_item": [], @@ -4605,15 +4794,15 @@ "des": 2, "icon": "25001", "task_name": { - "key": "worldtask_world_task_task_name_77", + "key": "worldtask_world_task_task_name_82", "text": "击退恐惧灵" }, "task_details": { - "key": "worldtask_world_task_task_details_77", + "key": "worldtask_world_task_task_details_82", "text": "击退恐惧灵" }, "npctxt": { - "key": "worldtask_world_task_npctxt_77", + "key": "worldtask_world_task_npctxt_82", "text": "击退恐惧灵" }, "get_item": [], @@ -4663,15 +4852,15 @@ "des": 2, "icon": "25001", "task_name": { - "key": "worldtask_world_task_task_name_78", + "key": "worldtask_world_task_task_name_83", "text": "击退恐惧灵" }, "task_details": { - "key": "worldtask_world_task_task_details_78", + "key": "worldtask_world_task_task_details_83", "text": "击退恐惧灵" }, "npctxt": { - "key": "worldtask_world_task_npctxt_78", + "key": "worldtask_world_task_npctxt_83", "text": "击退恐惧灵" }, "get_item": [], @@ -4726,15 +4915,15 @@ "des": 2, "icon": "25001", "task_name": { - "key": "worldtask_world_task_task_name_79", + "key": "worldtask_world_task_task_name_84", "text": "穿+6的无极神功套装" }, "task_details": { - "key": "worldtask_world_task_task_details_79", + "key": "worldtask_world_task_task_details_84", "text": "穿+6的无极神功套装" }, "npctxt": { - "key": "worldtask_world_task_npctxt_79", + "key": "worldtask_world_task_npctxt_84", "text": "穿+6的无极神功套装" }, "get_item": [], @@ -4784,15 +4973,15 @@ "des": 2, "icon": "25001", "task_name": { - "key": "worldtask_world_task_task_name_80", + "key": "worldtask_world_task_task_name_85", "text": "加入任意俱乐部" }, "task_details": { - "key": "worldtask_world_task_task_details_80", + "key": "worldtask_world_task_task_details_85", "text": "加入任意俱乐部" }, "npctxt": { - "key": "worldtask_world_task_npctxt_80", + "key": "worldtask_world_task_npctxt_85", "text": "加入任意俱乐部" }, "get_item": [], @@ -4847,15 +5036,15 @@ "des": 2, "icon": "25001", "task_name": { - "key": "worldtask_world_task_task_name_81", + "key": "worldtask_world_task_task_name_86", "text": "森林泰坦难度3" }, "task_details": { - "key": "worldtask_world_task_task_details_81", + "key": "worldtask_world_task_task_details_86", "text": "森林泰坦难度3" }, "npctxt": { - "key": "worldtask_world_task_npctxt_81", + "key": "worldtask_world_task_npctxt_86", "text": "森林泰坦难度3" }, "get_item": [], @@ -4905,15 +5094,15 @@ "des": 2, "icon": "25001", "task_name": { - "key": "worldtask_world_task_task_name_82", + "key": "worldtask_world_task_task_name_87", "text": "森林泰坦难度4" }, "task_details": { - "key": "worldtask_world_task_task_details_82", + "key": "worldtask_world_task_task_details_87", "text": "森林泰坦难度4" }, "npctxt": { - "key": "worldtask_world_task_npctxt_82", + "key": "worldtask_world_task_npctxt_87", "text": "森林泰坦难度4" }, "get_item": [], @@ -4968,15 +5157,15 @@ "des": 2, "icon": "25001", "task_name": { - "key": "worldtask_world_task_task_name_83", + "key": "worldtask_world_task_task_name_88", "text": "守护者回响解锁次数10次" }, "task_details": { - "key": "worldtask_world_task_task_details_83", + "key": "worldtask_world_task_task_details_88", "text": "守护者回响解锁次数10次" }, "npctxt": { - "key": "worldtask_world_task_npctxt_83", + "key": "worldtask_world_task_npctxt_88", "text": "守护者回响解锁次数10次" }, "get_item": [], @@ -5026,15 +5215,15 @@ "des": 2, "icon": "25001", "task_name": { - "key": "worldtask_world_task_task_name_84", + "key": "worldtask_world_task_task_name_89", "text": "守护者回响解锁次数15次" }, "task_details": { - "key": "worldtask_world_task_task_details_84", + "key": "worldtask_world_task_task_details_89", "text": "守护者回响解锁次数15次" }, "npctxt": { - "key": "worldtask_world_task_npctxt_84", + "key": "worldtask_world_task_npctxt_89", "text": "守护者回响解锁次数15次" }, "get_item": [], @@ -5089,15 +5278,15 @@ "des": 2, "icon": "25001", "task_name": { - "key": "worldtask_world_task_task_name_85", + "key": "worldtask_world_task_task_name_90", "text": "冒险8-8通关" }, "task_details": { - "key": "worldtask_world_task_task_details_85", + "key": "worldtask_world_task_task_details_90", "text": "冒险8-8通关" }, "npctxt": { - "key": "worldtask_world_task_npctxt_85", + "key": "worldtask_world_task_npctxt_90", "text": "冒险8-8通关" }, "get_item": [], @@ -5147,15 +5336,15 @@ "des": 2, "icon": "25001", "task_name": { - "key": "worldtask_world_task_task_name_86", + "key": "worldtask_world_task_task_name_91", "text": "12件装备强化+9" }, "task_details": { - "key": "worldtask_world_task_task_details_86", + "key": "worldtask_world_task_task_details_91", "text": "12件装备强化+9" }, "npctxt": { - "key": "worldtask_world_task_npctxt_86", + "key": "worldtask_world_task_npctxt_91", "text": "12件装备强化+9" }, "get_item": [], @@ -5210,15 +5399,15 @@ "des": 2, "icon": "25001", "task_name": { - "key": "worldtask_world_task_task_name_87", + "key": "worldtask_world_task_task_name_92", "text": "竞技场3胜" }, "task_details": { - "key": "worldtask_world_task_task_details_87", + "key": "worldtask_world_task_task_details_92", "text": "竞技场3胜" }, "npctxt": { - "key": "worldtask_world_task_npctxt_87", + "key": "worldtask_world_task_npctxt_92", "text": "竞技场3胜" }, "get_item": [], @@ -5268,15 +5457,15 @@ "des": 2, "icon": "25001", "task_name": { - "key": "worldtask_world_task_task_name_88", + "key": "worldtask_world_task_task_name_93", "text": "森林泰坦难度5" }, "task_details": { - "key": "worldtask_world_task_task_details_88", + "key": "worldtask_world_task_task_details_93", "text": "森林泰坦难度5" }, "npctxt": { - "key": "worldtask_world_task_npctxt_88", + "key": "worldtask_world_task_npctxt_93", "text": "森林泰坦难度5" }, "get_item": [], @@ -5331,15 +5520,15 @@ "des": 2, "icon": "25001", "task_name": { - "key": "worldtask_world_task_task_name_89", + "key": "worldtask_world_task_task_name_94", "text": "守护者回响解锁解锁20次" }, "task_details": { - "key": "worldtask_world_task_task_details_89", + "key": "worldtask_world_task_task_details_94", "text": "守护者回响解锁解锁20次" }, "npctxt": { - "key": "worldtask_world_task_npctxt_89", + "key": "worldtask_world_task_npctxt_94", "text": "守护者回响解锁解锁20次" }, "get_item": [], @@ -5389,15 +5578,15 @@ "des": 2, "icon": "25001", "task_name": { - "key": "worldtask_world_task_task_name_90", + "key": "worldtask_world_task_task_name_95", "text": "冒险9-8通关" }, "task_details": { - "key": "worldtask_world_task_task_details_90", + "key": "worldtask_world_task_task_details_95", "text": "冒险9-8通关" }, "npctxt": { - "key": "worldtask_world_task_npctxt_90", + "key": "worldtask_world_task_npctxt_95", "text": "冒险9-8通关" }, "get_item": [], @@ -5452,15 +5641,15 @@ "des": 2, "icon": "25001", "task_name": { - "key": "worldtask_world_task_task_name_91", + "key": "worldtask_world_task_task_name_96", "text": "搜集12个4星装备" }, "task_details": { - "key": "worldtask_world_task_task_details_91", + "key": "worldtask_world_task_task_details_96", "text": "搜集12个4星装备" }, "npctxt": { - "key": "worldtask_world_task_npctxt_91", + "key": "worldtask_world_task_npctxt_96", "text": "搜集12个4星装备" }, "get_item": [], @@ -5510,15 +5699,15 @@ "des": 2, "icon": "25001", "task_name": { - "key": "worldtask_world_task_task_name_92", + "key": "worldtask_world_task_task_name_97", "text": "炼金塔20层" }, "task_details": { - "key": "worldtask_world_task_task_details_92", + "key": "worldtask_world_task_task_details_97", "text": "炼金塔20层" }, "npctxt": { - "key": "worldtask_world_task_npctxt_92", + "key": "worldtask_world_task_npctxt_97", "text": "炼金塔20层" }, "get_item": [], @@ -5573,15 +5762,15 @@ "des": 2, "icon": "25001", "task_name": { - "key": "worldtask_world_task_task_name_93", + "key": "worldtask_world_task_task_name_98", "text": "冒险10-8通关" }, "task_details": { - "key": "worldtask_world_task_task_details_93", + "key": "worldtask_world_task_task_details_98", "text": "冒险10-8通关" }, "npctxt": { - "key": "worldtask_world_task_npctxt_93", + "key": "worldtask_world_task_npctxt_98", "text": "冒险10-8通关" }, "get_item": [], @@ -5631,15 +5820,15 @@ "des": 2, "icon": "25001", "task_name": { - "key": "worldtask_world_task_task_name_94", + "key": "worldtask_world_task_task_name_99", "text": "森林泰坦难度6" }, "task_details": { - "key": "worldtask_world_task_task_details_94", + "key": "worldtask_world_task_task_details_99", "text": "森林泰坦难度6" }, "npctxt": { - "key": "worldtask_world_task_npctxt_94", + "key": "worldtask_world_task_npctxt_99", "text": "森林泰坦难度6" }, "get_item": [], @@ -5694,15 +5883,15 @@ "des": 2, "icon": "25001", "task_name": { - "key": "worldtask_world_task_task_name_95", + "key": "worldtask_world_task_task_name_100", "text": "18件强化+9" }, "task_details": { - "key": "worldtask_world_task_task_details_95", + "key": "worldtask_world_task_task_details_100", "text": "18件强化+9" }, "npctxt": { - "key": "worldtask_world_task_npctxt_95", + "key": "worldtask_world_task_npctxt_100", "text": "18件强化+9" }, "get_item": [], @@ -5752,15 +5941,15 @@ "des": 2, "icon": "25001", "task_name": { - "key": "worldtask_world_task_task_name_96", + "key": "worldtask_world_task_task_name_101", "text": "冒险11-8通关" }, "task_details": { - "key": "worldtask_world_task_task_details_96", + "key": "worldtask_world_task_task_details_101", "text": "冒险11-8通关" }, "npctxt": { - "key": "worldtask_world_task_npctxt_96", + "key": "worldtask_world_task_npctxt_101", "text": "冒险11-8通关" }, "get_item": [], @@ -5815,15 +6004,15 @@ "des": 2, "icon": "25001", "task_name": { - "key": "worldtask_world_task_task_name_97", + "key": "worldtask_world_task_task_name_102", "text": "守护者回响解锁25次" }, "task_details": { - "key": "worldtask_world_task_task_details_97", + "key": "worldtask_world_task_task_details_102", "text": "守护者回响解锁25次" }, "npctxt": { - "key": "worldtask_world_task_npctxt_97", + "key": "worldtask_world_task_npctxt_102", "text": "守护者回响解锁25次" }, "get_item": [], @@ -5873,15 +6062,15 @@ "des": 2, "icon": "25001", "task_name": { - "key": "worldtask_world_task_task_name_98", + "key": "worldtask_world_task_task_name_103", "text": "冒险12-3通关" }, "task_details": { - "key": "worldtask_world_task_task_details_98", + "key": "worldtask_world_task_task_details_103", "text": "冒险12-3通关" }, "npctxt": { - "key": "worldtask_world_task_npctxt_98", + "key": "worldtask_world_task_npctxt_103", "text": "冒险12-3通关" }, "get_item": [], @@ -5936,15 +6125,15 @@ "des": 2, "icon": "25001", "task_name": { - "key": "worldtask_world_task_task_name_99", + "key": "worldtask_world_task_task_name_104", "text": "森林泰坦难度7" }, "task_details": { - "key": "worldtask_world_task_task_details_99", + "key": "worldtask_world_task_task_details_104", "text": "森林泰坦难度7" }, "npctxt": { - "key": "worldtask_world_task_npctxt_99", + "key": "worldtask_world_task_npctxt_104", "text": "森林泰坦难度7" }, "get_item": [], @@ -5994,15 +6183,15 @@ "des": 2, "icon": "25001", "task_name": { - "key": "worldtask_world_task_task_name_100", + "key": "worldtask_world_task_task_name_105", "text": "8件任意装备强化+12" }, "task_details": { - "key": "worldtask_world_task_task_details_100", + "key": "worldtask_world_task_task_details_105", "text": "8件任意装备强化+12" }, "npctxt": { - "key": "worldtask_world_task_npctxt_100", + "key": "worldtask_world_task_npctxt_105", "text": "8件任意装备强化+12" }, "get_item": [], @@ -6057,15 +6246,15 @@ "des": 2, "icon": "25001", "task_name": { - "key": "worldtask_world_task_task_name_101", + "key": "worldtask_world_task_task_name_106", "text": "冒险12-6通关" }, "task_details": { - "key": "worldtask_world_task_task_details_101", + "key": "worldtask_world_task_task_details_106", "text": "冒险12-6通关" }, "npctxt": { - "key": "worldtask_world_task_npctxt_101", + "key": "worldtask_world_task_npctxt_106", "text": "冒险12-6通关" }, "get_item": [], @@ -6115,15 +6304,15 @@ "des": 2, "icon": "25001", "task_name": { - "key": "worldtask_world_task_task_name_102", + "key": "worldtask_world_task_task_name_107", "text": "竞技场获胜20次" }, "task_details": { - "key": "worldtask_world_task_task_details_102", + "key": "worldtask_world_task_task_details_107", "text": "竞技场获胜20次" }, "npctxt": { - "key": "worldtask_world_task_npctxt_102", + "key": "worldtask_world_task_npctxt_107", "text": "竞技场获胜20次" }, "get_item": [], @@ -6178,15 +6367,15 @@ "des": 2, "icon": "25001", "task_name": { - "key": "worldtask_world_task_task_name_103", + "key": "worldtask_world_task_task_name_108", "text": "冒险12-8通关" }, "task_details": { - "key": "worldtask_world_task_task_details_103", + "key": "worldtask_world_task_task_details_108", "text": "冒险12-8通关" }, "npctxt": { - "key": "worldtask_world_task_npctxt_103", + "key": "worldtask_world_task_npctxt_108", "text": "冒险12-8通关" }, "get_item": [], @@ -6236,15 +6425,15 @@ "des": 2, "icon": "25001", "task_name": { - "key": "worldtask_world_task_task_name_104", + "key": "worldtask_world_task_task_name_109", "text": "冒险关卡困难1-3" }, "task_details": { - "key": "worldtask_world_task_task_details_104", + "key": "worldtask_world_task_task_details_109", "text": "冒险关卡困难1-3" }, "npctxt": { - "key": "worldtask_world_task_npctxt_104", + "key": "worldtask_world_task_npctxt_109", "text": "冒险关卡困难1-3" }, "get_item": [], @@ -6294,15 +6483,15 @@ "des": 2, "icon": "25001", "task_name": { - "key": "worldtask_world_task_task_name_105", + "key": "worldtask_world_task_task_name_110", "text": "冒险关卡困难1-6" }, "task_details": { - "key": "worldtask_world_task_task_details_105", + "key": "worldtask_world_task_task_details_110", "text": "冒险关卡困难1-6" }, "npctxt": { - "key": "worldtask_world_task_npctxt_105", + "key": "worldtask_world_task_npctxt_110", "text": "冒险关卡困难1-6" }, "get_item": [], @@ -6357,15 +6546,15 @@ "des": 2, "icon": "25001", "task_name": { - "key": "worldtask_world_task_task_name_106", + "key": "worldtask_world_task_task_name_111", "text": "冒险关卡困难2-3" }, "task_details": { - "key": "worldtask_world_task_task_details_106", + "key": "worldtask_world_task_task_details_111", "text": "冒险关卡困难2-3" }, "npctxt": { - "key": "worldtask_world_task_npctxt_106", + "key": "worldtask_world_task_npctxt_111", "text": "冒险关卡困难2-3" }, "get_item": [], @@ -6415,15 +6604,15 @@ "des": 2, "icon": "25001", "task_name": { - "key": "worldtask_world_task_task_name_107", + "key": "worldtask_world_task_task_name_112", "text": "冒险关卡困难2-6" }, "task_details": { - "key": "worldtask_world_task_task_details_107", + "key": "worldtask_world_task_task_details_112", "text": "冒险关卡困难2-6" }, "npctxt": { - "key": "worldtask_world_task_npctxt_107", + "key": "worldtask_world_task_npctxt_112", "text": "冒险关卡困难2-6" }, "get_item": [], @@ -6478,15 +6667,15 @@ "des": 2, "icon": "25001", "task_name": { - "key": "worldtask_world_task_task_name_108", + "key": "worldtask_world_task_task_name_113", "text": "冒险关卡困难3-3" }, "task_details": { - "key": "worldtask_world_task_task_details_108", + "key": "worldtask_world_task_task_details_113", "text": "冒险关卡困难3-3" }, "npctxt": { - "key": "worldtask_world_task_npctxt_108", + "key": "worldtask_world_task_npctxt_113", "text": "冒险关卡困难3-3" }, "get_item": [], @@ -6536,15 +6725,15 @@ "des": 2, "icon": "25001", "task_name": { - "key": "worldtask_world_task_task_name_109", + "key": "worldtask_world_task_task_name_114", "text": "冒险关卡困难3-6" }, "task_details": { - "key": "worldtask_world_task_task_details_109", + "key": "worldtask_world_task_task_details_114", "text": "冒险关卡困难3-6" }, "npctxt": { - "key": "worldtask_world_task_npctxt_109", + "key": "worldtask_world_task_npctxt_114", "text": "冒险关卡困难3-6" }, "get_item": [], @@ -6599,15 +6788,15 @@ "des": 2, "icon": "25001", "task_name": { - "key": "worldtask_world_task_task_name_110", + "key": "worldtask_world_task_task_name_115", "text": "冒险关卡困难4-3" }, "task_details": { - "key": "worldtask_world_task_task_details_110", + "key": "worldtask_world_task_task_details_115", "text": "冒险关卡困难4-3" }, "npctxt": { - "key": "worldtask_world_task_npctxt_110", + "key": "worldtask_world_task_npctxt_115", "text": "冒险关卡困难4-3" }, "get_item": [], @@ -6647,15 +6836,15 @@ "des": 2, "icon": "25001", "task_name": { - "key": "worldtask_world_task_task_name_111", + "key": "worldtask_world_task_task_name_116", "text": "冒险关卡困难4-6" }, "task_details": { - "key": "worldtask_world_task_task_details_111", + "key": "worldtask_world_task_task_details_116", "text": "冒险关卡困难4-6" }, "npctxt": { - "key": "worldtask_world_task_npctxt_111", + "key": "worldtask_world_task_npctxt_116", "text": "冒险关卡困难4-6" }, "get_item": [], @@ -6695,15 +6884,15 @@ "des": 2, "icon": "25001", "task_name": { - "key": "worldtask_world_task_task_name_112", + "key": "worldtask_world_task_task_name_117", "text": "冒险关卡困难5-3" }, "task_details": { - "key": "worldtask_world_task_task_details_112", + "key": "worldtask_world_task_task_details_117", "text": "冒险关卡困难5-3" }, "npctxt": { - "key": "worldtask_world_task_npctxt_112", + "key": "worldtask_world_task_npctxt_117", "text": "冒险关卡困难5-3" }, "get_item": [], @@ -6743,15 +6932,15 @@ "des": 2, "icon": "25001", "task_name": { - "key": "worldtask_world_task_task_name_113", + "key": "worldtask_world_task_task_name_118", "text": "冒险关卡困难5-6" }, "task_details": { - "key": "worldtask_world_task_task_details_113", + "key": "worldtask_world_task_task_details_118", "text": "冒险关卡困难5-6" }, "npctxt": { - "key": "worldtask_world_task_npctxt_113", + "key": "worldtask_world_task_npctxt_118", "text": "冒险关卡困难5-6" }, "get_item": [], @@ -6791,15 +6980,15 @@ "des": 2, "icon": "25001", "task_name": { - "key": "worldtask_world_task_task_name_114", + "key": "worldtask_world_task_task_name_119", "text": "冒险关卡困难6-3" }, "task_details": { - "key": "worldtask_world_task_task_details_114", + "key": "worldtask_world_task_task_details_119", "text": "冒险关卡困难6-3" }, "npctxt": { - "key": "worldtask_world_task_npctxt_114", + "key": "worldtask_world_task_npctxt_119", "text": "冒险关卡困难6-3" }, "get_item": [], @@ -6839,15 +7028,15 @@ "des": 2, "icon": "25001", "task_name": { - "key": "worldtask_world_task_task_name_115", + "key": "worldtask_world_task_task_name_120", "text": "冒险关卡困难6-6" }, "task_details": { - "key": "worldtask_world_task_task_details_115", + "key": "worldtask_world_task_task_details_120", "text": "冒险关卡困难6-6" }, "npctxt": { - "key": "worldtask_world_task_npctxt_115", + "key": "worldtask_world_task_npctxt_120", "text": "冒险关卡困难6-6" }, "get_item": [], @@ -6887,15 +7076,15 @@ "des": 2, "icon": "25001", "task_name": { - "key": "worldtask_world_task_task_name_116", + "key": "worldtask_world_task_task_name_121", "text": "冒险关卡困难7-3" }, "task_details": { - "key": "worldtask_world_task_task_details_116", + "key": "worldtask_world_task_task_details_121", "text": "冒险关卡困难7-3" }, "npctxt": { - "key": "worldtask_world_task_npctxt_116", + "key": "worldtask_world_task_npctxt_121", "text": "冒险关卡困难7-3" }, "get_item": [], @@ -6935,15 +7124,15 @@ "des": 2, "icon": "25001", "task_name": { - "key": "worldtask_world_task_task_name_117", + "key": "worldtask_world_task_task_name_122", "text": "冒险关卡困难7-6" }, "task_details": { - "key": "worldtask_world_task_task_details_117", + "key": "worldtask_world_task_task_details_122", "text": "冒险关卡困难7-6" }, "npctxt": { - "key": "worldtask_world_task_npctxt_117", + "key": "worldtask_world_task_npctxt_122", "text": "冒险关卡困难7-6" }, "get_item": [], @@ -6983,15 +7172,15 @@ "des": 2, "icon": "25001", "task_name": { - "key": "worldtask_world_task_task_name_118", + "key": "worldtask_world_task_task_name_123", "text": "冒险关卡困难8-3" }, "task_details": { - "key": "worldtask_world_task_task_details_118", + "key": "worldtask_world_task_task_details_123", "text": "冒险关卡困难8-3" }, "npctxt": { - "key": "worldtask_world_task_npctxt_118", + "key": "worldtask_world_task_npctxt_123", "text": "冒险关卡困难8-3" }, "get_item": [], @@ -7031,15 +7220,15 @@ "des": 2, "icon": "25001", "task_name": { - "key": "worldtask_world_task_task_name_119", + "key": "worldtask_world_task_task_name_124", "text": "冒险关卡困难8-6" }, "task_details": { - "key": "worldtask_world_task_task_details_119", + "key": "worldtask_world_task_task_details_124", "text": "冒险关卡困难8-6" }, "npctxt": { - "key": "worldtask_world_task_npctxt_119", + "key": "worldtask_world_task_npctxt_124", "text": "冒险关卡困难8-6" }, "get_item": [], @@ -7079,15 +7268,15 @@ "des": 2, "icon": "25001", "task_name": { - "key": "worldtask_world_task_task_name_120", + "key": "worldtask_world_task_task_name_125", "text": "冒险关卡困难9-3" }, "task_details": { - "key": "worldtask_world_task_task_details_120", + "key": "worldtask_world_task_task_details_125", "text": "冒险关卡困难9-3" }, "npctxt": { - "key": "worldtask_world_task_npctxt_120", + "key": "worldtask_world_task_npctxt_125", "text": "冒险关卡困难9-3" }, "get_item": [], @@ -7127,15 +7316,15 @@ "des": 2, "icon": "25001", "task_name": { - "key": "worldtask_world_task_task_name_121", + "key": "worldtask_world_task_task_name_126", "text": "冒险关卡困难9-6" }, "task_details": { - "key": "worldtask_world_task_task_details_121", + "key": "worldtask_world_task_task_details_126", "text": "冒险关卡困难9-6" }, "npctxt": { - "key": "worldtask_world_task_npctxt_121", + "key": "worldtask_world_task_npctxt_126", "text": "冒险关卡困难9-6" }, "get_item": [], @@ -7175,15 +7364,15 @@ "des": 2, "icon": "25001", "task_name": { - "key": "worldtask_world_task_task_name_122", + "key": "worldtask_world_task_task_name_127", "text": "冒险关卡困难10-3" }, "task_details": { - "key": "worldtask_world_task_task_details_122", + "key": "worldtask_world_task_task_details_127", "text": "冒险关卡困难10-3" }, "npctxt": { - "key": "worldtask_world_task_npctxt_122", + "key": "worldtask_world_task_npctxt_127", "text": "冒险关卡困难10-3" }, "get_item": [], @@ -7223,15 +7412,15 @@ "des": 2, "icon": "25001", "task_name": { - "key": "worldtask_world_task_task_name_123", + "key": "worldtask_world_task_task_name_128", "text": "冒险关卡困难10-6" }, "task_details": { - "key": "worldtask_world_task_task_details_123", + "key": "worldtask_world_task_task_details_128", "text": "冒险关卡困难10-6" }, "npctxt": { - "key": "worldtask_world_task_npctxt_123", + "key": "worldtask_world_task_npctxt_128", "text": "冒险关卡困难10-6" }, "get_item": [], @@ -7271,15 +7460,15 @@ "des": 2, "icon": "25001", "task_name": { - "key": "worldtask_world_task_task_name_124", + "key": "worldtask_world_task_task_name_129", "text": "冒险关卡困难11-3" }, "task_details": { - "key": "worldtask_world_task_task_details_124", + "key": "worldtask_world_task_task_details_129", "text": "冒险关卡困难11-3" }, "npctxt": { - "key": "worldtask_world_task_npctxt_124", + "key": "worldtask_world_task_npctxt_129", "text": "冒险关卡困难11-3" }, "get_item": [], @@ -7319,15 +7508,15 @@ "des": 2, "icon": "25001", "task_name": { - "key": "worldtask_world_task_task_name_125", + "key": "worldtask_world_task_task_name_130", "text": "冒险关卡困难11-6" }, "task_details": { - "key": "worldtask_world_task_task_details_125", + "key": "worldtask_world_task_task_details_130", "text": "冒险关卡困难11-6" }, "npctxt": { - "key": "worldtask_world_task_npctxt_125", + "key": "worldtask_world_task_npctxt_130", "text": "冒险关卡困难11-6" }, "get_item": [], @@ -7367,15 +7556,15 @@ "des": 2, "icon": "25001", "task_name": { - "key": "worldtask_world_task_task_name_126", + "key": "worldtask_world_task_task_name_131", "text": "冒险关卡困难12-3" }, "task_details": { - "key": "worldtask_world_task_task_details_126", + "key": "worldtask_world_task_task_details_131", "text": "冒险关卡困难12-3" }, "npctxt": { - "key": "worldtask_world_task_npctxt_126", + "key": "worldtask_world_task_npctxt_131", "text": "冒险关卡困难12-3" }, "get_item": [], @@ -7415,15 +7604,15 @@ "des": 2, "icon": "25001", "task_name": { - "key": "worldtask_world_task_task_name_127", + "key": "worldtask_world_task_task_name_132", "text": "冒险关卡困难12-6" }, "task_details": { - "key": "worldtask_world_task_task_details_127", + "key": "worldtask_world_task_task_details_132", "text": "冒险关卡困难12-6" }, "npctxt": { - "key": "worldtask_world_task_npctxt_127", + "key": "worldtask_world_task_npctxt_132", "text": "冒险关卡困难12-6" }, "get_item": [], @@ -7463,15 +7652,15 @@ "des": 5, "icon": "25001", "task_name": { - "key": "worldtask_world_task_task_name_128", + "key": "worldtask_world_task_task_name_133", "text": "兄弟,带一程" }, "task_details": { - "key": "worldtask_world_task_task_details_128", + "key": "worldtask_world_task_task_details_133", "text": "途中偶遇的守护者,期望我们带他前往某个城市。" }, "npctxt": { - "key": "worldtask_world_task_npctxt_128", + "key": "worldtask_world_task_npctxt_133", "text": "兄弟,带一程" }, "get_item": [], @@ -7523,15 +7712,15 @@ "des": 5, "icon": "25001", "task_name": { - "key": "worldtask_world_task_task_name_129", + "key": "worldtask_world_task_task_name_134", "text": "特产不嫌多" }, "task_details": { - "key": "worldtask_world_task_task_details_129", + "key": "worldtask_world_task_task_details_134", "text": "一名守护者希望我们帮他购买一些特产,并承诺会用其他东西作为报酬。" }, "npctxt": { - "key": "worldtask_world_task_npctxt_129", + "key": "worldtask_world_task_npctxt_134", "text": "特产不嫌多" }, "get_item": [], @@ -7583,15 +7772,15 @@ "des": 5, "icon": "25001", "task_name": { - "key": "worldtask_world_task_task_name_130", + "key": "worldtask_world_task_task_name_135", "text": "资助城市" }, "task_details": { - "key": "worldtask_world_task_task_details_130", + "key": "worldtask_world_task_task_details_135", "text": "如今我们稍有资产,守护者希望我们能资助一些城市,当地人会给予一些报酬。" }, "npctxt": { - "key": "worldtask_world_task_npctxt_130", + "key": "worldtask_world_task_npctxt_135", "text": "资助城市" }, "get_item": [], @@ -7643,15 +7832,15 @@ "des": 5, "icon": "25001", "task_name": { - "key": "worldtask_world_task_task_name_131", + "key": "worldtask_world_task_task_name_136", "text": "雪中送炭" }, "task_details": { - "key": "worldtask_world_task_task_details_131", + "key": "worldtask_world_task_task_details_136", "text": "一些城市急需某些道具度过难关,我们或许应当帮助他们运转一下。" }, "npctxt": { - "key": "worldtask_world_task_npctxt_131", + "key": "worldtask_world_task_npctxt_136", "text": "雪中送炭" }, "get_item": [], @@ -7703,15 +7892,15 @@ "des": 3, "icon": "25001", "task_name": { - "key": "worldtask_world_task_task_name_132", + "key": "worldtask_world_task_task_name_137", "text": "悍娇虎逸闻一" }, "task_details": { - "key": "worldtask_world_task_task_details_132", + "key": "worldtask_world_task_task_details_137", "text": "悍娇虎独自一人站在武馆,看上去似乎很生气。" }, "npctxt": { - "key": "worldtask_world_task_npctxt_132", + "key": "worldtask_world_task_npctxt_137", "text": "和悍娇虎聊聊" }, "get_item": [], @@ -7749,15 +7938,15 @@ "des": 3, "icon": "25001", "task_name": { - "key": "worldtask_world_task_task_name_133", + "key": "worldtask_world_task_task_name_138", "text": "悍娇虎逸闻二" }, "task_details": { - "key": "worldtask_world_task_task_details_133", + "key": "worldtask_world_task_task_details_138", "text": "阿宝在哪儿呢,要在悍娇虎更生气之前找到才行。" }, "npctxt": { - "key": "worldtask_world_task_npctxt_133", + "key": "worldtask_world_task_npctxt_138", "text": "找阿宝聊聊" }, "get_item": [], @@ -7795,15 +7984,15 @@ "des": 3, "icon": "25001", "task_name": { - "key": "worldtask_world_task_task_name_134", + "key": "worldtask_world_task_task_name_139", "text": "悍娇虎逸闻三" }, "task_details": { - "key": "worldtask_world_task_task_details_134", + "key": "worldtask_world_task_task_details_139", "text": "找到阿宝,并把阿宝带回武馆吧。" }, "npctxt": { - "key": "worldtask_world_task_npctxt_134", + "key": "worldtask_world_task_npctxt_139", "text": "找到阿宝" }, "get_item": [ @@ -7849,15 +8038,15 @@ "des": 3, "icon": "25001", "task_name": { - "key": "worldtask_world_task_task_name_135", + "key": "worldtask_world_task_task_name_140", "text": "平先生的焦急" }, "task_details": { - "key": "worldtask_world_task_task_details_135", + "key": "worldtask_world_task_task_details_140", "text": "平先生焦急的看向武馆的方向,看上去像是遇到了什么棘手的事。" }, "npctxt": { - "key": "worldtask_world_task_npctxt_135", + "key": "worldtask_world_task_npctxt_140", "text": "找平先生聊聊" }, "get_item": [], @@ -7895,15 +8084,15 @@ "des": 3, "icon": "25001", "task_name": { - "key": "worldtask_world_task_task_name_136", + "key": "worldtask_world_task_task_name_141", "text": "队伍的集体提升" }, "task_details": { - "key": "worldtask_world_task_task_details_136", + "key": "worldtask_world_task_task_details_141", "text": "博克岛的发展有点超出预期,伙伴们需要一些特殊的帮助来快速提升实力,去武馆请教下师傅吧。" }, "npctxt": { - "key": "worldtask_world_task_npctxt_136", + "key": "worldtask_world_task_npctxt_141", "text": "找师傅聊聊" }, "get_item": [], @@ -7943,15 +8132,15 @@ "des": 3, "icon": "25001", "task_name": { - "key": "worldtask_world_task_task_name_137", + "key": "worldtask_world_task_task_name_142", "text": "驯龙小队的一天一" }, "task_details": { - "key": "worldtask_world_task_task_details_137", + "key": "worldtask_world_task_task_details_142", "text": "希卡普约着他的伙伴们一起做龙鞍,快帮他们收集制作材料吧。" }, "npctxt": { - "key": "worldtask_world_task_npctxt_137", + "key": "worldtask_world_task_npctxt_142", "text": "和希卡普聊聊" }, "get_item": [], @@ -7991,15 +8180,15 @@ "des": 3, "icon": "25001", "task_name": { - "key": "worldtask_world_task_task_name_138", + "key": "worldtask_world_task_task_name_143", "text": "驯龙小队的一天二" }, "task_details": { - "key": "worldtask_world_task_task_details_138", + "key": "worldtask_world_task_task_details_143", "text": "原本好好制作龙鞍的鼻涕粗突然和亚丝翠吵了起来,得上前阻止他们。" }, "npctxt": { - "key": "worldtask_world_task_npctxt_138", + "key": "worldtask_world_task_npctxt_143", "text": "阻止鼻涕粗" }, "get_item": [], @@ -8039,15 +8228,15 @@ "des": 3, "icon": "25001", "task_name": { - "key": "worldtask_world_task_task_name_139", + "key": "worldtask_world_task_task_name_144", "text": "驯龙小队的一天三" }, "task_details": { - "key": "worldtask_world_task_task_details_139", + "key": "worldtask_world_task_task_details_144", "text": "亚丝翠情绪激动,你不能让他们互相伤害。" }, "npctxt": { - "key": "worldtask_world_task_npctxt_139", + "key": "worldtask_world_task_npctxt_144", "text": "阻止亚丝翠" }, "get_item": [], @@ -8087,15 +8276,15 @@ "des": 3, "icon": "25001", "task_name": { - "key": "worldtask_world_task_task_name_140", + "key": "worldtask_world_task_task_name_145", "text": "驯龙小队的一天四" }, "task_details": { - "key": "worldtask_world_task_task_details_140", + "key": "worldtask_world_task_task_details_145", "text": "希卡普看上去很生气。" }, "npctxt": { - "key": "worldtask_world_task_npctxt_140", + "key": "worldtask_world_task_npctxt_145", "text": "和希卡普聊聊" }, "get_item": [], @@ -8133,15 +8322,15 @@ "des": 3, "icon": "25001", "task_name": { - "key": "worldtask_world_task_task_name_141", + "key": "worldtask_world_task_task_name_146", "text": "驯龙小队的一天五" }, "task_details": { - "key": "worldtask_world_task_task_details_141", + "key": "worldtask_world_task_task_details_146", "text": "和鼻涕粗沟通,让他知道问题出在哪。" }, "npctxt": { - "key": "worldtask_world_task_npctxt_141", + "key": "worldtask_world_task_npctxt_146", "text": "找到鼻涕粗" }, "get_item": [], @@ -8179,15 +8368,15 @@ "des": 3, "icon": "25001", "task_name": { - "key": "worldtask_world_task_task_name_142", + "key": "worldtask_world_task_task_name_147", "text": "驯龙小队的一天终" }, "task_details": { - "key": "worldtask_world_task_task_details_142", + "key": "worldtask_world_task_task_details_147", "text": "为了让驯龙小队重归于好,你准备去找鼻涕粗聊聊。" }, "npctxt": { - "key": "worldtask_world_task_npctxt_142", + "key": "worldtask_world_task_npctxt_147", "text": "让他们和好如初" }, "get_item": [], @@ -8225,15 +8414,15 @@ "des": 3, "icon": "25001", "task_name": { - "key": "worldtask_world_task_task_name_143", + "key": "worldtask_world_task_task_name_148", "text": "赛龙的故事" }, "task_details": { - "key": "worldtask_world_task_task_details_143", + "key": "worldtask_world_task_task_details_148", "text": "暴芙那特和悍夫那特好像又在斗嘴了。" }, "npctxt": { - "key": "worldtask_world_task_npctxt_143", + "key": "worldtask_world_task_npctxt_148", "text": "去找双胞胎" }, "get_item": [], @@ -8271,15 +8460,15 @@ "des": 3, "icon": "25001", "task_name": { - "key": "worldtask_world_task_task_name_144", + "key": "worldtask_world_task_task_name_149", "text": "设备升级" }, "task_details": { - "key": "worldtask_world_task_task_details_144", + "key": "worldtask_world_task_task_details_149", "text": "变强的方法有很多种,冒险即将开始,铁匠铺的戈伯发来讯息有要事找我们,听说会给我们一份礼物。" }, "npctxt": { - "key": "worldtask_world_task_npctxt_144", + "key": "worldtask_world_task_npctxt_149", "text": "和戈伯聊聊" }, "get_item": [ @@ -8325,15 +8514,15 @@ "des": 3, "icon": "25002", "task_name": { - "key": "worldtask_world_task_task_name_145", + "key": "worldtask_world_task_task_name_150", "text": "精心打造" }, "task_details": { - "key": "worldtask_world_task_task_details_145", + "key": "worldtask_world_task_task_details_150", "text": "戈伯的意思是,我们已经在锻造这一途上入门了,不过听说他有一种快捷的升级装备的路子,我们或许应该过去听听。" }, "npctxt": { - "key": "worldtask_world_task_npctxt_145", + "key": "worldtask_world_task_npctxt_150", "text": "和戈伯聊聊" }, "get_item": [], @@ -8373,15 +8562,15 @@ "des": 3, "icon": "25003", "task_name": { - "key": "worldtask_world_task_task_name_146", + "key": "worldtask_world_task_task_name_151", "text": "精心打造" }, "task_details": { - "key": "worldtask_world_task_task_details_146", + "key": "worldtask_world_task_task_details_151", "text": "锻造一途深不见底,又是全新的考验,戈伯希望我加强训练,早日熟悉这种升级方式。" }, "npctxt": { - "key": "worldtask_world_task_npctxt_146", + "key": "worldtask_world_task_npctxt_151", "text": "和戈伯聊聊" }, "get_item": [], @@ -8421,15 +8610,15 @@ "des": 3, "icon": "25004", "task_name": { - "key": "worldtask_world_task_task_name_147", + "key": "worldtask_world_task_task_name_152", "text": "大组织,大买卖" }, "task_details": { - "key": "worldtask_world_task_task_details_147", + "key": "worldtask_world_task_task_details_152", "text": "知道吗,沃尔夫和他的那位传奇血红爪搭档来到了中轴城,而且还有笔买卖找我们谈谈,或许该抽个时间去和他勾兑勾兑。" }, "npctxt": { - "key": "worldtask_world_task_npctxt_147", + "key": "worldtask_world_task_npctxt_152", "text": "和沃尔夫聊聊" }, "get_item": [ @@ -8475,15 +8664,15 @@ "des": 3, "icon": "14003", "task_name": { - "key": "worldtask_world_task_task_name_148", + "key": "worldtask_world_task_task_name_153", "text": "提升等级" }, "task_details": { - "key": "worldtask_world_task_task_details_148", + "key": "worldtask_world_task_task_details_153", "text": "提升等级" }, "npctxt": { - "key": "worldtask_world_task_npctxt_148", + "key": "worldtask_world_task_npctxt_153", "text": "提升等级" }, "get_item": [], @@ -8517,15 +8706,15 @@ "des": 3, "icon": "14003", "task_name": { - "key": "worldtask_world_task_task_name_149", + "key": "worldtask_world_task_task_name_154", "text": "突破英雄" }, "task_details": { - "key": "worldtask_world_task_task_details_149", + "key": "worldtask_world_task_task_details_154", "text": "突破英雄" }, "npctxt": { - "key": "worldtask_world_task_npctxt_149", + "key": "worldtask_world_task_npctxt_154", "text": "突破英雄" }, "get_item": [], @@ -8559,15 +8748,15 @@ "des": 3, "icon": "25001", "task_name": { - "key": "worldtask_world_task_task_name_150", + "key": "worldtask_world_task_task_name_155", "text": "梦中世界" }, "task_details": { - "key": "worldtask_world_task_task_details_150", + "key": "worldtask_world_task_task_details_155", "text": "邦尼兔在沙人那里,看上去十分焦急,快去看看吧。" }, "npctxt": { - "key": "worldtask_world_task_npctxt_150", + "key": "worldtask_world_task_npctxt_155", "text": "找到邦尼兔" }, "get_item": [], @@ -8607,15 +8796,15 @@ "des": 3, "icon": "25001", "task_name": { - "key": "worldtask_world_task_task_name_151", + "key": "worldtask_world_task_task_name_156", "text": "挑战与狩猎" }, "task_details": { - "key": "worldtask_world_task_task_details_151", + "key": "worldtask_world_task_task_details_156", "text": "挑战与狩猎" }, "npctxt": { - "key": "worldtask_world_task_npctxt_151", + "key": "worldtask_world_task_npctxt_156", "text": "找到沃尔特" }, "get_item": [], @@ -8655,15 +8844,15 @@ "des": 3, "icon": "25001", "task_name": { - "key": "worldtask_world_task_task_name_152", + "key": "worldtask_world_task_task_name_157", "text": "公会与伙伴" }, "task_details": { - "key": "worldtask_world_task_task_details_152", + "key": "worldtask_world_task_task_details_157", "text": "公会与伙伴" }, "npctxt": { - "key": "worldtask_world_task_npctxt_152", + "key": "worldtask_world_task_npctxt_157", "text": "找到沃尔夫" }, "get_item": [], @@ -8701,15 +8890,15 @@ "des": 3, "icon": "25001", "task_name": { - "key": "worldtask_world_task_task_name_153", + "key": "worldtask_world_task_task_name_158", "text": "新的挑战之路" }, "task_details": { - "key": "worldtask_world_task_task_details_153", + "key": "worldtask_world_task_task_details_158", "text": "新的挑战之路" }, "npctxt": { - "key": "worldtask_world_task_npctxt_153", + "key": "worldtask_world_task_npctxt_158", "text": "找到浣熊师傅" }, "get_item": [], @@ -8747,15 +8936,15 @@ "des": 3, "icon": "25001", "task_name": { - "key": "worldtask_world_task_task_name_154", + "key": "worldtask_world_task_task_name_159", "text": "巨大的怪物们" }, "task_details": { - "key": "worldtask_world_task_task_details_154", + "key": "worldtask_world_task_task_details_159", "text": "巨大的怪物们" }, "npctxt": { - "key": "worldtask_world_task_npctxt_154", + "key": "worldtask_world_task_npctxt_159", "text": "找到戈伯" }, "get_item": [], @@ -8793,15 +8982,15 @@ "des": 3, "icon": "25001", "task_name": { - "key": "worldtask_world_task_task_name_155", + "key": "worldtask_world_task_task_name_160", "text": "敲打与炉火" }, "task_details": { - "key": "worldtask_world_task_task_details_155", + "key": "worldtask_world_task_task_details_160", "text": "敲打与炉火" }, "npctxt": { - "key": "worldtask_world_task_npctxt_155", + "key": "worldtask_world_task_npctxt_160", "text": "找到戈伯" }, "get_item": [], @@ -8841,15 +9030,15 @@ "des": 3, "icon": "25001", "task_name": { - "key": "worldtask_world_task_task_name_156", + "key": "worldtask_world_task_task_name_161", "text": "穿戴尝试" }, "task_details": { - "key": "worldtask_world_task_task_details_156", + "key": "worldtask_world_task_task_details_161", "text": "穿戴尝试" }, "npctxt": { - "key": "worldtask_world_task_npctxt_156", + "key": "worldtask_world_task_npctxt_161", "text": "穿戴尝试" }, "get_item": [], @@ -8889,15 +9078,15 @@ "des": 3, "icon": "25001", "task_name": { - "key": "worldtask_world_task_task_name_157", + "key": "worldtask_world_task_task_name_162", "text": "秘境开启" }, "task_details": { - "key": "worldtask_world_task_task_details_157", + "key": "worldtask_world_task_task_details_162", "text": "秘境开启" }, "npctxt": { - "key": "worldtask_world_task_npctxt_157", + "key": "worldtask_world_task_npctxt_162", "text": "找到小伊" }, "get_item": [], @@ -8937,15 +9126,15 @@ "des": 3, "icon": "25001", "task_name": { - "key": "worldtask_world_task_task_name_158", + "key": "worldtask_world_task_task_name_163", "text": "汤水与包子" }, "task_details": { - "key": "worldtask_world_task_task_details_158", + "key": "worldtask_world_task_task_details_163", "text": "汤水与包子" }, "npctxt": { - "key": "worldtask_world_task_npctxt_158", + "key": "worldtask_world_task_npctxt_163", "text": "找到平先生" }, "get_item": [], @@ -8983,15 +9172,15 @@ "des": 3, "icon": "25001", "task_name": { - "key": "worldtask_world_task_task_name_159", + "key": "worldtask_world_task_task_name_164", "text": "伙伴需要互相理解" }, "task_details": { - "key": "worldtask_world_task_task_details_159", + "key": "worldtask_world_task_task_details_164", "text": "伙伴需要互相理解" }, "npctxt": { - "key": "worldtask_world_task_npctxt_159", + "key": "worldtask_world_task_npctxt_164", "text": "找到大大" }, "get_item": [], @@ -9029,15 +9218,15 @@ "des": 3, "icon": "25001", "task_name": { - "key": "worldtask_world_task_task_name_160", + "key": "worldtask_world_task_task_name_165", "text": "邻里帮助" }, "task_details": { - "key": "worldtask_world_task_task_details_160", + "key": "worldtask_world_task_task_details_165", "text": "邻里帮助" }, "npctxt": { - "key": "worldtask_world_task_npctxt_160", + "key": "worldtask_world_task_npctxt_165", "text": "找到悍娇虎" }, "get_item": [], @@ -9075,15 +9264,15 @@ "des": 3, "icon": "25001", "task_name": { - "key": "worldtask_world_task_task_name_161", + "key": "worldtask_world_task_task_name_166", "text": "一较高下" }, "task_details": { - "key": "worldtask_world_task_task_details_161", + "key": "worldtask_world_task_task_details_166", "text": "一较高下" }, "npctxt": { - "key": "worldtask_world_task_npctxt_161", + "key": "worldtask_world_task_npctxt_166", "text": "找到穿靴猫" }, "get_item": [], @@ -9121,15 +9310,15 @@ "des": 3, "icon": "25001", "task_name": { - "key": "worldtask_world_task_task_name_162", + "key": "worldtask_world_task_task_name_167", "text": "波比的奖励" }, "task_details": { - "key": "worldtask_world_task_task_details_162", + "key": "worldtask_world_task_task_details_167", "text": "波比的奖励" }, "npctxt": { - "key": "worldtask_world_task_npctxt_162", + "key": "worldtask_world_task_npctxt_167", "text": "找到波比" }, "get_item": [], @@ -9167,15 +9356,15 @@ "des": 3, "icon": "25001", "task_name": { - "key": "worldtask_world_task_task_name_163", + "key": "worldtask_world_task_task_name_168", "text": "资金周转" }, "task_details": { - "key": "worldtask_world_task_task_details_163", + "key": "worldtask_world_task_task_details_168", "text": "资金周转" }, "npctxt": { - "key": "worldtask_world_task_npctxt_163", + "key": "worldtask_world_task_npctxt_168", "text": "找到骇客蛛" }, "get_item": [], @@ -9213,15 +9402,15 @@ "des": 3, "icon": "25001", "task_name": { - "key": "worldtask_world_task_task_name_164", + "key": "worldtask_world_task_task_name_169", "text": "商队起航" }, "task_details": { - "key": "worldtask_world_task_task_details_164", + "key": "worldtask_world_task_task_details_169", "text": "商队起航" }, "npctxt": { - "key": "worldtask_world_task_npctxt_164", + "key": "worldtask_world_task_npctxt_169", "text": "商队起航" }, "get_item": [], @@ -9259,15 +9448,15 @@ "des": 3, "icon": "25001", "task_name": { - "key": "worldtask_world_task_task_name_165", + "key": "worldtask_world_task_task_name_170", "text": "挖掘潜能" }, "task_details": { - "key": "worldtask_world_task_task_details_165", + "key": "worldtask_world_task_task_details_170", "text": "挖掘潜能" }, "npctxt": { - "key": "worldtask_world_task_npctxt_165", + "key": "worldtask_world_task_npctxt_170", "text": "找到希沙窦斯" }, "get_item": [], @@ -9305,15 +9494,15 @@ "des": 3, "icon": "25001", "task_name": { - "key": "worldtask_world_task_task_name_166", + "key": "worldtask_world_task_task_name_171", "text": "守护者的训练" }, "task_details": { - "key": "worldtask_world_task_task_details_166", + "key": "worldtask_world_task_task_details_171", "text": "守护者的训练" }, "npctxt": { - "key": "worldtask_world_task_npctxt_166", + "key": "worldtask_world_task_npctxt_171", "text": "找到浣熊师傅" }, "get_item": [], @@ -9351,15 +9540,15 @@ "des": 3, "icon": "25001", "task_name": { - "key": "worldtask_world_task_task_name_167", + "key": "worldtask_world_task_task_name_172", "text": "师傅的教诲" }, "task_details": { - "key": "worldtask_world_task_task_details_167", + "key": "worldtask_world_task_task_details_172", "text": "师傅的教诲" }, "npctxt": { - "key": "worldtask_world_task_npctxt_167", + "key": "worldtask_world_task_npctxt_172", "text": "师傅的教诲" }, "get_item": [], @@ -9399,15 +9588,15 @@ "des": 1, "icon": "25001", "task_name": { - "key": "worldtask_world_task_task_name_167", + "key": "worldtask_world_task_task_name_173", "text": "乌龟大师的试炼" }, "task_details": { - "key": "worldtask_world_task_task_details_167", + "key": "worldtask_world_task_task_details_173", "text": "乌龟大师的智慧与功力都非常深厚,定能给你不小启发。" }, "npctxt": { - "key": "worldtask_world_task_npctxt_167", + "key": "worldtask_world_task_npctxt_173", "text": "有人在找你" }, "get_item": [], @@ -9462,15 +9651,15 @@ "des": 1, "icon": "25001", "task_name": { - "key": "worldtask_world_task_task_name_168", + "key": "worldtask_world_task_task_name_174", "text": "乌龟大师的试炼" }, "task_details": { - "key": "worldtask_world_task_task_details_168", + "key": "worldtask_world_task_task_details_174", "text": "乌龟大师的智慧与功力都非常深厚,定能给你不小启发。" }, "npctxt": { - "key": "worldtask_world_task_npctxt_168", + "key": "worldtask_world_task_npctxt_174", "text": "有人在找你" }, "get_item": [], @@ -9525,15 +9714,15 @@ "des": 1, "icon": "25001", "task_name": { - "key": "worldtask_world_task_task_name_169", + "key": "worldtask_world_task_task_name_175", "text": "乌龟大师的试炼" }, "task_details": { - "key": "worldtask_world_task_task_details_169", + "key": "worldtask_world_task_task_details_175", "text": "乌龟大师的智慧与功力都非常深厚,定能给你不小启发。" }, "npctxt": { - "key": "worldtask_world_task_npctxt_169", + "key": "worldtask_world_task_npctxt_175", "text": "有人在找你" }, "get_item": [], @@ -9588,15 +9777,15 @@ "des": 1, "icon": "25001", "task_name": { - "key": "worldtask_world_task_task_name_170", + "key": "worldtask_world_task_task_name_176", "text": "乌龟大师的试炼" }, "task_details": { - "key": "worldtask_world_task_task_details_170", + "key": "worldtask_world_task_task_details_176", "text": "乌龟大师的智慧与功力都非常深厚,定能给你不小启发。" }, "npctxt": { - "key": "worldtask_world_task_npctxt_170", + "key": "worldtask_world_task_npctxt_176", "text": "有人在找你" }, "get_item": [], @@ -9651,15 +9840,15 @@ "des": 1, "icon": "25001", "task_name": { - "key": "worldtask_world_task_task_name_171", + "key": "worldtask_world_task_task_name_177", "text": "乌龟大师的试炼" }, "task_details": { - "key": "worldtask_world_task_task_details_171", + "key": "worldtask_world_task_task_details_177", "text": "乌龟大师的智慧与功力都非常深厚,定能给你不小启发。" }, "npctxt": { - "key": "worldtask_world_task_npctxt_171", + "key": "worldtask_world_task_npctxt_177", "text": "有人在找你" }, "get_item": [], @@ -9714,15 +9903,15 @@ "des": 1, "icon": "25001", "task_name": { - "key": "worldtask_world_task_task_name_172", + "key": "worldtask_world_task_task_name_178", "text": "乌龟大师的试炼" }, "task_details": { - "key": "worldtask_world_task_task_details_172", + "key": "worldtask_world_task_task_details_178", "text": "乌龟大师的智慧与功力都非常深厚,定能给你不小启发。" }, "npctxt": { - "key": "worldtask_world_task_npctxt_172", + "key": "worldtask_world_task_npctxt_178", "text": "有人在找你" }, "get_item": [], @@ -9777,15 +9966,15 @@ "des": 1, "icon": "25001", "task_name": { - "key": "worldtask_world_task_task_name_173", + "key": "worldtask_world_task_task_name_179", "text": "住嘴吧驴子" }, "task_details": { - "key": "worldtask_world_task_task_details_173", + "key": "worldtask_world_task_task_details_179", "text": "贫嘴驴喋喋不休几小时了,赶快做道菜让他闭嘴,让世界清净一会。" }, "npctxt": { - "key": "worldtask_world_task_npctxt_173", + "key": "worldtask_world_task_npctxt_179", "text": "贫嘴驴的烦恼" }, "get_item": [], @@ -9840,15 +10029,15 @@ "des": 1, "icon": "25001", "task_name": { - "key": "worldtask_world_task_task_name_174", + "key": "worldtask_world_task_task_name_180", "text": "亚丝翠要下厨了" }, "task_details": { - "key": "worldtask_world_task_task_details_174", + "key": "worldtask_world_task_task_details_180", "text": "亚丝翠似乎想给风里飞做吃的……考虑到亚丝翠的厨艺,你决定伸出援手。" }, "npctxt": { - "key": "worldtask_world_task_npctxt_174", + "key": "worldtask_world_task_npctxt_180", "text": "亚丝翠的烦恼" }, "get_item": [], @@ -9903,15 +10092,15 @@ "des": 1, "icon": "25001", "task_name": { - "key": "worldtask_world_task_task_name_175", + "key": "worldtask_world_task_task_name_181", "text": "姜饼人的救赎" }, "task_details": { - "key": "worldtask_world_task_task_details_175", + "key": "worldtask_world_task_task_details_181", "text": "姜饼人看起来非常忧伤,也许他需要一位守护者的帮助。" }, "npctxt": { - "key": "worldtask_world_task_npctxt_175", + "key": "worldtask_world_task_npctxt_181", "text": "姜饼人的烦恼" }, "get_item": [], @@ -9966,15 +10155,15 @@ "des": 1, "icon": "25001", "task_name": { - "key": "worldtask_world_task_task_name_176", + "key": "worldtask_world_task_task_name_182", "text": "特快加急订单" }, "task_details": { - "key": "worldtask_world_task_task_details_176", + "key": "worldtask_world_task_task_details_182", "text": "翡翠宫突发大批订单!平先生一个鹅忙得喘不上气,他需要帮手!" }, "npctxt": { - "key": "worldtask_world_task_npctxt_176", + "key": "worldtask_world_task_npctxt_182", "text": "平先生的烦恼" }, "get_item": [], @@ -10029,15 +10218,15 @@ "des": 1, "icon": "25001", "task_name": { - "key": "worldtask_world_task_task_name_177", + "key": "worldtask_world_task_task_name_183", "text": "匹诺曹的谎言" }, "task_details": { - "key": "worldtask_world_task_task_details_177", + "key": "worldtask_world_task_task_details_183", "text": "匹诺曹吹牛自己厨艺高超,不料惹上了麻烦,身为守护者的你自然不能坐视不管。" }, "npctxt": { - "key": "worldtask_world_task_npctxt_177", + "key": "worldtask_world_task_npctxt_183", "text": "匹诺曹的烦恼" }, "get_item": [], @@ -10092,15 +10281,15 @@ "des": 1, "icon": "25001", "task_name": { - "key": "worldtask_world_task_task_name_178", + "key": "worldtask_world_task_task_name_184", "text": "冒失的波比" }, "task_details": { - "key": "worldtask_world_task_task_details_178", + "key": "worldtask_world_task_task_details_184", "text": "波比又一次把琴给丢了,又一次求助你,你又一次要帮她找琴。" }, "npctxt": { - "key": "worldtask_world_task_npctxt_178", + "key": "worldtask_world_task_npctxt_184", "text": "波比的失物找回" }, "get_item": [], @@ -10155,15 +10344,15 @@ "des": 1, "icon": "25001", "task_name": { - "key": "worldtask_world_task_task_name_179", + "key": "worldtask_world_task_task_name_185", "text": "贪玩一时爽" }, "task_details": { - "key": "worldtask_world_task_task_details_179", + "key": "worldtask_world_task_task_details_185", "text": "希卡普很焦急的向你求助,他刚丢失了一件很重要的东西。" }, "npctxt": { - "key": "worldtask_world_task_npctxt_179", + "key": "worldtask_world_task_npctxt_185", "text": "希卡普的失物找回" }, "get_item": [], @@ -10218,15 +10407,15 @@ "des": 1, "icon": "25001", "task_name": { - "key": "worldtask_world_task_task_name_180", + "key": "worldtask_world_task_task_name_186", "text": "和谐之书" }, "task_details": { - "key": "worldtask_world_task_task_details_180", + "key": "worldtask_world_task_task_details_186", "text": "菲奥娜搞丢了一本魔药书,她思来想去只能求助你,这是本什么书呢?" }, "npctxt": { - "key": "worldtask_world_task_npctxt_180", + "key": "worldtask_world_task_npctxt_186", "text": "菲欧娜的失物找回" }, "get_item": [], @@ -10281,15 +10470,15 @@ "des": 1, "icon": "25001", "task_name": { - "key": "worldtask_world_task_task_name_181", + "key": "worldtask_world_task_task_name_187", "text": "请假的理由" }, "task_details": { - "key": "worldtask_world_task_task_details_181", + "key": "worldtask_world_task_task_details_187", "text": "戈伯丢了东西,但他看起来十分开心,这是怎么回事?" }, "npctxt": { - "key": "worldtask_world_task_npctxt_181", + "key": "worldtask_world_task_npctxt_187", "text": "戈伯的失物找回" }, "get_item": [], @@ -10344,15 +10533,15 @@ "des": 1, "icon": "25001", "task_name": { - "key": "worldtask_world_task_task_name_182", + "key": "worldtask_world_task_task_name_188", "text": "消失的马鞍" }, "task_details": { - "key": "worldtask_world_task_task_details_182", + "key": "worldtask_world_task_task_details_188", "text": "阿比盖尔的失物找回" }, "npctxt": { - "key": "worldtask_world_task_npctxt_182", + "key": "worldtask_world_task_npctxt_188", "text": "阿比盖尔的失物找回" }, "get_item": [], @@ -10407,15 +10596,15 @@ "des": 1, "icon": "25001", "task_name": { - "key": "worldtask_world_task_task_name_183", + "key": "worldtask_world_task_task_name_189", "text": "岌岌可危的魔药" }, "task_details": { - "key": "worldtask_world_task_task_details_183", + "key": "worldtask_world_task_task_details_189", "text": "骇客蛛感受到了异样的气息,她需要你的帮助。" }, "npctxt": { - "key": "worldtask_world_task_npctxt_183", + "key": "worldtask_world_task_npctxt_189", "text": "骇客蛛的紧急委托" }, "get_item": [], @@ -10470,15 +10659,15 @@ "des": 1, "icon": "25001", "task_name": { - "key": "worldtask_world_task_task_name_184", + "key": "worldtask_world_task_task_name_190", "text": "躁动的羊群" }, "task_details": { - "key": "worldtask_world_task_task_details_184", + "key": "worldtask_world_task_task_details_190", "text": "不知为何,羊群近日愈发躁动,或许你能帮助希卡普摆平这件事情。" }, "npctxt": { - "key": "worldtask_world_task_npctxt_184", + "key": "worldtask_world_task_npctxt_190", "text": "希卡普的紧急委托" }, "get_item": [], @@ -10533,15 +10722,15 @@ "des": 1, "icon": "25001", "task_name": { - "key": "worldtask_world_task_task_name_185", + "key": "worldtask_world_task_task_name_191", "text": "和邦尼兔联手" }, "task_details": { - "key": "worldtask_world_task_task_details_185", + "key": "worldtask_world_task_task_details_191", "text": "豺狼们再次聚集了起来,在他们壮大之前必须先行捣毁。" }, "npctxt": { - "key": "worldtask_world_task_npctxt_185", + "key": "worldtask_world_task_npctxt_191", "text": "邦尼兔的紧急委托" }, "get_item": [], @@ -10596,15 +10785,15 @@ "des": 1, "icon": "25001", "task_name": { - "key": "worldtask_world_task_task_name_186", + "key": "worldtask_world_task_task_name_192", "text": "捣乱鼠窝" }, "task_details": { - "key": "worldtask_world_task_task_details_186", + "key": "worldtask_world_task_task_details_192", "text": "森林传来的低吼,或是豺狼们潜入了进来。" }, "npctxt": { - "key": "worldtask_world_task_npctxt_186", + "key": "worldtask_world_task_npctxt_192", "text": "骇客蛛的委托" }, "get_item": [], @@ -10659,15 +10848,15 @@ "des": 1, "icon": "25001", "task_name": { - "key": "worldtask_world_task_task_name_187", + "key": "worldtask_world_task_task_name_193", "text": "狂妄之徒" }, "task_details": { - "key": "worldtask_world_task_task_details_187", + "key": "worldtask_world_task_task_details_193", "text": "埃雷特的手下近日行为有些异常,或许是该敲打一番了。" }, "npctxt": { - "key": "worldtask_world_task_npctxt_187", + "key": "worldtask_world_task_npctxt_193", "text": "希卡普的发现" }, "get_item": [], @@ -10722,15 +10911,15 @@ "des": 1, "icon": "25001", "task_name": { - "key": "worldtask_world_task_task_name_188", + "key": "worldtask_world_task_task_name_194", "text": "清理所有怪物6" }, "task_details": { - "key": "worldtask_world_task_task_details_188", + "key": "worldtask_world_task_task_details_194", "text": "清理所有怪物6" }, "npctxt": { - "key": "worldtask_world_task_npctxt_188", + "key": "worldtask_world_task_npctxt_194", "text": "清理所有怪物6" }, "get_item": [], @@ -10785,15 +10974,15 @@ "des": 1, "icon": "25001", "task_name": { - "key": "worldtask_world_task_task_name_189", + "key": "worldtask_world_task_task_name_195", "text": "神秘的身影" }, "task_details": { - "key": "worldtask_world_task_task_details_189", + "key": "worldtask_world_task_task_details_195", "text": "最近城中出现了一些陌生面孔,鬼鬼祟祟,邦尼兔要你前去调查。" }, "npctxt": { - "key": "worldtask_world_task_npctxt_189", + "key": "worldtask_world_task_npctxt_195", "text": "邦尼兔的请求" }, "get_item": [], @@ -10850,15 +11039,15 @@ "des": 1, "icon": "25001", "task_name": { - "key": "worldtask_world_task_task_name_190", + "key": "worldtask_world_task_task_name_196", "text": "不翼而飞的药材" }, "task_details": { - "key": "worldtask_world_task_task_details_190", + "key": "worldtask_world_task_task_details_196", "text": "菲欧娜的一些药材不翼而飞了,她请求你帮助查清真相。" }, "npctxt": { - "key": "worldtask_world_task_npctxt_190", + "key": "worldtask_world_task_npctxt_196", "text": "菲欧娜的请求" }, "get_item": [], @@ -10915,15 +11104,15 @@ "des": 1, "icon": "25001", "task_name": { - "key": "worldtask_world_task_task_name_191", + "key": "worldtask_world_task_task_name_197", "text": "被偷走的铁块" }, "task_details": { - "key": "worldtask_world_task_task_details_191", + "key": "worldtask_world_task_task_details_197", "text": "戈伯正在借酒浇愁,他的铁块不见了。他寻求你的帮助。" }, "npctxt": { - "key": "worldtask_world_task_npctxt_191", + "key": "worldtask_world_task_npctxt_197", "text": "戈伯的请求" }, "get_item": [], @@ -10980,15 +11169,15 @@ "des": 1, "icon": "25001", "task_name": { - "key": "worldtask_world_task_task_name_192", + "key": "worldtask_world_task_task_name_198", "text": "林中小蘑菇" }, "task_details": { - "key": "worldtask_world_task_task_details_192", + "key": "worldtask_world_task_task_details_198", "text": "平先生想要研发一道新的配方,为此需要找到传说中的一种蘑菇。" }, "npctxt": { - "key": "worldtask_world_task_npctxt_192", + "key": "worldtask_world_task_npctxt_198", "text": "平先生的请求" }, "get_item": [], @@ -11045,15 +11234,15 @@ "des": 1, "icon": "25001", "task_name": { - "key": "worldtask_world_task_task_name_193", + "key": "worldtask_world_task_task_name_199", "text": "闪光之宝" }, "task_details": { - "key": "worldtask_world_task_task_details_193", + "key": "worldtask_world_task_task_details_199", "text": "骇客蛛发现城内突然出现了一些怪异的光芒,遂派你前去调查。" }, "npctxt": { - "key": "worldtask_world_task_npctxt_193", + "key": "worldtask_world_task_npctxt_199", "text": "骇客蛛的请求" }, "get_item": [], @@ -11110,15 +11299,15 @@ "des": 1, "icon": "25001", "task_name": { - "key": "worldtask_world_task_task_name_194", + "key": "worldtask_world_task_task_name_200", "text": "慰问的包子" }, "task_details": { - "key": "worldtask_world_task_task_details_194", + "key": "worldtask_world_task_task_details_200", "text": "阿宝委托平先生做了一批包子慰问警卫人员,但阿宝临时有事无法送去。" }, "npctxt": { - "key": "worldtask_world_task_npctxt_194", + "key": "worldtask_world_task_npctxt_200", "text": "阿宝的心事" }, "get_item": [], @@ -11171,15 +11360,15 @@ "des": 1, "icon": "25001", "task_name": { - "key": "worldtask_world_task_task_name_195", + "key": "worldtask_world_task_task_name_201", "text": "寻找平先生" }, "task_details": { - "key": "worldtask_world_task_task_details_195", + "key": "worldtask_world_task_task_details_201", "text": "平先生已经把包子做好了,就等人来送了。好香啊!" }, "npctxt": { - "key": "worldtask_world_task_npctxt_195", + "key": "worldtask_world_task_npctxt_201", "text": "寻找平先生" }, "get_item": [], @@ -11234,15 +11423,15 @@ "des": 1, "icon": "25001", "task_name": { - "key": "worldtask_world_task_task_name_196", + "key": "worldtask_world_task_task_name_202", "text": "特殊的卷轴" }, "task_details": { - "key": "worldtask_world_task_task_details_196", + "key": "worldtask_world_task_task_details_202", "text": "悍娇虎委托金猴去找一份卷轴,但金猴却突然失踪了。" }, "npctxt": { - "key": "worldtask_world_task_npctxt_196", + "key": "worldtask_world_task_npctxt_202", "text": "阿宝的想法" }, "get_item": [], @@ -11295,15 +11484,15 @@ "des": 1, "icon": "25001", "task_name": { - "key": "worldtask_world_task_task_name_197", + "key": "worldtask_world_task_task_name_203", "text": "寻找金猴" }, "task_details": { - "key": "worldtask_world_task_task_details_197", + "key": "worldtask_world_task_task_details_203", "text": "金猴似乎就在不远处,但他看起来很生气。" }, "npctxt": { - "key": "worldtask_world_task_npctxt_197", + "key": "worldtask_world_task_npctxt_203", "text": "寻找金猴" }, "get_item": [], @@ -11358,15 +11547,15 @@ "des": 1, "icon": "25001", "task_name": { - "key": "worldtask_world_task_task_name_198", + "key": "worldtask_world_task_task_name_204", "text": "特别的生日蛋糕" }, "task_details": { - "key": "worldtask_world_task_task_details_198", + "key": "worldtask_world_task_task_details_204", "text": "菲欧娜委托姜饼人给匹诺曹做了个特别的蛋糕,需要你帮忙拿一下。" }, "npctxt": { - "key": "worldtask_world_task_npctxt_198", + "key": "worldtask_world_task_npctxt_204", "text": "菲欧娜的心事" }, "get_item": [], @@ -11419,15 +11608,15 @@ "des": 1, "icon": "25001", "task_name": { - "key": "worldtask_world_task_task_name_199", + "key": "worldtask_world_task_task_name_205", "text": "寻找姜饼人" }, "task_details": { - "key": "worldtask_world_task_task_details_199", + "key": "worldtask_world_task_task_details_205", "text": "姜饼人正在疯狂擀着面团,不知道为啥那些面团里有些裙子珠串之类的东西。" }, "npctxt": { - "key": "worldtask_world_task_npctxt_199", + "key": "worldtask_world_task_npctxt_205", "text": "寻找姜饼人" }, "get_item": [], @@ -11482,15 +11671,15 @@ "des": 1, "icon": "25001", "task_name": { - "key": "worldtask_world_task_task_name_200", + "key": "worldtask_world_task_task_name_206", "text": "狐狸,狼,警长" }, "task_details": { - "key": "worldtask_world_task_task_details_200", + "key": "worldtask_world_task_task_details_206", "text": "沃尔夫想要你给戴安狐送信……尽管他俩近在咫尺。" }, "npctxt": { - "key": "worldtask_world_task_npctxt_200", + "key": "worldtask_world_task_npctxt_206", "text": "黛安狐的心事" }, "get_item": [], @@ -11545,15 +11734,15 @@ "des": 1, "icon": "25001", "task_name": { - "key": "worldtask_world_task_task_name_201", + "key": "worldtask_world_task_task_name_207", "text": "神秘药剂配方" }, "task_details": { - "key": "worldtask_world_task_task_details_201", + "key": "worldtask_world_task_task_details_207", "text": "菲欧娜正在研发一种新型的神秘药剂,但现在还缺少一种药材:猫的胡子。" }, "npctxt": { - "key": "worldtask_world_task_npctxt_201", + "key": "worldtask_world_task_npctxt_207", "text": "菲欧娜有事相求" }, "get_item": [], @@ -11606,15 +11795,15 @@ "des": 1, "icon": "25001", "task_name": { - "key": "worldtask_world_task_task_name_202", + "key": "worldtask_world_task_task_name_208", "text": "靴猫的胡子" }, "task_details": { - "key": "worldtask_world_task_task_details_202", + "key": "worldtask_world_task_task_details_208", "text": "去找靴子猫,他会给出什么样的胡子呢?" }, "npctxt": { - "key": "worldtask_world_task_npctxt_202", + "key": "worldtask_world_task_npctxt_208", "text": "去看看靴子猫" }, "get_item": [], @@ -11669,15 +11858,15 @@ "des": 6, "icon": "25001", "task_name": { - "key": "worldtask_world_task_task_name_203", + "key": "worldtask_world_task_task_name_209", "text": "希卡普的礼物" }, "task_details": { - "key": "worldtask_world_task_task_details_203", + "key": "worldtask_world_task_task_details_209", "text": "铁匠铺发现一个非常奇怪的礼盒,戈伯让我交给希卡普,我们可以看看希卡普怎么说" }, "npctxt": { - "key": "worldtask_world_task_npctxt_203", + "key": "worldtask_world_task_npctxt_209", "text": "铁匠铺逛逛" }, "get_item": [], @@ -11717,15 +11906,15 @@ "des": 6, "icon": "25001", "task_name": { - "key": "worldtask_world_task_task_name_204", + "key": "worldtask_world_task_task_name_210", "text": "奇妙玩偶" }, "task_details": { - "key": "worldtask_world_task_task_details_204", + "key": "worldtask_world_task_task_details_210", "text": "在武馆发现了一个长得像螳螂的玩偶,或许还有其他跟多的玩偶,他们都在哪儿呢?" }, "npctxt": { - "key": "worldtask_world_task_npctxt_204", + "key": "worldtask_world_task_npctxt_210", "text": "武馆的角落内?" }, "get_item": [], @@ -11768,15 +11957,15 @@ "des": 6, "icon": "25001", "task_name": { - "key": "worldtask_world_task_task_name_205", + "key": "worldtask_world_task_task_name_211", "text": "花盆下的秘密" }, "task_details": { - "key": "worldtask_world_task_task_details_205", + "key": "worldtask_world_task_task_details_211", "text": "无意间在花盆下找到一封满是思念的信封,里面包含着师傅部分的往事,或许我可以问一下师傅。" }, "npctxt": { - "key": "worldtask_world_task_npctxt_205", + "key": "worldtask_world_task_npctxt_211", "text": "翻找花盆" }, "get_item": [], @@ -11816,15 +12005,15 @@ "des": 6, "icon": "25001", "task_name": { - "key": "worldtask_world_task_task_name_206", + "key": "worldtask_world_task_task_name_212", "text": "往日追忆" }, "task_details": { - "key": "worldtask_world_task_task_details_206", + "key": "worldtask_world_task_task_details_212", "text": "无人的时候,希卡普会一个人静静看着海洋,看上去是如此的落寞,我或许可以和他聊聊。" }, "npctxt": { - "key": "worldtask_world_task_npctxt_206", + "key": "worldtask_world_task_npctxt_212", "text": "和希卡普聊聊" }, "get_item": [], diff --git a/modules/activity/api_getreward.go b/modules/activity/api_getreward.go index 8bffc5516..674970734 100644 --- a/modules/activity/api_getreward.go +++ b/modules/activity/api_getreward.go @@ -41,7 +41,7 @@ func (this *apiComp) GetReward(session comm.IUserSession, req *pb.ActivityGetRew // 接口需要修改 if activity, err = this.module.modelhdList.getHdListByHdId(req.Oid); err == nil { curTime := configure.Now().Unix() - if activity.Stime > curTime || curTime > activity.Etime { //不在活动时间范围内 + if activity.Stime > curTime && curTime > activity.Etime { //不在活动时间范围内 errdata = &pb.ErrorData{ Code: pb.ErrorCode_ActivityNotIntime, Title: pb.ErrorCode_ActivityNotIntime.ToString(), diff --git a/modules/uigame/api_getlattice.go b/modules/uigame/api_getlattice.go index e077b3a45..6e4191a3b 100644 --- a/modules/uigame/api_getlattice.go +++ b/modules/uigame/api_getlattice.go @@ -33,7 +33,7 @@ func (this *apiComp) GetLattice(session comm.IUserSession, req *pb.UiGameGetLatt } return } - if activity.Stime > curTime || curTime > activity.Etime { // 不在活动范围内数据不给活动记录数据 + if activity.Stime > curTime && curTime > activity.Etime { // 不在活动范围内数据不给活动记录数据 errdata = &pb.ErrorData{ Code: pb.ErrorCode_ActivityNotIntime, Title: pb.ErrorCode_ActivityNotIntime.ToString(), diff --git a/modules/uigame/api_getminer.go b/modules/uigame/api_getminer.go index e433ed9ab..79cdf969e 100644 --- a/modules/uigame/api_getminer.go +++ b/modules/uigame/api_getminer.go @@ -32,7 +32,7 @@ func (this *apiComp) GetMiner(session comm.IUserSession, req *pb.UiGameGetMinerR } return } - if activity.Stime > curTime || curTime > activity.Etime { // 不在活动范围内数据不给活动记录数据 + if activity.Stime > curTime && curTime > activity.Etime { // 不在活动范围内数据不给活动记录数据 errdata = &pb.ErrorData{ Code: pb.ErrorCode_ActivityNotIntime, Title: pb.ErrorCode_ActivityNotIntime.ToString(), diff --git a/modules/uigame/api_getpuzzle.go b/modules/uigame/api_getpuzzle.go index 29c01de9c..1f948501f 100644 --- a/modules/uigame/api_getpuzzle.go +++ b/modules/uigame/api_getpuzzle.go @@ -32,7 +32,7 @@ func (this *apiComp) GetPuzzle(session comm.IUserSession, req *pb.UiGameGetPuzzl } return } - if activity.Stime > curTime || curTime > activity.Etime { // 不在活动范围内数据不给活动记录数据 + if activity.Stime > curTime && curTime > activity.Etime { // 不在活动范围内数据不给活动记录数据 errdata = &pb.ErrorData{ Code: pb.ErrorCode_ActivityNotIntime, Title: pb.ErrorCode_ActivityNotIntime.ToString(), diff --git a/sys/configure/structs/Game.ConsumeGiftpack.go b/sys/configure/structs/Game.ConsumeGiftpack.go new file mode 100644 index 000000000..d450e6881 --- /dev/null +++ b/sys/configure/structs/Game.ConsumeGiftpack.go @@ -0,0 +1,42 @@ +//------------------------------------------------------------------------------ +// +// This code was generated by a tool. +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. +// +//------------------------------------------------------------------------------ + +package cfg + +type GameConsumeGiftpack struct { + _dataMap map[int32]*GameConsumeGiftpackData + _dataList []*GameConsumeGiftpackData +} + +func NewGameConsumeGiftpack(_buf []map[string]interface{}) (*GameConsumeGiftpack, error) { + _dataList := make([]*GameConsumeGiftpackData, 0, len(_buf)) + dataMap := make(map[int32]*GameConsumeGiftpackData) + for _, _ele_ := range _buf { + if _v, err2 := DeserializeGameConsumeGiftpackData(_ele_); err2 != nil { + return nil, err2 + } else { + _dataList = append(_dataList, _v) + dataMap[_v.Lv] = _v + } + } + return &GameConsumeGiftpack{_dataList:_dataList, _dataMap:dataMap}, nil +} + +func (table *GameConsumeGiftpack) GetDataMap() map[int32]*GameConsumeGiftpackData { + return table._dataMap +} + +func (table *GameConsumeGiftpack) GetDataList() []*GameConsumeGiftpackData { + return table._dataList +} + +func (table *GameConsumeGiftpack) Get(key int32) *GameConsumeGiftpackData { + return table._dataMap[key] +} + + diff --git a/sys/configure/structs/Game.ConsumeGiftpackData.go b/sys/configure/structs/Game.ConsumeGiftpackData.go new file mode 100644 index 000000000..74421f0ec --- /dev/null +++ b/sys/configure/structs/Game.ConsumeGiftpackData.go @@ -0,0 +1,67 @@ +//------------------------------------------------------------------------------ +// +// This code was generated by a tool. +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. +// +//------------------------------------------------------------------------------ + +package cfg + +import "errors" + +type GameConsumeGiftpackData struct { + Lv int32 + Integral int32 + Reward []*Gameatn + Exreward []*Gameatn +} + +const TypeId_GameConsumeGiftpackData = 661115059 + +func (*GameConsumeGiftpackData) GetTypeId() int32 { + return 661115059 +} + +func (_v *GameConsumeGiftpackData)Deserialize(_buf map[string]interface{}) (err error) { + { var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["lv"].(float64); !_ok_ { err = errors.New("lv error"); return }; _v.Lv = int32(_tempNum_) } + { var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["integral"].(float64); !_ok_ { err = errors.New("integral error"); return }; _v.Integral = int32(_tempNum_) } + { + var _arr_ []interface{} + var _ok_ bool + if _arr_, _ok_ = _buf["reward"].([]interface{}); !_ok_ { err = errors.New("reward error"); return } + + _v.Reward = make([]*Gameatn, 0, len(_arr_)) + + for _, _e_ := range _arr_ { + var _list_v_ *Gameatn + { var _ok_ bool; var _x_ map[string]interface{}; if _x_, _ok_ = _e_.(map[string]interface{}); !_ok_ { err = errors.New("_list_v_ error"); return }; if _list_v_, err = DeserializeGameatn(_x_); err != nil { return } } + _v.Reward = append(_v.Reward, _list_v_) + } + } + + { + var _arr_ []interface{} + var _ok_ bool + if _arr_, _ok_ = _buf["exreward"].([]interface{}); !_ok_ { err = errors.New("exreward error"); return } + + _v.Exreward = make([]*Gameatn, 0, len(_arr_)) + + for _, _e_ := range _arr_ { + var _list_v_ *Gameatn + { var _ok_ bool; var _x_ map[string]interface{}; if _x_, _ok_ = _e_.(map[string]interface{}); !_ok_ { err = errors.New("_list_v_ error"); return }; if _list_v_, err = DeserializeGameatn(_x_); err != nil { return } } + _v.Exreward = append(_v.Exreward, _list_v_) + } + } + + return +} + +func DeserializeGameConsumeGiftpackData(_buf map[string]interface{}) (*GameConsumeGiftpackData, error) { + v := &GameConsumeGiftpackData{} + if err := v.Deserialize(_buf); err == nil { + return v, nil + } else { + return nil, err + } +} diff --git a/sys/configure/structs/Game.ConsumeRank.go b/sys/configure/structs/Game.ConsumeRank.go new file mode 100644 index 000000000..cff2fdebf --- /dev/null +++ b/sys/configure/structs/Game.ConsumeRank.go @@ -0,0 +1,42 @@ +//------------------------------------------------------------------------------ +// +// This code was generated by a tool. +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. +// +//------------------------------------------------------------------------------ + +package cfg + +type GameConsumeRank struct { + _dataMap map[int32]*GameConsumeRankData + _dataList []*GameConsumeRankData +} + +func NewGameConsumeRank(_buf []map[string]interface{}) (*GameConsumeRank, error) { + _dataList := make([]*GameConsumeRankData, 0, len(_buf)) + dataMap := make(map[int32]*GameConsumeRankData) + for _, _ele_ := range _buf { + if _v, err2 := DeserializeGameConsumeRankData(_ele_); err2 != nil { + return nil, err2 + } else { + _dataList = append(_dataList, _v) + dataMap[_v.Id] = _v + } + } + return &GameConsumeRank{_dataList:_dataList, _dataMap:dataMap}, nil +} + +func (table *GameConsumeRank) GetDataMap() map[int32]*GameConsumeRankData { + return table._dataMap +} + +func (table *GameConsumeRank) GetDataList() []*GameConsumeRankData { + return table._dataList +} + +func (table *GameConsumeRank) Get(key int32) *GameConsumeRankData { + return table._dataMap[key] +} + + diff --git a/sys/configure/structs/Game.ConsumeRankData.go b/sys/configure/structs/Game.ConsumeRankData.go new file mode 100644 index 000000000..efb573959 --- /dev/null +++ b/sys/configure/structs/Game.ConsumeRankData.go @@ -0,0 +1,52 @@ +//------------------------------------------------------------------------------ +// +// This code was generated by a tool. +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. +// +//------------------------------------------------------------------------------ + +package cfg + +import "errors" + +type GameConsumeRankData struct { + Id int32 + Group int32 + Reward []*Gameatn +} + +const TypeId_GameConsumeRankData = 1062948886 + +func (*GameConsumeRankData) GetTypeId() int32 { + return 1062948886 +} + +func (_v *GameConsumeRankData)Deserialize(_buf map[string]interface{}) (err error) { + { var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["id"].(float64); !_ok_ { err = errors.New("id error"); return }; _v.Id = int32(_tempNum_) } + { var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["group"].(float64); !_ok_ { err = errors.New("group error"); return }; _v.Group = int32(_tempNum_) } + { + var _arr_ []interface{} + var _ok_ bool + if _arr_, _ok_ = _buf["reward"].([]interface{}); !_ok_ { err = errors.New("reward error"); return } + + _v.Reward = make([]*Gameatn, 0, len(_arr_)) + + for _, _e_ := range _arr_ { + var _list_v_ *Gameatn + { var _ok_ bool; var _x_ map[string]interface{}; if _x_, _ok_ = _e_.(map[string]interface{}); !_ok_ { err = errors.New("_list_v_ error"); return }; if _list_v_, err = DeserializeGameatn(_x_); err != nil { return } } + _v.Reward = append(_v.Reward, _list_v_) + } + } + + return +} + +func DeserializeGameConsumeRankData(_buf map[string]interface{}) (*GameConsumeRankData, error) { + v := &GameConsumeRankData{} + if err := v.Deserialize(_buf); err == nil { + return v, nil + } else { + return nil, err + } +} diff --git a/sys/configure/structs/Game.ConsumeTask.go b/sys/configure/structs/Game.ConsumeTask.go new file mode 100644 index 000000000..953b94afd --- /dev/null +++ b/sys/configure/structs/Game.ConsumeTask.go @@ -0,0 +1,42 @@ +//------------------------------------------------------------------------------ +// +// This code was generated by a tool. +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. +// +//------------------------------------------------------------------------------ + +package cfg + +type GameConsumeTask struct { + _dataMap map[int32]*GameConsumeTaskData + _dataList []*GameConsumeTaskData +} + +func NewGameConsumeTask(_buf []map[string]interface{}) (*GameConsumeTask, error) { + _dataList := make([]*GameConsumeTaskData, 0, len(_buf)) + dataMap := make(map[int32]*GameConsumeTaskData) + for _, _ele_ := range _buf { + if _v, err2 := DeserializeGameConsumeTaskData(_ele_); err2 != nil { + return nil, err2 + } else { + _dataList = append(_dataList, _v) + dataMap[_v.Key] = _v + } + } + return &GameConsumeTask{_dataList:_dataList, _dataMap:dataMap}, nil +} + +func (table *GameConsumeTask) GetDataMap() map[int32]*GameConsumeTaskData { + return table._dataMap +} + +func (table *GameConsumeTask) GetDataList() []*GameConsumeTaskData { + return table._dataList +} + +func (table *GameConsumeTask) Get(key int32) *GameConsumeTaskData { + return table._dataMap[key] +} + + diff --git a/sys/configure/structs/Game.ConsumeTaskData.go b/sys/configure/structs/Game.ConsumeTaskData.go new file mode 100644 index 000000000..690e2b993 --- /dev/null +++ b/sys/configure/structs/Game.ConsumeTaskData.go @@ -0,0 +1,52 @@ +//------------------------------------------------------------------------------ +// +// This code was generated by a tool. +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. +// +//------------------------------------------------------------------------------ + +package cfg + +import "errors" + +type GameConsumeTaskData struct { + Key int32 + TaskIntegral *Gameatn + Reward []*Gameatn +} + +const TypeId_GameConsumeTaskData = 396748015 + +func (*GameConsumeTaskData) GetTypeId() int32 { + return 396748015 +} + +func (_v *GameConsumeTaskData)Deserialize(_buf map[string]interface{}) (err error) { + { var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["key"].(float64); !_ok_ { err = errors.New("key error"); return }; _v.Key = int32(_tempNum_) } + { var _ok_ bool; var _x_ map[string]interface{}; if _x_, _ok_ = _buf["task_integral"].(map[string]interface{}); !_ok_ { err = errors.New("task_integral error"); return }; if _v.TaskIntegral, err = DeserializeGameatn(_x_); err != nil { return } } + { + var _arr_ []interface{} + var _ok_ bool + if _arr_, _ok_ = _buf["reward"].([]interface{}); !_ok_ { err = errors.New("reward error"); return } + + _v.Reward = make([]*Gameatn, 0, len(_arr_)) + + for _, _e_ := range _arr_ { + var _list_v_ *Gameatn + { var _ok_ bool; var _x_ map[string]interface{}; if _x_, _ok_ = _e_.(map[string]interface{}); !_ok_ { err = errors.New("_list_v_ error"); return }; if _list_v_, err = DeserializeGameatn(_x_); err != nil { return } } + _v.Reward = append(_v.Reward, _list_v_) + } + } + + return +} + +func DeserializeGameConsumeTaskData(_buf map[string]interface{}) (*GameConsumeTaskData, error) { + v := &GameConsumeTaskData{} + if err := v.Deserialize(_buf); err == nil { + return v, nil + } else { + return nil, err + } +} diff --git a/sys/configure/structs/Game.ConsumeTxt.go b/sys/configure/structs/Game.ConsumeTxt.go new file mode 100644 index 000000000..3073a284b --- /dev/null +++ b/sys/configure/structs/Game.ConsumeTxt.go @@ -0,0 +1,42 @@ +//------------------------------------------------------------------------------ +// +// This code was generated by a tool. +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. +// +//------------------------------------------------------------------------------ + +package cfg + +type GameConsumeTxt struct { + _dataMap map[int32]*GameConsumeTxtData + _dataList []*GameConsumeTxtData +} + +func NewGameConsumeTxt(_buf []map[string]interface{}) (*GameConsumeTxt, error) { + _dataList := make([]*GameConsumeTxtData, 0, len(_buf)) + dataMap := make(map[int32]*GameConsumeTxtData) + for _, _ele_ := range _buf { + if _v, err2 := DeserializeGameConsumeTxtData(_ele_); err2 != nil { + return nil, err2 + } else { + _dataList = append(_dataList, _v) + dataMap[_v.Id] = _v + } + } + return &GameConsumeTxt{_dataList:_dataList, _dataMap:dataMap}, nil +} + +func (table *GameConsumeTxt) GetDataMap() map[int32]*GameConsumeTxtData { + return table._dataMap +} + +func (table *GameConsumeTxt) GetDataList() []*GameConsumeTxtData { + return table._dataList +} + +func (table *GameConsumeTxt) Get(key int32) *GameConsumeTxtData { + return table._dataMap[key] +} + + diff --git a/sys/configure/structs/Game.ConsumeTxtData.go b/sys/configure/structs/Game.ConsumeTxtData.go new file mode 100644 index 000000000..559f1a9f3 --- /dev/null +++ b/sys/configure/structs/Game.ConsumeTxtData.go @@ -0,0 +1,39 @@ +//------------------------------------------------------------------------------ +// +// This code was generated by a tool. +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. +// +//------------------------------------------------------------------------------ + +package cfg + +import "errors" + +type GameConsumeTxtData struct { + Id int32 + Name string + Txt string +} + +const TypeId_GameConsumeTxtData = -1407151078 + +func (*GameConsumeTxtData) GetTypeId() int32 { + return -1407151078 +} + +func (_v *GameConsumeTxtData)Deserialize(_buf map[string]interface{}) (err error) { + { var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["id"].(float64); !_ok_ { err = errors.New("id error"); return }; _v.Id = int32(_tempNum_) } + {var _ok_ bool; var __json_text__ map[string]interface{}; if __json_text__, _ok_ = _buf["name"].(map[string]interface{}) ; !_ok_ { err = errors.New("_v.Name error"); return }; { var _ok_ bool; if _, _ok_ = __json_text__["key"].(string); !_ok_ { err = errors.New("key error"); return } }; { var _ok_ bool; if _v.Name, _ok_ = __json_text__["text"].(string); !_ok_ { err = errors.New("text error"); return } } } + {var _ok_ bool; var __json_text__ map[string]interface{}; if __json_text__, _ok_ = _buf["txt"].(map[string]interface{}) ; !_ok_ { err = errors.New("_v.Txt error"); return }; { var _ok_ bool; if _, _ok_ = __json_text__["key"].(string); !_ok_ { err = errors.New("key error"); return } }; { var _ok_ bool; if _v.Txt, _ok_ = __json_text__["text"].(string); !_ok_ { err = errors.New("text error"); return } } } + return +} + +func DeserializeGameConsumeTxtData(_buf map[string]interface{}) (*GameConsumeTxtData, error) { + v := &GameConsumeTxtData{} + if err := v.Deserialize(_buf); err == nil { + return v, nil + } else { + return nil, err + } +} diff --git a/sys/configure/structs/Tables.go b/sys/configure/structs/Tables.go index e7ede6b8a..1a62d1726 100644 --- a/sys/configure/structs/Tables.go +++ b/sys/configure/structs/Tables.go @@ -275,6 +275,10 @@ type Tables struct { ConsumeHero *GameConsumeHero PlayerSkill *GamePlayerSkill ConsumeBox *GameConsumeBox + ConsumeGiftpack *GameConsumeGiftpack + ConsumeTask *GameConsumeTask + ConsumeRank *GameConsumeRank + ConsumeTxt *GameConsumeTxt BukashiAi *GameBukashiAi GColorGetfraction *GameGColorGetfraction GColorReward *GameGColorReward @@ -1911,6 +1915,30 @@ func NewTables(loader JsonLoader) (*Tables, error) { if tables.ConsumeBox, err = NewGameConsumeBox(buf) ; err != nil { return nil, err } + if buf, err = loader("game_consumegiftpack") ; err != nil { + return nil, err + } + if tables.ConsumeGiftpack, err = NewGameConsumeGiftpack(buf) ; err != nil { + return nil, err + } + if buf, err = loader("game_consumetask") ; err != nil { + return nil, err + } + if tables.ConsumeTask, err = NewGameConsumeTask(buf) ; err != nil { + return nil, err + } + if buf, err = loader("game_consumerank") ; err != nil { + return nil, err + } + if tables.ConsumeRank, err = NewGameConsumeRank(buf) ; err != nil { + return nil, err + } + if buf, err = loader("game_consumetxt") ; err != nil { + return nil, err + } + if tables.ConsumeTxt, err = NewGameConsumeTxt(buf) ; err != nil { + return nil, err + } if buf, err = loader("game_bukashiai") ; err != nil { return nil, err } diff --git a/sys/configure/structs/game.globalData.go b/sys/configure/structs/game.globalData.go index 0d03ee32a..5f4ff9a6d 100644 --- a/sys/configure/structs/game.globalData.go +++ b/sys/configure/structs/game.globalData.go @@ -268,6 +268,7 @@ type GameGlobalData struct { NewDrawcardAttemptsNums int32 StonehengeGuideStage int32 StoryWaittime float32 + SxRanknum int32 } const TypeId_GameGlobalData = 477542761 @@ -1067,6 +1068,7 @@ func (_v *GameGlobalData)Deserialize(_buf map[string]interface{}) (err error) { { var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["NewDrawcardAttempts_Nums"].(float64); !_ok_ { err = errors.New("NewDrawcardAttempts_Nums error"); return }; _v.NewDrawcardAttemptsNums = int32(_tempNum_) } { var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["stonehenge_guideStage"].(float64); !_ok_ { err = errors.New("stonehenge_guideStage error"); return }; _v.StonehengeGuideStage = int32(_tempNum_) } { var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["story_waittime"].(float64); !_ok_ { err = errors.New("story_waittime error"); return }; _v.StoryWaittime = float32(_tempNum_) } + { var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["sx_ranknum"].(float64); !_ok_ { err = errors.New("sx_ranknum error"); return }; _v.SxRanknum = int32(_tempNum_) } return } From 0cba2d618cb9d84275a1d363f4e719c30b8ad3c5 Mon Sep 17 00:00:00 2001 From: meixiongfeng <766881921@qq.com> Date: Tue, 19 Dec 2023 20:08:30 +0800 Subject: [PATCH 16/16] =?UTF-8?q?=E6=89=93=E5=8D=B0=E9=94=99=E8=AF=AF?= =?UTF-8?q?=E6=97=A5=E5=BF=97?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- modules/equipment/module.go | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/modules/equipment/module.go b/modules/equipment/module.go index 3fcc1be9d..93cc483b7 100644 --- a/modules/equipment/module.go +++ b/modules/equipment/module.go @@ -455,8 +455,9 @@ func (this *Equipment) RecycleEquipments(session comm.IUserSession, equs []strin if confs[i], err = this.configure.GetEquipmentConfigureById(v.CId); err != nil { this.Errorln(err) errdata = &pb.ErrorData{ - Code: pb.ErrorCode_ConfigNoFound, - Title: pb.ErrorCode_ConfigNoFound.ToString(), + Code: pb.ErrorCode_ConfigNoFound, + Title: pb.ErrorCode_ConfigNoFound.ToString(), + Message: err.Error(), } return }