void Clear() { m_NpcRec = null; m_Talk.Text = ""; m_NpcName.Text = ""; m_CurrentTalkCount = 0; m_MenuBtn[(int)eNPCMenu.Next].SetControlState( UIButton.CONTROL_STATE.NORMAL); m_MenuBtn[(int)eNPCMenu.Next].controlIsEnabled = true; m_MenuBtn[(int)eNPCMenu.Skip].SetControlState( UIButton.CONTROL_STATE.NORMAL); m_MenuBtn[(int)eNPCMenu.Skip].controlIsEnabled = true; eventList.ClearListSync( true); m_eventListItemList.Clear(); if (m_Questlist != null) m_Questlist.DeleteAllQuest(); }
public override void LoadTable(string _path) { try { if( (null != AssetbundleManager.Instance && true == AssetbundleManager.Instance.useAssetbundle) || ( null != AsTableManager.Instance && true == AsTableManager.Instance.useReadBinary ) ) { // Ready Binary TextAsset textAsset = ResourceLoad.LoadTextAsset( _path); MemoryStream stream = new MemoryStream( textAsset.bytes); BinaryReader br = new BinaryReader( stream); int nCount = br.ReadInt32(); for( int i = 0; i < nCount; i++) { Tbl_NormalNpc_Record record = new Tbl_NormalNpc_Record(br); m_ResourceTable.Add(record.Id, record); } br.Close(); stream.Close(); } else { XmlElement root = GetXmlRootElement(_path); XmlNodeList nodes = root.ChildNodes; foreach(XmlNode node in nodes) { Tbl_NormalNpc_Record record = new Tbl_NormalNpc_Record((XmlElement)node); m_ResourceTable.Add(record.Id, record); } } } catch(System.Exception e) { Debug.LogError("[Tbl_NormalNpc_Table] LoadTable:|" + e + "| error while parsing"); } }
public bool Open( AsBaseEntity target , bool _callFromQuestClear = false) { AsChatFullPanel.Instance.Close(); if( target == null) return false; targetObject = target.gameObject; Clear(); if( eNPCType.NPC == target.GetProperty<eNPCType>( eComponentProperty.NPC_TYPE)) { m_NpcEntity = target as AsNpcEntity; m_NpcRec = AsTableManager.Instance.GetTbl_NormalNpc_Record( m_NpcEntity.TableIdx); //npc name Tbl_Npc_Record record = AsTableManager.Instance.GetTbl_Npc_Record( m_NpcEntity.TableIdx); npcName = m_NpcName.Text = record.NpcName; m_NpcTableID = m_NpcEntity.TableIdx; } if( null == m_NpcRec) { Debug.LogError( "null == m_NpcRec"); return false; } if( m_NpcRec.FaceId != int.MaxValue)//none { int textNum = 1 + ( m_NpcRec.FaceId / ( m_TextureCount*m_TextureCount)); string strImageFileName = "UI/Optimization/Texture/img_NPC_" + textNum; Texture2D npcImage = ResourceLoad.Loadtexture( strImageFileName) as Texture2D; Set_Tex( m_Npc_Image, npcImage, m_NpcRec.FaceId, m_TextureSize, m_TextureCount); } questHolder = QuestHolderManager.instance.GetQuestHolder( m_NpcTableID); //Pc Image Setting AsUserEntity entity = AsEntityManager.Instance.UserEntity; if( null != entity) { int faceImageId = 0; eCLASS __class = entity.GetProperty<eCLASS>( eComponentProperty.CLASS); eGENDER gender = entity.GetProperty<eGENDER>( eComponentProperty.GENDER); eRACE tribe = entity.GetProperty<eRACE>( eComponentProperty.RACE); Tbl_Class_Record record = AsTableManager.Instance.GetTbl_Class_Record( tribe, __class); switch( gender) { case eGENDER.eGENDER_MALE: faceImageId = record.Portrait_Male; break; case eGENDER.eGENDER_FEMALE: faceImageId = record.Portrait_Female; break; } int textureNum = 1 + ( faceImageId / ( m_TextureCount*m_TextureCount)); string strPcImageFileName = "UI/Optimization/Texture/img_PC_" + textureNum; Texture2D pcImage = ResourceLoad.Loadtexture( strPcImageFileName) as Texture2D; Set_Tex( m_Pc_Image, pcImage, faceImageId, m_TextureSize, m_TextureCount); } // for talk clear if( ( false == _callFromQuestClear) && ( true == CheckTalkComplete())) return true; gameObject.SetActiveRecursively( true); gameObject.active = true; if(0 != m_NpcRec.VoiceCount) { int VoiceIndex = UnityEngine.Random.Range( 0, m_NpcRec.VoiceCount); AsSoundManager.Instance.PlaySound( m_NpcRec.Voice(VoiceIndex), Vector3.zero, false);////npc Voice } int SpeechIndex = UnityEngine.Random.Range( 0, m_NpcRec.SpeechCount); SetTalk( m_NpcRec.Speech( SpeechIndex));////npc Speech if( m_NpcRec.FaceId == int.MaxValue)//none SetVisible( m_Npc_Image.gameObject, false); SetVisible( m_Pc_Image.gameObject, false); UpdateMenuButton(); // check clear quest m_Questlist.FindQuestFromObject( m_NpcEntity.gameObject); ArkSphereQuestTool.QuestData questData = m_Questlist.GetClearQuest(); if( questData != null) AsHudDlgMgr.Instance.OpenQuestAcceptUI(questData, true); m_Questlist.Visible = false; AsHudDlgMgr.dlgPresentState |= AsHudDlgMgr.eDlgPresentState.NpcMenu; if (questHolder != null) QuestTutorialMgr.Instance.ProcessQuestTutorialMsg(new QuestTutorialMsgInfo(QuestTutorialMsg.OPEN_NPC_TALK)); //{ // QuestTutorialMgr.Instance.ProcessQuestTutorialMsg(new QuestTutorialMsgInfo(QuestTutorialMsg.OPEN_NPC_TALK)); // if (questHolder.NowMarkType == QuestMarkType.HAVE_EVENT || questHolder.nowQuetMarkType == QuestMarkType.HAVE_EVENT_AND_PROGRESS) // if (m_NpcEntity != null) // questHolder.UpdateQuestMark(m_NpcEntity.TableIdx); //} return true; }