private void OnQuery_AUTO_MATCH() { GameSection.StayEvent(); Action <bool, bool, bool, bool> matching_end_action = delegate(bool is_m, bool is_c, bool is_r, bool is_s) { //IL_0086: Unknown result type (might be due to invalid IL or missing references) if (!is_m) { QuestResume(false); } else if (is_s) { UIModelRenderTexture component = base.GetComponent <UIModelRenderTexture>((Enum)UI.TEX_ENEMY); if (component != null && component.enemyAnimCtrl != null) { component.enemyAnimCtrl.PlayQuestStartAnim(delegate { //IL_001d: Unknown result type (might be due to invalid IL or missing references) this.StartCoroutine(GoToQuest(delegate { QuestResume(true); })); }); } else { this.StartCoroutine(GoToQuest(delegate { QuestResume(true); })); } } else if (!is_c) { GameSection.ChangeStayEvent("COOP_SERVER_INVALID", null); QuestResume(true); } else { QuestResume(false); } }; if (questInfo.questData.tableData.questType == QUEST_TYPE.ORDER) { int questID = (int)questInfo.questData.tableData.questID; PartyManager.PartySetting party_setting = new PartyManager.PartySetting(false, 0, 0, 0, 0); MonoBehaviourSingleton <PartyManager> .I.SendCreate(questID, party_setting, delegate(bool is_success) { if (is_success) { CoopApp.EnterPartyQuest(matching_end_action); } else { QuestResume(false); } }); } else { CoopApp.EnterQuest(matching_end_action); } }
private IEnumerator DoInitialize() { yield return((object)null); if (MonoBehaviourSingleton <InputManager> .IsValid()) { MonoBehaviourSingleton <InputManager> .I.SetDisable(INPUT_DISABLE_FACTOR.INGAME_GRAB, false); MonoBehaviourSingleton <InputManager> .I.SetDisable(INPUT_DISABLE_FACTOR.INGAME_COMMAND, false); } MonoBehaviourSingleton <InGameManager> .I.ResumeQuestTransferInfo(); bool keep_record = false; bool is_back_transition = false; bool is_back_online_field = false; if (MonoBehaviourSingleton <InGameManager> .I.isTransitionQuestToField) { MonoBehaviourSingleton <InGameManager> .I.isTransitionQuestToField = false; if (MonoBehaviourSingleton <QuestManager> .IsValid()) { MonoBehaviourSingleton <QuestManager> .I.ClearPlayData(); } if (MonoBehaviourSingleton <InGameManager> .I.isQuestGate && MonoBehaviourSingleton <InGameRecorder> .I.isVictory) { MonoBehaviourSingleton <FieldManager> .I.SetCurrentFieldMapPortalID(MonoBehaviourSingleton <InGameManager> .I.beforePortalID); MonoBehaviourSingleton <InGameManager> .I.isGateQuestClear = true; } else if (MonoBehaviourSingleton <InGameManager> .I.backTransitionInfo != null) { FieldManager.FieldTransitionInfo trans_info = MonoBehaviourSingleton <InGameManager> .I.backTransitionInfo; MonoBehaviourSingleton <FieldManager> .I.SetCurrentFieldMapPortalID(trans_info.portalID, trans_info.mapX, trans_info.mapZ, trans_info.mapDir); is_back_transition = true; if (MonoBehaviourSingleton <InGameManager> .I.isQuestHappen) { is_back_online_field = true; } } MonoBehaviourSingleton <InGameManager> .I.backTransitionInfo = null; MonoBehaviourSingleton <InGameManager> .I.isQuestHappen = false; MonoBehaviourSingleton <InGameManager> .I.isQuestPortal = false; MonoBehaviourSingleton <InGameManager> .I.isQuestGate = false; MonoBehaviourSingleton <InGameManager> .I.isStoryPortal = false; } bool matching_flag = false; Action <bool> matching_end_action = delegate(bool is_connect) { if (!is_connect) { ((_003CDoInitialize_003Ec__IteratorAE) /*Error near IL_01ba: stateMachine*/)._003C_003Ef__this.coopServerInvalidFlag = true; } else { ((_003CDoInitialize_003Ec__IteratorAE) /*Error near IL_01ba: stateMachine*/)._003Cmatching_flag_003E__4 = true; } }; if (MonoBehaviourSingleton <InGameManager> .I.isTransitionFieldToQuest) { MonoBehaviourSingleton <InGameManager> .I.isTransitionFieldToQuest = false; if (MonoBehaviourSingleton <InGameManager> .I.isQuestGate) { if (MonoBehaviourSingleton <FieldManager> .IsValid()) { MonoBehaviourSingleton <FieldManager> .I.ClearCurrentFieldData(); } if (MonoBehaviourSingleton <QuestManager> .IsValid() && MonoBehaviourSingleton <QuestManager> .I.GetVorgonQuestType() != 0) { CoopApp.EnterQuestOffline(delegate(bool is_m, bool is_c, bool is_r, bool is_s) { ((_003CDoInitialize_003Ec__IteratorAE) /*Error near IL_0221: stateMachine*/)._003Cmatching_end_action_003E__5(is_c); }); } else if (MonoBehaviourSingleton <QuestManager> .I.IsForceDefeatQuest()) { CoopApp.EnterQuest(delegate(bool is_m, bool is_c, bool is_r, bool is_s) { ((_003CDoInitialize_003Ec__IteratorAE) /*Error near IL_0246: stateMachine*/)._003Cmatching_end_action_003E__5(is_c); }); } else { CoopApp.EnterQuestRandomMatching(delegate(bool is_m, bool is_c, bool is_r, bool is_s) { ((_003CDoInitialize_003Ec__IteratorAE) /*Error near IL_025c: stateMachine*/)._003Cmatching_end_action_003E__5(is_s); }); } } else if (MonoBehaviourSingleton <InGameManager> .I.isQuestHappen) { int now_stage_id4 = MonoBehaviourSingleton <CoopManager> .I.coopStage.stageId; MonoBehaviourSingleton <CoopNetworkManager> .I.RoomStageChange((int)MonoBehaviourSingleton <QuestManager> .I.currentQuestID, 0); while (CoopWebSocketSingleton <KtbWebSocket> .IsValidConnected() && now_stage_id4 == MonoBehaviourSingleton <CoopManager> .I.coopStage.stageId) { yield return((object)null); } CoopApp.EnterQuestOnly(delegate { ((_003CDoInitialize_003Ec__IteratorAE) /*Error near IL_02e7: stateMachine*/)._003Cmatching_end_action_003E__5(CoopWebSocketSingleton <KtbWebSocket> .IsValidConnected()); }); if (MonoBehaviourSingleton <CoopManager> .IsValid()) { MonoBehaviourSingleton <CoopManager> .I.OnStageChangeInterval(); } } else { if (MonoBehaviourSingleton <FieldManager> .IsValid()) { MonoBehaviourSingleton <FieldManager> .I.ClearCurrentFieldData(); } CoopApp.EnterQuest(delegate(bool is_m, bool is_c, bool is_r, bool is_s) { ((_003CDoInitialize_003Ec__IteratorAE) /*Error near IL_0325: stateMachine*/)._003Cmatching_end_action_003E__5(is_c); }); } if (MonoBehaviourSingleton <InGameManager> .I.isQuestGate) { isEncounterBoss = true; } } else if (MonoBehaviourSingleton <InGameManager> .I.isTransitionQuestToQuest) { MonoBehaviourSingleton <InGameManager> .I.isTransitionQuestToQuest = false; if (MonoBehaviourSingleton <FieldManager> .IsValid()) { MonoBehaviourSingleton <FieldManager> .I.ClearCurrentFieldData(); } CoopApp.EnterPartyQuest(delegate(bool is_m, bool is_c, bool is_r, bool is_s) { ((_003CDoInitialize_003Ec__IteratorAE) /*Error near IL_0384: stateMachine*/)._003Cmatching_end_action_003E__5(is_c); }); } else if (QuestManager.IsValidInGame()) { if (MonoBehaviourSingleton <QuestManager> .I.IsExplore() || MonoBehaviourSingleton <InGameManager> .I.IsRush()) { if (MonoBehaviourSingleton <QuestManager> .I.IsExplore()) { isTransitionFieldMap = true; } bool is_stage_change = true; if (MonoBehaviourSingleton <InGameManager> .I.isTransitionFieldReentry) { MonoBehaviourSingleton <InGameManager> .I.isTransitionFieldReentry = false; isTransitionFieldMap = false; is_stage_change = false; bool wait = true; uint currentMapID = MonoBehaviourSingleton <FieldManager> .I.currentMapID; float currentStartMapX = MonoBehaviourSingleton <FieldManager> .I.currentStartMapX; float currentStartMapZ = MonoBehaviourSingleton <FieldManager> .I.currentStartMapZ; CoopApp.EnterPartyField(delegate(bool is_m, bool is_c, bool is_r) { ((_003CDoInitialize_003Ec__IteratorAE) /*Error near IL_0448: stateMachine*/)._003Cwait_003E__8 = false; if (is_r) { ((_003CDoInitialize_003Ec__IteratorAE) /*Error near IL_0448: stateMachine*/)._003Cis_stage_change_003E__7 = true; } if (((_003CDoInitialize_003Ec__IteratorAE) /*Error near IL_0448: stateMachine*/)._003Cbefore_map_id_003E__9 != MonoBehaviourSingleton <FieldManager> .I.currentMapID) { MonoBehaviourSingleton <FieldManager> .I.SetCurrentFieldMapID(((_003CDoInitialize_003Ec__IteratorAE) /*Error near IL_0448: stateMachine*/)._003Cbefore_map_id_003E__9, ((_003CDoInitialize_003Ec__IteratorAE) /*Error near IL_0448: stateMachine*/)._003Cbefore_map_x_003E__10, ((_003CDoInitialize_003Ec__IteratorAE) /*Error near IL_0448: stateMachine*/)._003Cbefore_map_z_003E__11, 0f); } }, true); while (wait) { yield return((object)null); } } else { MonoBehaviourSingleton <CoopManager> .I.coopRoom.SnedMoveField((int)MonoBehaviourSingleton <QuestManager> .I.GetLastPortalId()); } int mapIndex = 0; int questId = 0; uint dstMapId = MonoBehaviourSingleton <FieldManager> .I.currentMapID; if (MonoBehaviourSingleton <QuestManager> .I.IsExplore()) { questId = (int)MonoBehaviourSingleton <QuestManager> .I.currentQuestID; mapIndex = MonoBehaviourSingleton <QuestManager> .I.ExploreMapIdToIndex(dstMapId); } else if (MonoBehaviourSingleton <InGameManager> .I.IsRush()) { questId = (int)MonoBehaviourSingleton <PartyManager> .I.GetQuestId(); mapIndex = MonoBehaviourSingleton <InGameManager> .I.GetRushIndex(); } if (is_stage_change && MonoBehaviourSingleton <CoopManager> .I.coopStage.stageIndex != mapIndex) { int now_stage_id2 = MonoBehaviourSingleton <CoopManager> .I.coopStage.stageId; MonoBehaviourSingleton <CoopNetworkManager> .I.RoomStageChange(questId, mapIndex); while (CoopWebSocketSingleton <KtbWebSocket> .IsValidConnected() && now_stage_id2 == MonoBehaviourSingleton <CoopManager> .I.coopStage.stageId) { yield return((object)null); } } matching_end_action(true); keep_record = true; if (MonoBehaviourSingleton <InGameManager> .I.IsRush()) { uint map_id = MonoBehaviourSingleton <QuestManager> .I.GetCurrentMapId(); if (MonoBehaviourSingleton <FieldManager> .I.currentMapID != map_id) { MonoBehaviourSingleton <FieldManager> .I.SetCurrentFieldMapID(map_id, 0f, 0f, 0f); } } if (MonoBehaviourSingleton <CoopManager> .IsValid()) { MonoBehaviourSingleton <CoopManager> .I.OnStageChangeInterval(); } if (dstMapId == MonoBehaviourSingleton <QuestManager> .I.GetExploreBossBatlleMapId() && isTransitionFieldMap) { isEncounterBoss = true; } if (MonoBehaviourSingleton <InGameManager> .I.isTransitionQuestToFieldExplore) { fromBossExplore = true; MonoBehaviourSingleton <InGameManager> .I.isTransitionQuestToFieldExplore = false; } } else { int now_stage_id3 = MonoBehaviourSingleton <CoopManager> .I.coopStage.stageId; MonoBehaviourSingleton <CoopNetworkManager> .I.RoomStageChange((int)MonoBehaviourSingleton <QuestManager> .I.currentQuestID, (int)MonoBehaviourSingleton <QuestManager> .I.currentQuestSeriesIndex); while (CoopWebSocketSingleton <KtbWebSocket> .IsValidConnected() && now_stage_id3 == MonoBehaviourSingleton <CoopManager> .I.coopStage.stageId) { yield return((object)null); } matching_end_action(true); uint map_id2 = MonoBehaviourSingleton <QuestManager> .I.GetCurrentMapId(); if (MonoBehaviourSingleton <FieldManager> .I.currentMapID != map_id2) { MonoBehaviourSingleton <FieldManager> .I.SetCurrentFieldMapID(map_id2, 0f, 0f, 0f); } keep_record = true; if (MonoBehaviourSingleton <CoopManager> .IsValid()) { MonoBehaviourSingleton <CoopManager> .I.OnQuestSeriesInterval(); } } } else if (FieldManager.IsValidInGame()) { isNewField = !MonoBehaviourSingleton <FieldManager> .I.CanJumpToMap(MonoBehaviourSingleton <FieldManager> .I.currentMapID); portalID = MonoBehaviourSingleton <FieldManager> .I.currentPortalID; if (!is_back_transition && !MonoBehaviourSingleton <InGameManager> .I.isTransitionFieldReentry) { isTransitionFieldMap = true; } MonoBehaviourSingleton <InGameManager> .I.isTransitionFieldReentry = false; if (is_back_online_field && CoopWebSocketSingleton <KtbWebSocket> .IsValidConnected()) { int now_stage_id = MonoBehaviourSingleton <CoopManager> .I.coopStage.stageId; MonoBehaviourSingleton <CoopNetworkManager> .I.RoomStageChange(0, 0); while (CoopWebSocketSingleton <KtbWebSocket> .IsValidConnected() && now_stage_id == MonoBehaviourSingleton <CoopManager> .I.coopStage.stageId) { yield return((object)null); } matching_end_action(CoopWebSocketSingleton <KtbWebSocket> .IsValidConnected()); if (MonoBehaviourSingleton <CoopManager> .IsValid()) { MonoBehaviourSingleton <CoopManager> .I.OnStageChangeInterval(); } } else { uint portal_id = MonoBehaviourSingleton <FieldManager> .I.currentPortalID; CoopApp.EnterField(portal_id, 0u, delegate(bool is_m, bool is_c, bool is_r) { ((_003CDoInitialize_003Ec__IteratorAE) /*Error near IL_0889: stateMachine*/)._003Cmatching_end_action_003E__5(is_c); }); } } while (!matching_flag && !coopServerInvalidFlag) { yield return((object)null); } if (coopServerInvalidFlag) { base.Initialize(); } else { if (MonoBehaviourSingleton <UIManager> .IsValid() && MonoBehaviourSingleton <UIManager> .I.mainChat != null) { MonoBehaviourSingleton <UIManager> .I.mainChat.Open(UITransition.TYPE.OPEN); } if (!keep_record && MonoBehaviourSingleton <InGameRecorder> .IsValid()) { Object.DestroyImmediate(MonoBehaviourSingleton <InGameRecorder> .I); } MonoBehaviourSingleton <StageManager> .I.UnloadStage(); yield return((object)MonoBehaviourSingleton <AppMain> .I.UnloadUnusedAssets(true)); if (MonoBehaviourSingleton <InGameManager> .IsValid()) { MonoBehaviourSingleton <InGameManager> .I.ClearAllDrop(); } MonoBehaviourSingleton <AppMain> .I.mainCamera.get_gameObject().SetActive(true); base.Initialize(); } }