diff --git a/bin/json/game_playingmethod.json b/bin/json/game_playingmethod.json index 0a6ac999d..f86cfc57c 100644 --- a/bin/json/game_playingmethod.json +++ b/bin/json/game_playingmethod.json @@ -15,22 +15,6 @@ "detail": 1, "weight": 0 }, - { - "key": 2, - "open": 999999, - "icon": "", - "name": { - "key": "consume_consume_playingmethod_name_02", - "text": "3分模式" - }, - "txt": { - "key": "consume_consume_playingmethod_txt_02", - "text": "额外新增3分方块,独立于普通6色方块之外,消除后可以获得3分。" - }, - "type": 2, - "detail": 1, - "weight": 2000 - }, { "key": 3, "open": 999999, @@ -62,53 +46,5 @@ "type": 2, "detail": 1, "weight": 2000 - }, - { - "key": 5, - "open": 999999, - "icon": "", - "name": { - "key": "consume_consume_playingmethod_name_05", - "text": "锣鼓喧天" - }, - "txt": { - "key": "consume_consume_playingmethod_txt_05", - "text": "中央格子被改造为锣鼓,消除锣鼓内的方块会获得额外积分,每次操作如果没有触发锣鼓内的方块消除,积分可以被累计。" - }, - "type": 2, - "detail": 2, - "weight": 2000 - }, - { - "key": 6, - "open": 999999, - "icon": "", - "name": { - "key": "consume_consume_playingmethod_name_06", - "text": "电闪雷鸣" - }, - "txt": { - "key": "consume_consume_playingmethod_txt_06", - "text": "每名玩家行动开始会随机生成2个雷电格子,消除雷电格子内的方块会获得一次行动步骤。" - }, - "type": 2, - "detail": 2, - "weight": 2000 - }, - { - "key": 7, - "open": 999999, - "icon": "", - "name": { - "key": "consume_consume_playingmethod_name_07", - "text": "飞天舞女" - }, - "txt": { - "key": "consume_consume_playingmethod_txt_07", - "text": "每名玩家行动开始会随机生成2个飞天舞女格子,消除飞天舞女格子内的方块会消除周围所有方块。" - }, - "type": 2, - "detail": 2, - "weight": 2000 } ] \ No newline at end of file diff --git a/bin/json/game_tdmonster.json b/bin/json/game_tdmonster.json index 7a7d9050b..7e5564edc 100644 --- a/bin/json/game_tdmonster.json +++ b/bin/json/game_tdmonster.json @@ -6,8 +6,11 @@ "text": "豚鼠灵农民" }, "monster_skillid": 0, + "monster_type": 0, "model": "Spine/dalong.prefab", "multiple": 1, + "width": 1, + "height": 1, "hp": 100, "dis": 1, "atk": 1, @@ -22,8 +25,11 @@ "text": "豚鼠灵冲车" }, "monster_skillid": 0, + "monster_type": 0, "model": "Spine/dalong.prefab", "multiple": 1, + "width": 1, + "height": 1, "hp": 500, "dis": 1, "atk": 3, @@ -38,8 +44,11 @@ "text": "豚鼠灵敢死队" }, "monster_skillid": 2011, + "monster_type": 0, "model": "Spine/dalong.prefab", "multiple": 1, + "width": 1, + "height": 1.5, "hp": 70, "dis": 1, "atk": 1, @@ -54,8 +63,11 @@ "text": "豚鼠灵牧师" }, "monster_skillid": 2021, + "monster_type": 0, "model": "Spine/dalong.prefab", "multiple": 1, + "width": 1, + "height": 1.5, "hp": 100, "dis": 10, "atk": 1, @@ -70,8 +82,11 @@ "text": "豚鼠灵高阶牧师" }, "monster_skillid": 2022, + "monster_type": 0, "model": "Spine/dalong.prefab", "multiple": 1, + "width": 1, + "height": 2, "hp": 200, "dis": 10, "atk": 1, @@ -86,8 +101,11 @@ "text": "豚鼠灵骑士" }, "monster_skillid": 2031, + "monster_type": 0, "model": "Spine/dalong.prefab", "multiple": 1, + "width": 1, + "height": 2, "hp": 300, "dis": 1, "atk": 1, @@ -102,8 +120,11 @@ "text": "变异的巨型豚鼠" }, "monster_skillid": 3011, + "monster_type": 1, "model": "Spine/dalong.prefab", "multiple": 1, + "width": 3, + "height": 3, "hp": 3000, "dis": 1, "atk": 2, diff --git a/modules/entertainment/gamemgr.go b/modules/entertainment/gamemgr.go index b2a94451a..70fa38f43 100644 --- a/modules/entertainment/gamemgr.go +++ b/modules/entertainment/gamemgr.go @@ -31,13 +31,16 @@ func (this *gameMgrComp) Init(service core.IService, module core.IModule, comp c // 通过房间ID 加入房间 func (this *gameMgrComp) JoinMasterRoom(roomid string, p *pb.PlayerData) (room *Room, err error) { - + var ( + ok bool + ) this.lock.Lock() - if _, ok := this.rooms[roomid]; ok { + room, ok = this.rooms[roomid] + if ok { + room, err = room.JoinRoom(this.module, p) + } else { err = errors.New("房间不存在") - return } - room, err = this.rooms[roomid].JoinRoom(this.module, p) this.lock.Unlock() return } diff --git a/modules/entertainment/room.go b/modules/entertainment/room.go index ec1ffa167..76958e735 100644 --- a/modules/entertainment/room.go +++ b/modules/entertainment/room.go @@ -5,7 +5,6 @@ import ( "fmt" "go_dreamfactory/comm" "go_dreamfactory/lego/sys/timewheel" - "go_dreamfactory/modules" "go_dreamfactory/pb" cfg "go_dreamfactory/sys/configure/structs" "time" @@ -22,7 +21,6 @@ const ( //游戏房间 type Room struct { - modules.ModuleBase Id string // 房间id szSession []comm.IUserSession player1 *pb.PlayerData // 玩家1 @@ -37,7 +35,7 @@ type Room struct { rd1 bool // 玩家1 是否准备 rd2 bool // 玩家2 是否准备 Status int32 //房间游戏状态 0未开始 1 已开始 2 已结束 - bCreate bool // 是否是创建的房间 + RoomType int32 // 房间类型 1 是好友创房 } func (this *Room) operateTimeOut(task *timewheel.Task, args ...interface{}) { @@ -78,7 +76,7 @@ func (this *Room) operateTimeOut(task *timewheel.Task, args ...interface{}) { Curid: 0, Targetid: 0, }, this.szSession...); err != nil { - this.Errorln(err) + this.module.Errorln(err) } // 变更权限 this.curPower = this.NexPower @@ -111,9 +109,7 @@ func (this *Room) InitRoom(module *Entertainment, p1 *pb.PlayerData, p2 *pb.Play } } this.MaxRound = module.ModuleTools.GetGlobalConf().ConsumeRounds - room = &Room{ - ModuleBase: modules.ModuleBase{}, Id: primitive.NewObjectID().Hex(), szSession: this.szSession, player1: p1, @@ -131,7 +127,7 @@ func (this *Room) InitRoom(module *Entertainment, p1 *pb.PlayerData, p2 *pb.Play User1: room.player1, User2: room.player2, }, this.szSession...); err != nil { - this.Errorln(err) + this.module.Errorln(err) } return room } @@ -182,7 +178,7 @@ func (this *Room) AiOperator() { Curid: oid1, Targetid: oid2, }, this.szSession...); err != nil { - this.Errorln(err) + this.module.Errorln(err) } if this.round > this.MaxRound { // 游戏结束 @@ -303,7 +299,7 @@ func (this *Room) ReceiveMessage(session comm.IUserSession, stype string, msg pr Curid: oid1, Targetid: oid2, }, this.szSession...); err != nil { - this.Errorln(err) + this.module.Errorln(err) } return } @@ -396,7 +392,7 @@ func (this *Room) ReceiveMessage(session comm.IUserSession, stype string, msg pr Curid: oid1, Targetid: oid2, }, this.szSession...); err != nil { - this.Errorln(err) + this.module.Errorln(err) } if this.round > this.MaxRound { // 游戏结束 if this.player1.Score == this.player2.Score { @@ -425,7 +421,14 @@ func (this *Room) ReceiveMessage(session comm.IUserSession, stype string, msg pr } else if this.player2.Userinfo.Uid == session.GetUserId() { this.rd2 = true } - this.module.Debugf("match user1ready:%v,ready2:%v", this.rd1, this.rd2) + if this.player1.Userinfo.Uid != session.GetUserId() || this.RoomType != 1 { // 房主 + if err := this.module.SendMsgSyncToSession(string(this.module.GetType()), "gameready", &pb.EntertainGameReadyPush{ + P1Ready: this.rd1, + P2Ready: this.rd2, + }, this.szSession...); err != nil { + this.module.Errorln(err) + } + } if this.rd1 && this.rd2 { // 两个玩家都准备好了 那么就开始游戏 bStartGame = true } @@ -440,7 +443,7 @@ func (this *Room) ReceiveMessage(session comm.IUserSession, stype string, msg pr this.Status = 1 this.round = 1 - this.MaxRound = this.module.ModuleTools.GetGlobalConf().ConsumeRounds + if err := this.module.SendMsgSyncToSession(string(this.module.GetType()), "startgame", &pb.EntertainStartGamePush{ User1: this.player1, User2: this.player2, @@ -450,7 +453,7 @@ func (this *Room) ReceiveMessage(session comm.IUserSession, stype string, msg pr Roomid: this.Id, // 房间ID Playtype: list[comm.GetRandW(weight)].Key, // 通过权重随机一个玩法 }, this.szSession...); err != nil { - this.Errorln(err) + this.module.Errorln(err) } this.operatetimer = timewheel.Add(time.Second*MaxTime, this.operateTimeOut) } @@ -470,10 +473,26 @@ func (this *Room) ReceiveMessage(session comm.IUserSession, stype string, msg pr User2: this.player2, }) case "dissolve": // 房主解散房间 + req := msg.(*pb.EntertainDissolveRoomReq) + if this.player1.Userinfo.Uid != req.Roomid { + errdata = &pb.ErrorData{ + Code: pb.ErrorCode_EntertainNotMaster, // 不是房主 + Title: pb.ErrorCode_EntertainNotMaster.ToString(), + } + return + } + // 游戏中不允许解散 + if this.Status == 1 { + errdata = &pb.ErrorData{ + Code: pb.ErrorCode_EntertainDissolveFailed, // 游戏中不能解散 + Title: pb.ErrorCode_EntertainDissolveFailed.ToString(), + } + return + } if err := this.module.SendMsgSyncToSession(string(this.module.GetType()), "dissolvemasterroom", &pb.EntertainDissolveMasterRoomPush{ Roomid: this.Id, }, this.szSession...); err != nil { - this.Errorln(err) + this.module.Errorln(err) } } @@ -566,6 +585,9 @@ func (this *Room) JoinRoom(module *Entertainment, p *pb.PlayerData) (room *Room, this.szSession = append(this.szSession, s1.Clone()) } this.Id = p.Userinfo.Uid // 房主ID 作为房间id + this.RoomType = 1 + this.MaxRound = this.module.ModuleTools.GetGlobalConf().ConsumeRounds + room = this } else if this.player2 == nil { //异常处理 if this.player1.Userinfo.Uid == p.Userinfo.Uid { @@ -580,10 +602,10 @@ func (this *Room) JoinRoom(module *Entertainment, p *pb.PlayerData) (room *Room, // 推送消息 if err := this.module.SendMsgSyncToSession(string(this.module.GetType()), "joincreateroom", &pb.EntertainJoinCreateRoomPush{ Roomid: this.Id, - User1: room.player1, - User2: room.player2, + User1: this.player1, + User2: this.player2, }, this.szSession...); err != nil { - this.Errorln(err) + this.module.Errorln(err) } } else { // 房间满了 加不进来 err = errors.New("房间已满") diff --git a/pb/entertain_msg.pb.go b/pb/entertain_msg.pb.go index c37e6e427..3b0e8ede8 100644 --- a/pb/entertain_msg.pb.go +++ b/pb/entertain_msg.pb.go @@ -1823,6 +1823,62 @@ func (x *EntertainDissolveMasterRoomPush) GetRoomid() string { return "" } +// 玩家准备状态推送 +type EntertainGameReadyPush struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + P1Ready bool `protobuf:"varint,1,opt,name=p1ready,proto3" json:"p1ready"` // 玩家1是否准备 + P2Ready bool `protobuf:"varint,2,opt,name=p2ready,proto3" json:"p2ready"` // 玩家2是否准备 +} + +func (x *EntertainGameReadyPush) Reset() { + *x = EntertainGameReadyPush{} + if protoimpl.UnsafeEnabled { + mi := &file_entertain_entertain_msg_proto_msgTypes[32] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *EntertainGameReadyPush) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*EntertainGameReadyPush) ProtoMessage() {} + +func (x *EntertainGameReadyPush) ProtoReflect() protoreflect.Message { + mi := &file_entertain_entertain_msg_proto_msgTypes[32] + 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 EntertainGameReadyPush.ProtoReflect.Descriptor instead. +func (*EntertainGameReadyPush) Descriptor() ([]byte, []int) { + return file_entertain_entertain_msg_proto_rawDescGZIP(), []int{32} +} + +func (x *EntertainGameReadyPush) GetP1Ready() bool { + if x != nil { + return x.P1Ready + } + return false +} + +func (x *EntertainGameReadyPush) GetP2Ready() bool { + if x != nil { + return x.P2Ready + } + return false +} + var File_entertain_entertain_msg_proto protoreflect.FileDescriptor var file_entertain_entertain_msg_proto_rawDesc = []byte{ @@ -2002,8 +2058,12 @@ var file_entertain_entertain_msg_proto_rawDesc = []byte{ 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, 0x42, 0x06, 0x5a, 0x04, 0x2e, 0x3b, 0x70, 0x62, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, - 0x6f, 0x33, + 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, + 0x42, 0x06, 0x5a, 0x04, 0x2e, 0x3b, 0x70, 0x62, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( @@ -2018,7 +2078,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, 33) +var file_entertain_entertain_msg_proto_msgTypes = make([]protoimpl.MessageInfo, 34) var file_entertain_entertain_msg_proto_goTypes = []interface{}{ (*EntertainMatchReq)(nil), // 0: EntertainMatchReq (*EntertainMatchResp)(nil), // 1: EntertainMatchResp @@ -2052,36 +2112,37 @@ var file_entertain_entertain_msg_proto_goTypes = []interface{}{ (*EntertainDissolveRoomReq)(nil), // 29: EntertainDissolveRoomReq (*EntertainDissolveRoomResp)(nil), // 30: EntertainDissolveRoomResp (*EntertainDissolveMasterRoomPush)(nil), // 31: EntertainDissolveMasterRoomPush - nil, // 32: EntertainChangePush.CardEntry - (*PlayerData)(nil), // 33: PlayerData - (*MapData)(nil), // 34: MapData - (*UserAtno)(nil), // 35: UserAtno - (*DBXXLData)(nil), // 36: DBXXLData + (*EntertainGameReadyPush)(nil), // 32: EntertainGameReadyPush + nil, // 33: EntertainChangePush.CardEntry + (*PlayerData)(nil), // 34: PlayerData + (*MapData)(nil), // 35: MapData + (*UserAtno)(nil), // 36: UserAtno + (*DBXXLData)(nil), // 37: DBXXLData } var file_entertain_entertain_msg_proto_depIdxs = []int32{ - 33, // 0: EntertainStartGamePush.user1:type_name -> PlayerData - 33, // 1: EntertainStartGamePush.user2:type_name -> PlayerData - 34, // 2: EntertainStartGamePush.mpadata:type_name -> MapData - 34, // 3: EntertainOperatorRstPush.mpadata:type_name -> MapData - 33, // 4: EntertainOperatorRstPush.user1:type_name -> PlayerData - 33, // 5: EntertainOperatorRstPush.user2:type_name -> PlayerData - 33, // 6: EntertainGameOverPush.user1:type_name -> PlayerData - 33, // 7: EntertainGameOverPush.user2:type_name -> PlayerData - 34, // 8: EntertainGameOverPush.mpadata:type_name -> MapData - 35, // 9: EntertainGameOverPush.reward:type_name -> UserAtno - 33, // 10: EntertainEnterRoomPush.user1:type_name -> PlayerData - 33, // 11: EntertainEnterRoomPush.user2:type_name -> PlayerData - 34, // 12: EntertainReconnectResp.mpadata:type_name -> MapData - 33, // 13: EntertainReconnectResp.user1:type_name -> PlayerData - 33, // 14: EntertainReconnectResp.user2:type_name -> PlayerData - 34, // 15: EntertainRefreshPlatResp.mpadata:type_name -> MapData - 34, // 16: EntertainRefreshPush.mpadata:type_name -> MapData - 36, // 17: EntertainGetListResp.data:type_name -> DBXXLData - 36, // 18: EntertainRewardResp.data:type_name -> DBXXLData - 35, // 19: EntertainRewardResp.reward:type_name -> UserAtno - 32, // 20: EntertainChangePush.card:type_name -> EntertainChangePush.CardEntry - 33, // 21: EntertainJoinCreateRoomPush.user1:type_name -> PlayerData - 33, // 22: EntertainJoinCreateRoomPush.user2:type_name -> PlayerData + 34, // 0: EntertainStartGamePush.user1:type_name -> PlayerData + 34, // 1: EntertainStartGamePush.user2:type_name -> PlayerData + 35, // 2: EntertainStartGamePush.mpadata:type_name -> MapData + 35, // 3: EntertainOperatorRstPush.mpadata:type_name -> MapData + 34, // 4: EntertainOperatorRstPush.user1:type_name -> PlayerData + 34, // 5: EntertainOperatorRstPush.user2:type_name -> PlayerData + 34, // 6: EntertainGameOverPush.user1:type_name -> PlayerData + 34, // 7: EntertainGameOverPush.user2:type_name -> PlayerData + 35, // 8: EntertainGameOverPush.mpadata:type_name -> MapData + 36, // 9: EntertainGameOverPush.reward:type_name -> UserAtno + 34, // 10: EntertainEnterRoomPush.user1:type_name -> PlayerData + 34, // 11: EntertainEnterRoomPush.user2:type_name -> PlayerData + 35, // 12: EntertainReconnectResp.mpadata:type_name -> MapData + 34, // 13: EntertainReconnectResp.user1:type_name -> PlayerData + 34, // 14: EntertainReconnectResp.user2:type_name -> PlayerData + 35, // 15: EntertainRefreshPlatResp.mpadata:type_name -> MapData + 35, // 16: EntertainRefreshPush.mpadata:type_name -> MapData + 37, // 17: EntertainGetListResp.data:type_name -> DBXXLData + 37, // 18: EntertainRewardResp.data:type_name -> DBXXLData + 36, // 19: EntertainRewardResp.reward:type_name -> UserAtno + 33, // 20: EntertainChangePush.card:type_name -> EntertainChangePush.CardEntry + 34, // 21: EntertainJoinCreateRoomPush.user1:type_name -> PlayerData + 34, // 22: EntertainJoinCreateRoomPush.user2:type_name -> PlayerData 23, // [23:23] is the sub-list for method output_type 23, // [23:23] is the sub-list for method input_type 23, // [23:23] is the sub-list for extension type_name @@ -2481,6 +2542,18 @@ func file_entertain_entertain_msg_proto_init() { return nil } } + file_entertain_entertain_msg_proto_msgTypes[32].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*EntertainGameReadyPush); 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{ @@ -2488,7 +2561,7 @@ func file_entertain_entertain_msg_proto_init() { GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: file_entertain_entertain_msg_proto_rawDesc, NumEnums: 0, - NumMessages: 33, + NumMessages: 34, NumExtensions: 0, NumServices: 0, }, diff --git a/pb/errorcode.pb.go b/pb/errorcode.pb.go index 3cc651a4d..d0c38af20 100644 --- a/pb/errorcode.pb.go +++ b/pb/errorcode.pb.go @@ -451,12 +451,14 @@ 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_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 // 游戏中不允许解散 ) // Enum value maps for ErrorCode. @@ -851,6 +853,8 @@ var ( 5204: "EntertainNoEnergy", 5205: "EntertainCreateFailed", 5206: "EntertainPlayerNoReady", + 5207: "EntertainNotMaster", + 5208: "EntertainDissolveFailed", } ErrorCode_value = map[string]int32{ "Success": 0, @@ -1242,6 +1246,8 @@ var ( "EntertainNoEnergy": 5204, "EntertainCreateFailed": 5205, "EntertainPlayerNoReady": 5206, + "EntertainNotMaster": 5207, + "EntertainDissolveFailed": 5208, } ) @@ -1276,7 +1282,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, 0x9d, 0x48, 0x0a, 0x09, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x43, 0x6f, 0x64, 0x65, 0x12, + 0x6f, 0x2a, 0xd4, 0x48, 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, @@ -1854,8 +1860,11 @@ var file_errorcode_proto_rawDesc = []byte{ 0x72, 0x74, 0x61, 0x69, 0x6e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x46, 0x61, 0x69, 0x6c, 0x65, 0x64, 0x10, 0xd5, 0x28, 0x12, 0x1b, 0x0a, 0x16, 0x45, 0x6e, 0x74, 0x65, 0x72, 0x74, 0x61, 0x69, 0x6e, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x4e, 0x6f, 0x52, 0x65, 0x61, 0x64, 0x79, 0x10, 0xd6, - 0x28, 0x42, 0x06, 0x5a, 0x04, 0x2e, 0x3b, 0x70, 0x62, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, - 0x33, + 0x28, 0x12, 0x17, 0x0a, 0x12, 0x45, 0x6e, 0x74, 0x65, 0x72, 0x74, 0x61, 0x69, 0x6e, 0x4e, 0x6f, + 0x74, 0x4d, 0x61, 0x73, 0x74, 0x65, 0x72, 0x10, 0xd7, 0x28, 0x12, 0x1c, 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, 0x42, 0x06, 0x5a, 0x04, 0x2e, 0x3b, 0x70, 0x62, + 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( diff --git a/sys/configure/structs/Game.TDMonsterData.go b/sys/configure/structs/Game.TDMonsterData.go index abf765321..2a7ecb835 100644 --- a/sys/configure/structs/Game.TDMonsterData.go +++ b/sys/configure/structs/Game.TDMonsterData.go @@ -14,8 +14,11 @@ type GameTDMonsterData struct { NpcId int32 Name string MonsterSkillid int32 + MonsterType int32 Model string Multiple int32 + Width float32 + Height float32 Hp int32 Dis int32 Atk int32 @@ -34,8 +37,11 @@ func (_v *GameTDMonsterData)Deserialize(_buf map[string]interface{}) (err error) { var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["npc_id"].(float64); !_ok_ { err = errors.New("npc_id error"); return }; _v.NpcId = 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 _tempNum_ float64; if _tempNum_, _ok_ = _buf["monster_skillid"].(float64); !_ok_ { err = errors.New("monster_skillid error"); return }; _v.MonsterSkillid = int32(_tempNum_) } + { var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["monster_type"].(float64); !_ok_ { err = errors.New("monster_type error"); return }; _v.MonsterType = int32(_tempNum_) } { var _ok_ bool; if _v.Model, _ok_ = _buf["model"].(string); !_ok_ { err = errors.New("model error"); return } } { var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["multiple"].(float64); !_ok_ { err = errors.New("multiple error"); return }; _v.Multiple = int32(_tempNum_) } + { var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["width"].(float64); !_ok_ { err = errors.New("width error"); return }; _v.Width = float32(_tempNum_) } + { var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["height"].(float64); !_ok_ { err = errors.New("height error"); return }; _v.Height = float32(_tempNum_) } { var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["hp"].(float64); !_ok_ { err = errors.New("hp error"); return }; _v.Hp = int32(_tempNum_) } { var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["dis"].(float64); !_ok_ { err = errors.New("dis error"); return }; _v.Dis = int32(_tempNum_) } { var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["atk"].(float64); !_ok_ { err = errors.New("atk error"); return }; _v.Atk = int32(_tempNum_) }