TrinityCore / TrinityCore/WowPacketParser

`SMSG_UPDATE_OBJECT` does not seem to be entirely accurate for 3.4.2 50172 (50129)

Open
#826 2 comments 0 reactions 0 assignees View on GitHub

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

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. 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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.