diff --git a/worldsrv/action_nian.go b/worldsrv/action_nian.go index c792b7e..acd8108 100644 --- a/worldsrv/action_nian.go +++ b/worldsrv/action_nian.go @@ -123,6 +123,11 @@ func CSNianData(s *netlib.Session, packetid int, data interface{}, sid int64) er break } } + signTime := int64(0) + if p.WelfData.NianData.SignAwardTime > 0 { + nextDay := time.Now().Add(24 * time.Hour).Truncate(24 * time.Hour) + signTime = nextDay.Unix() + } StartTs := common.IntToTime(int(pool.List[0].BuffStartTime)).Unix() EndTs := common.IntToTime(int(pool.List[0].BuffEndTime)).Unix() pack.BuffStartTime = StartTs @@ -134,7 +139,7 @@ func CSNianData(s *netlib.Session, packetid int, data interface{}, sid int64) er pack.AwardTime = p.WelfData.NianData.SignAwardTime pack.BuffCount = p.WelfData.NianData.BuffCount pack.BuffStatus = p.WelfData.NianData.BuffStatus - pack.SignAwardTime = p.WelfData.NianData.SignAwardTime + pack.SignAwardTime = signTime pack.ChangeData = changeData logger.Logger.Trace("请求年兽活动信息 ", pack) p.SendToClient(int(activity.NianPacketID_PACKET_SCNianData), pack) @@ -571,9 +576,9 @@ func CSNianBuff(s *netlib.Session, packetid int, data interface{}, sid int64) er // 领取签到奖励 func CSNianSignAward(s *netlib.Session, packetid int, data interface{}, sid int64) error { - if _, ok := data.(*activity.CSNianBuff); ok { + if _, ok := data.(*activity.CSNianSignAward); ok { p := PlayerMgrSington.GetOnlinePlayer(sid) - logger.Logger.Trace("客户端请求请求领取BUFF snid = ", p.SnId) + logger.Logger.Trace("领取签到奖励 snid = ", p.SnId) if p == nil { return nil } @@ -585,6 +590,19 @@ func CSNianSignAward(s *netlib.Session, packetid int, data interface{}, sid int6 logger.Logger.Trace("CSNianSignAward 活动关闭!") return nil } + //判断活动时间 + startTime := pool.List[0].ActivityStart + endTime := pool.List[0].ActivityEnd + t, _ := time.Parse(time.DateTime, startTime) + // 转换为时间戳(以秒为单位) + timestamp := t.Unix() + end, _ := time.Parse(time.DateTime, endTime) + endTimestamp := end.Unix() + nowTime := time.Now().Unix() + if nowTime < timestamp || nowTime > endTimestamp { + return nil + } + pack := &activity.SCNianSignAward{} if p.WelfData.NianData == nil { p.WelfData.NianData = &model.NianData{} @@ -626,15 +644,36 @@ func CSNianSignAward(s *netlib.Session, packetid int, data interface{}, sid int6 func CSNianChange(s *netlib.Session, packetid int, data interface{}, sid int64) error { if msg, ok := data.(*activity.CSNianChange); ok { - num := msg.Num - if num <= 0 || num > 99 { - return nil - } p := PlayerMgrSington.GetOnlinePlayer(sid) logger.Logger.Trace("客户端请求请求年兽兑换 snid = ", p.SnId) if p == nil { return nil } + pool := WelfareMgrSington.GetConfig(p.Platform).ActivityNianConfig + if pool == nil || pool.List == nil { + return nil + } + if pool.Switch == model.WelfareClose { + logger.Logger.Trace("CSNianSignAward 活动关闭!") + return nil + } + //判断活动时间 + startTime := pool.List[0].ActivityStart + endTime := pool.List[0].ActivityEnd + t, _ := time.Parse(time.DateTime, startTime) + // 转换为时间戳(以秒为单位) + timestamp := t.Unix() + end, _ := time.Parse(time.DateTime, endTime) + endTimestamp := end.Unix() + nowTime := time.Now().Unix() + if nowTime < timestamp || nowTime > endTimestamp { + return nil + } + num := msg.Num + if num <= 0 || num > 99 { + return nil + } + sData := srvdata.PBDB_NewYearActivityMgr.Datas.GetArr() itemNum := 0 coin := 0