Example #1
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 TalkToGrifflet(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;

            if (e == GameLivingEvent.Interact)
            {
                if (quest != null && quest.grifflet == sender && quest.Step == 4)
                {
                    SendSystemMessage(player, LanguageMgr.GetTranslation(ServerProperties.Properties.SERV_LANGUAGE, "Mid.StolenEggs.TalkToGrifflet.Talk1"));
                    quest.grifflet.MaxSpeedBase = player.MaxSpeedBase;
                    quest.grifflet.Realm        = eRealm.Midgard;
                    quest.grifflet.Follow(player, 30, 2000);
                    quest.Step = 5;
                    return;
                }
            }
        }
Example #2
0
        /* This is our callback hook that will be called when the player clicks
         * on any button in the quest offer dialog. We check if he accepts or
         * declines here...
         */

        private static void CheckPlayerAcceptQuest(GamePlayer player, byte response)
        {
            // We recheck the qualification, because we don't talk to players
            // who are not doing the quest
            if (dalikor.CanGiveQuest(typeof(StolenEggs), player) <= 0)
            {
                return;
            }

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

            if (quest != null)
            {
                return;
            }

            if (response == 0x00)
            {
                dalikor.SayTo(player, LanguageMgr.GetTranslation(ServerProperties.Properties.SERV_LANGUAGE, "Mid.StolenEggs.CheckPlayerAcceptQuest.Text1"));
            }
            else
            {
                // Check if we can add the quest!
                if (!dalikor.GiveQuest(typeof(StolenEggs), player, 1))
                {
                    return;
                }

                GameEventMgr.AddHandler(player, GamePlayerEvent.Quit, new DOLEventHandler(PlayerLeftWorld));
                dalikor.SayTo(player, LanguageMgr.GetTranslation(ServerProperties.Properties.SERV_LANGUAGE, "Mid.StolenEggs.CheckPlayerAcceptQuest.Text2", player.Name));
            }
        }
Example #3
0
        protected static void CheckNearAskefruerTrainer(DOLEvent e, object sender, EventArgs args)
        {
            GameNPC m_askefruerTrainer = (GameNPC)sender;

            // if princess is dead no ned to checks ...
            if (!m_askefruerTrainer.IsAlive || m_askefruerTrainer.ObjectState != GameObject.eObjectState.Active)
            {
                return;
            }

            foreach (GamePlayer player in m_askefruerTrainer.GetPlayersInRadius(1500))
            {
                StolenEggs quest = (StolenEggs)player.IsDoingQuest(typeof(StolenEggs));

                if (quest != null && !quest.askefruerGriffinHandlerAttackStarted && (quest.Step == 2 || quest.Step == 3))
                {
                    quest.askefruerGriffinHandlerAttackStarted = true;

                    IOldAggressiveBrain aggroBrain = m_askefruerTrainer.Brain as IOldAggressiveBrain;
                    if (aggroBrain != null)
                    {
                        aggroBrain.AddToAggroList(player, 70);
                    }

                    quest.Step = 3;

                    // if we find player doing quest stop looking for further ones ...
                    break;
                }
            }
        }
Example #4
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();
                        }
                    }
                }
            }
        }
Example #5
0
        protected static void PlayerLeftWorld(DOLEvent e, object sender, EventArgs args)
        {
            GamePlayer player = sender as GamePlayer;

            if (player == null)
            {
                return;
            }

            GameEventMgr.RemoveHandler(player, GamePlayerEvent.Quit, new DOLEventHandler(PlayerLeftWorld));
            StolenEggs quest = player.IsDoingQuest(typeof(StolenEggs)) as StolenEggs;

            if (quest != null)
            {
                quest.deleteGrifflet();
            }
        }
