|
@@ -18,6 +18,16 @@ tMaiDianPlay =
|
|
|
}
|
|
}
|
|
|
]]
|
|
]]
|
|
|
}
|
|
}
|
|
|
|
|
+-- 埋点区间
|
|
|
|
|
+local RANGES = {
|
|
|
|
|
+ {1,10}, -- 1-10次
|
|
|
|
|
+ {11,30}, -- 11-30次
|
|
|
|
|
+ {31,50}, -- 31-50次
|
|
|
|
|
+ {51,100}, -- 51-100次
|
|
|
|
|
+ {101,200}, -- 101-200次
|
|
|
|
|
+ {201,500}, -- 201-500次
|
|
|
|
|
+ {501, math.huge} -- 500+次 (math.huge表示无限大)
|
|
|
|
|
+}
|
|
|
|
|
|
|
|
-- 写日志
|
|
-- 写日志
|
|
|
local function MaiDian_WriteLog(sztext)
|
|
local function MaiDian_WriteLog(sztext)
|
|
@@ -56,7 +66,7 @@ function MaiDian_OnTime()
|
|
|
tTotalInfo[nType][v].nValue = tTotalInfo[nType][v].nValue + 1
|
|
tTotalInfo[nType][v].nValue = tTotalInfo[nType][v].nValue + 1
|
|
|
end
|
|
end
|
|
|
end
|
|
end
|
|
|
-
|
|
|
|
|
|
|
+ print("[MaiDian_OnTime] 汇总结束")
|
|
|
local tSortData ={}
|
|
local tSortData ={}
|
|
|
for nType, tData in pairs(tTotalInfo) do
|
|
for nType, tData in pairs(tTotalInfo) do
|
|
|
if not tSortData[nType] then
|
|
if not tSortData[nType] then
|
|
@@ -69,6 +79,48 @@ function MaiDian_OnTime()
|
|
|
|
|
|
|
|
table.sort(tSortData[nType], MainDian_Sort)
|
|
table.sort(tSortData[nType], MainDian_Sort)
|
|
|
end
|
|
end
|
|
|
|
|
+ -- 新增区间统计
|
|
|
|
|
+ local tRangeStats = {
|
|
|
|
|
+ [MaiDianDefine.MAIDIAN_TYPE_ADV_SUMMON] = {},
|
|
|
|
|
+ [MaiDianDefine.MAIDIAN_TYPE_CHEST_OPEN] = {}
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ -- 初始化区间计数器
|
|
|
|
|
+ for _, range in ipairs(RANGES) do
|
|
|
|
|
+ local rangeKey = range[1].."-"..(range[2] == math.huge and "+" or range[2])
|
|
|
|
|
+ tRangeStats[MaiDianDefine.MAIDIAN_TYPE_ADV_SUMMON][rangeKey] = 0
|
|
|
|
|
+ tRangeStats[MaiDianDefine.MAIDIAN_TYPE_CHEST_OPEN][rangeKey] = 0
|
|
|
|
|
+ end
|
|
|
|
|
+
|
|
|
|
|
+ -- 统计玩家累计值
|
|
|
|
|
+ local tPlayerTotals = {}
|
|
|
|
|
+ for playerId, tData in pairs(tMaiDianPlay) do
|
|
|
|
|
+ tPlayerTotals[playerId] = {
|
|
|
|
|
+ [MaiDianDefine.MAIDIAN_TYPE_ADV_SUMMON] = 0,
|
|
|
|
|
+ [MaiDianDefine.MAIDIAN_TYPE_CHEST_OPEN] = 0
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ for nType, nValue in pairs(tData) do
|
|
|
|
|
+ if nType == MaiDianDefine.MAIDIAN_TYPE_ADV_SUMMON
|
|
|
|
|
+ or nType == MaiDianDefine.MAIDIAN_TYPE_CHEST_OPEN then
|
|
|
|
|
+ tPlayerTotals[playerId][nType] = (tPlayerTotals[playerId][nType] or 0) + nValue
|
|
|
|
|
+ end
|
|
|
|
|
+ end
|
|
|
|
|
+ end
|
|
|
|
|
+ print("[MaiDian_OnTime] 统计玩家累计值结束")
|
|
|
|
|
+ -- 计算区间分布
|
|
|
|
|
+ for playerId, totals in pairs(tPlayerTotals) do
|
|
|
|
|
+ for nType, total in pairs(totals) do
|
|
|
|
|
+ for _, range in ipairs(RANGES) do
|
|
|
|
|
+ if total >= range[1] and total <= range[2] then
|
|
|
|
|
+ local rangeKey = range[1].."-"..(range[2] == math.huge and "+" or range[2])
|
|
|
|
|
+ tRangeStats[nType][rangeKey] = tRangeStats[nType][rangeKey] + 1
|
|
|
|
|
+ break
|
|
|
|
|
+ end
|
|
|
|
|
+ end
|
|
|
|
|
+ end
|
|
|
|
|
+ end
|
|
|
|
|
+ print("[MaiDian_OnTime] 计算区间分布结束")
|
|
|
|
|
|
|
|
for nType, tData in pairs(tSortData) do
|
|
for nType, tData in pairs(tSortData) do
|
|
|
local sztext = " nType = "..nType.." "
|
|
local sztext = " nType = "..nType.." "
|
|
@@ -78,6 +130,15 @@ function MaiDian_OnTime()
|
|
|
MaiDian_WriteLog(sztext)
|
|
MaiDian_WriteLog(sztext)
|
|
|
end
|
|
end
|
|
|
|
|
|
|
|
|
|
+ for nType, ranges in pairs(tRangeStats) do
|
|
|
|
|
+ local szType = nType == MaiDianDefine.MAIDIAN_TYPE_ADV_SUMMON and "高级召唤" or "宝箱开启"
|
|
|
|
|
+ local sztext = "[区间统计] "..szType.." "
|
|
|
|
|
+ for rangeKey, count in pairs(ranges) do
|
|
|
|
|
+ sztext = sztext..rangeKey.."="..count.." "
|
|
|
|
|
+ end
|
|
|
|
|
+ MaiDian_WriteLog(sztext)
|
|
|
|
|
+ end
|
|
|
|
|
+ print("[MaiDian_OnTime] 区间统计结束")
|
|
|
print("[MaiDian_OnTime] 写日志结束 ")
|
|
print("[MaiDian_OnTime] 写日志结束 ")
|
|
|
-- 重置
|
|
-- 重置
|
|
|
tMaiDianPlay = {}
|
|
tMaiDianPlay = {}
|
|
@@ -100,6 +161,15 @@ function MaiDian_Begin(human, nType, tData)
|
|
|
if not tMaiDianPlay[nHumanID] then
|
|
if not tMaiDianPlay[nHumanID] then
|
|
|
tMaiDianPlay[nHumanID] = {}
|
|
tMaiDianPlay[nHumanID] = {}
|
|
|
end
|
|
end
|
|
|
|
|
+ local nType = tMaiDianPlay[nHumanID]
|
|
|
|
|
+
|
|
|
|
|
+ if nType == MaiDianDefine.MAIDIAN_TYPE_ADV_SUMMON or nType == MaiDianDefine.MAIDIAN_TYPE_CHEST_OPEN then
|
|
|
|
|
+ tMaiDianPlay[nHumanID][nType] = (tMaiDianPlay[nHumanID][nType] or 0) + nValue
|
|
|
|
|
+ return
|
|
|
|
|
+ end
|
|
|
|
|
+ tMaiDianPlay[nHumanID][nType] = nValue
|
|
|
|
|
+end
|
|
|
|
|
|
|
|
- tMaiDianPlay[nHumanID][nType] = nValue
|
|
|
|
|
|
|
+function MaiDianLogic_GM()
|
|
|
|
|
+ MaiDian_OnTime()
|
|
|
end
|
|
end
|