瀏覽代碼

BETA: Quest '''Sea of Spores Fever''' (102) in Java.

	Patch by: xban1x
	Reviewed by: Adry_85
Adry_85 12 年之前
父節點
當前提交
9a208b2313
共有 24 個文件被更改,包括 319 次插入191 次删除
  1. 1 1
      L2J_DataPack_BETA/dist/game/data/scripts.cfg
  2. 0 3
      L2J_DataPack_BETA/dist/game/data/scripts/quests/102_FungusFever/30156-04.htm
  3. 0 3
      L2J_DataPack_BETA/dist/game/data/scripts/quests/102_FungusFever/30284-05.htm
  4. 0 170
      L2J_DataPack_BETA/dist/game/data/scripts/quests/102_FungusFever/__init__.py
  5. 3 4
      L2J_DataPack_BETA/dist/game/data/scripts/quests/Q00102_SeaOfSporesFever/30156-03.html
  6. 3 0
      L2J_DataPack_BETA/dist/game/data/scripts/quests/Q00102_SeaOfSporesFever/30156-04.html
  7. 3 3
      L2J_DataPack_BETA/dist/game/data/scripts/quests/Q00102_SeaOfSporesFever/30156-05.html
  8. 1 1
      L2J_DataPack_BETA/dist/game/data/scripts/quests/Q00102_SeaOfSporesFever/30156-06.html
  9. 0 0
      L2J_DataPack_BETA/dist/game/data/scripts/quests/Q00102_SeaOfSporesFever/30156-07.html
  10. 1 1
      L2J_DataPack_BETA/dist/game/data/scripts/quests/Q00102_SeaOfSporesFever/30217-01.html
  11. 0 0
      L2J_DataPack_BETA/dist/game/data/scripts/quests/Q00102_SeaOfSporesFever/30219-01.html
  12. 0 0
      L2J_DataPack_BETA/dist/game/data/scripts/quests/Q00102_SeaOfSporesFever/30221-01.html
  13. 0 0
      L2J_DataPack_BETA/dist/game/data/scripts/quests/Q00102_SeaOfSporesFever/30284-00.htm
  14. 1 1
      L2J_DataPack_BETA/dist/game/data/scripts/quests/Q00102_SeaOfSporesFever/30284-02.htm
  15. 0 0
      L2J_DataPack_BETA/dist/game/data/scripts/quests/Q00102_SeaOfSporesFever/30284-03.html
  16. 1 1
      L2J_DataPack_BETA/dist/game/data/scripts/quests/Q00102_SeaOfSporesFever/30284-04.html
  17. 3 0
      L2J_DataPack_BETA/dist/game/data/scripts/quests/Q00102_SeaOfSporesFever/30284-05.html
  18. 0 0
      L2J_DataPack_BETA/dist/game/data/scripts/quests/Q00102_SeaOfSporesFever/30284-06.html
  19. 2 2
      L2J_DataPack_BETA/dist/game/data/scripts/quests/Q00102_SeaOfSporesFever/30284-07.htm
  20. 1 1
      L2J_DataPack_BETA/dist/game/data/scripts/quests/Q00102_SeaOfSporesFever/30284-08.htm
  21. 0 0
      L2J_DataPack_BETA/dist/game/data/scripts/quests/Q00102_SeaOfSporesFever/30284-09.html
  22. 0 0
      L2J_DataPack_BETA/dist/game/data/scripts/quests/Q00102_SeaOfSporesFever/30285-01.html
  23. 298 0
      L2J_DataPack_BETA/dist/game/data/scripts/quests/Q00102_SeaOfSporesFever/Q00102_SeaOfSporesFever.java
  24. 1 0
      L2J_DataPack_BETA/dist/sql/game/updates/20130323update.sql

+ 1 - 1
L2J_DataPack_BETA/dist/game/data/scripts.cfg

@@ -357,7 +357,7 @@ quests/64_CertifiedBerserker/__init__.py
 quests/65_CertifiedSoulBreaker/__init__.py
 quests/66_CertifiedArbalester/__init__.py
 quests/101_SwordOfSolidarity/__init__.py
-quests/102_FungusFever/__init__.py
+quests/Q00102_SeaOfSporesFever/Q00102_SeaOfSporesFever.java
 quests/103_SpiritOfCraftsman/__init__.py
 quests/104_SpiritOfMirrors/__init__.py
 quests/105_SkirmishWithOrcs/__init__.py

+ 0 - 3
L2J_DataPack_BETA/dist/game/data/scripts/quests/102_FungusFever/30156-04.htm

@@ -1,3 +0,0 @@
-<html><body>Master Cobendell:<br>
-My dear friend, did you not agree to bring me ten dryad's tears? I must create a healing potion before the poisons of the spores spread throughout the entire village. Please hurry.
-</body></html>

