-- 防沉迷系统 XAntiAddictionManagerCreator = function() local XAntiAddictionManager = {} local NeedToKickOff = false local KickMsg = nil local IsDrawingCard = false local IsPaying = false -- 踢下线 local KickOffAction = function() if not NeedToKickOff then return end if KickMsg == nil or KickMsg == "" then -- 无消息踢人,直接退出 XUserManager.Logout(function(result) if result then CS.XHeroSdkAgent.NotifyKickResult(result) end end) return end -- 有消息,弹窗提醒 XUiManager.SystemDialogTip(CS.XTextManager.GetText("TipTitle"), KickMsg, XUiManager.DialogType.OnlySure, nil, function() XUserManager.Logout(function(result) if result then CS.XHeroSdkAgent.NotifyKickResult(result) end end) end) end -- 防沉迷踢人 function XAntiAddictionManager.Kick(msg) NeedToKickOff = true KickMsg = msg if CS.XFight.Instance ~= nil then -- 战斗中 return end if IsPaying then -- 充值中 return end if IsDrawingCard then -- 抽卡中 return end KickOffAction() end -- 开始抽卡行为 function XAntiAddictionManager.BeginDrawCardAction() IsDrawingCard = true end -- 结束抽卡行为 function XAntiAddictionManager.EndDrawCardAction() IsDrawingCard = false KickOffAction() end -- 开始充值行为 function XAntiAddictionManager.BeginPayAction() IsPaying = true end -- 结束充值行为 function XAntiAddictionManager.EndPayAction() IsPaying = false KickOffAction() end -- 结束战斗行为 function XAntiAddictionManager.EndFightAction() KickOffAction() end return XAntiAddictionManager end