2024-09-01 20:49:41 +00:00
|
|
|
|
local XDrawActivityTargetInfo = require("XEntity/XDraw/XDrawActivityTargetInfo")
|
2023-07-14 19:35:33 +00:00
|
|
|
|
|
2024-09-01 20:49:41 +00:00
|
|
|
|
XDrawManagerCreator = function()
|
|
|
|
|
---@class XDrawManager
|
2023-07-14 19:35:33 +00:00
|
|
|
|
local XDrawManager = {}
|
|
|
|
|
|
|
|
|
|
local tableInsert = table.insert
|
|
|
|
|
local tableSort = table.sort
|
|
|
|
|
|
|
|
|
|
local GET_DRAW_DATA_INTERVAL = 15
|
|
|
|
|
|
2024-09-01 20:49:41 +00:00
|
|
|
|
--region Data Config
|
2023-07-14 19:35:33 +00:00
|
|
|
|
local DrawPreviews = {}
|
|
|
|
|
local DrawCombinations = {}
|
|
|
|
|
local DrawProbs = {}
|
|
|
|
|
local DrawGroupRule = {}
|
|
|
|
|
local DrawShow = {}
|
|
|
|
|
local DrawShowCharacter = {}
|
|
|
|
|
local DrawCamera = {}
|
|
|
|
|
local DrawTabs = {}
|
2024-09-01 20:49:41 +00:00
|
|
|
|
local DrawNewYearShow = {}
|
|
|
|
|
--endregion
|
|
|
|
|
|
|
|
|
|
local DrawGroupInfos = {}
|
|
|
|
|
local DrawInfos = {}
|
|
|
|
|
local LastGetGroupInfoTime = 0
|
|
|
|
|
local LastGetDropInfoTimes = {}
|
|
|
|
|
|
|
|
|
|
---@type table<number, XDrawActivityTargetInfo> key = activityId
|
|
|
|
|
local _DrawActivityTargetInfoDir = {}
|
|
|
|
|
---@type table<number, number> key = groupId value = activityId
|
|
|
|
|
local _DrawGroupActivityTargetDir = {}
|
|
|
|
|
|
2023-07-14 19:35:33 +00:00
|
|
|
|
local ActivityDrawList = {}
|
|
|
|
|
local ActivityDrawListByTag = {}
|
2024-09-01 20:49:41 +00:00
|
|
|
|
local FreeDrawTicket = {}
|
2023-07-14 19:35:33 +00:00
|
|
|
|
local DrawActivityCount = 0
|
|
|
|
|
local IsHasNewActivityDraw = false
|
|
|
|
|
local CurSelectTabInfo = nil
|
|
|
|
|
local LostSelectDrawGroupId = 0
|
|
|
|
|
local LostSelectDrawType = 0
|
|
|
|
|
|
|
|
|
|
XDrawManager.DrawEventType = { Normal = 0, NewHand = 1, Activity = 2, OldActivity = 3 }
|
|
|
|
|
|
|
|
|
|
function XDrawManager.Init()
|
|
|
|
|
DrawCombinations = XDrawConfigs.GetDrawCombinations()
|
|
|
|
|
DrawGroupRule = XDrawConfigs.GetDrawGroupRule()
|
|
|
|
|
DrawShow = XDrawConfigs.GetDrawShow()
|
|
|
|
|
DrawShowCharacter = XDrawConfigs.GetDrawShowCharacter()
|
|
|
|
|
DrawCamera = XDrawConfigs.GetDrawCamera()
|
|
|
|
|
DrawTabs = XDrawConfigs.GetDrawTabs()
|
|
|
|
|
DrawPreviews = XDrawConfigs.GetDrawPreviews()
|
|
|
|
|
DrawProbs = XDrawConfigs.GetDrawProbs()
|
2024-09-01 20:49:41 +00:00
|
|
|
|
DrawNewYearShow = XDrawConfigs.GetDrawNewYearShow()
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
--region Ui
|
|
|
|
|
function XDrawManager.OpenDrawUi(ruleType, groupId, defaultDrawId, isPop)
|
|
|
|
|
if not XFunctionManager.DetectionFunction(XFunctionManager.FunctionName.DrawCard) then
|
|
|
|
|
return
|
|
|
|
|
end
|
|
|
|
|
XDrawManager.GetDrawGroupList(function()
|
|
|
|
|
if isPop then
|
|
|
|
|
XLuaUiManager.PopThenOpen("UiNewDrawMain", ruleType, groupId, defaultDrawId)
|
|
|
|
|
else
|
|
|
|
|
XLuaUiManager.Open("UiNewDrawMain", ruleType, groupId, defaultDrawId)
|
|
|
|
|
end
|
|
|
|
|
end)
|
|
|
|
|
end
|
|
|
|
|
--endregion
|
|
|
|
|
|
|
|
|
|
function XDrawManager.GetFreeTicketIdByGroupId(groupId)
|
|
|
|
|
local tickets = XDrawManager.GetTicketsByGroupId(groupId)
|
|
|
|
|
local expireTime = math.huge
|
|
|
|
|
local ticketId = 0
|
|
|
|
|
for _, ticketInfo in pairs(tickets) do
|
|
|
|
|
if ticketInfo.ExpireTime and ticketInfo.ExpireTime < expireTime and ticketInfo.Count > 0 then
|
|
|
|
|
ticketId = ticketInfo.Id
|
|
|
|
|
expireTime = ticketInfo.ExpireTime
|
|
|
|
|
end
|
|
|
|
|
end
|
|
|
|
|
return ticketId
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
function XDrawManager.GetTicketInfoById(id)
|
|
|
|
|
return FreeDrawTicket[id]
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
function XDrawManager.GetTicketsByGroupId(groupId)
|
|
|
|
|
local tickets = {}
|
|
|
|
|
for _, ticketInfo in pairs(FreeDrawTicket) do
|
|
|
|
|
local cfg = XDrawConfigs.GetDrawTicketCfg(ticketInfo.CfgId)
|
|
|
|
|
if cfg then
|
|
|
|
|
for _, gId in pairs(cfg.DrawGroupIds) do
|
|
|
|
|
if gId == groupId then
|
|
|
|
|
table.insert(tickets, ticketInfo)
|
|
|
|
|
end
|
|
|
|
|
end
|
|
|
|
|
end
|
|
|
|
|
end
|
|
|
|
|
return tickets
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
function XDrawManager.CheckHasFreeTicket(groupId)
|
|
|
|
|
local now = XTime.GetServerNowTimestamp()
|
|
|
|
|
local tickets = XDrawManager.GetTicketsByGroupId(groupId)
|
|
|
|
|
local isHasTicket = false
|
|
|
|
|
local groupInfo = XDrawManager.GetDrawGroupInfoByGroupId(groupId)
|
|
|
|
|
if groupInfo then
|
|
|
|
|
if now < groupInfo.StartTime or now > groupInfo.EndTime and groupInfo.EndTime ~= 0 then
|
|
|
|
|
return false
|
|
|
|
|
end
|
|
|
|
|
end
|
|
|
|
|
for _, ticketInfo in pairs(tickets) do
|
|
|
|
|
if ticketInfo.Count > 0 or ticketInfo.ExpireTime > now then
|
|
|
|
|
isHasTicket = true
|
|
|
|
|
break
|
|
|
|
|
end
|
|
|
|
|
end
|
|
|
|
|
return isHasTicket
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
function XDrawManager.CheckDrawFreeTicketTag()
|
|
|
|
|
local now = XTime.GetServerNowTimestamp()
|
|
|
|
|
for _, ticketInfo in pairs(FreeDrawTicket) do
|
|
|
|
|
local cfg = XDrawConfigs.GetDrawTicketCfg(ticketInfo.CfgId)
|
|
|
|
|
local isInTime = true
|
|
|
|
|
if cfg then
|
|
|
|
|
for _, gId in pairs(cfg.DrawGroupIds) do
|
|
|
|
|
local groupInfo = XDrawManager.GetDrawGroupInfoByGroupId(gId)
|
|
|
|
|
isInTime = isInTime and groupInfo and (now > groupInfo.StartTime and now < groupInfo.EndTime or groupInfo.EndTime == 0)
|
|
|
|
|
end
|
|
|
|
|
end
|
|
|
|
|
if ticketInfo.Count > 0 and isInTime then
|
|
|
|
|
return true
|
|
|
|
|
end
|
|
|
|
|
end
|
|
|
|
|
return false
|
2023-07-14 19:35:33 +00:00
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
function XDrawManager.GetDrawPreview(drawId)
|
|
|
|
|
return DrawPreviews[drawId]
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
function XDrawManager.GetDrawCombination(drawId)
|
|
|
|
|
return DrawCombinations[drawId]
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
function XDrawManager.GetDrawProb(drawId)
|
|
|
|
|
local cfgs = DrawProbs[drawId] or {}
|
|
|
|
|
table.sort(cfgs, function(a, b)
|
|
|
|
|
return a.Sort < b.Sort
|
|
|
|
|
end)
|
|
|
|
|
return cfgs
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
function XDrawManager.GetDrawGroupRule(groupId)
|
|
|
|
|
return DrawGroupRule[groupId]
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
function XDrawManager.GetDrawShow(type)
|
|
|
|
|
return DrawShow[type - 1]
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
function XDrawManager.GetDrawNewYearShow(type)
|
|
|
|
|
return DrawNewYearShow[type - 1]
|
|
|
|
|
end
|
2024-09-01 20:49:41 +00:00
|
|
|
|
|
2023-07-14 19:35:33 +00:00
|
|
|
|
function XDrawManager.GetDrawCamera(id)
|
|
|
|
|
return DrawCamera[id]
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
function XDrawManager.GetDrawInfo(drawId)
|
|
|
|
|
return DrawInfos[drawId]
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
function XDrawManager.GetDrawShowCharacter(id)
|
|
|
|
|
return DrawShowCharacter[id]
|
|
|
|
|
end
|
2024-09-01 20:49:41 +00:00
|
|
|
|
|
2023-07-14 19:35:33 +00:00
|
|
|
|
function XDrawManager.GetLostSelectDrawGroupId()
|
|
|
|
|
return LostSelectDrawGroupId
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
function XDrawManager.SetLostSelectDrawGroupId(groupId)
|
|
|
|
|
LostSelectDrawGroupId = groupId
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
function XDrawManager.GetLostSelectDrawType()
|
|
|
|
|
return LostSelectDrawType
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
function XDrawManager.SetLostSelectDrawType(type)
|
|
|
|
|
LostSelectDrawType = type
|
|
|
|
|
end
|
2024-09-01 20:49:41 +00:00
|
|
|
|
|
2023-07-14 19:35:33 +00:00
|
|
|
|
function XDrawManager.GetDrawInfoListByGroupId(groupId)
|
|
|
|
|
local list = {}
|
|
|
|
|
local drawAimProbability = XDrawConfigs.GetDrawAimProbability()
|
|
|
|
|
|
|
|
|
|
for _, info in pairs(DrawInfos) do
|
|
|
|
|
if info.GroupId == groupId then
|
|
|
|
|
tableInsert(list, info)
|
|
|
|
|
end
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
tableSort(list, function(a, b)
|
|
|
|
|
local PriorityA = drawAimProbability[a.Id] and drawAimProbability[a.Id].Priority or 0
|
|
|
|
|
local PriorityB = drawAimProbability[b.Id] and drawAimProbability[b.Id].Priority or 0
|
|
|
|
|
|
|
|
|
|
if PriorityA == PriorityB then
|
|
|
|
|
return a.Id < b.Id
|
|
|
|
|
else
|
|
|
|
|
return PriorityA > PriorityB
|
|
|
|
|
end
|
|
|
|
|
end)
|
|
|
|
|
|
|
|
|
|
return list
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
function XDrawManager.GetUseDrawInfoByGroupId(groupId)
|
|
|
|
|
local groupInfo = DrawGroupInfos[groupId]
|
|
|
|
|
local UseDrawInfo = groupInfo.UseDrawId > 0 and XDrawManager.GetDrawInfo(groupInfo.UseDrawId) or nil
|
|
|
|
|
|
|
|
|
|
if UseDrawInfo then
|
|
|
|
|
return UseDrawInfo
|
|
|
|
|
else
|
|
|
|
|
local list = XDrawManager.GetDrawInfoListByGroupId(groupId)
|
|
|
|
|
return list[1]
|
|
|
|
|
end
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
function XDrawManager.GetDrawGroupInfoByGroupId(groupId)
|
|
|
|
|
return DrawGroupInfos[groupId]
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
function XDrawManager.CheckDrawIsTimeOver(drawId)
|
|
|
|
|
if not DrawInfos[drawId] then
|
|
|
|
|
return true
|
|
|
|
|
end
|
|
|
|
|
if DrawInfos[drawId].EndTime == 0 then
|
|
|
|
|
return false
|
|
|
|
|
end
|
|
|
|
|
local nowTime = XTime.GetServerNowTimestamp()
|
|
|
|
|
return DrawInfos[drawId].EndTime - nowTime <= 0
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
-- 查询相关begin --
|
|
|
|
|
function XDrawManager.GetDrawGroupInfos()
|
|
|
|
|
local list = {}
|
|
|
|
|
|
|
|
|
|
for _, v in pairs(DrawGroupInfos) do
|
|
|
|
|
tableInsert(list, v)
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
tableSort(list, function(a, b)
|
|
|
|
|
return a.Priority > b.Priority
|
|
|
|
|
end)
|
|
|
|
|
--检测如果有过期的,下次请求跳过时间间隔检测
|
|
|
|
|
for _, v in pairs(list) do
|
|
|
|
|
if v.EndTime > 0 and v.EndTime - XTime.GetServerNowTimestamp() <= 0 then
|
|
|
|
|
LastGetGroupInfoTime = 0
|
|
|
|
|
CurSelectTabInfo = nil
|
|
|
|
|
end
|
|
|
|
|
end
|
|
|
|
|
return list
|
|
|
|
|
end
|
2024-09-01 20:49:41 +00:00
|
|
|
|
|
2023-07-14 19:35:33 +00:00
|
|
|
|
function XDrawManager.GetGroupIdWithMaxOrder()
|
|
|
|
|
local orderId = -1
|
|
|
|
|
local groupId = -1
|
2024-09-01 20:49:41 +00:00
|
|
|
|
for _, v in pairs(DrawGroupInfos) do
|
2023-07-14 19:35:33 +00:00
|
|
|
|
if orderId < v.Order then
|
|
|
|
|
orderId = v.Order
|
|
|
|
|
groupId = v.Id
|
|
|
|
|
end
|
|
|
|
|
end
|
|
|
|
|
return groupId
|
|
|
|
|
end
|
|
|
|
|
|
2024-09-01 20:49:41 +00:00
|
|
|
|
function XDrawManager.GetGroupIdWithFreeTicket()
|
|
|
|
|
local max = -1
|
|
|
|
|
local groupIdList = {}
|
|
|
|
|
local ticketCountDic = {}
|
|
|
|
|
for _, ticketInfo in pairs(FreeDrawTicket) do
|
|
|
|
|
if not ticketCountDic[ticketInfo.CfgId] then
|
|
|
|
|
ticketCountDic[ticketInfo.CfgId] = ticketInfo.Count
|
|
|
|
|
else
|
|
|
|
|
ticketCountDic[ticketInfo.CfgId] = ticketCountDic[ticketInfo.CfgId] + ticketInfo.Count
|
2023-07-14 19:35:33 +00:00
|
|
|
|
end
|
|
|
|
|
end
|
|
|
|
|
|
2024-09-01 20:49:41 +00:00
|
|
|
|
for cfgId, count in pairs(ticketCountDic) do
|
|
|
|
|
local cfg = XDrawConfigs.GetDrawTicketCfg(cfgId)
|
|
|
|
|
if count > max then
|
|
|
|
|
max = count
|
|
|
|
|
groupIdList = {}
|
|
|
|
|
for _,groupId in pairs(cfg.DrawGroupIds) do
|
|
|
|
|
table.insert(groupIdList,groupId)
|
|
|
|
|
end
|
|
|
|
|
elseif count == max then
|
|
|
|
|
for _,groupId in pairs(cfg.DrawGroupIds) do
|
|
|
|
|
table.insert(groupIdList,groupId)
|
|
|
|
|
end
|
2023-07-14 19:35:33 +00:00
|
|
|
|
end
|
|
|
|
|
end
|
2024-09-01 20:49:41 +00:00
|
|
|
|
|
|
|
|
|
local order = -1
|
|
|
|
|
local groupId
|
|
|
|
|
for _, gId in pairs(groupIdList) do
|
|
|
|
|
local groupInfo = XDrawManager.GetDrawGroupInfoByGroupId(gId)
|
|
|
|
|
if groupInfo and groupInfo.Order > order then
|
|
|
|
|
order = groupInfo.Order
|
|
|
|
|
groupId = gId
|
2023-07-14 19:35:33 +00:00
|
|
|
|
end
|
|
|
|
|
end
|
2024-09-01 20:49:41 +00:00
|
|
|
|
return groupId
|
2023-07-14 19:35:33 +00:00
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
--==============================--
|
|
|
|
|
--desc: 打乱奖励顺序,防止因规则造成顺序可循
|
|
|
|
|
--@rewardGoodsList: 奖励列表
|
|
|
|
|
--@return 处理后奖励列表
|
|
|
|
|
--==============================--
|
|
|
|
|
-- local function UpsetRewardGoodsList(rewardGoodsList)
|
|
|
|
|
-- local list = {}
|
|
|
|
|
|
|
|
|
|
-- local len = #rewardGoodsList
|
|
|
|
|
-- if len <= 1 then
|
|
|
|
|
-- return rewardGoodsList
|
|
|
|
|
-- end
|
|
|
|
|
|
|
|
|
|
-- for i = 1, len do
|
|
|
|
|
-- local index = math.random(1, len)
|
|
|
|
|
-- if index ~= i then
|
|
|
|
|
-- local tmp = rewardGoodsList[i]
|
|
|
|
|
-- rewardGoodsList[i] = rewardGoodsList[index]
|
|
|
|
|
-- rewardGoodsList[index] = tmp
|
|
|
|
|
-- end
|
|
|
|
|
-- end
|
|
|
|
|
|
|
|
|
|
-- return rewardGoodsList
|
|
|
|
|
-- end
|
|
|
|
|
|
|
|
|
|
-- 消息相关end --
|
|
|
|
|
-- Wind --
|
|
|
|
|
function XDrawManager.GetDrawTab(tabID)
|
|
|
|
|
for _, tab in pairs(DrawTabs) do
|
|
|
|
|
if tab.Id == tabID then
|
|
|
|
|
return tab
|
|
|
|
|
end
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
XLog.Error("XDrawManager.GetDrawTab : Client/Draw/DrawTabs.tab 表中不存在 tabID:" .. tabID .. "检查参数或者配置表项")
|
|
|
|
|
return nil
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
function XDrawManager.GetCurSelectTabInfo()
|
|
|
|
|
return CurSelectTabInfo
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
function XDrawManager.SetCurSelectTabInfo(info)
|
|
|
|
|
CurSelectTabInfo = info
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
function XDrawManager.UpdateDrawGroupByInfo(clientDrawInfo)
|
|
|
|
|
for _, v in pairs(DrawGroupInfos) do
|
|
|
|
|
if v.UseDrawId == clientDrawInfo.Id then
|
|
|
|
|
v.BottomTimes = clientDrawInfo.MaxBottomTimes - clientDrawInfo.BottomTimes
|
|
|
|
|
end
|
|
|
|
|
end
|
|
|
|
|
end
|
|
|
|
|
|
2024-09-01 20:49:41 +00:00
|
|
|
|
function XDrawManager.GetActivityDrawMarkId(Id)
|
|
|
|
|
--获取当前卡池ID的卡池在记录队列中的位置ID
|
2023-07-14 19:35:33 +00:00
|
|
|
|
local countMax = XSaveTool.GetData(string.format("%d%s", XPlayer.Id, "ActivityDrawCountMax"))
|
|
|
|
|
if countMax then
|
|
|
|
|
for i = 1, countMax do
|
|
|
|
|
local drawId = XSaveTool.GetData(string.format("%d%s%d", XPlayer.Id, "NewActivityDraw", i))
|
|
|
|
|
if drawId then
|
|
|
|
|
if drawId == Id then
|
|
|
|
|
return i
|
|
|
|
|
end
|
|
|
|
|
end
|
|
|
|
|
end
|
|
|
|
|
end
|
|
|
|
|
return nil
|
|
|
|
|
end
|
|
|
|
|
|
2024-09-01 20:49:41 +00:00
|
|
|
|
function XDrawManager.MarkActivityDraw()
|
|
|
|
|
--记录当前开放的活动卡池
|
2023-07-14 19:35:33 +00:00
|
|
|
|
for _, Id in pairs(ActivityDrawList or {}) do
|
|
|
|
|
if not XDrawManager.GetActivityDrawMarkId(Id) then
|
|
|
|
|
local count = 1
|
|
|
|
|
while true do
|
|
|
|
|
if not XSaveTool.GetData(string.format("%d%s%d", XPlayer.Id, "NewActivityDraw", count)) then
|
|
|
|
|
XSaveTool.SaveData(string.format("%d%s%d", XPlayer.Id, "NewActivityDraw", count), Id)
|
|
|
|
|
local countMax = XSaveTool.GetData(string.format("%d%s", XPlayer.Id, "ActivityDrawCountMax"))
|
|
|
|
|
if (not countMax) or (countMax and countMax < count) then
|
|
|
|
|
XSaveTool.SaveData(string.format("%d%s", XPlayer.Id, "ActivityDrawCountMax"), count)
|
|
|
|
|
end
|
|
|
|
|
break
|
|
|
|
|
end
|
|
|
|
|
count = count + 1
|
|
|
|
|
end
|
|
|
|
|
end
|
|
|
|
|
end
|
|
|
|
|
IsHasNewActivityDraw = false
|
|
|
|
|
end
|
|
|
|
|
|
2024-09-01 20:49:41 +00:00
|
|
|
|
function XDrawManager.UnMarkOldActivityDraw(list)
|
|
|
|
|
--消除已关闭卡池的记录
|
2023-07-14 19:35:33 +00:00
|
|
|
|
local countMax = XSaveTool.GetData(string.format("%d%s", XPlayer.Id, "ActivityDrawCountMax"))
|
|
|
|
|
if countMax then
|
|
|
|
|
for i = 1, countMax do
|
|
|
|
|
local drawId = XSaveTool.GetData(string.format("%d%s%d", XPlayer.Id, "NewActivityDraw", i))
|
|
|
|
|
if drawId then
|
|
|
|
|
local IsInList = false
|
|
|
|
|
for _, v in pairs(list or {}) do
|
|
|
|
|
if drawId == v then
|
|
|
|
|
IsInList = true
|
|
|
|
|
end
|
|
|
|
|
end
|
|
|
|
|
if not IsInList then
|
|
|
|
|
XSaveTool.RemoveData(string.format("%d%s%d", XPlayer.Id, "NewActivityDraw", i))
|
|
|
|
|
end
|
|
|
|
|
end
|
|
|
|
|
end
|
|
|
|
|
end
|
|
|
|
|
end
|
|
|
|
|
|
2024-09-01 20:49:41 +00:00
|
|
|
|
function XDrawManager.SetNewActivityDraw(list)
|
|
|
|
|
--记录是否有新卡池开启
|
2023-07-14 19:35:33 +00:00
|
|
|
|
IsHasNewActivityDraw = false
|
|
|
|
|
for _, v in pairs(list or {}) do
|
|
|
|
|
IsHasNewActivityDraw = IsHasNewActivityDraw or (not XDrawManager.GetActivityDrawMarkId(v))
|
|
|
|
|
end
|
|
|
|
|
end
|
|
|
|
|
|
2024-09-01 20:49:41 +00:00
|
|
|
|
function XDrawManager.CheckNewActivityDraw()
|
|
|
|
|
--检查是否有新卡池开启
|
2023-07-14 19:35:33 +00:00
|
|
|
|
if not XFunctionManager.JudgeCanOpen(XFunctionManager.FunctionName.DrawCard) then
|
|
|
|
|
return false
|
|
|
|
|
end
|
|
|
|
|
return IsHasNewActivityDraw
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
function XDrawManager.UpdateDrawActivityCount(count)
|
|
|
|
|
DrawActivityCount = count
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
function XDrawManager.UpdateActivityDrawList(list)
|
|
|
|
|
ActivityDrawList = list
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
function XDrawManager.UpdateActivityDrawListByTag(lnfoList)
|
|
|
|
|
for _, v in pairs(lnfoList) do
|
|
|
|
|
if not ActivityDrawListByTag[v.Tag] then
|
|
|
|
|
ActivityDrawListByTag[v.Tag] = {}
|
|
|
|
|
end
|
|
|
|
|
local drawInfo = XDataCenter.DrawManager.GetUseDrawInfoByGroupId(v.Id)
|
|
|
|
|
table.insert(ActivityDrawListByTag[v.Tag], drawInfo.Id)
|
|
|
|
|
end
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
function XDrawManager.CheckDrawActivityCount()
|
|
|
|
|
return DrawActivityCount > 0
|
|
|
|
|
end
|
|
|
|
|
|
2024-09-01 20:49:41 +00:00
|
|
|
|
function XDrawManager.IsCanAutoOpenAimGroupSelect(time, groupId)
|
|
|
|
|
--判断time时间以内是否可以自动打开狙击池组合选择界面
|
2023-07-14 19:35:33 +00:00
|
|
|
|
local data = XSaveTool.GetData(string.format("%d%s%d", XPlayer.Id, "AimAutoOpenState", groupId))
|
|
|
|
|
if data then
|
|
|
|
|
if time > data then
|
|
|
|
|
XSaveTool.SaveData(string.format("%d%s%d", XPlayer.Id, "AimAutoOpenState", groupId), time)
|
|
|
|
|
return true
|
|
|
|
|
else
|
|
|
|
|
return false
|
|
|
|
|
end
|
|
|
|
|
else
|
|
|
|
|
XSaveTool.SaveData(string.format("%d%s%d", XPlayer.Id, "AimAutoOpenState", groupId), time)
|
|
|
|
|
return true
|
|
|
|
|
end
|
|
|
|
|
end
|
2024-09-01 20:49:41 +00:00
|
|
|
|
|
|
|
|
|
function XDrawManager.IsShowNewTag(time, ruleType, groupId)
|
|
|
|
|
--判断time时间以内是否显示新标签
|
2023-07-14 19:35:33 +00:00
|
|
|
|
local data = XSaveTool.GetData(string.format("%d%s%d%d", XPlayer.Id, "DrawShowNewTag", ruleType, groupId))
|
|
|
|
|
if data then
|
|
|
|
|
if time > data then
|
|
|
|
|
return true
|
|
|
|
|
else
|
|
|
|
|
return false
|
|
|
|
|
end
|
|
|
|
|
else
|
|
|
|
|
return true
|
|
|
|
|
end
|
|
|
|
|
end
|
2024-09-01 20:49:41 +00:00
|
|
|
|
|
|
|
|
|
function XDrawManager.MarkNewTag(time, ruleType, groupId)
|
|
|
|
|
--标记新标签
|
2023-07-14 19:35:33 +00:00
|
|
|
|
local data = XSaveTool.GetData(string.format("%d%s%d%d", XPlayer.Id, "DrawShowNewTag", ruleType, groupId))
|
|
|
|
|
if data then
|
|
|
|
|
if time > data then
|
|
|
|
|
XSaveTool.SaveData(string.format("%d%s%d%d", XPlayer.Id, "DrawShowNewTag", ruleType, groupId), time)
|
|
|
|
|
end
|
|
|
|
|
else
|
|
|
|
|
XSaveTool.SaveData(string.format("%d%s%d%d", XPlayer.Id, "DrawShowNewTag", ruleType, groupId), time)
|
|
|
|
|
end
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
function XDrawManager.GetDrawPurchase(drawId)
|
|
|
|
|
local drawInfo = XDataCenter.DrawManager.GetDrawInfo(drawId)
|
|
|
|
|
if not drawInfo then
|
|
|
|
|
return {}
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
local purchaseIds = drawInfo.PurchaseId
|
|
|
|
|
local drawPurchase = {}
|
|
|
|
|
if purchaseIds and next(purchaseIds) then
|
|
|
|
|
for _, purchaseId in ipairs(purchaseIds) do
|
2024-09-01 20:49:41 +00:00
|
|
|
|
local purchaseData = XDataCenter.PurchaseManager.GetPurchaseDataById(purchaseId)
|
2023-07-14 19:35:33 +00:00
|
|
|
|
if purchaseData then
|
|
|
|
|
tableInsert(drawPurchase, purchaseData)
|
|
|
|
|
end
|
|
|
|
|
end
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
return drawPurchase
|
|
|
|
|
end
|
2024-09-01 20:49:41 +00:00
|
|
|
|
|
|
|
|
|
--region ActivityTarget 狙击目标
|
|
|
|
|
---@return XDrawActivityTargetInfo
|
|
|
|
|
function XDrawManager.GetDrawActivityTargetInfo(activityId)
|
|
|
|
|
if _DrawActivityTargetInfoDir[activityId] and XTool.IsNumberValid(_DrawActivityTargetInfoDir[activityId]:GetTargetCount()) then
|
|
|
|
|
return _DrawActivityTargetInfoDir[activityId]
|
|
|
|
|
end
|
|
|
|
|
return false
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
---@return number
|
|
|
|
|
function XDrawManager.GetDrawActivityTargetIdByGroupId(groupId)
|
|
|
|
|
return _DrawGroupActivityTargetDir[groupId]
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
---@return XDrawActivityTargetInfo
|
|
|
|
|
function XDrawManager.GetDrawGroupActivityTargetInfo(groupId)
|
|
|
|
|
local activityId = _DrawGroupActivityTargetDir[groupId]
|
|
|
|
|
if not activityId then
|
|
|
|
|
return false
|
|
|
|
|
end
|
|
|
|
|
return XDrawManager.GetDrawActivityTargetInfo(activityId)
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
---@return table
|
|
|
|
|
function XDrawManager.GetDrawGroupActivityTargetInfoDir()
|
|
|
|
|
return _DrawGroupActivityTargetDir
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
function XDrawManager._InitDrawGroupActivityTargetData()
|
|
|
|
|
_DrawActivityTargetInfoDir = {}
|
|
|
|
|
_DrawGroupActivityTargetDir = {}
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
---更新指定抽奖校准
|
|
|
|
|
function XDrawManager._UpdateDrawActivityTargetInfos(activityTargetInfoList)
|
|
|
|
|
if XTool.IsTableEmpty(activityTargetInfoList) then
|
|
|
|
|
return
|
|
|
|
|
end
|
|
|
|
|
XDrawManager._InitDrawGroupActivityTargetData()
|
|
|
|
|
-- 保留并更新已有的
|
|
|
|
|
for _, data in ipairs(activityTargetInfoList) do
|
|
|
|
|
XDrawManager._TryToAddDrawActivityTargetInfo(data)
|
|
|
|
|
_DrawActivityTargetInfoDir[data.ActivityId]:UpdateData(data)
|
|
|
|
|
end
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
---更新抽奖次数
|
|
|
|
|
function XDrawManager._UpdateDrawActivityTimes(data)
|
|
|
|
|
if XTool.IsTableEmpty(data) then
|
|
|
|
|
return
|
|
|
|
|
end
|
|
|
|
|
-- 保留并更新已有的
|
|
|
|
|
if _DrawActivityTargetInfoDir[data.ActivityId] then
|
|
|
|
|
_DrawActivityTargetInfoDir[data.ActivityId]:SetTargetTimes(data.TargetTimes)
|
|
|
|
|
end
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
---@param infoList table
|
|
|
|
|
function XDrawManager._UpdateDrawActivityStatus(infoList)
|
|
|
|
|
if XTool.IsTableEmpty(infoList) then
|
|
|
|
|
return
|
|
|
|
|
end
|
|
|
|
|
local tipType = 0
|
|
|
|
|
local isHaveChange = false
|
|
|
|
|
for _, data in ipairs(infoList) do
|
|
|
|
|
if XTool.IsNumberValid(data.ActivityStatus) then
|
|
|
|
|
if tipType < data.ActivityStatus then
|
|
|
|
|
tipType = data.ActivityStatus
|
|
|
|
|
end
|
|
|
|
|
if data.ActivityStatus == 2 then
|
|
|
|
|
XDrawManager._TryToRemoveDrawActivityTargetInfo(data)
|
|
|
|
|
else
|
|
|
|
|
XDrawManager._TryToAddDrawActivityTargetInfo(data)
|
|
|
|
|
end
|
|
|
|
|
isHaveChange = true
|
|
|
|
|
end
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
-- 如果不在抽卡相关界面不提示不踢回主界面
|
|
|
|
|
if not XLuaUiManager.IsUiLoad("UiNewDrawMain") then
|
|
|
|
|
return
|
|
|
|
|
end
|
|
|
|
|
-- 如果意外跳转其他ui直接踢回主界面
|
|
|
|
|
if XLuaUiManager.IsUiShow("UiDrawLog")
|
|
|
|
|
or XLuaUiManager.IsUiShow("UiDrawOptional")
|
|
|
|
|
or XLuaUiManager.IsUiShow("UiNewDrawMain")
|
|
|
|
|
or XLuaUiManager.IsUiShow("UiDrawNew")
|
|
|
|
|
or XLuaUiManager.IsUiShow("UiDrawShowNew")
|
|
|
|
|
then
|
|
|
|
|
if isHaveChange then
|
|
|
|
|
XEventManager.DispatchEvent(XEventId.EVENT_DRAW_TARGET_ACTIVITY_CHANGE, tipType)
|
|
|
|
|
end
|
|
|
|
|
return
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
XLuaUiManager.RunMain()
|
|
|
|
|
if tipType == XDrawConfigs.DrawTargetTipType.Open then
|
|
|
|
|
XUiManager.TipErrorWithKey("DrawTargetActivityOpen")
|
|
|
|
|
elseif tipType == XDrawConfigs.DrawTargetTipType.Close then
|
|
|
|
|
XUiManager.TipErrorWithKey("DrawTargetActivityClose")
|
|
|
|
|
elseif tipType == XDrawConfigs.DrawTargetTipType.Update then
|
|
|
|
|
XUiManager.TipErrorWithKey("DrawTargetActivityUpdate")
|
|
|
|
|
end
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
function XDrawManager._TryToAddDrawActivityTargetInfo(data)
|
|
|
|
|
if XTool.IsNumberValid(data.ActivityId) and XTool.IsNumberValid(data.DrawGroupId) then
|
|
|
|
|
-- 数据不存在则添加
|
|
|
|
|
if not _DrawActivityTargetInfoDir[data.ActivityId] then
|
|
|
|
|
_DrawActivityTargetInfoDir[data.ActivityId] = XDrawActivityTargetInfo.New()
|
|
|
|
|
_DrawActivityTargetInfoDir[data.ActivityId]:UpdateData(data)
|
|
|
|
|
_DrawGroupActivityTargetDir[data.DrawGroupId] = data.ActivityId
|
|
|
|
|
return true
|
|
|
|
|
end
|
|
|
|
|
-- 数据存在则更新
|
|
|
|
|
_DrawActivityTargetInfoDir[data.ActivityId]:UpdateData(data)
|
|
|
|
|
_DrawGroupActivityTargetDir[data.DrawGroupId] = data.ActivityId
|
|
|
|
|
end
|
|
|
|
|
return false
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
function XDrawManager._TryToRemoveDrawActivityTargetInfo(data)
|
|
|
|
|
if _DrawActivityTargetInfoDir[data.ActivityId] then
|
|
|
|
|
_DrawActivityTargetInfoDir[data.ActivityId] = nil
|
|
|
|
|
end
|
|
|
|
|
if _DrawGroupActivityTargetDir[data.DrawGroupId] then
|
|
|
|
|
_DrawGroupActivityTargetDir[data.DrawGroupId] = nil
|
|
|
|
|
end
|
|
|
|
|
return not _DrawGroupActivityTargetDir[data.DrawGroupId] and not _DrawActivityTargetInfoDir[data.ActivityId]
|
|
|
|
|
end
|
|
|
|
|
--endregion
|
|
|
|
|
|
|
|
|
|
--region ServerDataUpdate
|
|
|
|
|
function XDrawManager.UpdateDrawGroupInfos(groupInfoList)
|
|
|
|
|
DrawGroupInfos = {}
|
|
|
|
|
|
|
|
|
|
local isExpired = true
|
|
|
|
|
|
|
|
|
|
for _, info in pairs(groupInfoList) do
|
|
|
|
|
DrawGroupInfos[info.Id] = info
|
|
|
|
|
DrawGroupInfos[info.Id].BottomTimes = DrawGroupInfos[info.Id].MaxBottomTimes - DrawGroupInfos[info.Id].BottomTimes
|
|
|
|
|
if CurSelectTabInfo then
|
|
|
|
|
if info.Id == CurSelectTabInfo.Id then
|
|
|
|
|
isExpired = false
|
|
|
|
|
end
|
|
|
|
|
end
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
if isExpired then
|
|
|
|
|
CurSelectTabInfo = nil
|
|
|
|
|
end
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
function XDrawManager.UpdateDrawInfos(drawInfoList)
|
|
|
|
|
--每次更新一组info之前清空之前相同GroupId的信息
|
|
|
|
|
local deleteKey = {}
|
|
|
|
|
for k, v in pairs(DrawInfos) do
|
|
|
|
|
if v.GroupId == drawInfoList[1].GroupId then
|
|
|
|
|
deleteKey[k] = true
|
|
|
|
|
end
|
|
|
|
|
end
|
|
|
|
|
for k, _ in pairs(deleteKey) do
|
|
|
|
|
DrawInfos[k] = nil
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
for _, info in pairs(drawInfoList) do
|
|
|
|
|
XDrawManager.UpdateDrawInfo(info)
|
|
|
|
|
end
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
function XDrawManager.UpdateDrawInfo(drawInfo)
|
|
|
|
|
DrawInfos[drawInfo.Id] = XTool.Clone(drawInfo)
|
|
|
|
|
DrawInfos[drawInfo.Id].BottomTimes = DrawInfos[drawInfo.Id].MaxBottomTimes - DrawInfos[drawInfo.Id].BottomTimes
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
--- ticketInfo
|
|
|
|
|
--- Id
|
|
|
|
|
--- CfgId
|
|
|
|
|
--- ExpireTime
|
|
|
|
|
--- Count
|
|
|
|
|
function XDrawManager.UpdateDrawTicket(data, isClear)
|
|
|
|
|
if isClear then
|
|
|
|
|
FreeDrawTicket = {}
|
|
|
|
|
end
|
|
|
|
|
for _, ticketInfo in pairs(data) do
|
|
|
|
|
FreeDrawTicket[ticketInfo.Id] = ticketInfo
|
|
|
|
|
end
|
|
|
|
|
XEventManager.DispatchEvent(XEventId.EVENT_DRAW_FREE_TICKET_UPDATE)
|
|
|
|
|
end
|
|
|
|
|
--endregion
|
|
|
|
|
|
|
|
|
|
--region Proto
|
|
|
|
|
-- 查询相关end --
|
|
|
|
|
-- 消息相关begin --
|
|
|
|
|
function XDrawManager.GetDrawInfoList(groupId, cb, IsNotDoCoolDown)
|
|
|
|
|
local now = XTime.GetServerNowTimestamp()
|
|
|
|
|
if LastGetDropInfoTimes[groupId] and now - LastGetDropInfoTimes[groupId] <= GET_DRAW_DATA_INTERVAL and not IsNotDoCoolDown then
|
|
|
|
|
if cb then
|
|
|
|
|
cb()
|
|
|
|
|
end
|
|
|
|
|
return
|
|
|
|
|
end
|
|
|
|
|
XNetwork.Call("DrawGetDrawInfoListRequest", { GroupId = groupId }, function(res)
|
|
|
|
|
if res.Code ~= XCode.Success then
|
|
|
|
|
XUiManager.TipCode(res.Code)
|
|
|
|
|
return
|
|
|
|
|
end
|
|
|
|
|
XDrawManager.UpdateDrawInfos(res.DrawInfoList)
|
|
|
|
|
LastGetDropInfoTimes[groupId] = now
|
|
|
|
|
if cb then
|
|
|
|
|
cb()
|
|
|
|
|
end
|
|
|
|
|
end)
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
function XDrawManager.GetDrawGroupList(cb)
|
|
|
|
|
if not XFunctionManager.DetectionFunction(XFunctionManager.FunctionName.DrawCard) then
|
|
|
|
|
return
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
local now = XTime.GetServerNowTimestamp()
|
|
|
|
|
if now - LastGetGroupInfoTime <= GET_DRAW_DATA_INTERVAL then
|
|
|
|
|
if cb then
|
|
|
|
|
cb()
|
|
|
|
|
end
|
|
|
|
|
return
|
|
|
|
|
end
|
|
|
|
|
XNetwork.Call("DrawGetDrawGroupListRequest", nil, function(res)
|
|
|
|
|
if res.Code ~= XCode.Success then
|
|
|
|
|
XUiManager.TipCode(res.Code)
|
|
|
|
|
return
|
|
|
|
|
end
|
|
|
|
|
XDrawManager.UpdateDrawGroupInfos(res.DrawGroupInfoList)
|
|
|
|
|
XDrawManager._UpdateDrawActivityTargetInfos(res.DrawAdjustActivityInfoList)
|
|
|
|
|
LastGetGroupInfoTime = now
|
|
|
|
|
if cb then
|
|
|
|
|
cb()
|
|
|
|
|
end
|
|
|
|
|
end)
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
function XDrawManager.DrawCard(drawId, count, freeTicketId, cb,failCb)
|
|
|
|
|
XNetwork.Call("DrawDrawCardRequest", { DrawId = drawId, Count = count, UseDrawTicketId = freeTicketId }, function(res)
|
|
|
|
|
if res.Code ~= XCode.Success then
|
|
|
|
|
if failCb then
|
|
|
|
|
failCb()
|
|
|
|
|
end
|
|
|
|
|
XUiManager.TipCode(res.Code)
|
|
|
|
|
return
|
|
|
|
|
end
|
|
|
|
|
XDrawManager.UpdateDrawInfo(res.ClientDrawInfo)
|
|
|
|
|
XDrawManager.UpdateDrawGroupByInfo(res.ClientDrawInfo)
|
|
|
|
|
XDrawManager._UpdateDrawActivityTimes(res.DrawAdjustData)
|
|
|
|
|
local drawInfo = XDrawManager.GetDrawInfo(res.ClientDrawInfo.Id)
|
|
|
|
|
if cb then
|
|
|
|
|
cb(drawInfo, res.RewardGoodsList, res.ExtraRewardList)
|
|
|
|
|
end
|
|
|
|
|
end)
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
function XDrawManager.SaveDrawAimId(drawId, groupId, cb)
|
|
|
|
|
--保存狙击目标
|
|
|
|
|
XNetwork.Call("DrawSetUseDrawIdRequest", { DrawId = drawId }, function(res)
|
|
|
|
|
if res.Code ~= XCode.Success then
|
|
|
|
|
XUiManager.TipCode(res.Code)
|
|
|
|
|
return
|
|
|
|
|
end
|
|
|
|
|
XDrawManager.GetDrawGroupInfoByGroupId(groupId).UseDrawId = drawId
|
|
|
|
|
XDrawManager.GetDrawGroupInfoByGroupId(groupId).SwitchDrawIdCount = res.SwitchDrawIdCount
|
|
|
|
|
if cb then
|
|
|
|
|
cb()
|
|
|
|
|
end
|
|
|
|
|
end)
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
function XDrawManager.RequestSelectTargetActivity(activityId, targetId, cb)
|
|
|
|
|
local reqBody = {
|
|
|
|
|
ActivityId = activityId;
|
|
|
|
|
TargetId = targetId;
|
|
|
|
|
}
|
|
|
|
|
XNetwork.Call("DrawAdjustTargetRequest", reqBody, function(res)
|
|
|
|
|
if res.Code ~= XCode.Success then
|
|
|
|
|
XUiManager.TipCode(res.Code)
|
|
|
|
|
return
|
|
|
|
|
end
|
|
|
|
|
XDrawManager.GetDrawActivityTargetInfo(activityId):SetTargetId(targetId)
|
|
|
|
|
if cb then
|
|
|
|
|
cb()
|
|
|
|
|
end
|
|
|
|
|
end)
|
|
|
|
|
end
|
|
|
|
|
--endregion
|
2023-07-14 19:35:33 +00:00
|
|
|
|
|
|
|
|
|
-- WindEnd --
|
|
|
|
|
XDrawManager.Init()
|
|
|
|
|
return XDrawManager
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
XRpc.NotifyActivityDrawGroupCount = function(data)
|
|
|
|
|
XDataCenter.DrawManager.UpdateDrawActivityCount(data.Count)
|
|
|
|
|
XEventManager.DispatchEvent(XEventId.EVENT_DRAW_ACTIVITYCOUNT_CHANGE)
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
XRpc.NotifyActivityDrawList = function(data)
|
|
|
|
|
XDataCenter.DrawManager.UpdateActivityDrawList(data.DrawIdList)
|
|
|
|
|
XDataCenter.DrawManager.SetNewActivityDraw(data.DrawIdList)
|
|
|
|
|
XDataCenter.DrawManager.UnMarkOldActivityDraw(data.DrawIdList)
|
|
|
|
|
XEventManager.DispatchEvent(XEventId.EVENT_DRAW_ACTIVITYDRAW_CHANGE)
|
2024-09-01 20:49:41 +00:00
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
XRpc.NotifyDrawTicketData = function(data)
|
|
|
|
|
XDataCenter.DrawManager.UpdateDrawTicket(data.DrawTicketInfos, true)
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
XRpc.NotifyUpdateDrawTicketData = function(data)
|
|
|
|
|
XDataCenter.DrawManager.UpdateDrawTicket({ data.DrawTicketInfo }, false)
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
---刷新抽卡狙击瞄准规则
|
|
|
|
|
XRpc.NotifyDrawAdjustActivity = function(data)
|
|
|
|
|
XDataCenter.DrawManager._UpdateDrawActivityStatus(data.DrawAdjustActivityInfoList)
|
|
|
|
|
end
|