示例#1
0
文件: BoarStew.cs 项目: mywebext/DOL
        /* This is the method we declared as callback for the hooks we set to
         * masterGerol. It will be called whenever a player right clicks on Sir Quait
         * or when he whispers something to him.
         */

        protected static void TalkToMasterGerol(DOLEvent e, object sender, EventArgs args)
        {
            //We get the player from the event arguments and check if he qualifies
            GamePlayer player = ((SourceEventArgs)args).Source as GamePlayer;

            if (player == null)
            {
                return;
            }

            if (masterGerol.CanGiveQuest(typeof(BoarStew), player) <= 0)
            {
                return;
            }

            //We also check if the player is already doing the quest
            BoarStew quest = player.IsDoingQuest(typeof(BoarStew)) as BoarStew;

            masterGerol.TurnTo(player);
            //Did the player rightclick on masterGerol?
            if (e == GameObjectEvent.Interact)
            {
                if (quest == null)
                {
                    //Player hasn't the quest:
                    masterGerol.SayTo(player, "Good day, my friend. I am Gerol, Master and Healer of horses. The guards stop here frequently for my services. I'm no miracle worker, but I suppose if you're hurt, I could patch you up a bit, as well.");
                    masterGerol.SayTo(player, "Goodness, more new faces in town. Are you here to help me with my wonderful [stew]?");
                    return;
                }
            }
            // The player whispered to Sir Quait (clicked on the text inside the [])
            else if (e == GameLivingEvent.WhisperReceive)
            {
                WhisperReceiveEventArgs wArgs = (WhisperReceiveEventArgs)args;

                //We also check if the player is already doing the quest
                if (quest == null)
                {
                    switch (wArgs.Text)
                    {
                    case "stew":
                        masterGerol.SayTo(player, "Oh yes! It is my speciality and one of the key components to helping people out when they are sick. Everyone knows that my wonderful stew brings along a speedy recovery. I am running low on the main [ingredient], do you think you could help me out?");
                        break;

                    case "ingredient":
                        player.Out.SendQuestSubscribeCommand(masterGerol, QuestMgr.GetIDForQuestType(typeof(BoarStew)), "Will you help Master Gerol? [Levels 19-22]");
                        break;
                    }
                }
                else
                {
                    switch (wArgs.Text)
                    {
                    case "abort":
                        player.Out.SendCustomDialog("Do you really want to abort this quest, \nall items gained during quest will be lost?", new CustomDialogResponse(CheckPlayerAbortQuest));
                        break;
                    }
                }
            }
        }
示例#2
0
        protected static void TalkToHarlfug(DOLEvent e, object sender, EventArgs args)
        {
            //We get the player from the event arguments and check if he qualifies
            //for the quest!
            GamePlayer player = ((SourceEventArgs)args).Source as GamePlayer;

            if (player == null)
            {
                return;
            }

            if (dalikor.CanGiveQuest(typeof(ImportantDelivery), player) <= 0)
            {
                return;
            }

            //We also check if the player is already doing the quest
            ImportantDelivery quest = player.IsDoingQuest(typeof(ImportantDelivery)) as ImportantDelivery;

            harlfug.TurnTo(player);
            //Did the player rightclick on NPC?
            if (e == GameObjectEvent.Interact)
            {
                if (quest != null)
                {
                    switch (quest.Step)
                    {
                    case 7:
                        harlfug.SayTo(player, "Welcome to my stable friend. What can I do for you today?");
                        break;

                    case 8:
                        harlfug.SayTo(player, "Ah, here we are. I know it isn't much, but I got it in a trade a while ago, and I don't have much use for it. I'm sure you can put it to use though, can't you? Let me know if you're in need of anything else. I have a few errands I need run.");
                        quest.FinishQuest();
                        break;
                    }
                }

                return;
            }
            else if (e == GameLivingEvent.WhisperReceive)
            {
                WhisperReceiveEventArgs wArgs = (WhisperReceiveEventArgs)args;

                if (quest != null)
                {
                    //Do some small talk :)
                    switch (wArgs.Text)
                    {
                    case "reward":
                        harlfug.SayTo(player, "Ah, here we are. I know it isn't much, but I got it in a trade a while ago, and I don't have much use for it. I'm sure you can put it to use though, can't you? Let me know if you're in need of anything else. I have a few errands I need run.");
                        if (quest.Step == 8)
                        {
                            quest.FinishQuest();
                        }
                        break;
                    }
                }
            }
        }
示例#3
0
        /* This is the method we declared as callback for the hooks we set to
         * NPC. It will be called whenever a player right clicks on NPC
         * or when he whispers something to him.
         */

        protected static void TalkToHaruld(DOLEvent e, object sender, EventArgs args)
        {
            // We get the player from the event arguments and check if he qualifies
            GamePlayer player = ((SourceEventArgs)args).Source as GamePlayer;

            if (player == null)
            {
                return;
            }

            if (masterFrederick.CanGiveQuest(typeof(IreFairyIre), player) <= 0)
            {
                return;
            }

            // We also check if the player is already doing the quest
            IreFairyIre quest = player.IsDoingQuest(typeof(IreFairyIre)) as IreFairyIre;

            if (e == GameLivingEvent.WhisperReceive)
            {
                WhisperReceiveEventArgs wArgs = (WhisperReceiveEventArgs)args;
                if (quest != null && quest.Step == 1)
                {
                    haruld.TurnTo(player);
                    switch (wArgs.Text)
                    {
                    case "fairy":
                        haruld.SayTo(player, "Fairies? Bah, I don't care one lick about those creatures. Why don't you go speak to Nob in the stable there? He knows all about those nasty things.");
                        quest.Step = 2;
                        break;
                    }
                }
            }
        }
示例#4
0
        /* This is the method we declared as callback for the hooks we set to
         * Sir Quait. It will be called whenever a player right clicks on Sir Quait
         * or when he whispers something to him.
         */

        protected static void TalkToFarmerAsma(DOLEvent e, object sender, EventArgs args)
        {
            //We get the player from the event arguments and check if he qualifies
            GamePlayer player = ((SourceEventArgs)args).Source as GamePlayer;

            if (player == null)
            {
                return;
            }

            //We also check if the player is already doing the quest
            AgainstTheGrain quest = player.IsDoingQuest(typeof(AgainstTheGrain)) as AgainstTheGrain;

            farmerAsma.TurnTo(player);

            if (e == GameObjectEvent.Interact)
            {
                if (quest != null && quest.Step == 1)
                {
                    //Player is doing the quest...
                    farmerAsma.SayTo(player, "Hello, adventurer.  Pardon me if I do not seem enthusiastic about meeting you, but a terrible thing has just [happened].");
                    return;
                }
            }

            // The player whispered to NPC (clicked on the text inside the [])
            else if (e == GameLivingEvent.WhisperReceive)
            {
                WhisperReceiveEventArgs wArgs = (WhisperReceiveEventArgs)args;
                if (quest != null)
                {
                    switch (wArgs.Text)
                    {
                    case "happened":
                        SendMessage(player, "You start to ask Farmer Asma if she's the person Minstrel Laridia was talking about, the farmer continues speaking before you can organize your thoughts.", 0, eChatType.CT_Say, eChatLoc.CL_PopupWindow);
                        farmerAsma.SayTo(player, "You see, I used to lease land close to Vetusta Abbey, where I raised barley.  Being a farmer never made me wealthy, but it was satisfying. I never had any problems with the Church or my neighbors, so I was shocked when the Abbey asked me to [leave].");
                        break;

                    case "leave":
                        farmerAsma.SayTo(player, "They said they needed the land for something else, but they never mentioned the details. I packed up and left, coming to Cotswold in search of a new plot to lease. Days later, I learned the Church had given the land to people promoting a new [sport].");
                        break;

                    case "sport":
                        farmerAsma.SayTo(player, "A game, can you believe it? I was curious, so I attended a match. When I could see through the crowds of garishly-dressed gentry, it looked to me like a bunch of men chasing pigs around with sticks! I don't understand, but it's quite [popular].");
                        break;

                    case "popular":
                        farmerAsma.SayTo(player, "I can remember playing something similar in my childhood on the farm, but suddenly, it's become a bona fide sport. I just...well, I don't understand why they had to take away my farm for a silly [diversion].");
                        player.Out.SendEmoteAnimation(farmerAsma, eEmote.MidgardFrenzy);
                        break;

                    case "diversion":
                        farmerAsma.SayTo(player, "I'm sure it will fade from popularity within a few months. All fads do, and then where will I be? Most likey, I'll still be trying to reestablish myself elsewhere. Well, I need to get back to what I was doing. Thank you for lending a sympathetic ear.");
                        quest.Step = 2;
                        break;
                    }
                }
            }
        }
        protected static void TalkToFreagus(DOLEvent e, object sender, EventArgs args)
        {
            // We get the player from the event arguments and check if he qualifies
            // for the quest!
            GamePlayer player = ((SourceEventArgs)args).Source as GamePlayer;

            if (player == null)
            {
                return;
            }

            if (addrir.CanGiveQuest(typeof(ImportantDelivery), player) <= 0)
            {
                return;
            }

            // We also check if the player is already doing the quest
            ImportantDelivery quest = player.IsDoingQuest(typeof(ImportantDelivery)) as ImportantDelivery;

            freagus.TurnTo(player);

            // Did the player rightclick on NPC?
            if (e == GameObjectEvent.Interact)
            {
                if (quest != null)
                {
                    if (quest.Step == 7)
                    {
                        freagus.SayTo(player, LanguageMgr.GetTranslation(player.Client, "Hib.ImportantDelivery.TalkToFreagus.Welcome"));
                    }
                    else if (quest.Step == 8)
                    {
                        freagus.SayTo(player, LanguageMgr.GetTranslation(player.Client, "Hib.ImportantDelivery.TalkToFreagus.GoodCrop"));
                        quest.FinishQuest();
                    }
                }

                return;
            }
            else if (e == GameLivingEvent.WhisperReceive)
            {
                WhisperReceiveEventArgs wArgs = (WhisperReceiveEventArgs)args;

                if (quest != null)
                {
                    // Do some small talk :)
                    if (wArgs.Text == LanguageMgr.GetTranslation(player.Client, "Hib.ImportantDelivery.TalkToFreagus.CaseReward"))
                    {
                        freagus.SayTo(player, LanguageMgr.GetTranslation(player.Client, "Hib.ImportantDelivery.TalkToFreagus.Reward", player.Name));
                        freagus.SayTo(player, LanguageMgr.GetTranslation(player.Client, "Hib.ImportantDelivery.TalkToFreagus.Errand"));
                        if (quest.Step == 8)
                        {
                            quest.FinishQuest();
                        }
                    }
                }
            }
        }
