订单优化
This commit is contained in:
parent
d64fe56c22
commit
72edb784fd
@ -157,3 +157,11 @@ func GetMaxStep() int {
|
||||
}
|
||||
return max
|
||||
}
|
||||
|
||||
func GetOrderType(Id int) int {
|
||||
data, err := gamedata.GetDataByIntKey(CFG_START_ORDER, Id)
|
||||
if err != nil {
|
||||
return 0
|
||||
}
|
||||
return gamedata.GetIntValue(data, "type")
|
||||
}
|
||||
|
||||
@ -10,11 +10,13 @@ import (
|
||||
"server/conf"
|
||||
cardCfg "server/conf/card"
|
||||
chargeCfg "server/conf/charge"
|
||||
decorateCfg "server/conf/decorate"
|
||||
limitedTimeEventCfg "server/conf/limitedTimeEvent"
|
||||
mailCfg "server/conf/mail"
|
||||
mergeDataCfg "server/conf/mergeData"
|
||||
orderCfg "server/conf/order"
|
||||
playroomCfg "server/conf/playroom"
|
||||
userCfg "server/conf/user"
|
||||
"server/db"
|
||||
"server/game/mod/activity"
|
||||
"server/game/mod/card"
|
||||
@ -980,12 +982,16 @@ func (player *Player) GetPetOrderItemExp() int {
|
||||
return playroomCfg.GetPetOrderItemExpByList(itemList)
|
||||
}
|
||||
|
||||
// 弃用
|
||||
func (player *Player) FormatOrderReward() {
|
||||
OrderMod := player.PlayMod.getOrderMod()
|
||||
Exp, PExp := userCfg.GetLevUpExp(player.GetPlayerBaseMod().GetLevel())
|
||||
BaseMod := player.PlayMod.getBaseMod()
|
||||
DecorateMod := player.PlayMod.getDecorateMod()
|
||||
ChessMod := player.PlayMod.getChessMod()
|
||||
OrderFactor := orderCfg.GetOrderFactor(DecorateMod.GetAreaId())
|
||||
ExpCoin := (Exp-BaseMod.GetExp())*decorateCfg.GetAreaPerPExp(DecorateMod.GetAreaId()) - BaseMod.GetStar()
|
||||
PExpCoin := (PExp-BaseMod.GetPExp())*50 - player.GetPetOrderItemExp()
|
||||
OrderMod := player.PlayMod.getOrderMod()
|
||||
if ExpCoin > PExpCoin || BaseMod.GetLevel() < 6 {
|
||||
for k, v := range OrderMod.GetOrderList() {
|
||||
if len(v.Items) != 0 {
|
||||
continue
|
||||
@ -995,7 +1001,31 @@ func (player *Player) FormatOrderReward() {
|
||||
}
|
||||
Star := order.GetOrderStar(v.MergeId)
|
||||
Star = int(float64(Star)*float64(OrderFactor)/10) * 10
|
||||
v.Items = append(v.Items, item.NewItem(item.ITEM_STAR_ID, Star))
|
||||
v.Items = append(v.Items, &item.Item{
|
||||
Id: item.ITEM_STAR_ID,
|
||||
Num: Star,
|
||||
})
|
||||
OrderMod.OrderList[k] = v
|
||||
}
|
||||
return
|
||||
}
|
||||
for k, v := range OrderMod.GetOrderList() {
|
||||
if len(v.Items) != 0 {
|
||||
continue
|
||||
}
|
||||
if v.Type != order.Common_type {
|
||||
continue
|
||||
}
|
||||
Items := make([]*item.Item, 0)
|
||||
Star := order.GetOrderStar(v.MergeId)
|
||||
Star = int(float64(Star)*float64(OrderFactor)/10) * 10
|
||||
Items = player.GetPetOrderReward(Star, Items)
|
||||
if len(Items) == 1 && Items[0].Id == item.ITEM_STAR_ID {
|
||||
v.Type = order.Common_type
|
||||
} else {
|
||||
v.Type = order.Pet_type
|
||||
}
|
||||
v.Items = Items
|
||||
OrderMod.OrderList[k] = v
|
||||
}
|
||||
// 触发式订单 满足条件生成零件订单
|
||||
|
||||
@ -40,11 +40,11 @@ func UnitChessShop(p *Player) error {
|
||||
|
||||
func UnitOrder(p *Player) error {
|
||||
OrderMod := p.PlayMod.getOrderMod()
|
||||
ChessMod := p.PlayMod.getChessMod()
|
||||
BaseMod := p.PlayMod.getBaseMod()
|
||||
// ChessMod := p.PlayMod.getChessMod()
|
||||
// BaseMod := p.PlayMod.getBaseMod()
|
||||
OrderMod.OrderList = make(map[int]order.Order)
|
||||
for i := 0; i < 1000; i++ {
|
||||
err := OrderMod.CreateNormalOrder(BaseMod.GetLevel(), ChessMod.GetEmitList(), BaseMod.EnergyMul)
|
||||
err := OrderMod.CreateNormalOrder(17, []int{87, 109, 145, 170, 189}, 2)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
@ -2,6 +2,7 @@ package order
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"log"
|
||||
"server/GoUtil"
|
||||
limitedTimeEventCfg "server/conf/limitedTimeEvent"
|
||||
mergeDataCfg "server/conf/mergeData"
|
||||
@ -52,6 +53,7 @@ const (
|
||||
Pet_type = 11 // 宠物订单
|
||||
Preview_type = 12 // 预览订单
|
||||
Fixed_type = 13 // 固定订单
|
||||
Playroom_type = 14 // playroom装饰物订单
|
||||
|
||||
DIFF_LOW = 1 // 低难度
|
||||
DIFF_MID = 2 // 中难度
|
||||
@ -199,11 +201,16 @@ func (o *OrderMod) TriggerOrder(lv int, Type string, Emit []int, EnergyMul int)
|
||||
}
|
||||
if v.Appear != "" {
|
||||
if o.CheckCondition(lv, v.Appear, Type, Emit, FixedOrder, OrderList) {
|
||||
Type := Fixed_type
|
||||
OrderType := orderCfg.GetOrderType(v.Id)
|
||||
if OrderType != 0 {
|
||||
Type = OrderType
|
||||
}
|
||||
if exists {
|
||||
orderInfo.Type = Fixed_type
|
||||
o.OrderList[v.Id] = orderInfo
|
||||
} else {
|
||||
o.addFixOrder(v.Id, v.MergeList, Fixed_type, v.Items)
|
||||
o.addFixOrder(v.Id, v.MergeList, Type, v.Items)
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -411,7 +418,7 @@ func (o *OrderMod) CreateNormalOrder(lv int, Emit []int, EnergyMul int) error {
|
||||
}
|
||||
break
|
||||
}
|
||||
// log.Printf("CreateNormalOrder: %v, %v, %v", mergeList, OrderDiff, err)
|
||||
log.Printf("CreateNormalOrder: %v, %v, %v", mergeList, OrderDiff, err)
|
||||
o.addOrder(mergeList, OrderDiff, Common_type)
|
||||
return nil
|
||||
}
|
||||
|
||||
Loading…
Reference in New Issue
Block a user