+ 0 - 3
L2J_DataPack_BETA/dist/game/data/scripts/quests/102_FungusFever/30284-05.htm

@@ -1,3 +0,0 @@
-<html><body>Sentinel Knight Alberius:<br>
-Please deliver Cobendell's medicine to the sentinels on my list. Thank you.
-</body></html>

+ 0 - 170
L2J_DataPack_BETA/dist/game/data/scripts/quests/102_FungusFever/__init__.py

@@ -1,170 +0,0 @@
-# Made by Mr. Have fun! Version 0.2
-import sys
-from com.l2jserver import Config 
-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 = "102_FungusFever"
-
-ALBERRYUS_LETTER_ID = 964
-EVERGREEN_AMULET_ID = 965
-DRYAD_TEARS_ID = 966
-ALBERRYUS_LIST_ID = 746
-COBS_MEDICINE1_ID = 1130
-COBS_MEDICINE2_ID = 1131
-COBS_MEDICINE3_ID = 1132
-COBS_MEDICINE4_ID = 1133
-COBS_MEDICINE5_ID = 1134
-SWORD_OF_SENTINEL_ID = 743
-STAFF_OF_SENTINEL_ID = 744
-
-def check(st) :
-   if (st.getQuestItemsCount(COBS_MEDICINE1_ID)==\
-       st.getQuestItemsCount(COBS_MEDICINE2_ID)==\
-       st.getQuestItemsCount(COBS_MEDICINE3_ID)==\
-       st.getQuestItemsCount(COBS_MEDICINE4_ID)==\
-       st.getQuestItemsCount(COBS_MEDICINE5_ID)==0) :
-       st.set("cond","6")
-       st.playSound("ItemSound.quest_middle")
-
-
-class Quest (JQuest) :
-
- def __init__(self,id,name,descr):
-    JQuest.__init__(self,id,name,descr)
-    self.questItemIds = [ALBERRYUS_LETTER_ID, EVERGREEN_AMULET_ID, DRYAD_TEARS_ID, COBS_MEDICINE1_ID, COBS_MEDICINE2_ID, COBS_MEDICINE3_ID, COBS_MEDICINE4_ID, COBS_MEDICINE5_ID, ALBERRYUS_LIST_ID]
-
- def onAdvEvent (self,event,npc, player) :
-    htmltext = event
-    st = player.getQuestState(qn)
-    if not st : return
-    if event == "1" :
-        htmltext = "30284-02.htm"
-        st.giveItems(ALBERRYUS_LETTER_ID,1)
-        st.set("cond","1")
-        st.setState(State.STARTED)
-        st.playSound("ItemSound.quest_accept")
-    return htmltext
-
-
- def onTalk (self,npc,player):
-   npcId = npc.getNpcId()
-   htmltext = Quest.getNoQuestMsg(player)
-   st = player.getQuestState(qn)
-   if not st: return htmltext
-
-   id = st.getState()
-   if id == State.COMPLETED :
-        htmltext = Quest.getAlreadyCompletedMsg(player)
-   elif npcId == 30284 and id == State.CREATED :
-      if player.getRace().ordinal() != 1 :
-         htmltext = "30284-00.htm"
-         st.exitQuest(1)
-      elif player.getLevel() >= 12 :
-         htmltext = "30284-07.htm"
-         return htmltext
-      else:
-         htmltext = "30284-08.htm"
-         st.exitQuest(1)
-   elif id == State.STARTED :
-      if npcId == 30284 and st.getInt("cond")==1 and st.getQuestItemsCount(ALBERRYUS_LETTER_ID)==1 :
-           htmltext = "30284-03.htm"
-      elif npcId == 30284 and st.getInt("cond")==1 and st.getQuestItemsCount(EVERGREEN_AMULET_ID)==1 :
-           htmltext = "30284-09.htm"
-      elif npcId == 30156 and st.getInt("cond")==1 and st.getQuestItemsCount(ALBERRYUS_LETTER_ID)==1 :
-           st.giveItems(EVERGREEN_AMULET_ID,1)
-           st.takeItems(ALBERRYUS_LETTER_ID,1)
-           st.set("cond","2")
-           st.playSound("ItemSound.quest_middle")
-           htmltext = "30156-03.htm"
-      elif npcId == 30156 and st.getInt("cond")==2 and st.getQuestItemsCount(EVERGREEN_AMULET_ID)>0 and st.getQuestItemsCount(DRYAD_TEARS_ID)<10 :
-           htmltext = "30156-04.htm"
-      elif npcId == 30156 and st.getInt("cond")==5 and st.getQuestItemsCount(ALBERRYUS_LIST_ID)>0 :
-           htmltext = "30156-07.htm"
-      elif npcId == 30156 and st.getInt("cond")==3 and st.getQuestItemsCount(EVERGREEN_AMULET_ID)>0 and st.getQuestItemsCount(DRYAD_TEARS_ID)>=10 :
-           st.takeItems(EVERGREEN_AMULET_ID,1)
-           st.takeItems(DRYAD_TEARS_ID,-1)
-           st.giveItems(COBS_MEDICINE1_ID,1)
-           st.giveItems(COBS_MEDICINE2_ID,1)
-           st.giveItems(COBS_MEDICINE3_ID,1)
-           st.giveItems(COBS_MEDICINE4_ID,1)
-           st.giveItems(COBS_MEDICINE5_ID,1)
-           st.set("cond","4")
-           st.playSound("ItemSound.quest_middle")
-           htmltext = "30156-05.htm"
-      elif npcId == 30156 and st.getInt("cond")==4 and st.getQuestItemsCount(ALBERRYUS_LIST_ID)==0 and (st.getQuestItemsCount(COBS_MEDICINE1_ID)==1 or st.getQuestItemsCount(COBS_MEDICINE2_ID)==1 or st.getQuestItemsCount(COBS_MEDICINE3_ID)==1 or st.getQuestItemsCount(COBS_MEDICINE4_ID)==1 or st.getQuestItemsCount(COBS_MEDICINE5_ID)==1) :
-           htmltext = "30156-06.htm"
-      elif npcId == 30284 and st.getInt("cond")==4 and st.getQuestItemsCount(ALBERRYUS_LIST_ID)==0 and st.getQuestItemsCount(COBS_MEDICINE1_ID)==1 :
-           st.takeItems(COBS_MEDICINE1_ID,1)
-           st.giveItems(ALBERRYUS_LIST_ID,1)
-           st.set("cond","5")
-           st.playSound("ItemSound.quest_middle")
-           htmltext = "30284-04.htm"
-      elif npcId == 30284 and st.getInt("cond")==5 and st.getQuestItemsCount(ALBERRYUS_LIST_ID)==1 and (st.getQuestItemsCount(COBS_MEDICINE1_ID)==1 or st.getQuestItemsCount(COBS_MEDICINE2_ID)==1 or st.getQuestItemsCount(COBS_MEDICINE3_ID)==1 or st.getQuestItemsCount(COBS_MEDICINE4_ID)==1 or st.getQuestItemsCount(COBS_MEDICINE5_ID)==1) :
-           htmltext = "30284-05.htm"
-      elif npcId == 30217 and st.getInt("cond")==5 and st.getQuestItemsCount(ALBERRYUS_LIST_ID)==1 and st.getQuestItemsCount(COBS_MEDICINE2_ID)==1 :
-           st.takeItems(COBS_MEDICINE2_ID,1)
-           check(st)
-           htmltext = "30217-01.htm"
-      elif npcId == 30219 and st.getInt("cond")==5 and st.getQuestItemsCount(ALBERRYUS_LIST_ID)==1 and st.getQuestItemsCount(COBS_MEDICINE3_ID)==1 :
-           st.takeItems(COBS_MEDICINE3_ID,1)
-           check(st)
-           htmltext = "30219-01.htm"
-      elif npcId == 30221 and st.getInt("cond")==5 and st.getQuestItemsCount(ALBERRYUS_LIST_ID)==1 and st.getQuestItemsCount(COBS_MEDICINE4_ID)==1 :
-           st.takeItems(COBS_MEDICINE4_ID,1)
-           check(st)
-           htmltext = "30221-01.htm"
-      elif npcId == 30285 and st.getInt("cond")==5 and st.getQuestItemsCount(ALBERRYUS_LIST_ID)==1 and st.getQuestItemsCount(COBS_MEDICINE5_ID)==1 :
-           st.takeItems(COBS_MEDICINE5_ID,1)
-           check(st)
-           htmltext = "30285-01.htm"
-      elif npcId == 30284 and st.getInt("cond")==6 and st.getQuestItemsCount(ALBERRYUS_LIST_ID)==1 :
-           st.takeItems(ALBERRYUS_LIST_ID,1)
-           st.set("cond","0")
-           st.exitQuest(False)
-           st.playSound("ItemSound.quest_finish")
-           htmltext = "30284-06.htm"
-           st.giveItems(57,6331)
-           if player.getClassId().getId() in range(18,25) :
-             st.giveItems(SWORD_OF_SENTINEL_ID,1)
-             st.rewardItems(1835,1000)
-           else:
-             st.giveItems(STAFF_OF_SENTINEL_ID,1)
-             st.rewardItems(2509,1000)
-           for item in range(4412,4417) :
-             st.rewardItems(item,10)
-           st.rewardItems(1060,100)
-           st.addExpAndSp(30202,1339)
-   return htmltext
-
- def onKill(self,npc,player,isPet):
-   st = player.getQuestState(qn)
-   if not st: return 
-
-   if st.getState() == State.STARTED :       
-      npcId = npc.getNpcId()
-      if npcId in [20013,20019] :
-         if st.getQuestItemsCount(EVERGREEN_AMULET_ID)>0 and st.getQuestItemsCount(DRYAD_TEARS_ID)<10 :
-            if self.getRandom(10)<3 :
-               st.giveItems(DRYAD_TEARS_ID,1)
-               if st.getQuestItemsCount(DRYAD_TEARS_ID) == 10 :
-                 st.playSound("ItemSound.quest_middle")
-                 st.set("cond","3")
-               else:
-                 st.playSound("ItemSound.quest_itemget")
-   return
-
-QUEST       = Quest(102,"102_FungusFever","Sea of Spores Fever")
-
-QUEST.addStartNpc(30284)
-QUEST.addTalkId(30284)
-
-QUEST.addTalkId(30156)
-QUEST.addTalkId(30217)
-QUEST.addTalkId(30219)
-QUEST.addTalkId(30221)
-QUEST.addTalkId(30285)
-
-QUEST.addKillId(20013)
-QUEST.addKillId(20019)

