瀏覽代碼

提交周活动抽卡下发问题

SCFC 10 月之前
父節點
當前提交
fca8de2093
共有 1 個文件被更改,包括 467 次插入454 次删除
  1. 467 454
      script/module/WeekendLoopActivity/WeekendLoopActCard.lua

+ 467 - 454
script/module/WeekendLoopActivity/WeekendLoopActCard.lua

@@ -1,455 +1,468 @@
---------------------------------
--- 文件名       :  WeekendLoopActCard.lua
--- 文件说明     :  周末冲刺活动-抽卡
--- 创建时间     :   2024/12/03
--- 创建人       :   FC
---------------------------------
-local Util = require("common.Util")
-local Lang = require("common.Lang")
-local Broadcast = require("broadcast.Broadcast")
-local MailExcel = require("excel.mail")
-local Msg = require("core.Msg")
-local ObjHuman = require("core.ObjHuman")
-local WeekLoopActDef = require("WeekendLoopActivity.WeekendLoopActDefine")
-local WeekLoopActCof = require("excel.WeekLoopAct")
-local CommonDB = require("common.CommonDB")
-local MailManager = require("mail.MailManager")
-local Grid = require("bag.Grid")
-local HeroGrid = require("hero.HeroGrid")
-local HeroLogic = require("hero.HeroLogic")
-local BagLogic = require("bag.BagLogic")
-local Log = require("common.Log")
-local HeroExcel = require("excel.hero")
-local WeekendLoopActManger = require("WeekendLoopActivity.WeekendLoopActManager")
-
------------------------------------------ 内部处理开始 -------------------------------------
-tCardPrize = nil
-
--- 写日志
-local function WeekActCard_WriteLog(human, szFuncName, sztext)
-    Log.write(Log.LOGID_OSS_WEEKLOOP_ACT, szFuncName..sztext.." _id = "..human.db._id.." name = "..human.db.name)
-end
-
--- 下发数据
-local function WeekActCard_SendData(tMsgData, fd)
-    Msg.send(tMsgData, fd)
-end
-
--- 获取配置
-local function WeekActCard_GetConfig()
-    if not WeekLoopActCof then
-        return nil
-    end
-
-    return WeekLoopActCof.Card
-end
-
--- 获取配置
-local function WeekActCard_GetConfigByType(nType)
-    if not tCardPrize or not tCardPrize[nType] then
-        return nil
-    end
-
-    return tCardPrize[nType]
-end
-
--- 初始化抽卡类型
-local function WeekActCard_ResetCardType(human)
-    if not human then
-        print("[WeekActCard_ResetCardType] 参数不正确")
-        return false
-    end
-
-    if not human.db.nWeekCardType then
-        human.db.nWeekCardType = 1
-    else
-        -- math.fmod()
-        local nLen = (human.db.nWeekCardType + 1) % WeekLoopActDef.WEEKACT_CARD_TYPE_LEN
-        human.db.nWeekCardType = (0 == nLen) and WeekLoopActDef.WEEKACT_CARD_TYPE_LEN or nLen
-    end
-
-    return true
-end
-
--- 获取抽卡类型
-local function WeekActCard_GetCardType(human)
-    if not human then
-        print("[WeekActCard_GetCardType] 参数不正确")
-        return -1
-    end
-
-    return WeekendLoopActManger.WeekLoopACT_GetCardBatch()
-    -- if not human.db.nWeekCardType then
-    --     local bRet = WeekActCard_ResetCardType(human)
-    --     if false == bRet then
-    --         WeekActCard_WriteLog(human, "[WeekActCard_GetCardType]", "获取抽卡类型,不存在对应字段,重新初始化失败")
-    --         return -1
-    --     end
-
-    --     WeekActCard_WriteLog(human, "[WeekActCard_GetCardType]", "获取抽卡类型,不存在对应字段,初始化顺序有问题, 重新初始化成功")
-    -- end
-
-    -- return human.db.nWeekCardType
-end
-
--- 通过人物抽卡类型获取配置
-local function WeekActCard_GetConfigByHuman(human)
-    if not human then
-        return nil
-    end
-
-    local nNowType = WeekActCard_GetCardType(human)
-    if -1 >= nNowType then
-        return nil
-    end
-
-    return WeekActCard_GetConfigByType(nNowType)
-end
-
--- 初始化奖励信息
-local function WeekActCard_ResetPrize(human)
-    if not human then
-        return false
-    end
-
-    local nNowType = WeekActCard_GetCardType(human)
-    if -1 >= nNowType then
-        print("[WeekActCard_ResetPrize] 获取抽卡类型失败")
-        return false
-    end
-
-    local tConfig = WeekActCard_GetConfigByType(nNowType)
-    if not tConfig then
-        return false
-    end
-
-    if not human.db.tWeekCardPrize then
-        human.db.tWeekCardPrize = {}
-    end
-
-    for nID, v in pairs(tConfig) do
-        human.db.tWeekCardPrize[nID] = WeekLoopActDef.WEEKACT_STATE_NONE
-    end
-    
-    return true
-end
-
--- 获取奖励表
-local function WeekActCard_GetDBPrize(human)
-    if not human then
-        return nil
-    end
-
-    if not human.db.tWeekCardPrize then
-        return nil
-    end
-    
-    return human.db.tWeekCardPrize
-end
-
--- 获取奖励ID状态
-local function WeekActCard_GetPrizeStatus(human, nID)
-    if not human then
-        return WeekLoopActDef.WEEKACT_STATE_NONE
-    end
-
-    local tPrize = WeekActCard_GetDBPrize(human)
-    if not tPrize or not tPrize[nID] then
-        return WeekLoopActDef.WEEKACT_STATE_NONE
-    end
-    
-    return tPrize[nID]
-end
-
--- 设置奖励ID状态
-local function WeekActCard_SetPrizeStatus(human, nID, nStatus)
-    if not human then
-        return false
-    end
-
-    local tPrize = WeekActCard_GetDBPrize(human)
-    if not tPrize or not tPrize[nID] then
-        print("[WeekActCard_SetPrizeStatus] 获取不到对应的奖励表 "..nID.." nStatus = "..nStatus)
-        return false
-    end
-
-    tPrize[nID] = nStatus
-
-    return true
-end
-
--- 初始化抽卡数量
-local function WeekActCard_ResetCardNum(human)
-    if not human then
-        print("[WeekActCard_ResetCardNum] 参数不正确")
-        return false
-    end
-
-    human.db.nWeekCardNum = 0
-
-    return true
-end
-
--- 获取抽卡数量
-local function WeekActCard_GetCardNum(human)
-    if not human then
-        print("[WeekActCard_GetCardNum] 参数不正确")
-        return -1
-    end
-
-    if not human.db.nWeekCardNum then
-        local bRet = WeekActCard_ResetCardNum(human)
-        if false == bRet then
-           WeekActCard_WriteLog(human, "[WeekActCard_GetGuYuNum]", "获取抽卡数量,不存在对应字段,重新初始化失败")
-            return -1
-        end
-
-       WeekActCard_WriteLog(human, "[WeekActCard_GetGuYuNum]", "获取抽卡数量,不存在对应字段,初始化顺序有问题, 重新初始化成功")
-    end
-
-    return human.db.nWeekCardNum
-end
-
--- 设置抽卡数量
-local function WeekActCard_SetCardNum(human, nValue)
-    if not human then
-        print("[WeekActCard_SetCardNum] 参数不正确")
-        return
-    end
-
-    local nNowCard = WeekActCard_GetCardNum(human)
-    if -1 >= nNowCard then
-       WeekActCard_WriteLog(human, "[WeekActCard_SetCardNum]", "获取古玉数量失败")
-        return
-    end
-
-    local nNewGuYu = nNowCard + nValue
-    if 0 > nNewGuYu then
-        nNewGuYu = 0
-    end
-
-    human.db.nWeekCardNum = nNewGuYu
-end
-
------------------------------------------ 外部调用 -------------------------------------
-function Init()
-    tCardPrize = {}
-    local tConfig = WeekActCard_GetConfig()
-    if not tConfig then
-        return false
-    end
-
-    for nID, v in pairs(tConfig) do
-        local nType = v.nType
-        if not tCardPrize[nType] then
-            tCardPrize[nType] = {}
-        end
-
-        local nTrueID = nID % WeekLoopActDef.WEEKACT_CARD_PRIZEID_LEN
-        tCardPrize[nType][nTrueID] = v
-    end
-
-    return true
-end
-
--- 重置数据
-function WeekActCard_ResetData(human)
-    if not human then
-        return
-    end
-
-    -- 先更新抽卡类型
-    --WeekActCard_ResetCardType(human)
-
-    -- 重置抽卡数量
-    WeekActCard_ResetCardNum(human)
-
-    -- 重置奖励信息
-    if false == WeekActCard_ResetPrize(human) then
-        print("[WeekActCard_ResetData] 重置抽卡奖励数据失败")
-        return
-    end
-
-    WeekActCard_WriteLog(human, "[WeekActCard_ResetData]", "抽卡奖励相关重置完成")
-
-    print("[WeekActCard_ResetData] 抽卡 数据重置结束 ")
-end
-
--- 是否有红点
-function isRed(human)
-    local tPrize = WeekActCard_GetConfigByHuman(human)
-    if not tPrize then
-        return false
-    end
-
-    for nID, v in pairs(tPrize) do
-        if WeekLoopActDef.WEEKACT_STATE_CANGET == WeekActCard_GetPrizeStatus(human, nID) then
-            return true
-        end
-    end
-
-    return false
-end
-
--- 抽卡回调
-function WeekActCard_UseCard(human, nAddNum, nType)
-    if not human or 0 >= nAddNum then
-        return
-    end
-
-    WeekActCard_WriteLog(human, "WeekActCard_UseCard", "玩家进行了抽卡回调开始 nAddNum = "..nAddNum.." 类型 nType = "..nType)
-
-    local nNowType = WeekActCard_GetCardType(human)
-    print("[WeekActCard_UseCard] nNowType = "..nNowType.." nType = "..nType)
-    if nNowType ~= nType then
-        return
-    end
-
-    local DBID = human.db._id
-    local szName = human.db.name
-    local tConfig = WeekActCard_GetConfigByHuman(human)
-    if not tConfig then
-        print("[WeekActCard_UseCard] 获取不到配置 DBID = "..DBID.." name = "..szName)
-        return
-    end
-
-    WeekActCard_SetCardNum(human, nAddNum)
-    
-    local nNowCard = WeekActCard_GetCardNum(human)
-    if -1 >= nNowCard then
-        WeekActCard_WriteLog(human, "[WeekActCard_UseCard]", "获取玩家当前抽卡次数失败 nAddNum = "..nAddNum)
-        print("[WeekActCard_UseCard] 获取不到抽卡次数 DBID = "..DBID.." name = "..szName.." nAddNum = "..nAddNum)
-        return
-    end
-
-    local bChange = false
-    for nID, v in pairs(tConfig) do
-        local nStatus = WeekActCard_GetPrizeStatus(human, nID)
-        if nNowCard >= v.nNum and WeekLoopActDef.WEEKACT_STATE_NONE == nStatus then
-            bChange = true
-            local bRet = WeekActCard_SetPrizeStatus(human, nID, WeekLoopActDef.WEEKACT_STATE_CANGET)
-            if false == bRet then
-                print("[WeekActCard_UseCard] 设置失败 nID = "..nID.." nStatus = "..nStatus.." num = "..v.nNum)
-            end
-        end
-    end
-
-    if true == bChange then
-        WeekActCard_Query(human)
-        WeekendLoopActManger.WeekLoopACT_SendActInfo(human)
-    end
-
-    WeekActCard_WriteLog(human, "WeekActCard_UseCard", "玩家进行了抽卡回调处理结束 nAddNum = "..nAddNum.." 类型 nType = "..nType)
-end
-
--- 获取名称
-function GetName(human)
-    if not human then
-        return WeekLoopActDef.TWEEKACT_CARD_PANELID_NAME[1]
-    end
-
-    local nNowCardType = WeekActCard_GetCardType(human)
-    if -1 >= nNowCardType then
-        return WeekLoopActDef.TWEEKACT_CARD_PANELID_NAME[1]
-    end
-
-    if not WeekLoopActDef.TWEEKACT_CARD_PANELID_NAME[nNowCardType] then
-        return WeekLoopActDef.TWEEKACT_CARD_PANELID_NAME[1]
-    end
-
-    return WeekLoopActDef.TWEEKACT_CARD_PANELID_NAME[nNowCardType]
-end
-
------------------------------------------ 客户端请求 -------------------------------------
--- 客户端请求-抽卡信息
-function WeekActCard_Query(human)
-    if not human then
-        return
-    end
-
-    local DBID = human.db._id
-    local szName = human.db.name
-
-    local tConfig = WeekActCard_GetConfigByHuman(human)
-    if not tConfig then
-        print("[WeekActCard_Query] 获取不到配置 DBID = "..DBID.." name = "..szName)
-        return
-    end
-
-    local tMsgData = Msg.gc.GC_WEEKLOOP_ACT_CARDQUERY
-    tMsgData.byType = WeekActCard_GetCardType(human)
-    tMsgData.nNowNum = WeekActCard_GetCardNum(human)
-    tMsgData.list[0] = 0
-
-    for nID, v in pairs(tConfig) do
-        tMsgData.list[0] = tMsgData.list[0] + 1
-        local tData = tMsgData.list[tMsgData.list[0]]
-        tData.nNum = v.nNum
-        tData.nID = nID
-        tData.desc = v.szdesc
-        tData.nState = WeekActCard_GetPrizeStatus(human, nID)
-
-        tData.item[0] = #v.prize
-
-        for nIndex, tItem in ipairs(v.prize) do
-            local nGoodsID = tItem[1]
-            local nGoodsNum = tItem[2]
-
-            Grid.makeItem(tData.item[nIndex], nGoodsID, nGoodsNum)
-        end
-    end
-
-    WeekActCard_SendData(tMsgData, human.fd)
-end
-
--- 客户端请求领取奖励
-function WeekActCard_GetPrize(human)
-    if not human then
-        return
-    end
-
-    local DBID = human.db._id
-    local szName = human.db.name
-
-    local tConfig = WeekActCard_GetConfigByHuman(human)
-    if not tConfig then
-        print("[WeekActCard_GetPrize] 获取不到配置 DBID = "..DBID.." name = "..szName)
-        return
-    end
-
-    local tItemList = {}
-    for nID, v in pairs(tConfig) do
-        if WeekLoopActDef.WEEKACT_STATE_CANGET == WeekActCard_GetPrizeStatus(human, nID) then
-            if false == WeekActCard_SetPrizeStatus(human, nID, WeekLoopActDef.WEEKACT_STATE_FINISH) then
-                print("[WeekActCard_GetPrize] 奖励领取失败 nID = "..nID)
-                WeekActCard_WriteLog(human, "[WeekActCard_GetPrize]", "领取奖励, 设置奖励状态失败 nID = "..nID)
-                break
-            end
-
-            for _, data in ipairs(v.prize) do
-                local nItemID = data[1]
-                local nItemNum = data[2]
-
-                tItemList[nItemID] = tItemList[nItemID] or 0
-                tItemList[nItemID] = tItemList[nItemID] + nItemNum
-            end
-        end
-    end
-
-    if nil ~= _G.next(tItemList) then
-        local tGoodsInfo = {}
-        for k, v in pairs(tItemList) do
-            table.insert(tGoodsInfo, {k,v})
-
-            -- 获取奖励写日志
-            WeekActCard_WriteLog(human, "[WeekActCard_GetPrize]", "玩家获取奖励 nGoodsID = "..k.." nGoodsNum = "..v)
-        end
-
-        BagLogic.addItemList(human, tGoodsInfo, "week_loop_act")
-
-        BagLogic.sendItemGetList(human, tItemList, "week_loop_act")
-    end
-
-    WeekActCard_Query(human)
-    WeekendLoopActManger.WeekLoopACT_SendActInfo(human)
+--------------------------------
+-- 文件名       :  WeekendLoopActCard.lua
+-- 文件说明     :  周末冲刺活动-抽卡
+-- 创建时间     :   2024/12/03
+-- 创建人       :   FC
+--------------------------------
+local Util = require("common.Util")
+local Lang = require("common.Lang")
+local Broadcast = require("broadcast.Broadcast")
+local MailExcel = require("excel.mail")
+local Msg = require("core.Msg")
+local ObjHuman = require("core.ObjHuman")
+local WeekLoopActDef = require("WeekendLoopActivity.WeekendLoopActDefine")
+local WeekLoopActCof = require("excel.WeekLoopAct")
+local CommonDB = require("common.CommonDB")
+local MailManager = require("mail.MailManager")
+local Grid = require("bag.Grid")
+local HeroGrid = require("hero.HeroGrid")
+local HeroLogic = require("hero.HeroLogic")
+local BagLogic = require("bag.BagLogic")
+local Log = require("common.Log")
+local HeroExcel = require("excel.hero")
+local WeekendLoopActManger = require("WeekendLoopActivity.WeekendLoopActManager")
+
+----------------------------------------- 内部处理开始 -------------------------------------
+tCardPrize = nil
+
+-- 写日志
+local function WeekActCard_WriteLog(human, szFuncName, sztext)
+    Log.write(Log.LOGID_OSS_WEEKLOOP_ACT, szFuncName..sztext.." _id = "..human.db._id.." name = "..human.db.name)
+end
+
+-- 下发数据
+local function WeekActCard_SendData(tMsgData, fd)
+    Msg.send(tMsgData, fd)
+end
+
+-- 获取配置
+local function WeekActCard_GetConfig()
+    if not WeekLoopActCof then
+        return nil
+    end
+
+    return WeekLoopActCof.Card
+end
+
+-- 获取配置
+local function WeekActCard_GetConfigByType(nType)
+    if not tCardPrize or not tCardPrize[nType] then
+        return nil
+    end
+
+    return tCardPrize[nType]
+end
+
+-- 初始化抽卡类型
+local function WeekActCard_ResetCardType(human)
+    if not human then
+        print("[WeekActCard_ResetCardType] 参数不正确")
+        return false
+    end
+
+    if not human.db.nWeekCardType then
+        human.db.nWeekCardType = 1
+    else
+        -- math.fmod()
+        local nLen = (human.db.nWeekCardType + 1) % WeekLoopActDef.WEEKACT_CARD_TYPE_LEN
+        human.db.nWeekCardType = (0 == nLen) and WeekLoopActDef.WEEKACT_CARD_TYPE_LEN or nLen
+    end
+
+    return true
+end
+
+-- 获取抽卡类型
+local function WeekActCard_GetCardType(human)
+    if not human then
+        print("[WeekActCard_GetCardType] 参数不正确")
+        return -1
+    end
+
+    return WeekendLoopActManger.WeekLoopACT_GetCardBatch()
+    -- if not human.db.nWeekCardType then
+    --     local bRet = WeekActCard_ResetCardType(human)
+    --     if false == bRet then
+    --         WeekActCard_WriteLog(human, "[WeekActCard_GetCardType]", "获取抽卡类型,不存在对应字段,重新初始化失败")
+    --         return -1
+    --     end
+
+    --     WeekActCard_WriteLog(human, "[WeekActCard_GetCardType]", "获取抽卡类型,不存在对应字段,初始化顺序有问题, 重新初始化成功")
+    -- end
+
+    -- return human.db.nWeekCardType
+end
+
+-- 通过人物抽卡类型获取配置
+local function WeekActCard_GetConfigByHuman(human)
+    if not human then
+        return nil
+    end
+
+    local nNowType = WeekActCard_GetCardType(human)
+    if -1 >= nNowType then
+        return nil
+    end
+
+    return WeekActCard_GetConfigByType(nNowType)
+end
+
+-- 初始化奖励信息
+local function WeekActCard_ResetPrize(human)
+    if not human then
+        return false
+    end
+
+    local nNowType = WeekActCard_GetCardType(human)
+    if -1 >= nNowType then
+        print("[WeekActCard_ResetPrize] 获取抽卡类型失败")
+        return false
+    end
+
+    local tConfig = WeekActCard_GetConfigByType(nNowType)
+    if not tConfig then
+        return false
+    end
+
+    if not human.db.tWeekCardPrize then
+        human.db.tWeekCardPrize = {}
+    end
+
+    for nID, v in pairs(tConfig) do
+        human.db.tWeekCardPrize[nID] = WeekLoopActDef.WEEKACT_STATE_NONE
+    end
+    
+    return true
+end
+
+-- 获取奖励表
+local function WeekActCard_GetDBPrize(human)
+    if not human then
+        return nil
+    end
+
+    if not human.db.tWeekCardPrize then
+        return nil
+    end
+    
+    return human.db.tWeekCardPrize
+end
+
+-- 获取奖励ID状态
+local function WeekActCard_GetPrizeStatus(human, nID)
+    if not human then
+        return WeekLoopActDef.WEEKACT_STATE_NONE
+    end
+
+    local tPrize = WeekActCard_GetDBPrize(human)
+    if not tPrize or not tPrize[nID] then
+        return WeekLoopActDef.WEEKACT_STATE_NONE
+    end
+    
+    return tPrize[nID]
+end
+
+-- 设置奖励ID状态
+local function WeekActCard_SetPrizeStatus(human, nID, nStatus)
+    if not human then
+        return false
+    end
+
+    local tPrize = WeekActCard_GetDBPrize(human)
+    if not tPrize or not tPrize[nID] then
+        print("[WeekActCard_SetPrizeStatus] 获取不到对应的奖励表 "..nID.." nStatus = "..nStatus)
+        return false
+    end
+
+    tPrize[nID] = nStatus
+
+    return true
+end
+
+-- 初始化抽卡数量
+local function WeekActCard_ResetCardNum(human)
+    if not human then
+        print("[WeekActCard_ResetCardNum] 参数不正确")
+        return false
+    end
+
+    human.db.nWeekCardNum = 0
+
+    return true
+end
+
+-- 获取抽卡数量
+local function WeekActCard_GetCardNum(human)
+    if not human then
+        print("[WeekActCard_GetCardNum] 参数不正确")
+        return -1
+    end
+
+    if not human.db.nWeekCardNum then
+        local bRet = WeekActCard_ResetCardNum(human)
+        if false == bRet then
+           WeekActCard_WriteLog(human, "[WeekActCard_GetGuYuNum]", "获取抽卡数量,不存在对应字段,重新初始化失败")
+            return -1
+        end
+
+       WeekActCard_WriteLog(human, "[WeekActCard_GetGuYuNum]", "获取抽卡数量,不存在对应字段,初始化顺序有问题, 重新初始化成功")
+    end
+
+    return human.db.nWeekCardNum
+end
+
+-- 设置抽卡数量
+local function WeekActCard_SetCardNum(human, nValue)
+    if not human then
+        print("[WeekActCard_SetCardNum] 参数不正确")
+        return
+    end
+
+    local nNowCard = WeekActCard_GetCardNum(human)
+    if -1 >= nNowCard then
+       WeekActCard_WriteLog(human, "[WeekActCard_SetCardNum]", "获取古玉数量失败")
+        return
+    end
+
+    local nNewGuYu = nNowCard + nValue
+    if 0 > nNewGuYu then
+        nNewGuYu = 0
+    end
+
+    human.db.nWeekCardNum = nNewGuYu
+end
+
+----------------------------------------- 外部调用 -------------------------------------
+function Init()
+    tCardPrize = {}
+    local tConfig = WeekActCard_GetConfig()
+    if not tConfig then
+        return false
+    end
+
+    for nID, v in pairs(tConfig) do
+        local nType = v.nType
+        if not tCardPrize[nType] then
+            tCardPrize[nType] = {}
+        end
+
+        local nTrueID = nID % WeekLoopActDef.WEEKACT_CARD_PRIZEID_LEN
+        tCardPrize[nType][nTrueID] = v
+    end
+
+    return true
+end
+
+-- 重置数据
+function WeekActCard_ResetData(human)
+    if not human then
+        return
+    end
+
+    -- 先更新抽卡类型
+    --WeekActCard_ResetCardType(human)
+
+    -- 重置抽卡数量
+    WeekActCard_ResetCardNum(human)
+
+    -- 重置奖励信息
+    if false == WeekActCard_ResetPrize(human) then
+        print("[WeekActCard_ResetData] 重置抽卡奖励数据失败")
+        return
+    end
+
+    WeekActCard_WriteLog(human, "[WeekActCard_ResetData]", "抽卡奖励相关重置完成")
+
+    print("[WeekActCard_ResetData] 抽卡 数据重置结束 ")
+end
+
+-- 是否有红点
+function isRed(human)
+    local tPrize = WeekActCard_GetConfigByHuman(human)
+    if not tPrize then
+        return false
+    end
+
+    for nID, v in pairs(tPrize) do
+        if WeekLoopActDef.WEEKACT_STATE_CANGET == WeekActCard_GetPrizeStatus(human, nID) then
+            return true
+        end
+    end
+
+    return false
+end
+
+-- 抽卡回调
+function WeekActCard_UseCard(human, nAddNum, nType)
+    if not human or 0 >= nAddNum then
+        return
+    end
+
+    WeekActCard_WriteLog(human, "WeekActCard_UseCard", "玩家进行了抽卡回调开始 nAddNum = "..nAddNum.." 类型 nType = "..nType)
+
+    local nNowType = WeekActCard_GetCardType(human)
+    print("[WeekActCard_UseCard] nNowType = "..nNowType.." nType = "..nType)
+    if nNowType ~= nType then
+        return
+    end
+
+    local DBID = human.db._id
+    local szName = human.db.name
+    local tConfig = WeekActCard_GetConfigByHuman(human)
+    if not tConfig then
+        print("[WeekActCard_UseCard] 获取不到配置 DBID = "..DBID.." name = "..szName)
+        return
+    end
+
+    WeekActCard_SetCardNum(human, nAddNum)
+    
+    local nNowCard = WeekActCard_GetCardNum(human)
+    if -1 >= nNowCard then
+        WeekActCard_WriteLog(human, "[WeekActCard_UseCard]", "获取玩家当前抽卡次数失败 nAddNum = "..nAddNum)
+        print("[WeekActCard_UseCard] 获取不到抽卡次数 DBID = "..DBID.." name = "..szName.." nAddNum = "..nAddNum)
+        return
+    end
+
+    local bChange = false
+    for nID, v in pairs(tConfig) do
+        local nStatus = WeekActCard_GetPrizeStatus(human, nID)
+        if nNowCard >= v.nNum and WeekLoopActDef.WEEKACT_STATE_NONE == nStatus then
+            bChange = true
+            local bRet = WeekActCard_SetPrizeStatus(human, nID, WeekLoopActDef.WEEKACT_STATE_CANGET)
+            if false == bRet then
+                print("[WeekActCard_UseCard] 设置失败 nID = "..nID.." nStatus = "..nStatus.." num = "..v.nNum)
+            end
+        end
+    end
+
+    if true == bChange then
+        WeekActCard_Query(human)
+        WeekendLoopActManger.WeekLoopACT_SendActInfo(human)
+    end
+
+    WeekActCard_WriteLog(human, "WeekActCard_UseCard", "玩家进行了抽卡回调处理结束 nAddNum = "..nAddNum.." 类型 nType = "..nType)
+end
+
+-- 获取名称
+function GetName(human)
+    if not human then
+        return WeekLoopActDef.TWEEKACT_CARD_PANELID_NAME[1]
+    end
+
+    local nNowCardType = WeekActCard_GetCardType(human)
+    if -1 >= nNowCardType then
+        return WeekLoopActDef.TWEEKACT_CARD_PANELID_NAME[1]
+    end
+
+    if not WeekLoopActDef.TWEEKACT_CARD_PANELID_NAME[nNowCardType] then
+        return WeekLoopActDef.TWEEKACT_CARD_PANELID_NAME[1]
+    end
+
+    return WeekLoopActDef.TWEEKACT_CARD_PANELID_NAME[nNowCardType]
+end
+
+----------------------------------------- 客户端请求 -------------------------------------
+-- 客户端请求-抽卡信息
+function WeekActCard_Query(human)
+    if not human then
+        return
+    end
+
+    local DBID = human.db._id
+    local szName = human.db.name
+
+    local tConfig = WeekActCard_GetConfigByHuman(human)
+    if not tConfig then
+        WeekActCard_WriteLog(human, "[WeekActCard_Query]", "获取奖励配置失败重新检查是否生成 ")
+        if nil == tCardPrize then
+            local bRet = Init()
+            if false == bRet then
+                WeekActCard_WriteLog(human, "[WeekActCard_Query]", "重置奖励配置表失败 ")
+            else
+                WeekActCard_WriteLog(human, "[WeekActCard_Query]", "重置奖励配置表成功 ")
+            end
+        end
+
+        tConfig = WeekActCard_GetConfigByHuman(human)
+        if not tConfig then
+            WeekActCard_WriteLog(human, "[WeekActCard_Query]", "还是获取不到奖励配置")
+            return
+        end
+    end
+
+    local tMsgData = Msg.gc.GC_WEEKLOOP_ACT_CARDQUERY
+    tMsgData.byType = WeekActCard_GetCardType(human)
+    tMsgData.nNowNum = WeekActCard_GetCardNum(human)
+    tMsgData.list[0] = 0
+
+    for nID, v in pairs(tConfig) do
+        tMsgData.list[0] = tMsgData.list[0] + 1
+        local tData = tMsgData.list[tMsgData.list[0]]
+        tData.nNum = v.nNum
+        tData.nID = nID
+        tData.desc = v.szdesc
+        tData.nState = WeekActCard_GetPrizeStatus(human, nID)
+
+        tData.item[0] = #v.prize
+
+        for nIndex, tItem in ipairs(v.prize) do
+            local nGoodsID = tItem[1]
+            local nGoodsNum = tItem[2]
+
+            Grid.makeItem(tData.item[nIndex], nGoodsID, nGoodsNum)
+        end
+    end
+
+    WeekActCard_SendData(tMsgData, human.fd)
+end
+
+-- 客户端请求领取奖励
+function WeekActCard_GetPrize(human)
+    if not human then
+        return
+    end
+
+    local DBID = human.db._id
+    local szName = human.db.name
+
+    local tConfig = WeekActCard_GetConfigByHuman(human)
+    if not tConfig then
+        print("[WeekActCard_GetPrize] 获取不到配置 DBID = "..DBID.." name = "..szName)
+        return
+    end
+
+    local tItemList = {}
+    for nID, v in pairs(tConfig) do
+        if WeekLoopActDef.WEEKACT_STATE_CANGET == WeekActCard_GetPrizeStatus(human, nID) then
+            if false == WeekActCard_SetPrizeStatus(human, nID, WeekLoopActDef.WEEKACT_STATE_FINISH) then
+                print("[WeekActCard_GetPrize] 奖励领取失败 nID = "..nID)
+                WeekActCard_WriteLog(human, "[WeekActCard_GetPrize]", "领取奖励, 设置奖励状态失败 nID = "..nID)
+                break
+            end
+
+            for _, data in ipairs(v.prize) do
+                local nItemID = data[1]
+                local nItemNum = data[2]
+
+                tItemList[nItemID] = tItemList[nItemID] or 0
+                tItemList[nItemID] = tItemList[nItemID] + nItemNum
+            end
+        end
+    end
+
+    if nil ~= _G.next(tItemList) then
+        local tGoodsInfo = {}
+        for k, v in pairs(tItemList) do
+            table.insert(tGoodsInfo, {k,v})
+
+            -- 获取奖励写日志
+            WeekActCard_WriteLog(human, "[WeekActCard_GetPrize]", "玩家获取奖励 nGoodsID = "..k.." nGoodsNum = "..v)
+        end
+
+        BagLogic.addItemList(human, tGoodsInfo, "week_loop_act")
+
+        BagLogic.sendItemGetList(human, tItemList, "week_loop_act")
+    end
+
+    WeekActCard_Query(human)
+    WeekendLoopActManger.WeekLoopACT_SendActInfo(human)
 end