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" .. severArea .. "" .. 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" .. severArea .. "" .. 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
-- .. "×tamp="..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