Difference between revisions of "PLAY09"

From SWGANH Wiki
Jump to: navigation, search
(BaseLine Struct)
(Deltas Struct)
Line 71: Line 71:
  
 
<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 97:
 
     }
 
     }
 
   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 128:
 
     }
 
     }
 
   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 154:
 
     }
 
     }
 
   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: ??
           FLOAT:       XCoord
+
           FLOAT: XCoord
           FLOAT:       ZCoord
+
           FLOAT: ZCoord
           FLOAT:       YCoord
+
           FLOAT: YCoord
           INT:         ??
+
           INT: ??
           INT:         ??
+
           INT: ??
           INT:         PlanetCRC
+
           INT: PlanetCRC
           USTRING:     WaypointName
+
           USTRING: WaypointName
           LONG:         WaypointObjectID
+
           LONG: WaypointObjectID
           BYTE:         Color
+
           BYTE: Color
           BYTE:    
+
           BYTE: ActiveFlag
  ActiveFlag
+
         01:(remove)
         01:(add)
+
           LONG: WaypointObjectID
           LONG:         WaypointObjectID
+
           INT: ??
           INT:         ??
+
           FLOAT: XCoord
           FLOAT:       XCoord
+
           FLOAT: ZCoord
           FLOAT:       ZCoord
+
           FLOAT: YCoord
           FLOAT:       YCoord
+
           INT: ??
           INT:         ??
+
           INT: ??
           INT:         ??
+
           INT: PlanetCRC
           INT:         PlanetCRC
+
           USTRING: WaypointName
           USTRING:     WaypointName
+
           LONG: WaypointObjectID
           LONG:         WaypointObjectID
+
           BYTE: Color
           BYTE:         Color
+
           BYTE: ActiveFlag
           BYTE:         ActiveFlag
+
         02:(change)
         02:(add)
+
           LONG: WaypointObjectID
           LONG:         WaypointObjectID
+
           INT: ??
           INT:         ??
+
           FLOAT: XCoord
           FLOAT:       XCoord
+
           FLOAT: ZCoord
           FLOAT:       ZCoord
+
           FLOAT: YCoord
           FLOAT:       YCoord
+
           INT: ??
           INT:         ??
+
           INT: ??
           INT:         ??
+
           INT: PlanetCRC
           INT:         PlanetCRC
+
           USTRING: WaypointName
           USTRING:     WaypointName
+
           LONG: WaypointObjectID
           LONG:         WaypointObjectID
+
           BYTE: Color
           BYTE:         Color
+
           BYTE: ActiveFlag
           BYTE:         ActiveFlag
+
 
       }
 
       }
 
     }
 
     }
 
   11:
 
   11:
     INT:               JediState
+
     INT: JediState
 
}
 
}
 
</pre>
 
</pre>

Revision as of 20:42, 27 June 2008

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:           ??
 FLOAT:         XCoord
 FLOAT:         ZCoord
 FLOAT:         YCoord
 INT:           ??
 INT:           ??
 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:		??
          FLOAT:	XCoord
          FLOAT:	ZCoord
          FLOAT:	YCoord
          INT:		??
          INT:		??
          INT:		PlanetCRC
          USTRING:	WaypointName
          LONG:		WaypointObjectID
          BYTE:		Color
          BYTE:		ActiveFlag
        01:(remove)
          LONG:		WaypointObjectID
          INT:		??
          FLOAT:	XCoord
          FLOAT:	ZCoord
          FLOAT:	YCoord
          INT:		??
          INT:		??
          INT:		PlanetCRC
          USTRING:	WaypointName
          LONG:		WaypointObjectID
          BYTE:		Color
          BYTE:		ActiveFlag
        02:(change)
          LONG:		WaypointObjectID
          INT:		??
          FLOAT:	XCoord
          FLOAT:	ZCoord
          FLOAT:	YCoord
          INT:		??
          INT:		??
          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).

DraftSchematics:

The list of draft schematics your player has available. Each listing contains a DraftSchematicID (maintained by the server) and a DraftSchematicCRC.

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.
01 - Force Sensative (Novice)
02 - Jedi (Elite)
04 - Light FSR
08 - Dark FSR

Tags


75% This packet has been partially reversed.

Sample Packet


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
63 65 72 74 5F 6B 6E 69 66 65 // cert_knife
5F 73 75 72 76 69 76 61 6C    // _survival

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
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
63 65 72 74 5F 63 61 72 62 69 6E 65 // cert_carbine
5F 63 64 65 66                      // _cdef

20 00                                                    // string count
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
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
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
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
70 72 69 76 61 74 65 5F 73 63 6F 75 74 // private_scout
5F 6E 6F 76 69 63 65                   // _novice

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
01 00 00 00    // Draft Schematics
00 00 00 00
A7 94 A8 12    // Schematic ID
63 30 4A 0F    // Schematic CRC
00 00 00 00    // Experimentation Points
00 00 00 00    // Counter Incremented Every Prototype Creation Ack. And Every Kill. (CU/NGE)
           //PRE-CU This gets flagged as an ExperienceChanged. Old trace of experience most likely.
02 00 00 00   // Friends List
00 00 00 00
05 00          // string count
61 63 68 61 6E // achan (friend name)
06 00             // string count
66 65 72 72 69 6E // ferrin (friend name)
02 00 00 00    // Ignore List
00 00 00 00
06 00             // string count
55 6C 74 79 6D 61 // Ultyma (ignore name)
06 00             // string count
52 61 6D 73 65 79 // Ramsey (ignore name)
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
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)
00 00 00 00 // Waypoint Objects - Not Found - Not for Datapad
00 00 00 00
00 00 00 00 // Jedi State