无尽礼包优化
This commit is contained in:
parent
d80d7adce5
commit
4512648ae7
@ -67,14 +67,14 @@ func GetPerDiamond(Id int) float64 {
|
|||||||
return 0
|
return 0
|
||||||
}
|
}
|
||||||
|
|
||||||
func GetItemId(Diamond float64, Type int) []int {
|
func GetItemId(Diamond 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 Diamond >= gamedata.GetFloatValue(v, "Diamond") && Type != gamedata.GetIntValue(v, "Type") && gamedata.GetIntValue(v, "ItemId") != item.ITEM_ENERGY_ID {
|
if Lv >= gamedata.GetIntValue(v, "Lv") && Diamond >= gamedata.GetFloatValue(v, "Diamond") && 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"))
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -314,7 +314,7 @@ func (p *Player) ZeroUpdate(a []interface{}) {
|
|||||||
p.PushClientRes(p.PlayMod.getChargeMod().BackData())
|
p.PushClientRes(p.PlayMod.getChargeMod().BackData())
|
||||||
|
|
||||||
// 无尽礼包
|
// 无尽礼包
|
||||||
p.PlayMod.getEndlessMod().ZeroUpdate(p.PlayMod.getChargeMod().GetMaxCharge())
|
p.PlayMod.getEndlessMod().ZeroUpdate(p.PlayMod.getChargeMod().GetMaxCharge(), p.PlayMod.getBaseMod().GetLevel())
|
||||||
p.PushClientRes(p.PlayMod.getEndlessMod().BackData())
|
p.PushClientRes(p.PlayMod.getEndlessMod().BackData())
|
||||||
|
|
||||||
// 宠物宝箱
|
// 宠物宝箱
|
||||||
|
|||||||
@ -2553,7 +2553,8 @@ func ReqEndlessReward(player *Player, buf []byte) error {
|
|||||||
req := &msg.ReqEndlessReward{}
|
req := &msg.ReqEndlessReward{}
|
||||||
proto.Unmarshal(buf, req)
|
proto.Unmarshal(buf, req)
|
||||||
EndlessMod := player.PlayMod.getEndlessMod()
|
EndlessMod := player.PlayMod.getEndlessMod()
|
||||||
itemList, err := EndlessMod.GetReward()
|
BaseMod := player.PlayMod.getBaseMod()
|
||||||
|
itemList, err := EndlessMod.GetReward(BaseMod.GetLevel())
|
||||||
if err != nil {
|
if err != nil {
|
||||||
player.SendErrClienRes(&msg.ResEndlessReward{
|
player.SendErrClienRes(&msg.ResEndlessReward{
|
||||||
Code: msg.RES_CODE_FAIL,
|
Code: msg.RES_CODE_FAIL,
|
||||||
|
|||||||
@ -17,7 +17,8 @@ func UnitEndlessReward(p *Player) error {
|
|||||||
if EndlessMod == nil {
|
if EndlessMod == nil {
|
||||||
return fmt.Errorf("EndlessMod is nil")
|
return fmt.Errorf("EndlessMod is nil")
|
||||||
}
|
}
|
||||||
Item, err := EndlessMod.GetReward()
|
BaseMod := p.PlayMod.getBaseMod()
|
||||||
|
Item, err := EndlessMod.GetReward(BaseMod.GetLevel())
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|||||||
@ -33,7 +33,7 @@ func (e *EndlessMod) InitData() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// 零点更新 重置礼包
|
// 零点更新 重置礼包
|
||||||
func (e *EndlessMod) ZeroUpdate(MaxMoney float64) {
|
func (e *EndlessMod) ZeroUpdate(MaxMoney float64, Lv int) {
|
||||||
e.List = make(map[int]*Endless)
|
e.List = make(map[int]*Endless)
|
||||||
e.Auto = 1
|
e.Auto = 1
|
||||||
FirstMoney := 0.0
|
FirstMoney := 0.0
|
||||||
@ -53,18 +53,18 @@ func (e *EndlessMod) ZeroUpdate(MaxMoney float64) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
var r map[int]*Endless
|
var r map[int]*Endless
|
||||||
r, e.Auto = initGrade(FirstMoney, e.Auto)
|
r, e.Auto = initGrade(FirstMoney, e.Auto, Lv)
|
||||||
for k, v := range r {
|
for k, v := range r {
|
||||||
e.List[k] = v
|
e.List[k] = v
|
||||||
}
|
}
|
||||||
NextMoney := endlessCfg.NextMoney(FirstMoney)
|
NextMoney := endlessCfg.NextMoney(FirstMoney)
|
||||||
r, e.Auto = initGrade(NextMoney, e.Auto)
|
r, e.Auto = initGrade(NextMoney, e.Auto, Lv)
|
||||||
for k, v := range r {
|
for k, v := range r {
|
||||||
e.List[k] = v
|
e.List[k] = v
|
||||||
}
|
}
|
||||||
|
|
||||||
NextMoney = endlessCfg.NextMoney(NextMoney)
|
NextMoney = endlessCfg.NextMoney(NextMoney)
|
||||||
r, e.Auto = initGrade(NextMoney, e.Auto)
|
r, e.Auto = initGrade(NextMoney, e.Auto, Lv)
|
||||||
for k, v := range r {
|
for k, v := range r {
|
||||||
e.List[k] = v
|
e.List[k] = v
|
||||||
}
|
}
|
||||||
@ -73,7 +73,7 @@ func (e *EndlessMod) ZeroUpdate(MaxMoney float64) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// 领取免费礼包
|
// 领取免费礼包
|
||||||
func (e *EndlessMod) GetReward() ([]*item.Item, error) {
|
func (e *EndlessMod) GetReward(Lv int) ([]*item.Item, error) {
|
||||||
v, ok := e.List[e.Id]
|
v, ok := e.List[e.Id]
|
||||||
if !ok {
|
if !ok {
|
||||||
return nil, fmt.Errorf("EndlessMod Reward Id:%d not found", e.Id)
|
return nil, fmt.Errorf("EndlessMod Reward Id:%d not found", e.Id)
|
||||||
@ -87,7 +87,7 @@ func (e *EndlessMod) GetReward() ([]*item.Item, error) {
|
|||||||
if v1.Type == ENDLESS_TYPE_CHARGE { //领完一阶段 随机新的一阶段
|
if v1.Type == ENDLESS_TYPE_CHARGE { //领完一阶段 随机新的一阶段
|
||||||
var r map[int]*Endless
|
var r map[int]*Endless
|
||||||
NextMoney := endlessCfg.NextMoney(e.LastMoney)
|
NextMoney := endlessCfg.NextMoney(e.LastMoney)
|
||||||
r, e.Auto = initGrade(NextMoney, e.Auto)
|
r, e.Auto = initGrade(NextMoney, e.Auto, Lv)
|
||||||
for k, v := range r {
|
for k, v := range r {
|
||||||
e.List[k] = v
|
e.List[k] = v
|
||||||
}
|
}
|
||||||
|
|||||||
@ -7,7 +7,7 @@ import (
|
|||||||
)
|
)
|
||||||
|
|
||||||
// 初始化奖励
|
// 初始化奖励
|
||||||
func InitReward(Diamond float64, Order int) []*item.Item {
|
func InitReward(Diamond 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)
|
PerDiamond := endlessCfg.GetPerDiamond(item.ITEM_ENERGY_ID)
|
||||||
@ -17,7 +17,7 @@ func InitReward(Diamond float64, Order int) []*item.Item {
|
|||||||
}
|
}
|
||||||
|
|
||||||
if Num == 2 {
|
if Num == 2 {
|
||||||
ItemId := endlessCfg.GetItemId(Diamond, 0)
|
ItemId := endlessCfg.GetItemId(Diamond, 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(Diamond/PerDiamond))}
|
||||||
}
|
}
|
||||||
@ -28,7 +28,7 @@ func InitReward(Diamond float64, Order int) []*item.Item {
|
|||||||
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)
|
ItemId := endlessCfg.GetItemId(Diamond, 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(Diamond/PerDiamond))}
|
||||||
}
|
}
|
||||||
@ -36,7 +36,7 @@ func InitReward(Diamond float64, Order int) []*item.Item {
|
|||||||
Type := endlessCfg.GetType(RandItem1)
|
Type := endlessCfg.GetType(RandItem1)
|
||||||
ItemDiamond := endlessCfg.GeDiamondByItemId(RandItem1)
|
ItemDiamond := endlessCfg.GeDiamondByItemId(RandItem1)
|
||||||
LastDiamond := Diamond - ItemDiamond
|
LastDiamond := Diamond - ItemDiamond
|
||||||
ItemId = endlessCfg.GetItemId(LastDiamond, Type)
|
ItemId = endlessCfg.GetItemId(LastDiamond, Type, Lv)
|
||||||
if len(ItemId) == 0 {
|
if len(ItemId) == 0 {
|
||||||
ItemNum := int(LastDiamond / PerDiamond)
|
ItemNum := int(LastDiamond / PerDiamond)
|
||||||
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)}
|
||||||
@ -52,7 +52,7 @@ func InitReward(Diamond float64, Order int) []*item.Item {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// 初始化档次奖励
|
// 初始化档次奖励
|
||||||
func initGrade(Money float64, Auto int) (map[int]*Endless, int) {
|
func initGrade(Money float64, Auto, Lv int) (map[int]*Endless, int) {
|
||||||
Diamond := endlessCfg.GetDiamond(Money)
|
Diamond := endlessCfg.GetDiamond(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)
|
||||||
@ -71,7 +71,7 @@ func initGrade(Money float64, Auto 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),
|
Items: InitReward(Diamond*Per[i-1], i, Lv),
|
||||||
}
|
}
|
||||||
Auto++
|
Auto++
|
||||||
}
|
}
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user