Skip to content
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

0xb83fd2c4 packet "attack" / "BeamFiredPacket" explored #83

Open
NoseyNick opened this issue Dec 25, 2017 · 1 comment
Open

0xb83fd2c4 packet "attack" / "BeamFiredPacket" explored #83

NoseyNick opened this issue Dec 25, 2017 · 1 comment

Comments

@NoseyNick
Copy link
Collaborator

I've been looking at the BeamFiredPacket type 0xb83fd2c4 (JamCRC("attack")) in a bit more detail.

ID (int) - fine
Attack type (int). Type 0,1, 4, 8 have been observed in version <= 2.2.0. Type 9 is the only type I have ever seen in version 2.3.0+

Type 0, 1, 4 (seen in version <= 2.2.0) all follow the same pattern:
Damage (int) - Always seems to be "nice" base10 ints like 100, 200, 400, 1200, 2800... 4500
Port (int) - The <beam_port> number as defined in VesselData.xml for that ship (unconfirmed)
Shooter Type (int)
Target Type (int)
Shooter ID (int)
Target ID (int)
X, Y, Z (floats) Values look like approx X=-46 to 55, Y=-13 to 16, Z=-76 to 150 (might be coordinates on the hit ship?) if...
Manual (int) = 1, otherwise X=0.0, Y=0.0, Z=0.0, Manual=0

Type 8 (seen in version <= 2.2.0) looks quite different:
Unknown (int) - Look too low to be damage as far as I can tell. Small integers, 2,3,4,6?
There then follow 6 shorts. They LOOK printable ASCII-ish UTF16, with strings like "--on.^", "N_- MO", "O_RY_T", "_B MON", "_TOINT", "ne tur". I think I have to assume they're "random memory that happens to be mid-string"? Perhaps these 6 shorts (12 bytes) were perhaps supposed to be 3 undefined ints? PERHAPS correspond to the Port, Shooter Type, Target Type above?
There are then 2 ints, always value 0 as far as I can tell. They COULD be Shooter ID, Target ID if a value 0 made sense?
X, Y, Z (floats) Never 0.0, values look like approx X=16154..58291, Y=-15..139, Z=25810..58736, might be galaxy coordinates instead of ship coordinates?
Manual (int) = 0 always as far as I can tell

Type 9 (seen in version >= 2.3.0) looks different again. The packets also get 4 bytes longer:
Subtype (int), Values 0, 1, 2, 5, 8, 9 seen in the wild. Not 100% sure this is a subtype, but that's my working theory because...
Port - The <beam_port> number as defined in VesselData.xml for that ship (unconfirmed). Seems to be "small integers" (0..9, sometimes 0..15) for Subtype=0,1, or always 0 for Subtype= 2,5,8,9
Shooter Type (int). Values 5,6 for Subtype=0, Value 1 for Subtype=1 or 2, Value 15 for Subtype=5 or 8, Value 0 for Subtype=9.
Target Type (int). Values 1,5,6,7,11,15,16 for most subtypes, except Value 0 for Subtype=9
Unknown (int) seems to always be 0, except if Subtype=9, then values 2,3,4,6 seen.
Shooter ID (int)
Target ID (int)
X, Y, Z (floats) Values look like approx X=-46 to 55, Y=-13 to 16, Z=-76 to 150 if...
Manual (int) = 1, otherwise X=0.0, Y=0.0, Z=0.0, Manual=0
EXCEPT for Subtype=9, in which case X=17641..88735, Y=-107..393, Z=33353..82553 (again might be galaxy coordinates?) and Manual=0

Confused? Yeah, me too. Extensive hexdumps available on request. Any help / clarifications appreciated.

@rjwut
Copy link
Member

rjwut commented Apr 5, 2018

I'm updating the docs with what we have so far.

rjwut added a commit that referenced this issue Apr 5, 2018
rjwut added a commit that referenced this issue Apr 5, 2018
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

2 participants