Browse Source

5 new quests, tnx t0rm3nt0r
-175 TheWayOfTheWarrior
-281 HeadForTheHills
-283 TheFewTheProudTheBrave
-284 MuertosFeather
-286 FabulousFeathers

Kerberos 17 years ago
parent
commit
3c413793d8
57 changed files with 719 additions and 0 deletions
  1. 5 0
      datapack_development/data/scripts.cfg
  2. 4 0
      datapack_development/data/scripts/quests/175_TheWayOfTheWarrior/32133-01.htm
  3. 3 0
      datapack_development/data/scripts/quests/175_TheWayOfTheWarrior/32133-02.htm
  4. 4 0
      datapack_development/data/scripts/quests/175_TheWayOfTheWarrior/32133-03.htm
  5. 3 0
      datapack_development/data/scripts/quests/175_TheWayOfTheWarrior/32133-04.htm
  6. 5 0
      datapack_development/data/scripts/quests/175_TheWayOfTheWarrior/32133-05.htm
  7. 4 0
      datapack_development/data/scripts/quests/175_TheWayOfTheWarrior/32133-06.htm
  8. 3 0
      datapack_development/data/scripts/quests/175_TheWayOfTheWarrior/32133-07.htm
  9. 4 0
      datapack_development/data/scripts/quests/175_TheWayOfTheWarrior/32138-01.htm
  10. 4 0
      datapack_development/data/scripts/quests/175_TheWayOfTheWarrior/32138-02.htm
  11. 4 0
      datapack_development/data/scripts/quests/175_TheWayOfTheWarrior/32138-03.htm
  12. 4 0
      datapack_development/data/scripts/quests/175_TheWayOfTheWarrior/32138-04.htm
  13. 3 0
      datapack_development/data/scripts/quests/175_TheWayOfTheWarrior/32138-05.htm
  14. 5 0
      datapack_development/data/scripts/quests/175_TheWayOfTheWarrior/32138-06.htm
  15. 3 0
      datapack_development/data/scripts/quests/175_TheWayOfTheWarrior/32138-07.htm
  16. 4 0
      datapack_development/data/scripts/quests/175_TheWayOfTheWarrior/32138-08.htm
  17. 3 0
      datapack_development/data/scripts/quests/175_TheWayOfTheWarrior/32138-09.htm
  18. 3 0
      datapack_development/data/scripts/quests/175_TheWayOfTheWarrior/32138-10.htm
  19. 4 0
      datapack_development/data/scripts/quests/175_TheWayOfTheWarrior/32138-11.htm
  20. 3 0
      datapack_development/data/scripts/quests/175_TheWayOfTheWarrior/32138-12.htm
  21. 140 0
      datapack_development/data/scripts/quests/175_TheWayOfTheWarrior/__init__.py
  22. 8 0
      datapack_development/data/scripts/quests/281_HeadForTheHills/32173-01.htm
  23. 5 0
      datapack_development/data/scripts/quests/281_HeadForTheHills/32173-02.htm
  24. 5 0
      datapack_development/data/scripts/quests/281_HeadForTheHills/32173-03.htm
  25. 3 0
      datapack_development/data/scripts/quests/281_HeadForTheHills/32173-04.htm
  26. 5 0
      datapack_development/data/scripts/quests/281_HeadForTheHills/32173-05.htm
  27. 6 0
      datapack_development/data/scripts/quests/281_HeadForTheHills/32173-06.htm
  28. 6 0
      datapack_development/data/scripts/quests/281_HeadForTheHills/32173-07.htm
  29. 3 0
      datapack_development/data/scripts/quests/281_HeadForTheHills/32173-07a.htm
  30. 4 0
      datapack_development/data/scripts/quests/281_HeadForTheHills/32173-08.htm
  31. 5 0
      datapack_development/data/scripts/quests/281_HeadForTheHills/32173-09.htm
  32. 108 0
      datapack_development/data/scripts/quests/281_HeadForTheHills/__init__.py
  33. 6 0
      datapack_development/data/scripts/quests/283_TheFewTheProudTheBrave/32133-01.htm
  34. 6 0
      datapack_development/data/scripts/quests/283_TheFewTheProudTheBrave/32133-02.htm
  35. 4 0
      datapack_development/data/scripts/quests/283_TheFewTheProudTheBrave/32133-03.htm
  36. 4 0
      datapack_development/data/scripts/quests/283_TheFewTheProudTheBrave/32133-04.htm
  37. 4 0
      datapack_development/data/scripts/quests/283_TheFewTheProudTheBrave/32133-05.htm
  38. 6 0
      datapack_development/data/scripts/quests/283_TheFewTheProudTheBrave/32133-06.htm
  39. 3 0
      datapack_development/data/scripts/quests/283_TheFewTheProudTheBrave/32133-07.htm
  40. 3 0
      datapack_development/data/scripts/quests/283_TheFewTheProudTheBrave/32133-08.htm
  41. 79 0
      datapack_development/data/scripts/quests/283_TheFewTheProudTheBrave/__init__.py
  42. 5 0
      datapack_development/data/scripts/quests/284_MuertosFeather/32166-01.htm
  43. 4 0
      datapack_development/data/scripts/quests/284_MuertosFeather/32166-02.htm
  44. 4 0
      datapack_development/data/scripts/quests/284_MuertosFeather/32166-03.htm
  45. 3 0
      datapack_development/data/scripts/quests/284_MuertosFeather/32166-04.htm
  46. 5 0
      datapack_development/data/scripts/quests/284_MuertosFeather/32166-05.htm
  47. 6 0
      datapack_development/data/scripts/quests/284_MuertosFeather/32166-06.htm
  48. 4 0
      datapack_development/data/scripts/quests/284_MuertosFeather/32166-07.htm
  49. 3 0
      datapack_development/data/scripts/quests/284_MuertosFeather/32166-08.htm
  50. 80 0
      datapack_development/data/scripts/quests/284_MuertosFeather/__init__.py
  51. 7 0
      datapack_development/data/scripts/quests/286_FabulousFeathers/32164-01.htm
  52. 6 0
      datapack_development/data/scripts/quests/286_FabulousFeathers/32164-02.htm
  53. 5 0
      datapack_development/data/scripts/quests/286_FabulousFeathers/32164-03.htm
  54. 4 0
      datapack_development/data/scripts/quests/286_FabulousFeathers/32164-04.htm
  55. 7 0
      datapack_development/data/scripts/quests/286_FabulousFeathers/32164-05.htm
  56. 4 0
      datapack_development/data/scripts/quests/286_FabulousFeathers/32164-06.htm
  57. 84 0
      datapack_development/data/scripts/quests/286_FabulousFeathers/__init__.py

+ 5 - 0
datapack_development/data/scripts.cfg

@@ -203,6 +203,7 @@ quests/171_ActsOfEvil/__init__.py
 quests/172_NewHorizons/__init__.py
 quests/173_ToTheIsleOfSouls/__init__.py
 quests/174_SupplyCheck/__init__.py
+quests/175_TheWayOfTheWarrior/__init__.py
 quests/211_TrialOfChallenger/__init__.py
 quests/212_TrialOfDuty/__init__.py
 quests/213_TrialOfSeeker/__init__.py
@@ -251,6 +252,10 @@ quests/275_BlackWingedSpies/__init__.py
 quests/276_HestuiTotem/__init__.py
 quests/277_GatekeepersOffering/__init__.py
 quests/280_TheFoodChain/__init__.py
+quests/281_HeadForTheHills/__init__.py
+quests/283_TheFewTheProudTheBrave/__init__.py
+quests/284_MuertosFeather/__init__.py
+quests/286_FabulousFeathers/__init__.py
 quests/291_RedBonnetsRevenge/__init__.py
 quests/292_CrushBrigands/__init__.py
 quests/293_HiddenVein/__init__.py

+ 4 - 0
datapack_development/data/scripts/quests/175_TheWayOfTheWarrior/32133-01.htm

@@ -0,0 +1,4 @@
+<html><body>Vice Hierarch Perwan:<br>
+I met you not long ago, and yet here you are preparing for your warrior ritual. Excellent!<br>
+There is something you must do first, however. Go to the Hills of Gold and obtain <font color="LEVEL">5 lovely Wolf Tails</font>. Leave the rest to me.
+</body></html>

+ 3 - 0
datapack_development/data/scripts/quests/175_TheWayOfTheWarrior/32133-02.htm

@@ -0,0 +1,3 @@
+<html><body>Vice Hierarch Perwan:<br>
+Did you forget what I told you? <font color="LEVEL">Go to the Hills of Gold and obtain 5 lovely Werewolf tail pelts.</font>
+</body></html>

+ 4 - 0
datapack_development/data/scripts/quests/175_TheWayOfTheWarrior/32133-03.htm

@@ -0,0 +1,4 @@
+<html><body>Vice Hierarch Perwan:<br>
+Well done! Now return to <font color="LEVEL">Hierarch Kekropus</font> and listen to his words while I prepare these things.<br>
+He will tell you the reason why you must undergo these formalities. After your curiosity has been satified, everything will be ready for you. Go, make haste!
+</body></html>

+ 3 - 0
datapack_development/data/scripts/quests/175_TheWayOfTheWarrior/32133-04.htm

@@ -0,0 +1,3 @@
+<html><body>Vice Hierarch Perwan:<br>
+This will take some time to prepare, so go to <font color="LEVEL">Hierarch Kekropus</font> and listen to his words.
+</body></html>

+ 5 - 0
datapack_development/data/scripts/quests/175_TheWayOfTheWarrior/32133-05.htm

@@ -0,0 +1,5 @@
+<html><body>Vice Hierarch Perwan:<br>
+The preparations are complete. You understand now why they were necessary, right?<br>
+Then be seated, close your eyes and tell me when you are ready to begin<br>
+<a action="bypass -h Quest 175_TheWayOfTheWarrior 32133-06.htm">"I'm ready."</a>
+</body></html>

+ 4 - 0
datapack_development/data/scripts/quests/175_TheWayOfTheWarrior/32133-06.htm

@@ -0,0 +1,4 @@
+<html><body>Vice Hierarch Perwan:<br>
+Wait a moment -- don't move<br>
+Ah, we are ready! Now go to <font color="LEVEL">Hierarch Kekropus</font> to be acknowledged as a true Kamael Warrior.
+</body></html>

+ 3 - 0
datapack_development/data/scripts/quests/175_TheWayOfTheWarrior/32133-07.htm

@@ -0,0 +1,3 @@
+<html><body>Vice Hierarch Perwan:<br>
+Why are you still here? Go to <font color="LEVEL">Hierarch Kekropus</font> immediately!
+</body></html>

+ 4 - 0
datapack_development/data/scripts/quests/175_TheWayOfTheWarrior/32138-01.htm

@@ -0,0 +1,4 @@
+<html><body>Hierarch Kekropus:<br>
+What brings you to me?<br>
+<a action="bypass -h Quest 175_TheWayOfTheWarrior 32138-03.htm">"I would like to become a Kamael warrior."</a>
+</body></html>

+ 4 - 0
datapack_development/data/scripts/quests/175_TheWayOfTheWarrior/32138-02.htm

@@ -0,0 +1,4 @@
+<html><body>Hierarch Kekropus:<br>
+My child, you are too young to take the Fighter's exam. Come back to me when you are more experienced.<br>
+(Only Kamael clans above level 10 may embark on this quest.)
+</body></html>

+ 4 - 0
datapack_development/data/scripts/quests/175_TheWayOfTheWarrior/32138-03.htm

@@ -0,0 +1,4 @@
+<html><body>Hierarch Kekropus:<br>
+I admire your confidence! To be acknowledged as a Kamael warrior is no easy task. Are you prepared to risk both body and spirit?<br>
+<a action="bypass -h Quest 175_TheWayOfTheWarrior 32138-04.htm">"I can do anything."</a>
+</body></html>

+ 4 - 0
datapack_development/data/scripts/quests/175_TheWayOfTheWarrior/32138-04.htm

@@ -0,0 +1,4 @@
+<html><body>Hierarch Kekropus:<br>
+Yes, with that kind of will, you may avercome any hardship. You have the spirit and pride necessary for a Fighter.<br>
+You must prepare for the ceremony. Go to <font color="LEVEL">Vice Hierarch Perwan at the Cave of Souls</font> and seek his assistance; then returned to me when your preparations have been completed.
+</body></html>

+ 3 - 0
datapack_development/data/scripts/quests/175_TheWayOfTheWarrior/32138-05.htm

@@ -0,0 +1,3 @@
+<html><body>Hierarch Kekropus:<br>
+Did you meet <font color="LEVEL">Assistant Elder Perwan</font>? In order to perform the ceremony, certain basic preparations must be undertaken. Come back when they have been completed.
+</body></html>

+ 5 - 0
datapack_development/data/scripts/quests/175_TheWayOfTheWarrior/32138-06.htm

@@ -0,0 +1,5 @@
+<html><body>Hierarch Kekropus:<br>
+How are the preparations progressing? I see that you are curious about why we are preparing for this ceremony rather than simply leaving for the hunt.<br>
+But you have hunted outside before, so you must know that you may meet a foe stronger than you are or be overcome by a poison you have never befor encountered. Through this ceremony, we help ensure the safety of those the participants.<br>
+The preparations should be complete by now. Go back to <font color="LEVEL">Perwan in the Cave of Souls</font>.
+</body></html>

+ 3 - 0
datapack_development/data/scripts/quests/175_TheWayOfTheWarrior/32138-07.htm

@@ -0,0 +1,3 @@
+<html><body>Hierarch Kekropus:<br>
+The preparations have been completed; return to Perwan if you still wish to be acknowledged as one of the Fighters. Go quickly to <font color="LEVEL">Assistant Elder Perwan at the Grotto</font>.
+</body></html>

+ 4 - 0
datapack_development/data/scripts/quests/175_TheWayOfTheWarrior/32138-08.htm

@@ -0,0 +1,4 @@
+<html><body>Hierarch Kekropus:<br>
+In you, I see hope for our people's future as a race. Are you prepared to take the test?<br>
+<a action="bypass -h Quest 175_TheWayOfTheWarrior 32138-09.htm">"I am ready."</a>
+</body></html>

+ 3 - 0
datapack_development/data/scripts/quests/175_TheWayOfTheWarrior/32138-09.htm

@@ -0,0 +1,3 @@
+<html><body>Hierarch Kekropus:<br>
+Very well. You now prove that you have the necessary traits to be a Fighter: bravery and strength. Go to the <font color="LEVEL">Hills of Gold</font>, hunt <font color="LEVEL">Muertos</font> and bring back <font color="LEVEL">10 Muertos Claws</font>.
+</body></html>

+ 3 - 0
datapack_development/data/scripts/quests/175_TheWayOfTheWarrior/32138-10.htm

@@ -0,0 +1,3 @@
+<html><body>Hierarch Kekropus:<br>
+The test has now begun. If you have a Fighter's pride and will, prove it to me now. Go to Hills of Gold and bring back <font color="LEVEL">10 Muertos Claws</font>.
+</body></html>

+ 4 - 0
datapack_development/data/scripts/quests/175_TheWayOfTheWarrior/32138-11.htm

@@ -0,0 +1,4 @@
+<html><body>Hierarch Kekropus:<br>
+I perceive this was a difficult task for you. Did you bring the Muertos claws?<br>
+<a action="bypass -h Quest 175_TheWayOfTheWarrior 32138-12.htm">Show him the claws.</a>
+</body></html>

+ 3 - 0
datapack_development/data/scripts/quests/175_TheWayOfTheWarrior/32138-12.htm

@@ -0,0 +1,3 @@
+<html><body>Hierarch Kekropus:<br>
+Well done! You are now a Kamael warrior. Take this Fighter's Sword as proof of your new station. May it aid you training and your journeys. Bring honor to the Kamael people, my young friend!
+</body></html>

+ 140 - 0
datapack_development/data/scripts/quests/175_TheWayOfTheWarrior/__init__.py

@@ -0,0 +1,140 @@
+# Contributed by t0rm3nt0r (tormentor2000@mail.ru) to the Official L2J Datapack Project
+# Visit http://forum.l2jdp.com for more details.
+
+import sys
+from net.sf.l2j.gameserver.model.quest import State
+from net.sf.l2j.gameserver.model.quest import QuestState
+from net.sf.l2j.gameserver.model.quest.jython import QuestJython as JQuest
+
+qn = "175_TheWayOfTheWarrior"
+
+#NPC'S
+PERWAN = 32133
+KEKROPUS = 32138
+
+#ITEM'S
+WARRIORS_SWORD = 9720
+LESSER_HEALING_POTIONS = 1060
+ECHO = range(4412,4417)
+SOULSHOT_FOR_BEGINNERS = 5789
+WOLF_TAIL = 9799
+MUERTOS_CLAW = 9808
+
+#MOBS
+MOUNTAIN_WEREWOLF = 22235
+MUERTOS = [22236]+range(22239,22241)+range(22242,22244)+range(22245,22247)
+
+
+class Quest (JQuest) :
+
+ def __init__(self,id,name,descr):
+     JQuest.__init__(self,id,name,descr)
+ 
+ def onEvent (self,event,st) :
+     htmltext = event
+     if event == "32138-04.htm" :
+       st.set("cond","1")
+       st.setState(State.STARTED)
+       st.playSound("ItemSound.quest_accept")
+     elif event == "32133-06.htm" :
+       st.set("cond","6") 
+       st.playSound("ItemSound.quest_accept")
+     elif event == "32138-09.htm" :
+       st.set("cond","7") 
+       st.playSound("ItemSound.quest_accept")  
+     elif event == "32138-12.htm" :
+       st.takeItems(MUERTOS_CLAW,-1)
+       st.giveItems(LESSER_HEALING_POTIONS,100)
+       for item in ECHO :
+         st.giveItems(item,10)
+       if player.getLevel() < 20 and player.isNewbie() :
+         st.giveItems(SOULSHOT_FOR_BEGINNERS,7000)
+       st.giveItems(WARRIORS_SWORD,1)
+       st.playSound("ItemSound.quest_finish")
+       st.exitQuest(False)
+     return htmltext
+
+ def onTalk (self,npc,player):
+     npcId = npc.getNpcId()
+     htmltext = "<html><body>You are either not on a quest that involves this NPC, or you don't meet this NPC's minimum quest requirements.</body></html>"
+     st = player.getQuestState(qn)
+     if not st : return htmltext
+     id = st.getState()
+     cond = st.getInt("cond")
+     if id == State.COMPLETED :
+       htmltext = "<html><body>This quest has already been completed.</body></html>"
+     elif id == State.CREATED and npcId == KEKROPUS :
+       if st.getPlayer().getLevel() >= 10 and player.getRace().ordinal() == 5 :
+         htmltext = "32138-01.htm"
+       else :
+         htmltext = "32138-02.htm"
+         st.exitQuest(1)
+     elif id == State.STARTED :
+       if npcId == KEKROPUS : 
+         if cond == 1 :
+           htmltext = "32138-05.htm"
+         elif cond == 4 :
+           htmltext = "32138-06.htm"
+           st.set("cond","5")
+           st.playSound("ItemSound.quest_middle")
+         elif cond == 5 :
+           htmltext = "32138-07.htm"
+         elif cond == 6 :
+           htmltext = "32138-08.htm"
+         elif cond == 7 :
+           htmltext = "32138-10.htm"
+         elif cond == 8 :
+           htmltext = "32138-11.htm"
+       elif npcId == PERWAN :
+         if cond == 1 :
+           htmltext = "32133-01.htm"
+           st.set("cond","2")
+           st.playSound("ItemSound.quest_middle")
+         elif cond == 2 :
+           htmltext = "32133-02.htm"
+         elif cond == 3 :
+           st.takeItems(WOLF_TAIL,-1)
+           htmltext = "32133-03.htm"
+           st.set("cond","4")
+           st.playSound("ItemSound.quest_middle")
+         elif cond == 4 :
+           htmltext = "32133-04.htm" 
+         elif cond == 5 :
+           htmltext = "32133-05.htm" 
+         elif cond == 6 :
+           htmltext = "32133-07.htm"          
+     return htmltext
+
+ def onKill(self,npc,player,isPet) :
+     st = player.getQuestState(qn)
+     if not st: return
+     if st.getState() == State.STARTED :
+       npcId = npc.getNpcId()
+       cond = st.getInt("cond")
+       chance = st.getRandom(100)
+       tails = st.getQuestItemsCount(WOLF_TAIL)
+       claws = st.getQuestItemsCount(MUERTOS_CLAW)
+       if npcId == MOUNTAIN_WEREWOLF and (chance < 50) and (cond == 2) and (tails < 5) : #Retail statistic info. 10 mob's - 5 tails
+         st.giveItems(WOLF_TAIL,1)
+         st.playSound("ItemSound.quest_itemget")
+         if st.getQuestItemsCount(WOLF_TAIL) == 5 :
+           st.set("cond","3")
+           st.playSound("ItemSound.quest_middle")
+       elif (npcId in MUERTOS) and (claws < 10) and (cond == 7): #Retail statistic info. 10 mob's - 10 claws
+         st.giveItems(MUERTOS_CLAW,1)
+         st.playSound("ItemSound.quest_itemget") 
+         if st.getQuestItemsCount(MUERTOS_CLAW) == 10 :
+           st.set("cond","8")
+           st.playSound("ItemSound.quest_middle")
+     return
+
+QUEST       = Quest(175, qn, "The Way of the Warrior")
+
+QUEST.addStartNpc(KEKROPUS)
+
+QUEST.addTalkId(KEKROPUS)
+QUEST.addTalkId(PERWAN)
+
+QUEST.addKillId(MOUNTAIN_WEREWOLF)
+for mob in MUERTOS :
+    QUEST.addKillId(mob)

