Core/Unit: Implement more helper methods
Port From (https://github.com/TrinityCore/TrinityCore/commit/104ec7a81a5bb782f81fd05b872bf664e4de1c89)
This commit is contained in:
@@ -3395,7 +3395,7 @@ namespace Game.Entities
|
||||
stmt.AddValue(index++, (byte)GetClass());
|
||||
stmt.AddValue(index++, (byte)GetNativeGender()); // save gender from PLAYER_BYTES_3, UNIT_BYTES_0 changes with every transform effect
|
||||
stmt.AddValue(index++, GetLevel());
|
||||
stmt.AddValue(index++, m_activePlayerData.XP);
|
||||
stmt.AddValue(index++, GetXP());
|
||||
stmt.AddValue(index++, GetMoney());
|
||||
stmt.AddValue(index++, GetInventorySlotCount());
|
||||
stmt.AddValue(index++, GetBankBagSlotCount());
|
||||
@@ -3519,7 +3519,7 @@ namespace Game.Entities
|
||||
stmt.AddValue(index++, (byte)GetClass());
|
||||
stmt.AddValue(index++, (byte)GetNativeGender()); // save gender from PLAYER_BYTES_3, UNIT_BYTES_0 changes with every transform effect
|
||||
stmt.AddValue(index++, GetLevel());
|
||||
stmt.AddValue(index++, m_activePlayerData.XP);
|
||||
stmt.AddValue(index++, GetXP());
|
||||
stmt.AddValue(index++, GetMoney());
|
||||
stmt.AddValue(index++, GetInventorySlotCount());
|
||||
stmt.AddValue(index++, GetBankBagSlotCount());
|
||||
|
||||
@@ -232,7 +232,7 @@ namespace Game.Entities
|
||||
SetRace(createInfo.RaceId);
|
||||
SetClass(createInfo.ClassId);
|
||||
SetGender(createInfo.Sex);
|
||||
SetPowerType(powertype);
|
||||
SetPowerType(powertype, false);
|
||||
InitDisplayIds();
|
||||
UpdatePositionData();
|
||||
if ((RealmType)WorldConfig.GetIntValue(WorldCfg.GameType) == RealmType.PVP || (RealmType)WorldConfig.GetIntValue(WorldCfg.GameType) == RealmType.RPPVP)
|
||||
@@ -5225,7 +5225,7 @@ namespace Game.Entities
|
||||
|
||||
_ApplyAllLevelScaleItemMods(false);
|
||||
|
||||
SetLevel(level);
|
||||
SetLevel(level, false);
|
||||
|
||||
UpdateSkillsForLevel();
|
||||
LearnDefaultSkills();
|
||||
@@ -6502,9 +6502,8 @@ namespace Game.Entities
|
||||
packet.ReferAFriendBonusType = (byte)(recruitAFriend ? 1 : 0);
|
||||
SendPacket(packet);
|
||||
|
||||
uint curXP = m_activePlayerData.XP;
|
||||
uint nextLvlXP = m_activePlayerData.NextLevelXP;
|
||||
uint newXP = curXP + xp + bonus_xp;
|
||||
uint nextLvlXP = GetXPForNextLevel();
|
||||
uint newXP = GetXP() + xp + bonus_xp;
|
||||
|
||||
while (newXP >= nextLvlXP && level < WorldConfig.GetIntValue(WorldCfg.MaxPlayerLevel))
|
||||
{
|
||||
@@ -6514,7 +6513,7 @@ namespace Game.Entities
|
||||
GiveLevel(level + 1);
|
||||
|
||||
level = GetLevel();
|
||||
nextLvlXP = m_activePlayerData.NextLevelXP;
|
||||
nextLvlXP = GetXPForNextLevel();
|
||||
}
|
||||
|
||||
SetXP(newXP);
|
||||
|
||||
@@ -535,13 +535,16 @@ namespace Game.Entities
|
||||
|
||||
//Powers
|
||||
public PowerType GetPowerType() { return (PowerType)(byte)m_unitData.DisplayPower; }
|
||||
public void SetPowerType(PowerType powerType)
|
||||
public void SetPowerType(PowerType powerType, bool sendUpdate = true)
|
||||
{
|
||||
if (GetPowerType() == powerType)
|
||||
return;
|
||||
|
||||
SetUpdateFieldValue(m_values.ModifyValue(m_unitData).ModifyValue(m_unitData.DisplayPower), (byte)powerType);
|
||||
|
||||
if (!sendUpdate)
|
||||
return;
|
||||
|
||||
Player thisPlayer = ToPlayer();
|
||||
if (thisPlayer != null)
|
||||
{
|
||||
|
||||
@@ -1674,10 +1674,13 @@ namespace Game.Entities
|
||||
}
|
||||
|
||||
//Unit
|
||||
public void SetLevel(uint lvl)
|
||||
public void SetLevel(uint lvl, bool sendUpdate = true)
|
||||
{
|
||||
SetUpdateFieldValue(m_values.ModifyValue(m_unitData).ModifyValue(m_unitData.Level), lvl);
|
||||
|
||||
if (!sendUpdate)
|
||||
return;
|
||||
|
||||
Player player = ToPlayer();
|
||||
if (player != null)
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user