فهرست منبع

Quest Proof of Clan Alliance (501) in Java.

Zoey76 10 سال پیش
والد
کامیت
989a0f064e
74فایلهای تغییر یافته به همراه763 افزوده شده و 423 حذف شده
  1. 0 1
      L2J_DataPack/dist/game/data/scripts.cfg
  2. 0 2
      L2J_DataPack/dist/game/data/scripts/quests/501_ProofOfClanAlliance/30756-03.htm
  3. 0 3
      L2J_DataPack/dist/game/data/scripts/quests/501_ProofOfClanAlliance/30756-04.htm
  4. 0 4
      L2J_DataPack/dist/game/data/scripts/quests/501_ProofOfClanAlliance/30756-06.htm
  5. 0 2
      L2J_DataPack/dist/game/data/scripts/quests/501_ProofOfClanAlliance/30756-07.htm
  6. 0 4
      L2J_DataPack/dist/game/data/scripts/quests/501_ProofOfClanAlliance/30757-01.htm
  7. 0 2
      L2J_DataPack/dist/game/data/scripts/quests/501_ProofOfClanAlliance/30757-02.htm
  8. 0 2
      L2J_DataPack/dist/game/data/scripts/quests/501_ProofOfClanAlliance/30757-03.htm
  9. 0 2
      L2J_DataPack/dist/game/data/scripts/quests/501_ProofOfClanAlliance/30757-04.htm
  10. 0 2
      L2J_DataPack/dist/game/data/scripts/quests/501_ProofOfClanAlliance/30757-05.htm
  11. 0 2
      L2J_DataPack/dist/game/data/scripts/quests/501_ProofOfClanAlliance/30757-07.htm
  12. 0 2
      L2J_DataPack/dist/game/data/scripts/quests/501_ProofOfClanAlliance/30757-08.htm
  13. 0 3
      L2J_DataPack/dist/game/data/scripts/quests/501_ProofOfClanAlliance/30758-01.htm
  14. 0 4
      L2J_DataPack/dist/game/data/scripts/quests/501_ProofOfClanAlliance/30758-02.htm
  15. 0 2
      L2J_DataPack/dist/game/data/scripts/quests/501_ProofOfClanAlliance/30758-03.htm
  16. 0 2
      L2J_DataPack/dist/game/data/scripts/quests/501_ProofOfClanAlliance/30758-04.htm
  17. 0 1
      L2J_DataPack/dist/game/data/scripts/quests/501_ProofOfClanAlliance/30758-05.htm
  18. 0 3
      L2J_DataPack/dist/game/data/scripts/quests/501_ProofOfClanAlliance/30758-06.htm
  19. 0 3
      L2J_DataPack/dist/game/data/scripts/quests/501_ProofOfClanAlliance/30758-08.htm
  20. 0 2
      L2J_DataPack/dist/game/data/scripts/quests/501_ProofOfClanAlliance/30758-10.htm
  21. 0 3
      L2J_DataPack/dist/game/data/scripts/quests/501_ProofOfClanAlliance/30759-01.htm
  22. 0 4
      L2J_DataPack/dist/game/data/scripts/quests/501_ProofOfClanAlliance/30759-02.htm
  23. 0 2
      L2J_DataPack/dist/game/data/scripts/quests/501_ProofOfClanAlliance/30759-04.htm
  24. 0 2
      L2J_DataPack/dist/game/data/scripts/quests/501_ProofOfClanAlliance/30759-05.htm
  25. 0 4
      L2J_DataPack/dist/game/data/scripts/quests/501_ProofOfClanAlliance/30759-06.htm
  26. 0 2
      L2J_DataPack/dist/game/data/scripts/quests/501_ProofOfClanAlliance/30759-07.htm
  27. 0 2
      L2J_DataPack/dist/game/data/scripts/quests/501_ProofOfClanAlliance/30759-08.htm
  28. 0 2
      L2J_DataPack/dist/game/data/scripts/quests/501_ProofOfClanAlliance/30759-10.htm
  29. 0 2
      L2J_DataPack/dist/game/data/scripts/quests/501_ProofOfClanAlliance/30759-12.htm
  30. 0 339
      L2J_DataPack/dist/game/data/scripts/quests/501_ProofOfClanAlliance/__init__.py
  31. 3 1
      L2J_DataPack/dist/game/data/scripts/quests/Q00501_ProofOfClanAlliance/30756-01.html
  32. 3 1
      L2J_DataPack/dist/game/data/scripts/quests/Q00501_ProofOfClanAlliance/30756-02.html
  33. 3 0
      L2J_DataPack/dist/game/data/scripts/quests/Q00501_ProofOfClanAlliance/30756-03.html
  34. 4 0
      L2J_DataPack/dist/game/data/scripts/quests/Q00501_ProofOfClanAlliance/30756-04.html
  35. 4 1
      L2J_DataPack/dist/game/data/scripts/quests/Q00501_ProofOfClanAlliance/30756-05.html
  36. 6 0
      L2J_DataPack/dist/game/data/scripts/quests/Q00501_ProofOfClanAlliance/30756-06.html
  37. 3 0
      L2J_DataPack/dist/game/data/scripts/quests/Q00501_ProofOfClanAlliance/30756-07.html
  38. 2 1
      L2J_DataPack/dist/game/data/scripts/quests/Q00501_ProofOfClanAlliance/30756-08.html
  39. 2 1
      L2J_DataPack/dist/game/data/scripts/quests/Q00501_ProofOfClanAlliance/30756-09.html
  40. 2 1
      L2J_DataPack/dist/game/data/scripts/quests/Q00501_ProofOfClanAlliance/30756-10.html
  41. 7 0
      L2J_DataPack/dist/game/data/scripts/quests/Q00501_ProofOfClanAlliance/30757-01.html
  42. 3 0
      L2J_DataPack/dist/game/data/scripts/quests/Q00501_ProofOfClanAlliance/30757-01a.html
  43. 3 0
      L2J_DataPack/dist/game/data/scripts/quests/Q00501_ProofOfClanAlliance/30757-01b.html
  44. 4 0
      L2J_DataPack/dist/game/data/scripts/quests/Q00501_ProofOfClanAlliance/30757-02.html
  45. 3 0
      L2J_DataPack/dist/game/data/scripts/quests/Q00501_ProofOfClanAlliance/30757-03.html
  46. 2 1
      L2J_DataPack/dist/game/data/scripts/quests/Q00501_ProofOfClanAlliance/30757-04.html
  47. 3 0
      L2J_DataPack/dist/game/data/scripts/quests/Q00501_ProofOfClanAlliance/30757-05.html
  48. 3 0
      L2J_DataPack/dist/game/data/scripts/quests/Q00501_ProofOfClanAlliance/30757-06.html
  49. 5 0
      L2J_DataPack/dist/game/data/scripts/quests/Q00501_ProofOfClanAlliance/30758-01.html
  50. 8 0
      L2J_DataPack/dist/game/data/scripts/quests/Q00501_ProofOfClanAlliance/30758-02.html
  51. 5 0
      L2J_DataPack/dist/game/data/scripts/quests/Q00501_ProofOfClanAlliance/30758-03.html
  52. 3 0
      L2J_DataPack/dist/game/data/scripts/quests/Q00501_ProofOfClanAlliance/30758-03a.html
  53. 3 0
      L2J_DataPack/dist/game/data/scripts/quests/Q00501_ProofOfClanAlliance/30758-04.html
  54. 6 0
      L2J_DataPack/dist/game/data/scripts/quests/Q00501_ProofOfClanAlliance/30758-05.html
  55. 2 1
      L2J_DataPack/dist/game/data/scripts/quests/Q00501_ProofOfClanAlliance/30758-06.html
  56. 4 0
      L2J_DataPack/dist/game/data/scripts/quests/Q00501_ProofOfClanAlliance/30758-07.html
  57. 2 1
      L2J_DataPack/dist/game/data/scripts/quests/Q00501_ProofOfClanAlliance/30758-08.html
  58. 3 0
      L2J_DataPack/dist/game/data/scripts/quests/Q00501_ProofOfClanAlliance/30758-09.html
  59. 6 0
      L2J_DataPack/dist/game/data/scripts/quests/Q00501_ProofOfClanAlliance/30759-01.html
  60. 5 0
      L2J_DataPack/dist/game/data/scripts/quests/Q00501_ProofOfClanAlliance/30759-02.html
  61. 3 1
      L2J_DataPack/dist/game/data/scripts/quests/Q00501_ProofOfClanAlliance/30759-03.html
  62. 3 0
      L2J_DataPack/dist/game/data/scripts/quests/Q00501_ProofOfClanAlliance/30759-04.html
  63. 4 0
      L2J_DataPack/dist/game/data/scripts/quests/Q00501_ProofOfClanAlliance/30759-05.html
  64. 7 0
      L2J_DataPack/dist/game/data/scripts/quests/Q00501_ProofOfClanAlliance/30759-06.html
  65. 7 0
      L2J_DataPack/dist/game/data/scripts/quests/Q00501_ProofOfClanAlliance/30759-07.html
  66. 3 0
      L2J_DataPack/dist/game/data/scripts/quests/Q00501_ProofOfClanAlliance/30759-08.html
  67. 2 1
      L2J_DataPack/dist/game/data/scripts/quests/Q00501_ProofOfClanAlliance/30759-09.html
  68. 4 0
      L2J_DataPack/dist/game/data/scripts/quests/Q00501_ProofOfClanAlliance/30759-10.html
  69. 3 1
      L2J_DataPack/dist/game/data/scripts/quests/Q00501_ProofOfClanAlliance/30759-11.html
  70. 3 0
      L2J_DataPack/dist/game/data/scripts/quests/Q00501_ProofOfClanAlliance/30759-12.html
  71. 608 0
      L2J_DataPack/dist/game/data/scripts/quests/Q00501_ProofOfClanAlliance/Q00501_ProofOfClanAlliance.java
  72. 2 0
      L2J_DataPack/dist/game/data/scripts/quests/QuestMasterHandler.java
  73. 1 1
      L2J_DataPack/dist/game/data/stats/skills/04000-04099.xml
  74. 1 0
      L2J_DataPack/dist/sql/game/updates/20141115update.sql

+ 0 - 1
L2J_DataPack/dist/game/data/scripts.cfg

@@ -255,7 +255,6 @@ quests/386_StolenDignity/__init__.py
 quests/419_GetAPet/__init__.py
 quests/422_RepentYourSins/__init__.py
 quests/426_FishingShot/__init__.py
