修改订单逻辑

This commit is contained in:
hahwu 2025-01-15 16:07:27 +08:00
parent e8fd0d9953
commit c6c884b232
4 changed files with 36 additions and 7 deletions

View File

@ -237,6 +237,15 @@ func GetEmitId(Id int) string {
return gamedata.ParseString(data["Emit_ID"])
}
func GetEmitType(Id int) string {
data, err := gamedata.GetDataByIntKey(CFG_NAME, Id)
if err != nil {
log.Debug("GetTypeById GetOne Id:%v not found", Id)
return ""
}
return gamedata.ParseString(data["Emit_Type"])
}
// 获取常量
func GetConst(Key string) string {
data, err := gamedata.GetDataByKey(CONST_NAME, Key)

View File

@ -55,7 +55,8 @@ func UnitOrder(p *Player) error {
OrderMod := p.PlayMod.getOrderMod()
ChessMod := p.PlayMod.getChessMod()
OrderMod.OrderList = make(map[int]order.Order)
for i := 0; i < 10000; i++ {
OrderMod.LastDiff = 1
for i := 0; i < 3; i++ {
err := OrderMod.CreateNormalOrder(7, ChessMod.GetEmitList(), 3)
if err != nil {
return err

View File

@ -2,6 +2,7 @@ package order
import (
"fmt"
"log"
"server/GoUtil"
startOrderCfg "server/conf/StartOrder"
limitedTimeEventCfg "server/conf/limitedTimeEvent"
@ -10,7 +11,6 @@ import (
playroomCfg "server/conf/playroom"
"server/game/mod/item"
"server/msg"
"server/pkg/github.com/name5566/leaf/log"
"sort"
"time"
)
@ -239,7 +239,7 @@ func (o *OrderMod) CreateNormalOrder(lv int, Emit []int, EnergyMul int) error {
}
break
}
log.Debug("CreateNormalOrder mergeList:%v, OrderDiff:%v", mergeList, OrderDiff)
log.Printf("CreateNormalOrder: %v, %v, %v", mergeList, OrderDiff, err)
o.addOrder(mergeList, OrderDiff, Common_type)
return nil
}
@ -390,6 +390,7 @@ func (o *OrderMod) addOrder(ChessList []int, Diff int, Type int) {
if Type == Common_type {
o.LastNormalOrder = Order
}
o.LastDiff = Diff
}
func (o *OrderMod) CreateCleanOrder(ChessList []int) bool {

View File

@ -311,9 +311,10 @@ func getOrderStar(ChessList []int) int {
func getChessFromPoolByDiff(o *OrderMod, Diff int, Emit []int, EnergyMul int) int {
EmitId := getEmitId(o, Emit)
ColorRand := mergeDataCfg.GetEmitOrderProduce(EmitId)
EmitChessId := getEmitBySeries(Emit, EmitId)
ColorRand := mergeDataCfg.GetEmitProduceType(EmitChessId)
Color := GoUtil.RandStringSlice(ColorRand)
EmitChessId := getEmitByColor(Emit, Color)
// 从棋子池中获取棋子
MinChessId := 0
for i, chess := range o.ChessPool {
@ -340,7 +341,7 @@ func getChessFromPoolByDiff(o *OrderMod, Diff int, Emit []int, EnergyMul int) in
MinChessColor := mergeDataCfg.GetColorById(MinChessId)
MinChessLv := mergeDataCfg.GetLvById(MinChessId)
NewEmitChessId := getEmitByColor(Emit, MinChessColor)
NewChessLv := mergeDataCfg.DynamicLev(NewLev, NewEmitChessId, MinChessColor)
NewChessLv := mergeDataCfg.DynamicLev(NewLev1, NewEmitChessId, MinChessColor)
o.ChessPool = GoUtil.DeleteEleByValue(o.ChessPool, MinChessId)
for i := NewChessLv; i < MinChessLv; i++ {
ChessId2 := mergeDataCfg.GetChessIdByLvAndColor(i, MinChessColor)
@ -351,7 +352,7 @@ func getChessFromPoolByDiff(o *OrderMod, Diff int, Emit []int, EnergyMul int) in
return mergeDataCfg.GetChessIdByLvAndColor(NewLev1, MinChessColor)
}
ChessId := mergeDataCfg.GetChessIdByLvAndColor(NewLev1, Color)
ProductColor := mergeDataCfg.GetEmitProduceChessType(EmitChessId)
ProductColor := mergeDataCfg.GetEmitProduceType(EmitChessId)
for _, i := range ProductColor {
if i == Color {
continue
@ -373,6 +374,10 @@ func getChessFromPoolByDiff(o *OrderMod, Diff int, Emit []int, EnergyMul int) in
func initReflectChess(Emits []int, EnergyMul int) {
Start, End := 0, 0
for _, Emit := range Emits {
ProduceColor := mergeDataCfg.GetEmitProduceType(Emit)
if len(ProduceColor) == 0 || ProduceColor[0] == "" {
continue
}
ChessMinLv, ChessMaxLv := getChesslvRange(Emit, EnergyMul)
Product := mergeDataCfg.GetEmitProduceChessType(Emit)
Start = ChessMinLv
@ -407,3 +412,16 @@ func initReflectChess2(Color string, Start, End, Diff, adjust int) {
func adjustLev(Lev, EnergyMul int) int {
return max(min(Lev, EnergyMul+12), EnergyMul+1)
}
func getEmitBySeries(EmitList []int, EmitId string) int {
for _, v := range EmitList {
ProduceColor := mergeDataCfg.GetEmitProduceType(v)
if len(ProduceColor) == 0 || ProduceColor[0] == "" {
continue
}
if mergeDataCfg.GetEmitId(v) == EmitId {
return v
}
}
return 0
}