| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155 |
- --每日签到
- local Util = require("common.Util")
- local Msg = require("core.Msg")
- local ObjHuman = require("core.ObjHuman")
- local LoginSignExcel = require("excel.loginSign")
- local ItemExcel = require("excel.item")
- local BagLogic = require("bag.BagLogic")
- local Grid = require("bag.Grid")
- local YunYingLogic = require("yunying.YunYingLogic")
- local PanelDefine = require("broadcast.PanelDefine")
- local GuideLogic = require("guide.GuideLogic")
- SIGN_DAY = 31
- STATUS_TYPE1 = 1 -- 已签到可领取
- STATUS_TYPE2 = 2 -- 可以充值签到
- STATUS_TYPE3 = 3 -- 充值后可领取
- STATUS_TYPE4 = 4 -- 不能领取
- function updateGM(human, day)
- local now = os.time()
- human.db.signIn = {startTime = now,upTime = now,status = {},cnt = 1}
- human.db.signIn.startTime = human.db.signIn.startTime - 24 * 60 * 60 * day
- human.db.signIn.cnt = day
-
- end
- local function checkDB(human)
- local now = os.time()
- human.db.signIn = human.db.signIn or {startTime = now,upTime = now,status = {},cnt = 1}
- local signInDB = human.db.signIn
- if not Util.isSameDay(signInDB.upTime) then
- signInDB.cnt = signInDB.cnt + 1
- signInDB.upTime = now
- print(" signInDB.cnt ", signInDB.cnt )
- if signInDB.cnt > SIGN_DAY then
- human.db.signIn = {startTime = now,upTime = now,status = {},cnt = 1}
- else
- print(" not signInDB.cnt ", signInDB.cnt )
- end
- end
- end
- local function checkBuy(human)
- if (human.db.topupAcountDaily or 0) > 0 then
- return 1
- else
- return 0
- end
- end
- local function getState(day,signInDB,buyToday)
- if signInDB.cnt < day then
- return 0
- end
- if not signInDB.status[day] then
- return STATUS_TYPE1
- end
- if signInDB.status[day] == 1 and buyToday ~= 1 and signInDB.cnt == day then
- return STATUS_TYPE2
- end
- if signInDB.status[day] == 1 and buyToday == 1 and signInDB.cnt == day then
- return STATUS_TYPE3
- end
- return STATUS_TYPE4
- end
- local function getConfig(human)
- return LoginSignExcel.firstMonth
- end
- function query(human)
- -- 初始化数据库数据
- checkDB(human)
- local signInDB = human.db.signIn
- local msgRet = Msg.gc.GC_LOGIN_SIGN_QUERY
- local now = os.time()
- local time = Util.getDayStartTime()
- msgRet.nextTime = time + 24 * 60 * 60 - now
- msgRet.curCnt = signInDB.cnt
- msgRet.maxCnt = SIGN_DAY
- msgRet.actID = 1
- local len = 0
- local buyToday = checkBuy(human)
- local config = getConfig(human)
- for k,v in ipairs(config) do
- len = len + 1
- local net = msgRet.list[len]
- net.state = getState(k,signInDB,buyToday)
- Grid.makeItem(net.item,v.rewardID,v.cnt)
- end
- msgRet.list[0] = len
- Msg.send(msgRet,human.fd)
- end
- -- 发放物品
- function getReward(human,day)
- checkDB(human)
- local signInDB = human.db.signIn
- local buyToday = checkBuy(human)
- local state = getState(day,signInDB,buyToday)
- if state == 0 or state == STATUS_TYPE4 or state == STATUS_TYPE2 then
- return
- end
- local config = getConfig(human)
- local itemID = nil
- local itemCnt = nil
- itemID = config[day].rewardID
- itemCnt = config[day].cnt
- -- 改db
- signInDB.status[day] = signInDB.status[day] or 0
- signInDB.status[day] = signInDB.status[day] + 1
- BagLogic.cleanMomentItemList()
- BagLogic.updateMomentItem(1, itemID, itemCnt)
- BagLogic.addMomentItemList(human, "signInReward")
- query(human)
-
- for k, v in pairs(funcID) do
- YunYingLogic.updateIcon(YYInfo[k], human)
- YunYingLogic.sendGroupUpdate(YYInfo[k], human, PanelDefine.PANEL_ID_3502)
- break
- end
- GuideLogic.setDoSpecialGuide(human, GuideLogic.SKIPTYPE_JUMP_LOGINSIGN)
- end
- function isRed(human)
- checkDB(human)
- local signInDB = human.db.signIn
- local buyToday = checkBuy(human)
- local config = getConfig(human)
- for k,v in ipairs(config) do
- local state = getState(k,signInDB,buyToday)
- if state == STATUS_TYPE1 or state == STATUS_TYPE3 then
- return true
- end
- end
- end
- function chargeAfter(human)
- for k, v in pairs(funcID) do
- YunYingLogic.updateIcon(YYInfo[k], human)
- YunYingLogic.sendGroupUpdate(YYInfo[k], human, PanelDefine.PANEL_ID_3502)
- break
- end
- end
|