-quests/501_ProofOfClanAlliance/__init__.py
 quests/503_PursuitClanAmbition/__init__.py
 quests/604_DaimontheWhiteEyedPart2/__init__.py
 quests/620_FourGoblets/__init__.py

+ 0 - 2
L2J_DataPack/dist/game/data/scripts/quests/501_ProofOfClanAlliance/30756-03.htm

@@ -1,2 +0,0 @@
-<html><body>Sir Kristof Rodemai:<br>
-Ah, the Proof of Alliance! Good work! However you mustn't forget that this is only your first step towards changing the world. We still have many daunting tasks ahead of us.</body></html>

+ 0 - 3
L2J_DataPack/dist/game/data/scripts/quests/501_ProofOfClanAlliance/30756-04.htm

@@ -1,3 +0,0 @@
-<html><body>Sir Kristof Rodemai:<br>
-Will you join me in creating a new world order?<br>
-<a action="bypass -h Quest 501_ProofOfClanAlliance 30756-06.htm">"I will join you."</a></body></html>

+ 0 - 4
L2J_DataPack/dist/game/data/scripts/quests/501_ProofOfClanAlliance/30756-06.htm

@@ -1,4 +0,0 @@
-<html><body>Sir Kristof Rodemai:<br>
-I can see that you have what it takes to be a great leader, but to earn the respect of your peers your clan must demonstrate its ability. <br>How about this?  There is a witch named Kalis who lives near the Ivory Tower.  She administers a test that determines one's heroism. Those who have passed this test are widely regarded as true heroes. If your clan passes the test, there will be no doubt of your abilities.  What do you think?  Will you and your clan take the test?<br>
-<a action="bypass -h Quest 501_ProofOfClanAlliance 30756-07.htm">"We shall take the test!"</a><br>
-<a action="bypass -h Quest 501_ProofOfClanAlliance 30756-08.htm">"We will not take the test."</a></body></html>

+ 0 - 2
L2J_DataPack/dist/game/data/scripts/quests/501_ProofOfClanAlliance/30756-07.htm

@@ -1,2 +0,0 @@
-<html><body>Sir Kristof Rodemai:<br>
-Your courage is impressive. Good luck on the test.</body></html>

+ 0 - 4
L2J_DataPack/dist/game/data/scripts/quests/501_ProofOfClanAlliance/30757-01.htm

@@ -1,4 +0,0 @@
-<html><body>Statue of Offering:<br>
-Do you wish to take the test for your clan lord? You should consider your answer carefully.   It could cost you your life.<br>Only those with the firmest resolve should step forward and answer my question.<br>Would you die for your clan lord? Now, give me an answer!<br>
-<a action="bypass -h Quest 501_ProofOfClanAlliance 30757-05.htm">"I will sacrifice my life to prove loyalty to my clan lord."</a><br>
-<a action="bypass -h Quest 501_ProofOfClanAlliance 30757-07.htm">Quit the test</a></body></html>

+ 0 - 2
L2J_DataPack/dist/game/data/scripts/quests/501_ProofOfClanAlliance/30757-02.htm

@@ -1,2 +0,0 @@
-<html><body>Statue of Offering:<br>
-A clan lord cannot take this test.</body></html>

+ 0 - 2
L2J_DataPack/dist/game/data/scripts/quests/501_ProofOfClanAlliance/30757-03.htm

@@ -1,2 +0,0 @@
-<html><body>Statue of Offering:<br>
-Haven't you already proven your loyalty?</body></html>

+ 0 - 2
L2J_DataPack/dist/game/data/scripts/quests/501_ProofOfClanAlliance/30757-04.htm

@@ -1,2 +0,0 @@
-<html><body>Statue of Offering:<br>
-You lack even the experience to be be killed by this test! Count your blessings! You will live to die another day.<br>(Only a clan member of level 40 or above can take this test.)</body></html>

+ 0 - 2
L2J_DataPack/dist/game/data/scripts/quests/501_ProofOfClanAlliance/30757-05.htm

@@ -1,2 +0,0 @@
-<html><body>
-Statue of Offering:<br>Death shall be your reward. Now prove your loyalty!</body></html>

+ 0 - 2
L2J_DataPack/dist/game/data/scripts/quests/501_ProofOfClanAlliance/30757-07.htm

@@ -1,2 +0,0 @@
-<html><body>
-Statue of Offering:<br>...</body></html>

+ 0 - 2
L2J_DataPack/dist/game/data/scripts/quests/501_ProofOfClanAlliance/30757-08.htm

@@ -1,2 +0,0 @@
-<html><body>Statue of Offering:<br>
-Does your clan lord truly wish to take the test?</body></html>

+ 0 - 3
L2J_DataPack/dist/game/data/scripts/quests/501_ProofOfClanAlliance/30758-01.htm

@@ -1,3 +0,0 @@
-<html><body>Witch Athrea:<br>
-I cannot give the <font color="LEVEL">Blood of Eva</font> to just anyone who asks for it! My older sister Kalis would be furious!<br>If you wish to obtain the Blood of Eva, you must pass the test I will give you.<br>
-<a action="bypass -h Quest 501_ProofOfClanAlliance 30758-02.htm">"I will take the test."</a></body></html>

+ 0 - 4
L2J_DataPack/dist/game/data/scripts/quests/501_ProofOfClanAlliance/30758-02.htm

@@ -1,4 +0,0 @@
-<html><body>Witch Athrea:<br>
-You seem quick-witted enough. I will explain the test to you.<br>It's very simple. I trust you have drawn lots before?  Think of this as drawing boxes.<br>First I will summon 16 boxes.  Among them, four boxes are enchanted and shout when they are broken.  You must find all the enchanted boxes and break them so that they will shout four times. It is possible to break all the boxes, but there is a time limit. If you cannot break the boxes within the given time, they will all disappear.<br>Shall we start the game?<br>
-<a action="bypass -h Quest 501_ProofOfClanAlliance 30758-03.htm">"Start the game."</a><br>
-<a action="bypass -h Quest 501_ProofOfClanAlliance 30758-05.htm">"I am not ready yet."</a></body></html>

+ 0 - 2
L2J_DataPack/dist/game/data/scripts/quests/501_ProofOfClanAlliance/30758-03.htm

@@ -1,2 +0,0 @@
-<html><body>
-Witch Athrea:<br>Each one of the four enchanted boxes will say <font color="LEVEL">"Bingo!"</font> when broken. Funny, huh?<br>Why are you making a face?<br>Oh well, keep it in mind. <font color="LEVEL">Let's begin!</font></body></html>

+ 0 - 2
L2J_DataPack/dist/game/data/scripts/quests/501_ProofOfClanAlliance/30758-04.htm

@@ -1,2 +0,0 @@
-<html><body>
-Witch Athrea:<br>Are you ready to begin the test? Well, we must wait until those people over there are finished. It shouldn't take long. You would do well to observe them and learn more about the test.</body></html>

+ 0 - 1
L2J_DataPack/dist/game/data/scripts/quests/501_ProofOfClanAlliance/30758-05.htm

@@ -1 +0,0 @@
-<html><body>Witch Athrea:<br>Call upon all your abilities!</body></html>

+ 0 - 3
L2J_DataPack/dist/game/data/scripts/quests/501_ProofOfClanAlliance/30758-06.htm

@@ -1,3 +0,0 @@
-<html><body>Witch Athrea:<br>
-What? No boxes? Utter failure!<br>Well, well, well. I should just throw you out of here, but I'm too soft-hearted for that. You shall have one more chance to take the test, but it will be expensive.<br>These boxes aren't free, you understand? Give me 10,000 adena and I will make the boxes again. Is this agreeable?<br>
-<a action="bypass -h Quest 501_ProofOfClanAlliance 30758-07.htm">"I will pay you 10,000 adena."</a></body></html>

+ 0 - 3
L2J_DataPack/dist/game/data/scripts/quests/501_ProofOfClanAlliance/30758-08.htm

@@ -1,3 +0,0 @@
-<html><body>Witch Athrea:<br>
-Would you care to play the game again?<br>
-<a action="bypass -h Quest 501_ProofOfClanAlliance 30758-03.htm">"I want to play the game again."</a></body></html>

+ 0 - 2
L2J_DataPack/dist/game/data/scripts/quests/501_ProofOfClanAlliance/30758-10.htm

@@ -1,2 +0,0 @@
-<html><body>Witch Athrea:<br>
-Do you really have the time to stand around gabbing like this? Unless you bring me the ingredients for the Antidote soon, your clan leader will surely die.</body></html>

+ 0 - 3
L2J_DataPack/dist/game/data/scripts/quests/501_ProofOfClanAlliance/30759-01.htm

@@ -1,3 +0,0 @@
-<html><body>Witch Kalis:<br>
-Would you choose to be a star shining brightly in the midst of chaos?<br>Behold the graves of those who have fallen attempting to do this...<br>Are you prepared to rest alongside them?<br>
-<a action="bypass -h Quest 501_ProofOfClanAlliance 30759-02.htm">"I want to be a star."</a></body></html>

+ 0 - 4
L2J_DataPack/dist/game/data/scripts/quests/501_ProofOfClanAlliance/30759-02.htm

@@ -1,4 +0,0 @@
-<html><body>Witch Kalis:<br>
-You fool! Do you think that you are immortal? The test begins! Are there any among your clan who would die for you?<br>
-<a action="bypass -h Quest 501_ProofOfClanAlliance 30759-03.htm">"There is one who will."</a><br>
-<a action="bypass -h Quest 501_ProofOfClanAlliance 30759-04.htm">"There are none who will."</a></body></html>

+ 0 - 2
L2J_DataPack/dist/game/data/scripts/quests/501_ProofOfClanAlliance/30759-04.htm

@@ -1,2 +0,0 @@
-<html><body>Witch Kalis:<br>
-Just as I expected. All talk and no action.</body></html>

+ 0 - 2
L2J_DataPack/dist/game/data/scripts/quests/501_ProofOfClanAlliance/30759-05.htm

@@ -1,2 +0,0 @@
-<html><body>Witch Kalis:<br>
-Where is the confidence you so reeked of earlier? No comrades willing to risk their lives, eh?<br>Unless you bring me <font color="LEVEL">three symbols of loyalty</font>, you will never pass the test. In order to obtain the symbols, three of your clan must take an oath of their life at the <font color="LEVEL">table of sacrifice</font> and pledge complete loyalty to you.</body></html>

+ 0 - 4
L2J_DataPack/dist/game/data/scripts/quests/501_ProofOfClanAlliance/30759-06.htm

@@ -1,4 +0,0 @@
-<html><body>Witch Kalis:<br>
-Your comrades must have firm resolve and unfailing loyalty. In these days of the endless pursuit of profit, these are rare and noble qualities.<br>Now, do you trust your clan members? Would you bet your life on them? If so, then drink this poison and ask your clan members to gather the ingredients and bring back the Antidote! Here is a list of the ingredients needed for the Antidote. If your comrades can find and bring back all of the ingredients within one hour your life will be saved.<br>I wonder how hard your clan will try to save your life? Do you care to find out?<br>
-<a action="bypass -h Quest 501_ProofOfClanAlliance 30759-07.htm">Drink the poison</a><br>
-<a action="bypass -h Quest 501_ProofOfClanAlliance 30759-04.htm">Do not drink the poison</a></body></html>

+ 0 - 2
L2J_DataPack/dist/game/data/scripts/quests/501_ProofOfClanAlliance/30759-07.htm

@@ -1,2 +0,0 @@
-<html><body>Witch Kalis:<br>
-Tell me, how does the poison taste? Everything growing dark, is it? That would be death coming for you. I fear that soon we will need to add another grave here... Will your comrades find and bring back all the ingredients in time?<br>Oh, I do hate to see you in such pain. Would you care for some hints? <br>Herb of Vanor can be obtained from <font color="LEVEL">vanor silenos</font>.  Herb of Harit can be obtained from <font color="LEVEL">harit lizardmen</font>. Herb of ol mahum can be obtained from <font color="LEVEL">ol mahums</font>. <font color="LEVEL">The Shamans</font> will have the herbs.<br>In order to obtain the Blood of Eva, you must visit <font color="LEVEL">Witch Athrea</font>. She is my younger sister. Some time ago she left for <font color="LEVEL">Hardin's Academy</font> to meet with Grand Magus Hardin.<br>Remember that <font color="LEVEL">when your clan members bring back all the ingredients, you must gather them up and bring them to me. I will create the Antidote for you.</font></body></html>

+ 0 - 2
L2J_DataPack/dist/game/data/scripts/quests/501_ProofOfClanAlliance/30759-08.htm

@@ -1,2 +0,0 @@
-<html><body>Witch Kalis:<br>
-Ah, all the ingredients of the Antidote! It has been a long time since this has happened.  It is heartening to learn that there are still people like you and your clan with firm resolve and common trust! You are truly the soldiers of the new age! A bright star  illuminating the darkness of this time! Please pardon my previous rudeness amd accept this Antidote and mark.</body></html>

+ 0 - 2
L2J_DataPack/dist/game/data/scripts/quests/501_ProofOfClanAlliance/30759-10.htm

@@ -1,2 +0,0 @@
-<html><body>Witch Kalis:<br>
-Your time among the living grows short. What has become of your comrades? Will they return in time to save your life?<br>Let me remind you again, <font color="LEVEL">when your clan members bring back all the ingredients, you must gather them and bring them to me personally. I will use them to make the Antidote.</font></body></html>

+ 0 - 2
L2J_DataPack/dist/game/data/scripts/quests/501_ProofOfClanAlliance/30759-12.htm

@@ -1,2 +0,0 @@
-<html><body>Witch Kalis:<br>
-The lives of those who do not know their place often end prematurely.  People should always live their lives within the proper boundaries. I don't have time to speak with you. Ask your clan lord to come and see me...</body></html>

+ 0 - 339
L2J_DataPack/dist/game/data/scripts/quests/501_ProofOfClanAlliance/__init__.py

@@ -1,339 +0,0 @@
-# Made by QuestDevs Team: DraX, DrLecter, Rolarga
-# With invaluable support from: [TI]Blue, warrax
-# v0.1.r0 2005.12.05
-# v1.1.r0 2008.03.27: Update/Rewrite by Emperorc
-import sys
-from com.l2jserver.gameserver.datatables import SkillData
-from com.l2jserver.gameserver.network.serverpackets import NpcSay 
-from com.l2jserver.gameserver.network.serverpackets import MagicSkillUse
-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="501_ProofOfClanAlliance"
-
-# debug facility, turn this to 0 to disable
-DEBUG = 0
-
-# Quest Npcs
-SIR_KRISTOF_RODEMAI  = 30756
-STATUE_OF_OFFERING   = 30757
-WITCH_ATHREA         = 30758
-WITCH_KALIS          = 30759
-
-# Quest Items
-HERB_OF_HARIT     = 3832
-HERB_OF_VANOR     = 3833
-HERB_OF_OEL_MAHUM = 3834
-BLOOD_OF_EVA      = 3835
-SYMBOL_OF_LOYALTY = 3837
-PROOF_OF_ALLIANCE = 3874
-VOUCHER_OF_FAITH  = 3873
-ANTIDOTE_RECIPE   = 3872
-POTION_OF_RECOVERY= 3889
-
-#Quest mobs, locs and drop
-CHESTS = range(27173,27178)
-CHEST_LOCS = [
-   [102273,103433,-3512],
-   [102190,103379,-3524],
-   [102107,103325,-3533],
-   [102024,103271,-3500],
-   [102327,103350,-3511],
-   [102244,103296,-3518],
-   [102161,103242,-3529],
-   [102078,103188,-3500],
-   [102381,103267,-3538],
-   [102298,103213,-3532],
-   [102215,103159,-3520],
-   [102132,103105,-3513],
-   [102435,103184,-3515],
-   [102352,103130,-3522],
-   [102269,103076,-3533],
-   [102186,103022,-3541]
-   ]
-
-MOBS={
-    20685 : HERB_OF_VANOR,
-    20644 : HERB_OF_HARIT,
-    20576 : HERB_OF_OEL_MAHUM
-    }
-
-def leader(player) :
-    leaderst = None
-    clan = player.getClan()
-    if clan :
-        leader=clan.getLeader().getPlayerInstance()
-        if leader :
-           leaderst = leader.getQuestState(qn)
-    return leaderst
-
-class Quest (JQuest) :
-
- def __init__(self,id,name,descr) :
-     JQuest.__init__(self,id,name,descr)
-     self.questItemIds = [HERB_OF_VANOR, HERB_OF_HARIT, HERB_OF_OEL_MAHUM, BLOOD_OF_EVA, SYMBOL_OF_LOYALTY, ANTIDOTE_RECIPE, VOUCHER_OF_FAITH, POTION_OF_RECOVERY]
-     self.athrea = self.chests = 0
-
- def onAdvEvent (self,event,npc,player) :
-   if event == "chest_timer" :
-     self.athrea = 0
-     return
-   if player.isClanLeader() : leaderst = st = player.getQuestState(qn)
-   else :
-       # non-leaders doing this quest need both their own quest state and the leader's
-       st = player.getQuestState(qn)
-       if not st: return
-       leaderst = leader(player)
-
-   if not leaderst :
-       if DEBUG :
-           debug = "Event can't find leader"
-           print debug
-           return debug
-       return
-   debug = ""
-   htmltext = event
-   if player.isClanLeader() :
-       if event == "30756-07.htm" :
-           st.playSound("ItemSound.quest_accept")
-           st.set("cond","1")
-           st.setState(State.STARTED)
-           st.set("part","1")
-       elif event == "30759-03.htm" :
-           st.set("part","2")
-           st.set("cond","2")
-           st.set("dead_list"," ")
-       elif event == "30759-07.htm" :
-           st.takeItems(SYMBOL_OF_LOYALTY,1) #Item is not stackable, thus need to do this for each item
-           st.takeItems(SYMBOL_OF_LOYALTY,1)
-           st.takeItems(SYMBOL_OF_LOYALTY,1)
-           st.giveItems(ANTIDOTE_RECIPE,1)
-           st.set("part","3")
-           st.set("cond","3")
-           st.startQuestTimer("poison_timer",3600000)
-           st.addNotifyOfDeath(player)
-           SkillData.getInstance().getSkill(4082,1).applyEffects(npc,player);
-       elif event == "poison_timer" :
-           st.exitQuest(1)
-           if DEBUG :
-               debug = "Times Up! Quest failed!"
-               print debug
-               return debug
-           return
-   elif event == "30757-05.htm" :
-       if player.isClanLeader() : return "Only Clan Members can sacrifice themselves!"
-       if self.getRandom(10) > 5 :
-           htmltext = "30757-06.htm"
-           st.giveItems(SYMBOL_OF_LOYALTY,1)
-           deadlist = leaderst.get("dead_list").split()
-           deadlist.append(player.getName())
-           leaderst.set("dead_list"," ".join(deadlist))
-       else :
-           skill = SkillData.getInstance().getSkill(4083,1)
-           npc.setTarget(player)
-           npc.doCast(skill)
-           self.startQuestTimer(player.getName(),4000,npc,player,0)
-   elif event == player.getName() :
-       if player.isDead() :
-           st.giveItems(SYMBOL_OF_LOYALTY,1)
-           deadlist = leaderst.get("dead_list").split()
-           deadlist.append(player.getName())
-           leaderst.set("dead_list"," ".join(deadlist))
-       elif DEBUG :
-           debug = "player " + player.getName() + " didn't die!"
-           print debug
-           return debug
-       return
-   elif event == "30758-03.htm" :
-       if not self.athrea :
-           self.athrea = 1
-           self.chests = 0
-           leaderst.set("part","4")
-           leaderst.set("chest_wins","0")
-           for x,y,z in CHEST_LOCS :
-               rand = self.getRandom(5)
-               self.addSpawn(27173+rand,x,y,z,0,0,300000)
-               self.startQuestTimer("chest_timer",300000,npc,player,0)
-       else :
-           htmltext = "30758-04.htm"
-   elif event == "30758-07.htm" :
-       if st.getQuestItemsCount(57) >= 10000 and not self.athrea :
-           htmltext = "30758-08.htm"
-           st.takeItems(57,10000)
-   if DEBUG and debug :
-       print debug
-       return debug
-   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()
-   clan = player.getClan()
-   part = st.getInt("part")
-   debug = ""
-   if npcId == SIR_KRISTOF_RODEMAI :
-       if id == State.CREATED :
-           if player.isClanLeader() and clan :
-               level = clan.getLevel()
-               if level <= 2 :
-                   htmltext = "01"
-               elif level >= 4 :
-                   htmltext = "02"
-               elif level == 3 :
-                   if st.getQuestItemsCount(PROOF_OF_ALLIANCE) : #you already have the item, no need to complete the quest!
-                       htmltext = "03"
-                   else :
-                       htmltext = "04"
-           else :
-               htmltext = "05"
-       elif id == State.STARTED :
-           htmltext = "10"
-           if st.getQuestItemsCount(VOUCHER_OF_FAITH) and part == 6 :
-               st.playSound("ItemSound.quest_finish")
-               st.takeItems(VOUCHER_OF_FAITH,1)
-               st.giveItems(PROOF_OF_ALLIANCE,1)
-               st.addExpAndSp(0,120000)
-               st.exitQuest(False)
-               htmltext = "09"
-   elif npcId == WITCH_KALIS :
-       if id == State.CREATED : #not a valid leader (has not started the quest yet) or a clan member
-           leaderst = leader(player)
-           if leaderst :
-               if player.isClanLeader() or leaderst == st : return "You must see Rodemai to start the quest! I cannot help you!"
-               elif leaderst.getState() == State.STARTED :
-                   htmltext = "12"
-               elif DEBUG: debug = "Leader needs to start the quest!"
-           elif DEBUG : debug = "Kalis cannot find leader"
-       elif id == State.STARTED :
-           symbol = st.getQuestItemsCount(SYMBOL_OF_LOYALTY)
-           if part == 1 :#and not symbol :
-               htmltext = "01"
-           elif part == 2 and symbol < 3 :
-               htmltext = "05"
-           elif symbol >= 3 and not player.isAffectedBySkill(4082) :
-               htmltext = "06"
-           elif part == 5 and st.getQuestItemsCount(HERB_OF_HARIT) and st.getQuestItemsCount(HERB_OF_VANOR) and \
-                st.getQuestItemsCount(HERB_OF_OEL_MAHUM) and st.getQuestItemsCount(BLOOD_OF_EVA) and player.isAffectedBySkill(4082):
-               htmltext = "08"
-               st.giveItems(VOUCHER_OF_FAITH,1)
-               st.giveItems(POTION_OF_RECOVERY,1)
-               for item in range(3832,3836) + [ANTIDOTE_RECIPE] :
-                   st.takeItems(item,-1)
-               st.set("part","6")
-               st.set("cond","4")
-               timer = st.getQuestTimer("poison_timer")
-               if timer != None : timer.cancel()
-           elif part == 3 or part == 4 or part == 5 :
-               if not player.isAffectedBySkill(4082) :
-                   htmltext = "09"
-                   st.set("part","1")
-                   st.takeItems(ANTIDOTE_RECIPE,-1)
-               else :
-                   htmltext = "10"
-           elif part == 6 :
-               htmltext = "11"
-           elif DEBUG : debug = "Uhhh....Kalis is confused by player: " + str(player)
-       elif DEBUG : debug = "Leader has already finished the quest!"
-   elif npcId == STATUE_OF_OFFERING :
-       leaderst = leader(player)
-       if leaderst :
-           id = leaderst.getState()
-           if id == State.STARTED :
-               if leaderst.getInt("part") == 2 :
-                   if player.isClanLeader() or leaderst == st :
-                       htmltext = "02"
-                   else :
-                       if player.getLevel() >= 40 :
-                           dlist = leaderst.get("dead_list").split()
-                           if player.getName() not in dlist and len(dlist) < 3:
-                               htmltext = "01"
-                           else :
-                               htmltext = "03"
-                       else :
-                           htmltext = "04"
-               elif DEBUG : debug = "wrong state for sacrifice"
-           else :
-               htmltext = "08"
-               if DEBUG : debug = "Leader must start the quest or has already finished the quest!"
-       elif DEBUG : debug = "Statue can't find leader"
-   elif npcId == WITCH_ATHREA :
-       leaderst = leader(player)
-       if leaderst :
-           id = leaderst.getState()
-           if id == State.STARTED :
-               part = leaderst.getInt("part")
-               if part == 3 and leaderst.getQuestItemsCount(ANTIDOTE_RECIPE) and not leaderst.getQuestItemsCount(BLOOD_OF_EVA) :
-                   htmltext = "01"
-               elif part == 5 :
-                   htmltext = "10"
-               elif part == 4 :
-                   htmltext = "06"
-                   if leaderst.getInt("chest_wins") >= 4 :
-                       htmltext = "09"
-                       st.giveItems(BLOOD_OF_EVA,1)
-                       leaderst.set("part","5")
-               elif DEBUG : debug = "You should go seek help elsewhere! I cannot help you in your current state!"
-           elif DEBUG : debug = "You must have the quest started!"
-       elif DEBUG : debug = "Athrea can't find your leader!"
-   if DEBUG and debug :
-       print debug
-       return debug
-   if htmltext.isdigit() :
-       htmltext = str(npcId) + "-" + htmltext + ".htm"
-   return htmltext
-
- def onKill(self,npc,player,isPet) :
-     leaderst = leader(player)
-     if not leaderst : return
-     if not leaderst.getState() == State.STARTED :
-         if DEBUG :
-             print "onKill says leader needs to start quest"
-             return "Need to start quest!"
-         return
-     part = leaderst.getInt("part")
-     npcId = npc.getId()
-     if npcId in CHESTS and part == 4 :
-         wins = leaderst.getInt("chest_wins")
-         if (self.chests - wins) == 12 or (wins < 4 and not self.getRandom(4)) :
-             wins += 1
-             leaderst.set("chest_wins",str(wins))
-             npc.broadcastPacket(NpcSay(npc.getObjectId(),0,npc.getId(),"###### BINGO! ######"))
-         self.chests += 1
-     elif npcId in MOBS.keys() :
-         st = player.getQuestState(qn)
-         if not st : st = self.newQuestState(player)
-         if st == leaderst : return
-         if part >=3 and part < 6 :
-             if not self.getRandom(10) :
-                 st.giveItems(MOBS[npcId],1)
-                 st.playSound("ItemSound.quest_itemget")
-         elif DEBUG :
-             print "onKill says leader is not correct state"+str(part)
-             return "leader is not correct state"
-     return
-
- # only leaders are registered for onDeath.  Therefore, st should always match that of the leader
- def onDeath(self, npc, pc, st) :
-     if st.getPlayer() == pc :
-         timer1 = st.getQuestTimer("poison_timer")
-         if timer1 != None : timer1.cancel()
-         st.exitQuest(1)
-         if DEBUG :
-             print "leader died, quest failed"
-             return "Leader died, quest failed"
-     return
-
-QUEST = Quest(501,qn,"Proof of Clan Alliance")
-
-QUEST.addStartNpc(SIR_KRISTOF_RODEMAI)
-QUEST.addStartNpc(STATUE_OF_OFFERING)
-
-for i in [SIR_KRISTOF_RODEMAI,STATUE_OF_OFFERING,WITCH_KALIS,WITCH_ATHREA] :
-    QUEST.addTalkId(i)
-
-for i in MOBS.keys() + CHESTS :
-    QUEST.addKillId(i)

