Elemental Spirit experience display adjustments.

This commit is contained in:
MobiusDevelopment 2021-10-21 18:07:59 +00:00
parent 33e21c1e50
commit b376c85642
10 changed files with 95 additions and 30 deletions

View File

@ -66,9 +66,16 @@ public class ElementalSpirit
public void addExperience(long experience)
{
if ((getLevel() == getMaxLevel()) && ((getExperience() + experience) > getExperienceToNextLevel()))
{
return;
}
_data.addExperience(experience);
_owner.sendPacket(new ExElementalSpiritGetExp(getType(), _data.getExperience()));
_owner.sendPacket(new SystemMessage(SystemMessageId.OBTAINED_S2_ATTRIBUTE_XP_OF_S1).addInt((int) experience).addElementalSpirit(getType()));
if (_data.getExperience() > getExperienceToNextLevel())
if (getExperience() > getExperienceToNextLevel())
{
levelUp();
_owner.sendPacket(new SystemMessage(SystemMessageId.S1_ATTRIBUTE_SPIRIT_BECAME_LEVEL_S2).addElementalSpirit(getType()).addByte(_data.getLevel()));
@ -77,7 +84,6 @@ public class ElementalSpirit
userInfo.addComponentType(UserInfoType.ATT_SPIRITS);
_owner.sendPacket(userInfo);
}
_owner.sendPacket(new ExElementalSpiritGetExp(getType(), _data.getExperience()));
}
private void levelUp()

View File

@ -70,6 +70,7 @@ import org.l2jmobius.gameserver.data.xml.AdminData;
import org.l2jmobius.gameserver.data.xml.AttendanceRewardData;
import org.l2jmobius.gameserver.data.xml.CategoryData;
import org.l2jmobius.gameserver.data.xml.ClassListData;
import org.l2jmobius.gameserver.data.xml.ElementalSpiritData;
import org.l2jmobius.gameserver.data.xml.ExperienceData;
import org.l2jmobius.gameserver.data.xml.HennaData;
import org.l2jmobius.gameserver.data.xml.NpcData;
@ -348,6 +349,7 @@ import org.l2jmobius.gameserver.network.serverpackets.TradeStart;
import org.l2jmobius.gameserver.network.serverpackets.UserInfo;
import org.l2jmobius.gameserver.network.serverpackets.ValidateLocation;
import org.l2jmobius.gameserver.network.serverpackets.commission.ExResponseCommissionInfo;
import org.l2jmobius.gameserver.network.serverpackets.elementalspirits.ElementalSpiritInfo;
import org.l2jmobius.gameserver.network.serverpackets.friend.FriendStatus;
import org.l2jmobius.gameserver.network.serverpackets.vip.ReceiveVipInfo;
import org.l2jmobius.gameserver.taskmanager.AttackStanceTaskManager;
@ -14168,10 +14170,14 @@ public class PlayerInstance extends Playable
{
final ElementalSpiritDataHolder newHolder = new ElementalSpiritDataHolder();
newHolder.setCharId(rset.getInt("charId"));
newHolder.setType(rset.getByte("type"));
newHolder.setLevel(rset.getByte("level"));
newHolder.setStage(rset.getByte("stage"));
newHolder.setExperience(rset.getLong("experience"));
final byte type = rset.getByte("type");
newHolder.setType(type);
final byte level = rset.getByte("level");
newHolder.setLevel(level);
final byte stage = rset.getByte("stage");
newHolder.setStage(stage);
final long experience = Math.min(rset.getLong("experience"), ElementalSpiritData.getInstance().getSpirit(type, stage).getMaxExperienceAtLevel(level));
newHolder.setExperience(experience);
newHolder.setAttackPoints(rset.getByte("attack_points"));
newHolder.setDefensePoints(rset.getByte("defense_points"));
newHolder.setCritRatePoints(rset.getByte("crit_rate_points"));
@ -14197,6 +14203,7 @@ public class PlayerInstance extends Playable
_activeElementalSpiritType = ElementalType.of(spiritData.getType());
}
}
ThreadPool.schedule(() -> sendPacket(new ElementalSpiritInfo(this, getActiveElementalSpiritType(), (byte) 0)), 2000);
}
}

View File

@ -66,9 +66,16 @@ public class ElementalSpirit
public void addExperience(long experience)
{
if ((getLevel() == getMaxLevel()) && ((getExperience() + experience) > getExperienceToNextLevel()))
{
return;
}
_data.addExperience(experience);
_owner.sendPacket(new ExElementalSpiritGetExp(getType(), _data.getExperience()));
_owner.sendPacket(new SystemMessage(SystemMessageId.OBTAINED_S2_ATTRIBUTE_XP_OF_S1).addInt((int) experience).addElementalSpirit(getType()));
if (_data.getExperience() > getExperienceToNextLevel())
if (getExperience() > getExperienceToNextLevel())
{
levelUp();
_owner.sendPacket(new SystemMessage(SystemMessageId.S1_ATTRIBUTE_SPIRIT_BECAME_LEVEL_S2).addElementalSpirit(getType()).addByte(_data.getLevel()));
@ -77,7 +84,6 @@ public class ElementalSpirit
userInfo.addComponentType(UserInfoType.ATT_SPIRITS);
_owner.sendPacket(userInfo);
}
_owner.sendPacket(new ExElementalSpiritGetExp(getType(), _data.getExperience()));
}
private void levelUp()

View File

@ -70,6 +70,7 @@ import org.l2jmobius.gameserver.data.xml.AdminData;
import org.l2jmobius.gameserver.data.xml.AttendanceRewardData;
import org.l2jmobius.gameserver.data.xml.CategoryData;
import org.l2jmobius.gameserver.data.xml.ClassListData;
import org.l2jmobius.gameserver.data.xml.ElementalSpiritData;
import org.l2jmobius.gameserver.data.xml.ExperienceData;
import org.l2jmobius.gameserver.data.xml.HennaData;
import org.l2jmobius.gameserver.data.xml.NpcData;
@ -348,6 +349,7 @@ import org.l2jmobius.gameserver.network.serverpackets.TradeStart;
import org.l2jmobius.gameserver.network.serverpackets.UserInfo;
import org.l2jmobius.gameserver.network.serverpackets.ValidateLocation;
import org.l2jmobius.gameserver.network.serverpackets.commission.ExResponseCommissionInfo;
import org.l2jmobius.gameserver.network.serverpackets.elementalspirits.ElementalSpiritInfo;
import org.l2jmobius.gameserver.network.serverpackets.friend.FriendStatus;
import org.l2jmobius.gameserver.network.serverpackets.vip.ReceiveVipInfo;
import org.l2jmobius.gameserver.taskmanager.AttackStanceTaskManager;
@ -14168,10 +14170,14 @@ public class PlayerInstance extends Playable
{
final ElementalSpiritDataHolder newHolder = new ElementalSpiritDataHolder();
newHolder.setCharId(rset.getInt("charId"));
newHolder.setType(rset.getByte("type"));
newHolder.setLevel(rset.getByte("level"));
newHolder.setStage(rset.getByte("stage"));
newHolder.setExperience(rset.getLong("experience"));
final byte type = rset.getByte("type");
newHolder.setType(type);
final byte level = rset.getByte("level");
newHolder.setLevel(level);
final byte stage = rset.getByte("stage");
newHolder.setStage(stage);
final long experience = Math.min(rset.getLong("experience"), ElementalSpiritData.getInstance().getSpirit(type, stage).getMaxExperienceAtLevel(level));
newHolder.setExperience(experience);
newHolder.setAttackPoints(rset.getByte("attack_points"));
newHolder.setDefensePoints(rset.getByte("defense_points"));
newHolder.setCritRatePoints(rset.getByte("crit_rate_points"));
@ -14197,6 +14203,7 @@ public class PlayerInstance extends Playable
_activeElementalSpiritType = ElementalType.of(spiritData.getType());
}
}
ThreadPool.schedule(() -> sendPacket(new ElementalSpiritInfo(this, getActiveElementalSpiritType(), (byte) 0)), 2000);
}
}

View File

@ -66,9 +66,16 @@ public class ElementalSpirit
public void addExperience(long experience)
{
if ((getLevel() == getMaxLevel()) && ((getExperience() + experience) > getExperienceToNextLevel()))
{
return;
}
_data.addExperience(experience);
_owner.sendPacket(new ExElementalSpiritGetExp(getType(), _data.getExperience()));
_owner.sendPacket(new SystemMessage(SystemMessageId.OBTAINED_S2_ATTRIBUTE_XP_OF_S1).addInt((int) experience).addElementalSpirit(getType()));
if (_data.getExperience() > getExperienceToNextLevel())
if (getExperience() > getExperienceToNextLevel())
{
levelUp();
_owner.sendPacket(new SystemMessage(SystemMessageId.S1_ATTRIBUTE_SPIRIT_BECAME_LEVEL_S2).addElementalSpirit(getType()).addByte(_data.getLevel()));
@ -77,7 +84,6 @@ public class ElementalSpirit
userInfo.addComponentType(UserInfoType.ATT_SPIRITS);
_owner.sendPacket(userInfo);
}
_owner.sendPacket(new ExElementalSpiritGetExp(getType(), _data.getExperience()));
}
private void levelUp()

View File

@ -71,6 +71,7 @@ import org.l2jmobius.gameserver.data.xml.AdminData;
import org.l2jmobius.gameserver.data.xml.AttendanceRewardData;
import org.l2jmobius.gameserver.data.xml.CategoryData;
import org.l2jmobius.gameserver.data.xml.ClassListData;
import org.l2jmobius.gameserver.data.xml.ElementalSpiritData;
import org.l2jmobius.gameserver.data.xml.ExperienceData;
import org.l2jmobius.gameserver.data.xml.HennaData;
import org.l2jmobius.gameserver.data.xml.NpcData;
@ -360,6 +361,7 @@ import org.l2jmobius.gameserver.network.serverpackets.ValidateLocation;
import org.l2jmobius.gameserver.network.serverpackets.autoplay.ExActivateAutoShortcut;
import org.l2jmobius.gameserver.network.serverpackets.autoplay.ExAutoPlaySettingSend;
import org.l2jmobius.gameserver.network.serverpackets.commission.ExResponseCommissionInfo;
import org.l2jmobius.gameserver.network.serverpackets.elementalspirits.ElementalSpiritInfo;
import org.l2jmobius.gameserver.network.serverpackets.friend.FriendStatus;
import org.l2jmobius.gameserver.network.serverpackets.vip.ReceiveVipInfo;
import org.l2jmobius.gameserver.taskmanager.AttackStanceTaskManager;
@ -14182,10 +14184,14 @@ public class PlayerInstance extends Playable
{
final ElementalSpiritDataHolder newHolder = new ElementalSpiritDataHolder();
newHolder.setCharId(rset.getInt("charId"));
newHolder.setType(rset.getByte("type"));
newHolder.setLevel(rset.getByte("level"));
newHolder.setStage(rset.getByte("stage"));
newHolder.setExperience(rset.getLong("experience"));
final byte type = rset.getByte("type");
newHolder.setType(type);
final byte level = rset.getByte("level");
newHolder.setLevel(level);
final byte stage = rset.getByte("stage");
newHolder.setStage(stage);
final long experience = Math.min(rset.getLong("experience"), ElementalSpiritData.getInstance().getSpirit(type, stage).getMaxExperienceAtLevel(level));
newHolder.setExperience(experience);
newHolder.setAttackPoints(rset.getByte("attack_points"));
newHolder.setDefensePoints(rset.getByte("defense_points"));
newHolder.setCritRatePoints(rset.getByte("crit_rate_points"));
@ -14211,6 +14217,7 @@ public class PlayerInstance extends Playable
_activeElementalSpiritType = ElementalType.of(spiritData.getType());
}
}
ThreadPool.schedule(() -> sendPacket(new ElementalSpiritInfo(this, getActiveElementalSpiritType(), (byte) 0)), 2000);
}
}

View File

@ -66,9 +66,16 @@ public class ElementalSpirit
public void addExperience(long experience)
{
if ((getLevel() == getMaxLevel()) && ((getExperience() + experience) > getExperienceToNextLevel()))
{
return;
}
_data.addExperience(experience);
_owner.sendPacket(new ExElementalSpiritGetExp(getType(), _data.getExperience()));
_owner.sendPacket(new SystemMessage(SystemMessageId.YOU_HAVE_ACQUIRED_S1_S2_ATTRIBUTE_XP).addInt((int) experience).addElementalSpirit(getType()));
if (_data.getExperience() > getExperienceToNextLevel())
if (getExperience() > getExperienceToNextLevel())
{
levelUp();
_owner.sendPacket(new SystemMessage(SystemMessageId.S1_ATTRIBUTE_SPIRIT_BECAME_LEVEL_S2).addElementalSpirit(getType()).addByte(_data.getLevel()));
@ -77,7 +84,6 @@ public class ElementalSpirit
userInfo.addComponentType(UserInfoType.ATT_SPIRITS);
_owner.sendPacket(userInfo);
}
_owner.sendPacket(new ExElementalSpiritGetExp(getType(), _data.getExperience()));
}
private void levelUp()

View File

@ -71,6 +71,7 @@ import org.l2jmobius.gameserver.data.xml.AdminData;
import org.l2jmobius.gameserver.data.xml.AttendanceRewardData;
import org.l2jmobius.gameserver.data.xml.CategoryData;
import org.l2jmobius.gameserver.data.xml.ClassListData;
import org.l2jmobius.gameserver.data.xml.ElementalSpiritData;
import org.l2jmobius.gameserver.data.xml.ExperienceData;
import org.l2jmobius.gameserver.data.xml.HennaData;
import org.l2jmobius.gameserver.data.xml.NpcData;
@ -368,6 +369,7 @@ import org.l2jmobius.gameserver.network.serverpackets.ValidateLocation;
import org.l2jmobius.gameserver.network.serverpackets.autoplay.ExActivateAutoShortcut;
import org.l2jmobius.gameserver.network.serverpackets.autoplay.ExAutoPlaySettingSend;
import org.l2jmobius.gameserver.network.serverpackets.commission.ExResponseCommissionInfo;
import org.l2jmobius.gameserver.network.serverpackets.elementalspirits.ElementalSpiritInfo;
import org.l2jmobius.gameserver.network.serverpackets.friend.FriendStatus;
import org.l2jmobius.gameserver.network.serverpackets.limitshop.ExBloodyCoinCount;
import org.l2jmobius.gameserver.network.serverpackets.pet.PetInfo;
@ -14443,10 +14445,14 @@ public class PlayerInstance extends Playable
{
final ElementalSpiritDataHolder newHolder = new ElementalSpiritDataHolder();
newHolder.setCharId(rset.getInt("charId"));
newHolder.setType(rset.getByte("type"));
newHolder.setLevel(rset.getByte("level"));
newHolder.setStage(rset.getByte("stage"));
newHolder.setExperience(rset.getLong("experience"));
final byte type = rset.getByte("type");
newHolder.setType(type);
final byte level = rset.getByte("level");
newHolder.setLevel(level);
final byte stage = rset.getByte("stage");
newHolder.setStage(stage);
final long experience = Math.min(rset.getLong("experience"), ElementalSpiritData.getInstance().getSpirit(type, stage).getMaxExperienceAtLevel(level));
newHolder.setExperience(experience);
newHolder.setAttackPoints(rset.getByte("attack_points"));
newHolder.setDefensePoints(rset.getByte("defense_points"));
newHolder.setCritRatePoints(rset.getByte("crit_rate_points"));
@ -14472,6 +14478,7 @@ public class PlayerInstance extends Playable
_activeElementalSpiritType = ElementalType.of(spiritData.getType());
}
}
ThreadPool.schedule(() -> sendPacket(new ElementalSpiritInfo(this, getActiveElementalSpiritType(), (byte) 0)), 2000);
}
}

