public void LoadTutorial( string _path) { XmlElement root = AsTableBase.GetXmlRootElement( _path); if( root.Attributes["StartNpcID"] != null) firstSelectNpcID = System.Convert.ToInt32( root.Attributes["StartNpcID"].Value); XmlNodeList nodes = root.SelectNodes( "Tutorial"); foreach ( XmlNode node in nodes) { QuestTutorial questTutorial = new QuestTutorial(); questTutorial.LoadFromXml( node); listTutorial.Add( questTutorial); // save quest id foreach ( TutorialConditionBase condtion in questTutorial.listCondition) { if( condtion.type == TutorialConditionType.QUEST_ID) { TutorialConditionUseInt condQuestID = condtion as TutorialConditionUseInt; if( !listQuestID.Contains( condQuestID.value)) listQuestID.Add( condQuestID.value); } } } }
public void ProcessQuestTutorialMsg( QuestTutorialMsgInfo _msgInfo) { // accept quest if( _msgInfo.message == QuestTutorialMsg.ACCEPT_QUEST) { foreach ( QuestTutorial tutorial in listTutorial) { if( tutorial.CanProcess( _msgInfo) == true) { nowSelectTutorial = tutorial; TutorialStepInfo stepInfo = nowSelectTutorial.ForcedStartStepZero(); if( stepInfo != null) { nowStep = stepInfo; ShowFinger( stepInfo); return; } } } } if( nowSelectTutorial == null) return; // clear Quest if( _msgInfo.message == QuestTutorialMsg.CLEAR_QUEST || _msgInfo.message == QuestTutorialMsg.DROP_QUEST) { nowStep = null; if( _msgInfo.message == QuestTutorialMsg.DROP_QUEST) { if( nowSelectTutorial.notProcessMsg == true) nowSelectTutorial.notProcessMsg = false; } nowSelectTutorial = null; HideFinger(); } else if( nowSelectTutorial != null) { // close Msg if( nowSelectTutorial.listCloseMsg.Contains( _msgInfo.message)) { Debug.LogWarning( "Close accept this msg = "+_msgInfo.message); nowStep = null; HideFinger(); // check restart step if( nowSelectTutorial.listStartStepMsg.Count == 0 && nowSelectTutorial.notRestartAfterClose == false) { TutorialStepInfo stepInfo = nowSelectTutorial.ForcedProgressStep( 0); if( stepInfo != null) { nowStep = stepInfo; ShowFinger( stepInfo); } } } else if( nowSelectTutorial.listUpdateMsg.Contains( _msgInfo.message)) { nowStep = nowSelectTutorial.ProcessUpdateMessage(); if( nowStep != null) ShowFinger( nowStep); } else { if( nowSelectTutorial.CanProcess( _msgInfo) == false) return; TutorialStepInfo step = nowSelectTutorial.ProcessMessage( _msgInfo); if( step == null) return; if( step.type == TutorialStepType.HIDE || step.type == TutorialStepType.LAST_HIDE) { nowStep = step; HideFinger(); if( step.type == TutorialStepType.LAST_HIDE) nowSelectTutorial.notProcessMsg = true; } else { // check not process ----> last hide if( nowSelectTutorial.notProcessMsg == false) { nowStep = step; if( nowStep.type == TutorialStepType.OVER_INVEN_ITEM) SetInvenPageExistThisItem( nowStep.listOption[0]); ShowFinger( step); } } } } }
public void Reset() { firstConnect = false; attendBonus = false; HideFinger(); nowSelectTutorial = null; if( nowStep != null) { nowStep.objectTarget = null; nowStep = null; } }
public void StartAcceptedQuestTutorial() { // set default tutorial nowSelectTutorial = listTutorial[0]; List<int> listProgressQuest = ArkQuestmanager.instance.GetProgressQuestIDList(); foreach ( int questID in listProgressQuest) { if( IsTutorialQuest( questID)) ProcessQuestTutorialMsg( new QuestTutorialMsgInfo( QuestTutorialMsg.ACCEPT_QUEST, questID)); } }