diff --git a/Source/Game/DataStorage/ClientReader/DBReader.cs b/Source/Game/DataStorage/ClientReader/DBReader.cs index 2672f4114..cf417aee4 100644 --- a/Source/Game/DataStorage/ClientReader/DBReader.cs +++ b/Source/Game/DataStorage/ClientReader/DBReader.cs @@ -460,7 +460,7 @@ namespace Game.DataStorage int[] strIdx = GetFieldValueArray(fieldIndex, atr.Length); for (int i = 0; i < array.Length; i++) - array[i] = _stringsTable[pos + i * 4 + strIdx[i]]; + array[i] = _stringsTable.LookupByKey(pos + i * 4 + strIdx[i]); } f.SetValue(obj, array); @@ -524,7 +524,7 @@ namespace Game.DataStorage { var pos = _recordsOffset + _data.Offset + (_data.Position >> 3); int ofs = GetFieldValue(fieldIndex); - f.SetValue(obj, _stringsTable[pos + ofs]); + f.SetValue(obj, _stringsTable.LookupByKey(pos + ofs)); } break; case TypeCode.Object: @@ -539,7 +539,7 @@ namespace Game.DataStorage { var pos = _recordsOffset + _data.Offset + (_data.Position >> 3); int ofs = GetFieldValue(fieldIndex); - localized[LocaleConstant.enUS] = _stringsTable[pos + ofs]; + localized[LocaleConstant.enUS] = _stringsTable.LookupByKey(pos + ofs); } f.SetValue(obj, localized); diff --git a/Source/Game/Entities/Item/Item.cs b/Source/Game/Entities/Item/Item.cs index 17d303b4a..67681822a 100644 --- a/Source/Game/Entities/Item/Item.cs +++ b/Source/Game/Entities/Item/Item.cs @@ -2137,6 +2137,9 @@ namespace Game.Entities public void SetBonuses(List bonusListIDs) { + if (bonusListIDs == null) + bonusListIDs = new List(); + SetUpdateFieldValue(m_values.ModifyValue(m_itemData).ModifyValue(m_itemData.BonusListIDs), bonusListIDs); foreach (uint bonusListID in (List)m_itemData.BonusListIDs) diff --git a/Source/Game/Entities/Object/Update/UpdateField.cs b/Source/Game/Entities/Object/Update/UpdateField.cs index 8b8d1d987..0c4c71812 100644 --- a/Source/Game/Entities/Object/Update/UpdateField.cs +++ b/Source/Game/Entities/Object/Update/UpdateField.cs @@ -381,7 +381,7 @@ namespace Game.Entities { var fieldInfo = ((MemberExpression)expression.Body).Member as FieldInfo; if (fieldInfo == null) - throw new ArgumentException("The lambda expression 'property' should point to a valid Property"); + throw new ArgumentException("The lambda expression should point to a valid Field"); var updateFieldArray = (UpdateFieldArray)fieldInfo.GetValue(this); _changesMask.Set(updateFieldArray.Bit); diff --git a/Source/Game/Entities/Object/Update/UpdateFields.cs b/Source/Game/Entities/Object/Update/UpdateFields.cs index 0815e08d7..80c61ff4e 100644 --- a/Source/Game/Entities/Object/Update/UpdateFields.cs +++ b/Source/Game/Entities/Object/Update/UpdateFields.cs @@ -2916,7 +2916,7 @@ namespace Game.Entities public UpdateField TodayHonorableKills = new UpdateField(66, 73); public UpdateField YesterdayHonorableKills = new UpdateField(66, 74); public UpdateField LifetimeHonorableKills = new UpdateField(66, 75); - public UpdateField WatchedFactionIndex = new UpdateField(66, 76); + public UpdateField WatchedFactionIndex = new UpdateField(66, 76); public UpdateField MaxLevel = new UpdateField(66, 77); public UpdateField ScalingPlayerLevelDelta = new UpdateField(66, 78); public UpdateField MaxCreatureScalingLevel = new UpdateField(66, 79); @@ -3048,7 +3048,7 @@ namespace Game.Entities data.WriteUInt16(TodayHonorableKills); data.WriteUInt16(YesterdayHonorableKills); data.WriteUInt32(LifetimeHonorableKills); - data.WriteInt32(WatchedFactionIndex); + data.WriteUInt32(WatchedFactionIndex); for (int i = 0; i < 32; ++i) { data.WriteUInt32(CombatRatings[i]); @@ -3671,7 +3671,7 @@ namespace Game.Entities } if (_changesMask[76]) { - data.WriteInt32(WatchedFactionIndex); + data.WriteUInt32(WatchedFactionIndex); } if (_changesMask[77]) { diff --git a/Source/Game/Entities/Player/Player.DB.cs b/Source/Game/Entities/Player/Player.DB.cs index 560dfb2b5..ad1a76970 100644 --- a/Source/Game/Entities/Player/Player.DB.cs +++ b/Source/Game/Entities/Player/Player.DB.cs @@ -3094,7 +3094,7 @@ namespace Game.Entities stmt.AddValue(0, GetGUID().GetCounter()); trans.Append(stmt); - float finiteAlways(float f) { return float.IsInfinity(f) ? f : 0.0f; }; + float finiteAlways(float f) { return !float.IsInfinity(f) ? f : 0.0f; }; if (create) { @@ -3170,7 +3170,7 @@ namespace Game.Entities stmt.AddValue(index++, (ushort)m_activePlayerData.TodayHonorableKills); stmt.AddValue(index++, (ushort)m_activePlayerData.YesterdayHonorableKills); stmt.AddValue(index++, (uint)m_playerData.PlayerTitle); - stmt.AddValue(index++, (int)m_activePlayerData.WatchedFactionIndex); + stmt.AddValue(index++, (uint)m_activePlayerData.WatchedFactionIndex); stmt.AddValue(index++, GetDrunkValue()); stmt.AddValue(index++, GetHealth()); @@ -3320,7 +3320,7 @@ namespace Game.Entities stmt.AddValue(index++, (ushort)m_activePlayerData.TodayHonorableKills); stmt.AddValue(index++, (ushort)m_activePlayerData.YesterdayHonorableKills); stmt.AddValue(index++, (uint)m_playerData.PlayerTitle); - stmt.AddValue(index++, (int)m_activePlayerData.WatchedFactionIndex); + stmt.AddValue(index++, (uint)m_activePlayerData.WatchedFactionIndex); stmt.AddValue(index++, GetDrunkValue()); stmt.AddValue(index++, GetHealth()); diff --git a/Source/Game/Entities/Player/Player.cs b/Source/Game/Entities/Player/Player.cs index f03772e95..e2d0a746e 100644 --- a/Source/Game/Entities/Player/Player.cs +++ b/Source/Game/Entities/Player/Player.cs @@ -7437,7 +7437,7 @@ namespace Game.Entities public void RemovePlayerLocalFlag(PlayerLocalFlags flags) { RemoveUpdateFieldFlagValue(m_values.ModifyValue(m_activePlayerData).ModifyValue(m_activePlayerData.LocalFlags), (int)flags); } public void SetPlayerLocalFlags(PlayerLocalFlags flags) { SetUpdateFieldValue(m_values.ModifyValue(m_activePlayerData).ModifyValue(m_activePlayerData.LocalFlags), (int)flags); } - public void SetWatchedFactionIndex(uint index) { SetUpdateFieldValue(m_values.ModifyValue(m_activePlayerData).ModifyValue(m_activePlayerData.WatchedFactionIndex), unchecked((int)index)); } + public void SetWatchedFactionIndex(uint index) { SetUpdateFieldValue(m_values.ModifyValue(m_activePlayerData).ModifyValue(m_activePlayerData.WatchedFactionIndex), index); } public void AddAuraVision(PlayerFieldByte2Flags flags) { SetUpdateFieldFlagValue(m_values.ModifyValue(m_activePlayerData).ModifyValue(m_activePlayerData.AuraVision), (byte)flags); } public void RemoveAuraVision(PlayerFieldByte2Flags flags) { RemoveUpdateFieldFlagValue(m_values.ModifyValue(m_activePlayerData).ModifyValue(m_activePlayerData.AuraVision), (byte)flags); } diff --git a/Source/Game/Handlers/ChatHandler.cs b/Source/Game/Handlers/ChatHandler.cs index 81a4bf5ff..7cc5168f0 100644 --- a/Source/Game/Handlers/ChatHandler.cs +++ b/Source/Game/Handlers/ChatHandler.cs @@ -380,7 +380,6 @@ namespace Game } [WorldPacketHandler(ClientOpcodes.ChatAddonMessage)] - [WorldPacketHandler(ClientOpcodes.ChatAddonMessageTargeted)] void HandleChatAddonMessage(ChatAddonMessage chatAddonMessage) { HandleChatAddon(chatAddonMessage.Params.Type, chatAddonMessage.Params.Prefix, chatAddonMessage.Params.Text, chatAddonMessage.Params.IsLogged); diff --git a/Source/WorldServer/WorldServer.csproj b/Source/WorldServer/WorldServer.csproj index ddf445154..a4b710641 100644 --- a/Source/WorldServer/WorldServer.csproj +++ b/Source/WorldServer/WorldServer.csproj @@ -9,6 +9,7 @@ +