订单价格修改

This commit is contained in:
hahwu 2025-09-22 10:56:35 +08:00
parent e11c24cc34
commit dddf7d3953
6 changed files with 75 additions and 18 deletions

View File

@ -377,7 +377,29 @@ func GetHighSourceChestItem() []*item.Item {
r = append(r, item.NewItem(item.ITEM_ENERGY_ID, B4))
return r
}
func DynamicLevRev(Lv int, EmitId int, Color string) int {
data, err := gamedata.GetDataByIntKey(CFG_NAME, EmitId)
if err != nil {
log.Debug("DynamicLev GetOne EmitId:%v not found", EmitId)
return Lv
}
DynamicLv := gamedata.GetStringValue(data, "Dynamic")
if DynamicLv == "" {
return Lv
}
Arr := strings.Split(DynamicLv, ",")
for _, v := range Arr {
Arr2 := strings.Split(v, "=")
if len(Arr2) != 2 {
continue
}
if Color == Arr2[0] {
NewLv, _ := strconv.Atoi(Arr2[1])
return Lv + NewLv
}
}
return Lv
}
func DynamicLev(Lv int, EmitId int, Color string) int {
data, err := gamedata.GetDataByIntKey(CFG_NAME, EmitId)
if err != nil {

View File

@ -13,6 +13,7 @@ const (
CFG_START_ORDER = "StartOrder"
CFG_CONST = "OrderConst"
CFG_ORDER_SCENE = "OrderScene"
CFG_ORDER_K = "OrderK"
)
func init() {
@ -22,6 +23,17 @@ func init() {
gamedata.InitCfg(CFG_START_ORDER)
gamedata.InitCfg(CFG_CONST)
gamedata.InitCfg(CFG_ORDER_SCENE)
gamedata.InitCfg(CFG_ORDER_K)
}
func GetOrderK(Lv int) int {
data, err := gamedata.GetDataByIntKey(CFG_ORDER_K, Lv)
if err != nil {
return 0
}
Energy := gamedata.GetIntValue(data, "Energy")
K := gamedata.GetFloatValue(data, "K")
return int(float64((Energy/10)*10) * K)
}
func GetOrderFactor(Scene int) int {

View File

@ -103,7 +103,10 @@ func handle(p *Player, m *msg.Msg) error {
p.PushClientRes(CardMod.NotifyCard())
p.PushClientRes(CardMod.NotifyTimes())
case msg.HANDLE_TYPE_EX_CARD_TIMEOUT: // B收到A同意置换卡牌超时
CardInfo := m.Extra.(card.CardInfo)
CardInfo, ok := m.Extra.(card.CardInfo)
if !ok {
return nil
}
CardMod := p.PlayMod.getCardMod()
p.AddCard(CardInfo.ExId)
p.PushClientRes(CardMod.NotifyCard())
@ -267,7 +270,13 @@ func handle(p *Player, m *msg.Msg) error {
p.AddLog(m.From, friend.LOG_TYPE_TREASURE_HELP, "", m.SendT)
p.HandleItem(Items, proto.ITEM_POP_LABEL_Friendtreasure.String())
case msg.HANDLE_TYPE_HANDBOOK_COLLECTION: // 图鉴收集奖励
data := m.Extra.(msg.HandbookMsg)
if m.Extra != nil {
return nil
}
data, ok := m.Extra.(msg.HandbookMsg)
if !ok {
return nil
}
p.AddLog(m.From, friend.LOG_TYPE_HANDBOOK, data.Type, m.SendT)
case msg.HANDLE_TYPE_HANDBOOK_UPVOTE: // 图鉴点赞
FriendMod := p.PlayMod.getFriendMod()
@ -1050,6 +1059,7 @@ func (player *Player) TriggerOrder(lv int, Type string, Emit []int, EnergyMul in
func (player *Player) AddOrder() {
BaseMod := player.PlayMod.getBaseMod()
OrderMod := player.PlayMod.getOrderMod()
ChessMod := player.PlayMod.getChessMod()
MaxOrderNum := orderCfg.GetOrderNum(BaseMod.GetLevel())
n := 0
if OrderMod.LastOrder.Type == order.Preheat_type {
@ -1061,7 +1071,7 @@ func (player *Player) AddOrder() {
OrderMod.PreheatStep[ChessColor]++
Items, ok := order.PreheatItems[OrderMod.PreheatStep[ChessColor]]
if !ok {
Items = []*item.Item{item.NewItem(item.ITEM_STAR_ID, order.GetOrderStar([]int{NewChessId}))}
Items = []*item.Item{item.NewItem(item.ITEM_STAR_ID, order.GetOrderStar([]int{NewChessId}, ChessMod.GetOrderEmit()))}
}
OrderMod.AddPreheatOrder([]int{NewChessId}, order.DIFF_LOW, order.Preheat_type, Items)
}
@ -1074,6 +1084,17 @@ func (player *Player) AddOrder() {
for i := n; i < MaxOrderNum; i++ {
player.CreateNormalOrder()
}
for k, v := range OrderMod.OrderList {
if v.Type == order.Super_type {
continue
}
if len(v.Items) > 0 {
continue
}
Star := order.GetOrderStar(v.MergeId, ChessMod.GetOrderEmit())
v.Items = []*item.Item{item.NewItem(item.ITEM_STAR_ID, Star)}
OrderMod.OrderList[k] = v
}
}
func (player *Player) CreateNormalOrder() {
Exp, PExp := userCfg.GetLevUpExp(player.GetPlayerBaseMod().GetLevel())
@ -1111,7 +1132,7 @@ func (player *Player) CreateNormalOrder() {
continue
}
Items := make([]*item.Item, 0)
Star := order.GetOrderStar(v.MergeId)
Star := order.GetOrderStar(v.MergeId, ChessMod.GetOrderEmit())
Star = int(float64(Star)*float64(OrderFactor)/1000) * 10
Items = player.GetPetOrderReward(Star, Items)
if len(Items) == 1 && Items[0].Id == item.ITEM_STAR_ID {
@ -1194,7 +1215,7 @@ func (player *Player) CreateNormalOrder() {
continue
}
Items := make([]*item.Item, 0)
Star := order.GetOrderStar(v.MergeId)
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

View File

@ -289,9 +289,9 @@ func UnitPlayroomOrder(p *Player) error {
}
func UnitPetOrder(p *Player) error {
VarMod := p.PlayMod.getVarMod()
VarMod.DailyResetTime = 0
p.ZeroUpdate(nil)
ChessMod := p.PlayMod.getChessMod()
a := order.GetOrderStar([]int{246, 15}, ChessMod.GetOrderEmit())
fmt.Print(a)
return nil
}

View File

@ -478,17 +478,12 @@ func (o *OrderMod) CreateSuperOrder(lv int, Emit []int, EnergyMul int) error {
}
func (o *OrderMod) addOrder(ChessList []int, Diff int, Type int) int {
o.Auto_id++
Star := GetOrderStar(ChessList)
Items := make([]*item.Item, 0)
if Type != Super_type {
Items = []*item.Item{item.NewItem(item.ITEM_STAR_ID, Star)}
}
Order := Order{
MergeId: ChessList,
Diff: Diff,
Type: Type,
Timestamp: time.Now().Unix(),
Items: Items,
Items: nil,
}
o.OrderList[o.Auto_id] = Order
if Type == Common_type {
@ -651,7 +646,7 @@ func (o *OrderMod) ChangeEnergyMul(lv int, Emit []int, EnergyMul int, ChessList
delete(o.OrderList, k)
Items, ok := PreheatItems[PreheatStep]
if !ok {
Items = []*item.Item{item.NewItem(item.ITEM_STAR_ID, GetOrderStar(ChessList))}
Items = []*item.Item{item.NewItem(item.ITEM_STAR_ID, GetOrderStar(ChessList, Emit))}
}
o.addPreheatOrder([]int{NewChessId}, DIFF_LOW, Preheat_type, Items)
}

View File

@ -657,10 +657,17 @@ func getEmitSeries(o *OrderMod, Emit []int) string {
}
// 订单能获取的宠物币
func GetOrderStar(ChessList []int) int {
func GetOrderStar(ChessList []int, EmitList []int) int {
Star := 0
for _, v := range ChessList {
Star += mergeDataCfg.GetStarById(v)
ChessLv := mergeDataCfg.GetLvById(v)
Color := mergeDataCfg.GetColorById(v)
EmitId := GetEmitByColor(EmitList, Color)
if EmitId == 0 {
continue
}
NewChessLv := mergeDataCfg.DynamicLevRev(ChessLv, EmitId, Color)
Star += orderCfg.GetOrderK(NewChessLv)
}
return Star
}