示例#6
0
        /* This is the method we declared as callback for the hooks we set to
         * NPC. It will be called whenever a player right clicks on NPC
         * or when he whispers something to him.
         */

        protected static void TalkToSquireGalune(DOLEvent e, object sender, EventArgs args)
        {
            //We get the player from the event arguments and check if he qualifies
            GamePlayer player = ((SourceEventArgs)args).Source as GamePlayer;

            if (player == null)
            {
                return;
            }

            //We also check if the player is already doing the quest
            ShakenSquire quest = player.IsDoingQuest(typeof(ShakenSquire)) as ShakenSquire;

            squireGalune.TurnTo(player);
            //Did the player rightclick on NPC?
            if (e == GameObjectEvent.Interact)
            {
                if (quest != null)
                {
                    switch (quest.Step)
                    {
                    case 2:
                        squireGalune.SayTo(player, "Oh, no, it's a spider! Please, someone get this awful thing away from me!");
                        squireGalune.Emote(eEmote.Beg);
                        break;

                    case 3:
                        squireGalune.SayTo(player, "Sir Jerem finally sent someone? Nevermind, I don't care who sent you, I'm just relieved that horrible spider is dead! I thought for sure it was going to kill me. I'll never listen to [Master Graent's] stories again.");
                        break;
                    }
                }
            }
            // The player whispered to NPC (clicked on the text inside the [])
            else if (e == GameLivingEvent.WhisperReceive)
            {
                WhisperReceiveEventArgs wArgs = (WhisperReceiveEventArgs)args;
                if (quest != null)
                {
                    switch (wArgs.Text)
                    {
                    case "Master Graent's":
                        if (quest.Step == 3)
                        {
                            squireGalune.SayTo(player, "He's full of stories about hidden treasures and deeds of valor, but he never mentioned spiders! He conveniently left that part out. When I get back to the castle, I'm going to give him a piece of my [mind].");
                        }
                        break;

                    case "mind":
                        if (quest.Step == 3)
                        {
                            squireGalune.SayTo(player, "I think I'll be able to make it back on my own now. Thank you so much for rescuing me from that spider.  Please let Sir Jerem know that I'm safe when you get back to the keep.");
                            quest.Step = 4;
                        }
                        break;
                    }
                }
            }
        }
示例#7
0
        /* This is the method we declared as callback for the hooks we set to
         * NPC. It will be called whenever a player right clicks on NPC
         * or when he whispers something to him.
         */

        protected static void TalkToVerNuren(DOLEvent e, object sender, EventArgs args)
        {
            // We get the player from the event arguments and check if he qualifies
            GamePlayer player = ((SourceEventArgs)args).Source as GamePlayer;

            if (player == null)
            {
                return;
            }

            // We also check if the player is already doing the quest
            AndrewsSkins quest = player.IsDoingQuest(typeof(AndrewsSkins)) as AndrewsSkins;

            verNuren.TurnTo(player);

            // Did the player rightclick on NPC?
            if (e == GameObjectEvent.Interact)
            {
                if (quest != null)
                {
                    if (quest.Step < 3)
                    {
                        // Player is doing the quest...
                        verNuren.SayTo(player, "Greetings to you traveler.  Is there something I can help you with today?");
                        return;
                    }
                }
            }

            // The player whispered to NPC (clicked on the text inside the [] or with /whisper)
            else if (e == GameLivingEvent.WhisperReceive)
            {
                WhisperReceiveEventArgs wArgs = (WhisperReceiveEventArgs)args;
                if (quest != null)
                {
                    switch (wArgs.Text)
                    {
                    case "thread":
                        if (quest.Step == 2)
                        {
                            verNuren.SayTo(player, "Oh yes.  I know what you're talking about.  Geor told me the other day that he was out of the thread he needs to make his armor.  No worries.  I have some right here.  Now please, take this straight to Geor.");

                            GiveItem(verNuren, player, spoolOfLeatherworkingThread);

                            player.GainExperience(GameLiving.eXPSource.Quest, 40, true);
                            long money = Money.GetMoney(0, 0, 0, 3, Util.Random(50));
                            player.AddMoney(money, "You are awarded 3 silver and some copper!");
                            InventoryLogging.LogInventoryAction("(QUEST;" + quest.Name + ")", player, eInventoryActionType.Quest, money);

                            quest.Step = 3;
                        }

                        break;
                    }
                }
            }
        }
示例#8
0
        protected static void TalkToMasrim(DOLEvent e, object sender, EventArgs args)
        {
            // We get the player from the event arguments and check if he qualifies
            GamePlayer player = ((SourceEventArgs)args).Source as GamePlayer;

            if (player == null)
            {
                return;
            }

            if (Masrim.CanGiveQuest(typeof(Rogue_50), player) <= 0)
            {
                return;
            }

            // We also check if the player is already doing the quest
            Rogue_50 quest = player.IsDoingQuest(typeof(Rogue_50)) as Rogue_50;

            if (e == GameObjectEvent.Interact)
            {
                // Nag to finish quest
                if (quest != null)
                {
                    Masrim.SayTo(player, "Check your Journal for instructions!");
                }
                else
                {
                    Masrim.SayTo(player, "Midgard needs your [services]");
                }
            }

            // The player whispered to the NPC
            else if (e == GameLivingEvent.WhisperReceive)
            {
                WhisperReceiveEventArgs wArgs = (WhisperReceiveEventArgs)args;

                // Check player is already doing quest
                if (quest == null)
                {
                    switch (wArgs.Text)
                    {
                    case "services":
                        player.Out.SendQuestSubscribeCommand(Masrim, QuestMgr.GetIDForQuestType(typeof(Rogue_50)), "Will you help Masrim [Rogue Level 50 Epic]?");
                        break;
                    }
                }
                else
                {
                    switch (wArgs.Text)
                    {
                    case "abort":
                        player.Out.SendCustomDialog("Do you really want to abort this quest, \nall items gained during quest will be lost?", new CustomDialogResponse(CheckPlayerAbortQuest));
                        break;
                    }
                }
            }
        }
        protected static void TalkToLadyLegada(DOLEvent e, object sender, EventArgs args)
        {
            // We get the player from the event arguments and check if he qualifies
            GamePlayer player = ((SourceEventArgs)args).Source as GamePlayer;

            if (player == null)
            {
                return;
            }

            if (addrir.CanGiveQuest(typeof(TraitorInMagMell), player) <= 0)
            {
                return;
            }

            // We also check if the player is already doing the quest
            TraitorInMagMell quest = player.IsDoingQuest(typeof(TraitorInMagMell)) as TraitorInMagMell;

            ladyLegada.TurnTo(player);

            // Did the player rightclick on NPC?
            if (e == GameObjectEvent.Interact)
            {
                if (quest != null && quest.Step >= 2)
                {
                    ladyLegada.SayTo(player, "Greetings Ally. It is good to see you here. My time is short, so I will make this [brief].");
                    return;
                }

                return;
            }
            else if (e == GameLivingEvent.WhisperReceive)
            {
                WhisperReceiveEventArgs wArgs = (WhisperReceiveEventArgs)args;
                if (quest != null)
                {
                    // Do some small talk :)
                    switch (wArgs.Text)
                    {
                    case "brief":
                        ladyLegada.SayTo(player, "Our Queen has laid out the plans for Mag Mell and is eager to have your assistance. Here are the plans, memorize your part. Do not fail us in this, lest dire circumstances befall you. Till we meet again.");
                        if (quest.Step == 3)
                        {
                            GiveItem(ladyLegada, player, sluaghPlans);

                            new RegionTimer(ladyLegada, new RegionTimerCallback(quest.CastLadyLegada), 10000);
                            new RegionTimer(ladyLegada, new RegionTimerCallback(quest.RemoveLadyLegada), 12000);

                            quest.Step = 4;
                        }

                        break;
                    }
                }
            }
        }
