Pārlūkot izejas kodu

BETA: Quests in Java:
* The Guard is Busy (257)
* Patch by: xban1x
* Reviewed by: jurchiks, Zoey76
* Tested by: Zoey76
* Bonds of Slavery (265)
* Patch by: xban1x
* Reviewed by: Zoey76
* Tested by: Zoey76
* Skirmish with the Werewolves (274)
* Patch by: xban1x
* Reviewed by: jurchiks, Zoey76
* Tested by: Zoey76
* Head for the Hills! (281)
* Patch by: xban1x
* Reviewed by: Zoey76
* Tested by: Zoey76
* The Hidden Veins (293)
* Patch by: xban1x
* Reviewed by: Zoey76
* Tested by: Zoey76

Zoey76 12 gadi atpakaļ
vecāks
revīzija
5c74a5c30e
79 mainītis faili ar 1024 papildinājumiem un 686 dzēšanām
  1. 5 5
      L2J_DataPack_BETA/dist/game/data/scripts.cfg
  2. 0 119
      L2J_DataPack_BETA/dist/game/data/scripts/quests/257_GuardIsBusy1/__init__.py
  3. 0 4
      L2J_DataPack_BETA/dist/game/data/scripts/quests/265_ChainsOfSlavery/30357-03.htm
  4. 0 100
      L2J_DataPack_BETA/dist/game/data/scripts/quests/265_ChainsOfSlavery/__init__.py
  5. 0 5
      L2J_DataPack_BETA/dist/game/data/scripts/quests/274_AgainstWolfMen/30569-01.htm
  6. 0 6
      L2J_DataPack_BETA/dist/game/data/scripts/quests/274_AgainstWolfMen/30569-02.htm
  7. 0 6
      L2J_DataPack_BETA/dist/game/data/scripts/quests/274_AgainstWolfMen/30569-07.htm
  8. 0 94
      L2J_DataPack_BETA/dist/game/data/scripts/quests/274_AgainstWolfMen/__init__.py
  9. 0 8
      L2J_DataPack_BETA/dist/game/data/scripts/quests/281_HeadForTheHills/32173-01.htm
  10. 0 5
      L2J_DataPack_BETA/dist/game/data/scripts/quests/281_HeadForTheHills/32173-03.htm
  11. 0 3
      L2J_DataPack_BETA/dist/game/data/scripts/quests/281_HeadForTheHills/32173-04.htm
  12. 0 5
      L2J_DataPack_BETA/dist/game/data/scripts/quests/281_HeadForTheHills/32173-05.htm
  13. 0 6
      L2J_DataPack_BETA/dist/game/data/scripts/quests/281_HeadForTheHills/32173-06.htm
  14. 0 6
      L2J_DataPack_BETA/dist/game/data/scripts/quests/281_HeadForTheHills/32173-07.htm
  15. 0 3
      L2J_DataPack_BETA/dist/game/data/scripts/quests/281_HeadForTheHills/32173-07a.htm
  16. 0 4
      L2J_DataPack_BETA/dist/game/data/scripts/quests/281_HeadForTheHills/32173-08.htm
  17. 0 5
      L2J_DataPack_BETA/dist/game/data/scripts/quests/281_HeadForTheHills/32173-09.htm
  18. 0 111
      L2J_DataPack_BETA/dist/game/data/scripts/quests/281_HeadForTheHills/__init__.py
  19. 0 5
      L2J_DataPack_BETA/dist/game/data/scripts/quests/293_HiddenVein/30535-01.htm
  20. 0 6
      L2J_DataPack_BETA/dist/game/data/scripts/quests/293_HiddenVein/30535-05.htm
  21. 0 7
      L2J_DataPack_BETA/dist/game/data/scripts/quests/293_HiddenVein/30535-08.htm
  22. 0 7
      L2J_DataPack_BETA/dist/game/data/scripts/quests/293_HiddenVein/30535-09.htm
  23. 0 4
      L2J_DataPack_BETA/dist/game/data/scripts/quests/293_HiddenVein/30539-01.htm
  24. 0 3
      L2J_DataPack_BETA/dist/game/data/scripts/quests/293_HiddenVein/30539-02.htm
  25. 0 128
      L2J_DataPack_BETA/dist/game/data/scripts/quests/293_HiddenVein/__init__.py
  26. 1 1
      L2J_DataPack_BETA/dist/game/data/scripts/quests/Q00257_TheGuardIsBusy/30039-01.html
  27. 2 2
      L2J_DataPack_BETA/dist/game/data/scripts/quests/Q00257_TheGuardIsBusy/30039-02.htm
  28. 1 1
      L2J_DataPack_BETA/dist/game/data/scripts/quests/Q00257_TheGuardIsBusy/30039-03.htm
  29. 2 2
      L2J_DataPack_BETA/dist/game/data/scripts/quests/Q00257_TheGuardIsBusy/30039-04.html
  30. 0 0
      L2J_DataPack_BETA/dist/game/data/scripts/quests/Q00257_TheGuardIsBusy/30039-05.html
  31. 0 0
      L2J_DataPack_BETA/dist/game/data/scripts/quests/Q00257_TheGuardIsBusy/30039-06.html
  32. 3 3
      L2J_DataPack_BETA/dist/game/data/scripts/quests/Q00257_TheGuardIsBusy/30039-07.html
  33. 184 0
      L2J_DataPack_BETA/dist/game/data/scripts/quests/Q00257_TheGuardIsBusy/Q00257_TheGuardIsBusy.java
  34. 0 0
      L2J_DataPack_BETA/dist/game/data/scripts/quests/Q00265_BondsOfSlavery/30357-01.html
  35. 2 1
      L2J_DataPack_BETA/dist/game/data/scripts/quests/Q00265_BondsOfSlavery/30357-02.html
  36. 2 2
      L2J_DataPack_BETA/dist/game/data/scripts/quests/Q00265_BondsOfSlavery/30357-03.htm
  37. 1 0
      L2J_DataPack_BETA/dist/game/data/scripts/quests/Q00265_BondsOfSlavery/30357-04.htm
  38. 2 2
      L2J_DataPack_BETA/dist/game/data/scripts/quests/Q00265_BondsOfSlavery/30357-05.html
  39. 2 2
      L2J_DataPack_BETA/dist/game/data/scripts/quests/Q00265_BondsOfSlavery/30357-06.html
  40. 0 0
      L2J_DataPack_BETA/dist/game/data/scripts/quests/Q00265_BondsOfSlavery/30357-07.html
  41. 1 1
      L2J_DataPack_BETA/dist/game/data/scripts/quests/Q00265_BondsOfSlavery/30357-08.html
  42. 144 0
      L2J_DataPack_BETA/dist/game/data/scripts/quests/Q00265_BondsOfSlavery/Q00265_BondsOfSlavery.java
  43. 5 5
      L2J_DataPack_BETA/dist/game/data/scripts/quests/Q00273_InvadersOfTheHolyLand/Q00273_InvadersOfTheHolyLand.java
  44. 0 0
      L2J_DataPack_BETA/dist/game/data/scripts/quests/Q00274_SkirmishWithTheWerewolves/30569-01.html
  45. 5 0
      L2J_DataPack_BETA/dist/game/data/scripts/quests/Q00274_SkirmishWithTheWerewolves/30569-02.html
  46. 6 0
      L2J_DataPack_BETA/dist/game/data/scripts/quests/Q00274_SkirmishWithTheWerewolves/30569-03.htm
  47. 1 1
      L2J_DataPack_BETA/dist/game/data/scripts/quests/Q00274_SkirmishWithTheWerewolves/30569-04.htm
  48. 1 1
      L2J_DataPack_BETA/dist/game/data/scripts/quests/Q00274_SkirmishWithTheWerewolves/30569-05.html
  49. 0 0
      L2J_DataPack_BETA/dist/game/data/scripts/quests/Q00274_SkirmishWithTheWerewolves/30569-06.html
  50. 1 1
      L2J_DataPack_BETA/dist/game/data/scripts/quests/Q00274_SkirmishWithTheWerewolves/30569-07.html
  51. 6 0
      L2J_DataPack_BETA/dist/game/data/scripts/quests/Q00274_SkirmishWithTheWerewolves/30569-08.html
  52. 147 0
      L2J_DataPack_BETA/dist/game/data/scripts/quests/Q00274_SkirmishWithTheWerewolves/Q00274_SkirmishWithTheWerewolves.java
  53. 8 0
      L2J_DataPack_BETA/dist/game/data/scripts/quests/Q00281_HeadForTheHills/32173-01.htm
  54. 1 1
      L2J_DataPack_BETA/dist/game/data/scripts/quests/Q00281_HeadForTheHills/32173-02.htm
  55. 5 0
      L2J_DataPack_BETA/dist/game/data/scripts/quests/Q00281_HeadForTheHills/32173-03.htm
  56. 3 0
      L2J_DataPack_BETA/dist/game/data/scripts/quests/Q00281_HeadForTheHills/32173-04.html
  57. 5 0
      L2J_DataPack_BETA/dist/game/data/scripts/quests/Q00281_HeadForTheHills/32173-05.html
  58. 6 0
      L2J_DataPack_BETA/dist/game/data/scripts/quests/Q00281_HeadForTheHills/32173-06.html
  59. 4 0
      L2J_DataPack_BETA/dist/game/data/scripts/quests/Q00281_HeadForTheHills/32173-07.html
  60. 4 0
      L2J_DataPack_BETA/dist/game/data/scripts/quests/Q00281_HeadForTheHills/32173-08.html
  61. 5 0
      L2J_DataPack_BETA/dist/game/data/scripts/quests/Q00281_HeadForTheHills/32173-09.html
  62. 3 0
      L2J_DataPack_BETA/dist/game/data/scripts/quests/Q00281_HeadForTheHills/32173-10.html
  63. 6 0
      L2J_DataPack_BETA/dist/game/data/scripts/quests/Q00281_HeadForTheHills/32173-11.html
  64. 228 0
      L2J_DataPack_BETA/dist/game/data/scripts/quests/Q00281_HeadForTheHills/Q00281_HeadForTheHills.java
  65. 0 0
      L2J_DataPack_BETA/dist/game/data/scripts/quests/Q00293_TheHiddenVeins/30535-01.htm
  66. 5 0
      L2J_DataPack_BETA/dist/game/data/scripts/quests/Q00293_TheHiddenVeins/30535-02.htm
  67. 1 1
      L2J_DataPack_BETA/dist/game/data/scripts/quests/Q00293_TheHiddenVeins/30535-03.htm
  68. 0 0
      L2J_DataPack_BETA/dist/game/data/scripts/quests/Q00293_TheHiddenVeins/30535-04.htm
  69. 2 2
      L2J_DataPack_BETA/dist/game/data/scripts/quests/Q00293_TheHiddenVeins/30535-05.html
  70. 5 0
      L2J_DataPack_BETA/dist/game/data/scripts/quests/Q00293_TheHiddenVeins/30535-06.html
  71. 0 0
      L2J_DataPack_BETA/dist/game/data/scripts/quests/Q00293_TheHiddenVeins/30535-07.html
  72. 0 0
      L2J_DataPack_BETA/dist/game/data/scripts/quests/Q00293_TheHiddenVeins/30535-08.html
  73. 7 0
      L2J_DataPack_BETA/dist/game/data/scripts/quests/Q00293_TheHiddenVeins/30535-09.html
  74. 7 0
      L2J_DataPack_BETA/dist/game/data/scripts/quests/Q00293_TheHiddenVeins/30535-10.html
  75. 4 0
      L2J_DataPack_BETA/dist/game/data/scripts/quests/Q00293_TheHiddenVeins/30539-01.html
  76. 3 0
      L2J_DataPack_BETA/dist/game/data/scripts/quests/Q00293_TheHiddenVeins/30539-02.html
  77. 2 2
      L2J_DataPack_BETA/dist/game/data/scripts/quests/Q00293_TheHiddenVeins/30539-03.html
  78. 180 0
      L2J_DataPack_BETA/dist/game/data/scripts/quests/Q00293_TheHiddenVeins/Q00293_TheHiddenVeins.java
  79. 6 0
      L2J_DataPack_BETA/dist/sql/game/updates/20130602update.sql

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

@@ -500,7 +500,7 @@ quests/Q00251_NoSecrets/Q00251_NoSecrets.java
 quests/Q00252_ItSmellsDelicious/Q00252_ItSmellsDelicious.java
 quests/Q00254_LegendaryTales/Q00254_LegendaryTales.java
 quests/255_Tutorial/__init__.py
-quests/257_GuardIsBusy1/__init__.py
+quests/Q00257_TheGuardIsBusy/Q00257_TheGuardIsBusy.java
 quests/258_BringWolfPelt1/__init__.py
 quests/259_RanchersPlea/__init__.py
 quests/260_HuntForOrcs1/__init__.py
@@ -508,7 +508,7 @@ quests/261_DreamOfMoneylender1/__init__.py
 quests/262_BringMeMushrooms1/__init__.py
 quests/263_KillAllSylphs1/__init__.py
 quests/264_KeenClaws/__init__.py
-quests/265_ChainsOfSlavery/__init__.py
+quests/Q00265_BondsOfSlavery/Q00265_BondsOfSlavery.java
 quests/Q00266_PleasOfPixies/Q00266_PleasOfPixies.java
 quests/Q00267_WrathOfVerdure/Q00267_WrathOfVerdure.java
 quests/Q00268_TracesOfEvil/Q00268_TracesOfEvil.java
