订单bug修复

This commit is contained in:
hahwu 2025-09-22 14:12:48 +08:00
parent dddf7d3953
commit 6c78877c6a
3 changed files with 60 additions and 5 deletions

View File

@ -1112,6 +1112,18 @@ func (player *Player) CreateNormalOrder() {
Now := GoUtil.Now()
if OrderMod.LastOrder.Type == order.COMFORT_TYPE && Now < int64(OrderMod.ComfortEndTime) {
OrderMod.CreateOrder(BaseMod.GetLevel(), ChessMod.GetOrderEmit(), BaseMod.GetEnergyMul(), order.COMFORT_TYPE)
for k, v := range OrderMod.GetOrderList() {
if k == OrderMod.Auto_id {
if v.Type != order.COMFORT_TYPE {
continue
}
Items := make([]*item.Item, 0)
Star := order.GetOrderStar(v.MergeId, ChessMod.GetOrderEmit())
Star = int(float64(Star)*float64(OrderFactor)/1000) * 10
v.Items = append(Items, &item.Item{Id: item.ITEM_STAR_ID, Num: Star})
OrderMod.OrderList[k] = v
}
}
return
}

View File

@ -5,6 +5,7 @@ import (
"math"
mergeDataCfg "server/conf/mergeData"
"server/game/mod/decorate"
"server/game/mod/item"
"server/game/mod/order"
"server/game/mod/quest"
"server/msg"
@ -52,8 +53,22 @@ func UnitOrder(p *Player) error {
if err != nil {
return err
}
for k, v := range OrderMod.OrderList {
if v.Type == order.Super_type {
continue
}
if len(v.Items) > 0 {
continue
}
if v.Diff == 0 {
continue
}
Star := order.GetOrderStar(v.MergeId, ChessMod.GetOrderEmit())
v.Items = []*item.Item{item.NewItem(item.ITEM_STAR_ID, Star)}
OrderMod.OrderList[k] = v
fmt.Printf("OrderId %d, Diff %d, MergeId %v, Star %d\n", k, v.Diff, v.MergeId, Star)
}
}
p.CreateNormalOrder()
NumMap := make(map[int]int)
for _, v := range OrderMod.OrderList {
NumMap[len(v.MergeId)]++
@ -289,6 +304,7 @@ func UnitPlayroomOrder(p *Player) error {
}
func UnitPetOrder(p *Player) error {
p.AddOrder()
ChessMod := p.PlayMod.getChessMod()
a := order.GetOrderStar([]int{246, 15}, ChessMod.GetOrderEmit())
fmt.Print(a)

View File

@ -704,6 +704,23 @@ func getChessLvFromConfig1(MinEnergy, MaxEnergy, MinLv, MaxLv, LastEnergy int) (
}
func getChessLvFromConfig2(MinEnergy, MaxEnergy, MinLv, MaxLv, LastEnergy int) (int, bool) {
rand := []int{}
for _, v := range orderCfgMap {
if MinEnergy >= v.Min && MaxEnergy <= v.Max {
for _, info := range v.Pool {
if MinLv <= info.lv && MaxLv >= info.lv {
rand = append(rand, info.lv)
}
}
if len(rand) > 0 {
return GoUtil.RandSlice(rand), true
}
return 0, false
}
}
return 0, false
}
func getChessLvFromConfig3(MinEnergy, MaxEnergy, MinLv, MaxLv, LastEnergy int) (int, bool) {
rand := []int{}
for _, v := range orderCfgMap {
if MinEnergy >= v.Min && MaxEnergy <= v.Max {
@ -737,7 +754,11 @@ func getChessFromPoolByEnergy(o *OrderMod, MinEnergy, MaxEnergy, ChessNum int, E
if len(ColorArr) == 1 {
ChessLv, ok = getChessLvFromConfig1(MinEnergy, MaxEnergy, ChessMinLv, ChessMaxLv, LastEnergy)
} else {
if k == 0 {
ChessLv, ok = getChessLvFromConfig2(MinEnergy, MaxEnergy, ChessMinLv, ChessMaxLv, LastEnergy)
} else {
ChessLv, ok = getChessLvFromConfig3(MinEnergy, MaxEnergy, ChessMinLv, ChessMaxLv, LastEnergy)
}
}
LastEnergy += int(math.Pow(2, float64(ChessLv-1)))
if !ok && k == 0 && len(ColorArr) == 1 {
@ -745,11 +766,17 @@ func getChessFromPoolByEnergy(o *OrderMod, MinEnergy, MaxEnergy, ChessNum int, E
}
NewLev := mergeDataCfg.DynamicLev(ChessLv, EmitChessId, Color)
MaxLev := mergeDataCfg.GetMaxLvByColor(Color)
NewLev = adjustLev(NewLev, EnergyMul)
NewLev = min(NewLev, MaxLev)
Chess := mergeDataCfg.GetChessIdByLvAndColor(NewLev, Color)
NewLev1 := adjustLev(NewLev, EnergyMul)
NewLev2 := min(NewLev1, MaxLev)
Chess := mergeDataCfg.GetChessIdByLvAndColor(NewLev2, Color)
if Chess == 0 {
break
}
ChessArr = append(ChessArr, Chess)
}
if GoUtil.InArray(0, ChessArr) {
continue
}
if Break++; Break > 1000 {
return ChessArr
}