示例#10
0
        protected static void TalkToLadyHinda(DOLEvent e, object sender, EventArgs args)
        {
            // We get the player from the event arguments and check if he qualifies
            GamePlayer player = ((SourceEventArgs)args).Source as GamePlayer;

            if (player == null)
            {
                return;
            }

            if (dalikor.CanGiveQuest(typeof(TraitorInMularn), player) <= 0)
            {
                return;
            }

            // We also check if the player is already doing the quest
            TraitorInMularn quest = player.IsDoingQuest(typeof(TraitorInMularn)) as TraitorInMularn;

            ladyHinda.TurnTo(player);

            // Did the player rightclick on NPC?
            if (e == GameObjectEvent.Interact)
            {
                if (quest != null && quest.Step >= 2)
                {
                    ladyHinda.SayTo(player, "Ah, our loyal ally, you have made it to our meeting. I was afraid you would not show. You have proven me wrong and strengthened my faith in your servitude to us. My time here is short, so I will make this [brief].");
                    return;
                }

                return;
            }
            else if (e == GameLivingEvent.WhisperReceive)
            {
                WhisperReceiveEventArgs wArgs = (WhisperReceiveEventArgs)args;
                if (quest != null)
                {
                    // Do some small talk :)
                    switch (wArgs.Text)
                    {
                    case "brief":
                        ladyHinda.SayTo(player, "I have with me the plans for tomorrow night. We will need your help in being prepared. Your instructions are written on the parchment. Take it and memorize your duties, lest our Queen be angered. I bid you farewell for now.");
                        if (quest.Step == 3)
                        {
                            GiveItem(ladyHinda, player, askefruerPlans);

                            new RegionTimer(ladyHinda, new RegionTimerCallback(quest.CastLadyFelin), 10000);
                            new RegionTimer(ladyHinda, new RegionTimerCallback(quest.RemoveLadyFelin), 12000);

                            quest.Step = 4;
                        }

                        break;
                    }
                }
            }
        }
示例#11
0
        protected static void TalkToGuardCynon(DOLEvent e, object sender, EventArgs args)
        {
            // We get the player from the event arguments
            GamePlayer player = ((SourceEventArgs)args).Source as GamePlayer;

            if (player == null)
            {
                return;
            }

            // We also check if the player is already doing the quest
            Disenchanted quest = player.IsDoingQuest(typeof(Disenchanted)) as Disenchanted;

            if (quest == null)
            {
                return;
            }

            guardCynon.TurnTo(player);

            // Did the player rightclick on guardCynon?
            if (e == GameObjectEvent.Interact)
            {
                if (quest.Step == 1)
                {
                    guardCynon.SayTo(player, "Good day, you must be the courier from Palune. I've been waiting for her to finish with that polearm for quite some time. May I have the halberd?");
                }

                if (quest.Step == 2)
                {
                    guardCynon.SayTo(player, "This halberd is talking to me! What kind of useless enchantment is this? I asked Palune to put a simple accuracy enchantment upon this weapon, not to make it [chatter] at me!");
                }

                return;
            }

            // The player whispered to Sir Quait (clicked on the text inside the [])
            else if (e == GameLivingEvent.WhisperReceive)
            {
                WhisperReceiveEventArgs wArgs = (WhisperReceiveEventArgs)args;

                if (quest.Step == 2)
                {
                    switch (wArgs.Text)
                    {
                    case "chatter":
                        guardCynon.SayTo(player, "This is downright annoying, and worse, the weapon is useless to me! Take this back to Palune and let her know that if she doesn't correct this, I'll see to it that the Defenders of Albion find a new enchanter.");
                        GiveItem(guardCynon, player, enchantedHalberd);
                        quest.Step = 3;
                        break;
                    }
                }
            }
        }
示例#12
0
        /// <summary>
        /// Checks the trigger, this method is called whenever a event associated with this questparts quest
        /// or a manualy associated eventhandler is notified.
        /// </summary>
        /// <param name="e"></param>
        /// <param name="sender"></param>
        /// <param name="args"></param>
        /// <returns></returns>
        public override bool Check(DOLEvent e, object sender, EventArgs args)
        {
            bool result = false;

            if (e == GameLivingEvent.WhisperReceive && sender == I)
            {
                WhisperReceiveEventArgs wArgs = (WhisperReceiveEventArgs)args;
                result = wArgs.Text != null && K == wArgs.Text;
            }

            return(result);
        }
示例#13
0
        /* This is the method we declared as callback for the hooks we set to
         * NPC. It will be called whenever a player right clicks on NPC
         * or when he whispers something to him.
         */

        protected static void TalkToGeorNadren(DOLEvent e, object sender, EventArgs args)
        {
            // We get the player from the event arguments and check if he qualifies
            GamePlayer player = ((SourceEventArgs)args).Source as GamePlayer;

            if (player == null)
            {
                return;
            }

            // We also check if the player is already doing the quest
            AndrewsSkins quest = player.IsDoingQuest(typeof(AndrewsSkins)) as AndrewsSkins;

            georNadren.TurnTo(player);

            // Did the player rightclick on NPC?
            if (e == GameObjectEvent.Interact)
            {
                if (quest != null)
                {
                    switch (quest.Step)
                    {
                    case 1:
                        georNadren.SayTo(player, "Hello there friend.  How may I be of service today?");
                        break;

                    case 3:
                        georNadren.SayTo(player, "Welcome back friend.  Did you get the thread I need?");
                        break;
                    }
                }
            }

            // The player whispered to NPC (clicked on the text inside the [])
            else if (e == GameLivingEvent.WhisperReceive)
            {
                WhisperReceiveEventArgs wArgs = (WhisperReceiveEventArgs)args;
                if (quest != null)
                {
                    switch (wArgs.Text)
                    {
                    case "errand":
                        if (quest.Step == 2)
                        {
                            georNadren.SayTo(player, "I need a few spools of thread in order to continue making the armor I sell.  Ver Nuren's wife makes the thread I use.  Go ask him if he has any for me.  Come back to me when you have some.");
                        }

                        break;
                    }
                }
            }
        }
示例#14
0
        /* This is the method we declared as callback for the hooks we set to
         * NPC. It will be called whenever a player right clicks on NPC
         * or when he whispers something to him.
         */

        protected static void TalkToHyndla(DOLEvent e, object sender, EventArgs args)
        {
            // We get the player from the event arguments and check if he qualifies
            GamePlayer player = ((SourceEventArgs)args).Source as GamePlayer;

            if (player == null)
            {
                return;
            }

            if (dalikor.CanGiveQuest(typeof(StolenEggs), player) <= 0)
            {
                return;
            }

            // We also check if the player is already doing the quest
            StolenEggs quest = player.IsDoingQuest(typeof(StolenEggs)) as StolenEggs;

            hyndla.TurnTo(player);
            if (e == GameLivingEvent.Interact)
            {
                if (quest != null)
                {
                    hyndla.SayTo(player, LanguageMgr.GetTranslation(ServerProperties.Properties.SERV_LANGUAGE, "Mid.StolenEggs.TalkToHyndla.Talk1", player.CharacterClass.Name));
                    hyndla.SayTo(player, LanguageMgr.GetTranslation(ServerProperties.Properties.SERV_LANGUAGE, "Mid.StolenEggs.TalkToHyndla.Talk2"));
                }
            }
            else if (e == GameLivingEvent.WhisperReceive)
            {
                WhisperReceiveEventArgs wArgs = (WhisperReceiveEventArgs)args;
                if (quest != null)
                {
                    if (wArgs.Text == LanguageMgr.GetTranslation(ServerProperties.Properties.SERV_LANGUAGE, "Mid.StolenEggs.TalkToHyndla.Whisper1"))
                    {
                        hyndla.SayTo(player, LanguageMgr.GetTranslation(ServerProperties.Properties.SERV_LANGUAGE, "Mid.StolenEggs.TalkToHyndla.Talk3"));
                    }
                    else if (wArgs.Text == LanguageMgr.GetTranslation(ServerProperties.Properties.SERV_LANGUAGE, "Mid.StolenEggs.TalkToHyndla.Whisper2"))
                    {
                        hyndla.SayTo(player, LanguageMgr.GetTranslation(ServerProperties.Properties.SERV_LANGUAGE, "Mid.StolenEggs.TalkToHyndla.Talk4", player.Name));
                        if (quest.Step == 1)
                        {
                            quest.Step = 2;
                            quest.initGrifflet();
                            quest.grifflet.AddToWorld();
                        }
                    }
                }
            }
        }
示例#15
0
        /* This is the method we declared as callback for the hooks we set to
         * NPC. It will be called whenever a player right clicks on NPC
         * or when he whispers something to him.
         */

        protected static void TalkToNob(DOLEvent e, object sender, EventArgs args)
        {
            // We get the player from the event arguments and check if he qualifies
            GamePlayer player = ((SourceEventArgs)args).Source as GamePlayer;

            if (player == null)
            {
                return;
            }

            if (masterFrederick.CanGiveQuest(typeof(IreFairyIre), player) <= 0)
            {
                return;
            }

            // We also check if the player is already doing the quest
            IreFairyIre quest = player.IsDoingQuest(typeof(IreFairyIre)) as IreFairyIre;

            nob.TurnTo(player);
            if (e == GameLivingEvent.WhisperReceive)
            {
                WhisperReceiveEventArgs wArgs = (WhisperReceiveEventArgs)args;
                if (quest != null)
                {
                    switch (wArgs.Text)
                    {
                    case "fairy":
                        nob.SayTo(player, "Ire fairies? Hrm...Now that you mention it, I do remember seeing some fairies heading off to a small grove behind the stable last night. There were a solid handful of them. They were carrying [something], I don't know what it was.");
                        break;

                    case "something":
                        nob.SayTo(player, "It looked heavy for them, whatever it was. Just head southeast from here and you'll find the grove. I hope you find what you're looking for.");
                        if (quest.Step == 2)
                        {
                            quest.Step = 3;
                            quest.initDragonflyHatchling();
                            quest.dragonflyHatchling.AddToWorld();
                        }

                        break;
                    }
                }
            }
        }
