MSCO07

From SWGANH Wiki
Revision as of 20:31, 15 June 2008 by Snow (Talk | contribs) (BaseLine Struct)

Jump to: navigation, search

Baseline - MSCO 07

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

MSCO Packet Type QuickNav
MSCO03 - MSCO06 - MSCO07 - MSCO08 - MSCO09


BaseLine Struct


Few bytes left to figure out on this one.

SHORT:		ObjOpperandCount
INT:		SlotNameList
INT:		UpdateCounter
{
  ASTRING:	SlotNameTable
  INT:		NotUsed
  ASTRING:	SlotName
}
INT:		SlotContentsList
INT:		UpdateCounter
{
    INT:	SlotContentType
}
INT:		IngridientList
INT:		UpdateCounter
{
    INT:	Counter
    {
      LONG:	IngredientID
    }
}
INT:		QuantityList
INT:		UpdateCounter
{
    INT:	Counter
    {
      INT:	IngredientQuantity
    }
}
INT:		SlotQualityList
INT:		UpdateCounter
{
    FLOAT:	Quality  
}
INT:		CleanSlotList 
INT:		UpdateCounter
{
    INT:	Value 
}
INT:		SlotIndexList
INT:		UpdateCounter
{
    INT:	SlotIndex
}
BYTE:		IngredientsCounter
INT:		ExperimentationNameList
INT:		UpdateCounter
{
  ASTRING:	ExperimentationTable
  INT:		NotUsed
  ASTRING:	ExperimentationName
}
INT:		CurrentExperimentationValueList 
INT:		UpdateCounter
{
    FLOAT:	CurrentExperimentationValue
}
INT:		ExperimentationOffsetList
INT:		UpdateCounter 
{
    FLOAT:	ExperimentationValueOffset
}
INT:		BlueBarSizeList
INT:		UpdateCounter
{
    FLOAT:	Size
}
INT:		MaxExperimentationList
INT:		UpdateCounter
{
    FLOAT:	MaxExperimentationValue
}
INT:		CustomizationNameList
INT:		UpdateCounter
{
  ASTRING:	CustomizationName
}
INT:		PalleteSelectionList
INT:		UpdateCounter
{
    INT:	PalleteSelection
}
INT:		PalleteStartIndexList
INT:		UpdateCounter
{
    INT:	PalleteStartIndex
}
INT:		PalleteEndIndexList
INT:		UpdateCounter
{
    INT:	PalleteEndIndex 
}
BYTE:		CustomizationCounter
FLOAT:		RiskFactor
INT:		ObjectTemplateCustomizationList
INT:		UpdateCounter
{
  ASTRING:	ObjectTemplateIFF
}
BYTE:		ReadyFlag

Deltas Struct


I've written the deltas part numbers in the baseline above. This Packet is to huge that one could make sense of it without structure. Thus the Delta parts themselves are further divided into - lets call them - slotspots.

For every slot there is a 3 Byte slotspot in the Deltapart, save part 7, where the byte stale flag (??) is. So that every slotspot can be modified on its own and the monster gets more palateable the slotspots must be inserted. Think of it as a kind of FlowControl.

So to set the amount of resource that got filled into the first slot :