View File

@ -66,9 +66,16 @@ public class ElementalSpirit
public void addExperience(long experience)
{
if ((getLevel() == getMaxLevel()) && ((getExperience() + experience) > getExperienceToNextLevel()))
{
return;
}
_data.addExperience(experience);
_owner.sendPacket(new ExElementalSpiritGetExp(getType(), _data.getExperience()));
_owner.sendPacket(new SystemMessage(SystemMessageId.YOU_HAVE_ACQUIRED_S1_S2_ATTRIBUTE_XP).addInt((int) experience).addElementalSpirit(getType()));
if (_data.getExperience() > getExperienceToNextLevel())
if (getExperience() > getExperienceToNextLevel())
{
levelUp();
_owner.sendPacket(new SystemMessage(SystemMessageId.S1_ATTRIBUTE_SPIRIT_BECAME_LEVEL_S2).addElementalSpirit(getType()).addByte(_data.getLevel()));
@ -77,7 +84,6 @@ public class ElementalSpirit
userInfo.addComponentType(UserInfoType.ATT_SPIRITS);
_owner.sendPacket(userInfo);
}
_owner.sendPacket(new ExElementalSpiritGetExp(getType(), _data.getExperience()));
}
private void levelUp()

View File

@ -72,6 +72,7 @@ import org.l2jmobius.gameserver.data.xml.AttendanceRewardData;
import org.l2jmobius.gameserver.data.xml.CategoryData;
import org.l2jmobius.gameserver.data.xml.ClassListData;
import org.l2jmobius.gameserver.data.xml.CollectionData;
import org.l2jmobius.gameserver.data.xml.ElementalSpiritData;
import org.l2jmobius.gameserver.data.xml.ExperienceData;
import org.l2jmobius.gameserver.data.xml.HennaData;
import org.l2jmobius.gameserver.data.xml.NpcData;
@ -375,6 +376,7 @@ import org.l2jmobius.gameserver.network.serverpackets.ValidateLocation;
import org.l2jmobius.gameserver.network.serverpackets.autoplay.ExActivateAutoShortcut;
import org.l2jmobius.gameserver.network.serverpackets.autoplay.ExAutoPlaySettingSend;
import org.l2jmobius.gameserver.network.serverpackets.commission.ExResponseCommissionInfo;
import org.l2jmobius.gameserver.network.serverpackets.elementalspirits.ElementalSpiritInfo;
import org.l2jmobius.gameserver.network.serverpackets.friend.FriendStatus;
import org.l2jmobius.gameserver.network.serverpackets.limitshop.ExBloodyCoinCount;
import org.l2jmobius.gameserver.network.serverpackets.pet.PetInfo;
@ -14520,10 +14522,14 @@ public class PlayerInstance extends Playable
{
final ElementalSpiritDataHolder newHolder = new ElementalSpiritDataHolder();
newHolder.setCharId(rset.getInt("charId"));
newHolder.setType(rset.getByte("type"));
newHolder.setLevel(rset.getByte("level"));
newHolder.setStage(rset.getByte("stage"));
newHolder.setExperience(rset.getLong("experience"));
final byte type = rset.getByte("type");
newHolder.setType(type);
final byte level = rset.getByte("level");
newHolder.setLevel(level);
final byte stage = rset.getByte("stage");
newHolder.setStage(stage);
final long experience = Math.min(rset.getLong("experience"), ElementalSpiritData.getInstance().getSpirit(type, stage).getMaxExperienceAtLevel(level));
newHolder.setExperience(experience);
newHolder.setAttackPoints(rset.getByte("attack_points"));
newHolder.setDefensePoints(rset.getByte("defense_points"));
newHolder.setCritRatePoints(rset.getByte("crit_rate_points"));
@ -14549,6 +14555,7 @@ public class PlayerInstance extends Playable
_activeElementalSpiritType = ElementalType.of(spiritData.getType());
}
}
ThreadPool.schedule(() -> sendPacket(new ElementalSpiritInfo(this, getActiveElementalSpiritType(), (byte) 0)), 2000);
}
}