示例#16
0
        /* This is the method we declared as callback for the hooks we set to
         * Sir Quait. It will be called whenever a player right clicks on Sir Quait
         * or when he whispers something to him.
         */

        protected static void TalkToElvarTambor(DOLEvent e, object sender, EventArgs args)
        {
            // We get the player from the event arguments and check if he qualifies
            GamePlayer player = ((SourceEventArgs)args).Source as GamePlayer;

            if (player == null)
            {
                return;
            }

            // We also check if the player is already doing the quest
            YdeniasCrush quest = player.IsDoingQuest(typeof(YdeniasCrush)) as YdeniasCrush;

            elvarTambor.TurnTo(player);

            // The player whispered to NPC (clicked on the text inside the [])
            if (e == GameLivingEvent.WhisperReceive)
            {
                WhisperReceiveEventArgs wArgs = (WhisperReceiveEventArgs)args;
                if (quest != null)
                {
                    switch (wArgs.Text)
                    {
                    case "Cotswold":
                        elvarTambor.SayTo(player, "If you are traveling back that way, would you mind delivering this letter to Ydenia for me?  I would be ever so appreciative.");
                        if (quest.Step == 2)
                        {
                            player.GainExperience(GameLiving.eXPSource.Quest, 10, true);
                            long money = Money.GetMoney(0, 0, 0, 2, Util.Random(50));
                            player.AddMoney(money, "You are awarded 2 silver and some copper!");
                            InventoryLogging.LogInventoryAction("(QUEST;" + quest.Name + ")", player, eInventoryActionType.Quest, money);

                            // give letter
                            GiveItem(elvarTambor, player, letterToYdenia);

                            quest.Step = 3;
                        }

                        break;
                    }
                }
            }
        }
示例#17
0
        protected static void TalkToTaran(DOLEvent e, object sender, EventArgs args)
        {
            //We get the player from the event arguments and check if he qualifies
            GamePlayer player = ((SourceEventArgs)args).Source as GamePlayer;

            if (player == null)
            {
                return;
            }
            //We also check if the player is already doing the quest
            NyrasPackage quest = player.IsDoingQuest(typeof(NyrasPackage)) as NyrasPackage;

            Taran.TurnTo(player);
            //Did the player rightclick on Sir Quait?
            if (e == GameObjectEvent.Interact)
            {
                if (player.Inventory.GetFirstItemByID(SmallBoxforTaran.Id_nb, eInventorySlot.FirstBackpack, eInventorySlot.LastBackpack) != null)
                {
                    Taran.SayTo(player, "Welcome friend. What can I do for you today?");
                }
                else if (quest.Step == 2)
                {
                    Taran.SayTo(player, "Ah, the box I've been waiting for from Nyra. Thank you friend. If you'll wait just one second, I have a letter I'd like for you to take back to [her].");
                }
                return;
            }
            else if (e == GameLivingEvent.WhisperReceive)
            {
                WhisperReceiveEventArgs wArgs = (WhisperReceiveEventArgs)args;
                switch (wArgs.Text)
                {
                case "her":
                    Taran.SayTo(player, "Here you are, and a few silvers for your troubles. Good luck friend, and than you for the delivery.");
                    quest.Step = 3;
                    GiveItem(player, LettertoNyra, false);
                    player.GainExperience(GameLiving.eXPSource.Quest, 10, true);
                    break;
                }
            }
        }
        /* This is the method we declared as callback for the hooks we set to
         * Sir Quait. It will be called whenever a player right clicks on Sir Quait
         * or when he whispers something to him.
         */

        protected static void TalkTosentinelMoya(DOLEvent e, object sender, EventArgs args)
        {
            //We get the player from the event arguments and check if he qualifies
            GamePlayer player = ((SourceEventArgs)args).Source as GamePlayer;

            if (player == null)
            {
                return;
            }
            //We also check if the player is already doing the quest
            TheDevilsintheDetails quest = player.IsDoingQuest(typeof(TheDevilsintheDetails)) as TheDevilsintheDetails;

            sentinelMoya.TurnTo(player);
            //Did the player rightclick on Sir Quait?
            if (e == GameObjectEvent.Interact)
            {
                if (player.Inventory.GetFirstItemByID(boxTrain.Id_nb, eInventorySlot.FirstBackpack, eInventorySlot.LastBackpack) != null)
                {
                    sentinelMoya.SayTo(player, "Greetings, Guardian. What brings you to Ardee [today]?");
                }
                else
                {
                    sentinelMoya.SayTo(player, "Hello, how are you?");
                }
                return;
            }
            else if (e == GameLivingEvent.WhisperReceive)
            {
                WhisperReceiveEventArgs wArgs = (WhisperReceiveEventArgs)args;
                switch (wArgs.Text)
                {
                case "today":
                    RemoveItem(sentinelMoya, player, boxTrain);
                    sentinelMoya.SayTo(player, "Thank you so much! When you return to Mag Mell, please give Sentinel Maitias my thanks as well. I'm looking forward to training more of Hibernia's Sentinels. Take care!");
                    quest.Step = 2;
                    break;
                }
            }
        }
示例#19
0
        /* This is the method we declared as callback for the hooks we set to
         * Sir Quait. It will be called whenever a player right clicks on Sir Quait
         * or when he whispers something to him.
         */

        protected static void TalkToBrotherDon(DOLEvent e, object sender, EventArgs args)
        {
            // We get the player from the event arguments and check if he qualifies
            GamePlayer player = ((SourceEventArgs)args).Source as GamePlayer;

            if (player == null)
            {
                return;
            }

            // Did the player rightclick on Sir Quait?
            if (e == GameObjectEvent.Interact)
            {
                // If the player qualifies, we begin talking...
                if (player.Inventory.GetFirstItemByID(wolfPeltCloak.Id_nb, eInventorySlot.FirstBackpack, eInventorySlot.LastBackpack) != null)
                {
                    don.SayTo(player, "Hail! You don't perhaps have one of those fine wolf pelt cloaks? If you no longer have need of it, we could greatly use it at the [orphanage].");
                }

                return;
            }

            // The player whispered to Sir Quait (clicked on the text inside the [])
            else if (e == GameLivingEvent.WhisperReceive)
            {
                WhisperReceiveEventArgs wArgs = (WhisperReceiveEventArgs)args;
                switch (wArgs.Text)
                {
                case "orphanage":
                    don.SayTo(player, "Why yes, the little ones can get an awful chill during the long cold nights, so the orphanage could use a good [donation] of wolf cloaks. I would take any that you have.");
                    break;

                case "donation":
                    don.SayTo(player, "Do you want to donate your cloak?");      // TODO : Seems not ended
                    break;
                }
            }
        }
示例#20
0
        /* This is the method we declared as callback for the hooks we set to
         * NPC. It will be called whenever a player right clicks on NPC
         * or when he whispers something to him.
         */

        protected static void TalkToFarmerAsma(DOLEvent e, object sender, EventArgs args)
        {
            //We get the player from the event arguments and check if he qualifies
            GamePlayer player = ((SourceEventArgs)args).Source as GamePlayer;

            if (player == null)
            {
                return;
            }

            if (farmerAsma.CanGiveQuest(typeof(GreenerPastures), player) <= 0)
            {
                return;
            }

            //We also check if the player is already doing the quest
            GreenerPastures quest = player.IsDoingQuest(typeof(GreenerPastures)) as GreenerPastures;

            farmerAsma.TurnTo(player);
            //Did the player rightclick on NPC?
            if (e == GameObjectEvent.Interact)
            {
                if (quest == null)
                {
                    //Player is not doing the quest...
                    farmerAsma.SayTo(player, "Good night. I wish I had time to talk, " + player.CharacterClass.Name + ", but I'm in the process of trying to find a new field to lease. I'd like to return to my life as a farmer. It's not that Cotswold isn't a nice village, but I feel more at home in the [field].");
                    return;
                }
                else
                {
                    if (quest.Step == 4)
                    {
                        farmerAsma.SayTo(player, "Ah, you've returned. I hope you were able to find the fields without too much difficulty. I'm still learning my way around the area.  Which field would you recommend renting?");
                        SendMessage(player, "[I'd recommend the first field.]", 0, eChatType.CT_Say, eChatLoc.CL_PopupWindow);
                        SendMessage(player, "[The second field is best.]", 0, eChatType.CT_Say, eChatLoc.CL_PopupWindow);
                        SendMessage(player, "[You should rent the third one.]", 0, eChatType.CT_Say, eChatLoc.CL_PopupWindow);
                    }
                    return;
                }
            }
            // The player whispered to NPC (clicked on the text inside the [])
            else if (e == GameLivingEvent.WhisperReceive)
            {
                WhisperReceiveEventArgs wArgs = (WhisperReceiveEventArgs)args;
                if (quest == null)
                {
                    //Do some small talk :)
                    switch (wArgs.Text)
                    {
                    case "field":
                        farmerAsma.SayTo(player, "Ah, yes, Camelot Hills, where the wind comes sweepin' down the plain, and the wavin' barley can sure smell sweet when the wind comes right behind the rain. I have a lead on some fields that are up for lease, but I don't have time to [check them out].");
                        break;

                    case "check them out":
                        farmerAsma.SayTo(player, "Would you be willing to take a look at these fields for me and let me know if you think they are worth leasing?");
                        //If the player offered his help, we send the quest dialog now!
                        player.Out.SendQuestSubscribeCommand(farmerAsma, QuestMgr.GetIDForQuestType(typeof(GreenerPastures)), "Will you help Farmer Asma \nsearch for new farmland?\n[Level 2-5]");
                        break;
                    }
                }
                else
                {
                    switch (wArgs.Text)
                    {
                    case "them":
                        if (quest.Step < 4)
                        {
                            farmerAsma.SayTo(player, "When you're done taking a look at the fields, please return to me and let me know what you saw.");
                        }
                        break;

                    case "I'd recommend the first field.":
                    case "The second field is best.":
                    case "You should rent the third one.":
                        if (quest.Step == 4)
                        {
                            farmerAsma.SayTo(player, "Excellent. I'll speak to the owner tomorrow. May I have the map back?");
                        }
                        break;

                    case "abort":
                        player.Out.SendCustomDialog("Do you really want to abort this quest, \nall items gained during quest will be lost?", new CustomDialogResponse(CheckPlayerAbortQuest));
                        break;
                    }
                }
            }
        }
