public IEnumerator ChangeSceneOverCoroutine() { using (var blockingLayer = new BlockingLayerHelper(0)) { var data = PlayerDataManager.Instance.mInitBaseAttr; var msg = NetManager.Instance.ChangeSceneOver(data.SceneId, data.SceneGuid); yield return(msg.SendAndWaitUntilDone()); Logger.Debug("ChangeSceneOver-------" + msg.State); if (msg.State == MessageState.Reply) { if (msg.ErrorCode == (int)ErrorCodes.OK) { PlayerDataManager.Instance.TeamInviteClickFubenID = 0; SendSceneChangeEvent(); if (ObjManager.Instance != null && ObjManager.Instance.MyPlayer != null) { //ObjManager.Instance.MyPlayer.Position = // GameLogic.GetTerrainPosition(PlayerDataManager.Instance.mInitBaseAttr.X, // PlayerDataManager.Instance.mInitBaseAttr.Y); } var sceneExtData = msg.Response; if (GameLogic.Instance != null && GameLogic.Instance.Scene != null) { var scene = GameLogic.Instance.Scene; if (scene.TableScene.Type == (int)eSceneType.Fuben) { var listTb = new List <TriggerAreaRecord>(); Table.ForeachTriggerArea(table => { if (scene.SceneTypeId != table.SceneId || -1 == table.OffLineTrigger || !BitFlag.GetLow(sceneExtData, table.OffLineTrigger)) { return(true); } listTb.Add(table); return(true); }); if (listTb.Count > 0) { OptList <SceneAnimationTrigger> .List.Clear(); scene.transform.GetComponentsInChildren(OptList <SceneAnimationTrigger> .List); var triggers = OptList <SceneAnimationTrigger> .List; var __array2 = triggers; var __arrayLength2 = __array2.Count; for (var __i2 = 0; __i2 < __arrayLength2; ++__i2) { var trigger = __array2[__i2]; { foreach (var tb in listTb) { if (trigger.TriggerId == tb.ClientAnimation) { trigger.RunToEnd(); break; } } } } } } else if (scene.TableScene.Type == (int)eSceneType.Pvp) { if (sceneExtData == 1) { var e = new PvpFightReadyEent(); EventDispatcher.Instance.DispatchEvent(e); } } } } else { UIManager.Instance.ShowNetError(msg.ErrorCode); } } } //yield return new WaitForSeconds(1); ShowChangeSceneMessage(); }
// 问服务器要场景状态 public IEnumerator AskSceneExtData() { var msg = NetManager.Instance.ApplySceneExdata(0); yield return(msg.SendAndWaitUntilDone()); if (msg.State != MessageState.Reply) { Logger.Debug("AskSceneExtData-------msg.State != MessageState.Reply"); yield break; } if (msg.ErrorCode != (int)ErrorCodes.OK) { UIManager.Instance.ShowNetError(msg.ErrorCode); Logger.Debug("AskSceneExtData-------msg.ErrorCode[{0}]", msg.ErrorCode); yield break; } var data = msg.Response; var tbScene = Table.GetScene(Scene.SceneTypeId); if (tbScene.Type == (int)eSceneType.Fuben) { OptList <SceneAnimationTrigger> .List.Clear(); gameObject.transform.GetComponentsInChildren(OptList <SceneAnimationTrigger> .List); var triggers = OptList <SceneAnimationTrigger> .List; if (triggers.Count <= 0) { yield break; ; } Table.ForeachTriggerArea(table => { if (Scene.SceneTypeId != table.SceneId || -1 == table.OffLineTrigger || !BitFlag.GetLow(data, table.OffLineTrigger)) { return(true); } { var __array2 = triggers; var __arrayLength2 = __array2.Count; for (var __i2 = 0; __i2 < __arrayLength2; ++__i2) { var trigger = __array2[__i2]; { if (trigger.TriggerId == table.ClientAnimation) { trigger.RunToEnd(); break; } } } } return(true); }); } else if (tbScene.Type == (int)eSceneType.Pvp) { if (data == 1) { var e = new PvpFightReadyEent(); EventDispatcher.Instance.DispatchEvent(e); } } }