+ 3 - 1
L2J_DataPack/dist/game/data/scripts/quests/501_ProofOfClanAlliance/30756-01.htm → L2J_DataPack/dist/game/data/scripts/quests/Q00501_ProofOfClanAlliance/30756-01.html

@@ -1,2 +1,4 @@
 <html><body>Sir Kristof Rodemai:<br>
-What is your opinion on the current state of affairs? The disintegration of royal authority has been disastrous for the kingdom, with chaos and dissent running rampant throughout the land. Now even the evil spirits are acting with impunity. When your clan becomes stronger, you should join with me to change the world! <br>(This quest may only be undertaken by a level 3 clan.)</body></html>
+What is your opinion on the current state of affairs? The disintegration of royal authority has been disastrous for the kingdom, with chaos and dissent running rampant throughout the land. Now even the evil spirits are acting with impunity. When your clan becomes stronger, you should join with me to change the world!<br>
+(This quest may only be undertaken by a level 3 clan.)
+</body></html>

+ 3 - 1
L2J_DataPack/dist/game/data/scripts/quests/501_ProofOfClanAlliance/30756-02.htm → L2J_DataPack/dist/game/data/scripts/quests/Q00501_ProofOfClanAlliance/30756-02.html

@@ -1,2 +1,4 @@
 <html><body>Sir Kristof Rodemai:<br>
-In these difficult times we must call upon a new generation to restore order! All right-thinking young people such as you and your clan must join in this effort if we are to survive. <br>(This quest may only be undertaken by a level 3 clan.)</body></html>
+In these difficult times we must call upon a new generation to restore order! All right-thinking young people such as you and your clan must join in this effort if we are to survive.<br>
+(This quest may only be undertaken by a level 3 clan.)
+</body></html>

+ 3 - 0
L2J_DataPack/dist/game/data/scripts/quests/Q00501_ProofOfClanAlliance/30756-03.html

@@ -0,0 +1,3 @@
+<html><body>Sir Kristof Rodemai:<br>
+Ah, the Alliance Manifesto! Good work! However you mustn't forget that this is only your first step towards changing the world. We still have many daunting tasks ahead of us.
+</body></html>

+ 4 - 0
L2J_DataPack/dist/game/data/scripts/quests/Q00501_ProofOfClanAlliance/30756-04.html

@@ -0,0 +1,4 @@
+<html><body>Sir Kristof Rodemai:<br>
+Will you join me in creating a new world order?<br>
+<a action="bypass -h Quest Q00501_ProofOfClanAlliance 30756-06.html">"I will join you."</a>
+</body></html>

+ 4 - 1
L2J_DataPack/dist/game/data/scripts/quests/501_ProofOfClanAlliance/30756-05.htm → L2J_DataPack/dist/game/data/scripts/quests/Q00501_ProofOfClanAlliance/30756-05.html

@@ -1,2 +1,5 @@
 <html><body>Sir Kristof Rodemai:<br>
-What is your opinion on the current state of affairs? The disintegration of royal authority has been disastrous for the kingdom, with chaos and dissent running rampant throughout the land. Now even the evil spirits are acting with impunity. <br>Why am am wasting time talking to you? I demand to speak with your clan leader!<br>(This quest may only be undertaken by a clan leader of a level 3 clan.)</body></html>
+What is your opinion on the current state of affairs? The disintegration of royal authority has been disastrous for the kingdom, with chaos and dissent running rampant throughout the land. Now even the evil spirits are acting with impunity.<br>
+Why am am wasting time talking to you? I demand to speak with your clan leader!<br>
+(This quest may only be undertaken by a clan leader of a level 3 clan.)
+</body></html>

+ 6 - 0
L2J_DataPack/dist/game/data/scripts/quests/Q00501_ProofOfClanAlliance/30756-06.html