示例#21
0
        /* This is the method we declared as callback for the hooks we set to
         * NPC. It will be called whenever a player right clicks on NPC
         * or when he whispers something to him.
         */

        protected static void TalkToDalikor(DOLEvent e, object sender, EventArgs args)
        {
            // We get the player from the event arguments and check if he qualifies
            GamePlayer player = ((SourceEventArgs)args).Source as GamePlayer;

            if (player == null)
            {
                return;
            }

            if (dalikor.CanGiveQuest(typeof(TraitorInMularn), player) <= 0)
            {
                return;
            }

            // We also check if the player is already doing the quest
            TraitorInMularn quest = player.IsDoingQuest(typeof(TraitorInMularn)) as TraitorInMularn;

            dalikor.TurnTo(player);

            // Did the player rightclick on NPC?
            if (e == GameObjectEvent.Interact)
            {
                if (quest == null)
                {
                    // Player is not doing the quest...
                    dalikor.SayTo(player, "Recruit Eeinken. It seems as though we have caught a traitor within the walls of Mularn! A man by the name of Njarmir has been conspiring with the Askefruer. He has recently told us of a [meeting] he was to have with them.");
                    return;
                }
                else
                {
                    switch (quest.Step)
                    {
                    case 1:
                        dalikor.SayTo(player, "Thank you recruit. Now, listen. The traitor has a necklace that allows him to change into the shape of an Askefruer. He says it makes them more comfortable with him. I [have] the necklace with me.");
                        break;

                    case 2:
                    case 3:
                        dalikor.SayTo(player, "The traitor described the location as a place between to the north-northeast from the griffin handler, near some small pine trees. I'm sorry there isn't more to go on, but that is all I have. Hurry now Eeinken.");
                        break;

                    case 4:
                        dalikor.SayTo(player, "Welcome back recruit. Have you met with success? Were you able to secure any information from the Askefruer?");
                        break;

                    case 5:
                        dalikor.SayTo(player, "Ah! The plans of the Askefruer. Ah, but they are in a language I do not understand. I will have to take this to the elders of Mularn for further study. Before I do that, though, I have [something] here for you.");
                        break;
                    }

                    return;
                }
            }

            // The player whispered to NPC (clicked on the text inside the [])
            else if (e == GameLivingEvent.WhisperReceive)
            {
                WhisperReceiveEventArgs wArgs = (WhisperReceiveEventArgs)args;
                if (quest == null)
                {
                    // Do some small talk :)
                    switch (wArgs.Text)
                    {
                    case "meeting":
                        dalikor.SayTo(player, "He was to get further instructions from the Askefruer about his mission to help their queen. Now that he is in custody, we need to be sure we do not tip our hand to the Askefruer too quickly. I am asking you to go in his [stead].");
                        break;

                    case "stead":
                        dalikor.SayTo(player, "Will you do this for Mularn Eeinken? Will you go in this traitor's place and get the [information] we need to stop the Askefruer from continuing to make trouble for us?");
                        break;

                    // If the player offered his "help", we send the quest dialog now!
                    case "information":
                        player.Out.SendQuestSubscribeCommand(dalikor, QuestMgr.GetIDForQuestType(typeof(TraitorInMularn)), "Will you help Mularn by taking on this vital mission?");
                        break;
                    }
                }
                else
                {
                    switch (wArgs.Text)
                    {
                    case "have":
                        dalikor.SayTo(player, "The traitor described the location as a place between to the north-northeast from the griffin handler, near some small pine trees. I'm sorry there isn't more to go on, but that is all I have. Hurry now Eeinken.");
                        if (quest.Step == 1)
                        {
                            quest.Step = 2;
                        }

                        break;

                    // step 5
                    case "something":
                        dalikor.SayTo(player, "You did such an excellent job going to the meeting and posing as an Askefruer that I have this for you. It isn't much, but it will help to protect you from the elements. Now, if you'll excuse me, I must be off to speak with the elders.");
                        if (quest.Step == 5)
                        {
                            quest.FinishQuest();
                        }

                        break;

                    case "abort":
                        player.Out.SendCustomDialog("Do you really want to abort this quest, \nall items gained during quest will be lost?", new CustomDialogResponse(CheckPlayerAbortQuest));
                        break;
                    }
                }
            }
        }
示例#22
0
        /* This is the method we declared as callback for the hooks we set to
         * NPC. It will be called whenever a player right clicks on NPC
         * or when he whispers something to him.
         */

        protected static void TalkToAddrir(DOLEvent e, object sender, EventArgs args)
        {
            // We get the player from the event arguments and check if he qualifies
            GamePlayer player = ((SourceEventArgs)args).Source as GamePlayer;

            if (player == null)
            {
                return;
            }

            if (addrir.CanGiveQuest(typeof(TraitorInMagMell), player) <= 0)
            {
                return;
            }

            // We also check if the player is already doing the quest
            TraitorInMagMell quest = player.IsDoingQuest(typeof(TraitorInMagMell)) as TraitorInMagMell;

            addrir.TurnTo(player);

            // Did the player rightclick on NPC?
            if (e == GameObjectEvent.Interact)
            {
                if (quest == null)
                {
                    // Player is not doing the quest...
                    addrir.SayTo(player, "Lirone, this Sluagh problem has its roots deeper into Mag Mell than I originally thought! We have apprehended a [traitor]!");
                    return;
                }
                else
                {
                    switch (quest.Step)
                    {
                    case 1:
                        addrir.SayTo(player, "Go west from Mag Mell towards Tir na Nog. You will come to the base of the foot hills. Head southwest-south along the base of the hills. The necklace will alert you when you are in the correct place. Hurry now. Time is wasting.");
                        break;

                    case 4:
                        addrir.SayTo(player, "Vinde, you've returned. I'm sure you were successful with your mission. Come come my friend. Hand over the information.");
                        break;

                    case 5:
                        addrir.SayTo(player, "For you, a nice pair of boots to help keep your feet dry and clean. Thank you again for the help you've given me in this matter Lirone. I shall report this to Fagan at once.");
                        if (quest.Step == 5)
                        {
                            quest.FinishQuest();
                        }

                        break;
                    }

                    return;
                }
            }

            // The player whispered to NPC (clicked on the text inside the [])
            else if (e == GameLivingEvent.WhisperReceive)
            {
                WhisperReceiveEventArgs wArgs = (WhisperReceiveEventArgs)args;
                if (quest == null)
                {
                    // Do some small talk :)
                    switch (wArgs.Text)
                    {
                    // case "ire fairies": SendReply(player,"I managed to have a little chat with some of the guardsmen, and it turns out there is a [traitor] here in Cotswold!"); break;
                    case "traitor":
                        addrir.SayTo(player, "Aye Lirone. I could scarcely believe my ears when I heard the news. A man by the name of Samyr has been in [league] with the Sluagh for a while now.");
                        break;

                    case "league":
                        addrir.SayTo(player, "Samyr has given up some information, but not nearly as much as we hoped for. Fagan has asked me to recruit anyone I could to help deal with this problem. Are you up for the [challenge] Lirone?");
                        break;

                    // If the player offered his "help", we send the quest dialog now!
                    case "challenge":
                        player.Out.SendQuestSubscribeCommand(addrir, QuestMgr.GetIDForQuestType(typeof(TraitorInMagMell)), "Will you help Mag Mell by taking on this vital mission?");
                        break;
                    }
                }
                else
                {
                    switch (wArgs.Text)
                    {
                    case "necklace":
                        addrir.SayTo(player, "Aye. I am giving it to you to use for this meeting. You will not have to say anything, or so Samyr says. Just go to the [meeting location], use the necklace and wait for the Sluagh.");
                        break;

                    case "meeting location":
                        addrir.SayTo(player, "Go west from Mag Mell towards Tir na Nog. You will come to the base of the foot hills. Head southwest-south along the base of the hills. Hurry now. Time is wasting.");
                        if (quest.Step == 1)
                        {
                            quest.Step = 2;
                        }

                        break;

                    // step 5
                    case "reward":
                        addrir.SayTo(player, "For you, a nice pair of boots to help keep your feet dry and clean. Thank you again for the help you've given me in this matter Lirone. I shall report this to Fagan at once.");
                        if (quest.Step == 5)
                        {
                            quest.FinishQuest();
                        }

                        break;

                    case "abort":
                        player.Out.SendCustomDialog("Do you really want to abort this quest, \nall items gained during quest will be lost?", new CustomDialogResponse(CheckPlayerAbortQuest));
                        break;
                    }
                }
            }
        }
        /* This is the method we declared as callback for the hooks we set to
         * Sir Quait. It will be called whenever a player right clicks on Sir Quait
         * or when he whispers something to him.
         */

        protected static void TalkTosentinelMaitias(DOLEvent e, object sender, EventArgs args)
        {
            //We get the player from the event arguments and check if he qualifies
            GamePlayer player = ((SourceEventArgs)args).Source as GamePlayer;

            if (player == null)
            {
                return;
            }

            if (sentinelMaitias.CanGiveQuest(typeof(TheDevilsintheDetails), player) <= 0)
            {
                return;
            }

            //We also check if the player is already doing the quest
            TheDevilsintheDetails quest = player.IsDoingQuest(typeof(TheDevilsintheDetails)) as TheDevilsintheDetails;

            sentinelMaitias.TurnTo(player);
            //Did the player rightclick on Sir Quait?
            if (e == GameObjectEvent.Interact)
            {
                //We check if the player is already doing the quest
                if (quest != null)
                {
                    //If the player is already doing the quest, we ask if he found the fur!
                    if (player.Inventory.GetFirstItemByID(boxTrain.Id_nb, eInventorySlot.FirstBackpack, eInventorySlot.LastBackpack) != null)
                    {
                        sentinelMaitias.SayTo(player, "Excellent. This crate of supplies must be delivered to my counterpart in Ardee, Sentinel Moya. The town is just a bit to the north, along the road. Without these new training swords, Moya would have difficulty drilling her recruits.");
                    }
                    else
                    {
                        sentinelMaitias.SayTo(player, "I see that you've returned. Did Sentinel Moya receive the supplies in [time]?");
                    }
                    return;
                }
                else
                {
                    sentinelMaitias.SayTo(player, "Good day to you, Guardian. Forgive me if I appear distracted, but my duties are many these days, and my staff keeps shrinking. In times past, Mag Mell formed the center of a vibrant elven community in Hibernia. Fagan dreams of [recreating] those days.");
                    return;
                }
            }
            // The player whispered to Sir Quait (clicked on the text inside the [])
            else if (e == GameLivingEvent.WhisperReceive)
            {
                WhisperReceiveEventArgs wArgs = (WhisperReceiveEventArgs)args;

                //We also check if the player is already doing the quest
                if (quest == null)
                {
                    switch (wArgs.Text)
                    {
                    case "recreating":
                        sentinelMaitias.SayTo(player, "I don't blame him for being ambitious. Fagan has lived through tumultuous times and wants the best for his people, but I think that sometimes he focuses too much on the big picture. As a result, it falls to me to keep Mag Mell running on a daily [basis].");
                        break;

                    case "basis":
                        sentinelMaitias.SayTo(player, "There should be some around the area of this village, take a look near the road to Camelot. Kill any wolf pups you can find, and bring me its fur.");
                        player.Out.SendQuestSubscribeCommand(sentinelMaitias, QuestMgr.GetIDForQuestType(typeof(TheDevilsintheDetails)), "Do you accept The Devil's in the Details quest?");
                        break;
                    }
                }
                else
                {
                    switch (wArgs.Text)
                    {
                    case "abort":
                        player.Out.SendCustomDialog("Do you really want to abort this quest, \nall items gained during quest will be lost?", new CustomDialogResponse(CheckPlayerAbortQuest));
                        break;

                    case "time":
                        sentinelMaitias.SayTo(player, "Thank you for taking care of that so quickly. Please take this coin as a reward for your efforts and perhaps we can work together again in the future. Be well.");
                        quest.FinishQuest();
                        break;
                    }
                }
            }
        }