+ 3 - 4
L2J_DataPack_BETA/dist/game/data/scripts/quests/102_FungusFever/30156-03.htm → L2J_DataPack_BETA/dist/game/data/scripts/quests/Q00102_SeaOfSporesFever/30156-03.html

@@ -1,6 +1,5 @@
 <html><body>Master Cobendell:<br>
-To create a healing potion to treat the fever, I need the<font color="LEVEL"> dryad's tear</font>, where the purest life forces of the earth are concentrated. Long ago the dryads were beautiful spirits of the trees that sang of the life force of the earth. However, after the balance of magic powers flowing through the woods and the earth were undone during the battle with the Humans, the dryads became spirits with a deep-rooted hatred for all the material races. You can still find<font color="LEVEL"> dryads</font> today if you travel to the deepest heart of the Elven Forest.<br>
-When the dryad's physical body is destroyed, a<font color="LEVEL"> dryad's tear</font> is created. But you must keep this amulet with you at all times. The crystal embedded in this necklace works as a catalyst to concentrate the spiritual power scattered when a dryad is killed into the dryad's tear.<br>
-Well then, good luck on your journey.<font color="LEVEL"> Gather ten dryad's tears</font> and bring them to me.<br>
-
+To create a Healing Potion to treat the fever, I need the <font color="LEVEL">dryad's tear</font>, where the purest life forces of the earth are concentrated. Long ago the dryads were beautiful spirits of the trees that sang of the life force of the earth. However, after the balance of magic powers flowing through the woods and the earth were undone during the battle with the Humans, the dryads became spirits with a deep-rooted hatred for all the material races. You can still find <font color="LEVEL">dryads</font> today if you travel to the Elven Forest to west of the village.<br>
+When the dryad's physical body is destroyed, a <font color="LEVEL">dryad's tear</font> is created. But you must keep this amulet with you at all times. The crystal embedded in this necklace works as a catalyst to concentrate the spiritual power scattered when a dryad is killed into the dryad's tear.<br>
+Well then, good luck on your journey. <font color="LEVEL">Gather ten Dryad's Tears</font> and bring them to me.<br>
 </body></html>

