BaseLine Struct
SHORT: ObjOpperandCount
INT: ??
INT: CombatDefenderListSize
INT: UpdateCounter
{
LONG: DefenderID
}
SHORT: DifficultyCon
ASTRING: CurrentAnimation
ASTRING: MoodAnimation
LONG: WeaponID
LONG: GroupID
LONG: InviteSenderID
LONG: InviteCounter(Incremental)
INT: GuildID
LONG: TargetID
BYTE: MoodID
INT: ??(UnknownPurpose,Set with Entertainer)
INT: PerformanceID
INT: CurrentHAMListSize
INT: UpdateCounter
{
INT: CurrentHAMValue
}
INT: MaxHAMListSize
INT: UpdateCounter
{
INT: MaxHAMValue
}
INT: EquiptmentListSize
INT: UpdateCounter
{
CSTRING: CustomizationString
INT: ??(ContainmentLayer?)
LONG: ObjectID
INT: TemplateCRC
}
ASTRING: SetObjectTemplateString
BYTE: ??
Deltas Struct
SHORT: UpdateCount
SHORT: UpdateType
{
00:
INT: ??
01:
INT: CombatDefenderListSize
INT: UpdateCounter
{
BYTE: SubType
{
00:(remove)
SHORT: DefenderObjIndex
01:(add)
SHORT: DefenderObjIndex
LONG: DefenderID
02:(change)
SHORT: DefenderObjIndex
LONG: DefenderID
03:(resetall)
SHORT: NewListSize
{
LONG: DefenderID
}
04:(clearall)
}
}
02:
SHORT: DifficultyCon
03:
A_STRING: CurrentAnimation
04:
A_STRING: MoodAnimation
05:
LONG: WeaponID
06:
LONG: GroupID
07:
LONG: InviteSenderID
LONG: InviteCounter(incremental)
08:
INT: GuildID
09:
LONG: TargetID
0A:
BYTE: MoodID
0B:
INT: ??(unknown purpose, set with entertainer)
0C:
INT: PerformanceID
0D:
INT: CurrentHAMListSize
INT: UpdateCounter
{
BYTE: SubType
{
00:(remove)
SHORT: HAMBarIndex
01:(add)
SHORT: HAMBarIndex
INT: HAMValue
02:(change)
SHORT: HAMBarIndex
INT: HAMValue
03:(resetall)
SHORT: NewListSize
{
INT: HAMValue
}
04:(clearall)
}
}
0E:
INT: MaxHAMListSize
INT: UpdateCounter
{
BYTE: SubType
{
00:(remove)
SHORT: HAMBarIndex
01:(add)
SHORT: HAMBarIndex
INT: HAMValue
02:(change)
SHORT: HAMBarIndex
INT: HAMValue
03:(resetall)
SHORT: NewListSize
{
INT: HAMValue
}
04:(clearall)
}
}
0F:
INT: EquiptmentListSize
INT: UpdateCounter
BYTE: SubType
{
00:(remove)
SHORT: EquiptmentIndex
01:(add)
SHORT: EquiptmentIndex
CSTRING: CustomizationString
INT: ??(ContainmentLayer?)
LONG: ObjectID
INT: TemplateCRC
02:(change)
SHORT: EquiptmentIndex
CSTRING: CustomizationString
INT: ??(ContainmentLayer?)
LONG: ObjectID
INT: TemplateCRC
03:(resetall)
SHORT: NewListSize
{
CSTRING: CustomizationString
INT: ??(ContainmentLayer?)
LONG: ObjectID
INT: TemplateCRC
}
04:(clearall)
}
10:
ASTRING: SetObjectTemplateString
11:
BYTE: ??
}
Sample Packet
05 00
0C 5F A7 68 // BaselinesMessage
ED 93 FC FB 1A 00 00 00 // swoop ID
4F 45 52 43 06 // OERC 6
B5 01 00 00 // creoByteCount
17 00
59 00 00 00
0E 00 // string count
6D 6F 6E 73 74 65 72 5F 64 65 74 61 69 6C // monster_detail
00 00 00 00 // string spacer
11 00 // string count
73 70 65 65 64 65 72 62 69 6B 65 5F 73 77 6F 6F 70 // speederbike_swoop
FF FF 00 00 // CL????
00 00 00 00
07 00 // string count
6E 65 75 74 72 61 6C // neutral
F2 93 FC FB 1A 00 00 00 // swoops weapon ID
00 00 00 00 00 00 00 00 // group ID
00 00 00 00 00 00 00 00 // invite sender ID
00 00 00 00 00 00 00 00
00 00 00 00 // guild ID
00 00 00 00 // target ID
00 00 00 00
00 // mood ID
00 00 00 00 //
00 00 00 00 //
00 00 00 00 //
00 00 00 00 // PerformanceID
06 00 00 00 // CurrentHAMListSize
03 00 00 00 // CurrentHitpointsUpdateCounter
F4 01 00 00 // Health.getCurrentHitPoints
00 00 00 00 // Strength.getCurrentHitPoints
F4 01 00 00 // Constitution.getCurrentHitPoints
00 00 00 00 // Action.getCurrentHitPoints
F4 01 00 00 // Quickness.getCurrentHitPoints
00 00 00 00 // Stamina.getCurrentHitPoints
06 00 00 00 // ModifiedHAMListSize
03 00 00 00 // ModifiedHitpointsUpdateCounter
F4 01 00 00 // Health.getModifiedHitPoints
00 00 00 00 // Strength.getModifiedHitPoints
F4 01 00 00 // Constitution.getModifiedHitPoints
00 00 00 00 // Action.getModifiedHitPoints
F4 01 00 00 // Quickness.getModifiedHitPoints
00 00 00 00 // Stamina.getModifiedHitPoints
02 00 00 00 // EquiptmentListSize
02 00 00 00 // equippedObjects
00 00
04 00 00 00
EE 93 FC FB 1A 00 00 00 // swoop inventory ID
1C 79 10 21 // object/tangible/inventory/shared_creature_inventory.iff
00 00 00
04 00 00 00
F2 93 FC FB 1A 00 00 00 // swoops weapon ID
42 E7 D0 7D // object/weapon/creature/shared_creature_default_weapon.iff
|
Variable Descriptions
Obj_OperandCount = 16
- This list stores a list of all the objects you are in combat with.
- It also initiates default combat animation used between combat animations.
- (it keeps the consistancy of combat going).
- This is the index value of the defenderID in the list. IE. Position in the list.
- 4 Objects. List is 00 01 02 03
- Remove 3rd Object. Index = 02.
- This is the ID number of what color difficulty CON to display for the target.
- This is a string of what animation this object is doing.
- Set for entertainer, as well as misc types of animation.
- This is a string for what type of facial/mood animation to set on the object.
- The ObjectID of the currently equipped weapon.
- The ObjectID of the GROUP Object if this object is in a group.
- This is the ID of the Object that sent a group invite to you.
- This is a counter or an InviteID to differentiate invites and allow multiple invites.
- SWG seems to have only allowed 1 invite at a time (Counter set to 0).
- But by changing the counter we got multiple Invites sent.
- The ID number from the GUILD Object that corresponds to your GUILD Tag.
- The Object ID number of the current Object in your target.
- The numeric ID number for your current Mood used in text and /mood.
- The ID number of what song+instrument/dance is being done by this object.
- For entertainers, obviously.
- A list of the 9 values for how much HAM is current in the pool.
- A list of the 9 values for how much HAM the pool can hold.
- A list of Objects that are equipped on this Object. (Weapons, Clothes, Inventory/Bank etc).
- This is a string of a CRC Template found in the object/ folder. It can be used to turn
- your object into another object for events, fun, CSR stuffs!
Tags
75%
|
This packet has been partially reversed.
|
|
To Do
- List PerformanceID
- List MoodID
- List Difficulty Cons Color
- List Regular Animation Types
- List Mood Animation Types
- Test Defender List again
- Test Invite Counter again
|