Пример #1
0
 public void changeTalk(int targetId)
 {
     if (targetId == TALK_END)
     {
         closeTalk();
     }
     else
     {
         foreach (LTalk talk in talks)
         {
             if (talk.id == targetId)
             {
                 // npc.sendMessage(currentTalk.message[0], currentTalk.message[1]);
                 currentTalk = talk;
                 this.setNpcTalk();
                 this.setPlayerAnswer();
                 // Debug.Log(currentTalk.answers[0].targetId);
                 // Debug.Log(currentTalk.answers[1].targetId);
                 // Debug.Log(currentTalk.answers[2].targetId);
                 // Debug.Log(currentTalk.answers[3].targetId);
                 if (currentTalk.message[0] != "")
                 {
                     sendMessage();
                 }
                 break;
             }
         }
     }
 }
Пример #2
0
    void loadTalkScript(string npcName, string fileName)
    {
        this.npcName = npcName;
        talks        = new List <LTalk>();

        TextAsset    data      = Resources.Load(fileName, typeof(TextAsset)) as TextAsset;
        StringReader sr        = new StringReader(data.text);
        LTalk        talk      = new LTalk();
        int          answerNum = 0;

        string line;

        string[] splitedLine = new string[3];
        line = sr.ReadLine();
        while (line != null)
        {
            splitedLine = line.Split(',');

            if (splitedLine[0] == "id")
            {
                talk.id = int.Parse(splitedLine[1]);
            }
            else if (splitedLine[0] == "text")
            {
                talk.text = splitedLine[1];
            }
            else if (splitedLine[0] == "message")
            {
                talk.message[0] = splitedLine[1];
                talk.message[1] = splitedLine[2];
            }
            else if (splitedLine[0] == "answer")
            {
                if (answerNum >= 4)
                {
                    continue;
                }
                talk.answers[answerNum].text     = splitedLine[1];
                talk.answers[answerNum].targetId = int.Parse(splitedLine[2]);
                answerNum += 1;
            }
            else if (splitedLine[0] == "")
            {
                for (int i = answerNum; i < 4; i++)
                {
                    talk.answers[answerNum].text     = "";
                    talk.answers[answerNum].targetId = NO_SELECTION;
                    answerNum += 1;
                }
                answerNum = 0;
                talks.Add(talk);
                talk = new LTalk();
            }
            line = sr.ReadLine();
        }

        changeTalk(0);
    }