From 92ec44d7e2a88aeb127834d5dcbb93688a4961e2 Mon Sep 17 00:00:00 2001
From: Ahmed <Ahmed@5288da4f-0efc-0310-bd40-8d490a2659fa>
Date: Fri, 7 Sep 2012 23:36:17 +0000
Subject: [PATCH] BETA: The quest Perfect Form is now fully functioning and
 retail like. * Q00458_PerfectForm Patch by: jurchiks

---
 .../quests/Q00458_PerfectForm/32768-00.htm    |   6 +
 .../quests/Q00458_PerfectForm/32768-01.htm    |   9 +-
 .../quests/Q00458_PerfectForm/32768-02.html   |  11 +-
 .../quests/Q00458_PerfectForm/32768-03.html   |  11 +-
 .../quests/Q00458_PerfectForm/32768-04.htm    |   5 -
 .../quests/Q00458_PerfectForm/32768-04.html   |   7 +
 .../quests/Q00458_PerfectForm/32768-05.htm    |   5 -
 .../quests/Q00458_PerfectForm/32768-05.html   |   7 +
 .../quests/Q00458_PerfectForm/32768-06.htm    |  15 +-
 .../quests/Q00458_PerfectForm/32768-07.htm    |  12 +-
 .../quests/Q00458_PerfectForm/32768-08.htm    |  15 +-
 .../quests/Q00458_PerfectForm/32768-09.htm    |  11 +-
 .../quests/Q00458_PerfectForm/32768-10.htm    |  12 +-
 .../quests/Q00458_PerfectForm/32768-11.htm    |   5 -
 .../quests/Q00458_PerfectForm/32768-11.html   |   5 +
 .../quests/Q00458_PerfectForm/32768-12.html   |  10 +-
 .../quests/Q00458_PerfectForm/32768-13.html   |  10 +-
 .../quests/Q00458_PerfectForm/32768-14.html   |   4 -
 .../quests/Q00458_PerfectForm/32768-14a.html  |   5 +
 .../quests/Q00458_PerfectForm/32768-14b.html  |   5 +
 .../quests/Q00458_PerfectForm/32768-14c.html  |   5 +
 .../quests/Q00458_PerfectForm/32768-15.html   |   5 -
 .../quests/Q00458_PerfectForm/32768-15a.html  |   5 +
 .../quests/Q00458_PerfectForm/32768-15b.html  |   5 +
 .../quests/Q00458_PerfectForm/32768-15c.html  |   5 +
 .../quests/Q00458_PerfectForm/32768-16a.html  |   8 +-
 .../quests/Q00458_PerfectForm/32768-16b.html  |   8 +-
 .../quests/Q00458_PerfectForm/32768-16c.html  |   8 +-
 .../quests/Q00458_PerfectForm/32768-17.html   |   5 +-
 .../quests/Q00458_PerfectForm/32768-18.htm    |   6 +
 .../Q00458_PerfectForm.java                   | 377 ++++++++++--------
 31 files changed, 361 insertions(+), 246 deletions(-)
 create mode 100644 L2J_DataPack_BETA/dist/game/data/scripts/quests/Q00458_PerfectForm/32768-00.htm
 delete mode 100644 L2J_DataPack_BETA/dist/game/data/scripts/quests/Q00458_PerfectForm/32768-04.htm
 create mode 100644 L2J_DataPack_BETA/dist/game/data/scripts/quests/Q00458_PerfectForm/32768-04.html
 delete mode 100644 L2J_DataPack_BETA/dist/game/data/scripts/quests/Q00458_PerfectForm/32768-05.htm
 create mode 100644 L2J_DataPack_BETA/dist/game/data/scripts/quests/Q00458_PerfectForm/32768-05.html
 delete mode 100644 L2J_DataPack_BETA/dist/game/data/scripts/quests/Q00458_PerfectForm/32768-11.htm
 create mode 100644 L2J_DataPack_BETA/dist/game/data/scripts/quests/Q00458_PerfectForm/32768-11.html
 delete mode 100644 L2J_DataPack_BETA/dist/game/data/scripts/quests/Q00458_PerfectForm/32768-14.html
 create mode 100644 L2J_DataPack_BETA/dist/game/data/scripts/quests/Q00458_PerfectForm/32768-14a.html
 create mode 100644 L2J_DataPack_BETA/dist/game/data/scripts/quests/Q00458_PerfectForm/32768-14b.html
 create mode 100644 L2J_DataPack_BETA/dist/game/data/scripts/quests/Q00458_PerfectForm/32768-14c.html
 delete mode 100644 L2J_DataPack_BETA/dist/game/data/scripts/quests/Q00458_PerfectForm/32768-15.html
 create mode 100644 L2J_DataPack_BETA/dist/game/data/scripts/quests/Q00458_PerfectForm/32768-15a.html
 create mode 100644 L2J_DataPack_BETA/dist/game/data/scripts/quests/Q00458_PerfectForm/32768-15b.html
 create mode 100644 L2J_DataPack_BETA/dist/game/data/scripts/quests/Q00458_PerfectForm/32768-15c.html
 create mode 100644 L2J_DataPack_BETA/dist/game/data/scripts/quests/Q00458_PerfectForm/32768-18.htm

diff --git a/L2J_DataPack_BETA/dist/game/data/scripts/quests/Q00458_PerfectForm/32768-00.htm b/L2J_DataPack_BETA/dist/game/data/scripts/quests/Q00458_PerfectForm/32768-00.htm
new file mode 100644
index 0000000000..e0f1c8f4de
--- /dev/null
+++ b/L2J_DataPack_BETA/dist/game/data/scripts/quests/Q00458_PerfectForm/32768-00.htm
@@ -0,0 +1,6 @@
+<html><body>
+Kelleyia:<br>
+You will understand what I mean someday, adventurer.<br>
+When that time comes, we can combine our skills. You with your sword, and me with my brain.<br>
+(Only characters with levels 82 and above can play this quest.)
+</body></html>
diff --git a/L2J_DataPack_BETA/dist/game/data/scripts/quests/Q00458_PerfectForm/32768-01.htm b/L2J_DataPack_BETA/dist/game/data/scripts/quests/Q00458_PerfectForm/32768-01.htm
index 480595cef1..690c9b7ae4 100644
--- a/L2J_DataPack_BETA/dist/game/data/scripts/quests/Q00458_PerfectForm/32768-01.htm
+++ b/L2J_DataPack_BETA/dist/game/data/scripts/quests/Q00458_PerfectForm/32768-01.htm
@@ -1,7 +1,8 @@
-<html><body>Kelleyia:<br>
+<html><body>
+Kelleyia:<br>
 By the looks of you, I can tell you aren't one of the locals... given the fact you can still stand up straight and don't look like you are about to pass out.<br>
 I'm a talent scout and I'm looking for the best of the best in Aden. Apparently, I made a mistake coming here first.<br>
 You look like you know your way around a weapon. Want to test your skills?<br>
