From 91777c1bfbbe40bafea593b9911182ab87f8fb7f Mon Sep 17 00:00:00 2001
From: Adry_85 <Adrya85@hotmail.it>
Date: Sun, 22 Dec 2013 17:26:22 +0000
Subject: [PATCH] BETA: Retail-like quests in Java. 	* '''Silver Haired
 Shaman''' (366) 	* '''Electrifying Recharge! ''' (367) Patch by:
 Adry_85, jurchiks

---
 L2J_DataPack_BETA/dist/game/data/scripts.cfg  |   4 +-
 .../quests/366_SilverHairedShaman/30111-2.htm |   3 -
 .../quests/366_SilverHairedShaman/30111-3.htm |   5 -
 .../quests/366_SilverHairedShaman/30111-4.htm |   7 -
 .../quests/366_SilverHairedShaman/30111-5.htm |   3 -
 .../quests/366_SilverHairedShaman/__init__.py |  76 -----
 .../367_ElectrifyingRecharge/30673-04.htm     |   5 -
 .../367_ElectrifyingRecharge/30673-06.htm     |   6 -
 .../367_ElectrifyingRecharge/__init__.py      |  99 -------
 .../30111-01.htm}                             |   8 +-
 .../Q00366_SilverHairedShaman/30111-02.htm    |   3 +
 .../30111-03.html}                            |   2 +-
 .../Q00366_SilverHairedShaman/30111-04.html   |   7 +
 .../30111-05.html}                            |   2 +-
 .../Q00366_SilverHairedShaman/30111-06.html   |   3 +
 .../Q00366_SilverHairedShaman/30111-07.html   |   5 +
 .../Q00366_SilverHairedShaman.java            | 143 +++++++++
 .../30673-01.htm                              |   4 +-
 .../30673-02.htm}                             |   2 +-
 .../30673-03.html}                            |   3 +-
 .../Q00367_ElectrifyingRecharge/30673-04.html |   5 +
 .../30673-05.html}                            |   2 +-
 .../30673-06.html}                            |   2 +-
 .../30673-07.html}                            |   2 +-
 .../Q00367_ElectrifyingRecharge/30673-08.html |   5 +
 .../30673-09.html}                            |   2 +-
 .../Q00367_ElectrifyingRecharge.java          | 271 ++++++++++++++++++
 .../dist/sql/game/updates/20131222update.sql  |   2 +
 28 files changed, 461 insertions(+), 220 deletions(-)
 delete mode 100644 L2J_DataPack_BETA/dist/game/data/scripts/quests/366_SilverHairedShaman/30111-2.htm
 delete mode 100644 L2J_DataPack_BETA/dist/game/data/scripts/quests/366_SilverHairedShaman/30111-3.htm
 delete mode 100644 L2J_DataPack_BETA/dist/game/data/scripts/quests/366_SilverHairedShaman/30111-4.htm
 delete mode 100644 L2J_DataPack_BETA/dist/game/data/scripts/quests/366_SilverHairedShaman/30111-5.htm
 delete mode 100644 L2J_DataPack_BETA/dist/game/data/scripts/quests/366_SilverHairedShaman/__init__.py
 delete mode 100644 L2J_DataPack_BETA/dist/game/data/scripts/quests/367_ElectrifyingRecharge/30673-04.htm
 delete mode 100644 L2J_DataPack_BETA/dist/game/data/scripts/quests/367_ElectrifyingRecharge/30673-06.htm
 delete mode 100644 L2J_DataPack_BETA/dist/game/data/scripts/quests/367_ElectrifyingRecharge/__init__.py
 rename L2J_DataPack_BETA/dist/game/data/scripts/quests/{366_SilverHairedShaman/30111-1.htm => Q00366_SilverHairedShaman/30111-01.htm} (57%)
 create mode 100644 L2J_DataPack_BETA/dist/game/data/scripts/quests/Q00366_SilverHairedShaman/30111-02.htm
 rename L2J_DataPack_BETA/dist/game/data/scripts/quests/{366_SilverHairedShaman/30111-0.htm => Q00366_SilverHairedShaman/30111-03.html} (96%)
 create mode 100644 L2J_DataPack_BETA/dist/game/data/scripts/quests/Q00366_SilverHairedShaman/30111-04.html
 rename L2J_DataPack_BETA/dist/game/data/scripts/quests/{366_SilverHairedShaman/30111-6.htm => Q00366_SilverHairedShaman/30111-05.html} (88%)
 create mode 100644 L2J_DataPack_BETA/dist/game/data/scripts/quests/Q00366_SilverHairedShaman/30111-06.html
 create mode 100644 L2J_DataPack_BETA/dist/game/data/scripts/quests/Q00366_SilverHairedShaman/30111-07.html
 create mode 100644 L2J_DataPack_BETA/dist/game/data/scripts/quests/Q00366_SilverHairedShaman/Q00366_SilverHairedShaman.java
 rename L2J_DataPack_BETA/dist/game/data/scripts/quests/{367_ElectrifyingRecharge => Q00367_ElectrifyingRecharge}/30673-01.htm (72%)
 rename L2J_DataPack_BETA/dist/game/data/scripts/quests/{367_ElectrifyingRecharge/30673-03.htm => Q00367_ElectrifyingRecharge/30673-02.htm} (97%)
 rename L2J_DataPack_BETA/dist/game/data/scripts/quests/{367_ElectrifyingRecharge/30673-02.htm => Q00367_ElectrifyingRecharge/30673-03.html} (87%)
 create mode 100644 L2J_DataPack_BETA/dist/game/data/scripts/quests/Q00367_ElectrifyingRecharge/30673-04.html
 rename L2J_DataPack_BETA/dist/game/data/scripts/quests/{367_ElectrifyingRecharge/30673-09.htm => Q00367_ElectrifyingRecharge/30673-05.html} (76%)
 rename L2J_DataPack_BETA/dist/game/data/scripts/quests/{367_ElectrifyingRecharge/30673-08.htm => Q00367_ElectrifyingRecharge/30673-06.html} (82%)
 rename L2J_DataPack_BETA/dist/game/data/scripts/quests/{367_ElectrifyingRecharge/30673-05.htm => Q00367_ElectrifyingRecharge/30673-07.html} (91%)
 create mode 100644 L2J_DataPack_BETA/dist/game/data/scripts/quests/Q00367_ElectrifyingRecharge/30673-08.html
 rename L2J_DataPack_BETA/dist/game/data/scripts/quests/{367_ElectrifyingRecharge/30673-07.htm => Q00367_ElectrifyingRecharge/30673-09.html} (89%)
 create mode 100644 L2J_DataPack_BETA/dist/game/data/scripts/quests/Q00367_ElectrifyingRecharge/Q00367_ElectrifyingRecharge.java
 create mode 100644 L2J_DataPack_BETA/dist/sql/game/updates/20131222update.sql