示例#24
0
文件: Seer50.cs 项目: towbes/DOLSharp
        protected static void TalkToInaksha(DOLEvent e, object sender, EventArgs args)
        {
            //We get the player from the event arguments and check if he qualifies
            GamePlayer player = ((SourceEventArgs)args).Source as GamePlayer;

            if (player == null)
            {
                return;
            }

            if (Inaksha.CanGiveQuest(typeof(Seer_50), player) <= 0)
            {
                return;
            }

            //We also check if the player is already doing the quest
            Seer_50 quest = player.IsDoingQuest(typeof(Seer_50)) as Seer_50;

            if (e == GameObjectEvent.Interact)
            {
                // Nag to finish quest
                if (quest != null)
                {
                    Inaksha.SayTo(player, "Check your Journal for instructions!");
                }
                else
                {
                    Inaksha.SayTo(player, "Midgard needs your [services]");
                }
            }
            // The player whispered to the NPC
            else if (e == GameLivingEvent.WhisperReceive)
            {
                WhisperReceiveEventArgs wArgs = (WhisperReceiveEventArgs)args;
                //Check player is already doing quest
                if (quest == null)
                {
                    switch (wArgs.Text)
                    {
                    case "services":
                        player.Out.SendQuestSubscribeCommand(Inaksha, QuestMgr.GetIDForQuestType(typeof(Seer_50)), "Will you help Inaksha [Seer Level 50 Epic]?");
                        break;
                    }
                }
                else
                {
                    switch (wArgs.Text)
                    {
                    case "dead":
                        if (quest.Step == 3)
                        {
                            Inaksha.SayTo(player, "Take this sealed pouch to Miri in Jordheim for your reward!");
                            GiveItem(Inaksha, player, sealed_pouch);
                            quest.Step = 4;
                        }
                        break;

                    case "abort":
                        player.Out.SendCustomDialog("Do you really want to abort this quest, \nall items gained during quest will be lost?", new CustomDialogResponse(CheckPlayerAbortQuest));
                        break;
                    }
                }
            }
        }
示例#25
0
        /* This is the method we declared as callback for the hooks we set to
         * Sir Quait. It will be called whenever a player right clicks on Sir Quait
         * or when he whispers something to him.
         */

        protected static void TalkToArgusBowman(DOLEvent e, object sender, EventArgs args)
        {
            // We get the player from the event arguments and check if he qualifies
            GamePlayer player = ((SourceEventArgs)args).Source as GamePlayer;

            if (player == null)
            {
                return;
            }

            if (argusBowman.CanGiveQuest(typeof(ArgussArrows), player) <= 0)
            {
                return;
            }

            // We also check if the player is already doing the quest
            ArgussArrows quest = player.IsDoingQuest(typeof(ArgussArrows)) as ArgussArrows;

            argusBowman.TurnTo(player);

            // Did the player rightclick on argusBowman?
            if (e == GameObjectEvent.Interact)
            {
                // We check if the player is already doing the quest
                if (quest != null)
                {
                    if (quest.Step == 3)
                    {
                        argusBowman.SayTo(player, "Welcome back. Did you have any luck?");
                    }
                    else if (quest.Step == 4)
                    {
                        argusBowman.SayTo(player, "Excellent! Did you get anymore wood?");
                    }
                    else if (quest.Step == 5)
                    {
                        argusBowman.SayTo(player, "Excellent! This will do nicely. Now wait, I have a [reward] for you somewhere around here.");
                    }

                    return;
                }
                else
                {
                    // Player hasn't the quest:
                    argusBowman.SayTo(player, "Welcome to my shop friend. I don't suppose you're here about the [job], are you?");
                    return;
                }
            }

            // The player whispered to Sir Jerem (clicked on the text inside the [])
            else if (e == GameLivingEvent.WhisperReceive)
            {
                WhisperReceiveEventArgs wArgs = (WhisperReceiveEventArgs)args;

                // We also check if the player is already doing the quest
                if (quest == null)
                {
                    switch (wArgs.Text)
                    {
                    case "job":
                        argusBowman.SayTo(player, "Oh, I thought maybe all the money I paid to the criers had paid off. Anyhow, let me [tell] you about the job I have.");
                        break;

                    case "tell":
                        argusBowman.SayTo(player, "I am on the verge of making a new type of arrow, lighter, faster and more deadly than any other arrow ever made. The only problem is that I can't get a hold of anymore of the wood I need. You see, it's [magical].");
                        break;

                    case "magical":
                        argusBowman.SayTo(player, "The young cutpurses on the south-east hill are cutting down the last of the magical trees that reside around these parts. Ludlow didn't even know they were magical until a [sample] was brought in by another adventurer.");
                        break;

                    case "sample":
                        argusBowman.SayTo(player, "I whittled on it for a while and made it into an arrow. I shot it and it went so far, I was, frankly, astonished. I ran towards where I had lost sight of it and finally found it. Normally, you can't recover arrows, but this one was [perfect].");
                        break;

                    case "perfect":
                        argusBowman.SayTo(player, "It wasn't bent or cracked or anything! I guess now you know why I want more of that wood! So, if you go and kill a few of those cutpurses and get me a good solid stack of the wood, I'll reward you. You [up] for it?");
                        break;

                    case "up":
                        player.Out.SendQuestSubscribeCommand(argusBowman, QuestMgr.GetIDForQuestType(typeof(ArgussArrows)), "Will you help Argus in his quest to make a new type of arrow? [Level 4]");
                        break;
                    }
                }
                else
                {
                    switch (wArgs.Text)
                    {
                    case "abort":
                        player.Out.SendCustomDialog("Do you really want to abort this quest?", new CustomDialogResponse(CheckPlayerAbortQuest));
                        break;

                    case "reward":
                        if (quest.Step == 5)
                        {
                            argusBowman.SayTo(player, "Ah yes. For the brave adventurer, I have this jewel I got in trade one time. I have never had a use for it, so I think you'll find it more useful than I. Good luck my friend. I'll be sure to let you know when my arrows are available.");
                            quest.FinishQuest();
                        }

                        break;
                    }
                }
            }
        }
