public static Type FindFirstChainQuest(BaseQuest quest) { if (quest == null) return null; Type[] quests = null; if (quest.Quester is MondainQuester) { MondainQuester mQuester = (MondainQuester)quest.Quester; quests = mQuester.Quests; } else if (quest.Quester is BaseQuestItem) { BaseQuestItem iQuester = (BaseQuestItem)quest.Quester; quests = iQuester.Quests; } if (quests != null) { for (int i = 0; i < quests.Length; i ++) { BaseQuest fQuest = Construct(quests[i]) as BaseQuest; if (fQuest != null && fQuest.ChainID == quest.ChainID) return fQuest.GetType(); } } return null; }
public static bool FirstChainQuest(BaseQuest quest, object quester) { Type[] quests = null; if (quester is MondainQuester) { MondainQuester mQuester = (MondainQuester)quester; quests = mQuester.Quests; } else if (quester is BaseQuestItem) { BaseQuestItem iQuester = (BaseQuestItem)quester; quests = iQuester.Quests; } if (quests != null) { for (int i = 0; i < quests.Length; i++) { if (quests[i] == quest.GetType()) { return(true); } } } return(false); }
public static bool InProgress(PlayerMobile player, MondainQuester quester) { for (int i = 0; i < player.Quests.Count; i ++) { BaseQuest quest = player.Quests[i]; if (quest.Quester == null) continue; if (quest.Quester.GetType() == quester.GetType()) { if (quest.Completed) { if (quest.Complete == null && !AnyRewards(quest)) quest.GiveRewards(); else player.SendGump(new MondainQuestGump(quest, MondainQuestGump.Section.Complete, false, true)); } else { player.SendGump(new MondainQuestGump(quest, MondainQuestGump.Section.InProgress, false)); quest.InProgress(); } return true; } } return false; }
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 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 static bool InProgress(PlayerMobile player, MondainQuester quester) { for (int i = 0; i < player.Quests.Count; i++) { BaseQuest quest = player.Quests[i]; if (quest.Quester == null) { continue; } if (quest.Quester.GetType() == quester.GetType()) { player.CloseGump(typeof(BaseQuestGump)); if (quest.Completed) { if (quest.Complete == null && !AnyRewards(quest)) { quest.GiveRewards(); } else { player.SendGump(new MLQuestFinishGump(player, quest)); } } else { player.SendGump(new MLQuestConversationGump(quest, MLQuestConverType.InProgress)); quest.InProgress(); } return(true); } } return(false); }
public static bool HasFishQuest(PlayerMobile player, MondainQuester quester, bool inRange) { //We need to bump the completed quests to the front so we can get credit before the incomplete quests. List <ProfessionalFisherQuest> quests = new List <ProfessionalFisherQuest>(); if (player.Quests != null) { for (int i = 0; i < player.Quests.Count; i++) { if (player.Quests[i] is ProfessionalFisherQuest) { ProfessionalFisherQuest quest = player.Quests[i] as ProfessionalFisherQuest; if (quest.Completed) { quests.Insert(0, quest); } else { quests.Add(quest); } } } } for (int i = 0; i < quests.Count; i++) { ProfessionalFisherQuest quest = quests[i]; if (quest.Quester is Mobile && (Mobile)quest.Quester == quester) { player.SendGump(new MondainQuestGump(quest, MondainQuestGump.Section.InProgress, false)); quest.InProgress(); return(true); } if (quest.TurnIn == quester || (quest.TurnIn != null && quest.TurnIn.Region != null && quester.Region != null && quest.TurnIn.Region.Name == quester.Region.Name)) { if (!inRange) { quester.SayTo(player, 1116519); //I can't find your ship! You need to bring it in closer. return(true); } if (quest.Completed) { quest.OnCompleted(); player.SendGump(new MondainQuestGump(quest, MondainQuestGump.Section.Complete, false, true)); } else { player.SendGump(new MondainQuestGump(quest, MondainQuestGump.Section.InProgress, false)); quest.InProgress(); } return(true); } } if (!inRange) { quester.SayTo(player, 1116514); //Bring yer ship around, I might have some work for ye! return(true); } return(false); }
public static bool HasFishQuest(PlayerMobile player, MondainQuester quester, bool inRange) { //We need to bump the completed quests to the front so we can get credit before the incomplete quests. List<ProfessionalFisherQuest> quests = new List<ProfessionalFisherQuest>(); if (player.Quests != null) { for (int i = 0; i < player.Quests.Count; i++) { if (player.Quests[i] is ProfessionalFisherQuest) { ProfessionalFisherQuest quest = player.Quests[i] as ProfessionalFisherQuest; if (quest.Completed) quests.Insert(0, quest); else quests.Add(quest); } } } for (int i = 0; i < quests.Count; i++) { ProfessionalFisherQuest quest = quests[i] as ProfessionalFisherQuest; if (quest.Quester is Mobile && (Mobile)quest.Quester == quester) { player.SendGump(new MondainQuestGump(quest, MondainQuestGump.Section.InProgress, false)); quest.InProgress(); return true; } if (quest.TurnIn == quester || (quest.TurnIn != null && quest.TurnIn.Region != null && quester.Region != null && quest.TurnIn.Region.Name == quester.Region.Name)) { if (!inRange) { quester.SayTo(player, 1116519); //I can't find your ship! You need to bring it in closer. return true; } if (quest.Completed) { quest.OnCompleted(); player.SendGump(new MondainQuestGump(quest, MondainQuestGump.Section.Complete, false, true)); } else { player.SendGump(new MondainQuestGump(quest, MondainQuestGump.Section.InProgress, false)); quest.InProgress(); } return true; } } if (!inRange) { quester.SayTo(player, 1116514); //Bring yer ship around, I might have some work for ye! return true; } return false; }