Example #6
0
        /* This is our callback hook that will be called when the player clicks
         * on any button in the quest offer dialog. We check if he accepts or
         * declines here...
         */

        private static void CheckPlayerAbortQuest(GamePlayer player, byte response)
        {
            StolenEggs quest = player.IsDoingQuest(typeof(StolenEggs)) as StolenEggs;

            if (quest == null)
            {
                return;
            }

            if (response == 0x00)
            {
                SendSystemMessage(player, LanguageMgr.GetTranslation(ServerProperties.Properties.SERV_LANGUAGE, "Mid.StolenEggs.CheckPlayerAbortQuest.Text1"));
            }
            else
            {
                SendSystemMessage(player, LanguageMgr.GetTranslation(ServerProperties.Properties.SERV_LANGUAGE, "Mid.StolenEggs.CheckPlayerAbortQuest.Text2", questTitle));
                quest.AbortQuest();
            }
        }
Example #7
0
        protected static void PlayerEnterWorld(DOLEvent e, object sender, EventArgs args)
        {
            GamePlayer player = sender as GamePlayer;

            if (player == null)
            {
                return;
            }

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

            if (quest != null)
            {
                GameEventMgr.AddHandler(player, GamePlayerEvent.Quit, new DOLEventHandler(PlayerLeftWorld));
                if (quest.Step == 2)
                {
                    quest.initGrifflet();
                    quest.grifflet.AddToWorld();
                }
            }
        }
Example #8
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 TalkToNjiedi(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;

            njiedi.TurnTo(player);

            // Did the player rightclick on NPC?
            if (e == GameObjectEvent.Interact)
            {
                if (quest != null)
                {
                    if (quest.Step == 5)
                    {
                        njiedi.SayTo(player, LanguageMgr.GetTranslation(ServerProperties.Properties.SERV_LANGUAGE, "Mid.StolenEggs.TalkToNjiedi.Talk1", player.Name));

                        if (quest.grifflet != null)
                        {
                            quest.grifflet.StopFollowing();
                            quest.deleteGrifflet();
                        }
                    }
                    else if (quest.Step == 6)
                    {
                        njiedi.SayTo(player, LanguageMgr.GetTranslation(ServerProperties.Properties.SERV_LANGUAGE, "Mid.StolenEggs.TalkToNjiedi.Talk2"));
                        if (player.HasAbilityToUseItem(recruitsVest))
                        {
                            GiveItem(njiedi, player, recruitsVest);
                        }
                        else
                        {
                            GiveItem(njiedi, player, recruitsQuiltedVest);
                        }

                        quest.Step = 7;
                    }

                    return;
                }
            }

            // The player whispered to NPC (clicked on the text inside the [])
            else if (e == GameLivingEvent.WhisperReceive)
            {
                WhisperReceiveEventArgs wArgs = (WhisperReceiveEventArgs)args;
                if (quest != null)
                {
                    if (wArgs.Text == LanguageMgr.GetTranslation(ServerProperties.Properties.SERV_LANGUAGE, "Mid.StolenEggs.TalkToNjiedi.Whisper1"))
                    {
                        njiedi.SayTo(player, LanguageMgr.GetTranslation(ServerProperties.Properties.SERV_LANGUAGE, "Mid.StolenEggs.TalkToNjiedi.Talk2"));
                        if (quest.Step == 6)
                        {
                            if (player.HasAbilityToUseItem(recruitsVest))
                            {
                                GiveItem(njiedi, player, recruitsVest);
                            }
                            else
                            {
                                GiveItem(njiedi, player, recruitsQuiltedVest);
                            }

                            quest.Step = 7;
                        }
                    }
                }
            }
        }
