瀏覽代碼

修改合服充值活动

gitxsm 4 月之前
父節點
當前提交
a72bdba7fc
共有 1 個文件被更改,包括 77 次插入40 次删除
  1. 77 40
      script/module/present/MergeServerCharge.lua

+ 77 - 40
script/module/present/MergeServerCharge.lua

@@ -45,6 +45,14 @@ local tIndex2Money = {
     [3] = 27.99,
 }
 
+-- 与配置中的 awardType 一致
+-- 修改: 不再使用金额作为key存储到数据库中, 改为使用 awardType 作为key, 部分函数的形参nMoney实则为type
+local tIndex2Type = {
+    [1] = 1,
+    [2] = 2,
+    [3] = 3,
+}
+
 local MERGESERVERCHARGE_MAXDAY = 10
 
 ----------------------------------------- 内部处理开始 -------------------------------------
@@ -91,16 +99,35 @@ local function MergeServerCharge_CreatDB(human)
             }
         end
 
-        if not human.db.MergeCharge.tChargeData[v.nMoney] then
-            human.db.MergeCharge.tChargeData[v.nMoney] = {
+        -- if not human.db.MergeCharge.tChargeData[v.nMoney] then
+        --     human.db.MergeCharge.tChargeData[v.nMoney] = {
+        --         nBuyTime = 0,
+        --         nBuyDay = 0
+        --     }
+        -- end
+    
+        -- 使用 awardType 作为key
+        if not human.db.MergeCharge.tChargeData[v.awardType] then
+            human.db.MergeCharge.tChargeData[v.awardType] = {
                 nBuyTime = 0,
                 nBuyDay = 0
             }
         end
-       
+
         local tNodeData = tPrizeData[v.nDay].tMoney
-        if not tNodeData[v.nMoney] then
-            tNodeData[v.nMoney] =
+        -- if not tNodeData[v.nMoney] then
+        --     tNodeData[v.nMoney] =
+        --     {
+        --         nStatus = CommonDefine.COMMON_PRIZE_STATE_NOGET,
+        --         nMoney = 0
+        --     }
+        -- else
+        --     print("[MergeServerCharge_CreateDB] 配置了重复的数据")
+        -- end
+
+        -- 使用 awardType 作为key
+        if not tNodeData[v.awardType] then
+            tNodeData[v.awardType] =
             {
                 nStatus = CommonDefine.COMMON_PRIZE_STATE_NOGET,
                 nMoney = 0
@@ -110,7 +137,7 @@ local function MergeServerCharge_CreatDB(human)
         end
     end
 
-    print("[MergeServerCharge_CreatDB] 初始化数据完成 name = "..human.db.name)
+    -- print("[MergeServerCharge_CreatDB] 初始化数据完成 name = "..human.db.name)
     return true
 end
 
@@ -173,7 +200,7 @@ end
 
 -- 设置DB奖励状态
 local function MergeServerCharge_SetDBPrizeStatus(human, nDay, nMoney, nStatus)
-    print("[MergeServerCharge_SetDBPrizeStatus] 设置DB奖励状态 nDay = "..nDay.." nMoney = "..nMoney.." nStatus = "..nStatus)
+    -- print("[MergeServerCharge_SetDBPrizeStatus] 设置DB奖励状态 nDay = "..nDay.." nMoney = "..nMoney.." nStatus = "..nStatus)
     local tPrizeData = MergeServerCharge_GetDBPrizeData(human)
     tPrizeData[nDay].tMoney[nMoney].nStatus = nStatus
 end
@@ -217,8 +244,13 @@ function MergeServerCharge_Query(human, nIndex)
     end
 
     MergeServerCharge_CheckDB(human)
-    local nMoney = tIndex2Money[nIndex]
-    if not nMoney then
+    -- local nMoney = tIndex2Money[nIndex]
+    -- if not nMoney then
+    --     return
+    -- end
+
+    local awardType = tIndex2Type[nIndex]
+    if not awardType then
         return
     end
 
@@ -229,14 +261,14 @@ function MergeServerCharge_Query(human, nIndex)
     
     local nLen = 0
     for nID, v in ipairs(tConf) do
-        if v.nMoney == nMoney then
+        if v.awardType == awardType then
             nLen = nLen + 1
             tMsgData.tList[0] = nLen
             local tPrizeData = tMsgData.tList[nLen]
             tPrizeData.nID = nID
-            tPrizeData.nState = MergeServerCharge_GetDBPrizeStatus(human, v.nDay, nMoney)
+            tPrizeData.nState = MergeServerCharge_GetDBPrizeStatus(human, v.nDay, awardType)
             tPrizeData.nDay = v.nDay
-            tPrizeData.nAllMoney = MergeServerCharge_GetDBDayCharge(human, v.nDay, nMoney)
+            tPrizeData.nAllMoney = MergeServerCharge_GetDBDayCharge(human, v.nDay, awardType)
             tPrizeData.nMoney = v.nMoney
             tPrizeData.item[0] = #v.tPrize
 
@@ -259,8 +291,13 @@ function MergeServerCharge_Get(human, nIndex)
         return
     end
 
-    local nMoney = tIndex2Money[nIndex]
-    if not nMoney then
+    -- local nMoney = tIndex2Money[nIndex]
+    -- if not nMoney then
+    --     return
+    -- end
+
+    local awardType = tIndex2Type[nIndex]
+    if not awardType then
         return
     end
 
@@ -268,10 +305,10 @@ function MergeServerCharge_Get(human, nIndex)
 
     local tItem = {}
     for nID, v in ipairs(tConf) do
-        if v.nMoney == nMoney then
-            local nState = MergeServerCharge_GetDBPrizeStatus(human, v.nDay, v.nMoney)
+        if v.awardType == awardType then
+            local nState = MergeServerCharge_GetDBPrizeStatus(human, v.nDay, v.awardType)
             if CommonDefine.COMMON_PRIZE_STATE_CANGET == nState then
-                MergeServerCharge_SetDBPrizeStatus(human, v.nDay, nMoney, CommonDefine.COMMON_PRIZE_STATE_GET)
+                MergeServerCharge_SetDBPrizeStatus(human, v.nDay, awardType, CommonDefine.COMMON_PRIZE_STATE_GET)
                 for _, tPrize in ipairs(v.tPrize) do
                     if not tItem[tPrize[1]]  then
                         tItem[tPrize[1]] = 0
@@ -311,7 +348,7 @@ function isRed(human)
 
     local tConf = MergeServerCharge_GetCof()
     for _, v in ipairs(tConf) do
-        local nState = MergeServerCharge_GetDBPrizeStatus(human, v.nDay, v.nMoney)
+        local nState = MergeServerCharge_GetDBPrizeStatus(human, v.nDay, v.awardType)
         if nState == CommonDefine.COMMON_PRIZE_STATE_CANGET then
             return true
         end
@@ -328,43 +365,43 @@ function onCharge(human, price, funcID, buyID)
     local tConf = MergeServerCharge_GetCof()
     local bQuery = false
 
-    for _, nMoney in ipairs(tIndex2Money) do
-        local nBuyTime = MergeServerCharge_GetChargeTime(human, nMoney)
-        local nBuyDay = MergeServerCharge_GetBuyDay(human, nMoney)
+    for _, awardType in ipairs(tIndex2Type) do
+        local nBuyTime = MergeServerCharge_GetChargeTime(human, awardType)
+        local nBuyDay = MergeServerCharge_GetBuyDay(human, awardType)
         if 0 == nBuyTime then
             nBuyTime = os.time()
-            MergeServerCharge_SetChargeTime(human, nMoney, nBuyTime)
+            MergeServerCharge_SetChargeTime(human, awardType, nBuyTime)
         end
 
         if 0 == nBuyDay then
             nBuyDay = nBuyDay + 1
-            MergeServerCharge_SetBuyDay(human, nMoney, nBuyDay)
+            MergeServerCharge_SetBuyDay(human, awardType, nBuyDay)
         else
             -- 跨天了
             if nil == Util.isSameDay(nBuyTime) then
                 nBuyDay = nBuyDay + 1
                 if nBuyDay <= MERGESERVERCHARGE_MAXDAY then
-                    MergeServerCharge_SetBuyDay(human, nMoney, nBuyDay)
+                    MergeServerCharge_SetBuyDay(human, awardType, nBuyDay)
                 end
 
                 nBuyTime = os.time()
-                MergeServerCharge_SetChargeTime(human, nMoney, nBuyTime)
+                MergeServerCharge_SetChargeTime(human, awardType, nBuyTime)
             end
         end
 
         nBuyDay = (nBuyDay > MERGESERVERCHARGE_MAXDAY) and MERGESERVERCHARGE_MAXDAY or nBuyDay
-        print("[MergeServerCharge_onCharge] 111 玩家充值增加对应的总充值金额 天数 nBuyDay = "..nBuyDay
-            .." 对应金额 nMoney = "..nMoney.." 增加的钱 price = "..price)
+        -- print("[MergeServerCharge_onCharge] 111 玩家充值增加对应的总充值金额 天数 nBuyDay = "..nBuyDay
+        --     .." 对应金额 nMoney = "..nMoney.." 增加的钱 price = "..price)
         
-        MergeServerCharge_SetDBDayCharge(human, nBuyDay, nMoney, price)
-        local nNewChareNum = MergeServerCharge_GetDBDayCharge(human, nBuyDay, nMoney)
-        print("[MergeServerCharge_onCharge] 玩家充值增加对应的总充值金额 天数 nBuyDay = "..nBuyDay
-                .." 对应金额 nMoney = "..nMoney.." 增加的钱 price = "..price.." 总金额 nNewChareNum = "..nNewChareNum)
+        MergeServerCharge_SetDBDayCharge(human, nBuyDay, awardType, price)
+        local nNewChareNum = MergeServerCharge_GetDBDayCharge(human, nBuyDay, awardType)
+        -- print("[MergeServerCharge_onCharge] 玩家充值增加对应的总充值金额 天数 nBuyDay = "..nBuyDay
+        --         .." 对应金额 nMoney = "..nMoney.." 增加的钱 price = "..price.." 总金额 nNewChareNum = "..nNewChareNum)
         for _, v in ipairs(tConf) do
-            if v.nDay == nBuyDay and v.nMoney == nMoney then
-                local nStatus = MergeServerCharge_GetDBPrizeStatus(human, v.nDay, v.nMoney)
-                if nStatus == CommonDefine.COMMON_PRIZE_STATE_NOGET and nNewChareNum >= v.nMoney then
-                    MergeServerCharge_SetDBPrizeStatus(human, v.nDay, v.nMoney, CommonDefine.COMMON_PRIZE_STATE_CANGET)
+            if v.nDay == nBuyDay and v.awardType == awardType then
+                local nStatus = MergeServerCharge_GetDBPrizeStatus(human, v.nDay, v.awardType)
+                if nStatus == CommonDefine.COMMON_PRIZE_STATE_NOGET and nNewChareNum >= v.awardType then
+                    MergeServerCharge_SetDBPrizeStatus(human, v.nDay, v.awardType, CommonDefine.COMMON_PRIZE_STATE_CANGET)
                     bQuery = true
                 end
             end
@@ -402,7 +439,7 @@ function onLogin(human)
     end
 
     local nNowTime = os.time()
-    for _, nMoney in ipairs(tIndex2Money) do
+    for _, nMoney in ipairs(tIndex2Type) do
         local nBuyTime = MergeServerCharge_GetChargeTime(human, nMoney)
         local nBuyDay = MergeServerCharge_GetBuyDay(human, nMoney)
         if true ~= Util.isSameDayByTimes(nNowTime, nBuyTime) and nBuyDay ~= 0 then
@@ -410,7 +447,7 @@ function onLogin(human)
             if nAllMoney < nMoney and 0 < nAllMoney then
                 MergeServerCharge_SetDBDayCharge(human, nBuyDay, nMoney, -nAllMoney)
                 MergeServerCharge_SetChargeTime(human, nMoney, 0)
-                print("[MergeServerCharge_onLogin] 玩家登录 重置对应不达标数据 nBuyDay = "..nBuyDay.." 对应金额 nMoney = "..nMoney.." 充值数 nAllMoney = "..nAllMoney)
+                -- print("[MergeServerCharge_onLogin] 玩家登录 重置对应不达标数据 nBuyDay = "..nBuyDay.." 对应金额 nMoney = "..nMoney.." 充值数 nAllMoney = "..nAllMoney)
             end
         end
      end
@@ -423,7 +460,7 @@ function onZero(human, funcID)
 
     MergeServerCharge_CheckDB(human)
 
-    for _, nMoney in ipairs(tIndex2Money) do
+    for _, nMoney in ipairs(tIndex2Type) do
        -- local nBuyTime = MergeServerCharge_GetChargeTime(human, nMoney)
         local nBuyDay = MergeServerCharge_GetBuyDay(human, nMoney)
 
@@ -431,13 +468,13 @@ function onZero(human, funcID)
         if nAllMoney < nMoney and 0 < nAllMoney then
             MergeServerCharge_SetDBDayCharge(human, nBuyDay, nMoney, -nAllMoney)
             MergeServerCharge_SetChargeTime(human, nMoney, 0)
-            print("[MergeServerCharge_onZero] 零点刷新 重置对应不达标数据 nBuyDay = "..nBuyDay.." 对应金额 nMoney = "..nMoney.." 充值数 nAllMoney = "..nAllMoney)
+            -- print("[MergeServerCharge_onZero] 零点刷新 重置对应不达标数据 nBuyDay = "..nBuyDay.." 对应金额 nMoney = "..nMoney.." 充值数 nAllMoney = "..nAllMoney)
         end
     end
 end
 
 function MergeServerCharge_GMReset(human, nDay)
-    for _, v in ipairs(tIndex2Money) do
+    for _, v in ipairs(tIndex2Type) do
         human.db.MergeCharge.tPrizeData[nDay].tMoney[v]=
         {
             nStatus = CommonDefine.COMMON_PRIZE_STATE_NOGET,