+ 3 - 0
L2J_DataPack_BETA/dist/game/data/scripts/quests/Q00102_SeaOfSporesFever/30156-04.html

@@ -0,0 +1,3 @@
+<html><body>Master Cobendell:<br>
+My dear friend, did you not agree to bring me ten Dryad's Tears? I must create a Healing Potion before the poisons of the spores spread throughout the entire village. Please hurry.
+</body></html>

+ 3 - 3
L2J_DataPack_BETA/dist/game/data/scripts/quests/102_FungusFever/30156-05.htm → L2J_DataPack_BETA/dist/game/data/scripts/quests/Q00102_SeaOfSporesFever/30156-05.html

@@ -1,5 +1,5 @@
 <html><body>Master Cobendell:<br>
-My friend, you have done well to return. Have you gathered all the dryad's tears? Ah, excellent.<br>
-Please wait a moment. All I need to do is add the dryad's tears to the mixture that I have prepared.<br>
-Here, I have created the five potions that are needed most immediately. Please deliver this to<font color="LEVEL"> Sentinel Knight Alberius</font>.
+My friend, you have done well to return. Have you gathered all the Dryad's Tears? Ah, excellent.<br>
+Please wait a moment. All I need to do is add the Dryad's Tears to the mixture that I have prepared.<br>
+Here, I have created the five potions that are needed most immediately. Please deliver this to <font color="LEVEL">Sentinel Knight Alberius</font>.
 </body></html>

+ 1 - 1
L2J_DataPack_BETA/dist/game/data/scripts/quests/102_FungusFever/30156-06.htm → L2J_DataPack_BETA/dist/game/data/scripts/quests/Q00102_SeaOfSporesFever/30156-06.html

@@ -1,4 +1,4 @@
 <html><body>Master Cobendell:<br>
-Please deliver the dryad's tears potion that I have made to<font color="LEVEL"> Sentinel Knight Alberius</font>.<br>
+Please deliver the Dryad's Tears potion that I have made to <font color="LEVEL">Sentinel Knight Alberius</font>.<br>
 Alberius is standing guard at the terrace of the building directly in front of us.
 </body></html>

+ 0 - 0
L2J_DataPack_BETA/dist/game/data/scripts/quests/102_FungusFever/30156-07.htm → L2J_DataPack_BETA/dist/game/data/scripts/quests/Q00102_SeaOfSporesFever/30156-07.html


+ 1 - 1
L2J_DataPack_BETA/dist/game/data/scripts/quests/102_FungusFever/30217-01.htm → L2J_DataPack_BETA/dist/game/data/scripts/quests/Q00102_SeaOfSporesFever/30217-01.html

@@ -1,3 +1,3 @@
-<html><body>Sentinel Berry:<br>
+<html><body>Sentinel Berros:<br>
 Ah, the medicine concocted by Cobendell. Thank you. Thank you.
 </body></html>

+ 0 - 0
L2J_DataPack_BETA/dist/game/data/scripts/quests/102_FungusFever/30219-01.htm → L2J_DataPack_BETA/dist/game/data/scripts/quests/Q00102_SeaOfSporesFever/30219-01.html


+ 0 - 0
L2J_DataPack_BETA/dist/game/data/scripts/quests/102_FungusFever/30221-01.htm → L2J_DataPack_BETA/dist/game/data/scripts/quests/Q00102_SeaOfSporesFever/30221-01.html


+ 0 - 0
L2J_DataPack_BETA/dist/game/data/scripts/quests/102_FungusFever/30284-00.htm → L2J_DataPack_BETA/dist/game/data/scripts/quests/Q00102_SeaOfSporesFever/30284-00.htm


+ 1 - 1
L2J_DataPack_BETA/dist/game/data/scripts/quests/102_FungusFever/30284-02.htm → L2J_DataPack_BETA/dist/game/data/scripts/quests/Q00102_SeaOfSporesFever/30284-02.htm

@@ -1,3 +1,3 @@
 <html><body>Sentinel Knight Alberius:<br>
-Go and seek<font color="LEVEL"> Master Cobendell</font>, who resides within the Sanctum of Eva. Give him this letter and tell him that Alberius has sent you. Cobendell will provide further details. Please hurry.
+Go and seek <font color="LEVEL">Master Cobendell</font>, who resides within the Sanctum of Eva. Give him this letter and tell him that Alberius has sent you. Cobendell will provide further details. Please hurry.
 </body></html>

+ 0 - 0
L2J_DataPack_BETA/dist/game/data/scripts/quests/102_FungusFever/30284-03.htm → L2J_DataPack_BETA/dist/game/data/scripts/quests/Q00102_SeaOfSporesFever/30284-03.html


+ 1 - 1
L2J_DataPack_BETA/dist/game/data/scripts/quests/102_FungusFever/30284-04.htm → L2J_DataPack_BETA/dist/game/data/scripts/quests/Q00102_SeaOfSporesFever/30284-04.html

@@ -1,5 +1,5 @@
 <html><body>Sentinel Knight Alberius:<br>
 Ah, Master Cobendell has completed his medicine. Here, give me one for starters.<br>
 I need to make one more request of you. I would like you to deliver the rest of this medicine to the other Sentinels. In these times, with Dark Elven spies always watching for signs of weakness, none of the sentinels, including myself, dare to leave our posts. I need you to deal with this, because we do not want to give off the impression that we sentinels, the protectors of the woods, are harmed or affected in the slightest. Please honor my request and grant me this favor.<br>
-The other Sentinels who traveled to the Sea of Spores are<font color="LEVEL"> Berry, Veltress, Rayen, and Gartrandell</font>. I have written down their names on this list. Come and seek me again after you have delivered the medicine to them.
+The other Sentinels who traveled to the Sea of Spores are <font color="LEVEL">Berry, Veltress, Rayen, and Gartrandell</font>. I have written down their names on this list. Come and seek me again after you have delivered the medicine to them.
 </body></html>

+ 3 - 0
L2J_DataPack_BETA/dist/game/data/scripts/quests/Q00102_SeaOfSporesFever/30284-05.html

@@ -0,0 +1,3 @@
+<html><body>Sentinel Knight Alberius:<br>
+Please deliver Cobendell's Medicine to the sentinels on my list. Thank you.
+</body></html>

+ 0 - 0
L2J_DataPack_BETA/dist/game/data/scripts/quests/102_FungusFever/30284-06.htm → L2J_DataPack_BETA/dist/game/data/scripts/quests/Q00102_SeaOfSporesFever/30284-06.html


