Difference between revisions of "ChatRoomList"

From SWGANH Wiki
Jump to: navigation, search
 
(Variable Descriptions)
 
(35 intermediate revisions by 5 users not shown)
Line 1: Line 1:
__NOTOC__
+
{{PageHeader|Server Packet|CharRoomList (70DEB197)}}
{|
+
|- align="center"
+
||{{PacketGuide}}
+
|-
+
|}
+
 
+
 
{| border="0" width="90%" cellpadding=6
 
{| border="0" width="90%" cellpadding=6
 
|-
 
|-
Line 11: Line 5:
 
===Struct===
 
===Struct===
 
----
 
----
 
+
<pre>
{| class="wikitable"
+
SHORT: OperandCount
|-
+
INT: Opcode
|align="center" style="background:#B3C0DE; color:white;"|'''BYTE'''||'''uint8'''
+
INT: RoomListSize
|-
+
{
|align="center" style="background:#6C86BF; color:white;"|'''SHORT'''||'''uint16'''
+
  INT: RoomID
|-
+
  INT: PrivateFlag
|align="center" style="background:#3C548A; color:white;"|'''INT'''||'''uint32'''
+
  BYTE: ModeratedFlag
|-
+
  ASTRING: RoomPathName
|align="center" style="background:#3C5466; color:white;"|'''FLOAT'''||'''uint32'''
+
  ASTRING: Game
|-
+
  ASTRING: Server
|align="center" style="background:#3C4565; color:white;"|'''LONG'''||'''uint64'''
+
  ASTRING: Owner
|-
+
  ASTRING: Game
|align="center" style="background:#D8F2E0; color:#3C4565;"|'''A_STRING'''||'''ASCII String'''
+
  ASTRING: Server
|-
+
  ASTRING: Creator
|align="center" style="background:#8BD9A3; color:white;"|'''U_STRING'''||'''Unicode String'''
+
  USTRING: RoomTitle
|-
+
  INT: ModeratorListSize
|align="center" style="background:#3EC166; color:white;"|'''C_STRING'''||'''Customization String'''
+
  {
|-
+
    ASTRING: Game
|align="center" style="background:#25733D; color:white;"|'''B_STRING'''||'''Byte String'''
+
    ASTRING: Server
|-
+
    ASTRING: ModeratorName
|align="center" style="background:#C6C600; color:white;"|'''{ }'''||'''LIST Component'''
+
  }
|-
+
  INT: UserListSize
|align="center" style="background:#DF97A7; color:white;"|'''?'''||'''Uncertain Values'''
+
  {
|-
+
    ASTRING: Game
|align="center" style="background:#C84966; color:white;"|'''?? '''||'''Unknown Variable Name'''
+
    ASTRING: Server
|-
+
    ASTRING: UserName
|}
+
  }
 +
}
 +
</pre>
  
 
===Variable Descriptions===
 
===Variable Descriptions===
 
----
 
----
  
Opperand_Count     = '''9'''
+
Opperand_Count     = '''2'''
  
Opcode     = '''FFFFFFFF'''
+
Opcode     = '''70DEB197'''
 
----
 
----
  
* Additional Descriptions go here...
+
* '''RoomListSize''':
* --
+
:A list of ChatRoom Objects, this is the count of rooms to display.
* ---
+
 
* ----
+
* '''RoomID''':
 +
:The unique ID number assigned to identify this Room. Generated on room creation.
 +
 
 +
* '''PrivateFlag''':
 +
:An INTEGER flag used to mark the room as private or public. Private rooms require invitation from owner or moderators to enter.
 +
::00000001 = Private
 +
::00000000 = Public
 +
 
 +
* '''ModeratedFlag''':
 +
:A BYTE flag used to mark the room as being moderated.
 +
::01 = Moderated
 +
::00 = Open
 +
:Note: Moderated Rooms means that no one BUT moderators can talk. Its more like a "Muted" Room. You can still have moderators in an OPEN room. So avoid this confusion.
 +
 
 +
* '''RoomPathName''':
 +
:The full ChatServer path and name for the room including the RoomName specified on creation.
 +
:Example: "SWG.TestCenter.Chat.tcpa"
 +
 
 +
* '''Game''':
 +
:The name of the game ("SWG") this player is on.
 +
:Part of ChatAvatarId: 3 ASTRINGs representing the player on the ChatServer. "Game.Server.name" name is the lowercase of the first name for the player.
 +
 
 +
* '''Server''':
 +
:The name of the server (Galaxy) this player is on. Part of ChatAvatarId object.
 +
 
 +
* '''Owner''':
 +
:The firstname of the player who current owns the chatroom. Must be only firstname and lowercase. Part of ChatAvatarId object.
 +
 
 +
* '''Creator''':
 +
:The firstname of the player who originally created the chatroom. Must be only firstname and lowercase. Part of ChatAvatarId object.
 +
 
 +
* '''RoomTitle''':
 +
:The unicode string containing the Title of the chatroom to display.
 +
:Note: This is the more descriptive text displayed and not the name used in the RoomPathName of the ChatServer.
 +
 
 +
* '''ModeratorList''':
 +
:A list containing ChatAvatarId's of the moderators for this room. Note: This list does NOT get used to display the information. So it is better to send a blank (NULL/0) list and use the QueryRoom construct, since it actually gets displayed. This will save TONS of bandwidth.
 +
 
 +
* '''UserList''':
 +
:A list containing ChatAvatarId's of the users current in the room. Note: This list does NOT get used to display the information. So it is better to send a blank (NULL/0) list and use the QueryRoom construct, since it actually gets displayed. This will save TONS of bandwidth.
 +
 
 +
* '''Additional Info''':
 +
:Use to initialize the list, and then to add to the list. (There is no need to repeat the data)
  
 
|valign=top|
 
|valign=top|
 +
 
===Tags===
 
===Tags===
 
----
 
----
Line 60: Line 99:
 
||{{ServerPacket}}
 
||{{ServerPacket}}
 
|-
 
|-
||{{0%}}
+
||{{100%}}
 
|-
 
|-
 
|}
 
|}
 
 
|}
 
|}
  
----
 
  
==Sample Code==
 
----
 
 
<pre>
 
Insert Code Snippet Here...
 
</pre>
 
  
 
==Sample Packet==
 
==Sample Packet==
  
 
<pre>
 
<pre>
Insert Sample Packet Here...
+
02 00
 +
97 B1 DE 70 // ChatRoomList
 +
01 00 00 00 // Numberof_Chatrooms
 +
5D 0A 72 02 // ChatRoom_ID
 +
01 00 00 00 // NumberOf_RoomNames
 +
00          // byte flag
 +
27 00                                  // string count
 +
53 57 47 2E 47 6F 72 61 74 68          // SWG.Gorath
 +
2E 67 72 6F 75 70 2E                  // .group.
 +
31 36 31 34 31 38 33 30 39 32 32 31 2E // 161418309221. 
 +
47 72 6F 75 70 43 68 61 74            // GroupChat
 +
03 00            // string count
 +
53 57 47          // SWG
 +
06 00           // string count
 +
47 6F 72 61 74 68 // Gorath
 +
06 00            // string count
 +
73 79 73 74 65 6D // system
 +
03 00            // string count
 +
53 57 47          // SWG
 +
06 00            // string count
 +
47 6F 72 61 74 68 // Gorath
 +
06 00            // string count
 +
73 79 73 74 65 6D // system
 +
0C 00 00 00                                  // u-string count
 +
31 00 36 00 31 00 34 00 31 00 38 00 33 00 30 // 161418309221
 +
00 39 00 32 00 32 00 31 00
 +
01 00 00 00  // moderator count
 +
03 00            // string count
 +
53 57 47          // SWG
 +
06 00            // string count
 +
47 6F 72 61 74 68 // Gorath
 +
06 00            // string count
 +
73 79 73 74 65 6D // system
 +
02 00 00 00  // user count
 +
03 00            // string count
 +
53 57 47          // SWG
 +
06 00            // string count
 +
47 6F 72 61 74 68 // Gorath
 +
08 00                  // string count
 +
70 61 74 72 69 7A 69 61 // patrizia
 +
03 00            // string count
 +
53 57 47          // SWG
 +
06 00            // string count
 +
47 6F 72 61 74 68 // Gorath
 +
06 00            // string count
 +
73 79 73 74 65 6D // system
 
</pre>
 
</pre>
 +
[[Category:Nogard]]

Latest revision as of 01:41, 11 May 2008

Server Packet - CharRoomList (70DEB197)

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

Struct


SHORT:			OperandCount
INT:			Opcode
INT:			RoomListSize
{
  INT:			RoomID
  INT:			PrivateFlag
  BYTE:			ModeratedFlag
  ASTRING:		RoomPathName
  ASTRING:		Game
  ASTRING:		Server
  ASTRING:		Owner
  ASTRING:		Game
  ASTRING:		Server
  ASTRING:		Creator
  USTRING:		RoomTitle
  INT:			ModeratorListSize
  {
    ASTRING:		Game
    ASTRING:		Server
    ASTRING:		ModeratorName
  }
  INT:			UserListSize
  {
    ASTRING:		Game
    ASTRING:		Server
    ASTRING:		UserName
  }
}

Variable Descriptions


Opperand_Count = 2

Opcode = 70DEB197


  • RoomListSize:
A list of ChatRoom Objects, this is the count of rooms to display.
  • RoomID:
The unique ID number assigned to identify this Room. Generated on room creation.
  • PrivateFlag:
An INTEGER flag used to mark the room as private or public. Private rooms require invitation from owner or moderators to enter.
00000001 = Private
00000000 = Public
  • ModeratedFlag:
A BYTE flag used to mark the room as being moderated.
01 = Moderated
00 = Open
Note: Moderated Rooms means that no one BUT moderators can talk. Its more like a "Muted" Room. You can still have moderators in an OPEN room. So avoid this confusion.
  • RoomPathName:
The full ChatServer path and name for the room including the RoomName specified on creation.
Example: "SWG.TestCenter.Chat.tcpa"
  • Game:
The name of the game ("SWG") this player is on.
Part of ChatAvatarId: 3 ASTRINGs representing the player on the ChatServer. "Game.Server.name" name is the lowercase of the first name for the player.
  • Server:
The name of the server (Galaxy) this player is on. Part of ChatAvatarId object.
  • Owner:
The firstname of the player who current owns the chatroom. Must be only firstname and lowercase. Part of ChatAvatarId object.
  • Creator:
The firstname of the player who originally created the chatroom. Must be only firstname and lowercase. Part of ChatAvatarId object.
  • RoomTitle:
The unicode string containing the Title of the chatroom to display.
Note: This is the more descriptive text displayed and not the name used in the RoomPathName of the ChatServer.
  • ModeratorList:
A list containing ChatAvatarId's of the moderators for this room. Note: This list does NOT get used to display the information. So it is better to send a blank (NULL/0) list and use the QueryRoom construct, since it actually gets displayed. This will save TONS of bandwidth.
  • UserList:
A list containing ChatAvatarId's of the users current in the room. Note: This list does NOT get used to display the information. So it is better to send a blank (NULL/0) list and use the QueryRoom construct, since it actually gets displayed. This will save TONS of bandwidth.
  • Additional Info:
Use to initialize the list, and then to add to the list. (There is no need to repeat the data)

Tags


S→C This packet originates on the server.

100% This packet has been completely reversed.


Sample Packet

02 00 
97 B1 DE 70 // ChatRoomList
01 00 00 00 // Numberof_Chatrooms
5D 0A 72 02 // ChatRoom_ID
01 00 00 00 // NumberOf_RoomNames
00          // byte flag
27 00                                  // string count
53 57 47 2E 47 6F 72 61 74 68          // SWG.Gorath
2E 67 72 6F 75 70 2E                   // .group.
31 36 31 34 31 38 33 30 39 32 32 31 2E // 161418309221.   	
47 72 6F 75 70 43 68 61 74             // GroupChat
03 00             // string count
53 57 47          // SWG
06 00	          // string count	
47 6F 72 61 74 68 // Gorath
06 00             // string count
73 79 73 74 65 6D // system
03 00             // string count
53 57 47          // SWG
06 00             // string count
47 6F 72 61 74 68 // Gorath 
06 00             // string count
73 79 73 74 65 6D // system
0C 00 00 00                                  // u-string count
31 00 36 00 31 00 34 00 31 00 38 00 33 00 30 // 161418309221
00 39 00 32 00 32 00 31 00 
01 00 00 00  // moderator count
03 00             // string count
53 57 47          // SWG
06 00             // string count
47 6F 72 61 74 68 // Gorath 
06 00             // string count
73 79 73 74 65 6D // system
02 00 00 00   // user count
03 00             // string count
53 57 47          // SWG
06 00             // string count
47 6F 72 61 74 68 // Gorath
08 00                   // string count
70 61 74 72 69 7A 69 61 // patrizia
03 00             // string count
53 57 47          // SWG
06 00             // string count
47 6F 72 61 74 68 // Gorath
06 00             // string count
73 79 73 74 65 6D // system