Core/Unit: Implement more helper methods

Port From (https://github.com/TrinityCore/TrinityCore/commit/104ec7a81a5bb782f81fd05b872bf664e4de1c89)
This commit is contained in:
hondacrx
2021-12-26 20:04:34 -05:00
parent 55189b9395
commit 08678c970e
4 changed files with 15 additions and 10 deletions
+2 -2
View File
@@ -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());
+5 -6
View File
@@ -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);
+4 -1
View File
@@ -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)
{
+4 -1
View File
@@ -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)
{