diff --git a/src/server/conf/playroom/playroomCfg.go b/src/server/conf/playroom/playroomCfg.go index e98a1f9a..5c09c2ce 100644 --- a/src/server/conf/playroom/playroomCfg.go +++ b/src/server/conf/playroom/playroomCfg.go @@ -44,6 +44,14 @@ func GetRewardStar() int { return gamedata.GetIntValue(data, "Value") } +func GetTriggerCd() int { + data, err := gamedata.GetDataByKey(CFG_PLAYROOM_CONST, "CD") + if err != nil { + return 1000 + } + return gamedata.GetIntValue(data, "Value") +} + func GetNormalItem() (int, int) { data1, err := gamedata.GetDataByKey(CFG_PLAYROOM_CONST, "NormalFoodId") if err != nil { diff --git a/src/server/game/PlayerFunc.go b/src/server/game/PlayerFunc.go index ea433e6c..90ee80da 100644 --- a/src/server/game/PlayerFunc.go +++ b/src/server/game/PlayerFunc.go @@ -534,6 +534,12 @@ func BackChampship(p *Player) { } func PlayroomOrderTrigger(p *Player) error { + CD := playroomCfg.GetTriggerCd() + PlayroomMod := p.PlayMod.getPlayroomMod() + Now := GoUtil.Now() + if PlayroomMod.TriggerTime+int64(CD) > Now { + return nil + } PlayroomUnlockLv := playroomCfg.GetUnLockLv() if p.GetPlayerBaseMod().GetLevel() < PlayroomUnlockLv { return nil @@ -547,7 +553,6 @@ func PlayroomOrderTrigger(p *Player) error { log.Debug("uid : %d, PlayroomOrderTrigger, err : %s", p.M_DwUin, err) return err } - PlayroomMod := p.PlayMod.getPlayroomMod() PlayroomMod.CreateOrderReward(Star, p.PlayMod.getItemMod()) PlayroomBackData(p) p.PlayMod.save() diff --git a/src/server/game/mod/order/Order.go b/src/server/game/mod/order/Order.go index cea13cee..c6ca32ce 100644 --- a/src/server/game/mod/order/Order.go +++ b/src/server/game/mod/order/Order.go @@ -93,9 +93,6 @@ func (o *OrderMod) RewardOrder(id int) ([]*item.Item, []int, int, int, error) { for _, v := range v.MergeId { Star += mergeDataCfg.GetStarById(v) } - if v.Type == Trigger_type { - Star = int(float64(Star) * 0.8) - } if v.Type == Super_type { Items := limitedTimeEventCfg.GetSuperOrderReward(Star) ItemList = append(ItemList, Items...) diff --git a/src/server/game/mod/playroom/playroom.go b/src/server/game/mod/playroom/playroom.go index fd3ec971..f75c86c3 100644 --- a/src/server/game/mod/playroom/playroom.go +++ b/src/server/game/mod/playroom/playroom.go @@ -23,6 +23,7 @@ type PlayroomMod struct { Reward []*item.Item // 奖励 DayFirstT int // 每日未首次触发次数 Trigger int // 未触发次数 + TriggerTime int64 // 触发时间 HasVisit map[int]int64 // 今日已拜访的玩家 Target int // 拜访的目标 GameId int // 游戏ID @@ -196,54 +197,42 @@ func (p *PlayroomMod) CreateOrderReward(Star int, itemMod *item.ItemMod) { return } p.Reward = make([]*item.Item, 0) - var Item1, Item2 int - VisitorItem := playroomCfg.GetVisitorItem() - if Star < playroomCfg.GetOrderStar() { - Item1, Item2 = playroomCfg.GetNormalItem() - } else { - Item1, Item2 = playroomCfg.GetPremiumItem() - } + NormalFoodId, NormalCleanId := playroomCfg.GetNormalItem() + PremiumFoodId, PremiumCleanId := playroomCfg.GetPremiumItem() - Item1Num := itemMod.GetItem(Item1) - Item2Num := itemMod.GetItem(Item2) - if p.DayFirstT == 2 { - p.Reward = append(p.Reward, &item.Item{Id: VisitorItem, Num: 1}) + NormalFoodNum := itemMod.GetItem(NormalFoodId) + NormalCleanNum := itemMod.GetItem(NormalCleanId) + + PremiumFoodNum := itemMod.GetItem(PremiumFoodId) + PremiumCleanNum := itemMod.GetItem(PremiumCleanId) + p.TriggerTime = GoUtil.Now() + if NormalFoodNum == 0 { + p.Reward = append(p.Reward, &item.Item{Id: NormalFoodId, Num: 1}) return } - if p.Trigger == 4 { - p.Reward = append(p.Reward, &item.Item{Id: VisitorItem, Num: 1}) - p.Trigger = 0 + if NormalCleanNum == 0 { + p.Reward = append(p.Reward, &item.Item{Id: NormalCleanId, Num: 1}) return } - if Item1Num == 0 && Item2Num == 0 { - Prob := GoUtil.RandSlice([]int{Item1, Item2}) - p.Reward = append(p.Reward, &item.Item{Id: Prob, Num: 1}) - p.DayFirstT++ - p.Trigger++ + if PremiumFoodNum == 0 { + p.Reward = append(p.Reward, &item.Item{Id: PremiumFoodId, Num: 1}) return } - if math.Abs(float64(Item1Num-Item2Num)) > 3 { - RI := GoUtil.IfTrue(Item1Num > Item2Num, Item2, Item1).(int) - p.Reward = append(p.Reward, &item.Item{Id: RI, Num: 1}) - p.DayFirstT++ - p.Trigger++ + if PremiumCleanNum == 0 { + p.Reward = append(p.Reward, &item.Item{Id: PremiumCleanId, Num: 1}) return } var RandSlice []int - if Star < playroomCfg.GetOrderStar() { - RandSlice = []int{Item1, Item2} - } else { - RandSlice = []int{Item1, Item2, VisitorItem} + if math.Abs(float64((NormalCleanNum+PremiumCleanNum)-(NormalFoodNum+PremiumFoodNum))) > 3 { + RandSlice := GoUtil.IfTrue((NormalCleanNum+PremiumCleanNum) > (NormalFoodNum+PremiumFoodNum), []int{PremiumCleanId, NormalCleanId}, []int{NormalFoodId, PremiumFoodId}).([]int) + Prob := GoUtil.RandSlice(RandSlice) + p.Reward = append(p.Reward, &item.Item{Id: Prob, Num: 1}) + + return } + RandSlice = []int{NormalFoodNum, NormalCleanNum} Prob := GoUtil.RandSlice(RandSlice) p.Reward = append(p.Reward, &item.Item{Id: Prob, Num: 1}) - if Prob == VisitorItem { - p.DayFirstT = 3 - p.Trigger = 0 - } else { - p.DayFirstT++ - p.Trigger++ - } } func (p *PlayroomMod) GetReward() []*item.Item {