diff --git a/L2J_Mobius_1.0_Ertheia/dist/game/config/Character.ini b/L2J_Mobius_1.0_Ertheia/dist/game/config/Character.ini
index 2f3fa88ff9..dc52986fec 100644
--- a/L2J_Mobius_1.0_Ertheia/dist/game/config/Character.ini
+++ b/L2J_Mobius_1.0_Ertheia/dist/game/config/Character.ini
@@ -180,20 +180,32 @@ FeeDeleteDualClassSkills = 20000000
# ---------------------------------------------------------------------------
# Hardin (Agent of Chaos)
# ---------------------------------------------------------------------------
+# NOTE: Base player class race remains the same.
+
# Enable classes from all races.
-# NOTE: Will change player race accordingly.
-# Default: False
-HardinEnableAllRaces = False
+# Default: True
+HardinEnableAllRaces = True
# Disable mage-fighter class differentiation.
# Default: False
HardinEnableAllSpecs = False
+# Select classes from same Awaken group.
+# Default: True
+HardinSameAwakenGroup = True
+
+# Retail limitations.
+# -Only Dwarves can awaken into Tyrr Maestros.
+# -Only Orcs can awaken into Iss Dominators.
+# Default: True
+HardinRetailLimitations = True
+
# Enable above checks for dual classes as well.
# Default: True
HardinEnableDualClassChecks = True
# Enable Hardin for Ertheia race characters.
+# Note: HardinSameAwakenGroup must be disabled.
# Default: False
HardinEnableErtheias = False
diff --git a/L2J_Mobius_1.0_Ertheia/dist/game/data/scripts/ai/areas/TalkingIsland/Hardin/33870-no_olympiad.html b/L2J_Mobius_1.0_Ertheia/dist/game/data/scripts/ai/areas/TalkingIsland/Hardin/33870-no_olympiad.html
new file mode 100644
index 0000000000..28794ef9f1
--- /dev/null
+++ b/L2J_Mobius_1.0_Ertheia/dist/game/data/scripts/ai/areas/TalkingIsland/Hardin/33870-no_olympiad.html
@@ -0,0 +1,5 @@
+
Hardin:
+You are involved with the Olympiad.
+Leave.
+(Players involved with the current Olympiad games cannot use Chaos Essences.)
+
\ No newline at end of file
diff --git a/L2J_Mobius_1.0_Ertheia/dist/game/data/scripts/ai/areas/TalkingIsland/Hardin/Hardin.java b/L2J_Mobius_1.0_Ertheia/dist/game/data/scripts/ai/areas/TalkingIsland/Hardin/Hardin.java
index 702d61e759..2c4bc51193 100644
--- a/L2J_Mobius_1.0_Ertheia/dist/game/data/scripts/ai/areas/TalkingIsland/Hardin/Hardin.java
+++ b/L2J_Mobius_1.0_Ertheia/dist/game/data/scripts/ai/areas/TalkingIsland/Hardin/Hardin.java
@@ -27,6 +27,7 @@ import com.l2jmobius.gameserver.model.L2SkillLearn;
import com.l2jmobius.gameserver.model.actor.L2Npc;
import com.l2jmobius.gameserver.model.actor.instance.L2PcInstance;
import com.l2jmobius.gameserver.model.base.ClassId;
+import com.l2jmobius.gameserver.model.olympiad.Olympiad;
import com.l2jmobius.gameserver.model.quest.QuestState;
import com.l2jmobius.gameserver.network.serverpackets.ExSubjobInfo;
import com.l2jmobius.gameserver.network.serverpackets.ExUserInfoInvenWeight;
@@ -86,6 +87,26 @@ public final class Hardin extends AbstractNpcAI
{
continue;
}
+ if (Config.HARDIN_SAME_AWAKEN_GROUP)
+ {
+ final String original = c.toString().contains("_") ? c.toString().substring(0, c.toString().indexOf("_") - 1) : c.toString();
+ final String search = player.getClassId().toString().contains("_") ? player.getClassId().toString().substring(0, player.getClassId().toString().indexOf("_") - 1) : player.getClassId().toString();
+ if (!original.equals(search))
+ {
+ continue;
+ }
+ }
+ if (Config.HARDIN_RETAIL_LIMITATIONS)
+ {
+ if (c.equals(ClassId.TYRR_MAESTRO) && (player.getRace() != Race.DWARF))
+ {
+ continue;
+ }
+ if (c.equals(ClassId.ISS_DOMINATOR) && (player.getRace() != Race.ORC))
+ {
+ continue;
+ }
+ }
}
classes.append("