|
|
@@ -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,
|