+ 8 - 0
datapack_development/data/scripts/quests/281_HeadForTheHills/32173-01.htm

@@ -0,0 +1,8 @@
+<html><body>Zerstorer Marcela:<br>
+Since this island was apened to the outside world, there has been a dramatic increase in the number of goods and people entering through the port.<br>
+The road from the port to the town winds through the Hills of Gold and is longer than the road through the forest, but large caravanas prefer to use it because the ground is level and safe. Therefore, it is a very important road...<br>
+Recently, however, the increased volume of traffic seems to have drawn the attention of the monsters nearby. I'm growing concerned about the number of monsters now in the Hills of Gold...<br>
+A town such as ours that lacks manpower must resolve this problem through novice Kamael or wansering adventures.<br>
+What do you think? Will you help us?<br>
+<a action="bypass -h Quest 281_HeadForTheHills 32173-03.htm">Say you will help.</a>
+</body></html>

+ 5 - 0
datapack_development/data/scripts/quests/281_HeadForTheHills/32173-02.htm

@@ -0,0 +1,5 @@
+<html><body>Zerstorer Marcela:<br>
+I admire your confidence, but I don't think you are ready yet to face the monsters of the Hills of Gold.<br>
+Perhaps after some more training...<br>
+(Only characters who are level 6 or higher may undertake this quest.)
+</body></html>

+ 5 - 0
datapack_development/data/scripts/quests/281_HeadForTheHills/32173-03.htm

@@ -0,0 +1,5 @@
+<html><body>Zerstorer Marcela:<br>
+Oh, thank you... Go to the Hills of Gold and hunt the <font color="LEVEL">Green Goblins, Hill Werewolves, Muertos Archers, Mountain Werewolf Chieftains, Muertos Guards and Mountain Fungus</font>, and bring back the <font color="LEVEL">claws of the monsters in the Hills of Gold</font>...<br>
+For a reward, you can choose to receive Adena equalling the number of claws you bring, or you can trade a set of <font color="LEVEL">50 claws for for an item</font>.<br>
+Take care...
+</body></html>

+ 3 - 0
datapack_development/data/scripts/quests/281_HeadForTheHills/32173-04.htm

@@ -0,0 +1,3 @@
+<html><body>Zerstorer Marcela:<br>
+Go to the Hills of Gold and hunt the <font color="LEVEL">Green Goblins, Hill Werewolves, Muertos Archers, Mountain Werewolf Chieftains, Muertos Guards and Mountain Fungus</font>. Collect <font color="LEVEL">the claws of the monsters of the Hills of Gold</font>...
+</body></html>

+ 5 - 0
datapack_development/data/scripts/quests/281_HeadForTheHills/32173-05.htm

@@ -0,0 +1,5 @@
+<html><body>Zerstorer Marcela:<br>
+Ah, you have returned safely! How was your hunting? Did you bring me anything?<br>
+<a action="bypass -h Quest 281_HeadForTheHills 32173-06.htm">Exchahge the monster claws for Adena.</a><br>
+<a action="bypass -h Quest 281_HeadForTheHills 32173-07.htm">Exchahge a set of 50 claws for an item.</a>
+</body></html>

+ 6 - 0
datapack_development/data/scripts/quests/281_HeadForTheHills/32173-06.htm

@@ -0,0 +1,6 @@
+<html><body>Marksman Bixon:<br>
+Good job! Please accept this with our thanks for your hard work... Keep it...<br>
+Will you continue to help us?<br>
+<a action="bypass -h Quest 280_TheFoodChain 32173-08.htm">Say you will continue.</a><br>
+<a action="bypass -h Quest 280_TheFoodChain 32173-09.htm">Say you will quit.</a>
+</body></html>

+ 6 - 0
datapack_development/data/scripts/quests/281_HeadForTheHills/32173-07.htm

@@ -0,0 +1,6 @@
+<html><body>Marksman Bixon:<br>
+Well done! Here is the item I promised. Put it to good use...<br>
+Would you like to continue to help us?<br>
+<a action="bypass -h Quest 280_TheFoodChain 32173-08.htm">Say you will continue.</a><br>
+<a action="bypass -h Quest 280_TheFoodChain 32173-09.htm">Say you will quit.</a>
+</body></html>

+ 3 - 0
datapack_development/data/scripts/quests/281_HeadForTheHills/32173-07a.htm

@@ -0,0 +1,3 @@
+<html><body>Marksman Bixon:<br>
+You must have at least 50 claws from the monsters in the Hills of Gold in order to exchange them for an item.
+</body></html>

