playroom优化

This commit is contained in:
hahwu 2025-02-06 17:26:17 +08:00
parent 51ffa2449b
commit 26be4af8a7
3 changed files with 36 additions and 0 deletions

View File

@ -161,5 +161,28 @@ func GetPhysiologyMax(Id int) int {
} }
func GetPhysiologyDuration(Id int, Num int) int { func GetPhysiologyDuration(Id int, Num int) int {
data, err := gamedata.GetData(CFG_PLAYROOM_PHYSIOLOGY)
if err != nil {
return 0
}
for _, v := range data {
Type := gamedata.GetIntValue(v, "Type")
if Type != Id {
continue
}
Min := gamedata.GetIntValue(v, "Min")
Max := gamedata.GetIntValue(v, "Max")
if Num >= Min && Num <= Max {
return gamedata.GetIntValue(v, "Per")
}
}
return 0 return 0
} }
func GetMoodEffect(Id int) (int, int) {
data, err := gamedata.GetDataByIntKey(CFG_PLAYROOM_PHYSIOLOGY_TYPE, Id)
if err != nil {
return 0, 0
}
return gamedata.GetIntValue(data, "MType"), gamedata.GetIntValue(data, "MEffect")
}

View File

@ -11,6 +11,7 @@ import (
"server/game/mod/item" "server/game/mod/item"
"server/game/mod/limitedTimeEvent" "server/game/mod/limitedTimeEvent"
MsgMod "server/game/mod/msg" // Ensure this package exists and is correctly referenced MsgMod "server/game/mod/msg" // Ensure this package exists and is correctly referenced
"server/game/mod/playroom"
"server/msg" "server/msg"
"time" "time"
) )
@ -145,6 +146,7 @@ func LimitedTimePlayroomTrigger(p *Player) {
LimitedTimePlayroomTrigger_(p, k) LimitedTimePlayroomTrigger_(p, k)
} }
} }
p.PushClientRes(PlayroomMod.NotifyMood())
} }
func LimitedTimePlayroomTrigger_(p *Player, Id int) { func LimitedTimePlayroomTrigger_(p *Player, Id int) {
PlayroomMod := p.PlayMod.getPlayroomMod() PlayroomMod := p.PlayMod.getPlayroomMod()
@ -155,6 +157,15 @@ func LimitedTimePlayroomTrigger_(p *Player, Id int) {
} }
NewTime, Num := PlayroomTrigger(Physiology.Id, Physiology.Time, Physiology.Num) NewTime, Num := PlayroomTrigger(Physiology.Id, Physiology.Time, Physiology.Num)
Physiology.Time = NewTime Physiology.Time = NewTime
DiffValue := Physiology.Num - Num
MType, MEffect := playroomCfg.GetMoodEffect(Physiology.Id)
CleanMood := PlayroomMod.GetMoodInfo(playroom.MOOD_TYPE_CLEAN)
// 上厕所数值为0 且清洁度大于50时清洁度降至50
if Id == playroom.PHYSIOLOGY_TYPE_TOLIET && Num == 0 && CleanMood.Num > 50 {
CleanMood.Num = 50
} else {
PlayroomMod.AddMood(MType, MEffect*DiffValue)
}
Physiology.Num = Num Physiology.Num = Num
p.PlayMod.save() p.PlayMod.save()
PlayroomBackData(p) PlayroomBackData(p)

View File

@ -523,6 +523,8 @@ func (p *PlayerBaseData) AddExp(player *Player, exp int) (int, error) {
return 0, err return 0, err
} }
} }
PlayroomMod := player.PlayMod.getPlayroomMod()
PlayroomMod.UnLock(int(BaseMod.Level))
player.PushClientRes(p.BackAsset()) player.PushClientRes(p.BackAsset())
return upLv, nil return upLv, nil