Procházet zdrojové kódy

部分运营活动根据渠道来读取不同配置

gitxsm před 2 týdny
rodič
revize
335f006b21

+ 38 - 21
script/module/absAct/AbsExcellentGiftLogic.lua

@@ -34,6 +34,23 @@ local FINISH_TASK_COST_ID = ItemDefine.ITEM_ZUANSHI_ID
 --完成任务消耗道具数量
 local FINISH_TASK_COST_CNT = 500
 
+local function getChannelId(human)
+    return human.db.phpChanelID or human.phpChanelID
+end
+
+local function isXiaoQiChannel(human)
+    local channelID = getChannelId(human)
+    return channelID == CommonDefine.CHANNEL_TAG_XIAOQI
+        or channelID == tostring(CommonDefine.CHANNEL_TAG_XIAOQI)
+end
+
+local function getConfig(human)
+    if isXiaoQiChannel(human) then
+        return AbsActExcel.AbsExcellentGiftLogic1
+    end
+    return AbsActExcel.AbsExcellentGiftLogic
+end
+
 
 local BATTLE_MOP_UP = 1            --冒险闯关扫荡
 local LOSTTEMPLE_PASS = 2          --失落神庙通关
@@ -110,10 +127,10 @@ end
 -- end
 
 --获取任务ID
-local function getTaskIdVec(triggerId, buyId)
+local function getTaskIdVec(human, triggerId, buyId)
     local ids = {}
     local len = 0
-    local config = AbsActExcel.AbsExcellentGiftLogic
+    local config = getConfig(human)
     for id, cfg in ipairs(config) do
         if triggerId and cfg.taskId == triggerId then
             len = len + 1
@@ -129,7 +146,7 @@ local function getTaskIdVec(triggerId, buyId)
 end
 
 --是否完成任务, 0-未完成, 1-可领取,2-已领取
-local function getTaskState(taskId, taskData)
+local function getTaskState(human, taskId, taskData)
     if not taskData then
         return CommonDefine.COMMON_PRIZE_STATE_NOGET
     end
@@ -138,7 +155,7 @@ local function getTaskState(taskId, taskData)
         return CommonDefine.COMMON_PRIZE_STATE_GET
     end
 
-    local config = AbsActExcel.AbsExcellentGiftLogic
+    local config = getConfig(human)
     local singleCfg = config[taskId]
     local triggerId = singleCfg.taskId
     local triggerVal = singleCfg.taskVal
@@ -163,12 +180,12 @@ local function getTaskState(taskId, taskData)
 end
 
 --红点检查
-local function redDotCheck(recordData)
+local function redDotCheck(human, recordData)
     local redDotPageTb = {}
     local taskState = 0
-    local config = AbsActExcel.AbsExcellentGiftLogic
+    local config = getConfig(human)
     for taskId, data in pairs(recordData) do
-        taskState = getTaskState(taskId, data)
+        taskState = getTaskState(human, taskId, data)
         if taskState == CommonDefine.COMMON_PRIZE_STATE_CANGET then
             local taskCfg = config[taskId]
             redDotPageTb[taskCfg.page] = '1'
@@ -212,8 +229,8 @@ function onCharge(human, price, funcID, buyID)
     actData.recordData = actData.recordData or {}
     local recordData = actData.recordData
 
-    local ids = getTaskIdVec(nil, buyID)
-    local config = AbsActExcel.AbsExcellentGiftLogic
+    local ids = getTaskIdVec(human, nil, buyID)
+    local config = getConfig(human)
 
     for _, id in ipairs(ids) do
         if  not recordData[id] or not recordData[id].isGet then
@@ -225,7 +242,7 @@ function onCharge(human, price, funcID, buyID)
 
             isChange = true
             if taskState ~= CommonDefine.COMMON_PRIZE_STATE_CANGET then
-                taskState = getTaskState(id, recordData[id])
+                taskState = getTaskState(human, id, recordData[id])
             end
         end
     end
