/// <summary>Sends the quest invalid.</summary> /// <param name="chr">The character.</param> /// <param name="reason">The reason.</param> public static void SendQuestInvalid(Character chr, QuestInvalidReason reason) { using (RealmPacketOut packet = new RealmPacketOut(RealmServerOpCode.SMSG_QUESTGIVER_QUEST_INVALID, 4)) { packet.Write((int)reason); chr.Send(packet, false); } }
public override void Process(CmdTrigger <RealmServerCmdArgs> trigger) { QuestInvalidReason reason = trigger.Text.NextEnum(QuestInvalidReason.Ok); Character target = trigger.Args.Character.Target as Character; if (target != null) { QuestHandler.SendQuestInvalid(target, reason); } trigger.Reply("Done."); }
public Quest TryAddQuest(QuestTemplate template, IQuestHolder questGiver) { int freeSlot = m_Owner.QuestLog.FindFreeSlot(); if (freeSlot == -1) { QuestHandler.SendQuestLogFull(m_Owner); } else { QuestInvalidReason reason = template.CheckBasicRequirements(m_Owner); if (reason != QuestInvalidReason.Ok) { QuestHandler.SendQuestInvalid(m_Owner, reason); } else if (m_Owner.QuestLog.GetActiveQuest(template.Id) != null) { QuestHandler.SendQuestInvalid(m_Owner, QuestInvalidReason.AlreadyHave); } else if (!template.Repeatable && m_Owner.QuestLog.FinishedQuests.Contains(template.Id)) { QuestHandler.SendQuestInvalid(m_Owner, QuestInvalidReason.AlreadyCompleted); } else if (!questGiver.CanGiveQuestTo(m_Owner)) { QuestHandler.SendQuestInvalid(m_Owner, QuestInvalidReason.Tired); } else { Quest quest = m_Owner.QuestLog.AddQuest(template, freeSlot); if (quest.Template.Flags.HasFlag(QuestFlags.Escort)) { AutoComplete(quest, m_Owner); } return(quest); } } return(null); }
/// <summary> /// Sends the quest invalid. /// </summary> /// <param name="chr">The character.</param> /// <param name="reason">The reason.</param> public static void SendQuestInvalid(Character chr, QuestInvalidReason reason) { using (var packet = new RealmPacketOut(RealmServerOpCode.SMSG_QUESTGIVER_QUEST_INVALID, 4)) { packet.Write((int)reason); chr.Send(packet); } }