Difference between revisions of "PLAY03"
From SWGANH Wiki
(→Sample Packet) |
|||
(22 intermediate revisions by 4 users not shown) | |||
Line 1: | Line 1: | ||
− | + | {{PageHeader|Baseline|PLAY03}} | |
− | + | ||
{|align="center" | {|align="center" | ||
|- | |- | ||
Line 12: | Line 11: | ||
===BaseLine Struct=== | ===BaseLine Struct=== | ||
---- | ---- | ||
− | |||
<pre> | <pre> | ||
− | + | SHORT: ObjectOpperandCount | |
+ | FLOAT: Complexity | ||
+ | ASTRING: STF File | ||
+ | INT: STF Spacer | ||
+ | ASTRING: STF Name | ||
+ | USTRING: CustomName | ||
+ | INT: Volume | ||
+ | INT: GenericInt(NotUsed) | ||
+ | INT: MyFlagsList | ||
+ | { | ||
+ | INT: FlagBitmask | ||
+ | } | ||
+ | INT: MyProfileList | ||
+ | { | ||
+ | INT: ProfileBitmask | ||
+ | } | ||
+ | ASTRING: ProfessionTag | ||
+ | INT: BornDate | ||
+ | INT: TotalPlayTime | ||
</pre> | </pre> | ||
Line 21: | Line 37: | ||
<pre> | <pre> | ||
− | + | SHORT: UpdateCount | |
+ | SHORT: UpdateType | ||
+ | { | ||
+ | 00: | ||
+ | FLOAT: Complexity | ||
+ | 01: | ||
+ | ASTRING: STF File | ||
+ | INT: STF Spacer | ||
+ | ASTRING: STF Name | ||
+ | 02: | ||
+ | USTRING: CustomName | ||
+ | 03: | ||
+ | INT: Volume | ||
+ | 04: | ||
+ | INT: GenericInt(NotUsed) | ||
+ | 05: | ||
+ | INT: MyFlagsList | ||
+ | { | ||
+ | INT: FlagBitmask | ||
+ | } | ||
+ | 06: | ||
+ | INT: MyProfileList | ||
+ | { | ||
+ | INT: ProfileBitmask | ||
+ | } | ||
+ | 07: | ||
+ | ASTRING: ProfessionTag | ||
+ | 08: | ||
+ | INT: BornDate | ||
+ | 09: | ||
+ | INT: TotalPlayTime | ||
+ | } | ||
</pre> | </pre> | ||
− | === | + | |valign=top| |
+ | |||
+ | ===Variable Descriptions=== | ||
---- | ---- | ||
+ | |||
+ | ObjectOpperandCount = 10 | ||
+ | |||
+ | '''Complexity''': | ||
+ | :The Complexity of the Object or Schematic to create an object. | ||
+ | |||
+ | '''STF Name''': | ||
+ | :The Name of the Object taken from an STF File Reference. | ||
+ | |||
+ | '''CustomName''': | ||
+ | :A custom specified name for the object. (User created). | ||
+ | |||
+ | '''Volume''': | ||
+ | :The volume of space the object takes up. | ||
+ | |||
+ | '''GenericInt''': | ||
+ | Not Used in PLAY | ||
+ | |||
+ | '''FlagBitmask''': | ||
+ | :Miscellaneous player flags including AFK/LFG/Etc | ||
+ | <pre> | ||
+ | [INT1] | ||
+ | 1 - LFG(can combine with HELPER) | ||
+ | 2 - HELPER(can combine with LFG) | ||
+ | 4 - ROLEPLAYER (no tag) | ||
+ | 80 - AFK (overrides previous tags) | ||
+ | 100 - LD (overrides other tags) | ||
+ | 200 - Faction Rank(seperate tag) | ||
+ | |||
+ | [INT4] | ||
+ | 80000000 - Anonymous (no tag) | ||
+ | </pre> | ||
+ | |||
+ | '''ProfileBitmask''': | ||
+ | :A bitmask containing all the options selected for your profile (likes, dislikes, compatibility). | ||
+ | |||
+ | <font color="red">'''Note'''</font>: ''The 4 integers get sent from the client when a change is made to their profile.'' | ||
+ | |||
+ | '''ProfessionTag''': | ||
+ | :The string of the skill name to be used for the title. Note the skill must be marked that it can be a title to work. (See the Skill Table). | ||
+ | |||
+ | '''BornDate''': | ||
+ | :The integer of the time when the character was created to be used as born date. This has been implemented by simply using yyyymmdd. Client ignores - / (spaces) in this, so a simple date without any characters makes this work. Example 20080110 | ||
+ | |||
+ | '''TotalPlayTime''': | ||
+ | :The number of seconds you have played this character. Incremented by the server every 30 seconds. No idea how to convert to minutes/hours/days. Can be changed to a counter or something and displayed in the character sheet with a mod. | ||
+ | |||
+ | ---- | ||
+ | |||
+ | ===Tags=== | ||
+ | ---- | ||
+ | {| align="center" | ||
+ | |- | ||
+ | ||{{100%}} | ||
+ | |- | ||
+ | |} | ||
+ | |} | ||
+ | |||
+ | ===Sample Packet=== | ||
+ | ---- | ||
<pre> | <pre> | ||
======================Xenos break====================================== | ======================Xenos break====================================== | ||
Line 32: | Line 141: | ||
00 00 80 3F //Complexity | 00 00 80 3F //Complexity | ||
− | 0F 00 | + | 0F 00 // string count |
73 74 72 69 6E 67 5F 69 64 5F 74 61 62 6C 65 // string_id_table | 73 74 72 69 6E 67 5F 69 64 5F 74 61 62 6C 65 // string_id_table | ||
− | 00 00 00 00 | + | 00 00 00 00 // string spacer |
00 00 | 00 00 | ||
00 00 00 00 //CustomName | 00 00 00 00 //CustomName | ||
Line 53: | Line 162: | ||
00 00 00 00 //TotalPlayTime (update every 30 seconds, count in seconds, displayed in seconds, client updates itself too). | 00 00 00 00 //TotalPlayTime (update every 30 seconds, count in seconds, displayed in seconds, client updates itself too). | ||
− | + | MyFlags | |
− | + | [INT1] | |
− | + | 1 - LFG(can combine with HELPER) | |
− | + | 2 - HELPER(can combine with LFG) | |
− | + | 4 - ROLEPLAYER (no tag) | |
− | + | 80 - AFK (overrides previous tags) | |
− | + | 100 - LD (overrides other tags) | |
− | + | 200 - Faction Rank(seperate tag) | |
− | + | [INT4] | |
− | + | 80000000 - Anonymous (no tag) | |
− | + | MyProfile | |
− | + | Large List.. you will need to clear your players cache from the client to get this to display. | |
− | + | It saves based on what the client sets, and then caches it only sending the values to the server. | |
− | + | Even if the server sends new ones, the client wont display (because it is relying on the cache) | |
− | + | ===========Rouse breaks of nge packets | |
05 00 | 05 00 | ||
53 21 86 12 // DeltaMessage | 53 21 86 12 // DeltaMessage | ||
− | 9C 97 9A 8F 25 00 00 00 | + | 9C 97 9A 8F 25 00 00 00 // ID |
59 41 4C 50 03 // YALP 3 | 59 41 4C 50 03 // YALP 3 | ||
08 00 00 00 | 08 00 00 00 | ||
Line 79: | Line 188: | ||
4A 01 00 | 4A 01 00 | ||
00 1C | 00 1C | ||
− | + | ======================================= | |
05 00 | 05 00 | ||
0C 5F A7 68 // BaselineMessage | 0C 5F A7 68 // BaselineMessage | ||
− | EB 28 50 B0 24 00 00 00 | + | EB 28 50 B0 24 00 00 00 // ID |
59 41 4C 50 03 // YALP 3 | 59 41 4C 50 03 // YALP 3 | ||
87 00 00 00 | 87 00 00 00 | ||
10 00 00 00 | 10 00 00 00 | ||
80 3F | 80 3F | ||
− | 0F 00 | + | 0F 00 // string count |
73 74 72 69 6E 67 5F 69 64 5F 74 61 62 6C 65 // string_id_table | 73 74 72 69 6E 67 5F 69 64 5F 74 61 62 6C 65 // string_id_table | ||
− | 00 00 00 00 | + | 00 00 00 00 // string spacer |
− | + | 00 00 | |
− | 00 00 00 00 | + | 00 00 00 00 //CustomName |
− | 00 00 00 00 | + | 00 00 00 00 //Volume |
− | 00 00 | + | 00 00 00 00 //GenericINT(not used with PLAY) |
− | 04 00 00 00 | + | 04 00 00 00 //MyFlags (see above chart) |
00 00 00 00 | 00 00 00 00 | ||
00 00 00 00 | 00 00 00 00 | ||
00 00 00 00 | 00 00 00 00 | ||
00 00 00 00 | 00 00 00 00 | ||
− | 04 00 00 00 | + | 04 00 00 00 //MyProfile |
00 00 00 00 | 00 00 00 00 | ||
00 00 00 00 | 00 00 00 00 | ||
Line 109: | Line 218: | ||
D6 70 04 00 | D6 70 04 00 | ||
4B 00 00 00 | 4B 00 00 00 | ||
− | 12 00 | + | 12 00 // string count |
66 6F 72 63 65 5F // force_ | 66 6F 72 63 65 5F // force_ | ||
73 65 6E 73 69 74 69 76 65 5F 31 61 // sensitive_1a | 73 65 6E 73 69 74 69 76 65 5F 31 61 // sensitive_1a | ||
Line 118: | Line 227: | ||
01 00 00 00 | 01 00 00 00 | ||
49 | 49 | ||
+ | |||
+ | =========== cAble @ projectswg's Play3Delta NGE Packet Break =============== | ||
+ | |||
+ | 0x05, 0x00, #Update Type | ||
+ | 0x53, 0x21, 0x86, 0x12, #Deltas Opcode | ||
+ | 0xBF, 0xEE, 0x46, 0x3E, 0x33, 0x00, 0x00, 0x00, #Play ObjectID | ||
+ | 0x59, 0x41, 0x4c, 0x50, 0x03, #Play03 | ||
+ | 0x08, 0x00, | ||
+ | 0x00, 0x00, | ||
+ | 0x01, 0x00, | ||
+ | 0x09, 0x00, #Delta variable for updating total time played | ||
+ | 0x76, 0x4C, 0x62, 0x00, #TotalTimePlayed 74days13hours | ||
+ | |||
</pre> | </pre> | ||
− | |||
− | |||
− | |||
− | + | <pre> | |
− | + | ||
+ | CU by cAble | ||
− | + | 05 00 #Operand | |
− | + | 0C 5F A7 68 #Baselines Message | |
− | + | 22 6C 35 E3 16 00 00 00 #Character ID | |
− | + | 59 41 4C 50 03 #Play03 | |
− | + | 95 00 00 00 #Size of data to follow (INT) | |
− | + | 0C 00 #This short is something to do with complexity. | |
− | + | 00 00 80 3F #Complexity (float) | |
− | + | ||
− | + | 0F 00 #AStringSIze | |
+ | 73 74 72 69 6E 67 5F 69 64 5F 74 61 62 6C 65 ##string_id_table | ||
+ | |||
+ | 00 00 00 00 #StringSpacer | ||
+ | 00 00 #Unknown Short(this short could appear further down, but will need expermenting | ||
+ | 00 00 00 00 | ||
+ | 00 00 00 00 | ||
+ | 00 00 00 00 | ||
+ | 04 00 00 00 #MyFlags (LFG 1 / 2 Helper/ 4 Roleplayer / 80 AFK / 100 LD) | ||
+ | |||
+ | 00 00 00 00 | ||
+ | 00 00 00 00 | ||
+ | 00 00 00 00 | ||
+ | 00 00 00 80 | ||
+ | 04 00 00 00 #MyProfile | ||
+ | |||
+ | 00 00 00 00 | ||
+ | 00 00 00 00 | ||
+ | 00 00 00 00 | ||
+ | 00 00 00 00 | ||
+ | |||
+ | 22 00 #Astring; Size | ||
+ | 63 6C 61 73 73 5F 66 6F 72 63 65 73 65 6E 73 69 74 69 76 65 5F 70 | ||
+ | 68 61 73 65 32 5F 6D 61 73 74 65 72 #SkillTitle "class_forcesensitive_phase2_master" | ||
+ | |||
+ | |||
+ | E9 06 00 00 #BornDate | ||
+ | 5A 29 04 00 #TotalPlayTIme | ||
+ | 4B 00 00 00 #PlayTimeAccumulated | ||
+ | |||
+ | 12 00 #Astring Size ### | ||
+ | 66 6F 72 63 65 5F 73 65 6E 73 69 74 69 76 65 5F 31 61 ##force_sensitive_1a | ||
+ | |||
+ | </pre> |
Latest revision as of 15:54, 27 January 2014
Baseline - PLAY03
SWGANH Wiki is a repository of Star Wars Galaxies Developer information. This site is only meant to be used by SWGANH Developer team.
|
BaseLine StructSHORT: ObjectOpperandCount FLOAT: Complexity ASTRING: STF File INT: STF Spacer ASTRING: STF Name USTRING: CustomName INT: Volume INT: GenericInt(NotUsed) INT: MyFlagsList { INT: FlagBitmask } INT: MyProfileList { INT: ProfileBitmask } ASTRING: ProfessionTag INT: BornDate INT: TotalPlayTime Deltas StructSHORT: UpdateCount SHORT: UpdateType { 00: FLOAT: Complexity 01: ASTRING: STF File INT: STF Spacer ASTRING: STF Name 02: USTRING: CustomName 03: INT: Volume 04: INT: GenericInt(NotUsed) 05: INT: MyFlagsList { INT: FlagBitmask } 06: INT: MyProfileList { INT: ProfileBitmask } 07: ASTRING: ProfessionTag 08: INT: BornDate 09: INT: TotalPlayTime } |
Variable DescriptionsObjectOpperandCount = 10 Complexity:
STF Name:
CustomName:
Volume:
GenericInt: Not Used in PLAY FlagBitmask:
[INT1] 1 - LFG(can combine with HELPER) 2 - HELPER(can combine with LFG) 4 - ROLEPLAYER (no tag) 80 - AFK (overrides previous tags) 100 - LD (overrides other tags) 200 - Faction Rank(seperate tag) [INT4] 80000000 - Anonymous (no tag) ProfileBitmask:
Note: The 4 integers get sent from the client when a change is made to their profile. ProfessionTag:
BornDate:
TotalPlayTime:
Tags
|
Sample Packet
======================Xenos break====================================== 0A 00 00 00 80 3F //Complexity 0F 00 // string count 73 74 72 69 6E 67 5F 69 64 5F 74 61 62 6C 65 // string_id_table 00 00 00 00 // string spacer 00 00 00 00 00 00 //CustomName 00 00 00 00 //Volume 00 00 00 00 //GenericINT(not used with PLAY) 04 00 00 00 //MyFlags (find possible values!) 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 04 00 00 00 //MyProfile (make chart of values!) 07 07 04 00 01 00 00 20 00 08 00 00 00 10 02 00 00 00 //Profession Tag 00 00 00 00 //BornDate (single integer.. not processed. might need to add xx/yy/zz format in .exe) 00 00 00 00 //TotalPlayTime (update every 30 seconds, count in seconds, displayed in seconds, client updates itself too). MyFlags [INT1] 1 - LFG(can combine with HELPER) 2 - HELPER(can combine with LFG) 4 - ROLEPLAYER (no tag) 80 - AFK (overrides previous tags) 100 - LD (overrides other tags) 200 - Faction Rank(seperate tag) [INT4] 80000000 - Anonymous (no tag) MyProfile Large List.. you will need to clear your players cache from the client to get this to display. It saves based on what the client sets, and then caches it only sending the values to the server. Even if the server sends new ones, the client wont display (because it is relying on the cache) ===========Rouse breaks of nge packets 05 00 53 21 86 12 // DeltaMessage 9C 97 9A 8F 25 00 00 00 // ID 59 41 4C 50 03 // YALP 3 08 00 00 00 01 00 09 00 4A 01 00 00 1C ======================================= 05 00 0C 5F A7 68 // BaselineMessage EB 28 50 B0 24 00 00 00 // ID 59 41 4C 50 03 // YALP 3 87 00 00 00 10 00 00 00 80 3F 0F 00 // string count 73 74 72 69 6E 67 5F 69 64 5F 74 61 62 6C 65 // string_id_table 00 00 00 00 // string spacer 00 00 00 00 00 00 //CustomName 00 00 00 00 //Volume 00 00 00 00 //GenericINT(not used with PLAY) 04 00 00 00 //MyFlags (see above chart) 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 04 00 00 00 //MyProfile 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 92 08 00 00 D6 70 04 00 4B 00 00 00 12 00 // string count 66 6F 72 63 65 5F // force_ 73 65 6E 73 69 74 69 76 65 5F 31 61 // sensitive_1a 5D 82 00 00 00 00 00 00 88 C2 01 00 00 00 00 00 01 00 00 00 49 =========== cAble @ projectswg's Play3Delta NGE Packet Break =============== 0x05, 0x00, #Update Type 0x53, 0x21, 0x86, 0x12, #Deltas Opcode 0xBF, 0xEE, 0x46, 0x3E, 0x33, 0x00, 0x00, 0x00, #Play ObjectID 0x59, 0x41, 0x4c, 0x50, 0x03, #Play03 0x08, 0x00, 0x00, 0x00, 0x01, 0x00, 0x09, 0x00, #Delta variable for updating total time played 0x76, 0x4C, 0x62, 0x00, #TotalTimePlayed 74days13hours
CU by cAble 05 00 #Operand 0C 5F A7 68 #Baselines Message 22 6C 35 E3 16 00 00 00 #Character ID 59 41 4C 50 03 #Play03 95 00 00 00 #Size of data to follow (INT) 0C 00 #This short is something to do with complexity. 00 00 80 3F #Complexity (float) 0F 00 #AStringSIze 73 74 72 69 6E 67 5F 69 64 5F 74 61 62 6C 65 ##string_id_table 00 00 00 00 #StringSpacer 00 00 #Unknown Short(this short could appear further down, but will need expermenting 00 00 00 00 00 00 00 00 00 00 00 00 04 00 00 00 #MyFlags (LFG 1 / 2 Helper/ 4 Roleplayer / 80 AFK / 100 LD) 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 80 04 00 00 00 #MyProfile 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 22 00 #Astring; Size 63 6C 61 73 73 5F 66 6F 72 63 65 73 65 6E 73 69 74 69 76 65 5F 70 68 61 73 65 32 5F 6D 61 73 74 65 72 #SkillTitle "class_forcesensitive_phase2_master" E9 06 00 00 #BornDate 5A 29 04 00 #TotalPlayTIme 4B 00 00 00 #PlayTimeAccumulated 12 00 #Astring Size ### 66 6F 72 63 65 5F 73 65 6E 73 69 74 69 76 65 5F 31 61 ##force_sensitive_1a