From 0c1ec3ce500abe805bef17515be8e0cdb84c179a Mon Sep 17 00:00:00 2001 From: hahwu <31872165+hahwu@users.noreply.github.com> Date: Fri, 28 Mar 2025 14:34:21 +0800 Subject: [PATCH] =?UTF-8?q?=E8=AE=A2=E5=8D=95=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/server/conf/StartOrder/StartOrderCfg.go | 41 -------------------- src/server/conf/order/orderCfg.go | 43 +++++++++++++++++++++ src/server/game/mod/order/Order.go | 8 ++-- 3 files changed, 47 insertions(+), 45 deletions(-) delete mode 100644 src/server/conf/StartOrder/StartOrderCfg.go diff --git a/src/server/conf/StartOrder/StartOrderCfg.go b/src/server/conf/StartOrder/StartOrderCfg.go deleted file mode 100644 index 896dfcbc..00000000 --- a/src/server/conf/StartOrder/StartOrderCfg.go +++ /dev/null @@ -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 -} diff --git a/src/server/conf/order/orderCfg.go b/src/server/conf/order/orderCfg.go index b31fdc5f..f38d4a55 100644 --- a/src/server/conf/order/orderCfg.go +++ b/src/server/conf/order/orderCfg.go @@ -2,18 +2,21 @@ package orderCfg import ( "server/gamedata" + "strconv" ) const ( CFG_ORDER_DATA = "OrderData" CFG_ORDER_CHESS_DATA = "OrderChessData" CFG_ORDER_NUM_DATA = "OrderNumData" + CFG_START_ORDER = "StartOrder" ) func init() { gamedata.InitCfg(CFG_ORDER_DATA) gamedata.InitCfg(CFG_ORDER_CHESS_DATA) gamedata.InitCfg(CFG_ORDER_NUM_DATA) + gamedata.InitCfg(CFG_START_ORDER) } func GetLvMin(EnergyMul int) int { @@ -56,3 +59,43 @@ func GetOrderNum(Level int) int { } 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 +} diff --git a/src/server/game/mod/order/Order.go b/src/server/game/mod/order/Order.go index 83189b84..e93c727b 100644 --- a/src/server/game/mod/order/Order.go +++ b/src/server/game/mod/order/Order.go @@ -3,7 +3,6 @@ package order import ( "fmt" "server/GoUtil" - startOrderCfg "server/conf/StartOrder" limitedTimeEventCfg "server/conf/limitedTimeEvent" mergeDataCfg "server/conf/mergeData" orderCfg "server/conf/order" @@ -65,7 +64,7 @@ func (o *OrderMod) InitData() { } if o.Step == 0 { o.OrderList = make(map[int]Order) - Cfg := startOrderCfg.GetStartOrderByStep(o.Step + 1) + Cfg := orderCfg.GetStartOrderByStep(o.Step + 1) o.Step = 1 o.Auto_id = 0 o.LastDiff = DIFF_LOW @@ -181,7 +180,8 @@ func (o *OrderMod) CreateOrder(lv int, Emit []int, EnergyMul int) error { o.PreheatStep[ChessColor]++ } default: - if o.Step < 12 { + MaxStep := orderCfg.GetMaxStep() + if o.Step < MaxStep { n := 0 for _, v := range o.OrderList { if v.Type == Common_type { @@ -191,7 +191,7 @@ func (o *OrderMod) CreateOrder(lv int, Emit []int, EnergyMul int) error { if n != 0 { return nil } - Cfg := startOrderCfg.GetStartOrderByStep(o.Step + 1) + Cfg := orderCfg.GetStartOrderByStep(o.Step + 1) o.Step++ for _, v := range Cfg { o.addOrder(v.MergeList, DIFF_LOW, Common_type)