tot78 last won the day on October 1 2019
tot78 had the most liked content!
If I'm not mistaken, this is what we want to achieve: step 1) WPP should instantiate and fill one object per packet. The class of the object should depend on the opcode of the packet. This class should model the packet and each class's instance should be able to store every information that could potentially be included in that type of packet. step 2) serialize each "Packet object" into text format (json, xml, ...). If JSON is chosen, the step 2 is fairly simple in Java once the right library is plugged into the app. I assume it's the same for C#. So step 1 would be most of the work. (https://github.com/chaodhib/SniffExplorer/tree/master/src/main/java/com/trinitycore/sniffexplorer/message/smsg could be used as a starting point). @KrudorI don't think ProtoBuff would be suited for the job regarding the serialization. If I'm not mistaken, with ProtoBuff, one Packet would have to be stored in a seperate file. What would be more suitable for the user would be to serialize every packets contained in the sniff in one single file (otherwise, there would be hundreds of thousands of files). @Nay Indeed.
Yes, it's parsing the text output of WPP. Sadly, I didn't have any alternative when I started to wrote the app. And as far as I know, WPP still does not support the serialization of structured data. By focusing on wotlk sniffs, I didn't have too much issues regarding changes of the output format. Obviously though, this is clearly a big weakness of the app. And the only way solution is to extend the capabilities of WPP. Nonetheless, my app has provided with an invaluable source of information. The ability to filter packets by expressing the set of conditions that determined if a packet is relevant to me or not and then getting the result in matter of seconds (as opposed to manual search that can take hours/days) has been incredibly fruitful to me. It also allowed me to test certain assertions (1) quite easily: I just wrote my condition and I let the application go through the entire database of wotlk sniffs that I have at my disposal. Then I let the app do its work while I do something else and I had the result after an hour. Doing the same thing by hand would have taken me days.. (1) for example that some packets such as MSG_MOVE_ROOT, MSG_MOVE_WATER_WALK, MSG_MOVE_HOVER, etc.. are only packets transferred from Server To Client cf https://github.com/chaodhib/TrinityCore/blob/c792f35f0e6492d933c3aabc2cd20ebc42c38aad/src/server/game/Movement/MovementPacketSender.h#L32
For quite some time now, I have been working on a tool called SniffExplorer that does exactly you were looking for: https://github.com/chaodhib/SniffExplorer It's written in Java and it is very flexible. The downside is that I didn't wrote any GUI so the only way to use the app is by code. On the other hand, the app allows so much flexibility. Some of that flexibility would be hard to expose through any GUI. A good starting point is here: https://github.com/chaodhib/SniffExplorer/blob/master/src/main/java/com/trinitycore/sniffexplorer/launcher/SniffExplorer.java Also, here is a few more examples of use: https://github.com/chaodhib/SniffExplorer/tree/master/src/main/java/com/trinitycore/sniffexplorer/launcher Contributions are welcome. The documentation is pretty much inexistent however I would be happy to answer to questions. PS: the main target of the app is wotlk sniffs (3.3.5 12340) -- chaodhib
Status of working/scripted instances (master branch)?
tot78 replied to helldesign's topic in Help and SupportWould be good to have this indeed. For the 3.3.5 branch as well. -- chaodhib