
|
If you were logged in you would be able to see more operations.
|
|
|
| Environment: |
.NET / Windows32
|
| Steps to Reproduce: |
The UpdateInventoryItem packet has a variable InventoryData block.
Using this command:
/set UpdateInventoryItem InventoryData TransactionID 00608804-cb4a-f046-0d6f-b9f398d1c770
When an UpdateInventoryItem packet comes in, MagicSetField throws an exception. "Couldn't find field inventoryDataaBlock[].TransactionID"
The UpdateInventoryItem packet has a variable InventoryData block.
Using this command:
/set UpdateInventoryItem InventoryData TransactionID 00608804-cb4a-f046-0d6f-b9f398d1c770
When an UpdateInventoryItem packet comes in, MagicSetField throws an exception. "Couldn't find field inventoryDataaBlock[].TransactionID"
|
When the set command is used on a packet with a variable block, it looks for a field on the array of variable blocks, and fails when it doesn't find the block class field.
In Analyst.cs, the Analyst.Modify method has a FIXME comment indicating that variable blocks are not supported yet.
|
|
Description
|
When the set command is used on a packet with a variable block, it looks for a field on the array of variable blocks, and fails when it doesn't find the block class field.
In Analyst.cs, the Analyst.Modify method has a FIXME comment indicating that variable blocks are not supported yet. |
Show » |
|
I fixed that. Variable blocks are handled (crudely) if you set a field for a variable block, all the block's fields will be set to the same value. I haven't added anything that would allow you to set the blocks by index.
To prevent the problem from ever cropping up again, I made the Hashtables into generic Dictionarys with the appropriate types enforced. I think the same should be done with the loggedPackets Hashtable, but its working and I dont want to break it.