2025-06-04 05:12:01 +08:00

851 lines
26 KiB
Plaintext

StartGamePanel = class("StartGamePanel",BaseView)
autoImport("NetPrefix")
autoImport('CSharpObjectForLogin')
autoImport('UIRoleSelect')
autoImport('LoginRoleSelector')
autoImport('FunctionLoginAnnounce')
autoImport('MonthlyVIPTip')
StartGamePanel.ViewType = UIViewType.MainLayer
PlayerPrefsMYServer = "PlayerPrefsMYServer";
PlayerPrefsQuickAcc = "PlayerPrefsQuickAcc";
PlayerPrefsDefaultName = "PlayerPrefsDefaultName";
PlayerPrefsAgreement = "PlayerPrefsAgreement";
-- StartGamePanel.LogoTextureName = "login_bg_logo";
local tempVector3 = LuaVector3.zero
StartGamePanel.BgTextureName = "login_bg_bottom";
function StartGamePanel:Init()
self:initView();
self:AddEvt();
self:MapSwitchHandler();
end
function StartGamePanel:OnEnter( )
-- body
self:initData()
self:InitShow();
self:ChangeBtnStToNormal()
self:updateAgreementPos()
end
function StartGamePanel:initData( )
self:initLoginView()
self:UpdateServerList()
self:SetVersion()
self:initAgreement()
end
function StartGamePanel:initAgreement()
if(PlayerPrefs.HasKey(PlayerPrefsAgreement)) then
local value = PlayerPrefs.GetInt(PlayerPrefsAgreement,0) == 1
self.checkBox.value = value
end
end
function StartGamePanel:requestAnnouncement()
if(self.BlockRequestAnnounceTwId)then
LeanTween.cancel(self.gameObject,self.BlockRequestAnnounceTwId)
self.BlockRequestAnnounceTwId = nil
end
local ret = LeanTween.delayedCall(self.gameObject,0.05,function ( )
self.BlockRequestAnnounceTwId = nil
FunctionLoginAnnounce.Me():requestAnnouncement()
end)
self.BlockRequestAnnounceTwId = ret.uniqueId
end
function StartGamePanel:initLoginView( )
-- body
local SDKEnable = FunctionLogin.Me():getSdkEnable()
if(SDKEnable)then
self:Hide(self.accInput.gameObject)
self:Hide(self.quickEnterBtn.gameObject)
self:HideZoneBTN()
self:Hide(self.deleteBtn.gameObject)
local pos = self.clickBtn.transform.localPosition
local _,y,_ = LuaGameObject.GetLocalPosition(self.clickBtn.transform)
tempVector3:Set(0,y,0);
self.clickBtn.transform.localPosition = tempVector3
self:Show(self.goPlatformEntrance)
self:requestAnnouncement()
-- FunctionLogin.Me():launchAndLoginSdk( )
else
self:ShowZoneBTN()
self:Show(self.accInput.gameObject)
self:Show(self.pwdInput.gameObject)
if(PlayerPrefs.HasKey(PlayerPrefsMYServer)) then
self.serverid = PlayerPrefs.GetInt(PlayerPrefsMYServer)
self.serverData = Table_ServerList[self.serverid]
end
if(self.serverid and not self.serverData)then
self.serverid = nil
end
-- self:Show(self.deleteBtn.gameObject)
self:Hide(self.goPlatformEntrance)
end
end
function StartGamePanel:ShowZoneBTN()
local transZoneBTN = self.zoneBtn.transform
local localPos = transZoneBTN.localPosition
localPos.y = -100
transZoneBTN.localPosition = localPos
self:Show(self.zoneBtn.gameObject)
end
function StartGamePanel:HideZoneBTN()
if(EnvChannel.Channel.Name == EnvChannel.ChannelConfig.Release.Name)then
self:Hide(self.zoneBtn.gameObject)
end
end
function StartGamePanel:initView()
self.container = self:FindComponent("Container",UIWidget)
self.accInput = self:FindComponent("AccountInput",UIInput)
self.pwdInput = self:FindComponent("PasswordInput",UIInput)
self.pwdret = 0
local label = self:FindComponent("Label",UILabel,self.accInput.gameObject)
local label1 = self:FindComponent("Label1",UILabel,self.pwdInput.gameObject)
-- EventDelegate.Set(self.accInput.onChange, function ( result)
-- -- body
-- -- helplog(result)
-- helplog(self.accInput.value)
-- -- return 5
-- label.text = "****"
-- end)
self.clickBtn = self:FindGO("StartBtn")
self.StartBtnCollider = self:FindComponent("StartBtnCollider",BoxCollider)
self.zoneBtn = self:FindComponent("ZoneBtn", UIButton);
--self.registerBtn = self:FindComponent("registerBtn",UIButton);
self.ZhuceBtn = self:FindComponent("ZhuceBtn",UIButton);
self.serverLab = self:FindComponent("serviceLabel", UILabel);
self.serverLab.text = ZhString.StartGamePanel_ChooseServerPrompt
self.deleteBtn = self:FindComponent("DeleteRoleBtn", UIButton);
self.quickEnterBtn = self:FindComponent("quickEnterBtn", UIButton);
self.versionLabel = self:FindComponent("VersionLabel",UILabel)
self.isDeleteRole = false
self.EnableStartBtn = true
self.ErrorOrSusBack = false
self.BlockRequest = false
self.EnableStartBtnTwId = nil
self.BlockRequestTwId = nil
self.BlockRequestAnnounceTwId = nil
-- self.logoTexture = self:FindComponent("Logo", UITexture);
self.bgTexture = self:FindComponent("BgTexture", UITexture);
self.selectTipLabel = self:FindComponent("selectTipLabel",UILabel)
self.selectTipLabel.text = ZhString.StartGamePanel_SelectTipLabel
local ServerConnectingLabel = self:FindComponent("ServerConnectingLabel",UILabel)
ServerConnectingLabel.text = ZhString.Login_ConnectingServer
self.ServerConnecting = self:FindGO("ServerConnecting")
self.cancelConnBtn = self:FindGO("cancelConnBtn")
self.goPlatformEntrance = self:FindGO("PlatformEntrance")
self.waitingView = self:FindGO("WaitingView")
local WaitingLabel = self:FindComponent("WaitingLabel",UILabel)
WaitingLabel.text = ZhString.StartGamePanel_WaitingLabel
local WaitingViewSp = self:FindComponent("WaitingViewSp",UISprite)
WaitingViewSp:UpdateAnchors()
local WaitingContainer = self:FindGO("WaitingContainer")
local bound = NGUIMath.CalculateRelativeWidgetBounds(WaitingContainer.transform,true)
local sizeX = bound.size.x
tempVector3:Set(sizeX/2,0,0)
WaitingContainer.transform.localPosition = tempVector3
-- PictureManager.Instance:SetUI(StartGamePanel.LogoTextureName, self.logoTexture);
-- self.logoTexture:MakePixelPerfect();
PictureManager.Instance:SetUI(StartGamePanel.BgTextureName, self.bgTexture);
self.bgTexture:MakePixelPerfect();
PictureManager.ReFitiPhoneXScreenHeight(self.bgTexture)
self:HideConnecting()
self:Hide(self.cancelConnBtn)
self.startEffectPath = ResourcePathHelper.EffectUI(EffectMap.UI.GameStart)
local obj = Game.AssetManager_UI:CreateAsset(self.startEffectPath,self.clickBtn)
if(obj and self:FindComponents(Animator,obj))then
tempVector3:Set(0,0,0)
obj.transform.localPosition = tempVector3
--tempVector3:Set(1,1,1)
tempVector3:Set(0.7,0.7,0.7)
obj.transform.localScale = tempVector3
local anims = self:FindComponents(Animator,obj)
self.anim = anims[1]
obj.transform.localPosition = Vector3(obj.transform.localPosition.x, -56, obj.transform.localPosition.z)
end
local agreetmentLabel = self:FindComponent("agreetmentLabel",UILabel)
agreetmentLabel.text = ZhString.StartGamePanel_AgreetmentLabel
self:AddClickEvent(agreetmentLabel.gameObject,function ( )
-- body
self:ShowAgreement()
end)
self.checkBox = self:FindComponent("checkBox",UIToggle)
local copyrightLabel = self:FindComponent("copyrightLabel",UILabel)
copyrightLabel.text = ZhString.StartGamePanel_CopyRightTips
EventDelegate.Set(self.checkBox.onChange,function ()
self:CheckBoxChange()
end)
-- self:InitializeAnnouncement()
-- self:HideAnnouncement()
end
function StartGamePanel:updateAgreementPos()
local agreetmentCt = self:FindGO("labelCt")
local bound = NGUIMath.CalculateRelativeWidgetBounds(agreetmentCt.transform,true)
local x,y,z = LuaGameObject.GetLocalPosition(agreetmentCt.transform)
local posX = bound.center.x
tempVector3:Set(0,y,z);
agreetmentCt.transform.localPosition = tempVector3
end
function StartGamePanel:ShowAgreement()
GameFacade.Instance:sendNotification(UIEvent.ShowUI,{viewname = "AgreementPanel"})
end
function StartGamePanel:CheckBoxChange()
local value = self.checkBox.value
PlayerPrefs.SetInt(PlayerPrefsAgreement,value and 1 or 0)
end
function StartGamePanel:OnExit()
-- PictureManager.Instance:UnLoadUI(StartGamePanel.LogoTextureName,self.logoTexture);
PictureManager.Instance:UnLoadUI(StartGamePanel.BgTextureName,self.bgTexture);
StartGamePanel.super.OnExit(self);
if(self.cancelLoginTipId)then
LeanTween.cancel(self.gameObject,self.cancelLoginTipId)
else
LeanTween.cancel(self.gameObject)
end
end
function StartGamePanel:SetVersion()
local clientVersion = BackwardCompatibilityUtil.GetCurrentVersionName()
local resVersion = VersionUpdateManager.CurrentVersion
if(resVersion==nil) then resVersion = "Unknown" end
self.versionLabel.text = string.format(ZhString.StartGamePanel_Version,clientVersion,resVersion)
end
function StartGamePanel:AddEvt()
self:AddClickEvent(self.StartBtnCollider.gameObject,function(go)
local value = self.checkBox.value
if(value)then
self:CallServer();
else
MsgManager.ShowMsgByIDTable(114)
end
end, {hideClickSound = true})
self:AddClickEvent(self.quickEnterBtn.gameObject,function (go)
local acc = self:GetQuickAcc();
go:GetComponent(UIButton).isEnabled = not self:CallServer(acc, nil);
end)
self:AddClickEvent(self.deleteBtn.gameObject,function (go)
go:GetComponent(UIButton).isEnabled = not self:CallServer(nil, true);
end)
self:AddClickEvent(self.zoneBtn.gameObject ,function(go)
self:sendNotification(UIEvent.ShowUI,{viewname = "SelectServerPanel",index = self.serverid})
end)
self:AddButtonEvent("cancelConnBtn" ,function(go)
-- self:Hide(self.ServerConnecting)
FunctionLogin.Me():stopTryReconnect()
end)
--self:AddClickEvent(self.registerBtn.gameObject,function(go)
self:AddClickEvent(self.ZhuceBtn.gameObject,function(go)
LogUtility.Info("點選註冊按鈕")
local registerUrl = self:GetRegisterUrl()
GameFacade.Instance:sendNotification(UIEvent.JumpPanel, {view = PanelConfig.WebviewPanel, viewdata = {directurl = registerUrl .. "/register/"}})
end)
self:AddClickEvent(self.goPlatformEntrance, function (go)
local isLogined = FunctionLogin.Me():isLogined( )
if(isLogined)then
local runtimePlatform = ApplicationInfo.GetRunPlatform()
if runtimePlatform == RuntimePlatform.Android then
if(not BackwardCompatibilityUtil.CompatibilityMode(BackwardCompatibilityUtil.V13)) then
LogUtility.Info("android StartGamePanel:FunctionXDSDK() OpenUserCenter")
FunctionXDSDK.Ins:OpenUserCenter()
return
end
end
FunctionSDK.Instance:EnterPlatform()
else
if(not self.BlockRequest)then
self:StartLogin()
FunctionLogin.Me():startGameLogin(self.serverData)
end
end
end)
end
function StartGamePanel:CallServer(acc, deleteRole)
local callSuc = false;
if(acc)then
self.accInput.value = acc;
else
acc = self.accInput.value;
end
if(acc)then
self.accInput:SaveValue();
end
--alvin
local upwd = self.pwdInput.value;
local SDKEnable = FunctionLogin.Me():getSdkEnable()
if(not SDKEnable)then
if(ApplicationInfo.GetRunPlatform() == RuntimePlatform.Android) then
if FunctionSDK.Instance.IsInitialized == false then
Debug.Log("初始化SDK 只為android 分享")
local xdsdkApplicationInfo = AppBundleConfig.GetXDSDKInfo()
FunctionSDK.Instance:XDSDKInitialize(
xdsdkApplicationInfo.APP_ID,
xdsdkApplicationInfo.APP_SECRET,
xdsdkApplicationInfo.PRIVATE_SECRET,
xdsdkApplicationInfo.ORIENTATION,
function (sucMsg )
-- body
FunctionSDK.Instance.IsInitialized = true
end,function ( failMsg )
-- body
FunctionSDK.Instance.IsInitialized = false
end)
end
end
if(self.serverData)then
PlayerPrefs.SetInt(PlayerPrefsMYServer,self.serverid or 0)
if(acc and acc~="")then
--alvin
if(upwd and upwd~="")then
--alvin 賬號密碼驗證邏輯
local AccPwd = string.format("?acc=%s&pwd=%s",acc,upwd)
local loginUrl = self:GetLoginUrl()
local checkurl = loginUrl .. "/login/index.php"
local loginurl = string.format("%s%s",checkurl,AccPwd)
LogUtility.InfoFormat("StartGamePanel:獲取註冊資訊 address url:{0}",loginurl)
local requests = HttpWWWSeveralRequests()
local order = HttpWWWRequestOrder(loginurl,NetConfig.HttpRequestTimeOut,nil,false,true)
requests:AddOrder(order)
requests:SetCallBacks(function(response)
LogUtility.InfoFormat("登錄回撥驗證 response:{0}",response.resString)
self:CheckUser(response,acc,upwd,deleteRole)
end,
function ( order )
end)
requests:StartRequest()
else
self:ErrorMsg("請輸入密碼");
end
else
self:ErrorMsg(ZhString.StartGamePanel_InputPrompt)
end
else
self:ErrorMsg(ZhString.StartGamePanel_ChooseServerPrompt)
end
else
local serverDatas = FunctionLogin.Me():getServerDatas()
local isLogined = FunctionLogin.Me():isLogined( )
if serverDatas and isLogined and not self.serverData then
self:ErrorMsg(ZhString.StartGamePanel_ChooseServerPrompt)
else
if(not self.BlockRequest)then
self:StartLogin()
self:ChangeBtnStToClicked()
self:delayEnableStartBtn()
FunctionLogin.Me():startGameLogin(self.serverData)
end
end
end
end
function StartGamePanel:ErrorMsg(msg)
MsgManager.FloatMsgTableParam(nil, msg);
end
--alvin
function StartGamePanel:CheckUser(response,acc,upwd,deleteRole)
LogUtility.InfoFormat("進入登錄驗證 response:{0}",response.resString)
self.pwdret = response.resString
LogUtility.InfoFormat("StartGamePanel:註冊返回 pwdret:{0}",self.pwdret)
local pwdstatus = self.pwdret
LogUtility.InfoFormat("StartGamePanel:判斷值 pwdstatus:{0}",pwdstatus)
if(tonumber(pwdstatus)==0)then
self:ErrorMsg("賬號密碼錯誤");
return
else
acc = tonumber(pwdstatus)
LogUtility.InfoFormat("StartGamePanel:賬號密碼正確 acc:{0}",acc)
end
if(string.sub(acc, 1, 1)=="-")then
acc = string.sub(acc, 2,-1);
end
if(tonumber(acc)>100)then
PlayerPrefs.SetString(PlayerPrefsDefaultName, acc);
self.isDeleteRole = deleteRole == true;
self:StartLogin()
self:ChangeBtnStToClicked()
FunctionLogin.Me():startGameLogin(self.serverData,acc,function ( )
-- body
FunctionLogin.Me():LoginUserCmd()
end, upwd)
else
self:ErrorMsg(ZhString.StartGamePanel_InputErrorPrompt)
end
end
function StartGamePanel:StartReconnect( )
-- body
self:Show(self.ServerConnecting)
end
function StartGamePanel:StopReconnect( )
-- body
self:HideConnecting()
end
function StartGamePanel:HideConnecting( )
-- body
self:Hide(self.ServerConnecting)
end
function StartGamePanel:GetQuickAcc()
local quickacc = 0;
if(PlayerPrefs.HasKey(PlayerPrefsQuickAcc)) then
quickacc = PlayerPrefs.GetInt(PlayerPrefsQuickAcc);
end
if(not quickacc or quickacc<100)then
quickacc = GameObjectUtil.Instance:ToHashCode(SystemInfo.deviceUniqueIdentifier);
quickacc = math.abs(quickacc);
while(quickacc<100)do
quickacc = quickacc + 100;
end
PlayerPrefs.SetInt(PlayerPrefsQuickAcc, quickacc);
end
return string.sub("-"..quickacc, 1, 10);
end
function StartGamePanel:InitShow()
self:UpdateServerShow();
end
function StartGamePanel:UpdateServerShow()
if(self.serverData)then
self.serverLab.text = self.serverData.name;
self.serverLab.color = Color(1,1,1);
else
self.serverLab.text = ZhString.StartGamePanel_NoChooseServer;
self.serverLab.color = Color(157/255,157/255,157/255);
end
end
function StartGamePanel:MapSwitchHandler()
self:AddListenEvt(ServiceEvent.ChooseServer, self.HandlerSelectServer);
self:AddListenEvt(ServiceEvent.ConnSuccess, self.HandlerConnnection);
self:AddListenEvt(ServiceEvent.UserRecvRoleInfo, self.HandlerRecvRoleInfo);
self:AddListenEvt(ServiceEvent.PlayerMapChange, self.EnterInGameEvt);
self:AddListenEvt(LoadScene.LoadSceneLoaded, self.CloseSelf);
self:AddListenEvt(ServiceEvent.Error, self.HandlerSError);
self:AddListenEvt(NewLoginEvent.LoginFailure, self.HandlerSError);
self:AddListenEvt(NewLoginEvent.StartLogin, self.StartLogin);
self:AddListenEvt(NewLoginEvent.UpdateServerList, self.UpdateServerList);
self:AddListenEvt(NewLoginEvent.StartSdkLogin, self.StartLogin);
self:AddListenEvt(NewLoginEvent.EndSdkLogin, self.EndSdkLogin);
-- self:AddListenEvt(NewLoginEvent.ConnectServerFailure, self.ConnectServerFailure);
self:AddListenEvt(NewLoginEvent.ReqLoginUserCmd, self.HandlerReqLoginUserCmd);
self:AddListenEvt(ServiceEvent.ErrorUserCmdMaintainUserCmd, self.HandlerSError);
self:AddListenEvt(NewLoginEvent.StartReconnect, self.StartReconnect);
self:AddListenEvt(NewLoginEvent.StopReconnect, self.StopReconnect);
self:AddListenEvt(EventFromLogin.ShowAnnouncement, self.OnReceiveShowAnnouncement)
self:AddListenEvt(NewLoginEvent.StopShowWaitingView, self.StopShowWaitingView)
self:AddListenEvt(NewLoginEvent.StartShowWaitingView, self.StartShowWaitingView)
self:AddListenEvt(ServiceEvent.LoginUserCmdLoginResultUserCmd, self.LoginUserCmdLoginResultUserCmd)
self:AddListenEvt(ServiceEvent.Error, self.HandleRecvError)
end
function StartGamePanel:HandleRecvError( note )
if(self.cancelLoginTipId)then
LeanTween.cancel(self.gameObject,self.cancelLoginTipId)
-- LeanTween.cancel(self.gameObject)
end
end
function StartGamePanel:StartShowWaitingView( note )
self:Show(self.waitingView)
end
function StartGamePanel:StopShowWaitingView( note )
self:Hide(self.waitingView)
end
function StartGamePanel:HandlerReqLoginUserCmd( note )
local ret = LeanTween.delayedCall(self.gameObject,5,function ( )
FunctionNetError.Me():ShowErrorById(15)
self:HandlerSError();
end)
self.cancelLoginTipId = ret.uniqueId
end
function StartGamePanel:UpdateServerList( note )
-- body
local SDKEnable = FunctionLogin.Me():getSdkEnable()
if(SDKEnable)then
local serverDatas = FunctionLogin.Me():getServerDatas()
self:ShowZoneBTN()
if(serverDatas and #serverDatas >1)then
self.zoneBtn.isEnabled = true
local tmpServer = FunctionLogin.Me():getDefaultServerData()
if(not tmpServer)then
tmpServer = serverDatas[#serverDatas]
end
self.serverData = tmpServer
elseif(serverDatas)then
self:Hide(self.selectTipLabel.gameObject)
self.zoneBtn.isEnabled = false
self.serverData = serverDatas[1]
else
self:Hide(self.zoneBtn.gameObject)
end
self:HideZoneBTN()
self:UpdateServerShow()
if(serverDatas and #serverDatas == 1)then
local bound = NGUIMath.CalculateRelativeWidgetBounds(self.serverLab.transform,true)
local posX = -bound.size.x/2
tempVector3:Set(posX,2,0);
self.serverLab.transform.localPosition = tempVector3
end
end
end
function StartGamePanel:StartBlockRequest( )
-- body
if(self.BlockRequestTwId)then
LeanTween.cancel(self.gameObject,self.BlockRequestTwId)
self.BlockRequestTwId = nil
end
self.BlockRequest = true
local ret = LeanTween.delayedCall(self.gameObject,3,function ( )
self.BlockRequest = false
self.BlockRequestTwId = nil
end)
self.BlockRequestTwId = ret.uniqueId
end
function StartGamePanel:delayEnableStartBtn( )
-- body
-- if(self.EnableStartBtnTwId)then
-- LeanTween.cancel(self.gameObject,self.EnableStartBtnTwId)
-- self.EnableStartBtnTwId = nil
-- end
-- self.EnableStartBtn = false
-- local ret = LeanTween.delayedCall(self.gameObject,3,function ( )
-- self.EnableStartBtn = true
-- self.EnableStartBtnTwId = nil
-- self:tryEnableStartBtn()
-- end)
-- self.EnableStartBtnTwId = ret.id
end
function StartGamePanel:tryEnableStartBtn( )
-- body
-- if(self.EnableStartBtn and self.ErrorOrSusBack)then
self:EnableCollider()
self:ChangeBtnStToNormal()
-- end
end
function StartGamePanel:StartLogin( note )
-- body
LogUtility.Info('StartGamePanel:StartLogin')
self.ErrorOrSusBack = false
self:DisenableCollider()
self:StartBlockRequest()
end
function StartGamePanel:DisenableCollider()
LogUtility.Info('StartGamePanel:DisenableCollider')
self.StartBtnCollider.enabled = false;
self.deleteBtn.isEnabled = false;
self.quickEnterBtn.isEnabled = false;
-- self.zoneBtn.isEnabled = false;
end
function StartGamePanel:EnableCollider()
LogUtility.Info('StartGamePanel:EnableCollider')
self.StartBtnCollider.enabled = true;
self.deleteBtn.isEnabled = true;
self.quickEnterBtn.isEnabled = true;
-- self.zoneBtn.isEnabled = true;
end
function StartGamePanel:HandlerSError(note)
LogUtility.Info('StartGamePanel:HandlerSError')
self.ErrorOrSusBack = true
self:tryEnableStartBtn()
end
function StartGamePanel:EndSdkLogin(note)
LogUtility.Info('StartGamePanel:EndSdkLogin')
self.ErrorOrSusBack = true
self:tryEnableStartBtn()
end
function StartGamePanel:ChangeBtnStToNormal()
LogUtility.Info('StartGamePanel:ChangeBtnStToNormal')
if(self.anim)then
self.anim:Play("GameStart_1",-1,0);
end
end
function StartGamePanel:ChangeBtnStToClicked()
LogUtility.Info('StartGamePanel:ChangeBtnStToClicked')
if(self.anim)then
self.anim:Play("GameStart_2",-1,0);
end
end
function StartGamePanel:HandlerSelectServer(note)
if(note ~= nil) then
self.serverData = note.body
self.serverid = self.serverData.id
self:UpdateServerShow();
end
end
function StartGamePanel:EnterInGameEvt(note)
if(note ~=nil) then
-- self:sendNotification(UIEvent.CloseUI,UIViewType.NormalLayer)
local root = GameObject.Find("Root")
if(root) then self:Hide(root) end
-- self:CloseSelf()
else
end
end
function StartGamePanel:HandlerRecvRoleInfo(note)
self:HideConnecting()
local allRoles = ServiceUserProxy.Instance:GetAllRoleInfos()
if allRoles and #allRoles >0 then
if self.isDeleteRole then
-- LogUtility.InfoFormat("dataid:%s",data.id)
ServiceLoginUserCmdProxy.Instance:CallDeleteCharUserCmd(allRoles[1].id)
MsgManager.FloatMsgTableParam(nil, "can't delete!")
LeanTween.cancel(self.gameObject)
self:HandlerSError()
-- self.isDeleteRole = false;
else
self:SwitchToSelectScene()
end
else
if self.isDeleteRole then
MsgManager.FloatMsgTableParam(nil, "no delete role!");
else
-- 沒有角色的話,切選角場景
self:SwitchToSelectScene()
end
end
end
function StartGamePanel:createNewRole( )
-- body
if(self.createRoleMode)then
local data = ServiceUserProxy.Instance:GetNewRoleInfo()
if(data)then
self.reciveData = data
if self.reciveData.id ~= nil and self.reciveData.id ~= 0 then
ServiceUserProxy.Instance:CallSelect(self.reciveData.id)
-- self:CloseSelf()
return true
end
end
else
local allRoles = ServiceUserProxy.Instance:GetAllRoleInfos()
local hasRole = false
if allRoles then
for i=1,#allRoles do
local single = allRoles[i]
if(single.isopen == 0 and single.id ~= 0 )then
hasRole = true
end
end
end
if(not hasRole)then
self.createRoleMode = true
local defaultName = self.accInput.value;
local codeUTF8 = LuaUtils.StrToUtf8(defaultName)
local roleSlotIndex = UIModelRolesList.Ins():GetEmptyIndex()
FunctionLogin.Me():createRole(codeUTF8, 2, 11, 12,2, 0,1);
return true
else
ServiceUserProxy.Instance:CallSelect(allRoles[1].id)
-- self:CloseSelf()
return true
end
end
return false
end
function StartGamePanel:LoginUserCmdLoginResultUserCmd()
ServiceGMProxy.Instance:Call("god")
ServiceGMProxy.Instance:Call("killer")
ServiceGMProxy.Instance:Call("setattr attrtype=221 attrvalue=4")
ServiceGMProxy.Instance:Call("addmoney type=131 num=200000")
ServiceGMProxy.Instance:Call("menu id=0")
-- helplog("LoginUserCmdLoginResultUserCmd ServiceGMProxy")
self:CloseSelf()
end
function StartGamePanel:SwitchToSelectScene()
local ld = LeanTween.value(self.gameObject,function(v)
self.container.alpha = v
end,1,0,1)
ld:setOnComplete(function()
-- <RB> go to select role
-- if(self:createNewRole())then
-- return
-- end
CSharpObjectForLogin.Ins():Initialize(function ()
LoginRoleSelector.Ins():Initialize()
LoginRoleSelector.Ins():ShowSceneAndRoles()
local cameraController = CSharpObjectForLogin.Ins():GetCameraController()
cameraController:GoToSelectRole()
UIRoleSelect.Ins():Open()
MonthlyVIPTip.Ins():ReadyForLoginExpirationTip()
end)
-- <RE> go to select role
self:CloseSelf()
end)
local socialShareConfig = AppBundleConfig.GetSocialShareInfo()
if socialShareConfig ~= nil then
if not BackwardCompatibilityUtil.CompatibilityMode(BackwardCompatibilityUtil.V9) then
SocialShare.Instance:Initialize(
socialShareConfig.SINA_WEIBO_APP_KEY,
socialShareConfig.SINA_WEIBO_APP_SECRET,
socialShareConfig.QQ_APP_ID,
socialShareConfig.QQ_APP_KEY,
socialShareConfig.WECHAT_APP_ID,
socialShareConfig.WECHAT_APP_SECRET
)
end
end
SocialShare.AndroidWxShareFenZi = 128
end
function StartGamePanel:SwitchToCreateScene()
local ld = LeanTween.value(self.gameObject,function(v)
self.container.alpha = v
end,1,0,1)
ld:setOnComplete(function()
FunctionPreload.Me():PreloadMakeRole()
ResourceManager.Instance:SLoadScene ("CharacterSelect")
SceneUtil.SyncLoad("CharacterSelect")
LeanTween.delayedCall(3,function ()
FunctionPreload.Me():ClearMakeRole()
ResourceManager.Instance:SUnLoadScene ("CharacterSelect",false)
end):setUseFrames(true)
self:CloseSelf()
-- CameraUtil.SetAllCameraFitHeight(9/16)
-- FunctionSelectCharacter.Me():Launch()
self:sendNotification(UIEvent.ShowUI,{viewname = "CreateRoleViewV2"})
end)
end
function StartGamePanel:HandlerConnnection(note)
if(note ~=nil) then
FunctionLogin.Me():reStartGameLogin( )
else
end
end
local reusableTable = {}
function StartGamePanel:InitializeAnnouncement()
if self.announcement == nil then
self.announcement = FloatingPanel.Instance:ShowMaintenanceMsg(
ZhString.ServiceErrorUserCmdProxy_Maintain,
'',
'',
ZhString.ServiceErrorUserCmdProxy_Confirm,
''
)
end
end
function StartGamePanel:OnReceiveShowAnnouncement(message)
if message then
if message.body then
self:ShowAnnouncement(message.body['msg'], message.body['tip'], message.body['picURL'])
end
end
end
function StartGamePanel:ShowAnnouncement(msg, tip, pic_url)
reusableTable[1] = ZhString.ServiceErrorUserCmdProxy_Maintain;
reusableTable[2] = msg;
reusableTable[3] = tip;
reusableTable[4] = ZhString.ServiceErrorUserCmdProxy_Confirm;
reusableTable[5] = pic_url;
self.announcement:SetData(reusableTable)
TableUtility.TableClear(reusableTable)
local transAnnouncement = self.announcement.gameObject.transform
local pos = transAnnouncement.localPosition
pos.y = 0
transAnnouncement.localPosition = pos
end
function StartGamePanel:HideAnnouncement()
if self.announcement ~= nil then
local transAnnouncement = self.announcement.gameObject.transform
local pos = transAnnouncement.localPosition
pos.y = 2560
transAnnouncement.localPosition = pos
end
end
function StartGamePanel:GetLoginUrl()
local json = EnvChannel.GetHttpOperationJson()
LogUtility.InfoFormat("StartGamePanel:GetLoginUrl json:{0}",json)
if(json) then
local url = json["loginUrl"]
return url
end
end
function StartGamePanel:GetRegisterUrl()
local json = EnvChannel.GetHttpOperationJson()
LogUtility.InfoFormat("StartGamePanel:GetRegisterUrl json:{0}",json)
if(json) then
local url = json["registerUrl"]
return url
end
end
return StartGamePanel