-<a action="bypass -h Quest Q00458_PerfectForm 32768-04.htm">"Talent Scout?"</a><br>
-<a action="bypass -h Quest Q00458_PerfectForm 32768-06.htm">"I don't want to brag, but yeah... I'm good."</a>
-</body></html>
\ No newline at end of file
+<a action="bypass -h Quest Q00458_PerfectForm 32768-02.html">"Talent Scout?"</a><br>
+<a action="bypass -h Quest Q00458_PerfectForm 32768-04.html">"I don't want to brag, but yeah... I'm good."</a>
+</body></html>
diff --git a/L2J_DataPack_BETA/dist/game/data/scripts/quests/Q00458_PerfectForm/32768-02.html b/L2J_DataPack_BETA/dist/game/data/scripts/quests/Q00458_PerfectForm/32768-02.html
index 5a79ff6665..613b8a2c03 100644
--- a/L2J_DataPack_BETA/dist/game/data/scripts/quests/Q00458_PerfectForm/32768-02.html
+++ b/L2J_DataPack_BETA/dist/game/data/scripts/quests/Q00458_PerfectForm/32768-02.html
@@ -1,5 +1,6 @@
-<html><body>Kelleyia:<br>
-Sorry. But it's time to go back home...<br>
-Please tell me all about it tomorrow.<br>
-(This is a quest that can be played only once a day. This quest resets everyday at 6:30 am.)
-</body></html>
\ No newline at end of file
+<html><body>
+Kelleyia:<br>
+Yes... someone who searches for someone who has talent. Not too bright are you. My boss, who wishes to remain nameless, has asked me to find adventurers who can demonstrate excellent combat skills. Those who are great are rewarded with greatness. Those who are horrible are rewarded with shame.<br>
+<a action="bypass -h Quest Q00458_PerfectForm 32768-03.html">"What type of skills are you looking for?"</a><br>
+<a action="bypass -h Quest Q00458_PerfectForm 32768-04.html">"Look no further. Greatness has arrived."</a>
+</body></html>
diff --git a/L2J_DataPack_BETA/dist/game/data/scripts/quests/Q00458_PerfectForm/32768-03.html b/L2J_DataPack_BETA/dist/game/data/scripts/quests/Q00458_PerfectForm/32768-03.html
index 94f17270dd..fcf549724d 100644
--- a/L2J_DataPack_BETA/dist/game/data/scripts/quests/Q00458_PerfectForm/32768-03.html
+++ b/L2J_DataPack_BETA/dist/game/data/scripts/quests/Q00458_PerfectForm/32768-03.html
@@ -1,5 +1,6 @@
-<html><body>Kelleyia:<br>
-You will understand what I mean someday, adventurer.<br>
-When that time comes, we can combine our skills. You with your sword, and me with my brain.<br>
-(Only characters with levels 82 and above can play this quest.)
-</body></html>
\ No newline at end of file
+<html><body>
+Kelleyia:<br>
+Oh nothing much. We take a look at the area to see what can be done and then ask would-be-adventure-seekers such as you to do it.<br>
+For instance, the Beast Farm. There are a lot of animals that can be temperamental if raised incorrectly. So, we use that as inspiration when creating a challenge. But it can't be as easy as "kill X of Y". That is just so boring. No, you have to add in a little flare to it.<br>
+<a action="bypass -h Quest Q00458_PerfectForm 32768-04.html">"I think I see where this is going."</a>
+</body></html>
diff --git a/L2J_DataPack_BETA/dist/game/data/scripts/quests/Q00458_PerfectForm/32768-04.htm b/L2J_DataPack_BETA/dist/game/data/scripts/quests/Q00458_PerfectForm/32768-04.htm
deleted file mode 100644
index e08e6bc95d..0000000000
--- a/L2J_DataPack_BETA/dist/game/data/scripts/quests/Q00458_PerfectForm/32768-04.htm
+++ /dev/null
@@ -1,5 +0,0 @@
-<html><body>Kelleyia:<br>
-Yes... someone who searches for someone who has talent. Not too bright are you. My boss, who wishes to remain nameless, has asked me to find adventurers who can demonstrate excellent combat skills. Those who are great are rewarded with greatness. Those who are horrible are rewarded with shame.<br>
-<a action="bypass -h Quest Q00458_PerfectForm 32768-05.htm">"What type of skills are you looking for?"</a><br>
-<a action="bypass -h Quest Q00458_PerfectForm 32768-06.htm">"Look no further. Greatness has arrived."</a>
-</body></html>
\ No newline at end of file
diff --git a/L2J_DataPack_BETA/dist/game/data/scripts/quests/Q00458_PerfectForm/32768-04.html b/L2J_DataPack_BETA/dist/game/data/scripts/quests/Q00458_PerfectForm/32768-04.html
new file mode 100644
index 0000000000..5fc36cb9a8
--- /dev/null
+++ b/L2J_DataPack_BETA/dist/game/data/scripts/quests/Q00458_PerfectForm/32768-04.html
@@ -0,0 +1,7 @@
+<html><body>
+Kelleyia:<br>
+Right. Down to business.<br>
+As you can see, there are <font color="LEVEL">Alpine Buffalo, Grendel, Cougar, and Kookaburra</font> all over the place. Cute in their infant state, but vicious if they are raised incorrectly.<br>
+There are 3 parts to the challenge. Part 1: Raise an Alpine animal to their adult state. Part 2: Slaughter the beast. Part 3...<br>
+<a action="bypass -h Quest Q00458_PerfectForm 32768-05.html">"Looks good... I think I get it."</a>
+</body></html>
diff --git a/L2J_DataPack_BETA/dist/game/data/scripts/quests/Q00458_PerfectForm/32768-05.htm b/L2J_DataPack_BETA/dist/game/data/scripts/quests/Q00458_PerfectForm/32768-05.htm
deleted file mode 100644
index cd1e837b3a..0000000000
--- a/L2J_DataPack_BETA/dist/game/data/scripts/quests/Q00458_PerfectForm/32768-05.htm
+++ /dev/null
@@ -1,5 +0,0 @@
-<html><body>Kelleyia:<br>
-Oh nothing much. We take a look at the area to see what can be done and then ask would-be-adventure-seekers such as you to do it.<br>
-For instance, the Beast Farm.There are a lot of animals that can be temperamental if raised incorrectly. So, we use that as inspiration when creating a challenge. But it can't be as easy as "kill X of Y". That is just so boring. No, you have to add in a little flare to it.<br>
-<a action="bypass -h Quest Q00458_PerfectForm 32768-06.htm">"I think I see where this is going."</a>
-</body></html>
\ No newline at end of file
diff --git a/L2J_DataPack_BETA/dist/game/data/scripts/quests/Q00458_PerfectForm/32768-05.html b/L2J_DataPack_BETA/dist/game/data/scripts/quests/Q00458_PerfectForm/32768-05.html
new file mode 100644
index 0000000000..44d1216c0a
--- /dev/null
+++ b/L2J_DataPack_BETA/dist/game/data/scripts/quests/Q00458_PerfectForm/32768-05.html
@@ -0,0 +1,7 @@
+<html><body>
+Kelleyia:<br>
+No, you do NOT get it you amateur. Part 3 is the most important part of the challenge. It separates the no talent wannabes from the pros.<br>
+You must score <font color="LEVEL">Over-hits on fully grown Alpine animals</font>. A kill is a kill and that is all fine and dandy, but we are looking for perfection here. Bonus points are scored for performing <font color="LEVEL">Critical Over-hits</font>.<br>
+Do you understand the challenge?<br>
+<a action="bypass -h Quest Q00458_PerfectForm 32768-06.htm">"Yes... I think."</a>
+</body></html>
diff --git a/L2J_DataPack_BETA/dist/game/data/scripts/quests/Q00458_PerfectForm/32768-06.htm b/L2J_DataPack_BETA/dist/game/data/scripts/quests/Q00458_PerfectForm/32768-06.htm
index 6ea3b68d73..b7c24ffdf3 100644
--- a/L2J_DataPack_BETA/dist/game/data/scripts/quests/Q00458_PerfectForm/32768-06.htm
+++ b/L2J_DataPack_BETA/dist/game/data/scripts/quests/Q00458_PerfectForm/32768-06.htm
@@ -1,6 +1,9 @@
-<html><body>Kelleyia:<br>
-Right. Down to business.<br>
-As you can see, there are <font color="LEVEL">Alpine Buffalo, Grendel, Cougar, and Kookaburra</font> all over the place. Cute in their infant state, but vicious if they are raised incorrectly.<br>
-There are 3 parts to the challenge.Part 1: Raise an Alpine animal to their adult state. Part 2: Slaughter the beast. Part 3...<br>
-<a action="bypass -h Quest Q00458_PerfectForm 32768-07.htm">"Look good I think I get it."</a>
-</body></html>
\ No newline at end of file
+<html><body>
+Kelleyia:<br>
+Really... you really want me to go over this again? It is simple. Find an <font color="LEVEL">Alpine Kookaburra, Alpine Cougar, Alpine Buffalo, or Alpine Grendel</font> and feed it on spice until it grows into an adult. Speak to my associate over here to purchase spice.<br>
+Once it is an adult, kill it trying to score as many <font color="LEVEL">Over-hits and Critical Over-hits</font> as possible.<br>
+The limit is <font color="LEVEL">10 of each</font> type of animal. That's a total of 40 if you can't add. If you can't score an Over-hit before killing an animal, you'll have to wait until tomorrow to try again.<br>
+Do you think you can follow these directions?<br>
+<a action="bypass -h Quest Q00458_PerfectForm 32768-10.htm">Accept the challenge.</a><br>
+<a action="bypass -h Quest Q00458_PerfectForm 32768-07.htm">Annoy Her.</a>
+</body></html>
diff --git a/L2J_DataPack_BETA/dist/game/data/scripts/quests/Q00458_PerfectForm/32768-07.htm b/L2J_DataPack_BETA/dist/game/data/scripts/quests/Q00458_PerfectForm/32768-07.htm
index ba4b3990a5..20ff31a390 100644
--- a/L2J_DataPack_BETA/dist/game/data/scripts/quests/Q00458_PerfectForm/32768-07.htm
+++ b/L2J_DataPack_BETA/dist/game/data/scripts/quests/Q00458_PerfectForm/32768-07.htm
@@ -1,6 +1,6 @@
-<html><body>Kelleyia:<br>
-No, you do NOT get it you amateur. Part 3 is the most important part of the challenge... It separates the no talent wannabes from the pros.<br>
-You must score <font color="LEVEL">Over-hits on fully grown Alpine animals</font>. A kill is a kill and that is all fine and dandy, but we are looking for perfection here. Bonus points are scored for performing <font color="LEVEL">Critical Over-hits</font>.<br>
-Do you understand the challenge?<br>
-<a action="bypass -h Quest Q00458_PerfectForm 32768-08.htm">"Yes... I think."</a>
-</body></html>
\ No newline at end of file
+<html><body>
+Kelleyia:<br>
+Am I wasting my time here or what? Do you want to see if you got what it takes, or am I going to have to go speak to some other adventurer who can stop annoying me?<br>
+<a action="bypass -h Quest Q00458_PerfectForm 32768-10.htm">Accept the challenge.</a><br>
+<a action="bypass -h Quest Q00458_PerfectForm 32768-08.htm">Keep annoying her.</a>
+</body></html>
diff --git a/L2J_DataPack_BETA/dist/game/data/scripts/quests/Q00458_PerfectForm/32768-08.htm b/L2J_DataPack_BETA/dist/game/data/scripts/quests/Q00458_PerfectForm/32768-08.htm
index aa061e74cf..84543a5899 100644
--- a/L2J_DataPack_BETA/dist/game/data/scripts/quests/Q00458_PerfectForm/32768-08.htm
+++ b/L2J_DataPack_BETA/dist/game/data/scripts/quests/Q00458_PerfectForm/32768-08.htm
@@ -1,8 +1,7 @@
-<html><body>Kelleyia:<br>
-Really... you really want me to go over this again?... It is simple. Find an <font color="LEVEL">Alpine Kookaburra, Alpine Cougar, Alpine Buffalo, or Alpine Grendel</font> and feed it on spice until it grows into an adult. Speak to my associate over here to purchase spice.<br>
-Once it is an adult, kill it trying to score as many <font color="LEVEL">Over-hits and Critical Over-hits</font> as possible.<br>
-The limit is <font color="LEVEL">10 of each</font> type of animal. That's a total of 40 if you can't add. If you can't score an Over-hit before killing an animal, you'll have to wait until tomorrow to try again.<br>
-Do you think you can follow these directions?<br>
-<a action="bypass -h Quest Q00458_PerfectForm 32768-12.html">Accept the challenge.</a><br>
-<a action="bypass -h Quest Q00458_PerfectForm 32768-09.htm">Annoy Her.</a>
-</body></html>
\ No newline at end of file
+<html><body>
+Kelleyia:<br>
+No, no, no, I will not be drawn into this ridiculous game.<br>
+Either accept the challenge or walk away.<br>
+<a action="bypass -h Quest Q00458_PerfectForm 32768-10.htm">Accept the challenge.</a><br>
+<a action="bypass -h Quest Q00458_PerfectForm 32768-09.htm">Keep annoying her.</a>
+</body></html>
diff --git a/L2J_DataPack_BETA/dist/game/data/scripts/quests/Q00458_PerfectForm/32768-09.htm b/L2J_DataPack_BETA/dist/game/data/scripts/quests/Q00458_PerfectForm/32768-09.htm
index 4145e2711c..0f9b929a85 100644
--- a/L2J_DataPack_BETA/dist/game/data/scripts/quests/Q00458_PerfectForm/32768-09.htm
+++ b/L2J_DataPack_BETA/dist/game/data/scripts/quests/Q00458_PerfectForm/32768-09.htm
@@ -1,5 +1,6 @@
-<html><body>Kelleyia:<br>
-Am I wasting my time here or what? Do you want to see if you got what it takes, or am I going to have to go speak to some other adventurer who can stop annoying me?<br>
-<a action="bypass -h Quest Q00458_PerfectForm 32768-12.html">Accept the challenge.</a><br>
-<a action="bypass -h Quest Q00458_PerfectForm 32768-10.htm">Keep annoying her.</a>
-</body></html>
\ No newline at end of file
+<html><body>
+Kelleyia:<br>
+Ah, seriously, there isn't anything further if you keep annoying me. Go ahead and accept the challenge.<br>
+<a action="bypass -h Quest Q00458_PerfectForm 32768-10.htm">Accept the challenge.</a><br>
+<a action="bypass -h Quest Q00458_PerfectForm 32768-08.htm">KEEP ANNOYING HER.</a>
+</body></html>
diff --git a/L2J_DataPack_BETA/dist/game/data/scripts/quests/Q00458_PerfectForm/32768-10.htm b/L2J_DataPack_BETA/dist/game/data/scripts/quests/Q00458_PerfectForm/32768-10.htm
index 1937aad344..26e1809897 100644
--- a/L2J_DataPack_BETA/dist/game/data/scripts/quests/Q00458_PerfectForm/32768-10.htm
+++ b/L2J_DataPack_BETA/dist/game/data/scripts/quests/Q00458_PerfectForm/32768-10.htm
@@ -1,6 +1,6 @@
-<html><body>Kelleyia:<br>
-No, no, no, I will not be drawn into this ridiculous game.<br>
-Either accept the challenge or walk away.<br>
-<a action="bypass -h Quest Q00458_PerfectForm 32768-12.html">Accept the challenge.</a><br>
-<a action="bypass -h Quest Q00458_PerfectForm 32768-11.htm">Keep annoying her.</a>
-</body></html>
\ No newline at end of file
+<html><body>
+Kelleyia:<br>
+We have set up spotters all around the area to watch you so you can't cheat.<br>
+We will keep track and let you know how well you have done.<br>
+Break a leg!
+</body></html>
diff --git a/L2J_DataPack_BETA/dist/game/data/scripts/quests/Q00458_PerfectForm/32768-11.htm b/L2J_DataPack_BETA/dist/game/data/scripts/quests/Q00458_PerfectForm/32768-11.htm
deleted file mode 100644
index 1f3cffe1a4..0000000000
--- a/L2J_DataPack_BETA/dist/game/data/scripts/quests/Q00458_PerfectForm/32768-11.htm
+++ /dev/null
@@ -1,5 +0,0 @@
-<html><body>Kelleyia:<br>
-Ah, seriously, there isn't anything further if you keep annoying me. Go ahead and accept the challenge.<br>
-<a action="bypass -h Quest Q00458_PerfectForm 32768-12.html">Accept the challenge.</a><br>
-<a action="bypass -h Quest Q00458_PerfectForm 32768-17.html">KEEP ANNOYING HER.</a>
-</body></html>
\ No newline at end of file
diff --git a/L2J_DataPack_BETA/dist/game/data/scripts/quests/Q00458_PerfectForm/32768-11.html b/L2J_DataPack_BETA/dist/game/data/scripts/quests/Q00458_PerfectForm/32768-11.html
new file mode 100644
index 0000000000..8532b3d46b
--- /dev/null
+++ b/L2J_DataPack_BETA/dist/game/data/scripts/quests/Q00458_PerfectForm/32768-11.html
@@ -0,0 +1,5 @@
+<html><body>
+Kelleyia:<br>
+Remember, we will be judging you based on skill, technique, and consistency. We are looking for total perfection.<br>
+Fully grown <font color="LEVEL">Alpine Kookaburra, Alpine Cougar, Alpine Buffalo, Alpine Grendel</font> and <font color="LEVEL">Over-hits</font> count. Anything else is worthless.
+</body></html>
diff --git a/L2J_DataPack_BETA/dist/game/data/scripts/quests/Q00458_PerfectForm/32768-12.html b/L2J_DataPack_BETA/dist/game/data/scripts/quests/Q00458_PerfectForm/32768-12.html
index 2d54a9fd4a..617316132b 100644
--- a/L2J_DataPack_BETA/dist/game/data/scripts/quests/Q00458_PerfectForm/32768-12.html
+++ b/L2J_DataPack_BETA/dist/game/data/scripts/quests/Q00458_PerfectForm/32768-12.html
@@ -1,5 +1,5 @@
-<html><body>Kelleyia:<br>
-We have set up spotters all around the area to watch you so you can't cheat.<br>
-We will keep track and let you know how well you have done.<br>
-Break a leg!
-</body></html>
\ No newline at end of file
+<html><body>
+Kelleyia:<br>
+Our spotters have reported you aren't quite finished yet.<br>
+Get back in the field and show us what you got.
+</body></html>
diff --git a/L2J_DataPack_BETA/dist/game/data/scripts/quests/Q00458_PerfectForm/32768-13.html b/L2J_DataPack_BETA/dist/game/data/scripts/quests/Q00458_PerfectForm/32768-13.html
index 30f0e2a6ed..9cc1a9c7ca 100644
--- a/L2J_DataPack_BETA/dist/game/data/scripts/quests/Q00458_PerfectForm/32768-13.html
+++ b/L2J_DataPack_BETA/dist/game/data/scripts/quests/Q00458_PerfectForm/32768-13.html
@@ -1,4 +1,6 @@
-<html><body>Kelleyia:<br>
-Remember, we will be judging you based on skill, technique, and consistency. We are looking for total perfection.<br>
-Fully grown <font color="LEVEL">Alpine Kookaburra, Alpine Cougar, Alpine Buffalo, Alpine Grendel</font> and <font color="LEVEL">Over-hits</font> count. Anything else is worthless.
-</body></html>
\ No newline at end of file
+<html><body>
+Kelleyia:<br>
+And done... you look a little winded. Are you sure that wasn't too much for you?<br>
+Are you ready to hear your results?<br>
+<a action="bypass -h Quest Q00458_PerfectForm results1">Listen to Results.</a>
+</body></html>
diff --git a/L2J_DataPack_BETA/dist/game/data/scripts/quests/Q00458_PerfectForm/32768-14.html b/L2J_DataPack_BETA/dist/game/data/scripts/quests/Q00458_PerfectForm/32768-14.html
deleted file mode 100644
index bd46802a17..0000000000
--- a/L2J_DataPack_BETA/dist/game/data/scripts/quests/Q00458_PerfectForm/32768-14.html
+++ /dev/null
@@ -1,4 +0,0 @@
-<html><body>Kelleyia:<br>
-Our spotters have reported you aren't quite finished yet.<br>
-Get back in the field and show us what you got.
-</body></html>
\ No newline at end of file
diff --git a/L2J_DataPack_BETA/dist/game/data/scripts/quests/Q00458_PerfectForm/32768-14a.html b/L2J_DataPack_BETA/dist/game/data/scripts/quests/Q00458_PerfectForm/32768-14a.html
new file mode 100644
index 0000000000..fb2b2becb9
--- /dev/null
+++ b/L2J_DataPack_BETA/dist/game/data/scripts/quests/Q00458_PerfectForm/32768-14a.html
@@ -0,0 +1,5 @@
+<html><body>
+Kelleyia:<br>
+First, I'd like to discuss your skill level. Out of the 40 kills, you had <font color="LEVEL"><?number?> Over-hits</font>. Wow, a perfect number! I almost never see that!<br>
+<a action="bypass -h Quest Q00458_PerfectForm results2">"Yeah, I'm kind of a perfectionist."</a>
+</body></html>
diff --git a/L2J_DataPack_BETA/dist/game/data/scripts/quests/Q00458_PerfectForm/32768-14b.html b/L2J_DataPack_BETA/dist/game/data/scripts/quests/Q00458_PerfectForm/32768-14b.html
new file mode 100644
index 0000000000..59fb2bdb34
--- /dev/null
+++ b/L2J_DataPack_BETA/dist/game/data/scripts/quests/Q00458_PerfectForm/32768-14b.html
@@ -0,0 +1,5 @@
+<html><body>
+Kelleyia:<br>
+First, I'd like to discuss your skill level. Out of the 40 kills, you had <font color="LEVEL"><?number?> Over-hits</font>. It's okay... but not great. We have seen better.<br>
+<a action="bypass -h Quest Q00458_PerfectForm results2">"I'm sure I had more than that."</a>
+</body></html>
diff --git a/L2J_DataPack_BETA/dist/game/data/scripts/quests/Q00458_PerfectForm/32768-14c.html b/L2J_DataPack_BETA/dist/game/data/scripts/quests/Q00458_PerfectForm/32768-14c.html
new file mode 100644
index 0000000000..82e255ed07
--- /dev/null
+++ b/L2J_DataPack_BETA/dist/game/data/scripts/quests/Q00458_PerfectForm/32768-14c.html
@@ -0,0 +1,5 @@
+<html><body>
+Kelleyia:<br>
+First, I'd like to discuss your skill level. Out of the 40 kills, you had <font color="LEVEL"><?number?> Over-hits</font>. Hmm... seems like you didn't quite understand the challenge. Or is it that you just don't have what it takes to be a pro.<br>
+<a action="bypass -h Quest Q00458_PerfectForm results2">"Yeah, yeah. Next."</a>
+</body></html>
diff --git a/L2J_DataPack_BETA/dist/game/data/scripts/quests/Q00458_PerfectForm/32768-15.html b/L2J_DataPack_BETA/dist/game/data/scripts/quests/Q00458_PerfectForm/32768-15.html
deleted file mode 100644
index e00e9ad654..0000000000
--- a/L2J_DataPack_BETA/dist/game/data/scripts/quests/Q00458_PerfectForm/32768-15.html
+++ /dev/null
@@ -1,5 +0,0 @@
-<html><body>Kelleyia:<br>
-And done... you look a little winded. Are you sure that wasn't too much for you?<br>
-Are you ready to hear your results?<br>
-<a action="bypass -h Quest Q00458_PerfectForm 32768-16.html">Listen to Results.</a>
-</body></html>
\ No newline at end of file
diff --git a/L2J_DataPack_BETA/dist/game/data/scripts/quests/Q00458_PerfectForm/32768-15a.html b/L2J_DataPack_BETA/dist/game/data/scripts/quests/Q00458_PerfectForm/32768-15a.html
new file mode 100644
index 0000000000..6ff3ba62f7
--- /dev/null
+++ b/L2J_DataPack_BETA/dist/game/data/scripts/quests/Q00458_PerfectForm/32768-15a.html
@@ -0,0 +1,5 @@
+<html><body>
+Kelleyia:<br>
+Second, I'd like to discuss your technique. It also appears that you like to use a lot of flash in your moves. Of the 40 kills, you managed to get <font color="LEVEL"><?number?> Critical Over-hits</font>. That is impressive. I don't think we have ever encountered someone who has managed that.<br>
+<a action="bypass -h Quest Q00458_PerfectForm results3">"Yep, I am awesome."</a>
+</body></html>
diff --git a/L2J_DataPack_BETA/dist/game/data/scripts/quests/Q00458_PerfectForm/32768-15b.html b/L2J_DataPack_BETA/dist/game/data/scripts/quests/Q00458_PerfectForm/32768-15b.html
new file mode 100644
index 0000000000..6ec9f0b9c3
--- /dev/null
+++ b/L2J_DataPack_BETA/dist/game/data/scripts/quests/Q00458_PerfectForm/32768-15b.html
@@ -0,0 +1,5 @@
+<html><body>
+Kelleyia:<br>
+Second, I'd like to discuss your technique. Not a lot of zest in your moves. Of the 40 kills, you managed to get <font color="LEVEL"><?number?> Critical Over-hits</font>. Not that exciting to watch. With someone of your talents, I would have expected more.<br>
+<a action="bypass -h Quest Q00458_PerfectForm results3">"Well, I wasn't really trying."</a>
+</body></html>
diff --git a/L2J_DataPack_BETA/dist/game/data/scripts/quests/Q00458_PerfectForm/32768-15c.html b/L2J_DataPack_BETA/dist/game/data/scripts/quests/Q00458_PerfectForm/32768-15c.html
new file mode 100644
index 0000000000..bd66726f88
--- /dev/null
+++ b/L2J_DataPack_BETA/dist/game/data/scripts/quests/Q00458_PerfectForm/32768-15c.html
@@ -0,0 +1,5 @@
+<html><body>
+Kelleyia:<br>
+Second, I'd like to discuss your technique. Wow. You managed to have <font color="LEVEL"><?number?> Critical Over-hits</font>. Well, I've seen worse... no not really. You are really that bad.<br>
+<a action="bypass -h Quest Q00458_PerfectForm results3">Continue listening to the abuse.</a>
+</body></html>
diff --git a/L2J_DataPack_BETA/dist/game/data/scripts/quests/Q00458_PerfectForm/32768-16a.html b/L2J_DataPack_BETA/dist/game/data/scripts/quests/Q00458_PerfectForm/32768-16a.html
index 0b2c6a1025..4c491d22fd 100644
--- a/L2J_DataPack_BETA/dist/game/data/scripts/quests/Q00458_PerfectForm/32768-16a.html
+++ b/L2J_DataPack_BETA/dist/game/data/scripts/quests/Q00458_PerfectForm/32768-16a.html
@@ -1,4 +1,6 @@
-<html><body>Kelleyia:<br>
-First, I'd like to discuss your skill level. Out of the 40 kills, you had <font color="LEVEL">%overhits% Over-hits</font>. Wow, a perfect number! I almost never see that!<br>
+<html><body>
+Kelleyia:<br>
+Lastly, I want to discuss your consistency. You managed <font color="LEVEL"><?number?> consecutive Over-hit(s)</font>. You've demonstrated all the traits of a perfect killing machine.<br>
+I don't have anything else to go over. Here is your reward.<br>
 <a action="bypass -h Quest Q00458_PerfectForm 32768-17.html">Graciously accept the award.</a>
