| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144 |
- local AbsActExcel = require("excel.absAct")
- local Lang = require("common.Lang")
- local Util = require("common.Util")
- local Msg = require("core.Msg")
- local Broadcast = require("broadcast.Broadcast")
- local Grid = require("bag.Grid")
- local BagLogic = require("bag.BagLogic")
- local ItemDefine = require("bag.ItemDefine")
- local AbsActDefine = require("absAct.AbsActDefine")
- local AbsActLogic = require("absAct.AbsActLogic")
- local YunYingLogic = require("yunying.YunYingLogic")
- local HeroGrid = require("hero.HeroGrid")
- local PanelDefine = require("broadcast.PanelDefine")
- local HeroDefine = require("hero.HeroDefine")
- --[[
- absAct.xlxs-everyDayPray
- 新英雄来袭-每日祈福
- DB:
- human.db.absAct[id] = {
- itemGet = xxx, -- 最后的奖励是否已领取 1已领 0 未领
- xxx = 1, -- 指定天数奖励是否领取了
- ...
- }
- public:
- getAndSendMsg() -- 发送活动数据
- isRed() -- 红点提醒
- isActive() -- 激活状态
- isOpen() -- 活动开启
- get() -- 领取奖励
- --]]
- function getAndSendMsg(human, id)
- local absConfig = AbsActExcel.absActivity[id]
- local config = AbsActExcel.everyDayPray[absConfig.actId]
- if not config then return end
- AbsActLogic.checkAbsActClean(human, id)
- local absAct = human.db.absAct[id]
-
- local msgRet = Msg.gc.GC_ABS_ACT_EVERY_DAY_PRAY_QUERY
- msgRet.openDay = Util.diffDay(absConfig.realStartTime) + 1
- local heroCnt = 0
- for k, v in ipairs(config.items) do
- Grid.makeItem(msgRet.items[k], v[1], v[2])
- if HeroDefine.isHero(v[1]) then
- heroCnt = heroCnt + 1
- HeroGrid.makeHeroSimpleByID(msgRet.heroSimple[heroCnt], v[1])
- end
- end
- msgRet.itemGet = absAct.itemGet and 1 or 0
- msgRet.get[0] = 0
- for k, v in ipairs(config.loginReward) do
- Grid.makeItem(msgRet.login[k], v[1], v[2])
- if absAct[k] then
- msgRet.get[0] = msgRet.get[0] + 1
- msgRet.get[msgRet.get[0]] = k
- end
- end
- msgRet.heroSimple[0] = heroCnt
- msgRet.items[0] = #config.items
- msgRet.login[0] = #config.loginReward
- Msg.send(msgRet,human.fd)
- end
- function isRed(human, YYInfo, funcConfig)
- local state = AbsActLogic.isStarted(human, funcConfig.funcID)
- if not state then return end
- AbsActLogic.checkAbsActClean(human, funcConfig.funcID)
- local absAct = human.db.absAct[funcConfig.funcID]
- if not absAct then return end
- local absConfig = AbsActExcel.absActivity[funcConfig.funcID]
- local config = AbsActExcel.everyDayPray[absConfig.actId]
-
- local day = Util.diffDay(absConfig.realStartTime) + 1
- day = day > #config.loginReward and #config.loginReward or day
- for i = 1, day do
- if not absAct[i] then
- return true
- end
- end
- if day >= #config.loginReward then
- if not absAct.itemGet then
- return true
- end
- end
- end
- function isActive(human, YYInfo, funcConfig)
- return not isOpen(human, YYInfo, funcConfig)
- end
- function isOpen(human, YYInfo, funcConfig)
- return AbsActLogic.isStarted(human, funcConfig.funcID)
- end
- function get(human, type, id, param)
- local state= AbsActLogic.isStarted(human, id)
- if not state then return end
- AbsActLogic.checkAbsActClean(human, id)
- local absAct = human.db.absAct[id]
- local absConfig = AbsActExcel.absActivity[id]
- local config = AbsActExcel.everyDayPray[absConfig.actId]
- if not config then return end
- local day = Util.diffDay(absConfig.realStartTime) + 1
- if type == 0 then
- day = day > #config.loginReward and #config.loginReward or day
-
- BagLogic.cleanMomentItemList()
- local len = 0
- for i = 1, day do
- if not absAct[i] then
- absAct[i] = 1
- len = len + 1
- BagLogic.updateMomentItem(BagLogic.ADDITEM_TYPE_1, config.loginReward[i][1], config.loginReward[i][2])
- end
- end
- if len > 0 then
- BagLogic.addMomentItemList(human, "abs_every_day_pray_get")
- end
- else
- if day < #config.loginReward then
- return
- end
- if absAct.itemGet then return end
- absAct.itemGet = 1
- BagLogic.cleanMomentItemList()
- BagLogic.updateMomentItem(BagLogic.ADDITEM_TYPE_1, config.items[param][1], config.items[param][2])
- BagLogic.addMomentItemList(human, "abs_every_day_pray_get")
- end
- getAndSendMsg(human, id)
- YunYingLogic.sendBanner(human)
- YunYingLogic.updateIcon(YYInfo[id], human)
- YunYingLogic.sendGroupUpdate(YYInfo[id], human, PanelDefine.PANEL_ID_5011)
- end
|