限时事件优化

This commit is contained in:
hahwu 2024-12-26 10:11:48 +08:00
parent c5f7ff602d
commit 2dc1515d48
3 changed files with 30 additions and 29 deletions

View File

@ -757,6 +757,8 @@ func (ad *GameLogic) RegisterNetWorkFunc() {
RegisterMsgProcessFunc("ReqPlayroomWork", ReqPlayroomWork) // 宠物工作
RegisterMsgProcessFunc("ReqPlayroomRest", ReqPlayroomRest) // 宠物休息
RegisterMsgProcessFunc("ReqPlayroomDraw", ReqPlayroomDraw) // 转盘
RegisterMsgProcessFunc("ReqPlayroomFlip", ReqPlayroomFlip) // 翻牌
RegisterMsgProcessFunc("ReqPlayroomFlipReward", ReqPlayroomFlipReward) // 翻牌奖励
RegisterMsgProcessFunc("ReqPlayroomChip", ReqPlayroomChip) // 消除碎片
RegisterMsgProcessFunc("ReqPlayroomOutline", ReqPlayroomOutline) // 打工离线
RegisterMsgProcessFunc("ReqPlayroomWrokOutline", ReqPlayroomWrokOutline) // 打工离线完成

View File

@ -192,11 +192,11 @@ func LimitedTimeEnergyAdd(p *Player) {
}
Energy := BaseMod.GetEnergy()
MaxEnergy := PlayerBaseMod.GetMaxEnergy()
Energy += Addsta
if Energy > MaxEnergy {
Energy = MaxEnergy
}
if MaxEnergy > Energy {
Energy += Addsta
if Energy > MaxEnergy {
Energy = MaxEnergy
}
p.CallEvent(time.Duration(Recover)*time.Second, func() {
p.lock.Lock()
defer p.lock.Unlock()

View File

@ -2703,36 +2703,35 @@ func ReqPlayroomInfo(args []interface{}) error {
PlayroomMod.SetTarget(Targer)
if PlayerData.Loginout < GoUtil.Now()-100000000300 { // todo DEBUG
PlayroomMod.SetGameId(1)
Star := min(500, max(PlayerData.Star/10, 10))
ChessMod := player.PlayMod.getChessMod()
EmitList := ChessMod.GetOrderEmit()
ColorList := make([]string, 0)
for _, v := range EmitList {
Color := mergeDataCfg.GetEmitProduceChessType(v)
ColorList = append(ColorList, Color...)
}
RandList := make([]int, 0)
for _, v := range PlayerData.Chess {
Color := mergeDataCfg.GetColorById(v)
Lv := mergeDataCfg.GetLvById(v)
if GoUtil.InStringArray(Color, ColorList) && Lv <= 8 {
RandList = append(RandList, v)
}
}
if len(RandList) == 0 {
PlayroomMod.SetGameReward(0, 0, Star)
} else if len(RandList) == 1 {
PlayroomMod.SetGameReward(0, RandList[0], Star)
} else {
ChessList := GoUtil.RandSliceNum(RandList, 2)
PlayroomMod.SetGameReward(ChessList[0], ChessList[1], Star)
}
} else {
PlayroomMod.SetGameId(2)
PlayroomMod.SetGameRewardFlip(int(float64(PlayerData.Star)*0.03), int(float64(PlayerData.Star)*0.05), int(float64(PlayerData.Star)*0.1))
}
Star := min(500, max(PlayerData.Star/10, 10))
ChessMod := player.PlayMod.getChessMod()
EmitList := ChessMod.GetOrderEmit()
ColorList := make([]string, 0)
for _, v := range EmitList {
Color := mergeDataCfg.GetEmitProduceChessType(v)
ColorList = append(ColorList, Color...)
}
RandList := make([]int, 0)
for _, v := range PlayerData.Chess {
Color := mergeDataCfg.GetColorById(v)
Lv := mergeDataCfg.GetLvById(v)
if GoUtil.InStringArray(Color, ColorList) && Lv <= 8 {
RandList = append(RandList, v)
}
}
if len(RandList) == 0 {
PlayroomMod.SetGameReward(0, 0, Star)
} else if len(RandList) == 1 {
PlayroomMod.SetGameReward(0, RandList[0], Star)
} else {
ChessList := GoUtil.RandSliceNum(RandList, 2)
PlayroomMod.SetGameReward(ChessList[0], ChessList[1], Star)
}
PlayroomVisit(player, Targer)
return nil
}