+ 2 - 2
L2J_DataPack_BETA/dist/game/data/scripts/quests/102_FungusFever/30284-07.htm → L2J_DataPack_BETA/dist/game/data/scripts/quests/Q00102_SeaOfSporesFever/30284-07.htm

@@ -1,4 +1,4 @@
 <html><body>Sentinel Knight Alberius:<br>
 I would like to ask you to carry out a task for me. This task must be swiftly and quietly completed without attracting the attention of the other Elves. Can I trust you with this?<br>
-<a action="bypass -h Quest 102_FungusFever 1">Say you will take the task</a>
-</body></html>
+<a action="bypass -h Quest Q00102_SeaOfSporesFever 30284-02.htm">Say you will take the task</a>
+</body></html>

+ 1 - 1
L2J_DataPack_BETA/dist/game/data/scripts/quests/102_FungusFever/30284-08.htm → L2J_DataPack_BETA/dist/game/data/scripts/quests/Q00102_SeaOfSporesFever/30284-08.htm

@@ -1,6 +1,6 @@
 <html><body>Sentinel Knight Alberius:<br>
 Recently the Human Mystics of the Ivory Tower and the top Spellsingers of our race have been working together to research methods to purify the poisons that fill the Sea of Spores, and perhaps some day return it to the beautiful forest it used to be.<br>
 Recently Spellsinger Adria Lumingshine personally travelled to the Sea of Spores to gather materials necessary for research, and a few Sentinels, including myself, accompanied her to that horrendous place as her guards.<br>
-But after she returned from her journey, Adria fell ill of a fever. They say that she has been infected with the poison from the Sea of Spores. Master Cobendell is concocting a medication, but is worried that he may be short on ingredients. If he lacks ingredients for his<font color="LEVEL"> fever remedy,</font> I would ask your help in gathering those ingredients.<br>
+But after she returned from her journey, Adria fell ill of a fever. They say that she has been infected with the poison from the Sea of Spores. Master Cobendell is concocting a medication, but is worried that he may be short on ingredients. If he lacks ingredients for his <font color="LEVEL">fever remedy,</font> I would ask your help in gathering those ingredients.<br>
 (Elf characters with Level 12 and higher may undertake this quest.)
 </body></html>

+ 0 - 0
L2J_DataPack_BETA/dist/game/data/scripts/quests/102_FungusFever/30284-09.htm → L2J_DataPack_BETA/dist/game/data/scripts/quests/Q00102_SeaOfSporesFever/30284-09.html


+ 0 - 0
L2J_DataPack_BETA/dist/game/data/scripts/quests/102_FungusFever/30285-01.htm → L2J_DataPack_BETA/dist/game/data/scripts/quests/Q00102_SeaOfSporesFever/30285-01.html


+ 298 - 0
L2J_DataPack_BETA/dist/game/data/scripts/quests/Q00102_SeaOfSporesFever/Q00102_SeaOfSporesFever.java

