public virtual void SecComplete() { if (m_Quest == null) { return; } if (m_Quest.Complete == null) { if (QuestHelper.TryDeleteItems(m_Quest)) { if (QuestHelper.AnyRewards(m_Quest)) { m_Section = Section.Rewards; SecRewards(); } else { m_Quest.GiveRewards(); } } return; } AddHtmlLocalized(130, 45, 270, 16, 3006156, 0xFFFFFF, false, false); // Quest Conversation AddImage(140, 110, 0x4B9); AddHtmlObject(160, 70, 200, 40, m_Quest.Title, DarkGreen, false, false); AddHtmlObject(98, 140, 312, 180, m_Quest.Complete, LightGreen, false, true); AddButton(313, 455, 0x2EE6, 0x2EE8, (int)Buttons.Close, GumpButtonType.Reply, 0); AddButton(95, 455, 0x2EE9, 0x2EEB, (int)Buttons.Complete, GumpButtonType.Reply, 0); }
public override void OnResponse(GameClient sender, RelayInfo info) { // 3 - Close // 4 - Continue if (info.ButtonID == 4) { m_From.DropHolding(); if (!m_Quest.Completed) { m_From.SendLocalizedMessage(1074861); // You do not have everything you need! } else { QuestHelper.DeleteItems(m_Quest); if (m_Quester != null) { m_Quest.Quester = m_Quester; } if (!QuestHelper.AnyRewards(m_Quest)) { m_Quest.GiveRewards(); } else { m_From.CloseGump(typeof(BaseQuestGump)); m_From.SendGump(new MLQuestRewardGump(m_Quest)); } } } }
public void SecQuestionComplete() { if (m_Quest == null) { return; } if (m_Quest.Complete == null) { if (QuestHelper.TryDeleteItems(m_Quest)) { if (QuestHelper.AnyRewards(m_Quest)) { m_Section = Section.Rewards; SecRewards(); } else { m_Quest.GiveRewards(); } } return; } AddHtmlObject(98, 156, 312, 180, m_Quest.Complete, 0x15F90, false, true); AddButton(95, 395, 0x2EE6, 0x2EE8, (int)Buttons.Complete, GumpButtonType.Reply, 0); AddHtmlLocalized(0, 0, 0, 0, 1060675, false, false); // CLOSE }
public MLQuestFinishGump(PlayerMobile pm, BaseQuest quest, MondainQuester quester) : base(75, 25) { m_Quest = quest; m_From = pm; m_Quester = quester; if (m_Quest.Complete == null) { if (QuestHelper.TryDeleteItems(m_Quest)) { if (QuestHelper.AnyRewards(m_Quest)) { m_From.CloseGump(this.GetType()); m_From.SendGump(new MLQuestRewardGump(m_Quest)); } else { m_Quest.GiveRewards(); } } return; } Intern(""); AddPage(1); Closable = false; AddImageTiled(50, 20, 400, 400, 0x1404); AddImageTiled(50, 29, 30, 390, 0x28DC); AddImageTiled(34, 140, 17, 279, 0x242F); AddImage(48, 135, 0x28AB); AddImage(-16, 285, 0x28A2); AddImage(0, 10, 0x28B5); AddImage(25, 0, 0x28B4); AddImageTiled(83, 15, 350, 15, 0x280A); AddImage(34, 419, 0x2842); AddImage(442, 419, 0x2840); AddImageTiled(51, 419, 392, 17, 0x2775); AddImageTiled(415, 29, 44, 390, 0xA2D); AddImageTiled(415, 29, 30, 390, 0x28DC); AddLabelIntern(100, 50, 0x481, 0); AddImage(370, 50, 0x589); AddImage(379, 60, 0x15A9); AddImage(425, 0, 0x28C9); AddImage(90, 33, 0x232D); AddHtmlLocalized(130, 45, 270, 16, 3006156, 0xFFFFFF, false, false); // Quest Conversation AddImageTiled(130, 65, 175, 1, 0x238D); AddHtmlLocalized(130, 68, 220, 48, 1114513, String.Format("#{0}", quest.Title.ToString()), 0x2710, false, false); AddHtmlObject(98, 140, 312, 180, quest.Complete, 0x15F90, false, true); AddButton(95, 395, 0x2EE9, 0x2EEB, 4, GumpButtonType.Reply, 0); // Continue AddKRHtmlLocalized(0, 0, 0, 0, 1011036, false, false); AddKRHtmlLocalized(0, 0, 0, 0, 1011012, false, false); AddButton(313, 395, 0x2EE6, 0x2EE8, 3, GumpButtonType.Reply, 0); // Close }
public virtual bool CheckAtDestination() { if (m_Quest != null) { EscortObjective escort = GetObjective(); if (escort == null) { return(false); } Mobile escorter = GetEscorter(); if (escorter == null) { return(false); } if (escort.Region != null && escort.Region.Contains(Location)) { Say(1042809, escorter.Name); // We have arrived! I thank thee, ~1_PLAYER_NAME~! I have no further need of thy services. Here is thy pay. escort.Complete(); if (m_Quest.Completed) { escorter.SendLocalizedMessage(1046258, null, 0x23); // Your quest is complete. if (QuestHelper.AnyRewards(m_Quest)) { escorter.SendGump(new MondainQuestGump(m_Quest, MondainQuestGump.Section.Rewards, false, true)); } else { m_Quest.GiveRewards(); } escorter.PlaySound(m_Quest.CompleteSound); StopFollow(); m_EscortTable.Remove(escorter); m_DeleteTimer = Timer.DelayCall(TimeSpan.FromSeconds(5.0), new TimerCallback(Delete)); // fame Misc.Titles.AwardFame(escorter, escort.Fame, true); // compassion bool gainedPath = false; PlayerMobile pm = escorter as PlayerMobile; if (pm != null) { if (pm.CompassionGains > 0 && DateTime.Now > pm.NextCompassionDay) { pm.NextCompassionDay = DateTime.MinValue; pm.CompassionGains = 0; } if (pm.CompassionGains >= 5) // have already gained 5 times in one day, can gain no more { pm.SendLocalizedMessage(1053004); // You must wait about a day before you can gain in compassion again. } else if (VirtueHelper.Award(pm, VirtueName.Compassion, escort.Compassion, ref gainedPath)) { pm.SendLocalizedMessage(1074949, null, 0x2A); // You have demonstrated your compassion! Your kind actions have been noted. if (gainedPath) { pm.SendLocalizedMessage(1053005); // You have achieved a path in compassion! } else { pm.SendLocalizedMessage(1053002); // You have gained in compassion. } pm.NextCompassionDay = DateTime.Now + TimeSpan.FromDays(1.0); // in one day CompassionGains gets reset to 0 ++pm.CompassionGains; } else { pm.SendLocalizedMessage(1053003); // You have achieved the highest path of compassion and can no longer gain any further. } } } else { escorter.PlaySound(m_Quest.UpdateSound); } return(true); } } else if (!m_Checked) { Region region = GetDestination(); if (region != null && region.Contains(Location)) { m_DeleteTimer = Timer.DelayCall(TimeSpan.FromSeconds(5.0), new TimerCallback(Delete)); m_Checked = true; } } return(false); }
public override void OnResponse(Server.Network.NetState state, RelayInfo info) { if (m_From != null) { m_From.CloseGump(typeof(MondainQuestGump)); } switch (info.ButtonID) { // close quest list case (int)Buttons.Close: break; // close quest case (int)Buttons.CloseQuest: m_From.SendGump(new MondainQuestGump(m_From)); break; // accept quest case (int)Buttons.AcceptQuest: if (m_Offer) { m_Quest.OnAccept(); } break; // refuse quest case (int)Buttons.RefuseQuest: if (m_Offer) { m_Quest.OnRefuse(); m_From.SendGump(new MondainQuestGump(m_Quest, Section.Refuse, true)); } break; // resign quest case (int)Buttons.ResignQuest: if (!m_Offer) { m_From.SendGump(new MondainResignGump(m_Quest)); } break; // accept reward case (int)Buttons.AcceptReward: if (!m_Offer && m_Section == Section.Rewards && m_Completed) { m_Quest.GiveRewards(); } break; // refuse reward case (int)Buttons.RefuseReward: if (!m_Offer && m_Section == Section.Rewards && m_Completed) { m_Quest.RefuseRewards(); } break; // previous page case (int)Buttons.PreviousPage: if (m_Section == Section.Objectives || (m_Section == Section.Rewards && !m_Completed)) { m_Section = (Section)((int)m_Section - 1); m_From.SendGump(new MondainQuestGump(m_Quest, m_Section, m_Offer)); } break; // next page case (int)Buttons.NextPage: if (m_Section == Section.Description || m_Section == Section.Objectives) { m_Section = (Section)((int)m_Section + 1); m_From.SendGump(new MondainQuestGump(m_Quest, m_Section, m_Offer)); } break; // player complete quest case (int)Buttons.Complete: if (!m_Offer && m_Section == Section.Complete) { if (!m_Quest.Completed) { m_From.SendLocalizedMessage(1074861); // You do not have everything you need! } else { if (QuestHelper.TryDeleteItems(m_Quest)) { if (m_Quester != null) { m_Quest.Quester = m_Quester; } if (!QuestHelper.AnyRewards(m_Quest)) { m_Quest.GiveRewards(); } else { m_From.SendGump(new MondainQuestGump(m_Quest, Section.Rewards, false, true)); } } else { m_From.SendLocalizedMessage(1074861); // You do not have everything you need! } } } break; // admin complete quest case (int)Buttons.CompleteQuest: if ((int)m_From.AccessLevel > (int)AccessLevel.Counselor && m_Quest != null) { QuestHelper.CompleteQuest(m_From, m_Quest); } break; // show quest default: if (m_Section != Section.Main || info.ButtonID >= m_From.Quests.Count + ButtonOffset || info.ButtonID < ButtonOffset) { break; } m_From.SendGump(new MondainQuestGump(m_From.Quests[(int)info.ButtonID - ButtonOffset], Section.Description, false)); break; } }