diff --git a/src/server/conf/mergeData/MergeDataCfg.go b/src/server/conf/mergeData/MergeDataCfg.go index b912ba72..4db10fd6 100644 --- a/src/server/conf/mergeData/MergeDataCfg.go +++ b/src/server/conf/mergeData/MergeDataCfg.go @@ -30,7 +30,7 @@ func init() { func GetEmitTypeProduce(EmitType string) []string { data, err := gamedata.GetDataByKey(CFG_MERGE_EMIT_TYPE, EmitType) if err != nil { - log.Debug("GetEmitTypeProduce GetOne EmitType:%s not found", EmitType) + // log.Debug("GetEmitTypeProduce GetOne EmitType:%s not found", EmitType) return []string{} } return strings.Split(gamedata.GetStringValue(data, "Produce"), ",") @@ -39,7 +39,7 @@ func GetEmitTypeProduce(EmitType string) []string { func GetEmitType2(EmitType string) int { data, err := gamedata.GetDataByKey(CFG_MERGE_EMIT_TYPE, EmitType) if err != nil { - log.Debug("GetEmitTypeProduce GetOne EmitType:%s not found", EmitType) + // log.Debug("GetEmitTypeProduce GetOne EmitType:%s not found", EmitType) return 0 } return gamedata.GetIntValue(data, "Type2") diff --git a/src/server/game/GameLogic.go b/src/server/game/GameLogic.go index 83ce8155..c23a20e5 100644 --- a/src/server/game/GameLogic.go +++ b/src/server/game/GameLogic.go @@ -765,9 +765,12 @@ func (ad *GameLogic) RegisterNetWorkFunc() { // 宠物宝藏 RegisterMsgProcessFunc("ReqFriendTreasure", ReqFriendTreasure) // 请求好友宝藏数据 - RegisterMsgProcessFunc("ReqFriendTreasureStart", ReqFriendTreasureStart) // 开始挖宝 - RegisterMsgProcessFunc("ReqFriendTreasureFilp", ReqFriendTreasureFilp) // 挖宝 - RegisterMsgProcessFunc("ReqFriendTreasureEnd", ReqFriendTreasureEnd) // 挖宝 + RegisterMsgProcessFunc("ReqFriendTreasureStart", ReqFriendTreasureStart) // 开始游戏 + RegisterMsgProcessFunc("ReqFriendTreasureFilp", ReqFriendTreasureFilp) // 翻牌 + RegisterMsgProcessFunc("ReqFriendTreasureEnd", ReqFriendTreasureEnd) // 结束游戏 + + RegisterMsgProcessFunc("ReqKafkaLog", ReqKafkaLog) // 客户端日志 + } func (ad *GameLogic) CreateHttpManager() { diff --git a/src/server/game/mod/playroom/playroom.go b/src/server/game/mod/playroom/playroom.go index 8c4b9b2c..693cbdc9 100644 --- a/src/server/game/mod/playroom/playroom.go +++ b/src/server/game/mod/playroom/playroom.go @@ -13,7 +13,7 @@ import ( type PlayroomMod struct { Collect map[int]int // 装饰 Room map[int]int // 房间 - Status int // 0: 未开始 1: 进行中 2: 结束 + Status int // 0: 未拜访 1: 拜访 Endtime int64 // 结束时间 Starttime int64 // 开始时间 WorkStatus int // 0: 未开始 1: 进行中 2: 结束 @@ -34,6 +34,9 @@ type PlayroomMod struct { Flip map[int]int // 翻牌 FlipReward []*item.Item // 翻牌奖励 WorkOutline int // 是否离线 + LastFlip int // 上次翻牌奖励档次 + NoFlip int // 连续未获取最高翻牌奖励次数 + TodayFlip bool // 今日是否已获得最高档奖励 } const ( @@ -98,6 +101,11 @@ func (p *PlayroomMod) InitData() { } } +func (p *PlayroomMod) ZeroUpdate() { + p.TodayFlip = false + p.LastFlip = 0 +} + func (p *PlayroomMod) GetVisitor() map[int]*Info { return p.Visitor } @@ -396,6 +404,24 @@ func (p *PlayroomMod) FlipCard(Pos int) (int, error) { FLIP_TYPE_GOLD: 20, } Prob := GoUtil.RandMap(RandMap) + + /** + 若玩家同一天内上一次游玩猫猫小金库未能获得金币档位奖励,且当天还未获得过金币档位奖励 + 或玩家已连续三次未能获得金币档位奖励,则启用以下保底逻辑 + 玩家已翻出两个银币或铜币图案的情况下,后续翻牌必然为金币 + */ + check := make(map[int]int) + for _, v := range p.Flip { + check[v]++ + } + if check[FLIP_TYPE_COPPER] == 2 || check[FLIP_TYPE_SILVER] == 2 { + if p.LastFlip != FLIP_TYPE_GOLD && !p.TodayFlip { + Prob = FLIP_TYPE_GOLD + } + if p.NoFlip == 3 { + Prob = FLIP_TYPE_GOLD + } + } p.Flip[Pos] = Prob return Prob, nil @@ -409,12 +435,17 @@ func (p *PlayroomMod) GetFlipReward() ([]*item.Item, error) { if check[v] == 3 { switch v { case FLIP_TYPE_COPPER: + p.NoFlip++ Items = append(Items, p.GameReward[FLIP_TYPE_COPPER]) case FLIP_TYPE_SILVER: + p.NoFlip++ Items = append(Items, p.GameReward[FLIP_TYPE_SILVER]) case FLIP_TYPE_GOLD: + p.NoFlip = 0 + p.TodayFlip = true Items = append(Items, p.GameReward[FLIP_TYPE_GOLD]) } + p.LastFlip = v p.Status = STATUS_IDLE p.GameId = 0 p.Flip = make(map[int]int)