diff --git a/src/server/game/message_handler.go b/src/server/game/message_handler.go index 5209fb54..cb8a791a 100644 --- a/src/server/game/message_handler.go +++ b/src/server/game/message_handler.go @@ -1030,7 +1030,7 @@ func (player *Player) CreatePetOrder() { } } if petTrigger && BaseMod.GetLevel() >= 17 { - OrderMod.CreateOrder(BaseMod.GetLevel(), ChessMod.GetOrderEmit(), BaseMod.GetEnergyMul(), order.Pet_type) + OrderMod.CreatePetOrder(BaseMod.GetLevel(), ChessMod.GetOrderEmit(), BaseMod.GetEnergyMul(), order.Pet_type) for k, v := range OrderMod.GetOrderList() { if len(v.Items) != 0 { continue diff --git a/src/server/game/mod/order/Order.go b/src/server/game/mod/order/Order.go index 711df51b..970b846b 100644 --- a/src/server/game/mod/order/Order.go +++ b/src/server/game/mod/order/Order.go @@ -302,7 +302,7 @@ func (o *OrderMod) CreateOrder(lv int, emit []int, energyMul, orderType int) err if len(emit) == 0 { return nil } - /// 生成优先订单 + // 生成优先订单 if o.CreatePriorityOrder(lv, emit) { return nil } @@ -439,6 +439,53 @@ func (o *OrderMod) CreateNormalOrder(lv int, emit []int, energyMul, orderType in return nil } +// 直接生成生成宠物订单 宠物币订单价值大于75 +func (o *OrderMod) CreatePetOrder(lv int, emit []int, energyMul, orderType int) error { + if len(emit) == 0 { + return nil + } + randNum := 0 + mergeList := make([]int, 0) + OrderDiff := DIFF_LOW + var err error + for { + if randNum > 50 { + break + } + randNum++ + mergeList, OrderDiff, err = randOrderChess(o, lv, emit, energyMul, orderType) + if err != nil { + continue + } + lastMergelist := o.LastNormalOrder.MergeId + conbine := false + star := 0 + for _, v := range mergeList { + star += mergeDataCfg.GetStarById(v) + } + if star < 75 { + continue + } + for _, v := range mergeList { + if GoUtil.InArray(v, lastMergelist) { + conbine = true + break + } + } + if conbine { + continue + } + break + } + for _, v := range mergeList { + if v == 0 { + return nil + } + } + o.addOrder(mergeList, OrderDiff, orderType) + return nil +} + func (o *OrderMod) DeleteOrder(OrderId int) { delete(o.OrderList, OrderId) } diff --git a/src/server/test/chess_test.go b/src/server/test/chess_test.go index f960504c..587353d3 100644 --- a/src/server/test/chess_test.go +++ b/src/server/test/chess_test.go @@ -21,3 +21,11 @@ func TestGetStarEmitList(t *testing.T) { p1.InitOrderItem() fmt.Printf("%v\n", EM) } + +func TestTakeChessOutBagToHonor(t *testing.T) { + p1 := new(game.Player) + p1.InitPlayer("3625212") + ChessMod := p1.GetChessMod() + ChessMod.TakeChessOutBagToHonor(3) + fmt.Printf("%v\n", ChessMod.Honor) +} diff --git a/src/server/test/order_test.go b/src/server/test/order_test.go index 67effdb8..d938b93d 100644 --- a/src/server/test/order_test.go +++ b/src/server/test/order_test.go @@ -82,3 +82,14 @@ func TestAddPartOrder(t *testing.T) { OrderMod.CreateOrder(BaseMod.GetLevel(), ChessMod.GetOrderPartEmit(), BaseMod.GetEnergyMul(), order.Part_type) } } + +func TestCreatePetOrder(t *testing.T) { + p1 := new(game.Player) + p1.InitPlayer("3625212") + OrderMod := p1.GetOrderMod() + BaseMod := p1.GetBaseMod() + ChessMod := p1.GetChessMod() + for i := 0; i < 10; i++ { + OrderMod.CreatePetOrder(BaseMod.GetLevel(), ChessMod.GetOrderEmit(), BaseMod.GetEnergyMul(), order.Pet_type) + } +}