修改棋子商店钻石公式

This commit is contained in:
hahwu 2025-01-20 11:13:01 +08:00
parent 795cd6ee96
commit 2a3a7ffa81
3 changed files with 45 additions and 3 deletions

View File

@ -436,3 +436,42 @@ func GetAdjust(EmitId int, Color string) int {
}
return 0
}
func GetSellDiamondMul(EmitId int, Color string) int {
data, err := gamedata.GetDataByIntKey(CFG_NAME, EmitId)
if err != nil {
log.Debug("GetSellDiamondMul GetOne EmitId:%v not found", EmitId)
return 0
}
ProductEmit := gamedata.GetStringValue(data, "Emit_Product")
if ProductEmit == "" {
return 1
}
Arr := strings.Split(ProductEmit, ",")
if Color == Arr[0] {
return 1
}
if !GoUtil.InStringArray(Color, Arr) {
return 1
}
Emit_List := gamedata.GetStringValue(data, "Emit_List")
MainProb := getColorProb(Emit_List, Arr[0])
SubProb := getColorProb(Emit_List, Color)
return int(MainProb / SubProb)
}
func getColorProb(Emit_List string, Color string) float64 {
Arr := strings.Split(Emit_List, ",")
Prob := 0.0
for _, v := range Arr {
Arr2 := strings.Split(v, "=")
A1 := GoUtil.Int(Arr2[0])
A2, _ := strconv.ParseFloat(Arr2[1], 64)
A1Color := GetColorById(A1)
if A1Color != Color {
continue
}
Prob += A2 * float64(A1%10)
}
return Prob
}

View File

@ -6,6 +6,7 @@ import (
chargeCfg "server/conf/charge"
mergeDataCfg "server/conf/mergeData"
"server/game/mod/item"
"server/game/mod/order"
"server/msg"
"server/pkg/github.com/name5566/leaf/log"
)
@ -268,7 +269,9 @@ func (c *ChargeMod) InitChessShop(Emit []int) {
break
}
} else {
Diamond := GetChessDiamond(i, v)
EmitId := order.GetEmitByColor(Emit, k)
Mul := mergeDataCfg.GetSellDiamondMul(EmitId, k)
Diamond := GetChessDiamond(i, v) * Mul
RandList = append(RandList, Rand{
ChessId: ChessId,
Diamond: Diamond,

View File

@ -195,7 +195,7 @@ func getChesslvRange(Emit int, EnergyMul int) (int, int) {
}
// 根据类型获取发射器id
func getEmitByColor(Emit []int, color string) int {
func GetEmitByColor(Emit []int, color string) int {
for _, v := range Emit {
Produce := mergeDataCfg.GetEmitProduceChessType(v)
for _, c := range Produce {
@ -328,7 +328,7 @@ func getChessFromPoolByDiff(o *OrderMod, Diff int, Emit []int, EnergyMul int) in
*/
if MinChessId != 0 {
MinChessColor := mergeDataCfg.GetColorById(MinChessId)
NewEmitChessId := getEmitByColor(Emit, MinChessColor)
NewEmitChessId := GetEmitByColor(Emit, MinChessColor)
ColorRand := mergeDataCfg.GetEmitProduceType(NewEmitChessId)
ChessMinLv, ChessMaxLv := getChesslvRange(NewEmitChessId, EnergyMul)
NewLev := getChessLv(ChessMinLv, ChessMaxLv, Diff)