+ 4 - 0
datapack_development/data/scripts/quests/281_HeadForTheHills/32173-08.htm

@@ -0,0 +1,4 @@
+<html><body>Zerstorer Marcela:<br>
+Thank you for agreeing to continue to help us.<br>
+Go back to the <font color="LEVEL">Hills of Gold,</font> hunt the <font color="LEVEL">Green Goblins, Hill Werewolves, Muertos Archers, Mountain Werewolf Chieftains, Muertos Guards and Mountain Fungus</font>, and continue to collect the <font color="LEVEL">claws of the monsters in the Hills of Gold</font>...
+</body></html>

+ 5 - 0
datapack_development/data/scripts/quests/281_HeadForTheHills/32173-09.htm

@@ -0,0 +1,5 @@
+<html><body>Zerstorer Marcela:<br>
+Ah, no doubt you are leaving in search of another adventure!<br>
+I see...<br>
+Then may fortune always shine upon you...
+</body></html>

+ 108 - 0
datapack_development/data/scripts/quests/281_HeadForTheHills/__init__.py

@@ -0,0 +1,108 @@
+# Contributed by t0rm3nt0r (tormentor2000@mail.ru) to the Official L2J Datapack Project.
+# Visit http://forum.l2jdp.com for more details.
+
+import sys
+from net.sf.l2j.gameserver.model.quest import State
+from net.sf.l2j.gameserver.model.quest import QuestState
+from net.sf.l2j.gameserver.model.quest.jython import QuestJython as JQuest
+
+#Complete - 95%. Need add other reward's for 50 item's and check newbie player level from retail
+qn = "281_HeadForTheHills"
+
+#NPC'S
+MARCELA = 32173
+
+#ITEM'S
+HILLS = 9796
+SOULSHOT_FOR_BEGINNERS  = 5789
+REWARD = 736 #Scroll of Escape. Maybe need add other reward.
+
+#MOB'S
+MOBS = range(22234,22240)
+
+class Quest (JQuest) :
+
+ def __init__(self,id,name,descr):
+     JQuest.__init__(self,id,name,descr)
+     self.questItemIds = [HILLS]
+  
+ def onEvent (self,event,st) :
+     htmltext = event
+     hills = st.getQuestItemsCount(HILLS)
+     onlyone = st.getInt("onlyone")
+     if event == "32173-03.htm" :
+       st.set("cond","1")
+       st.setState(State.STARTED)
+       st.playSound("ItemSound.quest_accept")
+     elif event == "32173-06.htm" :
+       if player.getLevel() < 34 and player.isNewbie() and not onlyone : #Need check newbie player level from retail
+         if hills > 20 : 
+           st.giveItems(57,hills*23+400)
+         else :
+           st.giveItems(57,hills*23)
+         st.giveItems(SOULSHOT_FOR_BEGINNERS,6000)
+         st.takeItems(HILLS,-1)
+         st.set("onlyone","1")
+       else:
+         if hills > 20 : 
+           st.giveItems(57,hills*23+400)
+         else :
+           st.giveItems(57,hills*23)
+         st.takeItems(HILLS,-1)
+     elif event == "32173-07.htm" :
+       if hills < 50 :
+         htmltext = "32173-07a.htm"
+       else:
+         if player.getLevel() < 34 and player.isNewbie() and not onlyone : #Need check newbie player level from retail
+           st.giveItems(SOULSHOT_FOR_BEGINNERS,6000)
+           st.giveItems(REWARD,1)
+           st.takeItems(HILLS,50)
+           st.set("onlyone","1")
+         else :
+           st.giveItems(REWARD,1)
+           st.takeItems(HILLS,50)
+     elif event == "32173-09.htm" :
+       st.takeItems(HILLS,-1)
+       st.exitQuest(1)
+     return htmltext
+
+ def onTalk (self,npc,player):
+     npcId = npc.getNpcId()
+     htmltext = "<html><body>You are either not on a quest that involves this NPC, or you don't meet this NPC's minimum quest requirements.</body></html>"
+     st = player.getQuestState(qn)
+     if not st : return htmltext
+     id = st.getState()
+     cond = st.getInt("cond")
+     hills = st.getQuestItemsCount(HILLS)
+     if id == State.CREATED and npcId == MARCELA :
+       if player.getLevel() < 6 :
+         htmltext = "32173-02.htm"
+         st.exitQuest(1)
+       else :
+         htmltext = "32173-01.htm"
+     elif id == State.STARTED and npcId == MARCELA :
+       if not hills :
+         htmltext = "32173-04.htm"
+       else :
+         htmltext = "32173-05.htm"
+     return htmltext
+    
+ def onKill(self,npc,player,isPet) :
+     st = player.getQuestState(qn)
+     if not st: return
+     if st.getState() == State.STARTED :
+       npcId = npc.getNpcId()
+       chance = st.getRandom(100)
+       if (npcId in MOBS) and (chance < 50) : #Retail statistic info. 53 mob's - 28 hills
+         st.giveItems(HILLS,1)
+         st.playSound("ItemSound.quest_itemget")
+     return
+
+QUEST       = Quest(281, qn, "Head for the Hills!")
+
+QUEST.addStartNpc(MARCELA)
+
+QUEST.addTalkId(MARCELA)
+
+for mob in MOBS :
+    QUEST.addKillId(mob)

+ 6 - 0
datapack_development/data/scripts/quests/283_TheFewTheProudTheBrave/32133-01.htm

@@ -0,0 +1,6 @@
+<html><body>Vice Hierarch Perwan:<br>
+The moment you entered, your determination shone forth like a bright blade. I have a task perfectly suited for your abilities.<br>
+Recently, I received a report that many people have been attacked by Crimson Spiders near Mimir's Forest. Since the road that connects the town and Nornil's Cave runs trough the forest, we cannot simply close it to traffic.<br>
+We must clear out the Crimson Spiders, and I am responsible for recruiting people for a militia in order to do so. I think you would be a great help to the effort -- will you do it? Naturally, if you capture the Crimson Spiders, you will receive a generous reward...<br>
+<a action="bypass -h Quest 283_TheFewTheProudTheBrave 32133-03.htm">Say that you will help.</a>
+</body></html>

+ 6 - 0
datapack_development/data/scripts/quests/283_TheFewTheProudTheBrave/32133-02.htm

@@ -0,0 +1,6 @@
+<html><body>Vice Hierarch Perwan:<br>
+I will pose you this question: Suppose you find yourself in a precarious sitution; what is your most effective weapon? Power? Experience? Skill? Very important, all of them.<br>
+But think of something even more essential for victory. Courage! That is the mark of the true Warrior. As it happens, I have a mission that will require someone with exceptional courage.<br>
+Hmm... I do not think you are yet ready. Perhaps with more training... Why don't you come back and see me then?<br>
+(Only characters level 15 and above are permitted to embark on this quest.)
+</body></html>

