From 87c715cb84022cdea1c5551b8ee226b37c82921e Mon Sep 17 00:00:00 2001 From: hahwu <31872165+hahwu@users.noreply.github.com> Date: Wed, 23 Jul 2025 15:46:18 +0800 Subject: [PATCH 01/17] =?UTF-8?q?=E4=BF=AE=E5=A4=8Dplayroom=E8=BD=AC?= =?UTF-8?q?=E7=9B=98bug?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/server/game/mod/playroom/playroom.go | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/src/server/game/mod/playroom/playroom.go b/src/server/game/mod/playroom/playroom.go index 06d66333..4f7078bf 100644 --- a/src/server/game/mod/playroom/playroom.go +++ b/src/server/game/mod/playroom/playroom.go @@ -580,7 +580,12 @@ func (p *PlayroomMod) Draw() (int, []*item.Item, error) { p.AllMood = 0 ProbList := limitedTimeEventCfg.GetSenceJackpotProb() Id := GoUtil.RandMap(ProbList) - return Id, limitedTimeEventCfg.GetSenceJackpotReward(Id), nil + Items := limitedTimeEventCfg.GetSenceJackpotReward(Id) + if len(Items) > 1 { + // 多个奖励时,随机选择一个 + Items = []*item.Item{GoUtil.RandItem(Items)} + } + return Id, Items, nil } func (p *PlayroomMod) NotifyWork() *msg.NotifyPlayroomWork { From bab980b508561b9acdf70fc2c8506be4295da02b Mon Sep 17 00:00:00 2001 From: hahwu <31872165+hahwu@users.noreply.github.com> Date: Wed, 23 Jul 2025 16:16:28 +0800 Subject: [PATCH 02/17] =?UTF-8?q?playroom=E8=A3=85=E6=89=AE=E4=BB=BB?= =?UTF-8?q?=E5=8A=A1=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/server/game/mod/playroom/playroom.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/server/game/mod/playroom/playroom.go b/src/server/game/mod/playroom/playroom.go index 4f7078bf..2b71ae9f 100644 --- a/src/server/game/mod/playroom/playroom.go +++ b/src/server/game/mod/playroom/playroom.go @@ -803,7 +803,7 @@ func (p *PlayroomMod) PlayroomDressSet(DressSet map[int]int) ([]int, error) { if !GoUtil.InArray(Id, dresses) { return nil, fmt.Errorf("dress not found") } - if p.DressSet[Type] != Id { + if p.DressSet[Type] == 0 && Id != 0 { Part = append(Part, Type) } } From 7c23a004c0851c921ae04f2dfd6a7cd73d28ea27 Mon Sep 17 00:00:00 2001 From: hahwu <31872165+hahwu@users.noreply.github.com> Date: Wed, 23 Jul 2025 16:44:29 +0800 Subject: [PATCH 03/17] =?UTF-8?q?=E4=BF=AE=E5=A4=8Dplayroom=E6=99=AE?= =?UTF-8?q?=E9=80=9A=E5=A5=96=E5=8A=B1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/server/game/PlayerFunc.go | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) diff --git a/src/server/game/PlayerFunc.go b/src/server/game/PlayerFunc.go index 04603abb..fe327d9d 100644 --- a/src/server/game/PlayerFunc.go +++ b/src/server/game/PlayerFunc.go @@ -1115,15 +1115,14 @@ func (p *Player) GetPlayroomGameReward(Type, SelectId int) []*item.Item { BaseMod := p.PlayMod.getBaseMod() Level := BaseMod.GetLevel() Items := make([]*item.Item, 0) - if Type == playroom.GAME_RESULT_LOSE { + switch Type { + case playroom.GAME_RESULT_LOSE: Items = append(Items, item.NewItem(item.ITEM_STAR_ID, 20)) - } - if Type == playroom.GAME_RESULT_LOW { + case playroom.GAME_RESULT_LOW: Items = append(Items, item.NewItem(item.ITEM_STAR_ID, Level*2)) - } - if Type == playroom.GAME_RESULT_MIDDLE { + case playroom.GAME_RESULT_MIDDLE: Items = append(Items, item.NewItem(item.ITEM_STAR_ID, Level*3)) - } else { + default: Items = PlayroomMod.SelectReward(SelectId) } return Items From 9cf0b15ec396e43701c6887d3edfbc3872414455 Mon Sep 17 00:00:00 2001 From: hahwu <31872165+hahwu@users.noreply.github.com> Date: Wed, 23 Jul 2025 16:53:37 +0800 Subject: [PATCH 04/17] =?UTF-8?q?=E4=BF=AE=E5=A4=8Dplayroom=E8=BD=AC?= =?UTF-8?q?=E7=9B=98bug?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/server/game/mod/playroom/playroom.go | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/server/game/mod/playroom/playroom.go b/src/server/game/mod/playroom/playroom.go index 2b71ae9f..22a4965c 100644 --- a/src/server/game/mod/playroom/playroom.go +++ b/src/server/game/mod/playroom/playroom.go @@ -565,7 +565,10 @@ func (p *PlayroomMod) GetTaskReward(Type int) (int, []*item.Item, error) { Id = GoUtil.RandMap(ProbList) Items = playroomCfg.GetTaskJackpotReward(Id) } - + if len(Items) > 1 { + // 多个奖励时,随机选择一个 + Items = []*item.Item{GoUtil.RandItem(Items)} + } return Id, Items, nil } From de62790ff4a6874e512fdbe1435db8a85de1a041 Mon Sep 17 00:00:00 2001 From: hahwu <31872165+hahwu@users.noreply.github.com> Date: Wed, 23 Jul 2025 17:37:09 +0800 Subject: [PATCH 05/17] =?UTF-8?q?playroombug=E4=BF=AE=E5=A4=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/server/game/Player.go | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/server/game/Player.go b/src/server/game/Player.go index 9675d178..333c6542 100644 --- a/src/server/game/Player.go +++ b/src/server/game/Player.go @@ -668,10 +668,12 @@ func (p *Player) HandleItem(itemList []*item.Item, Label string) error { Effect := itemCfg.GetItemEffect(v.Id) PlayroomMod := p.PlayMod.getPlayroomMod() PlayroomMod.AddCollect(Effect) + BackDataType[item.ITEM_TYPE_PLAYROOM_DECORATION] = struct{}{} case item.ITEM_TYPE_PLAYROOM_DRESS: // playroom服饰 Effect := itemCfg.GetItemEffect(v.Id) PlayroomMod := p.PlayMod.getPlayroomMod() PlayroomMod.AddDress(Effect) + BackDataType[item.ITEM_TYPE_PLAYROOM_DRESS] = struct{}{} case item.ITEM_TYPE_PLAYROOM_DECORATION_SET: // playroom装饰套装 Effect := itemCfg.GetItemEffectList(v.Id) PlayroomMod := p.PlayMod.getPlayroomMod() @@ -681,6 +683,7 @@ func (p *Player) HandleItem(itemList []*item.Item, Label string) error { } PlayroomMod.AddCollect(v) } + BackDataType[item.ITEM_TYPE_PLAYROOM_DECORATION_SET] = struct{}{} p.TeLog("playroom_decoration_set", map[string]interface{}{ "decoration_set_id": Effect, "income_from": Label, From d836d785b4fc4947f76ab3cde36712526debf9fe Mon Sep 17 00:00:00 2001 From: hahwu <31872165+hahwu@users.noreply.github.com> Date: Thu, 24 Jul 2025 12:08:49 +0800 Subject: [PATCH 06/17] =?UTF-8?q?=E7=8C=AB=E8=8D=89=E5=A4=A7=E4=BD=9C?= =?UTF-8?q?=E6=88=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/server/conf/catnip/CatnipCfg.go | 87 +++++++++++++- src/server/game/PlayerFunc.go | 22 +++- src/server/game/PlayerMsg.go | 23 ++++ src/server/game/RegisterNetworkFunc.go | 35 +++++- src/server/game/Type.go | 1 + src/server/game/mod/catnip/Catnip.go | 153 ++++++++++++++----------- src/server/msg/Gameapi.pb.go | 9 +- 7 files changed, 250 insertions(+), 80 deletions(-) create mode 100644 src/server/game/PlayerMsg.go diff --git a/src/server/conf/catnip/CatnipCfg.go b/src/server/conf/catnip/CatnipCfg.go index df66ca03..7d44a585 100644 --- a/src/server/conf/catnip/CatnipCfg.go +++ b/src/server/conf/catnip/CatnipCfg.go @@ -1,6 +1,10 @@ package catnipCfg -import "server/gamedata" +import ( + "server/GoUtil" + "server/game/mod/item" + "server/gamedata" +) const ( CATNIP_TEMPLATE_CFG_NAME = "CatnipTemplate" @@ -9,6 +13,12 @@ const ( CATNIP_GAME_CFG_NAME = "CatnipGame" ) +const ( + CATNIP_REWARD_TYPE_LOW = 1 + CATNIP_REWARD_TYPE_MID = 2 + CATNIP_REWARD_TYPE_HIGH = 3 +) + func init() { gamedata.InitCfg(CATNIP_TEMPLATE_CFG_NAME) gamedata.InitCfg(CATNIP_JACKPOT_CFG_NAME) @@ -23,3 +33,78 @@ func GetGameNum(Id int) int { } return gamedata.GetIntValue(data, "PassNum") } + +func GetJackpotItem(Mul int) (int, []*item.Item, int) { + data, err := gamedata.GetData(CATNIP_JACKPOT_CFG_NAME) + if err != nil { + return 0, nil, 0 + } + JackpotType := GetJackpotType(Mul) + r := make(map[int]int) + for k, v := range data { + if gamedata.GetIntValue(v, "Type") == JackpotType { + r[GoUtil.Int(k)] = 1 + } + } + Id := GoUtil.RandMap(r) + if Id == 0 { + return 0, nil, 0 + } + itemData, err := gamedata.GetDataByIntKey(CATNIP_JACKPOT_CFG_NAME, Id) + if err != nil { + return 0, nil, 0 + } + return Id, gamedata.GetItemList(itemData, "Items"), gamedata.GetIntValue(itemData, "Growth") +} + +func GetJackpotType(Mul int) int { + data, err := gamedata.GetDataByIntKey(CATNIP_MULTIPLIER_CFG_NAME, Mul) + if err != nil { + return 0 + } + R := map[int]int{ + CATNIP_REWARD_TYPE_LOW: gamedata.GetIntValue(data, "Low"), + CATNIP_REWARD_TYPE_MID: gamedata.GetIntValue(data, "Mid"), + CATNIP_REWARD_TYPE_HIGH: gamedata.GetIntValue(data, "High"), + } + return GoUtil.RandMap(R) +} + +func GetTemplateId(Id int) int { + data, err := gamedata.GetDataByIntKey(CATNIP_TEMPLATE_CFG_NAME, Id) + if err != nil { + return 0 + } + return gamedata.GetIntValue(data, "Template") +} + +func GetProgressReward(Id int, Progress int) []*item.Item { + TemplateId := GetTemplateId(Id) + data, err := gamedata.GetDataByIntKey(CATNIP_GAME_CFG_NAME, Id) + if err != nil { + return nil + } + + for _, v := range data { + if gamedata.GetIntValue(v, "Need") == Progress && gamedata.GetIntValue(v, "Template") == TemplateId { + return gamedata.GetItemList(v, "Items") + } + } + return nil +} + +func GetItemCost(Id, Mul int) []*item.Item { + data, err := gamedata.GetDataByIntKey(CATNIP_TEMPLATE_CFG_NAME, Id) + if err != nil { + return nil + } + return item.MutilItem(gamedata.GetItemList(data, "ItemCost"), Mul) +} + +func GetGrandReward(Id int) []*item.Item { + data, err := gamedata.GetDataByIntKey(CATNIP_TEMPLATE_CFG_NAME, Id) + if err != nil { + return nil + } + return gamedata.GetItemList(data, "Reward") +} diff --git a/src/server/game/PlayerFunc.go b/src/server/game/PlayerFunc.go index fe327d9d..b7ddf4d5 100644 --- a/src/server/game/PlayerFunc.go +++ b/src/server/game/PlayerFunc.go @@ -309,7 +309,7 @@ func handle(p *Player, m *msg.Msg) error { p.PushClientRes(ChargeMod.BackData()) case msg.HANDLE_TYPE_PLAYROOM_KISS: // playroom亲吻 p.NotifyPlayroomKiss() - case msg.HANDLE_TYPE_CATNIP_INVITE: + case msg.HANDLE_TYPE_CATNIP_INVITE: // 邀请好友参与猫咪游戏 CatnipMod := p.PlayMod.getCatnipMod() CatnipMsg := m.Extra.(CatnipMsg) ActivityId := GetActivityId(p, activity.ACT_TYPE_CATNIP) @@ -317,7 +317,7 @@ func handle(p *Player, m *msg.Msg) error { return nil } CatnipMod.BeInvited(CatnipMsg.GameId, int(m.From), m.SendT) - case msg.HANDLE_TYPE_CATNIP_AGREE: + case msg.HANDLE_TYPE_CATNIP_AGREE: // 同意好友参与猫咪游戏 CatnipMod := p.PlayMod.getCatnipMod() CatnipMsgInfo := m.Extra.(CatnipMsg) ActivityId := GetActivityId(p, activity.ACT_TYPE_CATNIP) @@ -337,7 +337,7 @@ func handle(p *Player, m *msg.Msg) error { SendT: GoUtil.Now(), }) } - case msg.HANDLE_TYPE_CATNIP_AGREE_DEL: + case msg.HANDLE_TYPE_CATNIP_AGREE_DEL: // 同意好友参与猫咪游戏后删除邀请 CatnipMod := p.PlayMod.getCatnipMod() CatnipMsg := m.Extra.(CatnipMsg) ActivityId := GetActivityId(p, activity.ACT_TYPE_CATNIP) @@ -345,6 +345,22 @@ func handle(p *Player, m *msg.Msg) error { return nil } CatnipMod.DelInvited(CatnipMsg.GameId, int(m.From)) + case msg.HANDLE_TYPE_CATNIP_REFUSE: // 拒绝好友参与猫咪游戏 + CatnipMod := p.PlayMod.getCatnipMod() + CatnipMsg := m.Extra.(CatnipMsg) + ActivityId := GetActivityId(p, activity.ACT_TYPE_CATNIP) + if ActivityId != CatnipMsg.ActivityId { // 活动ID不匹配 + return nil + } + CatnipMod.DelInvited(CatnipMsg.GameId, int(m.From)) + case msg.HANDLE_TYPE_CATNIP_GROWTH: + CatnipMod := p.PlayMod.getCatnipMod() + CatnipGrowthInfo := m.Extra.(CatnipMsg) + ActivityId := GetActivityId(p, activity.ACT_TYPE_CATNIP) + if ActivityId != CatnipGrowthInfo.ActivityId { // 活动ID不匹配 + return nil + } + CatnipMod.Growth(CatnipGrowthInfo.GameId, CatnipGrowthInfo.Growth) default: log.Debug("uid : %d, handle msg type : %d not exist", p.M_DwUin, m.Type) } diff --git a/src/server/game/PlayerMsg.go b/src/server/game/PlayerMsg.go new file mode 100644 index 00000000..b0e7ddb7 --- /dev/null +++ b/src/server/game/PlayerMsg.go @@ -0,0 +1,23 @@ +package game + +import ( + "server/GoUtil" + "server/game/mod/activity" + "server/game/mod/msg" +) + +func (p *Player) CatnipGrowthMsg(To, Id, Growth int) error { + ActivityId := GetActivityId(p, activity.ACT_TYPE_CATNIP) + FriendMgrSend(&msg.Msg{ + From: int(p.M_DwUin), + To: To, + Type: msg.HANDLE_TYPE_CATNIP_GROWTH, + SendT: GoUtil.Now(), + Extra: CatnipMsg{ + ActivityId: ActivityId, + GameId: Id, + Growth: Growth, + }, + }) + return nil +} diff --git a/src/server/game/RegisterNetworkFunc.go b/src/server/game/RegisterNetworkFunc.go index 1d5cb185..ce8158cd 100644 --- a/src/server/game/RegisterNetworkFunc.go +++ b/src/server/game/RegisterNetworkFunc.go @@ -4782,7 +4782,8 @@ func ReqCatnipMultiply(player *Player, buf []byte) error { return err } player.TeLog("catnip_multiply", map[string]interface{}{ - "Id": int(req.Id), + "Id": int(req.Id), + "Mul": int(req.Multiply), }) player.PlayMod.save() player.PushClientRes(&msg.ResCatnipMultiply{ @@ -4796,7 +4797,7 @@ func ReqCatnipPlay(player *Player, buf []byte) error { req := &msg.ReqCatnipPlay{} proto.Unmarshal(buf, req) CatnipMod := player.PlayMod.getCatnipMod() - err := CatnipMod.Play(int(req.Id)) + Id, Growth, PartnerId, Items, ItemCost, err := CatnipMod.Play(int(req.Id)) if err != nil { player.SendErrClienRes(&msg.ResCatnipPlay{ Code: msg.RES_CODE_FAIL, @@ -4804,12 +4805,33 @@ func ReqCatnipPlay(player *Player, buf []byte) error { }) return err } + err = player.HandleLoseItem(ItemCost, msg.ITEM_POP_LABEL_CatnipPlay.String()) + if err != nil { + player.SendErrClienRes(&msg.ResCatnipPlay{ + Code: msg.RES_CODE_FAIL, + Msg: err.Error(), + }) + } + err = player.HandleItem(Items, msg.ITEM_POP_LABEL_CatnipPlay.String()) + if err != nil { + player.SendErrClienRes(&msg.ResCatnipPlay{ + Code: msg.RES_CODE_FAIL, + Msg: err.Error(), + }) + } player.TeLog("catnip_play", map[string]interface{}{ - "Id": int(req.Id), + "Id": int(req.Id), + "Growth": Growth, + "PartnerId": PartnerId, + "Items": Items, }) + if Growth > 0 { + player.CatnipGrowthMsg(PartnerId, int(req.Id), Growth) + } player.PlayMod.save() player.PushClientRes(&msg.ResCatnipPlay{ Code: msg.RES_CODE_SUCCESS, + Id: int32(Id), }) return nil } @@ -4819,7 +4841,7 @@ func ReqCatnipReward(player *Player, buf []byte) error { req := &msg.ReqCatnipReward{} proto.Unmarshal(buf, req) CatnipMod := player.PlayMod.getCatnipMod() - Items, err := CatnipMod.Reward(int(req.Progress)) + Items, err := CatnipMod.Reward(int(req.Id), int(req.Progress)) if err != nil { player.SendErrClienRes(&msg.ResCatnipReward{ Code: msg.RES_CODE_FAIL, @@ -4836,7 +4858,9 @@ func ReqCatnipReward(player *Player, buf []byte) error { return err } player.TeLog("catnip_reward", map[string]interface{}{ - "Items": Items, + "Id": int(req.Id), + "Progress": int(req.Progress), + "Items": Items, }) player.PlayMod.save() player.PushClientRes(&msg.ResCatnipReward{ @@ -4845,6 +4869,7 @@ func ReqCatnipReward(player *Player, buf []byte) error { return nil } +// 猫草大作战领取大奖 func ReqCatnipGrandReward(player *Player, buf []byte) error { req := &msg.ReqCatnipGrandReward{} proto.Unmarshal(buf, req) diff --git a/src/server/game/Type.go b/src/server/game/Type.go index 5e0c6e84..e9e552ab 100644 --- a/src/server/game/Type.go +++ b/src/server/game/Type.go @@ -85,6 +85,7 @@ type GameResult struct { type CatnipMsg struct { ActivityId int GameId int + Growth int // 增长值 } type CatnipLock struct { diff --git a/src/server/game/mod/catnip/Catnip.go b/src/server/game/mod/catnip/Catnip.go index 25a2f030..e91a314d 100644 --- a/src/server/game/mod/catnip/Catnip.go +++ b/src/server/game/mod/catnip/Catnip.go @@ -8,10 +8,10 @@ import ( ) type CatnipMod struct { - Id int - Game map[int]*CatnipGame - InviteList map[int][]*InviteInfo // 邀请列表,key: 邀请者ID, value: 被邀请者ID - BeInvitedList map[int][]*InviteInfo // 被邀请列表,key: 被邀请者ID, value: 邀请者ID + Id int + Game map[int]*CatnipGame + + IsGetGrandReward bool // 是否领取过大丰收奖励 } type InviteInfo struct { @@ -20,13 +20,15 @@ type InviteInfo struct { } type CatnipGame struct { - Id int // 游戏ID - Partner int // 伙伴ID - Progress int // 进度 - PartnerAdd int // 伙伴贡献 - Reward []int // 已领取阶段奖励 - Mul int // 倍数 - Status int // 0: Not Started, 1: In Progress, 2: Completed + Id int // 游戏ID + Partner int // 伙伴ID + Progress int // 进度 + PartnerAdd int // 伙伴贡献 + Reward []int // 已领取阶段奖励 + Mul int // 倍数 + Status int // 0: Not Started, 1: In Progress, 2: Completed + InviteList map[int]*InviteInfo // 邀请列表,key: 邀请者ID, value: 被邀请者ID + BeInvitedList map[int]*InviteInfo // 被邀请列表,key: 被邀请者ID, value: 邀请者ID } const ( @@ -40,12 +42,6 @@ func (c *CatnipMod) InitData() { if c.Game == nil { c.Game = make(map[int]*CatnipGame) } - if c.InviteList == nil { - c.InviteList = make(map[int][]*InviteInfo) - } - if c.BeInvitedList == nil { - c.BeInvitedList = make(map[int][]*InviteInfo) - } } func (c *CatnipMod) Login(Id int) int { @@ -58,6 +54,7 @@ func (c *CatnipMod) Login(Id int) int { return 0 } c.Id = Id + c.IsGetGrandReward = false // Reset grand reward status on login c.Game = make(map[int]*CatnipGame) GameNum := catnipCfg.GetGameNum(c.Id) // Assuming 1 is the default game ID for i := 1; i <= GameNum; i++ { @@ -83,15 +80,15 @@ func (c *CatnipMod) Invite(Id, Uid int) error { if GameInfo.Status != 0 { return fmt.Errorf("game with ID %d is already in progress or completed", Id) } - for _, invite := range c.InviteList[Id] { - if invite.InviteId == Uid { - return fmt.Errorf("user with ID %d is already invited to game ID %d", Uid, Id) - } + + if GameInfo.InviteList[Uid] != nil { + return fmt.Errorf("user with ID %d is already invited to game ID %d", Uid, Id) } - c.InviteList[Id] = append(c.InviteList[Id], &InviteInfo{ + + GameInfo.InviteList[Uid] = &InviteInfo{ InviteId: Uid, Time: GoUtil.Now(), - }) + } return nil } @@ -104,15 +101,14 @@ func (c *CatnipMod) BeInvited(Id, Uid int, Time int64) error { return fmt.Errorf("game with ID %d is already in progress or completed", Id) } // Check if the user is already invited - for _, invite := range c.BeInvitedList[Uid] { - if invite.InviteId == Id { - return fmt.Errorf("user with ID %d has already been invited to game ID %d", Uid, Id) - } + invite := GameInfo.BeInvitedList[Uid] + if invite != nil && invite.InviteId == Id { + return fmt.Errorf("user with ID %d has already been invited to game ID %d", Uid, Id) } - c.BeInvitedList[Uid] = append(c.BeInvitedList[Uid], &InviteInfo{ + GameInfo.BeInvitedList[Uid] = &InviteInfo{ InviteId: Id, Time: Time, - }) + } return nil } @@ -125,27 +121,15 @@ func (c *CatnipMod) Agree(Id, Uid int) ([]int, error) { return nil, fmt.Errorf("game with ID %d is already in progress or completed", Id) } // Check if the user is in the invite list - inviteList, exists := c.InviteList[Id] + _, exists := GameInfo.InviteList[Uid] if !exists { - return nil, fmt.Errorf("no invites found for game ID %d", Id) - } - userExists := false - InviteUser := []int{} - for _, invite := range inviteList { - if invite.InviteId == Uid { - userExists = true - continue - } - InviteUser = append(InviteUser, invite.InviteId) - - } - if !userExists { return nil, fmt.Errorf("user with ID %d is not invited to game ID %d", Uid, Id) } - c.InviteList[Id] = make([]*InviteInfo, 0) // Clear the invite list after agreeing - GameInfo.Partner = Uid // Set the partner for the game - GameInfo.Status = GAME_STATUS_COMPLETED // Set the game status to in progress - return InviteUser, nil + // Remove the invite after agreeing + delete(GameInfo.InviteList, Uid) + GameInfo.Partner = Uid // Set the partner for the game + GameInfo.Status = GAME_STATUS_COMPLETED // Set the game status to completed + return []int{}, nil } func (c *CatnipMod) DelInvited(Id, Uid int) error { @@ -156,14 +140,8 @@ func (c *CatnipMod) DelInvited(Id, Uid int) error { if GameInfo.Status != GAME_STATUS_IDLE { return fmt.Errorf("game with ID %d is already in progress or completed", Id) } - for k, invite := range c.BeInvitedList[Id] { - if invite.InviteId == Uid { - // Remove the invite from the list - c.BeInvitedList[Id] = append(c.InviteList[Id][:k], c.InviteList[Id][k+1:]...) - return nil - } - } - return fmt.Errorf("user with ID %d is not invited to game ID %d", Uid, Id) + delete(GameInfo.InviteList, Uid) + return nil } func (c *CatnipMod) Multiply(Id, Mul int) error { @@ -183,24 +161,61 @@ func (c *CatnipMod) Refuse(Id, Uid int) error { if GameInfo.Status != GAME_STATUS_IDLE { return fmt.Errorf("game with ID %d is already in progress or completed", Id) } - for k, invite := range c.InviteList[Id] { - if invite.InviteId == Uid { - // Remove the invite from the list - c.InviteList[Id] = append(c.InviteList[Id][:k], c.InviteList[Id][k+1:]...) - return nil - } + delete(GameInfo.BeInvitedList, Uid) + return nil +} + +func (c *CatnipMod) Play(Id int) (int, int, int, []*item.Item, []*item.Item, error) { + GameInfo, ok := c.Game[Id] + if !ok { + return 0, 0, 0, nil, nil, fmt.Errorf("game with ID %d does not exist", Id) } - return nil + Id, Items, Growth := catnipCfg.GetJackpotItem(GameInfo.Mul) + if Growth > 0 { + c.Growth(Id, Growth) + } + ItemCost := catnipCfg.GetItemCost(c.Id, GameInfo.Mul) + return Id, Growth, GameInfo.Partner, Items, ItemCost, nil } -func (c *CatnipMod) Play(Id int) error { - return nil -} - -func (c *CatnipMod) Reward(Id int) ([]*item.Item, error) { - return nil, nil +func (c *CatnipMod) Reward(Id, Progress int) ([]*item.Item, error) { + GameInfo, ok := c.Game[Id] + if !ok { + return nil, fmt.Errorf("game with Progress %d does not exist", Id) + } + if GameInfo.Progress < Progress { + return nil, fmt.Errorf("game with ID %d has not reached the required progress %d", Id, Progress) + } + if GoUtil.InArray(Progress, GameInfo.Reward) { + return nil, fmt.Errorf("reward for progress %d has already been claimed in game ID %d", Progress, Id) + } + GameInfo.Reward = append(GameInfo.Reward, Progress) + return catnipCfg.GetProgressReward(c.Id, Progress), nil } func (c *CatnipMod) GrandReward() ([]*item.Item, error) { - return nil, nil + for _, game := range c.Game { + if game.Status != GAME_STATUS_COMPLETED { + return nil, fmt.Errorf("game with ID %d is not completed", game.Id) + } + } + if c.IsGetGrandReward { + return nil, fmt.Errorf("grand reward has already been claimed") + } + c.IsGetGrandReward = true + return catnipCfg.GetGrandReward(c.Id), nil +} + +func (c *CatnipMod) Growth(Id, Growth int) { + GameInfo, ok := c.Game[Id] + if !ok { + return // Game does not exist + } + if GameInfo.Status != GAME_STATUS_IN_PROGRESS { + return // Game is not in progress + } + GameInfo.Progress += Growth + if GameInfo.Progress >= catnipCfg.GetGameNum(Id) { // Assuming the game ends when progress reaches a certain threshold + GameInfo.Status = GAME_STATUS_COMPLETED + } } diff --git a/src/server/msg/Gameapi.pb.go b/src/server/msg/Gameapi.pb.go index f562a563..21d670f3 100644 --- a/src/server/msg/Gameapi.pb.go +++ b/src/server/msg/Gameapi.pb.go @@ -93,6 +93,7 @@ const ( ITEM_POP_LABEL_DecorateReward ITEM_POP_LABEL = 66 // 装饰奖励 ITEM_POP_LABEL_CatnipReward ITEM_POP_LABEL = 67 // 猫草大作战奖励 ITEM_POP_LABEL_CatnipGrandReward ITEM_POP_LABEL = 68 // 猫草大作战大奖奖励 + ITEM_POP_LABEL_CatnipPlay ITEM_POP_LABEL = 69 // 猫草大作战玩法奖励 ) // Enum value maps for ITEM_POP_LABEL. @@ -167,6 +168,7 @@ var ( 66: "DecorateReward", 67: "CatnipReward", 68: "CatnipGrandReward", + 69: "CatnipPlay", } ITEM_POP_LABEL_value = map[string]int32{ "Playroom": 0, @@ -238,6 +240,7 @@ var ( "DecorateReward": 66, "CatnipReward": 67, "CatnipGrandReward": 68, + "CatnipPlay": 69, } ) @@ -26416,7 +26419,7 @@ const file_proto_Gameapi_proto_rawDesc = "" + "\n" + "ReqAdminGm\x12\x10\n" + "\x03Uid\x18\x01 \x01(\x03R\x03Uid\x12\x18\n" + - "\aCommand\x18\x02 \x01(\tR\aCommand*\xa5\n" + + "\aCommand\x18\x02 \x01(\tR\aCommand*\xb5\n" + "\n" + "\x0eITEM_POP_LABEL\x12\f\n" + "\bPlayroom\x10\x00\x12\r\n" + @@ -26494,7 +26497,9 @@ const file_proto_Gameapi_proto_rawDesc = "" + "\x0ePlayroomUpvote\x10A\x12\x12\n" + "\x0eDecorateReward\x10B\x12\x10\n" + "\fCatnipReward\x10C\x12\x15\n" + - "\x11CatnipGrandReward\x10D*B\n" + + "\x11CatnipGrandReward\x10D\x12\x0e\n" + + "\n" + + "CatnipPlay\x10E*B\n" + "\vHANDLE_TYPE\x12\a\n" + "\x03ADD\x10\x00\x12\v\n" + "\aCOMPOSE\x10\x01\x12\a\n" + From 6ca18ac8f48c7bae8222f91c14fbf2ab3fe5ce62 Mon Sep 17 00:00:00 2001 From: hahwu <31872165+hahwu@users.noreply.github.com> Date: Fri, 25 Jul 2025 15:43:11 +0800 Subject: [PATCH 07/17] =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E9=BB=91=E5=90=8D?= =?UTF-8?q?=E5=8D=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/server/game/PlayerMod.go | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/src/server/game/PlayerMod.go b/src/server/game/PlayerMod.go index 87850102..826b8b0c 100644 --- a/src/server/game/PlayerMod.go +++ b/src/server/game/PlayerMod.go @@ -191,13 +191,18 @@ func (p *PlayerMod) save() { p.is_update = true } +func (p *PlayerMod) IsBlackList() bool { + BaseMod := p.getBaseMod() + return BaseMod.Account == "cecf89cd063b93c63da531daf7204afa" +} + func (p *PlayerMod) ClearData(player *Player) { ChessMod := p.getChessMod() if len(ChessMod.ChessMap) > 0 && len(ChessMod.ChessList) != len(ChessMod.ChessMap) { log.Debug("uid: %d, SaveData, chess error ", player.M_DwUin) return } - if p.is_update { + if p.is_update && !p.IsBlackList() { //序列化模块 var buf bytes.Buffer encode := gob.NewEncoder(&buf) From 0a4ad943068631c8952ad5662378e8839f241de3 Mon Sep 17 00:00:00 2001 From: hahwu <31872165+hahwu@users.noreply.github.com> Date: Fri, 25 Jul 2025 18:22:34 +0800 Subject: [PATCH 08/17] =?UTF-8?q?=E5=A2=9E=E5=8A=A0playroom=E5=B9=BF?= =?UTF-8?q?=E5=91=8A=E8=A7=82=E7=9C=8B=E6=AC=A1=E6=95=B0=E9=99=90=E5=88=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/server/conf/playroom/playroomCfg.go | 8 + src/server/game/RegisterNetworkFunc.go | 10 + src/server/game/mod/playroom/playroom.go | 32 + src/server/msg/Gameapi.pb.go | 1037 ++++++++++++---------- 4 files changed, 606 insertions(+), 481 deletions(-) diff --git a/src/server/conf/playroom/playroomCfg.go b/src/server/conf/playroom/playroomCfg.go index 7b17a821..83bfc209 100644 --- a/src/server/conf/playroom/playroomCfg.go +++ b/src/server/conf/playroom/playroomCfg.go @@ -583,3 +583,11 @@ func GetPetOrderItemExpByList(ItemList []*item.Item) int { } return r } + +func GetShopItemAdNum(Id int) int { + data, err := gamedata.GetDataByIntKey(CFG_PLAYROOM_SHOP, Id) + if err != nil { + return 0 + } + return gamedata.GetIntValue(data, "Dailystorage") +} diff --git a/src/server/game/RegisterNetworkFunc.go b/src/server/game/RegisterNetworkFunc.go index ce8158cd..077a8398 100644 --- a/src/server/game/RegisterNetworkFunc.go +++ b/src/server/game/RegisterNetworkFunc.go @@ -3637,6 +3637,16 @@ func ReqPlayroomBuyItem(player *Player, buf []byte) error { }) return err } + if CostItem[0].Num == 0 { + err := PlayroomMod.AdWatch(AddItems[0].Id) + if err != nil { + player.SendErrClienRes(&msg.ResPlayroomBuyItem{ + Code: msg.RES_CODE_FAIL, + Msg: err.Error(), + }) + return err + } + } err := player.HandleLoseItem(CostItem, msg.ITEM_POP_LABEL_PlayroomBuyItem.String()) if err != nil { player.SendErrClienRes(&msg.ResPlayroomBuyItem{ diff --git a/src/server/game/mod/playroom/playroom.go b/src/server/game/mod/playroom/playroom.go index 22a4965c..9f27de53 100644 --- a/src/server/game/mod/playroom/playroom.go +++ b/src/server/game/mod/playroom/playroom.go @@ -56,6 +56,12 @@ type PlayroomMod struct { RevengeUid int64 // 复仇Uid FilterVisitor bool // 是否过滤访客 TodayVisitedUsers []int // 今日已拜访过的用户 + ADItem map[int]*ItemInfo +} + +type ItemInfo struct { + Watch int // 观看次数 + LastTime int64 // 上次观看时间 } type DailyTask struct { @@ -184,6 +190,9 @@ func (p *PlayroomMod) InitData() { p.Dress[Part] = append(p.Dress[Part], v) } } + if p.ADItem == nil { + p.ADItem = make(map[int]*ItemInfo) + } } func (p *PlayroomMod) ZeroUpdate() { @@ -193,6 +202,7 @@ func (p *PlayroomMod) ZeroUpdate() { p.UpvoteList = make([]int, 0) p.DailyTaskReward = make([]int, 0) p.TodayVisitedUsers = make([]int, 0) + p.ADItem = make(map[int]*ItemInfo) p.InitDailyTask() } @@ -632,10 +642,19 @@ func (p *PlayroomMod) NotifyMood() *msg.NotifyPlayroomMood { for k, v := range p.MoodInfo { Mood[int32(k)] = int32(v.Num) } + resAdItems := make([]*msg.AdItem, 0) + for k, v := range p.ADItem { + resAdItems = append(resAdItems, &msg.AdItem{ + ItemId: int32(k), + Watch: int32(v.Watch), + LastWatch: int32(v.LastTime), + }) + } return &msg.NotifyPlayroomMood{ AllMood: int32(p.AllMood), Mood: Mood, Physiology: GoUtil.MapIntToInt32(p.GetPhysiologyList()), + AdItem: resAdItems, } } @@ -739,6 +758,7 @@ func (p *PlayroomMod) GetFlipReward() ([]*item.Item, int, error) { func (p *PlayroomMod) BuyItem(Id int) ([]*item.Item, []*item.Item) { return playroomCfg.GetBuyItem(Id) + } func (p *PlayroomMod) UnLock(Lv int) bool { @@ -915,3 +935,15 @@ func (p *PlayroomMod) Guide(Type int) error { p.Physiology[Type].Num = 0 return nil } + +func (p *PlayroomMod) AdWatch(Id int) error { + if _, ok := p.ADItem[Id]; !ok { + p.ADItem[Id] = &ItemInfo{Watch: 0, LastTime: 0} + } + p.ADItem[Id].Watch++ + p.ADItem[Id].LastTime = GoUtil.Now() + if p.ADItem[Id].Watch > playroomCfg.GetShopItemAdNum(Id) { + return fmt.Errorf("AdWatch Watch is over limit") + } + return nil +} diff --git a/src/server/msg/Gameapi.pb.go b/src/server/msg/Gameapi.pb.go index 21d670f3..98c3ac5a 100644 --- a/src/server/msg/Gameapi.pb.go +++ b/src/server/msg/Gameapi.pb.go @@ -20618,6 +20618,7 @@ type NotifyPlayroomMood struct { AllMood int32 `protobuf:"varint,1,opt,name=AllMood,proto3" json:"AllMood,omitempty"` // 总心情 Mood map[int32]int32 `protobuf:"bytes,2,rep,name=Mood,proto3" json:"Mood,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"varint,2,opt,name=value"` // 心情 <位置, 心情> Physiology map[int32]int32 `protobuf:"bytes,3,rep,name=Physiology,proto3" json:"Physiology,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"varint,2,opt,name=value"` // 生理 <位置, 生理> + AdItem []*AdItem `protobuf:"bytes,4,rep,name=AdItem,proto3" json:"AdItem,omitempty"` // 广告奖励 unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache } @@ -20673,6 +20674,73 @@ func (x *NotifyPlayroomMood) GetPhysiology() map[int32]int32 { return nil } +func (x *NotifyPlayroomMood) GetAdItem() []*AdItem { + if x != nil { + return x.AdItem + } + return nil +} + +type AdItem struct { + state protoimpl.MessageState `protogen:"open.v1"` + Watch int32 `protobuf:"varint,1,opt,name=Watch,proto3" json:"Watch,omitempty"` // 今日观看次数 + LastWatch int32 `protobuf:"varint,2,opt,name=LastWatch,proto3" json:"LastWatch,omitempty"` // 上次观看时间 + ItemId int32 `protobuf:"varint,3,opt,name=ItemId,proto3" json:"ItemId,omitempty"` // 道具id + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *AdItem) Reset() { + *x = AdItem{} + mi := &file_proto_Gameapi_proto_msgTypes[360] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *AdItem) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*AdItem) ProtoMessage() {} + +func (x *AdItem) ProtoReflect() protoreflect.Message { + mi := &file_proto_Gameapi_proto_msgTypes[360] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use AdItem.ProtoReflect.Descriptor instead. +func (*AdItem) Descriptor() ([]byte, []int) { + return file_proto_Gameapi_proto_rawDescGZIP(), []int{360} +} + +func (x *AdItem) GetWatch() int32 { + if x != nil { + return x.Watch + } + return 0 +} + +func (x *AdItem) GetLastWatch() int32 { + if x != nil { + return x.LastWatch + } + return 0 +} + +func (x *AdItem) GetItemId() int32 { + if x != nil { + return x.ItemId + } + return 0 +} + type NotifyPlayroomKiss struct { state protoimpl.MessageState `protogen:"open.v1"` Kiss int32 `protobuf:"varint,1,opt,name=Kiss,proto3" json:"Kiss,omitempty"` // 亲吻次数 @@ -20682,7 +20750,7 @@ type NotifyPlayroomKiss struct { func (x *NotifyPlayroomKiss) Reset() { *x = NotifyPlayroomKiss{} - mi := &file_proto_Gameapi_proto_msgTypes[360] + mi := &file_proto_Gameapi_proto_msgTypes[361] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -20694,7 +20762,7 @@ func (x *NotifyPlayroomKiss) String() string { func (*NotifyPlayroomKiss) ProtoMessage() {} func (x *NotifyPlayroomKiss) ProtoReflect() protoreflect.Message { - mi := &file_proto_Gameapi_proto_msgTypes[360] + mi := &file_proto_Gameapi_proto_msgTypes[361] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -20707,7 +20775,7 @@ func (x *NotifyPlayroomKiss) ProtoReflect() protoreflect.Message { // Deprecated: Use NotifyPlayroomKiss.ProtoReflect.Descriptor instead. func (*NotifyPlayroomKiss) Descriptor() ([]byte, []int) { - return file_proto_Gameapi_proto_rawDescGZIP(), []int{360} + return file_proto_Gameapi_proto_rawDescGZIP(), []int{361} } func (x *NotifyPlayroomKiss) GetKiss() int32 { @@ -20730,7 +20798,7 @@ type FriendRoom struct { func (x *FriendRoom) Reset() { *x = FriendRoom{} - mi := &file_proto_Gameapi_proto_msgTypes[361] + mi := &file_proto_Gameapi_proto_msgTypes[362] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -20742,7 +20810,7 @@ func (x *FriendRoom) String() string { func (*FriendRoom) ProtoMessage() {} func (x *FriendRoom) ProtoReflect() protoreflect.Message { - mi := &file_proto_Gameapi_proto_msgTypes[361] + mi := &file_proto_Gameapi_proto_msgTypes[362] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -20755,7 +20823,7 @@ func (x *FriendRoom) ProtoReflect() protoreflect.Message { // Deprecated: Use FriendRoom.ProtoReflect.Descriptor instead. func (*FriendRoom) Descriptor() ([]byte, []int) { - return file_proto_Gameapi_proto_rawDescGZIP(), []int{361} + return file_proto_Gameapi_proto_rawDescGZIP(), []int{362} } func (x *FriendRoom) GetUid() int64 { @@ -20806,7 +20874,7 @@ type RoomOpponent struct { func (x *RoomOpponent) Reset() { *x = RoomOpponent{} - mi := &file_proto_Gameapi_proto_msgTypes[362] + mi := &file_proto_Gameapi_proto_msgTypes[363] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -20818,7 +20886,7 @@ func (x *RoomOpponent) String() string { func (*RoomOpponent) ProtoMessage() {} func (x *RoomOpponent) ProtoReflect() protoreflect.Message { - mi := &file_proto_Gameapi_proto_msgTypes[362] + mi := &file_proto_Gameapi_proto_msgTypes[363] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -20831,7 +20899,7 @@ func (x *RoomOpponent) ProtoReflect() protoreflect.Message { // Deprecated: Use RoomOpponent.ProtoReflect.Descriptor instead. func (*RoomOpponent) Descriptor() ([]byte, []int) { - return file_proto_Gameapi_proto_rawDescGZIP(), []int{362} + return file_proto_Gameapi_proto_rawDescGZIP(), []int{363} } func (x *RoomOpponent) GetUid() int64 { @@ -20879,7 +20947,7 @@ type ReqPlayroomInfo struct { func (x *ReqPlayroomInfo) Reset() { *x = ReqPlayroomInfo{} - mi := &file_proto_Gameapi_proto_msgTypes[363] + mi := &file_proto_Gameapi_proto_msgTypes[364] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -20891,7 +20959,7 @@ func (x *ReqPlayroomInfo) String() string { func (*ReqPlayroomInfo) ProtoMessage() {} func (x *ReqPlayroomInfo) ProtoReflect() protoreflect.Message { - mi := &file_proto_Gameapi_proto_msgTypes[363] + mi := &file_proto_Gameapi_proto_msgTypes[364] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -20904,7 +20972,7 @@ func (x *ReqPlayroomInfo) ProtoReflect() protoreflect.Message { // Deprecated: Use ReqPlayroomInfo.ProtoReflect.Descriptor instead. func (*ReqPlayroomInfo) Descriptor() ([]byte, []int) { - return file_proto_Gameapi_proto_rawDescGZIP(), []int{363} + return file_proto_Gameapi_proto_rawDescGZIP(), []int{364} } func (x *ReqPlayroomInfo) GetUid() int64 { @@ -20939,7 +21007,7 @@ type ResPlayroomInfo struct { func (x *ResPlayroomInfo) Reset() { *x = ResPlayroomInfo{} - mi := &file_proto_Gameapi_proto_msgTypes[364] + mi := &file_proto_Gameapi_proto_msgTypes[365] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -20951,7 +21019,7 @@ func (x *ResPlayroomInfo) String() string { func (*ResPlayroomInfo) ProtoMessage() {} func (x *ResPlayroomInfo) ProtoReflect() protoreflect.Message { - mi := &file_proto_Gameapi_proto_msgTypes[364] + mi := &file_proto_Gameapi_proto_msgTypes[365] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -20964,7 +21032,7 @@ func (x *ResPlayroomInfo) ProtoReflect() protoreflect.Message { // Deprecated: Use ResPlayroomInfo.ProtoReflect.Descriptor instead. func (*ResPlayroomInfo) Descriptor() ([]byte, []int) { - return file_proto_Gameapi_proto_rawDescGZIP(), []int{364} + return file_proto_Gameapi_proto_rawDescGZIP(), []int{365} } func (x *ResPlayroomInfo) GetUid() int64 { @@ -21096,7 +21164,7 @@ type ReqPlayroomFlip struct { func (x *ReqPlayroomFlip) Reset() { *x = ReqPlayroomFlip{} - mi := &file_proto_Gameapi_proto_msgTypes[365] + mi := &file_proto_Gameapi_proto_msgTypes[366] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -21108,7 +21176,7 @@ func (x *ReqPlayroomFlip) String() string { func (*ReqPlayroomFlip) ProtoMessage() {} func (x *ReqPlayroomFlip) ProtoReflect() protoreflect.Message { - mi := &file_proto_Gameapi_proto_msgTypes[365] + mi := &file_proto_Gameapi_proto_msgTypes[366] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -21121,7 +21189,7 @@ func (x *ReqPlayroomFlip) ProtoReflect() protoreflect.Message { // Deprecated: Use ReqPlayroomFlip.ProtoReflect.Descriptor instead. func (*ReqPlayroomFlip) Descriptor() ([]byte, []int) { - return file_proto_Gameapi_proto_rawDescGZIP(), []int{365} + return file_proto_Gameapi_proto_rawDescGZIP(), []int{366} } func (x *ReqPlayroomFlip) GetId() int32 { @@ -21143,7 +21211,7 @@ type ResPlayroomFlip struct { func (x *ResPlayroomFlip) Reset() { *x = ResPlayroomFlip{} - mi := &file_proto_Gameapi_proto_msgTypes[366] + mi := &file_proto_Gameapi_proto_msgTypes[367] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -21155,7 +21223,7 @@ func (x *ResPlayroomFlip) String() string { func (*ResPlayroomFlip) ProtoMessage() {} func (x *ResPlayroomFlip) ProtoReflect() protoreflect.Message { - mi := &file_proto_Gameapi_proto_msgTypes[366] + mi := &file_proto_Gameapi_proto_msgTypes[367] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -21168,7 +21236,7 @@ func (x *ResPlayroomFlip) ProtoReflect() protoreflect.Message { // Deprecated: Use ResPlayroomFlip.ProtoReflect.Descriptor instead. func (*ResPlayroomFlip) Descriptor() ([]byte, []int) { - return file_proto_Gameapi_proto_rawDescGZIP(), []int{366} + return file_proto_Gameapi_proto_rawDescGZIP(), []int{367} } func (x *ResPlayroomFlip) GetCode() RES_CODE { @@ -21209,7 +21277,7 @@ type ReqPlayroomGuide struct { func (x *ReqPlayroomGuide) Reset() { *x = ReqPlayroomGuide{} - mi := &file_proto_Gameapi_proto_msgTypes[367] + mi := &file_proto_Gameapi_proto_msgTypes[368] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -21221,7 +21289,7 @@ func (x *ReqPlayroomGuide) String() string { func (*ReqPlayroomGuide) ProtoMessage() {} func (x *ReqPlayroomGuide) ProtoReflect() protoreflect.Message { - mi := &file_proto_Gameapi_proto_msgTypes[367] + mi := &file_proto_Gameapi_proto_msgTypes[368] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -21234,7 +21302,7 @@ func (x *ReqPlayroomGuide) ProtoReflect() protoreflect.Message { // Deprecated: Use ReqPlayroomGuide.ProtoReflect.Descriptor instead. func (*ReqPlayroomGuide) Descriptor() ([]byte, []int) { - return file_proto_Gameapi_proto_rawDescGZIP(), []int{367} + return file_proto_Gameapi_proto_rawDescGZIP(), []int{368} } func (x *ReqPlayroomGuide) GetType() int32 { @@ -21254,7 +21322,7 @@ type ResPlayroomGuide struct { func (x *ResPlayroomGuide) Reset() { *x = ResPlayroomGuide{} - mi := &file_proto_Gameapi_proto_msgTypes[368] + mi := &file_proto_Gameapi_proto_msgTypes[369] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -21266,7 +21334,7 @@ func (x *ResPlayroomGuide) String() string { func (*ResPlayroomGuide) ProtoMessage() {} func (x *ResPlayroomGuide) ProtoReflect() protoreflect.Message { - mi := &file_proto_Gameapi_proto_msgTypes[368] + mi := &file_proto_Gameapi_proto_msgTypes[369] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -21279,7 +21347,7 @@ func (x *ResPlayroomGuide) ProtoReflect() protoreflect.Message { // Deprecated: Use ResPlayroomGuide.ProtoReflect.Descriptor instead. func (*ResPlayroomGuide) Descriptor() ([]byte, []int) { - return file_proto_Gameapi_proto_rawDescGZIP(), []int{368} + return file_proto_Gameapi_proto_rawDescGZIP(), []int{369} } func (x *ResPlayroomGuide) GetCode() RES_CODE { @@ -21306,7 +21374,7 @@ type ReqPlayroomFlipReward struct { func (x *ReqPlayroomFlipReward) Reset() { *x = ReqPlayroomFlipReward{} - mi := &file_proto_Gameapi_proto_msgTypes[369] + mi := &file_proto_Gameapi_proto_msgTypes[370] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -21318,7 +21386,7 @@ func (x *ReqPlayroomFlipReward) String() string { func (*ReqPlayroomFlipReward) ProtoMessage() {} func (x *ReqPlayroomFlipReward) ProtoReflect() protoreflect.Message { - mi := &file_proto_Gameapi_proto_msgTypes[369] + mi := &file_proto_Gameapi_proto_msgTypes[370] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -21331,7 +21399,7 @@ func (x *ReqPlayroomFlipReward) ProtoReflect() protoreflect.Message { // Deprecated: Use ReqPlayroomFlipReward.ProtoReflect.Descriptor instead. func (*ReqPlayroomFlipReward) Descriptor() ([]byte, []int) { - return file_proto_Gameapi_proto_rawDescGZIP(), []int{369} + return file_proto_Gameapi_proto_rawDescGZIP(), []int{370} } func (x *ReqPlayroomFlipReward) GetEmojiId() int32 { @@ -21351,7 +21419,7 @@ type ResPlayroomFlipReward struct { func (x *ResPlayroomFlipReward) Reset() { *x = ResPlayroomFlipReward{} - mi := &file_proto_Gameapi_proto_msgTypes[370] + mi := &file_proto_Gameapi_proto_msgTypes[371] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -21363,7 +21431,7 @@ func (x *ResPlayroomFlipReward) String() string { func (*ResPlayroomFlipReward) ProtoMessage() {} func (x *ResPlayroomFlipReward) ProtoReflect() protoreflect.Message { - mi := &file_proto_Gameapi_proto_msgTypes[370] + mi := &file_proto_Gameapi_proto_msgTypes[371] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -21376,7 +21444,7 @@ func (x *ResPlayroomFlipReward) ProtoReflect() protoreflect.Message { // Deprecated: Use ResPlayroomFlipReward.ProtoReflect.Descriptor instead. func (*ResPlayroomFlipReward) Descriptor() ([]byte, []int) { - return file_proto_Gameapi_proto_rawDescGZIP(), []int{370} + return file_proto_Gameapi_proto_rawDescGZIP(), []int{371} } func (x *ResPlayroomFlipReward) GetCode() RES_CODE { @@ -21403,7 +21471,7 @@ type ReqPlayroomGame struct { func (x *ReqPlayroomGame) Reset() { *x = ReqPlayroomGame{} - mi := &file_proto_Gameapi_proto_msgTypes[371] + mi := &file_proto_Gameapi_proto_msgTypes[372] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -21415,7 +21483,7 @@ func (x *ReqPlayroomGame) String() string { func (*ReqPlayroomGame) ProtoMessage() {} func (x *ReqPlayroomGame) ProtoReflect() protoreflect.Message { - mi := &file_proto_Gameapi_proto_msgTypes[371] + mi := &file_proto_Gameapi_proto_msgTypes[372] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -21428,7 +21496,7 @@ func (x *ReqPlayroomGame) ProtoReflect() protoreflect.Message { // Deprecated: Use ReqPlayroomGame.ProtoReflect.Descriptor instead. func (*ReqPlayroomGame) Descriptor() ([]byte, []int) { - return file_proto_Gameapi_proto_rawDescGZIP(), []int{371} + return file_proto_Gameapi_proto_rawDescGZIP(), []int{372} } func (x *ReqPlayroomGame) GetType() int32 { @@ -21457,7 +21525,7 @@ type ResPlayroomGame struct { func (x *ResPlayroomGame) Reset() { *x = ResPlayroomGame{} - mi := &file_proto_Gameapi_proto_msgTypes[372] + mi := &file_proto_Gameapi_proto_msgTypes[373] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -21469,7 +21537,7 @@ func (x *ResPlayroomGame) String() string { func (*ResPlayroomGame) ProtoMessage() {} func (x *ResPlayroomGame) ProtoReflect() protoreflect.Message { - mi := &file_proto_Gameapi_proto_msgTypes[372] + mi := &file_proto_Gameapi_proto_msgTypes[373] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -21482,7 +21550,7 @@ func (x *ResPlayroomGame) ProtoReflect() protoreflect.Message { // Deprecated: Use ResPlayroomGame.ProtoReflect.Descriptor instead. func (*ResPlayroomGame) Descriptor() ([]byte, []int) { - return file_proto_Gameapi_proto_rawDescGZIP(), []int{372} + return file_proto_Gameapi_proto_rawDescGZIP(), []int{373} } func (x *ResPlayroomGame) GetCode() RES_CODE { @@ -21524,7 +21592,7 @@ type ReqPlayroomGameShowReward struct { func (x *ReqPlayroomGameShowReward) Reset() { *x = ReqPlayroomGameShowReward{} - mi := &file_proto_Gameapi_proto_msgTypes[373] + mi := &file_proto_Gameapi_proto_msgTypes[374] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -21536,7 +21604,7 @@ func (x *ReqPlayroomGameShowReward) String() string { func (*ReqPlayroomGameShowReward) ProtoMessage() {} func (x *ReqPlayroomGameShowReward) ProtoReflect() protoreflect.Message { - mi := &file_proto_Gameapi_proto_msgTypes[373] + mi := &file_proto_Gameapi_proto_msgTypes[374] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -21549,7 +21617,7 @@ func (x *ReqPlayroomGameShowReward) ProtoReflect() protoreflect.Message { // Deprecated: Use ReqPlayroomGameShowReward.ProtoReflect.Descriptor instead. func (*ReqPlayroomGameShowReward) Descriptor() ([]byte, []int) { - return file_proto_Gameapi_proto_rawDescGZIP(), []int{373} + return file_proto_Gameapi_proto_rawDescGZIP(), []int{374} } func (x *ReqPlayroomGameShowReward) GetType() int32 { @@ -21575,7 +21643,7 @@ type ResPlayroomGameShowReward struct { func (x *ResPlayroomGameShowReward) Reset() { *x = ResPlayroomGameShowReward{} - mi := &file_proto_Gameapi_proto_msgTypes[374] + mi := &file_proto_Gameapi_proto_msgTypes[375] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -21587,7 +21655,7 @@ func (x *ResPlayroomGameShowReward) String() string { func (*ResPlayroomGameShowReward) ProtoMessage() {} func (x *ResPlayroomGameShowReward) ProtoReflect() protoreflect.Message { - mi := &file_proto_Gameapi_proto_msgTypes[374] + mi := &file_proto_Gameapi_proto_msgTypes[375] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -21600,7 +21668,7 @@ func (x *ResPlayroomGameShowReward) ProtoReflect() protoreflect.Message { // Deprecated: Use ResPlayroomGameShowReward.ProtoReflect.Descriptor instead. func (*ResPlayroomGameShowReward) Descriptor() ([]byte, []int) { - return file_proto_Gameapi_proto_rawDescGZIP(), []int{374} + return file_proto_Gameapi_proto_rawDescGZIP(), []int{375} } func (x *ResPlayroomGameShowReward) GetItems() []*ItemInfo { @@ -21621,7 +21689,7 @@ type ReqPlayroomInteract struct { func (x *ReqPlayroomInteract) Reset() { *x = ReqPlayroomInteract{} - mi := &file_proto_Gameapi_proto_msgTypes[375] + mi := &file_proto_Gameapi_proto_msgTypes[376] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -21633,7 +21701,7 @@ func (x *ReqPlayroomInteract) String() string { func (*ReqPlayroomInteract) ProtoMessage() {} func (x *ReqPlayroomInteract) ProtoReflect() protoreflect.Message { - mi := &file_proto_Gameapi_proto_msgTypes[375] + mi := &file_proto_Gameapi_proto_msgTypes[376] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -21646,7 +21714,7 @@ func (x *ReqPlayroomInteract) ProtoReflect() protoreflect.Message { // Deprecated: Use ReqPlayroomInteract.ProtoReflect.Descriptor instead. func (*ReqPlayroomInteract) Descriptor() ([]byte, []int) { - return file_proto_Gameapi_proto_rawDescGZIP(), []int{375} + return file_proto_Gameapi_proto_rawDescGZIP(), []int{376} } func (x *ReqPlayroomInteract) GetId() int32 { @@ -21674,7 +21742,7 @@ type ResPlayroomInteract struct { func (x *ResPlayroomInteract) Reset() { *x = ResPlayroomInteract{} - mi := &file_proto_Gameapi_proto_msgTypes[376] + mi := &file_proto_Gameapi_proto_msgTypes[377] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -21686,7 +21754,7 @@ func (x *ResPlayroomInteract) String() string { func (*ResPlayroomInteract) ProtoMessage() {} func (x *ResPlayroomInteract) ProtoReflect() protoreflect.Message { - mi := &file_proto_Gameapi_proto_msgTypes[376] + mi := &file_proto_Gameapi_proto_msgTypes[377] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -21699,7 +21767,7 @@ func (x *ResPlayroomInteract) ProtoReflect() protoreflect.Message { // Deprecated: Use ResPlayroomInteract.ProtoReflect.Descriptor instead. func (*ResPlayroomInteract) Descriptor() ([]byte, []int) { - return file_proto_Gameapi_proto_rawDescGZIP(), []int{376} + return file_proto_Gameapi_proto_rawDescGZIP(), []int{377} } func (x *ResPlayroomInteract) GetCode() RES_CODE { @@ -21733,7 +21801,7 @@ type ReqPlayroomSetRoom struct { func (x *ReqPlayroomSetRoom) Reset() { *x = ReqPlayroomSetRoom{} - mi := &file_proto_Gameapi_proto_msgTypes[377] + mi := &file_proto_Gameapi_proto_msgTypes[378] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -21745,7 +21813,7 @@ func (x *ReqPlayroomSetRoom) String() string { func (*ReqPlayroomSetRoom) ProtoMessage() {} func (x *ReqPlayroomSetRoom) ProtoReflect() protoreflect.Message { - mi := &file_proto_Gameapi_proto_msgTypes[377] + mi := &file_proto_Gameapi_proto_msgTypes[378] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -21758,7 +21826,7 @@ func (x *ReqPlayroomSetRoom) ProtoReflect() protoreflect.Message { // Deprecated: Use ReqPlayroomSetRoom.ProtoReflect.Descriptor instead. func (*ReqPlayroomSetRoom) Descriptor() ([]byte, []int) { - return file_proto_Gameapi_proto_rawDescGZIP(), []int{377} + return file_proto_Gameapi_proto_rawDescGZIP(), []int{378} } func (x *ReqPlayroomSetRoom) GetPlayroom() map[int32]int32 { @@ -21778,7 +21846,7 @@ type ResPlayroomSetRoom struct { func (x *ResPlayroomSetRoom) Reset() { *x = ResPlayroomSetRoom{} - mi := &file_proto_Gameapi_proto_msgTypes[378] + mi := &file_proto_Gameapi_proto_msgTypes[379] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -21790,7 +21858,7 @@ func (x *ResPlayroomSetRoom) String() string { func (*ResPlayroomSetRoom) ProtoMessage() {} func (x *ResPlayroomSetRoom) ProtoReflect() protoreflect.Message { - mi := &file_proto_Gameapi_proto_msgTypes[378] + mi := &file_proto_Gameapi_proto_msgTypes[379] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -21803,7 +21871,7 @@ func (x *ResPlayroomSetRoom) ProtoReflect() protoreflect.Message { // Deprecated: Use ResPlayroomSetRoom.ProtoReflect.Descriptor instead. func (*ResPlayroomSetRoom) Descriptor() ([]byte, []int) { - return file_proto_Gameapi_proto_rawDescGZIP(), []int{378} + return file_proto_Gameapi_proto_rawDescGZIP(), []int{379} } func (x *ResPlayroomSetRoom) GetCode() RES_CODE { @@ -21830,7 +21898,7 @@ type ReqPlayroomSelectReward struct { func (x *ReqPlayroomSelectReward) Reset() { *x = ReqPlayroomSelectReward{} - mi := &file_proto_Gameapi_proto_msgTypes[379] + mi := &file_proto_Gameapi_proto_msgTypes[380] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -21842,7 +21910,7 @@ func (x *ReqPlayroomSelectReward) String() string { func (*ReqPlayroomSelectReward) ProtoMessage() {} func (x *ReqPlayroomSelectReward) ProtoReflect() protoreflect.Message { - mi := &file_proto_Gameapi_proto_msgTypes[379] + mi := &file_proto_Gameapi_proto_msgTypes[380] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -21855,7 +21923,7 @@ func (x *ReqPlayroomSelectReward) ProtoReflect() protoreflect.Message { // Deprecated: Use ReqPlayroomSelectReward.ProtoReflect.Descriptor instead. func (*ReqPlayroomSelectReward) Descriptor() ([]byte, []int) { - return file_proto_Gameapi_proto_rawDescGZIP(), []int{379} + return file_proto_Gameapi_proto_rawDescGZIP(), []int{380} } func (x *ReqPlayroomSelectReward) GetId() int32 { @@ -21882,7 +21950,7 @@ type ResPlayroomSelectReward struct { func (x *ResPlayroomSelectReward) Reset() { *x = ResPlayroomSelectReward{} - mi := &file_proto_Gameapi_proto_msgTypes[380] + mi := &file_proto_Gameapi_proto_msgTypes[381] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -21894,7 +21962,7 @@ func (x *ResPlayroomSelectReward) String() string { func (*ResPlayroomSelectReward) ProtoMessage() {} func (x *ResPlayroomSelectReward) ProtoReflect() protoreflect.Message { - mi := &file_proto_Gameapi_proto_msgTypes[380] + mi := &file_proto_Gameapi_proto_msgTypes[381] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -21907,7 +21975,7 @@ func (x *ResPlayroomSelectReward) ProtoReflect() protoreflect.Message { // Deprecated: Use ResPlayroomSelectReward.ProtoReflect.Descriptor instead. func (*ResPlayroomSelectReward) Descriptor() ([]byte, []int) { - return file_proto_Gameapi_proto_rawDescGZIP(), []int{380} + return file_proto_Gameapi_proto_rawDescGZIP(), []int{381} } func (x *ResPlayroomSelectReward) GetCode() RES_CODE { @@ -21933,7 +22001,7 @@ type ReqPlayroomLose struct { func (x *ReqPlayroomLose) Reset() { *x = ReqPlayroomLose{} - mi := &file_proto_Gameapi_proto_msgTypes[381] + mi := &file_proto_Gameapi_proto_msgTypes[382] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -21945,7 +22013,7 @@ func (x *ReqPlayroomLose) String() string { func (*ReqPlayroomLose) ProtoMessage() {} func (x *ReqPlayroomLose) ProtoReflect() protoreflect.Message { - mi := &file_proto_Gameapi_proto_msgTypes[381] + mi := &file_proto_Gameapi_proto_msgTypes[382] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -21958,7 +22026,7 @@ func (x *ReqPlayroomLose) ProtoReflect() protoreflect.Message { // Deprecated: Use ReqPlayroomLose.ProtoReflect.Descriptor instead. func (*ReqPlayroomLose) Descriptor() ([]byte, []int) { - return file_proto_Gameapi_proto_rawDescGZIP(), []int{381} + return file_proto_Gameapi_proto_rawDescGZIP(), []int{382} } type ResPlayroomLose struct { @@ -21971,7 +22039,7 @@ type ResPlayroomLose struct { func (x *ResPlayroomLose) Reset() { *x = ResPlayroomLose{} - mi := &file_proto_Gameapi_proto_msgTypes[382] + mi := &file_proto_Gameapi_proto_msgTypes[383] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -21983,7 +22051,7 @@ func (x *ResPlayroomLose) String() string { func (*ResPlayroomLose) ProtoMessage() {} func (x *ResPlayroomLose) ProtoReflect() protoreflect.Message { - mi := &file_proto_Gameapi_proto_msgTypes[382] + mi := &file_proto_Gameapi_proto_msgTypes[383] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -21996,7 +22064,7 @@ func (x *ResPlayroomLose) ProtoReflect() protoreflect.Message { // Deprecated: Use ResPlayroomLose.ProtoReflect.Descriptor instead. func (*ResPlayroomLose) Descriptor() ([]byte, []int) { - return file_proto_Gameapi_proto_rawDescGZIP(), []int{382} + return file_proto_Gameapi_proto_rawDescGZIP(), []int{383} } func (x *ResPlayroomLose) GetCode() RES_CODE { @@ -22022,7 +22090,7 @@ type ReqPlayroomWork struct { func (x *ReqPlayroomWork) Reset() { *x = ReqPlayroomWork{} - mi := &file_proto_Gameapi_proto_msgTypes[383] + mi := &file_proto_Gameapi_proto_msgTypes[384] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -22034,7 +22102,7 @@ func (x *ReqPlayroomWork) String() string { func (*ReqPlayroomWork) ProtoMessage() {} func (x *ReqPlayroomWork) ProtoReflect() protoreflect.Message { - mi := &file_proto_Gameapi_proto_msgTypes[383] + mi := &file_proto_Gameapi_proto_msgTypes[384] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -22047,7 +22115,7 @@ func (x *ReqPlayroomWork) ProtoReflect() protoreflect.Message { // Deprecated: Use ReqPlayroomWork.ProtoReflect.Descriptor instead. func (*ReqPlayroomWork) Descriptor() ([]byte, []int) { - return file_proto_Gameapi_proto_rawDescGZIP(), []int{383} + return file_proto_Gameapi_proto_rawDescGZIP(), []int{384} } type ResPlayroomWork struct { @@ -22060,7 +22128,7 @@ type ResPlayroomWork struct { func (x *ResPlayroomWork) Reset() { *x = ResPlayroomWork{} - mi := &file_proto_Gameapi_proto_msgTypes[384] + mi := &file_proto_Gameapi_proto_msgTypes[385] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -22072,7 +22140,7 @@ func (x *ResPlayroomWork) String() string { func (*ResPlayroomWork) ProtoMessage() {} func (x *ResPlayroomWork) ProtoReflect() protoreflect.Message { - mi := &file_proto_Gameapi_proto_msgTypes[384] + mi := &file_proto_Gameapi_proto_msgTypes[385] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -22085,7 +22153,7 @@ func (x *ResPlayroomWork) ProtoReflect() protoreflect.Message { // Deprecated: Use ResPlayroomWork.ProtoReflect.Descriptor instead. func (*ResPlayroomWork) Descriptor() ([]byte, []int) { - return file_proto_Gameapi_proto_rawDescGZIP(), []int{384} + return file_proto_Gameapi_proto_rawDescGZIP(), []int{385} } func (x *ResPlayroomWork) GetCode() RES_CODE { @@ -22111,7 +22179,7 @@ type ReqPlayroomRest struct { func (x *ReqPlayroomRest) Reset() { *x = ReqPlayroomRest{} - mi := &file_proto_Gameapi_proto_msgTypes[385] + mi := &file_proto_Gameapi_proto_msgTypes[386] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -22123,7 +22191,7 @@ func (x *ReqPlayroomRest) String() string { func (*ReqPlayroomRest) ProtoMessage() {} func (x *ReqPlayroomRest) ProtoReflect() protoreflect.Message { - mi := &file_proto_Gameapi_proto_msgTypes[385] + mi := &file_proto_Gameapi_proto_msgTypes[386] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -22136,7 +22204,7 @@ func (x *ReqPlayroomRest) ProtoReflect() protoreflect.Message { // Deprecated: Use ReqPlayroomRest.ProtoReflect.Descriptor instead. func (*ReqPlayroomRest) Descriptor() ([]byte, []int) { - return file_proto_Gameapi_proto_rawDescGZIP(), []int{385} + return file_proto_Gameapi_proto_rawDescGZIP(), []int{386} } type ResPlayroomRest struct { @@ -22149,7 +22217,7 @@ type ResPlayroomRest struct { func (x *ResPlayroomRest) Reset() { *x = ResPlayroomRest{} - mi := &file_proto_Gameapi_proto_msgTypes[386] + mi := &file_proto_Gameapi_proto_msgTypes[387] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -22161,7 +22229,7 @@ func (x *ResPlayroomRest) String() string { func (*ResPlayroomRest) ProtoMessage() {} func (x *ResPlayroomRest) ProtoReflect() protoreflect.Message { - mi := &file_proto_Gameapi_proto_msgTypes[386] + mi := &file_proto_Gameapi_proto_msgTypes[387] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -22174,7 +22242,7 @@ func (x *ResPlayroomRest) ProtoReflect() protoreflect.Message { // Deprecated: Use ResPlayroomRest.ProtoReflect.Descriptor instead. func (*ResPlayroomRest) Descriptor() ([]byte, []int) { - return file_proto_Gameapi_proto_rawDescGZIP(), []int{386} + return file_proto_Gameapi_proto_rawDescGZIP(), []int{387} } func (x *ResPlayroomRest) GetCode() RES_CODE { @@ -22200,7 +22268,7 @@ type ReqPlayroomDraw struct { func (x *ReqPlayroomDraw) Reset() { *x = ReqPlayroomDraw{} - mi := &file_proto_Gameapi_proto_msgTypes[387] + mi := &file_proto_Gameapi_proto_msgTypes[388] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -22212,7 +22280,7 @@ func (x *ReqPlayroomDraw) String() string { func (*ReqPlayroomDraw) ProtoMessage() {} func (x *ReqPlayroomDraw) ProtoReflect() protoreflect.Message { - mi := &file_proto_Gameapi_proto_msgTypes[387] + mi := &file_proto_Gameapi_proto_msgTypes[388] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -22225,7 +22293,7 @@ func (x *ReqPlayroomDraw) ProtoReflect() protoreflect.Message { // Deprecated: Use ReqPlayroomDraw.ProtoReflect.Descriptor instead. func (*ReqPlayroomDraw) Descriptor() ([]byte, []int) { - return file_proto_Gameapi_proto_rawDescGZIP(), []int{387} + return file_proto_Gameapi_proto_rawDescGZIP(), []int{388} } type ResPlayroomDraw struct { @@ -22239,7 +22307,7 @@ type ResPlayroomDraw struct { func (x *ResPlayroomDraw) Reset() { *x = ResPlayroomDraw{} - mi := &file_proto_Gameapi_proto_msgTypes[388] + mi := &file_proto_Gameapi_proto_msgTypes[389] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -22251,7 +22319,7 @@ func (x *ResPlayroomDraw) String() string { func (*ResPlayroomDraw) ProtoMessage() {} func (x *ResPlayroomDraw) ProtoReflect() protoreflect.Message { - mi := &file_proto_Gameapi_proto_msgTypes[388] + mi := &file_proto_Gameapi_proto_msgTypes[389] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -22264,7 +22332,7 @@ func (x *ResPlayroomDraw) ProtoReflect() protoreflect.Message { // Deprecated: Use ResPlayroomDraw.ProtoReflect.Descriptor instead. func (*ResPlayroomDraw) Descriptor() ([]byte, []int) { - return file_proto_Gameapi_proto_rawDescGZIP(), []int{388} + return file_proto_Gameapi_proto_rawDescGZIP(), []int{389} } func (x *ResPlayroomDraw) GetCode() RES_CODE { @@ -22298,7 +22366,7 @@ type ReqPlayroomChip struct { func (x *ReqPlayroomChip) Reset() { *x = ReqPlayroomChip{} - mi := &file_proto_Gameapi_proto_msgTypes[389] + mi := &file_proto_Gameapi_proto_msgTypes[390] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -22310,7 +22378,7 @@ func (x *ReqPlayroomChip) String() string { func (*ReqPlayroomChip) ProtoMessage() {} func (x *ReqPlayroomChip) ProtoReflect() protoreflect.Message { - mi := &file_proto_Gameapi_proto_msgTypes[389] + mi := &file_proto_Gameapi_proto_msgTypes[390] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -22323,7 +22391,7 @@ func (x *ReqPlayroomChip) ProtoReflect() protoreflect.Message { // Deprecated: Use ReqPlayroomChip.ProtoReflect.Descriptor instead. func (*ReqPlayroomChip) Descriptor() ([]byte, []int) { - return file_proto_Gameapi_proto_rawDescGZIP(), []int{389} + return file_proto_Gameapi_proto_rawDescGZIP(), []int{390} } func (x *ReqPlayroomChip) GetUid() []int64 { @@ -22343,7 +22411,7 @@ type ResPlayroomChip struct { func (x *ResPlayroomChip) Reset() { *x = ResPlayroomChip{} - mi := &file_proto_Gameapi_proto_msgTypes[390] + mi := &file_proto_Gameapi_proto_msgTypes[391] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -22355,7 +22423,7 @@ func (x *ResPlayroomChip) String() string { func (*ResPlayroomChip) ProtoMessage() {} func (x *ResPlayroomChip) ProtoReflect() protoreflect.Message { - mi := &file_proto_Gameapi_proto_msgTypes[390] + mi := &file_proto_Gameapi_proto_msgTypes[391] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -22368,7 +22436,7 @@ func (x *ResPlayroomChip) ProtoReflect() protoreflect.Message { // Deprecated: Use ResPlayroomChip.ProtoReflect.Descriptor instead. func (*ResPlayroomChip) Descriptor() ([]byte, []int) { - return file_proto_Gameapi_proto_rawDescGZIP(), []int{390} + return file_proto_Gameapi_proto_rawDescGZIP(), []int{391} } func (x *ResPlayroomChip) GetCode() RES_CODE { @@ -22394,7 +22462,7 @@ type ReqPlayroomBuyItem struct { func (x *ReqPlayroomBuyItem) Reset() { *x = ReqPlayroomBuyItem{} - mi := &file_proto_Gameapi_proto_msgTypes[391] + mi := &file_proto_Gameapi_proto_msgTypes[392] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -22406,7 +22474,7 @@ func (x *ReqPlayroomBuyItem) String() string { func (*ReqPlayroomBuyItem) ProtoMessage() {} func (x *ReqPlayroomBuyItem) ProtoReflect() protoreflect.Message { - mi := &file_proto_Gameapi_proto_msgTypes[391] + mi := &file_proto_Gameapi_proto_msgTypes[392] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -22419,7 +22487,7 @@ func (x *ReqPlayroomBuyItem) ProtoReflect() protoreflect.Message { // Deprecated: Use ReqPlayroomBuyItem.ProtoReflect.Descriptor instead. func (*ReqPlayroomBuyItem) Descriptor() ([]byte, []int) { - return file_proto_Gameapi_proto_rawDescGZIP(), []int{391} + return file_proto_Gameapi_proto_rawDescGZIP(), []int{392} } func (x *ReqPlayroomBuyItem) GetId() int32 { @@ -22439,7 +22507,7 @@ type ResPlayroomBuyItem struct { func (x *ResPlayroomBuyItem) Reset() { *x = ResPlayroomBuyItem{} - mi := &file_proto_Gameapi_proto_msgTypes[392] + mi := &file_proto_Gameapi_proto_msgTypes[393] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -22451,7 +22519,7 @@ func (x *ResPlayroomBuyItem) String() string { func (*ResPlayroomBuyItem) ProtoMessage() {} func (x *ResPlayroomBuyItem) ProtoReflect() protoreflect.Message { - mi := &file_proto_Gameapi_proto_msgTypes[392] + mi := &file_proto_Gameapi_proto_msgTypes[393] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -22464,7 +22532,7 @@ func (x *ResPlayroomBuyItem) ProtoReflect() protoreflect.Message { // Deprecated: Use ResPlayroomBuyItem.ProtoReflect.Descriptor instead. func (*ResPlayroomBuyItem) Descriptor() ([]byte, []int) { - return file_proto_Gameapi_proto_rawDescGZIP(), []int{392} + return file_proto_Gameapi_proto_rawDescGZIP(), []int{393} } func (x *ResPlayroomBuyItem) GetCode() RES_CODE { @@ -22492,7 +22560,7 @@ type ReqPlayroomShop struct { func (x *ReqPlayroomShop) Reset() { *x = ReqPlayroomShop{} - mi := &file_proto_Gameapi_proto_msgTypes[393] + mi := &file_proto_Gameapi_proto_msgTypes[394] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -22504,7 +22572,7 @@ func (x *ReqPlayroomShop) String() string { func (*ReqPlayroomShop) ProtoMessage() {} func (x *ReqPlayroomShop) ProtoReflect() protoreflect.Message { - mi := &file_proto_Gameapi_proto_msgTypes[393] + mi := &file_proto_Gameapi_proto_msgTypes[394] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -22517,7 +22585,7 @@ func (x *ReqPlayroomShop) ProtoReflect() protoreflect.Message { // Deprecated: Use ReqPlayroomShop.ProtoReflect.Descriptor instead. func (*ReqPlayroomShop) Descriptor() ([]byte, []int) { - return file_proto_Gameapi_proto_rawDescGZIP(), []int{393} + return file_proto_Gameapi_proto_rawDescGZIP(), []int{394} } func (x *ReqPlayroomShop) GetId() int32 { @@ -22544,7 +22612,7 @@ type ResPlayroomShop struct { func (x *ResPlayroomShop) Reset() { *x = ResPlayroomShop{} - mi := &file_proto_Gameapi_proto_msgTypes[394] + mi := &file_proto_Gameapi_proto_msgTypes[395] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -22556,7 +22624,7 @@ func (x *ResPlayroomShop) String() string { func (*ResPlayroomShop) ProtoMessage() {} func (x *ResPlayroomShop) ProtoReflect() protoreflect.Message { - mi := &file_proto_Gameapi_proto_msgTypes[394] + mi := &file_proto_Gameapi_proto_msgTypes[395] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -22569,7 +22637,7 @@ func (x *ResPlayroomShop) ProtoReflect() protoreflect.Message { // Deprecated: Use ResPlayroomShop.ProtoReflect.Descriptor instead. func (*ResPlayroomShop) Descriptor() ([]byte, []int) { - return file_proto_Gameapi_proto_rawDescGZIP(), []int{394} + return file_proto_Gameapi_proto_rawDescGZIP(), []int{395} } func (x *ResPlayroomShop) GetCode() RES_CODE { @@ -22595,7 +22663,7 @@ type ReqFriendTreasure struct { func (x *ReqFriendTreasure) Reset() { *x = ReqFriendTreasure{} - mi := &file_proto_Gameapi_proto_msgTypes[395] + mi := &file_proto_Gameapi_proto_msgTypes[396] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -22607,7 +22675,7 @@ func (x *ReqFriendTreasure) String() string { func (*ReqFriendTreasure) ProtoMessage() {} func (x *ReqFriendTreasure) ProtoReflect() protoreflect.Message { - mi := &file_proto_Gameapi_proto_msgTypes[395] + mi := &file_proto_Gameapi_proto_msgTypes[396] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -22620,7 +22688,7 @@ func (x *ReqFriendTreasure) ProtoReflect() protoreflect.Message { // Deprecated: Use ReqFriendTreasure.ProtoReflect.Descriptor instead. func (*ReqFriendTreasure) Descriptor() ([]byte, []int) { - return file_proto_Gameapi_proto_rawDescGZIP(), []int{395} + return file_proto_Gameapi_proto_rawDescGZIP(), []int{396} } type ResFriendTreasure struct { @@ -22637,7 +22705,7 @@ type ResFriendTreasure struct { func (x *ResFriendTreasure) Reset() { *x = ResFriendTreasure{} - mi := &file_proto_Gameapi_proto_msgTypes[396] + mi := &file_proto_Gameapi_proto_msgTypes[397] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -22649,7 +22717,7 @@ func (x *ResFriendTreasure) String() string { func (*ResFriendTreasure) ProtoMessage() {} func (x *ResFriendTreasure) ProtoReflect() protoreflect.Message { - mi := &file_proto_Gameapi_proto_msgTypes[396] + mi := &file_proto_Gameapi_proto_msgTypes[397] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -22662,7 +22730,7 @@ func (x *ResFriendTreasure) ProtoReflect() protoreflect.Message { // Deprecated: Use ResFriendTreasure.ProtoReflect.Descriptor instead. func (*ResFriendTreasure) Descriptor() ([]byte, []int) { - return file_proto_Gameapi_proto_rawDescGZIP(), []int{396} + return file_proto_Gameapi_proto_rawDescGZIP(), []int{397} } func (x *ResFriendTreasure) GetStatus() int32 { @@ -22722,7 +22790,7 @@ type TreasureInfo struct { func (x *TreasureInfo) Reset() { *x = TreasureInfo{} - mi := &file_proto_Gameapi_proto_msgTypes[397] + mi := &file_proto_Gameapi_proto_msgTypes[398] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -22734,7 +22802,7 @@ func (x *TreasureInfo) String() string { func (*TreasureInfo) ProtoMessage() {} func (x *TreasureInfo) ProtoReflect() protoreflect.Message { - mi := &file_proto_Gameapi_proto_msgTypes[397] + mi := &file_proto_Gameapi_proto_msgTypes[398] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -22747,7 +22815,7 @@ func (x *TreasureInfo) ProtoReflect() protoreflect.Message { // Deprecated: Use TreasureInfo.ProtoReflect.Descriptor instead. func (*TreasureInfo) Descriptor() ([]byte, []int) { - return file_proto_Gameapi_proto_rawDescGZIP(), []int{397} + return file_proto_Gameapi_proto_rawDescGZIP(), []int{398} } func (x *TreasureInfo) GetPos() int32 { @@ -22809,7 +22877,7 @@ type ReqFriendTreasureStart struct { func (x *ReqFriendTreasureStart) Reset() { *x = ReqFriendTreasureStart{} - mi := &file_proto_Gameapi_proto_msgTypes[398] + mi := &file_proto_Gameapi_proto_msgTypes[399] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -22821,7 +22889,7 @@ func (x *ReqFriendTreasureStart) String() string { func (*ReqFriendTreasureStart) ProtoMessage() {} func (x *ReqFriendTreasureStart) ProtoReflect() protoreflect.Message { - mi := &file_proto_Gameapi_proto_msgTypes[398] + mi := &file_proto_Gameapi_proto_msgTypes[399] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -22834,7 +22902,7 @@ func (x *ReqFriendTreasureStart) ProtoReflect() protoreflect.Message { // Deprecated: Use ReqFriendTreasureStart.ProtoReflect.Descriptor instead. func (*ReqFriendTreasureStart) Descriptor() ([]byte, []int) { - return file_proto_Gameapi_proto_rawDescGZIP(), []int{398} + return file_proto_Gameapi_proto_rawDescGZIP(), []int{399} } func (x *ReqFriendTreasureStart) GetList() []*TreasureInfo { @@ -22861,7 +22929,7 @@ type ResFriendTreasureStart struct { func (x *ResFriendTreasureStart) Reset() { *x = ResFriendTreasureStart{} - mi := &file_proto_Gameapi_proto_msgTypes[399] + mi := &file_proto_Gameapi_proto_msgTypes[400] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -22873,7 +22941,7 @@ func (x *ResFriendTreasureStart) String() string { func (*ResFriendTreasureStart) ProtoMessage() {} func (x *ResFriendTreasureStart) ProtoReflect() protoreflect.Message { - mi := &file_proto_Gameapi_proto_msgTypes[399] + mi := &file_proto_Gameapi_proto_msgTypes[400] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -22886,7 +22954,7 @@ func (x *ResFriendTreasureStart) ProtoReflect() protoreflect.Message { // Deprecated: Use ResFriendTreasureStart.ProtoReflect.Descriptor instead. func (*ResFriendTreasureStart) Descriptor() ([]byte, []int) { - return file_proto_Gameapi_proto_rawDescGZIP(), []int{399} + return file_proto_Gameapi_proto_rawDescGZIP(), []int{400} } func (x *ResFriendTreasureStart) GetCode() RES_CODE { @@ -22911,7 +22979,7 @@ type ReqFriendTreasureEnd struct { func (x *ReqFriendTreasureEnd) Reset() { *x = ReqFriendTreasureEnd{} - mi := &file_proto_Gameapi_proto_msgTypes[400] + mi := &file_proto_Gameapi_proto_msgTypes[401] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -22923,7 +22991,7 @@ func (x *ReqFriendTreasureEnd) String() string { func (*ReqFriendTreasureEnd) ProtoMessage() {} func (x *ReqFriendTreasureEnd) ProtoReflect() protoreflect.Message { - mi := &file_proto_Gameapi_proto_msgTypes[400] + mi := &file_proto_Gameapi_proto_msgTypes[401] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -22936,7 +23004,7 @@ func (x *ReqFriendTreasureEnd) ProtoReflect() protoreflect.Message { // Deprecated: Use ReqFriendTreasureEnd.ProtoReflect.Descriptor instead. func (*ReqFriendTreasureEnd) Descriptor() ([]byte, []int) { - return file_proto_Gameapi_proto_rawDescGZIP(), []int{400} + return file_proto_Gameapi_proto_rawDescGZIP(), []int{401} } type ResFriendTreasureEnd struct { @@ -22949,7 +23017,7 @@ type ResFriendTreasureEnd struct { func (x *ResFriendTreasureEnd) Reset() { *x = ResFriendTreasureEnd{} - mi := &file_proto_Gameapi_proto_msgTypes[401] + mi := &file_proto_Gameapi_proto_msgTypes[402] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -22961,7 +23029,7 @@ func (x *ResFriendTreasureEnd) String() string { func (*ResFriendTreasureEnd) ProtoMessage() {} func (x *ResFriendTreasureEnd) ProtoReflect() protoreflect.Message { - mi := &file_proto_Gameapi_proto_msgTypes[401] + mi := &file_proto_Gameapi_proto_msgTypes[402] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -22974,7 +23042,7 @@ func (x *ResFriendTreasureEnd) ProtoReflect() protoreflect.Message { // Deprecated: Use ResFriendTreasureEnd.ProtoReflect.Descriptor instead. func (*ResFriendTreasureEnd) Descriptor() ([]byte, []int) { - return file_proto_Gameapi_proto_rawDescGZIP(), []int{401} + return file_proto_Gameapi_proto_rawDescGZIP(), []int{402} } func (x *ResFriendTreasureEnd) GetCode() RES_CODE { @@ -23000,7 +23068,7 @@ type ReqFriendTreasureFilp struct { func (x *ReqFriendTreasureFilp) Reset() { *x = ReqFriendTreasureFilp{} - mi := &file_proto_Gameapi_proto_msgTypes[402] + mi := &file_proto_Gameapi_proto_msgTypes[403] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -23012,7 +23080,7 @@ func (x *ReqFriendTreasureFilp) String() string { func (*ReqFriendTreasureFilp) ProtoMessage() {} func (x *ReqFriendTreasureFilp) ProtoReflect() protoreflect.Message { - mi := &file_proto_Gameapi_proto_msgTypes[402] + mi := &file_proto_Gameapi_proto_msgTypes[403] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -23025,7 +23093,7 @@ func (x *ReqFriendTreasureFilp) ProtoReflect() protoreflect.Message { // Deprecated: Use ReqFriendTreasureFilp.ProtoReflect.Descriptor instead. func (*ReqFriendTreasureFilp) Descriptor() ([]byte, []int) { - return file_proto_Gameapi_proto_rawDescGZIP(), []int{402} + return file_proto_Gameapi_proto_rawDescGZIP(), []int{403} } func (x *ReqFriendTreasureFilp) GetPos() int32 { @@ -23045,7 +23113,7 @@ type ResFriendTreasureFilp struct { func (x *ResFriendTreasureFilp) Reset() { *x = ResFriendTreasureFilp{} - mi := &file_proto_Gameapi_proto_msgTypes[403] + mi := &file_proto_Gameapi_proto_msgTypes[404] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -23057,7 +23125,7 @@ func (x *ResFriendTreasureFilp) String() string { func (*ResFriendTreasureFilp) ProtoMessage() {} func (x *ResFriendTreasureFilp) ProtoReflect() protoreflect.Message { - mi := &file_proto_Gameapi_proto_msgTypes[403] + mi := &file_proto_Gameapi_proto_msgTypes[404] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -23070,7 +23138,7 @@ func (x *ResFriendTreasureFilp) ProtoReflect() protoreflect.Message { // Deprecated: Use ResFriendTreasureFilp.ProtoReflect.Descriptor instead. func (*ResFriendTreasureFilp) Descriptor() ([]byte, []int) { - return file_proto_Gameapi_proto_rawDescGZIP(), []int{403} + return file_proto_Gameapi_proto_rawDescGZIP(), []int{404} } func (x *ResFriendTreasureFilp) GetCode() RES_CODE { @@ -23096,7 +23164,7 @@ type ResFriendTreasureStar struct { func (x *ResFriendTreasureStar) Reset() { *x = ResFriendTreasureStar{} - mi := &file_proto_Gameapi_proto_msgTypes[404] + mi := &file_proto_Gameapi_proto_msgTypes[405] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -23108,7 +23176,7 @@ func (x *ResFriendTreasureStar) String() string { func (*ResFriendTreasureStar) ProtoMessage() {} func (x *ResFriendTreasureStar) ProtoReflect() protoreflect.Message { - mi := &file_proto_Gameapi_proto_msgTypes[404] + mi := &file_proto_Gameapi_proto_msgTypes[405] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -23121,7 +23189,7 @@ func (x *ResFriendTreasureStar) ProtoReflect() protoreflect.Message { // Deprecated: Use ResFriendTreasureStar.ProtoReflect.Descriptor instead. func (*ResFriendTreasureStar) Descriptor() ([]byte, []int) { - return file_proto_Gameapi_proto_rawDescGZIP(), []int{404} + return file_proto_Gameapi_proto_rawDescGZIP(), []int{405} } func (x *ResFriendTreasureStar) GetStar() int32 { @@ -23141,7 +23209,7 @@ type ReqKafkaLog struct { func (x *ReqKafkaLog) Reset() { *x = ReqKafkaLog{} - mi := &file_proto_Gameapi_proto_msgTypes[405] + mi := &file_proto_Gameapi_proto_msgTypes[406] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -23153,7 +23221,7 @@ func (x *ReqKafkaLog) String() string { func (*ReqKafkaLog) ProtoMessage() {} func (x *ReqKafkaLog) ProtoReflect() protoreflect.Message { - mi := &file_proto_Gameapi_proto_msgTypes[405] + mi := &file_proto_Gameapi_proto_msgTypes[406] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -23166,7 +23234,7 @@ func (x *ReqKafkaLog) ProtoReflect() protoreflect.Message { // Deprecated: Use ReqKafkaLog.ProtoReflect.Descriptor instead. func (*ReqKafkaLog) Descriptor() ([]byte, []int) { - return file_proto_Gameapi_proto_rawDescGZIP(), []int{405} + return file_proto_Gameapi_proto_rawDescGZIP(), []int{406} } func (x *ReqKafkaLog) GetEvent() string { @@ -23191,7 +23259,7 @@ type ReqCollectInfo struct { func (x *ReqCollectInfo) Reset() { *x = ReqCollectInfo{} - mi := &file_proto_Gameapi_proto_msgTypes[406] + mi := &file_proto_Gameapi_proto_msgTypes[407] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -23203,7 +23271,7 @@ func (x *ReqCollectInfo) String() string { func (*ReqCollectInfo) ProtoMessage() {} func (x *ReqCollectInfo) ProtoReflect() protoreflect.Message { - mi := &file_proto_Gameapi_proto_msgTypes[406] + mi := &file_proto_Gameapi_proto_msgTypes[407] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -23216,7 +23284,7 @@ func (x *ReqCollectInfo) ProtoReflect() protoreflect.Message { // Deprecated: Use ReqCollectInfo.ProtoReflect.Descriptor instead. func (*ReqCollectInfo) Descriptor() ([]byte, []int) { - return file_proto_Gameapi_proto_rawDescGZIP(), []int{406} + return file_proto_Gameapi_proto_rawDescGZIP(), []int{407} } type ResCollectInfo struct { @@ -23229,7 +23297,7 @@ type ResCollectInfo struct { func (x *ResCollectInfo) Reset() { *x = ResCollectInfo{} - mi := &file_proto_Gameapi_proto_msgTypes[407] + mi := &file_proto_Gameapi_proto_msgTypes[408] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -23241,7 +23309,7 @@ func (x *ResCollectInfo) String() string { func (*ResCollectInfo) ProtoMessage() {} func (x *ResCollectInfo) ProtoReflect() protoreflect.Message { - mi := &file_proto_Gameapi_proto_msgTypes[407] + mi := &file_proto_Gameapi_proto_msgTypes[408] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -23254,7 +23322,7 @@ func (x *ResCollectInfo) ProtoReflect() protoreflect.Message { // Deprecated: Use ResCollectInfo.ProtoReflect.Descriptor instead. func (*ResCollectInfo) Descriptor() ([]byte, []int) { - return file_proto_Gameapi_proto_rawDescGZIP(), []int{407} + return file_proto_Gameapi_proto_rawDescGZIP(), []int{408} } func (x *ResCollectInfo) GetId() []int32 { @@ -23281,7 +23349,7 @@ type CollectItem struct { func (x *CollectItem) Reset() { *x = CollectItem{} - mi := &file_proto_Gameapi_proto_msgTypes[408] + mi := &file_proto_Gameapi_proto_msgTypes[409] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -23293,7 +23361,7 @@ func (x *CollectItem) String() string { func (*CollectItem) ProtoMessage() {} func (x *CollectItem) ProtoReflect() protoreflect.Message { - mi := &file_proto_Gameapi_proto_msgTypes[408] + mi := &file_proto_Gameapi_proto_msgTypes[409] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -23306,7 +23374,7 @@ func (x *CollectItem) ProtoReflect() protoreflect.Message { // Deprecated: Use CollectItem.ProtoReflect.Descriptor instead. func (*CollectItem) Descriptor() ([]byte, []int) { - return file_proto_Gameapi_proto_rawDescGZIP(), []int{408} + return file_proto_Gameapi_proto_rawDescGZIP(), []int{409} } func (x *CollectItem) GetId() int32 { @@ -23332,7 +23400,7 @@ type ReqCollect struct { func (x *ReqCollect) Reset() { *x = ReqCollect{} - mi := &file_proto_Gameapi_proto_msgTypes[409] + mi := &file_proto_Gameapi_proto_msgTypes[410] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -23344,7 +23412,7 @@ func (x *ReqCollect) String() string { func (*ReqCollect) ProtoMessage() {} func (x *ReqCollect) ProtoReflect() protoreflect.Message { - mi := &file_proto_Gameapi_proto_msgTypes[409] + mi := &file_proto_Gameapi_proto_msgTypes[410] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -23357,7 +23425,7 @@ func (x *ReqCollect) ProtoReflect() protoreflect.Message { // Deprecated: Use ReqCollect.ProtoReflect.Descriptor instead. func (*ReqCollect) Descriptor() ([]byte, []int) { - return file_proto_Gameapi_proto_rawDescGZIP(), []int{409} + return file_proto_Gameapi_proto_rawDescGZIP(), []int{410} } func (x *ReqCollect) GetId() int32 { @@ -23377,7 +23445,7 @@ type ResCollect struct { func (x *ResCollect) Reset() { *x = ResCollect{} - mi := &file_proto_Gameapi_proto_msgTypes[410] + mi := &file_proto_Gameapi_proto_msgTypes[411] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -23389,7 +23457,7 @@ func (x *ResCollect) String() string { func (*ResCollect) ProtoMessage() {} func (x *ResCollect) ProtoReflect() protoreflect.Message { - mi := &file_proto_Gameapi_proto_msgTypes[410] + mi := &file_proto_Gameapi_proto_msgTypes[411] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -23402,7 +23470,7 @@ func (x *ResCollect) ProtoReflect() protoreflect.Message { // Deprecated: Use ResCollect.ProtoReflect.Descriptor instead. func (*ResCollect) Descriptor() ([]byte, []int) { - return file_proto_Gameapi_proto_rawDescGZIP(), []int{410} + return file_proto_Gameapi_proto_rawDescGZIP(), []int{411} } func (x *ResCollect) GetCode() RES_CODE { @@ -23430,7 +23498,7 @@ type ReqCatnip struct { func (x *ReqCatnip) Reset() { *x = ReqCatnip{} - mi := &file_proto_Gameapi_proto_msgTypes[411] + mi := &file_proto_Gameapi_proto_msgTypes[412] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -23442,7 +23510,7 @@ func (x *ReqCatnip) String() string { func (*ReqCatnip) ProtoMessage() {} func (x *ReqCatnip) ProtoReflect() protoreflect.Message { - mi := &file_proto_Gameapi_proto_msgTypes[411] + mi := &file_proto_Gameapi_proto_msgTypes[412] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -23455,7 +23523,7 @@ func (x *ReqCatnip) ProtoReflect() protoreflect.Message { // Deprecated: Use ReqCatnip.ProtoReflect.Descriptor instead. func (*ReqCatnip) Descriptor() ([]byte, []int) { - return file_proto_Gameapi_proto_rawDescGZIP(), []int{411} + return file_proto_Gameapi_proto_rawDescGZIP(), []int{412} } type ResCatnip struct { @@ -23471,7 +23539,7 @@ type ResCatnip struct { func (x *ResCatnip) Reset() { *x = ResCatnip{} - mi := &file_proto_Gameapi_proto_msgTypes[412] + mi := &file_proto_Gameapi_proto_msgTypes[413] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -23483,7 +23551,7 @@ func (x *ResCatnip) String() string { func (*ResCatnip) ProtoMessage() {} func (x *ResCatnip) ProtoReflect() protoreflect.Message { - mi := &file_proto_Gameapi_proto_msgTypes[412] + mi := &file_proto_Gameapi_proto_msgTypes[413] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -23496,7 +23564,7 @@ func (x *ResCatnip) ProtoReflect() protoreflect.Message { // Deprecated: Use ResCatnip.ProtoReflect.Descriptor instead. func (*ResCatnip) Descriptor() ([]byte, []int) { - return file_proto_Gameapi_proto_rawDescGZIP(), []int{412} + return file_proto_Gameapi_proto_rawDescGZIP(), []int{413} } func (x *ResCatnip) GetId() int32 { @@ -23548,7 +23616,7 @@ type CatnipGame struct { func (x *CatnipGame) Reset() { *x = CatnipGame{} - mi := &file_proto_Gameapi_proto_msgTypes[413] + mi := &file_proto_Gameapi_proto_msgTypes[414] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -23560,7 +23628,7 @@ func (x *CatnipGame) String() string { func (*CatnipGame) ProtoMessage() {} func (x *CatnipGame) ProtoReflect() protoreflect.Message { - mi := &file_proto_Gameapi_proto_msgTypes[413] + mi := &file_proto_Gameapi_proto_msgTypes[414] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -23573,7 +23641,7 @@ func (x *CatnipGame) ProtoReflect() protoreflect.Message { // Deprecated: Use CatnipGame.ProtoReflect.Descriptor instead. func (*CatnipGame) Descriptor() ([]byte, []int) { - return file_proto_Gameapi_proto_rawDescGZIP(), []int{413} + return file_proto_Gameapi_proto_rawDescGZIP(), []int{414} } func (x *CatnipGame) GetId() int32 { @@ -23622,7 +23690,7 @@ type ReqCatnipInvite struct { func (x *ReqCatnipInvite) Reset() { *x = ReqCatnipInvite{} - mi := &file_proto_Gameapi_proto_msgTypes[414] + mi := &file_proto_Gameapi_proto_msgTypes[415] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -23634,7 +23702,7 @@ func (x *ReqCatnipInvite) String() string { func (*ReqCatnipInvite) ProtoMessage() {} func (x *ReqCatnipInvite) ProtoReflect() protoreflect.Message { - mi := &file_proto_Gameapi_proto_msgTypes[414] + mi := &file_proto_Gameapi_proto_msgTypes[415] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -23647,7 +23715,7 @@ func (x *ReqCatnipInvite) ProtoReflect() protoreflect.Message { // Deprecated: Use ReqCatnipInvite.ProtoReflect.Descriptor instead. func (*ReqCatnipInvite) Descriptor() ([]byte, []int) { - return file_proto_Gameapi_proto_rawDescGZIP(), []int{414} + return file_proto_Gameapi_proto_rawDescGZIP(), []int{415} } func (x *ReqCatnipInvite) GetId() int32 { @@ -23674,7 +23742,7 @@ type ResCatnipInvite struct { func (x *ResCatnipInvite) Reset() { *x = ResCatnipInvite{} - mi := &file_proto_Gameapi_proto_msgTypes[415] + mi := &file_proto_Gameapi_proto_msgTypes[416] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -23686,7 +23754,7 @@ func (x *ResCatnipInvite) String() string { func (*ResCatnipInvite) ProtoMessage() {} func (x *ResCatnipInvite) ProtoReflect() protoreflect.Message { - mi := &file_proto_Gameapi_proto_msgTypes[415] + mi := &file_proto_Gameapi_proto_msgTypes[416] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -23699,7 +23767,7 @@ func (x *ResCatnipInvite) ProtoReflect() protoreflect.Message { // Deprecated: Use ResCatnipInvite.ProtoReflect.Descriptor instead. func (*ResCatnipInvite) Descriptor() ([]byte, []int) { - return file_proto_Gameapi_proto_rawDescGZIP(), []int{415} + return file_proto_Gameapi_proto_rawDescGZIP(), []int{416} } func (x *ResCatnipInvite) GetCode() RES_CODE { @@ -23727,7 +23795,7 @@ type ReqCatnipAgree struct { func (x *ReqCatnipAgree) Reset() { *x = ReqCatnipAgree{} - mi := &file_proto_Gameapi_proto_msgTypes[416] + mi := &file_proto_Gameapi_proto_msgTypes[417] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -23739,7 +23807,7 @@ func (x *ReqCatnipAgree) String() string { func (*ReqCatnipAgree) ProtoMessage() {} func (x *ReqCatnipAgree) ProtoReflect() protoreflect.Message { - mi := &file_proto_Gameapi_proto_msgTypes[416] + mi := &file_proto_Gameapi_proto_msgTypes[417] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -23752,7 +23820,7 @@ func (x *ReqCatnipAgree) ProtoReflect() protoreflect.Message { // Deprecated: Use ReqCatnipAgree.ProtoReflect.Descriptor instead. func (*ReqCatnipAgree) Descriptor() ([]byte, []int) { - return file_proto_Gameapi_proto_rawDescGZIP(), []int{416} + return file_proto_Gameapi_proto_rawDescGZIP(), []int{417} } func (x *ReqCatnipAgree) GetId() int32 { @@ -23779,7 +23847,7 @@ type ResCatnipAgree struct { func (x *ResCatnipAgree) Reset() { *x = ResCatnipAgree{} - mi := &file_proto_Gameapi_proto_msgTypes[417] + mi := &file_proto_Gameapi_proto_msgTypes[418] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -23791,7 +23859,7 @@ func (x *ResCatnipAgree) String() string { func (*ResCatnipAgree) ProtoMessage() {} func (x *ResCatnipAgree) ProtoReflect() protoreflect.Message { - mi := &file_proto_Gameapi_proto_msgTypes[417] + mi := &file_proto_Gameapi_proto_msgTypes[418] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -23804,7 +23872,7 @@ func (x *ResCatnipAgree) ProtoReflect() protoreflect.Message { // Deprecated: Use ResCatnipAgree.ProtoReflect.Descriptor instead. func (*ResCatnipAgree) Descriptor() ([]byte, []int) { - return file_proto_Gameapi_proto_rawDescGZIP(), []int{417} + return file_proto_Gameapi_proto_rawDescGZIP(), []int{418} } func (x *ResCatnipAgree) GetCode() RES_CODE { @@ -23831,7 +23899,7 @@ type ReqCatnipRefuse struct { func (x *ReqCatnipRefuse) Reset() { *x = ReqCatnipRefuse{} - mi := &file_proto_Gameapi_proto_msgTypes[418] + mi := &file_proto_Gameapi_proto_msgTypes[419] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -23843,7 +23911,7 @@ func (x *ReqCatnipRefuse) String() string { func (*ReqCatnipRefuse) ProtoMessage() {} func (x *ReqCatnipRefuse) ProtoReflect() protoreflect.Message { - mi := &file_proto_Gameapi_proto_msgTypes[418] + mi := &file_proto_Gameapi_proto_msgTypes[419] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -23856,7 +23924,7 @@ func (x *ReqCatnipRefuse) ProtoReflect() protoreflect.Message { // Deprecated: Use ReqCatnipRefuse.ProtoReflect.Descriptor instead. func (*ReqCatnipRefuse) Descriptor() ([]byte, []int) { - return file_proto_Gameapi_proto_rawDescGZIP(), []int{418} + return file_proto_Gameapi_proto_rawDescGZIP(), []int{419} } func (x *ReqCatnipRefuse) GetId() int32 { @@ -23883,7 +23951,7 @@ type ResCatnipRefuse struct { func (x *ResCatnipRefuse) Reset() { *x = ResCatnipRefuse{} - mi := &file_proto_Gameapi_proto_msgTypes[419] + mi := &file_proto_Gameapi_proto_msgTypes[420] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -23895,7 +23963,7 @@ func (x *ResCatnipRefuse) String() string { func (*ResCatnipRefuse) ProtoMessage() {} func (x *ResCatnipRefuse) ProtoReflect() protoreflect.Message { - mi := &file_proto_Gameapi_proto_msgTypes[419] + mi := &file_proto_Gameapi_proto_msgTypes[420] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -23908,7 +23976,7 @@ func (x *ResCatnipRefuse) ProtoReflect() protoreflect.Message { // Deprecated: Use ResCatnipRefuse.ProtoReflect.Descriptor instead. func (*ResCatnipRefuse) Descriptor() ([]byte, []int) { - return file_proto_Gameapi_proto_rawDescGZIP(), []int{419} + return file_proto_Gameapi_proto_rawDescGZIP(), []int{420} } func (x *ResCatnipRefuse) GetCode() RES_CODE { @@ -23936,7 +24004,7 @@ type ReqCatnipMultiply struct { func (x *ReqCatnipMultiply) Reset() { *x = ReqCatnipMultiply{} - mi := &file_proto_Gameapi_proto_msgTypes[420] + mi := &file_proto_Gameapi_proto_msgTypes[421] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -23948,7 +24016,7 @@ func (x *ReqCatnipMultiply) String() string { func (*ReqCatnipMultiply) ProtoMessage() {} func (x *ReqCatnipMultiply) ProtoReflect() protoreflect.Message { - mi := &file_proto_Gameapi_proto_msgTypes[420] + mi := &file_proto_Gameapi_proto_msgTypes[421] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -23961,7 +24029,7 @@ func (x *ReqCatnipMultiply) ProtoReflect() protoreflect.Message { // Deprecated: Use ReqCatnipMultiply.ProtoReflect.Descriptor instead. func (*ReqCatnipMultiply) Descriptor() ([]byte, []int) { - return file_proto_Gameapi_proto_rawDescGZIP(), []int{420} + return file_proto_Gameapi_proto_rawDescGZIP(), []int{421} } func (x *ReqCatnipMultiply) GetId() int32 { @@ -23988,7 +24056,7 @@ type ResCatnipMultiply struct { func (x *ResCatnipMultiply) Reset() { *x = ResCatnipMultiply{} - mi := &file_proto_Gameapi_proto_msgTypes[421] + mi := &file_proto_Gameapi_proto_msgTypes[422] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -24000,7 +24068,7 @@ func (x *ResCatnipMultiply) String() string { func (*ResCatnipMultiply) ProtoMessage() {} func (x *ResCatnipMultiply) ProtoReflect() protoreflect.Message { - mi := &file_proto_Gameapi_proto_msgTypes[421] + mi := &file_proto_Gameapi_proto_msgTypes[422] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -24013,7 +24081,7 @@ func (x *ResCatnipMultiply) ProtoReflect() protoreflect.Message { // Deprecated: Use ResCatnipMultiply.ProtoReflect.Descriptor instead. func (*ResCatnipMultiply) Descriptor() ([]byte, []int) { - return file_proto_Gameapi_proto_rawDescGZIP(), []int{421} + return file_proto_Gameapi_proto_rawDescGZIP(), []int{422} } func (x *ResCatnipMultiply) GetCode() RES_CODE { @@ -24040,7 +24108,7 @@ type ReqCatnipPlay struct { func (x *ReqCatnipPlay) Reset() { *x = ReqCatnipPlay{} - mi := &file_proto_Gameapi_proto_msgTypes[422] + mi := &file_proto_Gameapi_proto_msgTypes[423] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -24052,7 +24120,7 @@ func (x *ReqCatnipPlay) String() string { func (*ReqCatnipPlay) ProtoMessage() {} func (x *ReqCatnipPlay) ProtoReflect() protoreflect.Message { - mi := &file_proto_Gameapi_proto_msgTypes[422] + mi := &file_proto_Gameapi_proto_msgTypes[423] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -24065,7 +24133,7 @@ func (x *ReqCatnipPlay) ProtoReflect() protoreflect.Message { // Deprecated: Use ReqCatnipPlay.ProtoReflect.Descriptor instead. func (*ReqCatnipPlay) Descriptor() ([]byte, []int) { - return file_proto_Gameapi_proto_rawDescGZIP(), []int{422} + return file_proto_Gameapi_proto_rawDescGZIP(), []int{423} } func (x *ReqCatnipPlay) GetId() int32 { @@ -24086,7 +24154,7 @@ type ResCatnipPlay struct { func (x *ResCatnipPlay) Reset() { *x = ResCatnipPlay{} - mi := &file_proto_Gameapi_proto_msgTypes[423] + mi := &file_proto_Gameapi_proto_msgTypes[424] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -24098,7 +24166,7 @@ func (x *ResCatnipPlay) String() string { func (*ResCatnipPlay) ProtoMessage() {} func (x *ResCatnipPlay) ProtoReflect() protoreflect.Message { - mi := &file_proto_Gameapi_proto_msgTypes[423] + mi := &file_proto_Gameapi_proto_msgTypes[424] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -24111,7 +24179,7 @@ func (x *ResCatnipPlay) ProtoReflect() protoreflect.Message { // Deprecated: Use ResCatnipPlay.ProtoReflect.Descriptor instead. func (*ResCatnipPlay) Descriptor() ([]byte, []int) { - return file_proto_Gameapi_proto_rawDescGZIP(), []int{423} + return file_proto_Gameapi_proto_rawDescGZIP(), []int{424} } func (x *ResCatnipPlay) GetCode() RES_CODE { @@ -24146,7 +24214,7 @@ type ReqCatnipReward struct { func (x *ReqCatnipReward) Reset() { *x = ReqCatnipReward{} - mi := &file_proto_Gameapi_proto_msgTypes[424] + mi := &file_proto_Gameapi_proto_msgTypes[425] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -24158,7 +24226,7 @@ func (x *ReqCatnipReward) String() string { func (*ReqCatnipReward) ProtoMessage() {} func (x *ReqCatnipReward) ProtoReflect() protoreflect.Message { - mi := &file_proto_Gameapi_proto_msgTypes[424] + mi := &file_proto_Gameapi_proto_msgTypes[425] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -24171,7 +24239,7 @@ func (x *ReqCatnipReward) ProtoReflect() protoreflect.Message { // Deprecated: Use ReqCatnipReward.ProtoReflect.Descriptor instead. func (*ReqCatnipReward) Descriptor() ([]byte, []int) { - return file_proto_Gameapi_proto_rawDescGZIP(), []int{424} + return file_proto_Gameapi_proto_rawDescGZIP(), []int{425} } func (x *ReqCatnipReward) GetId() int32 { @@ -24198,7 +24266,7 @@ type ResCatnipReward struct { func (x *ResCatnipReward) Reset() { *x = ResCatnipReward{} - mi := &file_proto_Gameapi_proto_msgTypes[425] + mi := &file_proto_Gameapi_proto_msgTypes[426] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -24210,7 +24278,7 @@ func (x *ResCatnipReward) String() string { func (*ResCatnipReward) ProtoMessage() {} func (x *ResCatnipReward) ProtoReflect() protoreflect.Message { - mi := &file_proto_Gameapi_proto_msgTypes[425] + mi := &file_proto_Gameapi_proto_msgTypes[426] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -24223,7 +24291,7 @@ func (x *ResCatnipReward) ProtoReflect() protoreflect.Message { // Deprecated: Use ResCatnipReward.ProtoReflect.Descriptor instead. func (*ResCatnipReward) Descriptor() ([]byte, []int) { - return file_proto_Gameapi_proto_rawDescGZIP(), []int{425} + return file_proto_Gameapi_proto_rawDescGZIP(), []int{426} } func (x *ResCatnipReward) GetCode() RES_CODE { @@ -24249,7 +24317,7 @@ type ReqCatnipGrandReward struct { func (x *ReqCatnipGrandReward) Reset() { *x = ReqCatnipGrandReward{} - mi := &file_proto_Gameapi_proto_msgTypes[426] + mi := &file_proto_Gameapi_proto_msgTypes[427] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -24261,7 +24329,7 @@ func (x *ReqCatnipGrandReward) String() string { func (*ReqCatnipGrandReward) ProtoMessage() {} func (x *ReqCatnipGrandReward) ProtoReflect() protoreflect.Message { - mi := &file_proto_Gameapi_proto_msgTypes[426] + mi := &file_proto_Gameapi_proto_msgTypes[427] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -24274,7 +24342,7 @@ func (x *ReqCatnipGrandReward) ProtoReflect() protoreflect.Message { // Deprecated: Use ReqCatnipGrandReward.ProtoReflect.Descriptor instead. func (*ReqCatnipGrandReward) Descriptor() ([]byte, []int) { - return file_proto_Gameapi_proto_rawDescGZIP(), []int{426} + return file_proto_Gameapi_proto_rawDescGZIP(), []int{427} } type ResCatnipGrandReward struct { @@ -24287,7 +24355,7 @@ type ResCatnipGrandReward struct { func (x *ResCatnipGrandReward) Reset() { *x = ResCatnipGrandReward{} - mi := &file_proto_Gameapi_proto_msgTypes[427] + mi := &file_proto_Gameapi_proto_msgTypes[428] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -24299,7 +24367,7 @@ func (x *ResCatnipGrandReward) String() string { func (*ResCatnipGrandReward) ProtoMessage() {} func (x *ResCatnipGrandReward) ProtoReflect() protoreflect.Message { - mi := &file_proto_Gameapi_proto_msgTypes[427] + mi := &file_proto_Gameapi_proto_msgTypes[428] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -24312,7 +24380,7 @@ func (x *ResCatnipGrandReward) ProtoReflect() protoreflect.Message { // Deprecated: Use ResCatnipGrandReward.ProtoReflect.Descriptor instead. func (*ResCatnipGrandReward) Descriptor() ([]byte, []int) { - return file_proto_Gameapi_proto_rawDescGZIP(), []int{427} + return file_proto_Gameapi_proto_rawDescGZIP(), []int{428} } func (x *ResCatnipGrandReward) GetCode() RES_CODE { @@ -24340,7 +24408,7 @@ type AdminReq struct { func (x *AdminReq) Reset() { *x = AdminReq{} - mi := &file_proto_Gameapi_proto_msgTypes[428] + mi := &file_proto_Gameapi_proto_msgTypes[429] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -24352,7 +24420,7 @@ func (x *AdminReq) String() string { func (*AdminReq) ProtoMessage() {} func (x *AdminReq) ProtoReflect() protoreflect.Message { - mi := &file_proto_Gameapi_proto_msgTypes[428] + mi := &file_proto_Gameapi_proto_msgTypes[429] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -24365,7 +24433,7 @@ func (x *AdminReq) ProtoReflect() protoreflect.Message { // Deprecated: Use AdminReq.ProtoReflect.Descriptor instead. func (*AdminReq) Descriptor() ([]byte, []int) { - return file_proto_Gameapi_proto_rawDescGZIP(), []int{428} + return file_proto_Gameapi_proto_rawDescGZIP(), []int{429} } func (x *AdminReq) GetFunc() string { @@ -24392,7 +24460,7 @@ type AdminRes struct { func (x *AdminRes) Reset() { *x = AdminRes{} - mi := &file_proto_Gameapi_proto_msgTypes[429] + mi := &file_proto_Gameapi_proto_msgTypes[430] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -24404,7 +24472,7 @@ func (x *AdminRes) String() string { func (*AdminRes) ProtoMessage() {} func (x *AdminRes) ProtoReflect() protoreflect.Message { - mi := &file_proto_Gameapi_proto_msgTypes[429] + mi := &file_proto_Gameapi_proto_msgTypes[430] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -24417,7 +24485,7 @@ func (x *AdminRes) ProtoReflect() protoreflect.Message { // Deprecated: Use AdminRes.ProtoReflect.Descriptor instead. func (*AdminRes) Descriptor() ([]byte, []int) { - return file_proto_Gameapi_proto_rawDescGZIP(), []int{429} + return file_proto_Gameapi_proto_rawDescGZIP(), []int{430} } func (x *AdminRes) GetFunc() string { @@ -24443,7 +24511,7 @@ type ReqAdminInfo struct { func (x *ReqAdminInfo) Reset() { *x = ReqAdminInfo{} - mi := &file_proto_Gameapi_proto_msgTypes[430] + mi := &file_proto_Gameapi_proto_msgTypes[431] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -24455,7 +24523,7 @@ func (x *ReqAdminInfo) String() string { func (*ReqAdminInfo) ProtoMessage() {} func (x *ReqAdminInfo) ProtoReflect() protoreflect.Message { - mi := &file_proto_Gameapi_proto_msgTypes[430] + mi := &file_proto_Gameapi_proto_msgTypes[431] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -24468,7 +24536,7 @@ func (x *ReqAdminInfo) ProtoReflect() protoreflect.Message { // Deprecated: Use ReqAdminInfo.ProtoReflect.Descriptor instead. func (*ReqAdminInfo) Descriptor() ([]byte, []int) { - return file_proto_Gameapi_proto_rawDescGZIP(), []int{430} + return file_proto_Gameapi_proto_rawDescGZIP(), []int{431} } func (x *ReqAdminInfo) GetUid() int64 { @@ -24486,7 +24554,7 @@ type ReqReloadServerMail struct { func (x *ReqReloadServerMail) Reset() { *x = ReqReloadServerMail{} - mi := &file_proto_Gameapi_proto_msgTypes[431] + mi := &file_proto_Gameapi_proto_msgTypes[432] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -24498,7 +24566,7 @@ func (x *ReqReloadServerMail) String() string { func (*ReqReloadServerMail) ProtoMessage() {} func (x *ReqReloadServerMail) ProtoReflect() protoreflect.Message { - mi := &file_proto_Gameapi_proto_msgTypes[431] + mi := &file_proto_Gameapi_proto_msgTypes[432] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -24511,7 +24579,7 @@ func (x *ReqReloadServerMail) ProtoReflect() protoreflect.Message { // Deprecated: Use ReqReloadServerMail.ProtoReflect.Descriptor instead. func (*ReqReloadServerMail) Descriptor() ([]byte, []int) { - return file_proto_Gameapi_proto_rawDescGZIP(), []int{431} + return file_proto_Gameapi_proto_rawDescGZIP(), []int{432} } type ReqServerInfo struct { @@ -24522,7 +24590,7 @@ type ReqServerInfo struct { func (x *ReqServerInfo) Reset() { *x = ReqServerInfo{} - mi := &file_proto_Gameapi_proto_msgTypes[432] + mi := &file_proto_Gameapi_proto_msgTypes[433] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -24534,7 +24602,7 @@ func (x *ReqServerInfo) String() string { func (*ReqServerInfo) ProtoMessage() {} func (x *ReqServerInfo) ProtoReflect() protoreflect.Message { - mi := &file_proto_Gameapi_proto_msgTypes[432] + mi := &file_proto_Gameapi_proto_msgTypes[433] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -24547,7 +24615,7 @@ func (x *ReqServerInfo) ProtoReflect() protoreflect.Message { // Deprecated: Use ReqServerInfo.ProtoReflect.Descriptor instead. func (*ReqServerInfo) Descriptor() ([]byte, []int) { - return file_proto_Gameapi_proto_rawDescGZIP(), []int{432} + return file_proto_Gameapi_proto_rawDescGZIP(), []int{433} } type ReqReload struct { @@ -24558,7 +24626,7 @@ type ReqReload struct { func (x *ReqReload) Reset() { *x = ReqReload{} - mi := &file_proto_Gameapi_proto_msgTypes[433] + mi := &file_proto_Gameapi_proto_msgTypes[434] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -24570,7 +24638,7 @@ func (x *ReqReload) String() string { func (*ReqReload) ProtoMessage() {} func (x *ReqReload) ProtoReflect() protoreflect.Message { - mi := &file_proto_Gameapi_proto_msgTypes[433] + mi := &file_proto_Gameapi_proto_msgTypes[434] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -24583,7 +24651,7 @@ func (x *ReqReload) ProtoReflect() protoreflect.Message { // Deprecated: Use ReqReload.ProtoReflect.Descriptor instead. func (*ReqReload) Descriptor() ([]byte, []int) { - return file_proto_Gameapi_proto_rawDescGZIP(), []int{433} + return file_proto_Gameapi_proto_rawDescGZIP(), []int{434} } type ReqAdminGm struct { @@ -24596,7 +24664,7 @@ type ReqAdminGm struct { func (x *ReqAdminGm) Reset() { *x = ReqAdminGm{} - mi := &file_proto_Gameapi_proto_msgTypes[434] + mi := &file_proto_Gameapi_proto_msgTypes[435] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -24608,7 +24676,7 @@ func (x *ReqAdminGm) String() string { func (*ReqAdminGm) ProtoMessage() {} func (x *ReqAdminGm) ProtoReflect() protoreflect.Message { - mi := &file_proto_Gameapi_proto_msgTypes[434] + mi := &file_proto_Gameapi_proto_msgTypes[435] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -24621,7 +24689,7 @@ func (x *ReqAdminGm) ProtoReflect() protoreflect.Message { // Deprecated: Use ReqAdminGm.ProtoReflect.Descriptor instead. func (*ReqAdminGm) Descriptor() ([]byte, []int) { - return file_proto_Gameapi_proto_rawDescGZIP(), []int{434} + return file_proto_Gameapi_proto_rawDescGZIP(), []int{435} } func (x *ReqAdminGm) GetUid() int64 { @@ -26147,19 +26215,24 @@ const file_proto_Gameapi_proto_rawDesc = "" + "\aRevenge\x18\x03 \x01(\x03R\aRevenge\"6\n" + "\bChipInfo\x12\x10\n" + "\x03Uid\x18\x01 \x01(\x03R\x03Uid\x12\x18\n" + - "\aEmojiId\x18\x02 \x01(\x05R\aEmojiId\"\xb0\x02\n" + + "\aEmojiId\x18\x02 \x01(\x05R\aEmojiId\"\xda\x02\n" + "\x12NotifyPlayroomMood\x12\x18\n" + "\aAllMood\x18\x01 \x01(\x05R\aAllMood\x12:\n" + "\x04Mood\x18\x02 \x03(\v2&.tutorial.NotifyPlayroomMood.MoodEntryR\x04Mood\x12L\n" + "\n" + "Physiology\x18\x03 \x03(\v2,.tutorial.NotifyPlayroomMood.PhysiologyEntryR\n" + - "Physiology\x1a7\n" + + "Physiology\x12(\n" + + "\x06AdItem\x18\x04 \x03(\v2\x10.tutorial.AdItemR\x06AdItem\x1a7\n" + "\tMoodEntry\x12\x10\n" + "\x03key\x18\x01 \x01(\x05R\x03key\x12\x14\n" + "\x05value\x18\x02 \x01(\x05R\x05value:\x028\x01\x1a=\n" + "\x0fPhysiologyEntry\x12\x10\n" + "\x03key\x18\x01 \x01(\x05R\x03key\x12\x14\n" + - "\x05value\x18\x02 \x01(\x05R\x05value:\x028\x01\"(\n" + + "\x05value\x18\x02 \x01(\x05R\x05value:\x028\x01\"T\n" + + "\x06AdItem\x12\x14\n" + + "\x05Watch\x18\x01 \x01(\x05R\x05Watch\x12\x1c\n" + + "\tLastWatch\x18\x02 \x01(\x05R\tLastWatch\x12\x16\n" + + "\x06ItemId\x18\x03 \x01(\x05R\x06ItemId\"(\n" + "\x12NotifyPlayroomKiss\x12\x12\n" + "\x04Kiss\x18\x01 \x01(\x05R\x04Kiss\"t\n" + "\n" + @@ -26616,7 +26689,7 @@ func file_proto_Gameapi_proto_rawDescGZIP() []byte { } var file_proto_Gameapi_proto_enumTypes = make([]protoimpl.EnumInfo, 11) -var file_proto_Gameapi_proto_msgTypes = make([]protoimpl.MessageInfo, 497) +var file_proto_Gameapi_proto_msgTypes = make([]protoimpl.MessageInfo, 498) var file_proto_Gameapi_proto_goTypes = []any{ (ITEM_POP_LABEL)(0), // 0: tutorial.ITEM_POP_LABEL (HANDLE_TYPE)(0), // 1: tutorial.HANDLE_TYPE @@ -26989,175 +27062,176 @@ var file_proto_Gameapi_proto_goTypes = []any{ (*NotifyPlayroomLose)(nil), // 368: tutorial.NotifyPlayroomLose (*ChipInfo)(nil), // 369: tutorial.ChipInfo (*NotifyPlayroomMood)(nil), // 370: tutorial.NotifyPlayroomMood - (*NotifyPlayroomKiss)(nil), // 371: tutorial.NotifyPlayroomKiss - (*FriendRoom)(nil), // 372: tutorial.FriendRoom - (*RoomOpponent)(nil), // 373: tutorial.RoomOpponent - (*ReqPlayroomInfo)(nil), // 374: tutorial.ReqPlayroomInfo - (*ResPlayroomInfo)(nil), // 375: tutorial.ResPlayroomInfo - (*ReqPlayroomFlip)(nil), // 376: tutorial.ReqPlayroomFlip - (*ResPlayroomFlip)(nil), // 377: tutorial.ResPlayroomFlip - (*ReqPlayroomGuide)(nil), // 378: tutorial.ReqPlayroomGuide - (*ResPlayroomGuide)(nil), // 379: tutorial.ResPlayroomGuide - (*ReqPlayroomFlipReward)(nil), // 380: tutorial.ReqPlayroomFlipReward - (*ResPlayroomFlipReward)(nil), // 381: tutorial.ResPlayroomFlipReward - (*ReqPlayroomGame)(nil), // 382: tutorial.ReqPlayroomGame - (*ResPlayroomGame)(nil), // 383: tutorial.ResPlayroomGame - (*ReqPlayroomGameShowReward)(nil), // 384: tutorial.ReqPlayroomGameShowReward - (*ResPlayroomGameShowReward)(nil), // 385: tutorial.ResPlayroomGameShowReward - (*ReqPlayroomInteract)(nil), // 386: tutorial.ReqPlayroomInteract - (*ResPlayroomInteract)(nil), // 387: tutorial.ResPlayroomInteract - (*ReqPlayroomSetRoom)(nil), // 388: tutorial.ReqPlayroomSetRoom - (*ResPlayroomSetRoom)(nil), // 389: tutorial.ResPlayroomSetRoom - (*ReqPlayroomSelectReward)(nil), // 390: tutorial.ReqPlayroomSelectReward - (*ResPlayroomSelectReward)(nil), // 391: tutorial.ResPlayroomSelectReward - (*ReqPlayroomLose)(nil), // 392: tutorial.ReqPlayroomLose - (*ResPlayroomLose)(nil), // 393: tutorial.ResPlayroomLose - (*ReqPlayroomWork)(nil), // 394: tutorial.ReqPlayroomWork - (*ResPlayroomWork)(nil), // 395: tutorial.ResPlayroomWork - (*ReqPlayroomRest)(nil), // 396: tutorial.ReqPlayroomRest - (*ResPlayroomRest)(nil), // 397: tutorial.ResPlayroomRest - (*ReqPlayroomDraw)(nil), // 398: tutorial.ReqPlayroomDraw - (*ResPlayroomDraw)(nil), // 399: tutorial.ResPlayroomDraw - (*ReqPlayroomChip)(nil), // 400: tutorial.ReqPlayroomChip - (*ResPlayroomChip)(nil), // 401: tutorial.ResPlayroomChip - (*ReqPlayroomBuyItem)(nil), // 402: tutorial.ReqPlayroomBuyItem - (*ResPlayroomBuyItem)(nil), // 403: tutorial.ResPlayroomBuyItem - (*ReqPlayroomShop)(nil), // 404: tutorial.ReqPlayroomShop - (*ResPlayroomShop)(nil), // 405: tutorial.ResPlayroomShop - (*ReqFriendTreasure)(nil), // 406: tutorial.ReqFriendTreasure - (*ResFriendTreasure)(nil), // 407: tutorial.ResFriendTreasure - (*TreasureInfo)(nil), // 408: tutorial.TreasureInfo - (*ReqFriendTreasureStart)(nil), // 409: tutorial.ReqFriendTreasureStart - (*ResFriendTreasureStart)(nil), // 410: tutorial.ResFriendTreasureStart - (*ReqFriendTreasureEnd)(nil), // 411: tutorial.ReqFriendTreasureEnd - (*ResFriendTreasureEnd)(nil), // 412: tutorial.ResFriendTreasureEnd - (*ReqFriendTreasureFilp)(nil), // 413: tutorial.ReqFriendTreasureFilp - (*ResFriendTreasureFilp)(nil), // 414: tutorial.ResFriendTreasureFilp - (*ResFriendTreasureStar)(nil), // 415: tutorial.ResFriendTreasureStar - (*ReqKafkaLog)(nil), // 416: tutorial.ReqKafkaLog - (*ReqCollectInfo)(nil), // 417: tutorial.ReqCollectInfo - (*ResCollectInfo)(nil), // 418: tutorial.ResCollectInfo - (*CollectItem)(nil), // 419: tutorial.CollectItem - (*ReqCollect)(nil), // 420: tutorial.ReqCollect - (*ResCollect)(nil), // 421: tutorial.ResCollect - (*ReqCatnip)(nil), // 422: tutorial.ReqCatnip - (*ResCatnip)(nil), // 423: tutorial.ResCatnip - (*CatnipGame)(nil), // 424: tutorial.CatnipGame - (*ReqCatnipInvite)(nil), // 425: tutorial.ReqCatnipInvite - (*ResCatnipInvite)(nil), // 426: tutorial.ResCatnipInvite - (*ReqCatnipAgree)(nil), // 427: tutorial.ReqCatnipAgree - (*ResCatnipAgree)(nil), // 428: tutorial.ResCatnipAgree - (*ReqCatnipRefuse)(nil), // 429: tutorial.ReqCatnipRefuse - (*ResCatnipRefuse)(nil), // 430: tutorial.ResCatnipRefuse - (*ReqCatnipMultiply)(nil), // 431: tutorial.ReqCatnipMultiply - (*ResCatnipMultiply)(nil), // 432: tutorial.ResCatnipMultiply - (*ReqCatnipPlay)(nil), // 433: tutorial.ReqCatnipPlay - (*ResCatnipPlay)(nil), // 434: tutorial.ResCatnipPlay - (*ReqCatnipReward)(nil), // 435: tutorial.ReqCatnipReward - (*ResCatnipReward)(nil), // 436: tutorial.ResCatnipReward - (*ReqCatnipGrandReward)(nil), // 437: tutorial.ReqCatnipGrandReward - (*ResCatnipGrandReward)(nil), // 438: tutorial.ResCatnipGrandReward - (*AdminReq)(nil), // 439: tutorial.AdminReq - (*AdminRes)(nil), // 440: tutorial.AdminRes - (*ReqAdminInfo)(nil), // 441: tutorial.ReqAdminInfo - (*ReqReloadServerMail)(nil), // 442: tutorial.ReqReloadServerMail - (*ReqServerInfo)(nil), // 443: tutorial.ReqServerInfo - (*ReqReload)(nil), // 444: tutorial.ReqReload - (*ReqAdminGm)(nil), // 445: tutorial.ReqAdminGm - nil, // 446: tutorial.ResChessColorData.MChessColorDataEntry - nil, // 447: tutorial.UpdateBaseItemInfo.MUpdateItemEntry - nil, // 448: tutorial.ResPlayerChessData.MChessDataEntry - nil, // 449: tutorial.UpdatePlayerChessData.MChessDataEntry - nil, // 450: tutorial.ReqSeparateChess.MChessDataEntry - nil, // 451: tutorial.ReqUpgradeChess.MChessDataEntry - nil, // 452: tutorial.ReqGetChessFromBuff.MChessDataEntry - nil, // 453: tutorial.ReqChessEx.MChessDataEntry - nil, // 454: tutorial.ReqSourceChest.MChessDataEntry - nil, // 455: tutorial.ReqPlayroomOutline.MChessDataEntry - nil, // 456: tutorial.ReqPutChessInBag.MChessDataEntry - nil, // 457: tutorial.ReqTakeChessOutBag.MChessDataEntry - nil, // 458: tutorial.ResPlayerBriefProfileData.SetEmojiEntry - nil, // 459: tutorial.UserInfo.SetEmojiEntry - nil, // 460: tutorial.ReqRewardOrder.MChessDataEntry - nil, // 461: tutorial.ResCardInfo.AllCardEntry - nil, // 462: tutorial.ResCardInfo.HandbookEntry - nil, // 463: tutorial.ResGuildInfo.RewardEntry - nil, // 464: tutorial.ResGuideInfo.RewardEntry - nil, // 465: tutorial.ResDailyTask.WeekRewardEntry - nil, // 466: tutorial.ResDailyTask.DailyTaskEntry - nil, // 467: tutorial.ResLimitEvent.LimitEventListEntry - nil, // 468: tutorial.ResLimitEventProgress.ProgressRewardEntry - nil, // 469: tutorial.LimitEvent.ParamEntry - nil, // 470: tutorial.ReqLimitEventLuckyCat.MChessDataEntry - nil, // 471: tutorial.ResPlayerSimple.EmojiEntry - nil, // 472: tutorial.ResKv.KvEntry - nil, // 473: tutorial.ResRank.RankListEntry - nil, // 474: tutorial.ResMailList.MailListEntry - nil, // 475: tutorial.ResCharge.SpecialShopEntry - nil, // 476: tutorial.ResCharge.ChessShopEntry - nil, // 477: tutorial.ResCharge.GiftEntry - nil, // 478: tutorial.ReqBuyChessShop2.MChessDataEntry - nil, // 479: tutorial.ResEndless.EndlessListEntry - nil, // 480: tutorial.ResChampshipRank.RankListEntry - nil, // 481: tutorial.ResChampshipPreRank.RankListEntry - nil, // 482: tutorial.ResNotifyCard.CardEntry - nil, // 483: tutorial.ResNotifyCard.MasterEntry - nil, // 484: tutorial.ResNotifyCard.HandbookEntry - nil, // 485: tutorial.ResMining.MapEntry - nil, // 486: tutorial.ReqMiningTake.MapEntry - nil, // 487: tutorial.ResActRed.RedEntry - nil, // 488: tutorial.ResItem.ItemEntry - nil, // 489: tutorial.ItemNotify.ItemEntry - nil, // 490: tutorial.ResGuessColor.OMapEntry - nil, // 491: tutorial.ReqGuessColorTake.OMapEntry - nil, // 492: tutorial.GuessColorInfo.MapEntry - nil, // 493: tutorial.ResPlayroom.PlayroomEntry - nil, // 494: tutorial.ResPlayroom.MoodEntry - nil, // 495: tutorial.ResPlayroom.PhysiologyEntry - nil, // 496: tutorial.ResPlayroom.DressEntry - nil, // 497: tutorial.ResPlayroom.DressSetEntry - nil, // 498: tutorial.ReqPlayroomDressSet.DressSetEntry - nil, // 499: tutorial.NotifyPlayroomMood.MoodEntry - nil, // 500: tutorial.NotifyPlayroomMood.PhysiologyEntry - nil, // 501: tutorial.ResPlayroomInfo.PlayroomEntry - nil, // 502: tutorial.ResPlayroomInfo.ItemsEntry - nil, // 503: tutorial.ResPlayroomInfo.FlipEntry - nil, // 504: tutorial.ResPlayroomInfo.EmojiEntry - nil, // 505: tutorial.ResPlayroomInfo.DressSetEntry - nil, // 506: tutorial.ResPlayroomGame.ItemsEntry - nil, // 507: tutorial.ReqPlayroomSetRoom.PlayroomEntry + (*AdItem)(nil), // 371: tutorial.AdItem + (*NotifyPlayroomKiss)(nil), // 372: tutorial.NotifyPlayroomKiss + (*FriendRoom)(nil), // 373: tutorial.FriendRoom + (*RoomOpponent)(nil), // 374: tutorial.RoomOpponent + (*ReqPlayroomInfo)(nil), // 375: tutorial.ReqPlayroomInfo + (*ResPlayroomInfo)(nil), // 376: tutorial.ResPlayroomInfo + (*ReqPlayroomFlip)(nil), // 377: tutorial.ReqPlayroomFlip + (*ResPlayroomFlip)(nil), // 378: tutorial.ResPlayroomFlip + (*ReqPlayroomGuide)(nil), // 379: tutorial.ReqPlayroomGuide + (*ResPlayroomGuide)(nil), // 380: tutorial.ResPlayroomGuide + (*ReqPlayroomFlipReward)(nil), // 381: tutorial.ReqPlayroomFlipReward + (*ResPlayroomFlipReward)(nil), // 382: tutorial.ResPlayroomFlipReward + (*ReqPlayroomGame)(nil), // 383: tutorial.ReqPlayroomGame + (*ResPlayroomGame)(nil), // 384: tutorial.ResPlayroomGame + (*ReqPlayroomGameShowReward)(nil), // 385: tutorial.ReqPlayroomGameShowReward + (*ResPlayroomGameShowReward)(nil), // 386: tutorial.ResPlayroomGameShowReward + (*ReqPlayroomInteract)(nil), // 387: tutorial.ReqPlayroomInteract + (*ResPlayroomInteract)(nil), // 388: tutorial.ResPlayroomInteract + (*ReqPlayroomSetRoom)(nil), // 389: tutorial.ReqPlayroomSetRoom + (*ResPlayroomSetRoom)(nil), // 390: tutorial.ResPlayroomSetRoom + (*ReqPlayroomSelectReward)(nil), // 391: tutorial.ReqPlayroomSelectReward + (*ResPlayroomSelectReward)(nil), // 392: tutorial.ResPlayroomSelectReward + (*ReqPlayroomLose)(nil), // 393: tutorial.ReqPlayroomLose + (*ResPlayroomLose)(nil), // 394: tutorial.ResPlayroomLose + (*ReqPlayroomWork)(nil), // 395: tutorial.ReqPlayroomWork + (*ResPlayroomWork)(nil), // 396: tutorial.ResPlayroomWork + (*ReqPlayroomRest)(nil), // 397: tutorial.ReqPlayroomRest + (*ResPlayroomRest)(nil), // 398: tutorial.ResPlayroomRest + (*ReqPlayroomDraw)(nil), // 399: tutorial.ReqPlayroomDraw + (*ResPlayroomDraw)(nil), // 400: tutorial.ResPlayroomDraw + (*ReqPlayroomChip)(nil), // 401: tutorial.ReqPlayroomChip + (*ResPlayroomChip)(nil), // 402: tutorial.ResPlayroomChip + (*ReqPlayroomBuyItem)(nil), // 403: tutorial.ReqPlayroomBuyItem + (*ResPlayroomBuyItem)(nil), // 404: tutorial.ResPlayroomBuyItem + (*ReqPlayroomShop)(nil), // 405: tutorial.ReqPlayroomShop + (*ResPlayroomShop)(nil), // 406: tutorial.ResPlayroomShop + (*ReqFriendTreasure)(nil), // 407: tutorial.ReqFriendTreasure + (*ResFriendTreasure)(nil), // 408: tutorial.ResFriendTreasure + (*TreasureInfo)(nil), // 409: tutorial.TreasureInfo + (*ReqFriendTreasureStart)(nil), // 410: tutorial.ReqFriendTreasureStart + (*ResFriendTreasureStart)(nil), // 411: tutorial.ResFriendTreasureStart + (*ReqFriendTreasureEnd)(nil), // 412: tutorial.ReqFriendTreasureEnd + (*ResFriendTreasureEnd)(nil), // 413: tutorial.ResFriendTreasureEnd + (*ReqFriendTreasureFilp)(nil), // 414: tutorial.ReqFriendTreasureFilp + (*ResFriendTreasureFilp)(nil), // 415: tutorial.ResFriendTreasureFilp + (*ResFriendTreasureStar)(nil), // 416: tutorial.ResFriendTreasureStar + (*ReqKafkaLog)(nil), // 417: tutorial.ReqKafkaLog + (*ReqCollectInfo)(nil), // 418: tutorial.ReqCollectInfo + (*ResCollectInfo)(nil), // 419: tutorial.ResCollectInfo + (*CollectItem)(nil), // 420: tutorial.CollectItem + (*ReqCollect)(nil), // 421: tutorial.ReqCollect + (*ResCollect)(nil), // 422: tutorial.ResCollect + (*ReqCatnip)(nil), // 423: tutorial.ReqCatnip + (*ResCatnip)(nil), // 424: tutorial.ResCatnip + (*CatnipGame)(nil), // 425: tutorial.CatnipGame + (*ReqCatnipInvite)(nil), // 426: tutorial.ReqCatnipInvite + (*ResCatnipInvite)(nil), // 427: tutorial.ResCatnipInvite + (*ReqCatnipAgree)(nil), // 428: tutorial.ReqCatnipAgree + (*ResCatnipAgree)(nil), // 429: tutorial.ResCatnipAgree + (*ReqCatnipRefuse)(nil), // 430: tutorial.ReqCatnipRefuse + (*ResCatnipRefuse)(nil), // 431: tutorial.ResCatnipRefuse + (*ReqCatnipMultiply)(nil), // 432: tutorial.ReqCatnipMultiply + (*ResCatnipMultiply)(nil), // 433: tutorial.ResCatnipMultiply + (*ReqCatnipPlay)(nil), // 434: tutorial.ReqCatnipPlay + (*ResCatnipPlay)(nil), // 435: tutorial.ResCatnipPlay + (*ReqCatnipReward)(nil), // 436: tutorial.ReqCatnipReward + (*ResCatnipReward)(nil), // 437: tutorial.ResCatnipReward + (*ReqCatnipGrandReward)(nil), // 438: tutorial.ReqCatnipGrandReward + (*ResCatnipGrandReward)(nil), // 439: tutorial.ResCatnipGrandReward + (*AdminReq)(nil), // 440: tutorial.AdminReq + (*AdminRes)(nil), // 441: tutorial.AdminRes + (*ReqAdminInfo)(nil), // 442: tutorial.ReqAdminInfo + (*ReqReloadServerMail)(nil), // 443: tutorial.ReqReloadServerMail + (*ReqServerInfo)(nil), // 444: tutorial.ReqServerInfo + (*ReqReload)(nil), // 445: tutorial.ReqReload + (*ReqAdminGm)(nil), // 446: tutorial.ReqAdminGm + nil, // 447: tutorial.ResChessColorData.MChessColorDataEntry + nil, // 448: tutorial.UpdateBaseItemInfo.MUpdateItemEntry + nil, // 449: tutorial.ResPlayerChessData.MChessDataEntry + nil, // 450: tutorial.UpdatePlayerChessData.MChessDataEntry + nil, // 451: tutorial.ReqSeparateChess.MChessDataEntry + nil, // 452: tutorial.ReqUpgradeChess.MChessDataEntry + nil, // 453: tutorial.ReqGetChessFromBuff.MChessDataEntry + nil, // 454: tutorial.ReqChessEx.MChessDataEntry + nil, // 455: tutorial.ReqSourceChest.MChessDataEntry + nil, // 456: tutorial.ReqPlayroomOutline.MChessDataEntry + nil, // 457: tutorial.ReqPutChessInBag.MChessDataEntry + nil, // 458: tutorial.ReqTakeChessOutBag.MChessDataEntry + nil, // 459: tutorial.ResPlayerBriefProfileData.SetEmojiEntry + nil, // 460: tutorial.UserInfo.SetEmojiEntry + nil, // 461: tutorial.ReqRewardOrder.MChessDataEntry + nil, // 462: tutorial.ResCardInfo.AllCardEntry + nil, // 463: tutorial.ResCardInfo.HandbookEntry + nil, // 464: tutorial.ResGuildInfo.RewardEntry + nil, // 465: tutorial.ResGuideInfo.RewardEntry + nil, // 466: tutorial.ResDailyTask.WeekRewardEntry + nil, // 467: tutorial.ResDailyTask.DailyTaskEntry + nil, // 468: tutorial.ResLimitEvent.LimitEventListEntry + nil, // 469: tutorial.ResLimitEventProgress.ProgressRewardEntry + nil, // 470: tutorial.LimitEvent.ParamEntry + nil, // 471: tutorial.ReqLimitEventLuckyCat.MChessDataEntry + nil, // 472: tutorial.ResPlayerSimple.EmojiEntry + nil, // 473: tutorial.ResKv.KvEntry + nil, // 474: tutorial.ResRank.RankListEntry + nil, // 475: tutorial.ResMailList.MailListEntry + nil, // 476: tutorial.ResCharge.SpecialShopEntry + nil, // 477: tutorial.ResCharge.ChessShopEntry + nil, // 478: tutorial.ResCharge.GiftEntry + nil, // 479: tutorial.ReqBuyChessShop2.MChessDataEntry + nil, // 480: tutorial.ResEndless.EndlessListEntry + nil, // 481: tutorial.ResChampshipRank.RankListEntry + nil, // 482: tutorial.ResChampshipPreRank.RankListEntry + nil, // 483: tutorial.ResNotifyCard.CardEntry + nil, // 484: tutorial.ResNotifyCard.MasterEntry + nil, // 485: tutorial.ResNotifyCard.HandbookEntry + nil, // 486: tutorial.ResMining.MapEntry + nil, // 487: tutorial.ReqMiningTake.MapEntry + nil, // 488: tutorial.ResActRed.RedEntry + nil, // 489: tutorial.ResItem.ItemEntry + nil, // 490: tutorial.ItemNotify.ItemEntry + nil, // 491: tutorial.ResGuessColor.OMapEntry + nil, // 492: tutorial.ReqGuessColorTake.OMapEntry + nil, // 493: tutorial.GuessColorInfo.MapEntry + nil, // 494: tutorial.ResPlayroom.PlayroomEntry + nil, // 495: tutorial.ResPlayroom.MoodEntry + nil, // 496: tutorial.ResPlayroom.PhysiologyEntry + nil, // 497: tutorial.ResPlayroom.DressEntry + nil, // 498: tutorial.ResPlayroom.DressSetEntry + nil, // 499: tutorial.ReqPlayroomDressSet.DressSetEntry + nil, // 500: tutorial.NotifyPlayroomMood.MoodEntry + nil, // 501: tutorial.NotifyPlayroomMood.PhysiologyEntry + nil, // 502: tutorial.ResPlayroomInfo.PlayroomEntry + nil, // 503: tutorial.ResPlayroomInfo.ItemsEntry + nil, // 504: tutorial.ResPlayroomInfo.FlipEntry + nil, // 505: tutorial.ResPlayroomInfo.EmojiEntry + nil, // 506: tutorial.ResPlayroomInfo.DressSetEntry + nil, // 507: tutorial.ResPlayroomGame.ItemsEntry + nil, // 508: tutorial.ReqPlayroomSetRoom.PlayroomEntry } var file_proto_Gameapi_proto_depIdxs = []int32{ - 446, // 0: tutorial.ResChessColorData.mChessColorData:type_name -> tutorial.ResChessColorData.MChessColorDataEntry + 447, // 0: tutorial.ResChessColorData.mChessColorData:type_name -> tutorial.ResChessColorData.MChessColorDataEntry 6, // 1: tutorial.ReqLogin.type:type_name -> tutorial.LOGIN_TYPE 2, // 2: tutorial.ResId2Verify.ResultCode:type_name -> tutorial.RES_CODE - 447, // 3: tutorial.UpdateBaseItemInfo.mUpdateItem:type_name -> tutorial.UpdateBaseItemInfo.MUpdateItemEntry - 448, // 4: tutorial.ResPlayerChessData.mChessData:type_name -> tutorial.ResPlayerChessData.MChessDataEntry + 448, // 3: tutorial.UpdateBaseItemInfo.mUpdateItem:type_name -> tutorial.UpdateBaseItemInfo.MUpdateItemEntry + 449, // 4: tutorial.ResPlayerChessData.mChessData:type_name -> tutorial.ResPlayerChessData.MChessDataEntry 65, // 5: tutorial.ResPlayerChessInfo.ChessBag:type_name -> tutorial.ChessBag 1, // 6: tutorial.ChessHandle.type:type_name -> tutorial.HANDLE_TYPE - 449, // 7: tutorial.UpdatePlayerChessData.mChessData:type_name -> tutorial.UpdatePlayerChessData.MChessDataEntry + 450, // 7: tutorial.UpdatePlayerChessData.mChessData:type_name -> tutorial.UpdatePlayerChessData.MChessDataEntry 50, // 8: tutorial.UpdatePlayerChessData.mChessHandle:type_name -> tutorial.ChessHandle 2, // 9: tutorial.ResUpdatePlayerChessData.code:type_name -> tutorial.RES_CODE - 450, // 10: tutorial.ReqSeparateChess.mChessData:type_name -> tutorial.ReqSeparateChess.MChessDataEntry + 451, // 10: tutorial.ReqSeparateChess.mChessData:type_name -> tutorial.ReqSeparateChess.MChessDataEntry 2, // 11: tutorial.ResSeparateChess.code:type_name -> tutorial.RES_CODE - 451, // 12: tutorial.ReqUpgradeChess.mChessData:type_name -> tutorial.ReqUpgradeChess.MChessDataEntry + 452, // 12: tutorial.ReqUpgradeChess.mChessData:type_name -> tutorial.ReqUpgradeChess.MChessDataEntry 2, // 13: tutorial.ResUpgradeChess.code:type_name -> tutorial.RES_CODE - 452, // 14: tutorial.ReqGetChessFromBuff.mChessData:type_name -> tutorial.ReqGetChessFromBuff.MChessDataEntry + 453, // 14: tutorial.ReqGetChessFromBuff.mChessData:type_name -> tutorial.ReqGetChessFromBuff.MChessDataEntry 2, // 15: tutorial.ResGetChessFromBuff.code:type_name -> tutorial.RES_CODE 8, // 16: tutorial.ReqChessEx.Type:type_name -> tutorial.CHESS_EX_TYPE - 453, // 17: tutorial.ReqChessEx.mChessData:type_name -> tutorial.ReqChessEx.MChessDataEntry + 454, // 17: tutorial.ReqChessEx.mChessData:type_name -> tutorial.ReqChessEx.MChessDataEntry 2, // 18: tutorial.ResChessEx.code:type_name -> tutorial.RES_CODE - 454, // 19: tutorial.ReqSourceChest.mChessData:type_name -> tutorial.ReqSourceChest.MChessDataEntry + 455, // 19: tutorial.ReqSourceChest.mChessData:type_name -> tutorial.ReqSourceChest.MChessDataEntry 2, // 20: tutorial.ResSourceChest.code:type_name -> tutorial.RES_CODE - 455, // 21: tutorial.ReqPlayroomOutline.mChessData:type_name -> tutorial.ReqPlayroomOutline.MChessDataEntry + 456, // 21: tutorial.ReqPlayroomOutline.mChessData:type_name -> tutorial.ReqPlayroomOutline.MChessDataEntry 2, // 22: tutorial.ResPlayroomOutline.code:type_name -> tutorial.RES_CODE 66, // 23: tutorial.ChessBag.ChessBagGrids:type_name -> tutorial.ChessBagGrid - 456, // 24: tutorial.ReqPutChessInBag.mChessData:type_name -> tutorial.ReqPutChessInBag.MChessDataEntry + 457, // 24: tutorial.ReqPutChessInBag.mChessData:type_name -> tutorial.ReqPutChessInBag.MChessDataEntry 2, // 25: tutorial.ResPutChessInBag.code:type_name -> tutorial.RES_CODE - 457, // 26: tutorial.ReqTakeChessOutBag.mChessData:type_name -> tutorial.ReqTakeChessOutBag.MChessDataEntry + 458, // 26: tutorial.ReqTakeChessOutBag.mChessData:type_name -> tutorial.ReqTakeChessOutBag.MChessDataEntry 2, // 27: tutorial.ResTakeChessOutBag.code:type_name -> tutorial.RES_CODE 2, // 28: tutorial.ResBuyChessBagGrid.code:type_name -> tutorial.RES_CODE - 458, // 29: tutorial.ResPlayerBriefProfileData.SetEmoji:type_name -> tutorial.ResPlayerBriefProfileData.SetEmojiEntry + 459, // 29: tutorial.ResPlayerBriefProfileData.SetEmoji:type_name -> tutorial.ResPlayerBriefProfileData.SetEmojiEntry 2, // 30: tutorial.ResSetEnergyMul.ResultCode:type_name -> tutorial.RES_CODE 9, // 31: tutorial.ReqLang.Lang:type_name -> tutorial.LANG_TYPE 2, // 32: tutorial.ResLang.ResultCode:type_name -> tutorial.RES_CODE @@ -27165,7 +27239,7 @@ var file_proto_Gameapi_proto_depIdxs = []int32{ 176, // 34: tutorial.UserInfo.AvatarList:type_name -> tutorial.AvatarInfo 172, // 35: tutorial.UserInfo.FaceList:type_name -> tutorial.FaceInfo 179, // 36: tutorial.UserInfo.EmojiList:type_name -> tutorial.EmojiInfo - 459, // 37: tutorial.UserInfo.SetEmoji:type_name -> tutorial.UserInfo.SetEmojiEntry + 460, // 37: tutorial.UserInfo.SetEmoji:type_name -> tutorial.UserInfo.SetEmojiEntry 2, // 38: tutorial.ResSetName.ResultCode:type_name -> tutorial.RES_CODE 2, // 39: tutorial.ResSetPetName.ResultCode:type_name -> tutorial.RES_CODE 2, // 40: tutorial.ResBuyEnergy.Code:type_name -> tutorial.RES_CODE @@ -27173,7 +27247,7 @@ var file_proto_Gameapi_proto_depIdxs = []int32{ 2, // 42: tutorial.ResGetHandbookReward.Code:type_name -> tutorial.RES_CODE 94, // 43: tutorial.Handbook.Handbooks:type_name -> tutorial.HandbookInfo 2, // 44: tutorial.ResHandbookAllReward.Code:type_name -> tutorial.RES_CODE - 460, // 45: tutorial.ReqRewardOrder.mChessData:type_name -> tutorial.ReqRewardOrder.MChessDataEntry + 461, // 45: tutorial.ReqRewardOrder.mChessData:type_name -> tutorial.ReqRewardOrder.MChessDataEntry 2, // 46: tutorial.ResRewardOrder.Code:type_name -> tutorial.RES_CODE 2, // 47: tutorial.ResDelOrder.Code:type_name -> tutorial.RES_CODE 159, // 48: tutorial.Order.Items:type_name -> tutorial.ItemInfo @@ -27182,8 +27256,8 @@ var file_proto_Gameapi_proto_depIdxs = []int32{ 2, // 51: tutorial.ResDecorateAll.Code:type_name -> tutorial.RES_CODE 2, // 52: tutorial.ResDecorateReward.Code:type_name -> tutorial.RES_CODE 114, // 53: tutorial.ResCardInfo.CardList:type_name -> tutorial.Card - 461, // 54: tutorial.ResCardInfo.AllCard:type_name -> tutorial.ResCardInfo.AllCardEntry - 462, // 55: tutorial.ResCardInfo.Handbook:type_name -> tutorial.ResCardInfo.HandbookEntry + 462, // 54: tutorial.ResCardInfo.AllCard:type_name -> tutorial.ResCardInfo.AllCardEntry + 463, // 55: tutorial.ResCardInfo.Handbook:type_name -> tutorial.ResCardInfo.HandbookEntry 2, // 56: tutorial.ResCardSeasonFirstReward.Code:type_name -> tutorial.RES_CODE 2, // 57: tutorial.ResCardHandbookReward.Code:type_name -> tutorial.RES_CODE 2, // 58: tutorial.ResMasterCard.Code:type_name -> tutorial.RES_CODE @@ -27202,12 +27276,12 @@ var file_proto_Gameapi_proto_depIdxs = []int32{ 2, // 71: tutorial.ResGetFriendCard.Code:type_name -> tutorial.RES_CODE 2, // 72: tutorial.ResGuideReward.Code:type_name -> tutorial.RES_CODE 2, // 73: tutorial.ResGuidePlayroom.Code:type_name -> tutorial.RES_CODE - 463, // 74: tutorial.ResGuildInfo.Reward:type_name -> tutorial.ResGuildInfo.RewardEntry - 464, // 75: tutorial.ResGuideInfo.Reward:type_name -> tutorial.ResGuideInfo.RewardEntry + 464, // 74: tutorial.ResGuildInfo.Reward:type_name -> tutorial.ResGuildInfo.RewardEntry + 465, // 75: tutorial.ResGuideInfo.Reward:type_name -> tutorial.ResGuideInfo.RewardEntry 159, // 76: tutorial.ResItemPop.Items:type_name -> tutorial.ItemInfo 160, // 77: tutorial.ResItemPop.CardPacks:type_name -> tutorial.CardPack - 465, // 78: tutorial.ResDailyTask.WeekReward:type_name -> tutorial.ResDailyTask.WeekRewardEntry - 466, // 79: tutorial.ResDailyTask.DailyTask:type_name -> tutorial.ResDailyTask.DailyTaskEntry + 466, // 78: tutorial.ResDailyTask.WeekReward:type_name -> tutorial.ResDailyTask.WeekRewardEntry + 467, // 79: tutorial.ResDailyTask.DailyTask:type_name -> tutorial.ResDailyTask.DailyTaskEntry 159, // 80: tutorial.DailyWeek.Items:type_name -> tutorial.ItemInfo 164, // 81: tutorial.DailyTask.Progress:type_name -> tutorial.QuestProgress 159, // 82: tutorial.DailyTask.Items:type_name -> tutorial.ItemInfo @@ -27228,23 +27302,23 @@ var file_proto_Gameapi_proto_depIdxs = []int32{ 2, // 97: tutorial.ResGetMonthLoginReward.Code:type_name -> tutorial.RES_CODE 189, // 98: tutorial.ResActivity.ActiveList:type_name -> tutorial.ActivityInfo 2, // 99: tutorial.ResActivityReward.Code:type_name -> tutorial.RES_CODE - 467, // 100: tutorial.ResLimitEvent.LimitEventList:type_name -> tutorial.ResLimitEvent.LimitEventListEntry - 468, // 101: tutorial.ResLimitEventProgress.ProgressReward:type_name -> tutorial.ResLimitEventProgress.ProgressRewardEntry + 468, // 100: tutorial.ResLimitEvent.LimitEventList:type_name -> tutorial.ResLimitEvent.LimitEventListEntry + 469, // 101: tutorial.ResLimitEventProgress.ProgressReward:type_name -> tutorial.ResLimitEventProgress.ProgressRewardEntry 2, // 102: tutorial.ResLimitEventReward.Code:type_name -> tutorial.RES_CODE 2, // 103: tutorial.ResSelectLimitEvent.Code:type_name -> tutorial.RES_CODE - 469, // 104: tutorial.LimitEvent.Param:type_name -> tutorial.LimitEvent.ParamEntry - 470, // 105: tutorial.ReqLimitEventLuckyCat.mChessData:type_name -> tutorial.ReqLimitEventLuckyCat.MChessDataEntry + 470, // 104: tutorial.LimitEvent.Param:type_name -> tutorial.LimitEvent.ParamEntry + 471, // 105: tutorial.ReqLimitEventLuckyCat.mChessData:type_name -> tutorial.ReqLimitEventLuckyCat.MChessDataEntry 2, // 106: tutorial.ResLimitEventLuckyCat.Code:type_name -> tutorial.RES_CODE 2, // 107: tutorial.ResLimitSenceReward.Code:type_name -> tutorial.RES_CODE 159, // 108: tutorial.ResChessRainReward.Items:type_name -> tutorial.ItemInfo 2, // 109: tutorial.ResFastProduceReward.Code:type_name -> tutorial.RES_CODE 2, // 110: tutorial.ResCatTrickReward.Code:type_name -> tutorial.RES_CODE 214, // 111: tutorial.ResSearchPlayer.List:type_name -> tutorial.ResPlayerSimple - 471, // 112: tutorial.ResPlayerSimple.Emoji:type_name -> tutorial.ResPlayerSimple.EmojiEntry + 472, // 112: tutorial.ResPlayerSimple.Emoji:type_name -> tutorial.ResPlayerSimple.EmojiEntry 214, // 113: tutorial.ResFriendLog.Player:type_name -> tutorial.ResPlayerSimple 216, // 114: tutorial.NotifyFriendLog.info:type_name -> tutorial.ResFriendLog 219, // 115: tutorial.NotifyFriendCard.Info:type_name -> tutorial.ResFriendCard - 472, // 116: tutorial.ResKv.kv:type_name -> tutorial.ResKv.KvEntry + 473, // 116: tutorial.ResKv.kv:type_name -> tutorial.ResKv.KvEntry 2, // 117: tutorial.ResFriendByCode.Code:type_name -> tutorial.RES_CODE 214, // 118: tutorial.ResFriendByCode.Player:type_name -> tutorial.ResPlayerSimple 214, // 119: tutorial.ResFriendRecommend.List:type_name -> tutorial.ResPlayerSimple @@ -27264,26 +27338,26 @@ var file_proto_Gameapi_proto_depIdxs = []int32{ 214, // 133: tutorial.ResAgreeFriend.Player:type_name -> tutorial.ResPlayerSimple 2, // 134: tutorial.ResRefuseFriend.Code:type_name -> tutorial.RES_CODE 2, // 135: tutorial.ResDelFriend.Code:type_name -> tutorial.RES_CODE - 473, // 136: tutorial.ResRank.RankList:type_name -> tutorial.ResRank.RankListEntry - 474, // 137: tutorial.ResMailList.MailList:type_name -> tutorial.ResMailList.MailListEntry + 474, // 136: tutorial.ResRank.RankList:type_name -> tutorial.ResRank.RankListEntry + 475, // 137: tutorial.ResMailList.MailList:type_name -> tutorial.ResMailList.MailListEntry 159, // 138: tutorial.MailInfo.Items:type_name -> tutorial.ItemInfo 258, // 139: tutorial.MailNotify.Info:type_name -> tutorial.MailInfo 2, // 140: tutorial.ResReadMail.Code:type_name -> tutorial.RES_CODE 2, // 141: tutorial.ResGetMailReward.Code:type_name -> tutorial.RES_CODE 2, // 142: tutorial.ResDeleteMail.Code:type_name -> tutorial.RES_CODE - 475, // 143: tutorial.ResCharge.SpecialShop:type_name -> tutorial.ResCharge.SpecialShopEntry - 476, // 144: tutorial.ResCharge.ChessShop:type_name -> tutorial.ResCharge.ChessShopEntry - 477, // 145: tutorial.ResCharge.Gift:type_name -> tutorial.ResCharge.GiftEntry + 476, // 143: tutorial.ResCharge.SpecialShop:type_name -> tutorial.ResCharge.SpecialShopEntry + 477, // 144: tutorial.ResCharge.ChessShop:type_name -> tutorial.ResCharge.ChessShopEntry + 478, // 145: tutorial.ResCharge.Gift:type_name -> tutorial.ResCharge.GiftEntry 267, // 146: tutorial.ResCharge.Wish:type_name -> tutorial.WishList 2, // 147: tutorial.ResAddWish.Code:type_name -> tutorial.RES_CODE 2, // 148: tutorial.ResGetWish.Code:type_name -> tutorial.RES_CODE 2, // 149: tutorial.ResSendWishBeg.Code:type_name -> tutorial.RES_CODE 2, // 150: tutorial.ResFreeShop.Code:type_name -> tutorial.RES_CODE 2, // 151: tutorial.ResBuyChessShop.Code:type_name -> tutorial.RES_CODE - 478, // 152: tutorial.ReqBuyChessShop2.mChessData:type_name -> tutorial.ReqBuyChessShop2.MChessDataEntry + 479, // 152: tutorial.ReqBuyChessShop2.mChessData:type_name -> tutorial.ReqBuyChessShop2.MChessDataEntry 2, // 153: tutorial.ResBuyChessShop2.Code:type_name -> tutorial.RES_CODE 2, // 154: tutorial.ResRefreshChessShop.Code:type_name -> tutorial.RES_CODE - 479, // 155: tutorial.ResEndless.EndlessList:type_name -> tutorial.ResEndless.EndlessListEntry + 480, // 155: tutorial.ResEndless.EndlessList:type_name -> tutorial.ResEndless.EndlessListEntry 159, // 156: tutorial.ResEndlessInfo.Items:type_name -> tutorial.ItemInfo 2, // 157: tutorial.ResEndlessReward.Code:type_name -> tutorial.RES_CODE 2, // 158: tutorial.ResPiggyBankReward.Code:type_name -> tutorial.RES_CODE @@ -27291,112 +27365,113 @@ var file_proto_Gameapi_proto_depIdxs = []int32{ 2, // 160: tutorial.ResShippingOrder.Code:type_name -> tutorial.RES_CODE 2, // 161: tutorial.ResChampshipReward.Code:type_name -> tutorial.RES_CODE 2, // 162: tutorial.ResChampshipRankReward.Code:type_name -> tutorial.RES_CODE - 480, // 163: tutorial.ResChampshipRank.RankList:type_name -> tutorial.ResChampshipRank.RankListEntry - 481, // 164: tutorial.ResChampshipPreRank.RankList:type_name -> tutorial.ResChampshipPreRank.RankListEntry - 482, // 165: tutorial.ResNotifyCard.Card:type_name -> tutorial.ResNotifyCard.CardEntry - 483, // 166: tutorial.ResNotifyCard.Master:type_name -> tutorial.ResNotifyCard.MasterEntry - 484, // 167: tutorial.ResNotifyCard.Handbook:type_name -> tutorial.ResNotifyCard.HandbookEntry + 481, // 163: tutorial.ResChampshipRank.RankList:type_name -> tutorial.ResChampshipRank.RankListEntry + 482, // 164: tutorial.ResChampshipPreRank.RankList:type_name -> tutorial.ResChampshipPreRank.RankListEntry + 483, // 165: tutorial.ResNotifyCard.Card:type_name -> tutorial.ResNotifyCard.CardEntry + 484, // 166: tutorial.ResNotifyCard.Master:type_name -> tutorial.ResNotifyCard.MasterEntry + 485, // 167: tutorial.ResNotifyCard.Handbook:type_name -> tutorial.ResNotifyCard.HandbookEntry 2, // 168: tutorial.ResSetFacebookUrl.Code:type_name -> tutorial.RES_CODE - 485, // 169: tutorial.ResMining.Map:type_name -> tutorial.ResMining.MapEntry - 486, // 170: tutorial.ReqMiningTake.Map:type_name -> tutorial.ReqMiningTake.MapEntry + 486, // 169: tutorial.ResMining.Map:type_name -> tutorial.ResMining.MapEntry + 487, // 170: tutorial.ReqMiningTake.Map:type_name -> tutorial.ReqMiningTake.MapEntry 2, // 171: tutorial.ResMiningTake.Code:type_name -> tutorial.RES_CODE 2, // 172: tutorial.ResMiningReward.Code:type_name -> tutorial.RES_CODE - 487, // 173: tutorial.ResActRed.Red:type_name -> tutorial.ResActRed.RedEntry + 488, // 173: tutorial.ResActRed.Red:type_name -> tutorial.ResActRed.RedEntry 189, // 174: tutorial.ActivityNotify.Info:type_name -> tutorial.ActivityInfo - 488, // 175: tutorial.ResItem.Item:type_name -> tutorial.ResItem.ItemEntry - 489, // 176: tutorial.ItemNotify.Item:type_name -> tutorial.ItemNotify.ItemEntry + 489, // 175: tutorial.ResItem.Item:type_name -> tutorial.ResItem.ItemEntry + 490, // 176: tutorial.ItemNotify.Item:type_name -> tutorial.ItemNotify.ItemEntry 337, // 177: tutorial.ResGuessColor.MapList:type_name -> tutorial.GuessColorInfo - 490, // 178: tutorial.ResGuessColor.OMap:type_name -> tutorial.ResGuessColor.OMapEntry + 491, // 178: tutorial.ResGuessColor.OMap:type_name -> tutorial.ResGuessColor.OMapEntry 335, // 179: tutorial.ResGuessColor.Opponent:type_name -> tutorial.opponent 337, // 180: tutorial.ReqGuessColorTake.Map:type_name -> tutorial.GuessColorInfo - 491, // 181: tutorial.ReqGuessColorTake.OMap:type_name -> tutorial.ReqGuessColorTake.OMapEntry - 492, // 182: tutorial.GuessColorInfo.Map:type_name -> tutorial.GuessColorInfo.MapEntry + 492, // 181: tutorial.ReqGuessColorTake.OMap:type_name -> tutorial.ReqGuessColorTake.OMapEntry + 493, // 182: tutorial.GuessColorInfo.Map:type_name -> tutorial.GuessColorInfo.MapEntry 2, // 183: tutorial.ResGuessColorTake.Code:type_name -> tutorial.RES_CODE 2, // 184: tutorial.ResGuessColorReward.Code:type_name -> tutorial.RES_CODE 343, // 185: tutorial.ResRace.Opponent:type_name -> tutorial.raceopponent 2, // 186: tutorial.ResRaceStart.Code:type_name -> tutorial.RES_CODE 2, // 187: tutorial.ResRaceReward.Code:type_name -> tutorial.RES_CODE 159, // 188: tutorial.ResPlayroom.Items:type_name -> tutorial.ItemInfo - 373, // 189: tutorial.ResPlayroom.Opponent:type_name -> tutorial.RoomOpponent - 372, // 190: tutorial.ResPlayroom.Friend:type_name -> tutorial.FriendRoom - 493, // 191: tutorial.ResPlayroom.Playroom:type_name -> tutorial.ResPlayroom.PlayroomEntry - 494, // 192: tutorial.ResPlayroom.Mood:type_name -> tutorial.ResPlayroom.MoodEntry + 374, // 189: tutorial.ResPlayroom.Opponent:type_name -> tutorial.RoomOpponent + 373, // 190: tutorial.ResPlayroom.Friend:type_name -> tutorial.FriendRoom + 494, // 191: tutorial.ResPlayroom.Playroom:type_name -> tutorial.ResPlayroom.PlayroomEntry + 495, // 192: tutorial.ResPlayroom.Mood:type_name -> tutorial.ResPlayroom.MoodEntry 159, // 193: tutorial.ResPlayroom.LoseItem:type_name -> tutorial.ItemInfo 369, // 194: tutorial.ResPlayroom.Chip:type_name -> tutorial.ChipInfo - 495, // 195: tutorial.ResPlayroom.Physiology:type_name -> tutorial.ResPlayroom.PhysiologyEntry - 496, // 196: tutorial.ResPlayroom.Dress:type_name -> tutorial.ResPlayroom.DressEntry - 497, // 197: tutorial.ResPlayroom.DressSet:type_name -> tutorial.ResPlayroom.DressSetEntry + 496, // 195: tutorial.ResPlayroom.Physiology:type_name -> tutorial.ResPlayroom.PhysiologyEntry + 497, // 196: tutorial.ResPlayroom.Dress:type_name -> tutorial.ResPlayroom.DressEntry + 498, // 197: tutorial.ResPlayroom.DressSet:type_name -> tutorial.ResPlayroom.DressSetEntry 163, // 198: tutorial.ResPlayroom.DailyTask:type_name -> tutorial.DailyTask 163, // 199: tutorial.NotifyPlayroomTask.DailyTask:type_name -> tutorial.DailyTask 2, // 200: tutorial.ResPlayroomTask.Code:type_name -> tutorial.RES_CODE 2, // 201: tutorial.ResPlayroomTaskReward.Code:type_name -> tutorial.RES_CODE 2, // 202: tutorial.ResPlayroomUnlock.Code:type_name -> tutorial.RES_CODE 2, // 203: tutorial.ResPlayroomUpvote.Code:type_name -> tutorial.RES_CODE - 498, // 204: tutorial.ReqPlayroomDressSet.DressSet:type_name -> tutorial.ReqPlayroomDressSet.DressSetEntry + 499, // 204: tutorial.ReqPlayroomDressSet.DressSet:type_name -> tutorial.ReqPlayroomDressSet.DressSetEntry 2, // 205: tutorial.ResPlayroomDressSet.Code:type_name -> tutorial.RES_CODE 2, // 206: tutorial.ResPlayroomPetAirSet.Code:type_name -> tutorial.RES_CODE 2, // 207: tutorial.ResPlayroomWrokOutline.Code:type_name -> tutorial.RES_CODE 159, // 208: tutorial.NotifyPlayroomLose.LoseItem:type_name -> tutorial.ItemInfo 369, // 209: tutorial.NotifyPlayroomLose.Chip:type_name -> tutorial.ChipInfo - 499, // 210: tutorial.NotifyPlayroomMood.Mood:type_name -> tutorial.NotifyPlayroomMood.MoodEntry - 500, // 211: tutorial.NotifyPlayroomMood.Physiology:type_name -> tutorial.NotifyPlayroomMood.PhysiologyEntry - 501, // 212: tutorial.ResPlayroomInfo.Playroom:type_name -> tutorial.ResPlayroomInfo.PlayroomEntry - 502, // 213: tutorial.ResPlayroomInfo.Items:type_name -> tutorial.ResPlayroomInfo.ItemsEntry - 503, // 214: tutorial.ResPlayroomInfo.flip:type_name -> tutorial.ResPlayroomInfo.FlipEntry - 504, // 215: tutorial.ResPlayroomInfo.Emoji:type_name -> tutorial.ResPlayroomInfo.EmojiEntry - 505, // 216: tutorial.ResPlayroomInfo.DressSet:type_name -> tutorial.ResPlayroomInfo.DressSetEntry - 2, // 217: tutorial.ResPlayroomFlip.Code:type_name -> tutorial.RES_CODE - 2, // 218: tutorial.ResPlayroomGuide.Code:type_name -> tutorial.RES_CODE - 2, // 219: tutorial.ResPlayroomFlipReward.Code:type_name -> tutorial.RES_CODE - 2, // 220: tutorial.ResPlayroomGame.Code:type_name -> tutorial.RES_CODE - 506, // 221: tutorial.ResPlayroomGame.Items:type_name -> tutorial.ResPlayroomGame.ItemsEntry - 159, // 222: tutorial.ResPlayroomGameShowReward.Items:type_name -> tutorial.ItemInfo - 2, // 223: tutorial.ResPlayroomInteract.Code:type_name -> tutorial.RES_CODE - 507, // 224: tutorial.ReqPlayroomSetRoom.Playroom:type_name -> tutorial.ReqPlayroomSetRoom.PlayroomEntry - 2, // 225: tutorial.ResPlayroomSetRoom.Code:type_name -> tutorial.RES_CODE - 2, // 226: tutorial.ResPlayroomSelectReward.Code:type_name -> tutorial.RES_CODE - 2, // 227: tutorial.ResPlayroomLose.Code:type_name -> tutorial.RES_CODE - 2, // 228: tutorial.ResPlayroomWork.Code:type_name -> tutorial.RES_CODE - 2, // 229: tutorial.ResPlayroomRest.Code:type_name -> tutorial.RES_CODE - 2, // 230: tutorial.ResPlayroomDraw.Code:type_name -> tutorial.RES_CODE - 2, // 231: tutorial.ResPlayroomChip.Code:type_name -> tutorial.RES_CODE - 2, // 232: tutorial.ResPlayroomBuyItem.Code:type_name -> tutorial.RES_CODE - 2, // 233: tutorial.ResPlayroomShop.Code:type_name -> tutorial.RES_CODE - 408, // 234: tutorial.ResFriendTreasure.List:type_name -> tutorial.TreasureInfo - 408, // 235: tutorial.ReqFriendTreasureStart.List:type_name -> tutorial.TreasureInfo - 2, // 236: tutorial.ResFriendTreasureStart.Code:type_name -> tutorial.RES_CODE - 2, // 237: tutorial.ResFriendTreasureEnd.Code:type_name -> tutorial.RES_CODE - 2, // 238: tutorial.ResFriendTreasureFilp.Code:type_name -> tutorial.RES_CODE - 419, // 239: tutorial.ResCollectInfo.Items:type_name -> tutorial.CollectItem - 159, // 240: tutorial.CollectItem.Items:type_name -> tutorial.ItemInfo - 2, // 241: tutorial.ResCollect.Code:type_name -> tutorial.RES_CODE - 424, // 242: tutorial.ResCatnip.GameList:type_name -> tutorial.CatnipGame - 214, // 243: tutorial.CatnipGame.Partner:type_name -> tutorial.ResPlayerSimple - 2, // 244: tutorial.ResCatnipInvite.Code:type_name -> tutorial.RES_CODE - 2, // 245: tutorial.ResCatnipAgree.Code:type_name -> tutorial.RES_CODE - 2, // 246: tutorial.ResCatnipRefuse.Code:type_name -> tutorial.RES_CODE - 2, // 247: tutorial.ResCatnipMultiply.Code:type_name -> tutorial.RES_CODE - 2, // 248: tutorial.ResCatnipPlay.Code:type_name -> tutorial.RES_CODE - 2, // 249: tutorial.ResCatnipReward.Code:type_name -> tutorial.RES_CODE - 2, // 250: tutorial.ResCatnipGrandReward.Code:type_name -> tutorial.RES_CODE - 162, // 251: tutorial.ResDailyTask.WeekRewardEntry.value:type_name -> tutorial.DailyWeek - 163, // 252: tutorial.ResDailyTask.DailyTaskEntry.value:type_name -> tutorial.DailyTask - 199, // 253: tutorial.ResLimitEvent.LimitEventListEntry.value:type_name -> tutorial.LimitEvent - 214, // 254: tutorial.ResRank.RankListEntry.value:type_name -> tutorial.ResPlayerSimple - 258, // 255: tutorial.ResMailList.MailListEntry.value:type_name -> tutorial.MailInfo - 274, // 256: tutorial.ResCharge.SpecialShopEntry.value:type_name -> tutorial.ResSpecialShop - 275, // 257: tutorial.ResCharge.ChessShopEntry.value:type_name -> tutorial.ResChessShop - 286, // 258: tutorial.ResEndless.EndlessListEntry.value:type_name -> tutorial.ResEndlessInfo - 215, // 259: tutorial.ResChampshipRank.RankListEntry.value:type_name -> tutorial.ResPlayerRank - 215, // 260: tutorial.ResChampshipPreRank.RankListEntry.value:type_name -> tutorial.ResPlayerRank - 359, // 261: tutorial.ResPlayroom.DressEntry.value:type_name -> tutorial.PlayroomDress - 159, // 262: tutorial.ResPlayroomInfo.ItemsEntry.value:type_name -> tutorial.ItemInfo - 159, // 263: tutorial.ResPlayroomGame.ItemsEntry.value:type_name -> tutorial.ItemInfo - 264, // [264:264] is the sub-list for method output_type - 264, // [264:264] is the sub-list for method input_type - 264, // [264:264] is the sub-list for extension type_name - 264, // [264:264] is the sub-list for extension extendee - 0, // [0:264] is the sub-list for field type_name + 500, // 210: tutorial.NotifyPlayroomMood.Mood:type_name -> tutorial.NotifyPlayroomMood.MoodEntry + 501, // 211: tutorial.NotifyPlayroomMood.Physiology:type_name -> tutorial.NotifyPlayroomMood.PhysiologyEntry + 371, // 212: tutorial.NotifyPlayroomMood.AdItem:type_name -> tutorial.AdItem + 502, // 213: tutorial.ResPlayroomInfo.Playroom:type_name -> tutorial.ResPlayroomInfo.PlayroomEntry + 503, // 214: tutorial.ResPlayroomInfo.Items:type_name -> tutorial.ResPlayroomInfo.ItemsEntry + 504, // 215: tutorial.ResPlayroomInfo.flip:type_name -> tutorial.ResPlayroomInfo.FlipEntry + 505, // 216: tutorial.ResPlayroomInfo.Emoji:type_name -> tutorial.ResPlayroomInfo.EmojiEntry + 506, // 217: tutorial.ResPlayroomInfo.DressSet:type_name -> tutorial.ResPlayroomInfo.DressSetEntry + 2, // 218: tutorial.ResPlayroomFlip.Code:type_name -> tutorial.RES_CODE + 2, // 219: tutorial.ResPlayroomGuide.Code:type_name -> tutorial.RES_CODE + 2, // 220: tutorial.ResPlayroomFlipReward.Code:type_name -> tutorial.RES_CODE + 2, // 221: tutorial.ResPlayroomGame.Code:type_name -> tutorial.RES_CODE + 507, // 222: tutorial.ResPlayroomGame.Items:type_name -> tutorial.ResPlayroomGame.ItemsEntry + 159, // 223: tutorial.ResPlayroomGameShowReward.Items:type_name -> tutorial.ItemInfo + 2, // 224: tutorial.ResPlayroomInteract.Code:type_name -> tutorial.RES_CODE + 508, // 225: tutorial.ReqPlayroomSetRoom.Playroom:type_name -> tutorial.ReqPlayroomSetRoom.PlayroomEntry + 2, // 226: tutorial.ResPlayroomSetRoom.Code:type_name -> tutorial.RES_CODE + 2, // 227: tutorial.ResPlayroomSelectReward.Code:type_name -> tutorial.RES_CODE + 2, // 228: tutorial.ResPlayroomLose.Code:type_name -> tutorial.RES_CODE + 2, // 229: tutorial.ResPlayroomWork.Code:type_name -> tutorial.RES_CODE + 2, // 230: tutorial.ResPlayroomRest.Code:type_name -> tutorial.RES_CODE + 2, // 231: tutorial.ResPlayroomDraw.Code:type_name -> tutorial.RES_CODE + 2, // 232: tutorial.ResPlayroomChip.Code:type_name -> tutorial.RES_CODE + 2, // 233: tutorial.ResPlayroomBuyItem.Code:type_name -> tutorial.RES_CODE + 2, // 234: tutorial.ResPlayroomShop.Code:type_name -> tutorial.RES_CODE + 409, // 235: tutorial.ResFriendTreasure.List:type_name -> tutorial.TreasureInfo + 409, // 236: tutorial.ReqFriendTreasureStart.List:type_name -> tutorial.TreasureInfo + 2, // 237: tutorial.ResFriendTreasureStart.Code:type_name -> tutorial.RES_CODE + 2, // 238: tutorial.ResFriendTreasureEnd.Code:type_name -> tutorial.RES_CODE + 2, // 239: tutorial.ResFriendTreasureFilp.Code:type_name -> tutorial.RES_CODE + 420, // 240: tutorial.ResCollectInfo.Items:type_name -> tutorial.CollectItem + 159, // 241: tutorial.CollectItem.Items:type_name -> tutorial.ItemInfo + 2, // 242: tutorial.ResCollect.Code:type_name -> tutorial.RES_CODE + 425, // 243: tutorial.ResCatnip.GameList:type_name -> tutorial.CatnipGame + 214, // 244: tutorial.CatnipGame.Partner:type_name -> tutorial.ResPlayerSimple + 2, // 245: tutorial.ResCatnipInvite.Code:type_name -> tutorial.RES_CODE + 2, // 246: tutorial.ResCatnipAgree.Code:type_name -> tutorial.RES_CODE + 2, // 247: tutorial.ResCatnipRefuse.Code:type_name -> tutorial.RES_CODE + 2, // 248: tutorial.ResCatnipMultiply.Code:type_name -> tutorial.RES_CODE + 2, // 249: tutorial.ResCatnipPlay.Code:type_name -> tutorial.RES_CODE + 2, // 250: tutorial.ResCatnipReward.Code:type_name -> tutorial.RES_CODE + 2, // 251: tutorial.ResCatnipGrandReward.Code:type_name -> tutorial.RES_CODE + 162, // 252: tutorial.ResDailyTask.WeekRewardEntry.value:type_name -> tutorial.DailyWeek + 163, // 253: tutorial.ResDailyTask.DailyTaskEntry.value:type_name -> tutorial.DailyTask + 199, // 254: tutorial.ResLimitEvent.LimitEventListEntry.value:type_name -> tutorial.LimitEvent + 214, // 255: tutorial.ResRank.RankListEntry.value:type_name -> tutorial.ResPlayerSimple + 258, // 256: tutorial.ResMailList.MailListEntry.value:type_name -> tutorial.MailInfo + 274, // 257: tutorial.ResCharge.SpecialShopEntry.value:type_name -> tutorial.ResSpecialShop + 275, // 258: tutorial.ResCharge.ChessShopEntry.value:type_name -> tutorial.ResChessShop + 286, // 259: tutorial.ResEndless.EndlessListEntry.value:type_name -> tutorial.ResEndlessInfo + 215, // 260: tutorial.ResChampshipRank.RankListEntry.value:type_name -> tutorial.ResPlayerRank + 215, // 261: tutorial.ResChampshipPreRank.RankListEntry.value:type_name -> tutorial.ResPlayerRank + 359, // 262: tutorial.ResPlayroom.DressEntry.value:type_name -> tutorial.PlayroomDress + 159, // 263: tutorial.ResPlayroomInfo.ItemsEntry.value:type_name -> tutorial.ItemInfo + 159, // 264: tutorial.ResPlayroomGame.ItemsEntry.value:type_name -> tutorial.ItemInfo + 265, // [265:265] is the sub-list for method output_type + 265, // [265:265] is the sub-list for method input_type + 265, // [265:265] is the sub-list for extension type_name + 265, // [265:265] is the sub-list for extension extendee + 0, // [0:265] is the sub-list for field type_name } func init() { file_proto_Gameapi_proto_init() } @@ -27410,7 +27485,7 @@ func file_proto_Gameapi_proto_init() { GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: unsafe.Slice(unsafe.StringData(file_proto_Gameapi_proto_rawDesc), len(file_proto_Gameapi_proto_rawDesc)), NumEnums: 11, - NumMessages: 497, + NumMessages: 498, NumExtensions: 0, NumServices: 0, }, From 34ab97fb30eed23a37bfce79789d74641a55d806 Mon Sep 17 00:00:00 2001 From: hahwu <31872165+hahwu@users.noreply.github.com> Date: Mon, 28 Jul 2025 09:59:35 +0800 Subject: [PATCH 09/17] =?UTF-8?q?=E7=A6=81=E7=94=A8GM=E6=8C=87=E4=BB=A4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/server/game/Gm.go | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/server/game/Gm.go b/src/server/game/Gm.go index 6b5c87b6..0db27d4a 100644 --- a/src/server/game/Gm.go +++ b/src/server/game/Gm.go @@ -32,6 +32,9 @@ import ( ) func ReqGmCommand(player *Player, buf []byte) error { + if conf.Server.GameName != "pet_home" && conf.Server.GameName != "merge_pet_sdk" { + return fmt.Errorf("Player %d ReqGmCommand not support in game %s", player.M_DwUin, conf.Server.GameName) + } detail := &msg.ReqGmCommand{} proto.Unmarshal(buf, detail) return ReqGmCommand_(player, detail.Command) From 265038b8cba3d5242104f7fe094d474b53797662 Mon Sep 17 00:00:00 2001 From: hahwu <31872165+hahwu@users.noreply.github.com> Date: Mon, 28 Jul 2025 10:38:24 +0800 Subject: [PATCH 10/17] =?UTF-8?q?playroom=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/server/game/PlayerBack.go | 9 ++ src/server/msg/Gameapi.pb.go | 157 ++++++++++++++++++---------------- 2 files changed, 92 insertions(+), 74 deletions(-) diff --git a/src/server/game/PlayerBack.go b/src/server/game/PlayerBack.go index 3fa14edc..10b2ab2b 100644 --- a/src/server/game/PlayerBack.go +++ b/src/server/game/PlayerBack.go @@ -76,6 +76,14 @@ func PlayroomBackData(p *Player) { EmojiId: int32(v.Emoji), }) } + AdWatch := make([]*proto.AdItem, 0) + for k, v := range PlayroomMod.ADItem { + AdWatch = append(AdWatch, &proto.AdItem{ + Watch: int32(v.Watch), + LastWatch: int32(v.LastTime), + ItemId: int32(k), + }) + } data := G_GameLogicPtr.GetUserData(int(p.M_DwUin)) r.Dress = Dress @@ -98,6 +106,7 @@ func PlayroomBackData(p *Player) { r.Kiss = int32(data.Kiss) r.Revenge = PlayroomMod.RevengeUid r.InteractNum = int32(PlayroomMod.InteractNum) + r.AdItem = AdWatch p.PushClientRes(r) } diff --git a/src/server/msg/Gameapi.pb.go b/src/server/msg/Gameapi.pb.go index 98c3ac5a..b26f322e 100644 --- a/src/server/msg/Gameapi.pb.go +++ b/src/server/msg/Gameapi.pb.go @@ -19380,6 +19380,7 @@ type ResPlayroom struct { InteractNum int32 `protobuf:"varint,25,opt,name=InteractNum,proto3" json:"InteractNum,omitempty"` // 互动次数 Kiss int32 `protobuf:"varint,26,opt,name=Kiss,proto3" json:"Kiss,omitempty"` // 亲吻次数 Revenge int64 `protobuf:"varint,27,opt,name=Revenge,proto3" json:"Revenge,omitempty"` // 复仇Uid + AdItem []*AdItem `protobuf:"bytes,28,rep,name=AdItem,proto3" json:"AdItem,omitempty"` // 广告奖励信息 unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache } @@ -19603,6 +19604,13 @@ func (x *ResPlayroom) GetRevenge() int64 { return 0 } +func (x *ResPlayroom) GetAdItem() []*AdItem { + if x != nil { + return x.AdItem + } + return nil +} + type NotifyPlayroomTask struct { state protoimpl.MessageState `protogen:"open.v1"` DailyTask []*DailyTask `protobuf:"bytes,1,rep,name=DailyTask,proto3" json:"DailyTask,omitempty"` // 每日任务 @@ -26104,8 +26112,7 @@ const file_proto_Gameapi_proto_rawDesc = "" + "\rResRaceReward\x12&\n" + "\x04Code\x18\x01 \x01(\x0e2\x12.tutorial.RES_CODER\x04Code\x12\x10\n" + "\x03Msg\x18\x02 \x01(\tR\x03Msg\"\r\n" + - "\vReqPlayroom\"\xe3\n" + - "\n" + + "\vReqPlayroom\"\x8d\v\n" + "\vResPlayroom\x12\x16\n" + "\x06status\x18\x01 \x01(\x05R\x06status\x12(\n" + "\x05Items\x18\x02 \x03(\v2\x12.tutorial.ItemInfoR\x05Items\x122\n" + @@ -26138,7 +26145,8 @@ const file_proto_Gameapi_proto_rawDesc = "" + "\x0fDailyTaskReward\x18\x18 \x03(\x05R\x0fDailyTaskReward\x12 \n" + "\vInteractNum\x18\x19 \x01(\x05R\vInteractNum\x12\x12\n" + "\x04Kiss\x18\x1a \x01(\x05R\x04Kiss\x12\x18\n" + - "\aRevenge\x18\x1b \x01(\x03R\aRevenge\x1a;\n" + + "\aRevenge\x18\x1b \x01(\x03R\aRevenge\x12(\n" + + "\x06AdItem\x18\x1c \x03(\v2\x10.tutorial.AdItemR\x06AdItem\x1a;\n" + "\rPlayroomEntry\x12\x10\n" + "\x03key\x18\x01 \x01(\x05R\x03key\x12\x14\n" + "\x05value\x18\x02 \x01(\x05R\x05value:\x028\x01\x1a7\n" + @@ -27401,77 +27409,78 @@ var file_proto_Gameapi_proto_depIdxs = []int32{ 497, // 196: tutorial.ResPlayroom.Dress:type_name -> tutorial.ResPlayroom.DressEntry 498, // 197: tutorial.ResPlayroom.DressSet:type_name -> tutorial.ResPlayroom.DressSetEntry 163, // 198: tutorial.ResPlayroom.DailyTask:type_name -> tutorial.DailyTask - 163, // 199: tutorial.NotifyPlayroomTask.DailyTask:type_name -> tutorial.DailyTask - 2, // 200: tutorial.ResPlayroomTask.Code:type_name -> tutorial.RES_CODE - 2, // 201: tutorial.ResPlayroomTaskReward.Code:type_name -> tutorial.RES_CODE - 2, // 202: tutorial.ResPlayroomUnlock.Code:type_name -> tutorial.RES_CODE - 2, // 203: tutorial.ResPlayroomUpvote.Code:type_name -> tutorial.RES_CODE - 499, // 204: tutorial.ReqPlayroomDressSet.DressSet:type_name -> tutorial.ReqPlayroomDressSet.DressSetEntry - 2, // 205: tutorial.ResPlayroomDressSet.Code:type_name -> tutorial.RES_CODE - 2, // 206: tutorial.ResPlayroomPetAirSet.Code:type_name -> tutorial.RES_CODE - 2, // 207: tutorial.ResPlayroomWrokOutline.Code:type_name -> tutorial.RES_CODE - 159, // 208: tutorial.NotifyPlayroomLose.LoseItem:type_name -> tutorial.ItemInfo - 369, // 209: tutorial.NotifyPlayroomLose.Chip:type_name -> tutorial.ChipInfo - 500, // 210: tutorial.NotifyPlayroomMood.Mood:type_name -> tutorial.NotifyPlayroomMood.MoodEntry - 501, // 211: tutorial.NotifyPlayroomMood.Physiology:type_name -> tutorial.NotifyPlayroomMood.PhysiologyEntry - 371, // 212: tutorial.NotifyPlayroomMood.AdItem:type_name -> tutorial.AdItem - 502, // 213: tutorial.ResPlayroomInfo.Playroom:type_name -> tutorial.ResPlayroomInfo.PlayroomEntry - 503, // 214: tutorial.ResPlayroomInfo.Items:type_name -> tutorial.ResPlayroomInfo.ItemsEntry - 504, // 215: tutorial.ResPlayroomInfo.flip:type_name -> tutorial.ResPlayroomInfo.FlipEntry - 505, // 216: tutorial.ResPlayroomInfo.Emoji:type_name -> tutorial.ResPlayroomInfo.EmojiEntry - 506, // 217: tutorial.ResPlayroomInfo.DressSet:type_name -> tutorial.ResPlayroomInfo.DressSetEntry - 2, // 218: tutorial.ResPlayroomFlip.Code:type_name -> tutorial.RES_CODE - 2, // 219: tutorial.ResPlayroomGuide.Code:type_name -> tutorial.RES_CODE - 2, // 220: tutorial.ResPlayroomFlipReward.Code:type_name -> tutorial.RES_CODE - 2, // 221: tutorial.ResPlayroomGame.Code:type_name -> tutorial.RES_CODE - 507, // 222: tutorial.ResPlayroomGame.Items:type_name -> tutorial.ResPlayroomGame.ItemsEntry - 159, // 223: tutorial.ResPlayroomGameShowReward.Items:type_name -> tutorial.ItemInfo - 2, // 224: tutorial.ResPlayroomInteract.Code:type_name -> tutorial.RES_CODE - 508, // 225: tutorial.ReqPlayroomSetRoom.Playroom:type_name -> tutorial.ReqPlayroomSetRoom.PlayroomEntry - 2, // 226: tutorial.ResPlayroomSetRoom.Code:type_name -> tutorial.RES_CODE - 2, // 227: tutorial.ResPlayroomSelectReward.Code:type_name -> tutorial.RES_CODE - 2, // 228: tutorial.ResPlayroomLose.Code:type_name -> tutorial.RES_CODE - 2, // 229: tutorial.ResPlayroomWork.Code:type_name -> tutorial.RES_CODE - 2, // 230: tutorial.ResPlayroomRest.Code:type_name -> tutorial.RES_CODE - 2, // 231: tutorial.ResPlayroomDraw.Code:type_name -> tutorial.RES_CODE - 2, // 232: tutorial.ResPlayroomChip.Code:type_name -> tutorial.RES_CODE - 2, // 233: tutorial.ResPlayroomBuyItem.Code:type_name -> tutorial.RES_CODE - 2, // 234: tutorial.ResPlayroomShop.Code:type_name -> tutorial.RES_CODE - 409, // 235: tutorial.ResFriendTreasure.List:type_name -> tutorial.TreasureInfo - 409, // 236: tutorial.ReqFriendTreasureStart.List:type_name -> tutorial.TreasureInfo - 2, // 237: tutorial.ResFriendTreasureStart.Code:type_name -> tutorial.RES_CODE - 2, // 238: tutorial.ResFriendTreasureEnd.Code:type_name -> tutorial.RES_CODE - 2, // 239: tutorial.ResFriendTreasureFilp.Code:type_name -> tutorial.RES_CODE - 420, // 240: tutorial.ResCollectInfo.Items:type_name -> tutorial.CollectItem - 159, // 241: tutorial.CollectItem.Items:type_name -> tutorial.ItemInfo - 2, // 242: tutorial.ResCollect.Code:type_name -> tutorial.RES_CODE - 425, // 243: tutorial.ResCatnip.GameList:type_name -> tutorial.CatnipGame - 214, // 244: tutorial.CatnipGame.Partner:type_name -> tutorial.ResPlayerSimple - 2, // 245: tutorial.ResCatnipInvite.Code:type_name -> tutorial.RES_CODE - 2, // 246: tutorial.ResCatnipAgree.Code:type_name -> tutorial.RES_CODE - 2, // 247: tutorial.ResCatnipRefuse.Code:type_name -> tutorial.RES_CODE - 2, // 248: tutorial.ResCatnipMultiply.Code:type_name -> tutorial.RES_CODE - 2, // 249: tutorial.ResCatnipPlay.Code:type_name -> tutorial.RES_CODE - 2, // 250: tutorial.ResCatnipReward.Code:type_name -> tutorial.RES_CODE - 2, // 251: tutorial.ResCatnipGrandReward.Code:type_name -> tutorial.RES_CODE - 162, // 252: tutorial.ResDailyTask.WeekRewardEntry.value:type_name -> tutorial.DailyWeek - 163, // 253: tutorial.ResDailyTask.DailyTaskEntry.value:type_name -> tutorial.DailyTask - 199, // 254: tutorial.ResLimitEvent.LimitEventListEntry.value:type_name -> tutorial.LimitEvent - 214, // 255: tutorial.ResRank.RankListEntry.value:type_name -> tutorial.ResPlayerSimple - 258, // 256: tutorial.ResMailList.MailListEntry.value:type_name -> tutorial.MailInfo - 274, // 257: tutorial.ResCharge.SpecialShopEntry.value:type_name -> tutorial.ResSpecialShop - 275, // 258: tutorial.ResCharge.ChessShopEntry.value:type_name -> tutorial.ResChessShop - 286, // 259: tutorial.ResEndless.EndlessListEntry.value:type_name -> tutorial.ResEndlessInfo - 215, // 260: tutorial.ResChampshipRank.RankListEntry.value:type_name -> tutorial.ResPlayerRank - 215, // 261: tutorial.ResChampshipPreRank.RankListEntry.value:type_name -> tutorial.ResPlayerRank - 359, // 262: tutorial.ResPlayroom.DressEntry.value:type_name -> tutorial.PlayroomDress - 159, // 263: tutorial.ResPlayroomInfo.ItemsEntry.value:type_name -> tutorial.ItemInfo - 159, // 264: tutorial.ResPlayroomGame.ItemsEntry.value:type_name -> tutorial.ItemInfo - 265, // [265:265] is the sub-list for method output_type - 265, // [265:265] is the sub-list for method input_type - 265, // [265:265] is the sub-list for extension type_name - 265, // [265:265] is the sub-list for extension extendee - 0, // [0:265] is the sub-list for field type_name + 371, // 199: tutorial.ResPlayroom.AdItem:type_name -> tutorial.AdItem + 163, // 200: tutorial.NotifyPlayroomTask.DailyTask:type_name -> tutorial.DailyTask + 2, // 201: tutorial.ResPlayroomTask.Code:type_name -> tutorial.RES_CODE + 2, // 202: tutorial.ResPlayroomTaskReward.Code:type_name -> tutorial.RES_CODE + 2, // 203: tutorial.ResPlayroomUnlock.Code:type_name -> tutorial.RES_CODE + 2, // 204: tutorial.ResPlayroomUpvote.Code:type_name -> tutorial.RES_CODE + 499, // 205: tutorial.ReqPlayroomDressSet.DressSet:type_name -> tutorial.ReqPlayroomDressSet.DressSetEntry + 2, // 206: tutorial.ResPlayroomDressSet.Code:type_name -> tutorial.RES_CODE + 2, // 207: tutorial.ResPlayroomPetAirSet.Code:type_name -> tutorial.RES_CODE + 2, // 208: tutorial.ResPlayroomWrokOutline.Code:type_name -> tutorial.RES_CODE + 159, // 209: tutorial.NotifyPlayroomLose.LoseItem:type_name -> tutorial.ItemInfo + 369, // 210: tutorial.NotifyPlayroomLose.Chip:type_name -> tutorial.ChipInfo + 500, // 211: tutorial.NotifyPlayroomMood.Mood:type_name -> tutorial.NotifyPlayroomMood.MoodEntry + 501, // 212: tutorial.NotifyPlayroomMood.Physiology:type_name -> tutorial.NotifyPlayroomMood.PhysiologyEntry + 371, // 213: tutorial.NotifyPlayroomMood.AdItem:type_name -> tutorial.AdItem + 502, // 214: tutorial.ResPlayroomInfo.Playroom:type_name -> tutorial.ResPlayroomInfo.PlayroomEntry + 503, // 215: tutorial.ResPlayroomInfo.Items:type_name -> tutorial.ResPlayroomInfo.ItemsEntry + 504, // 216: tutorial.ResPlayroomInfo.flip:type_name -> tutorial.ResPlayroomInfo.FlipEntry + 505, // 217: tutorial.ResPlayroomInfo.Emoji:type_name -> tutorial.ResPlayroomInfo.EmojiEntry + 506, // 218: tutorial.ResPlayroomInfo.DressSet:type_name -> tutorial.ResPlayroomInfo.DressSetEntry + 2, // 219: tutorial.ResPlayroomFlip.Code:type_name -> tutorial.RES_CODE + 2, // 220: tutorial.ResPlayroomGuide.Code:type_name -> tutorial.RES_CODE + 2, // 221: tutorial.ResPlayroomFlipReward.Code:type_name -> tutorial.RES_CODE + 2, // 222: tutorial.ResPlayroomGame.Code:type_name -> tutorial.RES_CODE + 507, // 223: tutorial.ResPlayroomGame.Items:type_name -> tutorial.ResPlayroomGame.ItemsEntry + 159, // 224: tutorial.ResPlayroomGameShowReward.Items:type_name -> tutorial.ItemInfo + 2, // 225: tutorial.ResPlayroomInteract.Code:type_name -> tutorial.RES_CODE + 508, // 226: tutorial.ReqPlayroomSetRoom.Playroom:type_name -> tutorial.ReqPlayroomSetRoom.PlayroomEntry + 2, // 227: tutorial.ResPlayroomSetRoom.Code:type_name -> tutorial.RES_CODE + 2, // 228: tutorial.ResPlayroomSelectReward.Code:type_name -> tutorial.RES_CODE + 2, // 229: tutorial.ResPlayroomLose.Code:type_name -> tutorial.RES_CODE + 2, // 230: tutorial.ResPlayroomWork.Code:type_name -> tutorial.RES_CODE + 2, // 231: tutorial.ResPlayroomRest.Code:type_name -> tutorial.RES_CODE + 2, // 232: tutorial.ResPlayroomDraw.Code:type_name -> tutorial.RES_CODE + 2, // 233: tutorial.ResPlayroomChip.Code:type_name -> tutorial.RES_CODE + 2, // 234: tutorial.ResPlayroomBuyItem.Code:type_name -> tutorial.RES_CODE + 2, // 235: tutorial.ResPlayroomShop.Code:type_name -> tutorial.RES_CODE + 409, // 236: tutorial.ResFriendTreasure.List:type_name -> tutorial.TreasureInfo + 409, // 237: tutorial.ReqFriendTreasureStart.List:type_name -> tutorial.TreasureInfo + 2, // 238: tutorial.ResFriendTreasureStart.Code:type_name -> tutorial.RES_CODE + 2, // 239: tutorial.ResFriendTreasureEnd.Code:type_name -> tutorial.RES_CODE + 2, // 240: tutorial.ResFriendTreasureFilp.Code:type_name -> tutorial.RES_CODE + 420, // 241: tutorial.ResCollectInfo.Items:type_name -> tutorial.CollectItem + 159, // 242: tutorial.CollectItem.Items:type_name -> tutorial.ItemInfo + 2, // 243: tutorial.ResCollect.Code:type_name -> tutorial.RES_CODE + 425, // 244: tutorial.ResCatnip.GameList:type_name -> tutorial.CatnipGame + 214, // 245: tutorial.CatnipGame.Partner:type_name -> tutorial.ResPlayerSimple + 2, // 246: tutorial.ResCatnipInvite.Code:type_name -> tutorial.RES_CODE + 2, // 247: tutorial.ResCatnipAgree.Code:type_name -> tutorial.RES_CODE + 2, // 248: tutorial.ResCatnipRefuse.Code:type_name -> tutorial.RES_CODE + 2, // 249: tutorial.ResCatnipMultiply.Code:type_name -> tutorial.RES_CODE + 2, // 250: tutorial.ResCatnipPlay.Code:type_name -> tutorial.RES_CODE + 2, // 251: tutorial.ResCatnipReward.Code:type_name -> tutorial.RES_CODE + 2, // 252: tutorial.ResCatnipGrandReward.Code:type_name -> tutorial.RES_CODE + 162, // 253: tutorial.ResDailyTask.WeekRewardEntry.value:type_name -> tutorial.DailyWeek + 163, // 254: tutorial.ResDailyTask.DailyTaskEntry.value:type_name -> tutorial.DailyTask + 199, // 255: tutorial.ResLimitEvent.LimitEventListEntry.value:type_name -> tutorial.LimitEvent + 214, // 256: tutorial.ResRank.RankListEntry.value:type_name -> tutorial.ResPlayerSimple + 258, // 257: tutorial.ResMailList.MailListEntry.value:type_name -> tutorial.MailInfo + 274, // 258: tutorial.ResCharge.SpecialShopEntry.value:type_name -> tutorial.ResSpecialShop + 275, // 259: tutorial.ResCharge.ChessShopEntry.value:type_name -> tutorial.ResChessShop + 286, // 260: tutorial.ResEndless.EndlessListEntry.value:type_name -> tutorial.ResEndlessInfo + 215, // 261: tutorial.ResChampshipRank.RankListEntry.value:type_name -> tutorial.ResPlayerRank + 215, // 262: tutorial.ResChampshipPreRank.RankListEntry.value:type_name -> tutorial.ResPlayerRank + 359, // 263: tutorial.ResPlayroom.DressEntry.value:type_name -> tutorial.PlayroomDress + 159, // 264: tutorial.ResPlayroomInfo.ItemsEntry.value:type_name -> tutorial.ItemInfo + 159, // 265: tutorial.ResPlayroomGame.ItemsEntry.value:type_name -> tutorial.ItemInfo + 266, // [266:266] is the sub-list for method output_type + 266, // [266:266] is the sub-list for method input_type + 266, // [266:266] is the sub-list for extension type_name + 266, // [266:266] is the sub-list for extension extendee + 0, // [0:266] is the sub-list for field type_name } func init() { file_proto_Gameapi_proto_init() } From 5f214e2cb1df346bc78aab70d70165bfa4a5a73d Mon Sep 17 00:00:00 2001 From: hahwu <31872165+hahwu@users.noreply.github.com> Date: Mon, 28 Jul 2025 12:24:40 +0800 Subject: [PATCH 11/17] =?UTF-8?q?playroom=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/server/conf/playroom/playroomCfg.go | 10 ++++++++-- src/server/game/RegisterNetworkFunc.go | 24 +++++++++++++----------- 2 files changed, 21 insertions(+), 13 deletions(-) diff --git a/src/server/conf/playroom/playroomCfg.go b/src/server/conf/playroom/playroomCfg.go index 83bfc209..ba7dd4a3 100644 --- a/src/server/conf/playroom/playroomCfg.go +++ b/src/server/conf/playroom/playroomCfg.go @@ -585,9 +585,15 @@ func GetPetOrderItemExpByList(ItemList []*item.Item) int { } func GetShopItemAdNum(Id int) int { - data, err := gamedata.GetDataByIntKey(CFG_PLAYROOM_SHOP, Id) + data, err := gamedata.GetData(CFG_PLAYROOM_SHOP) if err != nil { + log.Debug("GetShopItemAdNum err:%v", err) return 0 } - return gamedata.GetIntValue(data, "Dailystorage") + for _, v := range data { + if gamedata.GetIntValue(v, "ItemId") == Id { + return gamedata.GetIntValue(v, "Dailystorage") + } + } + return 0 } diff --git a/src/server/game/RegisterNetworkFunc.go b/src/server/game/RegisterNetworkFunc.go index 077a8398..2060b834 100644 --- a/src/server/game/RegisterNetworkFunc.go +++ b/src/server/game/RegisterNetworkFunc.go @@ -3637,16 +3637,7 @@ func ReqPlayroomBuyItem(player *Player, buf []byte) error { }) return err } - if CostItem[0].Num == 0 { - err := PlayroomMod.AdWatch(AddItems[0].Id) - if err != nil { - player.SendErrClienRes(&msg.ResPlayroomBuyItem{ - Code: msg.RES_CODE_FAIL, - Msg: err.Error(), - }) - return err - } - } + err := player.HandleLoseItem(CostItem, msg.ITEM_POP_LABEL_PlayroomBuyItem.String()) if err != nil { player.SendErrClienRes(&msg.ResPlayroomBuyItem{ @@ -3901,6 +3892,17 @@ func ReqPlayroomShop(player *Player, buf []byte) error { }) return err } + // 消耗道具为0则为广告获取 + if LoseItem[0].Num == 0 { + err := PlayroomMod.AdWatch(AddItems[0].Id) + if err != nil { + player.SendErrClienRes(&msg.ResPlayroomBuyItem{ + Code: msg.RES_CODE_FAIL, + Msg: err.Error(), + }) + return err + } + } err = player.HandleLoseItem(LoseItem, msg.ITEM_POP_LABEL_PlayroomShop.String()) if err != nil { player.SendErrClienRes(&msg.ResPlayroomShop{ @@ -3923,7 +3925,7 @@ func ReqPlayroomShop(player *Player, buf []byte) error { "reward": AddItems, }) player.PlayMod.save() - PlayroomBackData(player) + player.PushClientRes(PlayroomMod.NotifyMood()) player.PushClientRes(&msg.ResPlayroomShop{ Code: msg.RES_CODE_SUCCESS, }) From dce5b214babc83919a2f7623c8b943a1e92bdca2 Mon Sep 17 00:00:00 2001 From: hahwu <31872165+hahwu@users.noreply.github.com> Date: Tue, 29 Jul 2025 10:24:04 +0800 Subject: [PATCH 12/17] =?UTF-8?q?gm=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/server/game/Gm.go | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/server/game/Gm.go b/src/server/game/Gm.go index 0db27d4a..88757f9d 100644 --- a/src/server/game/Gm.go +++ b/src/server/game/Gm.go @@ -32,9 +32,9 @@ import ( ) func ReqGmCommand(player *Player, buf []byte) error { - if conf.Server.GameName != "pet_home" && conf.Server.GameName != "merge_pet_sdk" { - return fmt.Errorf("Player %d ReqGmCommand not support in game %s", player.M_DwUin, conf.Server.GameName) - } + // if conf.Server.GameName != "pet_home" && conf.Server.GameName != "merge_pet_sdk" { + // return fmt.Errorf("Player %d ReqGmCommand not support in game %s", player.M_DwUin, conf.Server.GameName) + // } detail := &msg.ReqGmCommand{} proto.Unmarshal(buf, detail) return ReqGmCommand_(player, detail.Command) From fcca991555d9900e3d7ea2dad2f1aad592cff4e9 Mon Sep 17 00:00:00 2001 From: hahwu <31872165+hahwu@users.noreply.github.com> Date: Tue, 29 Jul 2025 15:30:12 +0800 Subject: [PATCH 13/17] =?UTF-8?q?=E5=8D=A1=E7=89=8C=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/server/game/PlayerFunc.go | 1 + src/server/game/RegisterNetworkFunc.go | 2 ++ src/server/game/mod/card/Card.go | 1 + src/server/msg/Gameapi.pb.go | 39 ++++++++++++++++++++++---- 4 files changed, 37 insertions(+), 6 deletions(-) diff --git a/src/server/game/PlayerFunc.go b/src/server/game/PlayerFunc.go index b7ddf4d5..be997a21 100644 --- a/src/server/game/PlayerFunc.go +++ b/src/server/game/PlayerFunc.go @@ -682,6 +682,7 @@ func GetCardInfoMsg(CardInfo *card.CardInfo) *proto.ResFriendCard { Type: int32(CardInfo.Type), Status: int32(CardInfo.Status), Id: CardInfo.Id, + Emoji: int32(CardInfo.Emoji), } } diff --git a/src/server/game/RegisterNetworkFunc.go b/src/server/game/RegisterNetworkFunc.go index 2060b834..87cc399d 100644 --- a/src/server/game/RegisterNetworkFunc.go +++ b/src/server/game/RegisterNetworkFunc.go @@ -1863,6 +1863,7 @@ func ReqCardSend(player *Player, buf []byte) error { }) return err } + CardInfo.Emoji = int(req.Emoji) m := &MsqMod.Msg{ Type: MsqMod.HANDLE_TYPE_SEND_CARD, From: int(player.M_DwUin), @@ -1900,6 +1901,7 @@ func ReqCardExchange(player *Player, buf []byte) error { }) return err } + CardInfo.Emoji = int(req.Emoji) m := &MsqMod.Msg{ Type: MsqMod.HANDLE_TYPE_EX_CARD, From: int(player.M_DwUin), diff --git a/src/server/game/mod/card/Card.go b/src/server/game/mod/card/Card.go index 7901c776..11afc885 100644 --- a/src/server/game/mod/card/Card.go +++ b/src/server/game/mod/card/Card.go @@ -73,6 +73,7 @@ type CardInfo struct { EndTime int64 StartTime int64 Status int + Emoji int } func (c *CardMod) InitData() { diff --git a/src/server/msg/Gameapi.pb.go b/src/server/msg/Gameapi.pb.go index b26f322e..f44d8956 100644 --- a/src/server/msg/Gameapi.pb.go +++ b/src/server/msg/Gameapi.pb.go @@ -8026,6 +8026,7 @@ type ReqCardSend struct { state protoimpl.MessageState `protogen:"open.v1"` Uid int64 `protobuf:"varint,1,opt,name=Uid,proto3" json:"Uid,omitempty"` CardId int32 `protobuf:"varint,2,opt,name=CardId,proto3" json:"CardId,omitempty"` + Emoji int32 `protobuf:"varint,3,opt,name=Emoji,proto3" json:"Emoji,omitempty"` // 表情Id unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache } @@ -8074,6 +8075,13 @@ func (x *ReqCardSend) GetCardId() int32 { return 0 } +func (x *ReqCardSend) GetEmoji() int32 { + if x != nil { + return x.Emoji + } + return 0 +} + type ResCardSend struct { state protoimpl.MessageState `protogen:"open.v1"` Code RES_CODE `protobuf:"varint,1,opt,name=Code,proto3,enum=tutorial.RES_CODE" json:"Code,omitempty"` @@ -8131,6 +8139,7 @@ type ReqCardExchange struct { state protoimpl.MessageState `protogen:"open.v1"` Uid int64 `protobuf:"varint,1,opt,name=Uid,proto3" json:"Uid,omitempty"` CardId int32 `protobuf:"varint,2,opt,name=CardId,proto3" json:"CardId,omitempty"` + Emoji int32 `protobuf:"varint,3,opt,name=Emoji,proto3" json:"Emoji,omitempty"` // 表情Id unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache } @@ -8179,6 +8188,13 @@ func (x *ReqCardExchange) GetCardId() int32 { return 0 } +func (x *ReqCardExchange) GetEmoji() int32 { + if x != nil { + return x.Emoji + } + return 0 +} + type ResCardExchange struct { state protoimpl.MessageState `protogen:"open.v1"` Code RES_CODE `protobuf:"varint,1,opt,name=Code,proto3,enum=tutorial.RES_CODE" json:"Code,omitempty"` @@ -12580,6 +12596,7 @@ type ResFriendCard struct { ExCardId int32 `protobuf:"varint,9,opt,name=ExCardId,proto3" json:"ExCardId,omitempty"` Status int32 `protobuf:"varint,10,opt,name=Status,proto3" json:"Status,omitempty"` Id string `protobuf:"bytes,11,opt,name=Id,proto3" json:"Id,omitempty"` + Emoji int32 `protobuf:"varint,12,opt,name=Emoji,proto3" json:"Emoji,omitempty"` // 表情Id unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache } @@ -12691,6 +12708,13 @@ func (x *ResFriendCard) GetId() string { return "" } +func (x *ResFriendCard) GetEmoji() int32 { + if x != nil { + return x.Emoji + } + return 0 +} + type ReqKv struct { state protoimpl.MessageState `protogen:"open.v1"` Key int32 `protobuf:"varint,1,opt,name=key,proto3" json:"key,omitempty"` @@ -25308,16 +25332,18 @@ const file_proto_Gameapi_proto_rawDesc = "" + "\x11ResRefuseCardGive\x12&\n" + "\x04Code\x18\x01 \x01(\x0e2\x12.tutorial.RES_CODER\x04Code\x12\x10\n" + "\x03Msg\x18\x02 \x01(\tR\x03Msg\x12\x0e\n" + - "\x02Id\x18\x03 \x01(\tR\x02Id\"7\n" + + "\x02Id\x18\x03 \x01(\tR\x02Id\"M\n" + "\vReqCardSend\x12\x10\n" + "\x03Uid\x18\x01 \x01(\x03R\x03Uid\x12\x16\n" + - "\x06CardId\x18\x02 \x01(\x05R\x06CardId\"G\n" + + "\x06CardId\x18\x02 \x01(\x05R\x06CardId\x12\x14\n" + + "\x05Emoji\x18\x03 \x01(\x05R\x05Emoji\"G\n" + "\vResCardSend\x12&\n" + "\x04Code\x18\x01 \x01(\x0e2\x12.tutorial.RES_CODER\x04Code\x12\x10\n" + - "\x03Msg\x18\x02 \x01(\tR\x03Msg\";\n" + + "\x03Msg\x18\x02 \x01(\tR\x03Msg\"Q\n" + "\x0fReqCardExchange\x12\x10\n" + "\x03Uid\x18\x01 \x01(\x03R\x03Uid\x12\x16\n" + - "\x06CardId\x18\x02 \x01(\x05R\x06CardId\"K\n" + + "\x06CardId\x18\x02 \x01(\x05R\x06CardId\x12\x14\n" + + "\x05Emoji\x18\x03 \x01(\x05R\x05Emoji\"K\n" + "\x0fResCardExchange\x12&\n" + "\x04Code\x18\x01 \x01(\x0e2\x12.tutorial.RES_CODER\x04Code\x12\x10\n" + "\x03Msg\x18\x02 \x01(\tR\x03Msg\"?\n" + @@ -25630,7 +25656,7 @@ const file_proto_Gameapi_proto_rawDesc = "" + "\x0fNotifyFriendLog\x12*\n" + "\x04info\x18\x01 \x01(\v2\x16.tutorial.ResFriendLogR\x04info\"?\n" + "\x10NotifyFriendCard\x12+\n" + - "\x04Info\x18\x01 \x01(\v2\x17.tutorial.ResFriendCardR\x04Info\"\xfb\x01\n" + + "\x04Info\x18\x01 \x01(\v2\x17.tutorial.ResFriendCardR\x04Info\"\x91\x02\n" + "\rResFriendCard\x12\x10\n" + "\x03Uid\x18\x01 \x01(\x03R\x03Uid\x12\x12\n" + "\x04Name\x18\x02 \x01(\tR\x04Name\x12\x12\n" + @@ -25643,7 +25669,8 @@ const file_proto_Gameapi_proto_rawDesc = "" + "\bExCardId\x18\t \x01(\x05R\bExCardId\x12\x16\n" + "\x06Status\x18\n" + " \x01(\x05R\x06Status\x12\x0e\n" + - "\x02Id\x18\v \x01(\tR\x02Id\"/\n" + + "\x02Id\x18\v \x01(\tR\x02Id\x12\x14\n" + + "\x05Emoji\x18\f \x01(\x05R\x05Emoji\"/\n" + "\x05ReqKv\x12\x10\n" + "\x03key\x18\x01 \x01(\x05R\x03key\x12\x14\n" + "\x05value\x18\x02 \x01(\tR\x05value\"g\n" + From fd246374da3282c0f6b299db6e46002f398a3a5c Mon Sep 17 00:00:00 2001 From: hahwu <31872165+hahwu@users.noreply.github.com> Date: Tue, 29 Jul 2025 15:55:03 +0800 Subject: [PATCH 14/17] =?UTF-8?q?=E5=8D=A1=E7=89=8C=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/server/game/RegisterNetworkFunc.go | 6 ++++-- src/server/msg/Gameapi.pb.go | 26 ++++++++++++++++++++++---- 2 files changed, 26 insertions(+), 6 deletions(-) diff --git a/src/server/game/RegisterNetworkFunc.go b/src/server/game/RegisterNetworkFunc.go index 87cc399d..f0ea5fa8 100644 --- a/src/server/game/RegisterNetworkFunc.go +++ b/src/server/game/RegisterNetworkFunc.go @@ -2028,8 +2028,9 @@ func ReqAgreeCardExchange(player *Player, buf []byte) error { player.PlayMod.save() player.PushClientRes(CardMod.NotifyCard()) player.PushClientRes(&msg.ResAgreeCardExchange{ - Code: msg.RES_CODE_SUCCESS, - Id: req.Id, + Code: msg.RES_CODE_SUCCESS, + Id: req.Id, + Emoji: int32(CardInfo.Emoji), }) m := &MsqMod.Msg{ Type: MsqMod.HANDLE_TYPE_ARGREE_EX_CARD, @@ -2152,6 +2153,7 @@ func ReqGetFriendCard(player *Player, buf []byte) error { Code: msg.RES_CODE_SUCCESS, Id: req.Id, CardId: int32(CardInfo.CardId), + Emoji: int32(CardInfo.Emoji), }) player.PushClientRes(CardMod.NotifyCard()) return nil diff --git a/src/server/msg/Gameapi.pb.go b/src/server/msg/Gameapi.pb.go index f44d8956..6269c106 100644 --- a/src/server/msg/Gameapi.pb.go +++ b/src/server/msg/Gameapi.pb.go @@ -8410,6 +8410,7 @@ type ResAgreeCardExchange struct { Code RES_CODE `protobuf:"varint,1,opt,name=Code,proto3,enum=tutorial.RES_CODE" json:"Code,omitempty"` Msg string `protobuf:"bytes,2,opt,name=Msg,proto3" json:"Msg,omitempty"` Id string `protobuf:"bytes,3,opt,name=Id,proto3" json:"Id,omitempty"` + Emoji int32 `protobuf:"varint,4,opt,name=Emoji,proto3" json:"Emoji,omitempty"` // 表情Id unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache } @@ -8465,6 +8466,13 @@ func (x *ResAgreeCardExchange) GetId() string { return "" } +func (x *ResAgreeCardExchange) GetEmoji() int32 { + if x != nil { + return x.Emoji + } + return 0 +} + // 拒绝选择卡牌进行交换 type ReqRefuseCardSelect struct { state protoimpl.MessageState `protogen:"open.v1"` @@ -8726,6 +8734,7 @@ type ResGetFriendCard struct { Msg string `protobuf:"bytes,2,opt,name=Msg,proto3" json:"Msg,omitempty"` Id string `protobuf:"bytes,3,opt,name=Id,proto3" json:"Id,omitempty"` CardId int32 `protobuf:"varint,4,opt,name=CardId,proto3" json:"CardId,omitempty"` + Emoji int32 `protobuf:"varint,5,opt,name=Emoji,proto3" json:"Emoji,omitempty"` // 表情Id unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache } @@ -8788,6 +8797,13 @@ func (x *ResGetFriendCard) GetCardId() int32 { return 0 } +func (x *ResGetFriendCard) GetEmoji() int32 { + if x != nil { + return x.Emoji + } + return 0 +} + // 获取可以交换的金卡 type ReqGetGoldCard struct { state protoimpl.MessageState `protogen:"open.v1"` @@ -25355,11 +25371,12 @@ const file_proto_Gameapi_proto_rawDesc = "" + "\x03Msg\x18\x02 \x01(\tR\x03Msg\x12\x0e\n" + "\x02Id\x18\x03 \x01(\tR\x02Id\"&\n" + "\x14ReqAgreeCardExchange\x12\x0e\n" + - "\x02Id\x18\x01 \x01(\tR\x02Id\"`\n" + + "\x02Id\x18\x01 \x01(\tR\x02Id\"v\n" + "\x14ResAgreeCardExchange\x12&\n" + "\x04Code\x18\x01 \x01(\x0e2\x12.tutorial.RES_CODER\x04Code\x12\x10\n" + "\x03Msg\x18\x02 \x01(\tR\x03Msg\x12\x0e\n" + - "\x02Id\x18\x03 \x01(\tR\x02Id\"%\n" + + "\x02Id\x18\x03 \x01(\tR\x02Id\x12\x14\n" + + "\x05Emoji\x18\x04 \x01(\x05R\x05Emoji\"%\n" + "\x13ReqRefuseCardSelect\x12\x0e\n" + "\x02Id\x18\x01 \x01(\tR\x02Id\"_\n" + "\x13ResRefuseCardSelect\x12&\n" + @@ -25373,12 +25390,13 @@ const file_proto_Gameapi_proto_rawDesc = "" + "\x03Msg\x18\x02 \x01(\tR\x03Msg\x12\x0e\n" + "\x02Id\x18\x03 \x01(\tR\x02Id\"\"\n" + "\x10ReqGetFriendCard\x12\x0e\n" + - "\x02Id\x18\x01 \x01(\tR\x02Id\"t\n" + + "\x02Id\x18\x01 \x01(\tR\x02Id\"\x8a\x01\n" + "\x10ResGetFriendCard\x12&\n" + "\x04Code\x18\x01 \x01(\x0e2\x12.tutorial.RES_CODER\x04Code\x12\x10\n" + "\x03Msg\x18\x02 \x01(\tR\x03Msg\x12\x0e\n" + "\x02Id\x18\x03 \x01(\tR\x02Id\x12\x16\n" + - "\x06CardId\x18\x04 \x01(\x05R\x06CardId\"\x10\n" + + "\x06CardId\x18\x04 \x01(\x05R\x06CardId\x12\x14\n" + + "\x05Emoji\x18\x05 \x01(\x05R\x05Emoji\"\x10\n" + "\x0eReqGetGoldCard\"8\n" + "\x0eResGetGoldCard\x12\x12\n" + "\x04Four\x18\x01 \x01(\x05R\x04Four\x12\x12\n" + From 6118aba235a71514e454f79bba4f9d86043d89a1 Mon Sep 17 00:00:00 2001 From: hahwu <31872165+hahwu@users.noreply.github.com> Date: Tue, 29 Jul 2025 16:32:56 +0800 Subject: [PATCH 15/17] =?UTF-8?q?=E7=8C=AB=E5=92=AA=E6=88=8F=E6=B3=95?= =?UTF-8?q?=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../game/mod/limitedTimeEvent/LimitedTimeEvent.go | 15 ++++----------- 1 file changed, 4 insertions(+), 11 deletions(-) diff --git a/src/server/game/mod/limitedTimeEvent/LimitedTimeEvent.go b/src/server/game/mod/limitedTimeEvent/LimitedTimeEvent.go index 07843c93..191e52de 100644 --- a/src/server/game/mod/limitedTimeEvent/LimitedTimeEvent.go +++ b/src/server/game/mod/limitedTimeEvent/LimitedTimeEvent.go @@ -450,19 +450,12 @@ func (l *LimitedTimeEventMod) GetCatTrickReward() ([]*item.Item, error) { return nil, fmt.Errorf("CatTrick event not exist") } d := l.EventList[EVENT_TYPE_CAT_TRICK].D.(*CatTrick) - if len(d.List) == 0 { - return nil, fmt.Errorf("CatTrick list is empty") - } - info := d.List[0] - Diamon, Energy := limitedTimeEventCfg.GetCatTrickDiamond(info.Type) - d.Energy -= Diamon * Energy - if len(d.List) == 1 { - delete(l.EventList, EVENT_TYPE_CAT_TRICK) - } else { - d.List = d.List[1:] + if d.Energy < 100 { + return nil, fmt.Errorf("CatTrick energy not enough") } + d.Energy = 0 return []*item.Item{ - {Id: item.ITEM_DIAMOND_ID, Num: Diamon}, + {Id: item.ITEM_DIAMOND_ID, Num: 1}, }, nil } From cd687ee1e21710befc82693514bae076530a04a4 Mon Sep 17 00:00:00 2001 From: hahwu <31872165+hahwu@users.noreply.github.com> Date: Tue, 29 Jul 2025 18:46:23 +0800 Subject: [PATCH 16/17] =?UTF-8?q?=E7=8C=AB=E5=92=AA=E6=88=8F=E6=B3=95?= =?UTF-8?q?=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/server/game/mod/limitedTimeEvent/LimitedTimeEvent.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/server/game/mod/limitedTimeEvent/LimitedTimeEvent.go b/src/server/game/mod/limitedTimeEvent/LimitedTimeEvent.go index 191e52de..dbab3014 100644 --- a/src/server/game/mod/limitedTimeEvent/LimitedTimeEvent.go +++ b/src/server/game/mod/limitedTimeEvent/LimitedTimeEvent.go @@ -453,7 +453,7 @@ func (l *LimitedTimeEventMod) GetCatTrickReward() ([]*item.Item, error) { if d.Energy < 100 { return nil, fmt.Errorf("CatTrick energy not enough") } - d.Energy = 0 + d.Energy -= 100 return []*item.Item{ {Id: item.ITEM_DIAMOND_ID, Num: 1}, }, nil From 659e9dc135e85bb0fa4544a967a2107e48bbf87f Mon Sep 17 00:00:00 2001 From: hahwu <31872165+hahwu@users.noreply.github.com> Date: Wed, 30 Jul 2025 10:40:45 +0800 Subject: [PATCH 17/17] =?UTF-8?q?=E4=BC=98=E5=8C=96=E5=88=9D=E5=A7=8B?= =?UTF-8?q?=E8=B5=84=E6=BA=90?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/server/MergeConst/ErrorCode.go | 1 + src/server/conf/user/UserData.go | 33 ++++++++++++++++++- src/server/game/BanMgr.go | 51 ++++++++++++++++++++++++++++++ src/server/game/GameLogic.go | 33 +++++++++++++++---- src/server/game/PlayerMod.go | 7 ++-- src/server/game/admin.go | 8 +++++ 6 files changed, 123 insertions(+), 10 deletions(-) create mode 100644 src/server/game/BanMgr.go diff --git a/src/server/MergeConst/ErrorCode.go b/src/server/MergeConst/ErrorCode.go index b43e4ace..6befcfe4 100644 --- a/src/server/MergeConst/ErrorCode.go +++ b/src/server/MergeConst/ErrorCode.go @@ -12,6 +12,7 @@ const ( Protocol_Error_Account_Device_Error int32 = 106 Protocol_Error_Id_Not_Verify int32 = 107 Protocol_Error_Id_Verify_Error int32 = 108 + Protocol_Error_Account_Ban int32 = 109 Protocol_Res_Buy_Cnt_Limit int32 = 110 Protocol_Res_Buy_CD int32 = 111 diff --git a/src/server/conf/user/UserData.go b/src/server/conf/user/UserData.go index b75e7538..1c4f6985 100644 --- a/src/server/conf/user/UserData.go +++ b/src/server/conf/user/UserData.go @@ -6,10 +6,14 @@ import ( "server/pkg/github.com/name5566/leaf/log" ) -var CFG_NAME = "UserData" +const ( + CFG_NAME = "UserData" + CFG_NANE_CONST = "UserDataConst" +) func init() { gamedata.InitCfg(CFG_NAME) + gamedata.InitCfg(CFG_NANE_CONST) } // 获取用户能量倍数 @@ -103,3 +107,30 @@ func GetUnlock(Lv int) string { s2 := gamedata.GetStringValue(data, "Unlock_2") return s1 + "," + s2 } + +func GetInitEnergy() int { + data, err := gamedata.GetDataByKey(CFG_NANE_CONST, "Energy") + if err != nil { + log.Debug("UserDataCfg GetInitEnergy not found") + return 0 + } + return gamedata.GetIntValue(data, "Value") +} + +func GetInitDiamond() int { + data, err := gamedata.GetDataByKey(CFG_NANE_CONST, "Diamond") + if err != nil { + log.Debug("UserDataCfg GetInitDiamond not found") + return 0 + } + return gamedata.GetIntValue(data, "Value") +} + +func GetInitStar() int { + data, err := gamedata.GetDataByKey(CFG_NANE_CONST, "Star") + if err != nil { + log.Debug("UserDataCfg GetInitStar not found") + return 0 + } + return gamedata.GetIntValue(data, "Value") +} diff --git a/src/server/game/BanMgr.go b/src/server/game/BanMgr.go new file mode 100644 index 00000000..c1b0fcb5 --- /dev/null +++ b/src/server/game/BanMgr.go @@ -0,0 +1,51 @@ +package game + +import ( + "encoding/gob" + "server/GoUtil" +) + +type BanMgr struct { + *ServerMod +} + +type BanData struct { + BanList map[int64]int64 // 玩家ID -> 是否被封禁 +} + +func (f *BanMgr) Init() { + gob.Register(&VarGoldCard{}) + f.key = VAR_MGR_KEY + f.data = &BanData{ + BanList: make(map[int64]int64), + } + // 注册处理函数 + f.init() + if f.data.(*BanData).BanList == nil { + f.data.(*BanData).BanList = make(map[int64]int64) + } + if f.data.(*VarData).UserVar == nil { + f.data.(*VarData).UserVar = make(map[string]*VarUserData) + } +} + +func (f *BanMgr) IsBanned(userId int64) bool { + if f.data.(*BanData).BanList == nil { + return false + } + EndTime, banned := f.data.(*BanData).BanList[userId] + if !banned { + return false + } + return EndTime > GoUtil.Now() || EndTime == 0 // 如果EndTime为0,表示永久封禁 +} + +func (f *BanMgr) BanUser(userId int64, endTime int64) { + f.data.(*BanData).BanList[userId] = endTime + f.SaveData() +} + +func (f *BanMgr) UnbanUser(userId int64) { + delete(f.data.(*BanData).BanList, userId) + f.SaveData() +} diff --git a/src/server/game/GameLogic.go b/src/server/game/GameLogic.go index d97f8a9f..7e735cfb 100644 --- a/src/server/game/GameLogic.go +++ b/src/server/game/GameLogic.go @@ -9,6 +9,7 @@ import ( "server/GoUtil" "server/MergeConst" "server/conf" + userCfg "server/conf/user" "strconv" "sync" @@ -83,6 +84,7 @@ type GameLogic struct { MailMgr *MailMgr // 邮件管理器 ChampshipMgr *ChampshipMgr // 锦标赛管理器 VarMgr *VarMgr // 变量管理器 + BanMgr *BanMgr // 封号管理器 StartTime int64 // 服务器启动时间 } @@ -102,9 +104,6 @@ func (gl *GameLogic) ZeroFlush() { }) var a1 = []interface{}{gl.DailyTaskTimestamp} GoUtil.CallEvent(MergeConst.Notify_Daily_Renew, a1) - // gl.RankMgrSend(MsgMod.MSG_ZERO_UPDATE) // 零点更新排行榜 - // gl.ChampshipMgrSend(MsgMod.MSG_ZERO_UPDATE) // 零点更新锦标赛 - // gl.VarMgrSend(MsgMod.MSG_ZERO_UPDATE) // 零点更新变量 gl.NotifyAll(MsgMod.MSG_ZERO_UPDATE) gl.CreateDailyLogFile() log.Debug("Server ZeroFlush") @@ -185,10 +184,10 @@ func (ad *GameLogic) NewAccountInsertDataToDB() bool { insertId = insertId + int64(conf.Server.ServerID*100000) + int64(conf.Server.AppID*100000000) playerInfo := &db.ResPlayerBaseInfo{} playerInfo.DwUin = int64(insertId) - playerInfo.Energy = 100 - playerInfo.Star = 0 + playerInfo.Energy = int32(userCfg.GetInitEnergy()) + playerInfo.Star = int32(userCfg.GetInitStar()) playerInfo.RecoverTime = int32(time.Now().Unix()) - playerInfo.Diamond = 0 + playerInfo.Diamond = int32(userCfg.GetInitDiamond()) playerInfo.Level = 1 playerInfo.Exp = 0 playerInfo.StartOrderId = "1" @@ -400,6 +399,26 @@ func (ad *GameLogic) VarMgrCall(m *MsgMod.Msg) interface{} { return result } +// 封号管理器 +func (ad *GameLogic) CreateBanMgr() { + ad.BanMgr = &BanMgr{ + ServerMod: new(ServerMod), + } + ad.BanMgr.Init() +} + +func (ad *GameLogic) BanMgrSend(m *MsgMod.Msg) { + ad.BanMgr.Send(m) +} + +func (ad *GameLogic) BanMgrCall(m *MsgMod.Msg) interface{} { + result, err := ad.BanMgr.Call(m) + if err != nil { + return nil + } + return result +} + func (ad *GameLogic) GetSimplePlayerByUid(Id int) *PlayerSimpleData { if Id == 0 { return nil @@ -480,6 +499,7 @@ func G_getGameLogic() *GameLogic { G_GameLogicPtr.CreateMailMgr() //创建邮件管理器 G_GameLogicPtr.CreateChampshipMgr() // 创建竞标赛管理器 G_GameLogicPtr.CreateVarMgr() // 创建变量管理器 + G_GameLogicPtr.CreateBanMgr() // 创建封号管理器 ClusterMgrInit() //初始化集群 G_GameLogicPtr.StartTime = time.Now().Unix() // G_GameLogicPtr.CreateHttpManager() @@ -946,6 +966,7 @@ func Destroy() { G_GameLogicPtr.ChampshipMgr.SaveData() G_GameLogicPtr.MailMgr.SaveData() G_GameLogicPtr.VarMgr.SaveData() + G_GameLogicPtr.BanMgr.SaveData() G_GameLogicPtr.MLogManager.Close() } log.Debug("服务器下线完成") diff --git a/src/server/game/PlayerMod.go b/src/server/game/PlayerMod.go index 826b8b0c..cc192824 100644 --- a/src/server/game/PlayerMod.go +++ b/src/server/game/PlayerMod.go @@ -4,6 +4,7 @@ import ( "bytes" "encoding/gob" "fmt" + userCfg "server/conf/user" "server/db" "server/game/mod/activity" "server/game/mod/avatar" @@ -145,9 +146,9 @@ func (p *PlayerModData) InitMod(player *Player) (bool, error) { BaseMod.SetAccount(PlayerBaseMod.Data.UserName) BaseMod.SetLevel(int(PlayerBaseMod.Data.Level)) BaseMod.SetExp(int(PlayerBaseMod.Data.Exp)) - BaseMod.SetEnergy(int(PlayerBaseMod.Data.Energy)) - BaseMod.SetStar(int(PlayerBaseMod.Data.Star)) - BaseMod.SetDiamond(int(PlayerBaseMod.Data.Diamond)) + BaseMod.SetEnergy(userCfg.GetInitEnergy()) + BaseMod.SetStar(userCfg.GetInitStar()) + BaseMod.SetDiamond(userCfg.GetInitDiamond()) BaseMod.SetRecoverTime(int64(PlayerBaseMod.Data.RecoverTime)) BaseMod.FackBookId = PlayerBaseMod.Data.FaceBookId is_update = true diff --git a/src/server/game/admin.go b/src/server/game/admin.go index c67dc9a8..2a0f2d09 100644 --- a/src/server/game/admin.go +++ b/src/server/game/admin.go @@ -87,6 +87,14 @@ func VerifyUser(accountInfo *db.Db_Account, detail *msg.ReqLogin) (ResLogin *msg return } + if G_GameLogicPtr.BanMgr.IsBanned(playerbaseinfo.DwUin) { + ResLogin = &msg.ResLogin{ + ResultCode: MergeConst.Protocol_Error_Account_Ban, + DwUin: 0, + } + return + } + ResLogin = &msg.ResLogin{ ResultCode: 0, DwUin: playerbaseinfo.DwUin,