七日签到数值优化
This commit is contained in:
parent
7b18ddbbdd
commit
fdbeb25af2
@ -46,81 +46,94 @@ func randWeekReward(Add, Type int) map[int]Reward {
|
|||||||
return result
|
return result
|
||||||
}
|
}
|
||||||
|
|
||||||
func randReward(RewardData *gamedata.SevenLoginRewardData, LastType []int, jackpot []*gamedata.SevenLoginJackpotData, CardPackIds []int, energyPer, EnergyMul float64) (Reward, []int) {
|
func randReward(rewardData *gamedata.SevenLoginRewardData, lastType []int, jackpot []*gamedata.SevenLoginJackpotData, cardPackIds []int, energyPer, energyMul float64) (Reward, []int) {
|
||||||
// 奖励1 体力 体力等价钻石占总价值的50%,且1钻≈2.5体力;体力值四舍五入,需以0或5结尾
|
// 奖励1 体力 体力等价钻石占总价值的50%,且1钻≈2.5体力;体力值四舍五入,需以0或5结尾
|
||||||
Num := math.Round(float64(RewardData.Energy) * energyPer)
|
num := math.Round(float64(rewardData.Energy) * energyPer)
|
||||||
energyNum := float64(int(Num/5)) * 5
|
energyNum := float64(int(num/5)) * 5
|
||||||
RemainEnergy := RewardData.Energy - energyNum
|
remainEnergy := rewardData.Energy - energyNum
|
||||||
// 召回玩家 每日体力数*2
|
// 召回玩家 每日体力数*2
|
||||||
energyNum = energyNum * EnergyMul
|
energyNum = energyNum * energyMul
|
||||||
Item1 := []*item.Item{item.NewItem(item.ITEM_ENERGY_ID, int(energyNum))}
|
items1 := []*item.Item{item.NewItem(item.ITEM_ENERGY_ID, int(energyNum))}
|
||||||
// 奖励2
|
// 奖励2
|
||||||
NewJackpot := make([]*gamedata.SevenLoginJackpotData, 0, len(jackpot))
|
newJackpot := make([]*gamedata.SevenLoginJackpotData, 0, len(jackpot))
|
||||||
for _, v := range jackpot {
|
for _, v := range jackpot {
|
||||||
if v.Energy <= RemainEnergy && !GoUtil.InArray(v.Type, LastType) && v.Type != JACKPOT_CARD_TYPE {
|
if v.Energy <= remainEnergy && !GoUtil.InArray(v.Type, lastType) && v.Type != JACKPOT_CARD_TYPE {
|
||||||
NewJackpot = append(NewJackpot, v)
|
newJackpot = append(newJackpot, v)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
var Item2 []*item.Item
|
var items2 []*item.Item
|
||||||
ItemType := []int{}
|
itemType := []int{}
|
||||||
if RewardData.RewardNum == 3 {
|
if rewardData.RewardNum == 3 {
|
||||||
RemainEnergy -= 5
|
remainEnergy -= 5
|
||||||
}
|
}
|
||||||
if GoUtil.InArray(RewardData.Id, CardPackIds) {
|
if GoUtil.InArray(rewardData.Id, cardPackIds) {
|
||||||
CardJackpot := make([]*gamedata.SevenLoginJackpotData, 0, len(jackpot))
|
cardJackpot := make([]*gamedata.SevenLoginJackpotData, 0, len(jackpot))
|
||||||
for _, v := range jackpot {
|
for _, v := range jackpot {
|
||||||
if v.Energy <= RemainEnergy && v.Type == JACKPOT_CARD_TYPE {
|
if v.Energy <= remainEnergy && v.Type == JACKPOT_CARD_TYPE {
|
||||||
CardJackpot = append(CardJackpot, v)
|
cardJackpot = append(cardJackpot, v)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if len(CardJackpot) == 0 {
|
if len(cardJackpot) == 0 {
|
||||||
Item2 = []*item.Item{item.NewItem(item.ITEM_ENERGY_ID, int(RemainEnergy))}
|
items2 = []*item.Item{item.NewItem(item.ITEM_ENERGY_ID, int(remainEnergy))}
|
||||||
} else {
|
} else {
|
||||||
Index := rand.IntN(len(CardJackpot))
|
index := rand.IntN(len(cardJackpot))
|
||||||
ItemType = append(ItemType, CardJackpot[Index].Type)
|
itemType = append(itemType, cardJackpot[index].Type)
|
||||||
Item2 = CardJackpot[Index].Items
|
items2 = cardJackpot[index].Items
|
||||||
RemainEnergy -= CardJackpot[Index].Energy
|
remainEnergy -= cardJackpot[index].Energy
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
if len(NewJackpot) == 0 {
|
if len(newJackpot) == 0 {
|
||||||
return Reward{Item1: Item1}, nil
|
for _, v := range jackpot {
|
||||||
|
if v.Energy <= remainEnergy {
|
||||||
|
newJackpot = append(newJackpot, v)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if len(newJackpot) == 0 {
|
||||||
|
items2 = []*item.Item{item.NewItem(item.ITEM_ENERGY_ID, int(remainEnergy))}
|
||||||
|
return Reward{Item1: items1, Item2: items2}, nil
|
||||||
|
}
|
||||||
|
sort.Slice(newJackpot, func(i, j int) bool {
|
||||||
|
return newJackpot[i].Energy > newJackpot[j].Energy
|
||||||
|
})
|
||||||
|
itemType = append(itemType, newJackpot[0].Type)
|
||||||
|
return Reward{Item1: items1, Item2: newJackpot[0].Items}, itemType
|
||||||
}
|
}
|
||||||
sort.Slice(NewJackpot, func(i, j int) bool {
|
sort.Slice(newJackpot, func(i, j int) bool {
|
||||||
return NewJackpot[i].Energy > NewJackpot[j].Energy
|
return newJackpot[i].Energy > newJackpot[j].Energy
|
||||||
})
|
})
|
||||||
ItemType = append(ItemType, NewJackpot[0].Type)
|
itemType = append(itemType, newJackpot[0].Type)
|
||||||
Item2 = NewJackpot[0].Items
|
items2 = newJackpot[0].Items
|
||||||
RemainEnergy -= NewJackpot[0].Energy
|
remainEnergy -= newJackpot[0].Energy
|
||||||
}
|
}
|
||||||
var Item3 []*item.Item
|
var items3 []*item.Item
|
||||||
if RewardData.RewardNum == 3 {
|
if rewardData.RewardNum == 3 {
|
||||||
RemainEnergy += 5
|
remainEnergy += 5
|
||||||
NewJackpot3 := make([]*gamedata.SevenLoginJackpotData, 0, len(jackpot))
|
newJackpot3 := make([]*gamedata.SevenLoginJackpotData, 0, len(jackpot))
|
||||||
for _, v := range jackpot {
|
for _, v := range jackpot {
|
||||||
if v.Energy <= RemainEnergy && !GoUtil.InArray(v.Type, LastType) && !GoUtil.InArray(v.Type, ItemType) {
|
if v.Energy <= remainEnergy && !GoUtil.InArray(v.Type, lastType) && !GoUtil.InArray(v.Type, itemType) {
|
||||||
NewJackpot3 = append(NewJackpot3, v)
|
newJackpot3 = append(newJackpot3, v)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if len(NewJackpot3) == 0 {
|
if len(newJackpot3) == 0 {
|
||||||
Item3 = []*item.Item{item.NewItem(item.ITEM_ENERGY_ID, int(RemainEnergy))}
|
items3 = []*item.Item{item.NewItem(item.ITEM_ENERGY_ID, int(remainEnergy))}
|
||||||
return Reward{
|
return Reward{
|
||||||
Item1: Item1,
|
Item1: items1,
|
||||||
Item2: Item2,
|
Item2: items2,
|
||||||
Item3: Item3,
|
Item3: items3,
|
||||||
}, ItemType
|
}, itemType
|
||||||
}
|
}
|
||||||
sort.Slice(NewJackpot3, func(i, j int) bool {
|
sort.Slice(newJackpot3, func(i, j int) bool {
|
||||||
return NewJackpot3[i].Energy > NewJackpot3[j].Energy
|
return newJackpot3[i].Energy > newJackpot3[j].Energy
|
||||||
})
|
})
|
||||||
Item3 = NewJackpot3[0].Items
|
items3 = newJackpot3[0].Items
|
||||||
ItemType = append(ItemType, NewJackpot3[0].Type)
|
itemType = append(itemType, newJackpot3[0].Type)
|
||||||
}
|
}
|
||||||
|
|
||||||
return Reward{
|
return Reward{
|
||||||
Item1: Item1,
|
Item1: items1,
|
||||||
Item2: Item2,
|
Item2: items2,
|
||||||
Item3: Item3,
|
Item3: items3,
|
||||||
}, ItemType
|
}, itemType
|
||||||
}
|
}
|
||||||
|
|
||||||
func randMonthReward() map[int]Reward {
|
func randMonthReward() map[int]Reward {
|
||||||
|
|||||||
@ -19,6 +19,7 @@ func TestSevenLoginZeroUpdate(t *testing.T) {
|
|||||||
p1.InitPlayer("3625212")
|
p1.InitPlayer("3625212")
|
||||||
SevenLoginMod := p1.GetSevenLoginMod()
|
SevenLoginMod := p1.GetSevenLoginMod()
|
||||||
SevenLoginMod.WeekResetTime = 0
|
SevenLoginMod.WeekResetTime = 0
|
||||||
|
SevenLoginMod.MonthResetTime = 0
|
||||||
SevenLoginMod.ZeroUpdate(0, 0, p1.GetOrderFactor())
|
SevenLoginMod.ZeroUpdate(0, 0, p1.GetOrderFactor())
|
||||||
SevenLoginMod.BackData()
|
SevenLoginMod.BackData()
|
||||||
fmt.Printf("order factor:%v\n", p1.GetOrderFactor())
|
fmt.Printf("order factor:%v\n", p1.GetOrderFactor())
|
||||||
@ -27,4 +28,5 @@ func TestSevenLoginZeroUpdate(t *testing.T) {
|
|||||||
fmt.Printf("id :%d ; Reward:%v\n", k, v)
|
fmt.Printf("id :%d ; Reward:%v\n", k, v)
|
||||||
}
|
}
|
||||||
t.Logf("SevenLoginMod:%v\n", SevenLoginMod.MonthReward)
|
t.Logf("SevenLoginMod:%v\n", SevenLoginMod.MonthReward)
|
||||||
|
fmt.Printf("SevenLoginMod:%v\n", SevenLoginMod.MonthReward)
|
||||||
}
|
}
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user