diff --git a/trunk/dist/game/config/Character.ini b/trunk/dist/game/config/Character.ini index a4d424f817..5bb30d8019 100644 --- a/trunk/dist/game/config/Character.ini +++ b/trunk/dist/game/config/Character.ini @@ -847,8 +847,7 @@ PartyXpCutoffGaps = 0,9;10,14;15,99 # Default: 100;30;0 PartyXpCutoffGapPercent = 100;30;0 -# Disable tutorial on new player enter into Game -# Please remember its sometimes important to novice players +# Disable tutorial quests. # Default: False DisableTutorial = False diff --git a/trunk/dist/game/data/scripts/quests/Q10390_KekropusLetter/Q10390_KekropusLetter.java b/trunk/dist/game/data/scripts/quests/Q10390_KekropusLetter/Q10390_KekropusLetter.java index 579427f0d1..878ff824c6 100644 --- a/trunk/dist/game/data/scripts/quests/Q10390_KekropusLetter/Q10390_KekropusLetter.java +++ b/trunk/dist/game/data/scripts/quests/Q10390_KekropusLetter/Q10390_KekropusLetter.java @@ -16,6 +16,7 @@ */ package quests.Q10390_KekropusLetter; +import com.l2jmobius.Config; import com.l2jmobius.gameserver.ai.CtrlIntention; import com.l2jmobius.gameserver.cache.HtmCache; import com.l2jmobius.gameserver.enums.Race; @@ -293,6 +294,10 @@ public class Q10390_KekropusLetter extends Quest implements IBypassHandler @RegisterType(ListenerRegisterType.GLOBAL) public void OnPlayerLevelChanged(OnPlayerLevelChanged event) { + if (Config.DISABLE_TUTORIAL) + { + return; + } final L2PcInstance player = event.getActiveChar(); if ((player.getLevel() >= MIN_LEVEL) && (player.getLevel() <= MAX_LEVEL) && (player.getRace() != Race.ERTHEIA)) { diff --git a/trunk/dist/game/data/scripts/quests/Q10393_KekropusLetter_AClueCompleted/Q10393_KekropusLetter_AClueCompleted.java b/trunk/dist/game/data/scripts/quests/Q10393_KekropusLetter_AClueCompleted/Q10393_KekropusLetter_AClueCompleted.java index 2849d4d28e..2e45e73d34 100644 --- a/trunk/dist/game/data/scripts/quests/Q10393_KekropusLetter_AClueCompleted/Q10393_KekropusLetter_AClueCompleted.java +++ b/trunk/dist/game/data/scripts/quests/Q10393_KekropusLetter_AClueCompleted/Q10393_KekropusLetter_AClueCompleted.java @@ -16,6 +16,7 @@ */ package quests.Q10393_KekropusLetter_AClueCompleted; +import com.l2jmobius.Config; import com.l2jmobius.gameserver.ai.CtrlIntention; import com.l2jmobius.gameserver.cache.HtmCache; import com.l2jmobius.gameserver.enums.Race; @@ -148,6 +149,10 @@ public class Q10393_KekropusLetter_AClueCompleted extends Quest implements IBypa @RegisterType(ListenerRegisterType.GLOBAL) public void OnPlayerLevelChanged(OnPlayerLevelChanged event) { + if (Config.DISABLE_TUTORIAL) + { + return; + } final L2PcInstance player = event.getActiveChar(); if ((player.getLevel() >= MIN_LEVEL) && (player.getLevel() <= MAX_LEVEL) && (player.getRace() != Race.ERTHEIA)) { diff --git a/trunk/dist/game/data/scripts/quests/Q10397_KekropusLetter_ASuspiciousBadge/Q10397_KekropusLetter_ASuspiciousBadge.java b/trunk/dist/game/data/scripts/quests/Q10397_KekropusLetter_ASuspiciousBadge/Q10397_KekropusLetter_ASuspiciousBadge.java index 937f0429bb..a0f7cc9beb 100644 --- a/trunk/dist/game/data/scripts/quests/Q10397_KekropusLetter_ASuspiciousBadge/Q10397_KekropusLetter_ASuspiciousBadge.java +++ b/trunk/dist/game/data/scripts/quests/Q10397_KekropusLetter_ASuspiciousBadge/Q10397_KekropusLetter_ASuspiciousBadge.java @@ -16,6 +16,7 @@ */ package quests.Q10397_KekropusLetter_ASuspiciousBadge; +import com.l2jmobius.Config; import com.l2jmobius.gameserver.ai.CtrlIntention; import com.l2jmobius.gameserver.cache.HtmCache; import com.l2jmobius.gameserver.enums.Race; @@ -153,6 +154,10 @@ public class Q10397_KekropusLetter_ASuspiciousBadge extends Quest implements IBy @RegisterType(ListenerRegisterType.GLOBAL) public void OnPlayerLevelChanged(OnPlayerLevelChanged event) { + if (Config.DISABLE_TUTORIAL) + { + return; + } final L2PcInstance player = event.getActiveChar(); if ((player.getLevel() >= MIN_LEVEL) && (player.getLevel() <= MAX_LEVEL) && (player.getRace() != Race.ERTHEIA)) { diff --git a/trunk/dist/game/data/scripts/quests/Q10401_KekropusLetter_DecodingTheBadge/Q10401_KekropusLetter_DecodingTheBadge.java b/trunk/dist/game/data/scripts/quests/Q10401_KekropusLetter_DecodingTheBadge/Q10401_KekropusLetter_DecodingTheBadge.java index bf5cf03241..e5482d3241 100644 --- a/trunk/dist/game/data/scripts/quests/Q10401_KekropusLetter_DecodingTheBadge/Q10401_KekropusLetter_DecodingTheBadge.java +++ b/trunk/dist/game/data/scripts/quests/Q10401_KekropusLetter_DecodingTheBadge/Q10401_KekropusLetter_DecodingTheBadge.java @@ -16,6 +16,7 @@ */ package quests.Q10401_KekropusLetter_DecodingTheBadge; +import com.l2jmobius.Config; import com.l2jmobius.gameserver.ai.CtrlIntention; import com.l2jmobius.gameserver.cache.HtmCache; import com.l2jmobius.gameserver.enums.Race; @@ -153,6 +154,10 @@ public class Q10401_KekropusLetter_DecodingTheBadge extends Quest implements IBy @RegisterType(ListenerRegisterType.GLOBAL) public void OnPlayerLevelChanged(OnPlayerLevelChanged event) { + if (Config.DISABLE_TUTORIAL) + { + return; + } final L2PcInstance player = event.getActiveChar(); if ((player.getLevel() >= MIN_LEVEL) && (player.getLevel() <= MAX_LEVEL) && (player.getRace() != Race.ERTHEIA)) { diff --git a/trunk/dist/game/data/scripts/quests/Q10404_KekropusLetter_AHiddenMeaning/Q10404_KekropusLetter_AHiddenMeaning.java b/trunk/dist/game/data/scripts/quests/Q10404_KekropusLetter_AHiddenMeaning/Q10404_KekropusLetter_AHiddenMeaning.java index 4303fb82e8..a57fca1760 100644 --- a/trunk/dist/game/data/scripts/quests/Q10404_KekropusLetter_AHiddenMeaning/Q10404_KekropusLetter_AHiddenMeaning.java +++ b/trunk/dist/game/data/scripts/quests/Q10404_KekropusLetter_AHiddenMeaning/Q10404_KekropusLetter_AHiddenMeaning.java @@ -16,6 +16,7 @@ */ package quests.Q10404_KekropusLetter_AHiddenMeaning; +import com.l2jmobius.Config; import com.l2jmobius.gameserver.ai.CtrlIntention; import com.l2jmobius.gameserver.cache.HtmCache; import com.l2jmobius.gameserver.enums.Race; @@ -153,6 +154,10 @@ public class Q10404_KekropusLetter_AHiddenMeaning extends Quest implements IBypa @RegisterType(ListenerRegisterType.GLOBAL) public void OnPlayerLevelChanged(OnPlayerLevelChanged event) { + if (Config.DISABLE_TUTORIAL) + { + return; + } final L2PcInstance player = event.getActiveChar(); if ((player.getLevel() >= MIN_LEVEL) && (player.getLevel() <= MAX_LEVEL) && (player.getRace() != Race.ERTHEIA)) { diff --git a/trunk/dist/game/data/scripts/quests/Q10408_KekropusLetter_TheSwampOfScream/Q10408_KekropusLetter_TheSwampOfScream.java b/trunk/dist/game/data/scripts/quests/Q10408_KekropusLetter_TheSwampOfScream/Q10408_KekropusLetter_TheSwampOfScream.java index 8193ab6054..4e938bde4a 100644 --- a/trunk/dist/game/data/scripts/quests/Q10408_KekropusLetter_TheSwampOfScream/Q10408_KekropusLetter_TheSwampOfScream.java +++ b/trunk/dist/game/data/scripts/quests/Q10408_KekropusLetter_TheSwampOfScream/Q10408_KekropusLetter_TheSwampOfScream.java @@ -16,6 +16,7 @@ */ package quests.Q10408_KekropusLetter_TheSwampOfScream; +import com.l2jmobius.Config; import com.l2jmobius.gameserver.ai.CtrlIntention; import com.l2jmobius.gameserver.cache.HtmCache; import com.l2jmobius.gameserver.enums.Race; @@ -157,6 +158,10 @@ public class Q10408_KekropusLetter_TheSwampOfScream extends Quest implements IBy @RegisterType(ListenerRegisterType.GLOBAL) public void OnPlayerLevelChanged(OnPlayerLevelChanged event) { + if (Config.DISABLE_TUTORIAL) + { + return; + } final L2PcInstance player = event.getActiveChar(); if ((player.getLevel() >= MIN_LEVEL) && (player.getLevel() <= MAX_LEVEL) && (player.getRace() != Race.ERTHEIA)) { diff --git a/trunk/dist/game/data/scripts/quests/Q10411_KekropusLetter_TheForestOfTheDead/Q10411_KekropusLetter_TheForestOfTheDead.java b/trunk/dist/game/data/scripts/quests/Q10411_KekropusLetter_TheForestOfTheDead/Q10411_KekropusLetter_TheForestOfTheDead.java index 63cebfd36b..b9f18e7c53 100644 --- a/trunk/dist/game/data/scripts/quests/Q10411_KekropusLetter_TheForestOfTheDead/Q10411_KekropusLetter_TheForestOfTheDead.java +++ b/trunk/dist/game/data/scripts/quests/Q10411_KekropusLetter_TheForestOfTheDead/Q10411_KekropusLetter_TheForestOfTheDead.java @@ -16,6 +16,7 @@ */ package quests.Q10411_KekropusLetter_TheForestOfTheDead; +import com.l2jmobius.Config; import com.l2jmobius.gameserver.ai.CtrlIntention; import com.l2jmobius.gameserver.cache.HtmCache; import com.l2jmobius.gameserver.enums.Race; @@ -161,6 +162,10 @@ public class Q10411_KekropusLetter_TheForestOfTheDead extends Quest implements I @RegisterType(ListenerRegisterType.GLOBAL) public void OnPlayerLevelChanged(OnPlayerLevelChanged event) { + if (Config.DISABLE_TUTORIAL) + { + return; + } final L2PcInstance player = event.getActiveChar(); if ((player.getLevel() >= MIN_LEVEL) && (player.getLevel() <= MAX_LEVEL) && (player.getRace() != Race.ERTHEIA)) { diff --git a/trunk/dist/game/data/scripts/quests/Q10414_KekropusLetter_WithCourage/Q10414_KekropusLetter_WithCourage.java b/trunk/dist/game/data/scripts/quests/Q10414_KekropusLetter_WithCourage/Q10414_KekropusLetter_WithCourage.java index 31bd5760fd..c3b90f1fc8 100644 --- a/trunk/dist/game/data/scripts/quests/Q10414_KekropusLetter_WithCourage/Q10414_KekropusLetter_WithCourage.java +++ b/trunk/dist/game/data/scripts/quests/Q10414_KekropusLetter_WithCourage/Q10414_KekropusLetter_WithCourage.java @@ -16,6 +16,7 @@ */ package quests.Q10414_KekropusLetter_WithCourage; +import com.l2jmobius.Config; import com.l2jmobius.gameserver.ai.CtrlIntention; import com.l2jmobius.gameserver.cache.HtmCache; import com.l2jmobius.gameserver.enums.Race; @@ -157,6 +158,10 @@ public class Q10414_KekropusLetter_WithCourage extends Quest implements IBypassH @RegisterType(ListenerRegisterType.GLOBAL) public void OnPlayerLevelChanged(OnPlayerLevelChanged event) { + if (Config.DISABLE_TUTORIAL) + { + return; + } final L2PcInstance player = event.getActiveChar(); if ((player.getLevel() >= MIN_LEVEL) && (player.getLevel() <= MAX_LEVEL) && (player.getRace() != Race.ERTHEIA)) { diff --git a/trunk/dist/game/data/scripts/quests/Q10415_KekropusLetter_WithWisdom/Q10415_KekropusLetter_WithWisdom.java b/trunk/dist/game/data/scripts/quests/Q10415_KekropusLetter_WithWisdom/Q10415_KekropusLetter_WithWisdom.java index 9dd2d89284..e43443c396 100644 --- a/trunk/dist/game/data/scripts/quests/Q10415_KekropusLetter_WithWisdom/Q10415_KekropusLetter_WithWisdom.java +++ b/trunk/dist/game/data/scripts/quests/Q10415_KekropusLetter_WithWisdom/Q10415_KekropusLetter_WithWisdom.java @@ -16,6 +16,7 @@ */ package quests.Q10415_KekropusLetter_WithWisdom; +import com.l2jmobius.Config; import com.l2jmobius.gameserver.ai.CtrlIntention; import com.l2jmobius.gameserver.cache.HtmCache; import com.l2jmobius.gameserver.enums.Race; @@ -157,6 +158,10 @@ public class Q10415_KekropusLetter_WithWisdom extends Quest implements IBypassHa @RegisterType(ListenerRegisterType.GLOBAL) public void OnPlayerLevelChanged(OnPlayerLevelChanged event) { + if (Config.DISABLE_TUTORIAL) + { + return; + } final L2PcInstance player = event.getActiveChar(); if ((player.getLevel() >= MIN_LEVEL) && (player.getLevel() <= MAX_LEVEL) && (player.getRace() != Race.ERTHEIA)) { diff --git a/trunk/dist/game/data/scripts/quests/Q10746_SeeTheWorld/Q10746_SeeTheWorld.java b/trunk/dist/game/data/scripts/quests/Q10746_SeeTheWorld/Q10746_SeeTheWorld.java index b0e1e37930..2540a1caa9 100644 --- a/trunk/dist/game/data/scripts/quests/Q10746_SeeTheWorld/Q10746_SeeTheWorld.java +++ b/trunk/dist/game/data/scripts/quests/Q10746_SeeTheWorld/Q10746_SeeTheWorld.java @@ -124,25 +124,21 @@ public class Q10746_SeeTheWorld extends Quest } case LEVIAN: { - switch (qs.getCond()) + if (qs.isCond(2)) { - case 2: + giveAdena(player, 43000, true); + addExpAndSp(player, 53422, 5); + if (player.isMageClass()) { - giveAdena(player, 43000, true); - addExpAndSp(player, 53422, 5); - if (player.isMageClass()) - { - giveItems(player, EMISSARY_SUPPORT_BOX_MAGE); - } - else - { - giveItems(player, EMISSARY_SUPPORT_BOX_WARRIOR); - } - showOnScreenMsg(player, NpcStringId.CHECK_YOUR_EQUIPMENT_IN_YOUR_INVENTORY, ExShowScreenMessage.TOP_CENTER, 4500); - qs.exitQuest(false, true); - htmltext = "30037-01.html"; - break; + giveItems(player, EMISSARY_SUPPORT_BOX_MAGE); } + else + { + giveItems(player, EMISSARY_SUPPORT_BOX_WARRIOR); + } + showOnScreenMsg(player, NpcStringId.CHECK_YOUR_EQUIPMENT_IN_YOUR_INVENTORY, ExShowScreenMessage.TOP_CENTER, 4500); + qs.exitQuest(false, true); + htmltext = "30037-01.html"; } break; } diff --git a/trunk/dist/game/data/scripts/quests/Q10751_WindsOfFateEncounters/Q10751_WindsOfFateEncounters.java b/trunk/dist/game/data/scripts/quests/Q10751_WindsOfFateEncounters/Q10751_WindsOfFateEncounters.java index 23c620a234..58401da143 100644 --- a/trunk/dist/game/data/scripts/quests/Q10751_WindsOfFateEncounters/Q10751_WindsOfFateEncounters.java +++ b/trunk/dist/game/data/scripts/quests/Q10751_WindsOfFateEncounters/Q10751_WindsOfFateEncounters.java @@ -16,6 +16,7 @@ */ package quests.Q10751_WindsOfFateEncounters; +import com.l2jmobius.Config; import com.l2jmobius.gameserver.ai.CtrlIntention; import com.l2jmobius.gameserver.cache.HtmCache; import com.l2jmobius.gameserver.enums.Race; @@ -363,10 +364,37 @@ public class Q10751_WindsOfFateEncounters extends Quest implements IBypassHandle return htmltext; } + @Override + public String onKill(L2Npc npc, L2PcInstance killer, boolean isSummon) + { + final QuestState qs = getRandomPartyMemberState(killer, -1, 3, npc); + if ((qs != null) && qs.isStarted() && qs.isCond(6) && Util.checkIfInRange(1500, npc, qs.getPlayer(), false)) + { + int kills = qs.getInt(Integer.toString(SKELETON_ARCHER)); + kills++; + qs.set(Integer.toString(SKELETON_ARCHER), kills); + + final ExQuestNpcLogList log = new ExQuestNpcLogList(getId()); + log.addNpcString(NpcStringId.KILL_SKELETONS, kills); + killer.sendPacket(log); + + if (kills >= 5) + { + addSpawn(TELESHA, npc.getX() + 20, npc.getY() + 20, npc.getZ(), npc.getHeading(), false, 50000); + showOnScreenMsg(killer, NpcStringId.CHECK_ON_TELESHA, ExShowScreenMessage.TOP_CENTER, 4500); + } + } + return super.onKill(npc, killer, isSummon); + } + @RegisterEvent(EventType.ON_PLAYER_LEVEL_CHANGED) @RegisterType(ListenerRegisterType.GLOBAL) public void OnPlayerLevelChanged(OnPlayerLevelChanged event) { + if (Config.DISABLE_TUTORIAL) + { + return; + } final L2PcInstance player = event.getActiveChar(); if ((player.getLevel() >= MIN_LEVEL) && (player.getRace() == Race.ERTHEIA)) { @@ -422,28 +450,4 @@ public class Q10751_WindsOfFateEncounters extends Quest implements IBypassHandle { return TP_COMMANDS; } - - @Override - public String onKill(L2Npc npc, L2PcInstance killer, boolean isSummon) - { - final QuestState qs = getRandomPartyMemberState(killer, -1, 3, npc); - if ((qs != null) && qs.isStarted() && qs.isCond(6) && Util.checkIfInRange(1500, npc, qs.getPlayer(), false)) - { - int kills = qs.getInt(Integer.toString(SKELETON_ARCHER)); - kills++; - qs.set(Integer.toString(SKELETON_ARCHER), kills); - - final ExQuestNpcLogList log = new ExQuestNpcLogList(getId()); - log.addNpcString(NpcStringId.KILL_SKELETONS, kills); - killer.sendPacket(log); - - if (kills >= 5) - { - addSpawn(TELESHA, npc.getX() + 20, npc.getY() + 20, npc.getZ(), npc.getHeading(), false, 50000); - showOnScreenMsg(killer, NpcStringId.CHECK_ON_TELESHA, ExShowScreenMessage.TOP_CENTER, 4500); - } - } - - return super.onKill(npc, killer, isSummon); - } } \ No newline at end of file diff --git a/trunk/dist/game/data/scripts/quests/Q10755_LettersFromTheQueen_WindyHill/Q10755_LettersFromTheQueen_WindyHill.java b/trunk/dist/game/data/scripts/quests/Q10755_LettersFromTheQueen_WindyHill/Q10755_LettersFromTheQueen_WindyHill.java index 78ecab103b..86dca57d11 100644 --- a/trunk/dist/game/data/scripts/quests/Q10755_LettersFromTheQueen_WindyHill/Q10755_LettersFromTheQueen_WindyHill.java +++ b/trunk/dist/game/data/scripts/quests/Q10755_LettersFromTheQueen_WindyHill/Q10755_LettersFromTheQueen_WindyHill.java @@ -16,6 +16,7 @@ */ package quests.Q10755_LettersFromTheQueen_WindyHill; +import com.l2jmobius.Config; import com.l2jmobius.gameserver.ai.CtrlIntention; import com.l2jmobius.gameserver.cache.HtmCache; import com.l2jmobius.gameserver.enums.Race; @@ -193,6 +194,10 @@ public class Q10755_LettersFromTheQueen_WindyHill extends Quest implements IBypa @RegisterType(ListenerRegisterType.GLOBAL) public void OnPlayerLevelChanged(OnPlayerLevelChanged event) { + if (Config.DISABLE_TUTORIAL) + { + return; + } final L2PcInstance player = event.getActiveChar(); if ((player.getLevel() >= MIN_LEVEL) && (player.getLevel() <= MAX_LEVEL) && (player.getRace() == Race.ERTHEIA)) { diff --git a/trunk/dist/game/data/scripts/quests/Q10760_LettersFromTheQueen_OrcBarracs/Q10760_LettersFromTheQueen_OrcBarracs.java b/trunk/dist/game/data/scripts/quests/Q10760_LettersFromTheQueen_OrcBarracs/Q10760_LettersFromTheQueen_OrcBarracs.java index 19aa01eb22..1f79312e99 100644 --- a/trunk/dist/game/data/scripts/quests/Q10760_LettersFromTheQueen_OrcBarracs/Q10760_LettersFromTheQueen_OrcBarracs.java +++ b/trunk/dist/game/data/scripts/quests/Q10760_LettersFromTheQueen_OrcBarracs/Q10760_LettersFromTheQueen_OrcBarracs.java @@ -16,6 +16,7 @@ */ package quests.Q10760_LettersFromTheQueen_OrcBarracs; +import com.l2jmobius.Config; import com.l2jmobius.gameserver.ai.CtrlIntention; import com.l2jmobius.gameserver.cache.HtmCache; import com.l2jmobius.gameserver.enums.Race; @@ -193,6 +194,10 @@ public class Q10760_LettersFromTheQueen_OrcBarracs extends Quest implements IByp @RegisterType(ListenerRegisterType.GLOBAL) public void OnPlayerLevelChanged(OnPlayerLevelChanged event) { + if (Config.DISABLE_TUTORIAL) + { + return; + } final L2PcInstance player = event.getActiveChar(); if ((player.getLevel() >= MIN_LEVEL) && (player.getLevel() <= MAX_LEVEL) && (player.getRace() == Race.ERTHEIA)) { diff --git a/trunk/dist/game/data/scripts/quests/Q10769_LettersFromTheQueen_CrumaTower/Q10769_LettersFromTheQueen_CrumaTower.java b/trunk/dist/game/data/scripts/quests/Q10769_LettersFromTheQueen_CrumaTower/Q10769_LettersFromTheQueen_CrumaTower.java index 230ac7dffa..7aa1047080 100644 --- a/trunk/dist/game/data/scripts/quests/Q10769_LettersFromTheQueen_CrumaTower/Q10769_LettersFromTheQueen_CrumaTower.java +++ b/trunk/dist/game/data/scripts/quests/Q10769_LettersFromTheQueen_CrumaTower/Q10769_LettersFromTheQueen_CrumaTower.java @@ -16,6 +16,7 @@ */ package quests.Q10769_LettersFromTheQueen_CrumaTower; +import com.l2jmobius.Config; import com.l2jmobius.gameserver.ai.CtrlIntention; import com.l2jmobius.gameserver.cache.HtmCache; import com.l2jmobius.gameserver.enums.Race; @@ -46,7 +47,7 @@ public class Q10769_LettersFromTheQueen_CrumaTower extends Quest implements IByp // NPCs private static final int SYLVAIN = 30070; private static final int LORAIN = 30673; - // ITEMs + // Items private static final ItemHolder SCROLL_OF_ESCAPE_CRUMA_TOWER = new ItemHolder(39594, 1); private static final ItemHolder STEEL_DOOR_GUILD = new ItemHolder(37045, 11); private static final ItemHolder EAC = new ItemHolder(952, 1); @@ -200,6 +201,10 @@ public class Q10769_LettersFromTheQueen_CrumaTower extends Quest implements IByp @RegisterType(ListenerRegisterType.GLOBAL) public void OnPlayerLevelChanged(OnPlayerLevelChanged event) { + if (Config.DISABLE_TUTORIAL) + { + return; + } final L2PcInstance player = event.getActiveChar(); if ((player.getLevel() >= MIN_LEVEL) && (player.getLevel() <= MAX_LEVEL) && (player.getRace() == Race.ERTHEIA)) {