--七日豪礼 local Msg = require("core.Msg") local SevenDayGiftExcel = require("excel.present").sevenDayGift local BuyExcel = require("excel.buy") local BuyLogic = require("topup.BuyLogic") local Grid = require("bag.Grid") local BagLogic = require("bag.BagLogic") local Util = require("common.Util") local Lang = require("common.Lang") local Broadcast = require("broadcast.Broadcast") local CommonDB = require("common.CommonDB") local TopupLogic = require("topup.TopupLogic") local YunYingLogic = require("yunying.YunYingLogic") local PanelDefine = require("broadcast.PanelDefine") local SceneHandler = require("scene.Handler") SEVENDAYGIFT_BUY_NO = 0 --没买 SEVENDAYGIFT_BUY_HAD = 1 --已买 local function isBuy(human,id) local godDailyTopup = human.db.godDailyTopup local status = 0 if godDailyTopup and godDailyTopup[id] and godDailyTopup[id].pay then status = 1 end return status end -- 检查活动是否开启 function check(human,noSend) if not SceneHandler.canCharge(human) then return end local openLv = YunYingLogic.getOpenLvByPanelID(PanelDefine.PANEL_ID_62) if human.db.lv < openLv then if not noSend then local str = Util.format(Lang.ROLE_LEV_ERROR,openLv) return Broadcast.sendErr(human,str) end end for i=1,#SevenDayGiftExcel do local isBuy = isBuy(human,i) if isBuy == SEVENDAYGIFT_BUY_NO then return true end end end function makeGiftMsg(human,net,config,id) net.id = config.realId local buyID = config.buyID net.giftVipExp = config.vipExp net.item[0] = #config.reward for j = 1,#config.reward do Grid.makeItem(net.item[j],config.reward[j][1],config.reward[j][2]) end BuyLogic.fontBuyItem(human,net.buyMsg, buyID) local godDailyTopup = human.db.godDailyTopup local status = 0 if godDailyTopup and godDailyTopup[id] and godDailyTopup[id].pay then status = 1 end net.status = status end --七日豪礼查询 function query(human) if not check(human) and not SevenLoginDayLogic.isBaseOpen(human) then return end local msgRet = Msg.gc.GC_SEVENDAYGIFT_QUERY local today = Util.diffDay(human.db.createTime) + 1 if today > #SevenDayGiftExcel then today = #SevenDayGiftExcel + 1 end msgRet.today = today msgRet.giftMsg[0] = #SevenDayGiftExcel for i=1,#SevenDayGiftExcel do makeGiftMsg(human,msgRet.giftMsg[i],SevenDayGiftExcel[i],i) end --Msg.trace(msgRet) Msg.send(msgRet,human.fd) end function dailyTopupBuy(human,id) if not check(human) and not SevenLoginDayLogic.isBaseOpen(human) then return end -- 礼包不存在 local config = SevenDayGiftExcel[id] if not config then return Broadcast.sendErr(human,Lang.ACT_WAS_OVER) end local today = Util.diffDay(human.db.createTime) + 1 if id > today then return Broadcast.sendErr(human,Lang.TOMORROW_OPEN) end -- 礼包已购买 if human.db.godDailyTopup and human.db.godDailyTopup[id] and human.db.godDailyTopup[id].pay ~= nil then return Broadcast.sendErr(human,Lang.COMMON_LIBAO_HADBUY) end -- 写db human.db.godDailyTopup = human.db.godDailyTopup or {} human.db.godDailyTopup[id] = human.db.godDailyTopup[id] or {} human.db.godDailyTopup[id].pay = 1 -- 发货 BagLogic.addItemList(human, config.reward, "seven_DayGift") update(human,id) for k, v in pairs(funcID) do YunYingLogic.updateIcon(YYInfo[k], human) YunYingLogic.sendGroupUpdate(YYInfo[k], human, PanelDefine.PANEL_ID_102) break end end function update(human,id) local msgRet = Msg.gc.GC_SEVENDAYGIFT_UPDATE local config = SevenDayGiftExcel[id] if not config then return end makeGiftMsg(human,msgRet.giftMsg,config,id) --Msg.trace(msgRet) Msg.send(msgRet,human.fd) end function isBaseOpen(human,noSend) if not SceneHandler.canCharge(human) then return end if check(human,noSend) then return true end end function isOpen(human) if isBaseOpen(human,true) or SevenLoginDayLogic.isBaseOpen(human,true) then return true end end