无尽礼包优化
This commit is contained in:
parent
d9aedbdf55
commit
f14c0ba5d2
@ -15,14 +15,14 @@ func init() {
|
|||||||
gamedata.InitCfg(CFG_ENDLESS_JACKPOT)
|
gamedata.InitCfg(CFG_ENDLESS_JACKPOT)
|
||||||
}
|
}
|
||||||
|
|
||||||
func GetDiamond(Money float64) float64 {
|
func GetEnergy(Money float64) float64 {
|
||||||
data, err := gamedata.GetData(CFG_ENDLESS)
|
data, err := gamedata.GetData(CFG_ENDLESS)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return 0
|
return 0
|
||||||
}
|
}
|
||||||
for _, v := range data {
|
for _, v := range data {
|
||||||
if Money == gamedata.GetFloatValue(v, "Money") {
|
if Money == gamedata.GetFloatValue(v, "Money") {
|
||||||
return gamedata.GetFloatValue(v, "Diamond")
|
return gamedata.GetFloatValue(v, "Energy")
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return 0
|
return 0
|
||||||
@ -54,27 +54,27 @@ func GetChargeId(Money float64) int {
|
|||||||
return 0
|
return 0
|
||||||
}
|
}
|
||||||
|
|
||||||
func GetPerDiamond(Id int) float64 {
|
func GetPerEnergy(Id int) float64 {
|
||||||
data, err := gamedata.GetData(CFG_ENDLESS_JACKPOT)
|
data, err := gamedata.GetData(CFG_ENDLESS_JACKPOT)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return 0
|
return 0
|
||||||
}
|
}
|
||||||
for _, v := range data {
|
for _, v := range data {
|
||||||
if Id == gamedata.GetIntValue(v, "ItemId") {
|
if Id == gamedata.GetIntValue(v, "ItemId") {
|
||||||
return gamedata.GetFloatValue(v, "Diamond")
|
return gamedata.GetFloatValue(v, "Energy")
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return 0
|
return 0
|
||||||
}
|
}
|
||||||
|
|
||||||
func GetItemId(Diamond float64, Type, Lv int) []int {
|
func GetItemId(Energy float64, Type, Lv int) []int {
|
||||||
data, err := gamedata.GetData(CFG_ENDLESS_JACKPOT)
|
data, err := gamedata.GetData(CFG_ENDLESS_JACKPOT)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
var ItemId []int
|
var ItemId []int
|
||||||
for _, v := range data {
|
for _, v := range data {
|
||||||
if Lv >= gamedata.GetIntValue(v, "Lv") && Diamond >= gamedata.GetFloatValue(v, "Diamond") && Type != gamedata.GetIntValue(v, "Type") && gamedata.GetIntValue(v, "ItemId") != item.ITEM_ENERGY_ID {
|
if Lv >= gamedata.GetIntValue(v, "Lv") && Energy >= gamedata.GetFloatValue(v, "Energy") && Type != gamedata.GetIntValue(v, "Type") && gamedata.GetIntValue(v, "ItemId") != item.ITEM_ENERGY_ID {
|
||||||
ItemId = append(ItemId, gamedata.GetIntValue(v, "ItemId"))
|
ItemId = append(ItemId, gamedata.GetIntValue(v, "ItemId"))
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -94,14 +94,14 @@ func GetType(ItemId int) int {
|
|||||||
return 0
|
return 0
|
||||||
}
|
}
|
||||||
|
|
||||||
func GeDiamondByItemId(ItemId int) float64 {
|
func GetEnergyByItemId(ItemId int) float64 {
|
||||||
data, err := gamedata.GetData(CFG_ENDLESS_JACKPOT)
|
data, err := gamedata.GetData(CFG_ENDLESS_JACKPOT)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return 0
|
return 0
|
||||||
}
|
}
|
||||||
for _, v := range data {
|
for _, v := range data {
|
||||||
if ItemId == gamedata.GetIntValue(v, "ItemId") {
|
if ItemId == gamedata.GetIntValue(v, "ItemId") {
|
||||||
return gamedata.GetFloatValue(v, "Diamond")
|
return gamedata.GetFloatValue(v, "Energy")
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return 0
|
return 0
|
||||||
|
|||||||
@ -1,52 +1,53 @@
|
|||||||
package endless
|
package endless
|
||||||
|
|
||||||
import (
|
import (
|
||||||
|
"math"
|
||||||
endlessCfg "server/conf/endless"
|
endlessCfg "server/conf/endless"
|
||||||
"server/game/mod/item"
|
"server/game/mod/item"
|
||||||
Util "server/game_util"
|
Util "server/game_util"
|
||||||
)
|
)
|
||||||
|
|
||||||
// 初始化奖励
|
// 初始化奖励
|
||||||
func InitReward(Diamond float64, Order, Lv int) []*item.Item {
|
func InitReward(Energy float64, Order, Lv int) []*item.Item {
|
||||||
numRand := map[int]int{1: 30, 2: 60, 3: 10}
|
numRand := map[int]int{1: 30, 2: 60, 3: 10}
|
||||||
Num := Util.RandMap(numRand)
|
Num := Util.RandMap(numRand)
|
||||||
PerDiamond := endlessCfg.GetPerDiamond(item.ITEM_ENERGY_ID)
|
PerEnergy := endlessCfg.GetPerEnergy(item.ITEM_ENERGY_ID)
|
||||||
|
|
||||||
if Num == 1 {
|
if Num == 1 {
|
||||||
return []*item.Item{item.NewItem(item.ITEM_ENERGY_ID, int(float64(Diamond)/PerDiamond))}
|
return []*item.Item{item.NewItem(item.ITEM_ENERGY_ID, int(float64(Energy)/PerEnergy))}
|
||||||
}
|
}
|
||||||
|
|
||||||
if Num == 2 {
|
if Num == 2 {
|
||||||
ItemId := endlessCfg.GetItemId(Diamond, 0, Lv)
|
ItemId := endlessCfg.GetItemId(Energy, 0, Lv)
|
||||||
if len(ItemId) == 0 {
|
if len(ItemId) == 0 {
|
||||||
return []*item.Item{item.NewItem(item.ITEM_ENERGY_ID, int(Diamond/PerDiamond))}
|
return []*item.Item{item.NewItem(item.ITEM_ENERGY_ID, int(Energy/PerEnergy))}
|
||||||
}
|
}
|
||||||
RandItem := Util.RandSlice(ItemId)
|
RandItem := Util.RandSlice(ItemId)
|
||||||
ItemDiamond := endlessCfg.GeDiamondByItemId(RandItem)
|
ItemEnergy := endlessCfg.GetEnergyByItemId(RandItem)
|
||||||
LastDiamond := Diamond - ItemDiamond
|
LastEnergy := Energy - ItemEnergy
|
||||||
ItemNum := int(LastDiamond / PerDiamond)
|
ItemNum := int(LastEnergy / PerEnergy)
|
||||||
ItemNum = ItemNum / 5 * 5 // 道具数量为5的倍数
|
ItemNum = int(math.Round(float64(ItemNum)/5.0) * 5) // 道具数量为5的倍数
|
||||||
return []*item.Item{item.NewItem(item.ITEM_ENERGY_ID, ItemNum), item.NewItem(RandItem, 1)}
|
return []*item.Item{item.NewItem(item.ITEM_ENERGY_ID, ItemNum), item.NewItem(RandItem, 1)}
|
||||||
}
|
}
|
||||||
if Num == 3 {
|
if Num == 3 {
|
||||||
ItemId := endlessCfg.GetItemId(Diamond, 0, Lv)
|
ItemId := endlessCfg.GetItemId(Energy, 0, Lv)
|
||||||
if len(ItemId) == 0 {
|
if len(ItemId) == 0 {
|
||||||
return []*item.Item{item.NewItem(item.ITEM_ENERGY_ID, int(Diamond/PerDiamond))}
|
return []*item.Item{item.NewItem(item.ITEM_ENERGY_ID, int(Energy/PerEnergy))}
|
||||||
}
|
}
|
||||||
RandItem1 := Util.RandSlice(ItemId)
|
RandItem1 := Util.RandSlice(ItemId)
|
||||||
Type := endlessCfg.GetType(RandItem1)
|
Type := endlessCfg.GetType(RandItem1)
|
||||||
ItemDiamond := endlessCfg.GeDiamondByItemId(RandItem1)
|
ItemEnergy := endlessCfg.GetEnergyByItemId(RandItem1)
|
||||||
LastDiamond := Diamond - ItemDiamond
|
LastEnergy := Energy - ItemEnergy
|
||||||
ItemId = endlessCfg.GetItemId(LastDiamond, Type, Lv)
|
ItemId = endlessCfg.GetItemId(LastEnergy, Type, Lv)
|
||||||
if len(ItemId) == 0 {
|
if len(ItemId) == 0 {
|
||||||
ItemNum := int(LastDiamond / PerDiamond)
|
ItemNum := int(LastEnergy / PerEnergy)
|
||||||
return []*item.Item{item.NewItem(item.ITEM_ENERGY_ID, ItemNum), item.NewItem(RandItem1, 1)}
|
return []*item.Item{item.NewItem(item.ITEM_ENERGY_ID, ItemNum), item.NewItem(RandItem1, 1)}
|
||||||
}
|
}
|
||||||
RandItem2 := Util.RandSlice(ItemId)
|
RandItem2 := Util.RandSlice(ItemId)
|
||||||
ItemDiamond = endlessCfg.GeDiamondByItemId(RandItem2)
|
ItemEnergy = endlessCfg.GetEnergyByItemId(RandItem2)
|
||||||
LastDiamond = LastDiamond - ItemDiamond
|
LastEnergy = LastEnergy - ItemEnergy
|
||||||
ItemNum := int(LastDiamond / PerDiamond)
|
ItemNum := int(LastEnergy / PerEnergy)
|
||||||
ItemNum = ItemNum / 5 * 5 // 道具数量为5的倍数
|
ItemNum = int(math.Round(float64(ItemNum)/5.0) * 5) // 道具数量为5的倍数
|
||||||
return []*item.Item{item.NewItem(item.ITEM_ENERGY_ID, ItemNum), item.NewItem(RandItem1, 1), item.NewItem(RandItem2, 1)}
|
return []*item.Item{item.NewItem(item.ITEM_ENERGY_ID, ItemNum), item.NewItem(RandItem1, 1), item.NewItem(RandItem2, 1)}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -55,7 +56,7 @@ func InitReward(Diamond float64, Order, Lv int) []*item.Item {
|
|||||||
|
|
||||||
// 初始化档次奖励
|
// 初始化档次奖励
|
||||||
func initGrade(Money float64, Auto, Lv int) (map[int]*Endless, int) {
|
func initGrade(Money float64, Auto, Lv int) (map[int]*Endless, int) {
|
||||||
Diamond := endlessCfg.GetDiamond(Money)
|
Energy := endlessCfg.GetEnergy(Money)
|
||||||
Per := []float64{0.5, 0.3, 0.2, 0.1}
|
Per := []float64{0.5, 0.3, 0.2, 0.1}
|
||||||
result := make(map[int]*Endless)
|
result := make(map[int]*Endless)
|
||||||
for i := 1; i < 5; i++ {
|
for i := 1; i < 5; i++ {
|
||||||
@ -73,7 +74,7 @@ func initGrade(Money float64, Auto, Lv int) (map[int]*Endless, int) {
|
|||||||
result[Auto] = &Endless{
|
result[Auto] = &Endless{
|
||||||
ChargeId: Charge,
|
ChargeId: Charge,
|
||||||
Type: Type,
|
Type: Type,
|
||||||
Items: InitReward(Diamond*Per[i-1], i, Lv),
|
Items: InitReward(Energy*Per[i-1], i, Lv),
|
||||||
}
|
}
|
||||||
Auto++
|
Auto++
|
||||||
}
|
}
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user