示例#26
0
        /* This is the method we declared as callback for the hooks we set to
         * NPC. It will be called whenever a player right clicks on NPC
         * or when he whispers something to him.
         */

        protected static void TalkToSirJerem(DOLEvent e, object sender, EventArgs args)
        {
            //We get the player from the event arguments and check if he qualifies
            GamePlayer player = ((SourceEventArgs)args).Source as GamePlayer;

            if (player == null)
            {
                return;
            }

            if (sirJerem.CanGiveQuest(typeof(ShakenSquire), player) <= 0)
            {
                return;
            }

            //We also check if the player is already doing the quest
            ShakenSquire quest = player.IsDoingQuest(typeof(ShakenSquire)) as ShakenSquire;

            sirJerem.TurnTo(player);
            //Did the player rightclick on NPC?
            if (e == GameObjectEvent.Interact)
            {
                if (quest == null)
                {
                    //Player is not doing the quest...
                    sirJerem.SayTo(player, "Good day, " + player.CharacterClass.Name + ".  I'm sorry that I can't spare much time for idle chatter, but I've got a number of things on my mind right now.  Keeping track of a keep full of squires certainly isn't easy [work].");
                    return;
                }
                else
                {
                    if (quest.Step == 4)
                    {
                        sirJerem.SayTo(player, "Ah, you've returned. Were you able to track down Squire [Galune]?");
                    }
                    return;
                }
            }
            // The player whispered to NPC (clicked on the text inside the [])
            else if (e == GameLivingEvent.WhisperReceive)
            {
                WhisperReceiveEventArgs wArgs = (WhisperReceiveEventArgs)args;
                if (quest == null)
                {
                    //Do some small talk :)
                    switch (wArgs.Text)
                    {
                    case "work":
                        sirJerem.SayTo(player, "They're good lads, mostly, but they tend to get a little overeager at times.  In fact, one of my youngest squires has gone missing. I suspect he heard rumors from the locals and went to [investigate] them.");
                        break;

                    //If the player offered his help, we send the quest dialog now!
                    case "investigate":
                        sirJerem.SayTo(player, "This happens every time we get a new squire. The merchants fill his head with nonsense about becoming a hero and then the boy goes off exploring and gets himself into trouble.  Will you help me locate my missing squire?");
                        player.Out.SendQuestSubscribeCommand(sirJerem, QuestMgr.GetIDForQuestType(typeof(ShakenSquire)), "Will you help Sir Jerem find \nthe missing squire? \n[Levels 6-9]");
                        break;
                    }
                }
                else
                {
                    switch (wArgs.Text)
                    {
                    case "once":
                        if (quest.Step == 1)
                        {
                            sirJerem.SayTo(player, "I think Graent envies them, in a way. The squires are still young enough to have a bright-eyed enthusiasm for exploration and danger, and he feeds that with his stories.  I think the Tomb of Mithra is probably the best place to start your [search].");
                        }
                        break;

                    case "search":
                        if (quest.Step == 1)
                        {
                            sirJerem.SayTo(player, "The Tomb can be found to the east of here, past the bridge, and across the road.  If you need help finding it, don't forget that you can always consult your map. The name of the squire you're looking for is Galune. Good luck.");
                            quest.Step = 2;
                        }
                        break;

                    case "Galune":
                        if (quest.Step == 4)
                        {
                            SendMessage(player, "You tell Sir Jerem that you found Squire Galune in the Tomb, and that he is making his way back to the keep.  You decide not to mention the spider, but you get the sense that Sir Jerem will find out anyway.", 0, eChatType.CT_Say, eChatLoc.CL_PopupWindow);
                            sirJerem.SayTo(player, "I'm glad to hear that you found the squire before he got himself into too much trouble. Most likely, he fainted at the sight of some rat or spider, and decided to wait for someone to [rescue him].");
                        }
                        break;

                    case "rescue him":
                        if (quest.Step == 4)
                        {
                            sirJerem.SayTo(player, "I won't give him too much trouble over it. I have a feeling that he's learned a good lesson from all of this and won't be nearly so adventurous in the future. Here's a bit of money for your efforts.");
                            quest.FinishQuest();
                        }
                        break;

                    case "abort":
                        player.Out.SendCustomDialog("Do you really want to abort this quest, \nall items gained during quest will be lost?", new CustomDialogResponse(CheckPlayerAbortQuest));
                        break;
                    }
                }
            }
        }
示例#27
0
        /* This is the method we declared as callback for the hooks we set to
         * NPC. It will be called whenever a player right clicks on NPC
         * or when he whispers something to him.
         */

        protected static void TalkToEowylnAstos(DOLEvent e, object sender, EventArgs args)
        {
            // We get the player from the event arguments and check if he qualifies
            GamePlayer player = ((SourceEventArgs)args).Source as GamePlayer;

            if (player == null)
            {
                return;
            }

            if (eowylnAstos.CanGiveQuest(typeof(HeartOfSephucoth), player) <= 0)
            {
                return;
            }

            // We also check if the player is already doing the quest
            HeartOfSephucoth quest = player.IsDoingQuest(typeof(HeartOfSephucoth)) as HeartOfSephucoth;

            eowylnAstos.TurnTo(player);

            // Did the player rightclick on NPC?
            if (e == GameObjectEvent.Interact)
            {
                if (quest == null)
                {
                    // Player is not doing the quest...
                    eowylnAstos.SayTo(player, "Hail traveler! I may have a bit of [profitable information] for you!");
                    return;
                }
                else
                {
                    switch (quest.Step)
                    {
                    case 1:
                        eowylnAstos.SayTo(player, "You must seek out the monster Sephucoth! Slay it and bring me its heart!");
                        break;

                    case 2:
                        eowylnAstos.SayTo(player, "Hand to me the heart needed for this construct.");
                        break;

                    case 4:
                        eowylnAstos.SayTo(player, "Hand to me the polished bone needed for this construct.");
                        break;
                    }
                }
            }

            // The player whispered to NPC (clicked on the text inside the [])
            else if (e == GameLivingEvent.WhisperReceive)
            {
                WhisperReceiveEventArgs wArgs = (WhisperReceiveEventArgs)args;
                if (quest == null)
                {
                    // Do some small talk :)
                    switch (wArgs.Text)
                    {
                    case "profitable information":
                        eowylnAstos.SayTo(player, "I have learned how to [fashion a pendant] of immense value.");
                        break;

                    case "fashion a pendant":
                        eowylnAstos.SayTo(player, "I can do so, but I would require the heart from a [terrible beast].");
                        break;

                    // If the player offered his help, we send the quest dialog now!
                    case "terrible beast":
                        player.Out.SendQuestSubscribeCommand(eowylnAstos, QuestMgr.GetIDForQuestType(typeof(HeartOfSephucoth)), "Do you accept the \nHeart of Sephucoth quest? \n[Levels 7-10]");
                        break;
                    }
                }
                else
                {
                    switch (wArgs.Text)
                    {
                    case "abort":
                        player.Out.SendCustomDialog("Do you really want to abort this quest, \nall items gained during quest will be lost?", new CustomDialogResponse(CheckPlayerAbortQuest));
                        break;
                    }
                }
            }
        }
示例#28
0
        /* This is the method we declared as callback for the hooks we set to
         * NPC. It will be called whenever a player right clicks on NPC
         * or when he whispers something to him.
         */

        protected static void TalkToDalikor(DOLEvent e, object sender, EventArgs args)
        {
            //We get the player from the event arguments and check if he qualifies
            GamePlayer player = ((SourceEventArgs)args).Source as GamePlayer;

            if (player == null)
            {
                return;
            }

            if (dalikor.CanGiveQuest(typeof(Collection), player) <= 0)
            {
                return;
            }

            //We also check if the player is already doing the quest
            Collection quest = player.IsDoingQuest(typeof(Collection)) as Collection;

            dalikor.TurnTo(player);

            //Did the player rightclick on NPC?
            if (e == GameObjectEvent.Interact)
            {
                if (quest == null)
                {
                    //Player is not doing the quest...
                    dalikor.SayTo(player, "Recruit, we have received further intelligence that the Askefruer are trying to [make a move] on Mularn.");
                    return;
                }
                else
                {
                    switch (quest.Step)
                    {
                    case 1:
                        dalikor.SayTo(player, "Alright recruit, we haven't much time. Njarmir was unsure of exactly when the Askefruer would be sending their troops to these locations. I have a [map] that will assist you in finding these areas.");
                        break;

                    case 5:
                        dalikor.SayTo(player, "Eeinken, you've returned safely. If you have successfully defeated the Askefruer, please, hand their wings to me.");
                        quest.Step = 6;
                        break;

                    case 9:
                        dalikor.SayTo(player, "These sleeves will come in handy while you're out fighting. A Viking is always in need of sturdy armor to protect his somewhat fragile hide as he battles the enemies of his realm. Thank you again for your assistance in this matter. Be safe.");
                        quest.FinishQuest();
                        break;
                    }
                    return;
                }
            }
            // The player whispered to NPC (clicked on the text inside the [])
            else if (e == GameLivingEvent.WhisperReceive)
            {
                WhisperReceiveEventArgs wArgs = (WhisperReceiveEventArgs)args;
                if (quest == null)
                {
                    //Do some small talk :)
                    switch (wArgs.Text)
                    {
                    case "make a move":
                        dalikor.SayTo(player, "There are three prominent Askefruer generals, so to speak, within the Askefruer community. Their names are Mitan, Ostadi and Seiki. They are rumored to be very successful [military leaders] within the Askefruer.");
                        break;

                    case "military leaders":
                        dalikor.SayTo(player, "We got all of this information from the traitor we caught a few days ago. We have been leaning on him for more information, and he finally cracked and told us all he knew. But we can't allow the Askefruer to make a multi-frontal [attack].");
                        break;

                    case "attack":
                        dalikor.SayTo(player, "Njarmir has said these three Askefruer have not yet received their troops. They have scouted out their locations and are awaiting for others to come to them. I believe this is the perfect time to [strike].");
                        break;

                    case "strike":
                        dalikor.SayTo(player, "If we can take down these leaders, the Askefruer will be signifigantly weakened. Perhaps it will stave off any future attacks. I'm asking you, Eeinken, to find these three Askefruer and destroy them. Will you [do it]?");
                        break;

                    //If the player offered his "help", we send the quest dialog now!
                    case "do it":
                        player.Out.SendQuestSubscribeCommand(dalikor, QuestMgr.GetIDForQuestType(typeof(Collection)), "Will you find and slay these three Fallen Askefruer and return their wings to Dalikor?");
                        break;
                    }
                }
                else
                {
                    switch (wArgs.Text)
                    {
                    case "map":
                        dalikor.SayTo(player, "Njarmir has provided us with a rough location of where he thinks the Askefruer are. He is not one hundred percent certain though, so you will need to do most of the searching on your own. USE the map from time to time to help you find these hidden camps. Remember, slay the Askefruer there. If you can, get their wings as proof of their demise. Be swift Eeinken. There isn't much time.");
                        if (quest.Step == 1)
                        {
                            GiveItem(dalikor, player, dustyOldMap);
                            quest.Step = 2;
                        }
                        break;

                    case "reward":
                        dalikor.SayTo(player, "These sleeves will come in handy while you're out fighting. A Viking is always in need of sturdy armor to protect his somewhat fragile hide as he battles the enemies of his realm. Thank you again for your assistance in this matter. Be safe.");
                        if (quest.Step == 9)
                        {
                            quest.FinishQuest();
                        }
                        break;

                    case "abort":
                        player.Out.SendCustomDialog("Do you really want to abort this quest, \nall items gained during quest will be lost?", new CustomDialogResponse(CheckPlayerAbortQuest));
                        break;
                    }
                }
            }
        }
