| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233 |
- --- 打赏返利
- local Util = require("common.Util")
- local ObjHuman = require("core.ObjHuman")
- local Msg = require("core.Msg")
- local Grid = require("bag.Grid")
- local ItemDefine = require("bag.ItemDefine")
- local BuyLogic = require("topup.BuyLogic")
- local BagLogic = require("bag.BagLogic")
- local YunYingLogic = require("yunying.YunYingLogic")
- local PanelDefine = require("broadcast.PanelDefine")
- local YyHandler = require("yunying.Handler")
- local KingWorldLogic = require("present.KingWorldLogic")
- local RoleSystemLogic = require("roleSystem.RoleSystemLogic")
- local RoleSystemDefine = require("roleSystem.RoleSystemDefine")
- local AbsActLogic = require("absAct.AbsActLogic")
- local AbsActExcel = require("excel.absAct")
- local AbsActDefine = require("absAct.AbsActDefine")
- local YunYingExcel = require("excel.yunying")
- function sortomp(a, b)
- local r1 = AbsActExcel.rechargeBack[a].need
- local r2 = AbsActExcel.rechargeBack[b].need
- return r1 < r2
- end
- function query(human, id)
- local state,endTime, starTime = AbsActLogic.isStarted(human, id)
- -- local state,id = AbsActLogic.isStartedByType(human, AbsActDefine.ABS_ACT_TYPE_10)
- if not state then return end
- AbsActLogic.checkAbsActClean(human, id)
- local absAct = human.db.absAct[id]
- -- 没有活动数据
- if not absAct then
- return
- end
- local absConfig = AbsActExcel.absActivity[id]
- local msgRet = Msg.gc.GC_ABS_RECHARGE_BACK_QUERY
- msgRet.recharge = absAct.topupAcount or 0
- msgRet.maxCnt = 0
- msgRet.isEnd = 0
- msgRet.startTime = starTime
- msgRet.endTime = endTime
- msgRet.panelID = absConfig.panelID
- if absConfig.panelID == PanelDefine.PANEL_ID_3106 then
- msgRet.startTime = 0
- msgRet.endTime = 0
- end
- local maxCnt = 0
- local len = 0
- local getDb = absAct.rechargeBackGet or {}
- local list = {}
- for k, config in pairs(AbsActExcel.rechargeBack) do
- if config and config.actID == absConfig.actId then
- maxCnt = maxCnt + 1
- list[#list + 1] = k
- end
- end
- table.sort( list , sortomp )
- for k, h in ipairs(list) do
- local config = AbsActExcel.rechargeBack[h]
- if k > 3 and msgRet.recharge < AbsActExcel.rechargeBack[list[k - 1]].need then
- else
- len = len + 1
- local net = msgRet.list[len]
- net.id = h
- net.need = config.need
- net.state = getDb[h] and 1 or 0
- for j, h in ipairs(config.items) do
- Grid.makeItem(net.reward[j], h[1], h[2])
- end
- net.reward[0] = #config.items
- if len >= 10 then
- msgRet.isEnd = 0
- msgRet.list[0] = len
- Msg.send(msgRet, human.fd)
- len = 0
- end
- end
- end
- msgRet.maxCnt = maxCnt
- msgRet.isEnd = 1
- msgRet.list[0] = len
- -- Msg.tarce(msgRet)
- Msg.send(msgRet, human.fd)
- end
- function get(human, panelID, id)
- local absID
- if panelID == PanelDefine.PANEL_ID_3106 then
- absID = 11001
- elseif panelID == PanelDefine.PANEL_ID_3309 then
- absID = 7001
- end
- local state,endTime, starTime = AbsActLogic.isStarted(human, absID)
- if not state then
- return
- end
- --[[
- local state,absID = AbsActLogic.isStartedByType(human, AbsActDefine.ABS_ACT_TYPE_10)
- if not state then
- return
- end
- ]]
-
- AbsActLogic.checkAbsActClean(human, absID)
- local absConfig = AbsActExcel.absActivity[absID]
- if absConfig.type ~= AbsActDefine.ABS_ACT_TYPE_10 then
- return
- end
- local config = AbsActExcel.rechargeBack[id]
- if not config then return end
- if config.actID ~= absConfig.actId then
- return
- end
- local absAct = human.db.absAct[absID]
- -- 没有活动数据
- if not absAct then
- return
- end
- local rechargeNum = absAct.topupAcount or 0
- if config.need > rechargeNum then
- return
- end
- if absAct.rechargeBackGet and absAct.rechargeBackGet[id] then
- return
- end
-
- absAct.rechargeBackGet = absAct.rechargeBackGet or {}
- absAct.rechargeBackGet[id] = 1
- local logType = "abs_rechargeBack"
- if absConfig.panelID == PanelDefine.PANEL_ID_3106 then
- logType = "rechargeBack"
- end
- BagLogic.addItemList(human, config.items, logType)
- YunYingLogic.updateIcon(YYInfo[absID], human)
- YunYingLogic.sendGroupUpdate(YYInfo[absID], human, panelID)
- query(human, absID)
- end
- function onCharge(human, price, funcID)
- local state,endTime, starTime = AbsActLogic.isStarted(human, funcID)
- if not state then return end
- local absConfig = AbsActExcel.absActivity[funcID]
- if absConfig.type == AbsActDefine.ABS_ACT_TYPE_10 then
- AbsActLogic.checkAbsActClean(human, funcID)
- local absAct = human.db.absAct[funcID]
- absAct.topupAcount = absAct.topupAcount or 0
- absAct.topupAcount = absAct.topupAcount + price
- YunYingLogic.updateIcon(YYInfo[funcID], human)
- YunYingLogic.sendGroupUpdate(YYInfo[funcID], human, absConfig.panelID)
- end
- end
- function isRed(human,YYInfo, funcConfig)
- local id = funcConfig.funcID
- --[[
- if funcConfig.panelID == PanelDefine.PANEL_ID_3106 then
- id = 11001
- elseif funcConfig.panelID == PanelDefine.PANEL_ID_3309 then
- id = 7001
- end
- ]]
-
- local state,endTime, starTime = AbsActLogic.isStarted(human, funcConfig.funcID)
- if not state then
- return
- end
- AbsActLogic.checkAbsActClean(human, id)
- local absConfig = AbsActExcel.absActivity[id]
- local absAct = human.db.absAct[id]
- local now = os.time()
- local getDb = absAct.rechargeBackGet or {}
- local rechargeNum = absAct.topupAcount or 0
- for k, config in pairs(AbsActExcel.rechargeBack) do
- if config.actID == absConfig.actId and rechargeNum >= config.need and not getDb[k] then
- return true
- end
- end
- return false
- end
- function isOpen(human, YYInfo, funcConfig)
- local state,endTime, starTime = AbsActLogic.isStarted(human, funcConfig.funcID)
- if state then
- return true
- end
-
- --[[
- local state,id = AbsActLogic.isStartedByType(human, AbsActDefine.ABS_ACT_TYPE_10)
- if not state then return end
- return true
- ]]
-
- end
- --
- function getLeftTime(human, YYInfo, funcConfig)
- if isOpen(human, YYInfo, funcConfig) then
- if funcConfig.panelID == PanelDefine.PANEL_ID_3309 then
- local absConfig = AbsActExcel.absActivity[7001]
- return absConfig.realEndTime - os.time()
- end
- end
- return 0
- end
|