修复玩家线上playroom生理值错误

This commit is contained in:
hahwu 2026-03-16 19:37:20 +08:00
parent 0bc16455e0
commit f2fb2b5133
3 changed files with 33 additions and 0 deletions

View File

@ -916,7 +916,27 @@ func (p *PlayroomMod) UnLock(Lv int) bool {
p.MoodInfo[k] = &Mood{Id: k, Num: 100}
}
}
return true
}
func (p *PlayroomMod) FixUnLock(Lv int) bool {
UnlockLv := playroomCfg.GetUnLockLv()
if Lv < UnlockLv || len(p.Physiology) != 0 {
return false
}
Now := GoUtil.Now()
p.Physiology = make(map[int]*Physiology)
TypeList := playroomCfg.GetPhysiologyTypeList()
for _, v := range TypeList {
Max := playroomCfg.GetPhysiologyMax(v)
p.Physiology[v] = &Physiology{Id: v, Num: Max, Time: Now}
}
if len(p.MoodInfo) == 0 {
p.MoodInfo = make(map[int]*Mood)
for k := 1; k <= 3; k++ {
p.MoodInfo[k] = &Mood{Id: k, Num: 100}
}
}
return true
}

View File

@ -567,6 +567,8 @@ func (p *PlayerBaseData) AddExp(player *Player, exp int, pexp int) (int, error)
player.TeLog("level_up", map[string]interface{}{
"after_level": BaseMod.Level,
})
PlayroomMod := player.PlayMod.getPlayroomMod()
PlayroomMod.UnLock(BaseMod.GetLevel())
NewExpLv, NewPetLv := userCfg.GetNewLevUpExp(BaseMod.Level, BaseMod.Exp, BaseMod.PExp)
player.TeLog("property_level_up", map[string]interface{}{
"property_level": BaseMod.Level,

View File

@ -260,6 +260,7 @@ func (p *Player) InitPlayer(UserName string) error {
ChargeMod.FixBug(ChessMod.GetEmitList())
p.FixOrderBug()
p.FixDecorate()
p.FixPlayroomPyhical()
return nil
}
@ -1388,3 +1389,13 @@ func (p *Player) Lock() {
func (p *Player) UnLock() {
p.lock.Unlock()
}
func (p *Player) FixPlayroomPyhical() {
if p.GetBaseMod().GetLevel() >= playroomCfg.GetUnLockLv() {
PlayroomMod := p.PlayMod.getPlayroomMod()
if len(PlayroomMod.GetPhysiologyList()) != len(playroomCfg.GetPhysiologyTypeList()) {
PlayroomMod.Physiology = make(map[int]*playroom.Physiology)
PlayroomMod.UnLock(p.GetBaseMod().GetLevel())
}
}
}