-</body></html>
\ No newline at end of file
+</body></html>
diff --git a/L2J_DataPack_BETA/dist/game/data/scripts/quests/Q00458_PerfectForm/32768-16b.html b/L2J_DataPack_BETA/dist/game/data/scripts/quests/Q00458_PerfectForm/32768-16b.html
index 8540d54e69..2faff0844a 100644
--- a/L2J_DataPack_BETA/dist/game/data/scripts/quests/Q00458_PerfectForm/32768-16b.html
+++ b/L2J_DataPack_BETA/dist/game/data/scripts/quests/Q00458_PerfectForm/32768-16b.html
@@ -1,4 +1,6 @@
-<html><body>Kelleyia:<br>
-First, I'd like to discuss your skill level. Out of the 40 kills, you had <font color="LEVEL">%overhits% Over-hits</font>. It's okay... but not great. We have seen better.<br>
+<html><body>
+Kelleyia:<br>
+Lastly, I want to discuss your consistency. You managed <font color="LEVEL"><?number?> consecutive Over-hit(s)</font>. It's about average. You could do better.<br>
+I don't have anything else to go over. Here is your reward.<br>
 <a action="bypass -h Quest Q00458_PerfectForm 32768-17.html">Embarrassed... accept the reward.</a>
-</body></html>
\ No newline at end of file
+</body></html>
diff --git a/L2J_DataPack_BETA/dist/game/data/scripts/quests/Q00458_PerfectForm/32768-16c.html b/L2J_DataPack_BETA/dist/game/data/scripts/quests/Q00458_PerfectForm/32768-16c.html
index 0908991070..76e6856c7b 100644
--- a/L2J_DataPack_BETA/dist/game/data/scripts/quests/Q00458_PerfectForm/32768-16c.html
+++ b/L2J_DataPack_BETA/dist/game/data/scripts/quests/Q00458_PerfectForm/32768-16c.html
@@ -1,4 +1,6 @@
-<html><body>Kelleyia:<br>
-First, I'd like to discuss your skill level. Out of the 40 kills, you had <font color="LEVEL">%overhits% Over-hits</font>. Hmm... seems like you didn't quite understand the challenge. Or is it that you just don't have what it takes to be a pro.<br>
+<html><body>
+Kelleyia:<br>
+Lastly I want to discuss your consistency. Of the 40 kills, you managed <font color="LEVEL"><?number?> consecutive Over-hit(s)</font>. Yes, you consistently demonstrated how bad at this you really are.<br>
+Now that I have finished crushing your spirit, here is your reward for your work.<br>
 <a action="bypass -h Quest Q00458_PerfectForm 32768-17.html">Humiliated... accept the reward.</a>
