From 054cbdf1e8e8fcf3b77cf2d830c2383c02e43f8c Mon Sep 17 00:00:00 2001 From: hahwu <31872165+hahwu@users.noreply.github.com> Date: Tue, 8 Jul 2025 17:57:32 +0800 Subject: [PATCH 1/4] =?UTF-8?q?playroom=E8=BF=87=E6=BB=A4=E4=BB=8A?= =?UTF-8?q?=E5=A4=A9=E5=B7=B2=E6=8B=9C=E8=AE=BF=E8=BF=87=E7=9A=84=E5=A5=BD?= =?UTF-8?q?=E5=8F=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/server/game/PlayerFunc.go | 7 ++ src/server/game/RegisterNetworkFunc.go | 3 +- src/server/game/mod/playroom/playroom.go | 93 +++++++++++++----------- 3 files changed, 59 insertions(+), 44 deletions(-) diff --git a/src/server/game/PlayerFunc.go b/src/server/game/PlayerFunc.go index 654140af..1d5b332a 100644 --- a/src/server/game/PlayerFunc.go +++ b/src/server/game/PlayerFunc.go @@ -656,6 +656,7 @@ func GetVisitorPlayer(p *Player) int { PlayroomMod := p.PlayMod.getPlayroomMod() VisitorList := PlayroomMod.GetVisitor() HasVisit := PlayroomMod.GetHasVisit() + TodayVisitedUsers := PlayroomMod.GetTodayVisitedUsers() FriendMod := p.PlayMod.getFriendMod() type sortData struct { Uid int @@ -668,6 +669,9 @@ func GetVisitorPlayer(p *Player) int { if _, ok := HasVisit[k]; ok { continue } + if GoUtil.InArray(k, TodayVisitedUsers) { + continue + } if v.Time < Now-86400 { continue } @@ -696,6 +700,9 @@ func GetVisitorPlayer(p *Player) int { if uid == int(p.M_DwUin) { continue } + if GoUtil.InArray(uid, TodayVisitedUsers) { + continue + } ps := G_GameLogicPtr.GetSimplePlayerByUid(uid) if ps == nil { continue diff --git a/src/server/game/RegisterNetworkFunc.go b/src/server/game/RegisterNetworkFunc.go index bfd35604..1f7cd683 100644 --- a/src/server/game/RegisterNetworkFunc.go +++ b/src/server/game/RegisterNetworkFunc.go @@ -3219,7 +3219,7 @@ func ReqPlayroomSetRoom(player *Player, buf []byte) error { return nil } -// 玩游戏 Desprecated +// 玩游戏 func ReqPlayroomGame(player *Player, buf []byte) error { req := &msg.ReqPlayroomGame{} proto.Unmarshal(buf, req) @@ -3261,6 +3261,7 @@ func ReqPlayroomGame(player *Player, buf []byte) error { Type: MsqMod.HANDLE_TYPE_PLAYROOM_GAME, SendT: GoUtil.Now(), }) + PlayroomMod.ResetGame() player.PlayMod.save() ItemsMsg := make(map[int32]*msg.ItemInfo, 0) for k, v := range PlayroomMod.GameReward { diff --git a/src/server/game/mod/playroom/playroom.go b/src/server/game/mod/playroom/playroom.go index eccd0854..b77fcbd3 100644 --- a/src/server/game/mod/playroom/playroom.go +++ b/src/server/game/mod/playroom/playroom.go @@ -12,49 +12,50 @@ import ( ) type PlayroomMod struct { - Collect map[int]int // 装饰 - Room map[int]int // 房间 - Dress map[int][]int // 服装仓库 - DressSet map[int]int // 服装穿戴 - PetAir []int // 宠物空气背包 - PetAirSet int // 宠物空气背包穿戴 - Status int // 0: 未拜访 1: 拜访 - Endtime int64 // 结束时间 - Starttime int64 // 开始时间 - WorkStatus int // 0: 未开始 1: 进行中 2: 结束 - Visitor map[int]*Info // 访客 - MoodInfo map[int]*Mood // 心情 - AllMood int // 总心情 - Reward []*item.Item // 奖励 - DayFirstT int // 每日未首次触发次数 - Trigger int // 未触发次数 - TriggerTime int64 // 触发时间 - HasVisit map[int]int64 // 今日已拜访的玩家 - Target int // 拜访的目标 - GameId int // 游戏ID - GameReward map[int]*item.Item // 游戏奖励 - GameStatus int // 游戏状态 - GameInfo map[int]interface{} // 游戏信息 - Exclude bool // 是否排除 - LoseItem []*item.Item // 失去的物品 - ChipList []*ChipInfo // 碎片列表 - Flip map[int]int // 翻牌 - FlipReward []*item.Item // 翻牌奖励 - WorkOutline int // 是否离线 - LastFlip int // 上次翻牌奖励档次 - NoFlip int // 连续未获取最高翻牌奖励次数 - TodayFlip bool // 今日是否已获得最高档奖励 - JackpotNum int // 每日转盘数量 - Upvote int // 收到点赞次数 - UpvoteList []int // 点赞列表 - RoomPoint int // 房间点数 - UnlockList map[int]int64 // 解锁 - DailyTask map[int]*DailyTask // 每日任务 - DailyTaskReward []int // 每日任务奖励 - Physiology map[int]*Physiology - InteractNum int // 互动次数 - RevengeUid int64 // 复仇Uid - FilterVisitor bool // 是否过滤访客 + Collect map[int]int // 装饰 + Room map[int]int // 房间 + Dress map[int][]int // 服装仓库 + DressSet map[int]int // 服装穿戴 + PetAir []int // 宠物空气背包 + PetAirSet int // 宠物空气背包穿戴 + Status int // 0: 未拜访 1: 拜访 + Endtime int64 // 结束时间 + Starttime int64 // 开始时间 + WorkStatus int // 0: 未开始 1: 进行中 2: 结束 + Visitor map[int]*Info // 访客 + MoodInfo map[int]*Mood // 心情 + AllMood int // 总心情 + Reward []*item.Item // 奖励 + DayFirstT int // 每日未首次触发次数 + Trigger int // 未触发次数 + TriggerTime int64 // 触发时间 + HasVisit map[int]int64 // 今日已拜访的玩家 + Target int // 拜访的目标 + GameId int // 游戏ID + GameReward map[int]*item.Item // 游戏奖励 + GameStatus int // 游戏状态 + GameInfo map[int]interface{} // 游戏信息 + Exclude bool // 是否排除 + LoseItem []*item.Item // 失去的物品 + ChipList []*ChipInfo // 碎片列表 + Flip map[int]int // 翻牌 + FlipReward []*item.Item // 翻牌奖励 + WorkOutline int // 是否离线 + LastFlip int // 上次翻牌奖励档次 + NoFlip int // 连续未获取最高翻牌奖励次数 + TodayFlip bool // 今日是否已获得最高档奖励 + JackpotNum int // 每日转盘数量 + Upvote int // 收到点赞次数 + UpvoteList []int // 点赞列表 + RoomPoint int // 房间点数 + UnlockList map[int]int64 // 解锁 + DailyTask map[int]*DailyTask // 每日任务 + DailyTaskReward []int // 每日任务奖励 + Physiology map[int]*Physiology + InteractNum int // 互动次数 + RevengeUid int64 // 复仇Uid + FilterVisitor bool // 是否过滤访客 + TodayVisitedUsers []int // 今日已拜访过的用户 } type DailyTask struct { @@ -190,6 +191,7 @@ func (p *PlayroomMod) ZeroUpdate() { p.JackpotNum = playroomCfg.GetJackpotNum() p.UpvoteList = make([]int, 0) p.DailyTaskReward = make([]int, 0) + p.TodayVisitedUsers = make([]int, 0) p.InitDailyTask() } @@ -281,6 +283,10 @@ func (p *PlayroomMod) GetHasVisit() map[int]int64 { return p.HasVisit } +func (p *PlayroomMod) GetTodayVisitedUsers() []int { + return p.TodayVisitedUsers +} + func (p *PlayroomMod) GetMood() map[int]int { Mood := make(map[int]int) for k, v := range p.MoodInfo { @@ -460,6 +466,7 @@ func (p *PlayroomMod) AddDress(Id int) { } func (p *PlayroomMod) ResetGame() { + p.TodayVisitedUsers = append(p.TodayVisitedUsers, p.Target) p.Target = 0 p.Status = STATUS_IDLE p.GameId = 0 From a77015015e8941974f8d827120233c0c25bef62f Mon Sep 17 00:00:00 2001 From: hahwu <31872165+hahwu@users.noreply.github.com> Date: Tue, 8 Jul 2025 18:21:26 +0800 Subject: [PATCH 2/4] =?UTF-8?q?playroom=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/server/game/RegisterNetworkFunc.go | 1 - 1 file changed, 1 deletion(-) diff --git a/src/server/game/RegisterNetworkFunc.go b/src/server/game/RegisterNetworkFunc.go index 1f7cd683..f2d1b114 100644 --- a/src/server/game/RegisterNetworkFunc.go +++ b/src/server/game/RegisterNetworkFunc.go @@ -3261,7 +3261,6 @@ func ReqPlayroomGame(player *Player, buf []byte) error { Type: MsqMod.HANDLE_TYPE_PLAYROOM_GAME, SendT: GoUtil.Now(), }) - PlayroomMod.ResetGame() player.PlayMod.save() ItemsMsg := make(map[int32]*msg.ItemInfo, 0) for k, v := range PlayroomMod.GameReward { From e8b91b8dd9135a9ee208d53c5eb0661d72795f28 Mon Sep 17 00:00:00 2001 From: hahwu <31872165+hahwu@users.noreply.github.com> Date: Wed, 9 Jul 2025 17:56:12 +0800 Subject: [PATCH 3/4] =?UTF-8?q?=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/server/conf/order/orderCfg.go | 17 +++++++++++++++++ src/server/game/GameLogic.go | 1 + 2 files changed, 18 insertions(+) diff --git a/src/server/conf/order/orderCfg.go b/src/server/conf/order/orderCfg.go index 488c3e01..c8acf6c4 100644 --- a/src/server/conf/order/orderCfg.go +++ b/src/server/conf/order/orderCfg.go @@ -84,6 +84,23 @@ func GetStartOrderByStep(id int) []*gamedata.StartOrderData { return ret } +func GetStartOrderById(id int) *gamedata.StartOrderData { + data, err := gamedata.GetData(CFG_START_ORDER) + if err != nil { + return nil + } + v, ok := data[strconv.Itoa(id)] + if !ok { + return nil + } + stepVal := gamedata.GetIntValue(v, "step") + return &gamedata.StartOrderData{ + Id: id, + Step: int(stepVal), + MergeList: gamedata.GetIntSliceValue(v, "merge_id_list"), + } +} + func GetMaxStep() int { data, err := gamedata.GetData(CFG_START_ORDER) if err != nil { diff --git a/src/server/game/GameLogic.go b/src/server/game/GameLogic.go index 95e82051..3ed404f2 100644 --- a/src/server/game/GameLogic.go +++ b/src/server/game/GameLogic.go @@ -920,6 +920,7 @@ func Destroy() { G_GameLogicPtr.VarMgr.SaveData() G_GameLogicPtr.MLogManager.Close() } + log.Debug("服务器下线完成") } func GeneratedCode(Phone string) (string, error) { From da2ae614f37862bae7872e208f14f7731586fb5c Mon Sep 17 00:00:00 2001 From: hahwu <31872165+hahwu@users.noreply.github.com> Date: Thu, 10 Jul 2025 11:31:15 +0800 Subject: [PATCH 4/4] =?UTF-8?q?=E9=99=90=E6=97=B6=E4=BA=8B=E4=BB=B6?= =?UTF-8?q?=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../limitedTimeEvent/LimitedTimeEventCfg.go | 24 +++++++++++++++++++ src/server/game/RegisterNetworkFunc.go | 2 +- .../mod/limitedTimeEvent/LimitedTimeEvent.go | 6 ++++- src/server/teLog/log.2024-11-27 | 0 src/server/teLog/log.2024-11-28 | 8 ------- 5 files changed, 30 insertions(+), 10 deletions(-) delete mode 100644 src/server/teLog/log.2024-11-27 delete mode 100644 src/server/teLog/log.2024-11-28 diff --git a/src/server/conf/limitedTimeEvent/LimitedTimeEventCfg.go b/src/server/conf/limitedTimeEvent/LimitedTimeEventCfg.go index 421719d5..2f0c3dfd 100644 --- a/src/server/conf/limitedTimeEvent/LimitedTimeEventCfg.go +++ b/src/server/conf/limitedTimeEvent/LimitedTimeEventCfg.go @@ -218,6 +218,21 @@ func GetProgressRewardRand(Lv int) map[int]int { return r } +func GetJackpotIdByType(Type int) int { + data, err := gamedata.GetData(CFG_LIMITED_TIME_EVENT_JACKPOT) + if err != nil { + log.Debug("GetJackpotIdByType err:%v", err) + return 0 + } + for k, v := range data { + Id := GoUtil.Int(k) + if Type == gamedata.GetIntValue(v, "Type") { + return Id + } + } + return 0 +} + // 获取进度选择数量 func GetProgressSelectNum(Lv int) int { data, err := gamedata.GetData(CFG_LIMITED_TIME_EVENT_BONUS) @@ -297,6 +312,15 @@ func GetPaybackDay() int { return gamedata.GetIntValue(data, "Value") } +func GetHighRollerNeedEnergy() int { + data, err := gamedata.GetDataByKey(CFG_LIMITED_TIME_EVENT_CONST, "High_Roller_Need_Energy") + if err != nil { + log.Debug("GetHighRollerNeedEnergy err:%v", err) + return 0 + } + return gamedata.GetIntValue(data, "Value") +} + // 招财猫 func GetMoneyCat(Id int) (float64, int) { diff --git a/src/server/game/RegisterNetworkFunc.go b/src/server/game/RegisterNetworkFunc.go index f2d1b114..1c0d357a 100644 --- a/src/server/game/RegisterNetworkFunc.go +++ b/src/server/game/RegisterNetworkFunc.go @@ -2840,7 +2840,7 @@ func ReqSelectLimitEvent(player *Player, buf []byte) error { proto.Unmarshal(buf, req) LimitedTimeEventMod := player.PlayMod.getLimitedTimeEventMod() BaseMod := player.PlayMod.getBaseMod() - Items, slot_reward, slot_order_number, err := LimitedTimeEventMod.SelectProgressReward(int(req.Id), BaseMod.Level) + Items, slot_reward, slot_order_number, err := LimitedTimeEventMod.SelectProgressReward(int(req.Id), BaseMod.GetLevel(), BaseMod.GetEnergy()) if err != nil { player.SendErrClienRes(&msg.ResSelectLimitEvent{ Code: msg.RES_CODE_FAIL, diff --git a/src/server/game/mod/limitedTimeEvent/LimitedTimeEvent.go b/src/server/game/mod/limitedTimeEvent/LimitedTimeEvent.go index 3d0ab95f..fc3a78bd 100644 --- a/src/server/game/mod/limitedTimeEvent/LimitedTimeEvent.go +++ b/src/server/game/mod/limitedTimeEvent/LimitedTimeEvent.go @@ -344,7 +344,7 @@ func (l *LimitedTimeEventMod) AddProgress(Lv int) { } // 选择进度奖励 -func (l *LimitedTimeEventMod) SelectProgressReward(Id, Lv int) ([]*item.Item, map[int]int, int, error) { +func (l *LimitedTimeEventMod) SelectProgressReward(Id, Lv, Energy int) ([]*item.Item, map[int]int, int, error) { RewardId, ok := l.ProgressReward[Id] if !ok { return nil, nil, 0, fmt.Errorf("RewardId not exist") @@ -362,6 +362,10 @@ func (l *LimitedTimeEventMod) SelectProgressReward(Id, Lv int) ([]*item.Item, ma SelectNum := limitedTimeEventCfg.GetProgressSelectNum(Lv) BonusLv := limitedTimeEventCfg.GetBonusLv(Lv) RandMap := limitedTimeEventCfg.GetProgressRewardRand(BonusLv) + // 体力小于200 high roller事件不进池子 + if Energy < limitedTimeEventCfg.GetHighRollerNeedEnergy() { + delete(RandMap, limitedTimeEventCfg.GetJackpotIdByType(EVENT_TYPE_HIGH_ROLLER)) + } n := 0 r := make([]int, 0) LastOption := l.LastOption diff --git a/src/server/teLog/log.2024-11-27 b/src/server/teLog/log.2024-11-27 deleted file mode 100644 index e69de29b..00000000 diff --git a/src/server/teLog/log.2024-11-28 b/src/server/teLog/log.2024-11-28 deleted file mode 100644 index 7d49aa41..00000000 --- a/src/server/teLog/log.2024-11-28 +++ /dev/null @@ -1,8 +0,0 @@ -{"#account_id":"wmz123456","#distinct_id":"wmz123456","#type":"track","#time":"2024-11-28 11:34:46.831","#event_name":"asset_change","#uuid":"b717face-ad39-11ef-8528-00155d43b6ac","properties":{"#lib":"Golang","#lib_version":"2.0.3","change_after":229,"change_num":50,"change_type":"consume","item_id":100001}} -{"#account_id":"wmz123456","#distinct_id":"wmz123456","#type":"track","#time":"2024-11-28 12:06:37.167","#event_name":"asset_change","#uuid":"29be1c8a-ad3e-11ef-a6e1-00155d43b6ac","properties":{"#lib":"Golang","#lib_version":"2.0.3","change_after":279,"change_num":50,"change_type":"consume","item_id":100001}} -{"#account_id":"wmz123456","#distinct_id":"wmz123456","#type":"track","#time":"2024-11-28 16:06:14.301","#event_name":"asset_change","#uuid":"a32e8eea-ad5f-11ef-a370-00155d43b6ac","properties":{"#lib":"Golang","#lib_version":"2.0.3","change_after":1031,"change_num":100,"change_type":"consume","item_id":100001}} -{"#account_id":"wmz123456","#distinct_id":"wmz123456","#type":"track","#time":"2024-11-28 16:09:48.323","#event_name":"asset_change","#uuid":"22bfd41f-ad60-11ef-b379-00155d43b6ac","properties":{"#lib":"Golang","#lib_version":"2.0.3","change_after":1031,"change_num":100,"change_type":"consume","item_id":100001}} -{"#account_id":"wmz123456","#distinct_id":"wmz123456","#type":"track","#time":"2024-11-28 16:10:15.334","#event_name":"buy_energy_diamond","#uuid":"32d952d0-ad60-11ef-b379-00155d43b6ac","properties":{"#lib":"Golang","#lib_version":"2.0.3","diamond_cost":0,"energy_num":100}} -{"#account_id":"wmz123456","#distinct_id":"wmz123456","#type":"track","#time":"2024-11-28 16:51:30.266","#event_name":"asset_change","#uuid":"f605fd74-ad65-11ef-9f0f-00155d43b6ac","properties":{"#lib":"Golang","#lib_version":"2.0.3","change_after":1231,"change_num":200,"change_type":"consume","item_id":100001}} -{"#account_id":"wmz123456","#distinct_id":"wmz123456","#type":"track","#time":"2024-11-28 16:52:24.927","#event_name":"asset_change","#uuid":"169a8a7c-ad66-11ef-9f0f-00155d43b6ac","properties":{"#lib":"Golang","#lib_version":"2.0.3","change_after":1431,"change_num":200,"change_type":"consume","item_id":100001}} -{"#account_id":"wmz123456","#distinct_id":"wmz123456","#type":"track","#time":"2024-11-28 16:54:29.999","#event_name":"asset_change","#uuid":"6127238e-ad66-11ef-a970-00155d43b6ac","properties":{"#lib":"Golang","#lib_version":"2.0.3","change_after":1631,"change_num":200,"change_type":"consume","item_id":100001}}