Prevent the extensive use of the lvl abbreviation.
This commit is contained in:
		
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							@@ -185,7 +185,7 @@ public class DenOfEvil extends AbstractNpcAI
 | 
			
		||||
		{
 | 
			
		||||
			for (int i = SKILL_ID; i <= (SKILL_ID + 4); i += 2)
 | 
			
		||||
			{
 | 
			
		||||
				// test 3 skills if some is lvl 4
 | 
			
		||||
				// test 3 skills if some is level 4
 | 
			
		||||
				if (_zone.getSkillLevel(i) > 3)
 | 
			
		||||
				{
 | 
			
		||||
					destroyZone();
 | 
			
		||||
 
 | 
			
		||||
@@ -82,8 +82,8 @@ public class DragonValley extends AbstractNpcAI
 | 
			
		||||
	// Misc
 | 
			
		||||
	private static final int MIN_DISTANCE = 1500;
 | 
			
		||||
	private static final int MIN_MEMBERS = 3;
 | 
			
		||||
	private static final int MIN_LVL = 80;
 | 
			
		||||
	private static final int CLASS_LVL = 3;
 | 
			
		||||
	private static final int MIN_LEVEL = 80;
 | 
			
		||||
	private static final int CLASS_LEVEL = 3;
 | 
			
		||||
	private static final EnumMap<ClassId, Double> CLASS_POINTS = new EnumMap<>(ClassId.class);
 | 
			
		||||
	static
 | 
			
		||||
	{
 | 
			
		||||
@@ -227,7 +227,7 @@ public class DragonValley extends AbstractNpcAI
 | 
			
		||||
		{
 | 
			
		||||
			for (PlayerInstance member : player.getParty().getMembers())
 | 
			
		||||
			{
 | 
			
		||||
				if ((member.getLevel() >= MIN_LVL) && (member.getClassId().level() >= CLASS_LVL) && (npc.calculateDistance3D(member) < MIN_DISTANCE))
 | 
			
		||||
				if ((member.getLevel() >= MIN_LEVEL) && (member.getClassId().level() >= CLASS_LEVEL) && (npc.calculateDistance3D(member) < MIN_DISTANCE))
 | 
			
		||||
				{
 | 
			
		||||
					points += CLASS_POINTS.get(member.getClassId());
 | 
			
		||||
				}
 | 
			
		||||
 
 | 
			
		||||
@@ -69,7 +69,7 @@ public class Chimeras extends AbstractNpcAI
 | 
			
		||||
	@Override
 | 
			
		||||
	public String onSpawn(Npc npc)
 | 
			
		||||
	{
 | 
			
		||||
		if (HellboundEngine.getInstance().getLevel() == 7) // Have random spawn points only in 7 lvl
 | 
			
		||||
		if (HellboundEngine.getInstance().getLevel() == 7) // Have random spawn points only in 7 level
 | 
			
		||||
		{
 | 
			
		||||
			final Location loc = LOCATIONS[getRandom(LOCATIONS.length)];
 | 
			
		||||
			if (!npc.isInsideRadius2D(loc, 200))
 | 
			
		||||
 
 | 
			
		||||
@@ -238,28 +238,28 @@ public class Valakas extends AbstractNpcAI
 | 
			
		||||
				
 | 
			
		||||
				// Verify if "Valakas Regeneration" skill is active.
 | 
			
		||||
				final BuffInfo info = npc.getEffectList().getBuffInfoBySkillId(VALAKAS_REGENERATION);
 | 
			
		||||
				final int lvl = info != null ? info.getSkill().getLevel() : 0;
 | 
			
		||||
				final int level = info != null ? info.getSkill().getLevel() : 0;
 | 
			
		||||
				
 | 
			
		||||
				// Current HPs are inferior to 25% ; apply lvl 4 of regen skill.
 | 
			
		||||
				if ((npc.getCurrentHp() < (npc.getMaxHp() / 4)) && (lvl != 4))
 | 
			
		||||
				// Current HPs are inferior to 25% ; apply level 4 of regen skill.
 | 
			
		||||
				if ((npc.getCurrentHp() < (npc.getMaxHp() / 4)) && (level != 4))
 | 
			
		||||
				{
 | 
			
		||||
					npc.setTarget(npc);
 | 
			
		||||
					npc.doCast(SkillData.getInstance().getSkill(VALAKAS_REGENERATION, 4));
 | 
			
		||||
				}
 | 
			
		||||
				// Current HPs are inferior to 50% ; apply lvl 3 of regen skill.
 | 
			
		||||
				else if ((npc.getCurrentHp() < ((npc.getMaxHp() * 2) / 4.0)) && (lvl != 3))
 | 
			
		||||
				// Current HPs are inferior to 50% ; apply level 3 of regen skill.
 | 
			
		||||
				else if ((npc.getCurrentHp() < ((npc.getMaxHp() * 2) / 4.0)) && (level != 3))
 | 
			
		||||
				{
 | 
			
		||||
					npc.setTarget(npc);
 | 
			
		||||
					npc.doCast(SkillData.getInstance().getSkill(VALAKAS_REGENERATION, 3));
 | 
			
		||||
				}
 | 
			
		||||
				// Current HPs are inferior to 75% ; apply lvl 2 of regen skill.
 | 
			
		||||
				else if ((npc.getCurrentHp() < ((npc.getMaxHp() * 3) / 4.0)) && (lvl != 2))
 | 
			
		||||
				// Current HPs are inferior to 75% ; apply level 2 of regen skill.
 | 
			
		||||
				else if ((npc.getCurrentHp() < ((npc.getMaxHp() * 3) / 4.0)) && (level != 2))
 | 
			
		||||
				{
 | 
			
		||||
					npc.setTarget(npc);
 | 
			
		||||
					npc.doCast(SkillData.getInstance().getSkill(VALAKAS_REGENERATION, 2));
 | 
			
		||||
				}
 | 
			
		||||
				// Apply lvl 1.
 | 
			
		||||
				else if (lvl != 1)
 | 
			
		||||
				// Apply level 1.
 | 
			
		||||
				else if (level != 1)
 | 
			
		||||
				{
 | 
			
		||||
					npc.setTarget(npc);
 | 
			
		||||
					npc.doCast(SkillData.getInstance().getSkill(VALAKAS_REGENERATION, 1));
 | 
			
		||||
 
 | 
			
		||||
@@ -35,7 +35,7 @@ public class BleedingFly extends AbstractNpcAI
 | 
			
		||||
	private static final int PARASITIC_LEECH = 25734;
 | 
			
		||||
	// Skills
 | 
			
		||||
	private static final SkillHolder SUMMON_PARASITE_LEECH = new SkillHolder(6832, 1);
 | 
			
		||||
	private static final SkillHolder NPC_ACUMEN_LVL_3 = new SkillHolder(6915, 3);
 | 
			
		||||
	private static final SkillHolder NPC_ACUMEN_LEVEL_3 = new SkillHolder(6915, 3);
 | 
			
		||||
	// Variables
 | 
			
		||||
	private static final String MID_HP_FLAG = "MID_HP_FLAG";
 | 
			
		||||
	private static final String LOW_HP_FLAG = "LOW_HP_FLAG";
 | 
			
		||||
@@ -112,7 +112,7 @@ public class BleedingFly extends AbstractNpcAI
 | 
			
		||||
		{
 | 
			
		||||
			npc.getVariables().set(LOW_HP_MINION_COUNT, npc.getVariables().getInt(LOW_HP_MINION_COUNT) - 1);
 | 
			
		||||
			addSkillCastDesire(npc, npc, SUMMON_PARASITE_LEECH, 99999);
 | 
			
		||||
			addSkillCastDesire(npc, npc, NPC_ACUMEN_LVL_3, 99999);
 | 
			
		||||
			addSkillCastDesire(npc, npc, NPC_ACUMEN_LEVEL_3, 99999);
 | 
			
		||||
			addSpawn(PARASITIC_LEECH, npc.getX() + getRandom(150), npc.getY() + getRandom(150), npc.getZ(), npc.getHeading(), false, 0);
 | 
			
		||||
			addSpawn(PARASITIC_LEECH, npc.getX() + getRandom(150), npc.getY() + getRandom(150), npc.getZ(), npc.getHeading(), false, 0);
 | 
			
		||||
			if (npc.getVariables().getBoolean(LOW_HP_FLAG, false))
 | 
			
		||||
 
 | 
			
		||||
@@ -32,7 +32,7 @@ public class DustRider extends AbstractNpcAI
 | 
			
		||||
{
 | 
			
		||||
	private static final int DUST_RIDER = 25719;
 | 
			
		||||
	// Skills
 | 
			
		||||
	private static final SkillHolder NPC_HASTE_LVL_3 = new SkillHolder(6914, 3);
 | 
			
		||||
	private static final SkillHolder NPC_HASTE_LEVEL_3 = new SkillHolder(6914, 3);
 | 
			
		||||
	// Variables
 | 
			
		||||
	private static final String CAST_FLAG = "CAST_FLAG";
 | 
			
		||||
	// Misc
 | 
			
		||||
@@ -55,7 +55,7 @@ public class DustRider extends AbstractNpcAI
 | 
			
		||||
		if (!npc.getVariables().getBoolean(CAST_FLAG, false) && (npc.getCurrentHp() < (npc.getMaxHp() * MIN_HP_PERCENTAGE)))
 | 
			
		||||
		{
 | 
			
		||||
			npc.getVariables().set(CAST_FLAG, true);
 | 
			
		||||
			addSkillCastDesire(npc, npc, NPC_HASTE_LVL_3, 99999);
 | 
			
		||||
			addSkillCastDesire(npc, npc, NPC_HASTE_LEVEL_3, 99999);
 | 
			
		||||
		}
 | 
			
		||||
		return super.onAttack(npc, attacker, damage, isSummon);
 | 
			
		||||
	}
 | 
			
		||||
 
 | 
			
		||||
@@ -37,8 +37,8 @@ public class EmeraldHorn extends AbstractNpcAI
 | 
			
		||||
	// Skills
 | 
			
		||||
	private static final SkillHolder REFLECT_ATTACK = new SkillHolder(6823, 1);
 | 
			
		||||
	private static final SkillHolder PIERCING_STORM = new SkillHolder(6824, 1);
 | 
			
		||||
	private static final SkillHolder BLEED_LVL_1 = new SkillHolder(6825, 1);
 | 
			
		||||
	private static final SkillHolder BLEED_LVL_2 = new SkillHolder(6825, 2);
 | 
			
		||||
	private static final SkillHolder BLEED_LEVEL_1 = new SkillHolder(6825, 1);
 | 
			
		||||
	private static final SkillHolder BLEED_LEVEL_2 = new SkillHolder(6825, 2);
 | 
			
		||||
	// Variables
 | 
			
		||||
	private static final String HIGH_DAMAGE_FLAG = "HIGH_DAMAGE_FLAG";
 | 
			
		||||
	private static final String TOTAL_DAMAGE_COUNT = "TOTAL_DAMAGE_COUNT";
 | 
			
		||||
@@ -69,7 +69,7 @@ public class EmeraldHorn extends AbstractNpcAI
 | 
			
		||||
		
 | 
			
		||||
		if (npc.getVariables().getInt(TOTAL_DAMAGE_COUNT) > 5000)
 | 
			
		||||
		{
 | 
			
		||||
			addSkillCastDesire(npc, attacker, BLEED_LVL_2, 99999);
 | 
			
		||||
			addSkillCastDesire(npc, attacker, BLEED_LEVEL_2, 99999);
 | 
			
		||||
			npc.getVariables().set(TOTAL_DAMAGE_COUNT, 0);
 | 
			
		||||
			npc.getVariables().set(CAST_FLAG, false);
 | 
			
		||||
			npc.getVariables().set(HIGH_DAMAGE_FLAG, true);
 | 
			
		||||
@@ -77,7 +77,7 @@ public class EmeraldHorn extends AbstractNpcAI
 | 
			
		||||
		
 | 
			
		||||
		if (npc.getVariables().getInt(TOTAL_DAMAGE_COUNT) > 10000)
 | 
			
		||||
		{
 | 
			
		||||
			addSkillCastDesire(npc, attacker, BLEED_LVL_1, 99999);
 | 
			
		||||
			addSkillCastDesire(npc, attacker, BLEED_LEVEL_1, 99999);
 | 
			
		||||
			npc.getVariables().set(TOTAL_DAMAGE_COUNT, 0);
 | 
			
		||||
			npc.getVariables().set(CAST_FLAG, false);
 | 
			
		||||
			npc.getVariables().set(HIGH_DAMAGE_FLAG, true);
 | 
			
		||||
 
 | 
			
		||||
@@ -36,11 +36,11 @@ public class FameManager extends AbstractNpcAI
 | 
			
		||||
		36480, // Scipio
 | 
			
		||||
	};
 | 
			
		||||
	// Misc
 | 
			
		||||
	private static final int MIN_LVL = 40;
 | 
			
		||||
	private static final int MIN_LEVEL = 40;
 | 
			
		||||
	private static final int DECREASE_COST = 5000;
 | 
			
		||||
	private static final int REPUTATION_COST = 1000;
 | 
			
		||||
	private static final int MIN_CLAN_LVL = 5;
 | 
			
		||||
	private static final int CLASS_LVL = 2;
 | 
			
		||||
	private static final int MIN_CLAN_LEVEL = 5;
 | 
			
		||||
	private static final int CLASS_LEVEL = 2;
 | 
			
		||||
	
 | 
			
		||||
	private FameManager()
 | 
			
		||||
	{
 | 
			
		||||
@@ -69,7 +69,7 @@ public class FameManager extends AbstractNpcAI
 | 
			
		||||
			{
 | 
			
		||||
				if (player.getPkKills() > 0)
 | 
			
		||||
				{
 | 
			
		||||
					if ((player.getFame() >= DECREASE_COST) && (player.getLevel() >= MIN_LVL) && (player.getClassId().level() >= CLASS_LVL))
 | 
			
		||||
					if ((player.getFame() >= DECREASE_COST) && (player.getLevel() >= MIN_LEVEL) && (player.getClassId().level() >= CLASS_LEVEL))
 | 
			
		||||
					{
 | 
			
		||||
						player.setFame(player.getFame() - DECREASE_COST);
 | 
			
		||||
						player.setPkKills(player.getPkKills() - 1);
 | 
			
		||||
@@ -89,9 +89,9 @@ public class FameManager extends AbstractNpcAI
 | 
			
		||||
			}
 | 
			
		||||
			case "clanRep":
 | 
			
		||||
			{
 | 
			
		||||
				if ((player.getClan() != null) && (player.getClan().getLevel() >= MIN_CLAN_LVL))
 | 
			
		||||
				if ((player.getClan() != null) && (player.getClan().getLevel() >= MIN_CLAN_LEVEL))
 | 
			
		||||
				{
 | 
			
		||||
					if ((player.getFame() >= REPUTATION_COST) && (player.getLevel() >= MIN_LVL) && (player.getClassId().level() >= CLASS_LVL))
 | 
			
		||||
					if ((player.getFame() >= REPUTATION_COST) && (player.getLevel() >= MIN_LEVEL) && (player.getClassId().level() >= CLASS_LEVEL))
 | 
			
		||||
					{
 | 
			
		||||
						player.setFame(player.getFame() - REPUTATION_COST);
 | 
			
		||||
						player.getClan().addReputationScore(50, true);
 | 
			
		||||
@@ -117,7 +117,7 @@ public class FameManager extends AbstractNpcAI
 | 
			
		||||
	@Override
 | 
			
		||||
	public String onFirstTalk(Npc npc, PlayerInstance player)
 | 
			
		||||
	{
 | 
			
		||||
		return ((player.getFame() > 0) && (player.getLevel() >= MIN_LVL) && (player.getClassId().level() >= CLASS_LVL)) ? npc.getId() + ".html" : npc.getId() + "-01.html";
 | 
			
		||||
		return ((player.getFame() > 0) && (player.getLevel() >= MIN_LEVEL) && (player.getClassId().level() >= CLASS_LEVEL)) ? npc.getId() + ".html" : npc.getId() + "-01.html";
 | 
			
		||||
	}
 | 
			
		||||
	
 | 
			
		||||
	public static void main(String[] args)
 | 
			
		||||
 
 | 
			
		||||
@@ -34,8 +34,8 @@ public class MuscleBomber extends AbstractNpcAI
 | 
			
		||||
	private static final int MUSCLE_BOMBER = 25724;
 | 
			
		||||
	private static final int DRAKOS_ASSASSIN = 22823;
 | 
			
		||||
	// Skills
 | 
			
		||||
	private static final SkillHolder ENHANCE_LVL_1 = new SkillHolder(6842, 1);
 | 
			
		||||
	private static final SkillHolder ENHANCE_LVL_2 = new SkillHolder(6842, 2);
 | 
			
		||||
	private static final SkillHolder ENHANCE_LEVEL_1 = new SkillHolder(6842, 1);
 | 
			
		||||
	private static final SkillHolder ENHANCE_LEVEL_2 = new SkillHolder(6842, 2);
 | 
			
		||||
	// Variables
 | 
			
		||||
	private static final String HIGH_HP_FLAG = "HIGH_HP_FLAG";
 | 
			
		||||
	private static final String MED_HP_FLAG = "MED_HP_FLAG";
 | 
			
		||||
@@ -64,13 +64,13 @@ public class MuscleBomber extends AbstractNpcAI
 | 
			
		||||
		if ((npc.getCurrentHp() < (npc.getMaxHp() * HIGH_HP_PERCENTAGE)) && !npc.getVariables().getBoolean(HIGH_HP_FLAG, false))
 | 
			
		||||
		{
 | 
			
		||||
			npc.getVariables().set(HIGH_HP_FLAG, true);
 | 
			
		||||
			addSkillCastDesire(npc, npc, ENHANCE_LVL_1, 99999);
 | 
			
		||||
			addSkillCastDesire(npc, npc, ENHANCE_LEVEL_1, 99999);
 | 
			
		||||
		}
 | 
			
		||||
		
 | 
			
		||||
		if ((npc.getCurrentHp() < (npc.getMaxHp() * MED_HP_PERCENTAGE)) && !npc.getVariables().getBoolean(MED_HP_FLAG, false))
 | 
			
		||||
		{
 | 
			
		||||
			npc.getVariables().set(MED_HP_FLAG, true);
 | 
			
		||||
			addSkillCastDesire(npc, npc, ENHANCE_LVL_2, 99999);
 | 
			
		||||
			addSkillCastDesire(npc, npc, ENHANCE_LEVEL_2, 99999);
 | 
			
		||||
			startQuestTimer(TIMER_SUMMON, 60000, npc, attacker);
 | 
			
		||||
			startQuestTimer(TIMER_LIMIT, 300000, npc, attacker);
 | 
			
		||||
		}
 | 
			
		||||
 
 | 
			
		||||
@@ -173,34 +173,34 @@ public class PriestOfBlessing extends AbstractNpcAI
 | 
			
		||||
		return content;
 | 
			
		||||
	}
 | 
			
		||||
	
 | 
			
		||||
	private int getHGIndex(int lvl)
 | 
			
		||||
	private int getHGIndex(int level)
 | 
			
		||||
	{
 | 
			
		||||
		int index = 0;
 | 
			
		||||
		if (lvl < 20)
 | 
			
		||||
		if (level < 20)
 | 
			
		||||
		{
 | 
			
		||||
			index = 0;
 | 
			
		||||
		}
 | 
			
		||||
		else if (lvl < 40)
 | 
			
		||||
		else if (level < 40)
 | 
			
		||||
		{
 | 
			
		||||
			index = 1;
 | 
			
		||||
		}
 | 
			
		||||
		else if (lvl < 52)
 | 
			
		||||
		else if (level < 52)
 | 
			
		||||
		{
 | 
			
		||||
			index = 2;
 | 
			
		||||
		}
 | 
			
		||||
		else if (lvl < 61)
 | 
			
		||||
		else if (level < 61)
 | 
			
		||||
		{
 | 
			
		||||
			index = 3;
 | 
			
		||||
		}
 | 
			
		||||
		else if (lvl < 76)
 | 
			
		||||
		else if (level < 76)
 | 
			
		||||
		{
 | 
			
		||||
			index = 4;
 | 
			
		||||
		}
 | 
			
		||||
		else if (lvl < 80)
 | 
			
		||||
		else if (level < 80)
 | 
			
		||||
		{
 | 
			
		||||
			index = 5;
 | 
			
		||||
		}
 | 
			
		||||
		else if (lvl < 86)
 | 
			
		||||
		else if (level < 86)
 | 
			
		||||
		{
 | 
			
		||||
			index = 6;
 | 
			
		||||
		}
 | 
			
		||||
 
 | 
			
		||||
@@ -118,9 +118,9 @@ public class Selina extends AbstractNpcAI
 | 
			
		||||
	{
 | 
			
		||||
		private final int _cost;
 | 
			
		||||
		
 | 
			
		||||
		public BuffHolder(int skillId, int skillLvl, int cost)
 | 
			
		||||
		public BuffHolder(int skillId, int skillLevel, int cost)
 | 
			
		||||
		{
 | 
			
		||||
			super(skillId, skillLvl);
 | 
			
		||||
			super(skillId, skillLevel);
 | 
			
		||||
			_cost = cost;
 | 
			
		||||
		}
 | 
			
		||||
		
 | 
			
		||||
 
 | 
			
		||||
@@ -78,7 +78,7 @@ public class SubclassCertification extends AbstractNpcAI
 | 
			
		||||
		TRANSFORMATION_SEALBOOKS.put(6, 10293); // Transformation Sealbook: Divine Enchanter
 | 
			
		||||
	}
 | 
			
		||||
	
 | 
			
		||||
	private static final int MIN_LVL = 65;
 | 
			
		||||
	private static final int MIN_LEVEL = 65;
 | 
			
		||||
	
 | 
			
		||||
	private SubclassCertification()
 | 
			
		||||
	{
 | 
			
		||||
@@ -112,7 +112,7 @@ public class SubclassCertification extends AbstractNpcAI
 | 
			
		||||
				{
 | 
			
		||||
					htmltext = "NotSubclass.html";
 | 
			
		||||
				}
 | 
			
		||||
				else if (player.getLevel() < MIN_LVL)
 | 
			
		||||
				else if (player.getLevel() < MIN_LEVEL)
 | 
			
		||||
				{
 | 
			
		||||
					htmltext = "NotMinLevel.html";
 | 
			
		||||
				}
 | 
			
		||||
 
 | 
			
		||||
@@ -46,7 +46,7 @@ public class WyvernManager extends AbstractNpcAI
 | 
			
		||||
	private static final int CRYSTAL_B_GRADE = 1460;
 | 
			
		||||
	private static final int WYVERN = 12621;
 | 
			
		||||
	private static final int WYVERN_FEE = 25;
 | 
			
		||||
	private static final int STRIDER_LVL = 55;
 | 
			
		||||
	private static final int STRIDER_LEVEL = 55;
 | 
			
		||||
	private static final int[] STRIDERS =
 | 
			
		||||
	{
 | 
			
		||||
		12526,
 | 
			
		||||
@@ -106,7 +106,7 @@ public class WyvernManager extends AbstractNpcAI
 | 
			
		||||
	
 | 
			
		||||
	private String mountWyvern(Npc npc, PlayerInstance player)
 | 
			
		||||
	{
 | 
			
		||||
		if (player.isMounted() && (player.getMountLevel() >= STRIDER_LVL) && CommonUtil.contains(STRIDERS, player.getMountNpcId()))
 | 
			
		||||
		if (player.isMounted() && (player.getMountLevel() >= STRIDER_LEVEL) && CommonUtil.contains(STRIDERS, player.getMountNpcId()))
 | 
			
		||||
		{
 | 
			
		||||
			if (isOwnerClan(npc, player) && (getQuestItemsCount(player, CRYSTAL_B_GRADE) >= WYVERN_FEE))
 | 
			
		||||
			{
 | 
			
		||||
@@ -214,7 +214,7 @@ public class WyvernManager extends AbstractNpcAI
 | 
			
		||||
	
 | 
			
		||||
	private String replacePart(PlayerInstance player, String htmlFile)
 | 
			
		||||
	{
 | 
			
		||||
		return getHtm(player, htmlFile).replace("%wyvern_fee%", String.valueOf(WYVERN_FEE)).replace("%strider_level%", String.valueOf(STRIDER_LVL));
 | 
			
		||||
		return getHtm(player, htmlFile).replace("%wyvern_fee%", String.valueOf(WYVERN_FEE)).replace("%strider_level%", String.valueOf(STRIDER_LEVEL));
 | 
			
		||||
	}
 | 
			
		||||
	
 | 
			
		||||
	@Override
 | 
			
		||||
 
 | 
			
		||||
@@ -120,7 +120,7 @@ public class SubClassSkills extends AbstractNpcAI
 | 
			
		||||
			return null;
 | 
			
		||||
		}
 | 
			
		||||
		
 | 
			
		||||
		final int[][] cSkills = new int[certSkills.size()][2]; // skillId/skillLvl
 | 
			
		||||
		final int[][] cSkills = new int[certSkills.size()][2]; // skillId/skillLevel
 | 
			
		||||
		for (int i = certSkills.size(); --i >= 0;)
 | 
			
		||||
		{
 | 
			
		||||
			final Skill skill = certSkills.get(i);
 | 
			
		||||
 
 | 
			
		||||
@@ -82,11 +82,11 @@ public class TvTManager extends AbstractNpcAI implements IVoicedCommandHandler
 | 
			
		||||
				{
 | 
			
		||||
					htmltext = getHtm(player, "Karma.html");
 | 
			
		||||
				}
 | 
			
		||||
				else if ((playerLevel < Config.TVT_EVENT_MIN_LVL) || (playerLevel > Config.TVT_EVENT_MAX_LVL))
 | 
			
		||||
				else if ((playerLevel < Config.TVT_EVENT_MIN_LEVEL) || (playerLevel > Config.TVT_EVENT_MAX_LEVEL))
 | 
			
		||||
				{
 | 
			
		||||
					htmltext = getHtm(player, "Level.html");
 | 
			
		||||
					htmltext = htmltext.replace("%min%", String.valueOf(Config.TVT_EVENT_MIN_LVL));
 | 
			
		||||
					htmltext = htmltext.replace("%max%", String.valueOf(Config.TVT_EVENT_MAX_LVL));
 | 
			
		||||
					htmltext = htmltext.replace("%min%", String.valueOf(Config.TVT_EVENT_MIN_LEVEL));
 | 
			
		||||
					htmltext = htmltext.replace("%max%", String.valueOf(Config.TVT_EVENT_MAX_LEVEL));
 | 
			
		||||
				}
 | 
			
		||||
				else if ((team1Count == Config.TVT_EVENT_MAX_PLAYERS_IN_TEAMS) && (team2Count == Config.TVT_EVENT_MAX_PLAYERS_IN_TEAMS))
 | 
			
		||||
				{
 | 
			
		||||
 
 | 
			
		||||
@@ -89,8 +89,8 @@ public class PlayerInstanceAction implements IActionHandler
 | 
			
		||||
				// Check if this PlayerInstance is autoAttackable
 | 
			
		||||
				if (target.isAutoAttackable(player))
 | 
			
		||||
				{
 | 
			
		||||
					// Player with lvl < 21 can't attack a cursed weapon holder
 | 
			
		||||
					// And a cursed weapon holder can't attack players with lvl < 21
 | 
			
		||||
					// Player with level < 21 can't attack a cursed weapon holder
 | 
			
		||||
					// And a cursed weapon holder can't attack players with level < 21
 | 
			
		||||
					if ((targetPlayer.isCursedWeaponEquipped() && (player.getLevel() < CURSED_WEAPON_VICTIM_MIN_LEVEL)) //
 | 
			
		||||
						|| (player.isCursedWeaponEquipped() && (targetPlayer.getLevel() < CURSED_WEAPON_VICTIM_MIN_LEVEL)))
 | 
			
		||||
					{
 | 
			
		||||
 
 | 
			
		||||
@@ -78,14 +78,14 @@ public class AdminLevel implements IAdminCommandHandler
 | 
			
		||||
			
 | 
			
		||||
			try
 | 
			
		||||
			{
 | 
			
		||||
				final byte lvl = Byte.parseByte(val);
 | 
			
		||||
				if ((lvl >= 1) && (lvl <= maxLevel))
 | 
			
		||||
				final byte level = Byte.parseByte(val);
 | 
			
		||||
				if ((level >= 1) && (level <= maxLevel))
 | 
			
		||||
				{
 | 
			
		||||
					final long pXp = targetPlayer.getExp();
 | 
			
		||||
					final long tXp = ExperienceData.getInstance().getExpForLevel(lvl);
 | 
			
		||||
					final long tXp = ExperienceData.getInstance().getExpForLevel(level);
 | 
			
		||||
					if (pXp > tXp)
 | 
			
		||||
					{
 | 
			
		||||
						targetPlayer.getStat().setLevel(lvl);
 | 
			
		||||
						targetPlayer.getStat().setLevel(level);
 | 
			
		||||
						targetPlayer.removeExpAndSp(pXp - tXp, 0);
 | 
			
		||||
						BuilderUtil.sendSysMessage(activeChar, "Removed " + (pXp - tXp) + " exp.");
 | 
			
		||||
					}
 | 
			
		||||
 
 | 
			
		||||
@@ -200,11 +200,11 @@ public class AdminSkill implements IAdminCommandHandler
 | 
			
		||||
		{
 | 
			
		||||
			final String[] split = command.split(" ");
 | 
			
		||||
			final int id = Integer.parseInt(split[1]);
 | 
			
		||||
			final int lvl = Integer.parseInt(split[2]);
 | 
			
		||||
			final Skill skill = SkillData.getInstance().getSkill(id, lvl);
 | 
			
		||||
			final int level = Integer.parseInt(split[2]);
 | 
			
		||||
			final Skill skill = SkillData.getInstance().getSkill(id, level);
 | 
			
		||||
			activeChar.addSkill(skill);
 | 
			
		||||
			activeChar.sendSkillList();
 | 
			
		||||
			BuilderUtil.sendSysMessage(activeChar, "You added yourself skill " + skill.getName() + "(" + id + ") level " + lvl);
 | 
			
		||||
			BuilderUtil.sendSysMessage(activeChar, "You added yourself skill " + skill.getName() + "(" + id + ") level " + level);
 | 
			
		||||
		}
 | 
			
		||||
		return true;
 | 
			
		||||
	}
 | 
			
		||||
 
 | 
			
		||||
@@ -69,45 +69,45 @@ public class ManaHealByLevel extends AbstractEffect
 | 
			
		||||
		amount = target.calcStat(Stat.MANA_CHARGE, amount, null, null);
 | 
			
		||||
		if (target.getLevel() > info.getSkill().getMagicLevel())
 | 
			
		||||
		{
 | 
			
		||||
			final int lvlDiff = target.getLevel() - info.getSkill().getMagicLevel();
 | 
			
		||||
			final int levelDiff = target.getLevel() - info.getSkill().getMagicLevel();
 | 
			
		||||
			// if target is too high compared to skill level, the amount of recharged mp gradually decreases.
 | 
			
		||||
			if (lvlDiff == 6)
 | 
			
		||||
			if (levelDiff == 6)
 | 
			
		||||
			{
 | 
			
		||||
				amount *= 0.9; // only 90% effective
 | 
			
		||||
			}
 | 
			
		||||
			else if (lvlDiff == 7)
 | 
			
		||||
			else if (levelDiff == 7)
 | 
			
		||||
			{
 | 
			
		||||
				amount *= 0.8; // 80%
 | 
			
		||||
			}
 | 
			
		||||
			else if (lvlDiff == 8)
 | 
			
		||||
			else if (levelDiff == 8)
 | 
			
		||||
			{
 | 
			
		||||
				amount *= 0.7; // 70%
 | 
			
		||||
			}
 | 
			
		||||
			else if (lvlDiff == 9)
 | 
			
		||||
			else if (levelDiff == 9)
 | 
			
		||||
			{
 | 
			
		||||
				amount *= 0.6; // 60%
 | 
			
		||||
			}
 | 
			
		||||
			else if (lvlDiff == 10)
 | 
			
		||||
			else if (levelDiff == 10)
 | 
			
		||||
			{
 | 
			
		||||
				amount *= 0.5; // 50%
 | 
			
		||||
			}
 | 
			
		||||
			else if (lvlDiff == 11)
 | 
			
		||||
			else if (levelDiff == 11)
 | 
			
		||||
			{
 | 
			
		||||
				amount *= 0.4; // 40%
 | 
			
		||||
			}
 | 
			
		||||
			else if (lvlDiff == 12)
 | 
			
		||||
			else if (levelDiff == 12)
 | 
			
		||||
			{
 | 
			
		||||
				amount *= 0.3; // 30%
 | 
			
		||||
			}
 | 
			
		||||
			else if (lvlDiff == 13)
 | 
			
		||||
			else if (levelDiff == 13)
 | 
			
		||||
			{
 | 
			
		||||
				amount *= 0.2; // 20%
 | 
			
		||||
			}
 | 
			
		||||
			else if (lvlDiff == 14)
 | 
			
		||||
			else if (levelDiff == 14)
 | 
			
		||||
			{
 | 
			
		||||
				amount *= 0.1; // 10%
 | 
			
		||||
			}
 | 
			
		||||
			else if (lvlDiff >= 15)
 | 
			
		||||
			else if (levelDiff >= 15)
 | 
			
		||||
			{
 | 
			
		||||
				amount = 0; // 0mp recharged
 | 
			
		||||
			}
 | 
			
		||||
 
 | 
			
		||||
@@ -42,12 +42,12 @@ public class ResistSkill extends AbstractEffect
 | 
			
		||||
		for (int i = 1;; i++)
 | 
			
		||||
		{
 | 
			
		||||
			final int skillId = params.getInt("skillId" + i, 0);
 | 
			
		||||
			final int skillLvl = params.getInt("skillLvl" + i, 0);
 | 
			
		||||
			final int skillLevel = params.getInt("skillLevel" + i, 0);
 | 
			
		||||
			if (skillId == 0)
 | 
			
		||||
			{
 | 
			
		||||
				break;
 | 
			
		||||
			}
 | 
			
		||||
			_skills.add(new SkillHolder(skillId, skillLvl));
 | 
			
		||||
			_skills.add(new SkillHolder(skillId, skillLevel));
 | 
			
		||||
		}
 | 
			
		||||
		
 | 
			
		||||
		if (_skills.isEmpty())
 | 
			
		||||
 
 | 
			
		||||
@@ -30,14 +30,14 @@ import org.l2jmobius.gameserver.model.skills.Skill;
 | 
			
		||||
public class SetSkill extends AbstractEffect
 | 
			
		||||
{
 | 
			
		||||
	private final int _skillId;
 | 
			
		||||
	private final int _skillLvl;
 | 
			
		||||
	private final int _skillLevel;
 | 
			
		||||
	
 | 
			
		||||
	public SetSkill(Condition attachCond, Condition applyCond, StatSet set, StatSet params)
 | 
			
		||||
	{
 | 
			
		||||
		super(attachCond, applyCond, set, params);
 | 
			
		||||
		
 | 
			
		||||
		_skillId = params.getInt("skillId", 0);
 | 
			
		||||
		_skillLvl = params.getInt("skillLvl", 1);
 | 
			
		||||
		_skillLevel = params.getInt("skillLevel", 1);
 | 
			
		||||
	}
 | 
			
		||||
	
 | 
			
		||||
	@Override
 | 
			
		||||
@@ -54,7 +54,7 @@ public class SetSkill extends AbstractEffect
 | 
			
		||||
			return;
 | 
			
		||||
		}
 | 
			
		||||
		
 | 
			
		||||
		final Skill skill = SkillData.getInstance().getSkill(_skillId, _skillLvl);
 | 
			
		||||
		final Skill skill = SkillData.getInstance().getSkill(_skillId, _skillLevel);
 | 
			
		||||
		if (skill == null)
 | 
			
		||||
		{
 | 
			
		||||
			return;
 | 
			
		||||
 
 | 
			
		||||
@@ -51,9 +51,9 @@ public class AutoPotion implements IVoicedCommandHandler
 | 
			
		||||
		{
 | 
			
		||||
			return false;
 | 
			
		||||
		}
 | 
			
		||||
		if (activeChar.getLevel() < Config.AUTO_POTION_MIN_LVL)
 | 
			
		||||
		if (activeChar.getLevel() < Config.AUTO_POTION_MIN_LEVEL)
 | 
			
		||||
		{
 | 
			
		||||
			activeChar.sendMessage("You need to be at least " + Config.AUTO_POTION_MIN_LVL + " to use auto potions.");
 | 
			
		||||
			activeChar.sendMessage("You need to be at least " + Config.AUTO_POTION_MIN_LEVEL + " to use auto potions.");
 | 
			
		||||
			return false;
 | 
			
		||||
		}
 | 
			
		||||
		
 | 
			
		||||
 
 | 
			
		||||
@@ -133,7 +133,7 @@ public class Kamaloka extends AbstractInstance
 | 
			
		||||
	 * First room information, null if room not spawned.<br>
 | 
			
		||||
	 * Skill is casted on the boss when shaman is defeated and mobs respawn stopped<br>
 | 
			
		||||
	 * Default: 5699 (decrease pdef)<br>
 | 
			
		||||
	 * shaman npcId, minions npcId, skillId, skillLvl
 | 
			
		||||
	 * shaman npcId, minions npcId, skillId, skillLevel
 | 
			
		||||
	 */
 | 
			
		||||
	private static final int[][] FIRST_ROOM =
 | 
			
		||||
	{
 | 
			
		||||
@@ -233,7 +233,7 @@ public class Kamaloka extends AbstractInstance
 | 
			
		||||
	};
 | 
			
		||||
	
 | 
			
		||||
	/*
 | 
			
		||||
	 * Second room information, null if room not spawned Skill is casted on the boss when all mobs are defeated Default: 5700 (decrease mdef) npcId, skillId, skillLvl
 | 
			
		||||
	 * Second room information, null if room not spawned Skill is casted on the boss when all mobs are defeated Default: 5700 (decrease mdef) npcId, skillId, skillLevel
 | 
			
		||||
	 */
 | 
			
		||||
	private static final int[][] SECOND_ROOM =
 | 
			
		||||
	{
 | 
			
		||||
@@ -304,7 +304,7 @@ public class Kamaloka extends AbstractInstance
 | 
			
		||||
	// skill is casted on the boss when miniboss is defeated
 | 
			
		||||
	// npcId, x, y, z, skill id, skill level
 | 
			
		||||
	/*
 | 
			
		||||
	 * Miniboss information, null if miniboss not spawned Skill is casted on the boss when miniboss is defeated Default: 5701 (decrease patk) npcId, x, y, z, skillId, skillLvl
 | 
			
		||||
	 * Miniboss information, null if miniboss not spawned Skill is casted on the boss when miniboss is defeated Default: 5701 (decrease patk) npcId, x, y, z, skillId, skillLevel
 | 
			
		||||
	 */
 | 
			
		||||
	private static final int[][] MINIBOSS =
 | 
			
		||||
	{
 | 
			
		||||
@@ -820,10 +820,10 @@ public class Kamaloka extends AbstractInstance
 | 
			
		||||
				if (world.boss != null)
 | 
			
		||||
				{
 | 
			
		||||
					final int skillId = FIRST_ROOM[world.index][2];
 | 
			
		||||
					final int skillLvl = FIRST_ROOM[world.index][3];
 | 
			
		||||
					if ((skillId != 0) && (skillLvl != 0))
 | 
			
		||||
					final int skillLevel = FIRST_ROOM[world.index][3];
 | 
			
		||||
					if ((skillId != 0) && (skillLevel != 0))
 | 
			
		||||
					{
 | 
			
		||||
						final Skill skill = SkillData.getInstance().getSkill(skillId, skillLvl);
 | 
			
		||||
						final Skill skill = SkillData.getInstance().getSkill(skillId, skillLevel);
 | 
			
		||||
						if (skill != null)
 | 
			
		||||
						{
 | 
			
		||||
							skill.applyEffects(world.boss, world.boss);
 | 
			
		||||
@@ -858,10 +858,10 @@ public class Kamaloka extends AbstractInstance
 | 
			
		||||
					if (world.boss != null)
 | 
			
		||||
					{
 | 
			
		||||
						final int skillId = SECOND_ROOM[world.index][1];
 | 
			
		||||
						final int skillLvl = SECOND_ROOM[world.index][2];
 | 
			
		||||
						if ((skillId != 0) && (skillLvl != 0))
 | 
			
		||||
						final int skillLevel = SECOND_ROOM[world.index][2];
 | 
			
		||||
						if ((skillId != 0) && (skillLevel != 0))
 | 
			
		||||
						{
 | 
			
		||||
							final Skill skill = SkillData.getInstance().getSkill(skillId, skillLvl);
 | 
			
		||||
							final Skill skill = SkillData.getInstance().getSkill(skillId, skillLevel);
 | 
			
		||||
							if (skill != null)
 | 
			
		||||
							{
 | 
			
		||||
								skill.applyEffects(world.boss, world.boss);
 | 
			
		||||
@@ -880,10 +880,10 @@ public class Kamaloka extends AbstractInstance
 | 
			
		||||
				if (world.boss != null)
 | 
			
		||||
				{
 | 
			
		||||
					final int skillId = MINIBOSS[world.index][4];
 | 
			
		||||
					final int skillLvl = MINIBOSS[world.index][5];
 | 
			
		||||
					if ((skillId != 0) && (skillLvl != 0))
 | 
			
		||||
					final int skillLevel = MINIBOSS[world.index][5];
 | 
			
		||||
					if ((skillId != 0) && (skillLevel != 0))
 | 
			
		||||
					{
 | 
			
		||||
						final Skill skill = SkillData.getInstance().getSkill(skillId, skillLvl);
 | 
			
		||||
						final Skill skill = SkillData.getInstance().getSkill(skillId, skillLevel);
 | 
			
		||||
						if (skill != null)
 | 
			
		||||
						{
 | 
			
		||||
							skill.applyEffects(world.boss, world.boss);
 | 
			
		||||
 
 | 
			
		||||
@@ -74,8 +74,8 @@ public class NornilsGarden extends AbstractInstance
 | 
			
		||||
	private static final int TEMPLATE_ID = 11;
 | 
			
		||||
	private static final int DURATION_TIME = 70;
 | 
			
		||||
	private static final int EMPTY_DESTROY_TIME = 5;
 | 
			
		||||
	private static final int INSTANCE_LVL_MIN = 18;
 | 
			
		||||
	private static final int INSTANCE_LVL_MAX = 22;
 | 
			
		||||
	private static final int INSTANCE_LEVEL_MIN = 18;
 | 
			
		||||
	private static final int INSTANCE_LEVEL_MAX = 22;
 | 
			
		||||
	private static final int[][] AUTO_GATES =
 | 
			
		||||
	{
 | 
			
		||||
		// Warriors gate
 | 
			
		||||
@@ -249,7 +249,7 @@ public class NornilsGarden extends AbstractInstance
 | 
			
		||||
				return null;
 | 
			
		||||
			}
 | 
			
		||||
			// check for level difference again on reenter
 | 
			
		||||
			if ((player.getLevel() > INSTANCE_LVL_MAX) || (player.getLevel() < INSTANCE_LVL_MIN))
 | 
			
		||||
			if ((player.getLevel() > INSTANCE_LEVEL_MAX) || (player.getLevel() < INSTANCE_LEVEL_MIN))
 | 
			
		||||
			{
 | 
			
		||||
				final SystemMessage sm = new SystemMessage(SystemMessageId.C1_S_LEVEL_DOES_NOT_CORRESPOND_TO_THE_REQUIREMENTS_FOR_ENTRY);
 | 
			
		||||
				sm.addPcName(player);
 | 
			
		||||
@@ -400,14 +400,14 @@ public class NornilsGarden extends AbstractInstance
 | 
			
		||||
		for (PlayerInstance partyMember : party.getMembers())
 | 
			
		||||
		{
 | 
			
		||||
			// player level must be in range
 | 
			
		||||
			if (partyMember.getLevel() > INSTANCE_LVL_MAX)
 | 
			
		||||
			if (partyMember.getLevel() > INSTANCE_LEVEL_MAX)
 | 
			
		||||
			{
 | 
			
		||||
				final SystemMessage sm = new SystemMessage(SystemMessageId.C1_S_LEVEL_DOES_NOT_CORRESPOND_TO_THE_REQUIREMENTS_FOR_ENTRY);
 | 
			
		||||
				sm.addPcName(partyMember);
 | 
			
		||||
				player.sendPacket(sm);
 | 
			
		||||
				return "32330-06.html";
 | 
			
		||||
			}
 | 
			
		||||
			if (partyMember.getLevel() < INSTANCE_LVL_MIN)
 | 
			
		||||
			if (partyMember.getLevel() < INSTANCE_LEVEL_MIN)
 | 
			
		||||
			{
 | 
			
		||||
				final SystemMessage sm = new SystemMessage(SystemMessageId.C1_S_LEVEL_DOES_NOT_CORRESPOND_TO_THE_REQUIREMENTS_FOR_ENTRY);
 | 
			
		||||
				sm.addPcName(partyMember);
 | 
			
		||||
 
 | 
			
		||||
@@ -82,8 +82,8 @@ public class PailakaDevilsLegacy extends AbstractInstance
 | 
			
		||||
	private static final int TEMPLATE_ID = 44;
 | 
			
		||||
	private static final int ZONE = 20109;
 | 
			
		||||
	private static final int ZONE_EXIT = 200000;
 | 
			
		||||
	private static final int TIGRESS_LVL1 = 14916;
 | 
			
		||||
	private static final int TIGRESS_LVL2 = 14917;
 | 
			
		||||
	private static final int TIGRESS_LEVEL1 = 14916;
 | 
			
		||||
	private static final int TIGRESS_LEVEL2 = 14917;
 | 
			
		||||
	
 | 
			
		||||
	private PailakaDevilsLegacy()
 | 
			
		||||
	{
 | 
			
		||||
@@ -283,7 +283,7 @@ public class PailakaDevilsLegacy extends AbstractInstance
 | 
			
		||||
	@Override
 | 
			
		||||
	public String onExitZone(Creature creature, ZoneType zone)
 | 
			
		||||
	{
 | 
			
		||||
		if (creature.isPlayer() && creature.hasSummon() && ((creature.getSummon().getTemplate().getId() == TIGRESS_LVL1) || (creature.getSummon().getTemplate().getId() == TIGRESS_LVL2)))
 | 
			
		||||
		if (creature.isPlayer() && creature.hasSummon() && ((creature.getSummon().getTemplate().getId() == TIGRESS_LEVEL1) || (creature.getSummon().getTemplate().getId() == TIGRESS_LEVEL2)))
 | 
			
		||||
		{
 | 
			
		||||
			final Summon tigress = creature.getSummon();
 | 
			
		||||
			if (!tigress.isDead())
 | 
			
		||||
 
 | 
			
		||||
@@ -55,7 +55,7 @@ public class Q00021_HiddenTruth extends Quest
 | 
			
		||||
	private static final int CROSS_OF_EINHASAD = 7140;
 | 
			
		||||
	private static final int CROSS_OF_EINHASAD2 = 7141;
 | 
			
		||||
	// Misc
 | 
			
		||||
	private static final int MIN_LVL = 63;
 | 
			
		||||
	private static final int MIN_LEVEL = 63;
 | 
			
		||||
	private static final String PAGE_ROUTE_NAME = "rune_ghost1b";
 | 
			
		||||
	private static int PAGE_COUNT = 0;
 | 
			
		||||
	private static boolean GHOST_SPAWNED = false;
 | 
			
		||||
@@ -115,7 +115,7 @@ public class Q00021_HiddenTruth extends Quest
 | 
			
		||||
				}
 | 
			
		||||
				case "31522-02.htm":
 | 
			
		||||
				{
 | 
			
		||||
					if (player.getLevel() < MIN_LVL)
 | 
			
		||||
					if (player.getLevel() < MIN_LEVEL)
 | 
			
		||||
					{
 | 
			
		||||
						htmltext = "31522-03.htm";
 | 
			
		||||
					}
 | 
			
		||||
 
 | 
			
		||||
@@ -63,7 +63,7 @@ public class Q00022_TragedyInVonHellmannForest extends Quest
 | 
			
		||||
	private static final int SEALED_REPORT_BOX = 7146;
 | 
			
		||||
	private static final int REPORT_BOX = 7147;
 | 
			
		||||
	// Misc
 | 
			
		||||
	private static final int MIN_LVL = 63;
 | 
			
		||||
	private static final int MIN_LEVEL = 63;
 | 
			
		||||
	private static final Location PRIEST_LOC = new Location(38354, -49777, -1128);
 | 
			
		||||
	private static final Location SOUL_WELL_LOC = new Location(34706, -54590, -2054);
 | 
			
		||||
	private static int _tifarenOwner = 0;
 | 
			
		||||
@@ -124,7 +124,7 @@ public class Q00022_TragedyInVonHellmannForest extends Quest
 | 
			
		||||
				if (qs.isCreated())
 | 
			
		||||
				{
 | 
			
		||||
					final QuestState q21 = player.getQuestState(Q00021_HiddenTruth.class.getSimpleName());
 | 
			
		||||
					if ((player.getLevel() >= MIN_LVL) && (q21 != null) && q21.isCompleted())
 | 
			
		||||
					if ((player.getLevel() >= MIN_LEVEL) && (q21 != null) && q21.isCompleted())
 | 
			
		||||
					{
 | 
			
		||||
						htmltext = event;
 | 
			
		||||
					}
 | 
			
		||||
@@ -522,7 +522,7 @@ public class Q00022_TragedyInVonHellmannForest extends Quest
 | 
			
		||||
					{
 | 
			
		||||
						addExpAndSp(talker, 345966, 31578);
 | 
			
		||||
						qs.exitQuest(false, true);
 | 
			
		||||
						if (talker.getLevel() >= MIN_LVL)
 | 
			
		||||
						if (talker.getLevel() >= MIN_LEVEL)
 | 
			
		||||
						{
 | 
			
		||||
							htmltext = "31328-20.html";
 | 
			
		||||
						}
 | 
			
		||||
 
 | 
			
		||||
@@ -64,7 +64,7 @@ public class Q00025_HidingBehindTheTruth extends Quest
 | 
			
		||||
	private static final int EARING_OF_BLESSING = 874;
 | 
			
		||||
	private static final int RING_OF_BLESSING = 905;
 | 
			
		||||
	// Misc
 | 
			
		||||
	private static final int MIN_LVL = 66;
 | 
			
		||||
	private static final int MIN_LEVEL = 66;
 | 
			
		||||
	private static final HashMap<Integer, Location> TRIOL_PAWN_LOC = new HashMap<>();
 | 
			
		||||
	private static final IPositionable COFFIN_LOC = new Location(60104, -35820, -681);
 | 
			
		||||
	
 | 
			
		||||
@@ -117,7 +117,7 @@ public class Q00025_HidingBehindTheTruth extends Quest
 | 
			
		||||
			case "31349-03.html":
 | 
			
		||||
			{
 | 
			
		||||
				final QuestState q24 = player.getQuestState(Q00024_InhabitantsOfTheForestOfTheDead.class.getSimpleName());
 | 
			
		||||
				if (qs.isCreated() && (q24 != null) && q24.isCompleted() && (player.getLevel() >= MIN_LVL))
 | 
			
		||||
				if (qs.isCreated() && (q24 != null) && q24.isCompleted() && (player.getLevel() >= MIN_LEVEL))
 | 
			
		||||
				{
 | 
			
		||||
					qs.setMemoState(1);
 | 
			
		||||
					qs.startQuest();
 | 
			
		||||
@@ -463,7 +463,7 @@ public class Q00025_HidingBehindTheTruth extends Quest
 | 
			
		||||
				if (npc.getId() == PRIEST_BENEDICT)
 | 
			
		||||
				{
 | 
			
		||||
					final QuestState q24 = talker.getQuestState(Q00024_InhabitantsOfTheForestOfTheDead.class.getSimpleName());
 | 
			
		||||
					if ((q24 != null) && q24.isCompleted() && (talker.getLevel() >= MIN_LVL))
 | 
			
		||||
					if ((q24 != null) && q24.isCompleted() && (talker.getLevel() >= MIN_LEVEL))
 | 
			
		||||
					{
 | 
			
		||||
						htmltext = "31349-01.htm";
 | 
			
		||||
					}
 | 
			
		||||
 
 | 
			
		||||
@@ -41,7 +41,7 @@ public class Q00031_SecretBuriedInTheSwamp extends Quest
 | 
			
		||||
	// Items
 | 
			
		||||
	private static final int KRORINS_JOURNAL = 7252;
 | 
			
		||||
	// Misc
 | 
			
		||||
	private static final int MIN_LVL = 66;
 | 
			
		||||
	private static final int MIN_LEVEL = 66;
 | 
			
		||||
	// Monuments
 | 
			
		||||
	private static final List<Integer> MONUMENTS = Arrays.asList(FORGOTTEN_MONUMENT_1, FORGOTTEN_MONUMENT_2, FORGOTTEN_MONUMENT_3, FORGOTTEN_MONUMENT_4);
 | 
			
		||||
	
 | 
			
		||||
@@ -135,7 +135,7 @@ public class Q00031_SecretBuriedInTheSwamp extends Quest
 | 
			
		||||
				{
 | 
			
		||||
					case State.CREATED:
 | 
			
		||||
					{
 | 
			
		||||
						htmltext = (player.getLevel() >= MIN_LVL) ? "31555-01.htm" : "31555-03.htm";
 | 
			
		||||
						htmltext = (player.getLevel() >= MIN_LEVEL) ? "31555-01.htm" : "31555-03.htm";
 | 
			
		||||
						break;
 | 
			
		||||
					}
 | 
			
		||||
					case State.STARTED:
 | 
			
		||||
 
 | 
			
		||||
@@ -44,7 +44,7 @@ public class Q00032_AnObviousLie extends Quest
 | 
			
		||||
	private static final ItemHolder THREAD = new ItemHolder(1868, 1000);
 | 
			
		||||
	private static final ItemHolder SUEDE = new ItemHolder(1866, 500);
 | 
			
		||||
	// Misc
 | 
			
		||||
	private static final int MIN_LVL = 45;
 | 
			
		||||
	private static final int MIN_LEVEL = 45;
 | 
			
		||||
	// Reward
 | 
			
		||||
	private static final Map<String, Integer> EARS = new HashMap<>();
 | 
			
		||||
	static
 | 
			
		||||
@@ -189,7 +189,7 @@ public class Q00032_AnObviousLie extends Quest
 | 
			
		||||
			{
 | 
			
		||||
				if (qs.isCreated())
 | 
			
		||||
				{
 | 
			
		||||
					htmltext = (player.getLevel() >= MIN_LVL) ? "30120-01.htm" : "30120-03.htm";
 | 
			
		||||
					htmltext = (player.getLevel() >= MIN_LEVEL) ? "30120-01.htm" : "30120-03.htm";
 | 
			
		||||
				}
 | 
			
		||||
				else if (qs.isStarted())
 | 
			
		||||
				{
 | 
			
		||||
 
 | 
			
		||||
@@ -49,7 +49,7 @@ public class Q00038_DragonFangs extends Quest
 | 
			
		||||
	private static final int ASPIS = 627;
 | 
			
		||||
	private static final int BLUE_BUCKSKIN_BOOTS = 1123;
 | 
			
		||||
	// Misc
 | 
			
		||||
	private static final int MIN_LVL = 19;
 | 
			
		||||
	private static final int MIN_LEVEL = 19;
 | 
			
		||||
	
 | 
			
		||||
	public Q00038_DragonFangs()
 | 
			
		||||
	{
 | 
			
		||||
@@ -251,7 +251,7 @@ public class Q00038_DragonFangs extends Quest
 | 
			
		||||
			{
 | 
			
		||||
				if (qs.isCreated())
 | 
			
		||||
				{
 | 
			
		||||
					htmltext = (talker.getLevel() >= MIN_LVL) ? "30386-01.htm" : "30386-02.htm";
 | 
			
		||||
					htmltext = (talker.getLevel() >= MIN_LEVEL) ? "30386-01.htm" : "30386-02.htm";
 | 
			
		||||
				}
 | 
			
		||||
				else if (qs.isStarted())
 | 
			
		||||
				{
 | 
			
		||||
 
 | 
			
		||||
@@ -46,7 +46,7 @@ public class Q00039_RedEyedInvaders extends Quest
 | 
			
		||||
	private static final ItemHolder BABYDUCK_ROD = new ItemHolder(6529, 1);
 | 
			
		||||
	private static final ItemHolder FISHING_SHOT_NONE = new ItemHolder(6535, 500);
 | 
			
		||||
	// Misc
 | 
			
		||||
	private static final int MIN_LVL = 20;
 | 
			
		||||
	private static final int MIN_LEVEL = 20;
 | 
			
		||||
	
 | 
			
		||||
	public Q00039_RedEyedInvaders()
 | 
			
		||||
	{
 | 
			
		||||
@@ -170,7 +170,7 @@ public class Q00039_RedEyedInvaders extends Quest
 | 
			
		||||
			{
 | 
			
		||||
				if (qs.isCreated())
 | 
			
		||||
				{
 | 
			
		||||
					htmltext = (talker.getLevel() >= MIN_LVL) ? "30334-01.htm" : "30334-02.htm";
 | 
			
		||||
					htmltext = (talker.getLevel() >= MIN_LEVEL) ? "30334-01.htm" : "30334-02.htm";
 | 
			
		||||
				}
 | 
			
		||||
				else if (qs.isStarted() && qs.isCond(1))
 | 
			
		||||
				{
 | 
			
		||||
 
 | 
			
		||||
@@ -44,7 +44,7 @@ public class Q00040_ASpecialOrder extends Quest
 | 
			
		||||
	private static final int BOX_OF_FISH = 12764;
 | 
			
		||||
	private static final int BOX_OF_SEED = 12765;
 | 
			
		||||
	// Misc
 | 
			
		||||
	private static final int MIN_LVL = 40;
 | 
			
		||||
	private static final int MIN_LEVEL = 40;
 | 
			
		||||
	
 | 
			
		||||
	public Q00040_ASpecialOrder()
 | 
			
		||||
	{
 | 
			
		||||
@@ -142,7 +142,7 @@ public class Q00040_ASpecialOrder extends Quest
 | 
			
		||||
				{
 | 
			
		||||
					case State.CREATED:
 | 
			
		||||
					{
 | 
			
		||||
						htmltext = (player.getLevel() >= MIN_LVL) ? "30081-01.htm" : "30081-02.htm";
 | 
			
		||||
						htmltext = (player.getLevel() >= MIN_LEVEL) ? "30081-01.htm" : "30081-02.htm";
 | 
			
		||||
						break;
 | 
			
		||||
					}
 | 
			
		||||
					case State.STARTED:
 | 
			
		||||
 
 | 
			
		||||
@@ -48,7 +48,7 @@ public class Q00045_ToTalkingIsland extends Quest
 | 
			
		||||
	private static final int GEMSTONE_POWDER = 7567;
 | 
			
		||||
	private static final int MAGIC_SWORD_HILT = 7568;
 | 
			
		||||
	// Misc
 | 
			
		||||
	private static final int MIN_LVL = 3;
 | 
			
		||||
	private static final int MIN_LEVEL = 3;
 | 
			
		||||
	// Reward
 | 
			
		||||
	private static final int SCROLL_OF_ESCAPE_TALKING_ISLAND_VILLAGE = 7554;
 | 
			
		||||
	// Get condition for each npc
 | 
			
		||||
@@ -197,7 +197,7 @@ public class Q00045_ToTalkingIsland extends Quest
 | 
			
		||||
				{
 | 
			
		||||
					case State.CREATED:
 | 
			
		||||
					{
 | 
			
		||||
						if (talker.getLevel() < MIN_LVL)
 | 
			
		||||
						if (talker.getLevel() < MIN_LEVEL)
 | 
			
		||||
						{
 | 
			
		||||
							htmltext = "30097-03.html";
 | 
			
		||||
						}
 | 
			
		||||
 
 | 
			
		||||
@@ -48,7 +48,7 @@ public class Q00046_OnceMoreInTheArmsOfTheMotherTree extends Quest
 | 
			
		||||
	private static final int GEMSTONE_POWDER = 7567;
 | 
			
		||||
	private static final int MAGIC_SWORD_HILT = 7568;
 | 
			
		||||
	// Misc
 | 
			
		||||
	private static final int MIN_LVL = 3;
 | 
			
		||||
	private static final int MIN_LEVEL = 3;
 | 
			
		||||
	// Reward
 | 
			
		||||
	private static final int SCROLL_OF_ESCAPE_ELVEN_VILLAGE = 7555;
 | 
			
		||||
	// Get condition for each npc
 | 
			
		||||
@@ -197,7 +197,7 @@ public class Q00046_OnceMoreInTheArmsOfTheMotherTree extends Quest
 | 
			
		||||
				{
 | 
			
		||||
					case State.CREATED:
 | 
			
		||||
					{
 | 
			
		||||
						if (talker.getLevel() < MIN_LVL)
 | 
			
		||||
						if (talker.getLevel() < MIN_LEVEL)
 | 
			
		||||
						{
 | 
			
		||||
							htmltext = "30097-03.html";
 | 
			
		||||
						}
 | 
			
		||||
 
 | 
			
		||||
@@ -48,7 +48,7 @@ public class Q00047_IntoTheDarkElvenForest extends Quest
 | 
			
		||||
	private static final int GEMSTONE_POWDER = 7567;
 | 
			
		||||
	private static final int MAGIC_SWORD_HILT = 7568;
 | 
			
		||||
	// Misc
 | 
			
		||||
	private static final int MIN_LVL = 3;
 | 
			
		||||
	private static final int MIN_LEVEL = 3;
 | 
			
		||||
	// Reward
 | 
			
		||||
	private static final int SCROLL_OF_ESCAPE_DARK_ELF_VILLAGE = 7556;
 | 
			
		||||
	// Get condition for each npc
 | 
			
		||||
@@ -197,7 +197,7 @@ public class Q00047_IntoTheDarkElvenForest extends Quest
 | 
			
		||||
				{
 | 
			
		||||
					case State.CREATED:
 | 
			
		||||
					{
 | 
			
		||||
						if (talker.getLevel() < MIN_LVL)
 | 
			
		||||
						if (talker.getLevel() < MIN_LEVEL)
 | 
			
		||||
						{
 | 
			
		||||
							htmltext = "30097-03.html";
 | 
			
		||||
						}
 | 
			
		||||
 
 | 
			
		||||
@@ -48,7 +48,7 @@ public class Q00048_ToTheImmortalPlateau extends Quest
 | 
			
		||||
	private static final int GEMSTONE_POWDER = 7567;
 | 
			
		||||
	private static final int MAGIC_SWORD_HILT = 7568;
 | 
			
		||||
	// Misc
 | 
			
		||||
	private static final int MIN_LVL = 3;
 | 
			
		||||
	private static final int MIN_LEVEL = 3;
 | 
			
		||||
	// Reward
 | 
			
		||||
	private static final int SCROLL_OF_ESCAPE_ORC_VILLAGE = 7557;
 | 
			
		||||
	// Get condition for each npc
 | 
			
		||||
@@ -197,7 +197,7 @@ public class Q00048_ToTheImmortalPlateau extends Quest
 | 
			
		||||
				{
 | 
			
		||||
					case State.CREATED:
 | 
			
		||||
					{
 | 
			
		||||
						if (talker.getLevel() < MIN_LVL)
 | 
			
		||||
						if (talker.getLevel() < MIN_LEVEL)
 | 
			
		||||
						{
 | 
			
		||||
							htmltext = "30097-03.html";
 | 
			
		||||
						}
 | 
			
		||||
 
 | 
			
		||||
@@ -48,7 +48,7 @@ public class Q00049_TheRoadHome extends Quest
 | 
			
		||||
	private static final int GEMSTONE_POWDER = 7567;
 | 
			
		||||
	private static final int MAGIC_SWORD_HILT = 7568;
 | 
			
		||||
	// Misc
 | 
			
		||||
	private static final int MIN_LVL = 3;
 | 
			
		||||
	private static final int MIN_LEVEL = 3;
 | 
			
		||||
	// Reward
 | 
			
		||||
	private static final int SCROLL_OF_ESCAPE_DWARVEN_VILLAGE = 7558;
 | 
			
		||||
	// Get condition for each npc
 | 
			
		||||
@@ -197,7 +197,7 @@ public class Q00049_TheRoadHome extends Quest
 | 
			
		||||
				{
 | 
			
		||||
					case State.CREATED:
 | 
			
		||||
					{
 | 
			
		||||
						if (talker.getLevel() < MIN_LVL)
 | 
			
		||||
						if (talker.getLevel() < MIN_LEVEL)
 | 
			
		||||
						{
 | 
			
		||||
							htmltext = "30097-03.html";
 | 
			
		||||
						}
 | 
			
		||||
 
 | 
			
		||||
@@ -61,7 +61,7 @@ public class Q00101_SwordOfSolidarity extends Quest
 | 
			
		||||
		new ItemHolder(4416, 10), // Echo Crystal - Theme of Celebration
 | 
			
		||||
	};
 | 
			
		||||
	// Misc
 | 
			
		||||
	private static final int MIN_LVL = 9;
 | 
			
		||||
	private static final int MIN_LEVEL = 9;
 | 
			
		||||
	
 | 
			
		||||
	public Q00101_SwordOfSolidarity()
 | 
			
		||||
	{
 | 
			
		||||
@@ -173,7 +173,7 @@ public class Q00101_SwordOfSolidarity extends Quest
 | 
			
		||||
				{
 | 
			
		||||
					case State.CREATED:
 | 
			
		||||
					{
 | 
			
		||||
						htmltext = (player.getRace() == Race.HUMAN) ? (player.getLevel() >= MIN_LVL) ? "30008-02.htm" : "30008-08.htm" : "30008-01.htm";
 | 
			
		||||
						htmltext = (player.getRace() == Race.HUMAN) ? (player.getLevel() >= MIN_LEVEL) ? "30008-02.htm" : "30008-08.htm" : "30008-01.htm";
 | 
			
		||||
						break;
 | 
			
		||||
					}
 | 
			
		||||
					case State.STARTED:
 | 
			
		||||
 
 | 
			
		||||
@@ -64,7 +64,7 @@ public class Q00102_SeaOfSporesFever extends Quest
 | 
			
		||||
	private static final int ECHO_CRYSTAL_THEME_OF_FEAST = 4415;
 | 
			
		||||
	private static final int ECHO_CRYSTAL_THEME_OF_CELEBRATION = 4416;
 | 
			
		||||
	// Misc
 | 
			
		||||
	private static final int MIN_LVL = 12;
 | 
			
		||||
	private static final int MIN_LEVEL = 12;
 | 
			
		||||
	private static final Map<Integer, Integer> SENTINELS = new HashMap<>();
 | 
			
		||||
	static
 | 
			
		||||
	{
 | 
			
		||||
@@ -129,7 +129,7 @@ public class Q00102_SeaOfSporesFever extends Quest
 | 
			
		||||
				{
 | 
			
		||||
					case State.CREATED:
 | 
			
		||||
					{
 | 
			
		||||
						htmltext = player.getRace() == Race.ELF ? player.getLevel() >= MIN_LVL ? "30284-07.htm" : "30284-08.htm" : "30284-00.htm";
 | 
			
		||||
						htmltext = player.getRace() == Race.ELF ? player.getLevel() >= MIN_LEVEL ? "30284-07.htm" : "30284-08.htm" : "30284-00.htm";
 | 
			
		||||
						break;
 | 
			
		||||
					}
 | 
			
		||||
					case State.STARTED:
 | 
			
		||||
 
 | 
			
		||||
@@ -64,7 +64,7 @@ public class Q00103_SpiritOfCraftsman extends Quest
 | 
			
		||||
		new ItemHolder(4416, 10), // Echo Crystal - Theme of Celebration
 | 
			
		||||
	};
 | 
			
		||||
	// Misc
 | 
			
		||||
	private static final int MIN_LVL = 10;
 | 
			
		||||
	private static final int MIN_LEVEL = 10;
 | 
			
		||||
	
 | 
			
		||||
	public Q00103_SpiritOfCraftsman()
 | 
			
		||||
	{
 | 
			
		||||
@@ -120,7 +120,7 @@ public class Q00103_SpiritOfCraftsman extends Quest
 | 
			
		||||
					{
 | 
			
		||||
						htmltext = "30307-01.htm";
 | 
			
		||||
					}
 | 
			
		||||
					else if (talker.getLevel() < MIN_LVL)
 | 
			
		||||
					else if (talker.getLevel() < MIN_LEVEL)
 | 
			
		||||
					{
 | 
			
		||||
						htmltext = "30307-02.htm";
 | 
			
		||||
					}
 | 
			
		||||
 
 | 
			
		||||
@@ -67,7 +67,7 @@ public class Q00104_SpiritOfMirrors extends Quest
 | 
			
		||||
		new ItemHolder(747, 1), // Wand of Adept
 | 
			
		||||
	};
 | 
			
		||||
	// Misc
 | 
			
		||||
	private static final int MIN_LVL = 10;
 | 
			
		||||
	private static final int MIN_LEVEL = 10;
 | 
			
		||||
	
 | 
			
		||||
	public Q00104_SpiritOfMirrors()
 | 
			
		||||
	{
 | 
			
		||||
@@ -124,7 +124,7 @@ public class Q00104_SpiritOfMirrors extends Quest
 | 
			
		||||
				{
 | 
			
		||||
					case State.CREATED:
 | 
			
		||||
					{
 | 
			
		||||
						htmltext = (player.getRace() == Race.HUMAN) ? (player.getLevel() >= MIN_LVL) ? "30017-03.htm" : "30017-02.htm" : "30017-01.htm";
 | 
			
		||||
						htmltext = (player.getRace() == Race.HUMAN) ? (player.getLevel() >= MIN_LEVEL) ? "30017-03.htm" : "30017-02.htm" : "30017-01.htm";
 | 
			
		||||
						break;
 | 
			
		||||
					}
 | 
			
		||||
					case State.STARTED:
 | 
			
		||||
 
 | 
			
		||||
@@ -74,7 +74,7 @@ public class Q00105_SkirmishWithOrcs extends Quest
 | 
			
		||||
		KENDELLS_8TH_ORDER
 | 
			
		||||
	};
 | 
			
		||||
	// Misc
 | 
			
		||||
	private static final int MIN_LVL = 10;
 | 
			
		||||
	private static final int MIN_LEVEL = 10;
 | 
			
		||||
	
 | 
			
		||||
	public Q00105_SkirmishWithOrcs()
 | 
			
		||||
	{
 | 
			
		||||
@@ -164,7 +164,7 @@ public class Q00105_SkirmishWithOrcs extends Quest
 | 
			
		||||
			{
 | 
			
		||||
				if (talker.getRace() == Race.ELF)
 | 
			
		||||
				{
 | 
			
		||||
					htmltext = (talker.getLevel() >= MIN_LVL) ? "30218-03.htm" : "30218-02.htm";
 | 
			
		||||
					htmltext = (talker.getLevel() >= MIN_LEVEL) ? "30218-03.htm" : "30218-02.htm";
 | 
			
		||||
				}
 | 
			
		||||
				else
 | 
			
		||||
				{
 | 
			
		||||
 
 | 
			
		||||
@@ -48,7 +48,7 @@ public class Q00106_ForgottenTruth extends Quest
 | 
			
		||||
	private static final int ANCIENT_CLAY_TABLET = 987;
 | 
			
		||||
	private static final int KARTAS_TRANSLATION = 988;
 | 
			
		||||
	// Misc
 | 
			
		||||
	private static final int MIN_LVL = 10;
 | 
			
		||||
	private static final int MIN_LEVEL = 10;
 | 
			
		||||
	// Rewards
 | 
			
		||||
	private static final int ELDRITCH_DAGGER = 989;
 | 
			
		||||
	private static final int ELDRITCH_STAFF = 2373;
 | 
			
		||||
@@ -137,7 +137,7 @@ public class Q00106_ForgottenTruth extends Quest
 | 
			
		||||
					{
 | 
			
		||||
						if (talker.getRace() == Race.DARK_ELF)
 | 
			
		||||
						{
 | 
			
		||||
							htmltext = talker.getLevel() >= MIN_LVL ? "30358-03.htm" : "30358-02.htm";
 | 
			
		||||
							htmltext = talker.getLevel() >= MIN_LEVEL ? "30358-03.htm" : "30358-02.htm";
 | 
			
		||||
						}
 | 
			
		||||
						else
 | 
			
		||||
						{
 | 
			
		||||
 
 | 
			
		||||
@@ -60,7 +60,7 @@ public class Q00107_MercilessPunishment extends Quest
 | 
			
		||||
		new ItemHolder(4416, 10), // Echo Crystal - Theme of Celebration
 | 
			
		||||
	};
 | 
			
		||||
	// Misc
 | 
			
		||||
	private static final int MIN_LVL = 10;
 | 
			
		||||
	private static final int MIN_LEVEL = 10;
 | 
			
		||||
	
 | 
			
		||||
	public Q00107_MercilessPunishment()
 | 
			
		||||
	{
 | 
			
		||||
@@ -143,7 +143,7 @@ public class Q00107_MercilessPunishment extends Quest
 | 
			
		||||
						{
 | 
			
		||||
							htmltext = "30568-01.htm";
 | 
			
		||||
						}
 | 
			
		||||
						else if (talker.getLevel() < MIN_LVL)
 | 
			
		||||
						else if (talker.getLevel() < MIN_LEVEL)
 | 
			
		||||
						{
 | 
			
		||||
							htmltext = "30568-02.htm";
 | 
			
		||||
						}
 | 
			
		||||
 
 | 
			
		||||
@@ -77,7 +77,7 @@ public class Q00108_JumbleTumbleDiamondFuss extends Quest
 | 
			
		||||
	};
 | 
			
		||||
	private static final int SILVERSMITH_HAMMER = 1511;
 | 
			
		||||
	// Misc
 | 
			
		||||
	private static final int MIN_LVL = 10;
 | 
			
		||||
	private static final int MIN_LEVEL = 10;
 | 
			
		||||
	private static final int MAX_GEM_COUNT = 10;
 | 
			
		||||
	private static final Map<Integer, Double> GOBLIN_DROP_CHANCES = new HashMap<>();
 | 
			
		||||
	static
 | 
			
		||||
@@ -160,7 +160,7 @@ public class Q00108_JumbleTumbleDiamondFuss extends Quest
 | 
			
		||||
						{
 | 
			
		||||
							htmltext = "30523-01.htm";
 | 
			
		||||
						}
 | 
			
		||||
						else if (talker.getLevel() < MIN_LVL)
 | 
			
		||||
						else if (talker.getLevel() < MIN_LEVEL)
 | 
			
		||||
						{
 | 
			
		||||
							htmltext = "30523-02.htm";
 | 
			
		||||
						}
 | 
			
		||||
 
 | 
			
		||||
@@ -41,7 +41,7 @@ public class Q00152_ShardsOfGolem extends Quest
 | 
			
		||||
	private static final int GOLEM_SHARD = 1010;
 | 
			
		||||
	private static final int TOOL_BOX = 1011;
 | 
			
		||||
	// Misc
 | 
			
		||||
	private static final int MIN_LVL = 10;
 | 
			
		||||
	private static final int MIN_LEVEL = 10;
 | 
			
		||||
	
 | 
			
		||||
	public Q00152_ShardsOfGolem()
 | 
			
		||||
	{
 | 
			
		||||
@@ -116,7 +116,7 @@ public class Q00152_ShardsOfGolem extends Quest
 | 
			
		||||
				{
 | 
			
		||||
					case State.CREATED:
 | 
			
		||||
					{
 | 
			
		||||
						htmltext = player.getLevel() >= MIN_LVL ? "30035-02.htm" : "30035-01.htm";
 | 
			
		||||
						htmltext = player.getLevel() >= MIN_LEVEL ? "30035-02.htm" : "30035-01.htm";
 | 
			
		||||
						break;
 | 
			
		||||
					}
 | 
			
		||||
					case State.STARTED:
 | 
			
		||||
 
 | 
			
		||||
@@ -42,7 +42,7 @@ public class Q00154_SacrificeToTheSea extends Quest
 | 
			
		||||
	// Reward
 | 
			
		||||
	private static final int MAGE_EARING = 113;
 | 
			
		||||
	// Misc
 | 
			
		||||
	private static final int MIN_LVL = 2;
 | 
			
		||||
	private static final int MIN_LEVEL = 2;
 | 
			
		||||
	
 | 
			
		||||
	public Q00154_SacrificeToTheSea()
 | 
			
		||||
	{
 | 
			
		||||
@@ -77,7 +77,7 @@ public class Q00154_SacrificeToTheSea extends Quest
 | 
			
		||||
			{
 | 
			
		||||
				if (qs.isCreated())
 | 
			
		||||
				{
 | 
			
		||||
					htmltext = ((talker.getLevel() >= MIN_LVL) ? "30312-01.htm" : "30312-02.htm");
 | 
			
		||||
					htmltext = ((talker.getLevel() >= MIN_LEVEL) ? "30312-01.htm" : "30312-02.htm");
 | 
			
		||||
				}
 | 
			
		||||
				else if (qs.isStarted())
 | 
			
		||||
				{
 | 
			
		||||
 
 | 
			
		||||
@@ -36,7 +36,7 @@ public class Q00156_MillenniumLove extends Quest
 | 
			
		||||
	private static final int THEONS_DIARY = 1023;
 | 
			
		||||
	private static final int GREATER_COMP_SOULSHOUT_PACKAGE_NO_GRADE = 5250;
 | 
			
		||||
	// Misc
 | 
			
		||||
	private static final int MIN_LVL = 15;
 | 
			
		||||
	private static final int MIN_LEVEL = 15;
 | 
			
		||||
	
 | 
			
		||||
	public Q00156_MillenniumLove()
 | 
			
		||||
	{
 | 
			
		||||
@@ -63,7 +63,7 @@ public class Q00156_MillenniumLove extends Quest
 | 
			
		||||
				}
 | 
			
		||||
				case "30368-05.htm":
 | 
			
		||||
				{
 | 
			
		||||
					if (player.getLevel() >= MIN_LVL)
 | 
			
		||||
					if (player.getLevel() >= MIN_LEVEL)
 | 
			
		||||
					{
 | 
			
		||||
						qs.startQuest();
 | 
			
		||||
						giveItems(player, LILITHS_LETTER, 1);
 | 
			
		||||
 
 | 
			
		||||
@@ -37,7 +37,7 @@ public class Q00157_RecoverSmuggledGoods extends Quest
 | 
			
		||||
	private static final int BUCKLER = 20;
 | 
			
		||||
	private static final int ADAMANTITE_ORE = 1024;
 | 
			
		||||
	// Misc
 | 
			
		||||
	private static final int MIN_LVL = 5;
 | 
			
		||||
	private static final int MIN_LEVEL = 5;
 | 
			
		||||
	
 | 
			
		||||
	public Q00157_RecoverSmuggledGoods()
 | 
			
		||||
	{
 | 
			
		||||
@@ -101,7 +101,7 @@ public class Q00157_RecoverSmuggledGoods extends Quest
 | 
			
		||||
		{
 | 
			
		||||
			case State.CREATED:
 | 
			
		||||
			{
 | 
			
		||||
				htmltext = player.getLevel() >= MIN_LVL ? "30005-02.htm" : "30005-01.htm";
 | 
			
		||||
				htmltext = player.getLevel() >= MIN_LEVEL ? "30005-02.htm" : "30005-01.htm";
 | 
			
		||||
				break;
 | 
			
		||||
			}
 | 
			
		||||
			case State.STARTED:
 | 
			
		||||
 
 | 
			
		||||
@@ -39,7 +39,7 @@ public class Q00159_ProtectTheWaterSource extends Quest
 | 
			
		||||
	private static final int HYACINTH_CHARM = 1071;
 | 
			
		||||
	private static final int HYACINTH_CHARM2 = 1072;
 | 
			
		||||
	// Misc
 | 
			
		||||
	private static final int MIN_LVL = 12;
 | 
			
		||||
	private static final int MIN_LEVEL = 12;
 | 
			
		||||
	
 | 
			
		||||
	public Q00159_ProtectTheWaterSource()
 | 
			
		||||
	{
 | 
			
		||||
@@ -111,7 +111,7 @@ public class Q00159_ProtectTheWaterSource extends Quest
 | 
			
		||||
		{
 | 
			
		||||
			case State.CREATED:
 | 
			
		||||
			{
 | 
			
		||||
				htmltext = (player.getRace() == Race.ELF) ? (player.getLevel() >= MIN_LVL ? "30154-03.htm" : "30154-02.htm") : "30154-01.htm";
 | 
			
		||||
				htmltext = (player.getRace() == Race.ELF) ? (player.getLevel() >= MIN_LEVEL ? "30154-03.htm" : "30154-02.htm") : "30154-01.htm";
 | 
			
		||||
				break;
 | 
			
		||||
			}
 | 
			
		||||
			case State.STARTED:
 | 
			
		||||
 
 | 
			
		||||
@@ -52,7 +52,7 @@ public class Q00162_CurseOfTheUndergroundFortress extends Quest
 | 
			
		||||
	private static final int BONE_FRAGMENT = 1158;
 | 
			
		||||
	private static final int ELF_SKULL = 1159;
 | 
			
		||||
	// Misc
 | 
			
		||||
	private static final int MIN_LVL = 12;
 | 
			
		||||
	private static final int MIN_LEVEL = 12;
 | 
			
		||||
	private static final int REQUIRED_COUNT = 13;
 | 
			
		||||
	
 | 
			
		||||
	public Q00162_CurseOfTheUndergroundFortress()
 | 
			
		||||
@@ -144,7 +144,7 @@ public class Q00162_CurseOfTheUndergroundFortress extends Quest
 | 
			
		||||
		{
 | 
			
		||||
			case State.CREATED:
 | 
			
		||||
			{
 | 
			
		||||
				htmltext = (player.getRace() != Race.DARK_ELF) ? (player.getLevel() >= MIN_LVL) ? "30147-02.htm" : "30147-01.htm" : "30147-00.htm";
 | 
			
		||||
				htmltext = (player.getRace() != Race.DARK_ELF) ? (player.getLevel() >= MIN_LEVEL) ? "30147-02.htm" : "30147-01.htm" : "30147-00.htm";
 | 
			
		||||
				break;
 | 
			
		||||
			}
 | 
			
		||||
			case State.STARTED:
 | 
			
		||||
 
 | 
			
		||||
@@ -44,7 +44,7 @@ public class Q00163_LegacyOfThePoet extends Quest
 | 
			
		||||
	private static final int RUMIELS_3RD_POEM = 1040;
 | 
			
		||||
	private static final int RUMIELS_4TH_POEM = 1041;
 | 
			
		||||
	// Misc
 | 
			
		||||
	private static final int MIN_LVL = 11;
 | 
			
		||||
	private static final int MIN_LEVEL = 11;
 | 
			
		||||
	
 | 
			
		||||
	public Q00163_LegacyOfThePoet()
 | 
			
		||||
	{
 | 
			
		||||
@@ -148,7 +148,7 @@ public class Q00163_LegacyOfThePoet extends Quest
 | 
			
		||||
		{
 | 
			
		||||
			case State.CREATED:
 | 
			
		||||
			{
 | 
			
		||||
				htmltext = (player.getRace() != Race.DARK_ELF) ? (player.getLevel() >= MIN_LVL) ? "30220-02.htm" : "30220-01.htm" : "30220-00.htm";
 | 
			
		||||
				htmltext = (player.getRace() != Race.DARK_ELF) ? (player.getLevel() >= MIN_LEVEL) ? "30220-02.htm" : "30220-01.htm" : "30220-00.htm";
 | 
			
		||||
				break;
 | 
			
		||||
			}
 | 
			
		||||
			case State.STARTED:
 | 
			
		||||
 
 | 
			
		||||
@@ -39,7 +39,7 @@ public class Q00164_BloodFiend extends Quest
 | 
			
		||||
	// Item
 | 
			
		||||
	private static final int KIRUNAK_SKULL = 1044;
 | 
			
		||||
	// Misc
 | 
			
		||||
	private static final int MIN_LVL = 21;
 | 
			
		||||
	private static final int MIN_LEVEL = 21;
 | 
			
		||||
	
 | 
			
		||||
	public Q00164_BloodFiend()
 | 
			
		||||
	{
 | 
			
		||||
@@ -84,7 +84,7 @@ public class Q00164_BloodFiend extends Quest
 | 
			
		||||
		{
 | 
			
		||||
			case State.CREATED:
 | 
			
		||||
			{
 | 
			
		||||
				htmltext = (player.getRace() != Race.DARK_ELF) ? player.getLevel() >= MIN_LVL ? "30149-03.htm" : "30149-02.htm" : "30149-00.htm";
 | 
			
		||||
				htmltext = (player.getRace() != Race.DARK_ELF) ? player.getLevel() >= MIN_LEVEL ? "30149-03.htm" : "30149-02.htm" : "30149-00.htm";
 | 
			
		||||
				break;
 | 
			
		||||
			}
 | 
			
		||||
			case State.STARTED:
 | 
			
		||||
 
 | 
			
		||||
@@ -48,7 +48,7 @@ public class Q00165_ShilensHunt extends Quest
 | 
			
		||||
	private static final int LESSER_HEALING_POTION = 1060;
 | 
			
		||||
	private static final int DARK_BEZOAR = 1160;
 | 
			
		||||
	// Misc
 | 
			
		||||
	private static final int MIN_LVL = 3;
 | 
			
		||||
	private static final int MIN_LEVEL = 3;
 | 
			
		||||
	private static final int REQUIRED_COUNT = 13;
 | 
			
		||||
	
 | 
			
		||||
	public Q00165_ShilensHunt()
 | 
			
		||||
@@ -100,7 +100,7 @@ public class Q00165_ShilensHunt extends Quest
 | 
			
		||||
		{
 | 
			
		||||
			case State.CREATED:
 | 
			
		||||
			{
 | 
			
		||||
				htmltext = (player.getRace() == Race.DARK_ELF) ? (player.getLevel() >= MIN_LVL) ? "30348-02.htm" : "30348-01.htm" : "30348-00.htm";
 | 
			
		||||
				htmltext = (player.getRace() == Race.DARK_ELF) ? (player.getLevel() >= MIN_LEVEL) ? "30348-02.htm" : "30348-01.htm" : "30348-00.htm";
 | 
			
		||||
				break;
 | 
			
		||||
			}
 | 
			
		||||
			case State.STARTED:
 | 
			
		||||
 
 | 
			
		||||
@@ -44,7 +44,7 @@ public class Q00166_MassOfDarkness extends Quest
 | 
			
		||||
	private static final int DREVIANT_WINE = 1090;
 | 
			
		||||
	private static final int GARMIELS_SCRIPTURE = 1091;
 | 
			
		||||
	// Misc
 | 
			
		||||
	private static final int MIN_LVL = 2;
 | 
			
		||||
	private static final int MIN_LEVEL = 2;
 | 
			
		||||
	private static final Map<Integer, Integer> NPCs = new HashMap<>();
 | 
			
		||||
	static
 | 
			
		||||
	{
 | 
			
		||||
@@ -87,7 +87,7 @@ public class Q00166_MassOfDarkness extends Quest
 | 
			
		||||
				{
 | 
			
		||||
					case State.CREATED:
 | 
			
		||||
					{
 | 
			
		||||
						htmltext = (player.getRace() == Race.DARK_ELF) ? (player.getLevel() >= MIN_LVL) ? "30130-02.htm" : "30130-01.htm" : "30130-00.htm";
 | 
			
		||||
						htmltext = (player.getRace() == Race.DARK_ELF) ? (player.getLevel() >= MIN_LEVEL) ? "30130-02.htm" : "30130-01.htm" : "30130-00.htm";
 | 
			
		||||
						break;
 | 
			
		||||
					}
 | 
			
		||||
					case State.STARTED:
 | 
			
		||||
 
 | 
			
		||||
@@ -36,7 +36,7 @@ public class Q00167_DwarvenKinship extends Quest
 | 
			
		||||
	private static final int CARLONS_LETTER = 1076;
 | 
			
		||||
	private static final int NORMANS_LETTER = 1106;
 | 
			
		||||
	// Misc
 | 
			
		||||
	private static final int MIN_LVL = 15;
 | 
			
		||||
	private static final int MIN_LEVEL = 15;
 | 
			
		||||
	
 | 
			
		||||
	public Q00167_DwarvenKinship()
 | 
			
		||||
	{
 | 
			
		||||
@@ -117,7 +117,7 @@ public class Q00167_DwarvenKinship extends Quest
 | 
			
		||||
				{
 | 
			
		||||
					case State.CREATED:
 | 
			
		||||
					{
 | 
			
		||||
						htmltext = (player.getLevel() >= MIN_LVL) ? "30350-02.htm" : "30350-01.htm";
 | 
			
		||||
						htmltext = (player.getLevel() >= MIN_LEVEL) ? "30350-02.htm" : "30350-01.htm";
 | 
			
		||||
						break;
 | 
			
		||||
					}
 | 
			
		||||
					case State.STARTED:
 | 
			
		||||
 
 | 
			
		||||
@@ -44,7 +44,7 @@ public class Q00168_DeliverSupplies extends Quest
 | 
			
		||||
	private static final int SENTRY_BLADE3 = 1156;
 | 
			
		||||
	private static final int OLD_BRONZE_SWORD = 1157;
 | 
			
		||||
	// Misc
 | 
			
		||||
	private static final int MIN_LVL = 3;
 | 
			
		||||
	private static final int MIN_LEVEL = 3;
 | 
			
		||||
	private static final Map<Integer, Integer> SENTRIES = new HashMap<>();
 | 
			
		||||
	static
 | 
			
		||||
	{
 | 
			
		||||
@@ -86,7 +86,7 @@ public class Q00168_DeliverSupplies extends Quest
 | 
			
		||||
				{
 | 
			
		||||
					case State.CREATED:
 | 
			
		||||
					{
 | 
			
		||||
						htmltext = (player.getRace() == Race.DARK_ELF) ? (player.getLevel() >= MIN_LVL) ? "30349-02.htm" : "30349-01.htm" : "30349-00.htm";
 | 
			
		||||
						htmltext = (player.getRace() == Race.DARK_ELF) ? (player.getLevel() >= MIN_LEVEL) ? "30349-02.htm" : "30349-01.htm" : "30349-00.htm";
 | 
			
		||||
						break;
 | 
			
		||||
					}
 | 
			
		||||
					case State.STARTED:
 | 
			
		||||
 
 | 
			
		||||
@@ -41,7 +41,7 @@ public class Q00169_OffspringOfNightmares extends Quest
 | 
			
		||||
	private static final int CRACKED_SKULL = 1030;
 | 
			
		||||
	private static final int PERFECT_SKULL = 1031;
 | 
			
		||||
	// Misc
 | 
			
		||||
	private static final int MIN_LVL = 15;
 | 
			
		||||
	private static final int MIN_LEVEL = 15;
 | 
			
		||||
	
 | 
			
		||||
	public Q00169_OffspringOfNightmares()
 | 
			
		||||
	{
 | 
			
		||||
@@ -114,7 +114,7 @@ public class Q00169_OffspringOfNightmares extends Quest
 | 
			
		||||
		{
 | 
			
		||||
			case State.CREATED:
 | 
			
		||||
			{
 | 
			
		||||
				htmltext = (player.getRace() == Race.DARK_ELF) ? (player.getLevel() >= MIN_LVL) ? "30145-02.htm" : "30145-01.htm" : "30145-00.htm";
 | 
			
		||||
				htmltext = (player.getRace() == Race.DARK_ELF) ? (player.getLevel() >= MIN_LEVEL) ? "30145-02.htm" : "30145-01.htm" : "30145-00.htm";
 | 
			
		||||
				break;
 | 
			
		||||
			}
 | 
			
		||||
			case State.STARTED:
 | 
			
		||||
 
 | 
			
		||||
@@ -65,7 +65,7 @@ public class Q00211_TrialOfTheChallenger extends Quest
 | 
			
		||||
	private static final int MARK_OF_CHALLENGER = 2627;
 | 
			
		||||
	private static final ItemHolder DIMENSIONAL_DIAMONDS = new ItemHolder(7562, 61);
 | 
			
		||||
	// Misc
 | 
			
		||||
	private static final int MIN_LVL = 35;
 | 
			
		||||
	private static final int MIN_LEVEL = 35;
 | 
			
		||||
	
 | 
			
		||||
	public Q00211_TrialOfTheChallenger()
 | 
			
		||||
	{
 | 
			
		||||
@@ -206,7 +206,7 @@ public class Q00211_TrialOfTheChallenger extends Quest
 | 
			
		||||
					{
 | 
			
		||||
						htmltext = "30644-02.html";
 | 
			
		||||
					}
 | 
			
		||||
					else if (talker.getLevel() < MIN_LVL)
 | 
			
		||||
					else if (talker.getLevel() < MIN_LEVEL)
 | 
			
		||||
					{
 | 
			
		||||
						htmltext = "30644-01.html";
 | 
			
		||||
					}
 | 
			
		||||
 
 | 
			
		||||
@@ -80,7 +80,7 @@ public class Q00213_TrialOfTheSeeker extends Quest
 | 
			
		||||
	private static final int TUREK_ORC_WARLORD = 20495;
 | 
			
		||||
	private static final int LETO_LIZARDMAN_WARRIOR = 20580;
 | 
			
		||||
	// Misc
 | 
			
		||||
	private static final int MIN_LVL = 35;
 | 
			
		||||
	private static final int MIN_LEVEL = 35;
 | 
			
		||||
	private static final int LEVEL = 36;
 | 
			
		||||
	
 | 
			
		||||
	public Q00213_TrialOfTheSeeker()
 | 
			
		||||
@@ -398,7 +398,7 @@ public class Q00213_TrialOfTheSeeker extends Quest
 | 
			
		||||
			{
 | 
			
		||||
				if ((player.getClassId() == ClassId.ROGUE) || (player.getClassId() == ClassId.ELVEN_SCOUT) || (player.getClassId() == ClassId.ASSASSIN))
 | 
			
		||||
				{
 | 
			
		||||
					if (player.getLevel() < MIN_LVL)
 | 
			
		||||
					if (player.getLevel() < MIN_LEVEL)
 | 
			
		||||
					{
 | 
			
		||||
						htmltext = "30106-02.html";
 | 
			
		||||
					}
 | 
			
		||||
 
 | 
			
		||||
@@ -108,7 +108,7 @@ public class Q00214_TrialOfTheScholar extends Quest
 | 
			
		||||
	private static final int ENCHANTED_GARGOYLE = 20567;
 | 
			
		||||
	private static final int LETO_LIZARDMAN_WARRIOR = 20580;
 | 
			
		||||
	// Misc
 | 
			
		||||
	private static final int MIN_LVL = 35;
 | 
			
		||||
	private static final int MIN_LEVEL = 35;
 | 
			
		||||
	private static final int LEVEL = 36;
 | 
			
		||||
	
 | 
			
		||||
	public Q00214_TrialOfTheScholar()
 | 
			
		||||
@@ -568,7 +568,7 @@ public class Q00214_TrialOfTheScholar extends Quest
 | 
			
		||||
			{
 | 
			
		||||
				if ((player.getClassId() == ClassId.WIZARD) || (player.getClassId() == ClassId.ELVEN_WIZARD) || (player.getClassId() == ClassId.DARK_WIZARD))
 | 
			
		||||
				{
 | 
			
		||||
					if (player.getLevel() < MIN_LVL)
 | 
			
		||||
					if (player.getLevel() < MIN_LEVEL)
 | 
			
		||||
					{
 | 
			
		||||
						htmltext = "30461-02.html";
 | 
			
		||||
					}
 | 
			
		||||
 
 | 
			
		||||
@@ -66,7 +66,7 @@ public class Q00215_TrialOfThePilgrim extends Quest
 | 
			
		||||
	private static final int NAHIR = 27117;
 | 
			
		||||
	private static final int BLACK_WILLOW = 27118;
 | 
			
		||||
	// Misc
 | 
			
		||||
	private static final int MIN_LVL = 35;
 | 
			
		||||
	private static final int MIN_LEVEL = 35;
 | 
			
		||||
	
 | 
			
		||||
	public Q00215_TrialOfThePilgrim()
 | 
			
		||||
	{
 | 
			
		||||
@@ -250,7 +250,7 @@ public class Q00215_TrialOfThePilgrim extends Quest
 | 
			
		||||
				{
 | 
			
		||||
					htmltext = "30648-02.html";
 | 
			
		||||
				}
 | 
			
		||||
				else if (player.getLevel() < MIN_LVL)
 | 
			
		||||
				else if (player.getLevel() < MIN_LEVEL)
 | 
			
		||||
				{
 | 
			
		||||
					htmltext = "30648-01.html";
 | 
			
		||||
				}
 | 
			
		||||
 
 | 
			
		||||
@@ -83,7 +83,7 @@ public class Q00216_TrialOfTheGuildsman extends Quest
 | 
			
		||||
	private static final int BREKA_ORC_OVERLORD = 20270;
 | 
			
		||||
	private static final int BREKA_ORC_WARRIOR = 20271;
 | 
			
		||||
	// Misc
 | 
			
		||||
	private static final int MIN_LVL = 35;
 | 
			
		||||
	private static final int MIN_LEVEL = 35;
 | 
			
		||||
	
 | 
			
		||||
	public Q00216_TrialOfTheGuildsman()
 | 
			
		||||
	{
 | 
			
		||||
@@ -410,7 +410,7 @@ public class Q00216_TrialOfTheGuildsman extends Quest
 | 
			
		||||
			{
 | 
			
		||||
				if ((player.getClassId() == ClassId.ARTISAN) || (player.getClassId() == ClassId.SCAVENGER))
 | 
			
		||||
				{
 | 
			
		||||
					if (player.getLevel() < MIN_LVL)
 | 
			
		||||
					if (player.getLevel() < MIN_LEVEL)
 | 
			
		||||
					{
 | 
			
		||||
						htmltext = "30103-02.html";
 | 
			
		||||
					}
 | 
			
		||||
 
 | 
			
		||||
@@ -88,7 +88,7 @@ public class Q00228_TestOfMagus extends Quest
 | 
			
		||||
	private static final int SINGING_FLOWER_DARKLING = 27097;
 | 
			
		||||
	private static final int GHOST_FIRE = 27098;
 | 
			
		||||
	// Misc
 | 
			
		||||
	private static final int MIN_LVL = 39;
 | 
			
		||||
	private static final int MIN_LEVEL = 39;
 | 
			
		||||
	
 | 
			
		||||
	public Q00228_TestOfMagus()
 | 
			
		||||
	{
 | 
			
		||||
@@ -384,7 +384,7 @@ public class Q00228_TestOfMagus extends Quest
 | 
			
		||||
			{
 | 
			
		||||
				if ((player.getClassId() == ClassId.WIZARD) || (player.getClassId() == ClassId.ELVEN_WIZARD) || (player.getClassId() == ClassId.DARK_WIZARD))
 | 
			
		||||
				{
 | 
			
		||||
					if (player.getLevel() < MIN_LVL)
 | 
			
		||||
					if (player.getLevel() < MIN_LEVEL)
 | 
			
		||||
					{
 | 
			
		||||
						htmltext = "30629-02.html";
 | 
			
		||||
					}
 | 
			
		||||
 
 | 
			
		||||
@@ -58,7 +58,7 @@ public class Q00257_TheGuardIsBusy extends Quest
 | 
			
		||||
	// NPC
 | 
			
		||||
	private static final int GILBERT = 30039;
 | 
			
		||||
	// Misc
 | 
			
		||||
	private static final int MIN_LVL = 6;
 | 
			
		||||
	private static final int MIN_LEVEL = 6;
 | 
			
		||||
	// Monsters
 | 
			
		||||
	private static final Map<Integer, List<MobDrop>> MONSTERS = new HashMap<>();
 | 
			
		||||
	// Items
 | 
			
		||||
@@ -152,7 +152,7 @@ public class Q00257_TheGuardIsBusy extends Quest
 | 
			
		||||
		{
 | 
			
		||||
			case State.CREATED:
 | 
			
		||||
			{
 | 
			
		||||
				htmltext = (player.getLevel() >= MIN_LVL) ? "30039-02.htm" : "30039-01.html";
 | 
			
		||||
				htmltext = (player.getLevel() >= MIN_LEVEL) ? "30039-02.htm" : "30039-01.html";
 | 
			
		||||
				break;
 | 
			
		||||
			}
 | 
			
		||||
			case State.STARTED:
 | 
			
		||||
 
 | 
			
		||||
@@ -53,7 +53,7 @@ public class Q00258_BringWolfPelts extends Quest
 | 
			
		||||
		REWARDS.put(426, 16); // Tunic
 | 
			
		||||
	}
 | 
			
		||||
	// Misc
 | 
			
		||||
	private static final int MIN_LVL = 3;
 | 
			
		||||
	private static final int MIN_LEVEL = 3;
 | 
			
		||||
	private static final int WOLF_PELT_COUNT = 40;
 | 
			
		||||
	
 | 
			
		||||
	public Q00258_BringWolfPelts()
 | 
			
		||||
@@ -105,7 +105,7 @@ public class Q00258_BringWolfPelts extends Quest
 | 
			
		||||
		{
 | 
			
		||||
			case State.CREATED:
 | 
			
		||||
			{
 | 
			
		||||
				htmltext = (player.getLevel() >= MIN_LVL) ? "30001-02.htm" : "30001-01.html";
 | 
			
		||||
				htmltext = (player.getLevel() >= MIN_LEVEL) ? "30001-02.htm" : "30001-01.html";
 | 
			
		||||
				break;
 | 
			
		||||
			}
 | 
			
		||||
			case State.STARTED:
 | 
			
		||||
 
 | 
			
		||||
@@ -46,7 +46,7 @@ public class Q00259_RequestFromTheFarmOwner extends Quest
 | 
			
		||||
	// Items
 | 
			
		||||
	private static final int SPIDER_SKIN = 1495;
 | 
			
		||||
	// Misc
 | 
			
		||||
	private static final int MIN_LVL = 15;
 | 
			
		||||
	private static final int MIN_LEVEL = 15;
 | 
			
		||||
	private static final int SKIN_COUNT = 10;
 | 
			
		||||
	private static final int SKIN_REWARD = 25;
 | 
			
		||||
	private static final int SKIN_BONUS = 250;
 | 
			
		||||
@@ -147,7 +147,7 @@ public class Q00259_RequestFromTheFarmOwner extends Quest
 | 
			
		||||
				{
 | 
			
		||||
					case State.CREATED:
 | 
			
		||||
					{
 | 
			
		||||
						htmltext = (player.getLevel() >= MIN_LVL) ? "30497-02.htm" : "30497-01.html";
 | 
			
		||||
						htmltext = (player.getLevel() >= MIN_LEVEL) ? "30497-02.htm" : "30497-01.html";
 | 
			
		||||
						break;
 | 
			
		||||
					}
 | 
			
		||||
					case State.STARTED:
 | 
			
		||||
 
 | 
			
		||||
@@ -52,7 +52,7 @@ public class Q00260_OrcHunting extends Quest
 | 
			
		||||
		MONSTERS.put(20473, ORC_NECKLACE); // Kaboo Orc Fighter Lieutenant
 | 
			
		||||
	}
 | 
			
		||||
	// Misc
 | 
			
		||||
	private static final int MIN_LVL = 6;
 | 
			
		||||
	private static final int MIN_LEVEL = 6;
 | 
			
		||||
	
 | 
			
		||||
	public Q00260_OrcHunting()
 | 
			
		||||
	{
 | 
			
		||||
@@ -117,7 +117,7 @@ public class Q00260_OrcHunting extends Quest
 | 
			
		||||
		{
 | 
			
		||||
			case State.CREATED:
 | 
			
		||||
			{
 | 
			
		||||
				htmltext = (player.getRace() == Race.ELF) ? (player.getLevel() >= MIN_LVL) ? "30221-03.htm" : "30221-02.html" : "30221-01.html";
 | 
			
		||||
				htmltext = (player.getRace() == Race.ELF) ? (player.getLevel() >= MIN_LEVEL) ? "30221-03.htm" : "30221-02.html" : "30221-01.html";
 | 
			
		||||
				break;
 | 
			
		||||
			}
 | 
			
		||||
			case State.STARTED:
 | 
			
		||||
 
 | 
			
		||||
@@ -45,7 +45,7 @@ public class Q00261_CollectorsDream extends Quest
 | 
			
		||||
	// Item
 | 
			
		||||
	private static final int SPIDER_LEG = 1087;
 | 
			
		||||
	// Misc
 | 
			
		||||
	private static final int MIN_LVL = 15;
 | 
			
		||||
	private static final int MIN_LEVEL = 15;
 | 
			
		||||
	private static final int MAX_LEG_COUNT = 8;
 | 
			
		||||
	// Message
 | 
			
		||||
	private static final ExShowScreenMessage MESSAGE = new ExShowScreenMessage(NpcStringId.LAST_DUTY_COMPLETE_N_GO_FIND_THE_NEWBIE_GUIDE, 2, 5000);
 | 
			
		||||
@@ -91,7 +91,7 @@ public class Q00261_CollectorsDream extends Quest
 | 
			
		||||
		{
 | 
			
		||||
			case State.CREATED:
 | 
			
		||||
			{
 | 
			
		||||
				htmltext = (player.getLevel() >= MIN_LVL) ? "30222-02.htm" : "30222-01.htm";
 | 
			
		||||
				htmltext = (player.getLevel() >= MIN_LEVEL) ? "30222-02.htm" : "30222-01.htm";
 | 
			
		||||
				break;
 | 
			
		||||
			}
 | 
			
		||||
			case State.STARTED:
 | 
			
		||||
 
 | 
			
		||||
@@ -44,7 +44,7 @@ public class Q00264_KeenClaws extends Quest
 | 
			
		||||
	// Rewards
 | 
			
		||||
	private static final Map<Integer, List<ItemHolder>> REWARDS = new HashMap<>();
 | 
			
		||||
	// Misc
 | 
			
		||||
	private static final int MIN_LVL = 3;
 | 
			
		||||
	private static final int MIN_LEVEL = 3;
 | 
			
		||||
	private static final int WOLF_CLAW_COUNT = 50;
 | 
			
		||||
	static
 | 
			
		||||
	{
 | 
			
		||||
@@ -112,7 +112,7 @@ public class Q00264_KeenClaws extends Quest
 | 
			
		||||
		{
 | 
			
		||||
			case State.CREATED:
 | 
			
		||||
			{
 | 
			
		||||
				htmltext = (player.getLevel() >= MIN_LVL) ? "30136-02.htm" : "30136-01.htm";
 | 
			
		||||
				htmltext = (player.getLevel() >= MIN_LEVEL) ? "30136-02.htm" : "30136-01.htm";
 | 
			
		||||
				break;
 | 
			
		||||
			}
 | 
			
		||||
			case State.STARTED:
 | 
			
		||||
 
 | 
			
		||||
@@ -40,7 +40,7 @@ public class Q00265_BondsOfSlavery extends Quest
 | 
			
		||||
	// NPC
 | 
			
		||||
	private static final int KRISTIN = 30357;
 | 
			
		||||
	// Misc
 | 
			
		||||
	private static final int MIN_LVL = 6;
 | 
			
		||||
	private static final int MIN_LEVEL = 6;
 | 
			
		||||
	// Monsters
 | 
			
		||||
	private static final Map<Integer, Integer> MONSTERS = new HashMap<>();
 | 
			
		||||
	static
 | 
			
		||||
@@ -112,7 +112,7 @@ public class Q00265_BondsOfSlavery extends Quest
 | 
			
		||||
		{
 | 
			
		||||
			case State.CREATED:
 | 
			
		||||
			{
 | 
			
		||||
				htmltext = (player.getRace() == Race.DARK_ELF) ? (player.getLevel() >= MIN_LVL) ? "30357-03.htm" : "30357-02.html" : "30357-01.html";
 | 
			
		||||
				htmltext = (player.getRace() == Race.DARK_ELF) ? (player.getLevel() >= MIN_LEVEL) ? "30357-03.htm" : "30357-02.html" : "30357-01.html";
 | 
			
		||||
				break;
 | 
			
		||||
			}
 | 
			
		||||
			case State.STARTED:
 | 
			
		||||
 
 | 
			
		||||
@@ -59,7 +59,7 @@ public class Q00266_PleasOfPixies extends Quest
 | 
			
		||||
		REWARDS.put(3, Arrays.asList(new ItemHolder(1336, 1), new ItemHolder(1060, 1))); // Glass Shard, Lesser Healing Potion
 | 
			
		||||
	}
 | 
			
		||||
	// Misc
 | 
			
		||||
	private static final int MIN_LVL = 3;
 | 
			
		||||
	private static final int MIN_LEVEL = 3;
 | 
			
		||||
	
 | 
			
		||||
	public Q00266_PleasOfPixies()
 | 
			
		||||
	{
 | 
			
		||||
@@ -117,7 +117,7 @@ public class Q00266_PleasOfPixies extends Quest
 | 
			
		||||
				{
 | 
			
		||||
					htmltext = "31852-01.htm";
 | 
			
		||||
				}
 | 
			
		||||
				else if (player.getLevel() < MIN_LVL)
 | 
			
		||||
				else if (player.getLevel() < MIN_LEVEL)
 | 
			
		||||
				{
 | 
			
		||||
					htmltext = "31852-02.htm";
 | 
			
		||||
				}
 | 
			
		||||
 
 | 
			
		||||
@@ -39,7 +39,7 @@ public class Q00267_WrathOfVerdure extends Quest
 | 
			
		||||
	// Reward
 | 
			
		||||
	private static final int SILVERY_LEAF = 1340;
 | 
			
		||||
	// Misc
 | 
			
		||||
	private static final int MIN_LVL = 4;
 | 
			
		||||
	private static final int MIN_LEVEL = 4;
 | 
			
		||||
	
 | 
			
		||||
	public Q00267_WrathOfVerdure()
 | 
			
		||||
	{
 | 
			
		||||
@@ -102,7 +102,7 @@ public class Q00267_WrathOfVerdure extends Quest
 | 
			
		||||
		{
 | 
			
		||||
			case State.CREATED:
 | 
			
		||||
			{
 | 
			
		||||
				htmltext = (player.getRace() == Race.ELF) ? (player.getLevel() >= MIN_LVL) ? "31853-03.htm" : "31853-02.htm" : "31853-01.htm";
 | 
			
		||||
				htmltext = (player.getRace() == Race.ELF) ? (player.getLevel() >= MIN_LEVEL) ? "31853-03.htm" : "31853-02.htm" : "31853-01.htm";
 | 
			
		||||
				break;
 | 
			
		||||
			}
 | 
			
		||||
			case State.STARTED:
 | 
			
		||||
 
 | 
			
		||||
@@ -41,7 +41,7 @@ public class Q00268_TracesOfEvil extends Quest
 | 
			
		||||
		20478, // Kasha Blade Spider
 | 
			
		||||
	};
 | 
			
		||||
	// Misc
 | 
			
		||||
	private static final int MIN_LVL = 15;
 | 
			
		||||
	private static final int MIN_LEVEL = 15;
 | 
			
		||||
	
 | 
			
		||||
	public Q00268_TracesOfEvil()
 | 
			
		||||
	{
 | 
			
		||||
@@ -92,7 +92,7 @@ public class Q00268_TracesOfEvil extends Quest
 | 
			
		||||
		{
 | 
			
		||||
			case State.CREATED:
 | 
			
		||||
			{
 | 
			
		||||
				htmltext = (player.getLevel() >= MIN_LVL) ? "30559-02.htm" : "30559-01.htm";
 | 
			
		||||
				htmltext = (player.getLevel() >= MIN_LEVEL) ? "30559-02.htm" : "30559-01.htm";
 | 
			
		||||
				break;
 | 
			
		||||
			}
 | 
			
		||||
			case State.STARTED:
 | 
			
		||||
 
 | 
			
		||||
@@ -48,7 +48,7 @@ public class Q00269_InventionAmbition extends Quest
 | 
			
		||||
		MONSTERS.put(21131, 0.78); // Enchanted Spine Golem
 | 
			
		||||
	}
 | 
			
		||||
	// Misc
 | 
			
		||||
	private static final int MIN_LVL = 18;
 | 
			
		||||
	private static final int MIN_LEVEL = 18;
 | 
			
		||||
	
 | 
			
		||||
	public Q00269_InventionAmbition()
 | 
			
		||||
	{
 | 
			
		||||
@@ -73,7 +73,7 @@ public class Q00269_InventionAmbition extends Quest
 | 
			
		||||
		{
 | 
			
		||||
			case "32486-03.htm":
 | 
			
		||||
			{
 | 
			
		||||
				if (player.getLevel() >= MIN_LVL)
 | 
			
		||||
				if (player.getLevel() >= MIN_LEVEL)
 | 
			
		||||
				{
 | 
			
		||||
					htmltext = event;
 | 
			
		||||
				}
 | 
			
		||||
@@ -81,7 +81,7 @@ public class Q00269_InventionAmbition extends Quest
 | 
			
		||||
			}
 | 
			
		||||
			case "32486-04.htm":
 | 
			
		||||
			{
 | 
			
		||||
				if (player.getLevel() >= MIN_LVL)
 | 
			
		||||
				if (player.getLevel() >= MIN_LEVEL)
 | 
			
		||||
				{
 | 
			
		||||
					qs.startQuest();
 | 
			
		||||
					htmltext = event;
 | 
			
		||||
@@ -121,7 +121,7 @@ public class Q00269_InventionAmbition extends Quest
 | 
			
		||||
		String htmltext = getNoQuestMsg(player);
 | 
			
		||||
		if (qs.isCreated())
 | 
			
		||||
		{
 | 
			
		||||
			htmltext = (player.getLevel() >= MIN_LVL) ? "32486-01.htm" : "32486-02.html";
 | 
			
		||||
			htmltext = (player.getLevel() >= MIN_LEVEL) ? "32486-01.htm" : "32486-02.html";
 | 
			
		||||
		}
 | 
			
		||||
		else if (qs.isStarted())
 | 
			
		||||
		{
 | 
			
		||||
 
 | 
			
		||||
@@ -41,7 +41,7 @@ public class Q00271_ProofOfValor extends Quest
 | 
			
		||||
	private static final int NECKLACE_OF_COURAGE = 1506;
 | 
			
		||||
	private static final int NECKLACE_OF_VALOR = 1507;
 | 
			
		||||
	// Misc
 | 
			
		||||
	private static final int MIN_LVL = 4;
 | 
			
		||||
	private static final int MIN_LEVEL = 4;
 | 
			
		||||
	
 | 
			
		||||
	public Q00271_ProofOfValor()
 | 
			
		||||
	{
 | 
			
		||||
@@ -94,7 +94,7 @@ public class Q00271_ProofOfValor extends Quest
 | 
			
		||||
		{
 | 
			
		||||
			case State.CREATED:
 | 
			
		||||
			{
 | 
			
		||||
				htmltext = (player.getRace() == Race.ORC) ? (player.getLevel() >= MIN_LVL) ? (hasAtLeastOneQuestItem(player, NECKLACE_OF_VALOR, NECKLACE_OF_COURAGE)) ? "30577-07.htm" : "30577-03.htm" : "30577-02.htm" : "30577-01.htm";
 | 
			
		||||
				htmltext = (player.getRace() == Race.ORC) ? (player.getLevel() >= MIN_LEVEL) ? (hasAtLeastOneQuestItem(player, NECKLACE_OF_VALOR, NECKLACE_OF_COURAGE)) ? "30577-07.htm" : "30577-03.htm" : "30577-02.htm" : "30577-01.htm";
 | 
			
		||||
				break;
 | 
			
		||||
			}
 | 
			
		||||
			case State.STARTED:
 | 
			
		||||
 
 | 
			
		||||
@@ -41,7 +41,7 @@ public class Q00272_WrathOfAncestors extends Quest
 | 
			
		||||
		20320, // Goblin Tomb Raider Leader
 | 
			
		||||
	};
 | 
			
		||||
	// Misc
 | 
			
		||||
	private static final int MIN_LVL = 5;
 | 
			
		||||
	private static final int MIN_LEVEL = 5;
 | 
			
		||||
	
 | 
			
		||||
	public Q00272_WrathOfAncestors()
 | 
			
		||||
	{
 | 
			
		||||
@@ -92,7 +92,7 @@ public class Q00272_WrathOfAncestors extends Quest
 | 
			
		||||
		{
 | 
			
		||||
			case State.CREATED:
 | 
			
		||||
			{
 | 
			
		||||
				htmltext = (player.getRace() == Race.ORC) ? (player.getLevel() >= MIN_LVL) ? "30572-03.htm" : "30572-02.htm" : "30572-01.htm";
 | 
			
		||||
				htmltext = (player.getRace() == Race.ORC) ? (player.getLevel() >= MIN_LEVEL) ? "30572-03.htm" : "30572-02.htm" : "30572-01.htm";
 | 
			
		||||
				break;
 | 
			
		||||
			}
 | 
			
		||||
			case State.STARTED:
 | 
			
		||||
 
 | 
			
		||||
@@ -49,7 +49,7 @@ public class Q00273_InvadersOfTheHolyLand extends Quest
 | 
			
		||||
		MONSTERS.put(20313, 77); // Rakeclaw Imp Chieftain
 | 
			
		||||
	}
 | 
			
		||||
	// Misc
 | 
			
		||||
	private static final int MIN_LVL = 6;
 | 
			
		||||
	private static final int MIN_LEVEL = 6;
 | 
			
		||||
	
 | 
			
		||||
	public Q00273_InvadersOfTheHolyLand()
 | 
			
		||||
	{
 | 
			
		||||
@@ -119,7 +119,7 @@ public class Q00273_InvadersOfTheHolyLand extends Quest
 | 
			
		||||
		{
 | 
			
		||||
			case State.CREATED:
 | 
			
		||||
			{
 | 
			
		||||
				htmltext = (player.getRace() == Race.ORC) ? (player.getLevel() >= MIN_LVL) ? "30566-03.htm" : "30566-02.htm" : "30566-01.htm";
 | 
			
		||||
				htmltext = (player.getRace() == Race.ORC) ? (player.getLevel() >= MIN_LEVEL) ? "30566-03.htm" : "30566-02.htm" : "30566-01.htm";
 | 
			
		||||
				break;
 | 
			
		||||
			}
 | 
			
		||||
			case State.STARTED:
 | 
			
		||||
 
 | 
			
		||||
@@ -44,7 +44,7 @@ public class Q00274_SkirmishWithTheWerewolves extends Quest
 | 
			
		||||
	private static final int WEREWOLF_HEAD = 1477;
 | 
			
		||||
	private static final int WEREWOLF_TOTEM = 1501;
 | 
			
		||||
	// Misc
 | 
			
		||||
	private static final int MIN_LVL = 9;
 | 
			
		||||
	private static final int MIN_LEVEL = 9;
 | 
			
		||||
	
 | 
			
		||||
	public Q00274_SkirmishWithTheWerewolves()
 | 
			
		||||
	{
 | 
			
		||||
@@ -101,7 +101,7 @@ public class Q00274_SkirmishWithTheWerewolves extends Quest
 | 
			
		||||
			{
 | 
			
		||||
				if (hasAtLeastOneQuestItem(player, NECKLACE_OF_VALOR, NECKLACE_OF_COURAGE))
 | 
			
		||||
				{
 | 
			
		||||
					htmltext = (player.getRace() == Race.ORC) ? (player.getLevel() >= MIN_LVL) ? "30569-03.htm" : "30569-02.html" : "30569-01.html";
 | 
			
		||||
					htmltext = (player.getRace() == Race.ORC) ? (player.getLevel() >= MIN_LEVEL) ? "30569-03.htm" : "30569-02.html" : "30569-01.html";
 | 
			
		||||
				}
 | 
			
		||||
				else
 | 
			
		||||
				{
 | 
			
		||||
 
 | 
			
		||||
@@ -43,7 +43,7 @@ public class Q00275_DarkWingedSpies extends Quest
 | 
			
		||||
	private static final int DARKWING_BAT = 20316;
 | 
			
		||||
	private static final int VARANGKAS_TRACKER = 27043;
 | 
			
		||||
	// Misc
 | 
			
		||||
	private static final int MIN_LVL = 11;
 | 
			
		||||
	private static final int MIN_LEVEL = 11;
 | 
			
		||||
	private static final int FANG_PRICE = 60;
 | 
			
		||||
	private static final int MAX_BAT_FANG_COUNT = 70;
 | 
			
		||||
	
 | 
			
		||||
@@ -131,7 +131,7 @@ public class Q00275_DarkWingedSpies extends Quest
 | 
			
		||||
		{
 | 
			
		||||
			case State.CREATED:
 | 
			
		||||
			{
 | 
			
		||||
				htmltext = (talker.getRace() == Race.ORC) ? (talker.getLevel() >= MIN_LVL) ? "30567-02.htm" : "30567-01.htm" : "30567-00.htm";
 | 
			
		||||
				htmltext = (talker.getRace() == Race.ORC) ? (talker.getLevel() >= MIN_LEVEL) ? "30567-02.htm" : "30567-01.htm" : "30567-00.htm";
 | 
			
		||||
				break;
 | 
			
		||||
			}
 | 
			
		||||
			case State.STARTED:
 | 
			
		||||
 
 | 
			
		||||
@@ -53,7 +53,7 @@ public class Q00276_TotemOfTheHestui extends Quest
 | 
			
		||||
	};
 | 
			
		||||
	// Misc
 | 
			
		||||
	private static final List<ItemHolder> SPAWN_CHANCES = new ArrayList<>();
 | 
			
		||||
	private static final int MIN_LVL = 15;
 | 
			
		||||
	private static final int MIN_LEVEL = 15;
 | 
			
		||||
	static
 | 
			
		||||
	{
 | 
			
		||||
		SPAWN_CHANCES.add(new ItemHolder(79, 100));
 | 
			
		||||
@@ -135,7 +135,7 @@ public class Q00276_TotemOfTheHestui extends Quest
 | 
			
		||||
		{
 | 
			
		||||
			case State.CREATED:
 | 
			
		||||
			{
 | 
			
		||||
				htmltext = (player.getRace() == Race.ORC) ? (player.getLevel() >= MIN_LVL) ? "30571-02.htm" : "30571-01.htm" : "30571-00.htm";
 | 
			
		||||
				htmltext = (player.getRace() == Race.ORC) ? (player.getLevel() >= MIN_LEVEL) ? "30571-02.htm" : "30571-01.htm" : "30571-00.htm";
 | 
			
		||||
				break;
 | 
			
		||||
			}
 | 
			
		||||
			case State.STARTED:
 | 
			
		||||
 
 | 
			
		||||
@@ -67,7 +67,7 @@ public class Q00280_TheFoodChain extends Quest
 | 
			
		||||
		116,
 | 
			
		||||
	};
 | 
			
		||||
	// Misc
 | 
			
		||||
	private static final int MIN_LVL = 3;
 | 
			
		||||
	private static final int MIN_LEVEL = 3;
 | 
			
		||||
	private static final int TEETH_COUNT = 25;
 | 
			
		||||
	
 | 
			
		||||
	public Q00280_TheFoodChain()
 | 
			
		||||
@@ -181,7 +181,7 @@ public class Q00280_TheFoodChain extends Quest
 | 
			
		||||
		{
 | 
			
		||||
			case State.CREATED:
 | 
			
		||||
			{
 | 
			
		||||
				htmltext = (talker.getLevel() >= MIN_LVL) ? "32175-01.htm" : "32175-02.htm";
 | 
			
		||||
				htmltext = (talker.getLevel() >= MIN_LEVEL) ? "32175-01.htm" : "32175-02.htm";
 | 
			
		||||
				break;
 | 
			
		||||
			}
 | 
			
		||||
			case State.STARTED:
 | 
			
		||||
 
 | 
			
		||||
@@ -43,7 +43,7 @@ public class Q00281_HeadForTheHills extends Quest
 | 
			
		||||
	// Message
 | 
			
		||||
	private static final ExShowScreenMessage MESSAGE = new ExShowScreenMessage(NpcStringId.ACQUISITION_OF_SOULSHOT_FOR_BEGINNERS_COMPLETE_N_GO_FIND_THE_NEWBIE_GUIDE, 2, 5000);
 | 
			
		||||
	// Misc
 | 
			
		||||
	private static final int MIN_LVL = 6;
 | 
			
		||||
	private static final int MIN_LEVEL = 6;
 | 
			
		||||
	// Monsters
 | 
			
		||||
	private static final Map<Integer, Integer> MONSTERS = new HashMap<>();
 | 
			
		||||
	// Rewards
 | 
			
		||||
@@ -173,7 +173,7 @@ public class Q00281_HeadForTheHills extends Quest
 | 
			
		||||
		{
 | 
			
		||||
			case State.CREATED:
 | 
			
		||||
			{
 | 
			
		||||
				htmltext = (player.getLevel() >= MIN_LVL) ? "32173-01.htm" : "32173-02.htm";
 | 
			
		||||
				htmltext = (player.getLevel() >= MIN_LEVEL) ? "32173-01.htm" : "32173-02.htm";
 | 
			
		||||
				break;
 | 
			
		||||
			}
 | 
			
		||||
			case State.STARTED:
 | 
			
		||||
 
 | 
			
		||||
@@ -39,7 +39,7 @@ public class Q00283_TheFewTheProudTheBrave extends Quest
 | 
			
		||||
	// Misc
 | 
			
		||||
	private static final int CLAW_PRICE = 45;
 | 
			
		||||
	private static final int BONUS = 2187;
 | 
			
		||||
	private static final int MIN_LVL = 15;
 | 
			
		||||
	private static final int MIN_LEVEL = 15;
 | 
			
		||||
	
 | 
			
		||||
	public Q00283_TheFewTheProudTheBrave()
 | 
			
		||||
	{
 | 
			
		||||
@@ -120,7 +120,7 @@ public class Q00283_TheFewTheProudTheBrave extends Quest
 | 
			
		||||
		{
 | 
			
		||||
			case State.CREATED:
 | 
			
		||||
			{
 | 
			
		||||
				htmltext = (talker.getLevel() >= MIN_LVL) ? "32133-01.htm" : "32133-02.htm";
 | 
			
		||||
				htmltext = (talker.getLevel() >= MIN_LEVEL) ? "32133-01.htm" : "32133-02.htm";
 | 
			
		||||
				break;
 | 
			
		||||
			}
 | 
			
		||||
			case State.STARTED:
 | 
			
		||||
 
 | 
			
		||||
@@ -46,7 +46,7 @@ public class Q00284_MuertosFeather extends Quest
 | 
			
		||||
		MOB_DROP_CHANCE.put(22246, 0.633); // Muertos Commander
 | 
			
		||||
	}
 | 
			
		||||
	// Misc
 | 
			
		||||
	private static final int MIN_LVL = 11;
 | 
			
		||||
	private static final int MIN_LEVEL = 11;
 | 
			
		||||
	
 | 
			
		||||
	public Q00284_MuertosFeather()
 | 
			
		||||
	{
 | 
			
		||||
@@ -121,7 +121,7 @@ public class Q00284_MuertosFeather extends Quest
 | 
			
		||||
		String html = getNoQuestMsg(player);
 | 
			
		||||
		if (qs.isCreated())
 | 
			
		||||
		{
 | 
			
		||||
			html = ((player.getLevel() >= MIN_LVL) ? "32166-01.htm" : "32166-02.htm");
 | 
			
		||||
			html = ((player.getLevel() >= MIN_LEVEL) ? "32166-01.htm" : "32166-02.htm");
 | 
			
		||||
		}
 | 
			
		||||
		else if (qs.isStarted())
 | 
			
		||||
		{
 | 
			
		||||
 
 | 
			
		||||
@@ -46,7 +46,7 @@ public class Q00286_FabulousFeathers extends Quest
 | 
			
		||||
		MOB_DROP_CHANCES.put(22256, 0.952); // Shady Muertos Wizard
 | 
			
		||||
	}
 | 
			
		||||
	// Misc
 | 
			
		||||
	private static final int MIN_LVL = 17;
 | 
			
		||||
	private static final int MIN_LEVEL = 17;
 | 
			
		||||
	
 | 
			
		||||
	public Q00286_FabulousFeathers()
 | 
			
		||||
	{
 | 
			
		||||
@@ -111,7 +111,7 @@ public class Q00286_FabulousFeathers extends Quest
 | 
			
		||||
		String html = getNoQuestMsg(player);
 | 
			
		||||
		if (qs.isCreated())
 | 
			
		||||
		{
 | 
			
		||||
			html = ((player.getLevel() >= MIN_LVL) ? "32164-01.htm" : "32164-02.htm");
 | 
			
		||||
			html = ((player.getLevel() >= MIN_LEVEL) ? "32164-01.htm" : "32164-02.htm");
 | 
			
		||||
		}
 | 
			
		||||
		else if (qs.isStarted())
 | 
			
		||||
		{
 | 
			
		||||
 
 | 
			
		||||
@@ -43,7 +43,7 @@ public class Q00291_RevengeOfTheRedbonnet extends Quest
 | 
			
		||||
	private static final int GRANDMAS_NECKLACE = 1504;
 | 
			
		||||
	private static final int GRANDMAS_HAIRPIN = 1505;
 | 
			
		||||
	// Misc
 | 
			
		||||
	private static final int MIN_LVL = 4;
 | 
			
		||||
	private static final int MIN_LEVEL = 4;
 | 
			
		||||
	
 | 
			
		||||
	public Q00291_RevengeOfTheRedbonnet()
 | 
			
		||||
	{
 | 
			
		||||
@@ -84,7 +84,7 @@ public class Q00291_RevengeOfTheRedbonnet extends Quest
 | 
			
		||||
		String html = getNoQuestMsg(player);
 | 
			
		||||
		if (qs.isCreated())
 | 
			
		||||
		{
 | 
			
		||||
			html = ((player.getLevel() >= MIN_LVL) ? "30553-02.htm" : "30553-01.htm");
 | 
			
		||||
			html = ((player.getLevel() >= MIN_LEVEL) ? "30553-02.htm" : "30553-01.htm");
 | 
			
		||||
		}
 | 
			
		||||
		else if (qs.isStarted())
 | 
			
		||||
		{
 | 
			
		||||
 
 | 
			
		||||
@@ -55,7 +55,7 @@ public class Q00292_BrigandsSweep extends Quest
 | 
			
		||||
		MOB_ITEM_DROP.put(20528, GOBLIN_LORD_PENDANT); // Goblin Lord
 | 
			
		||||
	}
 | 
			
		||||
	// Misc
 | 
			
		||||
	private static final int MIN_LVL = 5;
 | 
			
		||||
	private static final int MIN_LEVEL = 5;
 | 
			
		||||
	
 | 
			
		||||
	public Q00292_BrigandsSweep()
 | 
			
		||||
	{
 | 
			
		||||
@@ -154,7 +154,7 @@ public class Q00292_BrigandsSweep extends Quest
 | 
			
		||||
				{
 | 
			
		||||
					case State.CREATED:
 | 
			
		||||
					{
 | 
			
		||||
						html = (talker.getRace() == Race.DWARF) ? (talker.getLevel() >= MIN_LVL) ? "30532-02.htm" : "30532-01.htm" : "30532-00.htm";
 | 
			
		||||
						html = (talker.getRace() == Race.DWARF) ? (talker.getLevel() >= MIN_LEVEL) ? "30532-02.htm" : "30532-01.htm" : "30532-00.htm";
 | 
			
		||||
						break;
 | 
			
		||||
					}
 | 
			
		||||
					case State.STARTED:
 | 
			
		||||
 
 | 
			
		||||
@@ -47,7 +47,7 @@ public class Q00293_TheHiddenVeins extends Quest
 | 
			
		||||
		20448,
 | 
			
		||||
	};
 | 
			
		||||
	// Misc
 | 
			
		||||
	private static final int MIN_LVL = 6;
 | 
			
		||||
	private static final int MIN_LEVEL = 6;
 | 
			
		||||
	private static final int REQUIRED_TORN_MAP_FRAGMENT = 4;
 | 
			
		||||
	
 | 
			
		||||
	public Q00293_TheHiddenVeins()
 | 
			
		||||
@@ -139,7 +139,7 @@ public class Q00293_TheHiddenVeins extends Quest
 | 
			
		||||
				{
 | 
			
		||||
					case State.CREATED:
 | 
			
		||||
					{
 | 
			
		||||
						htmltext = (player.getRace() == Race.DWARF) ? (player.getLevel() >= MIN_LVL) ? "30535-03.htm" : "30535-02.htm" : "30535-01.htm";
 | 
			
		||||
						htmltext = (player.getRace() == Race.DWARF) ? (player.getLevel() >= MIN_LEVEL) ? "30535-03.htm" : "30535-02.htm" : "30535-01.htm";
 | 
			
		||||
						break;
 | 
			
		||||
					}
 | 
			
		||||
					case State.STARTED:
 | 
			
		||||
 
 | 
			
		||||
@@ -49,7 +49,7 @@ public class Q00294_CovertBusiness extends Quest
 | 
			
		||||
	// Reward
 | 
			
		||||
	private static final int RING_OF_RACCOON = 1508;
 | 
			
		||||
	// Misc
 | 
			
		||||
	private static final int MIN_LVL = 10;
 | 
			
		||||
	private static final int MIN_LEVEL = 10;
 | 
			
		||||
	
 | 
			
		||||
	public Q00294_CovertBusiness()
 | 
			
		||||
	{
 | 
			
		||||
@@ -103,7 +103,7 @@ public class Q00294_CovertBusiness extends Quest
 | 
			
		||||
		String html = getNoQuestMsg(talker);
 | 
			
		||||
		if (qs.isCreated())
 | 
			
		||||
		{
 | 
			
		||||
			html = (talker.getRace() == Race.DWARF) ? (talker.getLevel() >= MIN_LVL) ? "30534-02.htm" : "30534-01.htm" : "30534-00.htm";
 | 
			
		||||
			html = (talker.getRace() == Race.DWARF) ? (talker.getLevel() >= MIN_LEVEL) ? "30534-02.htm" : "30534-01.htm" : "30534-00.htm";
 | 
			
		||||
		}
 | 
			
		||||
		else if (qs.isStarted())
 | 
			
		||||
		{
 | 
			
		||||
 
 | 
			
		||||
@@ -38,7 +38,7 @@ public class Q00295_DreamingOfTheSkies extends Quest
 | 
			
		||||
	// Reward
 | 
			
		||||
	private static final int RING_OF_FIREFLY = 1509;
 | 
			
		||||
	// Misc
 | 
			
		||||
	private static final int MIN_LVL = 11;
 | 
			
		||||
	private static final int MIN_LEVEL = 11;
 | 
			
		||||
	
 | 
			
		||||
	public Q00295_DreamingOfTheSkies()
 | 
			
		||||
	{
 | 
			
		||||
@@ -79,7 +79,7 @@ public class Q00295_DreamingOfTheSkies extends Quest
 | 
			
		||||
		String html = getNoQuestMsg(talker);
 | 
			
		||||
		if (qs.isCreated())
 | 
			
		||||
		{
 | 
			
		||||
			html = (talker.getLevel() >= MIN_LVL) ? "30536-02.htm" : "30536-01.htm";
 | 
			
		||||
			html = (talker.getLevel() >= MIN_LEVEL) ? "30536-02.htm" : "30536-01.htm";
 | 
			
		||||
		}
 | 
			
		||||
		else if (qs.isStarted())
 | 
			
		||||
		{
 | 
			
		||||
 
 | 
			
		||||
@@ -45,7 +45,7 @@ public class Q00296_TarantulasSpiderSilk extends Quest
 | 
			
		||||
		20508,
 | 
			
		||||
	};
 | 
			
		||||
	// Misc
 | 
			
		||||
	private static final int MIN_LVL = 15;
 | 
			
		||||
	private static final int MIN_LEVEL = 15;
 | 
			
		||||
	
 | 
			
		||||
	public Q00296_TarantulasSpiderSilk()
 | 
			
		||||
	{
 | 
			
		||||
@@ -141,7 +141,7 @@ public class Q00296_TarantulasSpiderSilk extends Quest
 | 
			
		||||
		String html = getNoQuestMsg(talker);
 | 
			
		||||
		if (qs.isCreated() && (npc.getId() == TRADER_MION))
 | 
			
		||||
		{
 | 
			
		||||
			html = (talker.getLevel() >= MIN_LVL ? "30519-02.htm" : "30519-01.htm");
 | 
			
		||||
			html = (talker.getLevel() >= MIN_LEVEL ? "30519-02.htm" : "30519-01.htm");
 | 
			
		||||
		}
 | 
			
		||||
		else if (qs.isStarted())
 | 
			
		||||
		{
 | 
			
		||||
 
 | 
			
		||||
@@ -49,7 +49,7 @@ public class Q00298_LizardmensConspiracy extends Quest
 | 
			
		||||
		MONSTERS.put(20927, new ItemChanceHolder(SHINING_RED_GEM, 0.64, 1)); // King Araneid
 | 
			
		||||
	}
 | 
			
		||||
	// Misc
 | 
			
		||||
	private static final int MIN_LVL = 25;
 | 
			
		||||
	private static final int MIN_LEVEL = 25;
 | 
			
		||||
	
 | 
			
		||||
	public Q00298_LizardmensConspiracy()
 | 
			
		||||
	{
 | 
			
		||||
@@ -134,7 +134,7 @@ public class Q00298_LizardmensConspiracy extends Quest
 | 
			
		||||
		String htmltext = getNoQuestMsg(talker);
 | 
			
		||||
		if (qs.isCreated() && (npc.getId() == GUARD_PRAGA))
 | 
			
		||||
		{
 | 
			
		||||
			htmltext = (talker.getLevel() >= MIN_LVL) ? "30333-01.htm" : "30333-02.htm";
 | 
			
		||||
			htmltext = (talker.getLevel() >= MIN_LEVEL) ? "30333-01.htm" : "30333-02.htm";
 | 
			
		||||
		}
 | 
			
		||||
		else if (qs.isStarted())
 | 
			
		||||
		{
 | 
			
		||||
 
 | 
			
		||||
@@ -47,7 +47,7 @@ public class Q00299_GatherIngredientsForPie extends Quest
 | 
			
		||||
	// Rewards
 | 
			
		||||
	private static final List<QuestItemHolder> REWARDS = new ArrayList<>(5);
 | 
			
		||||
	// Misc
 | 
			
		||||
	private static final int MIN_LVL = 34;
 | 
			
		||||
	private static final int MIN_LEVEL = 34;
 | 
			
		||||
	static
 | 
			
		||||
	{
 | 
			
		||||
		MONSTERS_CHANCES.put(20934, 700); // Wasp Worker
 | 
			
		||||
@@ -221,7 +221,7 @@ public class Q00299_GatherIngredientsForPie extends Quest
 | 
			
		||||
				{
 | 
			
		||||
					case State.CREATED:
 | 
			
		||||
					{
 | 
			
		||||
						html = (talker.getLevel() >= MIN_LVL) ? "30620-01.htm" : "30620-02.htm";
 | 
			
		||||
						html = (talker.getLevel() >= MIN_LEVEL) ? "30620-01.htm" : "30620-02.htm";
 | 
			
		||||
						break;
 | 
			
		||||
					}
 | 
			
		||||
					case State.STARTED:
 | 
			
		||||
 
 | 
			
		||||
@@ -45,7 +45,7 @@ public class Q00324_SweetestVenom extends Quest
 | 
			
		||||
	// Items
 | 
			
		||||
	private static final int VENOM_SAC = 1077;
 | 
			
		||||
	// Misc
 | 
			
		||||
	private static final int MIN_LVL = 18;
 | 
			
		||||
	private static final int MIN_LEVEL = 18;
 | 
			
		||||
	private static final int REQUIRED_COUNT = 10;
 | 
			
		||||
	private static final int ADENA_COUNT = 5810;
 | 
			
		||||
	
 | 
			
		||||
@@ -80,7 +80,7 @@ public class Q00324_SweetestVenom extends Quest
 | 
			
		||||
		{
 | 
			
		||||
			case State.CREATED:
 | 
			
		||||
			{
 | 
			
		||||
				htmltext = player.getLevel() < MIN_LVL ? "30351-02.html" : "30351-03.htm";
 | 
			
		||||
				htmltext = player.getLevel() < MIN_LEVEL ? "30351-02.html" : "30351-03.htm";
 | 
			
		||||
				break;
 | 
			
		||||
			}
 | 
			
		||||
			case State.STARTED:
 | 
			
		||||
 
 | 
			
		||||
@@ -56,7 +56,7 @@ public class Q00326_VanquishRemnants extends Quest
 | 
			
		||||
	}
 | 
			
		||||
	//@formatter:on
 | 
			
		||||
	// Misc
 | 
			
		||||
	private static final int MIN_LVL = 21;
 | 
			
		||||
	private static final int MIN_LEVEL = 21;
 | 
			
		||||
	
 | 
			
		||||
	public Q00326_VanquishRemnants()
 | 
			
		||||
	{
 | 
			
		||||
@@ -119,7 +119,7 @@ public class Q00326_VanquishRemnants extends Quest
 | 
			
		||||
		{
 | 
			
		||||
			case State.CREATED:
 | 
			
		||||
			{
 | 
			
		||||
				htmltext = (player.getLevel() >= MIN_LVL) ? "30435-02.htm" : "30435-01.htm";
 | 
			
		||||
				htmltext = (player.getLevel() >= MIN_LEVEL) ? "30435-02.htm" : "30435-01.htm";
 | 
			
		||||
				break;
 | 
			
		||||
			}
 | 
			
		||||
			case State.STARTED:
 | 
			
		||||
 
 | 
			
		||||
@@ -68,7 +68,7 @@ public class Q00327_RecoverTheFarmland extends Quest
 | 
			
		||||
	private static final int SPIRITSHOT_D = 2510;
 | 
			
		||||
	
 | 
			
		||||
	// Misc
 | 
			
		||||
	private static final int MIN_LVL = 25;
 | 
			
		||||
	private static final int MIN_LEVEL = 25;
 | 
			
		||||
	private static final Map<String, ItemHolder> FRAGMENTS_REWARD_DATA = new HashMap<>(4);
 | 
			
		||||
	private static final Map<Integer, Integer> FRAGMENTS_DROP_PROB = new HashMap<>(7);
 | 
			
		||||
	private static final ItemHolder[] FULL_REWARD_DATA =
 | 
			
		||||
@@ -376,7 +376,7 @@ public class Q00327_RecoverTheFarmland extends Quest
 | 
			
		||||
			{
 | 
			
		||||
				if (qs.isCreated())
 | 
			
		||||
				{
 | 
			
		||||
					html = ((player.getLevel() >= MIN_LVL) ? "30382-02.htm" : "30382-01.htm");
 | 
			
		||||
					html = ((player.getLevel() >= MIN_LEVEL) ? "30382-02.htm" : "30382-01.htm");
 | 
			
		||||
				}
 | 
			
		||||
				else if (qs.isStarted())
 | 
			
		||||
				{
 | 
			
		||||
@@ -396,7 +396,7 @@ public class Q00327_RecoverTheFarmland extends Quest
 | 
			
		||||
			{
 | 
			
		||||
				if (qs.isCreated())
 | 
			
		||||
				{
 | 
			
		||||
					html = ((player.getLevel() >= MIN_LVL) ? "30597-02.htm" : "30597-01.htm");
 | 
			
		||||
					html = ((player.getLevel() >= MIN_LEVEL) ? "30597-02.htm" : "30597-01.htm");
 | 
			
		||||
				}
 | 
			
		||||
				else if (qs.isStarted())
 | 
			
		||||
				{
 | 
			
		||||
 
 | 
			
		||||
@@ -57,7 +57,7 @@ public class Q00328_SenseForBusiness extends Quest
 | 
			
		||||
	private static final int BASILISK_GIZZARD_ADENA = 60;
 | 
			
		||||
	private static final int BONUS = 618;
 | 
			
		||||
	private static final int BONUS_COUNT = 10;
 | 
			
		||||
	private static final int MIN_LVL = 21;
 | 
			
		||||
	private static final int MIN_LEVEL = 21;
 | 
			
		||||
	
 | 
			
		||||
	public Q00328_SenseForBusiness()
 | 
			
		||||
	{
 | 
			
		||||
@@ -104,7 +104,7 @@ public class Q00328_SenseForBusiness extends Quest
 | 
			
		||||
		{
 | 
			
		||||
			case State.CREATED:
 | 
			
		||||
			{
 | 
			
		||||
				htmltext = player.getLevel() < MIN_LVL ? "30436-01.htm" : "30436-02.htm";
 | 
			
		||||
				htmltext = player.getLevel() < MIN_LEVEL ? "30436-01.htm" : "30436-02.htm";
 | 
			
		||||
				break;
 | 
			
		||||
			}
 | 
			
		||||
			case State.STARTED:
 | 
			
		||||
 
 | 
			
		||||
Some files were not shown because too many files have changed in this diff Show More
		Reference in New Issue
	
	Block a user