@@ -0,0 +1,298 @@
+/*
+ * 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.Q00102_SeaOfSporesFever;
+
+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.base.Race;
+import com.l2jserver.gameserver.model.quest.Quest;
+import com.l2jserver.gameserver.model.quest.QuestState;
+import com.l2jserver.gameserver.model.quest.State;
+
+/**
+ * Sea of Spores Fever (102)
+ * @author xban1x
+ */
+public class Q00102_SeaOfSporesFever extends Quest
+{
+	// NPCs
+	private static final int COBENDELL = 30156;
+	private static final int BERROS = 30217;
+	private static final int VELTRESS = 30219;
+	private static final int RAYEN = 30221;
+	private static final int ALBERIUS = 30284;
+	private static final int GARTRANDELL = 30285;
+	// Monsters
+	private static final int DRYAD = 20013;
+	private static final int DRYAD_ELDER = 20019;
+	// Items
+	private static final int SWORD_OF_SENTINEL = 743;
+	private static final int STAFF_OF_SENTINEL = 744;
+	private static final int ALBERIUS_LIST = 746;
+	private static final int ALBERIUS_LETTER = 964;
+	private static final int EVERGREEN_AMULET = 965;
+	private static final int DRYADS_TEAR = 966;
+	private static final int LESSER_HEALING_POTION = 1060;
+	private static final int COBENDELLS_MEDICINE1 = 1130;
+	private static final int COBENDELLS_MEDICINE2 = 1131;
+	private static final int COBENDELLS_MEDICINE3 = 1132;
+	private static final int COBENDELLS_MEDICINE4 = 1133;
+	private static final int COBENDELLS_MEDICINE5 = 1134;
+	private static final int SOULSHOT_NO_GRADE = 1835;
+	private static final int SPIRITSHOT_NO_GRADE = 2509;
+	private static final int ECHO_CRYSTAL_THEME_OF_BATTLE = 4412;
+	private static final int ECHO_CRYSTAL_THEME_OF_LOVE = 4413;
+	private static final int ECHO_CRYSTAL_THEME_OF_SOLITUDE = 4414;
+	private static final int ECHO_CRYSTAL_THEME_OF_FEAST = 4415;
+	private static final int ECHO_CRYSTAL_THEME_OF_CELEBRATION = 4416;
+	// Misc
+	private static final int MIN_LVL = 12;
+	private static final Map<Integer, Integer> SENTINELS = new HashMap<>();
+	static
+	{
+		SENTINELS.put(GARTRANDELL, COBENDELLS_MEDICINE5);
+		SENTINELS.put(RAYEN, COBENDELLS_MEDICINE4);
+		SENTINELS.put(VELTRESS, COBENDELLS_MEDICINE3);
+		SENTINELS.put(BERROS, COBENDELLS_MEDICINE2);
+		SENTINELS.put(ALBERIUS, COBENDELLS_MEDICINE1);
+	}
+	
+	public Q00102_SeaOfSporesFever(int questId, String name, String descr)
+	{
+		super(questId, name, descr);
+		addStartNpc(ALBERIUS);
+		addTalkId(ALBERIUS, COBENDELL, GARTRANDELL, BERROS, VELTRESS, RAYEN);
+		addKillId(DRYAD, DRYAD_ELDER);
+		registerQuestItems(ALBERIUS_LIST, ALBERIUS_LETTER, EVERGREEN_AMULET, DRYADS_TEAR, COBENDELLS_MEDICINE1, COBENDELLS_MEDICINE2, COBENDELLS_MEDICINE3, COBENDELLS_MEDICINE4, COBENDELLS_MEDICINE5);
+	}
+	
+	@Override
+	public String onAdvEvent(String event, L2Npc npc, L2PcInstance player)
+	{
+		final QuestState st = player.getQuestState(getName());
+		if ((st != null) && event.equals("30284-02.htm"))
+		{
+			st.startQuest();
+			st.giveItems(ALBERIUS_LETTER, 1);
+			return event;
+		}
+		return super.onAdvEvent(event, npc, player);
+	}
+	
+	@Override
+	public String onKill(L2Npc npc, L2PcInstance killer, boolean isSummon)
+	{
+		final QuestState st = killer.getQuestState(getName());
+		if ((st != null) && st.isCond(2) && (getRandom(10) < 3))
+		{
+			st.giveItems(DRYADS_TEAR, 1);
+			if (st.getQuestItemsCount(DRYADS_TEAR) < 10)
+			{
+				st.playSound(QuestSound.ITEMSOUND_QUEST_ITEMGET);
+			}
+			else
+			{
+				st.setCond(3, true);
+			}
+		}
+		return super.onKill(npc, killer, isSummon);
+	}
+	
+	@Override
+	public String onTalk(L2Npc npc, L2PcInstance player)
+	{
+		final QuestState st = player.getQuestState(getName());
+		String htmltext = getNoQuestMsg(player);
+		if (st != null)
+		{
+			switch (npc.getNpcId())
+			{
+				case ALBERIUS:
+				{
+					switch (st.getState())
+					{
+						case State.CREATED:
+						{
+							htmltext = player.getRace() == Race.Elf ? player.getLevel() >= MIN_LVL ? "30284-07.htm" : "30284-08.htm" : "30284-00.htm";
+							break;
+						}
+						case State.STARTED:
+						{
+							switch (st.getCond())
+							{
+								case 1:
+								{
+									if (st.hasQuestItems(ALBERIUS_LETTER))
+									{
+										htmltext = "30284-03.html";
+									}
+									break;
+								}
+								case 2:
+								{
+									if (st.hasQuestItems(EVERGREEN_AMULET))
+									{
+										htmltext = "30284-09.html";
+									}
+									break;
+								}
+								case 4:
+								{
+									if (st.hasQuestItems(COBENDELLS_MEDICINE1))
+									{
+										st.takeItems(COBENDELLS_MEDICINE1, 1);
+										st.giveItems(ALBERIUS_LIST, 1);
+										st.setCond(5);
+										htmltext = "30284-04.html";
+									}
+									break;
+								}
+								case 5:
+								{
+									if (hasAtLeastOneQuestItem(player, COBENDELLS_MEDICINE1, COBENDELLS_MEDICINE2, COBENDELLS_MEDICINE3, COBENDELLS_MEDICINE4, COBENDELLS_MEDICINE5))
+									{
+										htmltext = "30284-05.html";
+									}
+									break;
+								}
+								case 6:
+								{
+									if (!hasAtLeastOneQuestItem(player, COBENDELLS_MEDICINE1, COBENDELLS_MEDICINE2, COBENDELLS_MEDICINE3, COBENDELLS_MEDICINE4, COBENDELLS_MEDICINE5))
+									{
+										st.giveItems(LESSER_HEALING_POTION, 100);
+										st.giveItems(ECHO_CRYSTAL_THEME_OF_BATTLE, 10);
+										st.giveItems(ECHO_CRYSTAL_THEME_OF_LOVE, 10);
+										st.giveItems(ECHO_CRYSTAL_THEME_OF_SOLITUDE, 10);
+										st.giveItems(ECHO_CRYSTAL_THEME_OF_FEAST, 10);
+										st.giveItems(ECHO_CRYSTAL_THEME_OF_CELEBRATION, 10);
+										if (player.isMageClass())
+										{
+											st.giveItems(STAFF_OF_SENTINEL, 1);
+											st.giveItems(SPIRITSHOT_NO_GRADE, 500);
+										}
+										else
+										{
+											st.giveItems(SWORD_OF_SENTINEL, 1);
+											st.giveItems(SOULSHOT_NO_GRADE, 500);
+										}
+										st.addExpAndSp(30202, 1339);
+										st.giveAdena(6331, true);
+										st.exitQuest(false, true);
+										htmltext = "30284-06.html";
+									}
+									break;
+								}
+							}
+							break;
+						}
+						case State.COMPLETED:
+						{
+							htmltext = getAlreadyCompletedMsg(player);
+							break;
+						}
+					}
+					break;
+				}
+				case COBENDELL:
+				{
+					switch (st.getCond())
+					{
+						case 1:
+						{
+							if (st.hasQuestItems(ALBERIUS_LETTER))
+							{
+								st.takeItems(ALBERIUS_LETTER, 1);
+								st.giveItems(EVERGREEN_AMULET, 1);
+								st.setCond(2, true);
+								htmltext = "30156-03.html";
+							}
+							break;
+						}
+						case 2:
+						{
+							if (st.hasQuestItems(EVERGREEN_AMULET) && (st.getQuestItemsCount(DRYADS_TEAR) < 10))
+							{
+								htmltext = "30156-04.html";
+							}
+							break;
+						}
+						case 3:
+						{
+							if (st.getQuestItemsCount(DRYADS_TEAR) >= 10)
+							{
+								st.takeItems(EVERGREEN_AMULET, -1);
+								st.takeItems(DRYADS_TEAR, -1);
+								st.giveItems(COBENDELLS_MEDICINE1, 1);
+								st.giveItems(COBENDELLS_MEDICINE2, 1);
+								st.giveItems(COBENDELLS_MEDICINE3, 1);
+								st.giveItems(COBENDELLS_MEDICINE4, 1);
+								st.giveItems(COBENDELLS_MEDICINE5, 1);
+								st.setCond(4, true);
+								htmltext = "30156-05.html";
+							}
+							break;
+						}
+						case 4:
+						{
+							if (hasAtLeastOneQuestItem(player, COBENDELLS_MEDICINE1, COBENDELLS_MEDICINE2, COBENDELLS_MEDICINE3, COBENDELLS_MEDICINE4, COBENDELLS_MEDICINE5))
+							{
+								htmltext = "30156-06.html";
+							}
+							break;
+						}
+						case 5:
+						{
+							if (hasAtLeastOneQuestItem(player, COBENDELLS_MEDICINE1, COBENDELLS_MEDICINE2, COBENDELLS_MEDICINE3, COBENDELLS_MEDICINE4, COBENDELLS_MEDICINE5))
+							{
+								htmltext = "30156-07.html";
+							}
+							break;
+						}
+					}
+					break;
+				}
+				case GARTRANDELL:
+				case RAYEN:
+				case VELTRESS:
+				case BERROS:
+				{
+					if (st.hasQuestItems(ALBERIUS_LIST, SENTINELS.get(npc.getNpcId())))
+					{
+						st.takeItems(SENTINELS.get(npc.getNpcId()), -1);
+						if (!hasAtLeastOneQuestItem(player, COBENDELLS_MEDICINE1, COBENDELLS_MEDICINE2, COBENDELLS_MEDICINE3, COBENDELLS_MEDICINE4, COBENDELLS_MEDICINE5))
+						{
+							st.setCond(6);
+						}
+						htmltext = npc.getNpcId() + "-01.html";
+					}
+					break;
+				}
+			}
+		}
+		return htmltext;
+	}
+	
+	public static void main(String[] args)
+	{
+		new Q00102_SeaOfSporesFever(102, Q00102_SeaOfSporesFever.class.getSimpleName(), "Sea of Spores Fever");
+	}
+}

+ 1 - 0
L2J_DataPack_BETA/dist/sql/game/updates/20130323update.sql

@@ -0,0 +1 @@
+UPDATE character_quests SET name='Q00102_SeaOfSporesFever' WHERE name='122_FungusFever';