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 override void OnAccept() { if (Quest.StartingItem != null) { Quest.StartingItem.QuestItem = true; return; } int amount = MaxProgress; while (amount > 0 && !Failed) { Item item = QuestHelper.Construct(m_Delivery) as Item; if (item == null) { Fail(); break; } if (item.Stackable) { item.Amount = amount; amount = 1; } if (!Quest.Owner.PlaceInBackpack(item)) { Quest.Owner.SendLocalizedMessage(503200); // You do not have room in your backpack for Quest.Owner.SendLocalizedMessage(1075574); // Could not create all the necessary items. Your quest has not advanced. Fail(); break; } else { item.QuestItem = true; } amount -= 1; } if (Failed) { QuestHelper.DeleteItems(Quest.Owner, m_Delivery, MaxProgress - amount, false); Quest.RemoveQuest(); } }
public virtual void OnResign(bool resignChain) { m_Owner.PlaySound(ResignSound); // update chain if (!resignChain && !QuestHelper.FirstChainQuest(this, Quester)) { UpdateChain(); } // delete items that were given on quest start for (int i = 0; i < m_Objectives.Count; i++) { if (m_Objectives[i] is ObtainObjective) { ObtainObjective obtain = (ObtainObjective)m_Objectives[i]; QuestHelper.RemoveStatus(m_Owner, obtain.Obtain); } else if (m_Objectives[i] is DeliverObjective) { DeliverObjective deliver = (DeliverObjective)m_Objectives[i]; QuestHelper.DeleteItems(m_Owner, deliver.Delivery, deliver.MaxProgress, true); } } // delete escorter if (m_Quester is BaseEscort) { BaseEscort escort = (BaseEscort)m_Quester; escort.Say(1005653); // Hmmm. I seem to have lost my master. escort.PlaySound(0x5B3); escort.BeginDelete(m_Owner); } RemoveQuest(resignChain); }
public override void OnResponse(Server.Network.NetState state, RelayInfo info) { if (this.m_From != null) { this.m_From.CloseGump(typeof(MondainQuestGump)); } switch (info.ButtonID) { // close quest list case (int)Buttons.Close: break; // close quest case (int)Buttons.CloseQuest: this.m_From.SendGump(new MondainQuestGump(this.m_From)); break; // accept quest case (int)Buttons.AcceptQuest: if (this.m_Offer) { this.m_Quest.OnAccept(); } break; // refuse quest case (int)Buttons.RefuseQuest: if (this.m_Offer) { this.m_Quest.OnRefuse(); this.m_From.SendGump(new MondainQuestGump(this.m_Quest, Section.Refuse, true)); } break; // resign quest case (int)Buttons.ResignQuest: if (!this.m_Offer) { this.m_From.SendGump(new MondainResignGump(this.m_Quest)); } break; // accept reward case (int)Buttons.AcceptReward: if (!this.m_Offer && this.m_Section == Section.Rewards && this.m_Completed) { this.m_Quest.GiveRewards(); } break; // previous page case (int)Buttons.PreviousPage: if (this.m_Section == Section.Objectives || (this.m_Section == Section.Rewards && !this.m_Completed)) { this.m_Section = (Section)((int)this.m_Section - 1); this.m_From.SendGump(new MondainQuestGump(this.m_Quest, this.m_Section, this.m_Offer)); } break; // next page case (int)Buttons.NextPage: if (this.m_Section == Section.Description || this.m_Section == Section.Objectives) { this.m_Section = (Section)((int)this.m_Section + 1); this.m_From.SendGump(new MondainQuestGump(this.m_Quest, this.m_Section, this.m_Offer)); } break; // player complete quest case (int)Buttons.Complete: if (!this.m_Offer && this.m_Section == Section.Complete) { if (!this.m_Quest.Completed) { this.m_From.SendLocalizedMessage(1074861); // You do not have everything you need! } else { QuestHelper.DeleteItems(this.m_Quest); if (this.m_Quester != null) { this.m_Quest.Quester = this.m_Quester; } if (!QuestHelper.AnyRewards(this.m_Quest)) { this.m_Quest.GiveRewards(); } else { this.m_From.SendGump(new MondainQuestGump(this.m_Quest, Section.Rewards, false, true)); } } } break; // admin complete quest case (int)Buttons.CompleteQuest: if ((int)this.m_From.AccessLevel > (int)AccessLevel.Counselor && this.m_Quest != null) { QuestHelper.CompleteQuest(this.m_From, this.m_Quest); } break; // show quest default: if (this.m_Section != Section.Main || info.ButtonID >= this.m_From.Quests.Count + ButtonOffset || info.ButtonID < ButtonOffset) { break; } this.m_From.SendGump(new MondainQuestGump(this.m_From.Quests[(int)info.ButtonID - ButtonOffset], Section.Description, false)); break; } }