From 55d185bc04c8d53088310ea7bf7aba24c7078653 Mon Sep 17 00:00:00 2001 From: hahwu <31872165+hahwu@users.noreply.github.com> Date: Mon, 13 Apr 2026 15:11:41 +0800 Subject: [PATCH] =?UTF-8?q?playroom=E5=88=9D=E5=A7=8B=E6=9C=8D=E8=A3=85bug?= =?UTF-8?q?=E4=BF=AE=E5=A4=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/server/game/gm_handler.go | 2 +- src/server/game/mod/playroom/playroom.go | 42 ++++++++++++++++++++---- src/server/game/player_mod.go | 2 +- src/server/unit_test/common.go | 2 +- src/server/unit_test/playroom_test.go | 2 +- 5 files changed, 39 insertions(+), 11 deletions(-) diff --git a/src/server/game/gm_handler.go b/src/server/game/gm_handler.go index 56261e53..cf68bd13 100644 --- a/src/server/game/gm_handler.go +++ b/src/server/game/gm_handler.go @@ -356,7 +356,7 @@ func ReqGmCommand_(player *Player, Command string) error { player.RaceBackData() case "playroomReset": PlayroomMod := playroom.PlayroomMod{} - PlayroomMod.InitData() + PlayroomMod.InitData(player.PlayerBaseMod.GetRegisterTime()) player.PlayMod.mod_list.Playroom = PlayroomMod case "resetCollect": CollectMod := player.PlayMod.getCollectMod() diff --git a/src/server/game/mod/playroom/playroom.go b/src/server/game/mod/playroom/playroom.go index 55400099..e81cb3dc 100644 --- a/src/server/game/mod/playroom/playroom.go +++ b/src/server/game/mod/playroom/playroom.go @@ -63,6 +63,7 @@ type PlayroomMod struct { ADItem map[int]*ItemInfo WeeklyDiscount map[int]int // 每周折扣 RandVisitor []int // 随机访客 + Version int // 版本 } type DressInfo struct { @@ -161,7 +162,7 @@ type Info struct { Times int } -func (p *PlayroomMod) InitData() { +func (p *PlayroomMod) InitData(registerTime int64) { if p.Collect == nil { p.Collect = make(map[int]int) } @@ -182,7 +183,7 @@ func (p *PlayroomMod) InitData() { for _, v := range initCollect { p.NewCollect[v] = &CollectInfo{ Id: v, - AddTime: GoUtil.Now(), + AddTime: registerTime, Num: 1, } } @@ -195,7 +196,7 @@ func (p *PlayroomMod) InitData() { } p.NewCollect[k] = &CollectInfo{ Id: k, - AddTime: GoUtil.Now(), + AddTime: registerTime, Num: v, } } @@ -235,7 +236,7 @@ func (p *PlayroomMod) InitData() { for _, v := range initPetAir { p.NewPetAir[v] = &PetAirInfo{ Id: v, - AddTime: GoUtil.Now(), + AddTime: registerTime, Num: 1, } } @@ -245,7 +246,7 @@ func (p *PlayroomMod) InitData() { for _, v := range p.PetAir { p.NewPetAir[v] = &PetAirInfo{ Id: v, - AddTime: GoUtil.Now(), + AddTime: registerTime, Num: 1, } } @@ -261,7 +262,7 @@ func (p *PlayroomMod) InitData() { p.NewDress[v] = &DressInfo{ Id: v, Part: part, - AddTime: GoUtil.Now(), + AddTime: registerTime, Num: 1, } } @@ -274,7 +275,7 @@ func (p *PlayroomMod) InitData() { p.NewDress[id] = &DressInfo{ Id: id, Part: part, - AddTime: GoUtil.Now(), + AddTime: registerTime, Num: 1, } } @@ -287,6 +288,33 @@ func (p *PlayroomMod) InitData() { if p.WeeklyDiscount == nil { p.WeeklyDiscount = make(map[int]int) } + p.version(registerTime) +} + +func (p *PlayroomMod) version(registerTime int64) { + if p.Version == 0 { + p.Version = 1 + for _, v := range p.NewCollect { + if v.Label == "" { + v.AddTime = registerTime + } + } + for k, v := range p.NewDress { + if v.Label == "" { + v.AddTime = registerTime + } + // 修复错误被初始化的服装 + if v.Label == "" && GoUtil.InArray(v.Id, []int{51, 52, 53, 54, 55}) { + delete(p.NewDress, k) + } + } + for k, v := range p.DressSet { + if GoUtil.InArray(v, []int{51, 52, 53, 54, 55}) { + p.DressSet[k] = 0 + } + } + + } } func (p *PlayroomMod) ZeroUpdate() { diff --git a/src/server/game/player_mod.go b/src/server/game/player_mod.go index 8d92f3a6..e6a16f51 100644 --- a/src/server/game/player_mod.go +++ b/src/server/game/player_mod.go @@ -208,7 +208,7 @@ func (p *PlayerModData) InitMod(player *Player) (bool, error) { p.ModList.Mining.InitData() p.ModList.Item.InitData() p.ModList.GuessColor.InitData() - p.ModList.Playroom.InitData() + p.ModList.Playroom.InitData(int64(PlayerBaseMod.Data.RegisterTime)) p.ModList.Emoji.InitData() p.ModList.Collect.InitData() p.ModList.Activity.InitData() diff --git a/src/server/unit_test/common.go b/src/server/unit_test/common.go index e9ebef3c..f98ee04e 100644 --- a/src/server/unit_test/common.go +++ b/src/server/unit_test/common.go @@ -4,6 +4,6 @@ import "server/game" func getTestPlayer() *game.Player { p := new(game.Player) - p.InitPlayerByUid(100100162) + p.InitPlayerByUid(100101183) return p } diff --git a/src/server/unit_test/playroom_test.go b/src/server/unit_test/playroom_test.go index 80c563d0..73ff4438 100644 --- a/src/server/unit_test/playroom_test.go +++ b/src/server/unit_test/playroom_test.go @@ -7,7 +7,7 @@ import ( func TestPlayroomVisit(t *testing.T) { player := new(game.Player) - player.M_DwUin = 100101056 + player.M_DwUin = 100100041 player.InitPlayerOnly() player.GetVisitorPlayer() }