@@ -0,0 +1,6 @@
+<html><body>Sir Kristof Rodemai:<br>
+I can see that you have what it takes to be a great leader, but to earn the respect of your peers your clan must demonstrate its ability.<br>
+How about this?  There is a witch named Kalis who lives near the Ivory Tower. She administers a test that determines one's heroism. Those who have passed this test are widely regarded as true heroes. If your clan passes the test, there will be no doubt of your abilities. What do you think? Will you and your clan take the test?<br>
+<a action="bypass -h Quest Q00501_ProofOfClanAlliance 30756-07.html">"We shall take the test!"</a><br>
+<a action="bypass -h Quest Q00501_ProofOfClanAlliance 30756-08.html">"We will not take the test."</a>
+</body></html>

+ 3 - 0
L2J_DataPack/dist/game/data/scripts/quests/Q00501_ProofOfClanAlliance/30756-07.html

@@ -0,0 +1,3 @@
+<html><body>Sir Kristof Rodemai:<br>
+Your courage is impressive. Good luck on the test.
+</body></html>

+ 2 - 1
L2J_DataPack/dist/game/data/scripts/quests/501_ProofOfClanAlliance/30756-08.htm → L2J_DataPack/dist/game/data/scripts/quests/Q00501_ProofOfClanAlliance/30756-08.html

@@ -1,2 +1,3 @@
 <html><body>Sir Kristof Rodemai:<br>
-Oh well, I understand your reluctance. May you live a long life...</body></html>
+Oh well, I understand your reluctance. May you live a long life...
+</body></html>

+ 2 - 1
L2J_DataPack/dist/game/data/scripts/quests/501_ProofOfClanAlliance/30756-09.htm → L2J_DataPack/dist/game/data/scripts/quests/Q00501_ProofOfClanAlliance/30756-09.html

@@ -1,2 +1,3 @@
 <html><body>Sir Kristof Rodemai:<br>
-I judged wisely when I selected you. We are of equal caliber, and I'm sure we will become fast friends. Of course this is not to say it will always be so. For now, let's enjoy each other's company.  Here, as promised, is the Proof of Alliance.</body></html>
+I judged wisely when I selected you. We are of equal caliber, and I'm sure we will become fast friends. Of course this is not to say it will always be so. For now, let's enjoy each other's company. Here, as promised, is the Alliance Manifesto.
+</body></html>

+ 2 - 1
L2J_DataPack/dist/game/data/scripts/quests/501_ProofOfClanAlliance/30756-10.htm → L2J_DataPack/dist/game/data/scripts/quests/Q00501_ProofOfClanAlliance/30756-10.html

@@ -1,2 +1,3 @@
 <html><body>Sir Kristof Rodemai:<br>
-There is talk of vagabonds banding together and calling themselves a clan... I hope that is not what you are. Time is short! If you will not prove your abilities, I shall look elsewhere for assistance.</body></html>
+There is talk of vagabonds banding together and calling themselves a clan... I hope that is not what you are. Time is short! If you will not prove your abilities, I shall look elsewhere for assistance.
+</body></html>

+ 7 - 0
L2J_DataPack/dist/game/data/scripts/quests/Q00501_ProofOfClanAlliance/30757-01.html

@@ -0,0 +1,7 @@
+<html><body>Statue of Offering:<br>
+Do you wish to take the test for your clan lord? You should consider your answer carefully. It could cost you your life.<br>
+Only those with the firmest resolve should step forward and answer my question.<br>
+Would you die for your clan lord? Now, give me an answer!<br>
+<a action="bypass -h Quest Q00501_ProofOfClanAlliance 30757-04.html">"I will sacrifice my life to prove loyalty to my clan lord."</a><br>
+<a action="bypass -h Quest Q00501_ProofOfClanAlliance 30757-05.html">Quit the test</a>
+</body></html>

+ 3 - 0
L2J_DataPack/dist/game/data/scripts/quests/Q00501_ProofOfClanAlliance/30757-01a.html

@@ -0,0 +1,3 @@
+<html><body>Statue of Offering:<br>
+A clan lord cannot take this test.
+</body></html>

+ 3 - 0
L2J_DataPack/dist/game/data/scripts/quests/Q00501_ProofOfClanAlliance/30757-01b.html

@@ -0,0 +1,3 @@
+<html><body>Statue of Offering:<br>
+Haven't you already proven your loyalty?
+</body></html>

+ 4 - 0
L2J_DataPack/dist/game/data/scripts/quests/Q00501_ProofOfClanAlliance/30757-02.html

@@ -0,0 +1,4 @@
+<html><body>Statue of Offering:<br>
+You lack even the experience to be be killed by this test! Count your blessings! You will live to die another day.<br>
+(Only a clan member of level 40 or above can take this test.)
+</body></html>

+ 3 - 0
L2J_DataPack/dist/game/data/scripts/quests/Q00501_ProofOfClanAlliance/30757-03.html

@@ -0,0 +1,3 @@
+<html><body>Statue of Offering:<br>
+Death shall be your reward. Now prove your loyalty!
+</body></html>

+ 2 - 1
L2J_DataPack/dist/game/data/scripts/quests/501_ProofOfClanAlliance/30757-06.htm → L2J_DataPack/dist/game/data/scripts/quests/Q00501_ProofOfClanAlliance/30757-04.html

@@ -1,2 +1,3 @@
 <html><body>Statue of Offering:<br>
-Your loyalty is impressive! Now return to your clan lord with your head held high.</body></html>
+Your loyalty is impressive! Now return to your clan lord with your head held high.
+</body></html>

+ 3 - 0
L2J_DataPack/dist/game/data/scripts/quests/Q00501_ProofOfClanAlliance/30757-05.html

@@ -0,0 +1,3 @@
+<html><body>Statue of Offering:<br>
+...
+</body></html>

+ 3 - 0
L2J_DataPack/dist/game/data/scripts/quests/Q00501_ProofOfClanAlliance/30757-06.html

@@ -0,0 +1,3 @@
+<html><body>Statue of Offering:<br>
+Does your clan lord truly wish to take the test?
+</body></html>

+ 5 - 0
L2J_DataPack/dist/game/data/scripts/quests/Q00501_ProofOfClanAlliance/30758-01.html

@@ -0,0 +1,5 @@
+<html><body>Witch Athrea:<br>
+I cannot give the <font color="LEVEL">Blood of Eva</font> to just anyone who asks for it! My older sister Kalis would be furious!<br>
+If you wish to obtain the Blood of Eva, you must pass the test I will give you.<br>
+<a action="bypass -h Quest Q00501_ProofOfClanAlliance 30758-02.html">"I will take the test."</a>
+</body></html>

+ 8 - 0
L2J_DataPack/dist/game/data/scripts/quests/Q00501_ProofOfClanAlliance/30758-02.html

@@ -0,0 +1,8 @@
+<html><body>Witch Athrea:<br>
+You seem quick-witted enough. I will explain the test to you.<br>
+It's very simple. I trust you have drawn lots before?  Think of this as drawing boxes.<br>
+First I will summon 16 boxes. Among them, four boxes are enchanted and shout when they are broken. You must find all the enchanted boxes and break them so that they will shout four times. It is possible to break all the boxes, but there is a time limit. If you cannot break the boxes within the given time, they will all disappear.<br>
+Shall we start the game?<br>
+<a action="bypass -h Quest Q00501_ProofOfClanAlliance 30758-03.html">"Start the game."</a><br>
+<a action="bypass -h Quest Q00501_ProofOfClanAlliance 30758-04.html">"I am not ready yet."</a>
+</body></html>

+ 5 - 0
L2J_DataPack/dist/game/data/scripts/quests/Q00501_ProofOfClanAlliance/30758-03.html

@@ -0,0 +1,5 @@
+<html><body>Witch Athrea:<br>
+Each one of the four enchanted boxes will say <font color="LEVEL">"Bingo!"</font> when broken. Funny, huh?<br>
+Why are you making a face?<br>
+Oh well, keep it in mind. <font color="LEVEL">Let's begin!</font>
+</body></html>

+ 3 - 0
L2J_DataPack/dist/game/data/scripts/quests/Q00501_ProofOfClanAlliance/30758-03a.html

@@ -0,0 +1,3 @@
+<html><body>Witch Athrea:<br>
+Are you ready to begin the test? Well, we must wait until those people over there are finished. It shouldn't take long. You would do well to observe them and learn more about the test.
+</body></html>

+ 3 - 0
L2J_DataPack/dist/game/data/scripts/quests/Q00501_ProofOfClanAlliance/30758-04.html

@@ -0,0 +1,3 @@
+<html><body>Witch Athrea:<br>
+Call upon all your abilities!
+</body></html>

+ 6 - 0
L2J_DataPack/dist/game/data/scripts/quests/Q00501_ProofOfClanAlliance/30758-05.html

@@ -0,0 +1,6 @@
+<html><body>Witch Athrea:<br>
+What? No boxes? Utter failure!<br>
+Well, well, well.  I should just throw you out of here, but I'm too soft-hearted for that. You shall have one more chance to take the test, but it will be expensive.<br>
+These boxes aren't free, you understand? Give me 10,000 Adena and I will make the boxes again. Is this agreeable?<br>
+<a action="bypass -h Quest Q00501_ProofOfClanAlliance 30758-07.html">"I will pay you 10,000 Adena."</a>
+</body></html>

+ 2 - 1
L2J_DataPack/dist/game/data/scripts/quests/501_ProofOfClanAlliance/30758-07.htm → L2J_DataPack/dist/game/data/scripts/quests/Q00501_ProofOfClanAlliance/30758-06.html

@@ -1,2 +1,3 @@
 <html><body>Witch Athrea:<br>
-That isn't enough money! Perhaps you could raise the funds among clan members, catch some monsters, sell your swords, whatever it takes. You should be able to come up with 10,000 adena in no time!</body></html>
+That isn't enough money! Perhaps you could raise the funds among clan members, catch some monsters, sell your swords, whatever it takes. You should be able to come up with 10,000 Adena in no time!
+</body></html>

+ 4 - 0
L2J_DataPack/dist/game/data/scripts/quests/Q00501_ProofOfClanAlliance/30758-07.html

@@ -0,0 +1,4 @@
+<html><body>Witch Athrea:<br>
+Would you care to play the game again?<br>
+<a action="bypass -h Quest Q00501_ProofOfClanAlliance 30758-03.html">"I want to play the game again."</a>
+</body></html>

