//$yde public void LoadSameMap( int iMapID, eLoadType type) { ActivateLoadInfo( true); AsEntityManager.Instance.RemoveAllMonster(); AsEntityManager.Instance.RemoveAllNpc(); AsEntityManager.Instance.RemoveAllOtherUser(); AsEntityManager.Instance.UserEntity.SetRePosition(AsUserInfo.Instance.GetCurrentUserCharacterPosition()); AsEntityManager.Instance.UserEntity.HandleMessage( new Msg_MoveStopIndication()); AsEntityManager.Instance.UserEntity.HandleMessage( new Msg_ZoneWarpEnd()); if( null != ItemMgr.DropItemManagement ) ItemMgr.DropItemManagement.Clear(); switch( type) { case eLoadType.ENTER_WORLD: { AS_CG_ENTER_WORLD_END enterWorld = new AS_CG_ENTER_WORLD_END(); byte[] data = enterWorld.ClassToPacketBytes(); AsNetworkMessageHandler.Instance.Send( data); AsGameMain.s_gameState = GAME_STATE.STATE_INGAME; } break; case eLoadType.WARP: AsCommonSender.SendWarpEnd(); AsGameMain.s_gameState = GAME_STATE.STATE_INGAME; break; case eLoadType.WARPXZ: AsCommonSender.SendWarpXZEnd( iMapID, AsUserInfo.Instance.GetCurrentUserCharacterPosition()); AsGameMain.s_gameState = GAME_STATE.STATE_INGAME; break; case eLoadType.PARTY_WARPXZ: AsPartySender.SendWarpXZEnd(); AsGameMain.s_gameState = GAME_STATE.STATE_INGAME; break; case eLoadType.GOTO_TOWN: AsCommonSender.SendGotoTownEnd(); AsGameMain.s_gameState = GAME_STATE.STATE_INGAME; #region -GameGuide_Death AsGameGuideManager.Instance.CheckUp( eGameGuideType.Death, AsUserInfo.Instance.SavedCharStat.level_); #endregion break; case eLoadType.INSTANCE_DUNGEON_ENTER: AsInstanceDungeonManager.Instance.Send_InDun_Enter_End(); AsGameMain.s_gameState = GAME_STATE.STATE_INGAME; break; case eLoadType.ARENA_ENTER: AsInstanceDungeonManager.Instance.Send_InDun_Enter_End(); AsGameMain.s_gameState = GAME_STATE.STATE_INGAME; AsInputManager.Instance.m_Activate = false; break; case eLoadType.INSTANCE_DUNGEON_EXIT: AsInstanceDungeonManager.Instance.Send_InDun_Exit_End(); AsGameMain.s_gameState = GAME_STATE.STATE_INGAME; break; } ActivateLoadInfo( false); if( eLoadType.ARENA_ENTER != type) AsInputManager.Instance.m_Activate = true; AsIntoMapTriggerManager.instance.UpdateIntoMapTrigger(iMapID); AsUseItemInMapMarkManager.instance.UpdateUseItemInMapMark( iMapID); AsEntityManager.Instance.MessageToPlayer( new Msg_PetPositionRefresh()); AsEmotionManager.Instance.ReleaseBlock();//$yde System.GC.Collect(); Resources.UnloadUnusedAssets(); }
IEnumerator MapLoad( int iMapID, eLoadType type) { AsGameMain.SetBackGroundProc( true); ActivateLoadInfo( true); loadInfo.Init( iMapID); ItemMgr.HadItemManagement.Inven.ResetInvenSlotMoveLock(); // kij yield return null; AsNotify.Instance.Hidden(); AsHUDController.SetActiveRecursively( false); ObjSteppingMgr.Instance.Clear(); AsEntityManager.Instance.RemoveAllEntitiesAsync(); while(true) { if(AsEntityManager.Instance.RemoveAllEntitiesAsyncFinished == true) { Debug.Log("AsSceneLoader::MapLoad: << RemoveAllEntitiesAsync process ends >> "); break; } yield return null; } AsEntityManager.Instance.RemoveAllEntities(); ItemMgr.DropItemManagement.Clear(); yield return null; if( true == AssetbundleManager.Instance.useAssetbundle) AssetbundleManager.Instance.ClearAssetbundle(); Map map = TerrainMgr.Instance.GetMap( iMapID); Debug.Assert( null != map); AsHUDController.Instance.SetMapFogColor( map.MapData.RimLightColor); if( true == AssetbundleManager.Instance.useAssetbundle) { WWW downloadCache = AssetbundleManager.Instance.SceneAssetbundleLoadCache( map.MapData.GetPath()); yield return downloadCache; } AsyncOperation async = Application.LoadLevelAsync( map.MapData.GetPath()); yield return async; TerrainMgr.Instance.LoadMap( iMapID); yield return null; //$yde AsUserEntity userChar = AsEntityManager.Instance.CreateUserEntity( "PlayerChar", AsUserInfo.Instance.SavedCharStat, true, true); userChar.SetRePosition( AsUserInfo.Instance.GetCurrentUserCharacterPosition()); userChar.HandleMessage( new Msg_BuffRefresh( PlayerBuffMgr.Instance.CharBuffDataList)); if( true == AsUserInfo.Instance.isProductionProgress) userChar.HandleMessage( new Msg_PRODUCT( true)); userChar.gameObject.AddComponent<AudioListener>(); AsUserInfo.Instance.ApplyPlayerStat(); AsPetManager.Instance.PlayerEnterWorld(); //~$yde yield return null; TerrainMgr.Instance.Initialize( iMapID); yield return null; bool ret = CameraMgr.Instance.AttachPlayerCamera( userChar.transform, map.MapData.GetMapNameShowTime()); Debug.Assert( false != ret); while( eModelLoadingState.Finished != userChar.CheckModelLoadingState()) yield return null; #region -AccountGender userChar.UserGender = AsUserInfo.Instance.accountGender; #region -GMMark userChar.IsGM = AsUserInfo.Instance.isGM; #endregion #if NEW_DELEGATE_IMAGE if( null != userChar.namePanel) { DelegateImageData DelegateImageData = AsDelegateImageManager.Instance.GetSelectDelegateImage(); if( null == DelegateImageData) { DelegateImageData = AsDelegateImageManager.Instance.GetAssignedDelegateImage(); if( null != DelegateImageData) userChar.nUserDelegateImageIndex = DelegateImageData.id; } else userChar.nUserDelegateImageIndex = DelegateImageData.id; userChar.namePanel.SetDelegateImage( AsPanel_Name.eNamePanelType.eNamePanelType_User, userChar); } #else if( null != userChar.namePanel) userChar.namePanel.SetGenderMark( AsPanel_Name.eNamePanelType.eNamePanelType_User, userChar); #endif #endregion AsCommonSender.ResetSendCheck(); AsGameMain.SetBackGroundProc( false); switch( type) { case eLoadType.ENTER_WORLD: { AS_CG_ENTER_WORLD_END enterWorld = new AS_CG_ENTER_WORLD_END(); byte[] data = enterWorld.ClassToPacketBytes(); ArkQuestmanager.instance.CheckVisibleTimeUI(); AsNetworkMessageHandler.Instance.Send( data); AsGameMain.s_gameState = GAME_STATE.STATE_INGAME; if( null != AsEntityManager.Instance && null != AsEntityManager.Instance.GetPlayerCharFsm() && null != AsChatManager.Instance) { Tbl_GlobalWeight_Record levelrecord = AsTableManager.Instance.GetTbl_GlobalWeight_Record( 69); if( null != levelrecord) { int iCurLevel = AsEntityManager.Instance.GetPlayerCharFsm().UserEntity.GetProperty<int>( eComponentProperty.LEVEL); if( iCurLevel >= (int)levelrecord.Value) AsChatManager.Instance.InsertSystemChat( AsTableManager.Instance.GetTbl_String(4083), eCHATTYPE.eCHATTYPE_SYSTEM); } } ArkQuestmanager.instance.ShowProgressInQuestMsgBox(); AsCommonSender.SendWayPoint(); } break; case eLoadType.WARP: AsCommonSender.SendWarpEnd(); AsGameMain.s_gameState = GAME_STATE.STATE_INGAME; break; case eLoadType.WARPXZ: AsCommonSender.SendWarpXZEnd( iMapID, AsUserInfo.Instance.GetCurrentUserCharacterPosition()); AsGameMain.s_gameState = GAME_STATE.STATE_INGAME; break; case eLoadType.PARTY_WARPXZ: AsPartySender.SendWarpXZEnd(); AsGameMain.s_gameState = GAME_STATE.STATE_INGAME; break; case eLoadType.GOTO_TOWN: AsCommonSender.SendGotoTownEnd(); AsGameMain.s_gameState = GAME_STATE.STATE_INGAME; #region -GameGuide_Death AsGameGuideManager.Instance.CheckUp( eGameGuideType.Death, AsUserInfo.Instance.SavedCharStat.level_); #endregion break; case eLoadType.INSTANCE_DUNGEON_ENTER: AsInstanceDungeonManager.Instance.Send_InDun_Enter_End(); AsGameMain.s_gameState = GAME_STATE.STATE_INGAME; break; case eLoadType.ARENA_ENTER: AsInstanceDungeonManager.Instance.Send_InDun_Enter_End(); AsPvpManager.Instance.EnterArena(); AsGameMain.s_gameState = GAME_STATE.STATE_INGAME; AsInputManager.Instance.m_Activate = false; break; case eLoadType.INSTANCE_DUNGEON_EXIT: AsInstanceDungeonManager.Instance.Send_InDun_Exit_End(); AsGameMain.s_gameState = GAME_STATE.STATE_INGAME; break; } //$yde if( eLoadType.ARENA_ENTER != type) AsInputManager.Instance.m_Activate = true; CoolTimeGroupMgr.Instance.CheckLoadMap(); yield return null; AsIntoMapTriggerManager.instance.UpdateIntoMapTrigger( iMapID); AsUseItemInMapMarkManager.instance.UpdateUseItemInMapMark( iMapID); ArkQuestmanager.instance.CheckVisibleTimeUI(); AsHudDlgMgr.Instance.UpdateQuestBookBtn(); QuestHolderManager.instance.UpdateQuestHolder(); AsInGameEventManager.instance.ForcedUpdate(); if( AsHudDlgMgr.Instance != null) { AsHudDlgMgr.Instance.cashShopBtn.GetComponent<CashShopBtnController>().SetMiracleTxt(AsUserInfo.Instance.nMiracle); AsHudDlgMgr.Instance.SetCashStoreBtnFreeMark(AsUserInfo.Instance.FreeGachaPoint == 1); AsHudDlgMgr.Instance.partyAndQuestToggleMgr.Initilize(); AsHudDlgMgr.Instance.CheckNewMenuImg(); } yield return null; AsCharacterTextureManager.Instance.Clear(); System.GC.Collect(); Resources.UnloadUnusedAssets(); ActivateLoadInfo( false); if( true == IsInvoking( "ConditionAlarm")) CancelInvoke( "ConditionAlarm"); InvokeRepeating( "ConditionAlarm", 0.0f, 1800.0f); #region -GameGuide_Map AsGameGuideManager.Instance.CheckUp( eGameGuideType.Map, iMapID); #endregion TerrainMgr.Instance.ShowMapNameShow(iMapID); #region -AccountGender #if !NEW_DELEGATE_IMAGE PromptGenderDialog(); #endif #endregion BonusManager.Instance.SceneLoaded();//$yde AsEmotionManager.Instance.ReleaseBlock();//$yde AsUseItemToMonTriggerManager.instance.CreateAllTrigger(); AsUseItemToMonTriggerManager.instance.RepoisitionTrigger(); ArkQuestmanager.instance.UpdateSortQuestList(); AsHudDlgMgr.Instance.UpdateQuestMiniView(); AsPromotionManager.Instance.SceneLoaded(); AutoCombatManager.Instance.ZoneWarpFinished(); Debug.LogWarning("map Load end"); }