Example #9
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(StolenEggs), player) <= 0)
            {
                return;
            }

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

            dalikor.TurnTo(player);

            // Did the player rightclick on NPC?
            if (e == GameObjectEvent.Interact)
            {
                // We check if the player is already doing the quest
                if (quest == null)
                {
                    // Player is not doing the quest...
                    dalikor.SayTo(player, LanguageMgr.GetTranslation(ServerProperties.Properties.SERV_LANGUAGE, "Mid.StolenEggs.TalkToDalikor.Talk1"));
                    return;
                }
                else
                {
                    if (quest.Step == 7)
                    {
                        dalikor.SayTo(player, LanguageMgr.GetTranslation(ServerProperties.Properties.SERV_LANGUAGE, "Mid.StolenEggs.TalkToDalikor.Talk2"));
                    }

                    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 :)
                    if (wArgs.Text == LanguageMgr.GetTranslation(ServerProperties.Properties.SERV_LANGUAGE, "Mid.StolenEggs.TalkToDalikor.Whisper1"))
                    {
                        dalikor.SayTo(player, LanguageMgr.GetTranslation(ServerProperties.Properties.SERV_LANGUAGE, "Mid.StolenEggs.TalkToDalikor.Talk3"));
                    }
                    else if (wArgs.Text == LanguageMgr.GetTranslation(ServerProperties.Properties.SERV_LANGUAGE, "Mid.StolenEggs.TalkToDalikor.Whisper2"))
                    {
                        dalikor.SayTo(player, LanguageMgr.GetTranslation(ServerProperties.Properties.SERV_LANGUAGE, "Mid.StolenEggs.TalkToDalikor.Talk4"));
                    }
                    else if (wArgs.Text == LanguageMgr.GetTranslation(ServerProperties.Properties.SERV_LANGUAGE, "Mid.StolenEggs.TalkToDalikor.Whisper3"))
                    {
                        dalikor.SayTo(player, LanguageMgr.GetTranslation(ServerProperties.Properties.SERV_LANGUAGE, "Mid.StolenEggs.TalkToDalikor.Talk5"));
                    }
                    else if (wArgs.Text == LanguageMgr.GetTranslation(ServerProperties.Properties.SERV_LANGUAGE, "Mid.StolenEggs.TalkToDalikor.Whisper4"))
                    {
                        dalikor.SayTo(player, LanguageMgr.GetTranslation(ServerProperties.Properties.SERV_LANGUAGE, "Mid.StolenEggs.TalkToDalikor.Talk6"));
                    }
                    else if (wArgs.Text == LanguageMgr.GetTranslation(ServerProperties.Properties.SERV_LANGUAGE, "Mid.StolenEggs.TalkToDalikor.Whisper5"))
                    {
                        dalikor.SayTo(player, LanguageMgr.GetTranslation(ServerProperties.Properties.SERV_LANGUAGE, "Mid.StolenEggs.TalkToDalikor.Talk7"));
                    }
                    else if (wArgs.Text == LanguageMgr.GetTranslation(ServerProperties.Properties.SERV_LANGUAGE, "Mid.StolenEggs.TalkToDalikor.Whisper6"))
                    {
                        // If the player offered his "help", we send the quest dialog now!
                        player.Out.SendQuestSubscribeCommand(dalikor, QuestMgr.GetIDForQuestType(typeof(StolenEggs)), LanguageMgr.GetTranslation(ServerProperties.Properties.SERV_LANGUAGE, "Mid.StolenEggs.TalkToDalikor.OfferQuest"));
                    }
                }
                else
                {
                    if (wArgs.Text == LanguageMgr.GetTranslation(ServerProperties.Properties.SERV_LANGUAGE, "Mid.StolenEggs.TalkToDalikor.Whisper7"))
                    {
                        dalikor.SayTo(player, LanguageMgr.GetTranslation(ServerProperties.Properties.SERV_LANGUAGE, "Mid.StolenEggs.TalkToDalikor.Talk8"));
                    }
                    else if (wArgs.Text == LanguageMgr.GetTranslation(ServerProperties.Properties.SERV_LANGUAGE, "Mid.StolenEggs.TalkToDalikor.Whisper8"))
                    {
                        dalikor.SayTo(player, LanguageMgr.GetTranslation(ServerProperties.Properties.SERV_LANGUAGE, "Mid.StolenEggs.TalkToDalikor.Talk9"));
                        if (quest.Step == 7)
                        {
                            quest.FinishQuest();
                        }
                    }
                    else if (wArgs.Text == LanguageMgr.GetTranslation(ServerProperties.Properties.SERV_LANGUAGE, "Mid.StolenEggs.TalkToDalikor.Whisper9"))
                    {
                        player.Out.SendCustomDialog(LanguageMgr.GetTranslation(ServerProperties.Properties.SERV_LANGUAGE, "Mid.StolenEggs.TalkToDalikor.AbortQuest"), new CustomDialogResponse(CheckPlayerAbortQuest));
                    }
                }
            }
        }