Difference between revisions of "ChatRoomList"
From SWGANH Wiki
(→Variable Descriptions) |
(→Variable Descriptions) |
||
(9 intermediate revisions by 3 users not shown) | |||
Line 1: | Line 1: | ||
− | + | {{PageHeader|Server Packet|CharRoomList (70DEB197)}} | |
− | + | ||
{| border="0" width="90%" cellpadding=6 | {| border="0" width="90%" cellpadding=6 | ||
|- | |- | ||
Line 6: | Line 5: | ||
===Struct=== | ===Struct=== | ||
---- | ---- | ||
− | + | <pre> | |
− | + | 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 | |
− | + | } | |
− | + | } | |
− | + | </pre> | |
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | { | + | |
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
===Variable Descriptions=== | ===Variable Descriptions=== | ||
Line 75: | Line 44: | ||
---- | ---- | ||
+ | * '''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| | ||
Line 85: | Line 99: | ||
||{{ServerPacket}} | ||{{ServerPacket}} | ||
|- | |- | ||
− | ||{{ | + | ||{{100%}} |
|- | |- | ||
|} | |} | ||
− | |||
|} | |} | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
==Sample Packet== | ==Sample Packet== | ||
Line 138: | Line 110: | ||
<pre> | <pre> | ||
02 00 | 02 00 | ||
− | 97 B1 DE 70 | + | 97 B1 DE 70 // ChatRoomList |
− | 01 00 00 00 | + | 01 00 00 00 // Numberof_Chatrooms |
− | 5D 0A 72 02 | + | 5D 0A 72 02 // ChatRoom_ID |
− | 01 00 00 00 | + | 01 00 00 00 // NumberOf_RoomNames |
− | 00 | + | 00 // byte flag |
− | + | 27 00 // string count | |
− | 27 00 | + | 53 57 47 2E 47 6F 72 61 74 68 // SWG.Gorath |
− | 53 57 47 2E 47 6F 72 61 | + | 2E 67 72 6F 75 70 2E // .group. |
− | 74 68 2E 67 72 6F 75 70 | + | 31 36 31 34 31 38 33 30 39 32 32 31 2E // 161418309221. |
− | + | 47 72 6F 75 70 43 68 61 74 // GroupChat | |
− | 30 39 32 32 31 2E 47 72 | + | 03 00 // string count |
− | 6F 75 70 43 68 61 74 | + | 53 57 47 // SWG |
− | + | 06 00 // string count | |
− | 03 00 | + | 47 6F 72 61 74 68 // Gorath |
− | 53 57 47 | + | 06 00 // string count |
− | + | 73 79 73 74 65 6D // system | |
− | 06 00 | + | 03 00 // string count |
− | 47 6F 72 61 74 68 | + | 53 57 47 // SWG |
− | + | 06 00 // string count | |
− | 06 00 | + | 47 6F 72 61 74 68 // Gorath |
− | 73 79 73 74 65 6D | + | 06 00 // string count |
− | + | 73 79 73 74 65 6D // system | |
− | 03 00 | + | 0C 00 00 00 // u-string count |
− | 53 57 47 | + | 31 00 36 00 31 00 34 00 31 00 38 00 33 00 30 // 161418309221 |
− | + | ||
− | 06 00 | + | |
− | 47 6F 72 61 74 68 | + | |
− | + | ||
− | 06 00 | + | |
− | 73 79 73 74 65 6D | + | |
− | + | ||
− | 0C 00 00 00 | + | |
− | 31 00 36 00 31 00 34 00 31 00 38 00 33 00 30 | + | |
00 39 00 32 00 32 00 31 00 | 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 | |
− | 01 00 00 00 | + | 47 6F 72 61 74 68 // Gorath |
− | + | 06 00 // string count | |
− | + | 73 79 73 74 65 6D // system | |
− | 03 00 | + | 02 00 00 00 // user count |
− | 53 57 47 | + | 03 00 // string count |
− | + | 53 57 47 // SWG | |
− | 06 00 | + | 06 00 // string count |
− | 47 6F 72 61 74 68 | + | 47 6F 72 61 74 68 // Gorath |
− | + | 08 00 // string count | |
− | 06 00 | + | 70 61 74 72 69 7A 69 61 // patrizia |
− | 73 79 73 74 65 6D | + | 03 00 // string count |
− | + | 53 57 47 // SWG | |
− | + | 06 00 // string count | |
− | + | 47 6F 72 61 74 68 // Gorath | |
− | + | 06 00 // string count | |
− | 02 00 00 00 | + | 73 79 73 74 65 6D // system |
− | + | ||
− | + | ||
− | 03 00 | + | |
− | 53 57 47 | + | |
− | + | ||
− | 06 00 | + | |
− | 47 6F 72 61 74 68 | + | |
− | + | ||
− | 08 00 | + | |
− | 70 61 74 72 69 7A 69 61 | + | |
− | + | ||
− | + | ||
− | + | ||
− | 03 00 | + | |
− | 53 57 47 | + | |
− | + | ||
− | 06 00 | + | |
− | 47 6F 72 61 74 68 | + | |
− | + | ||
− | 06 00 | + | |
− | 73 79 73 74 65 6D | + | |
− | + | ||
</pre> | </pre> | ||
[[Category:Nogard]] | [[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.
StructSHORT: 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 DescriptionsOpperand_Count = 2 Opcode = 70DEB197
|
Tags
|
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