/* 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; } } }
/* 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)); } }
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; } } }
/* 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(); } } } } }
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(); } }
/* 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(); } }
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(); } } }
/* 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; } } } } }
/* 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)); } } } }