+ 2 - 1
L2J_DataPack/dist/game/data/scripts/quests/501_ProofOfClanAlliance/30758-09.htm → L2J_DataPack/dist/game/data/scripts/quests/Q00501_ProofOfClanAlliance/30758-08.html

@@ -1,2 +1,3 @@
 <html><body>Witch Athrea:<br>
-Ah, a quite unexpected success! Well, true to my word, here is the <font color="LEVEL">Blood of Eva</font>. Be careful not to break the bottle.</body></html>
+Ah, a quite unexpected success! Well, true to my word, here is the <font color="LEVEL">Blood of Eva</font>. Be careful not to break the bottle.
+</body></html>

+ 3 - 0
L2J_DataPack/dist/game/data/scripts/quests/Q00501_ProofOfClanAlliance/30758-09.html

@@ -0,0 +1,3 @@
+<html><body>Witch Athrea:<br>
+Do you really have the time to stand around gabbing  like this? Unless you bring me the ingredients for the Antidote soon, your clan leader will surely die.
+</body></html>

+ 6 - 0
L2J_DataPack/dist/game/data/scripts/quests/Q00501_ProofOfClanAlliance/30759-01.html

@@ -0,0 +1,6 @@
+<html><body>Witch Kalis:<br>
+Would you choose to be a star shining brightly in the midst of chaos?<br>
+Behold the graves of those who have fallen attempting to do this...<br>
+Are you prepared to rest alongside them?<br>
+<a action="bypass -h Quest Q00501_ProofOfClanAlliance 30759-02.html">"I want to be a star."</a>
+</body></html>

+ 5 - 0
L2J_DataPack/dist/game/data/scripts/quests/Q00501_ProofOfClanAlliance/30759-02.html

@@ -0,0 +1,5 @@
+<html><body>Witch Kalis:<br>
+You fool! Do you think that you are immortal? The test begins! Are there any among your clan who would die for you?<br>
+<a action="bypass -h Quest Q00501_ProofOfClanAlliance 30759-03.html">"There is one who will."</a><br>
+<a action="bypass -h Quest Q00501_ProofOfClanAlliance 30759-04.html">"There are none who will."</a>
+</body></html>

+ 3 - 1
L2J_DataPack/dist/game/data/scripts/quests/501_ProofOfClanAlliance/30759-03.htm → L2J_DataPack/dist/game/data/scripts/quests/Q00501_ProofOfClanAlliance/30759-03.html

@@ -1,2 +1,4 @@
 <html><body>Witch Kalis:<br>
-Ah, we shall see... Tell those who would lay down their lives for you to join me at the <font color="LEVEL">table of sacrifice</font>! If they are truly loyal they will not hesitate to sacrifice their lives.<br>Bring me <font color="LEVEL">three symbols of loyalty</font>, I will recognize the resolve of you and your clan!</body></html>
+Ah, we shall see... Tell those who would lay down their lives for you to join me at the <font color="LEVEL">table of sacrifice</font>! If they are truly loyal they will not hesitate to sacrifice their lives.<br>
+Bring me <font color="LEVEL">three symbols of loyalty</font>, I will recognize the resolve of you and your clan!
+</body></html>

+ 3 - 0
L2J_DataPack/dist/game/data/scripts/quests/Q00501_ProofOfClanAlliance/30759-04.html

@@ -0,0 +1,3 @@
+<html><body>Witch Kalis:<br>
+Just as I expected. All talk and no action.
+</body></html>

+ 4 - 0
L2J_DataPack/dist/game/data/scripts/quests/Q00501_ProofOfClanAlliance/30759-05.html

@@ -0,0 +1,4 @@
+<html><body>Witch Kalis:<br>
+Where is the confidence you so reeked of earlier? No comrades willing to risk their lives, eh?<br>
+Unless you bring me <font color="LEVEL">three symbols of loyalty</font>, you will never pass the test. In order to obtain the symbols, three of your clan must take an oath of their life at the <font color="LEVEL">table of sacrifice</font> and pledge complete loyalty to you.
+</body></html>

+ 7 - 0
L2J_DataPack/dist/game/data/scripts/quests/Q00501_ProofOfClanAlliance/30759-06.html

@@ -0,0 +1,7 @@
+<html><body>Witch Kalis:<br>
+Your comrades must have firm resolve and unfailing loyalty. In these days of the endless pursuit of profit, these are rare and noble qualities.<br>
+Now, do you trust your clan members? Would you bet your life on them? If so, then drink this poison and ask your clan members to gather the ingredients and bring back the Antidote! Here is a list of the ingredients needed for the Antidote. If your comrades can find and bring back all of the ingredients within one hour your life will be saved.<br>
+I wonder how hard your clan will try to save your life? Do you care to find out?<br>
+<a action="bypass -h Quest Q00501_ProofOfClanAlliance 30759-07.html">Drink the poison</a><br>
+<a action="bypass -h Quest Q00501_ProofOfClanAlliance 30759-04.html">Do not drink the poison</a>
+</body></html>

+ 7 - 0
L2J_DataPack/dist/game/data/scripts/quests/Q00501_ProofOfClanAlliance/30759-07.html

@@ -0,0 +1,7 @@
+<html><body>Witch Kalis:<br>
+Tell me, how does the poison taste? Everything growing dark, is it? That would be death coming for you. I fear that soon we will need to add another grave here... Will your comrades find and bring back all the ingredients in time?<br>
+Oh, I do hate to see you in such pain. Would you care for some hints?<br>
+Herb of Vanor can be obtained from <font color="LEVEL">vanor silenos</font>. Herb of Harit can be obtained from <font color="LEVEL">Harit Lizardmen</font>. Herb of Ol Mahum can be obtained from <font color="LEVEL">Ol Mahums</font>. <font color="LEVEL">The Shamans</font> will have the herbs.<br>
+In order to obtain the Blood of Eva, you must visit <font color="LEVEL">Witch Athrea</font>. She is my younger sister. Some time ago she left for <font color="LEVEL">Hardin's Academy</font> to meet with Grand Magus Hardin.<br>
+Remember that <font color="LEVEL">when your clan members bring back all the ingredients, you must gather them up and bring them to me. I will create the Antidote for you.</font>
+</body></html>

+ 3 - 0
L2J_DataPack/dist/game/data/scripts/quests/Q00501_ProofOfClanAlliance/30759-08.html

@@ -0,0 +1,3 @@
+<html><body>Witch Kalis:<br>
+Ah, all the ingredients of the Antidote! It has been a long time since this has happened. It is heartening to learn that there are still people like you and your clan with firm resolve and common trust! You are truly the soldiers of the new age! A bright star illuminating the darkness of this time! Please pardon my previous rudeness and accept this Antidote and mark.
+</body></html>

+ 2 - 1
L2J_DataPack/dist/game/data/scripts/quests/501_ProofOfClanAlliance/30759-09.htm → L2J_DataPack/dist/game/data/scripts/quests/Q00501_ProofOfClanAlliance/30759-09.html

@@ -1,2 +1,3 @@
 <html><body>Witch Kalis:<br>
-You are a liar and a cheat! Your sort can never become a shining star. You are dead to me now. Do you have regrets? If so, you can start over from the very beginning...</body></html>
+You are a liar and a cheat! Your sort can never become a shining star. You are dead to me now. Do you have regrets? If so, you can start over from the very beginning...
+</body></html>

+ 4 - 0
L2J_DataPack/dist/game/data/scripts/quests/Q00501_ProofOfClanAlliance/30759-10.html

@@ -0,0 +1,4 @@
+<html><body>Witch Kalis:<br>
+Your time among the living grows short. What has become of your comrades? Will they return in time to save your life?<br>
+Let me remind you again, <font color="LEVEL">when your clan members bring back all the ingredients, you must gather them and bring them to me personally. I will use them to make the Antidote.</font>
+</body></html>

+ 3 - 1
L2J_DataPack/dist/game/data/scripts/quests/501_ProofOfClanAlliance/30759-11.htm → L2J_DataPack/dist/game/data/scripts/quests/Q00501_ProofOfClanAlliance/30759-11.html

@@ -1,2 +1,4 @@
 <html><body>Witch Kalis:<br>
-Haven't you already passed my test? Why do you return to my humble abode?<br>Have you come to punish me for my previous rudeness?</body></html>
+Haven't you already passed my test? Why do you return to my humble abode?<br>
+Have you come to punish me for my previous rudeness?
+</body></html>

+ 3 - 0
L2J_DataPack/dist/game/data/scripts/quests/Q00501_ProofOfClanAlliance/30759-12.html

@@ -0,0 +1,3 @@
+<html><body>Witch Kalis:<br>
+The lives of those who do not know their place often end prematurely. People should always live their lives within the proper boundaries. I don't have time to speak with you. Ask your clan lord to come and see me...
+</body></html>

+ 608 - 0
L2J_DataPack/dist/game/data/scripts/quests/Q00501_ProofOfClanAlliance/Q00501_ProofOfClanAlliance.java

