From 89f9b8481955e6cf88077f70b1982ad285f13222 Mon Sep 17 00:00:00 2001 From: hahwu <31872165+hahwu@users.noreply.github.com> Date: Tue, 10 Mar 2026 19:54:49 +0800 Subject: [PATCH] =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E8=AE=A2=E5=8D=95=E9=80=BB?= =?UTF-8?q?=E8=BE=91=EF=BC=8C=E5=88=A0=E9=99=A4=E6=97=A0=E6=B3=95=E5=AE=8C?= =?UTF-8?q?=E6=88=90=E7=9A=84=E5=9B=9E=E6=94=B6=E8=AE=A2=E5=8D=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/server/game/message_handler.go | 20 ++++++++++++++++++++ src/server/game/mod/order/Order.go | 4 ++++ src/server/game/register_network_func.go | 2 ++ src/server/game_util/GoUtil.go | 10 ++++++++++ src/server/test/fix_test.go | 7 +++++++ 5 files changed, 43 insertions(+) diff --git a/src/server/game/message_handler.go b/src/server/game/message_handler.go index 2d17c6f6..df0c54b2 100644 --- a/src/server/game/message_handler.go +++ b/src/server/game/message_handler.go @@ -1349,6 +1349,26 @@ func (p *Player) AddHighOrder2() { } } +func (p *Player) DeleteHighOrder() { + OrderMod := p.PlayMod.getOrderMod() + ChessMod := p.PlayMod.getChessMod() + ChessList := ChessMod.GetUnlockChessList() + for k, v := range OrderMod.GetOrderList() { + if v.Type != order.Extra_type { + continue + } + if len(v.MergeId) == 0 { + continue + } + chessId := v.MergeId[0] + chessNum := len(v.MergeId) + elementNum := GoUtil.ElemNumber(ChessList, chessId) + if elementNum < chessNum { + OrderMod.DeleteOrder(k) + } + } +} + func (p *Player) FormatPetOrderItem(Items []*item.Item) []*item.Item { var NewItems []*item.Item PlayroomMod := p.PlayMod.getPlayroomMod() diff --git a/src/server/game/mod/order/Order.go b/src/server/game/mod/order/Order.go index 467589d4..163a98cc 100644 --- a/src/server/game/mod/order/Order.go +++ b/src/server/game/mod/order/Order.go @@ -439,6 +439,10 @@ func (o *OrderMod) CreateNormalOrder(lv int, Emit []int, EnergyMul, OrderType in return nil } +func (o *OrderMod) DeleteOrder(OrderId int) { + delete(o.OrderList, OrderId) +} + // 生成超级订单 func (o *OrderMod) CreateSuperOrder(lv int, Emit []int, EnergyMul int) error { if len(Emit) == 0 { diff --git a/src/server/game/register_network_func.go b/src/server/game/register_network_func.go index e5e72d0d..02d214fa 100644 --- a/src/server/game/register_network_func.go +++ b/src/server/game/register_network_func.go @@ -413,6 +413,8 @@ func ReqRewardOrder(player *Player, buf []byte) error { player.AddOrder() player.AddHighOrder() player.AddHighOrder2() + // 删除无法完成的回收订单 + player.DeleteHighOrder() player.InitOrderItem() // 存钱罐增加钻石 PiggyBankMod := player.PlayMod.getPiggyBankMod() diff --git a/src/server/game_util/GoUtil.go b/src/server/game_util/GoUtil.go index df3eca3a..9b3fc74c 100644 --- a/src/server/game_util/GoUtil.go +++ b/src/server/game_util/GoUtil.go @@ -648,3 +648,13 @@ func NotifyPlayer(uid, pushid int, title, content string) { } log.Debug("notification send uid %d, type %d , res %s", uid, pushid, string(body)) } + +func ElemNumber(list []int, ele int) int { + count := 0 + for _, v := range list { + if v == ele { + count++ + } + } + return count +} diff --git a/src/server/test/fix_test.go b/src/server/test/fix_test.go index 2ec8125e..670d9363 100644 --- a/src/server/test/fix_test.go +++ b/src/server/test/fix_test.go @@ -100,6 +100,13 @@ func TestRandInt(t *testing.T) { SevenMod.BackData() } +func TestLevelUp(t *testing.T) { + p1 := new(game.Player) + p1.InitPlayer("3625212") + PlayerBaseMod := p1.GetPlayerBaseMod() + PlayerBaseMod.AddExp(p1, 10000, 10000) +} + func TestEndless(t *testing.T) { p1 := new(game.Player) p1.InitPlayer("3625212")