+ 4 - 0
datapack_development/data/scripts/quests/283_TheFewTheProudTheBrave/32133-03.htm

@@ -0,0 +1,4 @@
+<html><body>Vice Hierarch Perwan:<br>
+I knew I could entrust you with this mission! Now listen carefully. Kill the Crimson Spiders, no matter how many you find. Collect <font color="LEVEL">Crimson Spider Claws</font> as proof. The <font color="LEVEL">Crimson Spiders</font> have been seen recently in Mimir's Forest, but they also live in other habitats.<br>
+Good luck.
+</body></html>

+ 4 - 0
datapack_development/data/scripts/quests/283_TheFewTheProudTheBrave/32133-04.htm

@@ -0,0 +1,4 @@
+<html><body>Vice Hierarch Perwan:<br>
+Hae you really defeated the Crimson Spiders? If so, you should have brought their claws as proof... If you forgot to do so, go back to Mimir's Forest and collect them now.<br>
+But if you are lying to me, stop now!
+</body></html>

+ 4 - 0
datapack_development/data/scripts/quests/283_TheFewTheProudTheBrave/32133-05.htm

@@ -0,0 +1,4 @@
+<html><body>Vice Hierarch Perwan:<br>
+Battle trophies are worth a thousand war stories. So it is with this mission. Prove your bravery and skill with some evidence of your victory.<br>
+<a action="bypass -h Quest 283_TheFewTheProudTheBrave 32133-06.htm">Show him the Crimson Spider Claws.</a>
+</body></html>

+ 6 - 0
datapack_development/data/scripts/quests/283_TheFewTheProudTheBrave/32133-06.htm

@@ -0,0 +1,6 @@
+<html><body>Vice Hierarch Perwan:<br>
+Well done. You carried out your mission admirably. You have justified my faith in you as a powerful warrior!<br>
+Will you continue with this mission? You have certainly proved your skill. If your circumstances will not permit it, however...<br>
+<a action="bypass -h Quest 283_TheFewTheProudTheBrave 32133-07.htm">"I will continue."</a><br>
+<a action="bypass -h Quest 283_TheFewTheProudTheBrave 32133-08.htm">"I want to quit."</a>
+</body></html>

+ 3 - 0
datapack_development/data/scripts/quests/283_TheFewTheProudTheBrave/32133-07.htm

@@ -0,0 +1,3 @@
+<html><body>Vice Hierarch Perwan:<br>
+Oh, you will continue the mission? That is what I had hoped to hear! Return then to Mimir's Forest and continue to slay the Crimson Spiders you find there. Bring back their claws as proof of your victory.
+</body></html>

+ 3 - 0
datapack_development/data/scripts/quests/283_TheFewTheProudTheBrave/32133-08.htm

@@ -0,0 +1,3 @@
+<html><body>Vice Hierarch Perwan:<br>
+You seem to have more pressing matters to attend to, so I will not stop you. But should you ever wish to test your courage, come back to me.
+</body></html>

+ 79 - 0
datapack_development/data/scripts/quests/283_TheFewTheProudTheBrave/__init__.py

@@ -0,0 +1,79 @@
+# Contributed by t0rm3nt0r (tormentor2000@mail.ru) to the Official L2J Datapack Project.
+# Visit http://forum.l2jdp.com for more details.
+
+import sys
+from net.sf.l2j.gameserver.model.quest import State
+from net.sf.l2j.gameserver.model.quest import QuestState
+from net.sf.l2j.gameserver.model.quest.jython import QuestJython as JQuest
+
+#Complete - 95%. Need add reward for 20+ items.
+qn = "283_TheFewTheProudTheBrave"
+
+#NPC'S
+PERWAN = 32133
+
+#ITEM'S
+CLAW = 9747
+
+#MOB'S
+SPIDER = 22244
+
+class Quest (JQuest) :
+
+ def __init__(self,id,name,descr):
+     JQuest.__init__(self,id,name,descr)
+  
+ def onEvent (self,event,st) :
+     htmltext = event
+     claw = st.getQuestItemsCount(CLAW)
+     if event == "32133-03.htm" :
+       st.set("cond","1")
+       st.setState(State.STARTED)
+       st.playSound("ItemSound.quest_accept")
+     elif event == "32133-06.htm" :
+       st.giveItems(57,claw*45) #Need add reward for 20+ items
+       st.takeItems(CLAW,-1)
+     elif event == "32133-08.htm" :
+       st.takeItems(CLAW,-1)
+       st.exitQuest(1)
+     return htmltext
+
+ def onTalk (self,npc,player):
+     npcId = npc.getNpcId()
+     htmltext = "<html><body>You are either not on a quest that involves this NPC, or you don't meet this NPC's minimum quest requirements.</body></html>"
+     st = player.getQuestState(qn)
+     if not st : return htmltext
+     id = st.getState()
+     cond = st.getInt("cond")
+     claw = st.getQuestItemsCount(CLAW)
+     if id == State.CREATED and npcId == PERWAN :
+       if player.getLevel() < 15 :
+         htmltext = "32133-02.htm"
+         st.exitQuest(1)
+       else :
+         htmltext = "32133-01.htm"
+     elif id == State.STARTED and npcId == PERWAN :
+       if not claw :
+         htmltext = "32133-04.htm"
+       else :
+         htmltext = "32133-05.htm"
+     return htmltext
+    
+ def onKill(self,npc,player,isPet) :
+     st = player.getQuestState(qn)
+     if not st: return
+     if st.getState() == State.STARTED :
+       npcId = npc.getNpcId()
+       chance = st.getRandom(100)
+       if (npcId in MOBS) and (chance < 35) : #Retail statistic info. 64 mob's - 22 claw
+         st.giveItems(CLAW,1)
+         st.playSound("ItemSound.quest_itemget")
+     return
+
+QUEST       = Quest(283, qn, "The Few, The Proud, The Brave")
+
+QUEST.addStartNpc(PERWAN)
+
+QUEST.addTalkId(PERWAN)
+
+QUEST.addKillId(SPIDER)

+ 5 - 0
datapack_development/data/scripts/quests/284_MuertosFeather/32166-01.htm