SHORT:			UpdateCount
SHORT:			UpdateType
{
  00:
    INT:		SlotNameList
    INT:		UpdateCounter
    {
      BYTE:		SubType
      {
        00:(remove)
          SHORT:	Index
        01:(add)
          SHORT:	Index
          ASTRING:	SlotNameTable
          INT:		NotUsed
          ASTRING:	SlotName 
        02:(change)
          SHORT:	Index
          ASTRING:	SlotNameTable
          INT:		NotUsed
          ASTRING:	SlotName 
        03:(resetall)
          SHORT:	NewListSize
          {
            ASTRING:	SlotNameTable
            INT:	NotUsed
            ASTRING:	SlotName 
          }
        04:(clear)
      }
    }
  01:
    INT:		SlotContentsList
    INT:		UpdateCounter
    {
      BYTE:		SubType
      {
        00:(remove)
          SHORT:	Index
        01:(add)
          SHORT:	Index
          INT:		SlotContentType
        02:(change)
          SHORT:	Index
          INT:		SlotContentType
        03:(resetall)
          SHORT:	NewListSize
          {
            INT:	SlotContentType
          }
        04:(clear)
      }
    }
  02:
    INT:		IngridientList
    INT:		UpdateCounter
    {
      BYTE:		SubType
      {
        00:(remove)
          SHORT:
        01:(add)
          SHORT:	Index
          INT:		Counter
          {
            LONG:	IngredientID
          }
        02:(change)
          SHORT:	Index
          INT:		Counter
          {
            LONG:	IngredientID
          }
        03:(resetall)
          SHORT:	NewListSize
          {
            INT:	Counter
            {
              LONG:	IngredientID
            }
          }
        04:(clear)
      }
    }
  03:
    INT:		QuantityList
    INT:		UpdateCounter
    {
      BYTE:		SubType
      {
        00:(remove)
          SHORT:	Index
        01:(add)
          SHORT:	Index
          INT:		Counter
          {
            INT:	IngredientQuantity
          }
        02:(change)
          SHORT:	Index
          INT:		Counter
          {
            INT:	IngredientQuantity
          }
        03:(resetall)
          SHORT:	NewListSize
          {
            INT:	Counter
            {
              INT:	IngredientQuantity
            }
          }
        04:(clear)
      }
    }
  04:
    INT:		SlotQualityList
    INT:		UpdateCounter
    {
      BYTE:		SubType
      {
        00:(remove)
          SHORT:	Index
        01:(add)
          SHORT:	Index
          FLOAT:	Quality  
        02:(change)
          SHORT:	Index
          FLOAT:	Quality  
        03:(resetall)
          SHORT:	NewListSize
          {
            FLOAT:	Quality  
          }
        04:(clear)
      }
    }
  05:
    INT:		CleanSlotList 
    INT:		UpdateCounter
    {
      BYTE:		SubType
      {
        00:(remove)
          SHORT:	Index
        01:(add)
          SHORT:	Index
          INT:		Value 
        02:(change)
          SHORT:	Index
          INT:		Value 
        03:(resetall)
          SHORT:	NewListSize
          {
            INT:	Value  
          }
        04:(clear)
      }
    }
  06:
    INT:		SlotIndexList
    INT:		UpdateCounter
    {
      BYTE:		SubType
      {
        00:(remove)
          SHORT:	Index
        01:(add)
          SHORT:	Index
          INT:		SlotIndex
        02:(change)
          SHORT:	Index
          INT:		SlotIndex
        03:(resetall)
          SHORT:	NewListSize
          {
            INT:	SlotIndex
          }
        04:(clear)
      }
    }
  07:
    BYTE:		IngredientsCounter
  08:
    INT:		ExperimentationNameList
    INT:		UpdateCounter
    {
      BYTE:		SubType
      {
        00:(remove)
          SHORT:	Index
        01:(add)
          SHORT:	Index
          ASTRING:	ExperimentationTable
          INT:		NotUsed
          ASTRING:	ExperimentationName
        02:(change)
          SHORT:	Index
          ASTRING:	ExperimentationTable
          INT:		NotUsed
          ASTRING:	ExperimentationName
        03:(resetall)
          SHORT:	NewListSize
          {
            ASTRING:	ExperimentationTable
            INT:	NotUsed
            ASTRING:	ExperimentationName
          }
        04:(clear)
      }
    }
  09:
    INT:		CurrentExperimentationValueList 
    INT:		UpdateCounter
    {
      BYTE:		SubType
      {
        00:(remove)
          SHORT:	Index
        01:(add)
          SHORT:	Index
          FLOAT:	CurrentExperimentationValue
        02:(change)
          SHORT:	Index
          FLOAT:	CurrentExperimentationValue
        03:(resetall)
          SHORT:	NewListSize
          {
            FLOAT:	CurrentExperimentationValue
          }
        04:(clear)
      }
    }
  0A:
    INT:		ExperimentationOffsetList
    INT:		UpdateCounter 
    {
      BYTE:		SubType
      {
        00:(remove)
          SHORT:	Index
        01:(add)
          SHORT:	Index
          FLOAT:	ExperimentationValueOffset
        02:(change)
          SHORT:	Index
          FLOAT:	ExperimentationValueOffset
        03:(resetall)
          SHORT:	NewListSize
          {
            FLOAT:	ExperimentationValueOffset
          }
        04:(clear)
      }
    }
  0B:
    INT:		BlueBarSizeList
    INT:		UpdateCounter
    {
      BYTE:		SubType
      {
        00:(remove)
          SHORT:	Index
        01:(add)
          SHORT:	Index
          FLOAT:	Size
        02:(change)
          SHORT:	Index
          FLOAT:	Size
        03:(resetall)
          SHORT:	NewListSize
          {
            FLOAT:	Size
          }
        04:(clear)
      }
    }
  0C:
    INT:		MaxExperimentationList
    INT:		UpdateCounter
    {
      BYTE:		SubType
      {
        00:(remove)
          SHORT:	Index
        01:(add)
          SHORT:	Index
          FLOAT:	MaxExperimentationValue
        02:(change)
          SHORT:	Index
          FLOAT:	MaxExperimentationValue
        03:(resetall)
          SHORT:	NewListSize
          {
            FLOAT:	MaxExperimentationValue
          }
        04:(clear)
      }
    }
  0D:
    INT:		CustomizationNameList
    INT:		UpdateCounter
    {
      BYTE:		SubType
      {
        00:(remove)
          SHORT:	Index
        01:(add)
          SHORT:	Index
          ASTRING:	CustomizationName
        02:(change)
          SHORT:	Index
          ASTRING:	CustomizationName
        03:(resetall)
          SHORT:	NewListSize
          {
            ASTRING:	CustomizationName 
          }
        04:(clear)
      }
    }
  0E:
    INT:		PalleteSelectionList
    INT:		UpdateCounter
    {
      BYTE:		SubType
      {
        00:(remove)
          SHORT:	Index
        01:(add)
          SHORT:	Index
          INT:		PalleteSelection
        02:(change)
          SHORT:	Index
          INT:		PalleteSelection
        03:(resetall)
          SHORT:	NewListSize
          {
            INT:	PalleteSelection
          }
        04:(clear)
      }
    }
  0F:
    INT:		PalleteStartIndexList
    INT:		UpdateCounter
    {
      BYTE:		SubType
      {
        00:(remove)
          SHORT:	Index
        01:(add)
          SHORT:	Index
          INT:    	PalleteStartIndex
        02:(change)
          SHORT:	Index
          INT:		PalleteStartIndex 
        03:(resetall)
          SHORT:	NewListSize
          {
            INT:	PalleteStartIndex
          }
        04:(clear)
      }
    }
  10:
    INT:		PalleteEndIndexList
    INT:		UpdateCounter
    {
      BYTE:		SubType
      {
        00:(remove)
          SHORT:	Index
        01:(add)
          SHORT:	Index
          INT:		PalleteEndIndex
        02:(change)
          SHORT:	Index
          INT:		PalleteEndIndex
        03:(resetall)
          SHORT:	NewListSize
          {
            INT:	PalleteEndIndex
          }
        04:(clear)
      }
    }
  11:
    BYTE:		CustomizationCounter
  12:
    FLOAT:		RiskFactor
  13:
    INT:		ObjectTemplateCustomizationList
    INT:		UpdateCounter
    {
      BYTE:		SubType
      {
        00:(remove)
          SHORT:	Index
        01:(add)
          SHORT:	Index
          ASTRING:	ObjectTemplateIFF 
        02:(change)
          SHORT:	Index
          ASTRING:	ObjectTemplateIFF
        03:(resetall)
          SHORT:	NewListSize
          {
            ASTRING:	ObjectTemplateIFF
          }
        04:(clear)
      }
    }
  14:
    BYTE:		ReadyFlag
}

Variable Descriptions


Obj_OperandCount =


Tags


75% This packet has been partially reversed.

S→C This packet originates on the server.

Sample Packet