Pet level should be set properly to wanted value.
This commit is contained in:
@@ -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;
|
||||||
|
@@ -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.
|
||||||
|
@@ -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");
|
||||||
|
@@ -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;
|
||||||
|
@@ -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.
|
||||||
|
@@ -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");
|
||||||
|
@@ -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;
|
||||||
|
@@ -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.
|
||||||
|
@@ -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");
|
||||||
|
@@ -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;
|
||||||
|
@@ -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.
|
||||||
|
@@ -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");
|
||||||
|
@@ -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;
|
||||||
|
@@ -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.
|
||||||
|
@@ -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");
|
||||||
|
@@ -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;
|
||||||
|
@@ -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.
|
||||||
|
@@ -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");
|
||||||
|
@@ -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;
|
||||||
|
@@ -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.
|
||||||
|
@@ -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");
|
||||||
|
@@ -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;
|
||||||
|
@@ -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.
|
||||||
|
@@ -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");
|
||||||
|
@@ -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;
|
||||||
|
@@ -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.
|
||||||
|
@@ -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");
|
||||||
|
@@ -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"));
|
||||||
|
|
||||||
|
@@ -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;
|
||||||
|
@@ -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.
|
||||||
|
@@ -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");
|
||||||
|
@@ -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"));
|
||||||
|
|
||||||
|
@@ -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;
|
||||||
|
@@ -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.
|
||||||
|
@@ -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");
|
||||||
|
@@ -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"));
|
||||||
|
|
||||||
|
@@ -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;
|
||||||
|
@@ -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.
|
||||||
|
@@ -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");
|
||||||
|
@@ -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"));
|
||||||
|
|
||||||
|
@@ -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;
|
||||||
|
@@ -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;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@@ -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;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@@ -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");
|
||||||
|
@@ -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);
|
||||||
}
|
}
|
||||||
|
@@ -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));
|
||||||
|
@@ -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" />
|
||||||
|
@@ -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;
|
||||||
|
@@ -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;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@@ -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;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@@ -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");
|
||||||
|
@@ -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);
|
||||||
}
|
}
|
||||||
|
@@ -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));
|
||||||
|
@@ -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" />
|
||||||
|
@@ -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;
|
||||||
|
@@ -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;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@@ -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;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@@ -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");
|
||||||
|
@@ -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);
|
||||||
}
|
}
|
||||||
|
@@ -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));
|
||||||
|
@@ -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;
|
||||||
|
@@ -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.
|
||||||
|
@@ -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");
|
||||||
|
@@ -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;
|
||||||
|
@@ -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.
|
||||||
|
@@ -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");
|
||||||
|
@@ -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;
|
||||||
|
@@ -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.
|
||||||
|
@@ -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");
|
||||||
|
@@ -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;
|
||||||
|
@@ -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.
|
||||||
|
@@ -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");
|
||||||
|
@@ -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;
|
||||||
|
@@ -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.
|
||||||
|
@@ -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");
|
||||||
|
@@ -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;
|
||||||
|
@@ -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.
|
||||||
|
@@ -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");
|
||||||
|
@@ -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;
|
||||||
|
@@ -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.
|
||||||
|
@@ -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");
|
||||||
|
@@ -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;
|
||||||
|
@@ -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.
|
||||||
|
@@ -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");
|
||||||
|
@@ -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;
|
||||||
|
@@ -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.
|
||||||
|
@@ -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");
|
||||||
|
@@ -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;
|
||||||
|
@@ -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.
|
||||||
|
@@ -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");
|
||||||
|
@@ -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;
|
||||||
|
@@ -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);
|
||||||
}
|
}
|
||||||
|
@@ -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");
|
||||||
|
@@ -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"));
|
||||||
|
|
||||||
|
@@ -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;
|
||||||
|
@@ -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);
|
||||||
}
|
}
|
||||||
|
@@ -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");
|
||||||
|
@@ -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"));
|
||||||
|
|
||||||
|
@@ -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;
|
||||||
|
@@ -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
Reference in New Issue
Block a user