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