累计签到进阶奖励实现
This commit is contained in:
parent
992ccb280e
commit
6985bc0437
|
|
@ -272,6 +272,7 @@ const (
|
||||||
GainWayBuyItem = 86 // 商城购买道具
|
GainWayBuyItem = 86 // 商城购买道具
|
||||||
GainWayBuyWeekCard = 87 // 商城购买周卡
|
GainWayBuyWeekCard = 87 // 商城购买周卡
|
||||||
GainWayVipBuyCoin = 88 // vip商城购买金币
|
GainWayVipBuyCoin = 88 // vip商城购买金币
|
||||||
|
GainWaySign7 = 89 // 连续签到7天进阶消耗
|
||||||
)
|
)
|
||||||
|
|
||||||
// 后台选择 金币变化类型 的充值 类型id号起始
|
// 后台选择 金币变化类型 的充值 类型id号起始
|
||||||
|
|
|
||||||
|
|
@ -463,11 +463,12 @@ type PlayerData struct {
|
||||||
|
|
||||||
// 七日签到数据
|
// 七日签到数据
|
||||||
type NewSignData struct {
|
type NewSignData struct {
|
||||||
SignIndex int32 //签到次数
|
SignIndex int32 //签到次数
|
||||||
SignTickets int64 //签到时间 时间戳
|
SignTickets int64 //签到时间 时间戳
|
||||||
AddupIndex []int32 //领取累计奖励
|
AddupIndex []int32 //领取累计奖励
|
||||||
TurnplateIdx []int32 //领取转盘下标
|
TurnplateIdx []int32 //领取转盘下标
|
||||||
VideoTicket int64 // 领取视频奖励时间戳
|
VideoTicket int64 // 领取视频奖励时间戳
|
||||||
|
Addup2Data map[int32]map[int32]int64 // 进阶奖励key1 - day key2-次数 value-结束领取时间戳(-1代表已领取)
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
File diff suppressed because it is too large
Load Diff
|
|
@ -496,11 +496,19 @@ message AddUpWelfareDate {
|
||||||
int32 AddUpDay = 1; // 累计几天
|
int32 AddUpDay = 1; // 累计几天
|
||||||
repeated WelfareDate AddUpDate = 2; // 累计奖励
|
repeated WelfareDate AddUpDate = 2; // 累计奖励
|
||||||
}
|
}
|
||||||
|
message AddUpDate2TypeData {
|
||||||
|
int32 Day = 1;
|
||||||
|
int32 Id = 2;
|
||||||
|
int32 Num = 3;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
message Welfare7SignDate {
|
message Welfare7SignDate {
|
||||||
int32 Day = 1; // 第几天
|
int32 Day = 1; // 第几天
|
||||||
repeated WelfareDate Date = 2; // 奖励
|
repeated WelfareDate Date = 2; // 奖励
|
||||||
repeated AddUpWelfareDate AddUpDate = 3; // 累计奖励
|
repeated AddUpWelfareDate AddUpDate = 3; // 累计奖励
|
||||||
|
repeated AddUpWelfareDate AddUpDate2 = 4; //进阶奖励
|
||||||
|
repeated AddUpDate2TypeData AddUpDate2Type = 5; //进阶奖励领取条件
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
|
||||||
File diff suppressed because it is too large
Load Diff
|
|
@ -40,6 +40,8 @@ enum SPacketID {
|
||||||
PACKET_SC_WELF_CONTINPAYINFO = 2597;//连续充值信息
|
PACKET_SC_WELF_CONTINPAYINFO = 2597;//连续充值信息
|
||||||
PACKET_CS_WELF_CONTINPAY = 2598;//领取(购买)连续充值 后期走充值回调
|
PACKET_CS_WELF_CONTINPAY = 2598;//领取(购买)连续充值 后期走充值回调
|
||||||
PACKET_SC_WELF_CONTINPAY = 2599;//领取连续充值
|
PACKET_SC_WELF_CONTINPAY = 2599;//领取连续充值
|
||||||
|
PACKET_CS_SignDay_Addup2Award = 2600;//领取七日签到进阶奖励
|
||||||
|
PACKET_SC_SignDay_Addup2Award = 2601;//返回七日签到进阶奖励
|
||||||
|
|
||||||
// 2900~2999
|
// 2900~2999
|
||||||
PACKET_CSWelfRelief = 2900;//救济金信息
|
PACKET_CSWelfRelief = 2900;//救济金信息
|
||||||
|
|
@ -76,6 +78,11 @@ message WelfareDate {
|
||||||
int32 Item_Id = 4; // 道具id
|
int32 Item_Id = 4; // 道具id
|
||||||
}
|
}
|
||||||
|
|
||||||
|
message AddUp2TypeDate{
|
||||||
|
int32 Day = 1;
|
||||||
|
int32 Id = 2; // 1,代表观看视频 2,代表钻石类型
|
||||||
|
int32 Num = 3; //数量
|
||||||
|
}
|
||||||
|
|
||||||
//转动转盘
|
//转动转盘
|
||||||
//PACKET_CS_WELF_GETTURNPLATE
|
//PACKET_CS_WELF_GETTURNPLATE
|
||||||
|
|
@ -95,6 +102,8 @@ message SCGetTurnplate{
|
||||||
message AddUpWelfareDate {
|
message AddUpWelfareDate {
|
||||||
int32 AddUpDay = 1; // 累计几天
|
int32 AddUpDay = 1; // 累计几天
|
||||||
repeated WelfareDate AddUpDate = 2; // 累计奖励
|
repeated WelfareDate AddUpDate = 2; // 累计奖励
|
||||||
|
repeated WelfareDate AddUp2Date =3; //进阶奖励
|
||||||
|
repeated AddUp2TypeDate AddUp2Type = 4; //进阶奖励领取条件
|
||||||
}
|
}
|
||||||
|
|
||||||
//累计签到
|
//累计签到
|
||||||
|
|
@ -124,6 +133,12 @@ message Welfare7SignDate {
|
||||||
int32 Day = 1; // 第几天
|
int32 Day = 1; // 第几天
|
||||||
repeated WelfareDate Date = 2; // 奖励
|
repeated WelfareDate Date = 2; // 奖励
|
||||||
repeated AddUpWelfareDate AddUpDate = 3; // 累计奖励
|
repeated AddUpWelfareDate AddUpDate = 3; // 累计奖励
|
||||||
|
|
||||||
|
}
|
||||||
|
message Addup2Data{
|
||||||
|
int32 Day = 1; //天数
|
||||||
|
int32 Num = 2; //任务次数
|
||||||
|
int64 EndTime = 3;//结束时间戳 -1代表已领取
|
||||||
}
|
}
|
||||||
|
|
||||||
//PACKET_SC_WELF_WELFAREINFO
|
//PACKET_SC_WELF_WELFAREINFO
|
||||||
|
|
@ -135,6 +150,19 @@ message SCWelfaredInfo{
|
||||||
repeated int32 AddUpSignDay = 5; // 已领取累计奖励天数
|
repeated int32 AddUpSignDay = 5; // 已领取累计奖励天数
|
||||||
repeated int32 TurnplateIdx = 6; // 已领取转盘奖励下标0开始
|
repeated int32 TurnplateIdx = 6; // 已领取转盘奖励下标0开始
|
||||||
int32 Switch = 7; // 1.开启 2.关闭
|
int32 Switch = 7; // 1.开启 2.关闭
|
||||||
|
repeated Addup2Data Addup2 = 8; //七日签到进阶奖励数据
|
||||||
|
}
|
||||||
|
|
||||||
|
//领取7日签到累计进阶奖励
|
||||||
|
//PACKET_CS_SignDay_Addup2Award
|
||||||
|
message CSSignDayAddup2Award{
|
||||||
|
int32 Day = 1;
|
||||||
|
}
|
||||||
|
//PACKET_SC_SignDay_Addup2Award
|
||||||
|
message SCSignDayAddup2Award{
|
||||||
|
int32 Day = 1; //天数
|
||||||
|
int32 Num = 2; //任务次数
|
||||||
|
int64 EndTime = 3;//结束时间戳 -1代表已领取
|
||||||
}
|
}
|
||||||
|
|
||||||
message BlindBoxData {
|
message BlindBoxData {
|
||||||
|
|
|
||||||
|
|
@ -487,6 +487,30 @@ func (this *CSPigBankTakeCoinHandler) Process(s *netlib.Session, packetid int, d
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// GetAddUp2Award
|
||||||
|
type CSSignDayAddup2AwardPacketFactory struct {
|
||||||
|
}
|
||||||
|
|
||||||
|
type CSSignDayAddup2AwardHandler struct {
|
||||||
|
}
|
||||||
|
|
||||||
|
func (this *CSSignDayAddup2AwardPacketFactory) CreatePacket() interface{} {
|
||||||
|
pack := &welfare.CSPigbankTakeCoin{}
|
||||||
|
return pack
|
||||||
|
}
|
||||||
|
|
||||||
|
func (this *CSSignDayAddup2AwardHandler) Process(s *netlib.Session, packetid int, data interface{}, sid int64) error {
|
||||||
|
logger.Logger.Trace("CSSignDayAddup2Award Process recv ", data)
|
||||||
|
if msg, ok := data.(*welfare.CSSignDayAddup2Award); ok {
|
||||||
|
p := PlayerMgrSington.GetPlayer(sid)
|
||||||
|
if p == nil {
|
||||||
|
logger.Logger.Warnf("CSPigBankTakeCoinHandler p == nil")
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
WelfareMgrSington.GetAddUp2Award(p, msg.Day)
|
||||||
|
}
|
||||||
|
return nil
|
||||||
|
}
|
||||||
func init() {
|
func init() {
|
||||||
// 领取救济金
|
// 领取救济金
|
||||||
common.RegisterHandler(int(welfare.SPacketID_PACKET_CS_WELF_GETRELIEFFUND), &CSGetReliefFundHandler{})
|
common.RegisterHandler(int(welfare.SPacketID_PACKET_CS_WELF_GETRELIEFFUND), &CSGetReliefFundHandler{})
|
||||||
|
|
@ -531,4 +555,7 @@ func init() {
|
||||||
//领取存钱罐金币
|
//领取存钱罐金币
|
||||||
common.RegisterHandler(int(welfare.SPacketID_PACKET_CSPigbankTakeCoin), &CSPigBankTakeCoinHandler{})
|
common.RegisterHandler(int(welfare.SPacketID_PACKET_CSPigbankTakeCoin), &CSPigBankTakeCoinHandler{})
|
||||||
netlib.RegisterFactory(int(welfare.SPacketID_PACKET_CSPigbankTakeCoin), &CSPigBankTakeCoinPacketFactory{})
|
netlib.RegisterFactory(int(welfare.SPacketID_PACKET_CSPigbankTakeCoin), &CSPigBankTakeCoinPacketFactory{})
|
||||||
|
//领取七日签到进阶奖励
|
||||||
|
common.RegisterHandler(int(welfare.SPacketID_PACKET_CS_SignDay_Addup2Award), &CSSignDayAddup2AwardHandler{})
|
||||||
|
netlib.RegisterFactory(int(welfare.SPacketID_PACKET_CS_SignDay_Addup2Award), &CSSignDayAddup2AwardPacketFactory{})
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -665,6 +665,7 @@ func (this *WelfareMgr) WelfaredInfo(p *Player) {
|
||||||
data := &welfare.Welfare7SignDate{
|
data := &welfare.Welfare7SignDate{
|
||||||
Day: v.Day,
|
Day: v.Day,
|
||||||
}
|
}
|
||||||
|
ad := &welfare.AddUpWelfareDate{}
|
||||||
for _, d := range v.Date {
|
for _, d := range v.Date {
|
||||||
data.Date = append(data.Date, &welfare.WelfareDate{
|
data.Date = append(data.Date, &welfare.WelfareDate{
|
||||||
Grade: d.Grade,
|
Grade: d.Grade,
|
||||||
|
|
@ -674,9 +675,7 @@ func (this *WelfareMgr) WelfaredInfo(p *Player) {
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
for _, d := range v.AddUpDate { // 累计奖励
|
for _, d := range v.AddUpDate { // 累计奖励
|
||||||
ad := &welfare.AddUpWelfareDate{
|
ad.AddUpDay = d.AddUpDay
|
||||||
AddUpDay: d.AddUpDay,
|
|
||||||
}
|
|
||||||
for _, d1 := range d.AddUpDate {
|
for _, d1 := range d.AddUpDate {
|
||||||
ad.AddUpDate = append(ad.AddUpDate, &welfare.WelfareDate{
|
ad.AddUpDate = append(ad.AddUpDate, &welfare.WelfareDate{
|
||||||
Grade: d1.Grade,
|
Grade: d1.Grade,
|
||||||
|
|
@ -685,8 +684,28 @@ func (this *WelfareMgr) WelfaredInfo(p *Player) {
|
||||||
Item_Id: d1.Item_Id,
|
Item_Id: d1.Item_Id,
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
data.AddUpDate = append(data.AddUpDate, ad)
|
|
||||||
}
|
}
|
||||||
|
//进阶数据
|
||||||
|
for _, d2 := range v.AddUpDate2 {
|
||||||
|
for _, value := range d2.AddUpDate {
|
||||||
|
ad.AddUp2Date = append(ad.AddUp2Date, &welfare.WelfareDate{
|
||||||
|
Grade: value.Grade,
|
||||||
|
Type: value.Type,
|
||||||
|
Name: value.Name,
|
||||||
|
Item_Id: value.Item_Id,
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
//进阶奖励领取条件
|
||||||
|
for _, value := range v.AddUpDate2Type {
|
||||||
|
ad.AddUp2Type = append(ad.AddUp2Type, &welfare.AddUp2TypeDate{
|
||||||
|
Day: value.Day,
|
||||||
|
Id: value.Id,
|
||||||
|
Num: value.Num,
|
||||||
|
})
|
||||||
|
}
|
||||||
|
data.AddUpDate = append(data.AddUpDate, ad)
|
||||||
pack.Slist = append(pack.Slist, data)
|
pack.Slist = append(pack.Slist, data)
|
||||||
}
|
}
|
||||||
pack.TurnplateIdx = append(pack.TurnplateIdx, p.WelfData.Sign7.TurnplateIdx...)
|
pack.TurnplateIdx = append(pack.TurnplateIdx, p.WelfData.Sign7.TurnplateIdx...)
|
||||||
|
|
@ -699,11 +718,105 @@ func (this *WelfareMgr) WelfaredInfo(p *Player) {
|
||||||
pack.SignDay = signIndex
|
pack.SignDay = signIndex
|
||||||
pack.AddUpSignDay = append(pack.AddUpSignDay, p.WelfData.Sign7.AddupIndex...)
|
pack.AddUpSignDay = append(pack.AddUpSignDay, p.WelfData.Sign7.AddupIndex...)
|
||||||
}
|
}
|
||||||
|
//七日签到进阶奖励数据
|
||||||
|
// 进阶奖励key1 - day key2-次数 value-结束领取时间戳(-1代表已领取)
|
||||||
|
for day, value := range p.WelfData.Sign7.Addup2Data {
|
||||||
|
addUp2 := &welfare.Addup2Data{}
|
||||||
|
addUp2.Day = day
|
||||||
|
for num, endTime := range value {
|
||||||
|
addUp2.Num = num
|
||||||
|
addUp2.EndTime = endTime
|
||||||
|
}
|
||||||
|
pack.Addup2 = append(pack.Addup2, addUp2)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
logger.Logger.Tracef("WelfaredInfo snid: %v pack: %v", p.SnId, pack)
|
logger.Logger.Tracef("WelfaredInfo snid: %v pack: %v", p.SnId, pack)
|
||||||
p.SendToClient(int(welfare.SPacketID_PACKET_SC_WELF_WELFAREINFO), pack)
|
p.SendToClient(int(welfare.SPacketID_PACKET_SC_WELF_WELFAREINFO), pack)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// 更新进阶奖励时间
|
||||||
|
func (this *WelfareMgr) UpdateAddUp2Date(p *Player, day int32, endTime int64) {
|
||||||
|
if p.WelfData.Sign7.Addup2Data == nil {
|
||||||
|
p.WelfData.Sign7.Addup2Data = make(map[int32]map[int32]int64)
|
||||||
|
}
|
||||||
|
//p.WelfData.Sign7.Addup2Data[day][1] = time.Now().Unix() + 3600
|
||||||
|
p.WelfData.Sign7.Addup2Data[day][1] = endTime
|
||||||
|
//通知客户端
|
||||||
|
pack := &welfare.SCSignDayAddup2Award{}
|
||||||
|
pack.Day = day
|
||||||
|
pack.Num = 1
|
||||||
|
pack.EndTime = p.WelfData.Sign7.Addup2Data[day][1]
|
||||||
|
logger.Logger.Trace("通知客户端更新进阶奖励时间!!!!!!!!")
|
||||||
|
p.SendToClient(int(welfare.SPacketID_PACKET_SC_SignDay_Addup2Award), pack)
|
||||||
|
}
|
||||||
|
|
||||||
|
// 领取进阶奖励
|
||||||
|
func (this *WelfareMgr) GetAddUp2Award(p *Player, day int32) {
|
||||||
|
// 判断是否已经领取
|
||||||
|
Num := int32(0)
|
||||||
|
EndTime := int64(-1)
|
||||||
|
for num, endTime := range p.WelfData.Sign7.Addup2Data[day] {
|
||||||
|
if endTime == -1 {
|
||||||
|
return
|
||||||
|
}
|
||||||
|
if endTime < time.Now().Unix() {
|
||||||
|
return
|
||||||
|
}
|
||||||
|
Num = num
|
||||||
|
EndTime = endTime
|
||||||
|
}
|
||||||
|
//获取配置
|
||||||
|
info := this.GetConfig(p.Platform)
|
||||||
|
if info == nil {
|
||||||
|
return
|
||||||
|
}
|
||||||
|
sign7 := info.Welfare7SignDateList
|
||||||
|
if sign7 == nil {
|
||||||
|
return
|
||||||
|
}
|
||||||
|
list := sign7.List
|
||||||
|
if list == nil {
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
addUpDate2 := list[day-1].AddUpDate2
|
||||||
|
addUpDate2Type := list[day-1].AddUpDate2Type
|
||||||
|
if addUpDate2Type == nil {
|
||||||
|
return
|
||||||
|
}
|
||||||
|
typeId := addUpDate2Type[0].Id
|
||||||
|
addUpDate2Num := addUpDate2Type[0].Num
|
||||||
|
if typeId == 1 {
|
||||||
|
Num += 1
|
||||||
|
} else {
|
||||||
|
//扣除钻石
|
||||||
|
if p.Diamond < int64(addUpDate2Num) {
|
||||||
|
return
|
||||||
|
}
|
||||||
|
p.AddDiamond(int64(-addUpDate2Num), 0, common.GainWaySign7, "system", "累计签到进阶奖励钻石消耗")
|
||||||
|
logger.Logger.Trace("累计签到进阶奖励,扣除钻石uid = ", p.SnId)
|
||||||
|
EndTime = -1
|
||||||
|
}
|
||||||
|
p.WelfData.Sign7.Addup2Data[day] = make(map[int32]int64)
|
||||||
|
p.WelfData.Sign7.Addup2Data[day][Num+1] = EndTime
|
||||||
|
if typeId == 1 && Num >= addUpDate2Num {
|
||||||
|
EndTime = -1
|
||||||
|
}
|
||||||
|
if EndTime == -1 {
|
||||||
|
//发奖
|
||||||
|
var items []*Item
|
||||||
|
item := &Item{
|
||||||
|
ItemId: addUpDate2[0].AddUpDate[0].Item_Id,
|
||||||
|
ItemNum: int64(addUpDate2[0].AddUpDate[0].Grade),
|
||||||
|
}
|
||||||
|
items = append(items, item)
|
||||||
|
BagMgrSingleton.AddItems(p, items, 0, common.GainWaySign7, "system", "累计签到进阶奖励钻石消耗", 0, 0, false)
|
||||||
|
}
|
||||||
|
//通知客户端
|
||||||
|
this.UpdateAddUp2Date(p, day, EndTime)
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
// WelfareSwitch 通知活动开关状态
|
// WelfareSwitch 通知活动开关状态
|
||||||
func (this *WelfareMgr) WelfareSwitch(p *Player, platform string, op int) {
|
func (this *WelfareMgr) WelfareSwitch(p *Player, platform string, op int) {
|
||||||
pack := &player_proto.SCEasyWelfaredInfo{}
|
pack := &player_proto.SCEasyWelfaredInfo{}
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue