Przeglądaj źródła

BETA: Race rework:
* Skill messages fix.
* Renamed DARKELF to DARK_ELF.
* Now all creatures use same race.
* `NpcRace` and `PcRace` enums removed there is new enum called `Race`.
* Fix bug "Dwarf golem buffs skills".
* Fix row color problem in NPC Info.
* Add race in NPC Info.
* Replace isUndead with Race in GM Pet Info.

Patch by: Zealar
Reviewed by: UnAfraid, Zoey76, Sdw

Zoey76 11 lat temu
rodzic
commit
fb42a1a49c
31 zmienionych plików z 357 dodań i 457 usunięć
  1. 1 2
      L2J_Server_BETA/java/com/l2jserver/gameserver/datatables/CharTemplateTable.java
  2. 8 8
      L2J_Server_BETA/java/com/l2jserver/gameserver/datatables/SkillTreesData.java
  3. 5 29
      L2J_Server_BETA/java/com/l2jserver/gameserver/engines/DocumentBase.java
  4. 0 29
      L2J_Server_BETA/java/com/l2jserver/gameserver/enums/PcRace.java
  5. 11 9
      L2J_Server_BETA/java/com/l2jserver/gameserver/enums/Race.java
  6. 4 4
      L2J_Server_BETA/java/com/l2jserver/gameserver/model/L2MapRegion.java
  7. 4 4
      L2J_Server_BETA/java/com/l2jserver/gameserver/model/L2SkillLearn.java
  8. 6 0
      L2J_Server_BETA/java/com/l2jserver/gameserver/model/actor/L2Character.java
  9. 2 2
      L2J_Server_BETA/java/com/l2jserver/gameserver/model/actor/L2Npc.java
  10. 3 3
      L2J_Server_BETA/java/com/l2jserver/gameserver/model/actor/L2Summon.java
  11. 2 2
      L2J_Server_BETA/java/com/l2jserver/gameserver/model/actor/instance/L2DoorInstance.java
  12. 7 6
      L2J_Server_BETA/java/com/l2jserver/gameserver/model/actor/instance/L2PcInstance.java
  13. 2 2
      L2J_Server_BETA/java/com/l2jserver/gameserver/model/actor/instance/L2VillageMasterDElfInstance.java
  14. 2 2
      L2J_Server_BETA/java/com/l2jserver/gameserver/model/actor/instance/L2VillageMasterDwarfInstance.java
  15. 2 2
      L2J_Server_BETA/java/com/l2jserver/gameserver/model/actor/instance/L2VillageMasterFighterInstance.java
  16. 5 5
      L2J_Server_BETA/java/com/l2jserver/gameserver/model/actor/instance/L2VillageMasterInstance.java
  17. 4 4
      L2J_Server_BETA/java/com/l2jserver/gameserver/model/actor/instance/L2VillageMasterKamaelInstance.java
  18. 2 2
      L2J_Server_BETA/java/com/l2jserver/gameserver/model/actor/instance/L2VillageMasterMysticInstance.java
  19. 2 2
      L2J_Server_BETA/java/com/l2jserver/gameserver/model/actor/instance/L2VillageMasterOrcInstance.java
  20. 2 2
      L2J_Server_BETA/java/com/l2jserver/gameserver/model/actor/instance/L2VillageMasterPriestInstance.java
  21. 23 7
      L2J_Server_BETA/java/com/l2jserver/gameserver/model/actor/templates/L2CharTemplate.java
  22. 2 8
      L2J_Server_BETA/java/com/l2jserver/gameserver/model/actor/templates/L2NpcTemplate.java
  23. 1 10
      L2J_Server_BETA/java/com/l2jserver/gameserver/model/actor/templates/L2PcTemplate.java
  24. 125 125
      L2J_Server_BETA/java/com/l2jserver/gameserver/model/base/ClassId.java
  25. 114 114
      L2J_Server_BETA/java/com/l2jserver/gameserver/model/base/PlayerClass.java
  26. 3 3
      L2J_Server_BETA/java/com/l2jserver/gameserver/model/conditions/ConditionPlayerRace.java
  27. 0 50
      L2J_Server_BETA/java/com/l2jserver/gameserver/model/conditions/ConditionTargetNpcRace.java
  28. 7 13
      L2J_Server_BETA/java/com/l2jserver/gameserver/model/conditions/ConditionTargetRace.java
  29. 4 4
      L2J_Server_BETA/java/com/l2jserver/gameserver/model/zone/type/L2RespawnZone.java
  30. 2 2
      L2J_Server_BETA/java/com/l2jserver/gameserver/network/clientpackets/RequestCrystallizeItem.java
  31. 2 2
      L2J_Server_BETA/java/com/l2jserver/gameserver/network/clientpackets/UseItem.java

+ 1 - 2
L2J_Server_BETA/java/com/l2jserver/gameserver/datatables/CharTemplateTable.java

@@ -141,8 +141,7 @@ public final class CharTemplateTable extends DocumentParser
 						set.set("basePDef", (set.getInt("basePDefchest", 0) + set.getInt("basePDeflegs", 0) + set.getInt("basePDefhead", 0) + set.getInt("basePDeffeet", 0) + set.getInt("basePDefgloves", 0) + set.getInt("basePDefunderwear", 0) + set.getInt("basePDefcloak", 0)));
 						set.set("baseMDef", (set.getInt("baseMDefrear", 0) + set.getInt("baseMDeflear", 0) + set.getInt("baseMDefrfinger", 0) + set.getInt("baseMDefrfinger", 0) + set.getInt("baseMDefneck", 0)));
 						
-						final L2PcTemplate ct = new L2PcTemplate(set, creationPoints);
-						_charTemplates.put(ClassId.getClassId(classId), ct);
+						_charTemplates.put(ClassId.getClassId(classId), new L2PcTemplate(set, creationPoints));
 					}
 					else if ("lvlUpgainData".equalsIgnoreCase(d.getNodeName()))
 					{

+ 8 - 8
L2J_Server_BETA/java/com/l2jserver/gameserver/datatables/SkillTreesData.java

@@ -32,7 +32,7 @@ import org.w3c.dom.Node;
 
 import com.l2jserver.Config;
 import com.l2jserver.gameserver.engines.DocumentParser;
-import com.l2jserver.gameserver.enums.PcRace;
+import com.l2jserver.gameserver.enums.Race;
 import com.l2jserver.gameserver.model.L2Clan;
 import com.l2jserver.gameserver.model.L2SkillLearn;
 import com.l2jserver.gameserver.model.L2SkillLearn.SubClassData;
@@ -206,7 +206,7 @@ public final class SkillTreesData extends DocumentParser
 											skillLearn.addPreReqSkill(new SkillHolder(parseInteger(attrs, "id"), parseInteger(attrs, "lvl")));
 											break;
 										case "race":
-											skillLearn.addRace(PcRace.valueOf(b.getTextContent()));
+											skillLearn.addRace(Race.valueOf(b.getTextContent()));
 											break;
 										case "residenceId":
 											skillLearn.addResidenceId(Integer.valueOf(b.getTextContent()));
@@ -573,7 +573,7 @@ public final class SkillTreesData extends DocumentParser
 			return result;
 		}
 		
