Sync with L2jOrg and various adjustments.

This commit is contained in:
MobiusDevelopment
2019-10-10 09:57:48 +00:00
parent 0b9d2b8173
commit 8e6f33bc41
349 changed files with 31442 additions and 25115 deletions

View File

@@ -90,12 +90,7 @@
<class classId="116" name="Doom Cryer" parentClassId="52" />
<class classId="117" name="Fortune Seeker" parentClassId="55" />
<class classId="118" name="Maestro" parentClassId="57" />
<!-- NPCs -->
<class classId="119" name="World Trap" />
<class classId="120" name="Player Trap" />
<class classId="121" name="Double Ghost" />
<class classId="122" name="Siege Attacker" />
<!-- Third Classes Kamael -->
<!-- Kamael -->
<class classId="123" name="Male Kamael Soldier" />
<class classId="124" name="Female Kamael Soldier" />
<class classId="125" name="Trooper" parentClassId="123" />

View File

@@ -162,7 +162,7 @@ public class SkillTreesData implements IXmlReader
if (attr != null)
{
cId = Integer.parseInt(attr.getNodeValue());
classId = ClassId.values()[cId];
classId = ClassId.getClassId(cId);
}
else
{
@@ -175,7 +175,7 @@ public class SkillTreesData implements IXmlReader
final int parentClassId = Integer.parseInt(attr.getNodeValue());
if ((cId > -1) && (cId != parentClassId) && (parentClassId > -1) && !_parentClassMap.containsKey(classId))
{
_parentClassMap.put(classId, ClassId.values()[parentClassId]);
_parentClassMap.put(classId, ClassId.getClassId(parentClassId));
}
}

View File

@@ -252,6 +252,17 @@ public class WorldRegion
public void setSurroundingRegions(WorldRegion[] regions)
{
_surroundingRegions = regions;
// Make sure that this region is always the first region to improve bulk operations when this region should be updated first.
for (int i = 0; i < _surroundingRegions.length; i++)
{
if (_surroundingRegions[i] == this)
{
final WorldRegion first = _surroundingRegions[0];
_surroundingRegions[0] = this;
_surroundingRegions[i] = first;
}
}
}
public WorldRegion[] getSurroundingRegions()

View File

@@ -1257,7 +1257,7 @@ public class PlayerInstance extends Playable
public void setBaseClass(ClassId classId)
{
_baseClass = classId.ordinal();
_baseClass = classId.getId();
}
public boolean isInStoreMode()

View File

@@ -820,13 +820,13 @@ public class VillageMasterInstance extends NpcInstance
return false;
}
final ClassId cid = ClassId.values()[classId];
final ClassId cid = ClassId.getClassId(classId);
SubClass sub;
ClassId subClassId;
for (Iterator<SubClass> subList = iterSubClasses(player); subList.hasNext();)
{
sub = subList.next();
subClassId = ClassId.values()[sub.getClassId()];
subClassId = ClassId.getClassId(sub.getClassId());
if (subClassId.equalsOrChildOf(cid))
{

View File

@@ -16,7 +16,9 @@
*/
package org.l2jmobius.gameserver.model.base;
import java.util.HashMap;
import java.util.HashSet;
import java.util.Map;
import java.util.Set;
import org.l2jmobius.gameserver.enums.Race;
@@ -103,37 +105,6 @@ public enum ClassId implements IIdentifiable
ARTISAN(56, false, Race.DWARF, DWARVEN_FIGHTER),
WARSMITH(57, false, Race.DWARF, ARTISAN),
DUMMY_ENTRY_1(58, false, null, null),
DUMMY_ENTRY_2(59, false, null, null),
DUMMY_ENTRY_3(60, false, null, null),
DUMMY_ENTRY_4(61, false, null, null),
DUMMY_ENTRY_5(62, false, null, null),
DUMMY_ENTRY_6(63, false, null, null),
DUMMY_ENTRY_7(64, false, null, null),
DUMMY_ENTRY_8(65, false, null, null),
DUMMY_ENTRY_9(66, false, null, null),
DUMMY_ENTRY_10(67, false, null, null),
DUMMY_ENTRY_11(68, false, null, null),
DUMMY_ENTRY_12(69, false, null, null),
DUMMY_ENTRY_13(70, false, null, null),
DUMMY_ENTRY_14(71, false, null, null),
DUMMY_ENTRY_15(72, false, null, null),
DUMMY_ENTRY_16(73, false, null, null),
DUMMY_ENTRY_17(74, false, null, null),
DUMMY_ENTRY_18(75, false, null, null),
DUMMY_ENTRY_19(76, false, null, null),
DUMMY_ENTRY_20(77, false, null, null),
DUMMY_ENTRY_21(78, false, null, null),
DUMMY_ENTRY_22(79, false, null, null),
DUMMY_ENTRY_23(80, false, null, null),
DUMMY_ENTRY_24(81, false, null, null),
DUMMY_ENTRY_25(82, false, null, null),
DUMMY_ENTRY_26(83, false, null, null),
DUMMY_ENTRY_27(84, false, null, null),
DUMMY_ENTRY_28(85, false, null, null),
DUMMY_ENTRY_29(86, false, null, null),
DUMMY_ENTRY_30(87, false, null, null),
DUELIST(88, false, Race.HUMAN, GLADIATOR),
DREADNOUGHT(89, false, Race.HUMAN, WARLORD),
PHOENIX_KNIGHT(90, false, Race.HUMAN, PALADIN),
@@ -169,12 +140,7 @@ public enum ClassId implements IIdentifiable
FORTUNE_SEEKER(117, false, Race.DWARF, BOUNTY_HUNTER),
MAESTRO(118, false, Race.DWARF, WARSMITH),
DUMMY_ENTRY_31(119, false, null, null),
DUMMY_ENTRY_32(120, false, null, null),
DUMMY_ENTRY_33(121, false, null, null),
DUMMY_ENTRY_34(122, false, null, null),
MALE_SOLDIER(123, false, Race.KAMAEL, null),
FEMALE_SOLDIER(124, false, Race.KAMAEL, null),
TROOPER(125, false, Race.KAMAEL, MALE_SOLDIER),
@@ -208,6 +174,20 @@ public enum ClassId implements IIdentifiable
/** List of available Class for next transfer **/
private final Set<ClassId> _nextClassIds = new HashSet<>(1);
private static Map<Integer, ClassId> _classIdMap = new HashMap<>(ClassId.values().length);
static
{
for (ClassId classId : ClassId.values())
{
_classIdMap.put(classId.getId(), classId);
}
}
public static ClassId getClassId(int cId)
{
return _classIdMap.get(cId);
}
/**
* Class constructor.
* @param pId the class Id.
@@ -351,18 +331,6 @@ public enum ClassId implements IIdentifiable
return _nextClassIds;
}
public static ClassId getClassId(int cId)
{
try
{
return ClassId.values()[cId];
}
catch (Exception e)
{
return null;
}
}
private final void addNextClassId(ClassId cId)
{
_nextClassIds.add(cId);