@@ -0,0 +1,608 @@
+/*
+ * Copyright (C) 2004-2014 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.Q00501_ProofOfClanAlliance;
+
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.List;
+
+import com.l2jserver.gameserver.model.L2Clan;
+import com.l2jserver.gameserver.model.Location;
+import com.l2jserver.gameserver.model.actor.L2Character;
+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.itemcontainer.Inventory;
+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.model.skills.AbnormalType;
+import com.l2jserver.gameserver.network.NpcStringId;
+import com.l2jserver.gameserver.network.clientpackets.Say2;
+import com.l2jserver.gameserver.network.serverpackets.NpcSay;
+import com.l2jserver.gameserver.util.Util;
+
+/**
+ * Proof of Clan Alliance (501)
+ * @author Zoey76
+ */
+public final class Q00501_ProofOfClanAlliance extends Quest
+{
+	// NPCs
+	private static final int SIR_KRISTOF_RODEMAI = 30756;
+	private static final int STATUE_OF_OFFERING = 30757;
+	private static final int ATHREA = 30758;
+	private static final int KALIS = 30759;
+	// Monsters
+	private static final int OEL_MAHUM_WITCH_DOCTOR = 20576;
+	private static final int HARIT_LIZARDMAN_SHAMAN = 20644;
+	private static final int VANOR_SILENOS_SHAMAN = 20685;
+	private static final int BOX_OF_ATHREA_1 = 27173;
+	private static final int BOX_OF_ATHREA_2 = 27174;
+	private static final int BOX_OF_ATHREA_3 = 27175;
+	private static final int BOX_OF_ATHREA_4 = 27176;
+	private static final int BOX_OF_ATHREA_5 = 27177;
+	// Items
+	private static final int HERB_OF_HARIT = 3832;
+	private static final int HERB_OF_VANOR = 3833;
+	private static final int HERB_OF_OEL_MAHUM = 3834;
+	private static final int BLOOD_OF_EVA = 3835;
+	private static final int ATHREAS_COIN = 3836;
+	private static final int SYMBOL_OF_LOYALTY = 3837;
+	private static final int ANTIDOTE_RECIPE_LIST = 3872;
+	private static final int VOUCHER_OF_FAITH = 3873;
+	private static final int ALLIANCE_MANIFESTO = 3874;
+	private static final int POTION_OF_RECOVERY = 3889;
+	// Skills
+	private static final SkillHolder POISON_OF_DEATH = new SkillHolder(4082, 1);
+	private static final SkillHolder DIE_YOU_FOOL = new SkillHolder(4083, 1);
+	// Locations
+	// @formatter:off
+	private static final List<Location> LOCS = Arrays.asList(
+		new Location(102273, 103433, -3512),
+		new Location(102190, 103379, -3524),
+		new Location(102107, 103325, -3533),
+		new Location(102024, 103271, -3500),
+		new Location(102327, 103350, -3511),
+		new Location(102244, 103296, -3518),
+		new Location(102161, 103242, -3529),
+		new Location(102078, 103188, -3500),
+		new Location(102381, 103267, -3538),
+		new Location(102298, 103213, -3532),
+		new Location(102215, 103159, -3520),
+		new Location(102132, 103105, -3513),
+		new Location(102435, 103184, -3515),
+		new Location(102352, 103130, -3522),
+		new Location(102269, 103076, -3533),
+		new Location(102186, 103022, -3541));
+	// @formatter:on
+	// Misc
+	private static final int CLAN_MIN_LEVEL = 3;
+	private static final int CLAN_MEMBER_MIN_LEVEL = 40;
+	private static final int ADENA_TO_RESTART_GAME = 10000;
+	
+	public Q00501_ProofOfClanAlliance()
+	{
+		super(501, Q00501_ProofOfClanAlliance.class.getSimpleName(), "Proof of Clan Alliance");
+		addStartNpc(SIR_KRISTOF_RODEMAI, STATUE_OF_OFFERING);
+		addTalkId(SIR_KRISTOF_RODEMAI, STATUE_OF_OFFERING, ATHREA, KALIS);
+		addKillId(OEL_MAHUM_WITCH_DOCTOR, HARIT_LIZARDMAN_SHAMAN, VANOR_SILENOS_SHAMAN, BOX_OF_ATHREA_1, BOX_OF_ATHREA_2, BOX_OF_ATHREA_3, BOX_OF_ATHREA_4, BOX_OF_ATHREA_5);
+		addSpawnId(BOX_OF_ATHREA_1, BOX_OF_ATHREA_2, BOX_OF_ATHREA_3, BOX_OF_ATHREA_4, BOX_OF_ATHREA_5);
+		registerQuestItems(ANTIDOTE_RECIPE_LIST, VOUCHER_OF_FAITH, HERB_OF_HARIT, HERB_OF_VANOR, HERB_OF_OEL_MAHUM, BLOOD_OF_EVA, ATHREAS_COIN, SYMBOL_OF_LOYALTY);
+	}
+	
+	@Override
+	public String onAdvEvent(String event, L2Npc npc, L2PcInstance player)
+	{
+		final QuestState qs = getQuestState(player, false);
+		String htmltext = getNoQuestMsg(player);
+		if (qs == null)
+		{
+			return htmltext;
+		}
+		
+		switch (event)
+		{
+			case "30756-06.html":
+			case "30756-08.html":
+			case "30757-05.html":
+			case "30758-02.html":
+			case "30758-04.html":
+			case "30759-02.html":
+			case "30759-04.html":
+			{
+				htmltext = event;
+				break;
+			}
+			case "30756-07.html":
+			{
+				if (qs.isCreated() && player.isClanLeader() && (player.getClan().getLevel() == CLAN_MIN_LEVEL))
+				{
+					qs.startQuest();
+					qs.setMemoState(1);
+					htmltext = event;
+				}
+				break;
+			}
+			case "30757-04.html":
+			{
+				if (getRandom(10) > 5)
+				{
+					if (qs.getInt("flag") != 2501)
+					{
+						giveItems(player, SYMBOL_OF_LOYALTY, 1);
+						qs.set("flag", 2501);
+					}
+					htmltext = event;
+				}
+				else
+				{
+					npc.setTarget(player);
+					npc.doCast(DIE_YOU_FOOL.getSkill());
+					startQuestTimer("2501010", 4000, npc, player);
+					htmltext = "30757-03.html";
+				}
+				break;
+			}
+			case "30758-03.html":
+			{
+				final QuestState lqs = getLeaderQuestState(player, getName());
+				if (lqs != null)
+				{
+					if (npc.getSummonedNpcCount() < 4)
+					{
+						lqs.setMemoState(4);
+						lqs.set("flag", 0);
+						npc.setScriptValue(0);
+						for (Location loc : LOCS)
+						{
+							npc.addSummonedNpc(addSpawn(getRandom(BOX_OF_ATHREA_1, BOX_OF_ATHREA_5), loc));
+						}
+						htmltext = event;
+					}
+					else
+					{
+						htmltext = "30758-03a.html";
+					}
+				}
+				break;
+			}
+			case "30758-07.html":
+			{
+				if (player.getAdena() >= ADENA_TO_RESTART_GAME)
+				{
+					if (npc.getSummonedNpcCount() < 4)
+					{
+						takeItems(player, ADENA_TO_RESTART_GAME, Inventory.ADENA_ID);
+					}
+					htmltext = event;
+				}
+				else
+				{
+					htmltext = "30758-06.html";
+				}
+				break;
+			}
+			case "30759-03.html":
+			{
+				if (qs.isMemoState(1))
+				{
+					qs.setCond(2, true);
+					qs.setMemoState(2);
+					htmltext = event;
+				}
+				break;
+			}
+			case "30759-07.html":
+			{
+				takeItems(player, SYMBOL_OF_LOYALTY, -1);
+				giveItems(player, ANTIDOTE_RECIPE_LIST, 1);
+				npc.setTarget(player);
+				npc.doCast(POISON_OF_DEATH.getSkill());
+				qs.setCond(3, true);
+				qs.setMemoState(3);
+				htmltext = event;
+				break;
+			}
+			case "2501010":
+			{
+				if (player.isDead() && (qs.getInt("flag") != 2501))
+				{
+					giveItems(player, SYMBOL_OF_LOYALTY, 1);
+					qs.set("flag", 2501);
+				}
+				htmltext = null;
+				break;
+			}
+			case "DESPAWN_BOX":
+			{
+				npc.deleteMe();
+				final L2Character summoner = npc.getSummoner();
+				if ((summoner != null) && summoner.isNpc())
+				{
+					((L2Npc) summoner).removeSummonedNpc(npc.getObjectId());
+				}
+				break;
+			}
+		}
+		return htmltext;
+	}
+	
+	@Override
+	public String onKill(L2Npc npc, L2PcInstance killer, boolean isSummon)
+	{
+		final QuestState qs = getRandomPartyMemberState(killer, -1, 3, npc);
+		if (qs == null)
+		{
+			return super.onKill(npc, killer, isSummon);
+		}
+		
+		final L2PcInstance player = qs.getPlayer();
+		final QuestState lqs = getLeaderQuestState(player, getName());
+		if (lqs != null)
+		{
+			switch (npc.getId())
+			{
+				case OEL_MAHUM_WITCH_DOCTOR:
+				{
+					if ((getRandom(10) == 1) && (lqs.getMemoState() >= 3) && (lqs.getMemoState() < 6))
+					{
+						giveItemRandomly(player, npc, HERB_OF_OEL_MAHUM, 1, 0, 1.0, true);
+					}
+					break;
+				}
+				case HARIT_LIZARDMAN_SHAMAN:
+				{
+					if ((getRandom(10) == 1) && (lqs.getMemoState() >= 3) && (lqs.getMemoState() < 6))
+					{
+						giveItemRandomly(player, npc, HERB_OF_HARIT, 1, 0, 1.0, true);
+					}
+					break;
+				}
+				case VANOR_SILENOS_SHAMAN:
+				{
+					if ((getRandom(10) == 1) && (lqs.getMemoState() >= 3) && (lqs.getMemoState() < 6))
+					{
+						giveItemRandomly(player, npc, HERB_OF_VANOR, 1, 0, 1.0, true);
+					}
+					break;
+				}
+				case BOX_OF_ATHREA_1:
+				case BOX_OF_ATHREA_2:
+				case BOX_OF_ATHREA_3:
+				case BOX_OF_ATHREA_4:
+				case BOX_OF_ATHREA_5:
+				{
+					final L2Character summoner = npc.getSummoner();
+					if ((summoner != null) && summoner.isNpc())
+					{
+						if (lqs.isMemoState(4))
+						{
+							final L2Npc arthea = (L2Npc) summoner;
+							if ((lqs.getInt("flag") == 3) && arthea.isScriptValue(15))
+							{
+								lqs.set("flag", lqs.getInt("flag") + 1);
+								npc.broadcastPacket(new NpcSay(npc, Say2.NPC_ALL, NpcStringId.BINGO));
+							}
+							else if ((lqs.getInt("flag") == 2) && arthea.isScriptValue(14))
+							{
+								lqs.set("flag", lqs.getInt("flag") + 1);
+								npc.broadcastPacket(new NpcSay(npc, Say2.NPC_ALL, NpcStringId.BINGO));
+							}
+							else if ((lqs.getInt("flag") == 1) && arthea.isScriptValue(13))
+							{
+								lqs.set("flag", lqs.getInt("flag") + 1);
+								npc.broadcastPacket(new NpcSay(npc, Say2.NPC_ALL, NpcStringId.BINGO));
+							}
+							else if ((lqs.getInt("flag") == 0) && arthea.isScriptValue(12))
+							{
+								lqs.set("flag", lqs.getInt("flag") + 1);
+								npc.broadcastPacket(new NpcSay(npc, Say2.NPC_ALL, NpcStringId.BINGO));
+							}
+							else if (lqs.getInt("flag") < 4)
+							{
+								if (getRandom(4) == 0)
+								{
+									lqs.set("flag", lqs.getInt("flag") + 1);
+									npc.broadcastPacket(new NpcSay(npc, Say2.NPC_ALL, NpcStringId.BINGO));
+								}
+							}
+							arthea.setScriptValue(arthea.getScriptValue() + 1);
+						}
+						((L2Npc) summoner).removeSummonedNpc(npc.getObjectId());
+					}
+					break;
+				}
+			}
+		}
+		return super.onKill(npc, killer, isSummon);
+	}
+	
+	@Override
+	public String onTalk(L2Npc npc, L2PcInstance player)
+	{
+		final QuestState qs = player.getQuestState(getName());
+		final QuestState lqs = getLeaderQuestState(player, getName());
+		String htmltext = getNoQuestMsg(player);
+		if (qs == null)
+		{
+			return htmltext;
+		}
+		
+		switch (npc.getId())
+		{
+			case SIR_KRISTOF_RODEMAI:
+			{
+				switch (qs.getState())
+				{
+					case State.CREATED:
+					{
+						if (player.isClanLeader())
+						{
+							final L2Clan clan = player.getClan();
+							if (clan.getLevel() < CLAN_MIN_LEVEL)
+							{
+								htmltext = "30756-01.html";
+							}
+							else if (clan.getLevel() == CLAN_MIN_LEVEL)
+							{
+								if (hasQuestItems(player, ALLIANCE_MANIFESTO))
+								{
+									htmltext = "30756-03.html";
+								}
+								else
+								{
+									htmltext = "30756-04.html";
+								}
+							}
+							else
+							{
+								htmltext = "30756-02.html";
+							}
+						}
+						else
+						{
+							htmltext = "30756-05.html";
+						}
+						break;
+					}
+					case State.STARTED:
+					{
+						if (qs.isMemoState(6) && hasQuestItems(player, VOUCHER_OF_FAITH))
+						{
+							takeItems(player, VOUCHER_OF_FAITH, -1);
+							giveItems(player, ALLIANCE_MANIFESTO, 1);
+							addExpAndSp(player, 0, 120000);
+							qs.exitQuest(false);
+							htmltext = "30756-09.html";
+						}
+						else if ((qs.getMemoState() >= 1) && !hasQuestItems(player, VOUCHER_OF_FAITH))
+						{
+							htmltext = "30756-10.html";
+						}
+						break;
+					}
+				}
+				break;
+			}
+			case STATUE_OF_OFFERING:
+			{
+				if ((lqs != null) && lqs.isMemoState(2))
+				{
+					if (!player.isClanLeader())
+					{
+						if (player.getLevel() >= CLAN_MEMBER_MIN_LEVEL)
+						{
+							htmltext = (qs.getInt("flag") != 2501) ? "30757-01.html" : "30757-01b.html";
+						}
+						else
+						{
+							htmltext = "30757-02.html";
+						}
+					}
+					else
+					{
+						htmltext = "30757-01a.html";
+					}
+				}
+				else
+				{
+					htmltext = "30757-06.html";
+				}
+				break;
+			}
+			case ATHREA:
+			{
+				if (lqs != null)
+				{
+					switch (lqs.getMemoState())
+					{
+						case 3:
+						{
+							if (hasQuestItems(lqs.getPlayer(), ANTIDOTE_RECIPE_LIST) && !hasQuestItems(lqs.getPlayer(), BLOOD_OF_EVA))
+							{
+								lqs.set("flag", 0);
+								htmltext = "30758-01.html";
+							}
+							break;
+						}
+						case 4:
+						{
+							if (lqs.getInt("flag") < 4)
+							{
+								htmltext = "30758-05.html";
+							}
+							else
+							{
+								giveItems(player, BLOOD_OF_EVA, 1);
+								lqs.setMemoState(5);
+								htmltext = "30758-08.html";
+							}
+							break;
+						}
+						case 5:
+						{
+							htmltext = "30758-09.html";
+							break;
+						}
+					}
+				}
+				break;
+			}
+			case KALIS:
+			{
+				if (qs.isMemoState(1) && !hasQuestItems(player, SYMBOL_OF_LOYALTY))
+				{
+					htmltext = "30759-01.html";
+				}
+				else if (qs.isMemoState(2) && (getQuestItemsCount(player, SYMBOL_OF_LOYALTY) < 3))
+				{
+					htmltext = "30759-05.html";
+				}
+				else if ((getQuestItemsCount(player, SYMBOL_OF_LOYALTY) >= 3) && !hasAbnormal(player))
+				{
+					htmltext = "30759-06.html";
+				}
+				else if (qs.isMemoState(5) && hasQuestItems(player, BLOOD_OF_EVA) && hasQuestItems(player, HERB_OF_VANOR) && hasQuestItems(player, HERB_OF_HARIT) && hasQuestItems(player, HERB_OF_OEL_MAHUM) && hasAbnormal(player))
+				{
+					giveItems(player, VOUCHER_OF_FAITH, 1);
+					giveItems(player, POTION_OF_RECOVERY, 1);
+					takeItems(player, BLOOD_OF_EVA, -1);
+					takeItems(player, ANTIDOTE_RECIPE_LIST, -1);
+					takeItems(player, HERB_OF_OEL_MAHUM, -1);
+					takeItems(player, HERB_OF_HARIT, -1);
+					takeItems(player, HERB_OF_VANOR, -1);
+					qs.setCond(4, true);
+					qs.setMemoState(6);
+					htmltext = "30759-08.html";
+				}
+				else if ((qs.isMemoState(3) || qs.isMemoState(4) || qs.isMemoState(5)) && !hasAbnormal(player))
+				{
+					takeItems(player, ANTIDOTE_RECIPE_LIST, -1);
+					qs.setMemoState(1);
+					htmltext = "30759-09.html";
+				}
+				else if ((qs.getMemoState() < 6) && (getQuestItemsCount(player, SYMBOL_OF_LOYALTY) >= 3) && !hasAtLeastOneQuestItem(player, BLOOD_OF_EVA, HERB_OF_VANOR, HERB_OF_HARIT, HERB_OF_OEL_MAHUM) && hasAbnormal(player))
+				{
+					htmltext = "30759-10.html";
+				}
+				else if (qs.isMemoState(6))
+				{
+					htmltext = "30759-11.html";
+				}
+				else if ((lqs != null) && !player.isClanLeader())
+				{
+					htmltext = "30759-12.html";
+				}
+				break;
+			}
+		}
+		return htmltext;
+	}
+	
+	@Override
+	public String onSpawn(L2Npc npc)
+	{
+		startQuestTimer("DESPAWN_BOX", 300000, npc, null);
+		return super.onSpawn(npc);
+	}
+	
+	/**
+	 * Verifies if the player has the poison.
+	 * @param player the player to check
+	 * @return {@code true} if the player has {@link AbnormalType#FATAL_POISON} abnormal
+	 */
+	private static boolean hasAbnormal(L2PcInstance player)
+	{
+		return player.getEffectList().getBuffInfoByAbnormalType(AbnormalType.FATAL_POISON) != null;
+	}
+	
+	/**
+	 * Gets the clan leader's quest state.
+	 * @param player the player
+	 * @param quest the quest name
+	 * @return the clan leader's quest state
+	 */
+	private static QuestState getLeaderQuestState(L2PcInstance player, String quest)
+	{
+		if (player.getClan() != null)
+		{
+			final L2PcInstance leader = player.getClan().getLeader().getPlayerInstance();
+			if (leader != null)
+			{
+				return leader.getQuestState(quest);
+			}
+		}
+		return null;
+	}
+	
+	@Override
+	public QuestState getRandomPartyMemberState(L2PcInstance player, int condition, int playerChance, L2Npc target)
+	{
+		if ((player == null) || (playerChance < 1))
+		{
+			return null;
+		}
+		
+		QuestState qs = player.getQuestState(getName());
+		if (!player.isInParty())
+		{
+			if (!Util.checkIfInRange(1500, player, target, true))
+			{
+				return null;
+			}
+			return qs;
+		}
+		
+		final List<QuestState> candidates = new ArrayList<>();
+		if ((qs != null) && (playerChance > 0))
+		{
+			for (int i = 0; i < playerChance; i++)
+			{
+				candidates.add(qs);
+			}
+		}
+		
+		for (L2PcInstance member : player.getParty().getMembers())
+		{
+			if (member == player)
+			{
+				continue;
+			}
+			
+			qs = member.getQuestState(getName());
+			if (qs != null)
+			{
+				candidates.add(qs);
+			}
+		}
+		
+		if (candidates.isEmpty())
+		{
+			return null;
+		}
+		
+		qs = candidates.get(getRandom(candidates.size()));
+		if (!Util.checkIfInRange(1500, qs.getPlayer(), target, true))
+		{
+			return null;
+		}
+		return qs;
+	}
+}

