Difference between revisions of "PlayersNearYou (000001E7)"

From SWGANH Wiki
Jump to: navigation, search
Line 11: Line 11:
 
|{{int}}|'''player count'''
 
|{{int}}|'''player count'''
 
|-
 
|-
|}
+
|{{int}}|'''Bitmask size / 4'''
 
+
 
+
{| class="wikitable"
+
|{{int}}|'''bitmask size / 4'''
+
 
|-
 
|-
|{{unknown}}|'''Flags bitmask'''
+
|{{unknown}}|'''Flags Bitmask'''
 
|-
 
|-
|{{u_string}}|'''player name'''
+
|{{u_string}}|'''Player Name'''
 
|-
 
|-
|{{int}}|'''specie'''
+
|{{int}}|'''Race ID'''
 
|-
 
|-
|{{a_string}}|'''client region STF'''
+
|{{a_string}}|'''Region Name'''
 
|-
 
|-
|{{a_string}}|'''planet'''
+
|{{a_string}}|'''Planet'''
 
|-
 
|-
|{{a_string}}|'''guild'''
+
|{{a_string}}|'''Guild'''
 
|-
 
|-
|{{a_string}}|'''profession title'''
+
|{{a_string}}|'''Profession Title'''
 
|-
 
|-
 
|}
 
|}
 
<pre>
 
INT: Players Found Counter
 
{
 
INT: Unknown Counter
 
{
 
INT: Unknown
 
}
 
U_STRING:      Player Name
 
INT: Race ID
 
A_STRING: Region Name
 
A_STRING: Planet Name
 
A_STRING: Guild Name
 
A_STRING: Skill Title
 
}
 
</pre>
 
  
 
===Variable Descriptions===
 
===Variable Descriptions===
Line 53: Line 33:
 
controllerID     = '''000001E7'''
 
controllerID     = '''000001E7'''
  
'''Flags''': A bitmask defining the FRIEND,  
+
*'''Flags'''
 +
: A bitmask defining the FRIEND,  
 
AFK, LFG, HELPER, ROLEPLAY flags.  
 
AFK, LFG, HELPER, ROLEPLAY flags.  
It seems like the bitmask can be composed by
+
:It seems like the bitmask can be composed by
 
one INT32, however the nge packet uses a 4X4  
 
one INT32, however the nge packet uses a 4X4  
 
bytes one (see packet example).  
 
bytes one (see packet example).  
The INT32 before the bitmask represents the size of the  
+
:The INT32 before the bitmask represents the size of the  
 
bitmask divided by 4. (size=1 if the bitmask = 4 bytes).
 
bitmask divided by 4. (size=1 if the bitmask = 4 bytes).
Even more strange: only the first byte of the bitmask  
+
:Even more strange: only the first byte of the bitmask  
 
is used to store the Flags data.
 
is used to store the Flags data.
 +
 +
|valign=top|
 +
===Tags===
 +
----
 +
{| align="center"
 +
|-
 +
||{{ObjControllerMessageTag}}
 +
|-
 +
||{{75%}}
 +
|-
 +
|}
 +
|}
  
 
Bitmask breakDown:
 
Bitmask breakDown:
Line 89: Line 82:
 
</pre>
 
</pre>
  
According to this the 8 bits are boolean telling if a flag is set or not.
+
According to this the 8 bits are boolean  
 +
telling if a flag is set or not.
  
They go in this order: [AFK] [FRIEND] [?] [?] [?] [ROLEPLAY] [HELPER] [LFG]
+
They go in this order:  
 +
[AFK]  
 +
[FRIEND]  
 +
[?] [?] [?]  
 +
[ROLEPLAY]  
 +
[HELPER]  
 +
[LFG]
 
