… | |
… | |
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.45 $</h1> |
26 | <h1>$Revision: 1.46 $</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 |
… | |
… | |
434 | <member name="description" type="STRING"/> |
434 | <member name="description" type="STRING"/> |
435 | <member name="flags" type="U8"/> |
435 | <member name="flags" type="U8"/> |
436 | See ROOMFLAGs |
436 | See ROOMFLAGs |
437 | </message> |
437 | </message> |
438 | |
438 | |
|
|
439 | <message type="031b" name="unknown_031b" src="client"> |
|
|
440 | <p> |
|
|
441 | Most probably has something to do witht he open games list or |
|
|
442 | maybe sth. else. |
|
|
443 | 00000: 20202020 20202020 20202020 20202036 6 |
|
|
444 | 00010: 42001b03 51010000 00000000 00000000 B...Q........... |
|
|
445 | </p> |
|
|
446 | <member name="channel" type="U16"/> |
|
|
447 | </message> |
|
|
448 | |
439 | <message type="0413" name="req_game_record" src="client"> |
449 | <message type="0413" name="req_game_record" src="client"> |
440 | <p>Requests part of the users game record to be sent. Results in a <ref reply="game_record"/> or maybe a timeout.</p> |
450 | <p>Requests part of the users game record to be sent. Results in a <ref reply="game_record"/> or maybe a timeout.</p> |
441 | <member name="name" type="username"/> |
451 | <member name="name" type="username"/> |
442 | <member name="timestamp" type="timestamp"/> |
452 | <member name="timestamp" type="timestamp"/> |
443 | If zero, start at the newest games, else only send games |
453 | If zero, start at the newest games, else only send games |
… | |
… | |
475 | |
485 | |
476 | <member name="channel" type="U16"/> |
486 | <member name="channel" type="U16"/> |
477 | <p>The room where to start the new game</p> |
487 | <p>The room where to start the new game</p> |
478 | <member name="id" type="U16"/> |
488 | <member name="id" type="U16"/> |
479 | <member name="gametype" type="U32"/> |
489 | <member name="gametype" type="U32"/> |
|
|
490 | <p> |
|
|
491 | 0x200 == global open game list |
|
|
492 | </p> |
480 | <member name="rules" type="rules"/> |
493 | <member name="rules" type="rules"/> |
481 | <p>When cloning a game, the rules are set up like this: |
494 | <p>When cloning a game, the rules are set up like this: |
482 | count => 65535, ruleset => 0, time => 4294967295, timesys => 0, interval => 4294967295. |
495 | count => 65535, ruleset => 0, time => 4294967295, timesys => 0, interval => 4294967295. |
483 | Cloning itself seems to be implemented solely in the client (somewhat sane, for a change). |
496 | Cloning itself seems to be implemented solely in the client (somewhat sane, for a change). |
484 | </p> |
497 | </p> |
… | |
… | |
603 | <message type="4429" name="reject_challenge" src="client"> |
616 | <message type="4429" name="reject_challenge" src="client"> |
604 | Reject a challenge from a given user. Not checked. |
617 | Reject a challenge from a given user. Not checked. |
605 | |
618 | |
606 | <member name="channel" type="U16"/> |
619 | <member name="channel" type="U16"/> |
607 | <member name="name" type="username"/> |
620 | <member name="name" type="username"/> |
|
|
621 | </message> |
|
|
622 | |
|
|
623 | <message type="442e" name="save_game" src="client"> |
|
|
624 | <p>Is send when a game is closed and should be saved on the gamerecord.</p> |
|
|
625 | |
|
|
626 | <member name="channel" type="U16"/> |
608 | </message> |
627 | </message> |
609 | |
628 | |
610 | <message type="4433" name="req_result" src="client"> |
629 | <message type="4433" name="req_result" src="client"> |
611 | I forgot. |
630 | I forgot. |
612 | |
631 | |
… | |
… | |
970 | <message type="0421" name="error" src="server"> |
989 | <message type="0421" name="error" src="server"> |
971 | <member name="message" type="CONSTANT" value='Sorry, this game is a private lesson. You will not be allowed to observe it.'/> |
990 | <member name="message" type="CONSTANT" value='Sorry, this game is a private lesson. You will not be allowed to observe it.'/> |
972 | </message> |
991 | </message> |
973 | |
992 | |
974 | <!-- added recently --> |
993 | <!-- added recently --> |
975 | <message type="043a" name="unknown_43b" src="server"> |
994 | <message type="043a" name="add_global_challenge" src="server"> |
976 | Probably updates the open games list? The format is just a VERY VERY WILD GUESS. |
995 | <p> |
977 | |
996 | Adds or updates a global challenge (open game list). |
978 | The first channel is probably a game id. |
997 | </p> |
979 | |
|
|
980 | <member name="channel" type="U16"/> |
998 | <member name="channel" type="U16"/> |
|
|
999 | <p> |
|
|
1000 | The room this game is associated with. |
|
|
1001 | </p> |
981 | <member name="game" type="game"/> |
1002 | <member name="game" type="game"/> |
982 | </message> |
1003 | </message> |
983 | |
1004 | |
984 | <h3>Room messages</h3> |
1005 | <h3>Room messages</h3> |
985 | |
1006 | |
… | |
… | |
1122 | |
1143 | |
1123 | <member name="channel" type="U16"/> |
1144 | <member name="channel" type="U16"/> |
1124 | <member name="name" type="username"/> |
1145 | <member name="name" type="username"/> |
1125 | </message> |
1146 | </message> |
1126 | |
1147 | |
1127 | <message type="442f" name="new_game" src="client"> |
1148 | <message type="442f" name="new_game" src="server"> |
1128 | <p>Notifies the client that a new game has been created. This |
1149 | <p>Notifies the client that a new game has been created. This |
1129 | message is sent long *after* upd_observers etc. has been received. |
1150 | message is sent long *after* upd_games and upd_observers etc. |
1130 | *sigh*</p> |
1151 | have been received. *sigh*</p> |
1131 | |
1152 | |
1132 | <member name="channel" type="U16"/> |
1153 | <member name="channel" type="U16"/> |
1133 | <p>The enwly created game.</p> |
1154 | <p>The newly created game.</p> |
1134 | <member name="id" type="U16"/> |
1155 | <member name="id" type="U16"/> |
1135 | <p>Probably the ID sent to the server in new_game.</p> |
1156 | <p>The ID sent to the server in new_game.</p> |
1136 | </message> |
1157 | </message> |
1137 | |
1158 | |
1138 | <message type="4433" name="req_result" src="server"> |
1159 | <message type="4433" name="req_result" src="server"> |
1139 | Unclear. |
1160 | Unclear. |
1140 | <member name="channel" type="U16"/> |
1161 | <member name="channel" type="U16"/> |
… | |
… | |
1146 | <member name="b1" type="U8"/> |
1167 | <member name="b1" type="U8"/> |
1147 | ?? !demonstration game?? |
1168 | ?? !demonstration game?? |
1148 | </message> |
1169 | </message> |
1149 | |
1170 | |
1150 | <!-- added recently --> |
1171 | <!-- added recently --> |
1151 | <message type="443b" name="unknown_443b" src="server"> |
1172 | <message type="443b" name="del_global_challenge" src="server"> |
1152 | No idea yet, both id's are probably channel ids and have sth. to |
1173 | <p> |
1153 | do with the open games list(?). They have never been observed to be different, btw. |
1174 | Remove a game from the global challenge list (open game list). |
|
|
1175 | </p> |
1154 | <member name="channel" type="U16"/> |
1176 | <member name="channel" type="U16"/> |
|
|
1177 | <p>The game id to remove.</p> |
1155 | <member name="game" type="U16"/> |
1178 | <member name="game" type="U16"/> |
|
|
1179 | <p>Probably the same. I suggest to use this id for no good reason.</p> |
1156 | </message> |
1180 | </message> |
1157 | </body> |
1181 | </body> |
1158 | </html> |
1182 | </html> |
1159 | |
1183 | |