local VIP_Controller = {} local private = {} local EventSystem = require("Event/EventSystem") local VIPInvitationKey = "VIPInvitationKey" local LineAppLink = DataSheetManager.ConstData:GetDataByID("VIPInvitationLineURL").StringValue local WhatsAppLink = DataSheetManager.ConstData:GetDataByID("VIPInvitationWhatsAppURL").StringValue local WhatsAppLink_IOS = DataSheetManager.ConstData:GetDataByID("VIPInvitationWhatsAppURL_IOS").StringValue --VIP的其中一个功能——邀请函 --region *****VIP邀请相关***** function VIP_Controller.ExecuteVIPInvitationLink(appType) if not appType then appType = MDL.VIP.GetAppType() end if appType == MDL.VIP.AppType.Line then UnityEngine.Application.OpenURL(LineAppLink) elseif appType == MDL.VIP.AppType.WhatsApp then if GameAppInfo.IsiOSPackage() then UnityEngine.Application.OpenURL(WhatsAppLink_IOS) else UnityEngine.Application.OpenURL(WhatsAppLink) end elseif appType == MDL.VIP.AppType.ZALOApp then local zaloAppLink = DataSheetManager.ConstData:GetDataByID("VIPInvitationZALOURL").StringValue UnityEngine.Application.OpenURL(zaloAppLink) end end function VIP_Controller.GetVIPInvitationLeftTime() return math.max(MDL.VIP.GetVIPInvitationEndTime() - UTL.Time.GetServerTimestamp(), 0) end function VIP_Controller.IsShowVIPInvitation() if not MDL.Unlock.IsUnlock(MDL.Unlock.FunctionType.VIPInvitation) then return false end if GameAppInfo.IsChinesePackage() then if SDKUtil.ChannelID ~= LuaConst.SDKChannelId.Hero_Android and SDKUtil.ChannelID ~= LuaConst.SDKChannelId.Hero_iOS then return false end end local endTime = MDL.VIP.GetVIPInvitationEndTime() if endTime and endTime > 0 then return endTime > UTL.Time.GetServerTimestamp() end return false end function VIP_Controller.CheckDailyShowVipInvitation() if VIP_Controller.IsShowVIPInvitation() then if private.isCheckLoginToday then return end local lastTime = PersistentData.PlayerData:Get(VIPInvitationKey) if not lastTime or UTL.Time.IsTimestampCrossDay(lastTime) then PersistentData.PlayerData:Set(VIPInvitationKey, UTL.Time.GetServerTimestamp(), true) CTL.HomeMain.AddTownHomeDelayView(Const_UI_Lua.UIEnum.UIVIPInvitation) end private.isCheckLoginToday = true end end function VIP_Controller.SetEndTimeHandle() if private.vipInvitationHandle then TimerUtil.Remove(private.vipInvitationHandle) private.vipInvitationHandle = nil end local leftTime = VIP_Controller.GetVIPInvitationLeftTime() if leftTime > 0 then private.vipInvitationHandle = TimerUtil.Interval(private.DispatchInvitationEnd, leftTime, 1) end end function private.DispatchInvitationEnd() EventSystem.Dispatch(EventID.UI_VIPInvitation_TimeRefresh) end --endregion *****VIP邀请相关***** return VIP_Controller