| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264 |
- --[[
- absAct[id] = {
- cup[1] = 1
- chose = {1,2,3}
- state = 0
- huoyue = 0
- day = 1
- }
- ]]
- local AbsActLogic = require("absAct.AbsActLogic")
- local AbsActExcel = require("excel.absAct")
- local BuyExcel = require("excel.buy")
- local Util = require("common.Util")
- local Msg = require("core.Msg")
- local Grid = require("bag.Grid")
- local BagLogic = require("bag.BagLogic")
- local BuyLogic = require("topup.BuyLogic")
- local ObjHuman = require("core.ObjHuman")
- local Lang = require("common.Lang")
- local Broadcast = require("broadcast.Broadcast")
- local MailManager = require("mail.MailManager")
- local MailExcel = require("excel.mail")
- local YunYingLogic = require("yunying.YunYingLogic")
- function isOpen(human, YYInfo, funcConfig)
- local state, endTime, startTime = AbsActLogic.isStarted(human, funcConfig.funcID)
- if not state then return end
- local absAct = human.db.absAct[funcConfig.funcID]
- if absAct and absAct.dayCnt and absAct.dayCnt <= 0 and #absAct.item <= 0 then
- return false
- end
- return true, endTime, startTime
- end
- function isActive(human, YYInfo, funcConfig)
- return not isOpen(human, YYInfo, funcConfig)
- end
- function getAndSendMsg(human,id)
- -- 判断活动是否开启
- local state, endTime, starTime = AbsActLogic.isStarted(human, id)
- if not state then return end
- local absConfig = AbsActExcel.absActivity[id]
- if not absConfig then return end
- local absAct = human.db.absAct[id]
- if not absAct then
- return
- end
- local nowDay = Util.diffDay(starTime) + 1
- absAct.cup = absAct.cup or {1,1,1,1}
- absAct.chose = absAct.chose or {}
- absAct.state = absAct.state or 0
- local config = AbsActExcel.wishCup
- local msgRet = Msg.gc.GC_ABS_HF_WISH_CUP_QUERY
- local len = #config
- local count = 0
- for i = 1,len do
- v = config[i]
- if v.actId == absConfig.actId and nowDay == v.day then
- count = count + 1
- local cupId = i%6
- cupId = cupId == 0 and 6 or cupId
- msgRet.cupList[count].id = cupId
- msgRet.cupList[count].desc = v.desc
- if v.lock == 0 then
- msgRet.cupList[count].state = 0
- if absAct.chose[cupId] then
- msgRet.cupList[count].state = 1
- end
- else
- msgRet.cupList[count].state = 2
- if absAct.cup[cupId] then
- msgRet.cupList[count].state = 0
- end
- if absAct.chose[cupId] then
- msgRet.cupList[count].state = 1
- end
- end
- local rewardLen = #v.item
- for j = 1,rewardLen do
- local itemID = v.item[j][1]
- local itemCnt = v.item[j][2]
- Grid.makeItem(msgRet.cupList[count].item[j],itemID,itemCnt)
- end
- msgRet.cupList[count].item[0] = rewardLen
- end
- end
- msgRet.cupList[0] = count
- msgRet.state = absAct.state
- Msg.send(msgRet,human.fd)
- end
- -- 选择圣杯
- function selectCup(human,id,one,two,three)
- -- 判断活动是否开启
- local msgRet = Msg.gc.GC_ABS_HF_WISH_CUP_SELECT
- msgRet.ret = 0
- local state, endTime, starTime = AbsActLogic.isStarted(human, id)
- if not state then
- Msg.send(msgRet,human.fd)
- return
- end
- local absConfig = AbsActExcel.absActivity[id]
- if not absConfig then
- Msg.send(msgRet,human.fd)
- return
- end
- local absAct = human.db.absAct[id]
- if not absAct then
- Msg.send(msgRet,human.fd)
- return
- end
- local nowDay = Util.diffDay(starTime) + 1
- absAct.cup = absAct.cup or {1,1,1,1}
- absAct.chose = absAct.chose or {}
- absAct.state = absAct.state or 0
- absAct.day = nowDay
- absAct.actId = absConfig.actId
- -- 已许愿,不可更改
- if absAct.state ~= 0 then
- Msg.send(msgRet,human.fd)
- return
- end
- -- 杯子未解锁
- if not absAct.cup[one] or not absAct.cup[two] or not absAct.cup[three] then
- Msg.send(msgRet,human.fd)
- return
- end
-
- -- 保存选择
- absAct.chose[one] = 1
- absAct.chose[two] = 1
- absAct.chose[three] = 1
-
- -- 设置状态
- absAct.state = 1
- msgRet.ret = 1
- Msg.send(msgRet,human.fd)
- getAndSendMsg(human,id)
-
- YunYingLogic.sendBanner(human)
- YunYingLogic.updateIcon(YYInfo[id], human)
- YunYingLogic.sendGroupUpdate(YYInfo[id], human, absConfig.panelID)
- end
- -- 每日任务活跃度
- function onDailyTask(human,funcID, parameter)
- AbsActLogic.checkAbsActClean(human, funcID)
- local absAct = human.db.absAct[funcID]
- if not absAct then
- return
- end
- absAct.huoyue = absAct.huoyue or 0
- absAct.huoyue = absAct.huoyue + parameter
- if absAct.huoyue >= 100 then
- activeCup(human,funcID,5)
- end
- end
- -- 充值
- function onCharge(human, parameter,funcID)
- AbsActLogic.checkAbsActClean(human, funcID)
- local absAct = human.db.absAct[funcID]
- if not absAct then
- return
- end
- activeCup(human,funcID,6)
- end
- -- 完成任务回调
- function activeCup(human,id,cupId)
- local absAct = human.db.absAct[id]
- if not absAct then
- return
- end
- absAct.cup = absAct.cup or {1,1,1,1}
- absAct.chose = absAct.chose or {}
- absAct.state = absAct.state or 0
- absAct.cup[cupId] = 1
- end
- -- 每日发放礼包
- function updateDaily(human,id)
- local absConfig = AbsActExcel.absActivity[id]
- if not absConfig then return end
- local absAct = human.db.absAct[id]
- if not absAct then
- return
- end
-
- absAct.huoyue = 0
- absAct.cup = absAct.cup or {1,1,1,1}
- absAct.chose = absAct.chose or {}
- absAct.state = absAct.state or 0
- local config = AbsActExcel.wishCup
- local len = #config
- local item = {}
- absAct.cup = {1,1,1,1}
- if absAct.state ~= 1 then
- absAct.chose = {}
- return
- end
- for i = 1,len do
- if config[i].actId == absAct.actId and absAct.day == config[i].day then
- local cupId = i%6
- cupId = cupId == 0 and 6 or cupId
- if absAct.chose[cupId] then
- for j = 1,#config[i].item do
- item[#item + 1] = {config[i].item[j][1],config[i].item[j][2]}
- end
- end
- end
- end
-
- absAct.chose = {}
- absAct.state = 0
- absAct.day = nil
- local mailConfig = MailExcel.mail[2007]
- local title = mailConfig.title
- local senderName = mailConfig.senderName
- local content = mailConfig.content
- MailManager.add(MailManager.SYSTEM, human.db._id, title, content, item, senderName)
-
- YunYingLogic.sendBanner(human)
- YunYingLogic.updateIcon(YYInfo[id], human)
- YunYingLogic.sendGroupUpdate(YYInfo[id], human, absConfig.panelID)
- end
- function isRed(human, YYInfo, funcConfig)
- local state,endTime,starTime = AbsActLogic.isStarted(human, funcConfig.funcID)
- if not state then return end
- local absConfig = AbsActExcel.absActivity[funcConfig.funcID]
- local absAct = human.db.absAct[funcConfig.funcID]
- if not absAct then return end
-
- absAct.cup = absAct.cup or {1,1,1,1}
- absAct.chose = absAct.chose or {}
- absAct.state = absAct.state or 0
- if absAct.state ~= 1 then
- return true
- end
- return false
- end
|