diff --git a/L2J_DataPack_BETA/dist/game/data/scripts/ai/group_template/BeastFarm.java b/L2J_DataPack_BETA/dist/game/data/scripts/ai/group_template/BeastFarm.java
index af374167febf4e3b58e0ae5b4cbf3efd684ddc5d..9dbb515d6cbba8c8aa57a9a9e22f6484b301c836 100644
--- a/L2J_DataPack_BETA/dist/game/data/scripts/ai/group_template/BeastFarm.java
+++ b/L2J_DataPack_BETA/dist/game/data/scripts/ai/group_template/BeastFarm.java
@@ -314,7 +314,7 @@ public class BeastFarm extends L2AttackableAIScript
 			nextNpc.setRunning();
 			
 			QuestState st = player.getQuestState("20_BringUpWithLove");
-			if (st != null && st.getInt("cond") == 1 && st.getQuestItemsCount(7185) == 0 && Rnd.get(10) == 1)
+			if (st != null && st.getInt("cond") == 1 && !st.hasQuestItems(7185) && Rnd.get(10) == 1)
 			{
 				// if player has quest 20 going, give quest item
 				// it's easier to hardcode it in here than to try and repeat this stuff in the quest
diff --git a/L2J_DataPack_BETA/dist/game/data/scripts/ai/group_template/FeedableBeasts.java b/L2J_DataPack_BETA/dist/game/data/scripts/ai/group_template/FeedableBeasts.java
index 2a9e663b6dad9dfbef0b66a7a9825419df2e1b51..41ac662901d091254022d1b3030efa10a6382413 100644
--- a/L2J_DataPack_BETA/dist/game/data/scripts/ai/group_template/FeedableBeasts.java
+++ b/L2J_DataPack_BETA/dist/game/data/scripts/ai/group_template/FeedableBeasts.java
@@ -398,7 +398,7 @@ public class FeedableBeasts extends L2AttackableAIScript
 			QuestState st = player.getQuestState("20_BringUpWithLove");
 			if (st != null)
 			{
-				if (Rnd.get(100) <= 5 && st.getQuestItemsCount(7185) == 0)
+				if (Rnd.get(100) <= 5 && !st.hasQuestItems(7185))
 				{
 					// if player has quest 20 going, give quest item
 					// it's easier to hardcode it in here than to try and repeat this stuff in the quest
diff --git a/L2J_DataPack_BETA/dist/game/data/scripts/ai/individual/Baium.java b/L2J_DataPack_BETA/dist/game/data/scripts/ai/individual/Baium.java
index 7fcff300987dd4b119e106e9ef27c7fae61e2821..4eb25603f75d4fc7c1fe3046dde4a5d47ae47d7d 100644
--- a/L2J_DataPack_BETA/dist/game/data/scripts/ai/individual/Baium.java
+++ b/L2J_DataPack_BETA/dist/game/data/scripts/ai/individual/Baium.java
@@ -314,7 +314,7 @@ public class Baium extends L2AttackableAIScript
 				return "<html><body>Angelic Vortex:<br>You may not enter while flying a wyvern</body></html>";
 			}
 			
-			if (GrandBossManager.getInstance().getBossStatus(LIVE_BAIUM) == ASLEEP && player.getQuestState("baium").getQuestItemsCount(4295) > 0) // bloody fabric
+			if (GrandBossManager.getInstance().getBossStatus(LIVE_BAIUM) == ASLEEP && player.getQuestState("baium").hasQuestItems(4295)) // bloody fabric
 			{
 				player.getQuestState("baium").takeItems(4295, 1);
 				// allow entry for the player for the next 30 secs (more than enough time for the TP to happen)
diff --git a/L2J_DataPack_BETA/dist/game/data/scripts/custom/EchoCrystals/EchoCrystals.java b/L2J_DataPack_BETA/dist/game/data/scripts/custom/EchoCrystals/EchoCrystals.java
index 116be56aeb594273d2a642139920009457f901d8..550b6170bdcbd287c19b4e912a18b18d7ec84d23 100644
--- a/L2J_DataPack_BETA/dist/game/data/scripts/custom/EchoCrystals/EchoCrystals.java
+++ b/L2J_DataPack_BETA/dist/game/data/scripts/custom/EchoCrystals/EchoCrystals.java
@@ -95,12 +95,14 @@ public class EchoCrystals extends Quest
 				String noadena = SCORES.get(score).getNoAdenaMsg();
 				String noscore = SCORES.get(score).getNoScoreMsg();
 
-				if (st.getQuestItemsCount(score) == 0)
+				if (!st.hasQuestItems(score))
+				{
 					htmltext = npc.getNpcId() + "-" + noscore + ".htm";
-
+				}
 				else if (st.getQuestItemsCount(ADENA) < COST)
+				{
 					htmltext = npc.getNpcId() + "-" + noadena + ".htm";
-
+				}
 				else
 				{
 					st.takeItems(ADENA, COST);
diff --git a/L2J_DataPack_BETA/dist/game/data/scripts/custom/KetraOrcSupport/KetraOrcSupport.java b/L2J_DataPack_BETA/dist/game/data/scripts/custom/KetraOrcSupport/KetraOrcSupport.java
index eba8397ef199448cb0a1e64eda6df03b9cbdb9bb..3ebaf080be2e6c8bae8ca38c8bf70635a10d2ac7 100644
--- a/L2J_DataPack_BETA/dist/game/data/scripts/custom/KetraOrcSupport/KetraOrcSupport.java
+++ b/L2J_DataPack_BETA/dist/game/data/scripts/custom/KetraOrcSupport/KetraOrcSupport.java
@@ -125,7 +125,6 @@ public class KetraOrcSupport extends Quest
 			st = this.newQuestState(player);
 		int npcId = npc.getNpcId();
 		int Alevel = player.getAllianceWithVarkaKetra();
-		long horns = st.getQuestItemsCount(HORN);
 		if (npcId == KADUN)
 		{
 			if (Alevel > 0)
@@ -148,7 +147,7 @@ public class KetraOrcSupport extends Quest
 			else if (Alevel < 3 && Alevel > 0)
 				htmltext = "31372-1.htm";
 			else if (Alevel > 2)
-				if (horns != 0)
+				if (st.hasQuestItems(HORN))
 					htmltext = "31372-4.htm";
 				else
 					htmltext = "31372-2.htm";
diff --git a/L2J_DataPack_BETA/dist/game/data/scripts/custom/Nottingale/Nottingale.java b/L2J_DataPack_BETA/dist/game/data/scripts/custom/Nottingale/Nottingale.java
index c615e9611bd824094f6a04b2bf94bcf13bef9a26..3fc217848aa25fb9bd85a23dce4a7924ef40543c 100644
--- a/L2J_DataPack_BETA/dist/game/data/scripts/custom/Nottingale/Nottingale.java
+++ b/L2J_DataPack_BETA/dist/game/data/scripts/custom/Nottingale/Nottingale.java
@@ -18,7 +18,6 @@ import com.l2jserver.gameserver.model.actor.L2Npc;
 import com.l2jserver.gameserver.model.actor.instance.L2PcInstance;
 import com.l2jserver.gameserver.model.quest.Quest;
 import com.l2jserver.gameserver.model.quest.QuestState;
-import com.l2jserver.gameserver.model.quest.State;
 import com.l2jserver.gameserver.network.serverpackets.RadarControl;
 
 /**
@@ -43,7 +42,7 @@ public class Nottingale extends Quest
 	{
 		String htmltext = event;
 		QuestState qs = player.getQuestState("10273_GoodDayToFly");
-		if (qs == null || qs.getState() != State.COMPLETED)
+		if (qs == null || !qs.isCompleted())
 		{
 			player.sendPacket(new RadarControl(2, 2, 0, 0, 0));
 			player.sendPacket(new RadarControl(0, 2, -184545, 243120, 1581));
diff --git a/L2J_DataPack_BETA/dist/game/data/scripts/custom/PinsAndPouchUnseal/PinsAndPouchUnseal.java b/L2J_DataPack_BETA/dist/game/data/scripts/custom/PinsAndPouchUnseal/PinsAndPouchUnseal.java
index a6e56d0a9c7fd0e96e4aad8272739f5ea862c536..0560eb9b9b4518548e7a6a2e32e8448cc917fab4 100644
--- a/L2J_DataPack_BETA/dist/game/data/scripts/custom/PinsAndPouchUnseal/PinsAndPouchUnseal.java
+++ b/L2J_DataPack_BETA/dist/game/data/scripts/custom/PinsAndPouchUnseal/PinsAndPouchUnseal.java
@@ -101,7 +101,7 @@ public class PinsAndPouchUnseal extends Quest
 			else
 				// this should not happen!
 				return "";
-			if (st.getQuestItemsCount(itemIds[0]) > 0)
+			if (st.hasQuestItems(itemIds[0]))
 			{
 				if (st.getQuestItemsCount(57) > price)
 				{
diff --git a/L2J_DataPack_BETA/dist/game/data/scripts/custom/ShadowWeapons/ShadowWeapons.java b/L2J_DataPack_BETA/dist/game/data/scripts/custom/ShadowWeapons/ShadowWeapons.java
index 0dbe4dd241112445df76eb28c42ebd4964f269ce..9d28723ad0161ed3fcfc4b6ea3f155a77e733206 100644
--- a/L2J_DataPack_BETA/dist/game/data/scripts/custom/ShadowWeapons/ShadowWeapons.java
+++ b/L2J_DataPack_BETA/dist/game/data/scripts/custom/ShadowWeapons/ShadowWeapons.java
@@ -64,19 +64,19 @@ public class ShadowWeapons extends Quest
 		if (st == null)
 			return htmltext;
 
-		long has_d = st.getQuestItemsCount(D_COUPON);
-		long has_c = st.getQuestItemsCount(C_COUPON);
+		boolean has_d = st.hasQuestItems(D_COUPON);
+		boolean has_c = st.hasQuestItems(C_COUPON);
 
-		if (has_d > 0 || has_c > 0)
+		if (has_d  || has_c)
 		{
 			// let's assume character had both c & d-grade coupons, we'll confirm later
 			String multisell = "306893003";
-			if (has_d < 1)
+			if (!has_d)
 			{
 				// if s/he had c-grade only...
 				multisell = "306893002";
 			}
-			else if (has_c < 1)
+			else if (!has_c)
 			{
 				// or d-grade only.
 				multisell = "306893001";
diff --git a/L2J_DataPack_BETA/dist/game/data/scripts/custom/VarkaSilenosSupport/VarkaSilenosSupport.java b/L2J_DataPack_BETA/dist/game/data/scripts/custom/VarkaSilenosSupport/VarkaSilenosSupport.java
index 18eb23211043eb8f651975be4e65f1a22dc38d10..1de9a780b75ca9c9a3d24a92497d0d4824e11243 100644
--- a/L2J_DataPack_BETA/dist/game/data/scripts/custom/VarkaSilenosSupport/VarkaSilenosSupport.java
+++ b/L2J_DataPack_BETA/dist/game/data/scripts/custom/VarkaSilenosSupport/VarkaSilenosSupport.java
@@ -125,7 +125,6 @@ public class VarkaSilenosSupport extends Quest
 			st = this.newQuestState(player);
 		int npcId = npc.getNpcId();
 		int Alevel = player.getAllianceWithVarkaKetra();
-		long seeds = st.getQuestItemsCount(SEED);
 		if (npcId == ASHAS)
 		{
 			if (Alevel < 0)
@@ -148,7 +147,7 @@ public class VarkaSilenosSupport extends Quest
 			else if (Alevel > -3 && Alevel > 0)
 				htmltext = "31379-1.htm";
 			else if (Alevel < -2)
-				if (seeds != 0)
+				if (st.hasQuestItems(SEED))
 					htmltext = "31379-4.htm";
 				else
 					htmltext = "31379-2.htm";
diff --git a/L2J_DataPack_BETA/dist/game/data/scripts/events/HeavyMedal/HeavyMedal.java b/L2J_DataPack_BETA/dist/game/data/scripts/events/HeavyMedal/HeavyMedal.java
index 017c770ca53a7dccaa5a45d69288b30f8905bd2a..a6f39edde6454be1e5b9008c41b51d7f5cad48b6 100644
--- a/L2J_DataPack_BETA/dist/game/data/scripts/events/HeavyMedal/HeavyMedal.java
+++ b/L2J_DataPack_BETA/dist/game/data/scripts/events/HeavyMedal/HeavyMedal.java
@@ -204,13 +204,13 @@ public class HeavyMedal extends Quest
 		int _lev = 0;
 		if (st == null)
 			return 0;
-		else if (st.getQuestItemsCount(6402) > 0)
+		else if (st.hasQuestItems(6402))
 			_lev = 4;
-		else if (st.getQuestItemsCount(6401) > 0)
+		else if (st.hasQuestItems(6401))
 			_lev = 3;
-		else if (st.getQuestItemsCount(6400) > 0)
+		else if (st.hasQuestItems(6400))
 			_lev = 2;
-		else if (st.getQuestItemsCount(6399) > 0)
+		else if (st.hasQuestItems(6399))
 			_lev = 1;
 		
 		return _lev;
diff --git a/L2J_DataPack_BETA/dist/game/data/scripts/events/MasterOfEnchanting/MasterOfEnchanting.java b/L2J_DataPack_BETA/dist/game/data/scripts/events/MasterOfEnchanting/MasterOfEnchanting.java
index c8f161e8dd5a6d66819122e1f5683a41050dbd7d..bd614f837d0c9957200c4ee2da9c8f56159a479a 100644
--- a/L2J_DataPack_BETA/dist/game/data/scripts/events/MasterOfEnchanting/MasterOfEnchanting.java
+++ b/L2J_DataPack_BETA/dist/game/data/scripts/events/MasterOfEnchanting/MasterOfEnchanting.java
@@ -120,7 +120,7 @@ public class MasterOfEnchanting extends Quest
 		htmltext = event;
 		if (event.equalsIgnoreCase("buy_staff"))
 		{
-			if (st.getQuestItemsCount(_master_yogi_staff) == 0 && st.getQuestItemsCount(_adena) > _staff_price)
+			if (!st.hasQuestItems(_master_yogi_staff) && st.getQuestItemsCount(_adena) > _staff_price)
 			{
 				st.takeItems(_adena, _staff_price);
 				st.giveItems(_master_yogi_staff, 1);
diff --git a/L2J_DataPack_BETA/dist/game/data/scripts/events/TheValentineEvent/TheValentineEvent.java b/L2J_DataPack_BETA/dist/game/data/scripts/events/TheValentineEvent/TheValentineEvent.java
index 3eda8f4ae1ec7a5ec55ed5d89632b8a2ace98ad9..c764f72811db96b6afe9a7007349db40134375a5 100644
--- a/L2J_DataPack_BETA/dist/game/data/scripts/events/TheValentineEvent/TheValentineEvent.java
+++ b/L2J_DataPack_BETA/dist/game/data/scripts/events/TheValentineEvent/TheValentineEvent.java
@@ -95,7 +95,7 @@ public class TheValentineEvent extends Quest
 		htmltext = event;
 		if (event.equalsIgnoreCase("4301-3.htm"))
 		{
-			if (st.getState() == State.COMPLETED)
+			if (st.isCompleted())
 			{
 				htmltext = "4301-4.htm";
 			}
diff --git a/L2J_DataPack_BETA/dist/game/data/scripts/hellbound/Natives/Natives.java b/L2J_DataPack_BETA/dist/game/data/scripts/hellbound/Natives/Natives.java
index 04b266b5bab1ecf1d0c35702c31f75fa54aab2fb..575a8b39060b4caa0306962ca620e0daad7ae97c 100644
--- a/L2J_DataPack_BETA/dist/game/data/scripts/hellbound/Natives/Natives.java
+++ b/L2J_DataPack_BETA/dist/game/data/scripts/hellbound/Natives/Natives.java
@@ -107,7 +107,7 @@ public class Natives extends Quest
 					cancelQuestTimers("close_doors");
 					startQuestTimer("close_doors", 1800000, npc, player); // 30 min
 				}
-				else if (qs.getQuestItemsCount(MARK_OF_BETRAYAL) > 0)
+				else if (qs.hasQuestItems(MARK_OF_BETRAYAL))
 				{
 					htmltext = "32364-01.htm";
 				}
diff --git a/L2J_DataPack_BETA/dist/game/data/scripts/instances/CrystalCaverns/CrystalCaverns.java b/L2J_DataPack_BETA/dist/game/data/scripts/instances/CrystalCaverns/CrystalCaverns.java
index 050fe5beee841f08020c4eaf147ae1cd91024391..70e84c9ad24e29420fa4a0d852ae1df07ad84b7f 100644
--- a/L2J_DataPack_BETA/dist/game/data/scripts/instances/CrystalCaverns/CrystalCaverns.java
+++ b/L2J_DataPack_BETA/dist/game/data/scripts/instances/CrystalCaverns/CrystalCaverns.java
@@ -44,7 +44,6 @@ import com.l2jserver.gameserver.model.entity.Instance;
 import com.l2jserver.gameserver.model.item.instance.L2ItemInstance;
 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.zone.L2ZoneType;
 import com.l2jserver.gameserver.network.NpcStringId;
 import com.l2jserver.gameserver.network.SystemMessageId;
@@ -776,7 +775,7 @@ public class CrystalCaverns extends Quest
 		{
 			QuestState st = player.getQuestState("131_BirdInACage");
 			String htmltext = "32279.htm";
-			if (st != null && st.getState() != State.COMPLETED)
+			if (st != null && !st.isCompleted())
 				htmltext = "32279-01.htm";
 			return htmltext;
 		}
@@ -1306,7 +1305,7 @@ public class CrystalCaverns extends Quest
 					QuestState st = partyMember.getQuestState(qn);
 					if (st == null)
 						st = newQuestState(partyMember);
-					if (!isBaylor && st.getQuestItemsCount(CONT_CRYSTAL) > 0)
+					if (!isBaylor && st.hasQuestItems(CONT_CRYSTAL))
 					{
 						st.takeItems(CONT_CRYSTAL, 1);
 						st.giveItems(bossCry, 1);
@@ -1322,7 +1321,7 @@ public class CrystalCaverns extends Quest
 			QuestState st = player.getQuestState(qn);
 			if (st == null)
 				st = newQuestState(player);
-			if (!isBaylor && st.getQuestItemsCount(CONT_CRYSTAL) > 0)
+			if (!isBaylor && st.hasQuestItems(CONT_CRYSTAL))
 			{
 				st.takeItems(CONT_CRYSTAL, 1);
 				st.giveItems(bossCry, 1);
@@ -1790,7 +1789,7 @@ public class CrystalCaverns extends Quest
 								QuestState st = ((L2PcInstance) character).getQuestState(qn);
 								if (st == null)
 									st = newQuestState((L2PcInstance) character);
-								if (st.getQuestItemsCount(RACE_KEY) == 0)
+								if (!st.hasQuestItems(RACE_KEY))
 									return "";
 								if (world.roomsStatus[zone.getId() - 20104] == 0)
 									runEmeraldRooms(world, spawns, room);
diff --git a/L2J_DataPack_BETA/dist/game/data/scripts/instances/DarkCloudMansion/DarkCloudMansion.java b/L2J_DataPack_BETA/dist/game/data/scripts/instances/DarkCloudMansion/DarkCloudMansion.java
index 992b27ad9aca517b61cefbefd8a5f66c74afbd6b..6e25cbc0d7452c7320781a589b5f93499ebc336d 100644
--- a/L2J_DataPack_BETA/dist/game/data/scripts/instances/DarkCloudMansion/DarkCloudMansion.java
+++ b/L2J_DataPack_BETA/dist/game/data/scripts/instances/DarkCloudMansion/DarkCloudMansion.java
@@ -1035,7 +1035,7 @@ public class DarkCloudMansion extends Quest
 				if (st == null)
 					st = newQuestState(player);
 				
-				if (st.getQuestItemsCount(CC) < 1)
+				if (!st.hasQuestItems(CC))
 					st.giveItems(CC,1);
 			}
 		}
diff --git a/L2J_DataPack_BETA/dist/game/data/scripts/instances/Pailaka/PailakaDevilsLegacy.java b/L2J_DataPack_BETA/dist/game/data/scripts/instances/Pailaka/PailakaDevilsLegacy.java
index b9b3a003963622c018d73453fa80b78c6260fad8..95106fe9fdabb264c23934e4357e547ee8859750 100644
--- a/L2J_DataPack_BETA/dist/game/data/scripts/instances/Pailaka/PailakaDevilsLegacy.java
+++ b/L2J_DataPack_BETA/dist/game/data/scripts/instances/Pailaka/PailakaDevilsLegacy.java
@@ -331,7 +331,7 @@ public class PailakaDevilsLegacy extends Quest
 	public final String onFirstTalk(L2Npc npc, L2PcInstance player)
 	{
 		final QuestState st = player.getQuestState(qn);
-		if (st != null && npc.getNpcId() == ADVENTURER2 && st.getState() == State.COMPLETED)
+		if (st != null && npc.getNpcId() == ADVENTURER2 && st.isCompleted())
 			return "32511-03.htm";
 		else
 			return npc.getNpcId() + ".htm";
@@ -374,7 +374,7 @@ public class PailakaDevilsLegacy extends Quest
 			case ADVENTURER1:
 				if(player.getPet() == null)
 				{
-					if (st.getQuestItemsCount(SWORD) > 0)
+					if (st.hasQuestItems(SWORD))
 					{
 						if(st.getQuestItemsCount(SCROLL_1) > 0)
 						{
@@ -487,17 +487,17 @@ public class PailakaDevilsLegacy extends Quest
 		switch (npc.getNpcId())
 		{
 			case KAMS:
-				if (st.getQuestItemsCount(SWORD) > 0)
+				if (st.hasQuestItems(SWORD))
 				{
 					st.playSound("ItemSound.quest_itemget");
 					st.giveItems(SCROLL_1, 1);
 				}
 				break;
 			case ALKASO:
-				if (st.getQuestItemsCount(ENH_SWORD1) > 0)
+				if (st.hasQuestItems(ENH_SWORD1))
 				{
 					st.playSound("ItemSound.quest_itemget");
-					st.giveItems(SCROLL_2, 1);					
+					st.giveItems(SCROLL_2, 1);
 				}
 				break;
 			case LEMATAN:
diff --git a/L2J_DataPack_BETA/dist/game/data/scripts/mods/eventmodElpies/eventmodElpies.java b/L2J_DataPack_BETA/dist/game/data/scripts/mods/eventmodElpies/eventmodElpies.java
index 6be4c991e811d8d63a38e2c9afda67f01b7b3f41..2e55e6012fec9af842e30dc1158d8da3b63595eb 100644
--- a/L2J_DataPack_BETA/dist/game/data/scripts/mods/eventmodElpies/eventmodElpies.java
+++ b/L2J_DataPack_BETA/dist/game/data/scripts/mods/eventmodElpies/eventmodElpies.java
@@ -66,7 +66,12 @@ public class eventmodElpies extends Event
 		{  18564,  19200, 144377, 145782, -3081 },
 		{  82048,  82940,  53240,  54126, -1490 }
 	};
-	// Drop data
+	
+	/**
+	 * Drop data:<br />
+	 * Higher the chance harder the item.<br />
+	 * ItemId, chance in percent, min amount, max amount
+	 */
 	private static final int[][] DROPLIST =
 	{
 		{  1540,  80, 10, 15 },	// Quick Healing Potion
@@ -221,9 +226,8 @@ public class eventmodElpies extends Event
 	{
 		final int chance = Rnd.get(100);
 		
-		for (int i = 0; i < droplist.length; i++)
+		for (int[] drop : droplist)
 		{
-			int[] drop = droplist[i];
 			if (chance > drop[1])
 			{
 				((L2MonsterInstance)mob).dropItem(player, drop[0], Rnd.get(drop[2], drop[3]));
diff --git a/L2J_DataPack_BETA/dist/game/data/scripts/mods/eventmodRabbits/eventmodRabbits.java b/L2J_DataPack_BETA/dist/game/data/scripts/mods/eventmodRabbits/eventmodRabbits.java
index 98c1c0d7b7ec413f89c69b27bd95c172047ac1fc..118434dd2ba3ca9e3bbf06ddacab01af69fbc5a8 100644
--- a/L2J_DataPack_BETA/dist/game/data/scripts/mods/eventmodRabbits/eventmodRabbits.java
+++ b/L2J_DataPack_BETA/dist/game/data/scripts/mods/eventmodRabbits/eventmodRabbits.java
@@ -58,7 +58,11 @@ public class eventmodRabbits extends Event
 	public static final int _skill_tornado = 630;
 	public static final int _skill_magic_eye = 629;
 	
-	// Drop data
+	/**
+	 * Drop data:<br />
+	 * Higher the chance harder the item.<br />
+	 * ItemId, chance in percent, min amount, max amount
+	 */
 	private static final int[][] DROPLIST =
 	{
 		{  1540,  80, 10, 15 },	// Quick Healing Potion
@@ -256,9 +260,8 @@ public class eventmodRabbits extends Event
 	{
 		final int chance = Rnd.get(100);
 		
-		for (int i = 0; i < droplist.length; i++)
+		for (int[] drop : droplist)
 		{
-			int[] drop = droplist[i];
 			if (chance > drop[1])
 			{
 				((L2MonsterInstance)mob).dropItem(player, drop[0], Rnd.get(drop[2], drop[3]));
diff --git a/L2J_DataPack_BETA/dist/game/data/scripts/quests/Q10271_TheEnvelopingDarkness/Q10271_TheEnvelopingDarkness.java b/L2J_DataPack_BETA/dist/game/data/scripts/quests/Q10271_TheEnvelopingDarkness/Q10271_TheEnvelopingDarkness.java
index 2e2a5a6293b24d15065658fb337c296c53c075fd..936e1f58c0a7db0247425238c124d533aeab273e 100644
--- a/L2J_DataPack_BETA/dist/game/data/scripts/quests/Q10271_TheEnvelopingDarkness/Q10271_TheEnvelopingDarkness.java
+++ b/L2J_DataPack_BETA/dist/game/data/scripts/quests/Q10271_TheEnvelopingDarkness/Q10271_TheEnvelopingDarkness.java
@@ -33,7 +33,7 @@ public class Q10271_TheEnvelopingDarkness extends Quest
 			{
 				case State.CREATED:
 					QuestState _prev = player.getQuestState("10269_ToTheSeedOfDestruction");
-					if ((_prev != null) && (_prev.getState() == State.COMPLETED) && (player.getLevel() >= 75))
+					if ((_prev != null) && _prev.isCompleted() && (player.getLevel() >= 75))
 						htmltext = "32560-01.htm";
 					else
 						htmltext = "32560-02.htm";
@@ -68,11 +68,9 @@ public class Q10271_TheEnvelopingDarkness extends Quest
 		
 		else if (npc.getNpcId() == EL)
 		{
-			switch (st.getState())
+			if (st.isCompleted())
 			{
-				case State.COMPLETED:
-					htmltext = "32556-02.htm";
-					break;
+				htmltext = "32556-02.htm";
 			}
 			if (st.getInt("cond") == 1)
 			{
diff --git a/L2J_DataPack_BETA/dist/game/data/scripts/quests/Q10272_LightFragment/Q10272_LightFragment.java b/L2J_DataPack_BETA/dist/game/data/scripts/quests/Q10272_LightFragment/Q10272_LightFragment.java
index 9301a9c72602cd734f6607f6c8ea6359c2494069..6d73088c57399869c7be324723d2e19724efe67d 100644
--- a/L2J_DataPack_BETA/dist/game/data/scripts/quests/Q10272_LightFragment/Q10272_LightFragment.java
+++ b/L2J_DataPack_BETA/dist/game/data/scripts/quests/Q10272_LightFragment/Q10272_LightFragment.java
@@ -43,7 +43,7 @@ public class Q10272_LightFragment extends Quest
 			{
 				case State.CREATED:
 					QuestState _prev = player.getQuestState("10271_TheEnvelopingDarkness");
-					if ((_prev != null) && (_prev.getState() == State.COMPLETED) && (player.getLevel() >= 75))
+					if ((_prev != null) && _prev.isCompleted() && (player.getLevel() >= 75))
 						htmltext = "32560-01.htm";
 					else
 						htmltext = "32560-02.htm";
@@ -65,11 +65,9 @@ public class Q10272_LightFragment extends Quest
 		}
 		else if (npc.getNpcId() == ARTIUS)
 		{
-			switch (st.getState())
+			if (st.isCompleted())
 			{
-				case State.COMPLETED:
-					htmltext = "32559-19.htm";
-					break;
+				htmltext = "32559-19.htm";
 			}
 			if (st.getInt("cond") == 1)
 			{
@@ -94,11 +92,11 @@ public class Q10272_LightFragment extends Quest
 					htmltext = "32559-15.htm";
 					st.set("cond", "6");
 				}
-				else if (st.getQuestItemsCount(FRAGMENT_POWDER) >= 1)
+				else if (st.hasQuestItems(FRAGMENT_POWDER))
 				{
 					htmltext = "32559-14.htm";
 				}
-				else if (st.getQuestItemsCount(FRAGMENT_POWDER) < 1)
+				else if (!st.hasQuestItems(FRAGMENT_POWDER))
 				{
 					htmltext = "32559-13.htm";
 				}
diff --git a/L2J_DataPack_BETA/dist/game/data/scripts/quests/Q10283_RequestOfIceMerchant/Q10283_RequestOfIceMerchant.java b/L2J_DataPack_BETA/dist/game/data/scripts/quests/Q10283_RequestOfIceMerchant/Q10283_RequestOfIceMerchant.java
index 26ce1a514e473bb16b830c1c61de0afb7862c7f7..779aa784855a49508fe4bce7b7898709b6c25ff2 100644
--- a/L2J_DataPack_BETA/dist/game/data/scripts/quests/Q10283_RequestOfIceMerchant/Q10283_RequestOfIceMerchant.java
+++ b/L2J_DataPack_BETA/dist/game/data/scripts/quests/Q10283_RequestOfIceMerchant/Q10283_RequestOfIceMerchant.java
@@ -97,7 +97,7 @@ public class Q10283_RequestOfIceMerchant extends Quest
 			{
 				case State.CREATED:
 					QuestState _prev = player.getQuestState("115_TheOtherSideOfTruth");
-					if ((_prev != null) && (_prev.getState() == State.COMPLETED) && (player.getLevel() >= 82))
+					if ((_prev != null) && _prev.isCompleted() && (player.getLevel() >= 82))
 						htmltext = "32020-01.htm";
 					else
 						htmltext = "32020-00.htm";
diff --git a/L2J_DataPack_BETA/dist/game/data/scripts/quests/Q10288_SecretMission/Q10288_SecretMission.java b/L2J_DataPack_BETA/dist/game/data/scripts/quests/Q10288_SecretMission/Q10288_SecretMission.java
index a66595c86d594654f44de56acfb6da8ae88c32eb..0ad33e48c1b83d6cd3986a376aa73c3cb51f143a 100644
--- a/L2J_DataPack_BETA/dist/game/data/scripts/quests/Q10288_SecretMission/Q10288_SecretMission.java
+++ b/L2J_DataPack_BETA/dist/game/data/scripts/quests/Q10288_SecretMission/Q10288_SecretMission.java
@@ -75,7 +75,7 @@ public class Q10288_SecretMission extends Quest
 					st.playSound("ItemSound.quest_middle");
 				}
 			}
-			else if (st.getState() == State.COMPLETED && event.equalsIgnoreCase("teleport"))
+			else if (st.isCompleted() && event.equalsIgnoreCase("teleport"))
 			{
 				player.teleToLocation(118833, -80589, -2688);
 				return null;
@@ -142,7 +142,7 @@ public class Q10288_SecretMission extends Quest
 		}
 		if (npc.getNpcId() == _aquilani)
 		{
-			if (st.getState() == State.COMPLETED)
+			if (st.isCompleted())
 				return "32780-01.html";
 			else
 				return "32780-00.html";
diff --git a/L2J_DataPack_BETA/dist/game/data/scripts/quests/Q10289_FadeToBlack/Q10289_FadeToBlack.java b/L2J_DataPack_BETA/dist/game/data/scripts/quests/Q10289_FadeToBlack/Q10289_FadeToBlack.java
index f29a877c035ce4902466bfc224e563f10be1f1e0..b611ff76e73e35148827ac8b31751d26a7bfcac4 100644
--- a/L2J_DataPack_BETA/dist/game/data/scripts/quests/Q10289_FadeToBlack/Q10289_FadeToBlack.java
+++ b/L2J_DataPack_BETA/dist/game/data/scripts/quests/Q10289_FadeToBlack/Q10289_FadeToBlack.java
@@ -42,7 +42,7 @@ public class Q10289_FadeToBlack extends Quest
 				st.set("cond", "1");
 				st.playSound("ItemSound.quest_accept");
 			}
-			else if(Util.isDigit(event) && st.getQuestItemsCount(MARK_OF_SPLENDOR) > 0)
+			else if(Util.isDigit(event) && st.hasQuestItems(MARK_OF_SPLENDOR))
 			{
 				int itemId = Integer.parseInt(event);
 				st.takeItems(MARK_OF_SPLENDOR, 1);
@@ -69,7 +69,7 @@ public class Q10289_FadeToBlack extends Quest
 			switch(st.getState())
 			{
 				case State.CREATED :
-					if (player.getLevel() >= 82 && secretMission != null && secretMission.getState() == State.COMPLETED)
+					if (player.getLevel() >= 82 && secretMission != null && secretMission.isCompleted())
 						htmltext = "32757-02.htm";
 					else if (player.getLevel() < 82)
 						htmltext = "32757-00.htm";
@@ -79,7 +79,7 @@ public class Q10289_FadeToBlack extends Quest
 				case State.STARTED :
 					if (st.getInt("cond") == 1)
 						htmltext = "32757-04b.htm";
-					if (st.getInt("cond") == 2 && st.getQuestItemsCount(MARK_OF_DARKNESS) > 0)
+					if (st.getInt("cond") == 2 && st.hasQuestItems(MARK_OF_DARKNESS))
 					{
 						htmltext = "32757-05.htm";
 						st.takeItems(MARK_OF_DARKNESS, 1);
diff --git a/L2J_DataPack_BETA/dist/game/data/scripts/quests/Q10290_LandDragonConqueror/Q10290_LandDragonConqueror.java b/L2J_DataPack_BETA/dist/game/data/scripts/quests/Q10290_LandDragonConqueror/Q10290_LandDragonConqueror.java
index 6eea0148177a44a18c2c09ba67f617947d6a98c0..9c1dc78f21cb16b45212a7a5af74ddc9dd49bedb 100644
--- a/L2J_DataPack_BETA/dist/game/data/scripts/quests/Q10290_LandDragonConqueror/Q10290_LandDragonConqueror.java
+++ b/L2J_DataPack_BETA/dist/game/data/scripts/quests/Q10290_LandDragonConqueror/Q10290_LandDragonConqueror.java
@@ -54,7 +54,7 @@ public class Q10290_LandDragonConqueror extends Quest
 		{
 			case State.CREATED:
 			{
-				if (player.getLevel() >= 83 && st.getQuestItemsCount(PortalStone) >= 1)
+				if (player.getLevel() >= 83 && st.hasQuestItems(PortalStone))
 					htmltext = "30755-01.htm";
 				else if (player.getLevel() < 83)
 					htmltext = "30755-02.htm";
diff --git a/L2J_DataPack_BETA/dist/game/data/scripts/quests/Q10291_FireDragonDestroyer/Q10291_FireDragonDestroyer.java b/L2J_DataPack_BETA/dist/game/data/scripts/quests/Q10291_FireDragonDestroyer/Q10291_FireDragonDestroyer.java
index fa69b46ef090e1dc1f3b7a044f8b2572ac6e551b..0938f49b207ea52de0b57de9d4dd91d3305fc565 100644
--- a/L2J_DataPack_BETA/dist/game/data/scripts/quests/Q10291_FireDragonDestroyer/Q10291_FireDragonDestroyer.java
+++ b/L2J_DataPack_BETA/dist/game/data/scripts/quests/Q10291_FireDragonDestroyer/Q10291_FireDragonDestroyer.java
@@ -54,7 +54,7 @@ public class Q10291_FireDragonDestroyer extends Quest
 		{
 			case State.CREATED:
 			{
-				if (player.getLevel() >= 83 && st.getQuestItemsCount(FloatingStone) >= 1)
+				if (player.getLevel() >= 83 && st.hasQuestItems(FloatingStone))
 					htmltext = "31540-01.htm";
 				else if (player.getLevel() < 83)
 					htmltext = "31540-02.htm";
diff --git a/L2J_DataPack_BETA/dist/game/data/scripts/quests/Q132_MatrasCuriosity/Q132_MatrasCuriosity.java b/L2J_DataPack_BETA/dist/game/data/scripts/quests/Q132_MatrasCuriosity/Q132_MatrasCuriosity.java
index 4aa79f7e61d8e79c31a2bb940088093f62359678..9f891bfc39ff4ad84a2199a8119ef585351e9f29 100644
--- a/L2J_DataPack_BETA/dist/game/data/scripts/quests/Q132_MatrasCuriosity/Q132_MatrasCuriosity.java
+++ b/L2J_DataPack_BETA/dist/game/data/scripts/quests/Q132_MatrasCuriosity/Q132_MatrasCuriosity.java
@@ -117,7 +117,7 @@ public final class Q132_MatrasCuriosity extends Quest
 				htmltext = "32245-02.htm";
 			}
 		}
-		else if (st.getState() == State.COMPLETED)
+		else if (st.isCompleted())
 		{
 			htmltext = getAlreadyCompletedMsg(player);
 		}
@@ -127,7 +127,7 @@ public final class Q132_MatrasCuriosity extends Quest
 			{
 				case 1:
 				case 2:
-					if ((st.getQuestItemsCount(BLUEPRINT_RANKU) > 0) && (st.getQuestItemsCount(BLUEPRINT_PRINCE) > 0))
+					if (st.hasQuestItems(BLUEPRINT_RANKU) && st.hasQuestItems(BLUEPRINT_PRINCE))
 					{
 						st.takeItems(BLUEPRINT_RANKU, -1);
 						st.takeItems(BLUEPRINT_PRINCE, -1);
@@ -162,7 +162,7 @@ public final class Q132_MatrasCuriosity extends Quest
 					st.giveItems(BLUEPRINT_PRINCE, 1);
 					st.set("rewarded_prince", "2");
 					
-					if (st.getQuestItemsCount(BLUEPRINT_RANKU) > 0)
+					if (st.hasQuestItems(BLUEPRINT_RANKU))
 					{
 						st.playSound("ItemSound.quest_middle");
 						st.set("cond", "2");
diff --git a/L2J_DataPack_BETA/dist/game/data/scripts/quests/Q146_TheZeroHour/Q146_TheZeroHour.java b/L2J_DataPack_BETA/dist/game/data/scripts/quests/Q146_TheZeroHour/Q146_TheZeroHour.java
index 3d89ba40618021fb9ef81b34d07c17bb02b73a2c..c0ae1ae72aa8982321e464c47d6c9a6f3c6df7e1 100644
--- a/L2J_DataPack_BETA/dist/game/data/scripts/quests/Q146_TheZeroHour/Q146_TheZeroHour.java
+++ b/L2J_DataPack_BETA/dist/game/data/scripts/quests/Q146_TheZeroHour/Q146_TheZeroHour.java
@@ -54,7 +54,7 @@ public class Q146_TheZeroHour extends Quest
 					htmltext = "31554-02.htm";
 				else
 				{
-					if (prev != null && prev.getState() == State.COMPLETED)
+					if ((prev != null) && prev.isCompleted())
 						htmltext = "31554-01a.htm";
 					else
 						htmltext = "31554-04.html";
@@ -88,7 +88,7 @@ public class Q146_TheZeroHour extends Quest
 			return null;
 		QuestState st = partyMember.getQuestState(qn);
 		
-		if (st.getQuestItemsCount(Fang) < 1)
+		if (!st.hasQuestItems(Fang))
 		{
 			st.giveItems(Fang, 1);
 			st.set("cond", "2");
diff --git a/L2J_DataPack_BETA/dist/game/data/scripts/quests/Q148_PathtoBecominganExaltedMercenary/Q148_PathtoBecominganExaltedMercenary.java b/L2J_DataPack_BETA/dist/game/data/scripts/quests/Q148_PathtoBecominganExaltedMercenary/Q148_PathtoBecominganExaltedMercenary.java
index 6836f4b5b634439bf02cdcf9eb710291ee10b76f..4dd993bf4f65a306dd6e54e3bf7aa012b3a3e234 100644
--- a/L2J_DataPack_BETA/dist/game/data/scripts/quests/Q148_PathtoBecominganExaltedMercenary/Q148_PathtoBecominganExaltedMercenary.java
+++ b/L2J_DataPack_BETA/dist/game/data/scripts/quests/Q148_PathtoBecominganExaltedMercenary/Q148_PathtoBecominganExaltedMercenary.java
@@ -84,7 +84,7 @@ public class Q148_PathtoBecominganExaltedMercenary extends Quest
 					}
 					else
 					{
-						if (_prev != null && _prev.getState() == State.COMPLETED)
+						if ((_prev != null) && _prev.isCompleted())
 							htmltext = "exalted-00a.htm";
 						else
 							htmltext = "exalted-00.htm";
diff --git a/L2J_DataPack_BETA/dist/game/data/scripts/quests/Q153_DeliverGoods/Q153_DeliverGoods.java b/L2J_DataPack_BETA/dist/game/data/scripts/quests/Q153_DeliverGoods/Q153_DeliverGoods.java
index d31b738693440d8319f6894e26e33b1514b8e37b..f75438c07781b9e25499467fc26d07caff0c3d8a 100644
--- a/L2J_DataPack_BETA/dist/game/data/scripts/quests/Q153_DeliverGoods/Q153_DeliverGoods.java
+++ b/L2J_DataPack_BETA/dist/game/data/scripts/quests/Q153_DeliverGoods/Q153_DeliverGoods.java
@@ -117,7 +117,7 @@ public class Q153_DeliverGoods extends Quest
 			{
 				if (npc.getNpcId() == JacksonId)
 				{
-					if (st.getQuestItemsCount(HeavyWoodBoxId) > 0)
+					if (st.hasQuestItems(HeavyWoodBoxId))
 					{
 						htmltext = "30002-01.html";
 						st.takeItems(HeavyWoodBoxId, -1);
@@ -130,7 +130,7 @@ public class Q153_DeliverGoods extends Quest
 				}
 				else if (npc.getNpcId() == SilviaId)
 				{
-					if (st.getQuestItemsCount(ClothBundleId) > 0)
+					if (st.hasQuestItems(ClothBundleId))
 					{
 						htmltext = "30003-01.html";
 						st.takeItems(ClothBundleId, -1);
@@ -144,7 +144,7 @@ public class Q153_DeliverGoods extends Quest
 				}
 				else if (npc.getNpcId() == RantId)
 				{
-					if (st.getQuestItemsCount(ClayPotId) > 0)
+					if (st.hasQuestItems(ClayPotId))
 					{
 						htmltext = "30054-01.html";
 						st.takeItems(ClayPotId, -1);
@@ -156,7 +156,7 @@ public class Q153_DeliverGoods extends Quest
 					}
 				}
 				
-				if ((st.getInt("cond") == 1) && (st.getQuestItemsCount(JacksonsReceipt) > 0) && (st.getQuestItemsCount(SilviasReceipt) > 0) && (st.getQuestItemsCount(RantsReceipt) > 0))
+				if ((st.getInt("cond") == 1) && st.hasQuestItems(JacksonsReceipt) && st.hasQuestItems(SilviasReceipt) && st.hasQuestItems(RantsReceipt))
 				{
 					st.set("cond", "2");
 					st.playSound("ItemSound.quest_middle");
diff --git a/L2J_DataPack_BETA/dist/game/data/scripts/quests/Q179_IntoTheLargeCavern/Q179_IntoTheLargeCavern.java b/L2J_DataPack_BETA/dist/game/data/scripts/quests/Q179_IntoTheLargeCavern/Q179_IntoTheLargeCavern.java
index b18d6b5260b80b7e55003d93616ad67f1514d0cc..6102f7c3f9e2aaa9e0fc31804a5a9d62df821151 100644
--- a/L2J_DataPack_BETA/dist/game/data/scripts/quests/Q179_IntoTheLargeCavern/Q179_IntoTheLargeCavern.java
+++ b/L2J_DataPack_BETA/dist/game/data/scripts/quests/Q179_IntoTheLargeCavern/Q179_IntoTheLargeCavern.java
@@ -82,7 +82,7 @@ public class Q179_IntoTheLargeCavern extends Quest
 
 		QuestState _prev = player.getQuestState("178_IconicTrinity");
 		if (_prev != null
-			&& _prev.getState() == State.COMPLETED
+			&& _prev.isCompleted()
 			&& player.getLevel() >= 17
 			&& player.getRace().ordinal() == 5
 			&& player.getClassId().level() == 0)
diff --git a/L2J_DataPack_BETA/dist/game/data/scripts/quests/Q249_PoisonedPlainsOfTheLizardmen/Q249_PoisonedPlainsOfTheLizardmen.java b/L2J_DataPack_BETA/dist/game/data/scripts/quests/Q249_PoisonedPlainsOfTheLizardmen/Q249_PoisonedPlainsOfTheLizardmen.java
index ca8be9d2b6e391689d12f256fd5b29acbffc1a45..bad99f7d88e3d9c6bc2992377538595fd5f4ec05 100644
--- a/L2J_DataPack_BETA/dist/game/data/scripts/quests/Q249_PoisonedPlainsOfTheLizardmen/Q249_PoisonedPlainsOfTheLizardmen.java
+++ b/L2J_DataPack_BETA/dist/game/data/scripts/quests/Q249_PoisonedPlainsOfTheLizardmen/Q249_PoisonedPlainsOfTheLizardmen.java
@@ -91,7 +91,7 @@ public class Q249_PoisonedPlainsOfTheLizardmen extends Quest
 		{
 			if (st.getInt("cond") == 1)
 				htmltext = "32744-01.htm";
-			else if (st.getState() == State.COMPLETED)
+			else if (st.isCompleted())
 				htmltext = "32744-04.htm";
 		}
 		return htmltext;
diff --git a/L2J_DataPack_BETA/dist/game/data/scripts/quests/Q250_WatchWhatYouEat/Q250_WatchWhatYouEat.java b/L2J_DataPack_BETA/dist/game/data/scripts/quests/Q250_WatchWhatYouEat/Q250_WatchWhatYouEat.java
index 539cf24467cf4636ea1769f324c3d981c4bf44f9..e955af35bc2504258f12ac0f0727861330f74cb9 100644
--- a/L2J_DataPack_BETA/dist/game/data/scripts/quests/Q250_WatchWhatYouEat/Q250_WatchWhatYouEat.java
+++ b/L2J_DataPack_BETA/dist/game/data/scripts/quests/Q250_WatchWhatYouEat/Q250_WatchWhatYouEat.java
@@ -64,7 +64,7 @@ public class Q250_WatchWhatYouEat extends Quest
 				st.playSound("ItemSound.quest_finish");
 				st.exitQuest(false);
 			}
-			else if (event.equalsIgnoreCase("32743-22.html") && st.getState() == State.COMPLETED)
+			else if (event.equalsIgnoreCase("32743-22.html") && st.isCompleted())
 			{
 				htmltext = "32743-23.html";
 			}
diff --git a/L2J_DataPack_BETA/dist/game/data/scripts/quests/Q278_HomeSecurity/Q278_HomeSecurity.java b/L2J_DataPack_BETA/dist/game/data/scripts/quests/Q278_HomeSecurity/Q278_HomeSecurity.java
index 96c5ef848138abc54c18f87bafeae3dde3a6b9dc..377bc38f7f3bf0ef75cc4b8a376e7ecbc1de9fc6 100644
--- a/L2J_DataPack_BETA/dist/game/data/scripts/quests/Q278_HomeSecurity/Q278_HomeSecurity.java
+++ b/L2J_DataPack_BETA/dist/game/data/scripts/quests/Q278_HomeSecurity/Q278_HomeSecurity.java
@@ -73,7 +73,7 @@ public class Q278_HomeSecurity extends Quest
 			else
 				st.giveItems(959, 1);
 			
-			st.takeItems(SelMahumMane, st.getQuestItemsCount(SelMahumMane));
+			st.takeItems(SelMahumMane, -1);
 			st.unset("cond");
 			st.playSound("ItemSound.quest_finish");
 			st.exitQuest(true);
diff --git a/L2J_DataPack_BETA/dist/game/data/scripts/quests/Q279_TargetOfOpportunity/Q279_TargetOfOpportunity.java b/L2J_DataPack_BETA/dist/game/data/scripts/quests/Q279_TargetOfOpportunity/Q279_TargetOfOpportunity.java
index 3762defd1726b493afc9ae63acb11ccf0ab5c8a7..850c7875dc0331a4f9470f2f317ecea198351294 100644
--- a/L2J_DataPack_BETA/dist/game/data/scripts/quests/Q279_TargetOfOpportunity/Q279_TargetOfOpportunity.java
+++ b/L2J_DataPack_BETA/dist/game/data/scripts/quests/Q279_TargetOfOpportunity/Q279_TargetOfOpportunity.java
@@ -142,7 +142,7 @@ public final class Q279_TargetOfOpportunity extends Quest
 		final QuestState st = pl.getQuestState(qn);
 		if (Rnd.get(1000) < (int) (311 * Config.RATE_QUEST_DROP))
 		{
-			if (st.getQuestItemsCount(SEAL_COMPONENTS[idx]) < 1)
+			if (!st.hasQuestItems(SEAL_COMPONENTS[idx]))
 			{
 				st.giveItems(SEAL_COMPONENTS[idx], 1);
 				if (haveAllExceptThis(st, idx))
@@ -168,7 +168,7 @@ public final class Q279_TargetOfOpportunity extends Quest
 				continue;
 			}
 			
-			if (st.getQuestItemsCount(SEAL_COMPONENTS[i]) < 1)
+			if (!st.hasQuestItems(SEAL_COMPONENTS[i]))
 			{
 				return false;
 			}
diff --git a/L2J_DataPack_BETA/dist/game/data/scripts/quests/Q287_FiguringItOut/Q287_FiguringItOut.java b/L2J_DataPack_BETA/dist/game/data/scripts/quests/Q287_FiguringItOut/Q287_FiguringItOut.java
index 1814eace2790641fcfbfef898604d57b3344ce8f..3be35d9ee4d5a70470b94ed78bea39aad1c01f90 100644
--- a/L2J_DataPack_BETA/dist/game/data/scripts/quests/Q287_FiguringItOut/Q287_FiguringItOut.java
+++ b/L2J_DataPack_BETA/dist/game/data/scripts/quests/Q287_FiguringItOut/Q287_FiguringItOut.java
@@ -119,7 +119,7 @@ public class Q287_FiguringItOut extends Quest
 		}
 		else if (event.equalsIgnoreCase("32742-11.html"))
 		{
-			if (st.getQuestItemsCount(VialOfTantaBlood) >= 1)
+			if (st.hasQuestItems(VialOfTantaBlood))
 				htmltext = "32742-11.html";
 			else
 			{
@@ -151,7 +151,7 @@ public class Q287_FiguringItOut extends Quest
 		switch (st.getState())
 		{
 			case State.CREATED:
-				if (player.getLevel() >= 82 && prev != null && prev.getState() == State.COMPLETED)
+				if (player.getLevel() >= 82 && prev != null && prev.isCompleted())
 					htmltext = "32742-01.htm";
 				else
 					htmltext = "32742-14.htm";
diff --git a/L2J_DataPack_BETA/dist/game/data/scripts/quests/Q289_NoMoreSoupForYou/Q289_NoMoreSoupForYou.java b/L2J_DataPack_BETA/dist/game/data/scripts/quests/Q289_NoMoreSoupForYou/Q289_NoMoreSoupForYou.java
index 83b2c2cc236368e39214fa9e3b2770d09ff8f471..e3f5cb1e10cf2c467bac423f71d2dc90b986be5e 100644
--- a/L2J_DataPack_BETA/dist/game/data/scripts/quests/Q289_NoMoreSoupForYou/Q289_NoMoreSoupForYou.java
+++ b/L2J_DataPack_BETA/dist/game/data/scripts/quests/Q289_NoMoreSoupForYou/Q289_NoMoreSoupForYou.java
@@ -9,55 +9,135 @@ import com.l2jserver.gameserver.util.Util;
 
 public class Q289_NoMoreSoupForYou extends Quest
 {
-	public static final int STAN		= 30200;
-	public static final int RATE		= 5;
-	public static final int SOUP		= 15712;
-
+	public static final int STAN = 30200;
+	public static final int RATE = 5;
+	public static final int SOUP = 15712;
+	
 	public static final String qn = "289_NoMoreSoupForYou";
 	
 	private static final int[] MOBS =
 	{
 		18908, 22779, 22786, 22787, 22788
 	};
-
+	
 	private static final int[][] WEAPONS =
-	{{10377, 1}, {10401, 1}, {10401, 2}, {10401, 3}, {10401, 4}, {10401, 5}, {10401, 6}};
-
+	{
+		{
+			10377, 1
+		},
+		{
+			10401, 1
+		},
+		{
+			10401, 2
+		},
+		{
+			10401, 3
+		},
+		{
+			10401, 4
+		},
+		{
+			10401, 5
+		},
+		{
+			10401, 6
+		}
+	};
+	
 	private static final int[][] ARMORS =
-	{{15812, 1}, {15813, 1}, {15814, 1}, {15791, 1}, {15787, 1}, {15784, 1}, {15781, 1}, {15778, 1}, {15775, 1}, {15774, 5}, {15773, 5}, {15772, 5}, {15693, 5}, {15657, 5}, {15654, 5}, {15651, 5}, {15648, 5}, {15645, 5}};
+	{
+		{
+			15812, 1
+		},
+		{
+			15813, 1
+		},
+		{
+			15814, 1
+		},
+		{
+			15791, 1
+		},
+		{
+			15787, 1
+		},
+		{
+			15784, 1
+		},
+		{
+			15781, 1
+		},
+		{
+			15778, 1
+		},
+		{
+			15775, 1
+		},
+		{
+			15774, 5
+		},
+		{
+			15773, 5
+		},
+		{
+			15772, 5
+		},
+		{
+			15693, 5
+		},
+		{
+			15657, 5
+		},
+		{
+			15654, 5
+		},
+		{
+			15651, 5
+		},
+		{
+			15648, 5
+		},
+		{
+			15645, 5
+		}
+	};
 	
 	public Q289_NoMoreSoupForYou(int id, String name, String descr)
 	{
-		super(id,name,descr);
+		super(id, name, descr);
 		
 		addStartNpc(STAN);
 		addTalkId(STAN);
-
+		
 		for (int i : MOBS)
-			addKillId(i);	
+		{
+			addKillId(i);
+		}
 	}
 	
 	public static void main(String[] args)
 	{
 		new Q289_NoMoreSoupForYou(289, qn, "No More Soup For You");
-		_log.info("Loaded Quest: No More Soup For You");
 	}
 	
 	@Override
-	public String onAdvEvent (String event, L2Npc npc, L2PcInstance player)
+	public String onAdvEvent(String event, L2Npc npc, L2PcInstance player)
 	{
 		String htmltext = event;
 		QuestState st = player.getQuestState(qn);
 		if (st == null)
+		{
 			return htmltext;
+		}
 		int b = st.getRandom(18);
 		int c = st.getRandom(7);
-
+		
 		if (npc.getNpcId() == STAN)
 		{
 			if (event.equalsIgnoreCase("30200-03.htm"))
 			{
-				st.set("cond","1");
+				st.set("cond", "1");
 				st.setState(State.STARTED);
 				st.playSound("ItemSound.quest_accept");
 			}
@@ -65,75 +145,91 @@ public class Q289_NoMoreSoupForYou extends Quest
 			{
 				if (st.getQuestItemsCount(SOUP) >= 500)
 				{
-					st.giveItems(WEAPONS[c][0],WEAPONS[c][1]);
+					st.giveItems(WEAPONS[c][0], WEAPONS[c][1]);
 					st.takeItems(SOUP, 500);
 					st.playSound("ItemSound.quest_accept");
 					htmltext = "30200-04.htm";
 				}
 				else
+				{
 					htmltext = "30200-07.htm";
+				}
 			}
 			else if (event.equalsIgnoreCase("30200-06.htm"))
 			{
 				if (st.getQuestItemsCount(SOUP) >= 100)
 				{
-					st.giveItems(ARMORS[b][0],ARMORS[b][1]);
+					st.giveItems(ARMORS[b][0], ARMORS[b][1]);
 					st.takeItems(SOUP, 100);
 					st.playSound("ItemSound.quest_accept");
 					htmltext = "30200-04.htm";
 				}
 				else
+				{
 					htmltext = "30200-07.htm";
+				}
 			}
 		}
 		return htmltext;
 	}
 	
 	@Override
-	public String onTalk(L2Npc npc,L2PcInstance player)
+	public String onTalk(L2Npc npc, L2PcInstance player)
 	{
 		String htmltext = getNoQuestMsg(player);
 		QuestState st = player.getQuestState(qn);
 		if (st == null)
+		{
 			return htmltext;
+		}
 		
-		if(npc.getNpcId() == STAN)
+		if (npc.getNpcId() == STAN)
 		{
 			switch (st.getState())
 			{
 				case State.CREATED:
-					QuestState PREV = player.getQuestState("252_ItSmellsDelicious");
-					if ((PREV != null) && (PREV.getState() == State.COMPLETED) && (player.getLevel() >= 82))
+					QuestState _prev = player.getQuestState("252_ItSmellsDelicious");
+					if ((_prev != null) && _prev.isCompleted() && (player.getLevel() >= 82))
+					{
 						htmltext = "30200-01.htm";
+					}
 					else
+					{
 						htmltext = "30200-00.htm";
-				break;
+					}
+					break;
 				case State.STARTED:
 					if (st.getInt("cond") == 1)
 					{
 						if (st.getQuestItemsCount(SOUP) >= 100)
+						{
 							htmltext = "30200-04.htm";
+						}
 						else
+						{
 							htmltext = "30200-03.htm";
+						}
 					}
-				break;
+					break;
 			}
 		}
 		return htmltext;
 	}
 	
 	@Override
-	public String onKill(L2Npc npc, L2PcInstance player, boolean isPet) 
+	public String onKill(L2Npc npc, L2PcInstance player, boolean isPet)
 	{
 		QuestState st = player.getQuestState(getName());
 		int npcId = npc.getNpcId();
-		if (st == null || st.getState() != State.STARTED)
+		if ((st == null) || (st.getState() != State.STARTED))
+		{
 			return null;
+		}
 		if (Util.contains(MOBS, npcId))
 		{
-			st.giveItems(SOUP, 1*RATE);
+			st.giveItems(SOUP, 1 * RATE);
 			st.playSound("ItemSound.quest_itemget");
 		}
 		return super.onKill(npc, player, isPet);
 	}
-}
\ No newline at end of file
+}
diff --git a/L2J_DataPack_BETA/dist/game/data/scripts/quests/Q290_ThreatRemoval/Q290_ThreatRemoval.java b/L2J_DataPack_BETA/dist/game/data/scripts/quests/Q290_ThreatRemoval/Q290_ThreatRemoval.java
index 9fdb2f4955ff631778a75e6852dc2d8f3cf14896..9c54c11561beddc2d05d2cb43ec4bddaea453308 100644
--- a/L2J_DataPack_BETA/dist/game/data/scripts/quests/Q290_ThreatRemoval/Q290_ThreatRemoval.java
+++ b/L2J_DataPack_BETA/dist/game/data/scripts/quests/Q290_ThreatRemoval/Q290_ThreatRemoval.java
@@ -105,7 +105,7 @@ public class Q290_ThreatRemoval extends Quest
 			switch (st.getState())
 			{
 				case State.CREATED:
-					if (player.getLevel() >= 82 && (_prev != null && _prev.getState() == State.COMPLETED))
+					if (player.getLevel() >= 82 && (_prev != null) && _prev.isCompleted())
 						htmltext = "30201-01.htm";
 					else
 						htmltext = "30201-00.htm";
diff --git a/L2J_DataPack_BETA/dist/game/data/scripts/quests/Q307_ControlDeviceOfTheGiants/Q307_ControlDeviceOfTheGiants.java b/L2J_DataPack_BETA/dist/game/data/scripts/quests/Q307_ControlDeviceOfTheGiants/Q307_ControlDeviceOfTheGiants.java
index 6c263dea1fd3356accc49612a77f8d1d117ca388..e51cfcb58a0271ee75896406c710c30fe35b6315 100644
--- a/L2J_DataPack_BETA/dist/game/data/scripts/quests/Q307_ControlDeviceOfTheGiants/Q307_ControlDeviceOfTheGiants.java
+++ b/L2J_DataPack_BETA/dist/game/data/scripts/quests/Q307_ControlDeviceOfTheGiants/Q307_ControlDeviceOfTheGiants.java
@@ -58,9 +58,9 @@ public class Q307_ControlDeviceOfTheGiants extends Quest
 				st.setState(State.STARTED);
 				st.set("cond", "1");
 				st.playSound("ItemSound.quest_accept");
-				if (st.getQuestItemsCount(CET_1_SHEET) < 1 || st.getQuestItemsCount(CET_2_SHEET) < 1 || st.getQuestItemsCount(CET_3_SHEET) < 1)
+				if (!st.hasQuestItems(CET_1_SHEET) || !st.hasQuestItems(CET_2_SHEET) || !st.hasQuestItems(CET_3_SHEET))
 					htmltext = "32711-04.htm";
-				else if (st.getQuestItemsCount(CET_1_SHEET) >= 1 && st.getQuestItemsCount(CET_2_SHEET) >= 1 && st.getQuestItemsCount(CET_3_SHEET) >= 1)
+				else if (st.hasQuestItems(CET_1_SHEET) && st.hasQuestItems(CET_2_SHEET) && st.hasQuestItems(CET_3_SHEET))
 					htmltext = "32711-04a.htm";
 			}
 		}
@@ -134,7 +134,7 @@ public class Q307_ControlDeviceOfTheGiants extends Quest
 					htmltext = "32711-09.htm";
 				else if (st.getInt("cond") == 1)
 				{
-					if (st.getQuestItemsCount(CET_1_SHEET) < 1 || st.getQuestItemsCount(CET_2_SHEET) < 1 || st.getQuestItemsCount(CET_3_SHEET) < 1)
+					if (!st.hasQuestItems(CET_1_SHEET) || st.hasQuestItems(CET_2_SHEET) || st.hasQuestItems(CET_3_SHEET))
 						htmltext = "32711-07.htm";
 					else
 						htmltext = "32711-08.htm";
diff --git a/L2J_DataPack_BETA/dist/game/data/scripts/quests/Q309_ForAGoodCause/Q309_ForAGoodCause.java b/L2J_DataPack_BETA/dist/game/data/scripts/quests/Q309_ForAGoodCause/Q309_ForAGoodCause.java
index f84c0149450b4b7d09719b29c51bfa356d636298..8f86eebc17d710274b86784f9c8e5e079ab0329f 100644
--- a/L2J_DataPack_BETA/dist/game/data/scripts/quests/Q309_ForAGoodCause/Q309_ForAGoodCause.java
+++ b/L2J_DataPack_BETA/dist/game/data/scripts/quests/Q309_ForAGoodCause/Q309_ForAGoodCause.java
@@ -216,7 +216,7 @@ public class Q309_ForAGoodCause extends Quest
 			if ((_prev!=null) && _prev.isStarted()){
 				htmltext = "32647-17.htm";
 			}else if (st.isStarted()){
-				if(st.getQuestItemsCount(MUCROKIAN_HIDE) >= 1 || st.getQuestItemsCount(FALLEN_MUCROKIAN_HIDE) >= 1)
+				if(st.hasQuestItems(MUCROKIAN_HIDE) || st.hasQuestItems(FALLEN_MUCROKIAN_HIDE))
 					htmltext = "32647-08.htm";
 				else
 					htmltext = "32647-06.htm";
@@ -264,8 +264,7 @@ public class Q309_ForAGoodCause extends Quest
 	
 	private String onPiecesExchangeRequest(QuestState st, int pieces,int event)
 	{
-		long h1 = st.getQuestItemsCount(MUCROKIAN_HIDE);
-		if (h1 >= event)
+		if (st.getQuestItemsCount(MUCROKIAN_HIDE) >= event)
 		{
 			st.giveItems(pieces,Rnd.get(1,4));
 			st.takeItems(MUCROKIAN_HIDE,event);
@@ -280,8 +279,7 @@ public class Q309_ForAGoodCause extends Quest
 	
 	private String onRecipeExchangeRequest(QuestState st, int recipe, int takeid, int quanty)
 	{
-		long h1 = st.getQuestItemsCount(takeid);
-		if (h1 >= quanty)
+		if (st.getQuestItemsCount(takeid) >= quanty)
 		{
 			st.giveItems(recipe, 1);
 			st.takeItems(takeid, quanty);
@@ -301,9 +299,7 @@ public class Q309_ForAGoodCause extends Quest
 		addStartNpc(ATRA);
 		addTalkId(ATRA);
 		
-		for(int _mob : MUCROKIANS)
-			addKillId(_mob);
-		
+		addKillId(MUCROKIANS);
 	}
 	
 	public static void main(String[] args)
diff --git a/L2J_DataPack_BETA/dist/game/data/scripts/quests/Q350_EnhanceYourWeapon/Q350_EnhanceYourWeapon.java b/L2J_DataPack_BETA/dist/game/data/scripts/quests/Q350_EnhanceYourWeapon/Q350_EnhanceYourWeapon.java
index 917d2ae6307701b887207c8499c1aab1e7bcae6e..03a6b2e43fcb568a8fee746c4edcc7fadc7e657f 100644
--- a/L2J_DataPack_BETA/dist/game/data/scripts/quests/Q350_EnhanceYourWeapon/Q350_EnhanceYourWeapon.java
+++ b/L2J_DataPack_BETA/dist/game/data/scripts/quests/Q350_EnhanceYourWeapon/Q350_EnhanceYourWeapon.java
@@ -124,7 +124,7 @@ public class Q350_EnhanceYourWeapon extends Quest
 	private boolean check(QuestState st)
 	{
 		for (int i = 4629; i < 4665; i++)
-			if (st.getQuestItemsCount(i) > 0)
+			if (st.hasQuestItems(i))
 				return true;
 		return false;
 	}
@@ -362,9 +362,7 @@ public class Q350_EnhanceYourWeapon extends Quest
 			htmltext = npc.getNpcId() + "-01.htm";
 		else if (check(st))
 			htmltext = npc.getNpcId() + "-03.htm";
-		else if (st.getQuestItemsCount(RED_SOUL_CRYSTAL0_ID) == 0
-				&& st.getQuestItemsCount(GREEN_SOUL_CRYSTAL0_ID) == 0
-				&& st.getQuestItemsCount(BLUE_SOUL_CRYSTAL0_ID) == 0)
+		else if (!st.hasQuestItems(RED_SOUL_CRYSTAL0_ID) && !st.hasQuestItems(GREEN_SOUL_CRYSTAL0_ID) && !st.hasQuestItems(BLUE_SOUL_CRYSTAL0_ID))
 			htmltext = npc.getNpcId() + "-21.htm";
 		return htmltext;
 	}
diff --git a/L2J_DataPack_BETA/dist/game/data/scripts/quests/Q401_PathToWarrior/Q401_PathToWarrior.java b/L2J_DataPack_BETA/dist/game/data/scripts/quests/Q401_PathToWarrior/Q401_PathToWarrior.java
index e8d8161a2ebe50539bc09514477f274c4dc1e26c..7d1e21c34e4e3d9dbf861056137d317e872253d3 100644
--- a/L2J_DataPack_BETA/dist/game/data/scripts/quests/Q401_PathToWarrior/Q401_PathToWarrior.java
+++ b/L2J_DataPack_BETA/dist/game/data/scripts/quests/Q401_PathToWarrior/Q401_PathToWarrior.java
@@ -16,6 +16,7 @@ package quests.Q401_PathToWarrior;
 
 import com.l2jserver.gameserver.model.actor.L2Npc;
 import com.l2jserver.gameserver.model.actor.instance.L2PcInstance;
+import com.l2jserver.gameserver.model.base.ClassId;
 import com.l2jserver.gameserver.model.itemcontainer.Inventory;
 import com.l2jserver.gameserver.model.quest.Quest;
 import com.l2jserver.gameserver.model.quest.QuestState;
@@ -78,7 +79,7 @@ public class Q401_PathToWarrior extends Quest
 					htmltext = "30010-02.htm";
 				}
 			}
-			else if (player.getClassId().getId() == 0x01)
+			else if (player.getClassId() == ClassId.warrior)
 			{
 				htmltext = "30010-03.htm";
 			}
diff --git a/L2J_DataPack_BETA/dist/game/data/scripts/quests/Q423_TakeYourBestShot/Q423_TakeYourBestShot.java b/L2J_DataPack_BETA/dist/game/data/scripts/quests/Q423_TakeYourBestShot/Q423_TakeYourBestShot.java
index c583b6f72254154cd7ed541fbeed01bf70e498d1..2c7dd17044bc1734dffd2bc92d50da558c88848e 100644
--- a/L2J_DataPack_BETA/dist/game/data/scripts/quests/Q423_TakeYourBestShot/Q423_TakeYourBestShot.java
+++ b/L2J_DataPack_BETA/dist/game/data/scripts/quests/Q423_TakeYourBestShot/Q423_TakeYourBestShot.java
@@ -86,7 +86,7 @@ public class Q423_TakeYourBestShot extends Quest
 			{
 				case State.CREATED :
 					QuestState _prev = player.getQuestState("249_PoisonedPlainsOfTheLizardmen");
-					if ((_prev != null) && (_prev.getState() == State.COMPLETED) && (player.getLevel() >= 82))
+					if ((_prev != null) && _prev.isCompleted() && (player.getLevel() >= 82))
 						if (st.hasQuestItems(_seer_ugoros_pass))
 							htmltext = "32744-07.htm";
 						else
diff --git a/L2J_DataPack_BETA/dist/game/data/scripts/quests/Q453_NotStrongEnoughAlone/Q453_NotStrongEnoughAlone.java b/L2J_DataPack_BETA/dist/game/data/scripts/quests/Q453_NotStrongEnoughAlone/Q453_NotStrongEnoughAlone.java
index fa51f0fd9d913ea050b01ea0e831e79601cd470b..8634911a6df9093d43ec4bf68f1d573d70f93f32 100644
--- a/L2J_DataPack_BETA/dist/game/data/scripts/quests/Q453_NotStrongEnoughAlone/Q453_NotStrongEnoughAlone.java
+++ b/L2J_DataPack_BETA/dist/game/data/scripts/quests/Q453_NotStrongEnoughAlone/Q453_NotStrongEnoughAlone.java
@@ -106,7 +106,7 @@ public class Q453_NotStrongEnoughAlone extends Quest
 		switch (st.getState())
 		{
 			case State.CREATED:
-				if (player.getLevel() >= 84 && prev != null && prev.getState() == State.COMPLETED)
+				if ((player.getLevel() >= 84) && (prev != null) && prev.isCompleted())
 					htmltext = "32734-01.htm";
 				else
 					htmltext = "32734-03.html";
diff --git a/L2J_DataPack_BETA/dist/game/data/scripts/quests/Q461_RumbleInTheBase/Q461_RumbleInTheBase.java b/L2J_DataPack_BETA/dist/game/data/scripts/quests/Q461_RumbleInTheBase/Q461_RumbleInTheBase.java
index 1a0eb581312310de182b629153c46e88d96eb426..5a74809cca79be484875e76d42776ee422681d95 100644
--- a/L2J_DataPack_BETA/dist/game/data/scripts/quests/Q461_RumbleInTheBase/Q461_RumbleInTheBase.java
+++ b/L2J_DataPack_BETA/dist/game/data/scripts/quests/Q461_RumbleInTheBase/Q461_RumbleInTheBase.java
@@ -60,7 +60,7 @@ public class Q461_RumbleInTheBase extends Quest
 		switch (st.getState())
 		{
 			case State.CREATED:
-				if (player.getLevel() >= 82 && prev != null && prev.getState() == State.COMPLETED)
+				if ((player.getLevel() >= 82) && (prev != null) && prev.isCompleted())
 					htmltext = "30200-01.htm";
 				else
 					htmltext = "30200-02.htm";
diff --git a/L2J_DataPack_BETA/dist/game/data/scripts/quests/Q511_AwlUnderFoot/Q511_AwlUnderFoot.java b/L2J_DataPack_BETA/dist/game/data/scripts/quests/Q511_AwlUnderFoot/Q511_AwlUnderFoot.java
index 68e6a1ff036e06a349a2871060f463d5446bc9ea..a68d60962fba48938d05593e635e635b02dae37f 100644
--- a/L2J_DataPack_BETA/dist/game/data/scripts/quests/Q511_AwlUnderFoot/Q511_AwlUnderFoot.java
+++ b/L2J_DataPack_BETA/dist/game/data/scripts/quests/Q511_AwlUnderFoot/Q511_AwlUnderFoot.java
@@ -299,7 +299,7 @@ public final class Q511_AwlUnderFoot extends Quest
 				if (cond == 1 && count > 0)
 				{
 					htmltext = "FortressWarden-14.htm";
-					st.takeItems(DL_MARK,count);
+					st.takeItems(DL_MARK, -1);
 					st.rewardItems(KNIGHT_EPALUETTE, count);
 				}
 				else if (cond == 1 && count == 0)
diff --git a/L2J_DataPack_BETA/dist/game/data/scripts/quests/Q636_TruthBeyond/Q636_TruthBeyond.java b/L2J_DataPack_BETA/dist/game/data/scripts/quests/Q636_TruthBeyond/Q636_TruthBeyond.java
index 7e0dcdefbc5f5487ed8f3e38122940a1b306a34a..6da9377e11db8638c6bffcb97dc3b1caf5bec7ca 100644
--- a/L2J_DataPack_BETA/dist/game/data/scripts/quests/Q636_TruthBeyond/Q636_TruthBeyond.java
+++ b/L2J_DataPack_BETA/dist/game/data/scripts/quests/Q636_TruthBeyond/Q636_TruthBeyond.java
@@ -79,9 +79,7 @@ public final class Q636_TruthBeyond extends Quest
 		
 		if (npc.getNpcId() == ELIAH)
 		{
-			if (st.getQuestItemsCount(VISITOR_MARK) > 0
-					|| st.getQuestItemsCount(FADED_MARK) > 0
-					|| st.getQuestItemsCount(MARK) > 0)
+			if (st.hasQuestItems(VISITOR_MARK) || st.hasQuestItems(FADED_MARK) || st.hasQuestItems(MARK))
 			{
 				st.exitQuest(true);
 				return "31329-mark.htm";
diff --git a/L2J_DataPack_BETA/dist/game/data/scripts/quests/Q637_ThroughOnceMore/Q637_ThroughOnceMore.java b/L2J_DataPack_BETA/dist/game/data/scripts/quests/Q637_ThroughOnceMore/Q637_ThroughOnceMore.java
index 8ea157c0630faef3749250b11e3e4fa801493512..ee8a891203c03d35de7993f14ed8db33fb5b85bf 100644
--- a/L2J_DataPack_BETA/dist/game/data/scripts/quests/Q637_ThroughOnceMore/Q637_ThroughOnceMore.java
+++ b/L2J_DataPack_BETA/dist/game/data/scripts/quests/Q637_ThroughOnceMore/Q637_ThroughOnceMore.java
@@ -82,14 +82,14 @@ public final class Q637_ThroughOnceMore extends Quest
 		{
 			if (player.getLevel() > 72)
 			{
-				if (st.getQuestItemsCount(FADED_MARK) > 0)
+				if (st.hasQuestItems(FADED_MARK))
 					return "32010-02.htm";
-				if (st.getQuestItemsCount(VISITOR_MARK) > 0)
+				if (st.hasQuestItems(VISITOR_MARK))
 				{
 					st.exitQuest(true);
 					return "32010-01a.htm";
 				}
-				if (st.getQuestItemsCount(MARK) > 0)
+				if (st.hasQuestItems(MARK))
 				{
 					st.exitQuest(true);
 					return "32010-0.htm";
@@ -100,8 +100,7 @@ public final class Q637_ThroughOnceMore extends Quest
 		}
 		else if (id == State.STARTED)
 		{
-			if (Integer.parseInt(st.get("cond")) == 2
-					&& st.getQuestItemsCount(NECRO_HEART) == 10)
+			if ((st.getInt("cond") == 2) && st.getQuestItemsCount(NECRO_HEART) == 10)
 			{
 				st.takeItems(NECRO_HEART, 10);
 				st.takeItems(FADED_MARK, 1);
@@ -114,7 +113,6 @@ public final class Q637_ThroughOnceMore extends Quest
 			else
 				return "32010-04.htm";
 		}
-		
 		return getNoQuestMsg(player);
 	}
 	
diff --git a/L2J_DataPack_BETA/dist/game/data/scripts/quests/Q691_MatrasSuspiciousRequest/Q691_MatrasSuspiciousRequest.java b/L2J_DataPack_BETA/dist/game/data/scripts/quests/Q691_MatrasSuspiciousRequest/Q691_MatrasSuspiciousRequest.java
index 25b47227d1b5002266fa953ea904e225755b3062..01614febfe5a7ab117d2288950642305151f717e 100644
--- a/L2J_DataPack_BETA/dist/game/data/scripts/quests/Q691_MatrasSuspiciousRequest/Q691_MatrasSuspiciousRequest.java
+++ b/L2J_DataPack_BETA/dist/game/data/scripts/quests/Q691_MatrasSuspiciousRequest/Q691_MatrasSuspiciousRequest.java
@@ -146,11 +146,11 @@ public final class Q691_MatrasSuspiciousRequest extends Quest
 		}
 		else if (st.getState() == State.STARTED)
 		{
-			if (st.getQuestItemsCount(RED_GEM) > 0)
+			if (st.hasQuestItems(RED_GEM))
 			{
 				htmltext = "32245-05.htm";
 			}
-			else if (st.getQuestItemsCount(RED_GEM) == 0)
+			else if (!st.hasQuestItems(RED_GEM))
 			{
 				htmltext = "32245-06.htm";
 			}
diff --git a/L2J_DataPack_BETA/dist/game/data/scripts/quests/Q692_HowtoOpposeEvil/Q692_HowtoOpposeEvil.java b/L2J_DataPack_BETA/dist/game/data/scripts/quests/Q692_HowtoOpposeEvil/Q692_HowtoOpposeEvil.java
index 850d93936951aff1dc255649b17d9ce58a1e98bf..950984f572385702afdff31f13f6c916a2abf325 100644
--- a/L2J_DataPack_BETA/dist/game/data/scripts/quests/Q692_HowtoOpposeEvil/Q692_HowtoOpposeEvil.java
+++ b/L2J_DataPack_BETA/dist/game/data/scripts/quests/Q692_HowtoOpposeEvil/Q692_HowtoOpposeEvil.java
@@ -175,7 +175,7 @@ public final class Q692_HowtoOpposeEvil extends Quest
 		{
 			if (npc.getNpcId() == DILIOS)
 			{
-				if (cond == 1 && st.getQuestItemsCount(LEKONS_CERTIFICATE) >= 1)
+				if (cond == 1 && st.hasQuestItems(LEKONS_CERTIFICATE))
 				{
 					st.takeItems(LEKONS_CERTIFICATE, 1);
 					htmltext = "32549-04.htm";
diff --git a/L2J_DataPack_BETA/dist/game/data/scripts/quests/Q702_ATrapForRevenge/Q702_ATrapForRevenge.java b/L2J_DataPack_BETA/dist/game/data/scripts/quests/Q702_ATrapForRevenge/Q702_ATrapForRevenge.java
index cb9f67d045bf8777a577ee4c952a5d70eb056fcf..43fdcd7e7fd25c86538bead0f319c5949ec3a993 100644
--- a/L2J_DataPack_BETA/dist/game/data/scripts/quests/Q702_ATrapForRevenge/Q702_ATrapForRevenge.java
+++ b/L2J_DataPack_BETA/dist/game/data/scripts/quests/Q702_ATrapForRevenge/Q702_ATrapForRevenge.java
@@ -64,17 +64,15 @@ public class Q702_ATrapForRevenge extends Quest
 		}
 		else if (event.equalsIgnoreCase("32563-09.html"))
 		{
-			long count = st.getQuestItemsCount(DrakeFlesh);
-			st.giveItems(57, count * 100);
-			st.takeItems(DrakeFlesh, count);
+			st.giveItems(57, st.getQuestItemsCount(DrakeFlesh) * 100);
+			st.takeItems(DrakeFlesh, -1);
 		}
 		else if (event.equalsIgnoreCase("32563-11.html"))
 		{
 			if (st.hasQuestItems(VariantDrakeWingHorns))
 			{
-				long count = st.getQuestItemsCount(VariantDrakeWingHorns);
-				st.giveItems(57, count * 200000);
-				st.takeItems(VariantDrakeWingHorns, count);
+				st.giveItems(57, st.getQuestItemsCount(VariantDrakeWingHorns) * 200000);
+				st.takeItems(VariantDrakeWingHorns, -1);
 				htmltext = "32563-12.html";
 			}
 			else
@@ -237,7 +235,7 @@ public class Q702_ATrapForRevenge extends Quest
 			switch (st.getState())
 			{
 				case State.CREATED:
-					if (prev != null && prev.getState() == State.COMPLETED && player.getLevel() >= 78)
+					if ((prev != null) && prev.isCompleted() && (player.getLevel() >= 78))
 						htmltext = "32563-01.htm";
 					else
 						htmltext = "32563-02.htm";
diff --git a/L2J_DataPack_BETA/dist/game/data/scripts/quests/SagasScripts/SagaOfTheDuelist.java b/L2J_DataPack_BETA/dist/game/data/scripts/quests/SagasScripts/SagaOfTheDuelist.java
index 5291dafb431bc267f1862b00b289bafbb67d37d0..c03ade757b680fe66cd205a3374ec37c41d6ca2a 100644
--- a/L2J_DataPack_BETA/dist/game/data/scripts/quests/SagasScripts/SagaOfTheDuelist.java
+++ b/L2J_DataPack_BETA/dist/game/data/scripts/quests/SagasScripts/SagaOfTheDuelist.java
@@ -83,7 +83,7 @@ public class SagaOfTheDuelist extends SagasSuperClass
 				int cond = st.getInt("cond");
 				if (cond == 3)
 				{
-					if (st.getQuestItemsCount(TOPQUALITYMEAT) == 0)
+					if (!st.hasQuestItems(TOPQUALITYMEAT))
 					{
 						st.giveItems(TOPQUALITYMEAT, 1);
 						return "tunatun_01.htm";
diff --git a/L2J_DataPack_BETA/dist/game/data/scripts/quests/SagasScripts/SagasSuperClass.java b/L2J_DataPack_BETA/dist/game/data/scripts/quests/SagasScripts/SagasSuperClass.java
index c3c280caf6ead73e2213a52dedd7c81c8c4f4d24..e58dd66c2934de6ec580159ba672d8af63ae0265 100644
--- a/L2J_DataPack_BETA/dist/game/data/scripts/quests/SagasScripts/SagasSuperClass.java
+++ b/L2J_DataPack_BETA/dist/game/data/scripts/quests/SagasScripts/SagasSuperClass.java
@@ -508,7 +508,7 @@ public class SagasSuperClass extends QuestJython
 		{
 			int npcId = npc.getNpcId();
 			int cond = st.getInt("cond");
-			if (st.getState() == State.COMPLETED && npcId == NPC[0])
+			if (st.isCompleted() && (npcId == NPC[0]))
 				htmltext = "<html><body>You have already completed this quest!</body></html>";
 			else if (player.getClassId().getId() == getPrevClass(player))
 			{
@@ -533,10 +533,10 @@ public class SagasSuperClass extends QuestJython
 				}
 				else if (cond == 3)
 				{
-					if (npcId == NPC[1] && st.getQuestItemsCount(Items[0]) != 0)
+					if (npcId == NPC[1] && st.hasQuestItems(Items[0]))
 					{
 						htmltext = "1-02.htm";
-						if (Items[11] == 0 || st.getQuestItemsCount(Items[11]) != 0)
+						if (Items[11] == 0 || st.hasQuestItems(Items[11]))
 							htmltext = "1-03.htm";
 					}
 				}
@@ -589,7 +589,7 @@ public class SagasSuperClass extends QuestJython
 				{
 					if (npcId == NPC[3])
 					{
-						if (st.getQuestItemsCount(Items[2]) > 0)
+						if (st.hasQuestItems(Items[2]))
 							htmltext = "3-05.htm";
 						else
 							htmltext = "3-04.htm";
diff --git a/L2J_DataPack_BETA/dist/game/data/scripts/quests/TerritoryWarScripts/TerritoryWarSuperClass.java b/L2J_DataPack_BETA/dist/game/data/scripts/quests/TerritoryWarScripts/TerritoryWarSuperClass.java
index 791c37455587c3d52ece18f654048adf6aa7a0a5..bce8da66f7960c6b0ffcd08b0ccbadc03af36a26 100644
--- a/L2J_DataPack_BETA/dist/game/data/scripts/quests/TerritoryWarScripts/TerritoryWarSuperClass.java
+++ b/L2J_DataPack_BETA/dist/game/data/scripts/quests/TerritoryWarScripts/TerritoryWarSuperClass.java
@@ -209,9 +209,9 @@ public class TerritoryWarSuperClass extends Quest
 		int max = 10;
 		if (st == null)
 			st = newQuestState(player);
-		if (st.getState() != State.COMPLETED)
+		if (!st.isCompleted())
 		{
-			if (st.getState() != State.STARTED)
+			if (!st.isStarted())
 			{
 				st.setState(State.STARTED);
 				st.set("cond","1");
diff --git a/L2J_DataPack_BETA/dist/game/data/scripts/teleports/StakatoNest/StakatoNest.java b/L2J_DataPack_BETA/dist/game/data/scripts/teleports/StakatoNest/StakatoNest.java
index 9c209217562a87f203e18fcaa30f207f47a8de60..3029cef9fc805eb8dc6b7481f30bc051ff71a2cb 100644
--- a/L2J_DataPack_BETA/dist/game/data/scripts/teleports/StakatoNest/StakatoNest.java
+++ b/L2J_DataPack_BETA/dist/game/data/scripts/teleports/StakatoNest/StakatoNest.java
@@ -19,7 +19,6 @@ import com.l2jserver.gameserver.model.actor.L2Npc;
 import com.l2jserver.gameserver.model.actor.instance.L2PcInstance;
 import com.l2jserver.gameserver.model.quest.Quest;
 import com.l2jserver.gameserver.model.quest.QuestState;
-import com.l2jserver.gameserver.model.quest.State;
 
 public class StakatoNest extends Quest
 {
@@ -75,7 +74,7 @@ public class StakatoNest extends Quest
 	{
 		String htmltext = "";
 		QuestState accessQuest = player.getQuestState("240_ImTheOnlyOneYouCanTrust");
-		if (accessQuest != null && accessQuest.getState() == State.COMPLETED)
+		if ((accessQuest != null) && accessQuest.isCompleted())
 			htmltext = "32640.htm";
 		else
 			htmltext = "32640-no.htm";
diff --git a/L2J_DataPack_BETA/dist/game/data/scripts/teleports/Warpgate/Warpgate.java b/L2J_DataPack_BETA/dist/game/data/scripts/teleports/Warpgate/Warpgate.java
index 4ad87e5fba2ed3e6c852ad033c19f3829b8fc59e..83fb94b37b94356340e8e518d443632a7d3680dd 100644
--- a/L2J_DataPack_BETA/dist/game/data/scripts/teleports/Warpgate/Warpgate.java
+++ b/L2J_DataPack_BETA/dist/game/data/scripts/teleports/Warpgate/Warpgate.java
@@ -21,7 +21,6 @@ import com.l2jserver.gameserver.model.actor.L2Npc;
 import com.l2jserver.gameserver.model.actor.instance.L2PcInstance;
 import com.l2jserver.gameserver.model.quest.Quest;
 import com.l2jserver.gameserver.model.quest.QuestState;
-import com.l2jserver.gameserver.model.quest.State;
 import com.l2jserver.gameserver.model.zone.L2ZoneType;
 
 public class Warpgate extends Quest
@@ -48,14 +47,14 @@ public class Warpgate extends Quest
 		if (!HellboundManager.getInstance().isLocked())
 		{
 			st = player.getQuestState(PATH_TO_HELLBOUND);
-			if ((st != null) && (st.getState() == State.COMPLETED))
+			if ((st != null) && st.isCompleted())
 			{
 				return true;
 			}
 		}
 		
 		st = player.getQuestState(THATS_BLOODY_HOT);
-		if ((st != null) && (st.getState() == State.COMPLETED))
+		if ((st != null) && st.isCompleted())
 		{
 			return true;
 		}