Last active
October 7, 2019 23:59
-
-
Save Andoryuuta/220a6dc159c0c39386900c5f4596393b to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Client Receive opcodes: | |
0x0 -- Invitation | |
uint32 opcode; | |
uint32 version; // 91005 for 0.9.1-5 | |
0x2 -- Server is closing connection. | |
uint32 opcode; | |
<No data> | |
0x3 -- Creature Update: | |
uint32 opcode; | |
uint32 compressed_data_size; | |
byte compressed_data[size]; | |
zlib.decompress(compressed_data) | |
uint64 GUID | |
bitmasked_creature_update | |
0x4 -- DoSomethingToCreaturesMapWithJustGUID: | |
// I think this actually sets the local player's | |
// GUID in the creatures map. | |
uint32 opcode; | |
uint64 guid; | |
0x6 -- Unk: | |
uint32 opcode | |
<_Maybe_ more data????> | |
0x7 -- ServerUpdate | |
// Big ol function with a bunch of cube changes, | |
// player hits, particles, etc. | |
uint32 opcode; | |
uint32 compressed_data_size; | |
byte compressed_data[size]; | |
zlib.decompress(compressed_data) | |
read_list(cubechange_list) | |
uint32 count; | |
byte data[count * 0x20]; | |
read_list(hitpacket_list) | |
uint32 count; | |
byte data[count * 0x48]; | |
read_list(packet_list_2) | |
uint32 count; | |
byte data[count * 0x48]; | |
read_list(packet_list_1) | |
uint32 count; | |
byte data[count * 0x30]; | |
read_list(packet_list_4) | |
uint32 count; | |
byte data[count * 0x80]; | |
read_list(packet_list_6) | |
uint32 count; | |
byte data[count * 0x18]; | |
read_list(packet_list_5) | |
uint32 count; | |
byte data[count * 0x8]; | |
read_list(packet_list_7) | |
uint32 count; | |
byte data[count * 0x8]; | |
read_list(packet_list_8) | |
uint32 count; | |
byte data[count * 0xD0]; | |
read_list(packet_list_9) | |
uint32 count; | |
byte data[count * 0x10]; | |
read_list(packet_list_10) | |
uint32 count; | |
byte data[count * 0x28]; | |
read_list(packet_list_11) | |
uint32 count; | |
byte data[count * 0x18]; | |
read_list(packet_list_12) | |
uint32 count; | |
byte data[count * 0x30]; | |
read_list(packet_list_13) | |
uint32 count; | |
byte data[count * 0x4]; | |
read_list(packet_list_14) | |
uint32 count; | |
byte data[count * 0x8]; | |
0x8 -- SetTime | |
uint32 opcode; | |
uint32 day; | |
uint32 time; // NOT FLOAT! | |
0xE -- ChatMessage | |
uint32 opcode; | |
uint64 guid; | |
uint32 string_size; | |
if string_size > 0: | |
wchar_t string[string_size]; | |
Server recieve opcodes: | |
0x1 -- Client join. | |
uint32 opcode; | |
<No data> | |
0x2 -- Client is closing connection. | |
uint32 opcode; | |
<No data> | |
0x3 -- Creature Update: | |
uint32 opcode; | |
uint32 size; | |
byte data[size]; | |
zlib.decompress(data) | |
uint64 GUID | |
bitmasked_creature_update | |
0x9 -- Unk: | |
uint32 opcode; | |
<No data> | |
0x0A -- Unk: | |
uint32 opcode; | |
byte unk[0x48]; | |
0x0B -- Unk: | |
uint32 opcode; | |
byte unk[0x30]; | |
0x0C -- Unk: | |
uint32 opcode; | |
byte unk[0x30]; | |
0x0D -- Unk | |
uint32 opcode; | |
byte unk[0x80]; | |
0xE -- Chat message: | |
uint32 opcode; | |
uint32 string_size; | |
wchar_t string[string_size]; | |
0x18 -- Version mismatch: | |
uint32 opcode; | |
uint32 version; // 91005 for 0.9.1-5 | |
bitmasked_creature_update: | |
uint64 bitfield; | |
if bitfield & (1<<0): | |
vector3_uint64 position; | |
if bitfield & (1<<1): | |
vector3_float32 rotation; | |
if bitfield & (1<<2): | |
vector3_float32 velocity; | |
if bitfield & (1<<3): | |
vector3_float32 accel; | |
if bitfield & (1<<4): | |
vector3_float32 retreat; | |
if bitfield & (1<<5): | |
float32 head_rotation; | |
if bitfield & (1<<6): | |
uint32 physics_flags; | |
if bitfield & (1<<7): | |
bool hostility_or_ai_type; | |
if bitfield & (1<<8): | |
uint32 race; | |
if bitfield & (1<<9): | |
uint8 action_id; // The current skill or action. | |
if bitfield & (1<<10): | |
float32 action_timer | |
if bitfield & (1<<11): | |
uint32 combo_hits; | |
if bitfield & (1<<12): | |
float32 time_since_last_combo_hit; | |
if bitfield & (1<<13): | |
EntityData::Appearance appearance; // byte[176] | |
if bitfield & (1<<14): | |
uint16 binary_toggles; | |
if bitfield & (1<<15): | |
float32 roll_time; | |
if bitfield & (1<<16): | |
float32 stun_time; | |
if bitfield & (1<<17): | |
float32 some_animation_time; // Character pulls back, but can still move around. | |
if bitfield & (1<<18): | |
float32 speed_slowed_time; | |
if bitfield & (1<<19): | |
float32 speed_boosted_time; | |
if bitfield & (1<<20): | |
float32 unk_float_0; | |
if bitfield & (1<<21): | |
int32 level; | |
if bitfield & (1<<22): | |
int32 exp; // Thanks EndOfFile. | |
if bitfield & (1<<23): | |
uint8 class; | |
if bitfield & (1<<24): | |
uint8 specialization; | |
if bitfield & (1<<25): | |
float32 some_float_0_to_1_mp_cost_pink_bar_background_fill; // Related to MP and stamina, controls a pink bg fill in the MP bar. | |
if bitfield & (1<<26): | |
vector3_float32 unk_vector3_float_0; | |
if bitfield & (1<<27): | |
vector3_float32 unk_vector3_float_1; | |
if bitfield & (1<<28): | |
vector3_float32 camera_looking_at_block_offset; | |
if bitfield & (1<<29): | |
float32 hp; | |
if bitfield & (1<<30): | |
float32 mp; | |
if bitfield & (1<<31): | |
float32 stealth; // Thanks EndOfFile. | |
if bitfield & (1<<32): | |
float32 unk_float_1; | |
if bitfield & (1<<33): | |
float32 current_movement_type_speed; // Thanks EndOfFile. | |
if bitfield & (1<<34): | |
float32 light_diameter; | |
if bitfield & (1<<35): | |
uint8 unk_byte_0_for_campfire_particles; // If your race is a campfire, and this is 0, then flames come out of you. | |
if bitfield & (1<<36): | |
uint8 unk_byte_1; | |
if bitfield & (1<<37): | |
uint64 unk_uint64_0; | |
if bitfield & (1<<38): | |
uint64 unk_uint64_1; | |
if bitfield & (1<<39): | |
vector2_int32 eagle_flying_to_zone_pos; | |
if bitfield & (1<<40): | |
vector2_int32 some_zone_pos; // Maybe spawn zone? | |
if bitfield & (1<<41): | |
vector3_int64 eagle_flying_from_coords; | |
if bitfield & (1<<42): | |
cube::Item unk_item; // cube::Creature+0x1C8 | Size:0xA0 | |
if bitfield & (1<<43): | |
cube::WornEquipment worn_equipment; // cube::Item[11] | |
if bitfield & (1<<44): | |
char[16] name; | |
if bitfield & (1<<45): | |
uint64 client_steam_id; | |
if bitfield & (1<<46): | |
uint8 unk_byte_2; | |
if bitfield & (1<<47): | |
int32 unk_int32_0; | |
if bitfield & (1<<48): | |
uint64 unk_uint64_2 |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment