miduo_client/Assets/ManagedResources/~Lua/Modules/Login/LoginPanel.lua

980 lines
42 KiB
Lua
Raw Blame History

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

require("Base/BasePanel")
LoginPanel = Inherit(BasePanel)
local this = LoginPanel
this.LoginWay = { Account = 0, WeChat = 1 }
SERVER_VERSION = tonumber(ServerConfigManager.GetSettingValue(ServerConfigManager.SettingConfig.ServerVersion) or 0)
local IsShowNotice = false
local IsSDKLogin = AppConst.isSDK and AppConst.isSDKLogin
local IsDevelopLogin = true
local openIdkey = "openIdkey"
local openIdPw = "openIdPw"
local defaultOpenIdkey = Language[11135]
local defaultOpenIdPw = ""
local LoginRoot_Url = ServerConfigManager.GetVersionInfo("serverUrl")
local LoginRoot_SubChannel = ServerConfigManager.GetVersionInfo("subChannel")
local LoginRoot_Channel = ServerConfigManager.GetVersionInfo("channel")
local LoginRoot_Version = ServerConfigManager.GetVersionInfo("version")
local LoginRoot_PackageVersion = ServerConfigManager.GetVersionInfo("packageVersion")
local LoginRoot_NoticeChannel = ServerConfigManager.GetSettingValue(ServerConfigManager.SettingConfig.NOTICE_CHANNEL) or ""
local LoginRoot_UserChannel = ServerConfigManager.GetSettingValue(ServerConfigManager.SettingConfig.USER_CHANNEL) or ""
local orginLayer
local IsUserProtoActive = ServerConfigManager.IsSettingActive(ServerConfigManager.SettingConfig.USER_PROTO)
local timeStamp = Time.realtimeSinceStartup
local timeSign = Util.MD5Encrypt(string.format("%s%s", timeStamp, LoginManager.sign))
local UrlList = {}
local HaveConfirm = false
--初始化组件(用于子类重写)
function this:InitComponent()
this.spLoader = SpriteLoader.New()
orginLayer = 0
this.loginPart = this.gameObject
this.tip = Util.GetGameObject(this.loginPart, "tip/Text")
this.loginAnim = this.gameObject:GetComponent("Animator")
this.loginAnim.enabled = false
this.btnLoginPart = Util.GetGameObject(this.loginPart, "jinruyouxi")
this.btnLogin = Util.GetGameObject(this.loginPart, "jinruyouxi _wenzi")
this.inputField = Util.GetGameObject(this.loginPart, "InputField"):GetComponent("InputField")
this.UserBtn = Util.GetGameObject(this.loginPart, "userBtn")
this.UserBtnText = Util.GetGameObject(this.loginPart, "userBtn/Text"):GetComponent("Text")
this.btnUser = Util.GetGameObject(this.loginPart, "btnUser")
this.btnNotice = Util.GetGameObject(this.loginPart, "btnNotice")
this.btnAgeTip = Util.GetGameObject(this.loginPart, "btnAgeTip")
this.btnAgeTipPosition=this.btnAgeTip:GetComponent("RectTransform").localPosition
this.btnNotice:SetActive(IsShowNotice)
---selectServerPart
this.serverSelectPart = Util.GetGameObject(this.loginPart, "serverSelect")
this.serverMes = Util.GetGameObject(this.serverSelectPart, "serverMes"):GetComponent("Text")
this.changeServerBtn = Util.GetGameObject(this.serverSelectPart, "changeServer")
this.sdkLoginBtn = Util.GetGameObject(this.loginPart, "loginBtn")
this.SetLoginPart(false)
this.loginMask = Util.GetGameObject(this.loginPart, "loginMask")
this.versionText = Util.GetGameObject(this.loginPart, "version"):GetComponent("Text")
this.versionText.text = Language[11136]..LoginRoot_Version
-- this.bg1 = Util.GetGameObject(this.gameObject, "bg11"):GetComponent("RawImage")
-- resMgr:SetStreamingTexture(this.bg1, "login_caohua.png")
-- 背景
this.bg = Util.GetGameObject(this.gameObject, "bg"):GetComponent("Image")
this.bgStr = PackageManager.GetLoginPanelBg()
this.bg.color = Color.New(1, 1, 1, 0)
LoadStreamingTexture(this.spLoader, this.bgStr, function(sp)
-- this.bg.sprite = sp
this.bg.color = Color.New(1, 1, 1, 1)
end)
-- logo
this.logo = Util.GetGameObject(this.gameObject, "logo"):GetComponent("Image")
this.logoStr = PackageManager.GetLoginPanelLogo()
if this.logoStr and this.logoStr ~= "" then
LoadStreamingTexture(this.spLoader, this.logoStr, function(sp)
--this.logo.gameObject:SetActive(true)
--this.logo.sprite = sp
this.logo:SetNativeSize()
end)
else
this.logo.gameObject:SetActive(false)
end
--this.logo.gameObject:SetActive(false)
-- BindLightFlash(Util.GetGameObject(this.logo, "saoguang"), this.logo)
this.healthTip = Util.GetGameObject(this.gameObject, "healthTip")
this.healthTip:SetActive(IS_SHOW_HEALTH_TIP)
this.bh = Util.GetGameObject(this.gameObject, "healthTip/bh"):GetComponent("Text")
local bhContent = PackageManager.GetBHContent()
-- LogError(tostring(bhContent))
if bhContent then
this.bh.text = bhContent
else
this.bh.text = ""
end
this.video = Util.GetGameObject(this.gameObject, "VideoPlayer")
--用户隐私协议
this.protos = Util.GetGameObject(this.gameObject, "protos")
this.newproto = Util.GetGameObject(this.gameObject, "newProto")
this.instructionsBtn = Util.GetGameObject(this.gameObject, "protos/instructionsBtn")
this.privacyBtn = Util.GetGameObject(this.gameObject, "protos/privacyBtn")
this.boyBtn = Util.GetGameObject(this.gameObject, "newProto/boyBtn")
this.thirdBtn = Util.GetGameObject(this.gameObject, "newProto/thirdBtn")
this.ConfirmBtn = Util.GetGameObject(this.gameObject, "protos/Confirm")
this.ConfirmImg = Util.GetGameObject(this.ConfirmBtn, "gou")
this.protos:SetActive(IsUserProtoActive)
this.newproto:SetActive(false)
end
--绑定事件(用于子类重写)
function this:BindEvent()
Util.AddClick(this.btnLogin, this.OnLoginClick)
--this.dropDown:ClearOptions()
Util.AddInputField_OnEndEdit(this.inputField.gameObject, function(str)
PlayerPrefs.SetString(openIdkey, str)
end)
Util.AddClick(this.btnUser, function()
local user = PlayerPrefs.GetString(openIdkey, defaultOpenIdkey)
local userPw = PlayerPrefs.GetString(openIdPw, defaultOpenIdPw)
UIManager.OpenPanel(UIName.LoginPopup, user, userPw, function(str, pw)
this.UserBtnText.text = str
PlayerPrefs.SetString(openIdkey, str)
PlayerPrefs.SetString(openIdPw, pw)
end)
end)
Util.AddClick(this.btnNotice, function()
this.ShowNotice()
end)
Util.AddClick(this.btnAgeTip, function()
UIManager.OpenPanel(UIName.HelpPopup,HELP_TYPE.AgeTip,this.btnAgeTipPosition.x,this.btnAgeTipPosition.y)
end)
Util.AddClick(this.UserBtn, function()
local user = PlayerPrefs.GetString(openIdkey, defaultOpenIdkey)
local userPw = PlayerPrefs.GetString(openIdPw, defaultOpenIdPw)
UIManager.OpenPanel(UIName.LoginPopup, user, userPw, function(str, pw)
this.UserBtnText.text = str
PlayerPrefs.SetString(openIdkey, str)
PlayerPrefs.SetString(openIdPw, pw)
end)
end)
---SelectServer
Util.AddClick(this.changeServerBtn, function()
local function reServerCallback(str)
if str == nil then
return
end
if str ~= nil and str ~= "" then
MyPCall(function()
local json = require 'cjson'
local data = json.decode(str)
-- selectServerPart
this.SetServerList(data)
-- 打开服务器选择界面
UIManager.OpenPanel(UIName.ServerListSelectPanel, {
serverList = this.serverList,
myServerList = this.myServerList,
lastServer = this.lastServer,
recommend = this.recommend,
callback = function(index)
local list = this.serverList[index]
PlayerManager.serverInfo = list
LoginManager.SocketAddress = list.ip
LoginManager.SocketPort = list.port
LoginManager.ServerId = list.server_id
LoginManager.state = list.state
--local severArea = tonumber(string.sub(list.server_id, 0, -5))
this.serverMes.text = PlayerManager.serverInfo.name-- .. "\t<color=#56F384FF>" .. severArea .. "</color>" .. Language[11138]
end
})
end)
end
end
-- 判断获取服务器的id
if IsSDKLogin then
this.RequestServerList(AppConst.OpenId, reServerCallback)
else
local userId = PlayerPrefs.GetString(openIdkey, defaultOpenIdkey)
this.RequestServerList(userId, reServerCallback)
end
end)
--SDK 登录
Util.AddClick(this.sdkLoginBtn, function()
-- 喜扑IOS包sdk无法屏蔽点击事件不允许主动触发
if LoginRoot_Channel == "XP2" then
return
end
this.SDKLogin()
end)
--用户隐私协议
Util.AddClick(this.instructionsBtn, function()
OpenWeb(UrlList[1])
end)
Util.AddClick(this.privacyBtn, function()
OpenWeb(UrlList[2])
end)
Util.AddClick(this.boyBtn, function()
OpenWeb("http://smi.648sy.com/about/child")
end)
Util.AddClick(this.thirdBtn, function()
OpenWeb("http://smi.648sy.com/about/share")
end)
Util.AddClick(this.ConfirmBtn, function()
local confirm = PlayerPrefs.GetInt("IHaveConfirmProtos")
if confirm == 0 then
this.ConfirmImg:SetActive(true)
PlayerPrefs.SetInt("IHaveConfirmProtos",1)
elseif confirm == 1 then
this.ConfirmImg:SetActive(false)
PlayerPrefs.SetInt("IHaveConfirmProtos",0)
end
end)
end
-- sdk 初始化完成回调
function this.OnInitSuccess()
this.SDKLogin()
end
--添加事件监听(用于子类重写)
function this:AddListener()
Game.GlobalEvent:AddEvent(Protocal.Connect, this.OnConnect)
Game.GlobalEvent:AddEvent(Protocal.Disconnect, this.OnDisconnect)
Game.GlobalEvent:AddEvent(GameEvent.LoginSuccess.OnLoginSuccess, this.RefreshLoginStatus)
Game.GlobalEvent:AddEvent(GameEvent.LoginSuccess.OnLogout, this.OnLogout)
Game.GlobalEvent:AddEvent(GameEvent.SDK.InitSuccess, this.OnInitSuccess)
end
--移除事件监听(用于子类重写)
function this:RemoveListener()
Game.GlobalEvent:RemoveEvent(Protocal.Connect, this.OnConnect)
Game.GlobalEvent:RemoveEvent(Protocal.Disconnect, this.OnDisconnect)
Game.GlobalEvent:RemoveEvent(GameEvent.LoginSuccess.OnLoginSuccess, this.RefreshLoginStatus)
Game.GlobalEvent:RemoveEvent(GameEvent.LoginSuccess.OnLogout, this.OnLogout)
Game.GlobalEvent:RemoveEvent(GameEvent.SDK.InitSuccess, this.OnInitSuccess)
end
function this:OnLogout()
if IsSDKLogin then
this.SetLoginPart(false)
this.sdkLoginBtn:SetActive(true)
this.inputField.gameObject:SetActive(false)
this.UserBtn:SetActive(false)
this.btnUser:SetActive(false)
this.btnNotice.transform.position = this.btnUser.transform.position
this.SDKLogin()
else
this.sdkLoginBtn:SetActive(false)
local userId = PlayerPrefs.GetString(openIdkey, defaultOpenIdkey)
--LogError("userid=="..userId)
if IsDevelopLogin then
this.UserBtn:SetActive(false)
this.btnUser:SetActive(false)
this.inputField.gameObject:SetActive(true)
this.inputField.text = userId
else
this.UserBtn:SetActive(true)
this.btnUser:SetActive(true)
this.inputField.gameObject:SetActive(false)
this.UserBtnText.text = userId
end
RequestPanel.Show(Language[11139])
this.SetLoginPart(true)
-- 获取服务器列表
this.RequestServerList(userId, this.OnReceiveServerList)
end
end
function this:OnSortingOrderChange()
Util.AddParticleSortLayer(self.gameObject, self.sortingOrder - orginLayer)
orginLayer = this.sortingOrder
end
--界面打开时调用(用于子类重写)
function this:OnOpen(...)
-- local url="http://82.157.34.193:9991/delivery/ohayooGetExternal"
-- local data="body;高级基金;notify_url;http://82.157.34.193:9991/delivery/OhayooCallback;open_id;32AtGSX36PYLuNbx;custom_callback_info;20001190_78_4001_IOS;order_no;200011901931657796390;product_id;78;sign_type;MD5;subject;高级基金;total_amount;12800;trade_time;1657796390;valid_time;2592000"
-- HttpManager:SendPostHttp(url,data, this.OnReceiveLogin, nil, nil, nil)
--设置背景
PackageManager.SetVideo(this.video, this.bg)
if AppConst.Code ~= "" then
MsgPanel.ShowOne(GetLanguageStrById(AppConst.Code))
AppConst.Code = ""
end
if IsSDKLogin then
this.SetLoginPart(false)
this.sdkLoginBtn:SetActive(true)
this.inputField.gameObject:SetActive(false)
this.UserBtn:SetActive(false)
this.btnUser:SetActive(false)
this.btnNotice.transform.position = this.btnUser.transform.position
this.SDKLogin()
else
this.sdkLoginBtn:SetActive(false)
local userId = PlayerPrefs.GetString(openIdkey, defaultOpenIdkey)
if IsDevelopLogin then
this.UserBtn:SetActive(false)
this.btnUser:SetActive(false)
this.inputField.gameObject:SetActive(true)
this.inputField.text = userId
else
this.UserBtn:SetActive(true)
this.btnUser:SetActive(true)
this.inputField.gameObject:SetActive(false)
this.UserBtnText.text = userId
end
RequestPanel.Show(Language[11139])
this.SetLoginPart(true)
-- 获取服务器列表
this.RequestServerList(userId, this.OnReceiveServerList)
end
local tran = this.tip:GetComponent("RectTransform")
--LayoutUtility.GetPreferredWidth(tran)
local offsetX = (GetPreferredWidth(tran) + Screen.width) / 2
tran.anchoredPosition = Vector2.New(offsetX, 0)
tran:DOAnchorPosX(-offsetX, 30, false):SetEase(Ease.Linear):SetLoops(-1)
-- 初始化一些数据
LoginManager.InitPackInfo()
SoundManager.PlayMusic(SoundConfig.BGM_Login)
SoundManager.PlayAmbient(SoundConfig.Ambient_Login)
-- local data = {}
-- local godData = this.GetGodSoulDataByLv(10023,5)
-- local godSingleDatas = {}
-- for i = 1,#godData do
-- godSingleDatas[i] = 0
-- end
-- local curHeroData = {}
-- --用条件进行匹配,使得满足条件
-- GodSoulManager.PutQueen(godData, godDatas, 1,godSingleDatas,curHeroData,5)
end
--界面关闭时调用(用于子类重写)
function this:OnClose()
this.SetLoginPart(false)
SoundManager.PauseAmbient()
end
function this.CheckNoticeShow()
-- 判断公告显示
IsShowNotice = not ServerConfigManager.IsSettingActive(ServerConfigManager.SettingConfig.IS_NO_NOTICE)
this.btnNotice:SetActive(IsShowNotice)
end
-- 打开公告界面
function this.ShowNotice()
RequestPanel.Show(Language[11137])
--LogError("LoginRoot_NoticeChannel=="..LoginRoot_NoticeChannel)
-- 如果有渠道包配置的id则加上
local noticeChannel = LoginRoot_NoticeChannel
local subNoticeID = PackageManager.GetSubNoticeID()
if subNoticeID then
noticeChannel = noticeChannel.. subNoticeID
else
local packID = PackageManager.GetPackageID()
if packID then
noticeChannel = noticeChannel .. packID
end
end
local url = LoginRoot_Url .. "jl_loginserver/getNotice?timestamp="..timeStamp.."&sign=".. timeSign.."&packageName="..noticeChannel
HttpManager:SendGetHttp(url,function (str)
UIManager.OpenPanel(UIName.NoticePopup,str)
end, nil, nil, nil)
end
-- 请求获取
function this.RequestServerVersion(func)
local ChannelID = LoginRoot_UserChannel == "" and LoginRoot_Channel or LoginRoot_UserChannel
local packId = PackageManager.GetPackageID()
if packId then
ChannelID = ChannelID.. packId
end
local url = LoginRoot_Url .. "jl_loginserver/getServerVersion?serverVersion="..ChannelID
HttpManager:SendGetHttp(url, function (str)
if str == "" or str == "null" or string.find(str, "html") then
LogWarn("获取到的ServerVersion数据是空值请检查")
else
local json = require 'cjson'
local context = json.decode(str)
if IsSDKLogin then
-- 当前包的版本号小于GM配置的版本号则包连接正式服否则连接提审服
local vcode = ServerConfigManager.GetSDKVersionCode()
if vcode <= context.serverInfo then
SERVER_VERSION = 0 -- 正式服
else
SERVER_VERSION = 1 -- 提审服
end
end
end
--
if func then
func()
end
end, nil, nil, function(errCode, errMsg)
LogError("GetServerVersion Error: "..tostring(errCode) .. ", "..tostring(errMsg))
if func then
func()
end
end)
end
-- 请求获取服务器列表
function this.RequestServerList(userId, callback)
this.RequestServerVersion(function()
this.CheckNoticeShow()
--userId=100
RequestPanel.Show(Language[11139])
local url = string.format(
"%sjl_loginserver/getServerList?openId=%s&channel=%s&plat=android&sub_channel=%s&server_version=%s",
LoginRoot_Url, userId, LoginRoot_Channel, LoginRoot_SubChannel, SERVER_VERSION)
HttpManager:SendGetHttp(url, callback, nil, nil, nil)
end)
--用户协议,隐私政策
this.RequestProtos(userId)
end
--获取用户隐私协议
function this.RequestProtos(userId)
-- this.protos:SetActive(false)
this.ConfirmImg:SetActive(PlayerPrefs.GetInt("IHaveConfirmProtos") == 1)
UrlList[1] = ""
UrlList[2] = ""
if not IsUserProtoActive then
Log("用户和隐私协议功能未开启")
return
end
local chanel= AppConst.SdkChannel
local ChannelID = LoginRoot_UserChannel == "" and LoginRoot_Channel or LoginRoot_UserChannel
local PackageID = PackageManager.GetPackageID()
if PackageID then
ChannelID = ChannelID .. PackageID
end
local url = LoginRoot_Url.."jl_loginserver/getAgreement?gamePack="..ChannelID
LogError("协议地址为=="..url)
HttpManager:SendGetHttp(url, function (str)
local json = require 'cjson'
local data = json.decode(str)
if data.parms then
UrlList[1] = data.parms.instructions
UrlList[2] = data.parms.privacy
Log("instructionsUrl:"..tostring(UrlList[1]).." privacyUrl:"..tostring(UrlList[2]))
HaveConfirm = true
else
this.protos:SetActive(false)
this.newproto:SetActive(false)
Log("用户和隐私协议地址为空")
HaveConfirm = false
return
end
if UrlList[1] ~= "" and UrlList[2] ~="" then
this.protos:SetActive(true)
if chanel and (chanel=="YGDC" or chanel=="XQDC") then
this.newproto:SetActive(true)
else
this.newproto:SetActive(false)
end
HaveConfirm = true
else
this.protos:SetActive(false)
this.newproto:SetActive(false)
HaveConfirm = false
end
end, nil, nil, nil)
end
--界面销毁时调用(用于子类重写)
function this:OnDestroy()
this.spLoader:Destroy()
PackageManager.UnloadVideo()
end
this.isWaiting = false
function this.SDKLogin()
if not this.isWaiting then
this.isWaiting = true
Timer.New(function()
SDKMgr:Login()
this.isWaiting = false
end, 1, 1):Start()
end
end
function this.RefreshLoginStatus(result)
if result == SDK_RESULT.SUCCESS then
RequestPanel.Show(Language[11139])
this.SetLoginPart(true)
this.sdkLoginBtn:SetActive(false)
-- 获取服务器列表
this.RequestServerList(AppConst.OpenId, this.OnReceiveServerList)
else
this.sdkLoginBtn:SetActive(true)
end
end
function this.SetSDKExtensionParams(params)
if not params or params == "" then
return
end
local json = require 'cjson'
local context = json.decode(params)
BindPhoneNumberManager.SetPtToken(context.token)
LoginManager.pt_pId = context.pid
LoginManager.pt_gId = context.gid
end
--收到公告
function this.OnReceiveAnnouncement(str)
if str == nil then
return
end ;
pcall(function()
local json = require 'cqueryAllies'
local data = json.decode(str);
if data.content ~= nil and data.content ~= "" then
UIManager.OpenPanel(UIName.GongGaoPanel, data.content)
end
end);
end
--获取服务器列表地址
function this.OnReceiveServerList(str)
if str == nil then
return
end
if str ~= nil and str ~= "" then
MyPCall(function()
local json = require 'cjson'
local data = json.decode(str)
---selectServerPart
this.SetServerList(data)
if not IsSDKLogin and not IsDevelopLogin then
local user = PlayerPrefs.GetString(openIdkey, defaultOpenIdkey)
local userPw = PlayerPrefs.GetString(openIdPw, defaultOpenIdPw)
if user == defaultOpenIdkey or userPw == defaultOpenIdPw then
UIManager.OpenPanel(UIName.RegistPopup, function(str, pw)
this.UserBtnText.text = str
PlayerPrefs.SetString(openIdkey, str)
PlayerPrefs.SetString(openIdPw, pw)
end)
else
LoginManager.RequestUser(user, userPw, function(code)
if code ~= 0 then
UIManager.OpenPanel(UIName.LoginPopup, user, userPw, function(str, pw)
this.UserBtnText.text = str
PlayerPrefs.SetString(openIdkey, str)
PlayerPrefs.SetString(openIdPw, pw)
end)
else
if IsShowNotice then
this.loginMask:SetActive(true)
Timer.New(function()
this.ShowNotice()
this.loginMask:SetActive(false)
end, 2.5, 1):Start()
end
end
end)
end
else
if IsShowNotice then
this.loginMask:SetActive(true)
Timer.New(function()
this.ShowNotice()
this.loginMask:SetActive(false)
end, 2.5, 1):Start()
end
end
end)
end
end
function this.SetServerList(data)
this.CacheLoginData(data)
-- 默认选择第一个服务器
local lastIndex = 1
-- 判断要显示的服务器
local showServer
if this.lastServer then --有最近登录显示最近登录,没有显示推荐,否则显示第一个服
showServer = this.lastServer.serverid
else
if this.recommend then
showServer = this.recommend
end
end
-- 如果有要显示的服务器判断位置
if showServer then
for i = 1, #this.serverList do
if this.serverList[i].server_id == showServer then
lastIndex = i
break
end
end
end
PlayerManager.serverInfo = this.serverList[lastIndex]
LoginManager.SocketAddress = this.serverList[lastIndex].ip
LoginManager.SocketPort = tonumber(this.serverList[lastIndex].port)
LoginManager.ServerId = this.serverList[lastIndex].server_id
LoginManager.state = this.serverList[lastIndex].state
--local severArea = tonumber(string.sub(this.serverList[lastIndex].server_id, 0, -5))
this.serverMes.text = PlayerManager.serverInfo.name-- .. "\t<color=#56F384FF>" .. severArea .. "</color>" .. Language[11138]
RequestPanel.Hide()
end
function this.CacheLoginData(data)
this.serverList = {}
for i = 1, #data.serverList do
this.serverList[i] = data.serverList[i]
end
--取消serverId排序改用后端原数据手动把isnew的数据插入到第一个
local tempList = {}
for i = 1, #this.serverList do
if this.serverList[i].isnew > 0 then
local tempData = this.serverList[i]
for j = i, 2, -1 do
this.serverList[j] = this.serverList[j-1]
end
this.serverList[1] = tempData
break
end
end
this.myServerList = {}
for i = 1, #data.myServerList do
this.myServerList[i] = data.myServerList[i]
end
this.lastServer = data.lastServer
this.recommend = data.recommend
end
--登录进主界面之前需要依次请求玩家数据,物品数据,装备数据,英雄数据,编队数据,任务数据, 异妖数据,工坊数据, 冒险数据
function this.ExecuteLoading()
local requestList = {
--[[[1] = ]]function() NetManager.PlayerInfoRequest(LoadingPanel.OnStep) end, -- 基础信息
--[[[2] = ]]function() NetManager.GetComparenumInfoRequest(LoadingPanel.OnStep) end, -- 数字游戏信息
--[[[2] = ]]function() NetManager.RequestMission(LoadingPanel.OnStep) end, -- 任务信息
--[[[3] = ]]function() NetManager.ItemInfoRequest(0, LoadingPanel.OnStep) end, -- 物品信息
-- [[[4] = ]]function() NetManager.AllEquipRequest(0, LoadingPanel.OnStep) end, -- 装备(走背包了)
--[[[4] = ]]function() NetManager.AllEquipTreasureRequest(0, LoadingPanel.OnStep) end, -- 宝物
--[[[5] = ]]function() NetManager.GetAllFaXiangRequest(1, LoadingPanel.OnStep) end, -- 法相
-- [[[6] = ]]function() NetManager.GetSoulPrintDataRequest(0, LoadingPanel.OnStep) end, -- 魂印(走背包了)
--[[[7] = ]]function() NetManager.DiffMonsterRequest(0,LoadingPanel.OnStep) end, -- 异妖
--[[[8] = ]]function() NetManager.HeroInfoRequest(0, LoadingPanel.OnStep) end, -- 神将信息
--[[[9] = ]]function() NetManager.TeamInfoRequest(LoadingPanel.OnStep) end, -- 编队
--[[[10] =]]function() NetManager.GetAllMailData(LoadingPanel.OnStep) end, -- 邮件
--[[[11] =]]function() NetManager.GetAllFightDataRequest(LoadingPanel.OnStep) end, -- 关卡信息
--[[[12] =]]function() NetManager.GetActivityAllRewardRequest(LoadingPanel.OnStep) end, -- 活动奖励
--[[[13] =]]function() NetManager.RequestBaseArenaData(LoadingPanel.OnStep) end, -- 竞技场
--[[[14] =]]function() ShopManager.InitData(LoadingPanel.OnStep) end, -- 商店
--function() NetManager.GetWorkShopInfoRequest(LoadingPanel.OnStep) end, -- 工坊?
--[[[15] =]]function() ChatManager.InitData(LoadingPanel.OnStep) end, -- 聊天
--[[[16] =]]function() NetManager.GetAllFunState(LoadingPanel.OnStep) end, -- 功能开启信息
--[[[17] =]]function() NetManager.RequestGetFriendInfo(1, LoadingPanel.OnStep) end, -- 好友
--[[[18] =]]function() NetManager.RequestGetFriendInfo(2, LoadingPanel.OnStep) end, -- 好友申请
--[[[19] =]]function() NetManager.RequestGetFriendInfo(3, LoadingPanel.OnStep) end, -- 好友搜索
--[[[20] =]]function() NetManager.RequestGetFriendInfo(4, LoadingPanel.OnStep) end, -- 黑名单
--[[[21] =]]function() FriendChatManager.InitData(LoadingPanel.OnStep) end, -- 好友消息
--[[[22] =]]function() MyGuildManager.InitBaseData(LoadingPanel.OnStep) end, -- 公会信息
--function() GuildFightManager.InitBaseData(LoadingPanel.OnStep) end, -- 公会战
--[[[23] =]]function() NetManager.GetAllGuildSkillData(LoadingPanel.OnStep) end, -- 公会技能
--[[[24] =]]function() NetManager.InitFightPointLevelInfo(LoadingPanel.OnStep) end, -- 关卡
--[[[25] =]]function() NetManager.GetExpeditionRequest(ExpeditionManager.expeditionLeve,LoadingPanel.OnStep) end, -- 大闹天宫
--[[[26] =]]function() NetManager.GuildHelpGetAllRequest(LoadingPanel.OnStep) end, -- 公会援助
--[[[27] =]]function() DeathPosManager.InitData(LoadingPanel.OnStep) end, -- 十绝阵
--[[[28] =]]function() NetManager.TreasureOfHeavenScoreRequest(LoadingPanel.OnStep) end, -- 天宫秘宝积分
--[[[29] =]]function() NetManager.RankFirstRequest({3,22,20,4,21},{0,0,0,0,20},LoadingPanel.OnStep) end, -- 排行榜数据
--[[[30] =]]function() NetManager.GetSituationInfoRequest(LoadingPanel.OnStep) end, --轩辕宝镜
--[[[31] =]]function() NetManager.RefreshTimeSLRequest(LoadingPanel.OnStep) end, --青龙秘宝倒计时
--[[[32] =]]function() HeroManager.CheckRepeatTreasure(LoadingPanel.OnStep) end, --检测所有重复穿戴的宝器并卸下
--[[[33] =]]function() XiaoYaoManager.GetOpenMapData(LoadingPanel.OnStep) end, --逍遥游
--[[[34] =]]function() NetManager.GetHeroSkinData(LoadingPanel.OnStep) end, --皮肤
--[[[35] =]]function() NetManager.GetFourElementGetInfo(LoadingPanel.OnStep) end, --四灵试炼
--[[[35] =]]function() NetManager.GetChallengeCopyInfo(LoadingPanel.OnStep) end, --挑战副本
--[[[36] =]]function() MonsterCampManager.SetMyHelpHeroData(nil,nil,LoadingPanel.OnStep) end,--助战神将
--[[[37] =]]--function() NetManager.HongMengInfoResponse(LoadingPanel.OnStep) end, --鸿蒙阵
--[[[38] =]]function() NetManager.AllBookEnableResponse(LoadingPanel.OnStep) end, --天枢密卷
--[[[39] =]]function() NetManager.AllEndLessHeroDataResponse(0, LoadingPanel.OnStep) end,--无尽英雄数据
--[[[40] =]]function() NetManager.GetEndlessTreasureInfoResponse(LoadingPanel.OnStep) end,--无尽密保
--[[[41] =]]function() MyGuildManager.ReuqsetRedPackage(LoadingPanel.OnStep) end, --请求红包
--[[[42] =]]function() NetManager.HardStageRequest(LoadingPanel.OnStep) end, --山河社稷图
--[[[43] =]]function() NetManager.VipLevelStateRequset(LoadingPanel.OnStep) end, --vip
function() JumpServerManager.LoginGetWorldArenaInfoRequest(LoadingPanel.OnStep) end,--跨服天梯
--[[[44] =]]function() NetManager.RequestRedPacketData(LoadingPanel.OnStep) end, --福利红包
--[[[45] =]]function() NetManager.BeautyBagWishEquipRequest(nil,LoadingPanel.OnStep) end,--心愿魂印
--[[[46] =]]function() LingLongBaoJingManager.InitData(LoadingPanel.OnStep) end, --玲珑宝镜
--[[[47] =]]function() NetManager.IsCrossRequert(LoadingPanel.OnStep) end, --跨服
--[[[48] =]]function() NetManager.TaiChuSecretvolumeRequest(LoadingPanel.OnStep) end, --太初密卷
--[[[49] =]]function() NetManager.CrossYuXuLunDaoGetInfoRequest(2,LoadingPanel.OnStep) end, --玉虚论道红点
--[[[50] =]]function() NetManager.GetLikeableDataRequest(LoadingPanel.OnStep) end, --好感度
--[[[51] =]]function() NetManager.GetTransformationRequest(LoadingPanel.OnStep) end, --身外化身
--[[[52] =]]function() NetManager.GetLingMaiInfoRequest(0,LoadingPanel.OnStep) end, --灵脉秘境
--[[[53] =]]function() NetManager.SendGetTailsmanSoulData(LoadingPanel.OnStep) end, --法宝之灵
--[[[54] =]]function() NetManager.RequestArenaRankData(1,LoadingPanel.OnStep) end, --获取竞技场数据
--[[[55] =]]function() HomeLandManager.GetData(LoadingPanel.OnStep) end, --家园获取数据
--[[[56] =]]function() NetManager.ExplorerMapInfoRequest(LoadingPanel.OnStep) end, --灵脉秘境
--[[[57] =]]function() CommonActPageManager.GetPowerRicePower(LoadingPanel.OnStep) end, --战力冲刺
--[[[58] =]]function() NetManager.RequestMagicSoldierInfo(LoadingPanel.OnStep) end, --神兵
--[[[59] =]]function() NetManager.GemNewInfoRequest(LoadingPanel.OnStep) end, --新命石
function() -- 登录请求最终接口,所有请求放在此接口之前
-- 登录成功确认
NetManager.LoginConfimRequest()
-- 登录时初始化主界面竖条显示为打开状态
PlayerPrefs.SetInt(PlayerManager.uid.."MainRightBarSetting",1)
if AppConst.isGuide then
if GuideManager.GetCurId(GuideType.Force) == 1 and PlayerManager.nickName == tostring(PlayerManager.uid) and PlayerManager.level == 1 then
-- 新的引导
-- StoryManager.EventTrigger(300001)
--创号阶段先进入剧情对话,进入假战斗,然后对话起名,最后进入主界面
StoryManager.EventTrigger(300007)
-- 新的引导
-- StoryManager.EventTrigger(100001)
else
PatFaceManager.isLogin = true
UIManager.OpenPanel(UIName.FightPointPassMainPanel)
LoadingPanel.End()
end
else
UIManager.OpenPanelAsync(UIName.MainPanel, function()
if RoomManager.RoomAddress == nil or RoomManager.RoomAddress == "" then
RoomManager.IsMatch = 0
elseif RoomManager.RoomAddress == "1" then
RoomManager.IsMatch = 1
UIManager.OpenPanel(UIName.GMPanel)
PopupTipPanel.ShowTip(Language[11141])
else
if RoomManager.CurRoomType == 1 then
Log("在房间里,需要重新获取房间游戏数据~~~~~~~~~~")
RoomManager.RoomReGetGameRequest(RoomManager.RoomAddress)
end
end
LoadingPanel.End()
end)
end
if OperatingManager.IsBuyGift(78)==false then
PlayerPrefs.SetInt(PlayerManager.uid.."chaozhijijin128",0)
end
if OperatingManager.IsBuyGift(79)==false then
PlayerPrefs.SetInt(PlayerManager.uid.."chaozhijijin328",0)
end
PlayerPrefs.SetInt(PlayerManager.uid.."XunBaoMiZong_zqbg",0)
local dailyActInfo = ActivityGiftManager.GetActivityTypeInfo(ActivityTypeDef.yunmenghaoli)
if dailyActInfo and #dailyActInfo.mission > 0 then
-- 每天检测
PlayerPrefs.SetInt(PlayerManager.uid.."_YunMeng_Check"..dailyActInfo.activityId,0)
end
-- 登录成功刷新红点数据
RedpotManager.CheckAllRedPointStatus()
-- 检查新字状态
FunctionOpenMananger.InitCheck()
this.SubmitGameData()
DataCenterManager.CommitBootStatus()
end,
}
--
for _, func in ipairs(requestList) do
LoadingPanel.AddStep(func)
end
LoadingPanel.Start()
this:ClosePanel()
end
this.isLoginClick = false
function this.OnLoginClick()
if IsUserProtoActive and HaveConfirm and PlayerPrefs.GetInt("IHaveConfirmProtos") == 0 then
PopupTipPanel.ShowTip("为了保证您的个人隐私和隐私安全,请详细阅读并同意用户协议及隐私政策")
return
end
-- 只要不是流畅,拥挤,爆满状态就不让登录
if not LoginManager.IsServerStateEnterable(LoginManager.state) then
local function reServerCallback(str)
if str == nil then
return
end
if str ~= nil and str ~= "" then
MyPCall(function()
local json = require 'cjson'
local data = json.decode(str)
---selectServerPart
this.SetServerList(data)
-- 还是不可进状态则提示服务器维护中
if not LoginManager.IsServerStateEnterable(LoginManager.state) then
PopupTipPanel.ShowTip("服务器还未开启哦,具体开服时间可见公告~")
RequestPanel.Hide()
else
-- 开始登录
this.RequestHttpLogin()
end
end)
end
end
-- 判断获取服务器的id
if IsSDKLogin then
this.RequestServerList(AppConst.OpenId, reServerCallback)
else
local userId = PlayerPrefs.GetString(openIdkey, defaultOpenIdkey)
this.RequestServerList(userId, reServerCallback)
end
return
end
-- 开始登录
this.RequestHttpLogin()
end
-----------++++++++++++++++++++++++++++++++++++++++ http +++++++++++++++++++++++++++++
-- 登录服请求登录
function this.RequestHttpLogin()
RequestPanel.Show(Language[11144])
local url = ""
local user_channel = LoginRoot_UserChannel == "" and LoginRoot_Channel or LoginRoot_UserChannel
local tokenStr=AppConst.TokenStr
local Platform=1
-- if user_channel~="pc" then
-- local chanel= SDKMgr:GetChannel()
-- if chanel and chanel=="Ohayoo" then
-- tokenStr =encodeURI(AppConst.TokenStr)
-- LogError("AppConst.TokenStr============"..tokenStr)
-- Platform=3
-- end
-- end
if IsSDKLogin then
url = LoginRoot_Url
.. "jl_loginserver/getUserInfo?openId=" .. AppConst.OpenId
.. "&serverId=" .. LoginManager.ServerId
.. "&token=" .. tokenStr
.. "&platform=" .. Platform
.. "&channel=" .. user_channel
.. "&sub_channel=" .. LoginRoot_SubChannel
.. "&pid=" .. AppConst.SdkChannel --LoginManager.pt_pId
.. "&gid=" .. AppConst.SdkPackageName --LoginManager.pt_gId
.. "&version=" .. LoginRoot_PackageVersion
.. "&timeStamp="..LoginManager.SdkLoginTimeStamp
.. "&ext="..encodeURI(LoginManager.extData)
.. "&platform_appid="..LoginManager.p_appId
-- .. "&userId="..LoginManager.qyUserId
-- .. "&platformId="..LoginManager.qyPlatformId
-- .. "&timestamp="..LoginManager.qyTimestamp
-- .. "&sign="..LoginManager.qySign
else
if IsDevelopLogin then
-- 开发用
local str = this.inputField.text
if str == Language[11135] then
RequestPanel.Hide()
PopupTipPanel.ShowTip(Language[11135])
return
end
PlayerPrefs.SetString(openIdkey, str)
url = LoginRoot_Url
.. "jl_loginserver/getUserInfo?openId=" .. str
.. "&serverId=" .. LoginManager.ServerId
.. "&token=111"
.. "&platform=1"
.. "&channel=" .. user_channel
.. "&sub_channel=" .. LoginRoot_SubChannel
.. "&admin=d53b3e8ef74bf72d8aafce3a1c8671a0"
.. "&version=" .. LoginRoot_PackageVersion
.. "&timeStamp=0"
else
url = LoginRoot_Url
.. "jl_loginserver/getUserInfo?openId=" ..LoginManager.openId
.. "&serverId=" .. LoginManager.ServerId
.. "&token=" .. LoginManager.token
.. "&platform=4"
.. "&channel=" .. user_channel
.. "&sub_channel=" .. LoginRoot_SubChannel
.. "&admin=d53b3e8ef74bf72d8aafce3a1c8671a0"
.. "&version=" .. LoginRoot_PackageVersion
.. "&timeStamp=0",
this.OnReceiveLogin, nil, nil, nil
end
end
HttpManager:SendGetHttp(url, this.OnReceiveLogin, nil, nil, nil)
end
--用户id登录
function this.OnReceiveLogin(str)
RequestPanel.Hide()
if str == nil then
return
end
if str ~= nil and str ~= "" then
MyPCall(function()
Log(str)
local json = require 'cjson'
local data = json.decode(str)
if data.errorCode and data.errorCode == -1 then
MsgPanel.ShowOne(data.reason or Language[11145])
return
end
if data.uid and data.token and not LoginManager.IsLogin then
AppConst.UserId = data.uid
AppConst.Token = data.token
this.RequestSocketLogin()
end
end)
end
end
-----------++++++++++++++++++++++++++++++++++++++++ http +++++++++++++++++++++++++++++
-----------++++++++++++++++++++++++++++++++++++++++ socket +++++++++++++++++++++++++++++
-- 请求连接socket
function this.RequestSocketLogin()
Log("请求连接Socket")
RequestPanel.Show(Language[11143])
SocketManager.Disconnect(SocketType.LOGIN)
SocketManager.AddNetwork(SocketType.LOGIN, LoginManager.SocketAddress, LoginManager.SocketPort)
SocketManager.TryConnect(SocketType.LOGIN)
end
function this.OnConnect(network)
local openId = AppConst.isSDKLogin and AppConst.OpenId or PlayerPrefs.GetString(openIdkey)
NetManager.LoginRequest(openId, function()
if not LoginManager.IsLogin then
LoginManager.IsLogin = true
this.ExecuteLoading()
end
RequestPanel.Hide()
end)
end
function this.OnDisconnect(network)
RequestPanel.Hide()
PopupTipPanel.ShowTip(Language[11145])
end
-----------++++++++++++++++++++++++++++++++++++++++ socket +++++++++++++++++++++++++++++
function this.SetLoginPart(flag)
this.loginAnim.enabled = flag
-- this.btnLoginPart:SetActive(flag and tostring(this.bgStr) == "dl_ui_effect_bg")
this.btnLogin:SetActive(flag)
this.serverSelectPart:SetActive(flag)
end
function this.SubmitGameData()
local isNewRole = PlayerPrefs.GetString(tostring(PlayerManager.uid), "")
if isNewRole == "" and PlayerManager.level == 1 then
PlayerPrefs.SetString(tostring(PlayerManager.uid), tostring(PlayerManager.uid))
SubmitExtraData({ type = SDKSubMitType.TYPE_CREATE_ROLE })
end
SubmitExtraData({ type = SDKSubMitType.TYPE_ENTER_GAME })
end
return LoginPanel