修改棋子商店钻石公式
This commit is contained in:
parent
795cd6ee96
commit
2a3a7ffa81
@ -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
|
||||
}
|
||||
|
||||
@ -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,
|
||||
|
||||
@ -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)
|
||||
|
||||
Loading…
Reference in New Issue
Block a user