TrinityCore / TrinityCore/WowPacketParser
`SMSG_UPDATE_OBJECT` does not seem to be entirely accurate for 3.4.2 50172 (50129)
Nobody has claimed this yet.
- Dominant language
- C#
- Stars
- 522
- Forks
- 387
- Avg merge
- 3d 6h
- Merged PRs (30d)
- 4
Description
Trying to parse a packet from 50172 and there are quite a few creature GUIDs that show up and are being used, but the initial SMSG_UPDATE_OBJECT responsible for their appearance doesn't seem to be parsing fully. No idea if this is the particular packet for the specific creature I'm having issues with, but this was the nearest UPDATE_OBJECT with an explicit exception:
ServerToClient: SMSG_UPDATE_OBJECT (0x27D1) Length: 1959 ConnIdx: 1 Time: [] Number: []
NumObjUpdates: 4
MapID: 1 (1)
HasRemovedObjects: False
Data size: 1948
[0] UpdateType: Values
[0] Object Guid: Full: 0x[] Player/0 R[]/S[] Map: 0 Low: []
System.ArgumentOutOfRangeException
Non-negative number required. (Parameter 'index')
at System.Collections.Generic.List`1.RemoveRange(Int32 index, Int32 count)
at WowPacketParser.Misc.DynamicUpdateField`1.Resize(UInt32 newSize) in C:\Users\benjy\Documents\GitHub\WowPacketParser\WowPacketParser\Misc\DynamicUpdateField.cs:line 25
at WowPacketParser.Misc.DynamicUpdateField`1.ReadUpdateMask(Packet packet, Int32 bitSizeCount) in C:\Users\benjy\Documents\GitHub\WowPacketParser\WowPacketParser\Misc\DynamicUpdateField.cs:line 37
at WowPacketParserModule.V3_4_0_45166.UpdateFields.V3_4_2_50129.UpdateFieldHandler.ReadUpdatePlayerData(Packet packet, Object[] indexes) in C:\Users\benjy\Documents\GitHub\WowPacketParser\WowPacketParserModule.V3_4_0_45166\Parsers\UpdateFieldsHandler342.cs:line 1547
at WowPacketParserModule.V2_5_1_38707.Parsers.UpdateHandler.HandleUpdateObject(Packet packet) in C:\Users\benjy\Documents\GitHub\WowPacketParser\WowPacketParserModule.V2_5_1_38707\Parsers\UpdateHandler.cs:line 103
at WowPacketParser.Parsing.Handler.Parse(Packet packet, Boolean isMultiple) in C:\Users\benjy\Documents\GitHub\WowPacketParser\WowPacketParser\Parsing\Handler.cs:line 149
Contributor guide
No contributing guide indexed for this repository
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start with the failing SMSG_UPDATE_OBJECT packet and trace UpdateHandler.cs through UpdateFieldsHandler342.cs line 1547 into DynamicUpdateField.cs lines 25 and 37. Reproduce the exception while examining the update-mask size and field data for the 3.4.2 packet. Done means the packet parses without the reported ArgumentOutOfRangeException and its creature updates are consumed accurately.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- csharp
- Domain
- reverse-engineering
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 35/100