PLAY09

From SWGANH Wiki
Revision as of 16:00, 7 January 2008 by Rouse (Talk | contribs)

Jump to: navigation, search

Server Packet - 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:           SchematicID
 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:(add)
          SHORT:        Index
        01:(remove)
          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:(add)
          SHORT:        Index
        01:(remove)
          SHORT:        Index
          INT:          SchematicID
          INT:          SchematicCRC
        02:(change)
          SHORT:        Index
          INT:          SchematicID
          INT:          SchematicCRC
        03:(resetall)
          SHORT:        NewListSize
          {
            INT:        SchematicID
            INT:        SchematicCRC
          }
        04:(clear)
      }
    }
  05:
    INT:                ExperimentationPoints
  06:
    INT:                AccomplishmentCounter
  07:
    INT:                FriendList
    INT:                UpdateCounter
    {
    
 BYTE:              SubType
      {
        00:(add)
          SHORT:        Index
        01:(remove)
          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:(add)
          SHORT:        Index
        01:(remove)
          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:(remove)
          LONG:         WaypointObjectID
          INT:          ??
          FLOAT:        XCoord
          FLOAT:        ZCoord
          FLOAT:        YCoord
          INT:          ??
          INT:          ??
          INT:          PlanetCRC
          USTRING:      WaypointName
          LONG:         WaypointObjectID
          BYTE:         Color
          BYTE:      
   ActiveFlag
        01:(add)
          LONG:         WaypointObjectID
          INT:          ??
          FLOAT:        XCoord
          FLOAT:        ZCoord
          FLOAT:        YCoord
          INT:          ??
          INT:          ??
          INT:          PlanetCRC
          USTRING:      WaypointName
          LONG:         WaypointObjectID
          BYTE:         Color
          BYTE:         ActiveFlag
        02:(add)
          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