优化playroom翻牌逻辑
This commit is contained in:
parent
1b729145fe
commit
e3752d3f08
@ -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")
|
||||
|
||||
@ -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() {
|
||||
|
||||
@ -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)
|
||||
|
||||
Loading…
Reference in New Issue
Block a user