Pet level should be set properly to wanted value.

This commit is contained in:
MobiusDevelopment
2022-11-04 01:33:28 +00:00
parent 033808b5d2
commit 25fa7f050b
106 changed files with 260 additions and 198 deletions

View File

@@ -72,9 +72,9 @@ public class ExperienceData implements IXmlReader
{ {
MAX_LEVEL = Config.PLAYER_MAXIMUM_LEVEL; MAX_LEVEL = Config.PLAYER_MAXIMUM_LEVEL;
} }
if (MAX_PET_LEVEL > MAX_LEVEL) if (MAX_PET_LEVEL > (MAX_LEVEL + 1))
{ {
MAX_PET_LEVEL = MAX_LEVEL; // Pet level should not exceed owner level. MAX_PET_LEVEL = (byte) (MAX_LEVEL + 1); // Pet level should not exceed owner level.
} }
int maxLevel = 0; int maxLevel = 0;

View File

@@ -76,9 +76,9 @@ public class PetData
{ {
_minLevel = level; _minLevel = level;
} }
if (_maxLevel < (level - 1)) if (_maxLevel < level)
{ {
_maxLevel = level - 1; _maxLevel = level;
} }
_levelStats.put(level, data); _levelStats.put(level, data);
} }
@@ -185,7 +185,6 @@ public class PetData
} }
/** /**
* TODO: Simplify this.
* @param skillId the skill Id. * @param skillId the skill Id.
* @param petLvl the pet level. * @param petLvl the pet level.
* @return the level of the skill for the given skill Id and pet level. * @return the level of the skill for the given skill Id and pet level.

View File

@@ -49,7 +49,7 @@ public class PetLevelData
public PetLevelData(StatSet set) public PetLevelData(StatSet set)
{ {
_ownerExpTaken = set.getInt("get_exp_type"); _ownerExpTaken = set.getInt("get_exp_type");
_petMaxExp = set.getLong("exp"); _petMaxExp = (long) set.getDouble("exp");
_petMaxHP = set.getFloat("org_hp"); _petMaxHP = set.getFloat("org_hp");
_petMaxMP = set.getFloat("org_mp"); _petMaxMP = set.getFloat("org_mp");
_petPAtk = set.getFloat("org_pattack"); _petPAtk = set.getFloat("org_pattack");

View File

@@ -72,9 +72,9 @@ public class ExperienceData implements IXmlReader
{ {
MAX_LEVEL = Config.PLAYER_MAXIMUM_LEVEL; MAX_LEVEL = Config.PLAYER_MAXIMUM_LEVEL;
} }
if (MAX_PET_LEVEL > MAX_LEVEL) if (MAX_PET_LEVEL > (MAX_LEVEL + 1))
{ {
MAX_PET_LEVEL = MAX_LEVEL; // Pet level should not exceed owner level. MAX_PET_LEVEL = (byte) (MAX_LEVEL + 1); // Pet level should not exceed owner level.
} }
int maxLevel = 0; int maxLevel = 0;

View File

@@ -76,9 +76,9 @@ public class PetData
{ {
_minLevel = level; _minLevel = level;
} }
if (_maxLevel < (level - 1)) if (_maxLevel < level)
{ {
_maxLevel = level - 1; _maxLevel = level;
} }
_levelStats.put(level, data); _levelStats.put(level, data);
} }
@@ -185,7 +185,6 @@ public class PetData
} }
/** /**
* TODO: Simplify this.
* @param skillId the skill Id. * @param skillId the skill Id.
* @param petLvl the pet level. * @param petLvl the pet level.
* @return the level of the skill for the given skill Id and pet level. * @return the level of the skill for the given skill Id and pet level.

View File

@@ -49,7 +49,7 @@ public class PetLevelData
public PetLevelData(StatSet set) public PetLevelData(StatSet set)
{ {
_ownerExpTaken = set.getInt("get_exp_type"); _ownerExpTaken = set.getInt("get_exp_type");
_petMaxExp = set.getLong("exp"); _petMaxExp = (long) set.getDouble("exp");
_petMaxHP = set.getFloat("org_hp"); _petMaxHP = set.getFloat("org_hp");
_petMaxMP = set.getFloat("org_mp"); _petMaxMP = set.getFloat("org_mp");
_petPAtk = set.getFloat("org_pattack"); _petPAtk = set.getFloat("org_pattack");

View File

@@ -72,9 +72,9 @@ public class ExperienceData implements IXmlReader
{ {
MAX_LEVEL = Config.PLAYER_MAXIMUM_LEVEL; MAX_LEVEL = Config.PLAYER_MAXIMUM_LEVEL;
} }
if (MAX_PET_LEVEL > MAX_LEVEL) if (MAX_PET_LEVEL > (MAX_LEVEL + 1))
{ {
MAX_PET_LEVEL = MAX_LEVEL; // Pet level should not exceed owner level. MAX_PET_LEVEL = (byte) (MAX_LEVEL + 1); // Pet level should not exceed owner level.
} }
int maxLevel = 0; int maxLevel = 0;

View File

@@ -76,9 +76,9 @@ public class PetData
{ {
_minLevel = level; _minLevel = level;
} }
if (_maxLevel < (level - 1)) if (_maxLevel < level)
{ {
_maxLevel = level - 1; _maxLevel = level;
} }
_levelStats.put(level, data); _levelStats.put(level, data);
} }
@@ -185,7 +185,6 @@ public class PetData
} }
/** /**
* TODO: Simplify this.
* @param skillId the skill Id. * @param skillId the skill Id.
* @param petLvl the pet level. * @param petLvl the pet level.
* @return the level of the skill for the given skill Id and pet level. * @return the level of the skill for the given skill Id and pet level.

View File

@@ -49,7 +49,7 @@ public class PetLevelData
public PetLevelData(StatSet set) public PetLevelData(StatSet set)
{ {
_ownerExpTaken = set.getInt("get_exp_type"); _ownerExpTaken = set.getInt("get_exp_type");
_petMaxExp = set.getLong("exp"); _petMaxExp = (long) set.getDouble("exp");
_petMaxHP = set.getFloat("org_hp"); _petMaxHP = set.getFloat("org_hp");
_petMaxMP = set.getFloat("org_mp"); _petMaxMP = set.getFloat("org_mp");
_petPAtk = set.getFloat("org_pattack"); _petPAtk = set.getFloat("org_pattack");

View File

@@ -72,9 +72,9 @@ public class ExperienceData implements IXmlReader
{ {
MAX_LEVEL = Config.PLAYER_MAXIMUM_LEVEL; MAX_LEVEL = Config.PLAYER_MAXIMUM_LEVEL;
} }
if (MAX_PET_LEVEL > MAX_LEVEL) if (MAX_PET_LEVEL > (MAX_LEVEL + 1))
{ {
MAX_PET_LEVEL = MAX_LEVEL; // Pet level should not exceed owner level. MAX_PET_LEVEL = (byte) (MAX_LEVEL + 1); // Pet level should not exceed owner level.
} }
int maxLevel = 0; int maxLevel = 0;

View File

@@ -76,9 +76,9 @@ public class PetData
{ {
_minLevel = level; _minLevel = level;
} }
if (_maxLevel < (level - 1)) if (_maxLevel < level)
{ {
_maxLevel = level - 1; _maxLevel = level;
} }
_levelStats.put(level, data); _levelStats.put(level, data);
} }
@@ -185,7 +185,6 @@ public class PetData
} }
/** /**
* TODO: Simplify this.
* @param skillId the skill Id. * @param skillId the skill Id.
* @param petLvl the pet level. * @param petLvl the pet level.
* @return the level of the skill for the given skill Id and pet level. * @return the level of the skill for the given skill Id and pet level.

View File

@@ -49,7 +49,7 @@ public class PetLevelData
public PetLevelData(StatSet set) public PetLevelData(StatSet set)
{ {
_ownerExpTaken = set.getInt("get_exp_type"); _ownerExpTaken = set.getInt("get_exp_type");
_petMaxExp = set.getLong("exp"); _petMaxExp = (long) set.getDouble("exp");
_petMaxHP = set.getFloat("org_hp"); _petMaxHP = set.getFloat("org_hp");
_petMaxMP = set.getFloat("org_mp"); _petMaxMP = set.getFloat("org_mp");
_petPAtk = set.getFloat("org_pattack"); _petPAtk = set.getFloat("org_pattack");

View File

@@ -72,9 +72,9 @@ public class ExperienceData implements IXmlReader
{ {
MAX_LEVEL = Config.PLAYER_MAXIMUM_LEVEL; MAX_LEVEL = Config.PLAYER_MAXIMUM_LEVEL;
} }
if (MAX_PET_LEVEL > MAX_LEVEL) if (MAX_PET_LEVEL > (MAX_LEVEL + 1))
{ {
MAX_PET_LEVEL = MAX_LEVEL; // Pet level should not exceed owner level. MAX_PET_LEVEL = (byte) (MAX_LEVEL + 1); // Pet level should not exceed owner level.
} }
int maxLevel = 0; int maxLevel = 0;

View File

@@ -76,9 +76,9 @@ public class PetData
{ {
_minLevel = level; _minLevel = level;
} }
if (_maxLevel < (level - 1)) if (_maxLevel < level)
{ {
_maxLevel = level - 1; _maxLevel = level;
} }
_levelStats.put(level, data); _levelStats.put(level, data);
} }
@@ -185,7 +185,6 @@ public class PetData
} }
/** /**
* TODO: Simplify this.
* @param skillId the skill Id. * @param skillId the skill Id.
* @param petLvl the pet level. * @param petLvl the pet level.
* @return the level of the skill for the given skill Id and pet level. * @return the level of the skill for the given skill Id and pet level.

View File

@@ -49,7 +49,7 @@ public class PetLevelData
public PetLevelData(StatSet set) public PetLevelData(StatSet set)
{ {
_ownerExpTaken = set.getInt("get_exp_type"); _ownerExpTaken = set.getInt("get_exp_type");
_petMaxExp = set.getLong("exp"); _petMaxExp = (long) set.getDouble("exp");
_petMaxHP = set.getFloat("org_hp"); _petMaxHP = set.getFloat("org_hp");
_petMaxMP = set.getFloat("org_mp"); _petMaxMP = set.getFloat("org_mp");
_petPAtk = set.getFloat("org_pattack"); _petPAtk = set.getFloat("org_pattack");

View File

@@ -72,9 +72,9 @@ public class ExperienceData implements IXmlReader
{ {
MAX_LEVEL = Config.PLAYER_MAXIMUM_LEVEL; MAX_LEVEL = Config.PLAYER_MAXIMUM_LEVEL;
} }
if (MAX_PET_LEVEL > MAX_LEVEL) if (MAX_PET_LEVEL > (MAX_LEVEL + 1))
{ {
MAX_PET_LEVEL = MAX_LEVEL; // Pet level should not exceed owner level. MAX_PET_LEVEL = (byte) (MAX_LEVEL + 1); // Pet level should not exceed owner level.
} }
int maxLevel = 0; int maxLevel = 0;

View File

@@ -76,9 +76,9 @@ public class PetData
{ {
_minLevel = level; _minLevel = level;
} }
if (_maxLevel < (level - 1)) if (_maxLevel < level)
{ {
_maxLevel = level - 1; _maxLevel = level;
} }
_levelStats.put(level, data); _levelStats.put(level, data);
} }
@@ -185,7 +185,6 @@ public class PetData
} }
/** /**
* TODO: Simplify this.
* @param skillId the skill Id. * @param skillId the skill Id.
* @param petLvl the pet level. * @param petLvl the pet level.
* @return the level of the skill for the given skill Id and pet level. * @return the level of the skill for the given skill Id and pet level.

View File

@@ -49,7 +49,7 @@ public class PetLevelData
public PetLevelData(StatSet set) public PetLevelData(StatSet set)
{ {
_ownerExpTaken = set.getInt("get_exp_type"); _ownerExpTaken = set.getInt("get_exp_type");
_petMaxExp = set.getLong("exp"); _petMaxExp = (long) set.getDouble("exp");
_petMaxHP = set.getFloat("org_hp"); _petMaxHP = set.getFloat("org_hp");
_petMaxMP = set.getFloat("org_mp"); _petMaxMP = set.getFloat("org_mp");
_petPAtk = set.getFloat("org_pattack"); _petPAtk = set.getFloat("org_pattack");

View File

@@ -72,9 +72,9 @@ public class ExperienceData implements IXmlReader
{ {
MAX_LEVEL = Config.PLAYER_MAXIMUM_LEVEL; MAX_LEVEL = Config.PLAYER_MAXIMUM_LEVEL;
} }
if (MAX_PET_LEVEL > MAX_LEVEL) if (MAX_PET_LEVEL > (MAX_LEVEL + 1))
{ {
MAX_PET_LEVEL = MAX_LEVEL; // Pet level should not exceed owner level. MAX_PET_LEVEL = (byte) (MAX_LEVEL + 1); // Pet level should not exceed owner level.
} }
int maxLevel = 0; int maxLevel = 0;

View File

@@ -76,9 +76,9 @@ public class PetData
{ {
_minLevel = level; _minLevel = level;
} }
if (_maxLevel < (level - 1)) if (_maxLevel < level)
{ {
_maxLevel = level - 1; _maxLevel = level;
} }
_levelStats.put(level, data); _levelStats.put(level, data);
} }
@@ -185,7 +185,6 @@ public class PetData
} }
/** /**
* TODO: Simplify this.
* @param skillId the skill Id. * @param skillId the skill Id.
* @param petLvl the pet level. * @param petLvl the pet level.
* @return the level of the skill for the given skill Id and pet level. * @return the level of the skill for the given skill Id and pet level.

View File

@@ -49,7 +49,7 @@ public class PetLevelData
public PetLevelData(StatSet set) public PetLevelData(StatSet set)
{ {
_ownerExpTaken = set.getInt("get_exp_type"); _ownerExpTaken = set.getInt("get_exp_type");
_petMaxExp = set.getLong("exp"); _petMaxExp = (long) set.getDouble("exp");
_petMaxHP = set.getFloat("org_hp"); _petMaxHP = set.getFloat("org_hp");
_petMaxMP = set.getFloat("org_mp"); _petMaxMP = set.getFloat("org_mp");
_petPAtk = set.getFloat("org_pattack"); _petPAtk = set.getFloat("org_pattack");

View File

@@ -72,9 +72,9 @@ public class ExperienceData implements IXmlReader
{ {
MAX_LEVEL = Config.PLAYER_MAXIMUM_LEVEL; MAX_LEVEL = Config.PLAYER_MAXIMUM_LEVEL;
} }
if (MAX_PET_LEVEL > MAX_LEVEL) if (MAX_PET_LEVEL > (MAX_LEVEL + 1))
{ {
MAX_PET_LEVEL = MAX_LEVEL; // Pet level should not exceed owner level. MAX_PET_LEVEL = (byte) (MAX_LEVEL + 1); // Pet level should not exceed owner level.
} }
int maxLevel = 0; int maxLevel = 0;

View File

@@ -76,9 +76,9 @@ public class PetData
{ {
_minLevel = level; _minLevel = level;
} }
if (_maxLevel < (level - 1)) if (_maxLevel < level)
{ {
_maxLevel = level - 1; _maxLevel = level;
} }
_levelStats.put(level, data); _levelStats.put(level, data);
} }
@@ -185,7 +185,6 @@ public class PetData
} }
/** /**
* TODO: Simplify this.
* @param skillId the skill Id. * @param skillId the skill Id.
* @param petLvl the pet level. * @param petLvl the pet level.
* @return the level of the skill for the given skill Id and pet level. * @return the level of the skill for the given skill Id and pet level.

View File

@@ -49,7 +49,7 @@ public class PetLevelData
public PetLevelData(StatSet set) public PetLevelData(StatSet set)
{ {
_ownerExpTaken = set.getInt("get_exp_type"); _ownerExpTaken = set.getInt("get_exp_type");
_petMaxExp = set.getLong("exp"); _petMaxExp = (long) set.getDouble("exp");
_petMaxHP = set.getFloat("org_hp"); _petMaxHP = set.getFloat("org_hp");
_petMaxMP = set.getFloat("org_mp"); _petMaxMP = set.getFloat("org_mp");
_petPAtk = set.getFloat("org_pattack"); _petPAtk = set.getFloat("org_pattack");

View File

@@ -72,9 +72,9 @@ public class ExperienceData implements IXmlReader
{ {
MAX_LEVEL = Config.PLAYER_MAXIMUM_LEVEL; MAX_LEVEL = Config.PLAYER_MAXIMUM_LEVEL;
} }
if (MAX_PET_LEVEL > MAX_LEVEL) if (MAX_PET_LEVEL > (MAX_LEVEL + 1))
{ {
MAX_PET_LEVEL = MAX_LEVEL; // Pet level should not exceed owner level. MAX_PET_LEVEL = MAX_LEVEL + 1; // Pet level should not exceed owner level.
} }
int maxLevel = 0; int maxLevel = 0;

View File

@@ -76,9 +76,9 @@ public class PetData
{ {
_minLevel = level; _minLevel = level;
} }
if (_maxLevel < (level - 1)) if (_maxLevel < level)
{ {
_maxLevel = level - 1; _maxLevel = level;
} }
_levelStats.put(level, data); _levelStats.put(level, data);
} }
@@ -185,7 +185,6 @@ public class PetData
} }
/** /**
* TODO: Simplify this.
* @param skillId the skill Id. * @param skillId the skill Id.
* @param petLvl the pet level. * @param petLvl the pet level.
* @return the level of the skill for the given skill Id and pet level. * @return the level of the skill for the given skill Id and pet level.

View File

@@ -49,7 +49,7 @@ public class PetLevelData
public PetLevelData(StatSet set) public PetLevelData(StatSet set)
{ {
_ownerExpTaken = set.getInt("get_exp_type"); _ownerExpTaken = set.getInt("get_exp_type");
_petMaxExp = set.getLong("exp"); _petMaxExp = (long) set.getDouble("exp");
_petMaxHP = set.getFloat("org_hp"); _petMaxHP = set.getFloat("org_hp");
_petMaxMP = set.getFloat("org_mp"); _petMaxMP = set.getFloat("org_mp");
_petPAtk = set.getFloat("org_pattack"); _petPAtk = set.getFloat("org_pattack");

View File

@@ -854,7 +854,7 @@ public class Pet extends Summon
return new Pet(template, owner, control); return new Pet(template, owner, control);
} }
pet = new Pet(template, owner, control, rset.getByte("level")); pet = new Pet(template, owner, control, rset.getInt("level"));
pet._respawned = true; pet._respawned = true;
pet.setName(rset.getString("name")); pet.setName(rset.getString("name"));

View File

@@ -72,9 +72,9 @@ public class ExperienceData implements IXmlReader
{ {
MAX_LEVEL = Config.PLAYER_MAXIMUM_LEVEL; MAX_LEVEL = Config.PLAYER_MAXIMUM_LEVEL;
} }
if (MAX_PET_LEVEL > MAX_LEVEL) if (MAX_PET_LEVEL > (MAX_LEVEL + 1))
{ {
MAX_PET_LEVEL = MAX_LEVEL; // Pet level should not exceed owner level. MAX_PET_LEVEL = MAX_LEVEL + 1; // Pet level should not exceed owner level.
} }
int maxLevel = 0; int maxLevel = 0;

View File

@@ -76,9 +76,9 @@ public class PetData
{ {
_minLevel = level; _minLevel = level;
} }
if (_maxLevel < (level - 1)) if (_maxLevel < level)
{ {
_maxLevel = level - 1; _maxLevel = level;
} }
_levelStats.put(level, data); _levelStats.put(level, data);
} }
@@ -185,7 +185,6 @@ public class PetData
} }
/** /**
* TODO: Simplify this.
* @param skillId the skill Id. * @param skillId the skill Id.
* @param petLvl the pet level. * @param petLvl the pet level.
* @return the level of the skill for the given skill Id and pet level. * @return the level of the skill for the given skill Id and pet level.

View File

@@ -49,7 +49,7 @@ public class PetLevelData
public PetLevelData(StatSet set) public PetLevelData(StatSet set)
{ {
_ownerExpTaken = set.getInt("get_exp_type"); _ownerExpTaken = set.getInt("get_exp_type");
_petMaxExp = set.getLong("exp"); _petMaxExp = (long) set.getDouble("exp");
_petMaxHP = set.getFloat("org_hp"); _petMaxHP = set.getFloat("org_hp");
_petMaxMP = set.getFloat("org_mp"); _petMaxMP = set.getFloat("org_mp");
_petPAtk = set.getFloat("org_pattack"); _petPAtk = set.getFloat("org_pattack");

View File

@@ -854,7 +854,7 @@ public class Pet extends Summon
return new Pet(template, owner, control); return new Pet(template, owner, control);
} }
pet = new Pet(template, owner, control, rset.getByte("level")); pet = new Pet(template, owner, control, rset.getInt("level"));
pet._respawned = true; pet._respawned = true;
pet.setName(rset.getString("name")); pet.setName(rset.getString("name"));

View File

@@ -72,9 +72,9 @@ public class ExperienceData implements IXmlReader
{ {
MAX_LEVEL = Config.PLAYER_MAXIMUM_LEVEL; MAX_LEVEL = Config.PLAYER_MAXIMUM_LEVEL;
} }
if (MAX_PET_LEVEL > MAX_LEVEL) if (MAX_PET_LEVEL > (MAX_LEVEL + 1))
{ {
MAX_PET_LEVEL = MAX_LEVEL; // Pet level should not exceed owner level. MAX_PET_LEVEL = MAX_LEVEL + 1; // Pet level should not exceed owner level.
} }
int maxLevel = 0; int maxLevel = 0;

View File

@@ -76,9 +76,9 @@ public class PetData
{ {
_minLevel = level; _minLevel = level;
} }
if (_maxLevel < (level - 1)) if (_maxLevel < level)
{ {
_maxLevel = level - 1; _maxLevel = level;
} }
_levelStats.put(level, data); _levelStats.put(level, data);
} }
@@ -185,7 +185,6 @@ public class PetData
} }
/** /**
* TODO: Simplify this.
* @param skillId the skill Id. * @param skillId the skill Id.
* @param petLvl the pet level. * @param petLvl the pet level.
* @return the level of the skill for the given skill Id and pet level. * @return the level of the skill for the given skill Id and pet level.

View File

@@ -49,7 +49,7 @@ public class PetLevelData
public PetLevelData(StatSet set) public PetLevelData(StatSet set)
{ {
_ownerExpTaken = set.getInt("get_exp_type"); _ownerExpTaken = set.getInt("get_exp_type");
_petMaxExp = set.getLong("exp"); _petMaxExp = (long) set.getDouble("exp");
_petMaxHP = set.getFloat("org_hp"); _petMaxHP = set.getFloat("org_hp");
_petMaxMP = set.getFloat("org_mp"); _petMaxMP = set.getFloat("org_mp");
_petPAtk = set.getFloat("org_pattack"); _petPAtk = set.getFloat("org_pattack");

View File

@@ -854,7 +854,7 @@ public class Pet extends Summon
return new Pet(template, owner, control); return new Pet(template, owner, control);
} }
pet = new Pet(template, owner, control, rset.getByte("level")); pet = new Pet(template, owner, control, rset.getInt("level"));
pet._respawned = true; pet._respawned = true;
pet.setName(rset.getString("name")); pet.setName(rset.getString("name"));

View File

@@ -72,9 +72,9 @@ public class ExperienceData implements IXmlReader
{ {
MAX_LEVEL = Config.PLAYER_MAXIMUM_LEVEL; MAX_LEVEL = Config.PLAYER_MAXIMUM_LEVEL;
} }
if (MAX_PET_LEVEL > MAX_LEVEL) if (MAX_PET_LEVEL > (MAX_LEVEL + 1))
{ {
MAX_PET_LEVEL = MAX_LEVEL; // Pet level should not exceed owner level. MAX_PET_LEVEL = MAX_LEVEL + 1; // Pet level should not exceed owner level.
} }
int maxLevel = 0; int maxLevel = 0;

View File

@@ -76,9 +76,9 @@ public class PetData
{ {
_minLevel = level; _minLevel = level;
} }
if (_maxLevel < (level - 1)) if (_maxLevel < level)
{ {
_maxLevel = level - 1; _maxLevel = level;
} }
_levelStats.put(level, data); _levelStats.put(level, data);
} }
@@ -185,7 +185,6 @@ public class PetData
} }
/** /**
* TODO: Simplify this.
* @param skillId the skill Id. * @param skillId the skill Id.
* @param petLvl the pet level. * @param petLvl the pet level.
* @return the level of the skill for the given skill Id and pet level. * @return the level of the skill for the given skill Id and pet level.

View File

@@ -49,7 +49,7 @@ public class PetLevelData
public PetLevelData(StatSet set) public PetLevelData(StatSet set)
{ {
_ownerExpTaken = set.getInt("get_exp_type"); _ownerExpTaken = set.getInt("get_exp_type");
_petMaxExp = set.getLong("exp"); _petMaxExp = (long) set.getDouble("exp");
_petMaxHP = set.getFloat("org_hp"); _petMaxHP = set.getFloat("org_hp");
_petMaxMP = set.getFloat("org_mp"); _petMaxMP = set.getFloat("org_mp");
_petPAtk = set.getFloat("org_pattack"); _petPAtk = set.getFloat("org_pattack");

View File

@@ -854,7 +854,7 @@ public class Pet extends Summon
return new Pet(template, owner, control); return new Pet(template, owner, control);
} }
pet = new Pet(template, owner, control, rset.getByte("level")); pet = new Pet(template, owner, control, rset.getInt("level"));
pet._respawned = true; pet._respawned = true;
pet.setName(rset.getString("name")); pet.setName(rset.getString("name"));

View File

@@ -70,9 +70,9 @@ public class ExperienceData implements IXmlReader
{ {
MAX_LEVEL = Config.PLAYER_MAXIMUM_LEVEL; MAX_LEVEL = Config.PLAYER_MAXIMUM_LEVEL;
} }
if (MAX_PET_LEVEL > MAX_LEVEL) if (MAX_PET_LEVEL > (MAX_LEVEL + 1))
{ {
MAX_PET_LEVEL = MAX_LEVEL; // Pet level should not exceed owner level. MAX_PET_LEVEL = (byte) (MAX_LEVEL + 1); // Pet level should not exceed owner level.
} }
int maxLevel = 0; int maxLevel = 0;

View File

@@ -174,7 +174,15 @@ public class PetDataTable implements IXmlReader
public PetLevelData getPetLevelData(int petId, int petLevel) public PetLevelData getPetLevelData(int petId, int petLevel)
{ {
final PetData pd = getPetData(petId); final PetData pd = getPetData(petId);
return pd != null ? pd.getPetLevelData(petLevel) : null; if (pd != null)
{
if (petLevel > pd.getMaxLevel())
{
return pd.getPetLevelData(pd.getMaxLevel());
}
return pd.getPetLevelData(petLevel);
}
return null;
} }
/** /**

View File

@@ -40,6 +40,7 @@ public class PetData
private int _load = 20000; private int _load = 20000;
private int _hungryLimit = 1; private int _hungryLimit = 1;
private int _minLevel = Byte.MAX_VALUE; private int _minLevel = Byte.MAX_VALUE;
private int _maxLevel = 0;
private boolean _syncLevel = false; private boolean _syncLevel = false;
private final Set<Integer> _food = new HashSet<>(); private final Set<Integer> _food = new HashSet<>();
@@ -75,6 +76,10 @@ public class PetData
{ {
_minLevel = level; _minLevel = level;
} }
if (_maxLevel < level)
{
_maxLevel = level;
}
_levelStats.put(level, data); _levelStats.put(level, data);
} }
@@ -119,6 +124,14 @@ public class PetData
return _minLevel; return _minLevel;
} }
/**
* @return the pet's maximum level.
*/
public int getMaxLevel()
{
return _maxLevel;
}
/** /**
* @return the pet's food list. * @return the pet's food list.
*/ */
@@ -172,7 +185,6 @@ public class PetData
} }
/** /**
* TODO: Simplify this.
* @param skillId the skill Id. * @param skillId the skill Id.
* @param petLvl the pet level. * @param petLvl the pet level.
* @return the level of the skill for the given skill Id and pet level. * @return the level of the skill for the given skill Id and pet level.
@@ -180,17 +192,19 @@ public class PetData
public int getAvailableLevel(int skillId, int petLvl) public int getAvailableLevel(int skillId, int petLvl)
{ {
int lvl = 0; int lvl = 0;
boolean found = false;
for (PetSkillLearn temp : _skills) for (PetSkillLearn temp : _skills)
{ {
if (temp.getSkillId() != skillId) if (temp.getSkillId() != skillId)
{ {
continue; continue;
} }
found = true;
if (temp.getSkillLevel() == 0) if (temp.getSkillLevel() == 0)
{ {
if (petLvl < 70) if (petLvl < 70)
{ {
lvl = petLvl / 10; lvl = (petLvl / 10);
if (lvl <= 0) if (lvl <= 0)
{ {
lvl = 1; lvl = 1;
@@ -198,7 +212,7 @@ public class PetData
} }
else else
{ {
lvl = 7 + ((petLvl - 70) / 5); lvl = (7 + ((petLvl - 70) / 5));
} }
// formula usable for skill that have 10 or more skill levels // formula usable for skill that have 10 or more skill levels
@@ -209,11 +223,15 @@ public class PetData
} }
break; break;
} }
if ((temp.getMinLevel() <= petLvl) && (temp.getSkillLevel() > lvl)) else if ((temp.getMinLevel() <= petLvl) && (temp.getSkillLevel() > lvl))
{ {
lvl = temp.getSkillLevel(); lvl = temp.getSkillLevel();
} }
} }
if (found && (lvl == 0))
{
return 1;
}
return lvl; return lvl;
} }

View File

@@ -49,7 +49,7 @@ public class PetLevelData
public PetLevelData(StatSet set) public PetLevelData(StatSet set)
{ {
_ownerExpTaken = set.getInt("get_exp_type"); _ownerExpTaken = set.getInt("get_exp_type");
_petMaxExp = set.getLong("exp"); _petMaxExp = (long) set.getDouble("exp");
_petMaxHP = set.getFloat("org_hp"); _petMaxHP = set.getFloat("org_hp");
_petMaxMP = set.getFloat("org_mp"); _petMaxMP = set.getFloat("org_mp");
_petPAtk = set.getFloat("org_pattack"); _petPAtk = set.getFloat("org_pattack");

View File

@@ -246,8 +246,9 @@ public class Pet extends Summon
pet.setTitle(owner.getName()); pet.setTitle(owner.getName());
if (data.isSynchLevel() && (pet.getLevel() != owner.getLevel())) if (data.isSynchLevel() && (pet.getLevel() != owner.getLevel()))
{ {
pet.getStat().setLevel((byte) owner.getLevel()); final byte availableLevel = (byte) Math.min(data.getMaxLevel(), owner.getLevel());
pet.getStat().setExp(pet.getStat().getExpForLevel(owner.getLevel())); pet.getStat().setLevel(availableLevel);
pet.getStat().setExp(pet.getStat().getExpForLevel(availableLevel));
} }
World.getInstance().addPet(owner.getObjectId(), pet); World.getInstance().addPet(owner.getObjectId(), pet);
} }

View File

@@ -267,8 +267,9 @@ public class PlayerStat extends PlayableStat
final Pet pet = (Pet) getActiveChar().getSummon(); final Pet pet = (Pet) getActiveChar().getSummon();
if (pet.getPetData().isSynchLevel() && (pet.getLevel() != getLevel())) if (pet.getPetData().isSynchLevel() && (pet.getLevel() != getLevel()))
{ {
pet.getStat().setLevel(getLevel()); final byte availableLevel = (byte) Math.min(pet.getPetData().getMaxLevel(), getLevel());
pet.getStat().getExpForLevel(getActiveChar().getLevel()); pet.getStat().setLevel(availableLevel);
pet.getStat().getExpForLevel(availableLevel);
pet.setCurrentHp(pet.getMaxHp()); pet.setCurrentHp(pet.getMaxHp());
pet.setCurrentMp(pet.getMaxMp()); pet.setCurrentMp(pet.getMaxMp());
pet.broadcastPacket(new SocialAction(getActiveChar().getObjectId(), SocialAction.LEVEL_UP)); pet.broadcastPacket(new SocialAction(getActiveChar().getObjectId(), SocialAction.LEVEL_UP));

View File

@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<table maxLevel="85" maxPetLevel="86" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../xsd/experience.xsd"> <table maxLevel="85" maxPetLevel="85" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../xsd/experience.xsd">
<experience level="1" tolevel="0" /> <experience level="1" tolevel="0" />
<experience level="2" tolevel="68" /> <experience level="2" tolevel="68" />
<experience level="3" tolevel="363" /> <experience level="3" tolevel="363" />

View File

@@ -70,9 +70,9 @@ public class ExperienceData implements IXmlReader
{ {
MAX_LEVEL = Config.PLAYER_MAXIMUM_LEVEL; MAX_LEVEL = Config.PLAYER_MAXIMUM_LEVEL;
} }
if (MAX_PET_LEVEL > MAX_LEVEL) if (MAX_PET_LEVEL > (MAX_LEVEL + 1))
{ {
MAX_PET_LEVEL = MAX_LEVEL; // Pet level should not exceed owner level. MAX_PET_LEVEL = (byte) (MAX_LEVEL + 1); // Pet level should not exceed owner level.
} }
int maxLevel = 0; int maxLevel = 0;

View File

@@ -174,7 +174,15 @@ public class PetDataTable implements IXmlReader
public PetLevelData getPetLevelData(int petId, int petLevel) public PetLevelData getPetLevelData(int petId, int petLevel)
{ {
final PetData pd = getPetData(petId); final PetData pd = getPetData(petId);
return pd != null ? pd.getPetLevelData(petLevel) : null; if (pd != null)
{
if (petLevel > pd.getMaxLevel())
{
return pd.getPetLevelData(pd.getMaxLevel());
}
return pd.getPetLevelData(petLevel);
}
return null;
} }
/** /**

View File

@@ -40,6 +40,7 @@ public class PetData
private int _load = 20000; private int _load = 20000;
private int _hungryLimit = 1; private int _hungryLimit = 1;
private int _minLevel = Byte.MAX_VALUE; private int _minLevel = Byte.MAX_VALUE;
private int _maxLevel = 0;
private boolean _syncLevel = false; private boolean _syncLevel = false;
private final Set<Integer> _food = new HashSet<>(); private final Set<Integer> _food = new HashSet<>();
@@ -75,6 +76,10 @@ public class PetData
{ {
_minLevel = level; _minLevel = level;
} }
if (_maxLevel < level)
{
_maxLevel = level;
}
_levelStats.put(level, data); _levelStats.put(level, data);
} }
@@ -119,6 +124,14 @@ public class PetData
return _minLevel; return _minLevel;
} }
/**
* @return the pet's maximum level.
*/
public int getMaxLevel()
{
return _maxLevel;
}
/** /**
* @return the pet's food list. * @return the pet's food list.
*/ */
@@ -172,7 +185,6 @@ public class PetData
} }
/** /**
* TODO: Simplify this.
* @param skillId the skill Id. * @param skillId the skill Id.
* @param petLvl the pet level. * @param petLvl the pet level.
* @return the level of the skill for the given skill Id and pet level. * @return the level of the skill for the given skill Id and pet level.
@@ -180,17 +192,19 @@ public class PetData
public int getAvailableLevel(int skillId, int petLvl) public int getAvailableLevel(int skillId, int petLvl)
{ {
int lvl = 0; int lvl = 0;
boolean found = false;
for (PetSkillLearn temp : _skills) for (PetSkillLearn temp : _skills)
{ {
if (temp.getSkillId() != skillId) if (temp.getSkillId() != skillId)
{ {
continue; continue;
} }
found = true;
if (temp.getSkillLevel() == 0) if (temp.getSkillLevel() == 0)
{ {
if (petLvl < 70) if (petLvl < 70)
{ {
lvl = petLvl / 10; lvl = (petLvl / 10);
if (lvl <= 0) if (lvl <= 0)
{ {
lvl = 1; lvl = 1;
@@ -198,7 +212,7 @@ public class PetData
} }
else else
{ {
lvl = 7 + ((petLvl - 70) / 5); lvl = (7 + ((petLvl - 70) / 5));
} }
// formula usable for skill that have 10 or more skill levels // formula usable for skill that have 10 or more skill levels
@@ -209,11 +223,15 @@ public class PetData
} }
break; break;
} }
if ((temp.getMinLevel() <= petLvl) && (temp.getSkillLevel() > lvl)) else if ((temp.getMinLevel() <= petLvl) && (temp.getSkillLevel() > lvl))
{ {
lvl = temp.getSkillLevel(); lvl = temp.getSkillLevel();
} }
} }
if (found && (lvl == 0))
{
return 1;
}
return lvl; return lvl;
} }

View File

@@ -49,7 +49,7 @@ public class PetLevelData
public PetLevelData(StatSet set) public PetLevelData(StatSet set)
{ {
_ownerExpTaken = set.getInt("get_exp_type"); _ownerExpTaken = set.getInt("get_exp_type");
_petMaxExp = set.getLong("exp"); _petMaxExp = (long) set.getDouble("exp");
_petMaxHP = set.getFloat("org_hp"); _petMaxHP = set.getFloat("org_hp");
_petMaxMP = set.getFloat("org_mp"); _petMaxMP = set.getFloat("org_mp");
_petPAtk = set.getFloat("org_pattack"); _petPAtk = set.getFloat("org_pattack");

View File

@@ -248,8 +248,9 @@ public class Pet extends Summon
pet.setTitle(owner.getName()); pet.setTitle(owner.getName());
if (data.isSynchLevel() && (pet.getLevel() != owner.getLevel())) if (data.isSynchLevel() && (pet.getLevel() != owner.getLevel()))
{ {
pet.getStat().setLevel((byte) owner.getLevel()); final byte availableLevel = (byte) Math.min(data.getMaxLevel(), owner.getLevel());
pet.getStat().setExp(pet.getStat().getExpForLevel(owner.getLevel())); pet.getStat().setLevel(availableLevel);
pet.getStat().setExp(pet.getStat().getExpForLevel(availableLevel));
} }
World.getInstance().addPet(owner.getObjectId(), pet); World.getInstance().addPet(owner.getObjectId(), pet);
} }

View File

@@ -280,8 +280,9 @@ public class PlayerStat extends PlayableStat
final Pet pet = (Pet) getActiveChar().getSummon(); final Pet pet = (Pet) getActiveChar().getSummon();
if (pet.getPetData().isSynchLevel() && (pet.getLevel() != getLevel())) if (pet.getPetData().isSynchLevel() && (pet.getLevel() != getLevel()))
{ {
pet.getStat().setLevel(getLevel()); final byte availableLevel = (byte) Math.min(pet.getPetData().getMaxLevel(), getLevel());
pet.getStat().getExpForLevel(getActiveChar().getLevel()); pet.getStat().setLevel(availableLevel);
pet.getStat().getExpForLevel(availableLevel);
pet.setCurrentHp(pet.getMaxHp()); pet.setCurrentHp(pet.getMaxHp());
pet.setCurrentMp(pet.getMaxMp()); pet.setCurrentMp(pet.getMaxMp());
pet.broadcastPacket(new SocialAction(getActiveChar().getObjectId(), SocialAction.LEVEL_UP)); pet.broadcastPacket(new SocialAction(getActiveChar().getObjectId(), SocialAction.LEVEL_UP));

View File

@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<table maxLevel="85" maxPetLevel="86" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../xsd/experience.xsd"> <table maxLevel="85" maxPetLevel="85" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../xsd/experience.xsd">
<experience level="1" tolevel="0" /> <experience level="1" tolevel="0" />
<experience level="2" tolevel="68" /> <experience level="2" tolevel="68" />
<experience level="3" tolevel="363" /> <experience level="3" tolevel="363" />

View File

@@ -70,9 +70,9 @@ public class ExperienceData implements IXmlReader
{ {
MAX_LEVEL = Config.PLAYER_MAXIMUM_LEVEL; MAX_LEVEL = Config.PLAYER_MAXIMUM_LEVEL;
} }
if (MAX_PET_LEVEL > MAX_LEVEL) if (MAX_PET_LEVEL > (MAX_LEVEL + 1))
{ {
MAX_PET_LEVEL = MAX_LEVEL; // Pet level should not exceed owner level. MAX_PET_LEVEL = (byte) (MAX_LEVEL + 1); // Pet level should not exceed owner level.
} }
int maxLevel = 0; int maxLevel = 0;

View File

@@ -174,7 +174,15 @@ public class PetDataTable implements IXmlReader
public PetLevelData getPetLevelData(int petId, int petLevel) public PetLevelData getPetLevelData(int petId, int petLevel)
{ {
final PetData pd = getPetData(petId); final PetData pd = getPetData(petId);
return pd != null ? pd.getPetLevelData(petLevel) : null; if (pd != null)
{
if (petLevel > pd.getMaxLevel())
{
return pd.getPetLevelData(pd.getMaxLevel());
}
return pd.getPetLevelData(petLevel);
}
return null;
} }
/** /**

View File

@@ -40,6 +40,7 @@ public class PetData
private int _load = 20000; private int _load = 20000;
private int _hungryLimit = 1; private int _hungryLimit = 1;
private int _minLevel = Byte.MAX_VALUE; private int _minLevel = Byte.MAX_VALUE;
private int _maxLevel = 0;
private boolean _syncLevel = false; private boolean _syncLevel = false;
private final Set<Integer> _food = new HashSet<>(); private final Set<Integer> _food = new HashSet<>();
@@ -75,6 +76,10 @@ public class PetData
{ {
_minLevel = level; _minLevel = level;
} }
if (_maxLevel < level)
{
_maxLevel = level;
}
_levelStats.put(level, data); _levelStats.put(level, data);
} }
@@ -119,6 +124,14 @@ public class PetData
return _minLevel; return _minLevel;
} }
/**
* @return the pet's maximum level.
*/
public int getMaxLevel()
{
return _maxLevel;
}
/** /**
* @return the pet's food list. * @return the pet's food list.
*/ */
@@ -172,7 +185,6 @@ public class PetData
} }
/** /**
* TODO: Simplify this.
* @param skillId the skill Id. * @param skillId the skill Id.
* @param petLvl the pet level. * @param petLvl the pet level.
* @return the level of the skill for the given skill Id and pet level. * @return the level of the skill for the given skill Id and pet level.
@@ -180,17 +192,19 @@ public class PetData
public int getAvailableLevel(int skillId, int petLvl) public int getAvailableLevel(int skillId, int petLvl)
{ {
int lvl = 0; int lvl = 0;
boolean found = false;
for (PetSkillLearn temp : _skills) for (PetSkillLearn temp : _skills)
{ {
if (temp.getSkillId() != skillId) if (temp.getSkillId() != skillId)
{ {
continue; continue;
} }
found = true;
if (temp.getSkillLevel() == 0) if (temp.getSkillLevel() == 0)
{ {
if (petLvl < 70) if (petLvl < 70)
{ {
lvl = petLvl / 10; lvl = (petLvl / 10);
if (lvl <= 0) if (lvl <= 0)
{ {
lvl = 1; lvl = 1;
@@ -198,7 +212,7 @@ public class PetData
} }
else else
{ {
lvl = 7 + ((petLvl - 70) / 5); lvl = (7 + ((petLvl - 70) / 5));
} }
// formula usable for skill that have 10 or more skill levels // formula usable for skill that have 10 or more skill levels
@@ -209,11 +223,15 @@ public class PetData
} }
break; break;
} }
if ((temp.getMinLevel() <= petLvl) && (temp.getSkillLevel() > lvl)) else if ((temp.getMinLevel() <= petLvl) && (temp.getSkillLevel() > lvl))
{ {
lvl = temp.getSkillLevel(); lvl = temp.getSkillLevel();
} }
} }
if (found && (lvl == 0))
{
return 1;
}
return lvl; return lvl;
} }

View File

@@ -49,7 +49,7 @@ public class PetLevelData
public PetLevelData(StatSet set) public PetLevelData(StatSet set)
{ {
_ownerExpTaken = set.getInt("get_exp_type"); _ownerExpTaken = set.getInt("get_exp_type");
_petMaxExp = set.getLong("exp"); _petMaxExp = (long) set.getDouble("exp");
_petMaxHP = set.getFloat("org_hp"); _petMaxHP = set.getFloat("org_hp");
_petMaxMP = set.getFloat("org_mp"); _petMaxMP = set.getFloat("org_mp");
_petPAtk = set.getFloat("org_pattack"); _petPAtk = set.getFloat("org_pattack");

View File

@@ -248,8 +248,9 @@ public class Pet extends Summon
pet.setTitle(owner.getName()); pet.setTitle(owner.getName());
if (data.isSynchLevel() && (pet.getLevel() != owner.getLevel())) if (data.isSynchLevel() && (pet.getLevel() != owner.getLevel()))
{ {
pet.getStat().setLevel((byte) owner.getLevel()); final byte availableLevel = (byte) Math.min(data.getMaxLevel(), owner.getLevel());
pet.getStat().setExp(pet.getStat().getExpForLevel(owner.getLevel())); pet.getStat().setLevel(availableLevel);
pet.getStat().setExp(pet.getStat().getExpForLevel(availableLevel));
} }
World.getInstance().addPet(owner.getObjectId(), pet); World.getInstance().addPet(owner.getObjectId(), pet);
} }

View File

@@ -313,8 +313,9 @@ public class PlayerStat extends PlayableStat
final Pet pet = (Pet) getActiveChar().getSummon(); final Pet pet = (Pet) getActiveChar().getSummon();
if (pet.getPetData().isSynchLevel() && (pet.getLevel() != getLevel())) if (pet.getPetData().isSynchLevel() && (pet.getLevel() != getLevel()))
{ {
pet.getStat().setLevel(getLevel()); final byte availableLevel = (byte) Math.min(pet.getPetData().getMaxLevel(), getLevel());
pet.getStat().getExpForLevel(getActiveChar().getLevel()); pet.getStat().setLevel(availableLevel);
pet.getStat().getExpForLevel(availableLevel);
pet.setCurrentHp(pet.getMaxHp()); pet.setCurrentHp(pet.getMaxHp());
pet.setCurrentMp(pet.getMaxMp()); pet.setCurrentMp(pet.getMaxMp());
pet.broadcastPacket(new SocialAction(getActiveChar().getObjectId(), SocialAction.LEVEL_UP)); pet.broadcastPacket(new SocialAction(getActiveChar().getObjectId(), SocialAction.LEVEL_UP));

View File

@@ -72,9 +72,9 @@ public class ExperienceData implements IXmlReader
{ {
MAX_LEVEL = Config.PLAYER_MAXIMUM_LEVEL; MAX_LEVEL = Config.PLAYER_MAXIMUM_LEVEL;
} }
if (MAX_PET_LEVEL > MAX_LEVEL) if (MAX_PET_LEVEL > (MAX_LEVEL + 1))
{ {
MAX_PET_LEVEL = MAX_LEVEL; // Pet level should not exceed owner level. MAX_PET_LEVEL = (byte) (MAX_LEVEL + 1); // Pet level should not exceed owner level.
} }
int maxLevel = 0; int maxLevel = 0;

View File

@@ -76,9 +76,9 @@ public class PetData
{ {
_minLevel = level; _minLevel = level;
} }
if (_maxLevel < (level - 1)) if (_maxLevel < level)
{ {
_maxLevel = level - 1; _maxLevel = level;
} }
_levelStats.put(level, data); _levelStats.put(level, data);
} }
@@ -185,7 +185,6 @@ public class PetData
} }
/** /**
* TODO: Simplify this.
* @param skillId the skill Id. * @param skillId the skill Id.
* @param petLvl the pet level. * @param petLvl the pet level.
* @return the level of the skill for the given skill Id and pet level. * @return the level of the skill for the given skill Id and pet level.

View File

@@ -49,7 +49,7 @@ public class PetLevelData
public PetLevelData(StatSet set) public PetLevelData(StatSet set)
{ {
_ownerExpTaken = set.getInt("get_exp_type"); _ownerExpTaken = set.getInt("get_exp_type");
_petMaxExp = set.getLong("exp"); _petMaxExp = (long) set.getDouble("exp");
_petMaxHP = set.getFloat("org_hp"); _petMaxHP = set.getFloat("org_hp");
_petMaxMP = set.getFloat("org_mp"); _petMaxMP = set.getFloat("org_mp");
_petPAtk = set.getFloat("org_pattack"); _petPAtk = set.getFloat("org_pattack");

View File

@@ -72,9 +72,9 @@ public class ExperienceData implements IXmlReader
{ {
MAX_LEVEL = Config.PLAYER_MAXIMUM_LEVEL; MAX_LEVEL = Config.PLAYER_MAXIMUM_LEVEL;
} }
if (MAX_PET_LEVEL > MAX_LEVEL) if (MAX_PET_LEVEL > (MAX_LEVEL + 1))
{ {
MAX_PET_LEVEL = MAX_LEVEL; // Pet level should not exceed owner level. MAX_PET_LEVEL = (byte) (MAX_LEVEL + 1); // Pet level should not exceed owner level.
} }
int maxLevel = 0; int maxLevel = 0;

View File

@@ -76,9 +76,9 @@ public class PetData
{ {
_minLevel = level; _minLevel = level;
} }
if (_maxLevel < (level - 1)) if (_maxLevel < level)
{ {
_maxLevel = level - 1; _maxLevel = level;
} }
_levelStats.put(level, data); _levelStats.put(level, data);
} }
@@ -185,7 +185,6 @@ public class PetData
} }
/** /**
* TODO: Simplify this.
* @param skillId the skill Id. * @param skillId the skill Id.
* @param petLvl the pet level. * @param petLvl the pet level.
* @return the level of the skill for the given skill Id and pet level. * @return the level of the skill for the given skill Id and pet level.

View File

@@ -49,7 +49,7 @@ public class PetLevelData
public PetLevelData(StatSet set) public PetLevelData(StatSet set)
{ {
_ownerExpTaken = set.getInt("get_exp_type"); _ownerExpTaken = set.getInt("get_exp_type");
_petMaxExp = set.getLong("exp"); _petMaxExp = (long) set.getDouble("exp");
_petMaxHP = set.getFloat("org_hp"); _petMaxHP = set.getFloat("org_hp");
_petMaxMP = set.getFloat("org_mp"); _petMaxMP = set.getFloat("org_mp");
_petPAtk = set.getFloat("org_pattack"); _petPAtk = set.getFloat("org_pattack");

View File

@@ -72,9 +72,9 @@ public class ExperienceData implements IXmlReader
{ {
MAX_LEVEL = Config.PLAYER_MAXIMUM_LEVEL; MAX_LEVEL = Config.PLAYER_MAXIMUM_LEVEL;
} }
if (MAX_PET_LEVEL > MAX_LEVEL) if (MAX_PET_LEVEL > (MAX_LEVEL + 1))
{ {
MAX_PET_LEVEL = MAX_LEVEL; // Pet level should not exceed owner level. MAX_PET_LEVEL = (byte) (MAX_LEVEL + 1); // Pet level should not exceed owner level.
} }
int maxLevel = 0; int maxLevel = 0;

View File

@@ -76,9 +76,9 @@ public class PetData
{ {
_minLevel = level; _minLevel = level;
} }
if (_maxLevel < (level - 1)) if (_maxLevel < level)
{ {
_maxLevel = level - 1; _maxLevel = level;
} }
_levelStats.put(level, data); _levelStats.put(level, data);
} }
@@ -185,7 +185,6 @@ public class PetData
} }
/** /**
* TODO: Simplify this.
* @param skillId the skill Id. * @param skillId the skill Id.
* @param petLvl the pet level. * @param petLvl the pet level.
* @return the level of the skill for the given skill Id and pet level. * @return the level of the skill for the given skill Id and pet level.

View File

@@ -49,7 +49,7 @@ public class PetLevelData
public PetLevelData(StatSet set) public PetLevelData(StatSet set)
{ {
_ownerExpTaken = set.getInt("get_exp_type"); _ownerExpTaken = set.getInt("get_exp_type");
_petMaxExp = set.getLong("exp"); _petMaxExp = (long) set.getDouble("exp");
_petMaxHP = set.getFloat("org_hp"); _petMaxHP = set.getFloat("org_hp");
_petMaxMP = set.getFloat("org_mp"); _petMaxMP = set.getFloat("org_mp");
_petPAtk = set.getFloat("org_pattack"); _petPAtk = set.getFloat("org_pattack");

View File

@@ -72,9 +72,9 @@ public class ExperienceData implements IXmlReader
{ {
MAX_LEVEL = Config.PLAYER_MAXIMUM_LEVEL; MAX_LEVEL = Config.PLAYER_MAXIMUM_LEVEL;
} }
if (MAX_PET_LEVEL > MAX_LEVEL) if (MAX_PET_LEVEL > (MAX_LEVEL + 1))
{ {
MAX_PET_LEVEL = MAX_LEVEL; // Pet level should not exceed owner level. MAX_PET_LEVEL = (byte) (MAX_LEVEL + 1); // Pet level should not exceed owner level.
} }
int maxLevel = 0; int maxLevel = 0;

View File

@@ -76,9 +76,9 @@ public class PetData
{ {
_minLevel = level; _minLevel = level;
} }
if (_maxLevel < (level - 1)) if (_maxLevel < level)
{ {
_maxLevel = level - 1; _maxLevel = level;
} }
_levelStats.put(level, data); _levelStats.put(level, data);
} }
@@ -185,7 +185,6 @@ public class PetData
} }
/** /**
* TODO: Simplify this.
* @param skillId the skill Id. * @param skillId the skill Id.
* @param petLvl the pet level. * @param petLvl the pet level.
* @return the level of the skill for the given skill Id and pet level. * @return the level of the skill for the given skill Id and pet level.

View File

@@ -49,7 +49,7 @@ public class PetLevelData
public PetLevelData(StatSet set) public PetLevelData(StatSet set)
{ {
_ownerExpTaken = set.getInt("get_exp_type"); _ownerExpTaken = set.getInt("get_exp_type");
_petMaxExp = set.getLong("exp"); _petMaxExp = (long) set.getDouble("exp");
_petMaxHP = set.getFloat("org_hp"); _petMaxHP = set.getFloat("org_hp");
_petMaxMP = set.getFloat("org_mp"); _petMaxMP = set.getFloat("org_mp");
_petPAtk = set.getFloat("org_pattack"); _petPAtk = set.getFloat("org_pattack");

View File

@@ -72,9 +72,9 @@ public class ExperienceData implements IXmlReader
{ {
MAX_LEVEL = Config.PLAYER_MAXIMUM_LEVEL; MAX_LEVEL = Config.PLAYER_MAXIMUM_LEVEL;
} }
if (MAX_PET_LEVEL > MAX_LEVEL) if (MAX_PET_LEVEL > (MAX_LEVEL + 1))
{ {
MAX_PET_LEVEL = MAX_LEVEL; // Pet level should not exceed owner level. MAX_PET_LEVEL = (byte) (MAX_LEVEL + 1); // Pet level should not exceed owner level.
} }
int maxLevel = 0; int maxLevel = 0;

View File

@@ -76,9 +76,9 @@ public class PetData
{ {
_minLevel = level; _minLevel = level;
} }
if (_maxLevel < (level - 1)) if (_maxLevel < level)
{ {
_maxLevel = level - 1; _maxLevel = level;
} }
_levelStats.put(level, data); _levelStats.put(level, data);
} }
@@ -185,7 +185,6 @@ public class PetData
} }
/** /**
* TODO: Simplify this.
* @param skillId the skill Id. * @param skillId the skill Id.
* @param petLvl the pet level. * @param petLvl the pet level.
* @return the level of the skill for the given skill Id and pet level. * @return the level of the skill for the given skill Id and pet level.

View File

@@ -49,7 +49,7 @@ public class PetLevelData
public PetLevelData(StatSet set) public PetLevelData(StatSet set)
{ {
_ownerExpTaken = set.getInt("get_exp_type"); _ownerExpTaken = set.getInt("get_exp_type");
_petMaxExp = set.getLong("exp"); _petMaxExp = (long) set.getDouble("exp");
_petMaxHP = set.getFloat("org_hp"); _petMaxHP = set.getFloat("org_hp");
_petMaxMP = set.getFloat("org_mp"); _petMaxMP = set.getFloat("org_mp");
_petPAtk = set.getFloat("org_pattack"); _petPAtk = set.getFloat("org_pattack");

View File

@@ -72,9 +72,9 @@ public class ExperienceData implements IXmlReader
{ {
MAX_LEVEL = Config.PLAYER_MAXIMUM_LEVEL; MAX_LEVEL = Config.PLAYER_MAXIMUM_LEVEL;
} }
if (MAX_PET_LEVEL > MAX_LEVEL) if (MAX_PET_LEVEL > (MAX_LEVEL + 1))
{ {
MAX_PET_LEVEL = MAX_LEVEL; // Pet level should not exceed owner level. MAX_PET_LEVEL = (byte) (MAX_LEVEL + 1); // Pet level should not exceed owner level.
} }
int maxLevel = 0; int maxLevel = 0;

View File

@@ -76,9 +76,9 @@ public class PetData
{ {
_minLevel = level; _minLevel = level;
} }
if (_maxLevel < (level - 1)) if (_maxLevel < level)
{ {
_maxLevel = level - 1; _maxLevel = level;
} }
_levelStats.put(level, data); _levelStats.put(level, data);
} }
@@ -185,7 +185,6 @@ public class PetData
} }
/** /**
* TODO: Simplify this.
* @param skillId the skill Id. * @param skillId the skill Id.
* @param petLvl the pet level. * @param petLvl the pet level.
* @return the level of the skill for the given skill Id and pet level. * @return the level of the skill for the given skill Id and pet level.

View File

@@ -49,7 +49,7 @@ public class PetLevelData
public PetLevelData(StatSet set) public PetLevelData(StatSet set)
{ {
_ownerExpTaken = set.getInt("get_exp_type"); _ownerExpTaken = set.getInt("get_exp_type");
_petMaxExp = set.getLong("exp"); _petMaxExp = (long) set.getDouble("exp");
_petMaxHP = set.getFloat("org_hp"); _petMaxHP = set.getFloat("org_hp");
_petMaxMP = set.getFloat("org_mp"); _petMaxMP = set.getFloat("org_mp");
_petPAtk = set.getFloat("org_pattack"); _petPAtk = set.getFloat("org_pattack");

View File

@@ -72,9 +72,9 @@ public class ExperienceData implements IXmlReader
{ {
MAX_LEVEL = Config.PLAYER_MAXIMUM_LEVEL; MAX_LEVEL = Config.PLAYER_MAXIMUM_LEVEL;
} }
if (MAX_PET_LEVEL > MAX_LEVEL) if (MAX_PET_LEVEL > (MAX_LEVEL + 1))
{ {
MAX_PET_LEVEL = MAX_LEVEL; // Pet level should not exceed owner level. MAX_PET_LEVEL = (byte) (MAX_LEVEL + 1); // Pet level should not exceed owner level.
} }
int maxLevel = 0; int maxLevel = 0;

View File

@@ -76,9 +76,9 @@ public class PetData
{ {
_minLevel = level; _minLevel = level;
} }
if (_maxLevel < (level - 1)) if (_maxLevel < level)
{ {
_maxLevel = level - 1; _maxLevel = level;
} }
_levelStats.put(level, data); _levelStats.put(level, data);
} }
@@ -185,7 +185,6 @@ public class PetData
} }
/** /**
* TODO: Simplify this.
* @param skillId the skill Id. * @param skillId the skill Id.
* @param petLvl the pet level. * @param petLvl the pet level.
* @return the level of the skill for the given skill Id and pet level. * @return the level of the skill for the given skill Id and pet level.

View File

@@ -49,7 +49,7 @@ public class PetLevelData
public PetLevelData(StatSet set) public PetLevelData(StatSet set)
{ {
_ownerExpTaken = set.getInt("get_exp_type"); _ownerExpTaken = set.getInt("get_exp_type");
_petMaxExp = set.getLong("exp"); _petMaxExp = (long) set.getDouble("exp");
_petMaxHP = set.getFloat("org_hp"); _petMaxHP = set.getFloat("org_hp");
_petMaxMP = set.getFloat("org_mp"); _petMaxMP = set.getFloat("org_mp");
_petPAtk = set.getFloat("org_pattack"); _petPAtk = set.getFloat("org_pattack");

View File

@@ -72,9 +72,9 @@ public class ExperienceData implements IXmlReader
{ {
MAX_LEVEL = Config.PLAYER_MAXIMUM_LEVEL; MAX_LEVEL = Config.PLAYER_MAXIMUM_LEVEL;
} }
if (MAX_PET_LEVEL > MAX_LEVEL) if (MAX_PET_LEVEL > (MAX_LEVEL + 1))
{ {
MAX_PET_LEVEL = MAX_LEVEL; // Pet level should not exceed owner level. MAX_PET_LEVEL = (byte) (MAX_LEVEL + 1); // Pet level should not exceed owner level.
} }
int maxLevel = 0; int maxLevel = 0;

View File

@@ -76,9 +76,9 @@ public class PetData
{ {
_minLevel = level; _minLevel = level;
} }
if (_maxLevel < (level - 1)) if (_maxLevel < level)
{ {
_maxLevel = level - 1; _maxLevel = level;
} }
_levelStats.put(level, data); _levelStats.put(level, data);
} }
@@ -185,7 +185,6 @@ public class PetData
} }
/** /**
* TODO: Simplify this.
* @param skillId the skill Id. * @param skillId the skill Id.
* @param petLvl the pet level. * @param petLvl the pet level.
* @return the level of the skill for the given skill Id and pet level. * @return the level of the skill for the given skill Id and pet level.

View File

@@ -49,7 +49,7 @@ public class PetLevelData
public PetLevelData(StatSet set) public PetLevelData(StatSet set)
{ {
_ownerExpTaken = set.getInt("get_exp_type"); _ownerExpTaken = set.getInt("get_exp_type");
_petMaxExp = set.getLong("exp"); _petMaxExp = (long) set.getDouble("exp");
_petMaxHP = set.getFloat("org_hp"); _petMaxHP = set.getFloat("org_hp");
_petMaxMP = set.getFloat("org_mp"); _petMaxMP = set.getFloat("org_mp");
_petPAtk = set.getFloat("org_pattack"); _petPAtk = set.getFloat("org_pattack");

View File

@@ -72,9 +72,9 @@ public class ExperienceData implements IXmlReader
{ {
MAX_LEVEL = Config.PLAYER_MAXIMUM_LEVEL; MAX_LEVEL = Config.PLAYER_MAXIMUM_LEVEL;
} }
if (MAX_PET_LEVEL > MAX_LEVEL) if (MAX_PET_LEVEL > (MAX_LEVEL + 1))
{ {
MAX_PET_LEVEL = MAX_LEVEL; // Pet level should not exceed owner level. MAX_PET_LEVEL = (byte) (MAX_LEVEL + 1); // Pet level should not exceed owner level.
} }
int maxLevel = 0; int maxLevel = 0;

View File

@@ -76,9 +76,9 @@ public class PetData
{ {
_minLevel = level; _minLevel = level;
} }
if (_maxLevel < (level - 1)) if (_maxLevel < level)
{ {
_maxLevel = level - 1; _maxLevel = level;
} }
_levelStats.put(level, data); _levelStats.put(level, data);
} }
@@ -185,7 +185,6 @@ public class PetData
} }
/** /**
* TODO: Simplify this.
* @param skillId the skill Id. * @param skillId the skill Id.
* @param petLvl the pet level. * @param petLvl the pet level.
* @return the level of the skill for the given skill Id and pet level. * @return the level of the skill for the given skill Id and pet level.

View File

@@ -49,7 +49,7 @@ public class PetLevelData
public PetLevelData(StatSet set) public PetLevelData(StatSet set)
{ {
_ownerExpTaken = set.getInt("get_exp_type"); _ownerExpTaken = set.getInt("get_exp_type");
_petMaxExp = set.getLong("exp"); _petMaxExp = (long) set.getDouble("exp");
_petMaxHP = set.getFloat("org_hp"); _petMaxHP = set.getFloat("org_hp");
_petMaxMP = set.getFloat("org_mp"); _petMaxMP = set.getFloat("org_mp");
_petPAtk = set.getFloat("org_pattack"); _petPAtk = set.getFloat("org_pattack");

View File

@@ -72,9 +72,9 @@ public class ExperienceData implements IXmlReader
{ {
MAX_LEVEL = Config.PLAYER_MAXIMUM_LEVEL; MAX_LEVEL = Config.PLAYER_MAXIMUM_LEVEL;
} }
if (MAX_PET_LEVEL > MAX_LEVEL) if (MAX_PET_LEVEL > (MAX_LEVEL + 1))
{ {
MAX_PET_LEVEL = MAX_LEVEL; // Pet level should not exceed owner level. MAX_PET_LEVEL = (byte) (MAX_LEVEL + 1); // Pet level should not exceed owner level.
} }
int maxLevel = 0; int maxLevel = 0;

View File

@@ -76,9 +76,9 @@ public class PetData
{ {
_minLevel = level; _minLevel = level;
} }
if (_maxLevel < (level - 1)) if (_maxLevel < level)
{ {
_maxLevel = level - 1; _maxLevel = level;
} }
_levelStats.put(level, data); _levelStats.put(level, data);
} }
@@ -185,7 +185,6 @@ public class PetData
} }
/** /**
* TODO: Simplify this.
* @param skillId the skill Id. * @param skillId the skill Id.
* @param petLvl the pet level. * @param petLvl the pet level.
* @return the level of the skill for the given skill Id and pet level. * @return the level of the skill for the given skill Id and pet level.

View File

@@ -49,7 +49,7 @@ public class PetLevelData
public PetLevelData(StatSet set) public PetLevelData(StatSet set)
{ {
_ownerExpTaken = set.getInt("get_exp_type"); _ownerExpTaken = set.getInt("get_exp_type");
_petMaxExp = set.getLong("exp"); _petMaxExp = (long) set.getDouble("exp");
_petMaxHP = set.getFloat("org_hp"); _petMaxHP = set.getFloat("org_hp");
_petMaxMP = set.getFloat("org_mp"); _petMaxMP = set.getFloat("org_mp");
_petPAtk = set.getFloat("org_pattack"); _petPAtk = set.getFloat("org_pattack");

View File

@@ -72,9 +72,9 @@ public class ExperienceData implements IXmlReader
{ {
MAX_LEVEL = Config.PLAYER_MAXIMUM_LEVEL; MAX_LEVEL = Config.PLAYER_MAXIMUM_LEVEL;
} }
if (MAX_PET_LEVEL > MAX_LEVEL) if (MAX_PET_LEVEL > (MAX_LEVEL + 1))
{ {
MAX_PET_LEVEL = MAX_LEVEL; // Pet level should not exceed owner level. MAX_PET_LEVEL = MAX_LEVEL + 1; // Pet level should not exceed owner level.
} }
int maxLevel = 0; int maxLevel = 0;

View File

@@ -100,9 +100,9 @@ public class PetData
{ {
_minLevel = level; _minLevel = level;
} }
if (_maxLevel < (level - 1)) if (_maxLevel < level)
{ {
_maxLevel = level - 1; _maxLevel = level;
} }
_levelStats.put(level, data); _levelStats.put(level, data);
} }

View File

@@ -49,7 +49,7 @@ public class PetLevelData
public PetLevelData(StatSet set) public PetLevelData(StatSet set)
{ {
_ownerExpTaken = set.getInt("get_exp_type"); _ownerExpTaken = set.getInt("get_exp_type");
_petMaxExp = set.getLong("exp"); _petMaxExp = (long) set.getDouble("exp");
_petMaxHP = set.getFloat("org_hp"); _petMaxHP = set.getFloat("org_hp");
_petMaxMP = set.getFloat("org_mp"); _petMaxMP = set.getFloat("org_mp");
_petPAtk = set.getFloat("org_pattack"); _petPAtk = set.getFloat("org_pattack");

View File

@@ -993,7 +993,7 @@ public class Pet extends Summon
return new Pet(template, owner, control); return new Pet(template, owner, control);
} }
pet = new Pet(template, owner, control, rset.getByte("level")); pet = new Pet(template, owner, control, rset.getInt("level"));
pet._respawned = true; pet._respawned = true;
pet.setName(rset.getString("name")); pet.setName(rset.getString("name"));

View File

@@ -72,9 +72,9 @@ public class ExperienceData implements IXmlReader
{ {
MAX_LEVEL = Config.PLAYER_MAXIMUM_LEVEL; MAX_LEVEL = Config.PLAYER_MAXIMUM_LEVEL;
} }
if (MAX_PET_LEVEL > MAX_LEVEL) if (MAX_PET_LEVEL > (MAX_LEVEL + 1))
{ {
MAX_PET_LEVEL = MAX_LEVEL; // Pet level should not exceed owner level. MAX_PET_LEVEL = MAX_LEVEL + 1; // Pet level should not exceed owner level.
} }
int maxLevel = 0; int maxLevel = 0;

View File

@@ -100,9 +100,9 @@ public class PetData
{ {
_minLevel = level; _minLevel = level;
} }
if (_maxLevel < (level - 1)) if (_maxLevel < level)
{ {
_maxLevel = level - 1; _maxLevel = level;
} }
_levelStats.put(level, data); _levelStats.put(level, data);
} }

View File

@@ -49,7 +49,7 @@ public class PetLevelData
public PetLevelData(StatSet set) public PetLevelData(StatSet set)
{ {
_ownerExpTaken = set.getInt("get_exp_type"); _ownerExpTaken = set.getInt("get_exp_type");
_petMaxExp = set.getLong("exp"); _petMaxExp = (long) set.getDouble("exp");
_petMaxHP = set.getFloat("org_hp"); _petMaxHP = set.getFloat("org_hp");
_petMaxMP = set.getFloat("org_mp"); _petMaxMP = set.getFloat("org_mp");
_petPAtk = set.getFloat("org_pattack"); _petPAtk = set.getFloat("org_pattack");

View File

@@ -993,7 +993,7 @@ public class Pet extends Summon
return new Pet(template, owner, control); return new Pet(template, owner, control);
} }
pet = new Pet(template, owner, control, rset.getByte("level")); pet = new Pet(template, owner, control, rset.getInt("level"));
pet._respawned = true; pet._respawned = true;
pet.setName(rset.getString("name")); pet.setName(rset.getString("name"));

View File

@@ -72,9 +72,9 @@ public class ExperienceData implements IXmlReader
{ {
MAX_LEVEL = Config.PLAYER_MAXIMUM_LEVEL; MAX_LEVEL = Config.PLAYER_MAXIMUM_LEVEL;
} }
if (MAX_PET_LEVEL > MAX_LEVEL) if (MAX_PET_LEVEL > (MAX_LEVEL + 1))
{ {
MAX_PET_LEVEL = MAX_LEVEL; // Pet level should not exceed owner level. MAX_PET_LEVEL = MAX_LEVEL + 1; // Pet level should not exceed owner level.
} }
int maxLevel = 0; int maxLevel = 0;

View File

@@ -100,9 +100,9 @@ public class PetData
{ {
_minLevel = level; _minLevel = level;
} }
if (_maxLevel < (level - 1)) if (_maxLevel < level)
{ {
_maxLevel = level - 1; _maxLevel = level;
} }
_levelStats.put(level, data); _levelStats.put(level, data);
} }

Some files were not shown because too many files have changed in this diff Show More