From f6f6ef69e9531449a8bd6636058c3c931ba735ee Mon Sep 17 00:00:00 2001 From: Adry_85 <Adrya85@hotmail.it> Date: Thu, 26 Dec 2013 19:24:47 +0000 Subject: [PATCH] BETA: Retail-like quests in Java. * '''Collector of Jewels''' (369) * ''' An Elder Sows Seeds''' (370) Reviewed by: jurchiks --- L2J_DataPack_BETA/dist/game/data/scripts.cfg | 4 +- .../quests/369_CollectorOfJewels/30376-03.htm | 4 - .../quests/369_CollectorOfJewels/30376-04.htm | 4 - .../quests/369_CollectorOfJewels/30376-05.htm | 6 - .../quests/369_CollectorOfJewels/30376-06.htm | 9 - .../quests/369_CollectorOfJewels/30376-07.htm | 4 - .../quests/369_CollectorOfJewels/__init__.py | 131 ------------ .../quests/370_AWisemanSowsSeeds/30612-0a.htm | 7 - .../quests/370_AWisemanSowsSeeds/30612-4.htm | 8 - .../quests/370_AWisemanSowsSeeds/30612-5.htm | 6 - .../quests/370_AWisemanSowsSeeds/30612-6.htm | 4 - .../quests/370_AWisemanSowsSeeds/30612-8.htm | 6 - .../quests/370_AWisemanSowsSeeds/__init__.py | 94 --------- .../30376-01.htm} | 6 +- .../Q00369_CollectorOfJewels/30376-02.htm | 4 + .../30376-03.html} | 4 +- .../Q00369_CollectorOfJewels/30376-04.html | 6 + .../Q00369_CollectorOfJewels/30376-05.html | 8 + .../Q00369_CollectorOfJewels/30376-06.html | 3 + .../30376-07.html} | 2 +- .../Q00369_CollectorOfJewels/30376-08.html | 3 + .../Q00369_CollectorOfJewels/30376-09.html | 6 + .../30376-10.html} | 2 +- .../30376-11.html} | 6 +- .../Q00369_CollectorOfJewels.java | 194 ++++++++++++++++++ .../30612-01.htm} | 6 +- .../30612-02.htm} | 6 +- .../30612-03.htm} | 10 +- .../30612-04.htm} | 8 +- .../Q00370_AnElderSowsSeeds/30612-05.html | 8 + .../Q00370_AnElderSowsSeeds/30612-06.html | 8 + .../Q00370_AnElderSowsSeeds/30612-07.html | 6 + .../Q00370_AnElderSowsSeeds/30612-08.html | 7 + .../30612-09.html} | 4 +- .../30612-10.html} | 4 +- .../Q00370_AnElderSowsSeeds/30612-11.html | 4 + .../Q00370_AnElderSowsSeeds.java | 192 +++++++++++++++++ .../dist/sql/game/updates/20131226update.sql | 2 + 38 files changed, 482 insertions(+), 314 deletions(-) delete mode 100644 L2J_DataPack_BETA/dist/game/data/scripts/quests/369_CollectorOfJewels/30376-03.htm delete mode 100644 L2J_DataPack_BETA/dist/game/data/scripts/quests/369_CollectorOfJewels/30376-04.htm delete mode 100644 L2J_DataPack_BETA/dist/game/data/scripts/quests/369_CollectorOfJewels/30376-05.htm delete mode 100644 L2J_DataPack_BETA/dist/game/data/scripts/quests/369_CollectorOfJewels/30376-06.htm delete mode 100644 L2J_DataPack_BETA/dist/game/data/scripts/quests/369_CollectorOfJewels/30376-07.htm delete mode 100644 L2J_DataPack_BETA/dist/game/data/scripts/quests/369_CollectorOfJewels/__init__.py delete mode 100644 L2J_DataPack_BETA/dist/game/data/scripts/quests/370_AWisemanSowsSeeds/30612-0a.htm delete mode 100644 L2J_DataPack_BETA/dist/game/data/scripts/quests/370_AWisemanSowsSeeds/30612-4.htm delete mode 100644 L2J_DataPack_BETA/dist/game/data/scripts/quests/370_AWisemanSowsSeeds/30612-5.htm delete mode 100644 L2J_DataPack_BETA/dist/game/data/scripts/quests/370_AWisemanSowsSeeds/30612-6.htm delete mode 100644 L2J_DataPack_BETA/dist/game/data/scripts/quests/370_AWisemanSowsSeeds/30612-8.htm delete mode 100644 L2J_DataPack_BETA/dist/game/data/scripts/quests/370_AWisemanSowsSeeds/__init__.py rename L2J_DataPack_BETA/dist/game/data/scripts/quests/{369_CollectorOfJewels/30376-02.htm => Q00369_CollectorOfJewels/30376-01.htm} (61%) create mode 100644 L2J_DataPack_BETA/dist/game/data/scripts/quests/Q00369_CollectorOfJewels/30376-02.htm rename L2J_DataPack_BETA/dist/game/data/scripts/quests/{369_CollectorOfJewels/30376-01.htm => Q00369_CollectorOfJewels/30376-03.html} (77%) create mode 100644 L2J_DataPack_BETA/dist/game/data/scripts/quests/Q00369_CollectorOfJewels/30376-04.html create mode 100644 L2J_DataPack_BETA/dist/game/data/scripts/quests/Q00369_CollectorOfJewels/30376-05.html create mode 100644 L2J_DataPack_BETA/dist/game/data/scripts/quests/Q00369_CollectorOfJewels/30376-06.html rename L2J_DataPack_BETA/dist/game/data/scripts/quests/{369_CollectorOfJewels/30376-08.htm => Q00369_CollectorOfJewels/30376-07.html} (93%) create mode 100644 L2J_DataPack_BETA/dist/game/data/scripts/quests/Q00369_CollectorOfJewels/30376-08.html create mode 100644 L2J_DataPack_BETA/dist/game/data/scripts/quests/Q00369_CollectorOfJewels/30376-09.html rename L2J_DataPack_BETA/dist/game/data/scripts/quests/{369_CollectorOfJewels/30376-10.htm => Q00369_CollectorOfJewels/30376-10.html} (95%) rename L2J_DataPack_BETA/dist/game/data/scripts/quests/{369_CollectorOfJewels/30376-09.htm => Q00369_CollectorOfJewels/30376-11.html} (53%) create mode 100644 L2J_DataPack_BETA/dist/game/data/scripts/quests/Q00369_CollectorOfJewels/Q00369_CollectorOfJewels.java rename L2J_DataPack_BETA/dist/game/data/scripts/quests/{370_AWisemanSowsSeeds/30612-0.htm => Q00370_AnElderSowsSeeds/30612-01.htm} (83%) rename L2J_DataPack_BETA/dist/game/data/scripts/quests/{370_AWisemanSowsSeeds/30612-1.htm => Q00370_AnElderSowsSeeds/30612-02.htm} (80%) rename L2J_DataPack_BETA/dist/game/data/scripts/quests/{370_AWisemanSowsSeeds/30612-2.htm => Q00370_AnElderSowsSeeds/30612-03.htm} (58%) rename L2J_DataPack_BETA/dist/game/data/scripts/quests/{370_AWisemanSowsSeeds/30612-3.htm => Q00370_AnElderSowsSeeds/30612-04.htm} (74%) create mode 100644 L2J_DataPack_BETA/dist/game/data/scripts/quests/Q00370_AnElderSowsSeeds/30612-05.html create mode 100644 L2J_DataPack_BETA/dist/game/data/scripts/quests/Q00370_AnElderSowsSeeds/30612-06.html create mode 100644 L2J_DataPack_BETA/dist/game/data/scripts/quests/Q00370_AnElderSowsSeeds/30612-07.html create mode 100644 L2J_DataPack_BETA/dist/game/data/scripts/quests/Q00370_AnElderSowsSeeds/30612-08.html rename L2J_DataPack_BETA/dist/game/data/scripts/quests/{370_AWisemanSowsSeeds/30612-7.htm => Q00370_AnElderSowsSeeds/30612-09.html} (74%) rename L2J_DataPack_BETA/dist/game/data/scripts/quests/{370_AWisemanSowsSeeds/30612-9.htm => Q00370_AnElderSowsSeeds/30612-10.html} (87%) create mode 100644 L2J_DataPack_BETA/dist/game/data/scripts/quests/Q00370_AnElderSowsSeeds/30612-11.html create mode 100644 L2J_DataPack_BETA/dist/game/data/scripts/quests/Q00370_AnElderSowsSeeds/Q00370_AnElderSowsSeeds.java create mode 100644 L2J_DataPack_BETA/dist/sql/game/updates/20131226update.sql diff --git a/L2J_DataPack_BETA/dist/game/data/scripts.cfg b/L2J_DataPack_BETA/dist/game/data/scripts.cfg index 24bbe7063f..b42fa0292a 100644 --- a/L2J_DataPack_BETA/dist/game/data/scripts.cfg +++ b/L2J_DataPack_BETA/dist/game/data/scripts.cfg @@ -506,8 +506,8 @@ quests/Q00365_DevilsLegacy/Q00365_DevilsLegacy.java quests/Q00366_SilverHairedShaman/Q00366_SilverHairedShaman.java quests/Q00367_ElectrifyingRecharge/Q00367_ElectrifyingRecharge.java quests/Q00368_TrespassingIntoTheHolyGround/Q00368_TrespassingIntoTheHolyGround.java -quests/369_CollectorOfJewels/__init__.py -quests/370_AWisemanSowsSeeds/__init__.py +quests/Q00369_CollectorOfJewels/Q00369_CollectorOfJewels.java +quests/Q00370_AnElderSowsSeeds/Q00370_AnElderSowsSeeds.java quests/371_ShriekOfGhosts/__init__.py quests/372_LegacyOfInsolence/__init__.py quests/373_SupplierOfReagents/__init__.py diff --git a/L2J_DataPack_BETA/dist/game/data/scripts/quests/369_CollectorOfJewels/30376-03.htm b/L2J_DataPack_BETA/dist/game/data/scripts/quests/369_CollectorOfJewels/30376-03.htm deleted file mode 100644 index fad670b4b8..0000000000 --- a/L2J_DataPack_BETA/dist/game/data/scripts/quests/369_CollectorOfJewels/30376-03.htm +++ /dev/null @@ -1,4 +0,0 @@ -<html><body>Magister Nell:<br> -This won't be easy. The spirits that live in the Forgotten Temple are very strong. You will need help. You can get<br> -<font color="LEVEL">Flare Shards</font> from<font color="LEVEL"> Lakin salamanders, Salamander Rowins and Death Fires</font>.<font color="LEVEL"> Freezing Shards</font> can be obtained from<font color="LEVEL"> the Lakin Undine, the Rowin Undine and the Roxide</font>. Please bring me<font color="LEVEL"> 50 of each type</font>. -</body></html> \ No newline at end of file diff --git a/L2J_DataPack_BETA/dist/game/data/scripts/quests/369_CollectorOfJewels/30376-04.htm b/L2J_DataPack_BETA/dist/game/data/scripts/quests/369_CollectorOfJewels/30376-04.htm deleted file mode 100644 index e364710255..0000000000 --- a/L2J_DataPack_BETA/dist/game/data/scripts/quests/369_CollectorOfJewels/30376-04.htm +++ /dev/null @@ -1,4 +0,0 @@ -<html><body>Magister Nell:<br> -Ah, the shiny black hair... eyes that sparkle like gemstones... If I could only hear the voice once more...<br> -Why are you still here? Please hurry and collect<font color="LEVEL"> 50 Flare Shards and 50 Freezing Shards for my</font><font color="LEVEL"> research</font>. You can find them by slaying Salamanders, Undines, Death Fires and Roxides in the Forgotten Temple. -</body></html> \ No newline at end of file diff --git a/L2J_DataPack_BETA/dist/game/data/scripts/quests/369_CollectorOfJewels/30376-05.htm b/L2J_DataPack_BETA/dist/game/data/scripts/quests/369_CollectorOfJewels/30376-05.htm deleted file mode 100644 index 02463679ac..0000000000 --- a/L2J_DataPack_BETA/dist/game/data/scripts/quests/369_CollectorOfJewels/30376-05.htm +++ /dev/null @@ -1,6 +0,0 @@ -<html><body>Magister Nell:<br> -Ah, you have done as I asked. I feel the strong pull of their magic power. Here is your reward. Would you be interested in working with me some more? I still need many more of them... I'll pay you generously for your work...<br> -<a action="bypass -h Quest 369_CollectorOfJewels 30376-06.htm">"Why do you need so many of them?"</a><br> -<a action="bypass -h Quest 369_CollectorOfJewels 30376-07.htm">"I'll do it."</a><br> -<a action="bypass -h Quest 369_CollectorOfJewels 30376-08.htm">"I quit."</a> -</body></html> \ No newline at end of file diff --git a/L2J_DataPack_BETA/dist/game/data/scripts/quests/369_CollectorOfJewels/30376-06.htm b/L2J_DataPack_BETA/dist/game/data/scripts/quests/369_CollectorOfJewels/30376-06.htm deleted file mode 100644 index 6e0c990370..0000000000 --- a/L2J_DataPack_BETA/dist/game/data/scripts/quests/369_CollectorOfJewels/30376-06.htm +++ /dev/null @@ -1,9 +0,0 @@ -<html><body>Magister Nell:<br> -Well, if I only needed them for my research, these would be enough. But a wiseman taught me all about these gemstones.<br> -He said that he needed them, and asked me to collect the fragments for him.<br> -At that time the trader Katerina of Talking Island was there. She is also collecting gemstones.<br> -When she gives the gemstones to the wiseman, I also want to give at least the same quantity to him. You see, I am a magister... I can't be outdone by a trader like Katerina. Do you understand?<br> -Please do this for me. Collect more gemstones so that I can give them to the wiseman.<br> -<a action="bypass -h Quest 369_CollectorOfJewels 30376-07.htm">"I will continue to do the work."</a><br> -<a action="bypass -h Quest 369_CollectorOfJewels 30376-08.htm">"I quit."</a> -</body></html> \ No newline at end of file diff --git a/L2J_DataPack_BETA/dist/game/data/scripts/quests/369_CollectorOfJewels/30376-07.htm b/L2J_DataPack_BETA/dist/game/data/scripts/quests/369_CollectorOfJewels/30376-07.htm deleted file mode 100644 index 5287417df6..0000000000 --- a/L2J_DataPack_BETA/dist/game/data/scripts/quests/369_CollectorOfJewels/30376-07.htm +++ /dev/null @@ -1,4 +0,0 @@ -<html><body>Magister Nell:<br> -Thank you! Go to the<font color="LEVEL"> Forgotten Temple</font> with your colleagues. Slay the<font color="LEVEL"> Roxide</font>, the<font color="LEVEL"> Lakin Undine</font>, and the<font color="LEVEL"> Rowin Undine</font> to obtain<font color="LEVEL"> Freezing Shards</font>. Slay the<font color="LEVEL"> Death Fire</font>, the<font color="LEVEL"> Lakin Salamander</font>, and the<font color="LEVEL"> Salamander Rowin</font> to obtain<font color="LEVEL"> Flare Shards</font>.<br> -I'd like to give you at least 5 restored Spirit Ores, so please bring me<font color="LEVEL"> 200</font> fragments of each kind. You will be well rewarded.<br> -</body></html> \ No newline at end of file diff --git a/L2J_DataPack_BETA/dist/game/data/scripts/quests/369_CollectorOfJewels/__init__.py b/L2J_DataPack_BETA/dist/game/data/scripts/quests/369_CollectorOfJewels/__init__.py deleted file mode 100644 index 3d8e05a624..0000000000 --- a/L2J_DataPack_BETA/dist/game/data/scripts/quests/369_CollectorOfJewels/__init__.py +++ /dev/null @@ -1,131 +0,0 @@ -# Collector of Jewels - Version 0.1 by DrLecter -import sys -from com.l2jserver.gameserver.model.quest import State -from com.l2jserver.gameserver.model.quest import QuestState -from com.l2jserver.gameserver.model.quest import Quest as JQuest - -qn = "369_CollectorOfJewels" - -#NPC -NELL=30376 -#Items -FLARE_SHARD=5882 -FREEZING_SHARD=5883 -ADENA=57 -#MOBS & DROP -DROPLIST_FREEZE={20747:[FREEZING_SHARD,85], #Roxide - 20619:[FREEZING_SHARD,73], #Rowin Undine - 20616:[FREEZING_SHARD,60], #Undine Lakin - } -DROPLIST_FLARE={20612:[FLARE_SHARD,77], #Salamander Rowin - 20609:[FLARE_SHARD,77], #Salamander Lakin - 20749:[FLARE_SHARD,85] #Death Fire - } - -class Quest (JQuest) : - - def __init__(self,id,name,descr): - JQuest.__init__(self,id,name,descr) - self.questItemIds = [FLARE_SHARD, FREEZING_SHARD] - - def onEvent (self,event,st) : - htmltext = event - cond = st.getInt("cond") - if event == "30376-03.htm" and cond == 0 : - st.set("cond","1") - st.setState(State.STARTED) - st.set("awaitsFreezing","1") - st.set("awaitsFlare","1") - st.playSound("ItemSound.quest_accept") - elif event == "30376-07.htm" : - st.playSound("ItemSound.quest_itemget") - elif event == "30376-08.htm" : - st.exitQuest(1) - st.playSound("ItemSound.quest_finish") - return htmltext - - def onTalk (self,npc,player): - htmltext = Quest.getNoQuestMsg(player) - st = player.getQuestState(qn) - if not st : return htmltext - - npcId = npc.getId() - id = st.getState() - cond=st.getInt("cond") - flare = st.getQuestItemsCount(FLARE_SHARD) - freezing = st.getQuestItemsCount(FREEZING_SHARD) - if cond == 0 : - if player.getLevel() >= 25 : - htmltext = "30376-02.htm" - else: - htmltext = "30376-01.htm" - st.exitQuest(1) - elif cond == 1 : - htmltext = "30376-04.htm" - elif cond == 2 and flare == freezing == 50 : - st.set("cond","3") - st.set("awaitsFreezing","1") - st.set("awaitsFlare","1") - st.giveItems(ADENA,12500) - st.takeItems(FLARE_SHARD,-1) - st.takeItems(FREEZING_SHARD,-1) - htmltext = "30376-05.htm" - elif cond == 3 : - htmltext = "30376-09.htm" - elif cond == 4 and flare == freezing == 200 : - htmltext = "30376-10.htm" - st.playSound("ItemSound.quest_finish") - st.giveItems(ADENA,63500) - st.takeItems(FLARE_SHARD,-1) - st.takeItems(FREEZING_SHARD,-1) - st.exitQuest(1) - return htmltext - - def onKill(self,npc,player,isPet): - partyMember, st, item, chance = 0,0,0,0 - npcId = npc.getId() - # get a random party member that still awaits drop from this NPC - if npcId in DROPLIST_FREEZE.keys() : - partyMember = self.getRandomPartyMember(player,"awaitsFreezing","1") - item,chance=DROPLIST_FREEZE[npc.getId()] - elif npcId in DROPLIST_FLARE.keys() : - partyMember = self.getRandomPartyMember(player,"awaitsFlare","1") - item,chance=DROPLIST_FLARE[npc.getId()] - - if partyMember : - st = partyMember.getQuestState(qn) - if not st: return - if st.getState() != State.STARTED : return - - cond = st.getInt("cond") - if cond in [1,3] : - if cond == 1 : - max = 50 - elif cond == 3 : - max = 200 - if self.getRandom(100) < chance and st.getQuestItemsCount(item) < max : - st.giveItems(item,1) - # if collection of this item is State.COMPLETED, mark it (so that this person - # no longer participate in the party-quest pool for this item) - if st.getQuestItemsCount(FLARE_SHARD) == max : - st.unset("awaitsFlare") - elif st.getQuestItemsCount(FREEZING_SHARD) == max : - st.unset("awaitsFreezing") - - if st.getQuestItemsCount(FLARE_SHARD) == st.getQuestItemsCount(FREEZING_SHARD) == max : - st.set("cond",str(cond+1)) - st.playSound("ItemSound.quest_middle") - else : - st.playSound("ItemSound.quest_itemget") - return - -QUEST = Quest(369,qn,"Collector of Jewels") - -QUEST.addStartNpc(NELL) - -QUEST.addTalkId(NELL) - -for mob in DROPLIST_FREEZE.keys() : - QUEST.addKillId(mob) -for mob in DROPLIST_FLARE.keys() : - QUEST.addKillId(mob) \ No newline at end of file diff --git a/L2J_DataPack_BETA/dist/game/data/scripts/quests/370_AWisemanSowsSeeds/30612-0a.htm b/L2J_DataPack_BETA/dist/game/data/scripts/quests/370_AWisemanSowsSeeds/30612-0a.htm deleted file mode 100644 index 591eb58c8b..0000000000 --- a/L2J_DataPack_BETA/dist/game/data/scripts/quests/370_AWisemanSowsSeeds/30612-0a.htm +++ /dev/null @@ -1,7 +0,0 @@ -<html><body>Wiseman Casian:<br> -Did you know that at one time this barren wasteland was one of the most fertile places in Aden? For centuries farmers sowed their seeds and harvested abundant crops here. Ah, yes, those were the days...<br> -But then that devil Beleth and his minions arrived. We had to come up with a resolution quickly. We were compelled to at last open the forbidden spellbook...<br> -For two days and nights fire rained down on us and dark magic swept the land like a whirlwind... It wasn't at all what we'd anticipated...<br> -I couldn't bear to stay in this ruined place, so I wandered the world for many years. But now I find myself drawn back, hoping to somehow restore this land to its former beauty. I shan't be able to do this alone...<br> -<font color="LEVEL">(Quest for characters level 28 and above)</font> -</body></html> \ No newline at end of file diff --git a/L2J_DataPack_BETA/dist/game/data/scripts/quests/370_AWisemanSowsSeeds/30612-4.htm b/L2J_DataPack_BETA/dist/game/data/scripts/quests/370_AWisemanSowsSeeds/30612-4.htm deleted file mode 100644 index a33fd3e244..0000000000 --- a/L2J_DataPack_BETA/dist/game/data/scripts/quests/370_AWisemanSowsSeeds/30612-4.htm +++ /dev/null @@ -1,8 +0,0 @@ -<html><body>Wiseman Casian:<br> -The wind is unusually scorching today... Do you feel it? The angry cries of the souls of those who perished here seem carried on the blistering breeze across the Wasteland...<br> -Forgive me. This place has that effect on me. By the way, how are things at the Ant Nest?<br> -<a action="bypass -h Quest 370_AWisemanSowsSeeds 30612-5.htm">Where can I find the spellbook?</a><br> -<a action="bypass -h Quest 370_AWisemanSowsSeeds 30612-6.htm">I have brought all four chapters of "Kranvel's Spellbook".</a><br> -<a action="bypass -h Quest 370_AWisemanSowsSeeds 30612-7.htm">I need to find more chapters.</a><br> -<a action="bypass -h Quest 370_AWisemanSowsSeeds 30612-9.htm">I quit.</a> -</body></html> \ No newline at end of file diff --git a/L2J_DataPack_BETA/dist/game/data/scripts/quests/370_AWisemanSowsSeeds/30612-5.htm b/L2J_DataPack_BETA/dist/game/data/scripts/quests/370_AWisemanSowsSeeds/30612-5.htm deleted file mode 100644 index 61d2be85f5..0000000000 --- a/L2J_DataPack_BETA/dist/game/data/scripts/quests/370_AWisemanSowsSeeds/30612-5.htm +++ /dev/null @@ -1,6 +0,0 @@ -<html><body>Wiseman Casian:<br> -How could you forget? You must slay<font color="LEVEL"> ant recruits, ant patrols, ant guards, the noble ant and the noble ant leader</font> in order to obtain the pieces of the spellbook.<br> -<font color="LEVEL">Examine any scrap of paper you come across carefully</font>. The pieces of "Kranvel's Spellbook" should be instantly recognizable.<br> -You must find all four chapters:<font color="LEVEL"> the Chapter of Fire, the Chapter of Water, the Chapter of Wind and the Chapter of Earth</font>.<br> -<a action="bypass -h Quest 370_AWisemanSowsSeeds 30612-4.htm">Back</a> -</body></html> \ No newline at end of file diff --git a/L2J_DataPack_BETA/dist/game/data/scripts/quests/370_AWisemanSowsSeeds/30612-6.htm b/L2J_DataPack_BETA/dist/game/data/scripts/quests/370_AWisemanSowsSeeds/30612-6.htm deleted file mode 100644 index 82cd8053aa..0000000000 --- a/L2J_DataPack_BETA/dist/game/data/scripts/quests/370_AWisemanSowsSeeds/30612-6.htm +++ /dev/null @@ -1,4 +0,0 @@ -<html><body>Wiseman Casian:<br> -How could you have forgotten so quickly?<br> -"Kranvel's Spellbook" consist of four chapters:<font color="LEVEL"> the Chapter of Fire, the Chapter of Water, the Chapter of Wind and the Chapter of Earth</font>. The contents will not be discernible unless you find all four chapters. Please, you must help us! We're counting on you! -</body></html> \ No newline at end of file diff --git a/L2J_DataPack_BETA/dist/game/data/scripts/quests/370_AWisemanSowsSeeds/30612-8.htm b/L2J_DataPack_BETA/dist/game/data/scripts/quests/370_AWisemanSowsSeeds/30612-8.htm deleted file mode 100644 index fdcc9cf421..0000000000 --- a/L2J_DataPack_BETA/dist/game/data/scripts/quests/370_AWisemanSowsSeeds/30612-8.htm +++ /dev/null @@ -1,6 +0,0 @@ -<html><body>Wiseman Casian:<br> -Let's see, the Chapter of Fire, the Chapter of Water, the Chapter of Wind and the Chapter of Earth... you have brought them all! Perhaps your discovery will lead to a way to restore this ruined place. At last I shall be redeemed... This is all thanks to you. Please accept this humble token of my appreciation.<br> -But this sad chapter is not yet complete... The dark magic that caused this disaster had many sources, united in their power and holding copies of "Kranvel's Spellbook"!<br> -Alas, it's true! There remain many pieces of that horrid tome scattered about the inside of the Ant Nest. If I am to continue my research, and above all to keep this dreadful power from falling into wrong hands, the remaining fragments of "Kranvel's Spellbook" must be recovered! Please help!<br> -<a action="bypass -h Quest 370_AWisemanSowsSeeds 30612-7.htm">I will continue to help.</a> -</body></html> \ No newline at end of file diff --git a/L2J_DataPack_BETA/dist/game/data/scripts/quests/370_AWisemanSowsSeeds/__init__.py b/L2J_DataPack_BETA/dist/game/data/scripts/quests/370_AWisemanSowsSeeds/__init__.py deleted file mode 100644 index a5ffb5da6f..0000000000 --- a/L2J_DataPack_BETA/dist/game/data/scripts/quests/370_AWisemanSowsSeeds/__init__.py +++ /dev/null @@ -1,94 +0,0 @@ -# Made by disKret -import sys -from com.l2jserver.gameserver.model.quest import State -from com.l2jserver.gameserver.model.quest import QuestState -from com.l2jserver.gameserver.model.quest import Quest as JQuest - -qn = "370_AWisemanSowsSeeds" - -#NPC -CASIAN = 30612 - -#MOBS -MOBS = [20082,20084,20086,20089,20090] - -#ITEMS -CHAPTER_OF_FIRE,CHAPTER_OF_WATER,CHAPTER_OF_WIND,CHAPTER_OF_EARTH = range(5917,5921) - -class Quest (JQuest) : - - def __init__(self,id,name,descr): - JQuest.__init__(self,id,name,descr) - self.questItemIds = range(5917,5921) - - def onEvent (self,event,st) : - htmltext = event - if event == "30612-1.htm" : - st.set("cond","1") - st.setState(State.STARTED) - st.set("awaitsPartyDrop","1") - st.playSound("ItemSound.quest_accept") - elif event == "30612-6.htm" : - if st.getQuestItemsCount(CHAPTER_OF_FIRE) and \ - st.getQuestItemsCount(CHAPTER_OF_WATER) and \ - st.getQuestItemsCount(CHAPTER_OF_WIND) and \ - st.getQuestItemsCount(CHAPTER_OF_EARTH) : - st.takeItems(CHAPTER_OF_FIRE,1) - st.takeItems(CHAPTER_OF_WATER,1) - st.takeItems(CHAPTER_OF_WIND,1) - st.takeItems(CHAPTER_OF_EARTH,1) - st.giveItems(57,3600) - htmltext = "30612-8.htm" - elif event == "30612-9.htm" : - st.playSound("ItemSound.quest_finish") - st.exitQuest(1) - return htmltext - - def onTalk (self,npc,player): - htmltext = Quest.getNoQuestMsg(player) - st = player.getQuestState(qn) - if not st : return htmltext - - npcId = npc.getId() - id = st.getState() - cond=st.getInt("cond") - if cond == 0 : - if player.getLevel() >= 28 : - htmltext = "30612-0.htm" - else: - htmltext = "30612-0a.htm" - st.exitQuest(1) - elif cond : - htmltext = "30612-4.htm" - return htmltext - - def onKill(self,npc,player,isPet): - partyMember = self.getRandomPartyMember(player,"awaitsPartyDrop","1") - if not partyMember : return - st = partyMember.getQuestState(qn) - - chance = self.getRandom(100) - if chance in range(1,15) and st.getQuestItemsCount(CHAPTER_OF_FIRE) == 0 : - st.giveItems(CHAPTER_OF_FIRE,1) - st.playSound("ItemSound.quest_itemget") - elif chance in range(25,40) and st.getQuestItemsCount(CHAPTER_OF_WATER) == 0 : - st.giveItems(CHAPTER_OF_WATER,1) - st.playSound("ItemSound.quest_itemget") - elif chance in range(50,65) and st.getQuestItemsCount(CHAPTER_OF_WIND) == 0 : - st.giveItems(CHAPTER_OF_WIND,1) - st.playSound("ItemSound.quest_itemget") - elif chance in range(75,90) and st.getQuestItemsCount(CHAPTER_OF_EARTH) == 0 : - st.giveItems(CHAPTER_OF_EARTH,1) - st.playSound("ItemSound.quest_itemget") - if st.getQuestItemsCount(CHAPTER_OF_FIRE) and st.getQuestItemsCount(CHAPTER_OF_WATER) and st.getQuestItemsCount(CHAPTER_OF_WIND) and st.getQuestItemsCount(CHAPTER_OF_EARTH) : - st.playSound("ItemSound.quest_middle") - st.unset("awaitsPartyDrop") - return - -QUEST = Quest(370,qn,"A Wiseman Sows Seeds") - -QUEST.addStartNpc(CASIAN) -QUEST.addTalkId(CASIAN) - -for i in MOBS : - QUEST.addKillId(i) \ No newline at end of file diff --git a/L2J_DataPack_BETA/dist/game/data/scripts/quests/369_CollectorOfJewels/30376-02.htm b/L2J_DataPack_BETA/dist/game/data/scripts/quests/Q00369_CollectorOfJewels/30376-01.htm similarity index 61% rename from L2J_DataPack_BETA/dist/game/data/scripts/quests/369_CollectorOfJewels/30376-02.htm rename to L2J_DataPack_BETA/dist/game/data/scripts/quests/Q00369_CollectorOfJewels/30376-01.htm index cfa96bcfbf..1cbfe7419d 100644 --- a/L2J_DataPack_BETA/dist/game/data/scripts/quests/369_CollectorOfJewels/30376-02.htm +++ b/L2J_DataPack_BETA/dist/game/data/scripts/quests/Q00369_CollectorOfJewels/30376-01.htm @@ -1,6 +1,6 @@ <html><body>Magister Nell:<br> -Do you wish to hear my story? Sometime ago, I met a Wiseman. He told me that the Forgotten Temple is related to the Ruins on Talking Island.<br> +Do you wish to hear my story? Sometime ago, I met a Elder. He told me that the Forgotten Temple is related to the Ruins on Talking Island.<br> More than anything else, this glittering Flare Shard and Freezing Shard are the proof! They are fragments of elemental stone found in the Ruins of Talking Island and the Forgotten Temple! Before they were broken, these two elemental stones must have had mutual resonance.<br> Would you help me? Please go to the temple and bring me more of these gemstones.<br> -<a action="bypass -h Quest 369_CollectorOfJewels 30376-03.htm">"I'll do it!"</a> -</body></html> \ No newline at end of file +<a action="bypass -h Quest Q00369_CollectorOfJewels 30376-02.htm">"I'll do it!"</a> +</body></html> diff --git a/L2J_DataPack_BETA/dist/game/data/scripts/quests/Q00369_CollectorOfJewels/30376-02.htm b/L2J_DataPack_BETA/dist/game/data/scripts/quests/Q00369_CollectorOfJewels/30376-02.htm new file mode 100644 index 0000000000..2395e297b8 --- /dev/null +++ b/L2J_DataPack_BETA/dist/game/data/scripts/quests/Q00369_CollectorOfJewels/30376-02.htm @@ -0,0 +1,4 @@ +<html><body>Magister Nell:<br> +This won't be easy. The spirits that live in the Forgotten Temple are very strong. You will need help. You can get<br> +<font color="LEVEL">Flare Shards</font> from <font color="LEVEL">lakin salamanders, salamander rowins and death fires</font>. <font color="LEVEL">Freezing Shards</font> can be obtained from <font color="LEVEL">the lakin undine, the rowin undine and the roxide</font>. Please bring me <font color="LEVEL">50 of each type</font>. +</body></html> diff --git a/L2J_DataPack_BETA/dist/game/data/scripts/quests/369_CollectorOfJewels/30376-01.htm b/L2J_DataPack_BETA/dist/game/data/scripts/quests/Q00369_CollectorOfJewels/30376-03.html similarity index 77% rename from L2J_DataPack_BETA/dist/game/data/scripts/quests/369_CollectorOfJewels/30376-01.htm rename to L2J_DataPack_BETA/dist/game/data/scripts/quests/Q00369_CollectorOfJewels/30376-03.html index 9096d3b49a..91aee5fc56 100644 --- a/L2J_DataPack_BETA/dist/game/data/scripts/quests/369_CollectorOfJewels/30376-01.htm +++ b/L2J_DataPack_BETA/dist/game/data/scripts/quests/Q00369_CollectorOfJewels/30376-03.html @@ -1,5 +1,5 @@ <html><body>Magister Nell:<br> -Do you wish to hear my story? Once I met a Wiseman. He convinced me that the Forgotten Temple is related to the Ruins on Talking Island.<br> +Do you wish to hear my story? Once I met a Elder. He convinced me that the Forgotten Temple is related to the Ruins on Talking Island.<br> This glittering Flare Shard and Freezing Shard are proof! They are fragments from the Ruins of Talking Island and the Forgotten Temple! Before they were broken, these two elemental stones had mutual resonance. I'm sure of it! I'm desperate to get my hands on more of these fragments... If you know anyone strong enough to enter the Forgotten Temple and bring me some of these stones, please ask them to come and see me at once!<br> (This quest may only be undertaken by a character of level 25 or above.) -</body></html> \ No newline at end of file +</body></html> diff --git a/L2J_DataPack_BETA/dist/game/data/scripts/quests/Q00369_CollectorOfJewels/30376-04.html b/L2J_DataPack_BETA/dist/game/data/scripts/quests/Q00369_CollectorOfJewels/30376-04.html new file mode 100644 index 0000000000..082fa8fd06 --- /dev/null +++ b/L2J_DataPack_BETA/dist/game/data/scripts/quests/Q00369_CollectorOfJewels/30376-04.html @@ -0,0 +1,6 @@ +<html><body>Magister Nell:<br> +Ah, you have done as I asked. I feel the strong pull of their magic power. Here is your reward. Would you be interested in working with me some more? I still need many more of them... I'll pay you generously for your work...<br> +<a action="bypass -h Quest Q00369_CollectorOfJewels 30376-05.html">"Why do you need so many of them?"</a><br> +<a action="bypass -h Quest Q00369_CollectorOfJewels 30376-06.html">"I'll do it."</a><br> +<a action="bypass -h Quest Q00369_CollectorOfJewels 30376-07.html">"I quit."</a> +</body></html> diff --git a/L2J_DataPack_BETA/dist/game/data/scripts/quests/Q00369_CollectorOfJewels/30376-05.html b/L2J_DataPack_BETA/dist/game/data/scripts/quests/Q00369_CollectorOfJewels/30376-05.html new file mode 100644 index 0000000000..3b60c08344 --- /dev/null +++ b/L2J_DataPack_BETA/dist/game/data/scripts/quests/Q00369_CollectorOfJewels/30376-05.html @@ -0,0 +1,8 @@ +<html><body>Magister Nell:<br> +Well, if I only needed them for my research, these would be enough. But a Elder taught me all about these gemstones.<br> +He said that he needed them, and asked me to collect the fragments for him.<br>At that time the trader Katerina of Talking Island was there. She is also collecting gemstones.<br> +When she gives the gemstones to the Elder, I also want to give at least the same quantity to him. You see, I am a magister... I can't be outdone by a trader like Katerina. Do you understand?<br> +Please do this for me. Collect more gemstones so that I can give them to the Elder.<br> +<a action="bypass -h Quest Q00369_CollectorOfJewels 30376-06.html">"I will continue to do the work."</a><br> +<a action="bypass -h Quest Q00369_CollectorOfJewels 30376-07.html">"I quit."</a> +</body></html> diff --git a/L2J_DataPack_BETA/dist/game/data/scripts/quests/Q00369_CollectorOfJewels/30376-06.html b/L2J_DataPack_BETA/dist/game/data/scripts/quests/Q00369_CollectorOfJewels/30376-06.html new file mode 100644 index 0000000000..088a13fd5d --- /dev/null +++ b/L2J_DataPack_BETA/dist/game/data/scripts/quests/Q00369_CollectorOfJewels/30376-06.html @@ -0,0 +1,3 @@ +<html><body>Magister Nell:<br> +Thank you! Go to the <font color="LEVEL">Forgotten Temple</font> with your colleagues. Slay the <font color="LEVEL">roxide</font>, the <font color="LEVEL">lakin undine</font>, and the <font color="LEVEL">rowin undine</font> to obtain <font color="LEVEL">Freezing Shards</font>. Slay the <font color="LEVEL">death fire</font>, the <font color="LEVEL">lakin salamander</font>, and the <font color="LEVEL">salamander rowin</font> to obtain <font color="LEVEL">Flare Shards</font>. <br>I'd like to give you at least 5 restored Spirit Ores, so please bring me <font color="LEVEL">200</font> fragments of each kind. You will be well rewarded. +</body></html> diff --git a/L2J_DataPack_BETA/dist/game/data/scripts/quests/369_CollectorOfJewels/30376-08.htm b/L2J_DataPack_BETA/dist/game/data/scripts/quests/Q00369_CollectorOfJewels/30376-07.html similarity index 93% rename from L2J_DataPack_BETA/dist/game/data/scripts/quests/369_CollectorOfJewels/30376-08.htm rename to L2J_DataPack_BETA/dist/game/data/scripts/quests/Q00369_CollectorOfJewels/30376-07.html index 672275cffe..9673af2e50 100644 --- a/L2J_DataPack_BETA/dist/game/data/scripts/quests/369_CollectorOfJewels/30376-08.htm +++ b/L2J_DataPack_BETA/dist/game/data/scripts/quests/Q00369_CollectorOfJewels/30376-07.html @@ -1,3 +1,3 @@ <html><body>Magister Nell:<br> Oh, too bad. Very well. I'll get someone else to help me. I appreciate your help up to now. I will take care of the remaining shards. Leave them here. If you change your mind, please come back and see me. Okay? -</body></html> \ No newline at end of file +</body></html> diff --git a/L2J_DataPack_BETA/dist/game/data/scripts/quests/Q00369_CollectorOfJewels/30376-08.html b/L2J_DataPack_BETA/dist/game/data/scripts/quests/Q00369_CollectorOfJewels/30376-08.html new file mode 100644 index 0000000000..f127610a02 --- /dev/null +++ b/L2J_DataPack_BETA/dist/game/data/scripts/quests/Q00369_CollectorOfJewels/30376-08.html @@ -0,0 +1,3 @@ +<html><body>Magister Nell:<br> +Ah, the shiny black hair... eyes that sparkle like gemstones... If I could only hear the voice once more...<br>Why are you still here? Please hurry and collect <font color="LEVEL">50 Flare Shards and 50 Freezing Shards for my </font><font color="LEVEL">research</font>. You can find them by slaying salamanders, undines, death fires and roxides in the Forgotten Temple. +</body></html> diff --git a/L2J_DataPack_BETA/dist/game/data/scripts/quests/Q00369_CollectorOfJewels/30376-09.html b/L2J_DataPack_BETA/dist/game/data/scripts/quests/Q00369_CollectorOfJewels/30376-09.html new file mode 100644 index 0000000000..5261b79d91 --- /dev/null +++ b/L2J_DataPack_BETA/dist/game/data/scripts/quests/Q00369_CollectorOfJewels/30376-09.html @@ -0,0 +1,6 @@ +<html><body>Magister Nell:<br> +Thank you for your help. Would you be interested in working some more? I still need many more of these... I'll give you a very generous reward!<br> +<a action="bypass -h Quest Q00369_CollectorOfJewels 30376-05.html">"Do you really need so many of them?"</a><br> +<a action="bypass -h Quest Q00369_CollectorOfJewels 30376-06.html">"I will try my best."</a><br> +<a action="bypass -h Quest Q00369_CollectorOfJewels 30376-07.html">"I quit."</a> +</body></html> diff --git a/L2J_DataPack_BETA/dist/game/data/scripts/quests/369_CollectorOfJewels/30376-10.htm b/L2J_DataPack_BETA/dist/game/data/scripts/quests/Q00369_CollectorOfJewels/30376-10.html similarity index 95% rename from L2J_DataPack_BETA/dist/game/data/scripts/quests/369_CollectorOfJewels/30376-10.htm rename to L2J_DataPack_BETA/dist/game/data/scripts/quests/Q00369_CollectorOfJewels/30376-10.html index 410e02bd47..676dc8efe0 100644 --- a/L2J_DataPack_BETA/dist/game/data/scripts/quests/369_CollectorOfJewels/30376-10.htm +++ b/L2J_DataPack_BETA/dist/game/data/scripts/quests/Q00369_CollectorOfJewels/30376-10.html @@ -2,4 +2,4 @@ Amazing! You've brought them! They must have been very heavy! Please put them down here. Be very, very careful!<br> Thank you for your hard work. Here is your reward. These fragments are kind of small. Now, I can meet Les with confidence. He contacted me some time ago...<br> Anyway, thank you for your help. If possible, please come and help me again sometime, and bring some friends to help you! Take care! -</body></html> \ No newline at end of file +</body></html> diff --git a/L2J_DataPack_BETA/dist/game/data/scripts/quests/369_CollectorOfJewels/30376-09.htm b/L2J_DataPack_BETA/dist/game/data/scripts/quests/Q00369_CollectorOfJewels/30376-11.html similarity index 53% rename from L2J_DataPack_BETA/dist/game/data/scripts/quests/369_CollectorOfJewels/30376-09.htm rename to L2J_DataPack_BETA/dist/game/data/scripts/quests/Q00369_CollectorOfJewels/30376-11.html index e15fb4b27d..9118def50b 100644 --- a/L2J_DataPack_BETA/dist/game/data/scripts/quests/369_CollectorOfJewels/30376-09.htm +++ b/L2J_DataPack_BETA/dist/game/data/scripts/quests/Q00369_CollectorOfJewels/30376-11.html @@ -1,5 +1,5 @@ <html><body>Magister Nell:<br> Ah, what a profile! Like a classic statue... And that voice! Like an arrow piercing my heart...Where is he now? I wonder what he's doing?<br> -I must give him some Spirit Ore! Please, bring me<font color="LEVEL"> 200 Flare Shards and 200 Freezing Shards</font>!<br> -You can get them from Salamanders, Undines, Death Fires and Roxides, deep within the Forgotten Temple! Please, hurry! Time is short! -</body></html> \ No newline at end of file +I must give him some Spirit Ore! Please, bring me <font color="LEVEL">200 Flare Shards and 200 Freezing Shards</font>!<br> +You can get them from salamanders, undines, death fires and roxides, deep within the Forgotten Temple! Please, hurry! Time is short! +</body></html> diff --git a/L2J_DataPack_BETA/dist/game/data/scripts/quests/Q00369_CollectorOfJewels/Q00369_CollectorOfJewels.java b/L2J_DataPack_BETA/dist/game/data/scripts/quests/Q00369_CollectorOfJewels/Q00369_CollectorOfJewels.java new file mode 100644 index 0000000000..5c14373718 --- /dev/null +++ b/L2J_DataPack_BETA/dist/game/data/scripts/quests/Q00369_CollectorOfJewels/Q00369_CollectorOfJewels.java @@ -0,0 +1,194 @@ +/* + * Copyright (C) 2004-2013 L2J DataPack + * + * This file is part of L2J DataPack. + * + * L2J DataPack 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. + * + * L2J DataPack 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.Q00369_CollectorOfJewels; + +import java.util.HashMap; +import java.util.Map; + +import com.l2jserver.gameserver.model.actor.L2Npc; +import com.l2jserver.gameserver.model.actor.instance.L2PcInstance; +import com.l2jserver.gameserver.model.holders.QuestItemHolder; +import com.l2jserver.gameserver.model.quest.Quest; +import com.l2jserver.gameserver.model.quest.QuestState; + +/** + * Collector of Jewels (369) + * @author Adry_85 + */ +public final class Q00369_CollectorOfJewels extends Quest +{ + // NPC + private static final int NELL = 30376; + // Items + private static final int FLARE_SHARD = 5882; + private static final int FREEZING_SHARD = 5883; + // Misc + private static final int MIN_LEVEL = 25; + // Mobs + private static final Map<Integer, QuestItemHolder> MOBS_DROP_CHANCES = new HashMap<>(); + static + { + MOBS_DROP_CHANCES.put(20609, new QuestItemHolder(FLARE_SHARD, 75, 1)); // salamander_lakin + MOBS_DROP_CHANCES.put(20612, new QuestItemHolder(FLARE_SHARD, 91, 1)); // salamander_rowin + MOBS_DROP_CHANCES.put(20749, new QuestItemHolder(FLARE_SHARD, 100, 2)); // death_fire + MOBS_DROP_CHANCES.put(20616, new QuestItemHolder(FREEZING_SHARD, 81, 1)); // undine_lakin + MOBS_DROP_CHANCES.put(20619, new QuestItemHolder(FREEZING_SHARD, 87, 1)); // undine_rowin + MOBS_DROP_CHANCES.put(20747, new QuestItemHolder(FREEZING_SHARD, 100, 2)); // roxide + } + + private Q00369_CollectorOfJewels() + { + super(369, Q00369_CollectorOfJewels.class.getSimpleName(), "Collector of Jewels"); + addStartNpc(NELL); + addTalkId(NELL); + addKillId(MOBS_DROP_CHANCES.keySet()); + registerQuestItems(FLARE_SHARD, FREEZING_SHARD); + } + + @Override + public boolean checkPartyMember(L2PcInstance member, L2Npc npc) + { + final QuestState st = member.getQuestState(getName()); + return ((st != null) && (st.isMemoState(1) || st.isMemoState(3))); + } + + @Override + public String onAdvEvent(String event, L2Npc npc, L2PcInstance player) + { + final QuestState st = getQuestState(player, false); + if (st == null) + { + return null; + } + + String htmltext = null; + switch (event) + { + case "30376-02.htm": + { + st.startQuest(); + st.setMemoState(1); + htmltext = event; + break; + } + case "30376-05.html": + { + htmltext = event; + break; + } + case "30376-06.html": + { + if (st.isMemoState(2)) + { + st.setMemoState(3); + st.setCond(3, true); + htmltext = event; + } + break; + } + case "30376-07.html": + { + st.exitQuest(true, true); + htmltext = event; + break; + } + } + return htmltext; + } + + @Override + public String onKill(L2Npc npc, L2PcInstance player, boolean isSummon) + { + final QuestItemHolder item = MOBS_DROP_CHANCES.get(npc.getId()); + if (getRandom(100) < item.getChance()) + { + L2PcInstance luckyPlayer = getRandomPartyMember(player, npc); + if (luckyPlayer != null) + { + final QuestState st = luckyPlayer.getQuestState(getName()); + final int itemCount = (st.isMemoState(1) ? 50 : 200); + final int cond = (st.isMemoState(1) ? 2 : 4); + if (giveItemRandomly(luckyPlayer, npc, item.getId(), item.getCount(), itemCount, 1.0, true) // + && (getQuestItemsCount(luckyPlayer, FLARE_SHARD, FREEZING_SHARD) >= (itemCount * 2))) + { + st.setCond(cond); + } + } + } + return super.onKill(npc, player, isSummon); + } + + @Override + public String onTalk(L2Npc npc, L2PcInstance player) + { + final QuestState st = getQuestState(player, true); + String htmltext = getNoQuestMsg(player); + if (st.isCreated()) + { + htmltext = (player.getLevel() >= MIN_LEVEL) ? "30376-01.htm" : "30376-03.html"; + } + else if (st.isStarted()) + { + switch (st.getMemoState()) + { + case 1: + { + if (getQuestItemsCount(player, FLARE_SHARD, FREEZING_SHARD) >= 100) + { + giveAdena(player, 31810, true); + takeItems(player, -1, FLARE_SHARD, FREEZING_SHARD); + st.setMemoState(2); + htmltext = "30376-04.html"; + } + else + { + htmltext = "30376-08.html"; + } + break; + } + case 2: + { + htmltext = "30376-09.html"; + break; + } + case 3: + { + if (getQuestItemsCount(player, FLARE_SHARD, FREEZING_SHARD) >= 400) + { + giveAdena(player, 84415, true); + takeItems(player, -1, FLARE_SHARD, FREEZING_SHARD); + st.exitQuest(true, true); + htmltext = "30376-10.html"; + } + else + { + htmltext = "30376-11.html"; + } + break; + } + } + } + return htmltext; + } + + public static void main(String args[]) + { + new Q00369_CollectorOfJewels(); + } +} diff --git a/L2J_DataPack_BETA/dist/game/data/scripts/quests/370_AWisemanSowsSeeds/30612-0.htm b/L2J_DataPack_BETA/dist/game/data/scripts/quests/Q00370_AnElderSowsSeeds/30612-01.htm similarity index 83% rename from L2J_DataPack_BETA/dist/game/data/scripts/quests/370_AWisemanSowsSeeds/30612-0.htm rename to L2J_DataPack_BETA/dist/game/data/scripts/quests/Q00370_AnElderSowsSeeds/30612-01.htm index 1b00c19c0d..7a4b73895d 100644 --- a/L2J_DataPack_BETA/dist/game/data/scripts/quests/370_AWisemanSowsSeeds/30612-0.htm +++ b/L2J_DataPack_BETA/dist/game/data/scripts/quests/Q00370_AnElderSowsSeeds/30612-01.htm @@ -1,7 +1,7 @@ -<html><body>Wiseman Casian:<br> +<html><body>Elder Casian:<br> Did you know that at one time this barren wasteland was one of the most fertile places in Aden? For centuries farmers sowed their seeds and harvested abundant crops here. Ah, yes, those were the days...<br> But then that devil Beleth and his minions arrived. We had to come up with a resolution quickly. We were compelled to at last open the forbidden spellbook...<br> For two days and nights fire rained down on us and dark magic swept the land like a whirlwind... It wasn't at all what we'd anticipated...<br> I couldn't bear to stay in this ruined place, so I wandered the world for many years. But now I find myself drawn back, hoping to somehow restore this land to its former beauty. I shan't be able to do this alone...<br> -<a action="bypass -h Quest 370_AWisemanSowsSeeds 30612-1.htm">What can I do to help?</a> -</body></html> \ No newline at end of file +<a action="bypass -h Quest Q00370_AnElderSowsSeeds 30612-02.htm">"What can I do to help?"</a> +</body></html> diff --git a/L2J_DataPack_BETA/dist/game/data/scripts/quests/370_AWisemanSowsSeeds/30612-1.htm b/L2J_DataPack_BETA/dist/game/data/scripts/quests/Q00370_AnElderSowsSeeds/30612-02.htm similarity index 80% rename from L2J_DataPack_BETA/dist/game/data/scripts/quests/370_AWisemanSowsSeeds/30612-1.htm rename to L2J_DataPack_BETA/dist/game/data/scripts/quests/Q00370_AnElderSowsSeeds/30612-02.htm index 51296ca664..29f5c7eb97 100644 --- a/L2J_DataPack_BETA/dist/game/data/scripts/quests/370_AWisemanSowsSeeds/30612-1.htm +++ b/L2J_DataPack_BETA/dist/game/data/scripts/quests/Q00370_AnElderSowsSeeds/30612-02.htm @@ -1,6 +1,6 @@ -<html><body>Wiseman Casian:<br> +<html><body>Elder Casian:<br> The magic we unwittingly unleashed came from "Kranvel's Spellbook", one of the forbidden tomes of the Ivory Tower. Its fearsome power sucked the magic from all living organisms in the area, and then unleashed it all back upon us with a vengeance!<br> Poor Spellsinger Diena saw the whole thing and fell into a deep state of shock. As she shed blood and tears, she destroyed the book and scattered it to the wind... She was determined that no one should ever use such evil magic again... We couldn't stop her! We all felt as if we were in a terrible nightmare, and just stared blankly at her...<br> But now we know that that spellbook is the key to the restoration of this place. Please find the pieces of the book that were scattered to the wind.<br> -<a action="bypass -h Quest 370_AWisemanSowsSeeds 30612-2.htm">Where should I look for the pieces of "Kranvel's Spellbook"?</a> -</body></html> \ No newline at end of file +<a action="bypass -h Quest Q00370_AnElderSowsSeeds 30612-03.htm">"Where should I look for the pieces of "Kranvel's Spellbook"?"</a> +</body></html> diff --git a/L2J_DataPack_BETA/dist/game/data/scripts/quests/370_AWisemanSowsSeeds/30612-2.htm b/L2J_DataPack_BETA/dist/game/data/scripts/quests/Q00370_AnElderSowsSeeds/30612-03.htm similarity index 58% rename from L2J_DataPack_BETA/dist/game/data/scripts/quests/370_AWisemanSowsSeeds/30612-2.htm rename to L2J_DataPack_BETA/dist/game/data/scripts/quests/Q00370_AnElderSowsSeeds/30612-03.htm index 9ff57b0b9c..331d062429 100644 --- a/L2J_DataPack_BETA/dist/game/data/scripts/quests/370_AWisemanSowsSeeds/30612-2.htm +++ b/L2J_DataPack_BETA/dist/game/data/scripts/quests/Q00370_AnElderSowsSeeds/30612-03.htm @@ -1,5 +1,5 @@ -<html><body>Wiseman Casian:<br> -Ironically, the deformed beasts around us hole the clues to finding the legacy of Kranvel. Giant ants are known to pick up anything they find and take it to their nests. It is said that they have collected a great number of ancient relics and taken them to their nest in the maze-like caves beneath the wasteland.<br> -You will most likely find the pieces of "Kranvel's Spellbook" in the<font color="LEVEL"> Ant Nest</font>. You mustn't attempt this alone! Take some reliable colleagues along with you.<br> -<a action="bypass -h Quest 370_AWisemanSowsSeeds 30612-3.htm">You can count on me.</a> -</body></html> \ No newline at end of file +<html><body>Elder Casian:<br> +Ironically, the deformed beasts around us hold the clues to finding the legacy of Kranvel. Giant ants are known to pick up anything they find and take it to their nests. It is said that they have collected a great number of ancient relics and taken them to their nest in the maze-like caves beneath the wasteland.<br> +You will most likely find the pieces of "Kranvel's Spellbook" in the <font color="LEVEL">Ant Nest</font>. You mustn't attempt this alone! Take some reliable colleagues along with you.<br> +<a action="bypass -h Quest Q00370_AnElderSowsSeeds 30612-04.htm">"You can count on me."</a> +</body></html> diff --git a/L2J_DataPack_BETA/dist/game/data/scripts/quests/370_AWisemanSowsSeeds/30612-3.htm b/L2J_DataPack_BETA/dist/game/data/scripts/quests/Q00370_AnElderSowsSeeds/30612-04.htm similarity index 74% rename from L2J_DataPack_BETA/dist/game/data/scripts/quests/370_AWisemanSowsSeeds/30612-3.htm rename to L2J_DataPack_BETA/dist/game/data/scripts/quests/Q00370_AnElderSowsSeeds/30612-04.htm index d3a51efadc..f0199f5ec5 100644 --- a/L2J_DataPack_BETA/dist/game/data/scripts/quests/370_AWisemanSowsSeeds/30612-3.htm +++ b/L2J_DataPack_BETA/dist/game/data/scripts/quests/Q00370_AnElderSowsSeeds/30612-04.htm @@ -1,6 +1,6 @@ -<html><body>Wiseman Casian:<br> -In order to obtain the pieces of the spellbook, you must conquer the<font color="LEVEL"> ant recruits, ant patrols, ant guards, the noble ant and the noble ant leader</font>.<br> +<html><body>Elder Casian:<br> +In order to obtain the pieces of the spellbook, you must conquer the <font color="LEVEL">ant recruits, ant patrols, ant guards, the noble ant and the noble ant leader</font>.<br> <font color="LEVEL">Check carefully any scraps of paper you come across</font>. The pieces of "Kranvel's Spellbook" should be easy to identify.<br> -The spellbook has four chapters:<font color="LEVEL"> the Chapter of Fire, the Chapter of Water, the Chapter of Wind and the Chapter of Earth</font>. The contents will only be discernible if you recover all four chapters.<br> +The spellbook has four chapters: <font color="LEVEL">the Chapter of Fire, the Chapter of Water, the Chapter of Wind and the Chapter of Earth</font>. The contents will only be discernible if you recover all four chapters.<br> This is a challenging task, but I think you are ready for it. May the divine blessing be with you... -</body></html> \ No newline at end of file +</body></html> diff --git a/L2J_DataPack_BETA/dist/game/data/scripts/quests/Q00370_AnElderSowsSeeds/30612-05.html b/L2J_DataPack_BETA/dist/game/data/scripts/quests/Q00370_AnElderSowsSeeds/30612-05.html new file mode 100644 index 0000000000..b8f6723d1c --- /dev/null +++ b/L2J_DataPack_BETA/dist/game/data/scripts/quests/Q00370_AnElderSowsSeeds/30612-05.html @@ -0,0 +1,8 @@ +<html><body>Elder Casian:<br> +Did you know that at one time this barren wasteland was one of the most fertile places in Aden? For centuries, farmers sowed their seeds and harvested their abundant crops here. Ah, yes, those were the days...<br> +But then that devil Beleth and his minions arrived. We had to act quickly. We were compelled to at last open the forbidden spellbook...<br> +For two days and nights fire rained down on us and dark magic swept over the land like a whirlwind... It wasn't at all what we'd anticipated...<br> +When it was over, this is all that was left... A dusty wasteland inhabited by weird-looking freaks...<br> +Some day, hopefully, we shall find a way to change this place back into the verdant farmland it once was... I hope we can count on you when that time comes.<br> +(This quest may only be undertaken by a character of level 28 or above.) +</body></html> diff --git a/L2J_DataPack_BETA/dist/game/data/scripts/quests/Q00370_AnElderSowsSeeds/30612-06.html b/L2J_DataPack_BETA/dist/game/data/scripts/quests/Q00370_AnElderSowsSeeds/30612-06.html new file mode 100644 index 0000000000..372aba9866 --- /dev/null +++ b/L2J_DataPack_BETA/dist/game/data/scripts/quests/Q00370_AnElderSowsSeeds/30612-06.html @@ -0,0 +1,8 @@ +<html><body>Elder Casian:<br> +The wind is unusually scorching today... Do you feel it? The angry cries of the souls of those who perished here seem carried on the blistering breeze across the Wasteland...<br> +Forgive me. This place has that effect on me. By the way, how are things at the Ant Nest?<br> +<a action="bypass -h Quest Q00370_AnElderSowsSeeds 30612-07.html">"Where can I find the spellbook?"</a><br> +<a action="bypass -h Quest Q00370_AnElderSowsSeeds REWARD">"I have brought all four chapters of "Kranvel's Spellbook"."</a><br> +<a action="bypass -h Quest Q00370_AnElderSowsSeeds 30612-09.html">"I need to find more chapters."</a><br> +<a action="bypass -h Quest Q00370_AnElderSowsSeeds 30612-10.html">"I quit."</a> +</body></html> diff --git a/L2J_DataPack_BETA/dist/game/data/scripts/quests/Q00370_AnElderSowsSeeds/30612-07.html b/L2J_DataPack_BETA/dist/game/data/scripts/quests/Q00370_AnElderSowsSeeds/30612-07.html new file mode 100644 index 0000000000..40361f840a --- /dev/null +++ b/L2J_DataPack_BETA/dist/game/data/scripts/quests/Q00370_AnElderSowsSeeds/30612-07.html @@ -0,0 +1,6 @@ +<html><body>Elder Casian:<br> +How could you forget? You must slay <font color="LEVEL">ant recruits, ant patrols, ant guards, noble ants, and the noble ant leader</font> in order to obtain the pieces of the spellbook.<br> +<font color="LEVEL">Examine any scraps of paper you come across carefully.</font> The pieces of "Kranvel's Spellbook" should be instantly recognizable.<br> +You must find all four chapters: <font color="LEVEL">the Chapter of Fire, the Chapter of Water, the Chapter of Wind and the Chapter of Earth</font>.<br> +<a action="bypass -h Quest Q00370_AnElderSowsSeeds 30612-06.html">Back</a> +</body></html> diff --git a/L2J_DataPack_BETA/dist/game/data/scripts/quests/Q00370_AnElderSowsSeeds/30612-08.html b/L2J_DataPack_BETA/dist/game/data/scripts/quests/Q00370_AnElderSowsSeeds/30612-08.html new file mode 100644 index 0000000000..1948fc70b3 --- /dev/null +++ b/L2J_DataPack_BETA/dist/game/data/scripts/quests/Q00370_AnElderSowsSeeds/30612-08.html @@ -0,0 +1,7 @@ +<html><body>Elder Casian:<br> +Let's see, the Chapter of Fire, the Chapter of Water, the Chapter of Wind, and the Chapter of Earth... you have brought them all! Perhaps your discovery will lead to a way to restore this ruined place. At last I shall be redeemed... This is all thanks to you. Please accept this humble token of my appreciation.<br> +But this sad chapter is not yet complete... The dark magic that caused this disaster had many sources, united in their power and holding copies of "Kranvel's Spellbook"!<br> +Alas, it's true! There remain many pieces of that horrid tome scattered about the inside of the Ant Nest. If I am to continue my research, and above all to keep this dreadful power from falling into the wrong hands, the remaining fragments of "Kranvel's Spellbook" must be recovered! Please help!<br> +<a action="bypass -h Quest Q00370_AnElderSowsSeeds 30612-09.html">"I will continue to help."</a><br> +<a action="bypass -h Quest Q00370_AnElderSowsSeeds 30612-10.html">"I quit."</a> +</body></html> diff --git a/L2J_DataPack_BETA/dist/game/data/scripts/quests/370_AWisemanSowsSeeds/30612-7.htm b/L2J_DataPack_BETA/dist/game/data/scripts/quests/Q00370_AnElderSowsSeeds/30612-09.html similarity index 74% rename from L2J_DataPack_BETA/dist/game/data/scripts/quests/370_AWisemanSowsSeeds/30612-7.htm rename to L2J_DataPack_BETA/dist/game/data/scripts/quests/Q00370_AnElderSowsSeeds/30612-09.html index ea40843a7a..49c755fa7a 100644 --- a/L2J_DataPack_BETA/dist/game/data/scripts/quests/370_AWisemanSowsSeeds/30612-7.htm +++ b/L2J_DataPack_BETA/dist/game/data/scripts/quests/Q00370_AnElderSowsSeeds/30612-09.html @@ -1,3 +1,3 @@ -<html><body>Wiseman Casian:<br> +<html><body>Elder Casian:<br> Thank you for helping us. Hopefully someday our efforts will pay off, and restore this wasteland to its former beauty. Bless you, my child... -</body></html> \ No newline at end of file +</body></html> diff --git a/L2J_DataPack_BETA/dist/game/data/scripts/quests/370_AWisemanSowsSeeds/30612-9.htm b/L2J_DataPack_BETA/dist/game/data/scripts/quests/Q00370_AnElderSowsSeeds/30612-10.html similarity index 87% rename from L2J_DataPack_BETA/dist/game/data/scripts/quests/370_AWisemanSowsSeeds/30612-9.htm rename to L2J_DataPack_BETA/dist/game/data/scripts/quests/Q00370_AnElderSowsSeeds/30612-10.html index 17718ef312..533df7b4a6 100644 --- a/L2J_DataPack_BETA/dist/game/data/scripts/quests/370_AWisemanSowsSeeds/30612-9.htm +++ b/L2J_DataPack_BETA/dist/game/data/scripts/quests/Q00370_AnElderSowsSeeds/30612-10.html @@ -1,5 +1,5 @@ -<html><body>Wiseman Casian:<br> +<html><body>Elder Casian:<br> I understand. Your assistance has given me the opportunity to redeem myself. I don't know exactly where my research will lead, but hopefully to a better world...<br> We all must do what we think is best. Only time will tell whether our choices are good ones...<br> Thank you so very much for your help. May you be blessed by the gods... -</body></html> \ No newline at end of file +</body></html> diff --git a/L2J_DataPack_BETA/dist/game/data/scripts/quests/Q00370_AnElderSowsSeeds/30612-11.html b/L2J_DataPack_BETA/dist/game/data/scripts/quests/Q00370_AnElderSowsSeeds/30612-11.html new file mode 100644 index 0000000000..4ce71a9270 --- /dev/null +++ b/L2J_DataPack_BETA/dist/game/data/scripts/quests/Q00370_AnElderSowsSeeds/30612-11.html @@ -0,0 +1,4 @@ +<html><body>Elder Casian:<br> +How could you have forgotten so quickly?<br> +"Kranvel's Spellbook" consists of four chapters: <font color="LEVEL">the Chapter of Fire, the Chapter of Water, the Chapter of Wind and the Chapter of Earth</font>. The contents will not be discernible unless you find all four chapters. Please, you must help us! We're counting on you! +</body></html> diff --git a/L2J_DataPack_BETA/dist/game/data/scripts/quests/Q00370_AnElderSowsSeeds/Q00370_AnElderSowsSeeds.java b/L2J_DataPack_BETA/dist/game/data/scripts/quests/Q00370_AnElderSowsSeeds/Q00370_AnElderSowsSeeds.java new file mode 100644 index 0000000000..1b26f73639 --- /dev/null +++ b/L2J_DataPack_BETA/dist/game/data/scripts/quests/Q00370_AnElderSowsSeeds/Q00370_AnElderSowsSeeds.java @@ -0,0 +1,192 @@ +/* + * Copyright (C) 2004-2013 L2J DataPack + * + * This file is part of L2J DataPack. + * + * L2J DataPack 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. + * + * L2J DataPack 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.Q00370_AnElderSowsSeeds; + +import java.util.HashMap; +import java.util.Map; + +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.util.Util; + +/** + * An Elder Sows Seeds (370) + * @author Adry_85 + */ +public final class Q00370_AnElderSowsSeeds extends Quest +{ + // NPC + private static final int CASIAN = 30612; + // Items + private static final int SPELLBOOK_PAGE = 5916; + private static final int CHAPTER_OF_FIRE = 5917; + private static final int CHAPTER_OF_WATER = 5918; + private static final int CHAPTER_OF_WIND = 5919; + private static final int CHAPTER_OF_EARTH = 5920; + // Misc + private static final int MIN_LEVEL = 28; + // Mobs + private static final Map<Integer, Integer> MOBS1 = new HashMap<>(); + private static final Map<Integer, Double> MOBS2 = new HashMap<>(); + static + { + MOBS1.put(20082, 9); // ant_recruit + MOBS1.put(20086, 9); // ant_guard + MOBS1.put(20090, 22); // noble_ant_leader + MOBS2.put(20084, 0.101); // ant_patrol + MOBS2.put(20089, 0.100); // noble_ant + } + + private Q00370_AnElderSowsSeeds() + { + super(370, Q00370_AnElderSowsSeeds.class.getSimpleName(), "An Elder Sows Seeds"); + addStartNpc(CASIAN); + addTalkId(CASIAN); + addKillId(MOBS1.keySet()); + addKillId(MOBS2.keySet()); + } + + @Override + public boolean checkPartyMember(L2PcInstance member, L2Npc npc) + { + final QuestState st = member.getQuestState(getName()); + return ((st != null) && st.isStarted()); + } + + @Override + public String onAdvEvent(String event, L2Npc npc, L2PcInstance player) + { + final QuestState st = getQuestState(player, false); + if (st == null) + { + return null; + } + + String htmltext = null; + switch (event) + { + case "30612-02.htm": + case "30612-03.htm": + case "30612-06.html": + case "30612-07.html": + case "30612-09.html": + { + htmltext = event; + break; + } + case "30612-04.htm": + { + st.startQuest(); + htmltext = event; + break; + } + case "REWARD": + { + if (st.isStarted()) + { + if (hasQuestItems(player, CHAPTER_OF_FIRE, CHAPTER_OF_WATER, CHAPTER_OF_WIND, CHAPTER_OF_EARTH)) + { + final long waterChapters = getQuestItemsCount(player, CHAPTER_OF_WATER); + final long earthChapters = getQuestItemsCount(player, CHAPTER_OF_EARTH); + final long windChapters = getQuestItemsCount(player, CHAPTER_OF_WIND); + final long fireChapters = getQuestItemsCount(player, CHAPTER_OF_FIRE); + final long minCount = Util.min(waterChapters, earthChapters, windChapters, fireChapters); + giveAdena(player, minCount * 3600, true); + takeItems(player, (int) minCount, CHAPTER_OF_WATER, CHAPTER_OF_EARTH, CHAPTER_OF_WIND, CHAPTER_OF_FIRE); + htmltext = "30612-08.html"; + } + else + { + htmltext = "30612-11.html"; + } + } + break; + } + case "30612-10.html": + { + if (st.isStarted()) + { + if (hasQuestItems(player, CHAPTER_OF_FIRE, CHAPTER_OF_WATER, CHAPTER_OF_WIND, CHAPTER_OF_EARTH)) + { + final long waterChapters = getQuestItemsCount(player, CHAPTER_OF_WATER); + final long earthChapters = getQuestItemsCount(player, CHAPTER_OF_EARTH); + final long windChapters = getQuestItemsCount(player, CHAPTER_OF_WIND); + final long fireChapters = getQuestItemsCount(player, CHAPTER_OF_FIRE); + final long minCount = Util.min(waterChapters, earthChapters, windChapters, fireChapters); + giveAdena(player, minCount * 3600, true); + } + takeItems(player, -1, CHAPTER_OF_WATER, CHAPTER_OF_EARTH, CHAPTER_OF_WIND, CHAPTER_OF_FIRE); + st.exitQuest(true, true); + htmltext = event; + } + break; + } + } + return htmltext; + } + + @Override + public String onKill(L2Npc npc, L2PcInstance player, boolean isSummon) + { + int npcId = npc.getId(); + if (MOBS1.containsKey(npcId)) + { + if (getRandom(100) < MOBS1.get(npcId)) + { + L2PcInstance luckyPlayer = getRandomPartyMember(player, npc); + if (luckyPlayer != null) + { + giveItemRandomly(luckyPlayer, npc, SPELLBOOK_PAGE, 1, 0, 1.0, true); + } + } + } + else + { + final QuestState st = getRandomPartyMemberState(player, -1, 3, npc); + if (st != null) + { + giveItemRandomly(st.getPlayer(), npc, SPELLBOOK_PAGE, 1, 0, MOBS2.get(npcId), true); + } + } + return super.onKill(npc, player, isSummon); + } + + @Override + public String onTalk(L2Npc npc, L2PcInstance player) + { + final QuestState st = getQuestState(player, true); + String htmltext = getNoQuestMsg(player); + if (st.isCreated()) + { + htmltext = (player.getLevel() >= MIN_LEVEL) ? "30612-01.htm" : "30612-05.html"; + } + else if (st.isStarted()) + { + htmltext = "30612-06.html"; + } + return htmltext; + } + + public static void main(String args[]) + { + new Q00370_AnElderSowsSeeds(); + } +} diff --git a/L2J_DataPack_BETA/dist/sql/game/updates/20131226update.sql b/L2J_DataPack_BETA/dist/sql/game/updates/20131226update.sql new file mode 100644 index 0000000000..b3162a940f --- /dev/null +++ b/L2J_DataPack_BETA/dist/sql/game/updates/20131226update.sql @@ -0,0 +1,2 @@ +UPDATE character_quests SET name='Q00369_CollectorOfJewels' WHERE name='369_CollectorOfJewels'; +UPDATE character_quests SET name='Q00370_AnElderSowsSeeds' WHERE name='370_AWisemanSowsSeeds'; \ No newline at end of file -- GitLab