diff --git a/trunk/dist/game/data/scripts/quests/MissingQuests.txt b/trunk/dist/game/data/scripts/quests/MissingQuests.txt index f6dcb13305..429eb1c3c8 100644 --- a/trunk/dist/game/data/scripts/quests/MissingQuests.txt +++ b/trunk/dist/game/data/scripts/quests/MissingQuests.txt @@ -38,7 +38,6 @@ 753 Reacting to a Crisis 758 The Fallen King's Men 759 The Dwarven Nightmare Continues -764 Weakening the Varka Silenos Forces 765 Weakening the Ketra Orc Forces 767 Banishing Evil 768 Terror of Town diff --git a/trunk/dist/game/data/scripts/quests/Q00764_WeakeningTheVarkaSilenosForces/33853-00.htm b/trunk/dist/game/data/scripts/quests/Q00764_WeakeningTheVarkaSilenosForces/33853-00.htm new file mode 100644 index 0000000000..70f6f3d6fb --- /dev/null +++ b/trunk/dist/game/data/scripts/quests/Q00764_WeakeningTheVarkaSilenosForces/33853-00.htm @@ -0,0 +1,4 @@ +Giant's Minion Hansen:
+I don't think you are strong enough to take on this task.
+(This quest may only be undertaken by a Fighter class character who is level 76 or above.) + \ No newline at end of file diff --git a/trunk/dist/game/data/scripts/quests/Q00764_WeakeningTheVarkaSilenosForces/33853-01.htm b/trunk/dist/game/data/scripts/quests/Q00764_WeakeningTheVarkaSilenosForces/33853-01.htm new file mode 100644 index 0000000000..3f8f514c2a --- /dev/null +++ b/trunk/dist/game/data/scripts/quests/Q00764_WeakeningTheVarkaSilenosForces/33853-01.htm @@ -0,0 +1,4 @@ +Giant's Minion Hansen:
+Now that we know the Varka Silenoses are working with Embryo, we must take action. If we can't end them right now, we should weaken their military power gradually.
+ + \ No newline at end of file diff --git a/trunk/dist/game/data/scripts/quests/Q00764_WeakeningTheVarkaSilenosForces/33853-02.htm b/trunk/dist/game/data/scripts/quests/Q00764_WeakeningTheVarkaSilenosForces/33853-02.htm new file mode 100644 index 0000000000..6f336ce180 --- /dev/null +++ b/trunk/dist/game/data/scripts/quests/Q00764_WeakeningTheVarkaSilenosForces/33853-02.htm @@ -0,0 +1,5 @@ +Giant's Minion Hansen:
+Infiltrate Varka Silenos Barracks and kill Varka Silenoses. As proof, bring Varka's Badges: Soldier. +
Oh! And there is another thing I want you to get for me if you can.
+ + \ No newline at end of file diff --git a/trunk/dist/game/data/scripts/quests/Q00764_WeakeningTheVarkaSilenosForces/33853-03.htm b/trunk/dist/game/data/scripts/quests/Q00764_WeakeningTheVarkaSilenosForces/33853-03.htm new file mode 100644 index 0000000000..28c4660624 --- /dev/null +++ b/trunk/dist/game/data/scripts/quests/Q00764_WeakeningTheVarkaSilenosForces/33853-03.htm @@ -0,0 +1,5 @@ +Giant's Minion Hansen:
+Bring me Varka's Badges: General as well. As with Varka's Badges: Soldier, you can get them from the Varka Silenos.
+Over time, you will go from collecting all Varka's Badges: Soldier to finding Varka's Badges: General.
That is all. Understood?
+ + \ No newline at end of file diff --git a/trunk/dist/game/data/scripts/quests/Q00764_WeakeningTheVarkaSilenosForces/33853-04.htm b/trunk/dist/game/data/scripts/quests/Q00764_WeakeningTheVarkaSilenosForces/33853-04.htm new file mode 100644 index 0000000000..c1398679d8 --- /dev/null +++ b/trunk/dist/game/data/scripts/quests/Q00764_WeakeningTheVarkaSilenosForces/33853-04.htm @@ -0,0 +1,3 @@ +Giant's Minion Hansen:
+Long story short, kill all Varka Silenoses you see at Varka Silenos Barracks and bring 50 Varka's Badges: Soldier. If you bring Varka's Badges: General, I will give you an additional reward according to the quantity you bring. + \ No newline at end of file diff --git a/trunk/dist/game/data/scripts/quests/Q00764_WeakeningTheVarkaSilenosForces/33853-05.html b/trunk/dist/game/data/scripts/quests/Q00764_WeakeningTheVarkaSilenosForces/33853-05.html new file mode 100644 index 0000000000..c1398679d8 --- /dev/null +++ b/trunk/dist/game/data/scripts/quests/Q00764_WeakeningTheVarkaSilenosForces/33853-05.html @@ -0,0 +1,3 @@ +Giant's Minion Hansen:
+Long story short, kill all Varka Silenoses you see at Varka Silenos Barracks and bring 50 Varka's Badges: Soldier. If you bring Varka's Badges: General, I will give you an additional reward according to the quantity you bring. + \ No newline at end of file diff --git a/trunk/dist/game/data/scripts/quests/Q00764_WeakeningTheVarkaSilenosForces/33853-06.html b/trunk/dist/game/data/scripts/quests/Q00764_WeakeningTheVarkaSilenosForces/33853-06.html new file mode 100644 index 0000000000..bd4fdf6613 --- /dev/null +++ b/trunk/dist/game/data/scripts/quests/Q00764_WeakeningTheVarkaSilenosForces/33853-06.html @@ -0,0 +1,3 @@ +Giant's Minion Hansen:
+Go get some rest. I will see you tomorrow. We will have to keep pressuring those Varka Silenoses for a while. + \ No newline at end of file diff --git a/trunk/dist/game/data/scripts/quests/Q00764_WeakeningTheVarkaSilenosForces/33853-06a.html b/trunk/dist/game/data/scripts/quests/Q00764_WeakeningTheVarkaSilenosForces/33853-06a.html new file mode 100644 index 0000000000..bd4fdf6613 --- /dev/null +++ b/trunk/dist/game/data/scripts/quests/Q00764_WeakeningTheVarkaSilenosForces/33853-06a.html @@ -0,0 +1,3 @@ +Giant's Minion Hansen:
+Go get some rest. I will see you tomorrow. We will have to keep pressuring those Varka Silenoses for a while. + \ No newline at end of file diff --git a/trunk/dist/game/data/scripts/quests/Q00764_WeakeningTheVarkaSilenosForces/33853-07.html b/trunk/dist/game/data/scripts/quests/Q00764_WeakeningTheVarkaSilenosForces/33853-07.html new file mode 100644 index 0000000000..4b07b57300 --- /dev/null +++ b/trunk/dist/game/data/scripts/quests/Q00764_WeakeningTheVarkaSilenosForces/33853-07.html @@ -0,0 +1,3 @@ +Giant's Minion Hansen:
+You are ertheia. this quest no for you + \ No newline at end of file diff --git a/trunk/dist/game/data/scripts/quests/Q00764_WeakeningTheVarkaSilenosForces/33853-08.html b/trunk/dist/game/data/scripts/quests/Q00764_WeakeningTheVarkaSilenosForces/33853-08.html new file mode 100644 index 0000000000..af47bdfe67 --- /dev/null +++ b/trunk/dist/game/data/scripts/quests/Q00764_WeakeningTheVarkaSilenosForces/33853-08.html @@ -0,0 +1,6 @@ +Giant's Minion Hansen:
+Great! You've collected the Varka's Badges: Soldier! However, you haven't collected enough Varka's Badges: General even for the minimum reward.
+What say you? Do you want to receive what reward you can and call it a day? Or will you collect some more Varka's Badges: General?
+ + + \ No newline at end of file diff --git a/trunk/dist/game/data/scripts/quests/Q00764_WeakeningTheVarkaSilenosForces/33853-09.html b/trunk/dist/game/data/scripts/quests/Q00764_WeakeningTheVarkaSilenosForces/33853-09.html new file mode 100644 index 0000000000..f23fa24826 --- /dev/null +++ b/trunk/dist/game/data/scripts/quests/Q00764_WeakeningTheVarkaSilenosForces/33853-09.html @@ -0,0 +1,5 @@ +Giant's Minion Hansen:
+Of course! Let me give you the reward. I hope it will be useful for you.
+ + + \ No newline at end of file diff --git a/trunk/dist/game/data/scripts/quests/Q00764_WeakeningTheVarkaSilenosForces/33853-09a.html b/trunk/dist/game/data/scripts/quests/Q00764_WeakeningTheVarkaSilenosForces/33853-09a.html new file mode 100644 index 0000000000..071867369f --- /dev/null +++ b/trunk/dist/game/data/scripts/quests/Q00764_WeakeningTheVarkaSilenosForces/33853-09a.html @@ -0,0 +1,4 @@ +Giant's Minion Hansen:
+Great! You've collected the Varka's Badges: Soldier and Varka's Badges: General. They won't recover anytime soon.
+ + \ No newline at end of file diff --git a/trunk/dist/game/data/scripts/quests/Q00764_WeakeningTheVarkaSilenosForces/33853-10.html b/trunk/dist/game/data/scripts/quests/Q00764_WeakeningTheVarkaSilenosForces/33853-10.html new file mode 100644 index 0000000000..a62d754acf --- /dev/null +++ b/trunk/dist/game/data/scripts/quests/Q00764_WeakeningTheVarkaSilenosForces/33853-10.html @@ -0,0 +1,3 @@ +Giant's Minion Hansen:
+Long story short, kill all Varka Silenoses you see at Varka Silenos Barracks and bring Varka's Badges: General, I will give you an additional reward according to the quantity you bring. + \ No newline at end of file diff --git a/trunk/dist/game/data/scripts/quests/Q00764_WeakeningTheVarkaSilenosForces/Q00764_WeakeningTheVarkaSilenosForces.java b/trunk/dist/game/data/scripts/quests/Q00764_WeakeningTheVarkaSilenosForces/Q00764_WeakeningTheVarkaSilenosForces.java new file mode 100644 index 0000000000..cc91028888 --- /dev/null +++ b/trunk/dist/game/data/scripts/quests/Q00764_WeakeningTheVarkaSilenosForces/Q00764_WeakeningTheVarkaSilenosForces.java @@ -0,0 +1,254 @@ +/* + * This file is part of the L2J Mobius project. + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +package quests.Q00764_WeakeningTheVarkaSilenosForces; + +import com.l2jmobius.gameserver.enums.QuestType; +import com.l2jmobius.gameserver.enums.Race; +import com.l2jmobius.gameserver.model.actor.L2Npc; +import com.l2jmobius.gameserver.model.actor.instance.L2PcInstance; +import com.l2jmobius.gameserver.model.quest.Quest; +import com.l2jmobius.gameserver.model.quest.QuestState; +import com.l2jmobius.gameserver.model.quest.State; + +/** + * Weakening the Varka Silenos Forces (764) + * @URL https://l2wiki.com/Weakening_the_Varka_Silenos_Forces + * @author Gigi + */ +public class Q00764_WeakeningTheVarkaSilenosForces extends Quest +{ + // NPC + private static final int HANSEN = 33853; + // Monsters + private static final int[] MONSTERS = + { + 21350, // Varka Silenos Recruit + 21353, // Varka Silenos Scout + 21354, // Varka Silenos Hunter + 21355, // Varka Silenos Shaman + 21357, // Varka Silenos Priest + 21358, // Varka Silenos Warrior + 21360, // Varka Silenos Medium + 21362, // Varka Silenos Officer + 21364, // Varka Silenos Seer + 21365, // Varka Silenos Great Magus + 21366, // Varka Silenos General + 21368, // Varka Silenos Great Seer + 21369, // Varka's Commander + 21371, // Varka's Head Magus + 21373 // Varka's Prophet + }; + // Items + private static final int BADGE_SOLDIER = 36674; + private static final int BADGE_GENERAL = 36675; + // Rewards + private static final int STEEL_DOOR_GUILD_BOX = 37393; + // Misc + private static final int MIN_LEVEL = 76; + private static final int MAX_LEVEL = 80; + + public Q00764_WeakeningTheVarkaSilenosForces() + { + super(764); + addStartNpc(HANSEN); + addTalkId(HANSEN); + addKillId(MONSTERS); + registerQuestItems(BADGE_SOLDIER, BADGE_GENERAL); + addCondLevel(MIN_LEVEL, MAX_LEVEL, "33853-00.htm"); + addCondNotRace(Race.ERTHEIA, "33853-07.html"); + } + + @Override + public String onAdvEvent(String event, L2Npc npc, L2PcInstance player) + { + String htmltext = null; + final QuestState qs = getQuestState(player, false); + if (qs == null) + { + return getNoQuestMsg(player); + } + + switch (event) + { + case "33853-02.htm": + case "33853-03.htm": + case "33853-09.html": + case "33853-09a.html": + case "33853-10.html": + { + htmltext = event; + break; + } + case "33853-04.htm": + { + qs.startQuest(); + htmltext = event; + break; + } + case "33853-06a.html": + { + if ((getQuestItemsCount(player, BADGE_SOLDIER) >= 50) && (getQuestItemsCount(player, BADGE_GENERAL) < 100)) + { + addExpAndSp(player, 19164600, 191646); + giveItems(player, STEEL_DOOR_GUILD_BOX, 1); + qs.exitQuest(QuestType.DAILY, true); + htmltext = event; + break; + } + else if ((getQuestItemsCount(player, BADGE_SOLDIER) >= 50) && ((getQuestItemsCount(player, BADGE_GENERAL) >= 100) && (getQuestItemsCount(player, BADGE_GENERAL) <= 199))) + { + addExpAndSp(player, 38329200, 383292); + giveItems(player, STEEL_DOOR_GUILD_BOX, 2); + qs.exitQuest(QuestType.DAILY, true); + htmltext = event; + break; + } + else if ((getQuestItemsCount(player, BADGE_SOLDIER) >= 50) && ((getQuestItemsCount(player, BADGE_GENERAL) >= 200) && (getQuestItemsCount(player, BADGE_GENERAL) <= 299))) + { + addExpAndSp(player, 57493800, 574938); + giveItems(player, STEEL_DOOR_GUILD_BOX, 3); + qs.exitQuest(QuestType.DAILY, true); + htmltext = event; + break; + } + else if ((getQuestItemsCount(player, BADGE_SOLDIER) >= 50) && ((getQuestItemsCount(player, BADGE_GENERAL) >= 300) && (getQuestItemsCount(player, BADGE_GENERAL) <= 399))) + { + addExpAndSp(player, 76658400, 766584); + giveItems(player, STEEL_DOOR_GUILD_BOX, 4); + qs.exitQuest(QuestType.DAILY, true); + htmltext = event; + break; + } + else if ((getQuestItemsCount(player, BADGE_SOLDIER) >= 50) && ((getQuestItemsCount(player, BADGE_GENERAL) >= 400) && (getQuestItemsCount(player, BADGE_GENERAL) <= 499))) + { + addExpAndSp(player, 95823000, 958230); + giveItems(player, STEEL_DOOR_GUILD_BOX, 5); + qs.exitQuest(QuestType.DAILY, true); + htmltext = event; + break; + } + else if ((getQuestItemsCount(player, BADGE_SOLDIER) >= 50) && ((getQuestItemsCount(player, BADGE_GENERAL) >= 500) && (getQuestItemsCount(player, BADGE_GENERAL) <= 599))) + { + addExpAndSp(player, 114987600, 1149876); + giveItems(player, STEEL_DOOR_GUILD_BOX, 6); + qs.exitQuest(QuestType.DAILY, true); + htmltext = event; + break; + } + else if ((getQuestItemsCount(player, BADGE_SOLDIER) >= 50) && ((getQuestItemsCount(player, BADGE_GENERAL) >= 600) && (getQuestItemsCount(player, BADGE_GENERAL) <= 699))) + { + addExpAndSp(player, 134152200, 1341522); + giveItems(player, STEEL_DOOR_GUILD_BOX, 7); + qs.exitQuest(QuestType.DAILY, true); + htmltext = event; + break; + } + else if ((getQuestItemsCount(player, BADGE_SOLDIER) >= 50) && ((getQuestItemsCount(player, BADGE_GENERAL) >= 700) && (getQuestItemsCount(player, BADGE_GENERAL) <= 799))) + { + addExpAndSp(player, 153316800, 1533168); + giveItems(player, STEEL_DOOR_GUILD_BOX, 8); + qs.exitQuest(QuestType.DAILY, true); + htmltext = event; + break; + } + else if ((getQuestItemsCount(player, BADGE_SOLDIER) >= 50) && ((getQuestItemsCount(player, BADGE_GENERAL) >= 800) && (getQuestItemsCount(player, BADGE_GENERAL) <= 899))) + { + addExpAndSp(player, 172481400, 1724814); + giveItems(player, STEEL_DOOR_GUILD_BOX, 9); + qs.exitQuest(QuestType.DAILY, true); + htmltext = event; + break; + } + else if ((getQuestItemsCount(player, BADGE_SOLDIER) >= 50) && (getQuestItemsCount(player, BADGE_GENERAL) >= 900)) + { + addExpAndSp(player, 191646000, 1916460); + giveItems(player, STEEL_DOOR_GUILD_BOX, 10); + qs.exitQuest(QuestType.DAILY, true); + htmltext = event; + break; + } + } + } + return htmltext; + } + + @Override + public String onTalk(L2Npc npc, L2PcInstance player) + { + final QuestState qs = getQuestState(player, true); + String htmltext = getNoQuestMsg(player); + if ((npc.getId() == HANSEN) && player.isMageClass()) + { + return "33853-00.htm"; + } + + if (npc.getId() == HANSEN) + { + switch (qs.getState()) + { + case State.COMPLETED: + { + if (!qs.isNowAvailable()) + { + htmltext = "33853-06.html"; + break; + } + qs.setState(State.CREATED); + break; + } + case State.CREATED: + { + htmltext = "33853-01.htm"; + break; + } + case State.STARTED: + { + if (qs.isCond(1)) + { + htmltext = "33853-05.html"; + } + else if (qs.isStarted() && qs.isCond(2)) + { + htmltext = "33853-08.html"; + } + break; + } + } + } + else if (qs.isCompleted() && !qs.isNowAvailable()) + { + htmltext = "33853-06.html"; + } + return htmltext; + } + + @Override + public String onKill(L2Npc npc, L2PcInstance killer, boolean isSummon) + { + final QuestState qs = getQuestState(killer, false); + + if ((qs != null) && qs.isCond(1) && (giveItemRandomly(killer, npc, BADGE_SOLDIER, 1, 50, 0.15, true))) + { + qs.setCond(2, true); + } + if ((qs != null) && qs.isCond(2) && (giveItemRandomly(killer, npc, BADGE_GENERAL, 1, 900, 0.85, true))) + { + qs.setCond(2, true); + } + return super.onKill(npc, killer, isSummon); + } +} \ No newline at end of file diff --git a/trunk/dist/game/data/scripts/quests/QuestMasterHandler.java b/trunk/dist/game/data/scripts/quests/QuestMasterHandler.java index 1f30151b58..b5952a0107 100644 --- a/trunk/dist/game/data/scripts/quests/QuestMasterHandler.java +++ b/trunk/dist/game/data/scripts/quests/QuestMasterHandler.java @@ -171,6 +171,7 @@ import quests.Q00760_BlockTheExit.Q00760_BlockTheExit; import quests.Q00761_AssistingTheGoldenRamArmy.Q00761_AssistingTheGoldenRamArmy; import quests.Q00762_AnOminousRequest.Q00762_AnOminousRequest; import quests.Q00763_ADauntingTask.Q00763_ADauntingTask; +import quests.Q00764_WeakeningTheVarkaSilenosForces.Q00764_WeakeningTheVarkaSilenosForces; import quests.Q00784_TheQuietKiller.Q00784_TheQuietKiller; import quests.Q00786_AwaitingTheVoiceOfTheGods.Q00786_AwaitingTheVoiceOfTheGods; import quests.Q00901_HowLavasaurusesAreMade.Q00901_HowLavasaurusesAreMade; @@ -517,6 +518,7 @@ public class QuestMasterHandler Q00761_AssistingTheGoldenRamArmy.class, Q00762_AnOminousRequest.class, Q00763_ADauntingTask.class, + Q00764_WeakeningTheVarkaSilenosForces.class, Q00784_TheQuietKiller.class, Q00786_AwaitingTheVoiceOfTheGods.class, Q00901_HowLavasaurusesAreMade.class, diff --git a/trunk/dist/game/data/stats/items/37300-37399.xml b/trunk/dist/game/data/stats/items/37300-37399.xml index f5e74402c7..4212d4854d 100644 --- a/trunk/dist/game/data/stats/items/37300-37399.xml +++ b/trunk/dist/game/data/stats/items/37300-37399.xml @@ -1581,7 +1581,16 @@ + + + + + + + + +