diff --git a/src/server/conf/endless/EndlessCfg.go b/src/server/conf/endless/EndlessCfg.go index 93661f65..1ab56785 100644 --- a/src/server/conf/endless/EndlessCfg.go +++ b/src/server/conf/endless/EndlessCfg.go @@ -67,14 +67,14 @@ func GetPerDiamond(Id int) float64 { return 0 } -func GetItemId(Diamond float64, Type int) []int { +func GetItemId(Diamond float64, Type, Lv int) []int { data, err := gamedata.GetData(CFG_ENDLESS_JACKPOT) if err != nil { return nil } var ItemId []int 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")) } } diff --git a/src/server/game/Player.go b/src/server/game/Player.go index 313de61a..e13edcba 100644 --- a/src/server/game/Player.go +++ b/src/server/game/Player.go @@ -314,7 +314,7 @@ func (p *Player) ZeroUpdate(a []interface{}) { 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()) // 宠物宝箱 diff --git a/src/server/game/RegisterNetworkFunc.go b/src/server/game/RegisterNetworkFunc.go index b4f71cb8..92c31541 100644 --- a/src/server/game/RegisterNetworkFunc.go +++ b/src/server/game/RegisterNetworkFunc.go @@ -2553,7 +2553,8 @@ func ReqEndlessReward(player *Player, buf []byte) error { req := &msg.ReqEndlessReward{} proto.Unmarshal(buf, req) EndlessMod := player.PlayMod.getEndlessMod() - itemList, err := EndlessMod.GetReward() + BaseMod := player.PlayMod.getBaseMod() + itemList, err := EndlessMod.GetReward(BaseMod.GetLevel()) if err != nil { player.SendErrClienRes(&msg.ResEndlessReward{ Code: msg.RES_CODE_FAIL, diff --git a/src/server/game/UnitTest.go b/src/server/game/UnitTest.go index 10960afd..2a8ead48 100644 --- a/src/server/game/UnitTest.go +++ b/src/server/game/UnitTest.go @@ -17,7 +17,8 @@ func UnitEndlessReward(p *Player) error { if EndlessMod == nil { return fmt.Errorf("EndlessMod is nil") } - Item, err := EndlessMod.GetReward() + BaseMod := p.PlayMod.getBaseMod() + Item, err := EndlessMod.GetReward(BaseMod.GetLevel()) if err != nil { return err } diff --git a/src/server/game/mod/endless/Endless.go b/src/server/game/mod/endless/Endless.go index dfd1e011..28f59309 100644 --- a/src/server/game/mod/endless/Endless.go +++ b/src/server/game/mod/endless/Endless.go @@ -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.Auto = 1 FirstMoney := 0.0 @@ -53,18 +53,18 @@ func (e *EndlessMod) ZeroUpdate(MaxMoney float64) { } 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 { e.List[k] = v } NextMoney := endlessCfg.NextMoney(FirstMoney) - r, e.Auto = initGrade(NextMoney, e.Auto) + r, e.Auto = initGrade(NextMoney, e.Auto, Lv) for k, v := range r { e.List[k] = v } NextMoney = endlessCfg.NextMoney(NextMoney) - r, e.Auto = initGrade(NextMoney, e.Auto) + r, e.Auto = initGrade(NextMoney, e.Auto, Lv) for k, v := range r { 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] if !ok { 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 { //领完一阶段 随机新的一阶段 var r map[int]*Endless 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 { e.List[k] = v } diff --git a/src/server/game/mod/endless/EndlessFunc.go b/src/server/game/mod/endless/EndlessFunc.go index 7aab2554..550f4ed5 100644 --- a/src/server/game/mod/endless/EndlessFunc.go +++ b/src/server/game/mod/endless/EndlessFunc.go @@ -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} Num := Util.RandMap(numRand) PerDiamond := endlessCfg.GetPerDiamond(item.ITEM_ENERGY_ID) @@ -17,7 +17,7 @@ func InitReward(Diamond float64, Order int) []*item.Item { } if Num == 2 { - ItemId := endlessCfg.GetItemId(Diamond, 0) + ItemId := endlessCfg.GetItemId(Diamond, 0, Lv) if len(ItemId) == 0 { 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)} } if Num == 3 { - ItemId := endlessCfg.GetItemId(Diamond, 0) + ItemId := endlessCfg.GetItemId(Diamond, 0, Lv) if len(ItemId) == 0 { 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) ItemDiamond := endlessCfg.GeDiamondByItemId(RandItem1) LastDiamond := Diamond - ItemDiamond - ItemId = endlessCfg.GetItemId(LastDiamond, Type) + ItemId = endlessCfg.GetItemId(LastDiamond, Type, Lv) if len(ItemId) == 0 { ItemNum := int(LastDiamond / PerDiamond) 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) Per := []float64{0.5, 0.3, 0.2, 0.1} result := make(map[int]*Endless) @@ -71,7 +71,7 @@ func initGrade(Money float64, Auto int) (map[int]*Endless, int) { result[Auto] = &Endless{ ChargeId: Charge, Type: Type, - Items: InitReward(Diamond*Per[i-1], i), + Items: InitReward(Diamond*Per[i-1], i, Lv), } Auto++ }