//這方法將會在可委託任務的NPC對話完成之後[調用] public void DelegateQuest() { if (isFinished == false) { if (quest.questStatus == Quest.QuestStatus.Waitting) { //人物將會被委派一個任務 Player.instance.questList.Add(quest); quest.questStatus = Quest.QuestStatus.Accepted; //我們人物將會被委托,委派一個任務 //判斷此任務是否完成 if (quest.questType == Quest.QuestType.Gathering) { questTarget.QuestComplete(); } } else { //已經有這任務 不能重複領取 Debug.Log(string.Format("QUEST : {0} has accepted already!", quest.questName)); //Debug.Log("Quest : " + quest.questName + "has accepted already!"); } } }
public void DelegateQuest() { if (isFinished == false) { if (quest.questStatus == Quest.QuestStatus.Waitting) { PlayerQuest.instance.questList.Add(quest); quest.questStatus = Quest.QuestStatus.Accepted; if (quest.questType == Quest.QuestType.Gathering) { questTarget.QuestComplete(); } } else { Debug.Log(string.Format("Quest : {0} is been taken away!", quest.questName)); //Debug.Log("Object: " + quest.questName + "is been taken away!"); } } }
private void Update() { if (dialogueBox != null) { if (dialogueBox.activeInHierarchy) { if (Input.GetMouseButtonUp(0) && dialogueText.text == dialogueLines[currentLine]) { if (isScrolling == false) { currentLine++; if (currentLine < dialogueLines.Length) { CheckName(); //dialogueText.text = dialogueLines[currentLine]; StartCoroutine(ScrollingText()); } else { //CheckQuestIsComplete(); print(CheckQuestIsComplete()); if (CheckQuestIsComplete() && currentQuestable.isFinished == false)//如果NPC說完話以後,我們的任務完成了,開啟祝賀的對話 { ShowDialogue(talkable.congratslines, talkable.hasName); currentQuestable.isFinished = true; } else //說完對話,沒有任務沒有完成,返回值為false情況下,關閉對話窗口 { dialogueBox.SetActive(false); FindObjectOfType <basemove>().isTalking = true; if (currentQuestable == null)//並不是所有npc都有委派的能力 { Debug.Log("There is no Quest in this person"); } else { currentQuestable.DelegateQuest(); //更新任務ui列表 QuestManager.instance.UpdateQuestList(); // // // if (CheckQuestIsComplete() && currentQuestable.isFinished == false) { ShowDialogue(talkable.congratslines, talkable.hasName); currentQuestable.isFinished = true; } } if (questTarget != null) { for (int i = 0; i < Player.instance.questList.Count; i++) { if (Player.instance.questList[i].questName == questTarget.questName) { //玩家和隱藏人物說話完了,任務完成 questTarget.hasTalked = true; questTarget.QuestComplete(); } } } else { return; } } #region BACKUP /*dialogueBox.SetActive(false); * FindObjectOfType<basemove>().isTalking = true; * * * if (currentQuestable == null)//並不是所有npc都有委派的能力 * { * Debug.Log("There is no Quest in this person"); * } * else * { * currentQuestable.DelegateQuest(); * //更新任務ui列表 * QuestManager.instance.UpdateQuestList(); * } * * if (questTarget != null) * { * //玩家和隱藏人物說話完了,任務完成 * questTarget.hasTalked = true; * questTarget.QuestComplete(); * } * else * { * return; * } * }*/ #endregion } } } } } }