集卡活动

This commit is contained in:
sk 2024-04-18 15:01:43 +08:00
parent c45f5457ab
commit 4fb1ec47b9
7 changed files with 198 additions and 136 deletions

View File

@ -3,20 +3,36 @@ package base
import (
"go.etcd.io/etcd/client/v3"
"mongo.games.com/goserver/core/logger"
"mongo.games.com/game/etcd"
"mongo.games.com/game/model"
"mongo.games.com/game/protocol/webapi"
)
var ConfigMgrInst = model.NewConfigMgr()
func init() {
// 个人水池
etcd.Register(etcd.ETCDKEY_PLAYERPOOL, webapi.PlayerPool{}, PlatformConfigEtcd)
etcd.Register(etcd.ETCDKEY_PLAYERPOOL, webapi.PlayerPool{}, platformConfigEtcd)
// 游戏配置
etcd.Register(etcd.ETCDKEY_GAME_CONFIG, webapi.GameConfig{}, PlatformConfigEtcd)
etcd.Register(etcd.ETCDKEY_GAME_CONFIG, webapi.GameConfig{}, platformConfigEtcd)
// 集卡活动
etcd.Register(etcd.ETCDKEY_ACT_Collect, webapi.WelfareCollectConfig{}, platformConfigEtcd)
}
func PlatformConfigEtcd(completeKey string, isInit bool, event *clientv3.Event, data interface{}) {
func platformConfigEtcd(completeKey string, isInit bool, event *clientv3.Event, data interface{}) {
if event.Type == clientv3.EventTypeDelete {
return
}
PlatformConfigSingleton.Update(data)
switch d := data.(type) {
case *webapi.PlayerPool:
ConfigMgrInst.GetAllConfig(d.Platform).PlayerPool = d
case *webapi.GameConfig:
ConfigMgrInst.GetAllConfig(d.Platform).GameConfig = d
case *webapi.WelfareCollectConfig:
ConfigMgrInst.GetAllConfig(d.Platform).WelfareCollectConfig = d
default:
logger.Logger.Errorf("etcd completeKey:%s, Not processed", completeKey)
}
}

View File

@ -2376,7 +2376,7 @@ func (this *Scene) TryBillExGameDrop(p *Player) {
// DropCollectBox 掉落集卡礼盒
func (this *Scene) DropCollectBox(p *Player) {
if p == nil || p.IsRob {
if p == nil || p.IsRob || ConfigMgrInst.GetAllConfig(p.Platform).WelfareCollectConfig.Switch != model.WelfareOpen {
return
}

78
model/config.go Normal file
View File

@ -0,0 +1,78 @@
package model
import webapiproto "mongo.games.com/game/protocol/webapi"
/*
通用模型定义在这里如果需要自定义可以内嵌在新结构体中
*/
const (
OpAll = 0
OpTurnplate = 1
OpBlindBox = 2
OpFirstPay = 3
OpContinuousPay = 4
OpPhoneLottery = 5
OpCollect = 6
)
const (
WelfareNil = 0 // 不处理
WelfareOpen = 1 // 开启
WelfareClose = 2 // 关闭
)
func NewConfigMgr() *ConfigMgr {
return &ConfigMgr{
Platform: make(map[string]*AllConfig),
Global: new(GlobalConfig),
}
}
type AllConfig struct {
// 七日签到
*webapiproto.Welfare7SignDateList
// 转盘
*webapiproto.WelfareTurnplateDateList
// 盲盒
*webapiproto.WelfareBlindBoxDataList
BlindBoxCycle int32
// 首充
*webapiproto.WelfareFirstPayDataList
FirstPayCycle int32
// 连续充值
*webapiproto.WelfareContinuousPayDataList
ContinuousPayCycle int32
// 积分换手机
*webapiproto.WelfarePhoneLotteryStatus
// 集卡活动
*webapiproto.WelfareCollectConfig
// 个人水池
*webapiproto.PlayerPool
// 游戏调控全局配置
*webapiproto.GameConfig
}
type GlobalConfig struct {
}
type ConfigMgr struct {
Platform map[string]*AllConfig
Global *GlobalConfig
}
func (cm *ConfigMgr) GetAllConfig(platform string) *AllConfig {
c, ok := cm.Platform[platform]
if !ok {
c = &AllConfig{}
cm.Platform[platform] = c
}
return c
}
func (cm *ConfigMgr) GetGlobalConfig() *GlobalConfig {
if cm.Global == nil {
cm.Global = new(GlobalConfig)
}
return cm.Global
}

View File

@ -32,7 +32,7 @@ func (this *CSPhoneLotteryInfoHandler) Process(s *netlib.Session, packetid int,
logger.Logger.Warn("CSPhoneLotteryInfo p == nil")
return nil
}
if WelfareMgrSington.GetPhoneLotteryStatus(p.Platform) == WelfareClose {
if WelfareMgrSington.GetPhoneLotteryStatus(p.Platform) == model.WelfareClose {
return nil
}
pack := &player_proto.SCPhoneLotteryInfo{}
@ -80,7 +80,7 @@ func (this *CSPhoneLotteryHandler) Process(s *netlib.Session, packetid int, data
logger.Logger.Warn("CSPhoneLottery p == nil")
return nil
}
if WelfareMgrSington.GetPhoneLotteryStatus(p.Platform) == WelfareClose {
if WelfareMgrSington.GetPhoneLotteryStatus(p.Platform) == model.WelfareClose {
return nil
}
countType := msg.GetLotteryType()

View File

@ -2341,7 +2341,7 @@ func CSPlayerData(s *netlib.Session, packetid int, data interface{}, sid int64)
player.SendRawToClientIncOffLine(sid, s, int(gamehall_proto.GameHallPacketID_PACKET_SC_THRIDGAMEBALANCEUPDATESTATE), statePack)
//抽奖次数兼容老玩家
if !player.IsRob && !player.InitLotteryStatus && WelfareMgrSington.GetPhoneLotteryStatus(player.Platform) == WelfareOpen {
if !player.IsRob && !player.InitLotteryStatus && WelfareMgrSington.GetPhoneLotteryStatus(player.Platform) == model.WelfareOpen {
player.addLotteryCount(20)
player.InitLotteryStatus = true
player.dirty = true

View File

@ -346,7 +346,7 @@ func (this *Player) OnLogined() {
this.ReportLoginEvent()
//抽奖次数兼容老玩家
if !this.InitLotteryStatus && WelfareMgrSington.GetPhoneLotteryStatus(this.Platform) == WelfareOpen {
if !this.InitLotteryStatus && WelfareMgrSington.GetPhoneLotteryStatus(this.Platform) == model.WelfareOpen {
this.addLotteryCount(20)
this.InitLotteryStatus = true
this.dirty = true
@ -4388,7 +4388,7 @@ func (this *Player) UpdateShopID(shopId int32) {
// 增加抽奖次数
func (this *Player) addLotteryCount(count int32) {
if WelfareMgrSington.GetPhoneLotteryStatus(this.Platform) == WelfareClose {
if WelfareMgrSington.GetPhoneLotteryStatus(this.Platform) == model.WelfareClose {
return
}
this.LotteryCount += count
@ -4411,7 +4411,7 @@ func (this *Player) AddPhoneScore(num, add int64, gainWay int32, oper, remark st
if num == 0 {
return
}
if WelfareMgrSington.GetPhoneLotteryStatus(this.Platform) == WelfareClose {
if WelfareMgrSington.GetPhoneLotteryStatus(this.Platform) == model.WelfareClose {
return
}
logger.Logger.Tracef("snid(%v) AddPhoneScore(%v)", this.SnId, num)
@ -4435,7 +4435,7 @@ func (this *Player) AddPhoneScore(num, add int64, gainWay int32, oper, remark st
// 抽奖任务
func (this *Player) PhoneLotteryTask(taskId int32, num int64) {
if WelfareMgrSington.GetPhoneLotteryStatus(this.Platform) == WelfareClose {
if WelfareMgrSington.GetPhoneLotteryStatus(this.Platform) == model.WelfareClose {
if this.WelfData != nil && this.WelfData.PhoneLotteryTask != nil {
this.WelfData.PhoneLotteryTask = make(map[int32]*model.TaskData)
}
@ -4610,6 +4610,11 @@ func (this *Player) ResetTask(tp int32) {
}
func (this *Player) CollectTask(taskId int32, num int64) {
state := WelfareMgrSington.GetCollectSwitch(this.Platform)
if state != model.WelfareOpen {
return
}
// 每日登录游戏赠送一个
// 每日转盘抽奖赠送一个
switch taskId {

View File

@ -17,46 +17,17 @@ import (
"mongo.games.com/game/srvdata"
)
const (
OpAll = 0
OpTurnplate = 1
OpBlindBox = 2
OpFirstPay = 3
OpContinuousPay = 4
OpPhoneLottery = 5
OpCollect = 6
)
const (
WelfareNil = 0 // 不处理
WelfareOpen = 1 // 开启
WelfareClose = 2 // 关闭
)
const (
GameSubsidyid = 1 //救济金id
)
var WelfareMgrSington = &WelfareMgr{
Activity: make(map[string]*ActivityInfos),
}
type ActivityInfos struct {
*webapi_proto.Welfare7SignDateList
*webapi_proto.WelfareTurnplateDateList
*webapi_proto.WelfareBlindBoxDataList
*webapi_proto.WelfareFirstPayDataList
*webapi_proto.WelfareContinuousPayDataList
*webapi_proto.WelfarePhoneLotteryStatus
*webapi_proto.WelfareCollectConfig
BlindBoxCycle int32
FirstPayCycle int32
ContinuousPayCycle int32
ConfigMgr: model.NewConfigMgr(),
}
type WelfareMgr struct {
BaseClockSinker
Activity map[string]*ActivityInfos
*model.ConfigMgr
}
func (this *WelfareMgr) Init() {
@ -72,15 +43,6 @@ func (this *WelfareMgr) ModuleName() string {
return "WelfareMgr"
}
func (this *WelfareMgr) getConfig(plt string) *ActivityInfos {
info, ok := this.Activity[plt]
if !ok {
info = new(ActivityInfos)
this.Activity[plt] = info
}
return info
}
// SetWelfData 设置救济金领取次数
func (this *WelfareMgr) SetWelfData(p *Player, n int32) {
if n > 0 {
@ -158,16 +120,17 @@ func (this *WelfareMgr) GetReliefFund(p *Player, isVideo bool) {
func (this *WelfareMgr) UpdateSign7(cfg *webapi_proto.Welfare7SignDateList) {
if model.GameParamData.TestActSwitch {
cfg.Switch = WelfareOpen
cfg.Switch = model.WelfareOpen
}
this.getConfig(cfg.Platform).Welfare7SignDateList = cfg
this.GetAllConfig(cfg.Platform).Welfare7SignDateList = cfg
}
func (this *WelfareMgr) UpdateTurnplate(cfg *webapi_proto.WelfareTurnplateDateList) {
if model.GameParamData.TestActSwitch {
cfg.Switch = WelfareOpen
cfg.Switch = model.WelfareOpen
}
s := int32(0)
info := this.getConfig(cfg.Platform)
info := this.GetAllConfig(cfg.Platform)
if info.WelfareTurnplateDateList != nil {
s = info.WelfareTurnplateDateList.Switch
}
@ -175,113 +138,113 @@ func (this *WelfareMgr) UpdateTurnplate(cfg *webapi_proto.WelfareTurnplateDateLi
// 打开关闭要广播给客户端
if s != 0 && s != cfg.Switch {
this.WelfareSwitch(nil, cfg.Platform, OpTurnplate)
this.WelfareSwitch(nil, cfg.Platform, model.OpTurnplate)
}
}
func (this *WelfareMgr) UpdateBlindBox(cfg *webapi_proto.WelfareBlindBoxDataList) {
if model.GameParamData.TestActSwitch {
cfg.Switch = WelfareOpen
cfg.Switch = model.WelfareOpen
}
s := int32(0)
info := this.getConfig(cfg.Platform)
info := this.GetAllConfig(cfg.Platform)
if info.WelfareBlindBoxDataList != nil {
s = info.WelfareBlindBoxDataList.Switch
}
info.WelfareBlindBoxDataList = cfg
if cfg.Cycle == WelfareOpen {
if cfg.Cycle == model.WelfareOpen {
info.BlindBoxCycle = 1
}
// 打开关闭要广播给客户端
if s != 0 && s != cfg.Switch {
this.WelfareSwitch(nil, cfg.Platform, OpBlindBox)
this.WelfareSwitch(nil, cfg.Platform, model.OpBlindBox)
}
}
func (this *WelfareMgr) UpdateFirstPay(cfg *webapi_proto.WelfareFirstPayDataList) {
if model.GameParamData.TestActSwitch {
cfg.Switch = WelfareOpen
cfg.Switch = model.WelfareOpen
}
s := int32(0)
info := this.getConfig(cfg.Platform)
info := this.GetAllConfig(cfg.Platform)
if info.WelfareFirstPayDataList != nil {
s = info.WelfareFirstPayDataList.Switch
}
info.WelfareFirstPayDataList = cfg
if cfg.Cycle == WelfareOpen {
if cfg.Cycle == model.WelfareOpen {
info.FirstPayCycle = 1
}
// 打开关闭要广播给客户端
if s != 0 && s != cfg.Switch {
this.WelfareSwitch(nil, cfg.Platform, OpFirstPay)
this.WelfareSwitch(nil, cfg.Platform, model.OpFirstPay)
}
}
func (this *WelfareMgr) UpdateContinuousPay(cfg *webapi_proto.WelfareContinuousPayDataList) {
if model.GameParamData.TestActSwitch {
cfg.Switch = WelfareOpen
cfg.Switch = model.WelfareOpen
}
s := int32(0)
info := this.getConfig(cfg.Platform)
info := this.GetAllConfig(cfg.Platform)
if info.WelfareContinuousPayDataList != nil {
s = info.WelfareContinuousPayDataList.Switch
}
info.WelfareContinuousPayDataList = cfg
if cfg.Cycle == WelfareOpen {
if cfg.Cycle == model.WelfareOpen {
info.ContinuousPayCycle = 1
}
// 打开关闭要广播给客户端
if s != 0 && s != cfg.Switch {
this.WelfareSwitch(nil, cfg.Platform, OpContinuousPay)
this.WelfareSwitch(nil, cfg.Platform, model.OpContinuousPay)
}
}
func (this *WelfareMgr) UpdatePhoneLotteryStatus(cfg *webapi_proto.WelfarePhoneLotteryStatus) {
if model.GameParamData.TestActSwitch {
cfg.Switch = WelfareOpen
cfg.Switch = model.WelfareOpen
}
s := int32(0)
info := this.getConfig(cfg.Platform)
info := this.GetAllConfig(cfg.Platform)
if info.WelfarePhoneLotteryStatus != nil {
s = info.WelfarePhoneLotteryStatus.Switch
}
info.WelfarePhoneLotteryStatus = cfg
// 打开关闭要广播给客户端
if s != 0 && s != cfg.Switch {
this.WelfareSwitch(nil, cfg.Platform, OpPhoneLottery)
this.WelfareSwitch(nil, cfg.Platform, model.OpPhoneLottery)
}
}
func (this *WelfareMgr) GetPhoneLotteryStatus(platform string) int32 {
info := this.getConfig(platform)
info := this.GetAllConfig(platform)
if info.WelfarePhoneLotteryStatus != nil {
return info.WelfarePhoneLotteryStatus.Switch
}
return WelfareClose
return model.WelfareClose
}
func (this *WelfareMgr) UpdateCollectConfig(cfg *webapi_proto.WelfareCollectConfig) {
if model.GameParamData.TestActSwitch {
cfg.Switch = WelfareOpen
cfg.Switch = model.WelfareOpen
}
s := int32(0)
info := this.getConfig(cfg.Platform)
info := this.GetAllConfig(cfg.Platform)
if info.WelfareCollectConfig != nil {
s = info.WelfareCollectConfig.Switch
}
info.WelfareCollectConfig = cfg
// 打开关闭要广播给客户端
if s != 0 && s != cfg.Switch {
this.WelfareSwitch(nil, cfg.Platform, OpCollect)
this.WelfareSwitch(nil, cfg.Platform, model.OpCollect)
}
}
func (this *WelfareMgr) GetCollectSwitch(platform string) int32 {
info := this.getConfig(platform)
info := this.GetAllConfig(platform)
if info.WelfareCollectConfig != nil {
return info.WelfareCollectConfig.Switch
}
return WelfareClose
return model.WelfareClose
}
func (this *WelfareMgr) OnDayChanged(player *Player) error {
@ -290,9 +253,9 @@ func (this *WelfareMgr) OnDayChanged(player *Player) error {
}
player.WelfData.ReliefFundTimes = 0
blindBox := this.getConfig(player.Platform).WelfareBlindBoxDataList
blindBox := this.GetAllConfig(player.Platform).WelfareBlindBoxDataList
if blindBox != nil { // 关闭循环重置为-1
if blindBox.Cycle == WelfareClose && player.WelfData.BlindBoxId != 0 {
if blindBox.Cycle == model.WelfareClose && player.WelfData.BlindBoxId != 0 {
player.WelfData.BlindBoxId = -1
} else { // 循环
player.WelfData.BlindBoxId = 0
@ -330,11 +293,11 @@ func (this *WelfareMgr) GetTurnplate(p *Player) {
pack := &welfare.SCGetTurnplate{
OpRetCode: welfare.OpResultCode_OPRC_Error,
}
info := this.getConfig(p.Platform)
info := this.GetAllConfig(p.Platform)
turnplate := info.WelfareTurnplateDateList
sign7 := info.Welfare7SignDateList
if turnplate != nil && sign7 != nil {
if turnplate.Switch != WelfareOpen {
if turnplate.Switch != model.WelfareOpen {
logger.Logger.Tracef("GetTurnplate Switch err p.SnId = %v %v", p.SnId, turnplate.Switch)
p.SendToClient(int(welfare.SPacketID_PACKET_SC_WELF_GETTURNPLATE), pack)
return
@ -436,7 +399,7 @@ func (this *WelfareMgr) GetTurnplteVideo(p *Player) {
p.SendToClient(int(welfare.SPacketID_PACKET_SC_WELF_GETTURNPLATE), pack)
}
info := this.getConfig(p.Platform)
info := this.GetAllConfig(p.Platform)
turn := info.WelfareTurnplateDateList // 转盘
sign7 := info.Welfare7SignDateList // 签到
if turn == nil || sign7 == nil {
@ -444,7 +407,7 @@ func (this *WelfareMgr) GetTurnplteVideo(p *Player) {
return
}
if turn.Switch != WelfareOpen {
if turn.Switch != model.WelfareOpen {
logger.Logger.Tracef("GetTurnplate Switch err p.SnId = %v %v", p.SnId, turn.Switch)
p.SendToClient(int(welfare.SPacketID_PACKET_SC_WELF_GETTURNPLATE), pack)
return
@ -615,11 +578,11 @@ func (this *WelfareMgr) GetAddupSign(p *Player, addupday int32) {
pack := &welfare.SCGetAddupSign{
OpRetCode: welfare.OpResultCode_OPRC_Error,
}
info := this.getConfig(p.Platform)
info := this.GetAllConfig(p.Platform)
turnplate := info.WelfareTurnplateDateList
sign7 := info.Welfare7SignDateList
if turnplate != nil && sign7 != nil {
if turnplate.Switch != WelfareOpen {
if turnplate.Switch != model.WelfareOpen {
logger.Logger.Tracef("Get7Sign Switch err p.SnId = %v %v", p.SnId, turnplate.Switch)
p.SendToClient(int(welfare.SPacketID_PACKET_SC_WELF_GETADDUPSIGN), pack)
return
@ -681,12 +644,12 @@ func (this *WelfareMgr) WelfaredInfo(p *Player) {
pack := &welfare.SCWelfaredInfo{}
diff := 0
ts := time.Now().Unix()
info := this.getConfig(p.Platform)
info := this.GetAllConfig(p.Platform)
turnplate := info.WelfareTurnplateDateList
sign7 := info.Welfare7SignDateList
if turnplate != nil && sign7 != nil {
pack.Switch = turnplate.Switch
if turnplate.Switch != WelfareClose {
if turnplate.Switch != model.WelfareClose {
pack.DrawTurnplate = 2
signIndex := p.WelfData.Sign7.SignIndex % int32(len(turnplate.RateList))
@ -757,90 +720,90 @@ func (this *WelfareMgr) WelfaredInfo(p *Player) {
func (this *WelfareMgr) WelfareSwitch(p *Player, platform string, op int) {
pack := &player_proto.SCEasyWelfaredInfo{}
// 0转盘1盲盒2首冲3连续充值
info := this.getConfig(platform)
info := this.GetAllConfig(platform)
// 转盘
turnplate := info.WelfareTurnplateDateList
if turnplate != nil {
if op == OpAll || op == OpTurnplate {
if turnplate.Switch == WelfareOpen && p != nil && this.Welfareturnplate(p, 1) { // 没有关闭且所有奖励已经领取
pack.WelfareSwitch = append(pack.WelfareSwitch, WelfareClose) //关闭
if op == model.OpAll || op == model.OpTurnplate {
if turnplate.Switch == model.WelfareOpen && p != nil && this.Welfareturnplate(p, 1) { // 没有关闭且所有奖励已经领取
pack.WelfareSwitch = append(pack.WelfareSwitch, model.WelfareClose) //关闭
} else {
pack.WelfareSwitch = append(pack.WelfareSwitch, turnplate.Switch)
}
} else { // 不更新
pack.WelfareSwitch = append(pack.WelfareSwitch, WelfareNil)
pack.WelfareSwitch = append(pack.WelfareSwitch, model.WelfareNil)
}
} else {
pack.WelfareSwitch = append(pack.WelfareSwitch, WelfareClose) // 配置nil就是关闭
pack.WelfareSwitch = append(pack.WelfareSwitch, model.WelfareClose) // 配置nil就是关闭
}
// 盲盒
blindBox := info.WelfareBlindBoxDataList
if blindBox != nil {
if op == OpAll || op == OpBlindBox {
if blindBox.Switch == WelfareOpen && blindBox.Cycle == WelfareClose && p != nil && p.WelfData.BlindBoxId != 0 { // 没有关闭且所有奖励已经领取
pack.WelfareSwitch = append(pack.WelfareSwitch, WelfareClose) //关闭
if op == model.OpAll || op == model.OpBlindBox {
if blindBox.Switch == model.WelfareOpen && blindBox.Cycle == model.WelfareClose && p != nil && p.WelfData.BlindBoxId != 0 { // 没有关闭且所有奖励已经领取
pack.WelfareSwitch = append(pack.WelfareSwitch, model.WelfareClose) //关闭
} else {
pack.WelfareSwitch = append(pack.WelfareSwitch, blindBox.Switch)
}
} else { // 不更新
pack.WelfareSwitch = append(pack.WelfareSwitch, WelfareNil)
pack.WelfareSwitch = append(pack.WelfareSwitch, model.WelfareNil)
}
} else {
pack.WelfareSwitch = append(pack.WelfareSwitch, WelfareClose) // 配置nil就是关闭
pack.WelfareSwitch = append(pack.WelfareSwitch, model.WelfareClose) // 配置nil就是关闭
}
// 首充
firstPay := info.WelfareFirstPayDataList
if firstPay != nil {
if op == OpAll || op == OpFirstPay {
if op == model.OpAll || op == model.OpFirstPay {
ln := len(firstPay.List)
max := firstPay.List[ln-1].Day // 正序
if firstPay.Switch == WelfareOpen && firstPay.Cycle == WelfareClose && p != nil && p.WelfData.FirstPayDay >= max { // 没有关闭且所有奖励已经领取
pack.WelfareSwitch = append(pack.WelfareSwitch, WelfareClose) //关闭
max := firstPay.List[ln-1].Day // 正序
if firstPay.Switch == model.WelfareOpen && firstPay.Cycle == model.WelfareClose && p != nil && p.WelfData.FirstPayDay >= max { // 没有关闭且所有奖励已经领取
pack.WelfareSwitch = append(pack.WelfareSwitch, model.WelfareClose) //关闭
} else {
pack.WelfareSwitch = append(pack.WelfareSwitch, firstPay.Switch)
}
} else { // 不更新
pack.WelfareSwitch = append(pack.WelfareSwitch, WelfareNil)
pack.WelfareSwitch = append(pack.WelfareSwitch, model.WelfareNil)
}
} else {
pack.WelfareSwitch = append(pack.WelfareSwitch, WelfareClose) // 配置nil就是关闭
pack.WelfareSwitch = append(pack.WelfareSwitch, model.WelfareClose) // 配置nil就是关闭
}
// 连充
continuousPay := info.WelfareContinuousPayDataList
if continuousPay != nil {
if op == OpAll || op == OpContinuousPay {
if op == model.OpAll || op == model.OpContinuousPay {
ln := len(continuousPay.List)
max := continuousPay.List[ln-1].Day // 正序
if continuousPay.Switch == WelfareOpen && continuousPay.Cycle == WelfareClose && p != nil && p.WelfData.ContinuousPayDay >= max { // 没有关闭且所有奖励已经领取
pack.WelfareSwitch = append(pack.WelfareSwitch, WelfareClose) //关闭
max := continuousPay.List[ln-1].Day // 正序
if continuousPay.Switch == model.WelfareOpen && continuousPay.Cycle == model.WelfareClose && p != nil && p.WelfData.ContinuousPayDay >= max { // 没有关闭且所有奖励已经领取
pack.WelfareSwitch = append(pack.WelfareSwitch, model.WelfareClose) //关闭
} else {
pack.WelfareSwitch = append(pack.WelfareSwitch, continuousPay.Switch)
}
} else { // 不更新
pack.WelfareSwitch = append(pack.WelfareSwitch, WelfareNil)
pack.WelfareSwitch = append(pack.WelfareSwitch, model.WelfareNil)
}
} else {
pack.WelfareSwitch = append(pack.WelfareSwitch, WelfareClose) // 配置nil就是关闭
pack.WelfareSwitch = append(pack.WelfareSwitch, model.WelfareClose) // 配置nil就是关闭
}
// 抽手机活动开关
phoneConfig := info.WelfarePhoneLotteryStatus
if phoneConfig != nil {
pack.WelfareSwitch = append(pack.WelfareSwitch, phoneConfig.Switch) //抽手机活动开关
} else {
pack.WelfareSwitch = append(pack.WelfareSwitch, WelfareClose)
pack.WelfareSwitch = append(pack.WelfareSwitch, model.WelfareClose)
}
// 集卡活动
collectConfig := info.WelfareCollectConfig
if collectConfig != nil {
pack.WelfareSwitch = append(pack.WelfareSwitch, collectConfig.Switch) //集卡活动开关
} else {
pack.WelfareSwitch = append(pack.WelfareSwitch, WelfareClose)
pack.WelfareSwitch = append(pack.WelfareSwitch, model.WelfareClose)
}
if model.GameParamData.TestActSwitch {
for k := range pack.WelfareSwitch {
pack.WelfareSwitch[k] = WelfareOpen
pack.WelfareSwitch[k] = model.WelfareOpen
}
}
@ -856,11 +819,11 @@ func (this *WelfareMgr) WelfareSwitch(p *Player, platform string, op int) {
// Welfareturnplate 转盘红点
func (this *WelfareMgr) Welfareturnplate(p *Player, op int32) bool { // 0 红点提示 1全部领取
var isShow bool
info := this.getConfig(p.Platform)
info := this.GetAllConfig(p.Platform)
turnplate := info.WelfareTurnplateDateList
sign7 := info.Welfare7SignDateList
if turnplate != nil && sign7 != nil {
if turnplate.Switch == WelfareClose {
if turnplate.Switch == model.WelfareClose {
return true
}
diff := 0
@ -910,7 +873,7 @@ func (this *WelfareMgr) WelfareShowRed(p *Player) {
return
}
this.MonitorWelfData(p) // 登录检测
this.WelfareSwitch(p, p.Platform, OpAll)
this.WelfareSwitch(p, p.Platform, model.OpAll)
if !this.Welfareturnplate(p, 0) {
p.SendShowRed(hall_proto.ShowRedCode_Welfare, 0, 1) // 0 轮盘红点
@ -921,10 +884,10 @@ func (this *WelfareMgr) BlindBoxInfo(p *Player, bid int32) {
pack := &welfare.SCBlindBoxInfo{
OpRetCode: welfare.OpResultCode_OPRC_Error,
}
info := this.getConfig(p.Platform)
info := this.GetAllConfig(p.Platform)
blindBox := info.WelfareBlindBoxDataList
if blindBox != nil {
if blindBox.Switch != WelfareOpen {
if blindBox.Switch != model.WelfareOpen {
logger.Logger.Tracef("BlindBoxInfo Switch err p.SnId = %v %v", p.SnId, blindBox.Switch)
p.SendToClient(int(welfare.SPacketID_PACKET_SC_WELF_BLINBOXINFO), pack)
return
@ -940,7 +903,7 @@ func (this *WelfareMgr) BlindBoxInfo(p *Player, bid int32) {
pack.Draw = 1
cyc := info.BlindBoxCycle
if p.WelfData.BlindBoxId == -1 {
if cyc == 1 || blindBox.Cycle == WelfareOpen {
if cyc == 1 || blindBox.Cycle == model.WelfareOpen {
p.WelfData.BlindBoxId = 0
}
} // == 1代表当日循环
@ -997,13 +960,13 @@ func (this *WelfareMgr) BuyBlindBox(p *Player, buyid, ConfigPayId int32) {
pack := &shop.SCPayInfo{
RetCode: shop.OpResultCode_OPRC_Error,
}
blindBox := this.getConfig(p.Platform).WelfareBlindBoxDataList
blindBox := this.GetAllConfig(p.Platform).WelfareBlindBoxDataList
if blindBox == nil {
logger.Logger.Tracef("BuyBlindBox blindBox==nil snid: %v pack: %v", p.SnId, pack)
p.SendToClient(int(shop.SPacketID_PACKET_SCPAYINFO), pack)
return
}
if blindBox.Switch != WelfareOpen {
if blindBox.Switch != model.WelfareOpen {
logger.Logger.Tracef("BuyBlindBox Switch err p.SnId = %v %v", p.SnId, blindBox.Switch)
p.SendToClient(int(shop.SPacketID_PACKET_SCPAYINFO), pack)
return
@ -1099,11 +1062,11 @@ func (this *WelfareMgr) FirstPayInfo(p *Player) {
pack := &welfare.SCWelfareFirstPayData{
OpRetCode: welfare.OpResultCode_OPRC_Error,
}
info := this.getConfig(p.Platform)
info := this.GetAllConfig(p.Platform)
firstPay := info.WelfareFirstPayDataList
if firstPay != nil {
pack.Switch = firstPay.Switch
if firstPay.Switch != WelfareClose {
if firstPay.Switch != model.WelfareClose {
ln := len(firstPay.List)
if ln == 0 { // 不能为空
logger.Logger.Tracef("FirstPayInfo firstPay.List err p.SnId = %v %v", p.SnId, ln)
@ -1125,7 +1088,7 @@ func (this *WelfareMgr) FirstPayInfo(p *Player) {
cyc := info.FirstPayCycle
if pack.Draw == 2 { // 当天未领取判断
if day >= max {
if firstPay.Cycle != WelfareOpen && cyc != 1 { // 全部领取完就发最后一天
if firstPay.Cycle != model.WelfareOpen && cyc != 1 { // 全部领取完就发最后一天
day = max
pack.Draw = 1 // 不循环 且今日无开启循环操作 领完不能再领取了
} else {
@ -1183,7 +1146,7 @@ func (this *WelfareMgr) BuyFirstPay(p *Player, ConfigPayId int32) {
pack := &shop.SCPayInfo{
RetCode: shop.OpResultCode_OPRC_Error,
}
info := this.getConfig(p.Platform)
info := this.GetAllConfig(p.Platform)
firstPay := info.WelfareFirstPayDataList
if firstPay == nil {
logger.Logger.Errorf("BuyFirstPay firstPay == nil snid: %v pack: %v", p.SnId, pack)
@ -1212,7 +1175,7 @@ func (this *WelfareMgr) BuyFirstPay(p *Player, ConfigPayId int32) {
if p.WelfData.FirstPayDay >= max {
cyc := info.FirstPayCycle
if firstPay.Cycle != WelfareOpen && cyc != 1 { // 全部领取完
if firstPay.Cycle != model.WelfareOpen && cyc != 1 { // 全部领取完
//pack.OpRetCode = welfare.OpResultCode_OPRC_NoTimes
logger.Logger.Tracef("BuyFirstPay Cycle p.WelfData.FirstPayDay max p.SnId = %v %v", p.SnId, firstPay.Cycle, p.WelfData.FirstPayDay, max)
p.SendToClient(int(shop.SPacketID_PACKET_SCPAYINFO), pack)
@ -1308,11 +1271,11 @@ func (this *WelfareMgr) ContinuousPayInfo(p *Player) {
pack := &welfare.SCWelfareContinuousPayData{
OpRetCode: welfare.OpResultCode_OPRC_Error,
}
info := this.getConfig(p.Platform)
info := this.GetAllConfig(p.Platform)
continuousPay := info.WelfareContinuousPayDataList
if continuousPay != nil {
pack.Switch = continuousPay.Switch
if continuousPay.Switch != WelfareClose {
if continuousPay.Switch != model.WelfareClose {
ln := len(continuousPay.List)
if ln == 0 { // 不能为空
logger.Logger.Tracef("ContinuousPayInfo continuousPay.List err p.SnId = %v %v", p.SnId, ln)
@ -1328,7 +1291,7 @@ func (this *WelfareMgr) ContinuousPayInfo(p *Player) {
dif := common.DiffDaybyTs(ts, p.WelfData.ContinuousPayTickets)
if dif == 0 { // 当天已经领取
pack.Draw = 1
} else if continuousPay.Break == WelfareOpen && dif > 1 && p.WelfData.ContinuousPayDay < max { // 开启中断
} else if continuousPay.Break == model.WelfareOpen && dif > 1 && p.WelfData.ContinuousPayDay < max { // 开启中断
day = 0 //continuousPay.List[0].Day // 从头开始
}
}
@ -1346,7 +1309,7 @@ func (this *WelfareMgr) ContinuousPayInfo(p *Player) {
if i < ln {
day = continuousPay.List[i].Day
} else {
if continuousPay.Cycle != WelfareOpen && cyc != 1 { // 全部领取完就发最后一天
if continuousPay.Cycle != model.WelfareOpen && cyc != 1 { // 全部领取完就发最后一天
day = max
pack.Draw = 1 // 不循环 领完不能再领取了
} else {
@ -1392,7 +1355,7 @@ func (this *WelfareMgr) BuyContinuousPay(p *Player, ConfigPayId int32) {
pack := &shop.SCPayInfo{
RetCode: shop.OpResultCode_OPRC_Error,
}
info := this.getConfig(p.Platform)
info := this.GetAllConfig(p.Platform)
continuousPay := info.WelfareContinuousPayDataList
if continuousPay == nil {
logger.Logger.Tracef("BuyContinuousPay continuousPay == nil snid: %v pack: %v", p.SnId, pack)
@ -1416,14 +1379,14 @@ func (this *WelfareMgr) BuyContinuousPay(p *Player, ConfigPayId int32) {
//pack.OpRetCode = welfare.OpResultCode_OPRC_NoTimes
p.SendToClient(int(shop.SPacketID_PACKET_SCPAYINFO), pack)
return
} else if continuousPay.Break == WelfareOpen && dif > 1 && p.WelfData.ContinuousPayDay < max { // 开启中断 且没有领取到最后一天
} else if continuousPay.Break == model.WelfareOpen && dif > 1 && p.WelfData.ContinuousPayDay < max { // 开启中断 且没有领取到最后一天
p.WelfData.ContinuousPayDay = 0 // 从第一天开始
}
}
if p.WelfData.ContinuousPayDay >= max {
cyc := info.ContinuousPayCycle
if continuousPay.Cycle != WelfareOpen && cyc != 1 { // 全部领取完
if continuousPay.Cycle != model.WelfareOpen && cyc != 1 { // 全部领取完
//pack.OpRetCode = welfare.OpResultCode_OPRC_NoTimes
logger.Logger.Tracef("BuyContinuousPay Cycle p.WelfData.FirstPayDay max p.SnId = %v %v", p.SnId, continuousPay.Cycle, p.WelfData.ContinuousPayDay, max)
p.SendToClient(int(shop.SPacketID_PACKET_SCPAYINFO), pack)
@ -1520,7 +1483,7 @@ func (this *WelfareMgr) Shutdown() {
}
func (this *WelfareMgr) OnDayTimer() {
for _, v := range this.Activity {
for _, v := range this.ConfigMgr.Platform {
v.BlindBoxCycle = 0
v.FirstPayCycle = 0
v.ContinuousPayCycle = 0