purple
03-28-2005, 08:00 PM
I finally had some time to sit down and fix the fabled spawns work within seq. Previously, seq was missing Fabled sometimes if they spawn once you are already in zone. This is because they spawn normal and then morph to be Fabled. With the help of FatherNitwit and Doodman on IRC, we figured out how this works, so here's a patch off of latest CVS (which is the same as the 5.0.0.18 tarball you can get off sourceforge). This is just my latest tree diffed off cvs, so you get more changes than just the fabled fix, lucky you!
Changes since 5.0.0.18:
- Fix for sequence rollover in net layer with arqSeqWrapCutOff
- Oversized packets will check for arqSeqGiveUp properly
- Added a playback mode for tcpdump files (see notes)
- Cleanup in PlayerProfile (fixed offset comments, got rid of some unknowns)
- Handle spawns renaming themselves (new OP_SpawnRename). This renames fabled mobs which spawn after you are already in zone properly
- Handle mobs changing level while you are in the zone (old OP_SpawnAppearance, new handler in SpawnShell for it). This properly levels fabled mobs which spawn after you are in the zone
- Group chat that you say won't echo to the message shell twice
- Fix to properly name the MPG trial zones chambersa-chambersf, instead of chambera-chamberf. zones.h was wrong.
Offline Packet Playback
Seq already has an internal packet record/playback format, but I've never found this useful. Pcap (what sniffs the network) has an offline mode which takes tcpdump files though and this seems a lot more useful to me, since I can browse tcpdump files in ethereal and send them to other people to help them, or process them with the item collector, etc. It's a lot more interchangable to use tcpdump files. But seq had this internal format instead.
So I went ahead and put in tcpdump playback into seq. This means that if you take a tcpdump dump (for example, with tcpdump -i eth0 -s0 -w collect.log 'udp && host 192.168.1.52', where collect.log is your output file and 192.168.1.52 is your eq box), you can run it through seq and watch it.
To do this, just use the parameter --playback-tcpdump-filename=collect.log (or whatever filename) when starting seq and it will load up your file. You can control the playback speed with --playback-speed=#, where # is a number from 1-9 (1 being play the log at real time, 2 being 2x speed, 3 being 3x speed, etc.). Once you are in seq, you can also change the playback speed using the File->Inc Playback Speed and File->Dec Playback Speed menu options. This is clunky, but I just used the same menu controls as the internal playback.
If you Inc Playback Speed when the speed is already at 9, it goes into hypermode and starts processing as fast as it can. If you hit Dec Playback Speed when the speed is already at 1, it pauses.
Note that options on the spawn list like Keep Sorted and Immediate Update help a lot if you are watching a tcpdump at 5x speed! They process changes to the spawn list immediately instead of waiting for the next refresh cycle to come along.
Please if you see any problems, let me know! If I don't hear anything by Thursday or so, I'll start bugging people to get this in CVS maybe.
Attached: 5.0.0.18-purple1.patch.gz.txt (gzipped patch renamed to .txt)
Changes since 5.0.0.18:
- Fix for sequence rollover in net layer with arqSeqWrapCutOff
- Oversized packets will check for arqSeqGiveUp properly
- Added a playback mode for tcpdump files (see notes)
- Cleanup in PlayerProfile (fixed offset comments, got rid of some unknowns)
- Handle spawns renaming themselves (new OP_SpawnRename). This renames fabled mobs which spawn after you are already in zone properly
- Handle mobs changing level while you are in the zone (old OP_SpawnAppearance, new handler in SpawnShell for it). This properly levels fabled mobs which spawn after you are in the zone
- Group chat that you say won't echo to the message shell twice
- Fix to properly name the MPG trial zones chambersa-chambersf, instead of chambera-chamberf. zones.h was wrong.
Offline Packet Playback
Seq already has an internal packet record/playback format, but I've never found this useful. Pcap (what sniffs the network) has an offline mode which takes tcpdump files though and this seems a lot more useful to me, since I can browse tcpdump files in ethereal and send them to other people to help them, or process them with the item collector, etc. It's a lot more interchangable to use tcpdump files. But seq had this internal format instead.
So I went ahead and put in tcpdump playback into seq. This means that if you take a tcpdump dump (for example, with tcpdump -i eth0 -s0 -w collect.log 'udp && host 192.168.1.52', where collect.log is your output file and 192.168.1.52 is your eq box), you can run it through seq and watch it.
To do this, just use the parameter --playback-tcpdump-filename=collect.log (or whatever filename) when starting seq and it will load up your file. You can control the playback speed with --playback-speed=#, where # is a number from 1-9 (1 being play the log at real time, 2 being 2x speed, 3 being 3x speed, etc.). Once you are in seq, you can also change the playback speed using the File->Inc Playback Speed and File->Dec Playback Speed menu options. This is clunky, but I just used the same menu controls as the internal playback.
If you Inc Playback Speed when the speed is already at 9, it goes into hypermode and starts processing as fast as it can. If you hit Dec Playback Speed when the speed is already at 1, it pauses.
Note that options on the spawn list like Keep Sorted and Immediate Update help a lot if you are watching a tcpdump at 5x speed! They process changes to the spawn list immediately instead of waiting for the next refresh cycle to come along.
Please if you see any problems, let me know! If I don't hear anything by Thursday or so, I'll start bugging people to get this in CVS maybe.
Attached: 5.0.0.18-purple1.patch.gz.txt (gzipped patch renamed to .txt)