-
Notifications
You must be signed in to change notification settings - Fork 19
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Investigate unknown packet types #18
Comments
Here are some infos i found out about unknown packet types:
struct VersionPacket
{
uint32_t size;
std::string version; // size size
};
struct MapPacket
{
uint32_t spaceId;
int64_t arenaId;
uint32_t unknown1;
uint32_t unknown2;
// 128 bytes of unknown padding
uint32_t stringSize;
std::string mapName; // size stringSize
Mat4 matrix; // unit matrix
bool unknown3;
};
These two occur hundreds of times, but their payload never changes:
Some more:
|
I'm not sure if this is already known, but
I derived this from the following code from WoT ( class ARENA_PERIOD:
IDLE = 0
WAITING = 1
PREBATTLE = 2
BATTLE = 3
AFTERBATTLE = 4 It's possible that this might not be the exactly correct data structure but if the payload is Here is an example output showing all occurrences of
Therefore, we can calculate the replay time of a packet as following:
Algorithm I use in Rust (to get the battle start time): fn get_battle_start_time(packet_stream: PacketStream) -> f32 {
for packet in packet_stream.into_iter() {
if packet.get_type() == 0x16 {
if packet.get_payload().read_u32::<LE>().unwrap() == 3 {
return packet.get_time();
}
}
}
return -1.0;
} A notable exception to this is the Chat packet(I think Unfortunately I cannot test how this works in WoWS as I don't play it but a similar thing might exist. |
You might want to have a look here: lkolbly/wows-replays#14 |
I don't think this packet exist in wows. The timing data in wows is handled by extra entity called BattleLogic, which has information about time and battle state. The |
yeah |
Here is a table showing the replay version (WoT version when replay was recorded) and the unknown version
Any idea what the version is representing? Does something similar happen in WoWs? |
E.g. for wows:
The last one is definitely EndGame or something like that,
The text was updated successfully, but these errors were encountered: