Пример #1
0
	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);
				}
			}
		}
	}
Пример #2
0
	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);
					}
				}
			}
		}
	}
Пример #3
0
	public void Reset()
	{
		firstConnect = false;
		attendBonus = false;
		HideFinger();
		nowSelectTutorial = null;
		if( nowStep != null)
		{
			nowStep.objectTarget = null;
			nowStep = null;
		}
	}
Пример #4
0
	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));
		}
	}