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 19: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