ViewVC Help
View File | Revision Log | Show Annotations | Download File
/cvs/kgsueme/doc/protocol.xml
(Generate patch)

Comparing kgsueme/doc/protocol.xml (file contents):
Revision 1.26 by pcg, Sat Jul 19 14:19:39 2003 UTC vs.
Revision 1.27 by pcg, Sun Jul 20 01:29:20 2003 UTC

20 Foundation, Inc. 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA 20 Foundation, Inc. 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
21--> 21-->
22</head> 22</head>
23<body> 23<body>
24 24
25<h1>$Revision: 1.26 $</h1> 25<h1>$Revision: 1.27 $</h1>
26 26
27<h1>KGS Protocol Description</h1> 27<h1>KGS Protocol Description</h1>
28 28
29 <p>This XML document describes the KGS protocol. It is also used 29 <p>This XML document describes the KGS protocol. It is also used
30 to automatically generate the perl parser for all the messages and 30 to automatically generate the perl parser for all the messages and
61 61
62 <p>Well, that is just what he accouned earlier, so he just did what he 62 <p>Well, that is just what he accouned earlier, so he just did what he
63 said...</p> 63 said...</p>
64 64
65 <p>Anything I know about changes in 2.5.x are reflected in this 65 <p>Anything I know about changes in 2.5.x are reflected in this
66 document already. You can log-in, chat, log-out, but the gamelist 66 document already. You can log-in, chat, log-out, watch games, but you
67 is corrupted, and you still cannot watch games.</p> 67 cannot comment games nor play nor privately chat.</p>
68 68
69<h2>Structure and conventions of this document and the protocol</h2> 69<h2>Structure and conventions of this document and the protocol</h2>
70 70
71 <p>"Send" means messages send from the client to the server, while 71 <p>"Send" means messages send from the client to the server, while
72 "received" means messages send by the server to the client.</p> 72 "received" means messages send by the server to the client.</p>
180 resolution. There are also special values for wins by time etc., either 180 resolution. There are also special values for wins by time etc., either
181 in result or in the score* types, or both :)</p> 181 in result or in the score* types, or both :)</p>
182 182
183 <type name="score16" type="I16" multiplier="4"/> 183 <type name="score16" type="I16" multiplier="4"/>
184 <type name="score32" type="I32" multiplier="4"/> 184 <type name="score32" type="I32" multiplier="4"/>
185 <type name="score1000" type="I32" multiplier="1000"/>
185 186
186 <p>A score value (used for displaying the score at the end of a game) 187 <p>A score value (used for displaying the score at the end of a game)
187 are multiplied by four for a change (the 0.25 resolution is not 188 are multiplied by four for a change (the 0.25 resolution is not
188 used). In game structures it is encoded by dividing by two, though, so 189 used). In game structures it is encoded by dividing by two, though, so
189 watch out!</p> 190 watch out! And in some others, it's encoded by multiplying by 1000...
191 yuck!</p>
190 192
191 <type name="time" type="U32" multiplier="1000"/> 193 <type name="time" type="U32" multiplier="1000"/>
192 194
193 <p>Time values are multiplied by 1000, giving them millisecond 195 <p>Time values are multiplied by 1000, giving them millisecond
194 accuracy.</p> 196 accuracy.</p>
522 &lt; 0 not fully setup 524 &lt; 0 not fully setup
523 <member name="komi" type="komi16"/> 525 <member name="komi" type="komi16"/>
524 <member name="moves" type="I16"/> 526 <member name="moves" type="I16"/>
525 This field reflects either the movenum or the score, sorry, not even guards help, as 527 This field reflects either the movenum or the score, sorry, not even guards help, as
526 the flags to determine that are _after_ the field. Arg. Divide by two to get the actual 528 the flags to determine that are _after_ the field. Arg. Divide by two to get the actual
527 score (NOT score16!). 529 score (NOT score16!) (argĀ²).
528 <member name="flags" type="U16"/> 530 <member name="flags" type="U16"/>
529 <member name="observers" type="U32"/> 531 <member name="observers" type="U32"/>
530 <member name="saved" type="flag"/> 532 <member name="saved" type="flag"/>
531 <member name="notes" type="STRING" guard-member="handicap" guard-cond="&lt; 0"/> 533 <member name="notes" type="STRING" guard-member="handicap" guard-cond="&lt; 0"/>
532 </struct> 534 </struct>
834 <message type="4406" name="upd_tree" recv="yes"> 836 <message type="4406" name="upd_tree" recv="yes">
835 <member name="channel" type="U16"/> 837 <member name="channel" type="U16"/>
836 <member name="tree" type="TREE"/> 838 <member name="tree" type="TREE"/>
837 </message> 839 </message>
838 840
839 <message type="4407" name="set_node" recv="yes">
840 <member name="channel" type="U16"/>
841 <member name="node" type="U32"/>
842 </message>
843
844 <message type="4409" name="superko" recv="yes"> 841 <message type="4409" name="superko" recv="yes">
845 Superko-warning. 842 Superko-warning.
846 <member name="channel" type="U16"/> 843 <member name="channel" type="U16"/>
847 </message> 844 </message>
848 845
880 <message type="4422" name="unknown4422" recv="yes"> 877 <message type="4422" name="unknown4422" recv="yes">
881 change teacher? something to do with editing? 878 change teacher? something to do with editing?
882 <member name="channel" type="U16"/> 879 <member name="channel" type="U16"/>
883 <member name="name1" type="username"/> 880 <member name="name1" type="username"/>
884 <member name="name2" type="username"/> 881 <member name="name2" type="username"/>
882 </message>
883
884 <message type="4428" name="add_tree" recv="yes">
885 <p>See <ref ref="set_tree"/>. In addition, flags the tree as being
886 uploaded completely.</p>
887 <member name="channel" type="U16"/>
888 <member name="tree" type="TREE"/>
885 </message> 889 </message>
886 890
887 <message type="4433" name="req_result" recv="yes"> 891 <message type="4433" name="req_result" recv="yes">
888 Unclear. 892 Unclear.
889 <member name="channel" type="U16"/> 893 <member name="channel" type="U16"/>

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines