playroom优化
This commit is contained in:
parent
47c3ccda89
commit
4b5b936a18
@ -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 {
|
||||
|
||||
@ -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()
|
||||
|
||||
@ -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...)
|
||||
|
||||
@ -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})
|
||||
if Prob == VisitorItem {
|
||||
p.DayFirstT = 3
|
||||
p.Trigger = 0
|
||||
} else {
|
||||
p.DayFirstT++
|
||||
p.Trigger++
|
||||
|
||||
return
|
||||
}
|
||||
RandSlice = []int{NormalFoodNum, NormalCleanNum}
|
||||
Prob := GoUtil.RandSlice(RandSlice)
|
||||
p.Reward = append(p.Reward, &item.Item{Id: Prob, Num: 1})
|
||||
}
|
||||
|
||||
func (p *PlayroomMod) GetReward() []*item.Item {
|
||||
|
||||
Loading…
Reference in New Issue
Block a user