Ejemplo n.º 1
0
    public void AcceptQuest(int id)
    {
        var quest = dataBase.FindQuestById(id);

        if (quest != null)
        {
            if (quest.state == QuestState.可接)
            {
                quest.state = QuestState.已接;
                Debug.Log("接受任务:" + quest.title);
                Fading.Instance.BeginFade(Color.white, 1, 1);
                NPC     resultNpc;
                NpcInfo npcInfo;
                if (CurMapNpcManager.Instance.GetNpcByID(quest.StartNpcId, out resultNpc))
                {
                    resultNpc.ShowNothingSign();
                }
                if (npcDataBase.FindNpcById(quest.StartNpcId, out npcInfo))
                {
                    npcInfo.questStateType = NPCQuestStateType.无;
                }

                if (quest.Type == QuestType.对话)
                {
                    if (CurMapNpcManager.Instance.GetNpcByID(quest.NpcId, out resultNpc))
                    {
                        //该NPC在另一个地图上怎么修改?
                        resultNpc.ShowCompleteQuestSign();
                    }
                    if (npcDataBase.FindNpcById(quest.NpcId, out npcInfo))
                    {
                        npcInfo.questStateType = NPCQuestStateType.感叹号;
                    }
                }
            }
        }
        currentQuest = quest;
        QuestUIManager.Instance.UpdateUI(currentQuest);
    }
Ejemplo n.º 2
0
 public void UpdateSign()
 {
     if (!dataBase.FindNpcById(id, out npcInfo))
     {
         Debug.Log("未找到该NPC!");
     }
     else
     {
         if (npcInfo.questStateType == NPCQuestStateType.无)
         {
             ShowNothingSign();
         }
         else if (npcInfo.questStateType == NPCQuestStateType.感叹号)
         {
             ShowCompleteQuestSign();
         }
         else if (npcInfo.questStateType == NPCQuestStateType.金色书本)
         {
             ShowGetMainQuestSign();
         }
     }
 }