Merge branch 'online' into audit
This commit is contained in:
commit
ce10502bb7
@ -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"))
|
||||
}
|
||||
}
|
||||
|
||||
@ -34,6 +34,9 @@ import (
|
||||
)
|
||||
|
||||
func ReqGmCommand(player *Player, buf []byte) error {
|
||||
// if conf.Server.GameName != "pet_home" && conf.Server.GameName != "merge_pet_sdk" {
|
||||
// return fmt.Errorf("Player %d ReqGmCommand not support in game %s", player.M_DwUin, conf.Server.GameName)
|
||||
// }
|
||||
detail := &msg.ReqGmCommand{}
|
||||
proto.Unmarshal(buf, detail)
|
||||
return ReqGmCommand_(player, detail.Command)
|
||||
@ -399,6 +402,11 @@ func ReqGmCommand_(player *Player, Command string) error {
|
||||
DecorateMod.AreaId = S
|
||||
DecorateMod.FinishList = make(map[int]struct{})
|
||||
DecorateMod.Progress = 0
|
||||
DecorateMod.PartCost = make(map[int]*decorate.PartCostInfo)
|
||||
DecorateMod.PartClassPool = []int{}
|
||||
DecorateMod.PartPool = make(map[int]int)
|
||||
DecorateMod.InitData()
|
||||
player.PushClientRes(DecorateMod.BackData())
|
||||
case "setDecorateProgress":
|
||||
S, _ := strconv.Atoi(arg[1])
|
||||
DecorateMod := player.PlayMod.getDecorateMod()
|
||||
|
||||
@ -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())
|
||||
|
||||
// 宠物宝箱
|
||||
|
||||
@ -2554,7 +2554,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,
|
||||
@ -3364,9 +3365,9 @@ func ReqPlayroomInfo(player *Player, buf []byte) error {
|
||||
}
|
||||
RandList = GoUtil.UniqueInts(RandList)
|
||||
if len(RandList) == 0 {
|
||||
PlayroomMod.SetGameReward(Star, Star, Star)
|
||||
PlayroomMod.SetGameReward3(Star)
|
||||
} else if len(RandList) == 1 {
|
||||
PlayroomMod.SetGameReward(RandList[0], Star, Star)
|
||||
PlayroomMod.SetGameReward2(RandList[0], Star)
|
||||
} else {
|
||||
ChessList := GoUtil.RandSliceNum(RandList, 2)
|
||||
PlayroomMod.SetGameReward(ChessList[0], ChessList[1], Star)
|
||||
|
||||
@ -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
|
||||
}
|
||||
|
||||
File diff suppressed because one or more lines are too long
@ -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
|
||||
}
|
||||
|
||||
@ -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++
|
||||
}
|
||||
|
||||
@ -27,6 +27,7 @@ type OrderMod struct {
|
||||
OrderPool map[int]*Order // 订单池
|
||||
FinishOrder []int // 已完成订单
|
||||
IsCharge bool // 是否充值
|
||||
AutoEmit []string // 自动发射器
|
||||
}
|
||||
|
||||
type Order struct {
|
||||
@ -212,6 +213,14 @@ func (o *OrderMod) TriggerOrder(lv int, Type string, Emit []int, EnergyMul int)
|
||||
o.OrderList[v.Id] = orderInfo
|
||||
} else {
|
||||
o.addFixOrder(v.Id, v.MergeList, Type, v.Items)
|
||||
if v.Id == 78 {
|
||||
o.Retire("D")
|
||||
o.AutoEmit = append(o.AutoEmit, "D")
|
||||
}
|
||||
if v.Id == 79 {
|
||||
o.Retire("I")
|
||||
o.AutoEmit = append(o.AutoEmit, "I")
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -391,6 +391,10 @@ func getEmitSeries(o *OrderMod, Emit []int) string {
|
||||
if o.EmitShuffle == nil {
|
||||
o.EmitShuffle = make([]string, 0)
|
||||
for _, v := range Emit {
|
||||
EmitId := mergeDataCfg.GetEmitId(v)
|
||||
if GoUtil.InStringArray(EmitId, o.AutoEmit) {
|
||||
continue
|
||||
}
|
||||
EmitProduct := mergeDataCfg.GetEmitProduceType(v)
|
||||
if len(EmitProduct) == 0 || EmitProduct[0] == "" {
|
||||
continue
|
||||
|
||||
@ -627,6 +627,16 @@ func (p *PlayroomMod) SetGameReward(Chess1, Chess2, Star int) {
|
||||
p.GameReward[2] = &item.Item{Id: Chess2, Num: 1}
|
||||
p.GameReward[3] = &item.Item{Id: item.ITEM_STAR_ID, Num: Star}
|
||||
}
|
||||
func (p *PlayroomMod) SetGameReward2(Chess1, Star int) {
|
||||
p.GameReward[1] = &item.Item{Id: Chess1, Num: 1}
|
||||
p.GameReward[2] = &item.Item{Id: item.ITEM_STAR_ID, Num: Star}
|
||||
p.GameReward[3] = &item.Item{Id: item.ITEM_STAR_ID, Num: Star}
|
||||
}
|
||||
func (p *PlayroomMod) SetGameReward3(Star int) {
|
||||
p.GameReward[1] = &item.Item{Id: item.ITEM_STAR_ID, Num: Star}
|
||||
p.GameReward[2] = &item.Item{Id: item.ITEM_STAR_ID, Num: Star}
|
||||
p.GameReward[3] = &item.Item{Id: item.ITEM_STAR_ID, Num: Star}
|
||||
}
|
||||
|
||||
func (p *PlayroomMod) SetGameRewardFlip(N1, N2, N3 int) {
|
||||
p.GameReward[1] = &item.Item{Id: item.ITEM_STAR_ID, Num: N1}
|
||||
@ -959,9 +969,9 @@ func (p *PlayroomMod) PlayroomDressSet(DressSet map[int]int) ([]int, map[int]int
|
||||
if Id == 0 {
|
||||
continue
|
||||
}
|
||||
dressInfo, ok := p.NewDress[Type]
|
||||
dressInfo, ok := p.NewDress[Id]
|
||||
if !ok {
|
||||
return nil, nil, fmt.Errorf("dress type not found")
|
||||
return nil, nil, fmt.Errorf("dress Id not found")
|
||||
}
|
||||
if dressInfo.EndTime < GoUtil.Now() && dressInfo.EndTime != 0 {
|
||||
return nil, nil, fmt.Errorf("dress timeout")
|
||||
|
||||
Loading…
Reference in New Issue
Block a user