@@ -0,0 +1,5 @@
+<html><body>Trevor:<br>
+Hmm, my keen intuition tells me that good things are in store both of us. Curious? Well, let me offer you the chance to take advantage of a terrific opportunity. Muertos feathers have become more and more popular, and their price is soaring. But the Muertos in this area are known to be fierce and refuse to give up their feathers easily. It has become increasingly difficult to find a courageous adventurer willing to obtain even a small sampling of those feathers -- despite the profit that can be had.<br>
+How about you? Would you do it? I'm sure it would help hone your skills as well as protect the good people of this area. A real win-win!<br>
+<a action="bypass -h Quest 284_MuertosFeather 32166-03.htm">Say that you will take the job.</a>
+</body></html>

+ 4 - 0
datapack_development/data/scripts/quests/284_MuertosFeather/32166-02.htm

@@ -0,0 +1,4 @@
+<html><body>Trevor:<br>
+If my feeling is right... I think you came here because you heard about a job... But my keen intuition tells me that you don't quite have the necessary abilities yet. You might be strong enough to capture a monster, but you need experience to complete the task in mind... Why don't you come back after you have had some more training?<br>
+(Only characters who are level 11 or higher may embark on this quest.)
+</body></html>

+ 4 - 0
datapack_development/data/scripts/quests/284_MuertosFeather/32166-03.htm

@@ -0,0 +1,4 @@
+<html><body>Trevor:<br>
+Good thinking. Go to Mimir's Forest and catch the <font color="LEVEL">Muertos</font>. Of course, the important thing is to bring back the <font color="LEVEL">Muertos Feathers</font> from their wings. Odd, isn't it, that such beautiful feathers grow on the bodies of such dangerouse monsters? Still, collectors from the continent are very anxious to get their hands on these feathers.<br>
+I don't know exactly how much they're wiling to pay, but I'm sure it will be a steep price. Of course, I will pay you well for the feathers as well, so collect as many as possible.
+</body></html>

+ 3 - 0
datapack_development/data/scripts/quests/284_MuertosFeather/32166-04.htm

@@ -0,0 +1,3 @@
+<html><body>Trevor:<br>
+Where are the feathers? I hope you didn't forget to bring them! Ah, I can tell what happened just from your expression. I'm sorry? but I just can't pay you without the feathers. Go capture a Muertos and bring back <font color="LEVEL">Muertos Feathers</font>.
+</body></html>

+ 5 - 0
datapack_development/data/scripts/quests/284_MuertosFeather/32166-05.htm

@@ -0,0 +1,5 @@
+<html><body>Trevor:<br>
+Here you are. We must have a connection somehow. I was just wondering when you would return with the Muertos Feathers.<br>
+Well, show them to me.<br>
+<a action="bypass -h Quest 284_MuertosFeather 32166-06.htm">Show him the Muertos Feathers.</a>
+</body></html>

+ 6 - 0
datapack_development/data/scripts/quests/284_MuertosFeather/32166-06.htm

@@ -0,0 +1,6 @@
+<html><body>Trevor:<br>
+Ah, these feathers are in very good condition. Excellent! How do you feel about continuing with this work?<br>
+To be honest, it's not easy to find someone who is as dependable as you have proven to be.<br>
+<a action="bypass -h Quest 284_MuertosFeather 32166-07.htm">Say you will continue.</a><br>
+<a action="bypass -h Quest 284_MuertosFeather 32166-08.htm">Say you want to quit.</a>
+</body></html>

+ 4 - 0
datapack_development/data/scripts/quests/284_MuertosFeather/32166-07.htm

@@ -0,0 +1,4 @@
+<html><body>Trevor:<br>
+So you'll continue to work for me? Oh, thank goodness! I was worried that you might have become bored.<br>
+As you already know, you can obtain these feathers by capturing the Muertos in Mimir's Forest. I will pay you well for whatever you bring me, naturally.
+</body></html>

+ 3 - 0
datapack_development/data/scripts/quests/284_MuertosFeather/32166-08.htm

@@ -0,0 +1,3 @@
+<html><body>Trevor:<br>
+Ah, I'm sorry to hear that... Still, if you want to work again, please visit me any time.
+</body></html>

+ 80 - 0
datapack_development/data/scripts/quests/284_MuertosFeather/__init__.py

@@ -0,0 +1,80 @@
+# Contributed by t0rm3nt0r (tormentor2000@mail.ru) to the Official L2J Datapack Project.
+# Visit http://forum.l2jdp.com for more details.
+
+import sys
+from net.sf.l2j.gameserver.model.quest import State
+from net.sf.l2j.gameserver.model.quest import QuestState
+from net.sf.l2j.gameserver.model.quest.jython import QuestJython as JQuest
+
+#Complete - 100%.
+qn = "284_MuertosFeather"
+
+#NPC'S
+TREVOR = 32166
+
+#ITEM'S
+FEATHER = 9748
+
+#MOB'S
+MOBS = range(22239,22241)+range(22242,22244)+range(22245,22247)
+
+class Quest (JQuest) :
+
+ def __init__(self,id,name,descr):
+     JQuest.__init__(self,id,name,descr)
+  
+ def onEvent (self,event,st) :
+     htmltext = event
+     feather = st.getQuestItemsCount(FEATHER)
+     if event == "32166-03.htm" :
+       st.set("cond","1")
+       st.setState(State.STARTED)
+       st.playSound("ItemSound.quest_accept")
+     elif event == "32166-06.htm" :
+       st.giveItems(57,feather*45)
+       st.takeItems(FEATHER,-1)
+     elif event == "32166-08.htm" :
+       st.takeItems(FEATHER,-1)
+       st.exitQuest(1)
+     return htmltext
+
+ def onTalk (self,npc,player):
+     npcId = npc.getNpcId()
+     htmltext = "<html><body>You are either not on a quest that involves this NPC, or you don't meet this NPC's minimum quest requirements.</body></html>"
+     st = player.getQuestState(qn)
+     if not st : return htmltext
+     id = st.getState()
+     cond = st.getInt("cond")
+     feather = st.getQuestItemsCount(FEATHER)
+     if id == State.CREATED and npcId == TREVOR :
+       if player.getLevel() < 11 :
+         htmltext = "32166-02.htm"
+         st.exitQuest(1)
+       else :
+         htmltext = "32166-01.htm"
+     elif id == State.STARTED and npcId == TREVOR :
+       if not feather :
+         htmltext = "32166-04.htm"
+       else :
+         htmltext = "32166-05.htm"
+     return htmltext
+    
+ def onKill(self,npc,player,isPet) :
+     st = player.getQuestState(qn)
+     if not st: return
+     if st.getState() == State.STARTED :
+       npcId = npc.getNpcId()
+       chance = st.getRandom(100)
+       if (npcId in MOBS) and (chance < 70) : #Retail statistic info. 20 mob's - 14 feathers
+         st.giveItems(FEATHER,1)
+         st.playSound("ItemSound.quest_itemget")
+     return
+
+QUEST       = Quest(284, qn, "Muertos Feather")
+
+QUEST.addStartNpc(TREVOR)
+
+QUEST.addTalkId(TREVOR)
+
+for mob in MOBS :
+    QUEST.addKillId(mob)

