取消触发式订单
This commit is contained in:
parent
17343a432e
commit
f7089c55a7
@ -268,8 +268,6 @@ func ReqGmCommand_(player *Player, Command string) error {
|
|||||||
RaceMod := player.PlayMod.getRaceMod()
|
RaceMod := player.PlayMod.getRaceMod()
|
||||||
RaceMod.AddCoin(100)
|
RaceMod.AddCoin(100)
|
||||||
RaceBackData(player)
|
RaceBackData(player)
|
||||||
case "playroomTrigger":
|
|
||||||
PlayroomOrderTrigger(player)
|
|
||||||
case "playroomReset":
|
case "playroomReset":
|
||||||
PlayroomMod := playroom.PlayroomMod{}
|
PlayroomMod := playroom.PlayroomMod{}
|
||||||
PlayroomMod.InitData()
|
PlayroomMod.InitData()
|
||||||
|
|||||||
@ -12,7 +12,6 @@ import (
|
|||||||
chargeCfg "server/conf/charge"
|
chargeCfg "server/conf/charge"
|
||||||
mailCfg "server/conf/mail"
|
mailCfg "server/conf/mail"
|
||||||
mergeDataCfg "server/conf/mergeData"
|
mergeDataCfg "server/conf/mergeData"
|
||||||
playroomCfg "server/conf/playroom"
|
|
||||||
"server/db"
|
"server/db"
|
||||||
"server/game/mod/card"
|
"server/game/mod/card"
|
||||||
"server/game/mod/friend"
|
"server/game/mod/friend"
|
||||||
@ -624,62 +623,6 @@ func BackChampship(p *Player) {
|
|||||||
p.PushClientRes(ChampshipMod.BackData(MyRank, MyPreRank))
|
p.PushClientRes(ChampshipMod.BackData(MyRank, MyPreRank))
|
||||||
}
|
}
|
||||||
|
|
||||||
func GuideTriggerOrder(p *Player) error {
|
|
||||||
GuideMod := p.PlayMod.getGuideMod()
|
|
||||||
GuideOrder := GuideMod.GetGuideOrder()
|
|
||||||
if GuideOrder {
|
|
||||||
return fmt.Errorf("not")
|
|
||||||
}
|
|
||||||
OrderMod := p.PlayMod.getOrderMod()
|
|
||||||
MinOrderId := 0
|
|
||||||
for k := range OrderMod.GetOrderList() {
|
|
||||||
if MinOrderId == 0 {
|
|
||||||
MinOrderId = k
|
|
||||||
}
|
|
||||||
if k < MinOrderId {
|
|
||||||
MinOrderId = k
|
|
||||||
}
|
|
||||||
}
|
|
||||||
BaseMod := p.PlayMod.getBaseMod()
|
|
||||||
ChessMod := p.PlayMod.getChessMod()
|
|
||||||
if MinOrderId < 12 {
|
|
||||||
return fmt.Errorf("not")
|
|
||||||
}
|
|
||||||
if MinOrderId < 14 && BaseMod.GetEnergy() > 0 {
|
|
||||||
return fmt.Errorf("not")
|
|
||||||
}
|
|
||||||
OrderMod.GuideTriggerOrder(ChessMod.GetUnlockChessList())
|
|
||||||
GuideMod.SetGuideOrder(true)
|
|
||||||
p.PlayMod.save()
|
|
||||||
return nil
|
|
||||||
}
|
|
||||||
|
|
||||||
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
|
|
||||||
}
|
|
||||||
OrderMod := p.PlayMod.getOrderMod()
|
|
||||||
Lv := p.GetPlayerBaseMod().GetLevel()
|
|
||||||
Emit := p.PlayMod.getChessMod().GetOrderEmit()
|
|
||||||
EnergyMul := p.PlayMod.getBaseMod().GetEnergyMul()
|
|
||||||
Star, err := OrderMod.CreateTriggerOrder(Lv, Emit, EnergyMul)
|
|
||||||
if err != nil {
|
|
||||||
log.Debug("uid : %d, PlayroomOrderTrigger, err : %s", p.M_DwUin, err)
|
|
||||||
return err
|
|
||||||
}
|
|
||||||
PlayroomMod.CreateOrderReward(Star, p.PlayMod.getItemMod())
|
|
||||||
PlayroomBackData(p)
|
|
||||||
p.PlayMod.save()
|
|
||||||
return nil
|
|
||||||
}
|
|
||||||
|
|
||||||
func GetVisitorPlayer(p *Player) int {
|
func GetVisitorPlayer(p *Player) int {
|
||||||
PlayroomMod := p.PlayMod.getPlayroomMod()
|
PlayroomMod := p.PlayMod.getPlayroomMod()
|
||||||
VisitorList := PlayroomMod.GetVisitor()
|
VisitorList := PlayroomMod.GetVisitor()
|
||||||
|
|||||||
@ -355,16 +355,6 @@ func ReqRewardOrder(player *Player, buf []byte) error {
|
|||||||
ChampshipMod.AddScore(mergeList)
|
ChampshipMod.AddScore(mergeList)
|
||||||
player.HandleInChampshipRank()
|
player.HandleInChampshipRank()
|
||||||
}
|
}
|
||||||
// playroom 触发式订单
|
|
||||||
err = PlayroomOrderTrigger(player)
|
|
||||||
GuideTriggerOrder(player)
|
|
||||||
if err != nil {
|
|
||||||
player.SendErrClienRes(&msg.ResRewardOrder{
|
|
||||||
Code: msg.RES_CODE_FAIL,
|
|
||||||
Msg: err.Error(),
|
|
||||||
})
|
|
||||||
return err
|
|
||||||
}
|
|
||||||
FriendTreasureMod := player.PlayMod.getFriendTreasureMod()
|
FriendTreasureMod := player.PlayMod.getFriendTreasureMod()
|
||||||
FriendTreasureMod.AddStar(Star / 10)
|
FriendTreasureMod.AddStar(Star / 10)
|
||||||
player.PushClientRes(FriendTreasureMod.NotifyStar())
|
player.PushClientRes(FriendTreasureMod.NotifyStar())
|
||||||
@ -550,11 +540,6 @@ func UpdatePlayerChessDataFunc(player *Player, buf []byte) error {
|
|||||||
}
|
}
|
||||||
RedBackData(player)
|
RedBackData(player)
|
||||||
player.UpdateUserInfo()
|
player.UpdateUserInfo()
|
||||||
err1 := GuideTriggerOrder(player)
|
|
||||||
if err1 == nil {
|
|
||||||
OrderMod := player.PlayMod.getOrderMod()
|
|
||||||
player.PushClientRes(OrderMod.BackData())
|
|
||||||
}
|
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -6,10 +6,8 @@ import (
|
|||||||
limitedTimeEventCfg "server/conf/limitedTimeEvent"
|
limitedTimeEventCfg "server/conf/limitedTimeEvent"
|
||||||
mergeDataCfg "server/conf/mergeData"
|
mergeDataCfg "server/conf/mergeData"
|
||||||
orderCfg "server/conf/order"
|
orderCfg "server/conf/order"
|
||||||
playroomCfg "server/conf/playroom"
|
|
||||||
"server/game/mod/item"
|
"server/game/mod/item"
|
||||||
"server/msg"
|
"server/msg"
|
||||||
"sort"
|
|
||||||
"time"
|
"time"
|
||||||
)
|
)
|
||||||
|
|
||||||
@ -381,105 +379,6 @@ func (o *OrderMod) CreateSuperOrder(lv int, Emit []int, EnergyMul int) error {
|
|||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
|
||||||
*
|
|
||||||
触发订单生成规则:
|
|
||||||
1.有触发订单时,不重复生成
|
|
||||||
2.检索当前已有的订单中,除特殊订单外星星基础收益数值(订单收益数低于1000)最高的订单
|
|
||||||
*/
|
|
||||||
func (o *OrderMod) CreateTriggerOrder(lv int, Emit []int, EnergyMul int) (int, error) {
|
|
||||||
if lv < playroomCfg.GetUnLockLv() {
|
|
||||||
return 0, nil
|
|
||||||
}
|
|
||||||
StarCfg := playroomCfg.GetOrderStar()
|
|
||||||
type info struct {
|
|
||||||
k int
|
|
||||||
v Order
|
|
||||||
}
|
|
||||||
orderList := make([]info, 0)
|
|
||||||
// 查找奖励小于1000的订单, 取最大的订单
|
|
||||||
for k, v := range o.OrderList {
|
|
||||||
if v.Type == Trigger_type {
|
|
||||||
return 0, nil
|
|
||||||
}
|
|
||||||
if v.Type != Common_type {
|
|
||||||
continue
|
|
||||||
}
|
|
||||||
Star := getOrderStar(v.MergeId)
|
|
||||||
if Star > StarCfg {
|
|
||||||
continue
|
|
||||||
}
|
|
||||||
orderList = append(orderList, info{k, v})
|
|
||||||
}
|
|
||||||
sort.Slice(orderList, func(i, j int) bool {
|
|
||||||
return getOrderStar(orderList[i].v.MergeId) > getOrderStar(orderList[j].v.MergeId)
|
|
||||||
})
|
|
||||||
// 没有奖励小于1000的订单且无法生成,去最小的订单
|
|
||||||
if len(orderList) == 0 && EnergyMul >= 8 {
|
|
||||||
for k, v := range o.OrderList {
|
|
||||||
if v.Type != Common_type {
|
|
||||||
continue
|
|
||||||
}
|
|
||||||
orderList = append(orderList, info{k, v})
|
|
||||||
}
|
|
||||||
sort.Slice(orderList, func(i, j int) bool {
|
|
||||||
return getOrderStar(orderList[i].v.MergeId) < getOrderStar(orderList[j].v.MergeId)
|
|
||||||
})
|
|
||||||
}
|
|
||||||
if len(orderList) != 0 {
|
|
||||||
o.OrderList[orderList[0].k] = Order{
|
|
||||||
MergeId: orderList[0].v.MergeId,
|
|
||||||
Diff: orderList[0].v.Diff,
|
|
||||||
Type: Trigger_type,
|
|
||||||
Timestamp: time.Now().Unix(),
|
|
||||||
}
|
|
||||||
return getOrderStar(orderList[0].v.MergeId), nil
|
|
||||||
}
|
|
||||||
|
|
||||||
// 随机生成新的订单
|
|
||||||
if len(Emit) == 0 {
|
|
||||||
return 0, nil
|
|
||||||
}
|
|
||||||
randNum := 0
|
|
||||||
mergeList := make([]int, 0)
|
|
||||||
for {
|
|
||||||
if randNum > 50 {
|
|
||||||
break
|
|
||||||
}
|
|
||||||
randNum++
|
|
||||||
mergeList1, _, err := randOrderChess(o, lv, Emit, EnergyMul)
|
|
||||||
if err != nil {
|
|
||||||
continue
|
|
||||||
}
|
|
||||||
|
|
||||||
if getOrderStar(mergeList1) < StarCfg {
|
|
||||||
mergeList = mergeList1
|
|
||||||
break
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if len(mergeList) > 0 {
|
|
||||||
o.addOrder(mergeList, DIFF_LOW, Trigger_type)
|
|
||||||
return getOrderStar(mergeList), nil
|
|
||||||
} else {
|
|
||||||
for k, v := range o.OrderList {
|
|
||||||
if v.Type != Common_type {
|
|
||||||
continue
|
|
||||||
}
|
|
||||||
orderList = append(orderList, info{k, v})
|
|
||||||
}
|
|
||||||
sort.Slice(orderList, func(i, j int) bool {
|
|
||||||
return getOrderStar(orderList[i].v.MergeId) < getOrderStar(orderList[j].v.MergeId)
|
|
||||||
})
|
|
||||||
o.OrderList[orderList[0].k] = Order{
|
|
||||||
MergeId: orderList[0].v.MergeId,
|
|
||||||
Diff: orderList[0].v.Diff,
|
|
||||||
Type: Trigger_type,
|
|
||||||
Timestamp: time.Now().Unix(),
|
|
||||||
}
|
|
||||||
return getOrderStar(orderList[0].v.MergeId), nil
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
func (o *OrderMod) addOrder(ChessList []int, Diff int, Type int) {
|
func (o *OrderMod) addOrder(ChessList []int, Diff int, Type int) {
|
||||||
o.Auto_id++
|
o.Auto_id++
|
||||||
Order := Order{
|
Order := Order{
|
||||||
@ -495,19 +394,6 @@ func (o *OrderMod) addOrder(ChessList []int, Diff int, Type int) {
|
|||||||
o.LastDiff = Diff
|
o.LastDiff = Diff
|
||||||
}
|
}
|
||||||
|
|
||||||
func (o *OrderMod) GuideTriggerOrder(ChessList []int) bool {
|
|
||||||
//rand := map[int]int{1: 10, 2: 10, 21: 10, 22: 10, 41: 10, 42: 10}
|
|
||||||
C := []int{1, 2, 21, 22, 41, 42}
|
|
||||||
for _, v := range C {
|
|
||||||
if GoUtil.InArray(v, ChessList) {
|
|
||||||
o.addOrder([]int{v}, DIFF_LOW, Guide_type)
|
|
||||||
return true
|
|
||||||
}
|
|
||||||
}
|
|
||||||
o.addOrder([]int{1}, DIFF_LOW, Guide_type)
|
|
||||||
return true
|
|
||||||
}
|
|
||||||
|
|
||||||
func (o *OrderMod) CreateCleanOrder(ChessList []int) bool {
|
func (o *OrderMod) CreateCleanOrder(ChessList []int) bool {
|
||||||
o.addOrder(ChessList, DIFF_LOW, Clean_type)
|
o.addOrder(ChessList, DIFF_LOW, Clean_type)
|
||||||
return true
|
return true
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user