示例#29
0
        protected static void TalkToGuardAlakyrr(DOLEvent e, object sender, EventArgs args)
        {
            GamePlayer player = ((SourceEventArgs)args).Source as GamePlayer;

            if (player == null)
            {
                return;
            }

            if (GuardAlakyrr.CanGiveQuest(typeof(AidingGuardAlakyrr), player) <= 0)
            {
                return;
            }

            AidingGuardAlakyrr quest = player.IsDoingQuest(typeof(AidingGuardAlakyrr)) as AidingGuardAlakyrr;

            GuardAlakyrr.TurnTo(player);
            if (e == GameObjectEvent.Interact)
            {
                if (quest == null)
                {
                    GuardAlakyrr.SayTo(player, "You are new to this area aren't you? Yes, you look to be one of those from upper Albion. You will find that this lower realm is not as [familiar] as upper Albion and your Camelot.");
                    return;
                }
                else
                {
                    if (quest.Step == 1)
                    {
                        if (e == GameLivingEvent.WhisperReceive)
                        {
                            WhisperReceiveEventArgs wArgs = (WhisperReceiveEventArgs)args;
                            switch (wArgs.Text)
                            {
                            case "study":

                                GuardAlakyrr.SayTo(player, "You will need to slay tenebrae and then use an enchanted Tenebrous Flask, while inside the Tenebrous Quarter, to capture their essence. I need you to obtain a full flask of Tenebrous Essence. Return to me once you complete this duty and I will reward you for your efforts.");
                                quest.Step = 2;
                                break;
                            }
                        }
                    }
                    if (quest.Step == 10)
                    {
                        GuardAlakyrr.SayTo(player, "It was Arawn's will to allow your return. I am grateful that you made it back. Please give me the Full Flask of Tenebrous Essence.");
                        quest.Step = 11;
                    }
                    return;
                }
            }
            else if (e == GameLivingEvent.WhisperReceive)
            {
                WhisperReceiveEventArgs wArgs = (WhisperReceiveEventArgs)args;
                if (quest == null)
                {
                    switch (wArgs.Text)
                    {
                    case "familiar":
                        GuardAlakyrr.SayTo(player, "Everything here is quite unlike upper Albion, from the surroundings to the creatures. We, the chosen of Arawn, are not even familiar with some of the [creatures] which lurk in the Aqueducts.");
                        break;

                    case "creatures":
                        GuardAlakyrr.SayTo(player, "We have been trying to study some of these creatures so that we can learn more of their origins to better defend ourselves. Our forces are spread thin with the war against the evil army being [waged] below.");
                        break;

                    case "waged":
                        GuardAlakyrr.SayTo(player, "We have not had enough troops to spare to help us combat some of these hostile beings. The [tenebrae] are some of these creatures.");
                        break;

                    case "tenebrae":
                        GuardAlakyrr.SayTo(player, "They seem to hate all that is living, and it is an intense hate, indeed. Their origins are shrouded in mystery, but we do know that they were created out of [darkness].");
                        break;

                    case "darkness":
                        GuardAlakyrr.SayTo(player, "The attacks by the tenebrae have been numerous, and we need to cease some of these attacks. I am authorized to provide money to any who can slay these tenebrae and bring me proof of their deed. Will you [aid] us in this time of need?");
                        break;

                    case "aid":
                        player.Out.SendQuestSubscribeCommand(GuardAlakyrr, QuestMgr.GetIDForQuestType(typeof(AidingGuardAlakyrr)), "Will you slay the tenebrae for Guard Alakyrr? [Levels 1-4]");
                        break;
                    }
                }
                else
                {
                    switch (wArgs.Text)
                    {
                    case "study":
                        if (quest.Step == 1)
                        {
                            GuardAlakyrr.SayTo(player, "You will need to slay tenebrae and then use an enchanted Tenebrous Flask, while inside the Tenebrous Quarter, to capture their essence. I need you to obtain a full flask of Tenebrous Essence. Return to me once you complete this duty and I will reward you for your efforts.");
                            quest.Step = 2;
                        }
                        break;

                    case "abort":
                        player.Out.SendCustomDialog("Do you really want to abort this quest, \nall items gained during quest will be lost?", new CustomDialogResponse(CheckPlayerAbortQuest));
                        break;
                    }
                }
            }
        }
示例#30
0
文件: Nuisances.cs 项目: mywebext/DOL
        /* This is the method we declared as callback for the hooks we set to
         * NPC. It will be called whenever a player right clicks on NPC
         * or when he whispers something to him.
         */

        protected static void TalkToDalikor(DOLEvent e, object sender, EventArgs args)
        {
            //We get the player from the event arguments and check if he qualifies
            GamePlayer player = ((SourceEventArgs)args).Source as GamePlayer;

            if (player == null)
            {
                return;
            }

            if (dalikor.CanGiveQuest(typeof(Nuisances), player) <= 0)
            {
                return;
            }

            //We also check if the player is already doing the quest
            Nuisances quest = player.IsDoingQuest(typeof(Nuisances)) as Nuisances;

            dalikor.TurnTo(player);
            //Did the player rightclick on NPC?
            if (e == GameObjectEvent.Interact)
            {
                if (quest == null)
                {
                    //Player is not doing the quest...
                    dalikor.SayTo(player, "Recruit Eeinken. I'm afraid we have a [serious problem] on our hands.");
                    return;
                }
                else
                {
                    if (quest.Step == 2)
                    {
                        dalikor.SayTo(player, "Welcome back recruit. Did you find out what was making all that racket?");
                    }
                    else if (quest.Step == 3)
                    {
                        dalikor.SayTo(player, "Hrm...Fallen Askefruer. This is what has been causing us our problems? Interesting. I want to thank you recruit for your hard work in helping us solve this problem. A [reward] is in store for you I think.");
                    }
                    return;
                }
            }
            // The player whispered to NPC (clicked on the text inside the [])
            else if (e == GameLivingEvent.WhisperReceive)
            {
                WhisperReceiveEventArgs wArgs = (WhisperReceiveEventArgs)args;
                if (quest == null)
                {
                    //Do some small talk :)
                    switch (wArgs.Text)
                    {
                    case "serious problem":
                        dalikor.SayTo(player, "There has been this noise that has been keeping the residents of Mularn up at night. I haven't been able to locate the source of the noise, neither have any of the guards. I was hoping you could try to [find] the noise.");
                        break;

                    //If the player offered his "help", we send the quest dialog now!
                    case "find":
                        player.Out.SendQuestSubscribeCommand(dalikor, QuestMgr.GetIDForQuestType(typeof(Nuisances)), "Will you help out Mularn and discover who or what is making this noise?");
                        break;
                    }
                }
                else
                {
                    switch (wArgs.Text)
                    {
                    case "reward":
                        dalikor.SayTo(player, "Yes, I think this will do quite nicely. Here you are Eeinken. Use it well, and I'm sure it will last you your first few seasons anyhow. Be sure to come and speak with me when you are ready for more adventure.");
                        if (quest.Step == 3)
                        {
                            quest.FinishQuest();
                            dalikor.SayTo(player, "Don't go far, I have need of your services again Eeinken.");
                        }
                        break;

                    case "abort":
                        player.Out.SendCustomDialog("Do you really want to abort this quest, \nall items gained during quest will be lost?", new CustomDialogResponse(CheckPlayerAbortQuest));
                        break;
                    }
                }
            }
        }