/* 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 (addrir.CanGiveQuest(typeof(ImportantDelivery), player) <= 0) { return; } ImportantDelivery quest = player.IsDoingQuest(typeof(ImportantDelivery)) as ImportantDelivery; if (quest != null) { return; } if (response == 0x00) { SendReply(player, LanguageMgr.GetTranslation(player.Client, "Hib.ImportantDelivery.CheckPlayerAcceptQuest.NoAccept")); } else { //Check if we can add the quest! if (!addrir.GiveQuest(typeof(ImportantDelivery), player, 1)) { return; } addrir.SayTo(player, LanguageMgr.GetTranslation(player.Client, "Hib.ImportantDelivery.CheckPlayerAcceptQuest.Accept")); } //language manager support for items recruitsDiary.Name = LanguageMgr.GetTranslation(player.Client, "Hib.ImportantDelivery.DefineItems.RecruitsDiary"); sackOfSupplies.Name = LanguageMgr.GetTranslation(player.Client, "Hib.ImportantDelivery.DefineItems.SackOfSupplies"); crateOfVegetables.Name = LanguageMgr.GetTranslation(player.Client, "Hib.ImportantDelivery.DefineItems.CrateOfVegetables"); recruitsCloak.Name = LanguageMgr.GetTranslation(player.Client, "Hib.ImportantDelivery.DefineItems.RecruitsCloak"); }
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(); } } } } }
/* 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) { ImportantDelivery quest = player.IsDoingQuest(typeof(ImportantDelivery)) as ImportantDelivery; if (quest == null) { return; } if (response == 0x00) { SendSystemMessage(player, LanguageMgr.GetTranslation(player.Client, "Hib.ImportantDelivery.CheckPlayerAbortQuest.NoAbort")); } else { SendSystemMessage(player, LanguageMgr.GetTranslation(player.Client, "Hib.ImportantDelivery.CheckPlayerAbortQuest.Abort", questTitle)); quest.AbortQuest(); } }
protected static void TalkToAethic(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; aethic.TurnTo(player); // Did the player rightclick on NPC? if (e == GameObjectEvent.Interact) { if (quest != null) { switch (quest.Step) { case 3: case 4: aethic.SayTo(player, LanguageMgr.GetTranslation(player.Client, "Hib.ImportantDelivery.TalkToAethic.Greetings")); break; case 5: aethic.SayTo(player, LanguageMgr.GetTranslation(player.Client, "Hib.ImportantDelivery.TalkToAethic.Supplies", player.Name)); break; case 6: aethic.SayTo(player, LanguageMgr.GetTranslation(player.Client, "Hib.ImportantDelivery.TalkToAethic.Vegetables")); break; } } 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.TalkToAethic.CaseErrand")) { addrir.SayTo(player, LanguageMgr.GetTranslation(player.Client, "Hib.ImportantDelivery.TalkToAethic.Errand")); if (quest.Step == 5) { GiveItem(aethic, player, ticketToArdee); GiveItem(aethic, player, crateOfVegetables); quest.Step = 6; } } } } }
/* 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 // 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; 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, LanguageMgr.GetTranslation(player.Client, "Hib.ImportantDelivery.TalkToAddrir.Greetings")); return; } else { switch (quest.Step) { case 1: addrir.SayTo(player, LanguageMgr.GetTranslation(player.Client, "Hib.ImportantDelivery.TalkToAddrir.Journal")); break; case 2: addrir.SayTo(player, LanguageMgr.GetTranslation(player.Client, "Hib.ImportantDelivery.TalkToAddrir.OneStepCloser")); break; case 3: addrir.SayTo(player, LanguageMgr.GetTranslation(player.Client, "Hib.ImportantDelivery.TalkToAddrir.HorseTicket")); 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 :) if (wArgs.Text == LanguageMgr.GetTranslation(player.Client, "Hib.ImportantDelivery.TalkToAddrir.CaseQuestion")) { addrir.SayTo(player, LanguageMgr.GetTranslation(player.Client, "Hib.ImportantDelivery.TalkToAddrir.Question")); } // If the player offered his "help", we send the quest dialog now! if (wArgs.Text == LanguageMgr.GetTranslation(player.Client, "Hib.ImportantDelivery.TalkToAddrir.CaseTraining")) { player.Out.SendQuestSubscribeCommand(addrir, QuestMgr.GetIDForQuestType(typeof(ImportantDelivery)), LanguageMgr.GetTranslation(player.Client, "Hib.ImportantDelivery.TalkToAddrir.Training")); } } else { if (wArgs.Text == LanguageMgr.GetTranslation(player.Client, "Hib.ImportantDelivery.TalkToAddrir.CaseCharSheet")) { addrir.SayTo(player, LanguageMgr.GetTranslation(player.Client, "Hib.ImportantDelivery.TalkToAddrir.CharSheet")); } if (wArgs.Text == LanguageMgr.GetTranslation(player.Client, "Hib.ImportantDelivery.TalkToAddrir.CaseInformation")) { addrir.SayTo(player, LanguageMgr.GetTranslation(player.Client, "Hib.ImportantDelivery.TalkToAddrir.Information")); if (quest.Step == 1) { quest.Step = 2; } } if (wArgs.Text == LanguageMgr.GetTranslation(player.Client, "Hib.ImportantDelivery.TalkToAddrir.CaseJournal")) { addrir.SayTo(player, LanguageMgr.GetTranslation(player.Client, "Hib.ImportantDelivery.TalkToAddrir.Journal")); GiveItem(addrir, player, recruitsDiary); } if (wArgs.Text == LanguageMgr.GetTranslation(player.Client, "Hib.ImportantDelivery.TalkToAddrir.CaseExpedite")) { addrir.SayTo(player, LanguageMgr.GetTranslation(player.Client, "Hib.ImportantDelivery.TalkToAddrir.Expedite")); GiveItem(addrir, player, sackOfSupplies); } if (wArgs.Text == LanguageMgr.GetTranslation(player.Client, "Hib.ImportantDelivery.TalkToAddrir.CaseHorseTicket")) { addrir.SayTo(player, LanguageMgr.GetTranslation(player.Client, "Hib.ImportantDelivery.TalkToAddrir.HorseTicket")); if (quest.Step == 2) { GiveItem(addrir, player, ticketToTirnamBeo); quest.Step = 3; } } if (wArgs.Text == "abort") { addrir.SayTo(player, LanguageMgr.GetTranslation(player.Client, "Hib.ImportantDelivery.TalkToAddrir.Abort")); } } } }