(the ? don't seem to have any effect)
 
(the ? don't seem to have any effect)
  
  
The packet is still valid when making the bitmask bigger/smaller. No clue why it's made so.
+
The packet is still valid when making the  
<pre>
+
bitmask bigger/smaller. No clue why it's made so.
01 00 00 00
+
BF 00 00 00
+
 
+
-----------
+
03 00 00 00
+
BF 00 00 00
+
00 00 00 00
+
00 00 00 00
+
 
+
-----------
+
05 00 00 00
+
BF 00 00 00
+
00 00 00 00
+
00 00 00 00
+
00 00 00 00
+
00 00 00 00
+
</pre>
+
 
+
 
+
  
 
'''Title''':  The system-name of a title: science_doctor_master, for Master Doctor.
 
'''Title''':  The system-name of a title: science_doctor_master, for Master Doctor.
 
 
  
 
----
 
----
Line 125: Line 104:
  
 
[[Image:communitysearch2.jpg|300px]]
 
[[Image:communitysearch2.jpg|300px]]
 +
  
 
==Sample Packet==
 
==Sample Packet==
  
 
<pre>
 
<pre>
07 00 00 00                               // player count
+
07 00 00 00 // player count
</pre>
+
  
 +
==================================
  
 
+
04 00 00 00 // bitmask counter
 
+
38 00 00 00 // bitmask
|valign=top|
+
===Tags===
+
----
+
{| align="center"
+
|-
+
||{{ObjControllerMessageTag}}
+
|-
+
||{{75%}}
+
|-
+
|}
+
 
+
|}
+
 
+
<pre>
+
==============================================================================
+
 
+
04 00 00 00                               // bitmask counter
+
38 00 00 00                               // bitmask
+
 
00 00 00 00                                 
 
00 00 00 00                                 
 
00 00 00 00  
 
00 00 00 00  
Line 159: Line 121:
 
0A 00 00 00  
 
0A 00 00 00  
 
53 00 65 00 6A 00 75 00  
 
53 00 65 00 6A 00 75 00  
6F 00 20 00 44 00 75 00                   // Sejuo Dune  (player name)
+
6F 00 20 00 44 00 75 00 // Sejuo Dune  (player name)
 
6E 00 65 00
 
6E 00 65 00
 
   
 
   
00 00 00 00                               // race (human)
+
00 00 00 00 // race (human)
  
 
1E 00  
 
1E 00  
 
40 74 61 74 6F 6F 69 6E  
 
40 74 61 74 6F 6F 69 6E  
65 5F 72 65 67 69 6F 6E                   //@tatooine_region_names:bestine
+
65 5F 72 65 67 69 6F 6E //@tatooine_region_names:bestine
 
5F 6E 61 6D 65 73 3A 62  
 
5F 6E 61 6D 65 73 3A 62  
 
65 73 74 69 6E 65  
 
65 73 74 69 6E 65  
  
 
08 00  
 
08 00  
74 61 74 6F 6F 69 6E 65                   // tatooine
+
74 61 74 6F 6F 69 6E 65 // tatooine
  
00 00                                     // no specified guild
+
00 00 // no specified guild
  
00 00                                     // no specified title
+
00 00 // no specified title
  
==============================================================================
+
===================================
  
04 00 00 00                               // bitmask counter
+
04 00 00 00 // bitmask counter
38 00 00 00                               // bitmask
+
38 00 00 00 // bitmask
 
00 00 00 00                                 
 
00 00 00 00                                 
 
00 00 00 00  
 
00 00 00 00  
Line 186: Line 148:
  
 
07 00 00 00  
 
07 00 00 00  
52 00 6F 00 75 00 20 00                   // player name
+
52 00 6F 00 75 00 20 00 // player name
 
42 00 6F 00 74 00                         
 
42 00 6F 00 74 00                         
  
31 00 00 00                               // race (Sullustan)
+
31 00 00 00 // race (Sullustan)
  
 
1E 00  
 
1E 00  
 
40 74 61 74 6F 6F 69 6E  
 
40 74 61 74 6F 6F 69 6E  
65 5F 72 65 67 69 6F 6E                   // region-name STF
+
65 5F 72 65 67 69 6F 6E // region-name STF
 
5F 6E 61 6D 65 73 3A 62  
 
5F 6E 61 6D 65 73 3A 62  
 
65 73 74 69 6E 65  
 
65 73 74 69 6E 65  
  
 
08 00  
 
08 00  
74 61 74 6F 6F 69 6E 65                   // tatooine
+
74 61 74 6F 6F 69 6E 65 // tatooine
  
00 00                                     // no specified guild
+
00 00 // no specified guild
  
00 00                                     // no specified title
+
00 00 // no specified title
  
==============================================================================
+
====================================
  
04 00 00 00                               // bitmask counter
+
04 00 00 00 // bitmask counter
38 00 00 00                               // bitmask
+
38 00 00 00   // bitmask
 
00 00 00 00                               
 
00 00 00 00                               
 
00 00 00 00   
 
00 00 00 00   
Line 214: Line 176:
 
0B 00 00 00   
 
0B 00 00 00   
 
6B 00 69 00 6C 00 6C 00
 
6B 00 69 00 6C 00 6C 00
2D 00 63 00 72 00 69 00                   // player name
+
2D 00 63 00 72 00 69 00 // player name
 
7A 00 6F 00 77 00  
 
7A 00 6F 00 77 00  
  
04 00 00 00                               // race (Wookiee)
+
04 00 00 00 // race (Wookiee)
  
00 00                                     // no specified region
+
00 00 // no specified region
  
 
08 00  
 
08 00  
74 61 74 6F 6F 69 6E 65                   // tatooine
+
74 61 74 6F 6F 69 6E 65 // tatooine
  
 
03 00
 
03 00
52 45 44                                   // RED (guild)
+
52 45 44 // RED (guild)
  
00 00                                     // no specified title
+
00 00 // no specified title
  
==============================================================================
+
=======================================
  
04 00 00 00                                 // bitmask counter
+
04 00 00 00 // bitmask counter
38 00 00 00                                 // bitmask
+
38 00 00 00 // bitmask
 
00 00 00 00                                 
 
00 00 00 00                                 
 
00 00 00 00  
 
00 00 00 00  
Line 238: Line 200:
  
 
04 00 00 00  
 
04 00 00 00  
56 00 6F 00 68 00 75 00                     // player name (Vohu)
+
56 00 6F 00 68 00 75 00 // player name (Vohu)
  
00 00 00 00                                 // race (Human)
+
00 00 00 00 // race (Human)
  
 
1E 00  
 
1E 00  
 
40 74 61 74 6F 6F 69 6E  
 
40 74 61 74 6F 6F 69 6E  
65 5F 72 65 67 69 6F 6E                     // region-name STF  
+
65 5F 72 65 67 69 6F 6E // region-name STF  
 
5F 6E 61 6D 65 73 3A 62  
 
5F 6E 61 6D 65 73 3A 62  
 
65 73 74 69 6E 65  
 
65 73 74 69 6E 65  
  
 
08 00  
 
08 00  
74 61 74 6F 6F 69 6E 65                     // tatooine
+
74 61 74 6F 6F 69 6E 65 // tatooine
  
00 00                                       // no specified guild
+
00 00 // no specified guild
  
00 00                                       // no specified title
+
00 00 // no specified title
  
  
==============================================================================
+
========================================
  
04 00 00 00                                 // bitmask counter
+
04 00 00 00 // bitmask counter
38 00 00 00                                 // bitmask
+
38 00 00 00// bitmask
 
00 00 00 00                                 
 
00 00 00 00                                 
 
00 00 00 00  
 
00 00 00 00  
Line 265: Line 227:
  
 
05 00 00 00  
 
05 00 00 00  
56 00 65 00 67 00 61 00 27 00               // player name
+
56 00 65 00 67 00 61 00 27 00 // player name
  
07 00 00 00                                 // race (Zabrak)
+
07 00 00 00 // race (Zabrak)
  
 
2B 00  
 
2B 00  
 
40 74 61 74 6F 6F 69 6E  
 
40 74 61 74 6F 6F 69 6E  
 
65 5F 72 65 67 69 6F 6E  
 
65 5F 72 65 67 69 6F 6E  
5F 6E 61 6D 65 73 3A 76                     // region-name STF   
+
5F 6E 61 6D 65 73 3A 76// region-name STF   
 
61 6C 5F 68 61 75 6C 5F  
 
61 6C 5F 68 61 75 6C 5F  
 
73 70 61 77 6E 5F 62 6C  
 
73 70 61 77 6E 5F 62 6C  
Line 278: Line 240:
  
 
08 00  
 
08 00  
74 61 74 6F 6F 69 6E 65                     // tatooine
+
74 61 74 6F 6F 69 6E 65 // tatooine
  
00 00                                       // no specified guild
+
00 00 // no specified guild
  
00 00                                       // no specified title
+
00 00 // no specified title
  
==============================================================================
+
=========================================
  
04 00 00 00                                 // bitmask counter
+
04 00 00 00 // bitmask counter
38 00 00 00                                 // bitmask
+
38 00 00 00   // bitmask
 
00 00 00 00                                 
 
00 00 00 00                                 
 
00 00 00 00  
 
00 00 00 00  
Line 293: Line 255:
  
 
04 00 00 00  
 
04 00 00 00  
4E 00 61 00 74 00 27 00                     // player name  
+
4E 00 61 00 74 00 27 00 // player name  
  
00 00 00 00                                 // race (Human)
+
00 00 00 00 // race (Human)
  
00 00                                       // no specified region
+
00 00 // no specified region
  
 
08 00  
 
08 00  
74 61 74 6F 6F 69 6E 65                     // tatooine
+
74 61 74 6F 6F 69 6E 65 // tatooine
  
00 00                                       // no specified guild
+
00 00 // no specified guild
  
00 00                                       // no specified title
+
00 00 // no specified title
 
</pre>
 
</pre>

Revision as of 11:17, 7 January 2008

Server Packet - PlayersNearYou (000001E7)

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

Struct


INT player count
INT Bitmask size / 4
?? Flags Bitmask
U_STRING Player Name
INT Race ID
A_STRING Region Name
A_STRING Planet
A_STRING Guild
A_STRING Profession Title

Variable Descriptions


controllerID = 000001E7

  • Flags
A bitmask defining the FRIEND,

AFK, LFG, HELPER, ROLEPLAY flags.

It seems like the bitmask can be composed by

one INT32, however the nge packet uses a 4X4 bytes one (see packet example).

The INT32 before the bitmask represents the size of the

bitmask divided by 4. (size=1 if the bitmask = 4 bytes).

Even more strange: only the first byte of the bitmask

is used to store the Flags data.

Tags


OCM This header is part of the ObjControllerMessage.

75% This packet has been partially reversed.

Bitmask breakDown:

Some tests :
00111111 = 3f = LFG HELPER ROLEPLAY
00111110 = 3E = HELPER ROLEPLAY
00111100 = 3C = ROLEPLAY
00111001 = 39 = LFG
00111000 = 38 = nothing

10111111 = BF = AFK LFG HELPER ROLEPLAY
10111110 = BE = AFK HELPER ROLEPLAY
10111100 = BC = AFK ROLEPLAY
10111000 = B8 = AFK

11111111 = FF = FRIEND AFK LFG HELPER ROLEPLAY 
11111110 = FE = FRIEND AFK HELPER ROLEPLAY 
11111100 = FC = FRIEND AFK ROLEPLAY 
11111000 = F8 = FRIEND AFK

01111111 = 7F = FRIEND LFG HELPER ROLEPLAY 
01111110 = 7E = FRIEND HELPER ROLEPLAY 
01111100 = 7C = FRIEND ROLEPLAY 
01111000 = 78 = FRIEND 

According to this the 8 bits are boolean telling if a flag is set or not.

They go in this order: [AFK] [FRIEND] [?] [?] [?] [ROLEPLAY] [HELPER] [LFG] (the ? don't seem to have any effect)


The packet is still valid when making the bitmask bigger/smaller. No clue why it's made so.

Title: The system-name of a title: science_doctor_master, for Master Doctor.


Communitysearchcy2.jpg

Communitysearch2.jpg


Sample Packet

07 00 00 00  // player count

==================================

04 00 00 00 // bitmask counter
38 00 00 00 // bitmask
00 00 00 00                                
00 00 00 00 
00 00 00 00

0A 00 00 00 
53 00 65 00 6A 00 75 00 
6F 00 20 00 44 00 75 00  // Sejuo Dune  (player name)
6E 00 65 00
 
00 00 00 00 // race (human)

1E 00 
40 74 61 74 6F 6F 69 6E 
65 5F 72 65 67 69 6F 6E //@tatooine_region_names:bestine
5F 6E 61 6D 65 73 3A 62 
65 73 74 69 6E 65 

08 00 
74 61 74 6F 6F 69 6E 65 // tatooine

00 00 // no specified guild

00 00 // no specified title

===================================

04 00 00 00 // bitmask counter
38 00 00 00 // bitmask
00 00 00 00                                
00 00 00 00 
00 00 00 00 

07 00 00 00 
52 00 6F 00 75 00 20 00 // player name
42 00 6F 00 74 00                         

31 00 00 00 // race (Sullustan)

1E 00 
40 74 61 74 6F 6F 69 6E 
65 5F 72 65 67 69 6F 6E // region-name STF
5F 6E 61 6D 65 73 3A 62 
65 73 74 69 6E 65 

08 00 
74 61 74 6F 6F 69 6E 65  // tatooine

00 00 // no specified guild

00 00 // no specified title

====================================

04 00 00 00  // bitmask counter
38 00 00 00   // bitmask
00 00 00 00                               
00 00 00 00  
00 00 00 00 

0B 00 00 00  
6B 00 69 00 6C 00 6C 00
2D 00 63 00 72 00 69 00 // player name
7A 00 6F 00 77 00 

04 00 00 00 // race (Wookiee)

00 00 // no specified region

08 00 
74 61 74 6F 6F 69 6E 65  // tatooine

03 00
52 45 44  // RED (guild)

00 00  // no specified title

=======================================

04 00 00 00 // bitmask counter
38 00 00 00 // bitmask
00 00 00 00                                 
00 00 00 00 
00 00 00 00 

04 00 00 00 
56 00 6F 00 68 00 75 00 // player name (Vohu)

00 00 00 00 // race (Human)

1E 00 
40 74 61 74 6F 6F 69 6E 
65 5F 72 65 67 69 6F 6E  // region-name STF 
5F 6E 61 6D 65 73 3A 62 
65 73 74 69 6E 65 

08 00 
74 61 74 6F 6F 69 6E 65  // tatooine

00 00  // no specified guild

00 00  // no specified title


========================================

04 00 00 00 // bitmask counter
38 00 00 00// bitmask
00 00 00 00                                 
00 00 00 00 
00 00 00 00

05 00 00 00 
56 00 65 00 67 00 61 00 27 00 // player name

07 00 00 00 // race (Zabrak)

2B 00 
40 74 61 74 6F 6F 69 6E 
65 5F 72 65 67 69 6F 6E 
5F 6E 61 6D 65 73 3A 76// region-name STF  
61 6C 5F 68 61 75 6C 5F 
73 70 61 77 6E 5F 62 6C 
6F 63 6B 

08 00 
74 61 74 6F 6F 69 6E 65 // tatooine

00 00 // no specified guild

00 00  // no specified title

=========================================

04 00 00 00  // bitmask counter
38 00 00 00   // bitmask
00 00 00 00                                
00 00 00 00 
00 00 00 00 

04 00 00 00 
4E 00 61 00 74 00 27 00  // player name 

00 00 00 00  // race (Human)

00 00 // no specified region

08 00 
74 61 74 6F 6F 69 6E 65  // tatooine

00 00  // no specified guild

00 00  // no specified title