diff --git a/L2J_DataPack_BETA/dist/game/data/scripts.cfg b/L2J_DataPack_BETA/dist/game/data/scripts.cfg
index a039dac29d..ed73c80db5 100644
--- a/L2J_DataPack_BETA/dist/game/data/scripts.cfg
+++ b/L2J_DataPack_BETA/dist/game/data/scripts.cfg
@@ -503,8 +503,8 @@ quests/Q00362_BardsMandolin/Q00362_BardsMandolin.java
 quests/Q00363_SorrowfulSoundOfFlute/Q00363_SorrowfulSoundOfFlute.java
 quests/Q00364_JovialAccordion/Q00364_JovialAccordion.java
 quests/Q00365_DevilsLegacy/Q00365_DevilsLegacy.java
-quests/366_SilverHairedShaman/__init__.py
-quests/367_ElectrifyingRecharge/__init__.py
+quests/Q00366_SilverHairedShaman/Q00366_SilverHairedShaman.java
+quests/Q00367_ElectrifyingRecharge/Q00367_ElectrifyingRecharge.java
 quests/Q00368_TrespassingIntoTheHolyGround/Q00368_TrespassingIntoTheHolyGround.java
 quests/369_CollectorOfJewels/__init__.py
 quests/370_AWisemanSowsSeeds/__init__.py
diff --git a/L2J_DataPack_BETA/dist/game/data/scripts/quests/366_SilverHairedShaman/30111-2.htm b/L2J_DataPack_BETA/dist/game/data/scripts/quests/366_SilverHairedShaman/30111-2.htm
deleted file mode 100644
index 4939f96bbd..0000000000
--- a/L2J_DataPack_BETA/dist/game/data/scripts/quests/366_SilverHairedShaman/30111-2.htm
+++ /dev/null
@@ -1,3 +0,0 @@
-<html><body>Magister Dieter:<br>
-Wonderful! Please go to<font color="LEVEL"> Devil's Isle</font>, slay<font color="LEVEL"> Sairon, Sairon's doll and Sairon's puppet</font> and bring back<font color="LEVEL"> Sairon's Silver Hair</font>. You will be amply rewarded.
-</body></html>
\ No newline at end of file
diff --git a/L2J_DataPack_BETA/dist/game/data/scripts/quests/366_SilverHairedShaman/30111-3.htm b/L2J_DataPack_BETA/dist/game/data/scripts/quests/366_SilverHairedShaman/30111-3.htm
deleted file mode 100644
index f6333d7ace..0000000000
--- a/L2J_DataPack_BETA/dist/game/data/scripts/quests/366_SilverHairedShaman/30111-3.htm
+++ /dev/null
@@ -1,5 +0,0 @@
-<html><body>Magister Dieter:<br>
-As I said, you must go to<font color="LEVEL"> Devil's Isle</font>, slay<font color="LEVEL"> Sairon, Sairon's doll and Sairon's puppet</font> and bring back<font color="LEVEL"> Sairon's Silver Hair</font>. You will be amply rewarded.<br>
-<a action="bypass -h Quest 366_SilverHairedShaman 30111-6.htm">"I want to quit."</a><br>
-<a action="bypass -h Quest 366_SilverHairedShaman 30111-5.htm">"I will continue working for you."</a>
-</body></html>
\ No newline at end of file
diff --git a/L2J_DataPack_BETA/dist/game/data/scripts/quests/366_SilverHairedShaman/30111-4.htm b/L2J_DataPack_BETA/dist/game/data/scripts/quests/366_SilverHairedShaman/30111-4.htm
deleted file mode 100644
index 0edd463e5d..0000000000
--- a/L2J_DataPack_BETA/dist/game/data/scripts/quests/366_SilverHairedShaman/30111-4.htm
+++ /dev/null
@@ -1,7 +0,0 @@
-<html><body>Magister Dieter:<br>
-You have done well! At last, I can...<br>
-Ah, yes, your pay. Please bring me some more hair! The more the better!<br>
-Please don't tell anyone I'm collecting this stuff...<br>
-<a action="bypass -h Quest 366_SilverHairedShaman 30111-6.htm">"I want to quit."</a><br>
-<a action="bypass -h Quest 366_SilverHairedShaman 30111-5.htm">"I will continue working for you."</a>
-</body></html>
\ No newline at end of file
diff --git a/L2J_DataPack_BETA/dist/game/data/scripts/quests/366_SilverHairedShaman/30111-5.htm b/L2J_DataPack_BETA/dist/game/data/scripts/quests/366_SilverHairedShaman/30111-5.htm
deleted file mode 100644
index ce77cc591b..0000000000
--- a/L2J_DataPack_BETA/dist/game/data/scripts/quests/366_SilverHairedShaman/30111-5.htm
+++ /dev/null
@@ -1,3 +0,0 @@
-<html><body>Magister Dieter:<br>
-Go to<font color="LEVEL"> Devil's Isle</font>, slay<font color="LEVEL"> Sairon, Sairon's doll and Sairon's puppet</font> and bring back their hair.
-</body></html>
\ No newline at end of file
diff --git a/L2J_DataPack_BETA/dist/game/data/scripts/quests/366_SilverHairedShaman/__init__.py b/L2J_DataPack_BETA/dist/game/data/scripts/quests/366_SilverHairedShaman/__init__.py
deleted file mode 100644
index 479839f39b..0000000000
--- a/L2J_DataPack_BETA/dist/game/data/scripts/quests/366_SilverHairedShaman/__init__.py
+++ /dev/null
@@ -1,76 +0,0 @@
-# Silver Haired Shaman - Version 0.1 by DrLecter
-import sys
-from com.l2jserver.gameserver.model.quest import State
-from com.l2jserver.gameserver.model.quest import QuestState
-from com.l2jserver.gameserver.model.quest import Quest as JQuest
-
-qn = "366_SilverHairedShaman"
-
-#NPC
-DIETER=30111
-#Items
-HAIR=5874
-ADENA=57
-#BASE CHANCE FOR DROP
-CHANCE = 55
-
-class Quest (JQuest) :
-
- def __init__(self,id,name,descr):
-     JQuest.__init__(self,id,name,descr)
-     self.questItemIds = [HAIR]
-
- def onEvent (self,event,st) :
-   htmltext = event
-   cond = st.getInt("cond")
-   if event == "30111-2.htm" and cond == 0 :
-     st.set("cond","1")
-     st.setState(State.STARTED)
-     st.playSound("ItemSound.quest_accept")
-   elif event == "30111-6.htm" :
-     st.exitQuest(1)
-     st.playSound("ItemSound.quest_finish")
-   return htmltext
-
- def onTalk (self,npc,player):
-   htmltext = Quest.getNoQuestMsg(player)
-   st = player.getQuestState(qn)
-   if not st : return htmltext
-
-   npcId = npc.getId()
-   id = st.getState()
-   cond=st.getInt("cond")
-   if cond == 0 :
-     if player.getLevel() >= 48 :
-       htmltext = "30111-1.htm"
-     else:
-       htmltext = "30111-0.htm"
-       st.exitQuest(1)
-   else :
-     hair=st.getQuestItemsCount(HAIR)
-     if not hair :
-       htmltext = "30111-3.htm"
-     else :
-       st.giveItems(ADENA,12070+500*hair)
-       st.takeItems(HAIR,-1)
-       htmltext = "30111-4.htm"
-   return htmltext
-
- def onKill(self,npc,player,isPet):
-   partyMember = self.getRandomPartyMemberState(player,State.STARTED)
-   if not partyMember : return
-   st = partyMember.getQuestState(qn)
-   
-   if self.getRandom(100) < CHANCE + ((npc.getId() - 20985) * 2) :
-     st.giveItems(HAIR,1)
-     st.playSound("ItemSound.quest_itemget")
-   return
-
-QUEST       = Quest(366,qn,"Silver Haired Shaman")
-
-QUEST.addStartNpc(DIETER)
-
-QUEST.addTalkId(DIETER)
-
-for mob in range(20986,20989) :
-    QUEST.addKillId(mob)
\ No newline at end of file
diff --git a/L2J_DataPack_BETA/dist/game/data/scripts/quests/367_ElectrifyingRecharge/30673-04.htm b/L2J_DataPack_BETA/dist/game/data/scripts/quests/367_ElectrifyingRecharge/30673-04.htm
deleted file mode 100644
index b2d72ba9b5..0000000000
--- a/L2J_DataPack_BETA/dist/game/data/scripts/quests/367_ElectrifyingRecharge/30673-04.htm
+++ /dev/null
@@ -1,5 +0,0 @@
-<html><body>Researcher Lorain:<br>
-This relic could use a little more exposure to the catherok. It is not yet useful for my research. Please do it again.<br>
-<a action="bypass -h Quest 367_ElectrifyingRecharge 30673-09.htm">"Okay, I'll continue."</a><br>
-<a action="bypass -h Quest 367_ElectrifyingRecharge 30673-08.htm">"I want to quit."</a>
-</body></html>
\ No newline at end of file
diff --git a/L2J_DataPack_BETA/dist/game/data/scripts/quests/367_ElectrifyingRecharge/30673-06.htm b/L2J_DataPack_BETA/dist/game/data/scripts/quests/367_ElectrifyingRecharge/30673-06.htm
deleted file mode 100644
index 4ec1623297..0000000000
--- a/L2J_DataPack_BETA/dist/game/data/scripts/quests/367_ElectrifyingRecharge/30673-06.htm
+++ /dev/null
@@ -1,6 +0,0 @@
-<html><body>Researcher Lorain:<br>
-You've done it! Did you feel that amazing sensation?<br>
-Don't look at me like that... You know you love it!<br>
-<a action="bypass -h Quest 367_ElectrifyingRecharge 30673-07.htm">"I'll do it again!"</a><br>
-<a action="bypass -h Quest 367_ElectrifyingRecharge 30673-08.htm">"I've had enough."</a>
-</body></html>
\ No newline at end of file
diff --git a/L2J_DataPack_BETA/dist/game/data/scripts/quests/367_ElectrifyingRecharge/__init__.py b/L2J_DataPack_BETA/dist/game/data/scripts/quests/367_ElectrifyingRecharge/__init__.py
deleted file mode 100644
index 2d319fa006..0000000000
--- a/L2J_DataPack_BETA/dist/game/data/scripts/quests/367_ElectrifyingRecharge/__init__.py
+++ /dev/null
@@ -1,99 +0,0 @@
-# Electrifying Recharge! - v0.1 by DrLecter
-import sys
-from com.l2jserver.gameserver.datatables import SkillTable
-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 = "367_ElectrifyingRecharge"
-
-#NPC
-LORAIN = 30673
-#MOBS
-CATHEROK=21035
-
-class Quest (JQuest) :
-
- def __init__(self,id,name,descr):
-     JQuest.__init__(self,id,name,descr)
-     self.questItemIds = range(5875,5881)
-
- def onEvent (self,event,st) :
-   htmltext = event
-   cond = st.getInt("cond")
-   lamp = st.getQuestItemsCount(5875)
-   if event == "30673-03.htm" and cond == 0 and not lamp:
-     if st.getPlayer().getLevel() >= 37 :
-        st.set("cond","1")
-        st.setState(State.STARTED)
-        st.playSound("ItemSound.quest_accept")
-        st.giveItems(5875,1)
-     else :
-        htmltext = "30673-02.htm"
-        st.exitQuest(1)
-   elif event == "30673-08.htm" :
-     st.playSound("ItemSound.quest_finish")
-     st.exitQuest(1)
-   return htmltext
-
- def onTalk (self,npc,player):
-   htmltext = Quest.getNoQuestMsg(player)
-   st = player.getQuestState(qn)
-   if not st : return htmltext
-
-   npcId = npc.getId()
-   id = st.getState()
-   cond=st.getInt("cond")
-   relic=st.getQuestItemsCount(5879)
-   broken=st.getQuestItemsCount(5880)
-   if cond == 0 :
-      htmltext = "30673-01.htm"
-   elif cond == 1 :
-     if not relic and not broken :
-        htmltext = "30673-04.htm"
-     elif broken :
-        htmltext = "30673-05.htm"
-        st.takeItems(5880,-1)
-        st.giveItems(5875,1)
-   elif cond == 2 and relic :
-     st.takeItems(5879,-1)
-     st.giveItems(4553+self.getRandom(12),1)
-     st.giveItems(5875,1)
-     st.set("cond","1")
-     htmltext = "30673-06.htm"
-   return htmltext
-
- def onAttack (self,npc,player,damage,isPet, skill):
-   st = player.getQuestState(qn)
-   if not st : return 
-   if st.getState() != State.STARTED : return 
-   
-   chance=self.getRandom(100)
-   if chance < 3 :
-      count = 0
-      for item in range(5875,5879):
-         if st.getQuestItemsCount(item) :
-            count += 1
-            st.takeItems(item,-1)
-      if count:
-         st.giveItems(5880,1)
-   elif chance < 7 :
-      for item in range(5875,5879):
-         if st.getQuestItemsCount(item) :
-            npc.doCast(SkillTable.getInstance().getInfo(4072,4))
-            st.takeItems(item,-1)
-            st.giveItems(item+1,1)
-            if item < 5878 :
-               st.playSound("ItemSound.quest_itemget")
-            elif item == 5878 :
-               st.playSound("ItemSound.quest_middle")
-               st.set("cond","2")
-            break
-   return
-
-QUEST       = Quest(367,qn,"Electrifying Recharge")
-
-QUEST.addStartNpc(LORAIN)
-QUEST.addTalkId(LORAIN)
-
-QUEST.addAttackId(CATHEROK)
\ No newline at end of file
diff --git a/L2J_DataPack_BETA/dist/game/data/scripts/quests/366_SilverHairedShaman/30111-1.htm b/L2J_DataPack_BETA/dist/game/data/scripts/quests/Q00366_SilverHairedShaman/30111-01.htm
similarity index 57%
rename from L2J_DataPack_BETA/dist/game/data/scripts/quests/366_SilverHairedShaman/30111-1.htm
rename to L2J_DataPack_BETA/dist/game/data/scripts/quests/Q00366_SilverHairedShaman/30111-01.htm
index f5fc22e85b..be8a336528 100644
--- a/L2J_DataPack_BETA/dist/game/data/scripts/quests/366_SilverHairedShaman/30111-1.htm
+++ b/L2J_DataPack_BETA/dist/game/data/scripts/quests/Q00366_SilverHairedShaman/30111-01.htm
@@ -1,6 +1,6 @@
 <html><body>Magister Dieter:<br>
-Have you ever been to<font color="LEVEL"> Devil's Isle</font>? It is the home of the devil Zaken. Of course he is not alone. There are all manner of nasty beasts there with him.<br>
-Deep in the interior of the island you will find<font color="LEVEL"> living dolls with silvery hair</font> that seems to be bathed in perpetual moonlight. Their hair intrigues me. I must get my hands on some of that magical stuff! The legendary power of just a few strands... Oh, well. Enough of my ramblings.<br>
+Have you ever been to <font color="LEVEL">Devil's Isle</font>? It is the home of the devil Zaken. Of course he is not alone. There are all manner of nasty beasts there with him.<br>
+Deep in the interior of the island you will find <font color="LEVEL">living dolls with silvery hair</font> that seems to be bathed in perpetual moonlight. Their hair intrigues me. I must get my hands on some of that magical stuff! The legendary power of just a few strands... Oh, well. Enough of my ramblings.<br>
 Will you do it? Will you bring back some of their hair for me? You will be handsomely rewarded!<br>
-<a action="bypass -h Quest 366_SilverHairedShaman 30111-2.htm">"I will collect the dolls' hair for you."</a>
-</body></html>
\ No newline at end of file
+<a action="bypass -h Quest Q00366_SilverHairedShaman 30111-02.htm">"I will collect the dolls' hair for you."</a>
+</body></html>
diff --git a/L2J_DataPack_BETA/dist/game/data/scripts/quests/Q00366_SilverHairedShaman/30111-02.htm b/L2J_DataPack_BETA/dist/game/data/scripts/quests/Q00366_SilverHairedShaman/30111-02.htm
new file mode 100644
index 0000000000..7cc050069b
--- /dev/null
+++ b/L2J_DataPack_BETA/dist/game/data/scripts/quests/Q00366_SilverHairedShaman/30111-02.htm
@@ -0,0 +1,3 @@
+<html><body>Magister Dieter:<br>
+Great news. Now, please go to <font color="LEVEL">Devil's Isle</font> and slay <font color="LEVEL">Sairon, Sairon's Doll and Sairon's Puppet</font>. But don't forget to bring back <font color="LEVEL">Sairon's Silver Hair</font>. You will be amply rewarded.
+</body></html>
diff --git a/L2J_DataPack_BETA/dist/game/data/scripts/quests/366_SilverHairedShaman/30111-0.htm b/L2J_DataPack_BETA/dist/game/data/scripts/quests/Q00366_SilverHairedShaman/30111-03.html
similarity index 96%
rename from L2J_DataPack_BETA/dist/game/data/scripts/quests/366_SilverHairedShaman/30111-0.htm
rename to L2J_DataPack_BETA/dist/game/data/scripts/quests/Q00366_SilverHairedShaman/30111-03.html
index 88ec6cc6a7..b40f534eb8 100644
--- a/L2J_DataPack_BETA/dist/game/data/scripts/quests/366_SilverHairedShaman/30111-0.htm
+++ b/L2J_DataPack_BETA/dist/game/data/scripts/quests/Q00366_SilverHairedShaman/30111-03.html
@@ -2,4 +2,4 @@
 Have you ever been to Devil's Isle? It is the home of the devil Zaken. Of course he is not alone. There are all manner of nasty beasts there with him.<br>
 Deep in the interior of the island you will find living dolls with silvery hair that seems to be bathed in perpetual moonlight. Their hair intrigues me. I must get my hands on some of that magical stuff! But I am afraid you are not yet up to this task. Come back when you think you have become stronger.<br>
 (This quest can only be undertaken by a character of level 48 or higher.)
-</body></html>
\ No newline at end of file
+</body></html>
diff --git a/L2J_DataPack_BETA/dist/game/data/scripts/quests/Q00366_SilverHairedShaman/30111-04.html b/L2J_DataPack_BETA/dist/game/data/scripts/quests/Q00366_SilverHairedShaman/30111-04.html
new file mode 100644
index 0000000000..cc7d7d0848
--- /dev/null
+++ b/L2J_DataPack_BETA/dist/game/data/scripts/quests/Q00366_SilverHairedShaman/30111-04.html
@@ -0,0 +1,7 @@
+<html><body>Magister Dieter:<br>
+You have done well! At last, I can...<br>
+Ah, yes, your pay. Please bring me some more hair! The more the better!<br>
+Please don't tell anyone I'm collecting this stuff...<br>
+<a action="bypass -h Quest Q00366_SilverHairedShaman 30111-05.html">"I want to quit."</a><br>
+<a action="bypass -h Quest Q00366_SilverHairedShaman 30111-06.html">"I will continue working for you."</a>
+</body></html>
diff --git a/L2J_DataPack_BETA/dist/game/data/scripts/quests/366_SilverHairedShaman/30111-6.htm b/L2J_DataPack_BETA/dist/game/data/scripts/quests/Q00366_SilverHairedShaman/30111-05.html
similarity index 88%
rename from L2J_DataPack_BETA/dist/game/data/scripts/quests/366_SilverHairedShaman/30111-6.htm
rename to L2J_DataPack_BETA/dist/game/data/scripts/quests/Q00366_SilverHairedShaman/30111-05.html
index 5eabece68f..eb0789cfc6 100644
--- a/L2J_DataPack_BETA/dist/game/data/scripts/quests/366_SilverHairedShaman/30111-6.htm
+++ b/L2J_DataPack_BETA/dist/game/data/scripts/quests/Q00366_SilverHairedShaman/30111-05.html
@@ -1,3 +1,3 @@
 <html><body>Magister Dieter:<br>
 That's too bad. I was hoping to collect more hair. If you change your mind, please come back and see me.
-</body></html>
\ No newline at end of file
+</body></html>
diff --git a/L2J_DataPack_BETA/dist/game/data/scripts/quests/Q00366_SilverHairedShaman/30111-06.html b/L2J_DataPack_BETA/dist/game/data/scripts/quests/Q00366_SilverHairedShaman/30111-06.html
new file mode 100644
index 0000000000..d02133d51e
--- /dev/null
+++ b/L2J_DataPack_BETA/dist/game/data/scripts/quests/Q00366_SilverHairedShaman/30111-06.html
@@ -0,0 +1,3 @@
+<html><body>Magister Dieter:<br>
+Go to <font color="LEVEL">Devil's Isle</font>, slay <font color="LEVEL">Sairon, Sairon's doll and Sairon's puppet</font> and bring back their hair.
+</body></html>
diff --git a/L2J_DataPack_BETA/dist/game/data/scripts/quests/Q00366_SilverHairedShaman/30111-07.html b/L2J_DataPack_BETA/dist/game/data/scripts/quests/Q00366_SilverHairedShaman/30111-07.html
new file mode 100644
index 0000000000..d782c5e186
--- /dev/null
+++ b/L2J_DataPack_BETA/dist/game/data/scripts/quests/Q00366_SilverHairedShaman/30111-07.html
@@ -0,0 +1,5 @@
+<html><body>Magister Dieter:<br>
+As I said, you must go to <font color="LEVEL">Devil's Isle</font>, slay <font color="LEVEL">Sairon, Sairon's doll and Sairon's puppet</font> and bring back <font color="LEVEL">Sairon's Silver Hair</font>. You will be amply rewarded.<br>
+<a action="bypass -h Quest Q00366_SilverHairedShaman 30111-05.html">"I want to quit."</a><br>
+<a action="bypass -h Quest Q00366_SilverHairedShaman 30111-06.html">"I will continue working for you."</a>
+</body></html>
diff --git a/L2J_DataPack_BETA/dist/game/data/scripts/quests/Q00366_SilverHairedShaman/Q00366_SilverHairedShaman.java b/L2J_DataPack_BETA/dist/game/data/scripts/quests/Q00366_SilverHairedShaman/Q00366_SilverHairedShaman.java
new file mode 100644
index 0000000000..c9851a78f3
--- /dev/null
+++ b/L2J_DataPack_BETA/dist/game/data/scripts/quests/Q00366_SilverHairedShaman/Q00366_SilverHairedShaman.java
@@ -0,0 +1,143 @@
+/*
+ * 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.Q00366_SilverHairedShaman;
+
+import java.util.HashMap;
+import java.util.Map;
+
+import com.l2jserver.gameserver.model.actor.L2Npc;
+import com.l2jserver.gameserver.model.actor.instance.L2PcInstance;
+import com.l2jserver.gameserver.model.quest.Quest;
+import com.l2jserver.gameserver.model.quest.QuestState;
+
+/**
+ * Silver Haired Shaman (366)
+ * @author Adry_85, jurchiks
+ */
+public final class Q00366_SilverHairedShaman extends Quest
+{
+	// NPC
+	private static final int DIETER = 30111;
+	// Item
+	private static final int SAIRONS_SILVER_HAIR = 5874;
+	// Misc
+	private static final int MIN_LEVEL = 48;
+	// Mobs
+	private static final Map<Integer, Integer> MOBS = new HashMap<>();
+	static
+	{
+		MOBS.put(20986, 80); // saitnn
+		MOBS.put(20987, 73); // saitnn_doll
+		MOBS.put(20988, 80); // saitnn_puppet
+	}
+	
+	private Q00366_SilverHairedShaman()
+	{
+		super(366, Q00366_SilverHairedShaman.class.getSimpleName(), "Silver Haired Shaman");
+		addStartNpc(DIETER);
+		addTalkId(DIETER);
+		addKillId(MOBS.keySet());
+		registerQuestItems(SAIRONS_SILVER_HAIR);
+	}
+	
+	@Override
+	public boolean checkPartyMember(L2PcInstance member, L2Npc npc)
+	{
+		final QuestState qs = member.getQuestState(getName());
+		return ((qs != null) && qs.isStarted());
+	}
+	
+	@Override
+	public String onAdvEvent(String event, L2Npc npc, L2PcInstance player)
+	{
+		final QuestState st = getQuestState(player, false);
+		if (st == null)
+		{
+			return null;
+		}
+		
+		String htmltext = null;
+		switch (event)
+		{
+			case "30111-02.htm":
+			{
+				st.startQuest();
+				htmltext = event;
+				break;
+			}
+			case "30111-05.html":
+			{
+				st.exitQuest(true, true);
+				htmltext = event;
+				break;
+			}
+			case "30111-06.html":
+			{
+				htmltext = event;
+				break;
+			}
+		}
+		return htmltext;
+	}
+	
+	@Override
+	public String onKill(L2Npc npc, L2PcInstance player, boolean isSummon)
+	{
+		if (getRandom(100) < MOBS.get(npc.getId()))
+		{
+			L2PcInstance luckyPlayer = getRandomPartyMember(player, npc);
+			if (luckyPlayer != null)
+			{
+				giveItemRandomly(luckyPlayer, npc, SAIRONS_SILVER_HAIR, 1, 0, 1.0, true);
+			}
+		}
+		return super.onKill(npc, player, isSummon);
+	}
+	
+	@Override
+	public String onTalk(L2Npc npc, L2PcInstance player)
+	{
+		final QuestState st = getQuestState(player, true);
+		String htmltext = getNoQuestMsg(player);
+		if (st.isCreated())
+		{
+			htmltext = (player.getLevel() >= MIN_LEVEL) ? "30111-01.htm" : "30111-03.html";
+		}
+		else if (st.isStarted())
+		{
+			if (hasQuestItems(player, SAIRONS_SILVER_HAIR))
+			{
+				final long itemCount = getQuestItemsCount(player, SAIRONS_SILVER_HAIR);
+				giveAdena(player, (itemCount * 500) + 29000, true);
+				takeItems(player, SAIRONS_SILVER_HAIR, -1);
+				htmltext = "30111-04.html";
+			}
+			else
+			{
+				htmltext = "30111-07.html";
+			}
+		}
+		return htmltext;
+	}
+	
+	public static void main(String args[])
+	{
+		new Q00366_SilverHairedShaman();
+	}
+}
diff --git a/L2J_DataPack_BETA/dist/game/data/scripts/quests/367_ElectrifyingRecharge/30673-01.htm b/L2J_DataPack_BETA/dist/game/data/scripts/quests/Q00367_ElectrifyingRecharge/30673-01.htm
similarity index 72%
rename from L2J_DataPack_BETA/dist/game/data/scripts/quests/367_ElectrifyingRecharge/30673-01.htm
rename to L2J_DataPack_BETA/dist/game/data/scripts/quests/Q00367_ElectrifyingRecharge/30673-01.htm
index 37321f25bd..96157243b8 100644
--- a/L2J_DataPack_BETA/dist/game/data/scripts/quests/367_ElectrifyingRecharge/30673-01.htm
+++ b/L2J_DataPack_BETA/dist/game/data/scripts/quests/Q00367_ElectrifyingRecharge/30673-01.htm
@@ -1,4 +1,4 @@
 <html><body>Researcher Lorain:<br>
 By any chance are you headed to the Cruma Tower? I need some help with something. I believe I've discovered the secret source of energy used by the ancient Titans, but I must conduct several more experiments to confirm my findings.<br>
-<a action="bypass -h Quest 367_ElectrifyingRecharge 30673-03.htm">"I'll help."</a>
-</body></html>
\ No newline at end of file
+<a action="bypass -h Quest Q00367_ElectrifyingRecharge 30673-02.htm">"I'll help."</a>
+</body></html>
diff --git a/L2J_DataPack_BETA/dist/game/data/scripts/quests/367_ElectrifyingRecharge/30673-03.htm b/L2J_DataPack_BETA/dist/game/data/scripts/quests/Q00367_ElectrifyingRecharge/30673-02.htm
similarity index 97%
rename from L2J_DataPack_BETA/dist/game/data/scripts/quests/367_ElectrifyingRecharge/30673-03.htm
rename to L2J_DataPack_BETA/dist/game/data/scripts/quests/Q00367_ElectrifyingRecharge/30673-02.htm
index f2af881efb..2bb1ce0881 100644
--- a/L2J_DataPack_BETA/dist/game/data/scripts/quests/367_ElectrifyingRecharge/30673-03.htm
+++ b/L2J_DataPack_BETA/dist/game/data/scripts/quests/Q00367_ElectrifyingRecharge/30673-02.htm
@@ -1,4 +1,4 @@
 <html><body>Researcher Lorain:<br>
 The last time I ventured into the deepest part of the dungeon I encountered a monster they call the catherok. His attack caused my body to start tingling all over, followed by complete paralysis! Luckily, my colleagues saved me from certain death! When I gathered my wits, I noticed that an ancient relic had been activated. It gave off an amazing light... At that moment, it came to me! The sting of the catherok contained a power source that actually activated ancient relics!<br>
 Take this relic and entice a catherok to attack. It will become activated. When it reaches its brightest, bring it back to me. Heed my words, you must never confront the catherok alone.
-</body></html>
\ No newline at end of file
+</body></html>
diff --git a/L2J_DataPack_BETA/dist/game/data/scripts/quests/367_ElectrifyingRecharge/30673-02.htm b/L2J_DataPack_BETA/dist/game/data/scripts/quests/Q00367_ElectrifyingRecharge/30673-03.html
similarity index 87%
rename from L2J_DataPack_BETA/dist/game/data/scripts/quests/367_ElectrifyingRecharge/30673-02.htm
rename to L2J_DataPack_BETA/dist/game/data/scripts/quests/Q00367_ElectrifyingRecharge/30673-03.html
index 0c38515338..8b64c79161 100644
--- a/L2J_DataPack_BETA/dist/game/data/scripts/quests/367_ElectrifyingRecharge/30673-02.htm
+++ b/L2J_DataPack_BETA/dist/game/data/scripts/quests/Q00367_ElectrifyingRecharge/30673-03.html
@@ -1,3 +1,4 @@
 <html><body>Researcher Lorain:<br>
 I can't bring myself to sacrifice your life for the sake of my research. Come back when you're older.<br>
-(This quest may only be undertaken by a character of level 37 or above.)</body></html>
\ No newline at end of file
+(This quest may only be undertaken by a character of level 37 or above.)
+</body></html>
diff --git a/L2J_DataPack_BETA/dist/game/data/scripts/quests/Q00367_ElectrifyingRecharge/30673-04.html b/L2J_DataPack_BETA/dist/game/data/scripts/quests/Q00367_ElectrifyingRecharge/30673-04.html
new file mode 100644
index 0000000000..dc8801970a
--- /dev/null
+++ b/L2J_DataPack_BETA/dist/game/data/scripts/quests/Q00367_ElectrifyingRecharge/30673-04.html
@@ -0,0 +1,5 @@
+<html><body>Researcher Lorain:<br>
+This relic could use a little more exposure to the catherok. It is not yet useful for my research. Please do it again.<br>
+<a action="bypass -h Quest Q00367_ElectrifyingRecharge 30673-05.html">"Okay, I'll continue."</a><br>
+<a action="bypass -h Quest Q00367_ElectrifyingRecharge 30673-06.html">"I want to quit."</a>
+</body></html>
diff --git a/L2J_DataPack_BETA/dist/game/data/scripts/quests/367_ElectrifyingRecharge/30673-09.htm b/L2J_DataPack_BETA/dist/game/data/scripts/quests/Q00367_ElectrifyingRecharge/30673-05.html
similarity index 76%
rename from L2J_DataPack_BETA/dist/game/data/scripts/quests/367_ElectrifyingRecharge/30673-09.htm
rename to L2J_DataPack_BETA/dist/game/data/scripts/quests/Q00367_ElectrifyingRecharge/30673-05.html
index 405d577f53..e563f23b31 100644
--- a/L2J_DataPack_BETA/dist/game/data/scripts/quests/367_ElectrifyingRecharge/30673-09.htm
+++ b/L2J_DataPack_BETA/dist/game/data/scripts/quests/Q00367_ElectrifyingRecharge/30673-05.html
@@ -1,3 +1,3 @@
 <html><body>Researcher Lorain:<br>
 Keep up the good work.
-</body></html>
\ No newline at end of file
+</body></html>
diff --git a/L2J_DataPack_BETA/dist/game/data/scripts/quests/367_ElectrifyingRecharge/30673-08.htm b/L2J_DataPack_BETA/dist/game/data/scripts/quests/Q00367_ElectrifyingRecharge/30673-06.html
similarity index 82%
rename from L2J_DataPack_BETA/dist/game/data/scripts/quests/367_ElectrifyingRecharge/30673-08.htm
rename to L2J_DataPack_BETA/dist/game/data/scripts/quests/Q00367_ElectrifyingRecharge/30673-06.html
index 08d72c4e9b..f509ad7fa1 100644
--- a/L2J_DataPack_BETA/dist/game/data/scripts/quests/367_ElectrifyingRecharge/30673-08.htm
+++ b/L2J_DataPack_BETA/dist/game/data/scripts/quests/Q00367_ElectrifyingRecharge/30673-06.html
@@ -1,3 +1,3 @@
 <html><body>Researcher Lorain:<br>
 What a bummer! I thought you were an adventurer!
-</body></html>
\ No newline at end of file
+</body></html>
diff --git a/L2J_DataPack_BETA/dist/game/data/scripts/quests/367_ElectrifyingRecharge/30673-05.htm b/L2J_DataPack_BETA/dist/game/data/scripts/quests/Q00367_ElectrifyingRecharge/30673-07.html
similarity index 91%
rename from L2J_DataPack_BETA/dist/game/data/scripts/quests/367_ElectrifyingRecharge/30673-05.htm
rename to L2J_DataPack_BETA/dist/game/data/scripts/quests/Q00367_ElectrifyingRecharge/30673-07.html
index 5ac55fcb41..bdb21ee10b 100644
--- a/L2J_DataPack_BETA/dist/game/data/scripts/quests/367_ElectrifyingRecharge/30673-05.htm
+++ b/L2J_DataPack_BETA/dist/game/data/scripts/quests/Q00367_ElectrifyingRecharge/30673-07.html
@@ -1,4 +1,4 @@
 <html><body>Researcher Lorain:<br>
 Dammit! You've destroyed the relic!<br>
 If you can't handle a simple task like this, how do you expect to ever be a great adventurer? You have one more chance. Don't screw it up!
-</body></html>
\ No newline at end of file
+</body></html>
diff --git a/L2J_DataPack_BETA/dist/game/data/scripts/quests/Q00367_ElectrifyingRecharge/30673-08.html b/L2J_DataPack_BETA/dist/game/data/scripts/quests/Q00367_ElectrifyingRecharge/30673-08.html
new file mode 100644
index 0000000000..402e85061a
--- /dev/null
+++ b/L2J_DataPack_BETA/dist/game/data/scripts/quests/Q00367_ElectrifyingRecharge/30673-08.html
@@ -0,0 +1,5 @@
+<html><body>Researcher Lorain:<br>
+You've done it! Did you feel that amazing sensation?<br>Don't look at me like that... You know you love it!<br>
+<a action="bypass -h Quest Q00367_ElectrifyingRecharge 30673-09.html">"I'll do it again!"</a><br>
+<a action="bypass -h Quest Q00367_ElectrifyingRecharge 30673-06.html">"I've had enough."</a>
+</body></html>
diff --git a/L2J_DataPack_BETA/dist/game/data/scripts/quests/367_ElectrifyingRecharge/30673-07.htm b/L2J_DataPack_BETA/dist/game/data/scripts/quests/Q00367_ElectrifyingRecharge/30673-09.html
similarity index 89%
rename from L2J_DataPack_BETA/dist/game/data/scripts/quests/367_ElectrifyingRecharge/30673-07.htm
rename to L2J_DataPack_BETA/dist/game/data/scripts/quests/Q00367_ElectrifyingRecharge/30673-09.html
index d3ce094b03..206b71febc 100644
--- a/L2J_DataPack_BETA/dist/game/data/scripts/quests/367_ElectrifyingRecharge/30673-07.htm
+++ b/L2J_DataPack_BETA/dist/game/data/scripts/quests/Q00367_ElectrifyingRecharge/30673-09.html
@@ -1,3 +1,3 @@
 <html><body>Researcher Lorain:<br>
 I knew you couldn't refuse! I'll never forget the first time I felt that sensation... It's addictive, isn't it?
-</body></html>
\ No newline at end of file
+</body></html>
diff --git a/L2J_DataPack_BETA/dist/game/data/scripts/quests/Q00367_ElectrifyingRecharge/Q00367_ElectrifyingRecharge.java b/L2J_DataPack_BETA/dist/game/data/scripts/quests/Q00367_ElectrifyingRecharge/Q00367_ElectrifyingRecharge.java
new file mode 100644
index 0000000000..1b830cface
--- /dev/null
+++ b/L2J_DataPack_BETA/dist/game/data/scripts/quests/Q00367_ElectrifyingRecharge/Q00367_ElectrifyingRecharge.java
@@ -0,0 +1,271 @@
+/*
+ * 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.Q00367_ElectrifyingRecharge;
+
+import com.l2jserver.gameserver.enums.QuestSound;
+import com.l2jserver.gameserver.model.actor.L2Npc;
+import com.l2jserver.gameserver.model.actor.instance.L2PcInstance;
+import com.l2jserver.gameserver.model.holders.SkillHolder;
+import com.l2jserver.gameserver.model.quest.Quest;
+import com.l2jserver.gameserver.model.quest.QuestState;
+import com.l2jserver.gameserver.model.skills.L2Skill;
+
+/**
+ * Electrifying Recharge! (367)
+ * @author Adry_85, jurchiks
+ */
+public final class Q00367_ElectrifyingRecharge extends Quest
+{
+	// NPC
+	private static final int LORAIN = 30673;
+	// Monster
+	private static final int CATHEROK = 21035;
+	// Items
+	private static final int TITAN_LAMP1 = 5875;
+	private static final int TITAN_LAMP2 = 5876;
+	private static final int TITAN_LAMP3 = 5877;
+	private static final int TITAN_LAMP4 = 5878;
+	private static final int TITAN_LAMP5 = 5879;
+	private static final int BROKEN_TITAN_LAMP = 5880;
+	// Misc
+	private static final int MIN_LEVEL = 37;
+	// Skill
+	private static final L2Skill NPC_THUNDER_STORM = new SkillHolder(4072, 4).getSkill();
+	
+	private Q00367_ElectrifyingRecharge()
+	{
+		super(367, Q00367_ElectrifyingRecharge.class.getSimpleName(), "Electrifying Recharge!");
+		addStartNpc(LORAIN);
+		addTalkId(LORAIN);
+		addAttackId(CATHEROK);
+		registerQuestItems(TITAN_LAMP1, TITAN_LAMP2, TITAN_LAMP3, TITAN_LAMP4, TITAN_LAMP5, BROKEN_TITAN_LAMP);
+	}
+	
+	@Override
+	public String onAdvEvent(String event, L2Npc npc, L2PcInstance player)
+	{
+		final QuestState st = getQuestState(player, false);
+		if (st == null)
+		{
+			return null;
+		}
+		
+		String htmltext = null;
+		switch (event)
+		{
+			case "30673-02.htm":
+			{
+				st.startQuest();
+				giveItems(player, TITAN_LAMP1, 1);
+				htmltext = event;
+				break;
+			}
+			case "30673-05.html":
+			{
+				htmltext = event;
+				break;
+			}
+			case "30673-06.html":
+			{
+				st.exitQuest(true, true);
+				htmltext = event;
+				break;
+			}
+		}
+		return htmltext;
+	}
+	
+	@Override
+	public String onAttack(L2Npc npc, L2PcInstance attacker, int damage, boolean isSummon)
+	{
+		if (npc.isScriptValue(367))
+		{
+			return super.onAttack(npc, attacker, damage, isSummon);
+		}
+		
+		QuestState qs = attacker.getQuestState(getName());
+		if ((qs == null) || !qs.isStarted())
+		{
+			return super.onAttack(npc, attacker, damage, isSummon);
+		}
+		
+		npc.setScriptValue(367);
+		
+		if ((NPC_THUNDER_STORM != null) //
+			&& (NPC_THUNDER_STORM.getMpConsume() < npc.getCurrentMp()) // has enough MP
+			&& (NPC_THUNDER_STORM.getHpConsume() < npc.getCurrentHp()) // has enough HP
+			&& (npc.getSkillRemainingReuseTime(NPC_THUNDER_STORM.getReuseHashCode()) <= 0)) // no reuse delay
+		{
+			npc.doCast(NPC_THUNDER_STORM, attacker, null);
+		}
+		
+		final L2PcInstance luckyPlayer = getRandomPartyMember(attacker, npc);
+		if (luckyPlayer == null)
+		{
+			return super.onAttack(npc, attacker, damage, isSummon);
+		}
+		qs = luckyPlayer.getQuestState(getName());
+		
+		if ((qs != null) && qs.isStarted() && !hasQuestItems(luckyPlayer, TITAN_LAMP5))
+		{
+			final int random = getRandom(37);
+			if (random == 0)
+			{
+				if (hasQuestItems(luckyPlayer, TITAN_LAMP1))
+				{
+					giveItems(luckyPlayer, TITAN_LAMP2, 1);
+					takeItems(luckyPlayer, TITAN_LAMP1, -1);
+					playSound(luckyPlayer, QuestSound.ITEMSOUND_QUEST_MIDDLE);
+				}
+				else if (hasQuestItems(luckyPlayer, TITAN_LAMP2))
+				{
+					giveItems(luckyPlayer, TITAN_LAMP3, 1);
+					takeItems(luckyPlayer, TITAN_LAMP2, -1);
+					playSound(luckyPlayer, QuestSound.ITEMSOUND_QUEST_MIDDLE);
+				}
+				else if (hasQuestItems(luckyPlayer, TITAN_LAMP3))
+				{
+					giveItems(luckyPlayer, TITAN_LAMP4, 1);
+					takeItems(luckyPlayer, TITAN_LAMP3, -1);
+					playSound(luckyPlayer, QuestSound.ITEMSOUND_QUEST_MIDDLE);
+				}
+				else if (hasQuestItems(luckyPlayer, TITAN_LAMP4))
+				{
+					giveItems(luckyPlayer, TITAN_LAMP5, 1);
+					takeItems(luckyPlayer, TITAN_LAMP4, -1);
+					luckyPlayer.getQuestState(getName()).setCond(2);
+					playSound(luckyPlayer, QuestSound.ITEMSOUND_QUEST_MIDDLE);
+				}
+			}
+			else if ((random == 1) && !hasQuestItems(luckyPlayer, BROKEN_TITAN_LAMP))
+			{
+				giveItems(luckyPlayer, BROKEN_TITAN_LAMP, 1);
+				takeItems(luckyPlayer, -1, TITAN_LAMP1, TITAN_LAMP2, TITAN_LAMP3, TITAN_LAMP4);
+				playSound(luckyPlayer, QuestSound.ITEMSOUND_QUEST_ITEMGET);
+			}
+		}
+		return super.onAttack(npc, attacker, damage, isSummon);
+	}
+	
+	@Override
+	public String onTalk(L2Npc npc, L2PcInstance player)
+	{
+		final QuestState st = getQuestState(player, true);
+		String htmltext = getNoQuestMsg(player);
+		if (st.isCreated())
+		{
+			htmltext = (player.getLevel() >= MIN_LEVEL) ? "30673-01.htm" : "30673-03.html";
+		}
+		else if (st.isStarted())
+		{
+			if (!hasAtLeastOneQuestItem(player, TITAN_LAMP5, BROKEN_TITAN_LAMP))
+			{
+				htmltext = "30673-04.html";
+			}
+			else if (hasQuestItems(player, BROKEN_TITAN_LAMP))
+			{
+				giveItems(player, TITAN_LAMP1, 1);
+				takeItems(player, BROKEN_TITAN_LAMP, -1);
+				htmltext = "30673-07.html";
+			}
+			else if (hasQuestItems(player, TITAN_LAMP5))
+			{
+				final int itemId;
+				switch (getRandom(14))
+				{
+					case 0:
+					{
+						itemId = 4553; // Greater Dye of STR <Str+1 Con-1>
+						break;
+					}
+					case 1:
+					{
+						itemId = 4554; // Greater Dye of STR <Str+1 Dex-1>
+						break;
+					}
+					case 2:
+					{
+						itemId = 4555; // Greater Dye of CON <Con+1 Str-1>
+						break;
+					}
+					case 3:
+					{
+						itemId = 4556; // Greater Dye of CON <Con+1 Dex-1>
+						break;
+					}
+					case 4:
+					{
+						itemId = 4557; // Greater Dye of DEX <Dex+1 Str-1>
+						break;
+					}
+					case 5:
+					{
+						itemId = 4558; // Greater Dye of DEX <Dex+1 Con-1>
+						break;
+					}
+					case 6:
+					{
+						itemId = 4559; // Greater Dye of INT <Int+1 Men-1>
+						break;
+					}
+					case 7:
+					{
+						itemId = 4560; // Greater Dye of INT <Int+1 Wit-1>
+						break;
+					}
+					case 8:
+					{
+						itemId = 4561; // Greater Dye of MEN <Men+1 Int-1>
+						break;
+					}
+					case 9:
+					{
+						itemId = 4562; // Greater Dye of MEN <Men+1 Wit-1>
+						break;
+					}
+					case 10:
+					{
+						itemId = 4563; // Greater Dye of WIT <Wit+1 Int-1>
+						break;
+					}
+					case 11:
+					{
+						itemId = 4564; // Greater Dye of WIT <Wit+1 Men-1>
+						break;
+					}
+					default:
+					{
+						itemId = 4445; // Dye of STR <Str+1 Con-3>
+						break;
+					}
+				}
+				rewardItems(player, itemId, 1);
+				takeItems(player, TITAN_LAMP5, -1);
+				giveItems(player, TITAN_LAMP1, 1);
+				htmltext = "30673-08.html";
+			}
+		}
+		return htmltext;
+	}
+	
+	public static void main(String args[])
+	{
+		new Q00367_ElectrifyingRecharge();
+	}
+}
diff --git a/L2J_DataPack_BETA/dist/sql/game/updates/20131222update.sql b/L2J_DataPack_BETA/dist/sql/game/updates/20131222update.sql
new file mode 100644
index 0000000000..ea0d11a76b
--- /dev/null
+++ b/L2J_DataPack_BETA/dist/sql/game/updates/20131222update.sql
@@ -0,0 +1,2 @@
+UPDATE character_quests SET name='Q00366_SilverHairedShaman' WHERE name='366_SilverHairedShaman';
+UPDATE character_quests SET name='Q00367_ElectrifyingRecharge' WHERE name='367_ElectrifyingRecharge';
\ No newline at end of file
-- 
GitLab