Packet Guide

From SWGANH Wiki
Revision as of 22:42, 18 December 2006 by Snow (Talk | contribs)

(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to: navigation, search

Packet Structure

Each Page should have a STRUCT section, which gives the variable type and a variable name if known.

Variable Types

TYPE Example Description
BYTE 00 uint8 -- 1 byte, mostly used for flags or small integer IDs
SHORT 00 uint16 -- 2 bytes. Used for various data.
INT 00 uint32 -- 4 bytes. Used for various data.
FLOAT 00 uint32 -- 4 bytes. Floating point value. Used for various data.
LONG 00 uint64 -- 8 bytes. Used mostly for object IDs.
A_STRING 00 ASCII String -- 2 byte Size, 1 byte characters.
U_STRING 00 Unicode String -- 4 byte Size, 2 byte characters.
C_STRING 00 Customization String -- 2 byte Size, see Customization String Format Below.
B_STRING 00 Byte String -- 4 bytes Size, 1 byte characters. Used only for session key.
{ } 00 LIST component -- this is a sub section repeated as a list of data. Indent Variable types with 1 space.
? 00 Uncertin Variables -- Use a single question mark ? in the name to display uncertainty in the variables understanding.
?? 00 Unknown Variable Names -- Use ?? or Unknown for the name to display that there is no clue as to what the data does.

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.
}}}