-		final PcRace race = player.getRace();
+		final Race race = player.getRace();
 		for (L2SkillLearn skill : skills.values())
 		{
 			if (!skill.getRaces().isEmpty() && !skill.getRaces().contains(race))
@@ -608,7 +608,7 @@ public final class SkillTreesData extends DocumentParser
 	public List<L2SkillLearn> getAvailableFishingSkills(L2PcInstance player)
 	{
 		final List<L2SkillLearn> result = new ArrayList<>();
-		final PcRace playerRace = player.getRace();
+		final Race playerRace = player.getRace();
 		for (L2SkillLearn skill : _fishingSkillTree.values())
 		{
 			// If skill is Race specific and the player's race isn't allowed, skip it.
@@ -701,7 +701,7 @@ public final class SkillTreesData extends DocumentParser
 	public List<L2SkillLearn> getAvailableTransformSkills(L2PcInstance player)
 	{
 		final List<L2SkillLearn> result = new ArrayList<>();
-		final PcRace race = player.getRace();
+		final Race race = player.getRace();
 		for (L2SkillLearn skill : _transformSkillTree.values())
 		{
 			if ((player.getLevel() >= skill.getGetLevel()) && (skill.getRaces().isEmpty() || skill.getRaces().contains(race)))
@@ -1108,8 +1108,8 @@ public final class SkillTreesData extends DocumentParser
 		
 		// Race specific skills from Fishing and Transformation skill trees.
 		final List<Integer> list = new ArrayList<>();
-		_skillsByRaceHashCodes = new HashMap<>(PcRace.values().length);
-		for (PcRace r : PcRace.values())
+		_skillsByRaceHashCodes = new HashMap<>(Race.values().length);
+		for (Race r : Race.values())
 		{
 			for (L2SkillLearn s : _fishingSkillTree.values())
 			{
@@ -1248,7 +1248,7 @@ public final class SkillTreesData extends DocumentParser
 		int dwarvenOnlyFishingSkillCount = 0;
 		for (L2SkillLearn fishSkill : _fishingSkillTree.values())
 		{
-			if (fishSkill.getRaces().contains(PcRace.DWARF))
+			if (fishSkill.getRaces().contains(Race.DWARF))
 			{
 				dwarvenOnlyFishingSkillCount++;
 			}

+ 5 - 29
L2J_Server_BETA/java/com/l2jserver/gameserver/engines/DocumentBase.java

@@ -39,8 +39,7 @@ import org.w3c.dom.Node;
 import com.l2jserver.gameserver.datatables.ItemTable;
 import com.l2jserver.gameserver.enums.CategoryType;
 import com.l2jserver.gameserver.enums.InstanceType;
-import com.l2jserver.gameserver.enums.NpcRace;
-import com.l2jserver.gameserver.enums.PcRace;
+import com.l2jserver.gameserver.enums.Race;
 import com.l2jserver.gameserver.model.StatsSet;
 import com.l2jserver.gameserver.model.base.PlayerState;
 import com.l2jserver.gameserver.model.conditions.Condition;
@@ -115,7 +114,6 @@ import com.l2jserver.gameserver.model.conditions.ConditionTargetLevel;
 import com.l2jserver.gameserver.model.conditions.ConditionTargetLevelRange;
 import com.l2jserver.gameserver.model.conditions.ConditionTargetMyPartyExceptMe;
 import com.l2jserver.gameserver.model.conditions.ConditionTargetNpcId;
-import com.l2jserver.gameserver.model.conditions.ConditionTargetNpcRace;
 import com.l2jserver.gameserver.model.conditions.ConditionTargetNpcType;
 import com.l2jserver.gameserver.model.conditions.ConditionTargetPlayable;
 import com.l2jserver.gameserver.model.conditions.ConditionTargetRace;
@@ -509,12 +507,12 @@ public abstract class DocumentBase
 				case "races":
 				{
 					final String[] racesVal = a.getNodeValue().split(",");
-					final PcRace[] races = new PcRace[racesVal.length];
+					final Race[] races = new Race[racesVal.length];
 					for (int r = 0; r < racesVal.length; r++)
 					{
 						if (racesVal[r] != null)
 						{
-							races[r] = PcRace.valueOf(racesVal[r]);
+							races[r] = Race.valueOf(racesVal[r]);
 						}
 					}
 					cond = joinAnd(cond, new ConditionPlayerRace(races));
@@ -1055,31 +1053,9 @@ public abstract class DocumentBase
 					cond = joinAnd(cond, new ConditionMinDistance(distance * distance));
 					break;
 				}
-				case "npcrace":
+				case "race":
 				{
-					// used for npc race
-					final String[] values = a.getNodeValue().split(",");
-					final Set<NpcRace> array = new HashSet<>(values.length);
-					for (String value : values)
-					{
-						array.add(NpcRace.valueOf(getValue(value, null)));
-					}
-					cond = joinAnd(cond, new ConditionTargetNpcRace(array));
-					break;
-				}
-				case "races":
-				{
-					// used for pc race
-					final String[] racesVal = a.getNodeValue().split(",");
-					final PcRace[] races = new PcRace[racesVal.length];
-					for (int r = 0; r < racesVal.length; r++)
-					{
-						if (racesVal[r] != null)
-						{
-							races[r] = PcRace.valueOf(racesVal[r]);
-						}
-					}
-					cond = joinAnd(cond, new ConditionTargetRace(races));
+					cond = joinAnd(cond, new ConditionTargetRace(Race.valueOf(a.getNodeValue())));
 					break;
 				}
 				case "using":

+ 0 - 29
L2J_Server_BETA/java/com/l2jserver/gameserver/enums/PcRace.java

@@ -1,29 +0,0 @@
-/*
- * Copyright (C) 2004-2014 L2J Server
- * 
- * This file is part of L2J Server.
- * 
- * L2J Server is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- * 
- * L2J Server is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * General Public License for more details.
- * 
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see <http://www.gnu.org/licenses/>.
- */
-package com.l2jserver.gameserver.enums;
-
-public enum PcRace
-{
-	HUMAN,
-	ELF,
-	DARK_ELF,
-	ORC,
-	DWARF,
-	KAMAEL;
-}

+ 11 - 9
L2J_Server_BETA/java/com/l2jserver/gameserver/enums/NpcRace.java → L2J_Server_BETA/java/com/l2jserver/gameserver/enums/Race.java

@@ -19,31 +19,33 @@
 package com.l2jserver.gameserver.enums;
 
 /**
- * @author Zoey76
+ * Creature races enumerated.
+ * @author Zealar
  */
-public enum NpcRace
+public enum Race
 {
+	HUMAN,
+	ELF,
+	DARK_ELF,
+	ORC,
+	DWARF,
+	KAMAEL,
 	ANIMAL,
 	BEAST,
 	BUG,
 	CASTLE_GUARD,
 	CONSTRUCT,
-	DARKELF,
 	DEMONIC,
 	DIVINE,
 	DRAGON,
-	DWARF,
 	ELEMENTAL,
-	ELF,
 	ETC,
 	FAIRY,
 	GIANT,
-	HUMAN,
 	HUMANOID,
-	KAMAEL,
 	MERCENARY,
-	ORC,
+	NONE,
 	PLANT,
 	SIEGE_WEAPON,
 	UNDEAD;
-}
+}

+ 4 - 4
L2J_Server_BETA/java/com/l2jserver/gameserver/model/L2MapRegion.java

@@ -24,7 +24,7 @@ import java.util.List;
 import java.util.Map;
 
 import com.l2jserver.Config;
-import com.l2jserver.gameserver.enums.PcRace;
+import com.l2jserver.gameserver.enums.Race;
 import com.l2jserver.util.Rnd;
 
 /**
@@ -44,7 +44,7 @@ public class L2MapRegion
 	private List<Location> _chaoticSpawnLocs = null;
 	private List<Location> _banishSpawnLocs = null;
 	
-	private final Map<PcRace, String> _bannedRace = new HashMap<>();
+	private final Map<Race, String> _bannedRace = new HashMap<>();
 	
 	public L2MapRegion(String name, String town, int locId, int castle, int bbs)
 	{
@@ -212,10 +212,10 @@ public class L2MapRegion
 	
 	public final void addBannedRace(String race, String point)
 	{
-		_bannedRace.put(PcRace.valueOf(race), point);
+		_bannedRace.put(Race.valueOf(race), point);
 	}
 	
-	public final Map<PcRace, String> getBannedRace()
+	public final Map<Race, String> getBannedRace()
 	{
 		return _bannedRace;
 	}

+ 4 - 4
L2J_Server_BETA/java/com/l2jserver/gameserver/model/L2SkillLearn.java

@@ -22,7 +22,7 @@ import java.util.ArrayList;
 import java.util.List;
 
 import com.l2jserver.Config;
-import com.l2jserver.gameserver.enums.PcRace;
+import com.l2jserver.gameserver.enums.Race;
 import com.l2jserver.gameserver.model.base.ClassId;
 import com.l2jserver.gameserver.model.base.SocialClass;
 import com.l2jserver.gameserver.model.holders.ItemHolder;
@@ -40,7 +40,7 @@ public final class L2SkillLearn
 	private final boolean _autoGet;
 	private final int _levelUpSp;
 	private final List<ItemHolder> _requiredItems = new ArrayList<>();
-	private final List<PcRace> _races = new ArrayList<>();
+	private final List<Race> _races = new ArrayList<>();
 	private final List<SkillHolder> _preReqSkills = new ArrayList<>();
 	private SocialClass _socialClass;
 	private final boolean _residenceSkill;
@@ -162,7 +162,7 @@ public final class L2SkillLearn
 	/**
 	 * @return a list with the races that can acquire this skill.
 	 */
-	public List<PcRace> getRaces()
+	public List<Race> getRaces()
 	{
 		return _races;
 	}
@@ -171,7 +171,7 @@ public final class L2SkillLearn
 	 * Adds a required race to learn this skill.
 	 * @param race the required race.
 	 */
-	public void addRace(PcRace race)
+	public void addRace(Race race)
 	{
 		_races.add(race);
 	}

+ 6 - 0
L2J_Server_BETA/java/com/l2jserver/gameserver/model/actor/L2Character.java

@@ -53,6 +53,7 @@ import com.l2jserver.gameserver.datatables.ItemTable;
 import com.l2jserver.gameserver.datatables.SkillData;
 import com.l2jserver.gameserver.enums.CategoryType;
 import com.l2jserver.gameserver.enums.InstanceType;
+import com.l2jserver.gameserver.enums.Race;
 import com.l2jserver.gameserver.enums.ShotType;
 import com.l2jserver.gameserver.enums.Team;
 import com.l2jserver.gameserver.instancemanager.DimensionalRiftManager;
@@ -7152,4 +7153,9 @@ public abstract class L2Character extends L2Object implements ISkillsHolder, IDe
 		both.addAll(templateListeners);
 		return both;
 	}
+	
+	public Race getRace()
+	{
+		return getTemplate().getRace();
+	}
 }

+ 2 - 2
L2J_Server_BETA/java/com/l2jserver/gameserver/model/actor/L2Npc.java

@@ -36,8 +36,8 @@ import com.l2jserver.gameserver.datatables.NpcPersonalAIData;
 import com.l2jserver.gameserver.enums.AISkillScope;
 import com.l2jserver.gameserver.enums.AIType;
 import com.l2jserver.gameserver.enums.InstanceType;
-import com.l2jserver.gameserver.enums.NpcRace;
 import com.l2jserver.gameserver.enums.PrivateStoreType;
+import com.l2jserver.gameserver.enums.Race;
 import com.l2jserver.gameserver.enums.ShotType;
 import com.l2jserver.gameserver.enums.Team;
 import com.l2jserver.gameserver.handler.BypassHandler;
@@ -545,7 +545,7 @@ public class L2Npc extends L2Character
 	@Override
 	public boolean isUndead()
 	{
-		return getTemplate().getRace() == NpcRace.UNDEAD;
+		return getTemplate().getRace() == Race.UNDEAD;
 	}
 	
 	/**

+ 3 - 3
L2J_Server_BETA/java/com/l2jserver/gameserver/model/actor/L2Summon.java

@@ -25,7 +25,7 @@ import com.l2jserver.gameserver.ai.L2SummonAI;
 import com.l2jserver.gameserver.datatables.ExperienceTable;
 import com.l2jserver.gameserver.datatables.ItemTable;
 import com.l2jserver.gameserver.enums.InstanceType;
-import com.l2jserver.gameserver.enums.NpcRace;
+import com.l2jserver.gameserver.enums.Race;
 import com.l2jserver.gameserver.enums.ShotType;
 import com.l2jserver.gameserver.enums.Team;
 import com.l2jserver.gameserver.handler.IItemHandler;
@@ -966,7 +966,7 @@ public abstract class L2Summon extends L2Playable
 	@Override
 	public boolean isUndead()
 	{
-		return getTemplate().getRace() == NpcRace.UNDEAD;
+		return getTemplate().getRace() == Race.UNDEAD;
 	}
 	
 	/**
@@ -1096,7 +1096,7 @@ public abstract class L2Summon extends L2Playable
 		}
 		
 		// Siege golems AI doesn't support attacking other than doors/walls at the moment.
-		if (target.isDoor() && (getTemplate().getRace() != NpcRace.SIEGE_WEAPON))
+		if (target.isDoor() && (getTemplate().getRace() != Race.SIEGE_WEAPON))
 		{
 			return false;
 		}

+ 2 - 2
L2J_Server_BETA/java/com/l2jserver/gameserver/model/actor/instance/L2DoorInstance.java

@@ -30,7 +30,7 @@ import com.l2jserver.gameserver.ai.L2CharacterAI;
 import com.l2jserver.gameserver.ai.L2DoorAI;
 import com.l2jserver.gameserver.datatables.DoorTable;
 import com.l2jserver.gameserver.enums.InstanceType;
-import com.l2jserver.gameserver.enums.NpcRace;
+import com.l2jserver.gameserver.enums.Race;
 import com.l2jserver.gameserver.instancemanager.CastleManager;
 import com.l2jserver.gameserver.instancemanager.ClanHallManager;
 import com.l2jserver.gameserver.instancemanager.FortManager;
@@ -673,7 +673,7 @@ public class L2DoorInstance extends L2Character
 			}
 			
 			final L2ServitorInstance servitor = (L2ServitorInstance) attacker;
-			if (servitor.getTemplate().getRace() != NpcRace.SIEGE_WEAPON)
+			if (servitor.getTemplate().getRace() != Race.SIEGE_WEAPON)
 			{
 				return;
 			}

+ 7 - 6
L2J_Server_BETA/java/com/l2jserver/gameserver/model/actor/instance/L2PcInstance.java

@@ -90,9 +90,9 @@ import com.l2jserver.gameserver.enums.IllegalActionPunishmentType;
 import com.l2jserver.gameserver.enums.InstanceType;
 import com.l2jserver.gameserver.enums.MountType;
 import com.l2jserver.gameserver.enums.PartyDistributionType;
-import com.l2jserver.gameserver.enums.PcRace;
 import com.l2jserver.gameserver.enums.PlayerAction;
 import com.l2jserver.gameserver.enums.PrivateStoreType;
+import com.l2jserver.gameserver.enums.Race;
 import com.l2jserver.gameserver.enums.Sex;
 import com.l2jserver.gameserver.enums.ShortcutType;
 import com.l2jserver.gameserver.enums.ShotType;
@@ -2795,7 +2795,8 @@ public final class L2PcInstance extends L2Playable
 	/**
 	 * @return the Race object of the L2PcInstance.
 	 */
-	public PcRace getRace()
+	@Override
+	public Race getRace()
 	{
 		if (!isSubClassActive())
 		{
@@ -12133,7 +12134,7 @@ public final class L2PcInstance extends L2Playable
 		{
 			ivlim = Config.INVENTORY_MAXIMUM_GM;
 		}
-		else if (getRace() == PcRace.DWARF)
+		else if (getRace() == Race.DWARF)
 		{
 			ivlim = Config.INVENTORY_MAXIMUM_DWARF;
 		}
@@ -12149,7 +12150,7 @@ public final class L2PcInstance extends L2Playable
 	public int getWareHouseLimit()
 	{
 		int whlim;
-		if (getRace() == PcRace.DWARF)
+		if (getRace() == Race.DWARF)
 		{
 			whlim = Config.WAREHOUSE_SLOTS_DWARF;
 		}
@@ -12167,7 +12168,7 @@ public final class L2PcInstance extends L2Playable
 	{
 		int pslim;
 		
-		if (getRace() == PcRace.DWARF)
+		if (getRace() == Race.DWARF)
 		{
 			pslim = Config.MAX_PVTSTORESELL_SLOTS_DWARF;
 		}
@@ -12185,7 +12186,7 @@ public final class L2PcInstance extends L2Playable
 	{
 		int pblim;
 		
-		if (getRace() == PcRace.DWARF)
+		if (getRace() == Race.DWARF)
 		{
 			pblim = Config.MAX_PVTSTOREBUY_SLOTS_DWARF;
 		}

+ 2 - 2
L2J_Server_BETA/java/com/l2jserver/gameserver/model/actor/instance/L2VillageMasterDElfInstance.java

@@ -18,7 +18,7 @@
  */
 package com.l2jserver.gameserver.model.actor.instance;
 
-import com.l2jserver.gameserver.enums.PcRace;
+import com.l2jserver.gameserver.enums.Race;
 import com.l2jserver.gameserver.model.actor.templates.L2NpcTemplate;
 import com.l2jserver.gameserver.model.base.PlayerClass;
 
@@ -37,6 +37,6 @@ public final class L2VillageMasterDElfInstance extends L2VillageMasterInstance
 			return false;
 		}
 		
-		return pclass.isOfRace(PcRace.DARK_ELF);
+		return pclass.isOfRace(Race.DARK_ELF);
 	}
 }

+ 2 - 2
L2J_Server_BETA/java/com/l2jserver/gameserver/model/actor/instance/L2VillageMasterDwarfInstance.java

@@ -18,7 +18,7 @@
  */
 package com.l2jserver.gameserver.model.actor.instance;
 
-import com.l2jserver.gameserver.enums.PcRace;
+import com.l2jserver.gameserver.enums.Race;
 import com.l2jserver.gameserver.model.actor.templates.L2NpcTemplate;
 import com.l2jserver.gameserver.model.base.PlayerClass;
 
@@ -37,6 +37,6 @@ public final class L2VillageMasterDwarfInstance extends L2VillageMasterInstance
 			return false;
 		}
 		
-		return pclass.isOfRace(PcRace.DWARF);
+		return pclass.isOfRace(Race.DWARF);
 	}
 }

+ 2 - 2
L2J_Server_BETA/java/com/l2jserver/gameserver/model/actor/instance/L2VillageMasterFighterInstance.java

@@ -18,7 +18,7 @@
  */
 package com.l2jserver.gameserver.model.actor.instance;
 
-import com.l2jserver.gameserver.enums.PcRace;
+import com.l2jserver.gameserver.enums.Race;
 import com.l2jserver.gameserver.model.actor.templates.L2NpcTemplate;
 import com.l2jserver.gameserver.model.base.ClassType;
 import com.l2jserver.gameserver.model.base.PlayerClass;
@@ -38,7 +38,7 @@ public final class L2VillageMasterFighterInstance extends L2VillageMasterInstanc
 			return false;
 		}
 		
-		return pclass.isOfRace(PcRace.HUMAN) || pclass.isOfRace(PcRace.ELF);
+		return pclass.isOfRace(Race.HUMAN) || pclass.isOfRace(Race.ELF);
 	}
 	
 	@Override

+ 5 - 5
L2J_Server_BETA/java/com/l2jserver/gameserver/model/actor/instance/L2VillageMasterInstance.java

@@ -30,7 +30,7 @@ import com.l2jserver.gameserver.datatables.ClanTable;
 import com.l2jserver.gameserver.datatables.ClassListData;
 import com.l2jserver.gameserver.datatables.SkillTreesData;
 import com.l2jserver.gameserver.enums.InstanceType;
-import com.l2jserver.gameserver.enums.PcRace;
+import com.l2jserver.gameserver.enums.Race;
 import com.l2jserver.gameserver.instancemanager.CastleManager;
 import com.l2jserver.gameserver.instancemanager.FortManager;
 import com.l2jserver.gameserver.instancemanager.FortSiegeManager;
@@ -385,12 +385,12 @@ public class L2VillageMasterInstance extends L2NpcInstance
 					}
 					else
 					{
-						if ((player.getRace() == PcRace.ELF) || (player.getRace() == PcRace.DARK_ELF))
+						if ((player.getRace() == Race.ELF) || (player.getRace() == Race.DARK_ELF))
 						{
 							html.setFile(player.getHtmlPrefix(), "data/html/villagemaster/SubClass_Fail_Elves.htm");
 							player.sendPacket(html);
 						}
-						else if (player.getRace() == PcRace.KAMAEL)
+						else if (player.getRace() == Race.KAMAEL)
 						{
 							html.setFile(player.getHtmlPrefix(), "data/html/villagemaster/SubClass_Fail_Kamael.htm");
 							player.sendPacket(html);
@@ -684,9 +684,9 @@ public class L2VillageMasterInstance extends L2NpcInstance
 		}
 	}
 	
-	protected String getSubClassMenu(PcRace pRace)
+	protected String getSubClassMenu(Race race)
 	{
-		if (Config.ALT_GAME_SUBCLASS_EVERYWHERE || (pRace != PcRace.KAMAEL))
+		if (Config.ALT_GAME_SUBCLASS_EVERYWHERE || (race != Race.KAMAEL))
 		{
 			return "data/html/villagemaster/SubClass.htm";
 		}

+ 4 - 4
L2J_Server_BETA/java/com/l2jserver/gameserver/model/actor/instance/L2VillageMasterKamaelInstance.java

@@ -19,7 +19,7 @@
 package com.l2jserver.gameserver.model.actor.instance;
 
 import com.l2jserver.Config;
-import com.l2jserver.gameserver.enums.PcRace;
+import com.l2jserver.gameserver.enums.Race;
 import com.l2jserver.gameserver.model.actor.templates.L2NpcTemplate;
 import com.l2jserver.gameserver.model.base.PlayerClass;
 import com.l2jserver.gameserver.model.quest.QuestState;
@@ -32,9 +32,9 @@ public final class L2VillageMasterKamaelInstance extends L2VillageMasterInstance
 	}
 	
 	@Override
-	protected final String getSubClassMenu(PcRace pRace)
+	protected final String getSubClassMenu(Race race)
 	{
-		if (Config.ALT_GAME_SUBCLASS_EVERYWHERE || (pRace == PcRace.KAMAEL))
+		if (Config.ALT_GAME_SUBCLASS_EVERYWHERE || (race == Race.KAMAEL))
 		{
 			return "data/html/villagemaster/SubClass.htm";
 		}
@@ -80,6 +80,6 @@ public final class L2VillageMasterKamaelInstance extends L2VillageMasterInstance
 			return false;
 		}
 		
-		return pclass.isOfRace(PcRace.KAMAEL);
+		return pclass.isOfRace(Race.KAMAEL);
 	}
 }

