Core/PacketIO: Updated packet structures to 8.1.5
Port TrinityCore Commit: https://github.com/TrinityCore/TrinityCore/commit/31fda79556e55375962a3c9e46f6dbdbf6e90d18
This commit is contained in:
@@ -83,6 +83,9 @@ namespace Game.Entities
|
||||
public float ModExperience;
|
||||
public bool RacialLeader;
|
||||
public uint MovementId;
|
||||
public float FadeRegionRadius;
|
||||
public int WidgetSetID;
|
||||
public int WidgetSetUnitConditionID;
|
||||
public bool RegenHealth;
|
||||
public uint MechanicImmuneMask;
|
||||
public CreatureFlagsExtra FlagsExtra;
|
||||
|
||||
@@ -1481,9 +1481,6 @@ namespace Game.Entities
|
||||
|
||||
static bool HasStats(ItemInstance itemInstance, BonusData bonus)
|
||||
{
|
||||
if (itemInstance.RandomPropertiesID != 0)
|
||||
return true;
|
||||
|
||||
for (byte i = 0; i < ItemConst.MaxStats; ++i)
|
||||
{
|
||||
if (bonus.ItemStatAllocation[i] != 0)
|
||||
|
||||
@@ -399,6 +399,7 @@ namespace Game.Entities
|
||||
data.WriteFloat(unit.GetSpeed(UnitMoveType.PitchRate));
|
||||
|
||||
data.WriteUInt32(0); // unit.m_movementInfo.forces.size()
|
||||
data.WriteFloat(1.0f); // MovementForcesModMagnitude
|
||||
|
||||
data.WriteBit(HasSpline);
|
||||
data.FlushBits();
|
||||
|
||||
@@ -73,9 +73,9 @@ namespace Game.Entities
|
||||
_owner.GetPlayer().AddDynamicValue(ActivePlayerDynamicFields.Toys, value);
|
||||
}
|
||||
|
||||
public bool AddToy(uint itemId, bool isFavourite = false)
|
||||
public bool AddToy(uint itemId, bool isFavourite, bool hasFanfare)
|
||||
{
|
||||
if (UpdateAccountToys(itemId, isFavourite))
|
||||
if (UpdateAccountToys(itemId, isFavourite, hasFanfare))
|
||||
{
|
||||
_owner.GetPlayer().AddDynamicValue(ActivePlayerDynamicFields.Toys, itemId);
|
||||
return true;
|
||||
@@ -92,9 +92,8 @@ namespace Game.Entities
|
||||
do
|
||||
{
|
||||
uint itemId = result.Read<uint>(0);
|
||||
bool isFavourite = result.Read<bool>(1);
|
||||
|
||||
_toys[itemId] = isFavourite;
|
||||
_toys[itemId] = GetToyFlags(result.Read<bool>(1), result.Read<bool>(2));
|
||||
} while (result.NextRow());
|
||||
}
|
||||
|
||||
@@ -106,17 +105,18 @@ namespace Game.Entities
|
||||
stmt = DB.Login.GetPreparedStatement(LoginStatements.REP_ACCOUNT_TOYS);
|
||||
stmt.AddValue(0, _owner.GetBattlenetAccountId());
|
||||
stmt.AddValue(1, pair.Key);
|
||||
stmt.AddValue(2, pair.Value);
|
||||
stmt.AddValue(2, pair.Value.HasAnyFlag(ToyFlags.Favorite));
|
||||
stmt.AddValue(3, pair.Value.HasAnyFlag(ToyFlags.HasFanfare));
|
||||
trans.Append(stmt);
|
||||
}
|
||||
}
|
||||
|
||||
bool UpdateAccountToys(uint itemId, bool isFavourite = false)
|
||||
bool UpdateAccountToys(uint itemId, bool isFavourite, bool hasFanfare)
|
||||
{
|
||||
if (_toys.ContainsKey(itemId))
|
||||
return false;
|
||||
|
||||
_toys.Add(itemId, isFavourite);
|
||||
_toys.Add(itemId, GetToyFlags(isFavourite, hasFanfare));
|
||||
return true;
|
||||
}
|
||||
|
||||
@@ -125,7 +125,30 @@ namespace Game.Entities
|
||||
if (!_toys.ContainsKey(itemId))
|
||||
return;
|
||||
|
||||
_toys[itemId] = favorite;
|
||||
if (favorite)
|
||||
_toys[itemId] |= ToyFlags.Favorite;
|
||||
else
|
||||
_toys[itemId] &= ~ToyFlags.Favorite;
|
||||
}
|
||||
|
||||
public void ToyClearFanfare(uint itemId)
|
||||
{
|
||||
if (!_toys.ContainsKey(itemId))
|
||||
return;
|
||||
|
||||
_toys[itemId] &= ~ToyFlags.HasFanfare;
|
||||
}
|
||||
|
||||
ToyFlags GetToyFlags(bool isFavourite, bool hasFanfare)
|
||||
{
|
||||
ToyFlags flags = ToyFlags.None;
|
||||
if (isFavourite)
|
||||
flags |= ToyFlags.Favorite;
|
||||
|
||||
if (hasFanfare)
|
||||
flags |= ToyFlags.HasFanfare;
|
||||
|
||||
return flags;
|
||||
}
|
||||
|
||||
public void OnItemAdded(Item item)
|
||||
@@ -825,13 +848,13 @@ namespace Game.Entities
|
||||
}
|
||||
|
||||
public bool HasToy(uint itemId) { return _toys.ContainsKey(itemId); }
|
||||
public Dictionary<uint, bool> GetAccountToys() { return _toys; }
|
||||
public Dictionary<uint, ToyFlags> GetAccountToys() { return _toys; }
|
||||
public Dictionary<uint, HeirloomData> GetAccountHeirlooms() { return _heirlooms; }
|
||||
public Dictionary<uint, MountStatusFlags> GetAccountMounts() { return _mounts; }
|
||||
|
||||
WorldSession _owner;
|
||||
|
||||
Dictionary<uint, bool> _toys = new Dictionary<uint, bool>();
|
||||
Dictionary<uint, ToyFlags> _toys = new Dictionary<uint, ToyFlags>();
|
||||
Dictionary<uint, HeirloomData> _heirlooms = new Dictionary<uint, HeirloomData>();
|
||||
Dictionary<uint, MountStatusFlags> _mounts = new Dictionary<uint, MountStatusFlags>();
|
||||
System.Collections.BitSet _appearances;
|
||||
|
||||
@@ -3253,7 +3253,7 @@ namespace Game.Entities
|
||||
|
||||
stmt.AddValue(index++, GetByteValue(ActivePlayerFields.Bytes, PlayerFieldOffsets.FieldBytesOffsetActionBarToggles));
|
||||
stmt.AddValue(index++, m_grantableLevels);
|
||||
stmt.AddValue(index++, Global.WorldMgr.GetRealm().Build);
|
||||
stmt.AddValue(index++, Global.RealmMgr.GetMinorMajorBugfixVersionForBuild(Global.WorldMgr.GetRealm().Build));
|
||||
}
|
||||
else
|
||||
{
|
||||
|
||||
@@ -1327,6 +1327,7 @@ namespace Game.Entities
|
||||
packet.WeeklyQuantity.Set(newWeekCount);
|
||||
packet.TrackedQuantity.Set(newTrackedCount);
|
||||
packet.Flags = playerCurrency.Flags;
|
||||
packet.QuantityChange.Set(count);
|
||||
|
||||
SendPacket(packet);
|
||||
}
|
||||
@@ -2771,7 +2772,7 @@ namespace Game.Entities
|
||||
}
|
||||
void SendNewMail()
|
||||
{
|
||||
SendPacket(new NotifyRecievedMail());
|
||||
SendPacket(new NotifyReceivedMail());
|
||||
}
|
||||
public void UpdateNextMailTimeAndUnreads()
|
||||
{
|
||||
@@ -5015,6 +5016,7 @@ namespace Game.Entities
|
||||
displayPlayerChoice.SenderGUID = sender;
|
||||
displayPlayerChoice.ChoiceID = choiceId;
|
||||
displayPlayerChoice.UiTextureKitID = playerChoice.UiTextureKitId;
|
||||
displayPlayerChoice.SoundKitID = playerChoice.SoundKitId;
|
||||
displayPlayerChoice.Question = playerChoice.Question;
|
||||
if (playerChoiceLocale != null)
|
||||
ObjectManager.GetLocaleString(playerChoiceLocale.Question, locale, ref displayPlayerChoice.Question);
|
||||
@@ -5032,9 +5034,13 @@ namespace Game.Entities
|
||||
playerChoiceResponse.ChoiceArtFileID = playerChoiceResponseTemplate.ChoiceArtFileId;
|
||||
playerChoiceResponse.Flags = playerChoiceResponseTemplate.Flags;
|
||||
playerChoiceResponse.WidgetSetID = playerChoiceResponseTemplate.WidgetSetID;
|
||||
playerChoiceResponse.UiTextureAtlasElementID = playerChoiceResponseTemplate.UiTextureAtlasElementID;
|
||||
playerChoiceResponse.SoundKitID = playerChoiceResponseTemplate.SoundKitID;
|
||||
playerChoiceResponse.GroupID = playerChoiceResponseTemplate.GroupID;
|
||||
playerChoiceResponse.Answer = playerChoiceResponseTemplate.Answer;
|
||||
playerChoiceResponse.Header = playerChoiceResponseTemplate.Header;
|
||||
playerChoiceResponse.SubHeader = playerChoiceResponseTemplate.SubHeader;
|
||||
playerChoiceResponse.ButtonTooltip = playerChoiceResponseTemplate.ButtonTooltip;
|
||||
playerChoiceResponse.Description = playerChoiceResponseTemplate.Description;
|
||||
playerChoiceResponse.Confirmation = playerChoiceResponseTemplate.Confirmation;
|
||||
if (playerChoiceLocale != null)
|
||||
@@ -5044,6 +5050,8 @@ namespace Game.Entities
|
||||
{
|
||||
ObjectManager.GetLocaleString(playerChoiceResponseLocale.Answer, locale, ref playerChoiceResponse.Answer);
|
||||
ObjectManager.GetLocaleString(playerChoiceResponseLocale.Header, locale, ref playerChoiceResponse.Header);
|
||||
ObjectManager.GetLocaleString(playerChoiceResponseLocale.SubHeader, locale, ref playerChoiceResponse.SubHeader);
|
||||
ObjectManager.GetLocaleString(playerChoiceResponseLocale.ButtonTooltip, locale, ref playerChoiceResponse.ButtonTooltip);
|
||||
ObjectManager.GetLocaleString(playerChoiceResponseLocale.Description, locale, ref playerChoiceResponse.Description);
|
||||
ObjectManager.GetLocaleString(playerChoiceResponseLocale.Confirmation, locale, ref playerChoiceResponse.Confirmation);
|
||||
}
|
||||
@@ -5093,6 +5101,8 @@ namespace Game.Entities
|
||||
playerChoiceResponse.Reward.Set(reward);
|
||||
displayPlayerChoice.Responses[i] = playerChoiceResponse;
|
||||
}
|
||||
|
||||
playerChoiceResponse.RewardQuestID = playerChoiceResponseTemplate.RewardQuestID;
|
||||
}
|
||||
|
||||
SendPacket(displayPlayerChoice);
|
||||
|
||||
@@ -977,7 +977,7 @@ namespace Game.Entities
|
||||
playOrphanSpellVisual.SpellVisualID = spellVisualId;
|
||||
playOrphanSpellVisual.TravelSpeed = travelSpeed;
|
||||
playOrphanSpellVisual.SpeedAsTime = speedAsTime;
|
||||
playOrphanSpellVisual.UnkZero = 0.0f;
|
||||
playOrphanSpellVisual.LaunchDelay = 0.0f;
|
||||
SendMessageToSet(playOrphanSpellVisual, true);
|
||||
}
|
||||
|
||||
@@ -991,7 +991,7 @@ namespace Game.Entities
|
||||
playOrphanSpellVisual.SpellVisualID = spellVisualId;
|
||||
playOrphanSpellVisual.TravelSpeed = travelSpeed;
|
||||
playOrphanSpellVisual.SpeedAsTime = speedAsTime;
|
||||
playOrphanSpellVisual.UnkZero = 0.0f;
|
||||
playOrphanSpellVisual.LaunchDelay = 0.0f;
|
||||
SendMessageToSet(playOrphanSpellVisual, true);
|
||||
}
|
||||
|
||||
@@ -1016,12 +1016,12 @@ namespace Game.Entities
|
||||
SendMessageToSet(playSpellVisual, true);
|
||||
}
|
||||
|
||||
public void SendPlaySpellVisual(Vector3 targetPosition, float o, uint spellVisualId, uint missReason, uint reflectStatus, float travelSpeed, bool speedAsTime = false)
|
||||
public void SendPlaySpellVisual(Vector3 targetPosition, float launchDelay, uint spellVisualId, uint missReason, uint reflectStatus, float travelSpeed, bool speedAsTime = false)
|
||||
{
|
||||
PlaySpellVisual playSpellVisual = new PlaySpellVisual();
|
||||
playSpellVisual.Source = GetGUID();
|
||||
playSpellVisual.TargetPosition = targetPosition; // exclusive with Target
|
||||
playSpellVisual.Orientation = o;
|
||||
playSpellVisual.LaunchDelay = launchDelay;
|
||||
playSpellVisual.SpellVisualID = spellVisualId;
|
||||
playSpellVisual.TravelSpeed = travelSpeed;
|
||||
playSpellVisual.MissReason = (ushort)missReason;
|
||||
|
||||
Reference in New Issue
Block a user