This commit is contained in:
meixiongfeng 2023-10-20 11:11:29 +08:00
parent 41c5ad951a
commit 1ea7fb31bb
8 changed files with 205 additions and 134 deletions

View File

@ -50,14 +50,7 @@ func (this *Entertainment) Start() (err error) {
if err = this.ModuleBase.Start(); err != nil {
return
}
// var s1 comm.IUserSession
// var s2 comm.IUserSession
// this.gameMgr.CreateRoom(s1, s2)
// this.xxl = new(MapData)
// this.xxl.InitMap()
// this.xxl.SwapGirde(1, 0)
// this.xxl.CheckMap()
// this.xxl.DropGirde()
return
}

View File

@ -28,6 +28,7 @@ type Room struct {
power string // 谁的权限
round int32 // 轮数
operatetimer *timewheel.Task //操作倒计时定时器
aiTimer *timewheel.Task //AI操作随机做个延时
}
func (this *Room) operateTimeOut(task *timewheel.Task, args ...interface{}) {
@ -55,7 +56,7 @@ func (this *Room) InitRoom(module *Entertainment, s1 comm.IUserSession, s2 comm.
this.chessboard.InitMap() // 初始化棋盘
this.szSession = append(this.szSession, s1)
if p2.Uid != "" { // 是否是机器人
if p2.Uid != "999" { // 是否是机器人
this.szSession = append(this.szSession, s2)
}
@ -71,6 +72,47 @@ func (this *Room) InitRoom(module *Entertainment, s1 comm.IUserSession, s2 comm.
}
}
// AI 操作了
func (this *Room) AiTimeOut(task *timewheel.Task, args ...interface{}) {
var (
curScore int32
szMap []*pb.MapData
)
this.player2.Ps--
if this.player2.Ps <= 0 { // 权限给下一个人
this.power = this.player1.Uid
this.round++
}
this.player1.Ps = MaxPs
if this.aiTimer != nil {
timewheel.Remove(this.aiTimer)
}
// 交换元素
bSwap := this.chessboard.AiSwapGirde() // 交换格子
if !bSwap {
this.module.Errorf("AiSwapGirde fialed")
}
szMap = append(szMap, &pb.MapData{
Data: this.chessboard.Plat,
})
if score, m := this.chessboard.CheckMap(); score > 0 {
curScore += score
szMap = append(szMap, m...)
}
this.player2.Score += curScore
// 广播消息
if err := this.SendMsgToSession(string(this.module.GetType()), "operatorrst", &pb.EntertainOperatorRstPush{
Mpadata: szMap,
Power: this.power,
Score: curScore,
Round: this.round,
User1: this.player1,
User2: this.player2,
}, this.szSession...); err != nil {
this.Errorln(err)
}
}
func (this *Room) ReceiveMessage(session comm.IUserSession, stype string, msg proto.Message) (errdata *pb.ErrorData) {
switch stype {
case "opertor": // 操作消息
@ -88,10 +130,20 @@ func (this *Room) ReceiveMessage(session comm.IUserSession, stype string, msg pr
this.player1.Ps--
if this.player1.Ps <= 0 { // 权限给下一个人
this.power = this.player2.Uid
if len(this.szSession) == 1 { // 校验2号玩家是不是AI
// 起一个定时器
if this.aiTimer != nil {
timewheel.Remove(this.aiTimer)
}
this.operatetimer = timewheel.Add(time.Second*3, this.AiTimeOut)
}
this.round++
}
this.player2.Ps = MaxPs
} else if this.power == this.player2.Uid {
this.player2.Ps--
if this.player2.Ps <= 0 { // 权限给下一个人
this.power = this.player1.Uid
@ -106,11 +158,11 @@ func (this *Room) ReceiveMessage(session comm.IUserSession, stype string, msg pr
szMap = append(szMap, &pb.MapData{
Data: this.chessboard.Plat,
})
this.chessboard.CheckMap()
if score, m := this.chessboard.DropGirde(); score > 0 {
if score, m := this.chessboard.CheckMap(); score > 0 {
curScore += score
szMap = append(szMap, m...)
}
this.player2.Score += curScore
// 开启新的定时器
if this.operatetimer != nil {
timewheel.Remove(this.operatetimer)
@ -127,6 +179,8 @@ func (this *Room) ReceiveMessage(session comm.IUserSession, stype string, msg pr
Power: this.power,
Score: curScore,
Round: this.round,
User1: this.player1,
User2: this.player2,
}, this.szSession...); err != nil {
this.Errorln(err)
}
@ -152,7 +206,7 @@ func (this *Room) StartGame() (errdata *pb.ErrorData) {
User1: this.player1,
User2: this.player2,
Mpadata: &pb.MapData{
//Data: this.chessboard.Data,
Data: this.chessboard.Plat,
},
Power: this.power,
Round: this.round,
@ -169,7 +223,7 @@ func (this *Room) GameOver() (errdata *pb.ErrorData) {
User1: this.player1,
User2: this.player2,
Mpadata: &pb.MapData{
//Data: this.chessboard.Data,
Data: this.chessboard.Plat,
},
Power: "",
Round: this.round,

View File

@ -80,17 +80,16 @@ func (this *MapData) SwapGirde(oldId, newId int32) bool {
var (
bSwap bool // 能否交换
)
if oldId+1 < Total && oldId+1 == newId ||
oldId%Height > 0 && oldId%Height == newId ||
oldId+Width < Total && oldId+Width == newId ||
oldId-Width > 0 && oldId-Width == newId {
// x = int32(i/Width), y = int32(i%Height)
if (oldId%Height != Total-1 && oldId+1 == newId) ||
(oldId%Height > 0 && oldId-1 == newId) ||
(oldId+Width < Total && oldId+Width == newId) ||
(oldId-Width > 0 && oldId-Width == newId) {
bSwap = true
tmp := new(pb.GirdeData)
*tmp = *this.Plat[newId]
this.Plat[newId] = this.Plat[oldId]
this.Plat[oldId] = tmp
}
this.Debugf()
@ -99,11 +98,11 @@ func (this *MapData) SwapGirde(oldId, newId int32) bool {
func (this *MapData) SetMap() {
sz2 := []int32{
5, 1, 0, 5, 1, 5, 2,
5, 1, 2, 5, 1, 5, 2,
3, 1, 5, 4, 2, 4, 4,
4, 4, 0, 1, 6, 4, 1,
6, 3, 1, 1, 3, 6, 3,
6, 3, 0, 1, 1, 6, 1,
4, 4, 2, 1, 6, 4, 1,
6, 3, 1, 4, 3, 6, 3,
6, 3, 3, 1, 1, 6, 1,
5, 6, 5, 5, 1, 3, 1,
6, 5, 5, 1, 2, 1, 4,
}
@ -266,6 +265,7 @@ func (this *MapData) Check3X() (bEliminate bool, score int32) {
bEliminate = true
}
}
if k+2*Width < Total {
k1 := this.Plat[k].Color
k2 := this.Plat[k+Width].Color
@ -288,59 +288,33 @@ func (this *MapData) Check3X() (bEliminate bool, score int32) {
return
}
// func (this *MapData) CheckSwape(g1, g2 int32) (bEliminate bool) {
// for i := 0; i < Width; i++ {
// for j := 0; j < Height; j++ {
// key := int32(i*10 + j)
// iType := this.GetKeyType(key)
// if iType == 0 {
// continue
// }
// if j+2 < Height {
// k1 := int32((i+1)*10 + j)
// k2 := int32((i+2)*10 + j)
// i1 := this.Data[k1]
// i2 := this.Data[k2]
// if i1.Itype == i2.Itype && i1.Itype == iType {
// if g1 == key || k1 == g1 || k2 == g1 ||
// g2 == key || k1 == g2 || k2 == g2 {
// return true
// }
// }
// }
// if i+2 < Width {
// k1 := int32(i*10 + j + 1)
// k2 := int32(i*10 + j + 2)
// i1 := this.Data[k1]
// i2 := this.Data[k2]
// if i1.Itype == i2.Itype && i1.Itype == iType {
// if g1 == key || k1 == g1 || k2 == g1 ||
// g2 == key || k1 == g2 || k2 == g2 {
// return true
// }
// }
// }
// }
// }
// return
// }
// 校验地图可消除的 判断各组上面2个和右边两个是否三个相等
func (this *MapData) CheckMap() (score int32) {
score = 0
func (this *MapData) CheckMap() (score int32, szMap []*pb.MapData) {
for {
var curScore int32
if bRet, s := this.Check5X(); !bRet {
fmt.Printf("=====检测消除5x===========\n")
score += s
curScore += s
}
if bRet, s := this.Check4X(); !bRet {
fmt.Printf("=====检测消除4x===========\n")
score += s
curScore += s
}
if bRet, s := this.Check3X(); !bRet {
fmt.Printf("=====检测消除3x===========\n")
score += s
curScore += s
}
score += curScore // 总分
if curScore == 0 {
break
}
//szMap = append(szMap, this.DropGirde()...)
this.DropGirde()
szMap = append(szMap, &pb.MapData{
Data: this.Plat,
CurSocre: curScore,
})
}
//this.Debugf()
@ -348,7 +322,7 @@ func (this *MapData) CheckMap() (score int32) {
}
// 下落 生成新的格子 (返回掉落所获得的分数)
func (this *MapData) DropGirde() (score int32, szMap []*pb.MapData) {
func (this *MapData) DropGirde() {
for i := 0; i < Width; i++ {
for j := 0; j < Height; j++ {
@ -376,9 +350,28 @@ func (this *MapData) DropGirde() (score int32, szMap []*pb.MapData) {
}
}
}
szMap = append(szMap, &pb.MapData{
Data: this.Plat,
})
this.Debugf()
return
}
func (this *MapData) AiSwapGirde() bool {
var (
bSwap bool // 能否交换
)
for pos := 0; pos < Total; pos++ {
y := pos % Height
if y < Height-1 {
if this.SwapGirde(int32(pos), int32(pos+1)) {
bSwap = true
break
}
}
if pos/Width+1 < Width {
if this.SwapGirde(int32(pos), int32(pos+1)) {
bSwap = true
break
}
}
}
return bSwap
}

View File

@ -77,7 +77,7 @@ func Test_Main(t *testing.T) {
m.DropGirde()
m.CheckMap()
m.SwapGirde(1, 11)
fmt.Printf("得分:%d\n", m.CheckMap())
//fmt.Printf("得分:%d\n", m.CheckMap())
m.DropGirde()
flag.Parse()

View File

@ -57,7 +57,7 @@ func (this *configureComp) getGameFastDataByType(itype int32) (conf map[int32]*c
defer this.hlock.RUnlock()
if itype == 1 {
conf = this.tyep1
} else if itype == 1 {
} else if itype == 2 {
conf = this.tyep2
}
if conf == nil {

View File

@ -140,14 +140,14 @@ func (this *apiComp) Login(session comm.IUserSession, req *pb.UserLoginReq) (err
go this.module.AsynHandleSession(session.Clone(), func(session comm.IUserSession) {
event.TriggerEvent(comm.EventUserLogin, session)
this.module.ModuleFriend.ResetFriend(user.Uid)
this.module.modelSign.UserSign(session)
this.module.ModuleItems.InitItemBagData(session)
this.module.ModuleHero.CheckPeachReward(session, user.Ctime)
if len(tasks) > 0 {
this.module.ModuleBuried.TriggerBuried(session.Clone(), tasks...)
}
if firstLogin {
this.module.ModuleFriend.ResetFriend(user.Uid)
this.module.modelSign.UserSign(session)
this.module.ModuleHero.CheckPeachReward(session, user.Ctime)
this.module.ModuleItems.InitItemBagData(session)
this.module.ModulePrivilege.CheckDailyPrivilegeMail(session) // 检查月卡每日邮件奖励发放
}
})

View File

@ -27,6 +27,7 @@ type MapData struct {
unknownFields protoimpl.UnknownFields
Data []*GirdeData `protobuf:"bytes,1,rep,name=data,proto3" json:"data"` // 地图数据
CurSocre int32 `protobuf:"varint,2,opt,name=curSocre,proto3" json:"curSocre"` // 本轮得分
}
func (x *MapData) Reset() {
@ -68,6 +69,13 @@ func (x *MapData) GetData() []*GirdeData {
return nil
}
func (x *MapData) GetCurSocre() int32 {
if x != nil {
return x.CurSocre
}
return 0
}
// 消消乐
type GirdeData struct {
state protoimpl.MessageState
@ -231,26 +239,27 @@ var File_entertain_entertain_db_proto protoreflect.FileDescriptor
var file_entertain_entertain_db_proto_rawDesc = []byte{
0x0a, 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, 0x22, 0x29,
0x72, 0x74, 0x61, 0x69, 0x6e, 0x5f, 0x64, 0x62, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x45,
0x0a, 0x07, 0x4d, 0x61, 0x70, 0x44, 0x61, 0x74, 0x61, 0x12, 0x1e, 0x0a, 0x04, 0x64, 0x61, 0x74,
0x61, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0a, 0x2e, 0x47, 0x69, 0x72, 0x64, 0x65, 0x44,
0x61, 0x74, 0x61, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x22, 0x75, 0x0a, 0x09, 0x47, 0x69, 0x72,
0x64, 0x65, 0x44, 0x61, 0x74, 0x61, 0x12, 0x10, 0x0a, 0x03, 0x6f, 0x69, 0x64, 0x18, 0x01, 0x20,
0x01, 0x28, 0x05, 0x52, 0x03, 0x6f, 0x69, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x63, 0x6f, 0x6c, 0x6f,
0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x12, 0x10,
0x0a, 0x03, 0x63, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 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, 0x70, 0x0a, 0x0a, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x44, 0x61, 0x74, 0x61, 0x12, 0x10,
0x0a, 0x03, 0x75, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x75, 0x69, 0x64,
0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04,
0x6e, 0x61, 0x6d, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x18, 0x03, 0x20,
0x01, 0x28, 0x05, 0x52, 0x05, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x70, 0x73,
0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x70, 0x73, 0x12, 0x16, 0x0a, 0x06, 0x63, 0x61,
0x72, 0x64, 0x69, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x63, 0x61, 0x72, 0x64,
0x69, 0x64, 0x42, 0x06, 0x5a, 0x04, 0x2e, 0x3b, 0x70, 0x62, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74,
0x6f, 0x33,
0x61, 0x74, 0x61, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x12, 0x1a, 0x0a, 0x08, 0x63, 0x75, 0x72,
0x53, 0x6f, 0x63, 0x72, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x63, 0x75, 0x72,
0x53, 0x6f, 0x63, 0x72, 0x65, 0x22, 0x75, 0x0a, 0x09, 0x47, 0x69, 0x72, 0x64, 0x65, 0x44, 0x61,
0x74, 0x61, 0x12, 0x10, 0x0a, 0x03, 0x6f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52,
0x03, 0x6f, 0x69, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x18, 0x02, 0x20,
0x01, 0x28, 0x05, 0x52, 0x05, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x12, 0x10, 0x0a, 0x03, 0x63, 0x69,
0x64, 0x18, 0x03, 0x20, 0x01, 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, 0x70, 0x0a, 0x0a,
0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x44, 0x61, 0x74, 0x61, 0x12, 0x10, 0x0a, 0x03, 0x75, 0x69,
0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x75, 0x69, 0x64, 0x12, 0x12, 0x0a, 0x04,
0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65,
0x12, 0x14, 0x0a, 0x05, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52,
0x05, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x70, 0x73, 0x18, 0x04, 0x20, 0x01,
0x28, 0x05, 0x52, 0x02, 0x70, 0x73, 0x12, 0x16, 0x0a, 0x06, 0x63, 0x61, 0x72, 0x64, 0x69, 0x64,
0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x63, 0x61, 0x72, 0x64, 0x69, 0x64, 0x42, 0x06,
0x5a, 0x04, 0x2e, 0x3b, 0x70, 0x62, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
}
var (

View File

@ -445,6 +445,8 @@ type EntertainOperatorRstPush struct {
Power string `protobuf:"bytes,2,opt,name=power,proto3" json:"power"` // 该谁操作了
Score int32 `protobuf:"varint,3,opt,name=score,proto3" json:"score"` // 获得积分
Round int32 `protobuf:"varint,4,opt,name=round,proto3" json:"round"` // 轮数
User1 *PlayerData `protobuf:"bytes,5,opt,name=user1,proto3" json:"user1"` // 玩家数据也需要同步
User2 *PlayerData `protobuf:"bytes,6,opt,name=user2,proto3" json:"user2"`
}
func (x *EntertainOperatorRstPush) Reset() {
@ -507,6 +509,20 @@ func (x *EntertainOperatorRstPush) GetRound() int32 {
return 0
}
func (x *EntertainOperatorRstPush) GetUser1() *PlayerData {
if x != nil {
return x.User1
}
return nil
}
func (x *EntertainOperatorRstPush) GetUser2() *PlayerData {
if x != nil {
return x.User2
}
return nil
}
// 游戏结束推送
type EntertainGameOverPush struct {
state protoimpl.MessageState
@ -632,7 +648,7 @@ var file_entertain_entertain_msg_proto_rawDesc = []byte{
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, 0x80, 0x01, 0x0a, 0x18, 0x45, 0x6e, 0x74, 0x65, 0x72, 0x74, 0x61, 0x69, 0x6e, 0x4f, 0x70,
0x22, 0xc6, 0x01, 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,
@ -640,19 +656,23 @@ var file_entertain_entertain_msg_proto_rawDesc = []byte{
0x52, 0x05, 0x70, 0x6f, 0x77, 0x65, 0x72, 0x12, 0x14, 0x0a, 0x05, 0x73, 0x63, 0x6f, 0x72, 0x65,
0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x12, 0x14, 0x0a,
0x05, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x72, 0x6f,
0x75, 0x6e, 0x64, 0x22, 0xad, 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, 0x42, 0x06, 0x5a, 0x04, 0x2e, 0x3b, 0x70, 0x62, 0x62, 0x06, 0x70, 0x72, 0x6f,
0x74, 0x6f, 0x33,
0x75, 0x6e, 0x64, 0x12, 0x21, 0x0a, 0x05, 0x75, 0x73, 0x65, 0x72, 0x31, 0x18, 0x05, 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,
0x06, 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, 0xad, 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, 0x42, 0x06, 0x5a, 0x04, 0x2e, 0x3b, 0x70,
0x62, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
}
var (
@ -687,14 +707,16 @@ var file_entertain_entertain_msg_proto_depIdxs = []int32{
9, // 2: EntertainStartGamePush.user2:type_name -> PlayerData
10, // 3: EntertainStartGamePush.mpadata:type_name -> MapData
10, // 4: EntertainOperatorRstPush.mpadata:type_name -> MapData
9, // 5: EntertainGameOverPush.user1:type_name -> PlayerData
9, // 6: EntertainGameOverPush.user2:type_name -> PlayerData
10, // 7: EntertainGameOverPush.mpadata:type_name -> MapData
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
9, // 5: EntertainOperatorRstPush.user1:type_name -> PlayerData
9, // 6: EntertainOperatorRstPush.user2:type_name -> PlayerData
9, // 7: EntertainGameOverPush.user1:type_name -> PlayerData
9, // 8: EntertainGameOverPush.user2:type_name -> PlayerData
10, // 9: EntertainGameOverPush.mpadata:type_name -> MapData
10, // [10:10] is the sub-list for method output_type
10, // [10:10] is the sub-list for method input_type
10, // [10:10] is the sub-list for extension type_name
10, // [10:10] is the sub-list for extension extendee
0, // [0:10] is the sub-list for field type_name
}
func init() { file_entertain_entertain_msg_proto_init() }