diff --git a/comm/const.go b/comm/const.go index 997779a08..b577da1cd 100644 --- a/comm/const.go +++ b/comm/const.go @@ -501,6 +501,8 @@ const ( //Rpc Rpc_ActivityOver core.Rpc_Key = "Rpc_ActivityOver" //活动结束 Rpc_ActivityStar core.Rpc_Key = "Rpc_ActivityStar" //活动开启 + + RPC_XXLOffLine core.Rpc_Key = "RPC_XXLOffLine" //三消离线 ) // 事件类型定义处 diff --git a/modules/entertainment/configure.go b/modules/entertainment/configure.go index bfde45b0d..7cd525f57 100644 --- a/modules/entertainment/configure.go +++ b/modules/entertainment/configure.go @@ -233,3 +233,18 @@ func (this *configureComp) GetGameRandomConsumeBoxConf() (conf *cfg.GameConsumeB conf, err = this.GetGameConsumeBoxConf(boxid[comm.GetRandW(szWeight)]) return } + +func (this *configureComp) GetGameBlockByKey(key int32) (conf *cfg.GameBlockData, err error) { + var ( + v interface{} + ) + if v, err = this.GetConfigure(game_block); err == nil { + if configure, ok := v.(*cfg.GameBlock); ok { + if conf = configure.Get(key); conf != nil { + return + } + } + } + err = comm.NewNotFoundConfErr(moduleName, game_block, key) + return +} diff --git a/modules/entertainment/module.go b/modules/entertainment/module.go index 08d2cb3bc..b63a3562c 100644 --- a/modules/entertainment/module.go +++ b/modules/entertainment/module.go @@ -1,8 +1,10 @@ package entertainment import ( + "context" "go_dreamfactory/comm" "go_dreamfactory/lego/core" + "go_dreamfactory/lego/sys/event" "go_dreamfactory/modules" "go_dreamfactory/pb" ) @@ -52,7 +54,8 @@ func (this *Entertainment) Start() (err error) { if err = this.ModuleBase.Start(); err != nil { return } - + event.RegisterGO(comm.EventUserOffline, this.EventUserOffline) + this.service.RegisterFunctionName(string(comm.RPC_XXLOffLine), this.useroffline) return } @@ -117,3 +120,36 @@ func (this *Entertainment) ConsumXxlCard(session comm.IUserSession, card string) }) return } + +// 用户离线处理 +func (this *Entertainment) EventUserOffline(uid, sessionid string) { + this.Debugf("user offline: %s", uid) + // if list, err := this.model.getEntertainmList(uid); err == nil { + // var ( + // serverPath string = fmt.Sprintf("%s/%s", this.service.GetType(), this.service.GetId()) + // ) + // if serverPath != list.ServicePath { // RPC 通知房间所在的服务器 + // _, err = this.service.RpcGo( + // context.Background(), + // list.ServicePath, + // string(comm.RPC_XXLOffLine), + // &pb.RPCGeneralReqA2{ + // Param1: list.Roomid, + // Param2: list.Uid, + // }, + // nil) + // if err != nil { + // this.Errorln(err) + // return + // } + // } else { + // this.useroffline(context.Background(), &pb.RPCGeneralReqA2{Param1: list.Roomid, Param2: list.Uid}, nil) + // } + // return + // } +} + +func (this *Entertainment) useroffline(ctx context.Context, req *pb.RPCGeneralReqA2, resp *pb.RPCGeneralReqA2) (err error) { + + return +} diff --git a/modules/entertainment/room.go b/modules/entertainment/room.go index 8e90d3f22..e19b7454e 100644 --- a/modules/entertainment/room.go +++ b/modules/entertainment/room.go @@ -61,7 +61,7 @@ func (this *Room) operateTimeOut(task *timewheel.Task, args ...interface{}) { Data: this.chessboard.GetPalatData(), }) fmt.Printf("===超时棋盘=============\n") - this.chessboard.Debugf() + //this.chessboard.Debugf() if err := this.module.SendMsgSyncToSession(string(this.module.GetType()), "operatorrst", &pb.EntertainOperatorRstPush{ //Mpadata: szMap, Power: this.NexPower, @@ -93,7 +93,7 @@ func (this *Room) operateTimeOut(task *timewheel.Task, args ...interface{}) { } // 随机一个玩法 -func (this *Room) RandomPlayType() { +func (this *Room) RandomPlayType() (itype int32) { var weight []int32 // 权重 // 开始随机玩法 list := this.module.configure.GetGameConsumeIntegral() @@ -101,15 +101,15 @@ func (this *Room) RandomPlayType() { weight = append(weight, v.Weight) } - this.Playtype = list[comm.GetRandW(weight)].Key + return list[comm.GetRandW(weight)].Key } func (this *Room) InitRoom(module *Entertainment, p1 *pb.PlayerData, p2 *pb.PlayerData) *Room { var room *Room this.module = module this.chessboard = new(MapData) - this.RandomPlayType() - this.chessboard.InitMap(module) // 初始化棋盘 + this.Playtype = this.RandomPlayType() + this.chessboard.InitMap(module, this.Playtype) // 初始化棋盘 if s1, ok := this.module.GetUserSession(p1.Userinfo.Uid); !ok { this.module.PutUserSession(s1) } else { @@ -222,11 +222,10 @@ func (this *Room) ReceiveMessage(session comm.IUserSession, stype string, msg pr case "operator": // 操作消息 var ( curScore int32 // 该次操作的得分 - //AIOperator bool - oid1 int32 // 唯一id - oid2 int32 - color int32 // 校验消除的颜色 - bAddPs bool + oid1 int32 // 唯一id + oid2 int32 + color int32 // 校验消除的颜色 + bAddPs bool ) var szMap []*pb.MapData req := msg.(*pb.EntertainOperatorReq) @@ -381,9 +380,6 @@ func (this *Room) ReceiveMessage(session comm.IUserSession, stype string, msg pr if this.player1.Ps <= 0 { this.NexPower = this.player2.Userinfo.Uid - // if len(this.szSession) == 1 { // 校验2号玩家是不是AI - // AIOperator = true - // } this.player2.Ps = MaxPs } } else { // this.curPower == this.player2.Uid @@ -398,8 +394,6 @@ func (this *Room) ReceiveMessage(session comm.IUserSession, stype string, msg pr if this.player2.Ps <= 0 { this.NexPower = this.player1.Userinfo.Uid this.player1.Ps = MaxPs - // this.round++ - } } for _, v := range szMap { // @@ -454,9 +448,7 @@ func (this *Room) ReceiveMessage(session comm.IUserSession, stype string, msg pr } // 变更权限 this.curPower = this.NexPower - // if AIOperator { // AI操作 - // this.AiOperator() - // } + case "ready": var bStartGame bool // 可以开始游戏 this.NexPower = this.player1.Userinfo.Uid @@ -582,7 +574,6 @@ func (this *Room) ReceiveMessage(session comm.IUserSession, stype string, msg pr } } //this.operatetimer = timewheel.Add(time.Second*time.Duration(this.MaxTime), this.operateTimeOut) - } return @@ -691,8 +682,8 @@ func (this *Room) JoinRoom(module *Entertainment, p *pb.PlayerData) (room *Room, this.player1 = p this.module = module this.chessboard = new(MapData) - this.RandomPlayType() - this.chessboard.InitMap(module) // 初始化棋盘 + this.Playtype = this.RandomPlayType() + this.chessboard.InitMap(module, this.Playtype) // 初始化棋盘 if s1, ok := this.module.GetUserSession(p.Userinfo.Uid); !ok { this.module.PutUserSession(s1) } else { diff --git a/modules/entertainment/xxlPlat.go b/modules/entertainment/xxlPlat.go index 580ba6f73..5f5daddf2 100644 --- a/modules/entertainment/xxlPlat.go +++ b/modules/entertainment/xxlPlat.go @@ -5,6 +5,7 @@ import ( "fmt" "go_dreamfactory/comm" "go_dreamfactory/pb" + cfg "go_dreamfactory/sys/configure/structs" "go_dreamfactory/utils" "math/big" ) @@ -18,6 +19,11 @@ const ( FourUType = 1 // 4消上下类型 FourLType = 2 // 4消左右类型 BoomType = 4 // 炸弹类型 + + FireUp = 5 //上烟火 + FireDown = 6 //下烟火 + FireLeft = 7 //左烟火 + FireRight = 8 //右烟火 ) type Girde struct { @@ -34,30 +40,83 @@ type MapData struct { oid int32 // 唯一id module *Entertainment operElem []int32 // 当前移动的元素 + iType int32 // 玩法类型 } // 1~6随机一个数 -func GetRandType() int32 { +func (this *MapData) GetRandType() int32 { + n, _ := rand.Int(rand.Reader, big.NewInt(6)) return int32(n.Int64() + 1) } -func (this *MapData) CreateGride(index int32) *pb.GirdeData { - t := GetRandType() +// 玩法带入 +func (this *MapData) CreateGride(index int32) (girde *pb.GirdeData) { + var ( + szWeight []int32 + szId []int32 + id int32 + conf *cfg.GameBlockData + err error + ) // 权重带入 this.oid++ - return &pb.GirdeData{ + girde = &pb.GirdeData{ // 默认值 Oid: this.oid, - Color: t, - Cid: t, + Color: 1, + Cid: 1, Score: 1, Special: 0, } + if this.iType == 4 { + for i := 1; i <= 6; i++ { // 6种颜色 + if conf, err := this.module.configure.GetGameBlock(int32(i), 4); err == nil { + szWeight = append(szWeight, conf.Weight) + szId = append(szId, conf.Key) + } + + if conf, err := this.module.configure.GetGameBlock(int32(i), 0); err == nil { + szWeight = append(szWeight, conf.Weight) + szId = append(szId, conf.Key) + } + } + id = szId[comm.GetRandW(szWeight)] + } else if this.iType == 3 { // 创建棋盘的时候此玩法类型执行效率低下 稍后采用同颜色替换模式处理 + // 最多2个 + var count int32 + for _, v := range this.Plat { + if v.Special == 4 { + count++ + if count >= 2 { + break + } + } + } + if count <= 2 { + n, _ := rand.Int(rand.Reader, big.NewInt(6)) // 随机一个颜色 + if conf, err := this.module.configure.GetGameBlock(int32(n.Int64()+1), 4); err == nil { + id = conf.Key + } + } + + } else { + id = this.GetRandType() + } + conf, err = this.module.configure.GetGameBlockByKey(id) + if err != nil { + return + } + + girde.Color = conf.Color + girde.Cid = conf.Key + girde.Special = conf.Type + girde.Score = conf.Score + return } // 初始化地图数据 -func (this *MapData) InitMap(module *Entertainment) { +func (this *MapData) InitMap(module *Entertainment, iType int32) { this.module = module - + this.iType = 1 //iType this.oid = 1000 // 方便观察 从1000开始 this.Plat = make([]*pb.GirdeData, Width*Height) for i := 0; i < Width*Height; i++ { @@ -88,11 +147,11 @@ func (this *MapData) SwapGirde(oldId, newId int32) (bSwap bool) { func (this *MapData) Debugf() { fmt.Printf("================\n") - var v int + //var v int for index := Width - 1; index >= 0; index-- { for j := 0; j < Height; j++ { - v = index + j*7 - fmt.Printf("%d:%d ", v, this.Plat[index+j*Height].Cid) + // v = index + j*7 + fmt.Printf("%d:%d ", this.Plat[index+j*Height].Oid, this.Plat[index+j*Height].Cid) } fmt.Printf("\n") @@ -360,25 +419,10 @@ func (this *MapData) CheckMap(color int32, bSkill bool) (szMap []*pb.MapData, xc } if s := this.Plat[id].Special; s != 0 { - if s == FourUType { // 4消上下类型 - for i := 0; i < Height; i++ { // id 的一条线位置 - x[(id/Width)*Height+i] = struct{}{} - } - } else if s == FourLType { // 左右类型 - for i := 0; i < Width; i++ { // id 的一条线位置 - x[id%Height+i*Width] = struct{}{} - } - } else if s == FiveType { // 随机消除 - // 获取配置 - if c, _ := this.module.configure.GetGameBlock(this.Plat[id].Color, FiveType); c != nil { - if xc, _ := this.SkillUp(0, color, 1, c.Value, false); len(xc) > 0 { - //szMap = append(szMap, sz...) - for key := range xc { - x[key] = struct{}{} - } - } - } + for k := range this.SpecialElem(id, s) { + x[k] = struct{}{} } + } x[id] = struct{}{} } @@ -399,6 +443,7 @@ func (this *MapData) CheckMap(color int32, bSkill bool) (szMap []*pb.MapData, xc CurSocre: curScore, CurEnergy: energy, }) + //this.Debugf() } @@ -436,7 +481,7 @@ func (this *MapData) DropGirde() bool { } } } - //this.Debugf() + return bDrop } @@ -507,7 +552,6 @@ func (this *MapData) SkillUp(pos int32, color int32, skillid int32, value int32, x = make(map[int]struct{}) if skillid == 1 { // 随机消除盘面上X个方块 ids = utils.RandomNumbers(0, Total-1, int(value)) - } else if skillid == 4 { // 找到pos 位置的所有方块 x := int(pos / Width) y := int(pos % Height) @@ -527,8 +571,7 @@ func (this *MapData) SkillUp(pos int32, color int32, skillid int32, value int32, ids = append(ids, (x+i)*Width+(y-i)) } } - - } else if skillid == 3 || skillid == 5 { //选中一个方块,消除周围一圈 + } else if skillid == 5 { //选中一个方块,消除周围一圈 ids = append(ids, int(pos)) // 包含自己 x := int(pos / Width) y := int(pos % Height) @@ -557,32 +600,29 @@ func (this *MapData) SkillUp(pos int32, color int32, skillid int32, value int32, if x+1 < Width && y-1 >= 0 { // 右下 ids = append(ids, (x+1)*Width+(y-1)) } - } else if skillid == 2 { // 消除中间的一列宝石 for i := 0; i < Height; i++ { ids = append(ids, 3*Width+i) } + } else if skillid == 3 { // 四周蔓延 第一次100% 第二次 60% 第三次 30% 第四次 10% 最多4次 + var mids map[int]struct{} + mids = make(map[int]struct{}, 0) + for i := 0; i < 4; i++ { + dd := this.Skill3(pos, int32(i)) + for k := range dd { + for s := range this.Skill3(int32(k), int32(i)) { + mids[s] = struct{}{} + } + } + } + for k := range mids { + ids = append(ids, k) // 转换成最终消除的坐标 + } } for _, id := range ids { - s := this.Plat[id].Special - if s != 0 { - if s == FourUType { // 4消上下类型 - for i := 0; i < Height; i++ { // id 的一条线位置 - x[(id/Width)*Height+i] = struct{}{} - } - } else if s == FourLType { // 左右类型 - for i := 0; i < Width; i++ { // id 的一条线位置 - x[id%Height+i*Width] = struct{}{} - } - } else if s == FiveType { // 随机消除 - // 获取配置 - if c, _ := this.module.configure.GetGameBlock(this.Plat[id].Color, FiveType); c != nil { - if xc, _ := this.SkillUp(pos, color, 1, c.Value, false); len(xc) > 0 { // 递归调用 - for key := range xc { - x[key] = struct{}{} - } - } - } + if s := this.Plat[id].Special; s != 0 { + for k := range this.SpecialElem(id, s) { + x[k] = struct{}{} } } x[id] = struct{}{} @@ -609,24 +649,15 @@ func (this *MapData) SkillUp(pos int32, color int32, skillid int32, value int32, return } -// 随机生成 不可消除的 地图 -func (this *MapData) CheckInitPlat() { - this.Plat = make([]*pb.GirdeData, Width*Height) - for i := 0; i < Width*Height; i++ { - this.Plat[i] = this.CreateGride(int32(i)) - - } -} - func (this *MapData) SetMap() { sz2 := []int32{ 3, 3, 2, 2, 1, 3, 1, 5, 1, 2, 3, 1, 2, 2, 3, 4, 3, 5, 6, 1, 6, - 1, 4, 6, 4, 2, 3, 6, - 1, 5, 6, 5, 6, 1, 4, + 1, 4, 1, 4, 2, 3, 6, + 1, 5, 1, 5, 6, 1, 4, 6, 6, 4, 6, 4, 3, 3, - 3, 3, 6, 1, 1, 2, 5, + 3, 3, 1, 2, 1, 2, 5, // 1, 4, 2, 5, 4, 5, 2, // 3, 2, 3, 5, 2, 1, 4, // 2, 5, 5, 4, 5, 4, 1, @@ -916,5 +947,170 @@ func (this *MapData) RedsetPlatData() { } this.SetIndelibilityPlat() - //this.Debugf() +} + +//四周蔓延 第一次100% 第二次 60% 第三次 30% 第四次 10% 最多4次 +func (this *MapData) Skill3(pos int32, count int32) (m map[int]struct{}) { + m = make(map[int]struct{}, 0) + var sz []int + var percent int32 + // 先找出可以蔓延的方向 + x := int(pos / Width) + y := int(pos % Height) + if x-1 >= 0 { // 左 + sz = append(sz, (x-1)*Width+(y)) + } + if y-1 >= 0 { // 下 + sz = append(sz, (x)*Width+(y-1)) + } + if y+1 < Height { // 上 + sz = append(sz, (x)*Width+(y+1)) + } + if x+1 < Width { // 右 + sz = append(sz, (x+1)*Width+(y)) + } + + if count == 0 { + percent = 100 + } else if count == 1 { + percent = 100 + } else if count == 2 || count == 3 { + percent = 100 + } else { + return + } + + szid := utils.RandomNumbers(0, len(sz), 2) + for _, v := range szid { + if percent >= comm.GetRandNum(0, 100) { + m[sz[v]] = struct{}{} + } + } + + return +} + +// 获取BoomType 类型周围的所有元素(pos 四周+ 四周的上下左右) +func (this *MapData) GetBoomElem(pos int) (elem []int) { + + x := int(pos / Width) + y := int(pos % Height) + if x-1 >= 0 { // 左 + elem = append(elem, (x-1)*Width+(y)) + } + if y-1 >= 0 { // 下 + elem = append(elem, (x)*Width+(y-1)) + } + if y+1 < Height { // 上 + elem = append(elem, (x)*Width+(y+1)) + } + if x+1 < Width { // 右 + elem = append(elem, (x+1)*Width+(y)) + } + if x-1 >= 0 && y+1 < Height { // 左上 + elem = append(elem, (x-1)*Width+(y+1)) + } + if x-1 >= 0 && y-1 >= 0 { // 左下 + elem = append(elem, (x-1)*Width+(y-1)) + } + + if x+1 < Width && y+1 < Height { // 右上 + elem = append(elem, (x+1)*Width+(y+1)) + } + if x+1 < Width && y-1 >= 0 { // 右下 + elem = append(elem, (x+1)*Width+(y-1)) + } + /// + if x-2 >= 0 { // 左左 + elem = append(elem, (x-2)*Width+(y)) + } + if y-2 >= 0 { // 下下 + elem = append(elem, (x)*Width+(y-2)) + } + if y+2 < Height { // 上上 + elem = append(elem, (x)*Width+(y+2)) + } + if x+2 < Width { // 右右 + elem = append(elem, (x+2)*Width+(y)) + } + return +} + +func (this *MapData) GetFireBoom(pos int, itype int32) (elem []int) { + x := int(pos / Width) + y := int(pos % Height) + + switch itype { + case FireUp: //上烟火 + for i := 0; i < Height; i++ { + if y+1 < Height { // 上上 + elem = append(elem, (x)*Width+(y+1)) + y += 1 + } + } + case FireDown: //下烟火 + for i := 0; i < Height; i++ { + if y-1 >= 0 { // 下下 + elem = append(elem, (x)*Width+(y-1)) + y -= 1 + } + } + case FireLeft: //左烟火 + for i := 0; i < Height; i++ { + if x-1 >= 0 { // 左左 + elem = append(elem, (x-1)*Width+(y)) + x -= 1 + } + } + case FireRight: //右烟火 + for i := 0; i < Height; i++ { + if x+1 < Width { // 右右 + elem = append(elem, (x+1)*Width+(y)) + x += 1 + } + } + } + + return +} + +// 特殊类型元素 统一处理 +func (this *MapData) SpecialElem(id int, s int32) (x map[int]struct{}) { + + x = make(map[int]struct{}) + if s == FourUType { // 4消上下类型 + for i := 0; i < Height; i++ { // id 的一条线位置 + x[(id/Width)*Height+i] = struct{}{} + } + } else if s == FourLType { // 左右类型 + for i := 0; i < Width; i++ { // id 的一条线位置 + x[id%Height+i*Width] = struct{}{} + } + } else if s == FiveType { // 随机消除 + // 获取配置 + if c, _ := this.module.configure.GetGameBlock(this.Plat[id].Color, FiveType); c != nil { + ids := utils.RandomNumbers(0, Total-1, int(c.Value)) + for key := range ids { + x[key] = struct{}{} + } + } + } else if s == BoomType { // 炸弹类型 带走周围一圈+ 上下左右 + for key := range this.GetBoomElem(id) { + x[key] = struct{}{} + } + } else if s == FireUp || s == FireDown || s == FireLeft || s == FireRight { // 烟花技能 + for key := range this.GetFireBoom(id, s) { + x[key] = struct{}{} + } + } + + // for k := range x { + // if this.Plat[k].Special != 0 { + // for key := range this.SpecialElem(k, this.Plat[k].Special) { // 递归调用 + // x[key] = struct{}{} + // } + // } + // } + + return } diff --git a/modules/entertainment/xxl_test.go b/modules/entertainment/xxl_test.go index b2910216d..4d831d3e4 100644 --- a/modules/entertainment/xxl_test.go +++ b/modules/entertainment/xxl_test.go @@ -82,16 +82,50 @@ func Test_Main(t *testing.T) { entertainment.NewModule(), ) }() + + // sz := utils.RandomNumbers(0, 2, 2) + // fmt.Printf("xxxx%v", sz) m := new(entertainment.MapData) - m.InitMap(nil) + m.InitMap(nil, 1) //m.SkillUp(24, 1, 3, 7, true) m.SetMap() + var vids int + for index := 7 - 1; index >= 0; index-- { + for j := 0; j < 7; j++ { + vids = index + j*7 + fmt.Printf("%d ", vids) + + } + fmt.Printf("\n") + } + for i := 0; i < 4; i++ { + b := m.GetFireBoom(30, int32(i)+5) + fmt.Printf("xxxx %d\n", b) + } + var mids map[int]struct{} + mids = make(map[int]struct{}, 0) + // k := m.Skill3(24, 0) + for i := 0; i < 4; i++ { + + dd := m.Skill3(24, int32(i)) + for k := range dd { + for s := range m.Skill3(int32(k), int32(i)) { + mids[s] = struct{}{} + } + } + } + for b := range mids { + fmt.Printf("xxxx %d\n", b) + } + + fmt.Printf("xxxx %v\n", m.GetBoomElem(46)) + m.Debugf() + // b := m.CheckAndRefreshPlat() + // fmt.Printf("xxxx%v", b) + //m.RedsetPlatData() + m.SwapGirde(15, 22) m.Debugf() - b := m.CheckAndRefreshPlat() - fmt.Printf("xxxx%v", b) - m.RedsetPlatData() - m.SwapGirde(1, 8) m.CheckMap(1, false) m.Debugf() // for i := 0; i < 100; i++ { diff --git a/pb/battle_struct.pb.go b/pb/battle_struct.pb.go index 10e11b58f..6ce0aecf6 100644 --- a/pb/battle_struct.pb.go +++ b/pb/battle_struct.pb.go @@ -41,6 +41,7 @@ const ( EffectTipsType_Bleed EffectTipsType = 15 //流血 EffectTipsType_Recovery EffectTipsType = 16 //复苏 EffectTipsType_BeatBack EffectTipsType = 17 //反击 + EffectTipsType_Diseased EffectTipsType = 18 //禁疗 ) // Enum value maps for EffectTipsType. @@ -64,6 +65,7 @@ var ( 15: "Bleed", 16: "Recovery", 17: "BeatBack", + 18: "Diseased", } EffectTipsType_value = map[string]int32{ "Eff_Success": 0, @@ -84,6 +86,7 @@ var ( "Bleed": 15, "Recovery": 16, "BeatBack": 17, + "Diseased": 18, } ) @@ -1948,7 +1951,7 @@ var file_battle_battle_struct_proto_rawDesc = []byte{ 0x56, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x63, 0x75, 0x72, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x26, 0x0a, 0x0e, 0x43, 0x6f, 0x6d, 0x53, 0x77, 0x69, 0x74, 0x63, 0x68, 0x53, 0x63, 0x65, 0x6e, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x73, 0x63, 0x65, 0x6e, 0x65, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x73, 0x63, 0x65, 0x6e, 0x65, 0x2a, 0x9c, 0x02, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x73, 0x63, 0x65, 0x6e, 0x65, 0x2a, 0xaa, 0x02, 0x0a, 0x0e, 0x45, 0x66, 0x66, 0x65, 0x63, 0x74, 0x54, 0x69, 0x70, 0x73, 0x54, 0x79, 0x70, 0x65, 0x12, 0x0f, 0x0a, 0x0b, 0x45, 0x66, 0x66, 0x5f, 0x53, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x10, 0x00, 0x12, 0x0f, 0x0a, 0x0b, 0x4e, 0x6f, 0x74, 0x5f, 0x53, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, @@ -1966,8 +1969,9 @@ var file_battle_battle_struct_proto_rawDesc = []byte{ 0x6e, 0x64, 0x65, 0x61, 0x64, 0x10, 0x0d, 0x12, 0x0c, 0x0a, 0x08, 0x50, 0x6f, 0x69, 0x73, 0x6f, 0x6e, 0x65, 0x64, 0x10, 0x0e, 0x12, 0x09, 0x0a, 0x05, 0x42, 0x6c, 0x65, 0x65, 0x64, 0x10, 0x0f, 0x12, 0x0c, 0x0a, 0x08, 0x52, 0x65, 0x63, 0x6f, 0x76, 0x65, 0x72, 0x79, 0x10, 0x10, 0x12, 0x0c, - 0x0a, 0x08, 0x42, 0x65, 0x61, 0x74, 0x42, 0x61, 0x63, 0x6b, 0x10, 0x11, 0x42, 0x06, 0x5a, 0x04, - 0x2e, 0x3b, 0x70, 0x62, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x0a, 0x08, 0x42, 0x65, 0x61, 0x74, 0x42, 0x61, 0x63, 0x6b, 0x10, 0x11, 0x12, 0x0c, 0x0a, 0x08, + 0x44, 0x69, 0x73, 0x65, 0x61, 0x73, 0x65, 0x64, 0x10, 0x12, 0x42, 0x06, 0x5a, 0x04, 0x2e, 0x3b, + 0x70, 0x62, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( diff --git a/pb/entertain_db.pb.go b/pb/entertain_db.pb.go index c762245e6..b56baf19e 100644 --- a/pb/entertain_db.pb.go +++ b/pb/entertain_db.pb.go @@ -374,7 +374,9 @@ 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"` + 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用 } func (x *DBXXLData) Reset() { @@ -458,6 +460,20 @@ func (x *DBXXLData) GetBox() []*BoxData { return nil } +func (x *DBXXLData) GetRoomid() string { + if x != nil { + return x.Roomid + } + return "" +} + +func (x *DBXXLData) GetServicePath() string { + if x != nil { + return x.ServicePath + } + return "" +} + var File_entertain_entertain_db_proto protoreflect.FileDescriptor var file_entertain_entertain_db_proto_rawDesc = []byte{ @@ -497,7 +513,7 @@ var file_entertain_entertain_db_proto_rawDesc = []byte{ 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, 0xc9, 0x02, 0x0a, 0x09, 0x44, 0x42, 0x58, 0x58, 0x4c, 0x44, + 0x6e, 0x74, 0x69, 0x6d, 0x65, 0x22, 0x83, 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, @@ -510,16 +526,19 @@ var file_entertain_entertain_db_proto_rawDesc = []byte{ 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, 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, 0x42, 0x06, 0x5a, 0x04, 0x2e, 0x3b, 0x70, 0x62, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, - 0x33, + 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, 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, 0x42, 0x06, 0x5a, 0x04, 0x2e, + 0x3b, 0x70, 0x62, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var (