+ 2 - 2
L2J_Server_BETA/java/com/l2jserver/gameserver/model/actor/instance/L2VillageMasterMysticInstance.java

@@ -18,7 +18,7 @@
  */
 package com.l2jserver.gameserver.model.actor.instance;
 
-import com.l2jserver.gameserver.enums.PcRace;
+import com.l2jserver.gameserver.enums.Race;
 import com.l2jserver.gameserver.model.actor.templates.L2NpcTemplate;
 import com.l2jserver.gameserver.model.base.ClassType;
 import com.l2jserver.gameserver.model.base.PlayerClass;
@@ -38,7 +38,7 @@ public final class L2VillageMasterMysticInstance extends L2VillageMasterInstance
 			return false;
 		}
 		
-		return pclass.isOfRace(PcRace.HUMAN) || pclass.isOfRace(PcRace.ELF);
+		return pclass.isOfRace(Race.HUMAN) || pclass.isOfRace(Race.ELF);
 	}
 	
 	@Override

+ 2 - 2
L2J_Server_BETA/java/com/l2jserver/gameserver/model/actor/instance/L2VillageMasterOrcInstance.java

@@ -18,7 +18,7 @@
  */
 package com.l2jserver.gameserver.model.actor.instance;
 
-import com.l2jserver.gameserver.enums.PcRace;
+import com.l2jserver.gameserver.enums.Race;
 import com.l2jserver.gameserver.model.actor.templates.L2NpcTemplate;
 import com.l2jserver.gameserver.model.base.PlayerClass;
 
