From 766bcfd30bc7f8b1f9182698a3dad6d683db1de2 Mon Sep 17 00:00:00 2001 From: hahwu <31872165+hahwu@users.noreply.github.com> Date: Mon, 2 Mar 2026 14:37:53 +0800 Subject: [PATCH] =?UTF-8?q?=E8=AE=A2=E5=8D=95=E5=A5=96=E5=8A=B1=E7=9A=84?= =?UTF-8?q?=E7=8C=AB=E5=B8=81=E6=95=B0=E9=87=8F=E5=BC=82=E5=B8=B8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/server/game/message_handler.go | 6 +++--- src/server/game/mod/chess/Chess.go | 9 ++++++++- src/server/game/mod/order/order_func.go | 1 + src/server/test/chess_test.go | 23 +++++++++++++++++++++++ 4 files changed, 35 insertions(+), 4 deletions(-) create mode 100644 src/server/test/chess_test.go diff --git a/src/server/game/message_handler.go b/src/server/game/message_handler.go index 4b97cbcb..226c8847 100644 --- a/src/server/game/message_handler.go +++ b/src/server/game/message_handler.go @@ -827,7 +827,7 @@ func (player *Player) AddOrder() { NewChessId := mergeDataCfg.GetChessIdByLvAndColor(BaseMod.GetEnergyMul()+PreheatStep+1, ChessColor) Items, ok := order.PreheatItems[OrderMod.PreheatStep[ChessColor]] if !ok { - Items = []*item.Item{item.NewItem(item.ITEM_STAR_ID, order.GetOrderStar([]int{NewChessId}, ChessMod.GetOrderEmit()))} + Items = []*item.Item{item.NewItem(item.ITEM_STAR_ID, order.GetOrderStar([]int{NewChessId}, ChessMod.GetStarEmitList()))} } OrderMod.AddPreheatOrder([]int{NewChessId}, order.DIFF_LOW, order.Preheat_type, Items) } @@ -869,7 +869,7 @@ func (player *Player) FixOrderBug() { OrderMod.PreheatStep[k]++ Items, ok := order.PreheatItems[OrderMod.PreheatStep[k]] if !ok { - Items = []*item.Item{item.NewItem(item.ITEM_STAR_ID, order.GetOrderStar([]int{NewChessId}, ChessMod.GetOrderEmit()))} + Items = []*item.Item{item.NewItem(item.ITEM_STAR_ID, order.GetOrderStar([]int{NewChessId}, ChessMod.GetStarEmitList()))} } OrderMod.AddPreheatOrder([]int{NewChessId}, order.DIFF_LOW, order.Preheat_type, Items) } @@ -997,7 +997,7 @@ func (player *Player) CreateNormalOrder() { if v.Type != order.COMFORT_TYPE { continue } - Star := order.GetOrderStar(v.MergeId, ChessMod.GetOrderEmit()) + Star := order.GetOrderStar(v.MergeId, ChessMod.GetStarEmitList()) Star = int(float64(Star)*float64(OrderFactor)/1000) * 10 v.Items = []*item.Item{{Id: item.ITEM_STAR_ID, Num: Star}} OrderMod.OrderList[k] = v diff --git a/src/server/game/mod/chess/Chess.go b/src/server/game/mod/chess/Chess.go index 0b5cb041..4d946152 100644 --- a/src/server/game/mod/chess/Chess.go +++ b/src/server/game/mod/chess/Chess.go @@ -304,7 +304,14 @@ func (cb *ChessBorad) emitListToSlice(retireFilter bool) []int { for _, v := range EM { result = append(result, v) } - return result + // if !retireFilter { + // for k, v := range cb.Honor { + // if v == 1 { + // result = append(result, k) + // } + // } + // } + return GoUtil.UniqueInts(result) } func (cb *ChessBorad) GetStarEmitList() []int { diff --git a/src/server/game/mod/order/order_func.go b/src/server/game/mod/order/order_func.go index e02cdd8a..8b5280ab 100644 --- a/src/server/game/mod/order/order_func.go +++ b/src/server/game/mod/order/order_func.go @@ -390,6 +390,7 @@ func getChesslvRange(Emit int, EnergyMul int, IsCharge bool) (int, int) { // 根据类型获取发射器id func GetEmitByColor(Emit []int, color string) int { + sort.Ints(Emit) for _, v := range Emit { Produce := mergeDataCfg.GetEmitProduceChessType(v) for _, c := range Produce { diff --git a/src/server/test/chess_test.go b/src/server/test/chess_test.go new file mode 100644 index 00000000..9f2fe5d3 --- /dev/null +++ b/src/server/test/chess_test.go @@ -0,0 +1,23 @@ +package test + +import ( + "fmt" + "server/game" + "server/game/mod/order" + "testing" +) + +func TestGetStarEmitList(t *testing.T) { + p1 := new(game.Player) + p1.InitPlayer("3625212") + ChessMod := p1.GetChessMod() + EM := ChessMod.GetStarEmitList() + OrderMod := p1.GetOrderMod() + OrderMod.OrderList = map[int]order.Order{ + 1: { + MergeId: []int{25, 25}, + }, + } + p1.InitOrderItem() + fmt.Printf("%v\n", EM) +}