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)); } }
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); }
public virtual void ProcessTalk(Player player, DialogController dialog, bool isReward) { }
public void ProcessTalk(Player player, DialogController dialog) { Steps[player.Quests[Quest.QuestId].Step].ProcessTalk(player, dialog, TryGetRewardNpc(player) != 0); }