@@ -37,6 +37,6 @@ public final class L2VillageMasterOrcInstance extends L2VillageMasterInstance
 			return false;
 		}
 		
-		return pclass.isOfRace(PcRace.ORC);
+		return pclass.isOfRace(Race.ORC);
 	}
 }

+ 2 - 2
L2J_Server_BETA/java/com/l2jserver/gameserver/model/actor/instance/L2VillageMasterPriestInstance.java

@@ -18,7 +18,7 @@
  */
 package com.l2jserver.gameserver.model.actor.instance;
 
-import com.l2jserver.gameserver.enums.PcRace;
+import com.l2jserver.gameserver.enums.Race;
 import com.l2jserver.gameserver.model.actor.templates.L2NpcTemplate;
 import com.l2jserver.gameserver.model.base.ClassType;
 import com.l2jserver.gameserver.model.base.PlayerClass;
@@ -38,7 +38,7 @@ public final class L2VillageMasterPriestInstance extends L2VillageMasterInstance
 			return false;
 		}
 		
-		return pclass.isOfRace(PcRace.HUMAN) || pclass.isOfRace(PcRace.ELF);
+		return pclass.isOfRace(Race.HUMAN) || pclass.isOfRace(Race.ELF);
 	}
 	
 	@Override

+ 23 - 7
L2J_Server_BETA/java/com/l2jserver/gameserver/model/actor/templates/L2CharTemplate.java

@@ -22,6 +22,7 @@ import java.util.Arrays;
 import java.util.Collections;
 import java.util.Map;
 
+import com.l2jserver.gameserver.enums.Race;
 import com.l2jserver.gameserver.model.StatsSet;
 import com.l2jserver.gameserver.model.events.ListenersContainer;
 import com.l2jserver.gameserver.model.items.type.WeaponType;
@@ -74,20 +75,17 @@ public class L2CharTemplate extends ListenersContainer
 	private double _baseHolyRes;
 	private double _baseDarkRes;
 	private double _baseElementRes;
-	/**
-	 * For client info use {@link #_fCollisionRadius}
-	 */
+	/** For client info use {@link #_fCollisionRadius} */
 	private int _collisionRadius;
-	
-	/**
-	 * For client info use {@link #_fCollisionHeight}
-	 */
+	/** For client info use {@link #_fCollisionHeight} */
 	private int _collisionHeight;
 	
 	private double _fCollisionRadius;
 	private double _fCollisionHeight;
 	
 	private final float[] _moveType = new float[MoveType.values().length];
+	/** The creature's race. */
+	private Race _race;
 	
 	public L2CharTemplate(StatsSet set)
 	{
@@ -630,4 +628,22 @@ public class L2CharTemplate extends ListenersContainer
 	{
 		return Collections.emptyMap();
 	}
+	
+	/**
+	 * Gets the craeture's race.
+	 * @return the race
+	 */
+	public Race getRace()
+	{
+		return _race;
+	}
+	
+	/**
+	 * Sets the creature's race.
+	 * @param race the race
+	 */
+	public void setRace(Race race)
+	{
+		_race = race;
+	}
 }

+ 2 - 8
L2J_Server_BETA/java/com/l2jserver/gameserver/model/actor/templates/L2NpcTemplate.java

@@ -28,7 +28,7 @@ import com.l2jserver.Config;
 import com.l2jserver.gameserver.datatables.NpcData;
 import com.l2jserver.gameserver.enums.AISkillScope;
 import com.l2jserver.gameserver.enums.AIType;
-import com.l2jserver.gameserver.enums.NpcRace;
+import com.l2jserver.gameserver.enums.Race;
 import com.l2jserver.gameserver.enums.Sex;
 import com.l2jserver.gameserver.model.L2MinionData;
 import com.l2jserver.gameserver.model.StatsSet;
@@ -55,7 +55,6 @@ public final class L2NpcTemplate extends L2CharTemplate implements IIdentifiable
 	private String _title;
 	private boolean _usingServerSideTitle;
 	private StatsSet _parameters;
-	private NpcRace _race;
 	private Sex _sex;
 	private int _chestId;
 	private int _rhandId;
@@ -125,7 +124,7 @@ public final class L2NpcTemplate extends L2CharTemplate implements IIdentifiable
 		_usingServerSideName = set.getBoolean("usingServerSideName", false);
 		_title = set.getString("title", "");
 		_usingServerSideTitle = set.getBoolean("usingServerSideTitle", false);
-		_race = set.getEnum("race", NpcRace.class, NpcRace.ETC);
+		setRace(set.getEnum("race", Race.class, Race.NONE));
 		_sex = set.getEnum("sex", Sex.class, Sex.ETC);
 		
 		_chestId = set.getInt("chestId", 0);
@@ -236,11 +235,6 @@ public final class L2NpcTemplate extends L2CharTemplate implements IIdentifiable
 		_parameters = set;
 	}
 	
