优化订单逻辑,直接生成订单的价值大于75

This commit is contained in:
hahwu 2026-03-30 11:07:58 +08:00
parent 19e4c292c7
commit 34099258a7
4 changed files with 68 additions and 2 deletions

View File

@ -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

View File

@ -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)
}

View File

@ -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)
}

View File

@ -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)
}
}