订单优化

This commit is contained in:
hahwu 2025-03-28 14:34:21 +08:00
parent 4e0023ec85
commit 0c1ec3ce50
3 changed files with 47 additions and 45 deletions

View File

@ -1,41 +0,0 @@
package startOrderCfg
import (
"server/gamedata"
"strconv"
)
type StartOrderCfg struct {
}
var CFG_NAME = "StartOrder"
func init() {
gamedata.InitCfg(CFG_NAME)
}
// 根据step 获取初始订单
func GetStartOrderByStep(id int) []*gamedata.StartOrderData {
ret := make([]*gamedata.StartOrderData, 0)
data, err := gamedata.GetData(CFG_NAME)
if err != nil {
return ret
}
for k, v := range data {
record := v.(map[string]interface{})
stepVal := gamedata.ParseInt(record["step"])
var MergeList []int
for _, vv := range record["merge_id_list"].([]interface{}) {
MergeList = append(MergeList, gamedata.ParseInt(vv))
}
if int(stepVal) == id {
OrderId, _ := strconv.Atoi(k)
ret = append(ret, &gamedata.StartOrderData{
Id: OrderId,
Step: int(stepVal),
MergeList: MergeList,
})
}
}
return ret
}

View File

@ -2,18 +2,21 @@ package orderCfg
import ( import (
"server/gamedata" "server/gamedata"
"strconv"
) )
const ( const (
CFG_ORDER_DATA = "OrderData" CFG_ORDER_DATA = "OrderData"
CFG_ORDER_CHESS_DATA = "OrderChessData" CFG_ORDER_CHESS_DATA = "OrderChessData"
CFG_ORDER_NUM_DATA = "OrderNumData" CFG_ORDER_NUM_DATA = "OrderNumData"
CFG_START_ORDER = "StartOrder"
) )
func init() { func init() {
gamedata.InitCfg(CFG_ORDER_DATA) gamedata.InitCfg(CFG_ORDER_DATA)
gamedata.InitCfg(CFG_ORDER_CHESS_DATA) gamedata.InitCfg(CFG_ORDER_CHESS_DATA)
gamedata.InitCfg(CFG_ORDER_NUM_DATA) gamedata.InitCfg(CFG_ORDER_NUM_DATA)
gamedata.InitCfg(CFG_START_ORDER)
} }
func GetLvMin(EnergyMul int) int { func GetLvMin(EnergyMul int) int {
@ -56,3 +59,43 @@ func GetOrderNum(Level int) int {
} }
return 0 return 0
} }
func GetStartOrderByStep(id int) []*gamedata.StartOrderData {
ret := make([]*gamedata.StartOrderData, 0)
data, err := gamedata.GetData(CFG_START_ORDER)
if err != nil {
return ret
}
for k, v := range data {
record := v.(map[string]interface{})
stepVal := gamedata.ParseInt(record["step"])
var MergeList []int
for _, vv := range record["merge_id_list"].([]interface{}) {
MergeList = append(MergeList, gamedata.ParseInt(vv))
}
if int(stepVal) == id {
OrderId, _ := strconv.Atoi(k)
ret = append(ret, &gamedata.StartOrderData{
Id: OrderId,
Step: int(stepVal),
MergeList: MergeList,
})
}
}
return ret
}
func GetMaxStep() int {
data, err := gamedata.GetData(CFG_START_ORDER)
if err != nil {
return 0
}
max := 0
for _, v := range data {
stepVal := gamedata.GetIntValue(v, "step")
if int(stepVal) > max {
max = int(stepVal)
}
}
return max
}

View File

@ -3,7 +3,6 @@ package order
import ( import (
"fmt" "fmt"
"server/GoUtil" "server/GoUtil"
startOrderCfg "server/conf/StartOrder"
limitedTimeEventCfg "server/conf/limitedTimeEvent" limitedTimeEventCfg "server/conf/limitedTimeEvent"
mergeDataCfg "server/conf/mergeData" mergeDataCfg "server/conf/mergeData"
orderCfg "server/conf/order" orderCfg "server/conf/order"
@ -65,7 +64,7 @@ func (o *OrderMod) InitData() {
} }
if o.Step == 0 { if o.Step == 0 {
o.OrderList = make(map[int]Order) o.OrderList = make(map[int]Order)
Cfg := startOrderCfg.GetStartOrderByStep(o.Step + 1) Cfg := orderCfg.GetStartOrderByStep(o.Step + 1)
o.Step = 1 o.Step = 1
o.Auto_id = 0 o.Auto_id = 0
o.LastDiff = DIFF_LOW o.LastDiff = DIFF_LOW
@ -181,7 +180,8 @@ func (o *OrderMod) CreateOrder(lv int, Emit []int, EnergyMul int) error {
o.PreheatStep[ChessColor]++ o.PreheatStep[ChessColor]++
} }
default: default:
if o.Step < 12 { MaxStep := orderCfg.GetMaxStep()
if o.Step < MaxStep {
n := 0 n := 0
for _, v := range o.OrderList { for _, v := range o.OrderList {
if v.Type == Common_type { if v.Type == Common_type {
@ -191,7 +191,7 @@ func (o *OrderMod) CreateOrder(lv int, Emit []int, EnergyMul int) error {
if n != 0 { if n != 0 {
return nil return nil
} }
Cfg := startOrderCfg.GetStartOrderByStep(o.Step + 1) Cfg := orderCfg.GetStartOrderByStep(o.Step + 1)
o.Step++ o.Step++
for _, v := range Cfg { for _, v := range Cfg {
o.addOrder(v.MergeList, DIFF_LOW, Common_type) o.addOrder(v.MergeList, DIFF_LOW, Common_type)