Difference between revisions of "PLAY09"

From SWGANH Wiki
Jump to: navigation, search
 
(12 intermediate revisions by 4 users not shown)
Line 1: Line 1:
{{PageHeader|Server Packet|PLAY09}}
+
{{PageHeader|Baseline|PLAY09}}
 
{|align="center"
 
{|align="center"
 
|-  
 
|-  
Line 9: Line 9:
 
|-
 
|-
 
|valign=top|
 
|valign=top|
 +
{| border="0" width="500px" cellpadding=6
 +
|-
 +
||
 
===BaseLine Struct===
 
===BaseLine Struct===
 
----
 
----
 
<pre>
 
<pre>
SHORT:         OpperandCount
+
SHORT: OpperandCount
INT:           AbilityListSize
+
INT: AbilityListSize
INT:           UpdateCounter
+
INT: UpdateCounter
 
{
 
{
  ASTRING:       AbilityString
+
  ASTRING: AbilityString
 
}
 
}
INT:           ExperimentationFlag
+
INT: ExperimentationFlag
INT:           CraftingStage
+
INT: CraftingStage
LONG:           NearestCraftingStationID
+
LONG: NearestCraftingStationID
INT:           DraftSchematicList
+
INT: DraftSchematicList
INT:           UpdateCounter
+
INT: UpdateCounter
 
{
 
{
  INT:           SchematicID
+
  INT: ServerSchematicCRC
  INT:           SchematicCRC
+
  INT: SchematicCRC
 
}
 
}
INT:           ExperimentationPoints
+
INT: ExperimentationPoints
INT:           AccomplishmentCounter
+
INT: AccomplishmentCounter
INT:           FriendList
+
INT: FriendList
INT:           UpdateCounter
+
INT: UpdateCounter
 
{
 
{
  ASTRING:       FriendName
+
  ASTRING: FriendName
 
}
 
}
INT:           IgnoreList
+
INT: IgnoreList
INT:           UpdateCounter
+
INT: UpdateCounter
 
{
 
{
  ASTRING:       IgnoreName
+
  ASTRING: IgnoreName
 
}
 
}
INT:           CurrentLanguageID
+
INT: CurrentLanguageID
INT:           CurrentStomach
+
INT: CurrentStomach
INT:           MaxStomach
+
INT: MaxStomach
INT:           CurrentDrink
+
INT: CurrentDrink
INT:           MaxDrink
+
INT: MaxDrink
INT:           CurrentConsumable(NotUsed)
+
INT: CurrentConsumable(NotUsed)
INT:           MaxConsumable(NotUsed)
+
INT: MaxConsumable(NotUsed)
INT:           UnusedWaypointList
+
INT: UnusedWaypointList
INT:           UpdateCounter
+
INT: UpdateCounter
 
{
 
{
  BYTE:         DeltaByte(00)
+
  BYTE: DeltaByte(00)
  LONG:         WaypointObjectID
+
  LONG: WaypointObjectID
  INT:           ??
+
  INT: CellID
  FLOAT:         XCoord
+
  FLOAT: XCoord
  FLOAT:         ZCoord
+
  FLOAT: ZCoord
  FLOAT:         YCoord
+
  FLOAT: YCoord
  INT:           ??
+
  LONG: LocationNetworkID
  INT:           ??
+
  INT: PlanetCRC
INT:          PlanetCRC
+
  USTRING: WaypointName
 
+
  LONG: WaypointObjectID
  USTRING:       WaypointName
+
  BYTE: Color
  LONG:         WaypointObjectID
+
  BYTE: ActiveFlag
  BYTE:         Color
+
  BYTE:         ActiveFlag
+
 
}
 
}
INT:           JediState
+
INT: JediState
 
</pre>
 
</pre>
  
Line 71: Line 72:
  
 
<pre>
 
<pre>
SHORT:                 UpdateCounter
+
SHORT: UpdateCounter
SHORT:                 UpdateType
+
SHORT: UpdateType
 
{
 
{
 
   00:
 
   00:
     INT:               AbilityListSize
+
     INT: AbilityListSize
     INT:               UpdateCounter
+
     INT: UpdateCounter
 
     {
 
     {
       BYTE:             SubType
+
       BYTE: SubType
 
       {
 
       {
         00:(add)
+
         00:(remove)
           SHORT:       Index
+
           SHORT: Index
         01:(remove)
+
         01:(add)
           SHORT:       Index
+
           SHORT: Index
           ASTRING:     AbilityString
+
           ASTRING: AbilityString
 
         02:(change)
 
         02:(change)
           SHORT:       Index
+
           SHORT: Index
           ASTRING:     AbilityString
+
           ASTRING: AbilityString
 
         03:(resetall)
 
         03:(resetall)
           SHORT:       NewListSize
+
           SHORT: NewListSize
 
           {
 
           {
             ASTRING:   AbilityString  
+
             ASTRING: AbilityString
 
           }
 
           }
 
         04:(clear)
 
         04:(clear)
Line 97: Line 98:
 
     }
 
     }
 
   01:
 
   01:
     INT:               ExperimentationFlag
+
     INT: ExperimentationFlag
 
   02:
 
   02:
     INT:              
+
     INT: CraftingStage
CraftingStage
+
 
   03:
 
   03:
     LONG:               NearestCraftingStationID
+
     LONG: NearestCraftingStationID
 
   04:
 
   04:
     INT:               DraftSchematicList
+
     INT: DraftSchematicList
     INT:               UpdateCounter
+
     INT: UpdateCounter
 
     {
 
     {
       BYTE:             SubType
+
       BYTE: SubType
 
       {
 
       {
         00:(add)
+
         00:(remove)
           SHORT:       Index
+
           SHORT: Index
         01:(remove)
+
         01:(add)
           SHORT:       Index
+
           SHORT: Index
           INT:         SchematicID
+
           INT: ServerSchematicCRC
           INT:         SchematicCRC
+
           INT: SchematicCRC
 
         02:(change)
 
         02:(change)
           SHORT:       Index
+
           SHORT: Index
           INT:         SchematicID
+
           INT: ServerSchematicCRC
           INT:         SchematicCRC
+
           INT: SchematicCRC
 
         03:(resetall)
 
         03:(resetall)
           SHORT:       NewListSize
+
           SHORT: NewListSize
 
           {
 
           {
             INT:       SchematicID
+
             INT: ServerSchematicCRC
             INT:       SchematicCRC
+
             INT: SchematicCRC
 
           }
 
           }
 
         04:(clear)
 
         04:(clear)
Line 129: Line 129:
 
     }
 
     }
 
   05:
 
   05:
     INT:               ExperimentationPoints
+
     INT: ExperimentationPoints
 
   06:
 
   06:
     INT:               AccomplishmentCounter
+
     INT: AccomplishmentCounter
 
   07:
 
   07:
     INT:               FriendList
+
     INT: FriendList
     INT:               UpdateCounter
+
     INT: UpdateCounter
 
     {
 
     {
   
+
    BYTE: SubType
BYTE:             SubType
+
 
       {
 
       {
         00:(add)
+
         00:(remove)
           SHORT:       Index
+
           SHORT: Index
         01:(remove)
+
         01:(add)
           SHORT:       Index
+
           SHORT: Index
           ASTRING:     FriendName
+
           ASTRING: FriendName
 
         02:(change)
 
         02:(change)
           SHORT:       Index
+
           SHORT: Index
           ASTRING:     FriendName
+
           ASTRING: FriendName
 
         03:(resetall)
 
         03:(resetall)
           SHORT:       NewListSize
+
           SHORT: NewListSize
 
           {
 
           {
             ASTRING:   FriendName
+
             ASTRING: FriendName
 
           }
 
           }
 
         04:(clear)
 
         04:(clear)
Line 156: Line 155:
 
     }
 
     }
 
   08:
 
   08:
     INT:               IgnoreList
+
     INT: IgnoreList
     INT:               UpdateCounter
+
     INT: UpdateCounter
 
     {
 
     {
     BYTE:             SubType
+
     BYTE: SubType
 
       {
 
       {
         00:(add)
+
         00:(remove)
           SHORT:       Index
+
           SHORT: Index
         01:(remove)
+
         01:(add)
           SHORT:       Index
+
           SHORT: Index
           ASTRING:     IgnoreName
+
           ASTRING: IgnoreName
 
         02:(change)
 
         02:(change)
           SHORT:       Index
+
           SHORT: Index
           ASTRING:     IgnoreName
+
           ASTRING: IgnoreName
 
         03:(resetall)
 
         03:(resetall)
           SHORT:       NewListSize
+
           SHORT: NewListSize
 
           {
 
           {
             ASTRING:   IgnoreName
+
             ASTRING: IgnoreName
 
           }
 
           }
     
+
        04:(clear)
04:(clear)
+
 
       }
 
       }
 
     }
 
     }
 
   09:
 
   09:
     INT:               CurrentLanguageID
+
     INT: CurrentLanguageID
 
   0A:
 
   0A:
     INT:               CurrentStomach
+
     INT: CurrentStomach
 
   0B:
 
   0B:
     INT:               MaxStomach
+
     INT: MaxStomach
 
   0C:
 
   0C:
     INT:               CurrentDrink
+
     INT: CurrentDrink
 
   0D:
 
   0D:
     INT:               MaxDrink
+
     INT: MaxDrink
 
   0E:
 
   0E:
     INT:               CurrentConsumable(NotUsed)
+
     INT: CurrentConsumable(NotUsed)
 
   0F:
 
   0F:
     INT:               MaxConsumable(NotUsed)
+
     INT: MaxConsumable(NotUsed)
 
   10:
 
   10:
     INT:               UnusedWaypointList
+
     INT: UnusedWaypointList
     INT:               UpdateCounter
+
     INT: UpdateCounter
 
     {
 
     {
       BYTE:             SubType
+
       BYTE: SubType
 
       {
 
       {
         00:(remove)
+
         00:(add)
           LONG:         WaypointObjectID
+
           LONG: WaypointObjectID
           INT:         ??
+
           INT: CellID
           FLOAT:       XCoord
+
           FLOAT: XCoord
           FLOAT:       ZCoord
+
           FLOAT: ZCoord
           FLOAT:       YCoord
+
           FLOAT: YCoord
           INT:          ??
+
           LONG: LocationNetworkID
          INT:         ??
+
           INT: PlanetCRC
           INT:         PlanetCRC
+
           USTRING: WaypointName
           USTRING:     WaypointName
+
           LONG: WaypointObjectID
           LONG:         WaypointObjectID
+
           BYTE: Color
           BYTE:         Color
+
           BYTE: ActiveFlag
           BYTE:    
+
         01:(remove)
  ActiveFlag
+
           LONG: WaypointObjectID
         01:(add)
+
           INT: CellID
           LONG:         WaypointObjectID
+
           FLOAT: XCoord
           INT:         ??
+
           FLOAT: ZCoord
           FLOAT:       XCoord
+
           FLOAT: YCoord
           FLOAT:       ZCoord
+
           LONG: LocationNetworkID
           FLOAT:       YCoord
+
           INT: PlanetCRC
           INT:         ??
+
           USTRING: WaypointName
           INT:         ??
+
           LONG: WaypointObjectID
          INT:          PlanetCRC
+
           BYTE: Color
           USTRING:     WaypointName
+
           BYTE: ActiveFlag
           LONG:         WaypointObjectID
+
         02:(change)
           BYTE:         Color
+
           LONG: WaypointObjectID
           BYTE:         ActiveFlag
+
           INT: CellID
         02:(add)
+
           FLOAT: XCoord
           LONG:         WaypointObjectID
+
           FLOAT: ZCoord
           INT:         ??
+
           FLOAT: YCoord
           FLOAT:       XCoord
+
           LONG: LocationNetworkID
           FLOAT:       ZCoord
+
           INT: PlanetCRC
           FLOAT:       YCoord
+
           USTRING: WaypointName
           INT:         ??
+
           LONG: WaypointObjectID
           INT:         ??
+
           BYTE: Color
          INT:          PlanetCRC
+
           BYTE: ActiveFlag
           USTRING:     WaypointName
+
           LONG:         WaypointObjectID
+
           BYTE:         Color
+
           BYTE:         ActiveFlag
+
 
       }
 
       }
 
     }
 
     }
 
   11:
 
   11:
     INT:               JediState
+
     INT: JediState
 
}
 
}
 
</pre>
 
</pre>
 
+
|}
 
|valign=top|
 
|valign=top|
  
Line 265: Line 259:
 
:The ObjectID of the closest crafting station (and the one that will be used for crafting).
 
:The ObjectID of the closest crafting station (and the one that will be used for crafting).
  
'''DraftSchematics''':
+
'''ServerSchematicCRC''':
:The list of draft schematics your player has available. Each listing contains a DraftSchematicID (maintained by the server) and a DraftSchematicCRC.
+
:This is a Server Side CRC number assigned to each schematic. It is used in commands to identify the schematic with the server. The exact value does not matter so long as it matches all instances (PLAY9, Controller207, Controller1BF, Controller102...)
 +
 
 +
'''SchematicCRC''':
 +
:The SWGCRC of the .iff object template taken from "object/draft_schematic/*" for the corresponding schematic. This is used to uniquely identify the schematic.
  
 
'''ExperimentationPoints''':
 
'''ExperimentationPoints''':
Line 298: Line 295:
 
:The bitmask of available jedi skills.
 
:The bitmask of available jedi skills.
 
<pre>
 
<pre>
 +
00 - Non-Jedi
 
01 - Force Sensative (Novice)
 
01 - Force Sensative (Novice)
 
02 - Jedi (Elite)
 
02 - Jedi (Elite)
Line 309: Line 307:
 
{| align="center"
 
{| align="center"
 
|-  
 
|-  
||{{75%}}
+
||{{100%}}
 
|-
 
|-
 
|}
 
|}
Line 317: Line 315:
 
----
 
----
 
<pre>
 
<pre>
11 00
 
0F 00 00 00 // ABILITY LIST SIZE
 
00 00 00 00
 
10 00                        // string count
 
63 65 72 74 5F 6B 6E 69 66 65 // cert_knife
 
5F 73 74 6F 6E 65            // _stone
 
  
13 00                         // string count
+
00 0D #DataFrag
63 65 72 74 5F 6B 6E 69 66 65 // cert_knife
+
03 2A #Sequence
5F 73 75 72 76 69 76 61 6C    // _survival
+
00 00 04 AF #TotalPacketSize
 +
05 00 #Operand
 +
0C 5F A7 68 #BaselinesMessage
 +
44 C8 59 45 04 00 00 00 #PlayID
 +
(this is unique for all PLAY and links to the character via UpdateContainmentMessage)
 +
59 41 4C 50 09 #PLAY09
  
18 00                                  // string count
 
63 65 72 74 5F 6C 61 6E 63 65 5F      // cert_lance_
 
73 74 61 66 66 5F 77 6F 6F 64 5F 73 31 // staff_wood_s1
 
  
13 00                        // string count
 
63 65 72 74 5F 61 78 65 5F    // cert_axe_
 
68 65 61 76 79 5F 64 75 74 79 // heavy_duty
 
  
0F 00                         // string count
+
98 04 00 00 #Data size that follows
63 65 72 74 5F 72 69 66 6C 65 // cert_rifle
+
5F 63 64 65 66                // _cdef
+
  
10 00                            // string count
 
63 65 72 74 5F 70 69 73 74 6F 6C // cert_pistol
 
5F 63 64 65 66                  // _cdef
 
  
11 00                               // string count
+
12 00 #opcode
63 65 72 74 5F 63 61 72 62 69 6E 65 // cert_carbine
+
5F 63 64 65 66                      // _cdef
+
  
20 00                                                   // string count
+
00 00 00 00
63 65 72 74 5F 67 72 65 6E 61 64 65 5F                  // cert_grenade_
+
66 72 61 67 6D 65 6E 74 61 74 69 6F 6E 5F 6C 69 67 68 74 // fragmentation_light
+
  
1E 00                                       // string count
+
00 00 00 00
63 65 72 74 5F 73 74 61 72 73 68 69 70 73 5F // cert_starships_
+
74 69 65 66 69 67 68 74 65 72 6C 69 67 68 74 // tiefighterlight
+
  
14 00                                 // string count
+
00 00 00 00
63 65 72 74 5F 6F 72 64 6E 61 6E 63 65 // cert_ordnance
+
5F 6C 65 76 65 6C 31                  // _level1
+
  
16 00                           // string count
+
00 00 00 00
63 65 72 74 5F 64 72 6F 69 64 5F // cert_droid_
+
61 73 74 72 6F 6D 65 63 68 5F 31 //astromech_1
+
  
16 00                              // string count
 
64 72 6F 69 64 63 6F 6D 6D 61 6E 64 // droidcommand
 
5F 6D 75 74 65 64 72 6F 69 64      //_mutedroid
 
  
0D 00                                  // string count
 
68 61 72 76 65 73 74 43 6F 72 70 73 65 // harvestCorpse
 
  
14 00                                 // string count
+
0F 00 00 00 #Size
70 72 69 76 61 74 65 5F 73 63 6F 75 74 // private_scout
+
0F 00 00 00 # size again?
5F 6E 6F 76 69 63 65                  // _novice
+
00 # Unk byte
  
1C 00                                          // string count
 
70 72 69 76 61 74 65 5F 69 6D 70 65 72 69 61 6C // private_imperial
 
5F 6E 61 76 79 5F 6E 6F 76 69 63 65            // _navy_novice
 
  
00 00 00 00   // Experimentation Flags
+
 
00 00 00 00   // Crafting Stage Flags
+
 
00 00 00 00 00 00 00 00 // Crafting Station ID
+
####### useable Draft Schematics that a player can select from ########
01 00 00 00   // Draft Schematics
+
 
 +
 
 +
 
 +
A1 D4 09 04 #SchematicID
 +
4F 56 B0 83 #object/draft_schematic/weapon/lightsaber/shared_lightsaber_one_hand_gen1.iff
 +
01
 +
00 00 00 00  
 +
 
 +
 
 +
C9 12 2E 05 #SchematicID
 +
7A 43 6F E8 #object/draft_schematic/weapon/lightsaber/shared_lightsaber_training.iff
 +
01
 +
00 00 00 00  
 +
 
 +
 
 +
2B 0F 02 13 #SchematicID
 +
C5 8D BB 94 #object/draft_schematic/weapon/lightsaber/shared_lightsaber_two_hand_gen1.iff
 +
01
 +
00 00 00 00  
 +
 
 +
 
 +
F8 AD 84 21 #SchematicID
 +
9A 18 6A A1 #object/draft_schematic/weapon/lightsaber/shared_lightsaber_polearm_gen2.iff
 +
01
 +
00 00 00 00  
 +
 
 +
 
 +
75 CA 89 68 #SchematicID
 +
17 7F 67 E8 #object/draft_schematic/weapon/lightsaber/shared_lightsaber_polearm_gen3.iff
 +
01  
 +
00 00 00 00
 +
 
 +
 
 +
AF 30 F0 6D #SchematicID
 +
41 B2 49 EA #object/draft_schematic/weapon/lightsaber/shared_lightsaber_one_hand_gen4.iff
 +
01
 +
00 00 00 00
 +
 
 +
 
 +
25 EB FB 7A #SchematicID
 +
CB 69 42 FD #object/draft_schematic/weapon/lightsaber/shared_lightsaber_two_hand_gen4.iff
 +
01
 +
00 00 00 00
 +
 
 +
 
 +
31 C0 18 81 #SchematicID
 +
DF 42 A1 06 #object/draft_schematic/weapon/lightsaber/shared_lightsaber_two_hand_gen3.iff
 +
01
 +
00 00 00 00
 +
 
 +
 
 +
61 E1 6A 93 #SchematicID
 +
03 54 84 13 #object/draft_schematic/weapon/lightsaber/shared_lightsaber_polearm_gen4.iff
 +
01
 +
00 00 00 00
 +
 
 +
BB 1B 13 96 #SchematicID
 +
55 99 AA 11 #object/draft_schematic/weapon/lightsaber/shared_lightsaber_one_hand_gen3.iff
 +
01
 
00 00 00 00
 
00 00 00 00
A7 94 A8 12    // Schematic ID
+
63 30 4A 0F    // Schematic CRC
+
79 40 F7 97 #SchematicID
00 00 00 00   // Experimentation Points
+
06 93 DC DD #object/draft_schematic/item/shared_item_jedi_tool.iff
00 00 00 00   // Counter Incremented Every Prototype Creation Ack. And Every Kill. (CU/NGE)
+
01
          //PRE-CU This gets flagged as an ExperienceChanged. Old trace of experience most likely.
+
00 00 00 00  
02 00 00 00   // Friends List
+
 
 +
 +
42 24 B3 C2 #SchematicID
 +
AB 0E 31 85 #object/draft_schematic/weapon/lightsaber/shared_lightsaber_refined_crystal_pack.iff
 +
01
 +
00 00 00 00  
 +
 
 +
 
 +
BC A7 15 C8 #SchematicID
 +
52 25 AC 4F #object/draft_schematic/weapon/lightsaber/shared_lightsaber_two_hand_gen2.iff
 +
01
 +
00 00 00 00
 +
 
 +
 
 +
36 7C 1E DF #SchematicID
 +
D8 FE A7 58 #object/draft_schematic/weapon/lightsaber/shared_lightsaber_one_hand_gen2.iff
 +
01
 
00 00 00 00
 
00 00 00 00
05 00          // string count
+
 
61 63 68 61 6E // achan (friend name)
+
 
06 00             // string count
+
6F 05 93 FA #SchematicID
66 65 72 72 69 6E // ferrin (friend name)
+
0D B0 7D 7A #object/draft_schematic/weapon/lightsaber/shared_lightsaber_polearm_gen1.iff
02 00 00 00   // Ignore List
+
01
 +
00 00 00 00
 +
 
 +
00 00 00 00
 +
00 00
 +
00 08
 +
00 00 00 00
 
00 00 00 00
 
00 00 00 00
06 00             // string count
+
 
55 6C 74 79 6D 61 // Ultyma (ignore name)
+
65 00 00 00 # Friends list Size
06 00             // string count
+
 
52 61 6D 73 65 79 // Ramsey (ignore name)
+
98 01 00 00 # update counter?
01 00 00 00 // Current Lanaguage
+
 
32 00 00 00 // Stomach Food Current
+
 
64 00 00 00 // Stomach Food Max
+
 
32 00 00 00 // Stomach Drink Current
+
############## Friends and IGNORE list #################
64 00 00 00 // Stomach Drink Max
+
 
00 00 00 00 // Not Found (Something related/similar to Stomach)
+
 
00 00 00 00 // Not Found (Something related/similar to Stomach)
+
06 00  
00 00 00 00 // Waypoint Objects - Not Found - Not for Datapad
+
73 63 6F 6F 62 65
00 00 00 00
+
 
00 00 00 00 // Jedi State
+
04 00
 +
67 61 6E 74
 +
 
 +
04 00
 +
63 68 61 76
 +
 
 +
04 00
 +
6E 65 6F 27
 +
 
 +
06 00
 +
73 68 6F 67 75 6E
 +
 
 +
05 00
 +
69 7A 6F 74 65
 +
 
 +
05 00
 +
70 69 6C 61 72
 +
 
 +
09 00
 +
70 72 6F 63 61 72 69 61 6E
 +
 
 +
0E 00
 +
6F 63 74 61 76 69 61 6E 63 61 65 73 61 72
 +
 
 +
07 00
 +
74 73 75 62 61 73 61
 +
 
 +
07 00
 +
6D 61 73 61 2D 72 6F
 +
 
 +
05 00
 +
6D 61 64 61 72
 +
 
 +
04 00
 +
67 69 61 6E
 +
 
 +
05 00
 +
74 6F 73 68 69
 +
 
 +
0C 00
 +
6E 75 6B 65 73 79 6F 75 72 6D 6F 6D
 +
 
 +
0B 00
 +
6B 72 69 73 74 69 61 6E 69 75 73
 +
 
 +
0A 00
 +
6A 61 77 69 69 61 72 65 61 6E
 +
 
 +
 
 +
09 00
 +
62 61 72 74 61 6C 62 79 27
 +
 
 +
06 00
 +
68 61 73 74 61 27
 +
 
 +
05 00
 +
6A 61 76 69 6E
 +
 
 +
0A 00
 +
63 73 72 5F 6A 61 73 6F 6E 70
 +
 
 +
07 00
 +
68 69 6B 65 72 61 6E
 +
 
 +
0E 00
 +
68 69 72 65 64 2D 61 73 73 61 73 73 69 6E
 +
 
 +
09 00 #String Size
 +
01 75 2B This rest of this name continues in the next datafragment after sequence (03 2B #Sequence)
 +
 
 +
 
 +
 
 +
############## Friends and IGNORE list  continues #################
 +
 
 +
 
 +
00 0D #DatrFrag
 +
03 2B #Sequence (Name date resumes after this)
 +
76 61 6C 65 6E 74 69 6E 6F 05 00 6D
 +
79 73 69 61 06 00 61 6C 6C 69 6F 73 05 00 6F 63
 +
6B 69 6D 06 00 65 79 65 6F 77 6E 04 00 62 61 6E
 +
65 07 00 74 79 67 72 65 73 73 07 00 64 72 61 65
 +
6C 6F 76 05 00 6C 61 74 65 61 06 00 76 61 6C 6C
 +
6F 72 04 00 6D 61 65 69 06 00 70 6F 6C 61 6E 64
 +
05 00 68 61 73 74 61 09 00 6D 6F 75 72 6E 62 6C
 +
61 64 08 00 72 61 79 6D 75 6E 64 6F 07 00 61 72
 +
74 65 6F 75 73 09 00 74 68 65 2D 6A 6F 6B 65 72
 +
05 00 72 65 78 6F 72 06 00 76 69 70 65 72 78 05
 +
00 77 6F 61 64 61 0A 00 6E 65 72 6F 63 61 65 73
 +
61 72 07 00 2D 68 69 72 65 64 2D 07 00 27 63 68
 +
72 6F 67 72 06 00 61 73 68 65 6C 79 06 00 71 75
 +
65 62 65 63 06 00 6F 61 64 72 61 73 07 00 6D 6F
 +
72 64 72 69 73 08 00 7A 61 6E 7A 69 62 61 72 03
 +
00 77 75 6E 08 00 72 6F 62 65 72 74 2D 6D 05 00
 +
74 69 64 65 73 05 00 68 69 72 65 64 05 00 6C 6F
 +
74 75 73 08 00 66 61 62 72 69 7A 69 6F 0B 00 69
 +
6E 74 65 72 63 65 70 74 65 72 06 00 68 61 61 76
 +
69 64 06 00 77 61 73 61 76 69 06 00 6B 61 65 7A
 +
61 72 07 00 6C 75 63 69 61 74 68 05 00 64 6F 6D
 +
61 71 05 00 73 6F 6E 6E 79 03 00 74 6F 6F 06 00
 +
6E 61 63 68 6F 73 05 00 61 6E 6A 65 6C 04 00 64
 +
6D 61 71 08 00 64 6F 6C 74 68 72 61 6E 06 00 6D
 +
79 74 68 69 63 0A 00 76 6F 6F 68 65 64 72 61 73
 +
68 05 00 64 65 76 6F 65 03 00 72 68 69 04 00 77
 +
79 63 6B 04 00 70 65 65 67 05 00 61 6B 61 6C 65
 +
0B 00 73 69 6C 76 65 72 6E 65 78 75 73 07 00 7A
 +
79 69 70 6C 65 78 08 00 61 6E 61 63 6F 6E 64 61
 +
09 00 6C 6F 72 64 64 65 61 74 68 06 00 73 74 61
 +
62 62 79 04 00 62 61 6C 6C 04 00 62 61 01 54 4A
 +
 
 +
 
 +
 
 +
 
 +
############## Friends and IGNORE list continues #################
 +
 
 +
 
 +
00 0D 03 2C 61 6C 07 00 75 6E 6B 6E 6F 77 6E 06
 +
00 6A 6F 2D 73 65 66 06 00 73 6D 65 72 66 79 0A
 +
00 63 73 72 2D 6A 61 73 6F 6E 70 06 00 74 75 6C
 +
6B 61 73 06 00 73 6E 61 70 70 79 0A 00 77 61 6C
 +
6B 65 72 2D 62 6F 68 06 00 6A 6F 76 61 63 6B 05
 +
00 6F 6D 6F 73 69 06 00 74 69 6D 6E 61 72 06 00
 +
6E 65 69 6B 6B 61 0A 00 43 53 52 5F 4A 61 73 6F
 +
6E 50 05 00 66 61 7A 65 72 07 00 70 72 61 69 64
 +
65 6E 0A 00 61 67 65 6E 74 77 6F 72 6B 73 0B 00
 +
74 68 65 67 72 65 61 74 72 61 79 08 00 64 72 61
 +
67 6D 69 72 65 07 00 73 6F 75 6C 6D 61 6E 01 00
 +
00 00 08 00 00 00 05 00 73 6B 65 65 74
 +
 
 +
 
 +
01 00 00 00 #language_basic_speak (INT)
 +
2C 00 00 00 #Food
 +
64 00 00 00 #max food
 +
10 00 00 00 #Drink
 +
64 00 00 00 #MaxDrink
 +
00 00 00 00 #Meds
 +
64 00 00 00 #MaxMeds
 +
 
 +
#Unsure of data below
 +
 
 +
00 00 00 00
 +
00 00 00 00
 +
08 00 00
 +
00 01 DD DB
 +
 
 +
(Language)
 +
 
 +
language_basic_speak
 +
language_rodian_speak
 +
language_trandoshan_speak
 +
language_moncalamari_speak
 +
language_wookiee_speak
 +
language_bothan_speak
 +
language_twilek_speak
 +
language_zabrak_speak
 +
language_lekku_speak
 +
language_ithorian_speak
 +
language_sullustan_speak
 +
language_hutt_speak
 +
 
 
</pre>
 
</pre>

Latest revision as of 12:03, 27 January 2014

Baseline - PLAY09

SWGANH Wiki is a repository of Star Wars Galaxies Developer information. This site is only meant to be used by SWGANH Developer team.

PLAY Packet Type QuickNav
PLAY01 - PLAY03 - PLAY06 - PLAY08 - PLAY09


BaseLine Struct


SHORT:		OpperandCount
INT:		AbilityListSize
INT:		UpdateCounter
{
 ASTRING:	AbilityString
}
INT:		ExperimentationFlag
INT:		CraftingStage
LONG:		NearestCraftingStationID
INT:		DraftSchematicList
INT:		UpdateCounter
{
 INT:		ServerSchematicCRC
 INT:		SchematicCRC
}
INT:		ExperimentationPoints
INT:		AccomplishmentCounter
INT:		FriendList
INT:		UpdateCounter
{
 ASTRING:	FriendName
}
INT:		IgnoreList
INT:		UpdateCounter
{
 ASTRING:	IgnoreName
}
INT:		CurrentLanguageID
INT:		CurrentStomach
INT:		MaxStomach
INT:		CurrentDrink
INT:		MaxDrink
INT:		CurrentConsumable(NotUsed)
INT:		MaxConsumable(NotUsed)
INT:		UnusedWaypointList
INT:		UpdateCounter
{
 BYTE:		DeltaByte(00)
 LONG:		WaypointObjectID
 INT:		CellID
 FLOAT:		XCoord
 FLOAT:		ZCoord
 FLOAT:		YCoord
 LONG:		LocationNetworkID
 INT:		PlanetCRC
 USTRING:	WaypointName
 LONG:		WaypointObjectID
 BYTE:		Color
 BYTE:		ActiveFlag
}
INT:		JediState

Deltas Struct


SHORT:			UpdateCounter
SHORT:			UpdateType
{
  00:
    INT:		AbilityListSize
    INT:		UpdateCounter
    {
      BYTE:		SubType
      {
        00:(remove)
          SHORT:	Index
        01:(add)
          SHORT:	Index
          ASTRING:	AbilityString
        02:(change)
          SHORT:	Index
          ASTRING:	AbilityString
        03:(resetall)
          SHORT:	NewListSize
          {
            ASTRING:	AbilityString	
          }
        04:(clear)
      }
    }
  01:
    INT:		ExperimentationFlag
  02:
    INT:		CraftingStage
  03:
    LONG:		NearestCraftingStationID
  04:
    INT:		DraftSchematicList
    INT:		UpdateCounter
    {
      BYTE:		SubType
      {
        00:(remove)
          SHORT:	Index
        01:(add)
          SHORT:	Index
          INT:		ServerSchematicCRC
          INT:		SchematicCRC
        02:(change)
          SHORT:	Index
          INT:		ServerSchematicCRC
          INT:		SchematicCRC
        03:(resetall)
          SHORT:	NewListSize
          {
            INT:	ServerSchematicCRC
            INT:	SchematicCRC
          }
        04:(clear)
      }
    }
  05:
    INT:		ExperimentationPoints
  06:
    INT:		AccomplishmentCounter
  07:
    INT:		FriendList
    INT:		UpdateCounter
    {
     BYTE:		SubType
      {
        00:(remove)
          SHORT:	Index
        01:(add)
          SHORT:	Index
          ASTRING:	FriendName
        02:(change)
          SHORT:	Index
          ASTRING:	FriendName
        03:(resetall)
          SHORT:	NewListSize
          {
            ASTRING:	FriendName
          }
        04:(clear)
      }
    }
  08:
    INT:		IgnoreList
    INT:		UpdateCounter
    {
     BYTE:		SubType
      {
        00:(remove)
          SHORT:	Index
        01:(add)
          SHORT:	Index
          ASTRING:	IgnoreName
        02:(change)
          SHORT:	Index
          ASTRING:	IgnoreName
        03:(resetall)
          SHORT:	NewListSize
          {
            ASTRING:	IgnoreName
          }
        04:(clear)
      }
    }
  09:
    INT:		CurrentLanguageID
  0A:
    INT:		CurrentStomach
  0B:
    INT:		MaxStomach
  0C:
    INT:		CurrentDrink
  0D:
    INT:		MaxDrink
  0E:
    INT:		CurrentConsumable(NotUsed)
  0F:
    INT:		MaxConsumable(NotUsed)
  10:
    INT:		UnusedWaypointList
    INT:		UpdateCounter
    {
      BYTE:		SubType
      {
        00:(add)
          LONG:		WaypointObjectID
          INT:		CellID
          FLOAT:	XCoord
          FLOAT:	ZCoord
          FLOAT:	YCoord
          LONG:		LocationNetworkID
          INT:		PlanetCRC
          USTRING:	WaypointName
          LONG:		WaypointObjectID
          BYTE:		Color
          BYTE:		ActiveFlag
        01:(remove)
          LONG:		WaypointObjectID
          INT:		CellID
          FLOAT:	XCoord
          FLOAT:	ZCoord
          FLOAT:	YCoord
          LONG:		LocationNetworkID
          INT:		PlanetCRC
          USTRING:	WaypointName
          LONG:		WaypointObjectID
          BYTE:		Color
          BYTE:		ActiveFlag
        02:(change)
          LONG:		WaypointObjectID
          INT:		CellID
          FLOAT:	XCoord
          FLOAT:	ZCoord
          FLOAT:	YCoord
          LONG:		LocationNetworkID
          INT:		PlanetCRC
          USTRING:	WaypointName
          LONG:		WaypointObjectID
          BYTE:		Color
          BYTE:		ActiveFlag
      }
    }
  11:
    INT:		JediState
}

Variable Descriptions


OpperandCount = 17


AbilityList:

The list of "commands" or abilities the player has. This includes weapon certifications.

ExperimentationFlag:

It is set to enable/disable experimentation. 01 - Allow Experimentation. 00 - Only Assembly.

CraftingStage:

An integer used to maintain the current stage in a crafting session.

NearestCraftingStationId:

The ObjectID of the closest crafting station (and the one that will be used for crafting).

ServerSchematicCRC:

This is a Server Side CRC number assigned to each schematic. It is used in commands to identify the schematic with the server. The exact value does not matter so long as it matches all instances (PLAY9, Controller207, Controller1BF, Controller102...)

SchematicCRC:

The SWGCRC of the .iff object template taken from "object/draft_schematic/*" for the corresponding schematic. This is used to uniquely identify the schematic.

ExperimentationPoints:

The amount of experiementation points your player has for the crafting session.

AccomplishmentCounter:

This counter is incremented for every "Accomplishment" made. Items crafted, Mobs killed, etc. Is not displayed in Pre-cu (maybe we can make it though)

FriendsList:

A list of all the players you are frinds with. Also the server will send alerts when they log on and such. Note: the names must be ALL LOWERCASE

IgnoreList:

A list of players you want to ignore in chat. This includes spatial, tells, email, chatroom.

CurrentLanguage:

The integer ID of the current language your player is speaking in.

Stomach:

The Max/Current values of your stomach variable. This gets filled when consuming food items. It limits the amount of food item buffs you can use at one time.

Drink:

The Max/Current values of your drink variable. This gets filled when consuming food items. It limits the amount of food item buffs you can use at one time.

Consumable:

Similar to stomach and drink, except it is not used and not displayed in the character sheet. Possibly try to add later, maybe for spice or drugs.

WaypointList:

This list of waypoints are not used at all. Please use the PLAY8 WaypointList for datapad waypoints.

JediState:

The bitmask of available jedi skills.
00 - Non-Jedi
01 - Force Sensative (Novice)
02 - Jedi (Elite)
04 - Light FSR
08 - Dark FSR

Tags


100% This packet has been completely reversed.

Sample Packet



00 0D #DataFrag
03 2A #Sequence
00 00 04 AF #TotalPacketSize
05 00 #Operand
0C 5F A7 68 #BaselinesMessage
44 C8 59 45 04 00 00 00 #PlayID 
(this is unique for all PLAY and links to the character via UpdateContainmentMessage)
59 41 4C 50 09 #PLAY09



98 04 00 00 #Data size that follows


12 00 #opcode

00 00 00 00 

00 00 00 00 

00 00 00 00 

00 00 00 00 



0F 00 00 00 #Size
0F 00 00 00 # size again?
00 # Unk byte




####### useable Draft Schematics that a player can select from ########



A1 D4 09 04 #SchematicID
4F 56 B0 83 #object/draft_schematic/weapon/lightsaber/shared_lightsaber_one_hand_gen1.iff
01 
00 00 00 00 


C9 12 2E 05 #SchematicID
7A 43 6F E8 #object/draft_schematic/weapon/lightsaber/shared_lightsaber_training.iff
01
00 00 00 00 


2B 0F 02 13 #SchematicID
C5 8D BB 94 #object/draft_schematic/weapon/lightsaber/shared_lightsaber_two_hand_gen1.iff
01 
00 00 00 00 


F8 AD 84 21 #SchematicID
9A 18 6A A1 #object/draft_schematic/weapon/lightsaber/shared_lightsaber_polearm_gen2.iff
01 
00 00 00 00 


75 CA 89 68 #SchematicID
17 7F 67 E8 #object/draft_schematic/weapon/lightsaber/shared_lightsaber_polearm_gen3.iff
01 
00 00 00 00 


AF 30 F0 6D #SchematicID
41 B2 49 EA #object/draft_schematic/weapon/lightsaber/shared_lightsaber_one_hand_gen4.iff
01 
00 00 00 00 


25 EB FB 7A #SchematicID
CB 69 42 FD #object/draft_schematic/weapon/lightsaber/shared_lightsaber_two_hand_gen4.iff
01 
00 00 00 00 


31 C0 18 81 #SchematicID
DF 42 A1 06 #object/draft_schematic/weapon/lightsaber/shared_lightsaber_two_hand_gen3.iff
01 
00 00 00 00 


61 E1 6A 93 #SchematicID
03 54 84 13 #object/draft_schematic/weapon/lightsaber/shared_lightsaber_polearm_gen4.iff
01 
00 00 00 00 

BB 1B 13 96 #SchematicID
55 99 AA 11 #object/draft_schematic/weapon/lightsaber/shared_lightsaber_one_hand_gen3.iff
01 
00 00 00 00
 
79 40 F7 97 #SchematicID
06 93 DC DD #object/draft_schematic/item/shared_item_jedi_tool.iff
01 
00 00 00 00   

 
42 24 B3 C2 #SchematicID
AB 0E 31 85 #object/draft_schematic/weapon/lightsaber/shared_lightsaber_refined_crystal_pack.iff
01 
00 00 00 00 


BC A7 15 C8 #SchematicID
52 25 AC 4F #object/draft_schematic/weapon/lightsaber/shared_lightsaber_two_hand_gen2.iff
01 
00 00 00 00 


36 7C 1E DF #SchematicID
D8 FE A7 58 #object/draft_schematic/weapon/lightsaber/shared_lightsaber_one_hand_gen2.iff
01 
00 00 00 00


6F 05 93 FA #SchematicID
0D B0 7D 7A #object/draft_schematic/weapon/lightsaber/shared_lightsaber_polearm_gen1.iff
01
00 00 00 00 

00 00 00 00 
00 00 
00 08 
00 00 00 00 
00 00 00 00

65 00 00 00 # Friends list Size

98 01 00 00 # update counter?



############## Friends and IGNORE list #################


06 00 
73 63 6F 6F 62 65 

04 00 
67 61 6E 74 

04 00 
63 68 61 76 

04 00 
6E 65 6F 27 

06 00
73 68 6F 67 75 6E 

05 00 
69 7A 6F 74 65 

05 00 
70 69 6C 61 72 

09 00 
70 72 6F 63 61 72 69 61 6E 

0E 00 
6F 63 74 61 76 69 61 6E 63 61 65 73 61 72 

07 00 
74 73 75 62 61 73 61 

07 00 
6D 61 73 61 2D 72 6F 

05 00 
6D 61 64 61 72 

04 00 
67 69 61 6E 

05 00
74 6F 73 68 69 

0C 00 
6E 75 6B 65 73 79 6F 75 72 6D 6F 6D 

0B 00 
6B 72 69 73 74 69 61 6E 69 75 73

0A 00 
6A 61 77 69 69 61 72 65 61 6E 


09 00 
62 61 72 74 61 6C 62 79 27 

06 00 
68 61 73 74 61 27 

05 00 
6A 61 76 69 6E 

0A 00 
63 73 72 5F 6A 61 73 6F 6E 70 

07 00 
68 69 6B 65 72 61 6E 

0E 00 
68 69 72 65 64 2D 61 73 73 61 73 73 69 6E 

09 00 #String Size
01 75 2B This rest of this name continues in the next datafragment after sequence (03 2B #Sequence)



############## Friends and IGNORE list  continues #################


00 0D #DatrFrag
03 2B #Sequence (Name date resumes after this)
76 61 6C 65 6E 74 69 6E 6F 05 00 6D
79 73 69 61 06 00 61 6C 6C 69 6F 73 05 00 6F 63
6B 69 6D 06 00 65 79 65 6F 77 6E 04 00 62 61 6E
65 07 00 74 79 67 72 65 73 73 07 00 64 72 61 65
6C 6F 76 05 00 6C 61 74 65 61 06 00 76 61 6C 6C
6F 72 04 00 6D 61 65 69 06 00 70 6F 6C 61 6E 64
05 00 68 61 73 74 61 09 00 6D 6F 75 72 6E 62 6C
61 64 08 00 72 61 79 6D 75 6E 64 6F 07 00 61 72
74 65 6F 75 73 09 00 74 68 65 2D 6A 6F 6B 65 72
05 00 72 65 78 6F 72 06 00 76 69 70 65 72 78 05
00 77 6F 61 64 61 0A 00 6E 65 72 6F 63 61 65 73
61 72 07 00 2D 68 69 72 65 64 2D 07 00 27 63 68
72 6F 67 72 06 00 61 73 68 65 6C 79 06 00 71 75
65 62 65 63 06 00 6F 61 64 72 61 73 07 00 6D 6F
72 64 72 69 73 08 00 7A 61 6E 7A 69 62 61 72 03
00 77 75 6E 08 00 72 6F 62 65 72 74 2D 6D 05 00
74 69 64 65 73 05 00 68 69 72 65 64 05 00 6C 6F
74 75 73 08 00 66 61 62 72 69 7A 69 6F 0B 00 69
6E 74 65 72 63 65 70 74 65 72 06 00 68 61 61 76
69 64 06 00 77 61 73 61 76 69 06 00 6B 61 65 7A
61 72 07 00 6C 75 63 69 61 74 68 05 00 64 6F 6D
61 71 05 00 73 6F 6E 6E 79 03 00 74 6F 6F 06 00
6E 61 63 68 6F 73 05 00 61 6E 6A 65 6C 04 00 64
6D 61 71 08 00 64 6F 6C 74 68 72 61 6E 06 00 6D
79 74 68 69 63 0A 00 76 6F 6F 68 65 64 72 61 73
68 05 00 64 65 76 6F 65 03 00 72 68 69 04 00 77
79 63 6B 04 00 70 65 65 67 05 00 61 6B 61 6C 65
0B 00 73 69 6C 76 65 72 6E 65 78 75 73 07 00 7A
79 69 70 6C 65 78 08 00 61 6E 61 63 6F 6E 64 61
09 00 6C 6F 72 64 64 65 61 74 68 06 00 73 74 61
62 62 79 04 00 62 61 6C 6C 04 00 62 61 01 54 4A




############## Friends and IGNORE list continues #################


00 0D 03 2C 61 6C 07 00 75 6E 6B 6E 6F 77 6E 06
00 6A 6F 2D 73 65 66 06 00 73 6D 65 72 66 79 0A
00 63 73 72 2D 6A 61 73 6F 6E 70 06 00 74 75 6C
6B 61 73 06 00 73 6E 61 70 70 79 0A 00 77 61 6C
6B 65 72 2D 62 6F 68 06 00 6A 6F 76 61 63 6B 05
00 6F 6D 6F 73 69 06 00 74 69 6D 6E 61 72 06 00
6E 65 69 6B 6B 61 0A 00 43 53 52 5F 4A 61 73 6F
6E 50 05 00 66 61 7A 65 72 07 00 70 72 61 69 64
65 6E 0A 00 61 67 65 6E 74 77 6F 72 6B 73 0B 00
74 68 65 67 72 65 61 74 72 61 79 08 00 64 72 61
67 6D 69 72 65 07 00 73 6F 75 6C 6D 61 6E 01 00
00 00 08 00 00 00 05 00 73 6B 65 65 74 


01 00 00 00 #language_basic_speak (INT)
2C 00 00 00 #Food
64 00 00 00 #max food
10 00 00 00 #Drink
64 00 00 00 #MaxDrink
00 00 00 00 #Meds
64 00 00 00 #MaxMeds 

#Unsure of data below

00 00 00 00 
00 00 00 00 
08 00 00 
00 01 DD DB

(Language) 

language_basic_speak	
language_rodian_speak	
language_trandoshan_speak
language_moncalamari_speak
language_wookiee_speak
language_bothan_speak
language_twilek_speak
language_zabrak_speak
language_lekku_speak
language_ithorian_speak
language_sullustan_speak
language_hutt_speak