+ 7 - 0
datapack_development/data/scripts/quests/286_FabulousFeathers/32164-01.htm

@@ -0,0 +1,7 @@
+<html><body>Trader Erinu:<br>
+I have heard that you attained the level necessery to enter Nornil's Cave.<br>
+If that is the case, I suppose the time is drawing near for you to leave this island. Well, they say that the continent is also filled with adventure.<br>
+Before you leave, though, would you do me a small favor? I need something, but I can get it only by entering Nornil's Cave.<br>
+All the friends who used to help me in this regard have left the island, so I am at loose ends...<br>
+<a action="bypass -h Quest 286_FabulousFeathers 32164-03.htm">Ask what it is.</a>
+</body></html>

+ 6 - 0
datapack_development/data/scripts/quests/286_FabulousFeathers/32164-02.htm

@@ -0,0 +1,6 @@
+<html><body>Trader Erinu:<br>
+How is your training progressing?<br>
+When you have reached the level where you need more challenges than this island can offer, please come and see me again.<br>
+I have something to ask of you.<br>
+(Only characters level 17 or higher can embark on this quest.)
+</body></html>

+ 5 - 0
datapack_development/data/scripts/quests/286_FabulousFeathers/32164-03.htm

@@ -0,0 +1,5 @@
+<html><body>Trader Erinu:<br>
+When you enter Nornil's Cave, you will encounter bird-like humanoid creatures called Muertos. Among them are <font color="LEVEL">Captains, Warriors, Archers, Leaders and Wizards</font>, all of which can be distinguished by their powerful wings.<br>
+Some Humans will pay a premium for Muertos feathers, whether for use as decoration in weapons.<br>
+<font color="LEVEL">Collect about 80 of those feathers.</font>
+</body></html>

+ 4 - 0
datapack_development/data/scripts/quests/286_FabulousFeathers/32164-04.htm

@@ -0,0 +1,4 @@
+<html><body>Trader Erinu:<br>
+Bring me 80 feathers of the Muertos Leader and I will give you a fair price for them<br>
+You can get the feathers by defeating the Shady Muertos <font color="LEVEL">Captains, Warriors, Archers, Leaders and Wizards</font> that live in Nornil's Cave.
+</body></html>

+ 7 - 0
datapack_development/data/scripts/quests/286_FabulousFeathers/32164-05.htm

@@ -0,0 +1,7 @@
+<html><body>Trader Erinu:<br>
+Oh, you brought back all 80 Muertos Commander feathers?<br>
+Well done! I hear that the noblewomen in those big mainland castles are eager large fans constructed from these feathers.<br>
+I'll be happy to buy them from you at a fair price.<br>
+Let's see... how does 4,160 Adena sound?<br>
+<a action="bypass -h Quest 286_FabulousFeathers 32164-06.htm">Tell him that's enough.</a>
+</body></html>

+ 4 - 0
datapack_development/data/scripts/quests/286_FabulousFeathers/32164-06.htm

@@ -0,0 +1,4 @@
+<html><body>Trader Erinu:<br>
+Good. Then it's a deal.<br>
+We've managed to fill one box, but we can certainly sell more if you're willing to go back and collect another batch of feathers.
+</body></html>

+ 84 - 0
datapack_development/data/scripts/quests/286_FabulousFeathers/__init__.py

@@ -0,0 +1,84 @@
+# Contributed by t0rm3nt0r (tormentor2000@mail.ru) to the Official L2J Datapack Project.
+# Visit http://forum.l2jdp.com for more details.
+
+import sys
+from net.sf.l2j.gameserver.model.quest import State
+from net.sf.l2j.gameserver.model.quest import QuestState
+from net.sf.l2j.gameserver.model.quest.jython import QuestJython as JQuest
+
+#Complete - 100%.
+qn = "286_FabulousFeathers"
+
+#NPC'S
+ERINU = 32164
+
+#ITEM'S
+FEATHER = 9746
+
+#MOB'S
+MOBS = range(22253,22257)+[22251]
+
+class Quest (JQuest) :
+
+ def __init__(self,id,name,descr):
+     JQuest.__init__(self,id,name,descr)
+  
+ def onEvent (self,event,st) :
+     htmltext = event
+     feather = st.getQuestItemsCount(FEATHER)
+     if event == "32164-03.htm" :
+       st.set("cond","1")
+       st.setState(State.STARTED)
+       st.playSound("ItemSound.quest_accept")
+     elif event == "32164-06.htm" :
+       st.giveItems(57,4160)
+       st.takeItems(FEATHER,-1)
+       st.playSound("ItemSound.quest_finish")
+       st.unset("cond")
+       st.exitQuest(1)
+     return htmltext
+
+ def onTalk (self,npc,player):
+     npcId = npc.getNpcId()
+     htmltext = "<html><body>You are either not on a quest that involves this NPC, or you don't meet this NPC's minimum quest requirements.</body></html>"
+     st = player.getQuestState(qn)
+     if not st : return htmltext
+     id = st.getState()
+     cond = st.getInt("cond")
+     feather = st.getQuestItemsCount(FEATHER)
+     if id == State.CREATED and npcId == ERINU :
+       if player.getLevel() < 17 :
+         htmltext = "32164-02.htm"
+         st.exitQuest(1)
+       else :
+         htmltext = "32164-01.htm"
+     elif id == State.STARTED and npcId == ERINU :
+       if cond == 1 :
+         htmltext = "32164-04.htm"
+       elif cond == 2 :
+         htmltext = "32164-05.htm"
+     return htmltext
+    
+ def onKill(self,npc,player,isPet) :
+     st = player.getQuestState(qn)
+     if not st: return
+     if st.getState() == State.STARTED :
+       npcId = npc.getNpcId()
+       chance = st.getRandom(100)
+       feather = st.getQuestItemsCount(FEATHER)
+       if (npcId in MOBS) and (chance < 70) and feather < 80: #Retail statistic info. 113 mob's - 80 feathers
+         st.giveItems(FEATHER,1)
+         st.playSound("ItemSound.quest_itemget")
+         if st.getQuestItemsCount(FEATHER) == 80 :
+           st.set("cond","2")
+           st.playSound("ItemSound.quest_middle")
+     return
+
+QUEST       = Quest(286, qn, "Fabulous Feathers")
+
+QUEST.addStartNpc(ERINU)
+
+QUEST.addTalkId(ERINU)
+
+for mob in MOBS :
+    QUEST.addKillId(mob)