libspades
Ace of Spades library
PacketOrientationData Struct Reference

Changes the orientation of the client player. More...

#include <protocol.h>

Data Fields

uint8_t packetID
 1 (Client<->Server)*
 
float xOrientation
 The X orientation to rotate the client player.
 
float yOrientation
 The Y orientation to rotate the client player.
 
float zOrientation
 The Z orientation to rotate the client player.
 

Detailed Description

Changes the orientation of the client player.

Todo
document
Note
NaN values will cause the player to get immediately kicked on most servers.
Piqueserver bug
NaN values will also bypass votekicks, and allow the player to rejoin with no repurcussions.
Piqueserver bug
On piqueserver commits before 41b9af4a9a71cee4b1ca9f342e0862397434ca89, suddenly changing orientation to {0, 0, -1} while moving may cause the X and Y axes of the player's position to become NaN, without kicking the player. This may cause a hardban if you do something wrong (it is unknown what this wrong thing may be). This even works without trusted! Trusted might help, but further testing is needed to say for certain.
SpadesX bug
SpadesX copied and pasted the same code used for piqueserver, resulting in the NaN bug being copied with it.
OpenSpades bug
A continuation of the previously mentioned bug, if the player jumps and changes orientation (possibly to {0, 1, -1}) it will immediately crash most connected OpenSpades 0.1.3 clients with an OpenAL error (assuming they have OpenAL enabled). This has also been shown to work on OpenSpades 0.1.5, but it does not seem to work without trusted.
Todo
maybe refine the steps down a little?
Piqueserver bug
Just kidding, that bug wasn't actually patched, piqueserver is truly unfixable. My guess is some sort of overflow in to the negatives could be happening. How did I do the bug? I just multiplied my orientation a lot lmao. Let's try FLT_MAX for orientation!

Field Documentation

◆ packetID

uint8_t PacketOrientationData::packetID

1 (Client<->Server)*

*Client compatibility varies, Client-->Server is the only direction guaranteed to work.


The documentation for this struct was generated from the following file: