playroom优化

This commit is contained in:
hahwu 2025-02-06 19:04:15 +08:00
parent 47c3ccda89
commit 4b5b936a18
4 changed files with 38 additions and 39 deletions

View File

@ -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 {

View File

@ -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()

View File

@ -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...)

View File

@ -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 {