the total length of the data that composes this packet in bits; exclude the opcode (1 byte) and end padding (0-7 bits); when encoding, it will be calculated automatically
the code for the type of object being constructed; always an 11-bit LE value
the GUID this object will be assigned
if defined, the relationship between this object and another object (its parent)
the data used to construct this type of object;
on decoding, set to None
if the process failed
the data used to construct this type of object;
on decoding, set to None
if the process failed
the GUID this object will be assigned
the code for the type of object being constructed; always an 11-bit LE value
if defined, the relationship between this object and another object (its parent)
the total length of the data that composes this packet in bits; exclude the opcode (1 byte) and end padding (0-7 bits); when encoding, it will be calculated automatically
Communicate with the client that a certain object with certain properties is to be created. In general,
ObjectCreateMessage
and its counterpartObjectCreateDetailedMessage
should look similar.ObjectCreateMessage
is capable of creating every non-environmental object in the game through the use of encoding patterns. The objects produced by this packet generally do not always fully express all the complexities of the object class. With respect to a client's avatar, all of the items in his inventory are given thorough detail so that the client can account for their interaction. The "shallow" objects produced by this packet are not like that. They express only the essential information necessary for client interaction when the client interacts with them. For example, a weapon defined by this packet may not care internally what fire mode it is in or how much ammunition it has. Such a weapon is not in the client's player's holster or inventory. It is imperceptive information to which he would not currently have access. An0x17
game object is, therefore, a game object with only the essential data exposed.When interacting with an
0x17
game object, the server will swap back and forth between it and an0x18
object. (Or it will be removed when it is placed somewhere a given client will no longer be able to see it.) The purpose of this conversion is to control network traffic and object agency. It is not necessary to keep track of all objects on every player on every client individually. This relates to the goal of this packet exposing only "essential data." One player does not need to know how much ammunition remains in a weapon belonging to another player normally. One player also does not need to know how much ammunition is used up when another player reloads their weapon. The only way the first player will know is when the weapon is transferred into his own inventory. All other clients are spared micromanagement of the hypothetical other player's weapon. Updated information is only made available when and where it is needed.Knowing the object's type is necessary for proper parsing. If the object does not have encoding information or is unknown, it will not translate between byte data and a game object.
the total length of the data that composes this packet in bits; exclude the opcode (1 byte) and end padding (0-7 bits); when encoding, it will be calculated automatically
the code for the type of object being constructed; always an 11-bit LE value
the GUID this object will be assigned
if defined, the relationship between this object and another object (its parent)
the data used to construct this type of object; on decoding, set to
None
if the process failedObjectCreateMessageParent
ObjectCreateDetailedMessage