diff --git a/L2J_DataPack_BETA/dist/game/data/scripts.cfg b/L2J_DataPack_BETA/dist/game/data/scripts.cfg index 9263062bd9d811b87e1f4ec0bb2527d98c143c44..f1777299f1595573931d37343edb3abdd601fcf0 100644 --- a/L2J_DataPack_BETA/dist/game/data/scripts.cfg +++ b/L2J_DataPack_BETA/dist/game/data/scripts.cfg @@ -543,8 +543,8 @@ quests/372_LegacyOfInsolence/__init__.py quests/373_SupplierOfReagents/__init__.py quests/374_WhisperOfDreams1/__init__.py quests/375_WhisperOfDreams2/__init__.py -quests/376_GiantsExploration1/__init__.py -quests/377_GiantsExploration2/__init__.py +quests/Q376_ExplorationOfTheGiantsCavePart1/Q376_ExplorationOfTheGiantsCavePart1.java +quests/Q377_ExplorationOfTheGiantsCavePart2/Q377_ExplorationOfTheGiantsCavePart2.java quests/378_MagnificentFeast/__init__.py quests/379_FantasyWine/__init__.py quests/380_BringOutTheFlavorOfIngredients/__init__.py diff --git a/L2J_DataPack_BETA/dist/game/data/scripts/quests/376_GiantsExploration1/31147-04.htm b/L2J_DataPack_BETA/dist/game/data/scripts/quests/376_GiantsExploration1/31147-04.htm deleted file mode 100644 index 1e39dc544f463d61d270745f5dd63c137ab66063..0000000000000000000000000000000000000000 --- a/L2J_DataPack_BETA/dist/game/data/scripts/quests/376_GiantsExploration1/31147-04.htm +++ /dev/null @@ -1,5 +0,0 @@ -<html><body>Expedition Captain Sobling:<br> -Rewards appropriate for your effort are always prepared. If you make enough effort, you can take anything. But, what would you like?<br> -<a action="bypass -h Quest 376_GiantsExploration1 31147-04a.htm">Receive S80 Weapon Recipe as a reward (Requires 10 sets of Knowledge of the Giants Anthology)</a><br> -<a action="bypass -h Quest 376_GiantsExploration1 31147-04b.htm">Receive High Grade Materials (Requires 1 set of Knowledge of the Giants Anthology)</a> -</body></html> \ No newline at end of file diff --git a/L2J_DataPack_BETA/dist/game/data/scripts/quests/376_GiantsExploration1/__init__.py b/L2J_DataPack_BETA/dist/game/data/scripts/quests/376_GiantsExploration1/__init__.py deleted file mode 100644 index 9ee0d060dfcb6346176898b5d95fcc3ee6b1dfe9..0000000000000000000000000000000000000000 --- a/L2J_DataPack_BETA/dist/game/data/scripts/quests/376_GiantsExploration1/__init__.py +++ /dev/null @@ -1,125 +0,0 @@ -# Created by Gnacik -# 2010-02-17 based on official Franz server - -import sys -from com.l2jserver.gameserver.model.quest import State -from com.l2jserver.gameserver.model.quest import QuestState -from com.l2jserver.gameserver.model.quest.jython import QuestJython as JQuest - -qn = "376_GiantsExploration1" - -# NPC -SOBLING = 31147 - -# Items -ANCIENT_PARCHMENT = 14841 -BOOK1,BOOK2,BOOK3,BOOK4,BOOK5 = [14836,14837,14838,14839,14840] - -# Drop Chance -DROP_CHANCE = 20 - -# Mobs -MOBS = [22670,22671,22672,22673,22674,22675,22676,22677] - - -class Quest (JQuest) : - - def __init__(self,id,name,descr): - JQuest.__init__(self,id,name,descr) - self.questItemIds = [ANCIENT_PARCHMENT] - - def onExchangeRequest(self,event,st,qty,rem) : - if st.getQuestItemsCount(BOOK1) >= rem and st.getQuestItemsCount(BOOK2) >= rem and st.getQuestItemsCount(BOOK3) >= rem and st.getQuestItemsCount(BOOK4) >= rem and st.getQuestItemsCount(BOOK5) >= rem : - st.takeItems(BOOK1,rem) - st.takeItems(BOOK2,rem) - st.takeItems(BOOK3,rem) - st.takeItems(BOOK4,rem) - st.takeItems(BOOK5,rem) - st.giveItems(int(event),qty) - st.playSound("ItemSound.quest_finish") - return "31147-ok.htm" - else: - return "31147-no.htm" - - def onAdvEvent (self,event,npc,player) : - htmltext = event - st = player.getQuestState(qn) - if not st : return - if event == "31147-02.htm" : - st.set("cond","1") - st.setState(State.STARTED) - st.playSound("ItemSound.quest_accept") - elif event == "31147-quit.htm" : - st.unset("cond") - st.exitQuest(1) - st.playSound("ItemSound.quest_finish") - elif event.isdigit() : - if int(event) == 9967 : # Recipe - Dynasty Sword (60%) - htmltext = self.onExchangeRequest(event,st,1,10) - elif int(event) == 9968 : # Recipe - Dynasty Blade (60%) - htmltext = self.onExchangeRequest(event,st,1,10) - elif int(event) == 9969 : # Recipe - Dynasty Phantom (60%) - htmltext = self.onExchangeRequest(event,st,1,10) - elif int(event) == 9970 : # Recipe - Dynasty Bow (60%) - htmltext = self.onExchangeRequest(event,st,1,10) - elif int(event) == 9971 : # Recipe - Dynasty Knife (60%) - htmltext = self.onExchangeRequest(event,st,1,10) - elif int(event) == 9972 : # Recipe - Dynasty Halberd (60%) - htmltext = self.onExchangeRequest(event,st,1,10) - elif int(event) == 9973 : # Recipe - Dynasty Cudgel (60%) - htmltext = self.onExchangeRequest(event,st,1,10) - elif int(event) == 9974 : # Recipe - Dynasty Mace (60%) - htmltext = self.onExchangeRequest(event,st,1,10) - elif int(event) == 9975 : # Recipe - Dynasty Bagh-Nakh (60%) - htmltext = self.onExchangeRequest(event,st,1,10) - elif int(event) == 9628 : # Leonard - htmltext = self.onExchangeRequest(event,st,6,1) - elif int(event) == 9629 : # Adamantine - htmltext = self.onExchangeRequest(event,st,3,1) - elif int(event) == 9630 : # Orichalcum - htmltext = self.onExchangeRequest(event,st,4,1) - - return htmltext - - def onTalk (self,npc,player) : - htmltext = Quest.getNoQuestMsg(player) - st = player.getQuestState(qn) - if not st : return htmltext - - npcId = npc.getNpcId() - cond = st.getInt("cond") - - if npcId == SOBLING: - if st.getState() == State.STARTED : - if st.getQuestItemsCount(BOOK1) > 0 and st.getQuestItemsCount(BOOK2) > 0 and st.getQuestItemsCount(BOOK3) > 0 and st.getQuestItemsCount(BOOK4) > 0 and st.getQuestItemsCount(BOOK5) > 0 : - # To do - htmltext = "31147-03.htm" - else: - htmltext = "31147-02a.htm" - else: - if player.getLevel() >= 79 : - htmltext = "31147-01.htm" - else : - htmltext = "31147-00.htm" - return htmltext - - def onKill(self,npc,player,isPet) : - st = player.getQuestState(qn) - if not st : return - if st.getState() != State.STARTED : return - - npcId = npc.getNpcId() - cond = st.getInt("cond") - if cond == 1 and npcId in MOBS : - if st.getRandom(100) < DROP_CHANCE : - st.giveItems(ANCIENT_PARCHMENT,1) - st.playSound("ItemSound.quest_itemget") - return - -QUEST = Quest(376,qn,"Exploration of the Giants Cave, Part I") - -QUEST.addStartNpc(SOBLING) -QUEST.addTalkId(SOBLING) - -for i in MOBS : - QUEST.addKillId(i) diff --git a/L2J_DataPack_BETA/dist/game/data/scripts/quests/377_GiantsExploration2/31147-04.htm b/L2J_DataPack_BETA/dist/game/data/scripts/quests/377_GiantsExploration2/31147-04.htm deleted file mode 100644 index 588db384353ec64a1c3be7912d74fb6e96e5ad7a..0000000000000000000000000000000000000000 --- a/L2J_DataPack_BETA/dist/game/data/scripts/quests/377_GiantsExploration2/31147-04.htm +++ /dev/null @@ -1,5 +0,0 @@ -<html><body>Expedition Captain Sobling:<br> -Rewards appropriate for your effort are always prepared. If you make enough effort, you can take anything. But, what would you like?<br> -<a action="bypass -h Quest 377_GiantsExploration2 31147-04a.htm">Receive Giant's Codex - Oblivion or Discipline (Requires 5 sets of Wisdom of the Giants Text)</a><br> -<a action="bypass -h Quest 377_GiantsExploration2 31147-04b.htm">Receive High Grade Materials (Requires 1 set of Knowledge of the Giants Anthology)</a> -</body></html> \ No newline at end of file diff --git a/L2J_DataPack_BETA/dist/game/data/scripts/quests/377_GiantsExploration2/__init__.py b/L2J_DataPack_BETA/dist/game/data/scripts/quests/377_GiantsExploration2/__init__.py deleted file mode 100644 index 5163680caca17e12d9c17e69c637b5a394c3212b..0000000000000000000000000000000000000000 --- a/L2J_DataPack_BETA/dist/game/data/scripts/quests/377_GiantsExploration2/__init__.py +++ /dev/null @@ -1,109 +0,0 @@ -# Created by Gnacik -# 2010-02-09 based on official Franz server -import sys -from com.l2jserver.gameserver.model.quest import State -from com.l2jserver.gameserver.model.quest import QuestState -from com.l2jserver.gameserver.model.quest.jython import QuestJython as JQuest - -qn = "377_GiantsExploration2" - -# NPC -SOBLING = 31147 - -# Items -TITAN_ANCIENT_BOOK = 14847 -BOOK1,BOOK2,BOOK3,BOOK4,BOOK5 = [14842,14843,14844,14845,14846] - -# Drop Chance -DROP_CHANCE = 50 - -# Mobs -MOBS = [22661,22662,22663,22664,22665,22666,22667,22668,22669] - - -class Quest (JQuest) : - - def __init__(self,id,name,descr): - JQuest.__init__(self,id,name,descr) - self.questItemIds = [TITAN_ANCIENT_BOOK] - - def onExchangeRequest(self,event,st,qty,rem) : - if st.getQuestItemsCount(BOOK1) >= rem and st.getQuestItemsCount(BOOK2) >= rem and st.getQuestItemsCount(BOOK3) >= rem and st.getQuestItemsCount(BOOK4) >= rem and st.getQuestItemsCount(BOOK5) >= rem : - st.takeItems(BOOK1,rem) - st.takeItems(BOOK2,rem) - st.takeItems(BOOK3,rem) - st.takeItems(BOOK4,rem) - st.takeItems(BOOK5,rem) - st.giveItems(int(event),qty) - st.playSound("ItemSound.quest_finish") - return "31147-ok.htm" - else: - return "31147-no.htm" - - def onAdvEvent (self,event,npc,player) : - htmltext = event - st = player.getQuestState(qn) - if not st : return - if event == "31147-02.htm" : - st.set("cond","1") - st.setState(State.STARTED) - st.playSound("ItemSound.quest_accept") - elif event == "31147-quit.htm" : - st.unset("cond") - st.exitQuest(1) - st.playSound("ItemSound.quest_finish") - elif event.isdigit() : - if int(event) == 9625 : # Giant's Codex - Oblivion - htmltext = self.onExchangeRequest(event,st,1,5) - elif int(event) == 9626 : # Giant's Codex - Discipline - htmltext = self.onExchangeRequest(event,st,1,5) - elif int(event) == 9628 : # Leonard - htmltext = self.onExchangeRequest(event,st,6,1) - elif int(event) == 9629 : # Adamantine - htmltext = self.onExchangeRequest(event,st,3,1) - elif int(event) == 9630 : # Orichalcum - htmltext = self.onExchangeRequest(event,st,4,1) - - return htmltext - - def onTalk (self,npc,player) : - htmltext = Quest.getNoQuestMsg(player) - st = player.getQuestState(qn) - if not st : return htmltext - - npcId = npc.getNpcId() - cond = st.getInt("cond") - - if npcId == SOBLING: - if st.getState() == State.STARTED : - if st.getQuestItemsCount(BOOK1) > 0 and st.getQuestItemsCount(BOOK2) > 0 and st.getQuestItemsCount(BOOK3) > 0 and st.getQuestItemsCount(BOOK4) > 0 and st.getQuestItemsCount(BOOK5) > 0 : - htmltext = "31147-03.htm" - else: - htmltext = "31147-02a.htm" - else: - if player.getLevel() >= 79 : - htmltext = "31147-01.htm" - else : - htmltext = "31147-00.htm" - return htmltext - - def onKill(self,npc,player,isPet) : - st = player.getQuestState(qn) - if not st : return - if st.getState() != State.STARTED : return - - npcId = npc.getNpcId() - cond = st.getInt("cond") - if cond == 1 and npcId in MOBS : - if st.getRandom(100) < DROP_CHANCE : - st.giveItems(TITAN_ANCIENT_BOOK,1) - st.playSound("ItemSound.quest_itemget") - return - -QUEST = Quest(377,qn,"Exploration of the Giants Cave, Part II") - -QUEST.addStartNpc(SOBLING) -QUEST.addTalkId(SOBLING) - -for i in MOBS : - QUEST.addKillId(i) \ No newline at end of file diff --git a/L2J_DataPack_BETA/dist/game/data/scripts/quests/376_GiantsExploration1/31147-00.htm b/L2J_DataPack_BETA/dist/game/data/scripts/quests/Q376_ExplorationOfTheGiantsCavePart1/31147-00.html similarity index 100% rename from L2J_DataPack_BETA/dist/game/data/scripts/quests/376_GiantsExploration1/31147-00.htm rename to L2J_DataPack_BETA/dist/game/data/scripts/quests/Q376_ExplorationOfTheGiantsCavePart1/31147-00.html diff --git a/L2J_DataPack_BETA/dist/game/data/scripts/quests/376_GiantsExploration1/31147-01.htm b/L2J_DataPack_BETA/dist/game/data/scripts/quests/Q376_ExplorationOfTheGiantsCavePart1/31147-01.htm similarity index 100% rename from L2J_DataPack_BETA/dist/game/data/scripts/quests/376_GiantsExploration1/31147-01.htm rename to L2J_DataPack_BETA/dist/game/data/scripts/quests/Q376_ExplorationOfTheGiantsCavePart1/31147-01.htm diff --git a/L2J_DataPack_BETA/dist/game/data/scripts/quests/376_GiantsExploration1/31147-02.htm b/L2J_DataPack_BETA/dist/game/data/scripts/quests/Q376_ExplorationOfTheGiantsCavePart1/31147-02.htm similarity index 100% rename from L2J_DataPack_BETA/dist/game/data/scripts/quests/376_GiantsExploration1/31147-02.htm rename to L2J_DataPack_BETA/dist/game/data/scripts/quests/Q376_ExplorationOfTheGiantsCavePart1/31147-02.htm diff --git a/L2J_DataPack_BETA/dist/game/data/scripts/quests/376_GiantsExploration1/31147-02a.htm b/L2J_DataPack_BETA/dist/game/data/scripts/quests/Q376_ExplorationOfTheGiantsCavePart1/31147-02a.html similarity index 100% rename from L2J_DataPack_BETA/dist/game/data/scripts/quests/376_GiantsExploration1/31147-02a.htm rename to L2J_DataPack_BETA/dist/game/data/scripts/quests/Q376_ExplorationOfTheGiantsCavePart1/31147-02a.html diff --git a/L2J_DataPack_BETA/dist/game/data/scripts/quests/376_GiantsExploration1/31147-03.htm b/L2J_DataPack_BETA/dist/game/data/scripts/quests/Q376_ExplorationOfTheGiantsCavePart1/31147-03.htm similarity index 69% rename from L2J_DataPack_BETA/dist/game/data/scripts/quests/376_GiantsExploration1/31147-03.htm rename to L2J_DataPack_BETA/dist/game/data/scripts/quests/Q376_ExplorationOfTheGiantsCavePart1/31147-03.htm index 4aa74114c9b64fcc3ea94ca9ee88690c2019654e..1d665d281f70eecbae517f5e55a36b8e76ac1365 100644 --- a/L2J_DataPack_BETA/dist/game/data/scripts/quests/376_GiantsExploration1/31147-03.htm +++ b/L2J_DataPack_BETA/dist/game/data/scripts/quests/Q376_ExplorationOfTheGiantsCavePart1/31147-03.htm @@ -1,7 +1,7 @@ <html><body>Expedition Captain Sobling:<br> This, this is definitely the Knowledge of the Giants Anthology...! You must have had a hard time to find this precious one. Thank you so much.<br> But, what can i help you with?<br> -<a action="bypass -h Quest 376_GiantsExploration1 31147-04.htm">Submit completed text.</a><br> -<a action="bypass -h Quest 376_GiantsExploration1 31147-cont.htm">Continue to search for more.</a><br> -<a action="bypass -h Quest 376_GiantsExploration1 31147-quit.htm">Stop searching.</a> +<a action="bypass -h Quest 376_GiantsExploration1 31147-04.html">Submit completed text.</a><br> +<a action="bypass -h Quest 376_GiantsExploration1 31147-cont.html">Continue to search for more.</a><br> +<a action="bypass -h Quest 376_GiantsExploration1 31147-quit.html">Stop searching.</a> </body></html> \ No newline at end of file diff --git a/L2J_DataPack_BETA/dist/game/data/scripts/quests/Q376_ExplorationOfTheGiantsCavePart1/31147-04.html b/L2J_DataPack_BETA/dist/game/data/scripts/quests/Q376_ExplorationOfTheGiantsCavePart1/31147-04.html new file mode 100644 index 0000000000000000000000000000000000000000..aa5e85179e82336f9759741e6a195ea6d4898c7c --- /dev/null +++ b/L2J_DataPack_BETA/dist/game/data/scripts/quests/Q376_ExplorationOfTheGiantsCavePart1/31147-04.html @@ -0,0 +1,5 @@ +<html><body>Expedition Captain Sobling:<br> +Rewards appropriate for your effort are always prepared. If you make enough effort, you can take anything. But, what would you like?<br> +<a action="bypass -h Quest 376_GiantsExploration1 31147-04a.html">Receive S80 Weapon Recipe as a reward (Requires 10 sets of Knowledge of the Giants Anthology)</a><br> +<a action="bypass -h Quest 376_GiantsExploration1 31147-04b.html">Receive High Grade Materials (Requires 1 set of Knowledge of the Giants Anthology)</a> +</body></html> \ No newline at end of file diff --git a/L2J_DataPack_BETA/dist/game/data/scripts/quests/376_GiantsExploration1/31147-04a.htm b/L2J_DataPack_BETA/dist/game/data/scripts/quests/Q376_ExplorationOfTheGiantsCavePart1/31147-04a.html similarity index 100% rename from L2J_DataPack_BETA/dist/game/data/scripts/quests/376_GiantsExploration1/31147-04a.htm rename to L2J_DataPack_BETA/dist/game/data/scripts/quests/Q376_ExplorationOfTheGiantsCavePart1/31147-04a.html diff --git a/L2J_DataPack_BETA/dist/game/data/scripts/quests/376_GiantsExploration1/31147-04b.htm b/L2J_DataPack_BETA/dist/game/data/scripts/quests/Q376_ExplorationOfTheGiantsCavePart1/31147-04b.html similarity index 100% rename from L2J_DataPack_BETA/dist/game/data/scripts/quests/376_GiantsExploration1/31147-04b.htm rename to L2J_DataPack_BETA/dist/game/data/scripts/quests/Q376_ExplorationOfTheGiantsCavePart1/31147-04b.html diff --git a/L2J_DataPack_BETA/dist/game/data/scripts/quests/376_GiantsExploration1/31147-cont.htm b/L2J_DataPack_BETA/dist/game/data/scripts/quests/Q376_ExplorationOfTheGiantsCavePart1/31147-cont.html similarity index 100% rename from L2J_DataPack_BETA/dist/game/data/scripts/quests/376_GiantsExploration1/31147-cont.htm rename to L2J_DataPack_BETA/dist/game/data/scripts/quests/Q376_ExplorationOfTheGiantsCavePart1/31147-cont.html diff --git a/L2J_DataPack_BETA/dist/game/data/scripts/quests/376_GiantsExploration1/31147-no.htm b/L2J_DataPack_BETA/dist/game/data/scripts/quests/Q376_ExplorationOfTheGiantsCavePart1/31147-no.html similarity index 100% rename from L2J_DataPack_BETA/dist/game/data/scripts/quests/376_GiantsExploration1/31147-no.htm rename to L2J_DataPack_BETA/dist/game/data/scripts/quests/Q376_ExplorationOfTheGiantsCavePart1/31147-no.html diff --git a/L2J_DataPack_BETA/dist/game/data/scripts/quests/376_GiantsExploration1/31147-ok.htm b/L2J_DataPack_BETA/dist/game/data/scripts/quests/Q376_ExplorationOfTheGiantsCavePart1/31147-ok.html similarity index 68% rename from L2J_DataPack_BETA/dist/game/data/scripts/quests/376_GiantsExploration1/31147-ok.htm rename to L2J_DataPack_BETA/dist/game/data/scripts/quests/Q376_ExplorationOfTheGiantsCavePart1/31147-ok.html index 17812a6f77a28373bfac3993be82ca5fed38380e..da9a315ede9544b805955178846c6d43e205f847 100644 --- a/L2J_DataPack_BETA/dist/game/data/scripts/quests/376_GiantsExploration1/31147-ok.htm +++ b/L2J_DataPack_BETA/dist/game/data/scripts/quests/Q376_ExplorationOfTheGiantsCavePart1/31147-ok.html @@ -1,7 +1,7 @@ <html><body>Expedition Leader Sobling:<br> Thank you! I think our expedition will be a success now thanks to you, adventurer.<br> Well, do you have any other business with me?<br> -<a action="bypass -h Quest 376_GiantsExploration1 31147-03.htm">Receive reward.</a><br> -<a action="bypass -h Quest 376_GiantsExploration1 31147-cont.htm">Keep hunting.</a><br> -<a action="bypass -h Quest 376_GiantsExploration1 31147-quit.htm">Say you want to quit.</a> +<a action="bypass -h Quest 376_GiantsExploration1 31147-03.html">Receive reward.</a><br> +<a action="bypass -h Quest 376_GiantsExploration1 31147-cont.html">Keep hunting.</a><br> +<a action="bypass -h Quest 376_GiantsExploration1 31147-quit.html">Say you want to quit.</a> </body></html> \ No newline at end of file diff --git a/L2J_DataPack_BETA/dist/game/data/scripts/quests/377_GiantsExploration2/31147-quit.htm b/L2J_DataPack_BETA/dist/game/data/scripts/quests/Q376_ExplorationOfTheGiantsCavePart1/31147-quit.html similarity index 98% rename from L2J_DataPack_BETA/dist/game/data/scripts/quests/377_GiantsExploration2/31147-quit.htm rename to L2J_DataPack_BETA/dist/game/data/scripts/quests/Q376_ExplorationOfTheGiantsCavePart1/31147-quit.html index 7a85b02d3ac469fba9ed17b6bc7465c1be56e71e..277daa1d3566897e37866aa960e86935c4c960d6 100644 --- a/L2J_DataPack_BETA/dist/game/data/scripts/quests/377_GiantsExploration2/31147-quit.htm +++ b/L2J_DataPack_BETA/dist/game/data/scripts/quests/Q376_ExplorationOfTheGiantsCavePart1/31147-quit.html @@ -1,3 +1,3 @@ -<html><body>Expedition Leader Sobling:<br> -Too bad. I was hoping you could help us... +<html><body>Expedition Leader Sobling:<br> +Too bad. I was hoping you could help us... </body></html> \ No newline at end of file diff --git a/L2J_DataPack_BETA/dist/game/data/scripts/quests/Q376_ExplorationOfTheGiantsCavePart1/Q376_ExplorationOfTheGiantsCavePart1.java b/L2J_DataPack_BETA/dist/game/data/scripts/quests/Q376_ExplorationOfTheGiantsCavePart1/Q376_ExplorationOfTheGiantsCavePart1.java new file mode 100644 index 0000000000000000000000000000000000000000..59a1b05614093da39257354ae84675a123f4f057 --- /dev/null +++ b/L2J_DataPack_BETA/dist/game/data/scripts/quests/Q376_ExplorationOfTheGiantsCavePart1/Q376_ExplorationOfTheGiantsCavePart1.java @@ -0,0 +1,220 @@ +/* + * 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 <http://www.gnu.org/licenses/>. + */ +package quests.Q376_ExplorationOfTheGiantsCavePart1; + +import com.l2jserver.gameserver.model.actor.L2Npc; +import com.l2jserver.gameserver.model.actor.instance.L2PcInstance; +import com.l2jserver.gameserver.model.quest.Quest; +import com.l2jserver.gameserver.model.quest.QuestState; +import com.l2jserver.gameserver.model.quest.State; +import com.l2jserver.gameserver.network.serverpackets.RadarControl; +import com.l2jserver.gameserver.util.Util; + +/** + * Exploration of the Giants' Cave Part 1 (376)<br> + * 2010-02-17 based on official Franz server.<br> + * Jython script by Gnacik. + * @author nonom + */ +public class Q376_ExplorationOfTheGiantsCavePart1 extends Quest +{ + private static final String qn = "376_ExplorationOfTheGiantsCavePart1"; + + // NPC's + private static final int SOBLING = 31147; + + // Items + private static final int ANCIENT_PARCHMENT = 14841; + private static final int BOOK1 = 14836; + private static final int BOOK2 = 14837; + private static final int BOOK3 = 14838; + private static final int BOOK4 = 14839; + private static final int BOOK5 = 14840; + + // Drop Chance + private static final int DROP_CHANCE = 20; + + // Mobs + private static final int[] _mobs = + { + 22670, + 22671, + 22672, + 22673, + 22674, + 22675, + 22676, + 22677 + }; + + // Rewards + private static final int RECIPE_DYNASTY_SWORD_60 = 9967; + private static final int RECIPE_DYNASTY_BLADE_60 = 9968; + private static final int RECIPE_DYNASTY_PHANTOM_60 = 9969; + private static final int RECIPE_DYNASTY_BOW_60 = 9970; + private static final int RECIPE_DYNASTY_KNIFE_60 = 9971; + private static final int RECIPE_DYNASTY_HALBERD_60 = 9972; + private static final int RECIPE_DYNASTY_CUDGEL_60 = 9973; + private static final int RECIPE_DYNASTY_MACE_60 = 9974; + private static final int RECIPE_DYNASTY_BAGHNAKH_60 = 9975; + private static final int LEONARD = 9628; + private static final int ADAMANTINE = 9629; + private static final int ORICHALCUM = 9630; + + @Override + public String onAdvEvent(String event, L2Npc npc, L2PcInstance player) + { + String htmltext = event; + final QuestState st = player.getQuestState(qn); + if (st == null) + { + return htmltext; + } + + if (event.equalsIgnoreCase("31147-02.htm")) + { + st.setState(State.STARTED); + st.set("cond", "1"); + st.playSound("ItemSound.quest_accept"); + player.sendPacket(new RadarControl(0, 2, 185712, 47414, -4350)); + } + else if (event.equalsIgnoreCase("31147-quit.html")) + { + st.playSound("ItemSound.quest_finish"); + st.exitQuest(true); + } + else if (Util.isDigit(event)) + { + final int val = Integer.parseInt(event); + switch (val) + { + case RECIPE_DYNASTY_SWORD_60: + htmltext = onExchangeRequest(st, val, 1, 10); // Recipe Dynasty Sword (60%) + break; + case RECIPE_DYNASTY_BLADE_60: + htmltext = onExchangeRequest(st, val, 1, 10); // Recipe Dynasty Blade (60%) + break; + case RECIPE_DYNASTY_PHANTOM_60: + htmltext = onExchangeRequest(st, val, 1, 10); // Recipe Dynasty Phantom (60%) + break; + case RECIPE_DYNASTY_BOW_60: + htmltext = onExchangeRequest(st, val, 1, 10); // Recipe Dynasty Bow (60%) + break; + case RECIPE_DYNASTY_KNIFE_60: + htmltext = onExchangeRequest(st, val, 1, 10); // Recipe Dynasty Knife (60%) + break; + case RECIPE_DYNASTY_HALBERD_60: + htmltext = onExchangeRequest(st, val, 1, 10); // Recipe Dynasty Halberd (60%) + break; + case RECIPE_DYNASTY_CUDGEL_60: + htmltext = onExchangeRequest(st, val, 1, 10); // Recipe Dynasty Cudgel (60%) + break; + case RECIPE_DYNASTY_MACE_60: + htmltext = onExchangeRequest(st, val, 1, 10); // Recipe Dynasty Mace (60%) + break; + case RECIPE_DYNASTY_BAGHNAKH_60: + htmltext = onExchangeRequest(st, val, 1, 10); // Recipe Dynasty Bagh-Nakh (60%) + break; + case LEONARD: + htmltext = onExchangeRequest(st, val, 6, 1); // Leonard + break; + case ADAMANTINE: + htmltext = onExchangeRequest(st, val, 3, 1); // Adamantine + break; + case ORICHALCUM: + htmltext = onExchangeRequest(st, val, 4, 1); // Orichalcum + break; + } + } + return htmltext; + } + + @Override + public String onTalk(L2Npc npc, L2PcInstance player) + { + String htmltext = getNoQuestMsg(player); + final QuestState st = player.getQuestState(qn); + if (st == null) + { + return htmltext; + } + + if (npc.getNpcId() == SOBLING) + { + switch (st.getState()) + { + case State.COMPLETED: + htmltext = (player.getLevel() >= 79) ? "31147-01.htm" : "31147-00.html"; + break; + case State.STARTED: + htmltext = (st.hasQuestItems(BOOK1) && st.hasQuestItems(BOOK2) && st.hasQuestItems(BOOK3) && st.hasQuestItems(BOOK4) && st.hasQuestItems(BOOK5)) ? "31147-03.html" : "31147-02a.html"; + break; + } + } + return htmltext; + } + + @Override + public String onKill(L2Npc npc, L2PcInstance player, boolean isPet) + { + final QuestState st = player.getQuestState(qn); + if (st == null) + { + return null; + } + + if ((st.getInt("cond") == 1) && (st.getRandom(100) < DROP_CHANCE)) + { + st.giveItems(ANCIENT_PARCHMENT, 1); + st.playSound("ItemSound.quest_itemget"); + } + return super.onKill(npc, player, isPet); + } + + private String onExchangeRequest(QuestState st, int giveid, int qty, int rem) + { + if ((st.getQuestItemsCount(BOOK1) >= rem) && (st.getQuestItemsCount(BOOK2) >= rem) && (st.getQuestItemsCount(BOOK3) >= rem) && (st.getQuestItemsCount(BOOK4) >= rem) && (st.getQuestItemsCount(BOOK5) >= rem)) + { + st.takeItems(BOOK1, rem); + st.takeItems(BOOK2, rem); + st.takeItems(BOOK3, rem); + st.takeItems(BOOK4, rem); + st.takeItems(BOOK5, rem); + st.giveItems(giveid, qty); + st.playSound("ItemSound.quest_finish"); + return "31147-ok.html"; + } + return "31147-no.html"; + } + + public Q376_ExplorationOfTheGiantsCavePart1(int id, String name, String descr) + { + super(id, name, descr); + + addStartNpc(SOBLING); + addTalkId(SOBLING); + addKillId(_mobs); + + questItemIds = new int[] + { + ANCIENT_PARCHMENT + }; + } + + public static void main(String[] args) + { + new Q376_ExplorationOfTheGiantsCavePart1(376, qn, "Exploration of the Giants' Cave - Part 1"); + } +} diff --git a/L2J_DataPack_BETA/dist/game/data/scripts/quests/377_GiantsExploration2/31147-00.htm b/L2J_DataPack_BETA/dist/game/data/scripts/quests/Q377_ExplorationOfTheGiantsCavePart2/31147-00.html similarity index 100% rename from L2J_DataPack_BETA/dist/game/data/scripts/quests/377_GiantsExploration2/31147-00.htm rename to L2J_DataPack_BETA/dist/game/data/scripts/quests/Q377_ExplorationOfTheGiantsCavePart2/31147-00.html diff --git a/L2J_DataPack_BETA/dist/game/data/scripts/quests/377_GiantsExploration2/31147-01.htm b/L2J_DataPack_BETA/dist/game/data/scripts/quests/Q377_ExplorationOfTheGiantsCavePart2/31147-01.htm similarity index 100% rename from L2J_DataPack_BETA/dist/game/data/scripts/quests/377_GiantsExploration2/31147-01.htm rename to L2J_DataPack_BETA/dist/game/data/scripts/quests/Q377_ExplorationOfTheGiantsCavePart2/31147-01.htm diff --git a/L2J_DataPack_BETA/dist/game/data/scripts/quests/377_GiantsExploration2/31147-02.htm b/L2J_DataPack_BETA/dist/game/data/scripts/quests/Q377_ExplorationOfTheGiantsCavePart2/31147-02.htm similarity index 100% rename from L2J_DataPack_BETA/dist/game/data/scripts/quests/377_GiantsExploration2/31147-02.htm rename to L2J_DataPack_BETA/dist/game/data/scripts/quests/Q377_ExplorationOfTheGiantsCavePart2/31147-02.htm diff --git a/L2J_DataPack_BETA/dist/game/data/scripts/quests/377_GiantsExploration2/31147-02a.htm b/L2J_DataPack_BETA/dist/game/data/scripts/quests/Q377_ExplorationOfTheGiantsCavePart2/31147-02a.html similarity index 100% rename from L2J_DataPack_BETA/dist/game/data/scripts/quests/377_GiantsExploration2/31147-02a.htm rename to L2J_DataPack_BETA/dist/game/data/scripts/quests/Q377_ExplorationOfTheGiantsCavePart2/31147-02a.html diff --git a/L2J_DataPack_BETA/dist/game/data/scripts/quests/377_GiantsExploration2/31147-03.htm b/L2J_DataPack_BETA/dist/game/data/scripts/quests/Q377_ExplorationOfTheGiantsCavePart2/31147-03.html similarity index 68% rename from L2J_DataPack_BETA/dist/game/data/scripts/quests/377_GiantsExploration2/31147-03.htm rename to L2J_DataPack_BETA/dist/game/data/scripts/quests/Q377_ExplorationOfTheGiantsCavePart2/31147-03.html index 2304af33e4db0fd7e304ee465e5ec1145c85b402..1da206fff4477a73d1573ce1448a378259aef3cc 100644 --- a/L2J_DataPack_BETA/dist/game/data/scripts/quests/377_GiantsExploration2/31147-03.htm +++ b/L2J_DataPack_BETA/dist/game/data/scripts/quests/Q377_ExplorationOfTheGiantsCavePart2/31147-03.html @@ -1,7 +1,7 @@ <html><body>Expedition Captain Sobling:<br> This, this is definitely the Wisdom of the Giants Text...! You must have had a hard time to find this precious one. Thank you so much.<br> But, what can i help you with?<br> -<a action="bypass -h Quest 377_GiantsExploration2 31147-04.htm">Submit completed text.</a><br> -<a action="bypass -h Quest 377_GiantsExploration2 31147-cont.htm">Continue to search for more.</a><br> -<a action="bypass -h Quest 377_GiantsExploration2 31147-quit.htm">Stop searching.</a> +<a action="bypass -h Quest 377_GiantsExploration2 31147-04.html">Submit completed text.</a><br> +<a action="bypass -h Quest 377_GiantsExploration2 31147-cont.html">Continue to search for more.</a><br> +<a action="bypass -h Quest 377_GiantsExploration2 31147-quit.html">Stop searching.</a> </body></html> \ No newline at end of file diff --git a/L2J_DataPack_BETA/dist/game/data/scripts/quests/Q377_ExplorationOfTheGiantsCavePart2/31147-04.html b/L2J_DataPack_BETA/dist/game/data/scripts/quests/Q377_ExplorationOfTheGiantsCavePart2/31147-04.html new file mode 100644 index 0000000000000000000000000000000000000000..8ea300250662a9829946ee4dc2c896dc0d7a9e01 --- /dev/null +++ b/L2J_DataPack_BETA/dist/game/data/scripts/quests/Q377_ExplorationOfTheGiantsCavePart2/31147-04.html @@ -0,0 +1,5 @@ +<html><body>Expedition Captain Sobling:<br> +Rewards appropriate for your effort are always prepared. If you make enough effort, you can take anything. But, what would you like?<br> +<a action="bypass -h Quest 377_GiantsExploration2 31147-04a.html">Receive Giant's Codex - Oblivion or Discipline (Requires 5 sets of Wisdom of the Giants Text)</a><br> +<a action="bypass -h Quest 377_GiantsExploration2 31147-04b.html">Receive High Grade Materials (Requires 1 set of Knowledge of the Giants Anthology)</a> +</body></html> \ No newline at end of file diff --git a/L2J_DataPack_BETA/dist/game/data/scripts/quests/377_GiantsExploration2/31147-04a.htm b/L2J_DataPack_BETA/dist/game/data/scripts/quests/Q377_ExplorationOfTheGiantsCavePart2/31147-04a.html similarity index 100% rename from L2J_DataPack_BETA/dist/game/data/scripts/quests/377_GiantsExploration2/31147-04a.htm rename to L2J_DataPack_BETA/dist/game/data/scripts/quests/Q377_ExplorationOfTheGiantsCavePart2/31147-04a.html diff --git a/L2J_DataPack_BETA/dist/game/data/scripts/quests/377_GiantsExploration2/31147-04b.htm b/L2J_DataPack_BETA/dist/game/data/scripts/quests/Q377_ExplorationOfTheGiantsCavePart2/31147-04b.html similarity index 100% rename from L2J_DataPack_BETA/dist/game/data/scripts/quests/377_GiantsExploration2/31147-04b.htm rename to L2J_DataPack_BETA/dist/game/data/scripts/quests/Q377_ExplorationOfTheGiantsCavePart2/31147-04b.html diff --git a/L2J_DataPack_BETA/dist/game/data/scripts/quests/377_GiantsExploration2/31147-cont.htm b/L2J_DataPack_BETA/dist/game/data/scripts/quests/Q377_ExplorationOfTheGiantsCavePart2/31147-cont.html similarity index 100% rename from L2J_DataPack_BETA/dist/game/data/scripts/quests/377_GiantsExploration2/31147-cont.htm rename to L2J_DataPack_BETA/dist/game/data/scripts/quests/Q377_ExplorationOfTheGiantsCavePart2/31147-cont.html diff --git a/L2J_DataPack_BETA/dist/game/data/scripts/quests/377_GiantsExploration2/31147-no.htm b/L2J_DataPack_BETA/dist/game/data/scripts/quests/Q377_ExplorationOfTheGiantsCavePart2/31147-no.html similarity index 100% rename from L2J_DataPack_BETA/dist/game/data/scripts/quests/377_GiantsExploration2/31147-no.htm rename to L2J_DataPack_BETA/dist/game/data/scripts/quests/Q377_ExplorationOfTheGiantsCavePart2/31147-no.html diff --git a/L2J_DataPack_BETA/dist/game/data/scripts/quests/377_GiantsExploration2/31147-ok.htm b/L2J_DataPack_BETA/dist/game/data/scripts/quests/Q377_ExplorationOfTheGiantsCavePart2/31147-ok.html similarity index 68% rename from L2J_DataPack_BETA/dist/game/data/scripts/quests/377_GiantsExploration2/31147-ok.htm rename to L2J_DataPack_BETA/dist/game/data/scripts/quests/Q377_ExplorationOfTheGiantsCavePart2/31147-ok.html index 298466acb9b7ce3f2c2608714129917beba87a8e..914c87f6a29f2808e172833d285be0162b734131 100644 --- a/L2J_DataPack_BETA/dist/game/data/scripts/quests/377_GiantsExploration2/31147-ok.htm +++ b/L2J_DataPack_BETA/dist/game/data/scripts/quests/Q377_ExplorationOfTheGiantsCavePart2/31147-ok.html @@ -1,7 +1,7 @@ <html><body>Expedition Leader Sobling:<br> Thank you! I think our expedition will be a success now thanks to you, adventurer.<br> Well, do you have any other business with me?<br> -<a action="bypass -h Quest 377_GiantsExploration2 31147-03.htm">Receive reward.</a><br> -<a action="bypass -h Quest 377_GiantsExploration2 31147-cont.htm">Keep hunting.</a><br> -<a action="bypass -h Quest 377_GiantsExploration2 31147-quit.htm">Say you want to quit.</a> +<a action="bypass -h Quest 377_GiantsExploration2 31147-03.html">Receive reward.</a><br> +<a action="bypass -h Quest 377_GiantsExploration2 31147-cont.html">Keep hunting.</a><br> +<a action="bypass -h Quest 377_GiantsExploration2 31147-quit.html">Say you want to quit.</a> </body></html> \ No newline at end of file diff --git a/L2J_DataPack_BETA/dist/game/data/scripts/quests/376_GiantsExploration1/31147-quit.htm b/L2J_DataPack_BETA/dist/game/data/scripts/quests/Q377_ExplorationOfTheGiantsCavePart2/31147-quit.html similarity index 100% rename from L2J_DataPack_BETA/dist/game/data/scripts/quests/376_GiantsExploration1/31147-quit.htm rename to L2J_DataPack_BETA/dist/game/data/scripts/quests/Q377_ExplorationOfTheGiantsCavePart2/31147-quit.html diff --git a/L2J_DataPack_BETA/dist/game/data/scripts/quests/Q377_ExplorationOfTheGiantsCavePart2/Q377_ExplorationOfTheGiantsCavePart2.java b/L2J_DataPack_BETA/dist/game/data/scripts/quests/Q377_ExplorationOfTheGiantsCavePart2/Q377_ExplorationOfTheGiantsCavePart2.java new file mode 100644 index 0000000000000000000000000000000000000000..26fdefbcebf6d867ee92aaa7a6d2d066b4b0ecf4 --- /dev/null +++ b/L2J_DataPack_BETA/dist/game/data/scripts/quests/Q377_ExplorationOfTheGiantsCavePart2/Q377_ExplorationOfTheGiantsCavePart2.java @@ -0,0 +1,193 @@ +/* + * 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 <http://www.gnu.org/licenses/>. + */ +package quests.Q377_ExplorationOfTheGiantsCavePart2; + +import com.l2jserver.gameserver.model.actor.L2Npc; +import com.l2jserver.gameserver.model.actor.instance.L2PcInstance; +import com.l2jserver.gameserver.model.quest.Quest; +import com.l2jserver.gameserver.model.quest.QuestState; +import com.l2jserver.gameserver.model.quest.State; +import com.l2jserver.gameserver.network.serverpackets.RadarControl; +import com.l2jserver.gameserver.util.Util; + +/** + * Exploration of the Giants' Cave Part 2 (377)<br> + * 2010-02-17 based on official Franz server.<br> + * Original Jython script by Gnacik. + * @author nonom + */ +public class Q377_ExplorationOfTheGiantsCavePart2 extends Quest +{ + private static final String qn = "377_ExplorationOfTheGiantsCavePart2"; + + // NPC's + private static final int SOBLING = 31147; + + // Items + private static final int TITAN_ANCIENT_BOOK = 14847; + private static final int BOOK1 = 14842; + private static final int BOOK2 = 14843; + private static final int BOOK3 = 14844; + private static final int BOOK4 = 14845; + private static final int BOOK5 = 14846; + + // Drop Chance + private static final int DROP_CHANCE = 50; + + // Mobs + private static final int[] _mobs = + { + 22661, + 22662, + 22663, + 22664, + 22665, + 22666, + 22667, + 22668, + 22669 + }; + + // Rewards + private static final int OBLIVION = 9625; + private static final int DISCIPLINE = 9626; + private static final int LEONARD = 9628; + private static final int ADAMANTINE = 9629; + private static final int ORICHALCUM = 9630; + + @Override + public String onAdvEvent(String event, L2Npc npc, L2PcInstance player) + { + String htmltext = event; + final QuestState st = player.getQuestState(qn); + if (st == null) + { + return htmltext; + } + + if (event.equalsIgnoreCase("31147-02.htm")) + { + st.setState(State.STARTED); + st.set("cond", "1"); + st.playSound("ItemSound.quest_accept"); + player.sendPacket(new RadarControl(0, 2, -113360, -244676, -15536)); + } + else if (event.equalsIgnoreCase("31147-quit.html")) + { + st.playSound("ItemSound.quest_finish"); + st.exitQuest(true); + } + else if (Util.isDigit(event)) + { + final int val = Integer.parseInt(event); + switch (val) + { + case OBLIVION: + htmltext = onExchangeRequest(st, val, 1, 5); // Giant's Codex - Oblivion + break; + case DISCIPLINE: + htmltext = onExchangeRequest(st, val, 1, 5); // Giant's Codex - Discipline + break; + case LEONARD: + htmltext = onExchangeRequest(st, val, 6, 1); // Leonard + break; + case ADAMANTINE: + htmltext = onExchangeRequest(st, val, 3, 1); // Adamantine + break; + case ORICHALCUM: + htmltext = onExchangeRequest(st, val, 4, 1); // Orichalcum + break; + } + } + return htmltext; + } + + @Override + public String onTalk(L2Npc npc, L2PcInstance player) + { + String htmltext = getNoQuestMsg(player); + final QuestState st = player.getQuestState(qn); + if (st == null) + { + return htmltext; + } + + if (npc.getNpcId() == SOBLING) + { + switch (st.getState()) + { + case State.CREATED: + htmltext = (player.getLevel() >= 79) ? "31147-01.htm" : "31147-00.html"; + case State.STARTED: + htmltext = (st.hasQuestItems(BOOK1) && st.hasQuestItems(BOOK2) && st.hasQuestItems(BOOK3) && st.hasQuestItems(BOOK4) && st.hasQuestItems(BOOK5)) ? "31147-03.html" : "31147-02a.html"; + break; + } + + } + return htmltext; + } + + @Override + public String onKill(L2Npc npc, L2PcInstance player, boolean isPet) + { + final QuestState st = player.getQuestState(qn); + if (st == null) + { + return null; + } + + if ((st.getInt("cond") == 1) && (st.getRandom(100) < DROP_CHANCE)) + { + st.giveItems(TITAN_ANCIENT_BOOK, 1); + st.playSound("ItemSound.quest_itemget"); + } + return super.onKill(npc, player, isPet); + } + + private String onExchangeRequest(QuestState st, int giveid, int qty, int rem) + { + if ((st.getQuestItemsCount(BOOK1) >= rem) && (st.getQuestItemsCount(BOOK2) >= rem) && (st.getQuestItemsCount(BOOK3) >= rem) && (st.getQuestItemsCount(BOOK4) >= rem) && (st.getQuestItemsCount(BOOK5) >= rem)) + { + st.takeItems(BOOK1, rem); + st.takeItems(BOOK2, rem); + st.takeItems(BOOK3, rem); + st.takeItems(BOOK4, rem); + st.takeItems(BOOK5, rem); + st.giveItems(giveid, qty); + st.playSound("ItemSound.quest_finish"); + return "31147-ok.html"; + } + return "31147-no.html"; + } + + public Q377_ExplorationOfTheGiantsCavePart2(int id, String name, String descr) + { + super(id, name, descr); + + addStartNpc(SOBLING); + addTalkId(SOBLING); + addKillId(_mobs); + + questItemIds = new int[] + { + TITAN_ANCIENT_BOOK + }; + } + + public static void main(String[] args) + { + new Q377_ExplorationOfTheGiantsCavePart2(377, qn, "Exploration of the Giants' Cave - Part 2"); + } +} diff --git a/L2J_DataPack_BETA/dist/sql/game/updates/20120206update.sql b/L2J_DataPack_BETA/dist/sql/game/updates/20120206update.sql new file mode 100644 index 0000000000000000000000000000000000000000..d9b70115984066ef2d01cbcd9e139336942c2bae --- /dev/null +++ b/L2J_DataPack_BETA/dist/sql/game/updates/20120206update.sql @@ -0,0 +1,2 @@ +UPDATE `character_quests` SET `name` = '376_ExplorationOfTheGiantsCavePart1' WHERE `name` = '376_GiantsExploration1'; +UPDATE `character_quests` SET `name` = '377_ExplorationOfTheGiantsCavePart2' WHERE `name` = '377_GiantsExploration2'; \ No newline at end of file