-</body></html>
\ No newline at end of file
+</body></html>
diff --git a/L2J_DataPack_BETA/dist/game/data/scripts/quests/Q00458_PerfectForm/32768-17.html b/L2J_DataPack_BETA/dist/game/data/scripts/quests/Q00458_PerfectForm/32768-17.html
index c1aa2f3010..db1f8e9896 100644
--- a/L2J_DataPack_BETA/dist/game/data/scripts/quests/Q00458_PerfectForm/32768-17.html
+++ b/L2J_DataPack_BETA/dist/game/data/scripts/quests/Q00458_PerfectForm/32768-17.html
@@ -1,3 +1,4 @@
-<html><body>Kelleyia:<br>
+<html><body>
+Kelleyia:<br>
 If you want to give it a shot again, let me know.
-</body></html>
\ No newline at end of file
+</body></html>
diff --git a/L2J_DataPack_BETA/dist/game/data/scripts/quests/Q00458_PerfectForm/32768-18.htm b/L2J_DataPack_BETA/dist/game/data/scripts/quests/Q00458_PerfectForm/32768-18.htm
new file mode 100644
index 0000000000..eb08c2c356
--- /dev/null
+++ b/L2J_DataPack_BETA/dist/game/data/scripts/quests/Q00458_PerfectForm/32768-18.htm
@@ -0,0 +1,6 @@
+<html><body>
+Kelleyia:<br>
+Sorry. But it's time to go back home...<br>
+Please tell me all about it tomorrow.<br>
+(This is a quest that can be played only once a day. This quest resets everyday at 6:30 am.)
+</body></html>
diff --git a/L2J_DataPack_BETA/dist/game/data/scripts/quests/Q00458_PerfectForm/Q00458_PerfectForm.java b/L2J_DataPack_BETA/dist/game/data/scripts/quests/Q00458_PerfectForm/Q00458_PerfectForm.java
index a5da976303..d9570421a1 100644
--- a/L2J_DataPack_BETA/dist/game/data/scripts/quests/Q00458_PerfectForm/Q00458_PerfectForm.java
+++ b/L2J_DataPack_BETA/dist/game/data/scripts/quests/Q00458_PerfectForm/Q00458_PerfectForm.java
@@ -14,11 +14,9 @@
  */
 package quests.Q00458_PerfectForm;
 