@@ -517,14 +517,14 @@ quests/Q00270_TheOneWhoEndsSilence/Q00270_TheOneWhoEndsSilence.java
 quests/Q00271_ProofOfValor/Q00271_ProofOfValor.java
 quests/Q00272_WrathOfAncestors/Q00272_WrathOfAncestors.java
 quests/Q00273_InvadersOfTheHolyLand/Q00273_InvadersOfTheHolyLand.java
-quests/274_AgainstWolfMen/__init__.py
+quests/Q00274_SkirmishWithTheWerewolves/Q00274_SkirmishWithTheWerewolves.java
 quests/275_BlackWingedSpies/__init__.py
 quests/276_HestuiTotem/__init__.py
 quests/Q00277_GatekeepersOffering/Q00277_GatekeepersOffering.java
 quests/Q00278_HomeSecurity/Q00278_HomeSecurity.java
 quests/Q00279_TargetOfOpportunity/Q00279_TargetOfOpportunity.java
 quests/280_TheFoodChain/__init__.py
-quests/281_HeadForTheHills/__init__.py
+quests/Q00281_HeadForTheHills/Q00281_HeadForTheHills.java
 quests/283_TheFewTheProudTheBrave/__init__.py
 quests/284_MuertosFeather/__init__.py
 quests/286_FabulousFeathers/__init__.py
@@ -534,7 +534,7 @@ quests/Q00289_NoMoreSoupForYou/Q00289_NoMoreSoupForYou.java
 quests/Q00290_ThreatRemoval/Q00290_ThreatRemoval.java
 quests/291_RedBonnetsRevenge/__init__.py
 quests/292_CrushBrigands/__init__.py
-quests/293_HiddenVein/__init__.py
+quests/Q00293_TheHiddenVeins/Q00293_TheHiddenVeins.java
 quests/294_CovertBusiness/__init__.py
 quests/295_DreamsOfFlight/__init__.py
 quests/296_SilkOfTarantula/__init__.py

+ 0 - 119
L2J_DataPack_BETA/dist/game/data/scripts/quests/257_GuardIsBusy1/__init__.py

@@ -1,119 +0,0 @@
-# Made by Mr. Have fun! - Version 0.3 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 = "257_GuardIsBusy1"
-
-GLUDIO_LORDS_MARK = 1084
-ORC_AMULET = 752
-ORC_NECKLACE = 1085
-WEREWOLF_FANG = 1086
-ADENA = 57
-#Newbie/one time rewards section
-#Any quest should rely on a unique bit, but
-#it could be shared among quest that were mutually
-#exclusive or race restricted.
-#Bit #1 isn't used for backwards compatibility.
-NEWBIE_REWARD = 4
-SPIRITSHOT_FOR_BEGINNERS = 5790
-SOULSHOT_FOR_BEGINNERS = 5789
-
-class Quest (JQuest) :
-
- def __init__(self,id,name,descr):
-     JQuest.__init__(self,id,name,descr)
-     self.questItemIds = [ORC_AMULET, ORC_NECKLACE, WEREWOLF_FANG, GLUDIO_LORDS_MARK]
-
- def onAdvEvent (self,event,npc, player) :
-    htmltext = event
-    st = player.getQuestState(qn)
-    if not st : return
-    if event == "30039-03.htm" :
-      st.set("cond","1")
-      st.setState(State.STARTED)
-      st.playSound("ItemSound.quest_accept")
-      st.giveItems(GLUDIO_LORDS_MARK,1)
-    elif event == "30039-05.htm" :
-      st.takeItems(GLUDIO_LORDS_MARK,1)
-      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.getNpcId()
-   id = st.getState()
-   if id == State.CREATED :
-     st.set("cond","0")
-   if st.getInt("cond")==0 :
-     if player.getLevel() >= 6 :
-       htmltext = "30039-02.htm"
-     else:
-       htmltext = "30039-01.htm"
-       st.exitQuest(1)
-   else :
-     orc_a=st.getQuestItemsCount(ORC_AMULET)
-     orc_n=st.getQuestItemsCount(ORC_NECKLACE)
-     wer_f=st.getQuestItemsCount(WEREWOLF_FANG)
-     if orc_a==orc_n==wer_f==0 :
-       htmltext = "30039-04.htm"
-     else :
-       # check the player state against this quest newbie rewarding mark.
-       newbie = player.getNewbie()
-       if newbie | NEWBIE_REWARD != newbie :
-          player.setNewbie(newbie|NEWBIE_REWARD)
-          st.showQuestionMark(26)
-          if player.getClassId().isMage() :
-             st.playTutorialVoice("tutorial_voice_027")
-             st.giveItems(SPIRITSHOT_FOR_BEGINNERS,3000)
-          else :
-             st.playTutorialVoice("tutorial_voice_026")
-             st.giveItems(SOULSHOT_FOR_BEGINNERS,6000)
-       st.giveItems(ADENA,5*orc_a+15*orc_n+10*wer_f)
-       st.takeItems(ORC_AMULET,-1)
-       st.takeItems(ORC_NECKLACE,-1)
-       st.takeItems(WEREWOLF_FANG,-1)
-       htmltext = "30039-07.htm"
-   return htmltext
-
- def onKill(self,npc,player,isPet):
-   st = player.getQuestState(qn)
-   if not st : return 
-   if st.getState() != State.STARTED : return 
-   
-   npcId = npc.getNpcId()
-   chance=5
-   if npcId in [20130,20131,20006] :
-     item = ORC_AMULET
-   elif npcId in [20093,20096,20098] :
-     item = ORC_NECKLACE
-   else :
-     item = WEREWOLF_FANG
-     if npcId == 20343 : chance = 4
-     elif npcId == 20342 : chance = 2
-   if st.getQuestItemsCount(GLUDIO_LORDS_MARK) :
-     if self.getRandom(10)<chance :
-       st.giveItems(item,1)
-       st.playSound("ItemSound.quest_itemget")
-   return
-
-QUEST       = Quest(257,qn,"Guard Is Busy1")
-
-QUEST.addStartNpc(30039)
-
-QUEST.addTalkId(30039)
-
-QUEST.addKillId(20130)
-QUEST.addKillId(20131)
-QUEST.addKillId(20132)
-QUEST.addKillId(20342)
-QUEST.addKillId(20343)
-QUEST.addKillId(20006)
-QUEST.addKillId(20093)
-QUEST.addKillId(20096)
-QUEST.addKillId(20098)

+ 0 - 4
L2J_DataPack_BETA/dist/game/data/scripts/quests/265_ChainsOfSlavery/30357-03.htm

@@ -1,4 +0,0 @@
-<html><body>Sentry Kristin:<br>
-Good. Go into the forest and strike down any<font color="LEVEL"> imp</font> you meet, collect the<font color="LEVEL"> shackles</font> around their necks, and bring them to me. I will compensate you for every shackle you bring me.<br>
-In the name of the goddess, may your hunt meet great success! Soon those arrogant imps will once again call us their masters!
-</body></html>

+ 0 - 100
L2J_DataPack_BETA/dist/game/data/scripts/quests/265_ChainsOfSlavery/__init__.py

@@ -1,100 +0,0 @@
-# Made by Mr. Have fun! - Version 0.3 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 = "265_ChainsOfSlavery"
-
-IMP_SHACKLES = 1368
-ADENA = 57
-#Newbie/one time rewards section
-#Any quest should rely on a unique bit, but
-#it could be shared among quest that were mutually
-#exclusive or race restricted.
-#Bit #1 isn't used for backwards compatibility.
-NEWBIE_REWARD = 4
-SPIRITSHOT_FOR_BEGINNERS = 5790
-SOULSHOT_FOR_BEGINNERS = 5789
-
-class Quest (JQuest) :
-
- def __init__(self,id,name,descr):
-     JQuest.__init__(self,id,name,descr)
-     self.questItemIds = [IMP_SHACKLES]
-
- def onAdvEvent (self,event,npc, player) :
-    htmltext = event
-    st = player.getQuestState(qn)
-    if not st : return
-    if event == "30357-03.htm" :
-      st.set("cond","1")
-      st.setState(State.STARTED)
-      st.playSound("ItemSound.quest_accept")
-    elif event == "30357-06.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.getNpcId()
-   id = st.getState()
-
-   if id == State.CREATED :
-     st.set("cond","0")
-   if st.getInt("cond")==0 :
-     if player.getRace().ordinal() != 2 :
-       htmltext = "30357-00.htm"
-       st.exitQuest(1)
-     else :
-       if player.getLevel()<6 :
-          htmltext = "30357-01.htm"
-          st.exitQuest(1)
-       else:
-          htmltext = "30357-02.htm"
-   else :
-     count=st.getQuestItemsCount(IMP_SHACKLES)
-     if count :
-       if count >= 10:
-          st.giveItems(ADENA,12*count+500)
-       else :
-          st.giveItems(ADENA,12*count)
-       st.takeItems(IMP_SHACKLES,-1)
-       # check the player state against this quest newbie rewarding mark.
-       newbie = player.getNewbie()
-       if newbie | NEWBIE_REWARD != newbie :
-          player.setNewbie(newbie|NEWBIE_REWARD)
-          st.showQuestionMark(26)
-          if player.getClassId().isMage() :
-             st.playTutorialVoice("tutorial_voice_027")
-             st.giveItems(SPIRITSHOT_FOR_BEGINNERS,3000)
-          else :
-             st.playTutorialVoice("tutorial_voice_026")
-             st.giveItems(SOULSHOT_FOR_BEGINNERS,6000)
-       htmltext = "30357-05.htm"
-     else:
-       htmltext = "30357-04.htm"
-   return htmltext
-
- def onKill(self,npc,player,isPet):
-   st = player.getQuestState(qn)
-   if not st : return 
-   if st.getState() != State.STARTED : return 
-   
-   if self.getRandom(10) < (5+((npc.getNpcId()-20000)^4)) :
-     st.giveItems(IMP_SHACKLES,1)
-     st.playSound("ItemSound.quest_itemget")
-   return
-
-QUEST       = Quest(265,qn,"Chains Of Slavery")
-
-QUEST.addStartNpc(30357)
-
-QUEST.addTalkId(30357)
-
-QUEST.addKillId(20004)
-QUEST.addKillId(20005)

+ 0 - 5
L2J_DataPack_BETA/dist/game/data/scripts/quests/274_AgainstWolfMen/30569-01.htm

@@ -1,5 +0,0 @@
-<html><body>Prefect Brukurse:<br>
-This Immortal Plateau has been the holiest land of the Orcs since ancient times! The place where our progenitor -- made by the great Paagrio of the flame -- took his first steps, is none other than the Immortal Plateau. However, there is a group of fools that will not understand that this land belongs to us. These wolfmen call themselves<font color="LEVEL"> maraku</font> and challenge us for our land.<br>
-The Paagrio Lord Kakai sent an envoy to the wolfmen and politely asked them to leave this land! But they replied to his civil request by returning the envoy's head! We will mercilessly punish those who repay our good will with blood! So, you should not go and prepare yourself for vengeance!<br>
-(Quest for Orc characters level 9 and above, with necklace of valor.)
-</body></html>

+ 0 - 6
L2J_DataPack_BETA/dist/game/data/scripts/quests/274_AgainstWolfMen/30569-02.htm

@@ -1,6 +0,0 @@
-<html><body>Prefect Brukurse:<br>
-This Immortal Plateau has been the holiest land of the Orcs since ancient times! The place where our progenitor -- made by the great Paagrio of flame -- took his first steps, is none other than the Immortal Plateau. However, there is a group of fools that will not understand that this land belongs to us. These wolfmen call themselves<font color="LEVEL"> maraku</font> and challenge us for our land.<br>
-The Paagrio Lord Kakai sent an envoy to the wolfmen and politely asked them to leave this land! But they replied to his civil request by returning the envoy's head!<br>
-How dare they repay our good will with blood! Blood for blood! As things have turned out this way, I of course cannot let a single werewolf live. The wolfmen brought this upon themselves! The lord has ordered us to punish these rash fools without pity. Young Orc! Will you not fight for the dignity of your race?<br>
-<a action="bypass -h Quest 274_AgainstWolfMen 30569-03.htm">Say that you will fight the werewolves</a>
-</body></html>

+ 0 - 6
L2J_DataPack_BETA/dist/game/data/scripts/quests/274_AgainstWolfMen/30569-07.htm

@@ -1,6 +0,0 @@
-<html><body>Prefect Brukurse:<br>
-This Immortal Plateau has been the holiest of lands for the Orcs since ancient times! The place where our progenitor -- made by the great Paagrio of flame -- took his first steps, is none other than the Immortal Plateau. However, there is a group of fools that refuses to understand that this land belongs to us. These wolfmen call themselves<font color="LEVEL"> maraku</font> and challenge us for our land.<br>
-The Paagrio Lord Kakai sent an envoy to the wolfmen and asked them to leave this land! But they replied to his civil request by returning the envoy's head! We will mercilessly punish those who repay our good will with blood!<br>
-I look at your eyes and I can tell that your blood is boiling with anger already! However, if you wish to fight for the dignity of your race, you must first be acknowledged as an Orc Fighter.<font color="LEVEL"> Go on to Praetorian Rukain and test your courage!</font><br>
-(Quest for characters possessing the necklace of valor or the necklace of courage.)
-</body></html>

+ 0 - 94
L2J_DataPack_BETA/dist/game/data/scripts/quests/274_AgainstWolfMen/__init__.py

@@ -1,94 +0,0 @@
-# Made by Mr. - Version 0.3 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 = "274_AgainstWolfMen"
-
-MARAKU_WEREWOLF_HEAD = 1477
-NECKLACE_OF_VALOR = 1507
-NECKLACE_OF_COURAGE = 1506
-ADENA = 57
-MARAKU_WOLFMEN_TOTEM = 1501
-
-class Quest (JQuest) :
-
- def __init__(self,id,name,descr):
-     JQuest.__init__(self,id,name,descr)
-     self.questItemIds = [MARAKU_WEREWOLF_HEAD]
-
- def onAdvEvent (self,event,npc, player) :
-    htmltext = event
-    st = player.getQuestState(qn)
-    if not st : return
-    if event == "30569-03.htm" :
-      st.set("cond","1")
-      st.setState(State.STARTED)
-      st.playSound("ItemSound.quest_accept")
-    return htmltext
-
- def onTalk (self,npc,player):
-   htmltext = Quest.getNoQuestMsg(player)
-   st = player.getQuestState(qn)
-   if not st : return htmltext
-
-   npcId = npc.getNpcId()
-   id = st.getState()
-   totems=st.getQuestItemsCount(MARAKU_WOLFMEN_TOTEM)
-   if id == State.CREATED :
-     st.set("cond","0")
-   if st.getInt("cond")==0 :
-     if player.getRace().ordinal() == 3 :
-       if player.getLevel() > 8 :
-         if st.getQuestItemsCount(NECKLACE_OF_VALOR) or st.getQuestItemsCount(NECKLACE_OF_COURAGE) :
-           htmltext = "30569-02.htm"
-         else :
-           htmltext = "30569-07.htm"
-           st.exitQuest(1)
-       else :
-         htmltext = "30569-01.htm"
-         st.exitQuest(1)
-     else :
-       htmltext = "30569-00.htm"
-       st.exitQuest(1)
-   else :
-     if st.getQuestItemsCount(MARAKU_WEREWOLF_HEAD) < 40 :
-       htmltext = "30569-04.htm"
-     else :
-       amount = 3500
-       if totems :
-         amount += 600*totems
-       htmltext = "30569-05.htm"
-       st.playSound("ItemSound.quest_finish")
-       st.giveItems(ADENA,amount)
-       st.takeItems(MARAKU_WEREWOLF_HEAD,-1)
-       st.takeItems(MARAKU_WOLFMEN_TOTEM,-1)
-       st.exitQuest(1)
-   return htmltext
-
- def onKill(self,npc,player,isPet):
-   st = player.getQuestState(qn)
-   if not st : return 
-   if st.getState() != State.STARTED : return 
-   
-   count=st.getQuestItemsCount(MARAKU_WEREWOLF_HEAD)
-   if count < 40 :
-     if count < 39 :
-       st.playSound("ItemSound.quest_itemget")
-     else:
-       st.playSound("ItemSound.quest_middle")
-       st.set("cond","2")
-     st.giveItems(MARAKU_WEREWOLF_HEAD,1)
-     if self.getRandom(100) <= 15 :
-       st.giveItems(MARAKU_WOLFMEN_TOTEM,1)
-   return
-
-QUEST       = Quest(274,qn,"Against Wolf Men")
-
-QUEST.addStartNpc(30569)
-
-QUEST.addTalkId(30569)
-
-QUEST.addKillId(20363)
-QUEST.addKillId(20364)

+ 0 - 8
L2J_DataPack_BETA/dist/game/data/scripts/quests/281_HeadForTheHills/32173-01.htm

@@ -1,8 +0,0 @@
-<html><body>Zerstorer Marcela:<br>
-Since this island was opened 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 caravans 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 wandering 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>

+ 0 - 5
L2J_DataPack_BETA/dist/game/data/scripts/quests/281_HeadForTheHills/32173-03.htm

@@ -1,5 +0,0 @@
-<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 equally 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>

+ 0 - 3
L2J_DataPack_BETA/dist/game/data/scripts/quests/281_HeadForTheHills/32173-04.htm

@@ -1,3 +0,0 @@
-<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>

+ 0 - 5
L2J_DataPack_BETA/dist/game/data/scripts/quests/281_HeadForTheHills/32173-05.htm

@@ -1,5 +0,0 @@
-<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">Exchange the monster claws for Adena.</a><br>
-<a action="bypass -h Quest 281_HeadForTheHills 32173-07.htm">Exchange a set of 50 claws for an item.</a>
-</body></html>

+ 0 - 6
L2J_DataPack_BETA/dist/game/data/scripts/quests/281_HeadForTheHills/32173-06.htm

@@ -1,6 +0,0 @@
-<html><body>Zerstorer Marcela:<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 281_HeadForTheHills 32173-08.htm">Say you will continue.</a><br>
-<a action="bypass -h Quest 281_HeadForTheHills 32173-09.htm">Say you will quit.</a>
-</body></html>

+ 0 - 6
L2J_DataPack_BETA/dist/game/data/scripts/quests/281_HeadForTheHills/32173-07.htm

@@ -1,6 +0,0 @@
-<html><body>Zerstorer Marcela:<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 281_HeadForTheHills 32173-08.htm">Say you will continue.</a><br>
-<a action="bypass -h Quest 281_HeadForTheHills 32173-09.htm">Say you will quit.</a>
-</body></html>

+ 0 - 3
L2J_DataPack_BETA/dist/game/data/scripts/quests/281_HeadForTheHills/32173-07a.htm

@@ -1,3 +0,0 @@
-<html><body>Zerstorer Marcela:<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>

+ 0 - 4
L2J_DataPack_BETA/dist/game/data/scripts/quests/281_HeadForTheHills/32173-08.htm

@@ -1,4 +0,0 @@
-<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>

+ 0 - 5
L2J_DataPack_BETA/dist/game/data/scripts/quests/281_HeadForTheHills/32173-09.htm

@@ -1,5 +0,0 @@
-<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>

+ 0 - 111
L2J_DataPack_BETA/dist/game/data/scripts/quests/281_HeadForTheHills/__init__.py

@@ -1,111 +0,0 @@
-# Contributed by t0rm3nt0r (tormentor2000@mail.ru) to the Official L2J Datapack Project.
-# Visit http://www.l2jdp.com/forum/ for more details.
-
-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 = "281_HeadForTheHills"
-
-#NPC'S
-MARCELA = 32173
-
-#ITEM'S
-HILLS = 9796
-SOULSHOT_FOR_BEGINNERS  = 5789
-REWARDS = [736,876,115]
-NEWBIE_REWARD = 32
-
-#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 onAdvEvent (self,event,npc, player) :
-     htmltext = event
-     st = player.getQuestState(qn)
-     if not st : return
-     player = st.getPlayer()
-     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" :
-        newbie = player.getNewbie()
-        if newbie | NEWBIE_REWARD != newbie :
-           player.setNewbie(newbie|NEWBIE_REWARD)
-           st.giveItems(SOULSHOT_FOR_BEGINNERS,6000)
-           st.playTutorialVoice("tutorial_voice_026")
-        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:
-         rnd = self.getRandom(len(REWARDS))
-         REWARD = REWARDS[rnd]
-         newbie = player.getNewbie()
-         if newbie | NEWBIE_REWARD != newbie :
-           st.giveItems(SOULSHOT_FOR_BEGINNERS,6000)
-           st.playTutorialVoice("tutorial_voice_026")
-           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 = Quest.getNoQuestMsg(player)
-     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 = self.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)

+ 0 - 5
L2J_DataPack_BETA/dist/game/data/scripts/quests/293_HiddenVein/30535-01.htm

@@ -1,5 +0,0 @@
-<html><body>Filaur of the Gray Pillar:<br>
-Have you heard of a metal called<font color="LEVEL"> crysolite</font>? This material is used by the maestros to craft high quality armor and weapons. Until now, the entire supply has been imported from Gracia, but we have just discovered that there are veins of this rare metal not very far from here.<br>
-We're planning to work on developing these new veins soon, and need the help of energetic young Dwarves. I'll ask you for help soon, so be prepared.<br>
-(Quest for Dwarven characters level 6 and above.)
-</body></html>

+ 0 - 6
L2J_DataPack_BETA/dist/game/data/scripts/quests/293_HiddenVein/30535-05.htm

@@ -1,6 +0,0 @@
-<html><body>Filaur of the Gray Pillar:<br>
-You've done well, young Dwarf. This ore you have brought may look rough, but once it goes through the trained hands of craftsmen, it becomes a precious metal with a brilliant blue luster. True maestros should be able to find the beauty hidden in plain objects.<br>
-As promised, I will reward you based on the amount of ore you have brought. And, don't forget ... If you collect<font color="LEVEL"> four pieces of a torn map,</font> you should visit Chichirin in the Maphr Temple. If you ask her for help, she will combine those torn pieces and make a complete map. I will give you a generous reward once you bring me the completed maps.<br>
-<a action="bypass -h Quest 293_HiddenVein 30535-06.htm">Say you will quit</a><br>
-<a action="bypass -h Quest 293_HiddenVein 30535-07.htm">Say you will continue</a>
-</body></html>

+ 0 - 7
L2J_DataPack_BETA/dist/game/data/scripts/quests/293_HiddenVein/30535-08.htm

@@ -1,7 +0,0 @@
-<html><body>Filaur of the Gray Pillar:<br>
-Ohh! You have obtained a complete map! Well done! We can finally find out the location of the hidden crysolite vein! I will reward you as promised. This should be enough.<br>
-Let me see ... Hmm ... Oh. Stupid Orcs, their map is too hard to read. But I can still roughly figure out the location. My investigators will have no problem locating the vein.<br>
-As I said before, there are many hidden veins. Continue to find more maps! I will reward you whenever you bring new maps, so don't worry about that.<br>
-<a action="bypass -h Quest 293_HiddenVein 30535-06.htm">Say you will quit</a><br>
-<a action="bypass -h Quest 293_HiddenVein 30535-07.htm">Say you will continue</a>
-</body></html>

+ 0 - 7
L2J_DataPack_BETA/dist/game/data/scripts/quests/293_HiddenVein/30535-09.htm

@@ -1,7 +0,0 @@
-<html><body>Filaur of the Gray Pillar:<br>
-Ohh! You have obtained a complete map! Well done! We finally can find out the location of the hidden crysolite vein! I will pay you as promised. I will also give you an additional reward for the amount of ore you have brought.<br>
-Let me see ... Hmm ... Oh. Stupid Orcs, their map is too hard to read. But I can still roughly figure out the location. My investigators will have no problem locating the vein.<br>
-As I said before, there are many hidden veins. Continue to find more maps! I will reward you whenever you bring new maps, so don't worry about that.<br>
-<a action="bypass -h Quest 293_HiddenVein 30535-06.htm">Say you will quit</a><br>
-<a action="bypass -h Quest 293_HiddenVein 30535-07.htm">Say you will continue</a>
-</body></html>

+ 0 - 4
L2J_DataPack_BETA/dist/game/data/scripts/quests/293_HiddenVein/30539-01.htm

@@ -1,4 +0,0 @@
-<html><body>Maphr Priestess Chichirin:<br>
-I heard from Elder Filaur. You are trying to recover some old maps, right? I used to be an apprentice for the cartography guild before becoming a seer. I helped Master Diana recover the map that shows the sites of the ancient giants.<br>
-<a action="bypass -h Quest 293_HiddenVein 30539-02.htm">Ask her to recover the map</a>
-</body></html>

+ 0 - 3
L2J_DataPack_BETA/dist/game/data/scripts/quests/293_HiddenVein/30539-02.htm

@@ -1,3 +0,0 @@
-<html><body>Maphr Priestess Chichirin:<br>
-I'm sorry, but you don't have enough pieces of the torn map. Look here. You don't have this part. See, just there? I think I need<font color="LEVEL"> four</font> pieces of the torn map to make a complete map.
-</body></html>

+ 0 - 128
L2J_DataPack_BETA/dist/game/data/scripts/quests/293_HiddenVein/__init__.py

@@ -1,128 +0,0 @@
-# Made by Mr. - Version 0.3 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 = "293_HiddenVein"
-
-CHRYSOLITE_ORE = 1488
-TORN_MAP_FRAGMENT = 1489
-HIDDEN_VEIN_MAP = 1490
-ADENA = 57
-
-#Newbie/one time rewards section
-#Any quest should rely on a unique bit, but
-#it could be shared among quest that were mutually
-#exclusive or race restricted.
-#Bit #1 isn't used for backwards compatibility.
-NEWBIE_REWARD = 4
-SOULSHOT_FOR_BEGINNERS = 5789
-
-def newbie_rewards(st) :
-  # check the player state against this quest newbie rewarding mark.
-  player=st.getPlayer()
-  newbie = player.getNewbie()
-  if newbie | NEWBIE_REWARD != newbie :
-     player.setNewbie(newbie|NEWBIE_REWARD)
-     st.giveItems(SOULSHOT_FOR_BEGINNERS,6000)
-     st.playTutorialVoice("tutorial_voice_026")
-  
-
-class Quest (JQuest) :
-
- def __init__(self,id,name,descr):
-     JQuest.__init__(self,id,name,descr)
-     self.questItemIds = [HIDDEN_VEIN_MAP, CHRYSOLITE_ORE, TORN_MAP_FRAGMENT]
-
- def onAdvEvent (self,event,npc, player) :
-    htmltext = event
-    st = player.getQuestState(qn)
-    if not st : return
-    if event == "30535-03.htm" :
-      st.set("cond","1")
-      st.setState(State.STARTED)
-      st.playSound("ItemSound.quest_accept")
-    elif event == "30535-06.htm" :
-      st.takeItems(TORN_MAP_FRAGMENT,-1)
-      st.exitQuest(1)
-      st.playSound("ItemSound.quest_finish")
-    elif event == "30539-02.htm" :
-      if st.getQuestItemsCount(TORN_MAP_FRAGMENT) >=4 :
-        htmltext = "30539-03.htm"
-        st.giveItems(HIDDEN_VEIN_MAP,1)
-        st.takeItems(TORN_MAP_FRAGMENT,4)
-    return htmltext
-
- def onTalk (self,npc,player):
-   htmltext = Quest.getNoQuestMsg(player)
-   st = player.getQuestState(qn)
-   if not st : return htmltext
-
-   npcId = npc.getNpcId()
-   id = st.getState()
-   if npcId != 30535 and id != State.STARTED : return htmltext
-   
-   if id == State.CREATED :
-     st.set("cond","0")
-   if npcId == 30535 :
-     if st.getInt("cond")==0 :
-       if player.getRace().ordinal() != 4 :
-         htmltext = "30535-00.htm"
-         st.exitQuest(1)
-       elif player.getLevel() >= 6 :
-         htmltext = "30535-02.htm"
-         return htmltext
-       else:
-         htmltext = "30535-01.htm"
-         st.exitQuest(1)
-     else :
-       if st.getQuestItemsCount(CHRYSOLITE_ORE)==0 :
-         if st.getQuestItemsCount(HIDDEN_VEIN_MAP)==0 :
-           htmltext = "30535-04.htm"
-         else :
-           newbie_rewards(st)
-           htmltext = "30535-08.htm"
-           st.giveItems(ADENA,st.getQuestItemsCount(HIDDEN_VEIN_MAP)*1000)
-           st.takeItems(HIDDEN_VEIN_MAP,-1)
-       else :
-         if st.getQuestItemsCount(HIDDEN_VEIN_MAP)==0 :
-           newbie_rewards(st)
-           htmltext = "30535-05.htm"
-           st.giveItems(ADENA,st.getQuestItemsCount(CHRYSOLITE_ORE)*10)
-           st.takeItems(CHRYSOLITE_ORE,-1)
-         else :
-           newbie_rewards(st)
-           htmltext = "30535-09.htm"
-           st.giveItems(ADENA,st.getQuestItemsCount(CHRYSOLITE_ORE)*10+st.getQuestItemsCount(HIDDEN_VEIN_MAP)*1000)
-           st.takeItems(HIDDEN_VEIN_MAP,-1)
-           st.takeItems(CHRYSOLITE_ORE,-1)
-   elif npcId == 30539 :
-      htmltext = "30539-01.htm"
-   return htmltext
-
- def onKill(self,npc,player,isPet):
-   st = player.getQuestState(qn)
-   if not st : return 
-   if st.getState() != State.STARTED : return 
-   
-   n = self.getRandom(100)
-   if n > 50 :
-     st.giveItems(CHRYSOLITE_ORE,1)
-     st.playSound("ItemSound.quest_itemget")
-   elif n < 5 :
-     st.giveItems(TORN_MAP_FRAGMENT,1)
-     st.playSound("ItemSound.quest_itemget")
-   return
-
-QUEST       = Quest(293,qn,"The Hidden Veins")
-
-QUEST.addStartNpc(30535)
-
-QUEST.addTalkId(30535)
-
-QUEST.addTalkId(30539)
-
-QUEST.addKillId(20446)
-QUEST.addKillId(20447)
-QUEST.addKillId(20448)

+ 1 - 1
L2J_DataPack_BETA/dist/game/data/scripts/quests/257_GuardIsBusy1/30039-01.htm → L2J_DataPack_BETA/dist/game/data/scripts/quests/Q00257_TheGuardIsBusy/30039-01.html

@@ -1,5 +1,5 @@
 <html><body>Captain Gilbert:<br>
-A few weeks ago, the lord announced that he will transfer all of the refugees from the Gracian wars to Talking Island. But, as you know, Talking Island still has many regions where it is too dangerous for people to live. The southern village of the island and regions surrounding the magic school are safe, but the inland woods and northern shores are places that even we guards do not like to venture into, not only because of the vicious wild beasts, but also because of the orc masses and violent werewolves that live there.<br>
+A few weeks ago, the lord announced that he will transfer all of the refugees from the Gracian wars to Talking Island. But, as you know, Talking Island still has many regions where it is too dangerous for people to live. The southern village of the island and regions surrounding the magic school are safe, but the inland woods and northern shores are places that even we guards do not like to venture into, not only because of the vicious wild beasts, but also because of the Orc masses and violent werewolves that live there.<br>
 Before going ahead with his plans to relocate the refugees, the lord has officially issued a command to eliminate from Talking Island the dangerous beasts that pose a threat to the lives of residents. They say that the lord's command will be officially announced in a few days. How do you feel about participating in the beast hunt?<br>
 (Quest for characters level 6 and above.)
 </body></html>

+ 2 - 2
L2J_DataPack_BETA/dist/game/data/scripts/quests/257_GuardIsBusy1/30039-02.htm → L2J_DataPack_BETA/dist/game/data/scripts/quests/Q00257_TheGuardIsBusy/30039-02.htm

@@ -1,6 +1,6 @@
 <html><body>Captain Gilbert:<br>
-A few weeks ago, the lord announced that he will transfer all of the refugees from the Gracian wars to Talking Island. But, as you know, Talking Island still has many regions where it is too dangerous for people to live. The southern village of the island and regions surrounding the magic school are safe, but the inland woods and northern shores are places that even we guards do not like to venture into, not only because of the vicious wild beasts, but also because of the orc masses and violent werewolves that live there.<br>
+A few weeks ago, the lord announced that he will transfer all of the refugees from the Gracian wars to Talking Island. But, as you know, Talking Island still has many regions where it is too dangerous for people to live. The southern village of the island and regions surrounding the magic school are safe, but the inland woods and northern shores are places that even we guards do not like to venture into, not only because of the vicious wild beasts, but also because of the Orc masses and violent werewolves that live there.<br>
 Before going ahead with his plans to relocate the war refugees, the lord has officially issued a command to eliminate from Talking Island the dangerous beasts that pose a threat to the lives of residents. Whoever slays the orcs or werewolves, and brings back proof, will be given a reward. Already many of the young men have armed themselves and gone out from of the village.<br>
 How about if you participate in the hunt? You can gain some actual battle experience, and it's also a good opportunity to receive prizes given in the name of our lord.<br>
-<a action="bypass -h Quest 257_GuardIsBusy1 30039-03.htm">Say you will participate in the hunt</a>
+<a action="bypass -h Quest Q00257_TheGuardIsBusy 30039-03.htm">Say you will participate in the hunt</a>
 </body></html>

+ 1 - 1
L2J_DataPack_BETA/dist/game/data/scripts/quests/257_GuardIsBusy1/30039-03.htm → L2J_DataPack_BETA/dist/game/data/scripts/quests/Q00257_TheGuardIsBusy/30039-03.htm

@@ -1,5 +1,5 @@
 <html><body>Captain Gilbert:<br>
-Go and slay orcs and werewolves that live on Talking Island, and bring back proof of their deaths. Prizes will be awarded according to the amount of proof that you bring back. Bring back the<font color="LEVEL"> feather orc amulet, werewolf fangs, or the orc's necklace</font> that orcs of fighter rank carry.<br>
+Go and slay orcs and werewolves that live on Talking Island, and bring back proof of their deaths. Prizes will be awarded according to the amount of proof that you bring back. Bring back the <font color="LEVEL">feather Orc Amulet, werewolf fangs, or the Orc's Necklace</font> that orcs of fighter rank carry.<br>
 This task is not just a simple hunt, but an official announcement that, under the will of the lord, Talking Island is now part of the Aden Kingdom. Therefore, the aggressors who have invaded our land must be punished accordingly. All who participate in this hunt are representatives carrying out the will of the lord, and must carry this symbol of the lord at all times.<br>
 May the blessings of Einhasad be with you.
 </body></html>

+ 2 - 2
L2J_DataPack_BETA/dist/game/data/scripts/quests/257_GuardIsBusy1/30039-04.htm → L2J_DataPack_BETA/dist/game/data/scripts/quests/Q00257_TheGuardIsBusy/30039-04.html

@@ -1,6 +1,6 @@
 <html><body>Captain Gilbert:<br>
 You cannot hope for any reward if you laze around in the village. Go outside the village immediately and join in on the hunt. This will be our chance to drive the orcs and werewolves from our lands and make Talking Island a suitable place for Humans to live in.<br>
 Don't tell me you've come back because you want to give up? Do you always give up that easily?<br>
-<a action="bypass -h Quest 257_GuardIsBusy1 30039-06.htm">Say you will go on the hunt</a><br>
-<a action="bypass -h Quest 257_GuardIsBusy1 30039-05.htm">Say you will quit</a>
+<a action="bypass -h Quest Q00257_TheGuardIsBusy 30039-06.html">Say you will go on the hunt</a><br>
+<a action="bypass -h Quest Q00257_TheGuardIsBusy 30039-05.html">Say you will quit</a>
 </body></html>

+ 0 - 0
L2J_DataPack_BETA/dist/game/data/scripts/quests/257_GuardIsBusy1/30039-05.htm → L2J_DataPack_BETA/dist/game/data/scripts/quests/Q00257_TheGuardIsBusy/30039-05.html


+ 0 - 0
L2J_DataPack_BETA/dist/game/data/scripts/quests/257_GuardIsBusy1/30039-06.htm → L2J_DataPack_BETA/dist/game/data/scripts/quests/Q00257_TheGuardIsBusy/30039-06.html


+ 3 - 3
L2J_DataPack_BETA/dist/game/data/scripts/quests/257_GuardIsBusy1/30039-07.htm → L2J_DataPack_BETA/dist/game/data/scripts/quests/Q00257_TheGuardIsBusy/30039-07.html

@@ -1,6 +1,6 @@
 <html><body>Captain Gilbert:<br>
 Well done. I will reward you for every piece of proof you have brought me. This is a reward given to honor the fighters who have faithfully carried out the will of our lord.<br>
-The lord's decree is still valid. There is still more adena left for rewards. Will you continue your hunt, or will you quit?<br>
-<a action="bypass -h Quest 257_GuardIsBusy1 30039-05.htm">Say you will quit</a><br>
-<a action="bypass -h Quest 257_GuardIsBusy1 30039-06.htm">Say you will continue</a>
+The lord's decree is still valid. There is still more Adena left for rewards. Will you continue your hunt, or will you quit?<br>
+<a action="bypass -h Quest Q00257_TheGuardIsBusy 30039-05.html">Say you will quit</a><br>
+<a action="bypass -h Quest Q00257_TheGuardIsBusy 30039-06.html">Say you will continue</a>
 </body></html>

+ 184 - 0
L2J_DataPack_BETA/dist/game/data/scripts/quests/Q00257_TheGuardIsBusy/Q00257_TheGuardIsBusy.java

@@ -0,0 +1,184 @@
+/*
+ * 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.Q00257_TheGuardIsBusy;
+
+import java.util.Arrays;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+import quests.Q00281_HeadForTheHills.Q00281_HeadForTheHills;
+
+import com.l2jserver.gameserver.model.actor.L2Npc;
+import com.l2jserver.gameserver.model.actor.instance.L2PcInstance;
+import com.l2jserver.gameserver.model.holders.ItemHolder;
+import com.l2jserver.gameserver.model.quest.Quest;
+import com.l2jserver.gameserver.model.quest.QuestState;
+import com.l2jserver.gameserver.model.quest.State;
+
+/**
+ * The Guard is Busy (257)
+ * @author xban1x
+ */
+public final class Q00257_TheGuardIsBusy extends Quest
+{
+	public final static class MobDrop extends ItemHolder
+	{
+		private final int _chance;
+		private final int _random;
+		
+		public MobDrop(int random, int chance, int id, long count)
+		{
+			super(id, count);
+			_random = random;
+			_chance = chance;
+		}
+		
+		public boolean getDrop()
+		{
+			return (getRandom(_random) < _chance);
+		}
+	}
+	
+	// NPC
+	private static final int GILBERT = 30039;
+	// Misc
+	private static final int MIN_LVL = 6;
+	// Monsters
+	private static final Map<Integer, List<MobDrop>> MONSTERS = new HashMap<>();
+	// Items
+	private static final int GLUDIO_LORDS_MARK = 1084;
+	private static final int ORC_AMULET = 752;
+	private static final int ORC_NECKLACE = 1085;
+	private static final int WEREWOLF_FANG = 1086;
+	
+	static
+	{
+		MONSTERS.put(20006, Arrays.asList(new MobDrop(10, 2, ORC_AMULET, 2), new MobDrop(10, 10, ORC_AMULET, 1))); // Orc Archer
+		MONSTERS.put(20093, Arrays.asList(new MobDrop(100, 85, ORC_NECKLACE, 1))); // Orc Fighter
+		MONSTERS.put(20096, Arrays.asList(new MobDrop(100, 95, ORC_NECKLACE, 1))); // Orc Fighter Sub Leader
+		MONSTERS.put(20098, Arrays.asList(new MobDrop(100, 100, ORC_NECKLACE, 1)));// Orc Fighter Leader
+		MONSTERS.put(20130, Arrays.asList(new MobDrop(10, 7, ORC_AMULET, 1))); // Orc
+		MONSTERS.put(20131, Arrays.asList(new MobDrop(10, 9, ORC_AMULET, 1))); // Orc Grunt
+		MONSTERS.put(20132, Arrays.asList(new MobDrop(10, 7, WEREWOLF_FANG, 1))); // Werewolf
+		MONSTERS.put(20342, Arrays.asList(new MobDrop(0, 1, WEREWOLF_FANG, 1))); // Werewolf Chieftain
+		MONSTERS.put(20343, Arrays.asList(new MobDrop(100, 85, WEREWOLF_FANG, 1))); // Werewolf Hunter
+	}
+	
+	private Q00257_TheGuardIsBusy(int questId, String name, String descr)
+	{
+		super(questId, name, descr);
+		addStartNpc(GILBERT);
+		addTalkId(GILBERT);
+		addKillId(MONSTERS.keySet());
+		registerQuestItems(ORC_AMULET, GLUDIO_LORDS_MARK, ORC_NECKLACE, WEREWOLF_FANG);
+	}
+	
+	@Override
+	public String onAdvEvent(String event, L2Npc npc, L2PcInstance player)
+	{
+		final QuestState st = player.getQuestState(getName());
+		String htmltext = null;
+		if (st != null)
+		{
+			switch (event)
+			{
+				case "30039-03.htm":
+				{
+					st.startQuest();
+					st.giveItems(GLUDIO_LORDS_MARK, 1);
+					htmltext = event;
+					break;
+				}
+				case "30039-05.html":
+				{
+					st.exitQuest(true, true);
+					htmltext = event;
+					break;
+				}
+				case "30039-06.html":
+				{
+					htmltext = event;
+					break;
+				}
+			}
+		}
+		return htmltext;
+	}
+	
+	@Override
+	public String onKill(L2Npc npc, L2PcInstance killer, boolean isSummon)
+	{
+		final QuestState st = killer.getQuestState(getName());
+		if (st != null)
+		{
+			for (MobDrop drop : MONSTERS.get(npc.getNpcId()))
+			{
+				if (drop.getDrop())
+				{
+					st.giveItems(drop);
+					st.playSound(QuestSound.ITEMSOUND_QUEST_ITEMGET);
+					break;
+				}
+			}
+		}
+		return super.onKill(npc, killer, isSummon);
+	}
+	
+	@Override
+	public String onTalk(L2Npc npc, L2PcInstance player)
+	{
+		final QuestState st = player.getQuestState(getName());
+		String htmltext = null;
+		if (st != null)
+		{
+			switch (st.getState())
+			{
+				case State.CREATED:
+				{
+					htmltext = (player.getLevel() >= MIN_LVL) ? "30039-02.htm" : "30039-01.html";
+					break;
+				}
+				case State.STARTED:
+				{
+					if (hasAtLeastOneQuestItem(player, ORC_AMULET, ORC_NECKLACE, WEREWOLF_FANG))
+					{
+						final long amulets = st.getQuestItemsCount(ORC_AMULET);
+						final long common = getQuestItemsCount(player, ORC_NECKLACE, WEREWOLF_FANG);
+						st.giveAdena(((amulets * 10) + (common * 20) + (((amulets + common) >= 10) ? 1000 : 0)), true);
+						takeItems(player, -1, ORC_AMULET, ORC_NECKLACE, WEREWOLF_FANG);
+						Q00281_HeadForTheHills.giveNewbieReward(player);
+						htmltext = "30039-07.html";
+					}
+					else
+					{
+						htmltext = "30039-04.html";
+					}
+					break;
+				}
+			}
+		}
+		return htmltext;
+	}
+	
+	public static void main(String[] args)
+	{
+		new Q00257_TheGuardIsBusy(257, Q00257_TheGuardIsBusy.class.getSimpleName(), "The Guard is Busy");
+	}
+}

+ 0 - 0
L2J_DataPack_BETA/dist/game/data/scripts/quests/265_ChainsOfSlavery/30357-00.htm → L2J_DataPack_BETA/dist/game/data/scripts/quests/Q00265_BondsOfSlavery/30357-01.html


+ 2 - 1
L2J_DataPack_BETA/dist/game/data/scripts/quests/265_ChainsOfSlavery/30357-01.htm → L2J_DataPack_BETA/dist/game/data/scripts/quests/Q00265_BondsOfSlavery/30357-02.html

@@ -1,4 +1,5 @@
 <html><body>Sentry Kristin:<br>
 Have you ever seen imps in the forest? Those hideous creatures were once slaves that served our race. However, they undid the spells of restraint through some unknown method and escaped aboveground. When I look at that lowly race that used to serve us parading around aboveground, I feel so... I cannot contain my hurt pride.<br>
 However, recently Tetrarch Vellior said he is preparing a spell that will make the imps submissive again. Soon, those rude imps will once again call us their masters!<br>
-(Quest for characters level 6 and above.)</body></html>
+(Quest for characters level 6 and above.)
+</body></html>

+ 2 - 2
L2J_DataPack_BETA/dist/game/data/scripts/quests/265_ChainsOfSlavery/30357-02.htm → L2J_DataPack_BETA/dist/game/data/scripts/quests/Q00265_BondsOfSlavery/30357-03.htm

@@ -1,6 +1,6 @@
 <html><body>Sentry Kristin:<br>
-Have you seen<font color="LEVEL"> imps</font> in the forest? Those hideous creatures were once slaves that served our race. However, when we were at war with the Elves of Light, they undid the spells of restraint through some unknown method and escaped aboveground.<br>
+Have you seen <font color="LEVEL">imps</font> in the forest? Those hideous creatures were once slaves that served our race. However, when we were at war with the Elves of Light, they undid the spells of restraint through some unknown method and escaped aboveground.<br>
 When I look at the lowly race that used to serve us parading around aboveground, I feel so ... I cannot contain my hurt pride.<br>
 However, recently Tetrarch Velior said he is preparing a spell that will make the imps submissive again. But he mentioned that he needs the<font color="LEVEL"> shackles</font> from around their necks in order to complete the spell. Would you go into the woods to slay those rude imps and collect their shackles?<br>
-<a action="bypass -h Quest 265_ChainsOfSlavery 30357-03.htm">Say you will hunt the imps</a>
+<a action="bypass -h Quest Q00265_BondsOfSlavery 30357-04.htm">Say you will hunt the imps</a>
 </body></html>

+ 1 - 0
L2J_DataPack_BETA/dist/game/data/scripts/quests/Q00265_BondsOfSlavery/30357-04.htm

@@ -0,0 +1 @@
+<html><head><body>Sentry Kristin:<br>Good. Go into the forest and strike down any <font color="LEVEL">imp</font> you meet, collect the <font color="LEVEL">shackles</font> around their necks, and bring them to me. I will compensate you for every shackle you bring me.<br>In the name of the goddess, may your hunt meet great success! Soon those arrogant imps will once again call us their masters!</body></html>

+ 2 - 2
L2J_DataPack_BETA/dist/game/data/scripts/quests/265_ChainsOfSlavery/30357-04.htm → L2J_DataPack_BETA/dist/game/data/scripts/quests/Q00265_BondsOfSlavery/30357-05.html

@@ -1,5 +1,5 @@
 <html><body>Sentry Kristin:<br>
 You have come back empty-handed. Are you tired of the hunt already? As I have said before, only those who return with the shackles from the imp's necks will receive the reward.<br>
-<a action="bypass -h Quest 265_ChainsOfSlavery 30357-06.htm">Say you will quit</a><br>
-<a action="bypass -h Quest 265_ChainsOfSlavery 30357-07.htm">Say you will continue</a>
+<a action="bypass -h Quest Q00265_BondsOfSlavery 30357-07.html">Say you will quit</a><br>
+<a action="bypass -h Quest Q00265_BondsOfSlavery 30357-08.html">Say you will continue</a>
 </body></html>

+ 2 - 2
L2J_DataPack_BETA/dist/game/data/scripts/quests/265_ChainsOfSlavery/30357-05.htm → L2J_DataPack_BETA/dist/game/data/scripts/quests/Q00265_BondsOfSlavery/30357-06.html

@@ -1,6 +1,6 @@
 <html><body>Sentry Kristin:<br>
 Have you come back after teaching a lesson to that lowly race that has forgotten its place? The shackles you have returned with will be useful for Tetrarch Vellior's spell research. As promised, I will reward you for each shackle you have brought me.<br>
 If you are not tired of the hunt yet, could you continue a little more? I don't know whether the spell research is going well ... But the Tetrarch says that he needs more shackles.<br>
-<a action="bypass -h Quest 265_ChainsOfSlavery 30357-06.htm">Say you will quit</a><br>
-<a action="bypass -h Quest 265_ChainsOfSlavery 30357-07.htm">Say you will continue</a>
+<a action="bypass -h Quest Q00265_BondsOfSlavery 30357-07.html">Say you will quit</a><br>
+<a action="bypass -h Quest Q00265_BondsOfSlavery 30357-08.html">Say you will continue</a>
 </body></html>

+ 0 - 0
L2J_DataPack_BETA/dist/game/data/scripts/quests/265_ChainsOfSlavery/30357-06.htm → L2J_DataPack_BETA/dist/game/data/scripts/quests/Q00265_BondsOfSlavery/30357-07.html


+ 1 - 1
L2J_DataPack_BETA/dist/game/data/scripts/quests/265_ChainsOfSlavery/30357-07.htm → L2J_DataPack_BETA/dist/game/data/scripts/quests/Q00265_BondsOfSlavery/30357-08.html

@@ -1,3 +1,3 @@
 <html><body>Sentry Kristin:<br>
-Please carry on, then. In the name of the goddess, I pray that your hunt may yield great plenty. Soon, those arrogant imps will once again call us their masters!
+Please carry on, then. In the name of the goddess, I pray that your hunt may yield  great plenty. Soon, those arrogant imps will once again call us their masters!
 </body></html>

+ 144 - 0
L2J_DataPack_BETA/dist/game/data/scripts/quests/Q00265_BondsOfSlavery/Q00265_BondsOfSlavery.java

@@ -0,0 +1,144 @@
+/*
+ * 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.Q00265_BondsOfSlavery;
+
+import java.util.HashMap;
+import java.util.Map;
+
+import quests.Q00281_HeadForTheHills.Q00281_HeadForTheHills;
+
+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;
+
+/**
+ * Bonds of Slavery (265)
+ * @author xban1x
+ */
+public final class Q00265_BondsOfSlavery extends Quest
+{
+	// Item
+	private static final int IMP_SHACKLES = 1368;
+	// NPC
+	private static final int KRISTIN = 30357;
+	// Misc
+	private static final int MIN_LVL = 6;
+	// Monsters
+	private static final Map<Integer, Integer> MONSTERS = new HashMap<>();
+	static
+	{
+		MONSTERS.put(20004, 5); // Imp
+		MONSTERS.put(20005, 6); // Imp Elder
+	}
+	
+	private Q00265_BondsOfSlavery(int questId, String name, String descr)
+	{
+		super(questId, name, descr);
+		addStartNpc(KRISTIN);
+		addTalkId(KRISTIN);
+		addKillId(MONSTERS.keySet());
+		registerQuestItems(IMP_SHACKLES);
+	}
+	
+	@Override
+	public String onAdvEvent(String event, L2Npc npc, L2PcInstance player)
+	{
+		final QuestState st = player.getQuestState(getName());
+		String htmltext = null;
+		if (st != null)
+		{
+			switch (event)
+			{
+				case "30357-04.htm":
+				{
+					st.startQuest();
+					htmltext = event;
+					break;
+				}
+				case "30357-07.html":
+				{
+					st.exitQuest(true, true);
+					htmltext = event;
+					break;
+				}
+				case "30357-08.html":
+				{
+					htmltext = event;
+					break;
+				}
+			}
+		}
+		return htmltext;
+	}
+	
+	@Override
+	public String onKill(L2Npc npc, L2PcInstance killer, boolean isSummon)
+	{
+		final QuestState st = killer.getQuestState(getName());
+		if ((st != null) && (getRandom(10) < MONSTERS.get(npc.getNpcId())))
+		{
+			st.giveItems(IMP_SHACKLES, 1);
+			st.playSound(QuestSound.ITEMSOUND_QUEST_ITEMGET);
+		}
+		return super.onKill(npc, killer, isSummon);
+	}
+	
+	@Override
+	public String onTalk(L2Npc npc, L2PcInstance player)
+	{
+		final QuestState st = player.getQuestState(getName());
+		String htmltext = null;
+		if (st != null)
+		{
+			switch (st.getState())
+			{
+				case State.CREATED:
+				{
+					htmltext = (player.getRace() == Race.DarkElf) ? (player.getLevel() >= MIN_LVL) ? "30357-03.htm" : "30357-02.html" : "30357-01.html";
+					break;
+				}
+				case State.STARTED:
+				{
+					if (st.hasQuestItems(IMP_SHACKLES))
+					{
+						final long shackles = st.getQuestItemsCount(IMP_SHACKLES);
+						st.giveAdena((shackles * 12) + (shackles >= 10 ? 500 : 0), true);
+						st.takeItems(IMP_SHACKLES, -1);
+						Q00281_HeadForTheHills.giveNewbieReward(player);
+						htmltext = "30357-06.html";
+					}
+					else
+					{
+						htmltext = "30357-05.html";
+					}
+					break;
+				}
+			}
+		}
+		return htmltext;
+	}
+	
+	public static void main(String[] args)
+	{
+		new Q00265_BondsOfSlavery(265, Q00265_BondsOfSlavery.class.getSimpleName(), "Bonds of Slavery");
+	}
+}

+ 5 - 5
L2J_DataPack_BETA/dist/game/data/scripts/quests/Q00273_InvadersOfTheHolyLand/Q00273_InvadersOfTheHolyLand.java

@@ -138,20 +138,20 @@ public final class Q00273_InvadersOfTheHolyLand extends Quest
 						st.giveAdena((red * 10) + (black * 3) + ((red > 0) ? (((red + black) >= 10) ? 1800 : 0) : ((black >= 10) ? 1500 : 0)), true);
 						takeItems(player, -1, BLACK_SOULSTONE, RED_SOULSTONE);
 						final PlayerVariables vars = player.getVariables();
-						if ((player.getLevel() < 25) && (!vars.getBool("NEWBIE_SHOTS", false)))
+						if ((player.getLevel() < 25) && !vars.getBool("NEWBIE_SHOTS", false))
 						{
 							st.giveItems(SOULSHOTS_NO_GRADE_FOR_ROOKIES);
 							vars.set("NEWBIE_SHOTS", true);
 							st.playTutorialVoice("tutorial_voice_26");
 						}
-						if (vars.getString("guide_mission", null) == null)
+						if (vars.getString("GUIDE_MISSION", null) == null)
 						{
-							vars.set("guide_mission", 1000);
+							vars.set("GUIDE_MISSION", 1000);
 							player.sendPacket(new ExShowScreenMessage(NpcStringId.ACQUISITION_OF_SOULSHOT_FOR_BEGINNERS_COMPLETE_N_GO_FIND_THE_NEWBIE_GUIDE, 2, 5000));
 						}
-						else if (((vars.getInteger("guide_mission") % 10000) / 1000) != 1)
+						else if (((vars.getInteger("GUIDE_MISSION") % 10000) / 1000) != 1)
 						{
-							vars.set("guide_mission", vars.getInteger("guide_mission") + 1000);
+							vars.set("GUIDE_MISSION", vars.getInteger("GUIDE_MISSION") + 1000);
 							player.sendPacket(new ExShowScreenMessage(NpcStringId.ACQUISITION_OF_SOULSHOT_FOR_BEGINNERS_COMPLETE_N_GO_FIND_THE_NEWBIE_GUIDE, 2, 5000));
 						}
 						htmltext = (red > 0) ? "30566-07.html" : "30566-06.html";

+ 0 - 0
L2J_DataPack_BETA/dist/game/data/scripts/quests/274_AgainstWolfMen/30569-00.htm → L2J_DataPack_BETA/dist/game/data/scripts/quests/Q00274_SkirmishWithTheWerewolves/30569-01.html


+ 5 - 0
L2J_DataPack_BETA/dist/game/data/scripts/quests/Q00274_SkirmishWithTheWerewolves/30569-02.html

@@ -0,0 +1,5 @@
+<html><body>Prefect Brukurse:<br>
+This Immortal Plateau has been the holiest land of the Orcs since ancient times! The place where our progenitor -- made by the great Pa'agrio of the flame -- took his first steps, is none other than the Immortal Plateau. However, there is a group of fools that will not understand that this land belongs to us. These wolfmen call themselves <font color="LEVEL">maraku</font> and challenge us for our land.<br>
+The Flame Lord Kakai sent an envoy to the wolfmen and politely asked them to leave this land! But they replied to his civil request by returning the envoy's head! We will mercilessly punish those who repay our good will with blood! So, you should not go and prepare yourself for vengeance!<br>
+(Quest for Orc characters level 9 and above, with Necklace of Valor.)
+</body></html>

+ 6 - 0
L2J_DataPack_BETA/dist/game/data/scripts/quests/Q00274_SkirmishWithTheWerewolves/30569-03.htm

@@ -0,0 +1,6 @@
+<html><body>Prefect Brukurse:<br>
+This Immortal Plateau has been the holiest land of the Orcs since ancient times! The place where our progenitor -- made by the great Pa'agrio of flame -- took his first steps, is none other than the Immortal Plateau. However, there is a group of fools that will not understand that this land belongs to us. These wolfmen call themselves <font color="LEVEL">maraku</font> and challenge us for our land.<br>
+The Flame Lord Kakai sent an envoy to the wolfmen and politely asked them to leave this land! But they replied to his civil request by returning the envoy's head!<br>
+How dare they repay our good will with blood! Blood for blood! As things have turned out this way, I of course cannot let a single werewolf live. The wolfmen brought this upon themselves! The lord has ordered us to punish these rash fools without pity. Young Orc! Will you not fight for the dignity of your race?<br>
+<a action="bypass -h Quest Q00274_SkirmishWithTheWerewolves 30569-04.htm">Say that you will fight the werewolves</a>
+</body></html>

+ 1 - 1
L2J_DataPack_BETA/dist/game/data/scripts/quests/274_AgainstWolfMen/30569-03.htm → L2J_DataPack_BETA/dist/game/data/scripts/quests/Q00274_SkirmishWithTheWerewolves/30569-04.htm

@@ -1,4 +1,4 @@
 <html><body>Prefect Brukurse:<br>
-Tejakar Oroka! Young Orc, go to the wilderness right now and kill those<font color="LEVEL"> maraku wolfmen</font> without mercy! Collect forty of their severed heads and bring them back to me! The maraku tribe leaders are quite powerful so be careful when you deal with them!<br>
+Tejakar Oroka! Young Orc, go to the wilderness right now and kill those <font color="LEVEL">maraku wolfmen</font> without mercy! Collect forty of their severed heads and bring them back to me! The maraku tribe leaders are quite powerful so be careful when you deal with them!<br>
 I will pierce the heads of that proud race with spears, and display them outside the village! They will realize the high price of arousing our anger! Here! Go off and fight!
 </body></html>

+ 1 - 1
L2J_DataPack_BETA/dist/game/data/scripts/quests/274_AgainstWolfMen/30569-04.htm → L2J_DataPack_BETA/dist/game/data/scripts/quests/Q00274_SkirmishWithTheWerewolves/30569-05.html

@@ -1,3 +1,3 @@
 <html><body>Prefect Brukurse:<br>
-Young Orc, have you come back already? The punishment of those maraku wolfmen who dare to challenge us has not ended yet! Don't even think about coming back here until you have<font color="LEVEL"> forty</font> werewolf heads!
+Young Orc, have you come back already? The punishment of those maraku wolfmen who dare to challenge us has not ended yet! Don't even think about coming back here until you have <font color="LEVEL">forty</font> werewolf heads!
 </body></html>

+ 0 - 0
L2J_DataPack_BETA/dist/game/data/scripts/quests/274_AgainstWolfMen/30569-05.htm → L2J_DataPack_BETA/dist/game/data/scripts/quests/Q00274_SkirmishWithTheWerewolves/30569-06.html


+ 1 - 1
L2J_DataPack_BETA/dist/game/data/scripts/quests/274_AgainstWolfMen/30569-06.htm → L2J_DataPack_BETA/dist/game/data/scripts/quests/Q00274_SkirmishWithTheWerewolves/30569-07.html

@@ -1,5 +1,5 @@
 <html><body>Prefect Brukurse:<br>
 Tejakar Oroka! Well done indeed, my young Orc! The crude item in your hand is a totem worshipped by the wolfmen! That is a great war trophy to commemorate this battle. But if you are not interested in trophies, you can sell it to the merchants. I heard some brothers will pay a fortune to get those trophies, maybe to show off their valor!<br>
 The severed heads of the werewolves that you have brought back will be skewered on spears and placed outside the village. We will show the world the consequences of daring to challenge our race!<br>
-But the maraku wolfmen will not retreat so easily! This is not the end of the war against them. You should take a short rest and restore your energy! However, keep your weapons greased and tighten the laces on your armor to remain always prepared to fight!<br>
+But the maraku wolfmen will not retreat so easily! This is not the end of the war against them. You should take a short rest and restore your energy! However, keep your weapons greased and tighten the laces on your armor to remain always prepared to fight!
 </body></html>

+ 6 - 0
L2J_DataPack_BETA/dist/game/data/scripts/quests/Q00274_SkirmishWithTheWerewolves/30569-08.html

@@ -0,0 +1,6 @@
+<html><body>Prefect Brukurse:<br>
+This Immortal Plateau has been the holiest of lands for the Orcs since ancient times! The place where our progenitor -- made by the great Pa'agrio of flame -- took his first steps, is none other than the Immortal Plateau. However, there is a group of fools that refuses to understand that this land belongs to us. These wolfmen call themselves <font color="LEVEL">maraku</font> and challenge us for our land.<br>
+The Flame Lord Kakai sent an envoy to the wolfmen and asked them to leave this land! But they replied to his civil request by returning the envoy's head! We will mercilessly punish those who repay our good will with blood!<br>
+I look at your eyes and I can tell that your blood is boiling with anger already! However, if you wish to fight for the dignity of your race, you must first be acknowledged as an Orc Fighter. <font color="LEVEL">Go on to Praetorian Rukain and test your courage!</font><br>
+(Quest for characters possessing the Necklace of Valor and the Necklace of Courage.)
+</body></html>

+ 147 - 0
L2J_DataPack_BETA/dist/game/data/scripts/quests/Q00274_SkirmishWithTheWerewolves/Q00274_SkirmishWithTheWerewolves.java

@@ -0,0 +1,147 @@
+/*
+ * 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.Q00274_SkirmishWithTheWerewolves;
+
+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;
+
+/**
+ * Skirmish with the Werewolves (274)
+ * @author xban1x
+ */
+public final class Q00274_SkirmishWithTheWerewolves extends Quest
+{
+	// NPC
+	private static final int BRUKURSE = 30569;
+	// Monsters
+	private static final int[] MONSTERS = new int[]
+	{
+		20363, // Maraku Werewolf
+		20364, // Maraku Werewolf Chieftain
+	};
+	// Items
+	private static final int NECKLACE_OF_COURAGE = 1506;
+	private static final int NECKLACE_OF_VALOR = 1507;
+	private static final int WEREWOLF_HEAD = 1477;
+	private static final int WEREWOLF_TOTEM = 1501;
+	// Misc
+	private static final int MIN_LVL = 9;
+	
+	private Q00274_SkirmishWithTheWerewolves(int questId, String name, String descr)
+	{
+		super(questId, name, descr);
+		addStartNpc(BRUKURSE);
+		addTalkId(BRUKURSE);
+		addKillId(MONSTERS);
+		registerQuestItems(WEREWOLF_HEAD, WEREWOLF_TOTEM);
+	}
+	
+	@Override
+	public String onAdvEvent(String event, L2Npc npc, L2PcInstance player)
+	{
+		final QuestState st = player.getQuestState(getName());
+		if ((st != null) && event.equalsIgnoreCase("30569-04.htm"))
+		{
+			st.startQuest();
+			return event;
+		}
+		return null;
+	}
+	
+	@Override
+	public String onKill(L2Npc npc, L2PcInstance killer, boolean isSummon)
+	{
+		final QuestState st = killer.getQuestState(getName());
+		if ((st != null) && st.isCond(1))
+		{
+			st.giveItems(WEREWOLF_HEAD, 1);
+			if (getRandom(100) <= 5)
+			{
+				st.giveItems(WEREWOLF_TOTEM, 1);
+			}
+			if (st.getQuestItemsCount(WEREWOLF_HEAD) >= 40)
+			{
+				st.setCond(2, true);
+			}
+			else
+			{
+				st.playSound(QuestSound.ITEMSOUND_QUEST_ITEMGET);
+			}
+		}
+		return super.onKill(npc, killer, isSummon);
+	}
+	
+	@Override
+	public String onTalk(L2Npc npc, L2PcInstance player)
+	{
+		final QuestState st = player.getQuestState(getName());
+		String htmltext = null;
+		if (st != null)
+		{
+			switch (st.getState())
+			{
+				case State.CREATED:
+				{
+					if (hasAtLeastOneQuestItem(player, NECKLACE_OF_VALOR, NECKLACE_OF_COURAGE))
+					{
+						htmltext = (player.getRace() == Race.Orc) ? (player.getLevel() >= MIN_LVL) ? "30569-03.htm" : "30569-02.html" : "30569-01.html";
+					}
+					else
+					{
+						htmltext = "30569-08.html";
+					}
+					break;
+				}
+				case State.STARTED:
+				{
+					switch (st.getCond())
+					{
+						case 1:
+						{
+							htmltext = "30569-05.html";
+							break;
+						}
+						case 2:
+						{
+							final long heads = st.getQuestItemsCount(WEREWOLF_HEAD);
+							if (heads >= 40)
+							{
+								final long totems = st.getQuestItemsCount(WEREWOLF_TOTEM);
+								st.giveAdena((heads * 30) + (totems * 600) + 2300, true);
+								st.exitQuest(true, true);
+								htmltext = (totems > 0) ? "30569-07.html" : "30569-06.html";
+							}
+						}
+					}
+					break;
+				}
+			}
+		}
+		return htmltext;
+	}
+	
+	public static void main(String[] args)
+	{
+		new Q00274_SkirmishWithTheWerewolves(274, Q00274_SkirmishWithTheWerewolves.class.getSimpleName(), "Skirmish with the Werewolves");
+	}
+}

+ 8 - 0
L2J_DataPack_BETA/dist/game/data/scripts/quests/Q00281_HeadForTheHills/32173-01.htm

@@ -0,0 +1,8 @@
+<html><body>Zerstorer Marcela:<br>
+Since our island was opened to the outside world, we have seen a dramatic increase in the number of goods and people landing at our port.<br>
+In fact, the road connecting it to our village has now become one of the island's major thoroughfares.<br>
+Unfortunately, all the traffic has also attracted monsters from the Hills of Gold; the creatures are coming down to attack caravans and feast on unwary travelers.<br>
+We do not have the manpower to dispatch an armed force to clear the Hills of Gold, but I have been authorized to hire adventurers to help deal with the situation.<br>
+Interested?<br>
+<a action="bypass -h Quest Q00281_HeadForTheHills 32173-03.htm">Say yes.</a>
+</body></html>

+ 1 - 1
L2J_DataPack_BETA/dist/game/data/scripts/quests/281_HeadForTheHills/32173-02.htm → L2J_DataPack_BETA/dist/game/data/scripts/quests/Q00281_HeadForTheHills/32173-02.htm

@@ -1,5 +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>
+I admire your courage, 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
L2J_DataPack_BETA/dist/game/data/scripts/quests/Q00281_HeadForTheHills/32173-03.htm

@@ -0,0 +1,5 @@
+<html><body>Zerstorer Marcela:<br>
+I like your spirit! Very well, go to the Hills of Gold and slay <font color="LEVEL">Green Goblins, Hill Werewolves, Muertos Archers, Mountain Werewolf Chieftains, Muertos Guards and Mountain Fungus</font>. Bring back their <font color="LEVEL">claws</font> as proof.<br>
+We will pay Adena equal to the number of claws you bring, or you can trade a set of <font color="LEVEL">50</font> claws for an item.<br>
+Good hunting!
+</body></html>

+ 3 - 0
L2J_DataPack_BETA/dist/game/data/scripts/quests/Q00281_HeadForTheHills/32173-04.html

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

+ 5 - 0
L2J_DataPack_BETA/dist/game/data/scripts/quests/Q00281_HeadForTheHills/32173-05.html

@@ -0,0 +1,5 @@
+<html><body>Zerstorer Marcela:<br>
+Ah, you have returned! How was the hunting? What have you brought me?<br>
+<a action="bypass -h Quest Q00281_HeadForTheHills 32173-06.html">Exchange monster claws for Adena.</a><br>
+<a action="bypass -h Quest Q00281_HeadForTheHills 32173-11.html">Exchange 50 claws for an item.</a>
+</body></html>

+ 6 - 0
L2J_DataPack_BETA/dist/game/data/scripts/quests/Q00281_HeadForTheHills/32173-06.html

@@ -0,0 +1,6 @@
+<html><body>Zerstorer Marcela:<br>
+Well done! Take this with my thanks.<br>
+There's more work to do -- would you care to continue hunting monsters?<br>
+<a action="bypass -h Quest Q00281_HeadForTheHills 32173-08.html">Say yes.</a><br>
+<a action="bypass -h Quest Q00281_HeadForTheHills 32173-09.html">Say no.</a>
+</body></html>

+ 4 - 0
L2J_DataPack_BETA/dist/game/data/scripts/quests/Q00281_HeadForTheHills/32173-07.html

@@ -0,0 +1,4 @@
+<html><body>Zerstorer Marcela:<br>
+Eh? Remember your mission!<br>
+Go to the <font color="LEVEL">Hills of Gold</font> and hunt <font color="LEVEL">Green Goblins, Mountain Werewolves, Muertos Archers, Mountain Werewolf Chiefs, Muertos Guards and Mountain Fungus</font>. Then collect the monsters' <font color="LEVEL">claws</font> and bring them to me as proof.
+</body></html>

+ 4 - 0
L2J_DataPack_BETA/dist/game/data/scripts/quests/Q00281_HeadForTheHills/32173-08.html

@@ -0,0 +1,4 @@
+<html><body>Zerstorer Marcela:<br>
+Good! I know that this mission is in good hands.<br>
+Return to the <font color="LEVEL">Hills of Gold</font> and hunt <font color="LEVEL">Green Goblins, Mountain Werewolves, Muertos Archers, Mountain Werewolf Chiefs, Muertos Guards and Mountain Fungus</font>. Then collect the monsters' <font color="LEVEL">claws</font> and bring them to me as proof.
+</body></html>

+ 5 - 0
L2J_DataPack_BETA/dist/game/data/scripts/quests/Q00281_HeadForTheHills/32173-09.html

@@ -0,0 +1,5 @@
+<html><body>Zerstorer Marcela:<br>
+Ah, no doubt other duties call you away.<br>
+I understand, though I am sorry to lose you.<br>
+Farewell, and may your sword always strike swiftly and true!
+</body></html>

+ 3 - 0
L2J_DataPack_BETA/dist/game/data/scripts/quests/Q00281_HeadForTheHills/32173-10.html

@@ -0,0 +1,3 @@
+<html><body>Zerstorer Marcela:<br>
+You must have collected at least 50 monster claws in order to exchange them for an item.
+</body></html>

+ 6 - 0
L2J_DataPack_BETA/dist/game/data/scripts/quests/Q00281_HeadForTheHills/32173-11.html

@@ -0,0 +1,6 @@
+<html><body>Zerstorer Marcela:<br>
+Bravely done! Here is the item I promised. I know you will put it to good use...<br>
+There is still much to be done. Are you willing to return to the Hills of Gold and resume your hunting?<br>
+<a action="bypass -h Quest Q00281_HeadForTheHills 32173-08.html">Say yes.</a><br>
+<a action="bypass -h Quest Q00281_HeadForTheHills 32173-09.html">Say no.</a>
+</body></html>

+ 228 - 0
L2J_DataPack_BETA/dist/game/data/scripts/quests/Q00281_HeadForTheHills/Q00281_HeadForTheHills.java

@@ -0,0 +1,228 @@
+/*
+ * 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.Q00281_HeadForTheHills;
+
+import java.util.HashMap;
+import java.util.Map;
+
+import com.l2jserver.gameserver.model.PlayerVariables;
+import com.l2jserver.gameserver.model.actor.L2Npc;
+import com.l2jserver.gameserver.model.actor.instance.L2PcInstance;
+import com.l2jserver.gameserver.model.holders.ItemHolder;
+import com.l2jserver.gameserver.model.quest.Quest;
+import com.l2jserver.gameserver.model.quest.QuestState;
+import com.l2jserver.gameserver.model.quest.State;
+import com.l2jserver.gameserver.network.NpcStringId;
+import com.l2jserver.gameserver.network.serverpackets.ExShowScreenMessage;
+
+/**
+ * Head for the Hills! (281)
+ * @author xban1x
+ */
+public final class Q00281_HeadForTheHills extends Quest
+{
+	// Item
+	private static final int CLAWS = 9796;
+	// NPC
+	private static final int MERCELA = 32173;
+	// Message
+	private static final ExShowScreenMessage MESSAGE = new ExShowScreenMessage(NpcStringId.ACQUISITION_OF_SOULSHOT_FOR_BEGINNERS_COMPLETE_N_GO_FIND_THE_NEWBIE_GUIDE, 2, 5000);
+	// Misc
+	private static final int MIN_LVL = 6;
+	// Monsters
+	private static final Map<Integer, Integer> MONSTERS = new HashMap<>();
+	// Rewards
+	private static final int[] REWARDS = new int[]
+	{
+		115, // Earring of Wisdom
+		876, // Ring of Anguish
+		907, // Necklace of Anguish
+		22, // Leather Shirt
+		428, // Feriotic Tunic
+		1100, // Cotton Tunic
+		29, // Leather Pants
+		463, // Feriotic Stockings
+		1103, // Cotton Stockings
+		736, // Scroll of Escape
+	};
+	private static final ItemHolder SOULSHOTS_NO_GRADE_FOR_ROOKIES = new ItemHolder(5789, 6000);
+	private static final ItemHolder SPIRITSHOTS_NO_GRADE_FOR_ROOKIES = new ItemHolder(5790, 3000);
+	
+	static
+	{
+		MONSTERS.put(22234, 390); // Green Goblin
+		MONSTERS.put(22235, 450); // Mountain Werewolf
+		MONSTERS.put(22236, 650); // Muertos Archer
+		MONSTERS.put(22237, 720); // Mountain Fungus
+		MONSTERS.put(22238, 920); // Mountain Werewolf Chief
+		MONSTERS.put(22239, 990); // Muertos Guard
+	}
+	
+	private Q00281_HeadForTheHills(int questId, String name, String descr)
+	{
+		super(questId, name, descr);
+		addStartNpc(MERCELA);
+		addTalkId(MERCELA);
+		addKillId(MONSTERS.keySet());
+		registerQuestItems(CLAWS);
+	}
+	
+	@Override
+	public String onAdvEvent(String event, L2Npc npc, L2PcInstance player)
+	{
+		final QuestState st = player.getQuestState(getName());
+		String htmltext = null;
+		if (st != null)
+		{
+			switch (event)
+			{
+				case "32173-03.htm":
+				{
+					st.startQuest();
+					htmltext = event;
+					break;
+				}
+				case "32173-06.html":
+				{
+					if (st.hasQuestItems(CLAWS))
+					{
+						final long claws = st.getQuestItemsCount(CLAWS);
+						st.giveAdena(((claws * 23) + (claws >= 10 ? 400 : 0)), true);
+						st.takeItems(CLAWS, -1);
+						giveNewbieReward(player);
+						htmltext = event;
+					}
+					else
+					{
+						htmltext = "32173-07.html";
+					}
+					break;
+				}
+				case "32173-08.html":
+				{
+					htmltext = event;
+					break;
+				}
+				case "32173-09.html":
+				{
+					st.exitQuest(true, true);
+					htmltext = event;
+					break;
+				}
+				case "32173-11.html":
+				{
+					if (st.getQuestItemsCount(CLAWS) >= 50)
+					{
+						if (getRandom(1000) <= 360)
+						{
+							st.giveItems(REWARDS[getRandom(9)], 1);
+						}
+						else
+						{
+							st.giveItems(REWARDS[9], 1);
+						}
+						st.takeItems(CLAWS, 50);
+						giveNewbieReward(player);
+						htmltext = event;
+					}
+					else
+					{
+						htmltext = "32173-10.html";
+					}
+					break;
+				}
+			}
+		}
+		return htmltext;
+	}
+	
+	@Override
+	public String onKill(L2Npc npc, L2PcInstance killer, boolean isSummon)
+	{
+		final QuestState st = killer.getQuestState(getName());
+		if ((st != null) && (getRandom(1000) <= MONSTERS.get(npc.getNpcId())))
+		{
+			st.giveItems(CLAWS, 1);
+			st.playSound(QuestSound.ITEMSOUND_QUEST_ITEMGET);
+		}
+		return super.onKill(npc, killer, isSummon);
+	}
+	
+	@Override
+	public String onTalk(L2Npc npc, L2PcInstance player)
+	{
+		final QuestState st = player.getQuestState(getName());
+		String htmltext = null;
+		if (st != null)
+		{
+			switch (st.getState())
+			{
+				case State.CREATED:
+				{
+					htmltext = (player.getLevel() >= MIN_LVL) ? "32173-01.htm" : "32173-02.html";
+					break;
+				}
+				case State.STARTED:
+				{
+					htmltext = st.hasQuestItems(CLAWS) ? "32173-05.html" : "32173-04.html";
+					break;
+				}
+			}
+		}
+		return htmltext;
+	}
+	
+	/**
+	 * Give basic newbie reward.
+	 * @param player the player to reward
+	 */
+	public static final void giveNewbieReward(L2PcInstance player)
+	{
+		final PlayerVariables vars = player.getVariables();
+		if ((player.getLevel() < 25) && !vars.getBool("NEWBIE_SHOTS", false))
+		{
+			if (player.isMageClass())
+			{
+				giveItems(player, SPIRITSHOTS_NO_GRADE_FOR_ROOKIES);
+				playSound(player, "tutorial_voice_27");
+			}
+			else
+			{
+				giveItems(player, SOULSHOTS_NO_GRADE_FOR_ROOKIES);
+				playSound(player, "tutorial_voice_26");
+			}
+			vars.set("NEWBIE_SHOTS", true);
+		}
+		if (vars.getString("GUIDE_MISSION", null) == null)
+		{
+			vars.set("GUIDE_MISSION", 1000);
+			player.sendPacket(MESSAGE);
+		}
+		else if (((vars.getInteger("GUIDE_MISSION") % 10000) / 1000) != 1)
+		{
+			vars.set("GUIDE_MISSION", vars.getInteger("GUIDE_MISSION") + 1000);
+			player.sendPacket(MESSAGE);
+		}
+	}
+	
+	public static void main(String[] args)
+	{
+		new Q00281_HeadForTheHills(281, Q00281_HeadForTheHills.class.getSimpleName(), "Head for the Hills!");
+	}
+}

+ 0 - 0
L2J_DataPack_BETA/dist/game/data/scripts/quests/293_HiddenVein/30535-00.htm → L2J_DataPack_BETA/dist/game/data/scripts/quests/Q00293_TheHiddenVeins/30535-01.htm


+ 5 - 0
L2J_DataPack_BETA/dist/game/data/scripts/quests/Q00293_TheHiddenVeins/30535-02.htm

@@ -0,0 +1,5 @@
+<html><body>Filaur of the Gray Pillar:<br>
+Have you heard of a metal called <font color="LEVEL">chrysolite</font>? This material is used by the maestros to craft high quality armor and weapons. Until now, the entire supply has been imported from Gracia, but we have just discovered that there are veins of this rare metal not very far from here.<br>
+We're planning to work on developing these new veins soon, and need the help of energetic young Dwarves. I'll ask you for help soon, so be prepared.<br>
+(Quest for Dwarven characters level 6 and above.)
+</body></html>

+ 1 - 1
L2J_DataPack_BETA/dist/game/data/scripts/quests/293_HiddenVein/30535-02.htm → L2J_DataPack_BETA/dist/game/data/scripts/quests/Q00293_TheHiddenVeins/30535-03.htm

@@ -2,5 +2,5 @@
 While I was making an inspection of the Mithril Mine, I was attacked by <font color="LEVEL">Utuku Orcs</font>. Fortunately, my guards defeated the Orcs, but I found out something very interesting...<br>
 Rough ore was found in the pockets of the defeated Orcs, and I assume it is used as currency between Orcs. The guards are all members of the Iron Gate and didn't recognize the ore, but I noticed at once that the ore is <font color="LEVEL">rough chrysolite</font>.<br>
 As you know, chrysolite is used by the maestros to make high quality armor and weapons. Until now, the entire supply has been imported from Gracia, but this incident has provided a new method of acquiring that rare metal. But to take advantage of this opportunity, I need the help of young, energetic Dwarves like you.<br>
-<a action="bypass -h Quest 293_HiddenVein 30535-03.htm">Say you will help</a>
+<a action="bypass -h Quest Q00293_TheHiddenVeins 30535-04.htm">Say you will help</a>
 </body></html>

+ 0 - 0
L2J_DataPack_BETA/dist/game/data/scripts/quests/293_HiddenVein/30535-03.htm → L2J_DataPack_BETA/dist/game/data/scripts/quests/Q00293_TheHiddenVeins/30535-04.htm


+ 2 - 2
L2J_DataPack_BETA/dist/game/data/scripts/quests/293_HiddenVein/30535-04.htm → L2J_DataPack_BETA/dist/game/data/scripts/quests/Q00293_TheHiddenVeins/30535-05.html

@@ -1,6 +1,6 @@
 <html><body>Filaur of the Gray Pillar:<br>
 I am sorry, but if you come back with empty hands I can't reward you, no matter how hard you tried. As I mentioned before, I will reward you based on the amount of <font color="LEVEL">Chrysolite Ore</font> that you collect after defeating <font color="LEVEL">the Utuku Orcs</font>.<br>
 And don't forget ...<font color="LEVEL">If you collect four pieces of a torn Map,</font> you should visit Chichirin in the Maphr Temple. If you ask her for help, she will combine those torn pieces and make a complete Map. I will give you a generous reward once you bring me the completed Maps.<br>
-<a action="bypass -h Quest 293_HiddenVein 30535-06.htm">Say you will quit</a><br>
-<a action="bypass -h Quest 293_HiddenVein 30535-07.htm">Say you will continue</a>
+<a action="bypass -h Quest Q00293_TheHiddenVeins 30535-07.html">Say you will quit</a><br>
+<a action="bypass -h Quest Q00293_TheHiddenVeins 30535-08.html">Say you will continue</a>
 </body></html>

+ 5 - 0
L2J_DataPack_BETA/dist/game/data/scripts/quests/Q00293_TheHiddenVeins/30535-06.html

@@ -0,0 +1,5 @@
+<html><body>Filaur of the Gray Pillar:<br>You've done well, young Dwarf. This ore you have brought may look rough, but once it goes through the trained hands of craftsmen, it becomes a precious metal with a brilliant blue luster. True maestros should be able to find the beauty hidden in plain objects.<br>
+As promised, I will reward you based on the amount of ore you have brought. And, don't forget ... If you collect <font color="LEVEL">four pieces of a torn Map,</font> you should visit Chichirin in the Maphr Temple. If you ask her for help, she will combine those torn pieces and make a complete Map. I will give you a generous reward once you bring me the completed Maps.<br>
+<a action="bypass -h Quest Q00293_TheHiddenVeins 30535-07.html">Say you will quit</a><br>
+<a action="bypass -h Quest Q00293_TheHiddenVeins 30535-08.html">Say you will continue</a>
+</body></html>

+ 0 - 0
L2J_DataPack_BETA/dist/game/data/scripts/quests/293_HiddenVein/30535-06.htm → L2J_DataPack_BETA/dist/game/data/scripts/quests/Q00293_TheHiddenVeins/30535-07.html


+ 0 - 0
L2J_DataPack_BETA/dist/game/data/scripts/quests/293_HiddenVein/30535-07.htm → L2J_DataPack_BETA/dist/game/data/scripts/quests/Q00293_TheHiddenVeins/30535-08.html


+ 7 - 0
L2J_DataPack_BETA/dist/game/data/scripts/quests/Q00293_TheHiddenVeins/30535-09.html

@@ -0,0 +1,7 @@
+<html><body>Filaur of the Gray Pillar:<br>
+Ohh! You have obtained a complete Map! Well done! We can finally find out the location of the hidden chrysolite vein! I will reward you as promised. This should be enough.<br>
+Let me see ... Hmm ... Oh. Stupid Orcs, their Map is too hard to read. But I can still roughly figure out the location. My investigators will have no problem locating the vein.<br>
+As I said before, there are many hidden veins. Continue to find more Maps! I will reward you whenever you bring new Maps, so don't worry about that.<br>
+<a action="bypass -h Quest Q00293_TheHiddenVeins 30535-07.html">Say you will quit.</a><br>
+<a action="bypass -h Quest Q00293_TheHiddenVeins 30535-08.html">Say you will continue.</a>
+</body></html>

+ 7 - 0
L2J_DataPack_BETA/dist/game/data/scripts/quests/Q00293_TheHiddenVeins/30535-10.html

@@ -0,0 +1,7 @@
+<html><body>Filaur of the Gray Pillar:<br>
+Ohh! You have obtained a complete Map! Well done! We finally can find out the location of the hidden chrysolite vein! I will pay you as promised. I will also give you an additional reward for the amount of ore you have brought.<br>
+Let me see ... Hmm ... Oh. Stupid Orcs, their Map is too hard to read. But I can still roughly figure out the location. My investigators will have no problem locating the vein.<br>
+As I said before, there are many hidden veins. Continue to find more Maps! I will reward you whenever you bring new Maps, so don't worry about that.<br>
+<a action="bypass -h Quest Q00293_TheHiddenVeins 30535-07.html">Say you will quit.</a><br>
+<a action="bypass -h Quest Q00293_TheHiddenVeins 30535-08.html">Say you will continue.</a>
+</body></html>

+ 4 - 0
L2J_DataPack_BETA/dist/game/data/scripts/quests/Q00293_TheHiddenVeins/30539-01.html

@@ -0,0 +1,4 @@
+<html><body>Priestess of the Earth Chichirin:<br>
+I heard from Filaur of the Gray Pillar. You are trying to recover some old Maps, right? I used to be an apprentice for the cartography guild before becoming a seer. I helped Master Diana recover the Map that shows the sites of the ancient giants.<br>
+<a action="bypass -h Quest Q00293_TheHiddenVeins 30539-03.html">Ask her to recover the Map</a>
+</body></html>

+ 3 - 0
L2J_DataPack_BETA/dist/game/data/scripts/quests/Q00293_TheHiddenVeins/30539-02.html

@@ -0,0 +1,3 @@
+<html><body>Priestess of the Earth Chichirin:<br>
+I'm sorry, but you don't have enough pieces of the torn Map. Look here. You don't have this part. See, just there? I think I need <font color="LEVEL">four</font> pieces of the torn Map to make a complete Map.
+</body></html>

+ 2 - 2
L2J_DataPack_BETA/dist/game/data/scripts/quests/293_HiddenVein/30539-03.htm → L2J_DataPack_BETA/dist/game/data/scripts/quests/Q00293_TheHiddenVeins/30539-03.html

@@ -1,4 +1,4 @@
-<html><body>Maphr Priestess Chichirin:<br>
+<html><body>Priestess of the Earth Chichirin:<br>
 Let me see ... This part should be on the upper left-hand corner ... This should be under that piece ... If I put this here ...<br>
-There! It is a little loose, but I have managed to create a rough map. I have never seen these characters before. These are neither the giants' nor the Elves' writing. Clumsy lines and bad handwriting ... it seems like a race with lousy craftsmanship made this map ... Perhaps the Humans?
+There! It is a little loose, but I have managed to create a rough Map. I have never seen these characters before. These are neither the giants' nor the Elves' writing. Clumsy lines and bad handwriting ... it seems like a race with lousy craftsmanship made this Map ... Perhaps the Humans?
 </body></html>

+ 180 - 0
L2J_DataPack_BETA/dist/game/data/scripts/quests/Q00293_TheHiddenVeins/Q00293_TheHiddenVeins.java

@@ -0,0 +1,180 @@
+/*
+ * 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.Q00293_TheHiddenVeins;
+
+import quests.Q00281_HeadForTheHills.Q00281_HeadForTheHills;
+
+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;
+
+/**
+ * The Hidden Veins (293)
+ * @author xban1x
+ */
+public final class Q00293_TheHiddenVeins extends Quest
+{
+	// NPCs
+	private static final int FILAUR = 30535;
+	private static final int CHICHIRIN = 30539;
+	// Items
+	private static final int CHRYSOLITE_ORE = 1488;
+	private static final int TORN_MAP_FRAGMENT = 1489;
+	private static final int HIDDEN_ORE_MAP = 1490;
+	// Monsters
+	private static final int[] MONSTERS = new int[]
+	{
+		20446,
+		20447,
+		20448,
+	};
+	// Misc
+	private static final int MIN_LVL = 6;
+	private static final int REQUIRED_TORN_MAP_FRAGMENT = 4;
+	
+	private Q00293_TheHiddenVeins(int questId, String name, String descr)
+	{
+		super(questId, name, descr);
+		addStartNpc(FILAUR);
+		addTalkId(FILAUR, CHICHIRIN);
+		addKillId(MONSTERS);
+		registerQuestItems(CHRYSOLITE_ORE, TORN_MAP_FRAGMENT, HIDDEN_ORE_MAP);
+	}
+	
+	@Override
+	public String onAdvEvent(String event, L2Npc npc, L2PcInstance player)
+	{
+		final QuestState st = player.getQuestState(getName());
+		String htmltext = null;
+		if (st != null)
+		{
+			switch (event)
+			{
+				case "30535-04.htm":
+				{
+					st.startQuest();
+					htmltext = event;
+					break;
+				}
+				case "30535-07.html":
+				{
+					st.exitQuest(true, true);
+					htmltext = event;
+					break;
+				}
+				case "30535-08.html":
+				{
+					htmltext = event;
+					break;
+				}
+				case "30539-03.html":
+				{
+					if (st.getQuestItemsCount(TORN_MAP_FRAGMENT) >= REQUIRED_TORN_MAP_FRAGMENT)
+					{
+						st.giveItems(HIDDEN_ORE_MAP, 1);
+						st.takeItems(TORN_MAP_FRAGMENT, REQUIRED_TORN_MAP_FRAGMENT);
+						htmltext = event;
+					}
+					else
+					{
+						htmltext = "30539-02.html";
+					}
+				}
+			}
+		}
+		return htmltext;
+	}
+	
+	@Override
+	public String onKill(L2Npc npc, L2PcInstance killer, boolean isSummon)
+	{
+		final QuestState st = killer.getQuestState(getName());
+		if (st != null)
+		{
+			final int chance = getRandom(100);
+			if (chance > 50)
+			{
+				st.giveItems(CHRYSOLITE_ORE, 1);
+				st.playSound(QuestSound.ITEMSOUND_QUEST_ITEMGET);
+			}
+			else if (chance < 5)
+			{
+				st.giveItems(TORN_MAP_FRAGMENT, 1);
+				st.playSound(QuestSound.ITEMSOUND_QUEST_ITEMGET);
+			}
+		}
+		return super.onKill(npc, killer, isSummon);
+	}
+	
+	@Override
+	public String onTalk(L2Npc npc, L2PcInstance player)
+	{
+		final QuestState st = player.getQuestState(getName());
+		String htmltext = null;
+		if (st != null)
+		{
+			switch (npc.getNpcId())
+			{
+				case FILAUR:
+				{
+					switch (st.getState())
+					{
+						case State.CREATED:
+						{
+							htmltext = (player.getRace() == Race.Dwarf) ? (player.getLevel() >= MIN_LVL) ? "30535-03.htm" : "30535-02.htm" : "30535-01.htm";
+							break;
+						}
+						case State.STARTED:
+						{
+							if (hasAtLeastOneQuestItem(player, CHRYSOLITE_ORE, HIDDEN_ORE_MAP))
+							{
+								final long ores = st.getQuestItemsCount(CHRYSOLITE_ORE);
+								final long maps = st.getQuestItemsCount(HIDDEN_ORE_MAP);
+								st.giveAdena((ores * 5) + (maps * 500) + (((ores + maps) >= 10) ? 2000 : 0), true);
+								takeItems(player, -1, CHRYSOLITE_ORE, HIDDEN_ORE_MAP);
+								Q00281_HeadForTheHills.giveNewbieReward(player);
+								htmltext = (ores > 0) ? (maps > 0) ? "30535-10.html" : "30535-06.html" : "30535-09.html";
+							}
+							else
+							{
+								htmltext = "30535-05.html";
+							}
+							break;
+						}
+					}
+					break;
+				}
+				case CHICHIRIN:
+				{
+					htmltext = "30539-01.html";
+					break;
+				}
+			}
+		}
+		return htmltext;
+	}
+	
+	public static void main(String[] args)
+	{
+		new Q00293_TheHiddenVeins(293, Q00293_TheHiddenVeins.class.getSimpleName(), "The Hidden Veins");
+	}
+}

+ 6 - 0
L2J_DataPack_BETA/dist/sql/game/updates/20130602update.sql

@@ -0,0 +1,6 @@
+UPDATE character_quests SET name='Q00257_TheGuardIsBusy' WHERE name='257_GuardIsBusy1';
+UPDATE character_quests SET name='Q00260_OrcHunting' WHERE name='260_HuntForOrcs1';
+UPDATE character_quests SET name='Q00265_BondsOfSlavery' WHERE name='265_ChainsOfSlavery';
+UPDATE character_quests SET name='Q00274_SkirmishWithTheWerewolves' WHERE name='274_AgainstWolfMen';
+UPDATE character_quests SET name='Q00281_HeadForTheHills' WHERE name='281_HeadForTheHills';
+UPDATE character_quests SET name='Q00293_TheHiddenVeins' WHERE name='293_HiddenVein';