- Joined
- Mar 25, 2007
- Messages
- 662
- Reaction score
- 309
Re: Mobile 3D MORPG 暗黑战神 full source released - Unity 3D Engine
You can fix Android login Isseue by these coding....
/Client/Assets/scripts/GameLogic/MogoWorld.cs ----- line 730~, 1204~
This fix works in BlueStacks but in Android, have some error after finishing dungeon
and, don't forget coping server.xml to .../LocalLow/aiyou4399 for Windows
for Android, automatically download server.xml from webserver
but config.xml should be copied in /Android/data/com.ahzs.sy4399 because of login ID
You can fix Android login Isseue by these coding....
/Client/Assets/scripts/GameLogic/MogoWorld.cs ----- line 730~, 1204~
Code:
bool rst = false;[/COLOR]
[COLOR=#BB0000]if (MogoWorld.rc)[/COLOR]
[COLOR=#BB0000]{[/COLOR]
[COLOR=#BB0000]rst = ServerProxy.Instance.Connect(baseIP, basePort);[/COLOR]
[COLOR=#BB0000]LoginReq(rst);[/COLOR]
[COLOR=#BB0000]}[/COLOR]
[COLOR=#BB0000]/* else if (SystemSwitch.UsePlatformSDK && (RuntimePlatform.Android == Application.platform || RuntimePlatform.IPhonePlayer == Application.platform))[/COLOR]
[COLOR=#BB0000]{[/COLOR]
[COLOR=#BB0000]islogining = true;[/COLOR]
[COLOR=#BB0000]MogoGlobleUIManager.Instance.ShowGlobleStaticText(true, "Login...");[/COLOR]
[COLOR=#BB0000]//得到baseapp信息[/COLOR]
[COLOR=#BB0000]string url = string.Format(PlatformSdkManager.LOGIN_URL, serverInfo.ip, loginInfo.platName, loginInfo.uid, loginInfo.timestamp, loginInfo.strPlatAccount, loginInfo.strSign, loginInfo.token, SystemConfig.GetSelectedServerInfo().port);[/COLOR]
[COLOR=#BB0000]Action action = () =>[/COLOR]
[COLOR=#BB0000]{[/COLOR]
[COLOR=#BB0000]Mogo.Util.Utils.GetHttp(url,[/COLOR]
[COLOR=#BB0000](resp) =>[/COLOR]
[COLOR=#BB0000]{[/COLOR]
[COLOR=#BB0000]Driver.Invoke(() =>[/COLOR]
[COLOR=#BB0000]{[/COLOR]
[COLOR=#BB0000]string[] baseappInfo = resp.Split(',');[/COLOR]
[COLOR=#BB0000]int errorId = int.Parse(baseappInfo[0]);[/COLOR]
[COLOR=#BB0000]if (errorId == 0)[/COLOR]
[COLOR=#BB0000]{[/COLOR]
[COLOR=#BB0000]baseIP = baseappInfo[1];[/COLOR]
[COLOR=#BB0000]basePort = int.Parse(baseappInfo[2]);[/COLOR]
[COLOR=#BB0000]baseLoginKey = baseappInfo[3];[/COLOR]
[COLOR=#BB0000]rst = ServerProxy.Instance.Connect(baseIP, basePort);[/COLOR]
[COLOR=#BB0000]if (baseappInfo.Length > 4)[/COLOR]
[COLOR=#BB0000]{[/COLOR]
[COLOR=#BB0000]String uid = baseappInfo[4];[/COLOR]
[COLOR=#BB0000]if (RuntimePlatform.Android == Application.platform)[/COLOR]
[COLOR=#BB0000]{[/COLOR]
[COLOR=#BB0000]PlatformSdkManager.Instance.Uid = uid;[/COLOR]
[COLOR=#BB0000]}[/COLOR]
[COLOR=#BB0000]}[/COLOR]
[COLOR=#BB0000]if (baseappInfo.Length > 5)[/COLOR]
[COLOR=#BB0000]{[/COLOR]
[COLOR=#BB0000]String username = baseappInfo[5];[/COLOR]
[COLOR=#BB0000]if (RuntimePlatform.Android == Application.platform)[/COLOR]
[COLOR=#BB0000]{[/COLOR]
[COLOR=#BB0000]LoginUILogicManager.Instance.UserName = username;[/COLOR]
[COLOR=#BB0000]SystemConfig.Instance.Passport = username;[/COLOR]
[COLOR=#BB0000]SystemConfig.SaveConfig();[/COLOR]
[COLOR=#BB0000]}[/COLOR]
[COLOR=#BB0000]}[/COLOR]
[COLOR=#BB0000]if (PlatformSdkManager.Instance != null)[/COLOR]
[COLOR=#BB0000]{[/COLOR]
[COLOR=#BB0000]PlatformSdkManager.Instance.SendLoginLog();[/COLOR]
[COLOR=#BB0000]}[/COLOR]
[COLOR=#BB0000]LoginReq(rst);[/COLOR]
[COLOR=#BB0000]}[/COLOR]
[COLOR=#BB0000]else[/COLOR]
[COLOR=#BB0000]{[/COLOR]
[COLOR=#BB0000]MogoGlobleUIManager.Instance.ShowGlobleStaticText(false, "");[/COLOR]
[COLOR=#BB0000]MogoWorld.OnLoginResp((Mogo.RPC.LoginResult)(errorId));[/COLOR]
[COLOR=#BB0000]}[/COLOR]
[COLOR=#BB0000]islogining = false;[/COLOR]
[COLOR=#BB0000]});[/COLOR]
[COLOR=#BB0000]},[/COLOR]
[COLOR=#BB0000](errodCode) =>[/COLOR]
[COLOR=#BB0000]{[/COLOR]
[COLOR=#BB0000]Driver.Invoke(() =>[/COLOR]
[COLOR=#BB0000]{[/COLOR]
[COLOR=#BB0000]MogoMsgBox.Instance.ShowMsgBox("network error:" + errodCode);[/COLOR]
[COLOR=#BB0000]islogining = false;[/COLOR]
[COLOR=#BB0000]MogoGlobleUIManager.Instance.ShowGlobleStaticText(false, "");[/COLOR]
[COLOR=#BB0000]});[/COLOR]
[COLOR=#BB0000]}[/COLOR]
[COLOR=#BB0000]);[/COLOR]
[COLOR=#BB0000]};[/COLOR]
[COLOR=#BB0000]action.BeginInvoke(null, null);[/COLOR]
[COLOR=#BB0000]} */ //loveomg[/COLOR]
[COLOR=#BB0000]else[/COLOR]
[COLOR=#BB0000]{[/COLOR]
[COLOR=#BB0000]MogoGlobleUIManager.Instance.ShowGlobleStaticText(true, "Login...");[/COLOR]
[COLOR=#BB0000]Action act = () =>[/COLOR]
[COLOR=#BB0000]{[/COLOR]
[COLOR=#BB0000]rst = ServerProxy.Instance.Connect(serverInfo.ip, serverInfo.port);[/COLOR]
[COLOR=#BB0000]Driver.Invoke(() =>[/COLOR]
[COLOR=#BB0000]{[/COLOR]
[COLOR=#BB0000]MogoGlobleUIManager.Instance.ShowGlobleStaticText(false, "");[/COLOR]
[COLOR=#BB0000]LoginReq(rst);[/COLOR]
[COLOR=#BB0000]});[/COLOR]
[COLOR=#BB0000]};[/COLOR]
[COLOR=#BB0000]act.BeginInvoke(null, null);[/COLOR]
[COLOR=#BB0000]}[/COLOR]
[COLOR=#BB0000]};[/COLOR]
[COLOR=#BB0000]/* if (SystemSwitch.UsePlatformSDK && (RuntimePlatform.IPhonePlayer == Application.platform || RuntimePlatform.Android == Application.platform)[/COLOR]
[COLOR=#BB0000]&& !PlatformSdkManager.Instance.IsLoginDone && !rc)[/COLOR]
[COLOR=#BB0000]{[/COLOR]
[COLOR=#BB0000]LoggerHelper.Info("PlatformSdkManager.Instance.Login();");[/COLOR]
[COLOR=#BB0000]#if UNITY_IPHONE[/COLOR]
[COLOR=#BB0000]PlatformSdkManager.Instance.LoginCallBack= AfterGetInfo; [/COLOR]
[COLOR=#BB0000]#endif[/COLOR]
[COLOR=#BB0000]PlatformSdkManager.Instance.Login();[/COLOR]
[COLOR=#BB0000]return;[/COLOR]
[COLOR=#BB0000]}[/COLOR]
[COLOR=#BB0000]*/ //loveomg[/COLOR]
[COLOR=#BB0000]if (SystemSwitch.UsePlatformSDK)[/COLOR]
[COLOR=#BB0000]{[/COLOR]
[COLOR=#BB0000]PlatformSdkManager.Instance.Log("AfterGetInfo");[/COLOR]
[COLOR=#BB0000]PlatformSdkManager.Instance.SetupInfo();[/COLOR]
[COLOR=#BB0000]}[/COLOR]
[COLOR=#BB0000]AfterGetInfo();[/COLOR]
[COLOR=#BB0000]
Code:
[/COLOR]
[COLOR=#BB0000]if (rst)[/COLOR]
[COLOR=#BB0000]{[/COLOR]
[COLOR=#BB0000]//MogoMsgBox.Instance.ShowFloatingTextQueue("rst:" + rst);[/COLOR]
[COLOR=#BB0000]if (MogoWorld.rc)[/COLOR]
[COLOR=#BB0000]{[/COLOR]
[COLOR=#BB0000]LoggerHelper.Error("----------- MogoWorld.rc --- send rc key " + reConnectKey);[/COLOR]
[COLOR=#BB0000]ServerProxy.Instance.SendReConnectKey(reConnectKey);[/COLOR]
[COLOR=#BB0000]MogoGlobleUIManager.Instance.ShowGlobleStaticText(false, "");[/COLOR]
[COLOR=#BB0000]return;[/COLOR]
[COLOR=#BB0000]}[/COLOR]
[COLOR=#BB0000]//if (SystemSwitch.UsePlatformSDK && (Application.platform == RuntimePlatform.Android || Application.platform == RuntimePlatform.IPhonePlayer))[/COLOR]
[COLOR=#BB0000]//{[/COLOR]
[COLOR=#BB0000]// LoggerHelper.Error("----------- UsePlatformSDK --- send rc key " + reConnectKey);[/COLOR]
[COLOR=#BB0000]// ServerProxy.Instance.BaseLogin(baseLoginKey);[/COLOR]
[COLOR=#BB0000]//} //loveomg[/COLOR]
[COLOR=#BB0000]else[/COLOR]
[COLOR=#BB0000]{ [/COLOR]
[COLOR=#BB0000]LoggerHelper.Debug("------------ else --- send rc key " + reConnectKey);[/COLOR]
[COLOR=#BB0000]ServerProxy.Instance.Login(LoginInfo.GetPCStrList());[/COLOR]
[COLOR=#BB0000]}[/COLOR]
[COLOR=#BB0000]CheckDefMD5();[/COLOR]
[COLOR=#BB0000]
This fix works in BlueStacks but in Android, have some error after finishing dungeon
and, don't forget coping server.xml to .../LocalLow/aiyou4399 for Windows
for Android, automatically download server.xml from webserver
but config.xml should be copied in /Android/data/com.ahzs.sy4399 because of login ID
Last edited: