public override void ProcessTalk(Player player, DialogController dialog, bool isReward)
        {
            string title = Task.JournalText.Substring(0, Task.JournalText.IndexOf(":", StringComparison.OrdinalIgnoreCase) + 1);
            int titleId = int.Parse(Task.JournalText.Substring(Task.JournalText.IndexOf(":", StringComparison.OrdinalIgnoreCase) + 1)) - 1;
            title = title + titleId;

            if (dialog.Buttons[0].Text.Equals(title))
            {
                Processor.FinishStep(player);
            }
            else
            {
                dialog.Reset(3, 0, player.Quests[Quest.QuestId].Step + 1, 1 + (titleId % 1000) / 2, Quest.QuestId);
                dialog.Buttons.Add(new DialogButton(DialogIcon.DefaultQuest, title));
                dialog.SendDialog(Quest, Global.QuestEngine.GetRewardForPlayer(player, Quest));
            }
        }
Exemplo n.º 2
0
        private static void EndDialog(DialogController dialog, DialogQuestString action)
        {
            Player player = dialog.Player;
            int questId = dialog.DialogId;

            if (action == DialogQuestString.Decline)
                return;

            if (!player.Quests.ContainsKey(questId))
            {
                Quests[questId].StartQuest(player);
                new SpNpcTalk(dialog.Npc, dialog.JournalId).Send(player.Connection);
                return;
            }

            Quests[questId].ProcessTalk(player, dialog);
        }
Exemplo n.º 3
0
 public virtual void ProcessTalk(Player player, DialogController dialog, bool isReward)
 {
 }
Exemplo n.º 4
0
 public void ProcessTalk(Player player, DialogController dialog)
 {
     Steps[player.Quests[Quest.QuestId].Step].ProcessTalk(player, dialog, TryGetRewardNpc(player) != 0);
 }