Packet Guide
From SWGANH Wiki
Packet Structure
Each Page should have a STRUCT section, which gives the variable type and a variable name if known.
Variable Types
| Render | Keyword | Type Details |
|---|---|---|
| BOOL | bool | bool (1byte, 0:false, other value:true) |
| SBYTE | sbyte | sbyte (1byte, signed) |
| BYTE | byte | byte (1byte, unsigned) |
| SHORT | short | short (2bytes, signed) |
| USHORT | ushort | ushort (2bytes, unsigned) |
| INT | int | int (4bytes, signed) |
| UINT | uint | uint (4bytes, unsigned) |
| FLOAT | float | float (4bytes, signed) |
| LONG | long | long (8bytes, signed, mostly used for object ids) |
| ULONG | ulong | ulong (8bytes, unsigned, mostly used for object ids) |
| DOUBLE | double | double (8bytes, signed) |
| A_STRING | a_string | ANSI/ASCII String (2 -packets- or 4 -files- bytes size + 1byte chars, ASCII:leading0+7bits, ANSI:8bits) |
| U_STRING | u_string | Unicode String (4bytes size + 2bytes chars) |
| C_STRING | c_string | Customization String (look here for details) |
| B_STRING | b_string | Byte String (4bytes size + 1byte chars, used for session key only) |
| { } | list | LIST Component (this is a sub section repeated as a list of data. Indent Variable types with 1 space.) |
| ? | uncertain | Uncertain Values (use a single question mark ? in the name to display uncertainty in the variables understanding.) |
| ?? | unknown | Unknown Variable Name (use ?? or Unknown for the name to display that there is no clue as to what the data does.) |
XML style list tags sample: (use as many ":" as needed to multi-indent)
{{beginlist|myitems|mycount}}
:{| class="wikitable"
|}
{{endlist|myitems}}
<myitems count=mycount>
<myitems/>
Additional Guidelines
In Addition, each page should contain a section for Variable Descriptions should be made. This should include a brief, or detailed description as needed to document what the variable does and how it can be used. Also the Opperand_Count and Opcode should be listed with it.
Finally an Additional Info section should be provided to give more info in the case it is needed for that packet.
= STRUCT =
{{{
SHORT: VarName
SHORT: 16bitVariable
INT: 32bitVariable
INT: LookAList
{
LONG: 64bitVariable
BYTE: 8bitVariable
BYTE: ??
}
A_STRING: AsciiString
U_STRING: UnicodeString
C_STRING: CustomizationString
}}}
----
= Variable Description =
{{{
OpperandCount = 9
Opcode = FFFFFFFF
AsciiString:
This variable is a string for the name.
64bitVariable:
This variable is an ID for that guy.
8bitVariable:
This byte is a flag for stuff.
}}}
----
= Notes =
{{{
Anything Additional Goes here.
}}}