@@ -255,7 +272,7 @@ function TriggerCbFunc(human, triggerTag, val, isAdd)
     local actData = human.db.absAct[ACTID]
     actData.recordData = actData.recordData or {}
     local recordData = actData.recordData
-    local ids = getTaskIdVec(triggerTag)
+    local ids = getTaskIdVec(human, triggerTag)
 
     for _, id in ipairs(ids) do
         if not recordData[id] or not recordData[id].isGet then
@@ -269,7 +286,7 @@ function TriggerCbFunc(human, triggerTag, val, isAdd)
 
             --isChange = true
             if taskState ~= CommonDefine.COMMON_PRIZE_STATE_CANGET then
-                taskState = getTaskState(id, recordData[id])
+                taskState = getTaskState(human, id, recordData[id])
             end
         end
     end
@@ -299,7 +316,7 @@ function isRed(human, YYInfo, funcConfig)
         return false
     end
 
-    if not redDotCheck(recordData) then
+    if not redDotCheck(human, recordData) then
         return false
     end
 
@@ -335,7 +352,7 @@ function Query(human, id, page)
 
     actData.recordData = actData.recordData or {}
     local recordData = actData.recordData
-    local config = AbsActExcel.AbsExcellentGiftLogic
+    local config = getConfig(human)
     local msgRet = Msg.gc.GC_EXCELLENTGIFT_QUERY
     local len = 0
     local taskList = msgRet.taskList
@@ -344,7 +361,7 @@ function Query(human, id, page)
         if v.page == page then
             len = len + 1
             local taskData = recordData[taskId]
-            taskList[len].state = getTaskState(taskId, taskData)
+            taskList[len].state = getTaskState(human, taskId, taskData)
             taskList[len].idx = len
             taskList[len].taskDesc = v.taskDes
     
@@ -372,7 +389,7 @@ function Query(human, id, page)
     --红点
     local redDotList = msgRet.redDotList
     redDotList[0] = 0
-    local redDotPageTb = redDotCheck(recordData)
+    local redDotPageTb = redDotCheck(human, recordData)
     if redDotPageTb then
         len = 0
         for redPage in pairs(redDotPageTb) do
@@ -403,7 +420,7 @@ function GetReward(human, id, taskIdx, page)
     local len = 0
     local taskIdList = {}
     local recordData = actData.recordData
-    local config = AbsActExcel.AbsExcellentGiftLogic
+    local config = getConfig(human)
 
     -- for k, v in ipairs(config) do
     --     if v.page == page then
@@ -417,7 +434,7 @@ function GetReward(human, id, taskIdx, page)
 
     for k, v in ipairs(config) do
         if v.page == page then
-            if getTaskState(k, recordData and recordData[k]) == CommonDefine.COMMON_PRIZE_STATE_CANGET then
+            if getTaskState(human, k, recordData and recordData[k]) == CommonDefine.COMMON_PRIZE_STATE_CANGET then
                 len = len + 1
                 taskIdList[len] = k
             end
@@ -447,7 +464,7 @@ function GetReward(human, id, taskIdx, page)
     Query(human, id, page)
 
     --红点
-    if not redDotCheck(recordData) then
+    if not redDotCheck(human, recordData) then
         YunYingLogic.sendBanner(human)
         local otherConfig = AbsActExcel.absActivity[ACTID]
         YunYingLogic.sendGroupUpdate(YYInfo[ACTID], human, otherConfig.panelID)
@@ -471,7 +488,7 @@ function FinishTaskByDiamond(human, id, taskIdx, page)
     local len = 0
     local taskId = 0
     local taskCfg = nil
-    local config = AbsActExcel.AbsExcellentGiftLogic
+    local config = getConfig(human)
     for k, v in ipairs(config) do
         if v.page == page then
             len = len + 1
@@ -491,7 +508,7 @@ function FinishTaskByDiamond(human, id, taskIdx, page)
         return Broadcast.sendErr(human, Lang.FRIEND_HEART_GET_HAD)
     end
 
-    if getTaskState(taskId, recordData and recordData[taskId]) == CommonDefine.COMMON_PRIZE_STATE_CANGET then
+    if getTaskState(human, taskId, recordData and recordData[taskId]) == CommonDefine.COMMON_PRIZE_STATE_CANGET then
         return Broadcast.sendErr(human, Lang.COMMON_FINISH)
     end
 

+ 25 - 1
script/module/absAct/BusThreeActGrandGift.lua

@@ -5,7 +5,7 @@
 -- 创建人       :   FC
 --------------------------------
 
-local tGrandGiftConf = require("excel.BusThreeActivity").GrandGift
+local BusThreeActivityExcel = require("excel.BusThreeActivity")
 local Util = require("common.Util")
 local Msg = require("core.Msg")
 local Grid = require("bag.Grid")
@@ -25,6 +25,23 @@ local BUSTHREEGRANDGIFT_PAY_HUOYUE = 2    -- 活跃度到达要求
 local BUSTHREEGRANDGIFT_PAY_CANGET = 3    -- 可以领取
 local BUSTHREEGRANDGIFT_PAY_GET = 4       -- 已领取
 
+local function getChannelId(human)
+    return human.db.phpChanelID or human.phpChanelID
+end
+
+local function isXiaoQiChannel(human)
+    local channelID = getChannelId(human)
+    return channelID == CommonDefine.CHANNEL_TAG_XIAOQI
+        or channelID == tostring(CommonDefine.CHANNEL_TAG_XIAOQI)
+end
+
+local function getGrandGiftConf(human)
+    if isXiaoQiChannel(human) then
+        return BusThreeActivityExcel.GrandGift1
+    end
+    return BusThreeActivityExcel.GrandGift
+end
+
 ----------------------------------------- 内部处理开始 -------------------------------------
 -- 创建DB
 local function BusThreeGrandGift_CreatDB(human)
@@ -38,6 +55,7 @@ local function BusThreeGrandGift_CreatDB(human)
     }
 
     local tStatus = human.db.absAct[BUSTHREEGRANDGIFTABSID].tGiftInfo.tStatus
+    local tGrandGiftConf = getGrandGiftConf(human)
     for nID, v in ipairs(tGrandGiftConf) do
         tStatus[nID] = {
             nFreeStatus = CommonDefine.COMMON_PRIZE_STATE_NOGET,
@@ -54,6 +72,7 @@ local function BusThreeGrandGift_CheckAndResetDB(human)
     end
 
     local tStatus = human.db.absAct[BUSTHREEGRANDGIFTABSID].tGiftInfo.tStatus
+    local tGrandGiftConf = getGrandGiftConf(human)
     if tStatus and #tStatus < #tGrandGiftConf then
         for i=#tStatus+1, #tGrandGiftConf do
             tStatus[i] = {
@@ -100,6 +119,7 @@ function BusThreeGrandGift_Query(human)
 
     local tMsgData = Msg.gc.GC_NEW_BUSTHREEACT_GRANDGIFT_QUERY
     tMsgData.tList[0] = 0
+    local tGrandGiftConf = getGrandGiftConf(human)
     for nID, v in ipairs(tGrandGiftConf) do
         tMsgData.tList[0] = tMsgData.tList[0] + 1
         local tData = tMsgData.tList[tMsgData.tList[0]]
@@ -146,6 +166,7 @@ end
 
 function BusThreeGrandGift_Get(human)
     local tGoods = {}
+    local tGrandGiftConf = getGrandGiftConf(human)
     for nID, v in ipairs(tGrandGiftConf) do
         local nFreeStatus = BusThreeGrandGift_GetFreeStatus(human, nID)
         if CommonDefine.COMMON_PRIZE_STATE_CANGET == nFreeStatus then
@@ -212,6 +233,7 @@ end
 function isRed(human, YYInfo, absActConfig)
     BusThreeGrandGift_CheckAndResetDB(human)
 
+    local tGrandGiftConf = getGrandGiftConf(human)
     for nID, v in ipairs(tGrandGiftConf) do
         local nFreeStatus = BusThreeGrandGift_GetFreeStatus(human, nID)
         local nPayStatus = BusThreeGrandGift_GetPayStatus(human, nID)
@@ -229,6 +251,7 @@ function onCharge(human, price, funcID, buyID)
 
     BusThreeGrandGift_CheckAndResetDB(human)
 
+    local tGrandGiftConf = getGrandGiftConf(human)
     for nID, v in ipairs(tGrandGiftConf) do
         if v.nBuyID == buyID then
             local nPayStatus = BusThreeGrandGift_GetPayStatus(human, nID)
@@ -257,6 +280,7 @@ function BusThreeGrandGift_NumChange(human, nNum)
 
     local nNewNum = nOldNum + nNum
     local bSend = false
+    local tGrandGiftConf = getGrandGiftConf(human)
     for nID, v in ipairs(tGrandGiftConf) do
         if nNewNum >= v.nNeedNum then
             local nFreeStatus = BusThreeGrandGift_GetFreeStatus(human, nID)

+ 23 - 1
script/module/absAct/CycleHeroSendGift.lua

@@ -20,7 +20,7 @@ local Broadcast = require("broadcast.Broadcast")
 local YunYingLogic = require("yunying.YunYingLogic")
 local CommonDefine = require("common.CommonDefine")
 local CycleActivityLogic = require("yunying.CycleActivity")
-local heroSendGiftCfg = require("excel.commercializationActivity").heroSendGift
+local CommercializationActivityExcel = require("excel.commercializationActivity")
 
 
 -- 本活动日志标识
@@ -55,6 +55,25 @@ end
 
 
 
+local function getChannelId(human)
+    return human.db.phpChanelID or human.phpChanelID
+end
+
+local function isXiaoQiChannel(human)
+    local channelID = getChannelId(human)
+    return channelID == CommonDefine.CHANNEL_TAG_XIAOQI
+        or channelID == tostring(CommonDefine.CHANNEL_TAG_XIAOQI)
+end
+
+local function getHeroSendGiftCfg(human)
+    if isXiaoQiChannel(human) then
+        return CommercializationActivityExcel.heroSendGift1
+    end
+    return CommercializationActivityExcel.heroSendGift
+end
+
+
+
 local function checkGridState(human, actId, nowBuyId)
     local actData = getActData(human, actId)
     if not actData then
@@ -64,6 +83,7 @@ local function checkGridState(human, actId, nowBuyId)
     local gridData = actData.gridData
     local nowIdx = gridData and gridData.nowIdx or -1
 
+    local heroSendGiftCfg = getHeroSendGiftCfg(human)
     local gridCfg = heroSendGiftCfg[nowIdx]
     if not gridCfg then
         return
@@ -162,6 +182,7 @@ function Query(human, actId)
     local gridData = actData.gridData
     local nowGridState = gridData.state
     local nowIdx = gridData.nowIdx
+    local heroSendGiftCfg = getHeroSendGiftCfg(human)
     if nowIdx > #heroSendGiftCfg then
         nowIdx = #heroSendGiftCfg
         nowGridState = CommonDefine.COMMON_PRIZE_STATE_GET
@@ -209,6 +230,7 @@ function GetReward(human, actId)
     end
 
     local nowIdx = gridData.nowIdx
+    local heroSendGiftCfg = getHeroSendGiftCfg(human)
     local gridCfg = heroSendGiftCfg[nowIdx]
     if not gridCfg then
         return Broadcast.sendErr(human, Lang.COMMON_COMFIG_ERROR)