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 {
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
}
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/limitedTimeEvent"
MsgMod "server/game/mod/msg" // Ensure this package exists and is correctly referenced
"server/game/mod/playroom"
"server/msg"
"time"
)
@ -145,6 +146,7 @@ func LimitedTimePlayroomTrigger(p *Player) {
LimitedTimePlayroomTrigger_(p, k)
}
}
p.PushClientRes(PlayroomMod.NotifyMood())
}
func LimitedTimePlayroomTrigger_(p *Player, Id int) {
PlayroomMod := p.PlayMod.getPlayroomMod()
@ -155,6 +157,15 @@ func LimitedTimePlayroomTrigger_(p *Player, Id int) {
}
NewTime, Num := PlayroomTrigger(Physiology.Id, Physiology.Time, Physiology.Num)
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
p.PlayMod.save()
PlayroomBackData(p)

View File

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