package main import ( "mongo.games.com/game/common" "mongo.games.com/game/gamesrv/base" "mongo.games.com/game/model" "mongo.games.com/game/protocol/activity" "mongo.games.com/game/srvdata" "mongo.games.com/goserver/core/logger" "mongo.games.com/goserver/core/netlib" "sort" ) const ( PowerMax = 700000 PowerInit = 400000 ) var BaseCoins = []int64{5000, 10000, 15000} func init() { // 推币机活动信息 common.Register(int(activity.PushCoinPacketID_PACKET_CSPushCoinInfo), activity.CSPushCoinInfo{}, CSPushCoinInfo) } func CSPushCoinInfo(s *netlib.Session, packetid int, data interface{}, sid int64) error { _, ok := data.(*activity.CSPushCoinInfo) if !ok { return nil } p := base.PlayerMgrSington.GetPlayer(sid) if p == nil { logger.Logger.Warn("CSPushCoinInfo p == nil") return nil } if p.WelfData == nil { logger.Logger.Warn("CSPushCoinInfo p.WelfData == nil") return nil } if p.WelfData.PushCoin == nil { p.WelfData.PushCoin = &model.PushCoinData{ Shake: 0, Refresh: 0, Power: PowerInit, Base: BaseCoins[0], } } pack := &activity.SCPushCoinInfo{ ShakeTimes: p.WelfData.PushCoin.Shake, BaseCoin: p.WelfData.PushCoin.Base, PowerLine: p.WelfData.PushCoin.Power, PowerLineMax: PowerMax, RefreshTimes: p.WelfData.PushCoin.Refresh, } for _, v := range srvdata.PBDB_PropExchangeMgr.Datas.Arr { if v.GetGroup() == 2 { info := &activity.ExchangeInfo{ Id: v.GetId(), } for kk, vv := range v.GetCost() { info.Cost = append(info.Cost, &activity.ItemInfo{ ItemId: int32(kk), ItemNum: int32(vv), }) } sort.Slice(info.Cost, func(i, j int) bool { return info.Cost[i].ItemId < info.Cost[j].ItemId }) for kk, vv := range v.GetGain() { info.Gain = append(info.Gain, &activity.ItemInfo{ ItemId: int32(kk), ItemNum: int32(vv), }) } sort.Slice(info.Gain, func(i, j int) bool { return info.Gain[i].ItemId < info.Gain[j].ItemId }) for kk, vv := range v.GetCustom() { if kk == 1 { info.ShakeTimes = int32(vv) } } pack.ExchangeList = append(pack.ExchangeList, info) } } p.SendToClient(int(activity.PushCoinPacketID_PACKET_SCPushCoinInfo), pack) return nil }