Pet max level differs from player max level.
This commit is contained in:
parent
3b2b617dd2
commit
2b141cb81a
@ -38,6 +38,7 @@ public class L2PetData
|
|||||||
private int _load = 20000;
|
private int _load = 20000;
|
||||||
private int _hungryLimit = 1;
|
private int _hungryLimit = 1;
|
||||||
private int _minlvl = Byte.MAX_VALUE;
|
private int _minlvl = Byte.MAX_VALUE;
|
||||||
|
private int _maxlvl = 0;
|
||||||
private boolean _syncLevel = false;
|
private boolean _syncLevel = false;
|
||||||
private final List<Integer> _food = new ArrayList<>();
|
private final List<Integer> _food = new ArrayList<>();
|
||||||
|
|
||||||
@ -73,6 +74,10 @@ public class L2PetData
|
|||||||
{
|
{
|
||||||
_minlvl = level;
|
_minlvl = level;
|
||||||
}
|
}
|
||||||
|
if (_maxlvl < (level - 1))
|
||||||
|
{
|
||||||
|
_maxlvl = level - 1;
|
||||||
|
}
|
||||||
_levelStats.put(level, data);
|
_levelStats.put(level, data);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -117,6 +122,14 @@ public class L2PetData
|
|||||||
return _minlvl;
|
return _minlvl;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @return the pet's maximum level.
|
||||||
|
*/
|
||||||
|
public int getMaxLevel()
|
||||||
|
{
|
||||||
|
return _maxlvl;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @return the pet's food list.
|
* @return the pet's food list.
|
||||||
*/
|
*/
|
||||||
|
@ -229,8 +229,9 @@ public class L2PetInstance extends L2Summon
|
|||||||
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));
|
||||||
}
|
}
|
||||||
L2World.getInstance().addPet(owner.getObjectId(), pet);
|
L2World.getInstance().addPet(owner.getObjectId(), pet);
|
||||||
}
|
}
|
||||||
|
@ -249,8 +249,9 @@ public class PcStat extends PlayableStat
|
|||||||
final L2PetInstance pet = (L2PetInstance) sPet;
|
final L2PetInstance pet = (L2PetInstance) sPet;
|
||||||
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));
|
||||||
|
Loading…
Reference in New Issue
Block a user