-import com.l2jserver.Config;
 import com.l2jserver.gameserver.model.actor.L2Attackable;
 import com.l2jserver.gameserver.model.actor.L2Npc;
 import com.l2jserver.gameserver.model.actor.instance.L2PcInstance;
-import com.l2jserver.gameserver.model.holders.ItemHolder;
 import com.l2jserver.gameserver.model.quest.Quest;
 import com.l2jserver.gameserver.model.quest.QuestState;
 import com.l2jserver.gameserver.model.quest.QuestState.QuestType;
@@ -26,207 +24,232 @@ import com.l2jserver.gameserver.model.quest.State;
 import com.l2jserver.gameserver.util.Util;
 
 /**
- * Perfect Form (458)
- * @author centrio, Zoey76
+ * Perfect Form (458).<br>
+ * @author jurchiks
  */
 public class Q00458_PerfectForm extends Quest
 {
-	// NPCs
-	private static final int _Kelleyia = 32768;
+	private static final int KELLEYIA = 32768;
 	
-	// Mobs
-	private static final int[] _mobs1 =
+	// level 4 (full grown) feedable beasts
+	private static final int[] KOOKABURRAS =
 	{
 		18878,
 		18879
 	};
-	private static final int[] _mobs2 =
+	private static final int[] COUGARS =
 	{
 		18885,
 		18886
 	};
-	private static final int[] _mobs3 =
+	private static final int[] BUFFALOS =
 	{
 		18892,
 		18893
 	};
-	private static final int[] _mobs4 =
+	private static final int[] GRENDELS =
 	{
 		18899,
 		18900
 	};
 	
-	private final int[][] _mobs =
+	private static final int[][] ALL_MOBS =
 	{
-		_mobs1,
-		_mobs2,
-		_mobs3,
-		_mobs4
+		KOOKABURRAS,
+		COUGARS,
+		BUFFALOS,
+		GRENDELS
 	};
-	
-	private static final ItemHolder[] _rewards1 =
-	{
-		new ItemHolder(10397, 2),
-		new ItemHolder(10398, 2),
-		new ItemHolder(10399, 2),
-		new ItemHolder(10400, 2),
-		new ItemHolder(10401, 2),
-		new ItemHolder(10402, 2),
-		new ItemHolder(10403, 2),
-		new ItemHolder(10404, 2),
-		new ItemHolder(10405, 2)
-	};
-	
-	private static final ItemHolder[] _rewards2 =
+	// 60% icarus weapon recipes (except kamael weapons)
+	// @formatter:off
+	private static final int[] ICARUS_WEAPON_RECIPES =
 	{
-		new ItemHolder(10397, 5),
-		new ItemHolder(10398, 5),
-		new ItemHolder(10399, 5),
-		new ItemHolder(10400, 5),
-		new ItemHolder(10401, 5),
-		new ItemHolder(10402, 5),
-		new ItemHolder(10403, 5),
-		new ItemHolder(10404, 5),
-		new ItemHolder(10405, 5)
+		10373, 10374, 10375, 10376, 10377, 10378, 10379, 10380, 10381
 	};
 	
-	private static final ItemHolder[] _rewards3 =
+	private static final int[] ICARUS_WEAPON_PIECES =
 	{
-		new ItemHolder(10373, 1),
-		new ItemHolder(10374, 1),
-		new ItemHolder(10375, 1),
-		new ItemHolder(10376, 1),
-		new ItemHolder(10377, 1),
-		new ItemHolder(10378, 1),
-		new ItemHolder(10379, 1),
-		new ItemHolder(10380, 1),
-		new ItemHolder(10381, 1)
+		10397, 10398, 10399, 10400, 10401, 10402, 10403, 10404, 10405
 	};
-	
-	public Q00458_PerfectForm(int questId, String name, String descr)
-	{
-		super(questId, name, descr);
-		
-		addStartNpc(_Kelleyia);
-		addTalkId(_Kelleyia);
-		
-		addKillId(_mobs1);
-		addKillId(_mobs2);
-		addKillId(_mobs3);
-		addKillId(_mobs4);
-	}
+	// @formatter:on
 	
 	@Override
-	public String onAdvEvent(String event, L2Npc npc, L2PcInstance player)
+	public String onTalk(L2Npc npc, L2PcInstance player)
 	{
-		String htmltext = event;
+		String htmltext = getNoQuestMsg(player);
 		final QuestState st = player.getQuestState(getName());
 		if (st == null)
 		{
 			return htmltext;
 		}
 		
-		if (npc.getNpcId() == _Kelleyia)
+		switch (st.getState())
 		{
-			final int overHits = st.getInt("overHits");
-			if (event.equalsIgnoreCase("32768-12.html"))
-			{
-				st.setState(State.STARTED);
-				st.set("cond", "1");
-				st.playSound("ItemSound.quest_accept");
-			}
-			else if (event.equalsIgnoreCase("32768-16.html"))
-			{
-				if ((overHits >= 0) && (overHits <= 6))
-				{
-					htmltext = getHtm(st.getPlayer().getHtmlPrefix(), "32768-16c.html");
-					htmltext = htmltext.replace("%overhits%", "" + overHits);
-				}
-				else if ((overHits >= 7) && (overHits <= 19))
+			case State.COMPLETED:
+				if (!st.isNowAvailable())
 				{
-					htmltext = getHtm(st.getPlayer().getHtmlPrefix(), "32768-16b.html");
-					htmltext = htmltext.replace("%overhits%", "" + overHits);
-				}
-				else if (overHits >= 20)
-				{
-					htmltext = getHtm(st.getPlayer().getHtmlPrefix(), "32768-16a.html");
-					htmltext = htmltext.replace("%overhits%", "" + overHits);
-				}
-			}
-			else if (event.equalsIgnoreCase("32768-17.html"))
-			{
-				if ((overHits >= 0) && (overHits <= 6))
-				{
-					final int rnd = getRandom(_rewards1.length);
-					st.giveItems(_rewards1[rnd].getId(), _rewards1[rnd].getCount() * (long) Config.RATE_QUEST_REWARD);
-				}
-				else if ((overHits >= 7) && (overHits <= 19))
-				{
-					final int rnd = getRandom(_rewards2.length);
-					st.giveItems(_rewards2[rnd].getId(), _rewards2[rnd].getCount() * (long) Config.RATE_QUEST_REWARD);
+					htmltext = "32768-18.htm";
+					break;
 				}
-				else if (overHits >= 20)
+				st.setState(State.CREATED);
+				//$FALL-THROUGH$
+			case State.CREATED:
+				htmltext = (player.getLevel() > 81) ? "32768-01.htm" : "32768-00.htm";
+				break;
+			case State.STARTED:
+				switch (st.getCond())
 				{
-					final int rnd = getRandom(_rewards3.length);
-					st.giveItems(_rewards3[rnd].getId(), _rewards3[rnd].getCount() * (long) Config.RATE_QUEST_REWARD);
+					case 1:
+						if (st.get("18879").equals("0") && st.get("18886").equals("0") && st.get("18893").equals("0") && st.get("18900").equals("0"))
+						{
+							htmltext = "32768-11.html";
+						}
+						else
+						{
+							htmltext = "32768-12.html";
+						}
+						break;
+					case 2:
+						htmltext = "32768-13.html";
+						break;
 				}
-				
-				st.giveItems(15482, (int) Config.RATE_QUEST_REWARD);
-				st.giveItems(15483, (int) Config.RATE_QUEST_REWARD);
-				st.playSound("ItemSound.quest_finish");
-				st.exitQuest(QuestType.DAILY);
-			}
+				break;
 		}
 		return htmltext;
 	}
 	
 	@Override
-	public String onTalk(L2Npc npc, L2PcInstance player)
+	public String onAdvEvent(String event, L2Npc npc, L2PcInstance player)
 	{
-		String htmltext = getNoQuestMsg(player);
+		String noQuest = getNoQuestMsg(player);
 		final QuestState st = player.getQuestState(getName());
 		if (st == null)
 		{
-			return htmltext;
+			return noQuest;
 		}
 		
-		if (npc.getNpcId() == _Kelleyia)
+		String htmltext = event;
+		int overHits = 0;
+		boolean overHitHtml = false;
+		
+		switch (event)
 		{
-			switch (st.getState())
-			{
-				case State.CREATED:
-					htmltext = (player.getLevel() >= 82) ? "32768-01.htm" : "32768-03.html";
-					break;
-				case State.STARTED:
-					final int cond = st.getInt("cond");
-					if (cond == 1)
+			case "32768-10.htm":
+				st.startQuest();
+				// to avoid NULL values
+				st.set("18879", "0");
+				st.set("18886", "0");
+				st.set("18893", "0");
+				st.set("18900", "0");
+				st.set("overhitsConsecutive", "0");
+				break;
+			case "results1":
+				if (st.isCond(2))
+				{
+					final int overhitsTotal = st.getInt("overhitsTotal");
+					if (overhitsTotal >= 35)
 					{
-						if ((st.getInt("mobs1") == 0) && (st.getInt("mobs2") == 0) && (st.getInt("mobs3") == 0) && (st.getInt("mobs4") == 0))
-						{
-							htmltext = "32768-13.html";
-						}
-						else
-						{
-							htmltext = "32768-14.html";
-						}
+						htmltext = "32768-14a.html";
 					}
-					else if (cond == 2)
+					else if (overhitsTotal >= 10)
 					{
-						htmltext = "32768-15.html";
+						htmltext = "32768-14b.html";
 					}
-					break;
-				case State.COMPLETED:
-					if (st.isNowAvailable())
+					else
+					{
+						htmltext = "32768-14c.html";
+					}
+					overHits = overhitsTotal;
+					overHitHtml = true;
+				}
+				else
+				{
+					htmltext = noQuest;
+				}
+				break;
+			case "results2":
+				if (st.isCond(2))
+				{
+					final int overhitsCritical = st.getInt("overhitsCritical");
+					if (overhitsCritical >= 30)
+					{
+						htmltext = "32768-15a.html";
+					}
+					else if (overhitsCritical >= 5)
 					{
-						st.setState(State.CREATED);
-						htmltext = (player.getLevel() >= 82) ? "32768-01.htm" : "32768-03.html";
+						htmltext = "32768-15b.html";
 					}
 					else
 					{
-						htmltext = "32768-02.html";
+						htmltext = "32768-15c.html";
 					}
-					break;
-			}
+					overHits = overhitsCritical;
+					overHitHtml = true;
+				}
+				else
+				{
+					htmltext = noQuest;
+				}
+				break;
+			case "results3":
+				if (st.isCond(2))
+				{
+					final int overhitsConsecutive = st.getInt("overhitsConsecutive");
+					if (overhitsConsecutive >= 20)
+					{
+						htmltext = "32768-16a.html";
+					}
+					else if (overhitsConsecutive >= 7)
+					{
+						htmltext = "32768-16b.html";
+					}
+					else
+					{
+						htmltext = "32768-16c.html";
+					}
+					overHits = overhitsConsecutive;
+					overHitHtml = true;
+				}
+				else
+				{
+					htmltext = noQuest;
+				}
+				break;
+			case "32768-17.html":
+				if (st.isCond(2))
+				{
+					int overhitsConsecutive = st.getInt("overhitsConsecutive");
+					if (overhitsConsecutive >= 20)
+					{
+						int rnd = getRandom(ICARUS_WEAPON_RECIPES.length);
+						st.rewardItems(ICARUS_WEAPON_RECIPES[rnd], 1);
+					}
+					else if (overhitsConsecutive >= 7)
+					{
+						int rnd = getRandom(ICARUS_WEAPON_PIECES.length);
+						st.rewardItems(ICARUS_WEAPON_PIECES[rnd], 5);
+					}
+					else
+					{
+						int rnd = getRandom(ICARUS_WEAPON_PIECES.length);
+						st.rewardItems(ICARUS_WEAPON_PIECES[rnd], 2);
+						// not sure if this should use rewardItems
+						st.giveItems(15482, 10); // Golden Spice Crate
+						st.giveItems(15483, 10); // Crystal Spice Crate
+					}
+					st.exitQuest(QuestType.DAILY, true);
+				}
+				else
+				{
+					htmltext = noQuest;
+				}
+				break;
+		}
+		
+		if (overHitHtml)
+		{
+			htmltext = getHtm(player.getHtmlPrefix(), htmltext);
+			htmltext = htmltext.replace("<?number?>", "" + overHits);
 		}
 		return htmltext;
 	}
@@ -235,27 +258,56 @@ public class Q00458_PerfectForm extends Quest
 	public String onKill(L2Npc npc, L2PcInstance player, boolean isPet)
 	{
 		final QuestState st = player.getQuestState(getName());
-		if (st == null)
-		{
-			return null;
-		}
-		
-		if (st.getInt("cond") == 1)
+		if ((st != null) && st.isCond(1))
 		{
 			final int npcId = npc.getNpcId();
-			for (int m = 0; m < _mobs.length; m++)
+			
+			for (int[] mobs : ALL_MOBS)
 			{
-				if (Util.contains(_mobs[m], npcId))
+				if (Util.contains(mobs, npcId))
 				{
-					st.set("mobs" + (m + 1), String.valueOf(st.getInt("mobs" + (m + 1)) + 1));
-					if (((L2Attackable) npc).isOverhit())
-					{
-						st.set("overHits", String.valueOf(st.getInt("overHits") + 1));
-					}
-					
-					if ((st.getInt("mobs1") >= 10) && (st.getInt("mobs2") >= 10) && (st.getInt("mobs3") >= 10) && (st.getInt("mobs4") >= 10))
+					String variable = String.valueOf(mobs[1]); // i3
+					int currentValue = st.getInt(variable);
+					if (currentValue < 10)
 					{
-						st.set("cond", "2");
+						st.set(variable, String.valueOf(currentValue + 1)); // IncreaseNPCLogByID
+						
+						L2Attackable mob = (L2Attackable) npc;
+						if (mob.isOverhit())
+						{
+							st.set("overhitsTotal", String.valueOf(st.getInt("overhitsTotal") + 1)); // memoStateEx 1
+							int maxHp = mob.getMaxHp();
+							// L2Attackable#calculateOverhitExp() way of calculating overhit % seems illogical
+							double overhitPercentage = (maxHp + mob.getOverhitDamage()) / maxHp;
+							if (overhitPercentage >= 1.2)
+							{
+								st.set("overhitsCritical", String.valueOf(st.getInt("overhitsCritical") + 1)); // memoStateEx 2
+							}
+							int overhitsConsecutive = st.getInt("overhitsConsecutive") + 1;
+							st.set("overhitsConsecutive", String.valueOf(overhitsConsecutive)); // memoStateEx 3
+							/*
+							 * Retail logic (makes for a long/messy string in database): int i0 = overhitsConsecutive % 100; int i1 = overhitsConsecutive - (i0 * 100); if (i0 < i1) { st.set("overhitsConsecutive", String.valueOf((i1 * 100) + i1)); }
+							 */
+						}
+						else
+						{
+							// st.set("overhitsConsecutive", String.valueOf((st.getInt("overhitsConsecutive") % 100) * 100));
+							if (!st.get("overhitsConsecutive").equals("0"))
+							{
+								// avoid writing to database if variable is already zero
+								st.set("overhitsConsecutive", "0");
+							}
+						}
+						
+						if (st.get("18879").equals("10") && st.get("18886").equals("10") && st.get("18893").equals("10") && st.get("18900").equals("10"))
+						{
+							st.setCond(2, true);
+							// st.set("overhitsConsecutive", String.valueOf(st.getInt("overhitsConsecutive") % 100));
+						}
+						else
+						{
+							st.playSound(QuestSound.ITEMSOUND_QUEST_ITEMGET);
+						}
 					}
 					break;
 				}
@@ -264,8 +316,19 @@ public class Q00458_PerfectForm extends Quest
 		return super.onKill(npc, player, isPet);
 	}
 	
+	public Q00458_PerfectForm()
+	{
+		super(458, Q00458_PerfectForm.class.getSimpleName(), "Perfect Form");
+		addStartNpc(KELLEYIA);
+		addTalkId(KELLEYIA);
+		addKillId(KOOKABURRAS);
+		addKillId(COUGARS);
+		addKillId(BUFFALOS);
+		addKillId(GRENDELS);
+	}
+	
 	public static void main(String[] args)
 	{
-		new Q00458_PerfectForm(458, Q00458_PerfectForm.class.getSimpleName(), "Perfect Form");
+		new Q00458_PerfectForm();
 	}
 }
-- 
GitLab