-	public NpcRace getRace()
-	{
-		return _race;
-	}
-	
 	public Sex getSex()
 	{
 		return _sex;

+ 1 - 10
L2J_Server_BETA/java/com/l2jserver/gameserver/model/actor/templates/L2PcTemplate.java

@@ -24,7 +24,6 @@ import java.util.Map;
 
 import com.l2jserver.gameserver.datatables.ExperienceTable;
 import com.l2jserver.gameserver.datatables.InitialEquipmentData;
-import com.l2jserver.gameserver.enums.PcRace;
 import com.l2jserver.gameserver.model.Location;
 import com.l2jserver.gameserver.model.StatsSet;
 import com.l2jserver.gameserver.model.base.ClassId;
@@ -60,7 +59,7 @@ public class L2PcTemplate extends L2CharTemplate
 	{
 		super(set);
 		_classId = ClassId.getClassId(set.getInt("classId"));
-		
+		setRace(_classId.getRace());
 		_baseHp = new float[ExperienceTable.getInstance().getMaxLevel()];
 		_baseMp = new float[ExperienceTable.getInstance().getMaxLevel()];
 		_baseCp = new float[ExperienceTable.getInstance().getMaxLevel()];
@@ -99,14 +98,6 @@ public class L2PcTemplate extends L2CharTemplate
 		return _classId;
 	}
 	
-	/**
-	 * @return the template race.
-	 */
-	public PcRace getRace()
-	{
-		return _classId.getRace();
-	}
-	
 	/**
 	 * @return random Location of created character spawn.
 	 */

+ 125 - 125
L2J_Server_BETA/java/com/l2jserver/gameserver/model/base/ClassId.java

@@ -18,7 +18,7 @@
  */
 package com.l2jserver.gameserver.model.base;
 
-import com.l2jserver.gameserver.enums.PcRace;
+import com.l2jserver.gameserver.enums.Race;
 import com.l2jserver.gameserver.model.interfaces.IIdentifiable;
 
 /**
@@ -34,73 +34,73 @@ import com.l2jserver.gameserver.model.interfaces.IIdentifiable;
  */
 public enum ClassId implements IIdentifiable
 {
-	fighter(0x00, false, PcRace.HUMAN, null),
-	
-	warrior(0x01, false, PcRace.HUMAN, fighter),
-	gladiator(0x02, false, PcRace.HUMAN, warrior),
-	warlord(0x03, false, PcRace.HUMAN, warrior),
-	knight(0x04, false, PcRace.HUMAN, fighter),
-	paladin(0x05, false, PcRace.HUMAN, knight),
-	darkAvenger(0x06, false, PcRace.HUMAN, knight),
-	rogue(0x07, false, PcRace.HUMAN, fighter),
-	treasureHunter(0x08, false, PcRace.HUMAN, rogue),
-	hawkeye(0x09, false, PcRace.HUMAN, rogue),
-	
-	mage(0x0a, true, PcRace.HUMAN, null),
-	wizard(0x0b, true, PcRace.HUMAN, mage),
-	sorceror(0x0c, true, PcRace.HUMAN, wizard),
-	necromancer(0x0d, true, PcRace.HUMAN, wizard),
-	warlock(0x0e, true, true, PcRace.HUMAN, wizard),
-	cleric(0x0f, true, PcRace.HUMAN, mage),
-	bishop(0x10, true, PcRace.HUMAN, cleric),
-	prophet(0x11, true, PcRace.HUMAN, cleric),
-	
-	elvenFighter(0x12, false, PcRace.ELF, null),
-	elvenKnight(0x13, false, PcRace.ELF, elvenFighter),
-	templeKnight(0x14, false, PcRace.ELF, elvenKnight),
-	swordSinger(0x15, false, PcRace.ELF, elvenKnight),
-	elvenScout(0x16, false, PcRace.ELF, elvenFighter),
-	plainsWalker(0x17, false, PcRace.ELF, elvenScout),
-	silverRanger(0x18, false, PcRace.ELF, elvenScout),
-	
-	elvenMage(0x19, true, PcRace.ELF, null),
-	elvenWizard(0x1a, true, PcRace.ELF, elvenMage),
-	spellsinger(0x1b, true, PcRace.ELF, elvenWizard),
-	elementalSummoner(0x1c, true, true, PcRace.ELF, elvenWizard),
-	oracle(0x1d, true, PcRace.ELF, elvenMage),
-	elder(0x1e, true, PcRace.ELF, oracle),
-	
-	darkFighter(0x1f, false, PcRace.DARK_ELF, null),
-	palusKnight(0x20, false, PcRace.DARK_ELF, darkFighter),
-	shillienKnight(0x21, false, PcRace.DARK_ELF, palusKnight),
-	bladedancer(0x22, false, PcRace.DARK_ELF, palusKnight),
-	assassin(0x23, false, PcRace.DARK_ELF, darkFighter),
-	abyssWalker(0x24, false, PcRace.DARK_ELF, assassin),
-	phantomRanger(0x25, false, PcRace.DARK_ELF, assassin),
-	
-	darkMage(0x26, true, PcRace.DARK_ELF, null),
-	darkWizard(0x27, true, PcRace.DARK_ELF, darkMage),
-	spellhowler(0x28, true, PcRace.DARK_ELF, darkWizard),
-	phantomSummoner(0x29, true, true, PcRace.DARK_ELF, darkWizard),
-	shillienOracle(0x2a, true, PcRace.DARK_ELF, darkMage),
-	shillenElder(0x2b, true, PcRace.DARK_ELF, shillienOracle),
-	
-	orcFighter(0x2c, false, PcRace.ORC, null),
-	orcRaider(0x2d, false, PcRace.ORC, orcFighter),
-	destroyer(0x2e, false, PcRace.ORC, orcRaider),
-	orcMonk(0x2f, false, PcRace.ORC, orcFighter),
-	tyrant(0x30, false, PcRace.ORC, orcMonk),
-	
-	orcMage(0x31, false, PcRace.ORC, null),
-	orcShaman(0x32, true, PcRace.ORC, orcMage),
-	overlord(0x33, true, PcRace.ORC, orcShaman),
-	warcryer(0x34, true, PcRace.ORC, orcShaman),
-	
-	dwarvenFighter(0x35, false, PcRace.DWARF, null),
-	scavenger(0x36, false, PcRace.DWARF, dwarvenFighter),
-	bountyHunter(0x37, false, PcRace.DWARF, scavenger),
-	artisan(0x38, false, PcRace.DWARF, dwarvenFighter),
-	warsmith(0x39, false, PcRace.DWARF, artisan),
+	fighter(0x00, false, Race.HUMAN, null),
+	
+	warrior(0x01, false, Race.HUMAN, fighter),
+	gladiator(0x02, false, Race.HUMAN, warrior),
+	warlord(0x03, false, Race.HUMAN, warrior),
+	knight(0x04, false, Race.HUMAN, fighter),
+	paladin(0x05, false, Race.HUMAN, knight),
+	darkAvenger(0x06, false, Race.HUMAN, knight),
+	rogue(0x07, false, Race.HUMAN, fighter),
+	treasureHunter(0x08, false, Race.HUMAN, rogue),
+	hawkeye(0x09, false, Race.HUMAN, rogue),
+	
+	mage(0x0a, true, Race.HUMAN, null),
+	wizard(0x0b, true, Race.HUMAN, mage),
+	sorceror(0x0c, true, Race.HUMAN, wizard),
+	necromancer(0x0d, true, Race.HUMAN, wizard),
+	warlock(0x0e, true, true, Race.HUMAN, wizard),
+	cleric(0x0f, true, Race.HUMAN, mage),
+	bishop(0x10, true, Race.HUMAN, cleric),
+	prophet(0x11, true, Race.HUMAN, cleric),
+	
+	elvenFighter(0x12, false, Race.ELF, null),
+	elvenKnight(0x13, false, Race.ELF, elvenFighter),
+	templeKnight(0x14, false, Race.ELF, elvenKnight),
+	swordSinger(0x15, false, Race.ELF, elvenKnight),
+	elvenScout(0x16, false, Race.ELF, elvenFighter),
+	plainsWalker(0x17, false, Race.ELF, elvenScout),
+	silverRanger(0x18, false, Race.ELF, elvenScout),
+	
+	elvenMage(0x19, true, Race.ELF, null),
+	elvenWizard(0x1a, true, Race.ELF, elvenMage),
+	spellsinger(0x1b, true, Race.ELF, elvenWizard),
+	elementalSummoner(0x1c, true, true, Race.ELF, elvenWizard),
+	oracle(0x1d, true, Race.ELF, elvenMage),
+	elder(0x1e, true, Race.ELF, oracle),
+	
+	darkFighter(0x1f, false, Race.DARK_ELF, null),
+	palusKnight(0x20, false, Race.DARK_ELF, darkFighter),
+	shillienKnight(0x21, false, Race.DARK_ELF, palusKnight),
+	bladedancer(0x22, false, Race.DARK_ELF, palusKnight),
+	assassin(0x23, false, Race.DARK_ELF, darkFighter),
+	abyssWalker(0x24, false, Race.DARK_ELF, assassin),
+	phantomRanger(0x25, false, Race.DARK_ELF, assassin),
+	
+	darkMage(0x26, true, Race.DARK_ELF, null),
+	darkWizard(0x27, true, Race.DARK_ELF, darkMage),
+	spellhowler(0x28, true, Race.DARK_ELF, darkWizard),
+	phantomSummoner(0x29, true, true, Race.DARK_ELF, darkWizard),
+	shillienOracle(0x2a, true, Race.DARK_ELF, darkMage),
+	shillenElder(0x2b, true, Race.DARK_ELF, shillienOracle),
+	
+	orcFighter(0x2c, false, Race.ORC, null),
+	orcRaider(0x2d, false, Race.ORC, orcFighter),
+	destroyer(0x2e, false, Race.ORC, orcRaider),
+	orcMonk(0x2f, false, Race.ORC, orcFighter),
+	tyrant(0x30, false, Race.ORC, orcMonk),
+	
+	orcMage(0x31, false, Race.ORC, null),
+	orcShaman(0x32, true, Race.ORC, orcMage),
+	overlord(0x33, true, Race.ORC, orcShaman),
+	warcryer(0x34, true, Race.ORC, orcShaman),
+	
+	dwarvenFighter(0x35, false, Race.DWARF, null),
+	scavenger(0x36, false, Race.DWARF, dwarvenFighter),
+	bountyHunter(0x37, false, Race.DWARF, scavenger),
+	artisan(0x38, false, Race.DWARF, dwarvenFighter),
+	warsmith(0x39, false, Race.DWARF, artisan),
 	
 	/*
 	 * Dummy Entries (id's already in decimal format) btw FU NCSoft for the amount of work you put me through to do this!! <START>
@@ -142,61 +142,61 @@ public enum ClassId implements IIdentifiable
 	/*
 	 * Now the bad boys! new class ids :)) (3rd classes)
 	 */
-	duelist(0x58, false, PcRace.HUMAN, gladiator),
-	dreadnought(0x59, false, PcRace.HUMAN, warlord),
-	phoenixKnight(0x5a, false, PcRace.HUMAN, paladin),
-	hellKnight(0x5b, false, PcRace.HUMAN, darkAvenger),
-	sagittarius(0x5c, false, PcRace.HUMAN, hawkeye),
-	adventurer(0x5d, false, PcRace.HUMAN, treasureHunter),
-	archmage(0x5e, true, PcRace.HUMAN, sorceror),
-	soultaker(0x5f, true, PcRace.HUMAN, necromancer),
-	arcanaLord(0x60, true, true, PcRace.HUMAN, warlock),
-	cardinal(0x61, true, PcRace.HUMAN, bishop),
-	hierophant(0x62, true, PcRace.HUMAN, prophet),
-	
-	evaTemplar(0x63, false, PcRace.ELF, templeKnight),
-	swordMuse(0x64, false, PcRace.ELF, swordSinger),
-	windRider(0x65, false, PcRace.ELF, plainsWalker),
-	moonlightSentinel(0x66, false, PcRace.ELF, silverRanger),
-	mysticMuse(0x67, true, PcRace.ELF, spellsinger),
-	elementalMaster(0x68, true, true, PcRace.ELF, elementalSummoner),
-	evaSaint(0x69, true, PcRace.ELF, elder),
-	
-	shillienTemplar(0x6a, false, PcRace.DARK_ELF, shillienKnight),
-	spectralDancer(0x6b, false, PcRace.DARK_ELF, bladedancer),
-	ghostHunter(0x6c, false, PcRace.DARK_ELF, abyssWalker),
-	ghostSentinel(0x6d, false, PcRace.DARK_ELF, phantomRanger),
-	stormScreamer(0x6e, true, PcRace.DARK_ELF, spellhowler),
-	spectralMaster(0x6f, true, true, PcRace.DARK_ELF, phantomSummoner),
-	shillienSaint(0x70, true, PcRace.DARK_ELF, shillenElder),
-	
-	titan(0x71, false, PcRace.ORC, destroyer),
-	grandKhavatari(0x72, false, PcRace.ORC, tyrant),
-	dominator(0x73, true, PcRace.ORC, overlord),
-	doomcryer(0x74, true, PcRace.ORC, warcryer),
-	
-	fortuneSeeker(0x75, false, PcRace.DWARF, bountyHunter),
-	maestro(0x76, false, PcRace.DWARF, warsmith),
+	duelist(0x58, false, Race.HUMAN, gladiator),
+	dreadnought(0x59, false, Race.HUMAN, warlord),
+	phoenixKnight(0x5a, false, Race.HUMAN, paladin),
+	hellKnight(0x5b, false, Race.HUMAN, darkAvenger),
+	sagittarius(0x5c, false, Race.HUMAN, hawkeye),
+	adventurer(0x5d, false, Race.HUMAN, treasureHunter),
+	archmage(0x5e, true, Race.HUMAN, sorceror),
+	soultaker(0x5f, true, Race.HUMAN, necromancer),
+	arcanaLord(0x60, true, true, Race.HUMAN, warlock),
+	cardinal(0x61, true, Race.HUMAN, bishop),
+	hierophant(0x62, true, Race.HUMAN, prophet),
+	
+	evaTemplar(0x63, false, Race.ELF, templeKnight),
+	swordMuse(0x64, false, Race.ELF, swordSinger),
+	windRider(0x65, false, Race.ELF, plainsWalker),
+	moonlightSentinel(0x66, false, Race.ELF, silverRanger),
+	mysticMuse(0x67, true, Race.ELF, spellsinger),
+	elementalMaster(0x68, true, true, Race.ELF, elementalSummoner),
+	evaSaint(0x69, true, Race.ELF, elder),
+	
+	shillienTemplar(0x6a, false, Race.DARK_ELF, shillienKnight),
+	spectralDancer(0x6b, false, Race.DARK_ELF, bladedancer),
+	ghostHunter(0x6c, false, Race.DARK_ELF, abyssWalker),
+	ghostSentinel(0x6d, false, Race.DARK_ELF, phantomRanger),
+	stormScreamer(0x6e, true, Race.DARK_ELF, spellhowler),
+	spectralMaster(0x6f, true, true, Race.DARK_ELF, phantomSummoner),
+	shillienSaint(0x70, true, Race.DARK_ELF, shillenElder),
+	
+	titan(0x71, false, Race.ORC, destroyer),
+	grandKhavatari(0x72, false, Race.ORC, tyrant),
+	dominator(0x73, true, Race.ORC, overlord),
+	doomcryer(0x74, true, Race.ORC, warcryer),
+	
+	fortuneSeeker(0x75, false, Race.DWARF, bountyHunter),
+	maestro(0x76, false, Race.DWARF, warsmith),
 	
 	dummyEntry31(0x77, false, null, null),
 	dummyEntry32(0x78, false, null, null),
 	dummyEntry33(0x79, false, null, null),
 	dummyEntry34(0x7a, false, null, null),
 	
-	maleSoldier(0x7b, false, PcRace.KAMAEL, null),
-	femaleSoldier(0x7C, false, PcRace.KAMAEL, null),
-	trooper(0x7D, false, PcRace.KAMAEL, maleSoldier),
-	warder(0x7E, false, PcRace.KAMAEL, femaleSoldier),
-	berserker(0x7F, false, PcRace.KAMAEL, trooper),
-	maleSoulbreaker(0x80, false, PcRace.KAMAEL, trooper),
-	femaleSoulbreaker(0x81, false, PcRace.KAMAEL, warder),
-	arbalester(0x82, false, PcRace.KAMAEL, warder),
-	doombringer(0x83, false, PcRace.KAMAEL, berserker),
-	maleSoulhound(0x84, false, PcRace.KAMAEL, maleSoulbreaker),
-	femaleSoulhound(0x85, false, PcRace.KAMAEL, femaleSoulbreaker),
-	trickster(0x86, false, PcRace.KAMAEL, arbalester),
-	inspector(0x87, false, PcRace.KAMAEL, warder), // DS: yes, both male/female inspectors use skills from warder
-	judicator(0x88, false, PcRace.KAMAEL, inspector);
+	maleSoldier(0x7b, false, Race.KAMAEL, null),
+	femaleSoldier(0x7C, false, Race.KAMAEL, null),
+	trooper(0x7D, false, Race.KAMAEL, maleSoldier),
+	warder(0x7E, false, Race.KAMAEL, femaleSoldier),
+	berserker(0x7F, false, Race.KAMAEL, trooper),
+	maleSoulbreaker(0x80, false, Race.KAMAEL, trooper),
+	femaleSoulbreaker(0x81, false, Race.KAMAEL, warder),
+	arbalester(0x82, false, Race.KAMAEL, warder),
+	doombringer(0x83, false, Race.KAMAEL, berserker),
+	maleSoulhound(0x84, false, Race.KAMAEL, maleSoulbreaker),
+	femaleSoulhound(0x85, false, Race.KAMAEL, femaleSoulbreaker),
+	trickster(0x86, false, Race.KAMAEL, arbalester),
+	inspector(0x87, false, Race.KAMAEL, warder), // DS: yes, both male/female inspectors use skills from warder
+	judicator(0x88, false, Race.KAMAEL, inspector);
 	
 	/** The Identifier of the Class */
 	private final int _id;
@@ -208,7 +208,7 @@ public enum ClassId implements IIdentifiable
 	private final boolean _isSummoner;
 	
 	/** The Race object of the class */
-	private final PcRace _race;
+	private final Race _race;
 	
 	/** The parent ClassId or null if this class is a root */
 	private final ClassId _parent;
@@ -217,15 +217,15 @@ public enum ClassId implements IIdentifiable
 	 * Class constructor.
 	 * @param pId the class Id.
 	 * @param pIsMage {code true} if the class is mage class.
-	 * @param pRace the race related to the class.
+	 * @param race the race related to the class.
 	 * @param pParent the parent class Id.
 	 */
-	private ClassId(int pId, boolean pIsMage, PcRace pRace, ClassId pParent)
+	private ClassId(int pId, boolean pIsMage, Race race, ClassId pParent)
 	{
 		_id = pId;
 		_isMage = pIsMage;
 		_isSummoner = false;
-		_race = pRace;
+		_race = race;
 		_parent = pParent;
 	}
 	
@@ -234,15 +234,15 @@ public enum ClassId implements IIdentifiable
 	 * @param pId the class Id.
 	 * @param pIsMage {code true} if the class is mage class.
 	 * @param pIsSummoner {code true} if the class is summoner class.
-	 * @param pRace the race related to the class.
+	 * @param race the race related to the class.
 	 * @param pParent the parent class Id.
 	 */
-	private ClassId(int pId, boolean pIsMage, boolean pIsSummoner, PcRace pRace, ClassId pParent)
+	private ClassId(int pId, boolean pIsMage, boolean pIsSummoner, Race race, ClassId pParent)
 	{
 		_id = pId;
 		_isMage = pIsMage;
 		_isSummoner = pIsSummoner;
-		_race = pRace;
+		_race = race;
 		_parent = pParent;
 	}
 	
@@ -275,7 +275,7 @@ public enum ClassId implements IIdentifiable
 	/**
 	 * @return the Race object of the class.
 	 */
-	public final PcRace getRace()
+	public final Race getRace()
 	{
 		return _race;
 	}

+ 114 - 114
L2J_Server_BETA/java/com/l2jserver/gameserver/model/base/PlayerClass.java

@@ -31,7 +31,7 @@ import java.util.EnumSet;
 import java.util.Set;
 
 import com.l2jserver.Config;
-import com.l2jserver.gameserver.enums.PcRace;
+import com.l2jserver.gameserver.enums.Race;
 import com.l2jserver.gameserver.model.actor.instance.L2PcInstance;
 
 /**
@@ -39,68 +39,68 @@ import com.l2jserver.gameserver.model.actor.instance.L2PcInstance;
  */
 public enum PlayerClass
 {
-	HumanFighter(PcRace.HUMAN, Fighter, First),
-	Warrior(PcRace.HUMAN, Fighter, Second),
-	Gladiator(PcRace.HUMAN, Fighter, Third),
-	Warlord(PcRace.HUMAN, Fighter, Third),
-	HumanKnight(PcRace.HUMAN, Fighter, Second),
-	Paladin(PcRace.HUMAN, Fighter, Third),
-	DarkAvenger(PcRace.HUMAN, Fighter, Third),
-	Rogue(PcRace.HUMAN, Fighter, Second),
-	TreasureHunter(PcRace.HUMAN, Fighter, Third),
-	Hawkeye(PcRace.HUMAN, Fighter, Third),
-	HumanMystic(PcRace.HUMAN, Mystic, First),
-	HumanWizard(PcRace.HUMAN, Mystic, Second),
-	Sorceror(PcRace.HUMAN, Mystic, Third),
-	Necromancer(PcRace.HUMAN, Mystic, Third),
-	Warlock(PcRace.HUMAN, Mystic, Third),
-	Cleric(PcRace.HUMAN, Priest, Second),
-	Bishop(PcRace.HUMAN, Priest, Third),
-	Prophet(PcRace.HUMAN, Priest, Third),
+	HumanFighter(Race.HUMAN, Fighter, First),
+	Warrior(Race.HUMAN, Fighter, Second),
+	Gladiator(Race.HUMAN, Fighter, Third),
+	Warlord(Race.HUMAN, Fighter, Third),
+	HumanKnight(Race.HUMAN, Fighter, Second),
+	Paladin(Race.HUMAN, Fighter, Third),
+	DarkAvenger(Race.HUMAN, Fighter, Third),
+	Rogue(Race.HUMAN, Fighter, Second),
+	TreasureHunter(Race.HUMAN, Fighter, Third),
+	Hawkeye(Race.HUMAN, Fighter, Third),
+	HumanMystic(Race.HUMAN, Mystic, First),
+	HumanWizard(Race.HUMAN, Mystic, Second),
+	Sorceror(Race.HUMAN, Mystic, Third),
+	Necromancer(Race.HUMAN, Mystic, Third),
+	Warlock(Race.HUMAN, Mystic, Third),
+	Cleric(Race.HUMAN, Priest, Second),
+	Bishop(Race.HUMAN, Priest, Third),
+	Prophet(Race.HUMAN, Priest, Third),
 	
-	ElvenFighter(PcRace.ELF, Fighter, First),
-	ElvenKnight(PcRace.ELF, Fighter, Second),
-	TempleKnight(PcRace.ELF, Fighter, Third),
-	Swordsinger(PcRace.ELF, Fighter, Third),
-	ElvenScout(PcRace.ELF, Fighter, Second),
-	Plainswalker(PcRace.ELF, Fighter, Third),
-	SilverRanger(PcRace.ELF, Fighter, Third),
-	ElvenMystic(PcRace.ELF, Mystic, First),
-	ElvenWizard(PcRace.ELF, Mystic, Second),
-	Spellsinger(PcRace.ELF, Mystic, Third),
-	ElementalSummoner(PcRace.ELF, Mystic, Third),
-	ElvenOracle(PcRace.ELF, Priest, Second),
-	ElvenElder(PcRace.ELF, Priest, Third),
+	ElvenFighter(Race.ELF, Fighter, First),
+	ElvenKnight(Race.ELF, Fighter, Second),
+	TempleKnight(Race.ELF, Fighter, Third),
+	Swordsinger(Race.ELF, Fighter, Third),
+	ElvenScout(Race.ELF, Fighter, Second),
+	Plainswalker(Race.ELF, Fighter, Third),
+	SilverRanger(Race.ELF, Fighter, Third),
+	ElvenMystic(Race.ELF, Mystic, First),
+	ElvenWizard(Race.ELF, Mystic, Second),
+	Spellsinger(Race.ELF, Mystic, Third),
+	ElementalSummoner(Race.ELF, Mystic, Third),
+	ElvenOracle(Race.ELF, Priest, Second),
+	ElvenElder(Race.ELF, Priest, Third),
 	
-	DarkElvenFighter(PcRace.DARK_ELF, Fighter, First),
-	PalusKnight(PcRace.DARK_ELF, Fighter, Second),
-	ShillienKnight(PcRace.DARK_ELF, Fighter, Third),
-	Bladedancer(PcRace.DARK_ELF, Fighter, Third),
-	Assassin(PcRace.DARK_ELF, Fighter, Second),
-	AbyssWalker(PcRace.DARK_ELF, Fighter, Third),
-	PhantomRanger(PcRace.DARK_ELF, Fighter, Third),
-	DarkElvenMystic(PcRace.DARK_ELF, Mystic, First),
-	DarkElvenWizard(PcRace.DARK_ELF, Mystic, Second),
-	Spellhowler(PcRace.DARK_ELF, Mystic, Third),
-	PhantomSummoner(PcRace.DARK_ELF, Mystic, Third),
-	ShillienOracle(PcRace.DARK_ELF, Priest, Second),
-	ShillienElder(PcRace.DARK_ELF, Priest, Third),
+	DarkElvenFighter(Race.DARK_ELF, Fighter, First),
+	PalusKnight(Race.DARK_ELF, Fighter, Second),
+	ShillienKnight(Race.DARK_ELF, Fighter, Third),
+	Bladedancer(Race.DARK_ELF, Fighter, Third),
+	Assassin(Race.DARK_ELF, Fighter, Second),
+	AbyssWalker(Race.DARK_ELF, Fighter, Third),
+	PhantomRanger(Race.DARK_ELF, Fighter, Third),
+	DarkElvenMystic(Race.DARK_ELF, Mystic, First),
+	DarkElvenWizard(Race.DARK_ELF, Mystic, Second),
+	Spellhowler(Race.DARK_ELF, Mystic, Third),
+	PhantomSummoner(Race.DARK_ELF, Mystic, Third),
+	ShillienOracle(Race.DARK_ELF, Priest, Second),
+	ShillienElder(Race.DARK_ELF, Priest, Third),
 	
-	OrcFighter(PcRace.ORC, Fighter, First),
-	OrcRaider(PcRace.ORC, Fighter, Second),
-	Destroyer(PcRace.ORC, Fighter, Third),
-	OrcMonk(PcRace.ORC, Fighter, Second),
-	Tyrant(PcRace.ORC, Fighter, Third),
-	OrcMystic(PcRace.ORC, Mystic, First),
-	OrcShaman(PcRace.ORC, Mystic, Second),
-	Overlord(PcRace.ORC, Mystic, Third),
-	Warcryer(PcRace.ORC, Mystic, Third),
+	OrcFighter(Race.ORC, Fighter, First),
+	OrcRaider(Race.ORC, Fighter, Second),
+	Destroyer(Race.ORC, Fighter, Third),
+	OrcMonk(Race.ORC, Fighter, Second),
+	Tyrant(Race.ORC, Fighter, Third),
+	OrcMystic(Race.ORC, Mystic, First),
+	OrcShaman(Race.ORC, Mystic, Second),
+	Overlord(Race.ORC, Mystic, Third),
+	Warcryer(Race.ORC, Mystic, Third),
 	
-	DwarvenFighter(PcRace.DWARF, Fighter, First),
-	DwarvenScavenger(PcRace.DWARF, Fighter, Second),
-	BountyHunter(PcRace.DWARF, Fighter, Third),
-	DwarvenArtisan(PcRace.DWARF, Fighter, Second),
-	Warsmith(PcRace.DWARF, Fighter, Third),
+	DwarvenFighter(Race.DWARF, Fighter, First),
+	DwarvenScavenger(Race.DWARF, Fighter, Second),
+	BountyHunter(Race.DWARF, Fighter, Third),
+	DwarvenArtisan(Race.DWARF, Fighter, Second),
+	Warsmith(Race.DWARF, Fighter, Third),
 	
 	dummyEntry1(null, null, null),
 	dummyEntry2(null, null, null),
@@ -135,63 +135,63 @@ public enum PlayerClass
 	/*
 	 * (3rd classes)
 	 */
-	duelist(PcRace.HUMAN, Fighter, Fourth),
-	dreadnought(PcRace.HUMAN, Fighter, Fourth),
-	phoenixKnight(PcRace.HUMAN, Fighter, Fourth),
-	hellKnight(PcRace.HUMAN, Fighter, Fourth),
-	sagittarius(PcRace.HUMAN, Fighter, Fourth),
-	adventurer(PcRace.HUMAN, Fighter, Fourth),
-	archmage(PcRace.HUMAN, Mystic, Fourth),
-	soultaker(PcRace.HUMAN, Mystic, Fourth),
-	arcanaLord(PcRace.HUMAN, Mystic, Fourth),
-	cardinal(PcRace.HUMAN, Priest, Fourth),
-	hierophant(PcRace.HUMAN, Priest, Fourth),
+	duelist(Race.HUMAN, Fighter, Fourth),
+	dreadnought(Race.HUMAN, Fighter, Fourth),
+	phoenixKnight(Race.HUMAN, Fighter, Fourth),
+	hellKnight(Race.HUMAN, Fighter, Fourth),
+	sagittarius(Race.HUMAN, Fighter, Fourth),
+	adventurer(Race.HUMAN, Fighter, Fourth),
+	archmage(Race.HUMAN, Mystic, Fourth),
+	soultaker(Race.HUMAN, Mystic, Fourth),
+	arcanaLord(Race.HUMAN, Mystic, Fourth),
+	cardinal(Race.HUMAN, Priest, Fourth),
+	hierophant(Race.HUMAN, Priest, Fourth),
 	
-	evaTemplar(PcRace.ELF, Fighter, Fourth),
-	swordMuse(PcRace.ELF, Fighter, Fourth),
-	windRider(PcRace.ELF, Fighter, Fourth),
-	moonlightSentinel(PcRace.ELF, Fighter, Fourth),
-	mysticMuse(PcRace.ELF, Mystic, Fourth),
-	elementalMaster(PcRace.ELF, Mystic, Fourth),
-	evaSaint(PcRace.ELF, Priest, Fourth),
+	evaTemplar(Race.ELF, Fighter, Fourth),
+	swordMuse(Race.ELF, Fighter, Fourth),
+	windRider(Race.ELF, Fighter, Fourth),
+	moonlightSentinel(Race.ELF, Fighter, Fourth),
+	mysticMuse(Race.ELF, Mystic, Fourth),
+	elementalMaster(Race.ELF, Mystic, Fourth),
+	evaSaint(Race.ELF, Priest, Fourth),
 	
-	shillienTemplar(PcRace.DARK_ELF, Fighter, Fourth),
-	spectralDancer(PcRace.DARK_ELF, Fighter, Fourth),
-	ghostHunter(PcRace.DARK_ELF, Fighter, Fourth),
-	ghostSentinel(PcRace.DARK_ELF, Fighter, Fourth),
-	stormScreamer(PcRace.DARK_ELF, Mystic, Fourth),
-	spectralMaster(PcRace.DARK_ELF, Mystic, Fourth),
-	shillienSaint(PcRace.DARK_ELF, Priest, Fourth),
+	shillienTemplar(Race.DARK_ELF, Fighter, Fourth),
+	spectralDancer(Race.DARK_ELF, Fighter, Fourth),
+	ghostHunter(Race.DARK_ELF, Fighter, Fourth),
+	ghostSentinel(Race.DARK_ELF, Fighter, Fourth),
+	stormScreamer(Race.DARK_ELF, Mystic, Fourth),
+	spectralMaster(Race.DARK_ELF, Mystic, Fourth),
+	shillienSaint(Race.DARK_ELF, Priest, Fourth),
 	
-	titan(PcRace.ORC, Fighter, Fourth),
-	grandKhavatari(PcRace.ORC, Fighter, Fourth),
-	dominator(PcRace.ORC, Mystic, Fourth),
-	doomcryer(PcRace.ORC, Mystic, Fourth),
+	titan(Race.ORC, Fighter, Fourth),
+	grandKhavatari(Race.ORC, Fighter, Fourth),
+	dominator(Race.ORC, Mystic, Fourth),
+	doomcryer(Race.ORC, Mystic, Fourth),
 	
-	fortuneSeeker(PcRace.DWARF, Fighter, Fourth),
-	maestro(PcRace.DWARF, Fighter, Fourth),
+	fortuneSeeker(Race.DWARF, Fighter, Fourth),
+	maestro(Race.DWARF, Fighter, Fourth),
 	
 	dummyEntry31(null, null, null),
 	dummyEntry32(null, null, null),
 	dummyEntry33(null, null, null),
 	dummyEntry34(null, null, null),
 	
-	maleSoldier(PcRace.KAMAEL, Fighter, First),
-	femaleSoldier(PcRace.KAMAEL, Fighter, First),
-	trooper(PcRace.KAMAEL, Fighter, Second),
-	warder(PcRace.KAMAEL, Fighter, Second),
-	berserker(PcRace.KAMAEL, Fighter, Third),
-	maleSoulbreaker(PcRace.KAMAEL, Fighter, Third),
-	femaleSoulbreaker(PcRace.KAMAEL, Fighter, Third),
-	arbalester(PcRace.KAMAEL, Fighter, Third),
-	doombringer(PcRace.KAMAEL, Fighter, Fourth),
-	maleSoulhound(PcRace.KAMAEL, Fighter, Fourth),
-	femaleSoulhound(PcRace.KAMAEL, Fighter, Fourth),
-	trickster(PcRace.KAMAEL, Fighter, Fourth),
-	inspector(PcRace.KAMAEL, Fighter, Third),
-	judicator(PcRace.KAMAEL, Fighter, Fourth);
+	maleSoldier(Race.KAMAEL, Fighter, First),
+	femaleSoldier(Race.KAMAEL, Fighter, First),
+	trooper(Race.KAMAEL, Fighter, Second),
+	warder(Race.KAMAEL, Fighter, Second),
+	berserker(Race.KAMAEL, Fighter, Third),
+	maleSoulbreaker(Race.KAMAEL, Fighter, Third),
+	femaleSoulbreaker(Race.KAMAEL, Fighter, Third),
+	arbalester(Race.KAMAEL, Fighter, Third),
+	doombringer(Race.KAMAEL, Fighter, Fourth),
+	maleSoulhound(Race.KAMAEL, Fighter, Fourth),
+	femaleSoulhound(Race.KAMAEL, Fighter, Fourth),
+	trickster(Race.KAMAEL, Fighter, Fourth),
+	inspector(Race.KAMAEL, Fighter, Third),
+	judicator(Race.KAMAEL, Fighter, Fourth);
 	
-	private PcRace _race;
+	private Race _race;
 	private ClassLevel _level;
 	private ClassType _type;
 	
@@ -235,9 +235,9 @@ public enum PlayerClass
 		subclassSetMap.put(Spellhowler, subclasseSet5);
 	}
 	
-	PlayerClass(PcRace pRace, ClassType pType, ClassLevel pLevel)
+	PlayerClass(Race race, ClassType pType, ClassLevel pLevel)
 	{
-		_race = pRace;
+		_race = race;
 		_level = pLevel;
 		_type = pType;
 	}
@@ -248,7 +248,7 @@ public enum PlayerClass
 		
 		if (_level == Third)
 		{
-			if (player.getRace() != PcRace.KAMAEL)
+			if (player.getRace() != Race.KAMAEL)
 			{
 				subclasses = EnumSet.copyOf(mainSubclassSet);
 				
@@ -257,14 +257,14 @@ public enum PlayerClass
 				switch (player.getRace())
 				{
 					case ELF:
-						subclasses.removeAll(getSet(PcRace.DARK_ELF, Third));
+						subclasses.removeAll(getSet(Race.DARK_ELF, Third));
 						break;
 					case DARK_ELF:
-						subclasses.removeAll(getSet(PcRace.ELF, Third));
+						subclasses.removeAll(getSet(Race.ELF, Third));
 						break;
 				}
 				
-				subclasses.removeAll(getSet(PcRace.KAMAEL, Third));
+				subclasses.removeAll(getSet(Race.KAMAEL, Third));
 				
 				Set<PlayerClass> unavailableClasses = subclassSetMap.get(this);
 				
@@ -276,7 +276,7 @@ public enum PlayerClass
 			}
 			else
 			{
-				subclasses = getSet(PcRace.KAMAEL, Third);
+				subclasses = getSet(Race.KAMAEL, Third);
 				subclasses.remove(this);
 				// Check sex, male subclasses female and vice versa
 				// If server owner set MaxSubclass > 3 some kamael's cannot take 4 sub
@@ -301,7 +301,7 @@ public enum PlayerClass
 		return subclasses;
 	}
 	
-	public static final EnumSet<PlayerClass> getSet(PcRace race, ClassLevel level)
+	public static final EnumSet<PlayerClass> getSet(Race race, ClassLevel level)
 	{
 		EnumSet<PlayerClass> allOf = EnumSet.noneOf(PlayerClass.class);
 		
@@ -318,7 +318,7 @@ public enum PlayerClass
 		return allOf;
 	}
 	
-	public final boolean isOfRace(PcRace pRace)
+	public final boolean isOfRace(Race pRace)
 	{
 		return _race == pRace;
 	}

+ 3 - 3
L2J_Server_BETA/java/com/l2jserver/gameserver/model/conditions/ConditionPlayerRace.java

@@ -18,7 +18,7 @@
  */
 package com.l2jserver.gameserver.model.conditions;
 
-import com.l2jserver.gameserver.enums.PcRace;
+import com.l2jserver.gameserver.enums.Race;
 import com.l2jserver.gameserver.model.stats.Env;
 import com.l2jserver.gameserver.util.Util;
 
@@ -28,13 +28,13 @@ import com.l2jserver.gameserver.util.Util;
  */
 public class ConditionPlayerRace extends Condition
 {
-	private final PcRace[] _races;
+	private final Race[] _races;
 	
 	/**
 	 * Instantiates a new condition player race.
 	 * @param races the list containing the allowed races.
 	 */
-	public ConditionPlayerRace(PcRace[] races)
+	public ConditionPlayerRace(Race[] races)
 	{
 		_races = races;
 	}

+ 0 - 50
L2J_Server_BETA/java/com/l2jserver/gameserver/model/conditions/ConditionTargetNpcRace.java

@@ -1,50 +0,0 @@
-/*
- * Copyright (C) 2004-2014 L2J Server
- * 
- * This file is part of L2J Server.
- * 
- * L2J Server is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- * 
- * L2J Server is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * General Public License for more details.
- * 
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see <http://www.gnu.org/licenses/>.
- */
-package com.l2jserver.gameserver.model.conditions;
-
-import java.util.Set;
-
-import com.l2jserver.gameserver.enums.NpcRace;
-import com.l2jserver.gameserver.model.actor.L2Npc;
-import com.l2jserver.gameserver.model.stats.Env;
-
-/**
- * Condition that checks target NPC race.
- * @author Nos
- */
-public class ConditionTargetNpcRace extends Condition
-{
-	private final Set<NpcRace> _races;
-	
-	/**
-	 * Instantiates a new condition target NPC race
-	 * @param races the races
-	 */
-	public ConditionTargetNpcRace(Set<NpcRace> races)
-	{
-		_races = races;
-	}
-	
-	@Override
-	public boolean testImpl(Env env)
-	{
-		final L2Npc npc = env.getTarget() instanceof L2Npc ? (L2Npc) env.getTarget() : null;
-		return (npc != null) && _races.contains(npc.getTemplate().getRace());
-	}
-}

+ 7 - 13
L2J_Server_BETA/java/com/l2jserver/gameserver/model/conditions/ConditionTargetRace.java

@@ -18,35 +18,29 @@
  */
 package com.l2jserver.gameserver.model.conditions;
 
-import com.l2jserver.gameserver.enums.PcRace;
-import com.l2jserver.gameserver.model.actor.instance.L2PcInstance;
+import com.l2jserver.gameserver.enums.Race;
 import com.l2jserver.gameserver.model.stats.Env;
-import com.l2jserver.gameserver.util.Util;
 
 /**
  * The Class ConditionTargetRace.
- * @author mkizub, Zoey76
+ * @author Zealar
  */
 public class ConditionTargetRace extends Condition
 {
-	private final PcRace[] _races;
+	private final Race _race;
 	
 	/**
 	 * Instantiates a new condition target race.
-	 * @param races the list containing the allowed races.
+	 * @param race containing the allowed race.
 	 */
-	public ConditionTargetRace(PcRace[] races)
+	public ConditionTargetRace(Race race)
 	{
-		_races = races;
+		_race = race;
 	}
 	
 	@Override
 	public boolean testImpl(Env env)
 	{
-		if (!(env.getTarget() instanceof L2PcInstance))
-		{
-			return false;
-		}
-		return Util.contains(_races, env.getTarget().getActingPlayer().getRace());
+		return _race == env.getTarget().getRace();
 	}
 }

+ 4 - 4
L2J_Server_BETA/java/com/l2jserver/gameserver/model/zone/type/L2RespawnZone.java

@@ -21,7 +21,7 @@ package com.l2jserver.gameserver.model.zone.type;
 import java.util.HashMap;
 import java.util.Map;
 
-import com.l2jserver.gameserver.enums.PcRace;
+import com.l2jserver.gameserver.enums.Race;
 import com.l2jserver.gameserver.model.actor.L2Character;
 import com.l2jserver.gameserver.model.actor.instance.L2PcInstance;
 import com.l2jserver.gameserver.model.zone.L2ZoneType;
@@ -32,7 +32,7 @@ import com.l2jserver.gameserver.model.zone.L2ZoneType;
  */
 public class L2RespawnZone extends L2ZoneType
 {
-	private final Map<PcRace, String> _raceRespawnPoint = new HashMap<>();
+	private final Map<Race, String> _raceRespawnPoint = new HashMap<>();
 	
 	public L2RespawnZone(int id)
 	{
@@ -51,10 +51,10 @@ public class L2RespawnZone extends L2ZoneType
 	
 	public void addRaceRespawnPoint(String race, String point)
 	{
-		_raceRespawnPoint.put(PcRace.valueOf(race), point);
+		_raceRespawnPoint.put(Race.valueOf(race), point);
 	}
 	
-	public Map<PcRace, String> getAllRespawnPoints()
+	public Map<Race, String> getAllRespawnPoints()
 	{
 		return _raceRespawnPoint;
 	}

+ 2 - 2
L2J_Server_BETA/java/com/l2jserver/gameserver/network/clientpackets/RequestCrystallizeItem.java

@@ -19,7 +19,7 @@
 package com.l2jserver.gameserver.network.clientpackets;
 
 import com.l2jserver.Config;
-import com.l2jserver.gameserver.enums.PcRace;
+import com.l2jserver.gameserver.enums.Race;
 import com.l2jserver.gameserver.enums.PrivateStoreType;
 import com.l2jserver.gameserver.model.L2World;
 import com.l2jserver.gameserver.model.actor.instance.L2PcInstance;
@@ -85,7 +85,7 @@ public final class RequestCrystallizeItem extends L2GameClientPacket
 		{
 			activeChar.sendPacket(SystemMessageId.CRYSTALLIZE_LEVEL_TOO_LOW);
 			activeChar.sendPacket(ActionFailed.STATIC_PACKET);
-			if ((activeChar.getRace() != PcRace.DWARF) && (activeChar.getClassId().ordinal() != 117) && (activeChar.getClassId().ordinal() != 55))
+			if ((activeChar.getRace() != Race.DWARF) && (activeChar.getClassId().ordinal() != 117) && (activeChar.getClassId().ordinal() != 55))
 			{
 				_log.info("Player " + activeChar.getClient() + " used crystalize with classid: " + activeChar.getClassId().ordinal());
 			}

+ 2 - 2
L2J_Server_BETA/java/com/l2jserver/gameserver/network/clientpackets/UseItem.java

@@ -25,7 +25,7 @@ import com.l2jserver.gameserver.ThreadPoolManager;
 import com.l2jserver.gameserver.ai.CtrlEvent;
 import com.l2jserver.gameserver.ai.CtrlIntention;
 import com.l2jserver.gameserver.ai.NextAction;
-import com.l2jserver.gameserver.enums.PcRace;
+import com.l2jserver.gameserver.enums.Race;
 import com.l2jserver.gameserver.enums.PrivateStoreType;
 import com.l2jserver.gameserver.handler.IItemHandler;
 import com.l2jserver.gameserver.handler.ItemHandler;
@@ -294,7 +294,7 @@ public final class UseItem extends L2GameClientPacket
 				case L2Item.SLOT_FULL_ARMOR:
 				case L2Item.SLOT_LEGS:
 				{
-					if ((activeChar.getRace() == PcRace.KAMAEL) && ((item.getItem().getItemType() == ArmorType.HEAVY) || (item.getItem().getItemType() == ArmorType.MAGIC)))
+					if ((activeChar.getRace() == Race.KAMAEL) && ((item.getItem().getItemType() == ArmorType.HEAVY) || (item.getItem().getItemType() == ArmorType.MAGIC)))
 					{
 						activeChar.sendPacket(SystemMessageId.CANNOT_EQUIP_ITEM_DUE_TO_BAD_CONDITION);
 						return;