コード例 #1
0
        public override void OnTalk(PlayerMobile player, bool contextMenu)
        {
            Direction = GetDirectionTo(player);

            QuestSystem qs = player.Quest;

            if (qs is KissOfTheSerpentMistressQuest)
            {
                if (qs.IsObjectiveInProgress(typeof(SlayCalcifinaObjective)))
                {
                    qs.AddConversation(new DuringSlayCalcifinaConversation());
                }
            }
            else
            {
                KissOfTheSerpentMistressQuest newQuest = new KissOfTheSerpentMistressQuest(player);
                bool inRestartPeriod = false;

                if (qs != null)
                {
                    if (contextMenu)
                    {
                        player.SendMessage("I understand that you're eager but perhaps you might outta finish that there quest you started earlier!");
                    }
                }
                else if (QuestSystem.CanOfferQuest(player, typeof(KissOfTheSerpentMistressQuest), out inRestartPeriod))
                {
                    newQuest.SendOffer();
                }
                else if (inRestartPeriod && contextMenu)
                {
                    player.SendMessage("Hopefully she is in a far better place. Devoid of heartaches and despair.");
                }
            }
        }
コード例 #2
0
        public override void OnDoubleClick(Mobile from)
        {
            PlayerMobile player = from as PlayerMobile;

            if (player != null && player.InRange(GetWorldLocation(), 2))
            {
                QuestSystem qs = player.Quest;

                if (qs is KissOfTheSerpentMistressQuest)
                {
                    QuestObjective obj = qs.FindObjective(typeof(ObtainBowAndJournalObjective));

                    if ((obj != null && !obj.Completed) || KissOfTheSerpentMistressQuest.HasCalcifinasJournal(player))
                    {
                        Item journal = new CalcifinasJournal();

                        if (player.PlaceInBackpack(journal))
                        {
                            player.SendMessage("You take the journal from the dresser and place it into your pack.");

                            if (obj != null && !obj.Completed)
                            {
                                obj.Complete();
                            }
                        }
                        else
                        {
                            player.SendMessage("You find a journal, but can't pick it up because your pack is too full. Come back when you have more room in your pack.");
                            journal.Delete();
                        }

                        return;
                    }
                }
            }

            base.OnDoubleClick(from);
        }