… | |
… | |
21 | Foundation, Inc. 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA |
21 | Foundation, Inc. 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA |
22 | --> |
22 | --> |
23 | </head> |
23 | </head> |
24 | <body> |
24 | <body> |
25 | |
25 | |
26 | <h1>$Revision: 1.62 $</h1> |
26 | <h1>$Revision: 1.63 $</h1> |
27 | |
27 | |
28 | <h1>KGS Protocol Description</h1> |
28 | <h1>KGS Protocol Description</h1> |
29 | |
29 | |
30 | <p>This XML document describes the KGS protocol. It is also used |
30 | <p>This XML document describes the KGS protocol. It is also used |
31 | to automatically generate the perl parser for all the messages and |
31 | to automatically generate the perl parser for all the messages and |
… | |
… | |
268 | |
268 | |
269 | <enum name="COLOUR"> |
269 | <enum name="COLOUR"> |
270 | <p>Convinience constants used in several places.</p> |
270 | <p>Convinience constants used in several places.</p> |
271 | <member name="BLACK" value="0"/> |
271 | <member name="BLACK" value="0"/> |
272 | <member name="WHITE" value="1"/> |
272 | <member name="WHITE" value="1"/> |
|
|
273 | <member name="NONE" value="2"/> |
|
|
274 | <p>Sometimes used to mark absence of marks, or no player or etc...</p> |
273 | </enum> |
275 | </enum> |
274 | |
276 | |
275 | <h2>Structs used in send & receive messages</h2> |
277 | <h2>Structs used in send & receive messages</h2> |
276 | |
278 | |
277 | <struct name="user" class="KGS::User"> |
279 | <struct name="user" class="KGS::User"> |
… | |
… | |
571 | <member name="y" type="U8"/> |
573 | <member name="y" type="U8"/> |
572 | <member name="dead" type="flag"/> |
574 | <member name="dead" type="flag"/> |
573 | <p>Possibly true means mark dead and false unmark, but that's just a wild guess.</p> |
575 | <p>Possibly true means mark dead and false unmark, but that's just a wild guess.</p> |
574 | </message> |
576 | </message> |
575 | |
577 | |
576 | <message type="4408" name="get_tree" src="client"> |
578 | <message type="440a" name="game_done" src="client"> |
577 | Request the game tree starting at a given node. This is used |
579 | <p>Sent by the client to mark the game as done.</p> |
578 | when the server only sends a partial tree (with end code "more"). |
|
|
579 | <member name="channel" type="U16"/> |
580 | <member name="channel" type="U16"/> |
580 | <member name="node" type="U32"/> |
581 | <member name="id" type="U32"/> |
|
|
582 | <p>Probably some ID field to make sure that the client responds to the correct done click.</p> |
581 | </message> |
583 | </message> |
582 | |
584 | |
583 | <message type="440c" name="claim_win" src="client"> |
585 | <message type="440c" name="claim_win" src="client"> |
584 | <p>Used by the client to claim a win.</p> |
586 | <p>Used by the client to claim a win.</p> |
585 | <member name="channel" type="U16"/> |
587 | <member name="channel" type="U16"/> |
… | |
… | |
1151 | <message type="4409" name="superko" src="server"> |
1153 | <message type="4409" name="superko" src="server"> |
1152 | Superko-warning. |
1154 | Superko-warning. |
1153 | <member name="channel" type="U16"/> |
1155 | <member name="channel" type="U16"/> |
1154 | </message> |
1156 | </message> |
1155 | |
1157 | |
|
|
1158 | <message type="440a" name="game_done" src="server"> |
|
|
1159 | <p>Send by the server when one of the players sends a done.</p> |
|
|
1160 | <member name="channel" type="U16"/> |
|
|
1161 | <member name="id" type="U32"/> |
|
|
1162 | <p>Probably some ID field to make sure that the client responds to the correct done click.</p> |
|
|
1163 | <p>The high bit has some function I don't know. It must be cleared when replying.</p> |
|
|
1164 | <member name="black" type="flag"/> |
|
|
1165 | <member name="white" type="flag"/> |
|
|
1166 | </message> |
|
|
1167 | |
1156 | <message type="440b" name="final_result" src="server"> |
1168 | <message type="440b" name="final_result" src="server"> |
1157 | <member name="channel" type="U16"/> |
1169 | <member name="channel" type="U16"/> |
1158 | <member name="blackscore" type="scorevalues"/> |
1170 | <member name="blackscore" type="scorevalues"/> |
1159 | <member name="whitescore" type="scorevalues"/> |
1171 | <member name="whitescore" type="scorevalues"/> |
1160 | </message> |
1172 | </message> |
… | |
… | |
1227 | <member name="cid" type="CLIENTID8"/> |
1239 | <member name="cid" type="CLIENTID8"/> |
1228 | <p>Possibly an id. No idea. Better echo this from the challenge request.</p> |
1240 | <p>Possibly an id. No idea. Better echo this from the challenge request.</p> |
1229 | <member name="rules" type="rules"/> |
1241 | <member name="rules" type="rules"/> |
1230 | </message> |
1242 | </message> |
1231 | |
1243 | |
|
|
1244 | <message type="442b" name="set_comments" src="server"> |
|
|
1245 | <p>Sent at end of games to set the comments not seen previously.</p> |
|
|
1246 | <member name="channel" type="U16"/> |
|
|
1247 | <member name="node" type="U32"/> |
|
|
1248 | <member name="comments" type="STRING"/> |
|
|
1249 | </message> |
|
|
1250 | |
|
|
1251 | <message type="442c" name="add_comments" src="server"> |
|
|
1252 | <p>Sent at end of games to add all game commentary.</p> |
|
|
1253 | <member name="channel" type="U16"/> |
|
|
1254 | <member name="node" type="U32"/> |
|
|
1255 | <member name="comments" type="STRING"/> |
|
|
1256 | </message> |
|
|
1257 | |
1232 | <message type="442f" name="new_game" src="server"> |
1258 | <message type="442f" name="new_game" src="server"> |
1233 | <p>Notifies the client that a new game has been created. This |
1259 | <p>Notifies the client that a new game has been created. This |
1234 | message is sent long *after* upd_games and upd_observers etc. |
1260 | message is sent long *after* upd_games and upd_observers etc. |
1235 | have been received. *sigh*</p> |
1261 | have been received. *sigh*</p> |
1236 | |
1262 | |