+ 2 - 0
L2J_DataPack/dist/game/data/scripts/quests/QuestMasterHandler.java

@@ -339,6 +339,7 @@ import quests.Q00458_PerfectForm.Q00458_PerfectForm;
 import quests.Q00461_RumbleInTheBase.Q00461_RumbleInTheBase;
 import quests.Q00463_IMustBeaGenius.Q00463_IMustBeaGenius;
 import quests.Q00464_Oath.Q00464_Oath;
+import quests.Q00501_ProofOfClanAlliance.Q00501_ProofOfClanAlliance;
 import quests.Q00504_CompetitionForTheBanditStronghold.Q00504_CompetitionForTheBanditStronghold;
 import quests.Q00508_AClansReputation.Q00508_AClansReputation;
 import quests.Q00509_AClansFame.Q00509_AClansFame;
@@ -777,6 +778,7 @@ public class QuestMasterHandler
 		Q00461_RumbleInTheBase.class,
 		Q00463_IMustBeaGenius.class,
 		Q00464_Oath.class,
+		Q00501_ProofOfClanAlliance.class,
 		Q00504_CompetitionForTheBanditStronghold.class,
 		Q00508_AClansReputation.class,
 		Q00509_AClansFame.class,

+ 1 - 1
L2J_DataPack/dist/game/data/stats/skills/04000-04099.xml

@@ -1538,7 +1538,7 @@
 		</for>
 	</skill>
 	<skill id="4083" levels="1" name="Die! You fool!">
-		<!-- Freya retail confirmed -->
+		<!-- Confirmed CT2.5 -->
 		<set name="castRange" val="600" />
 		<set name="coolTime" val="800" />
 		<set name="effectPoint" val="-100" />

+ 1 - 0
L2J_DataPack/dist/sql/game/updates/20141115update.sql

@@ -0,0 +1 @@
+UPDATE character_quests SET name='Q00501_ProofOfClanAlliance' WHERE name='501_ProofOfClanAlliance';