ViewVC Help
View File | Revision Log | Show Annotations | Download File
/cvs/kgsueme/doc/protocol.html
Revision: 1.29
Committed: Mon Jul 21 01:36:47 2003 UTC (20 years, 10 months ago) by pcg
Content type: text/html
Branch: MAIN
Changes since 1.28: +62 -1 lines
Log Message:
*** empty log message ***

File Contents

# User Rev Content
1 pcg 1.1 <html>
2     <head>
3     <title>KGS Protocol Description</title>
4     <!--
5     Copyright (C) 2003 Marc Lehmannn &lt;pcg@goof.com&gt;
6    
7     You can redistribute and/or modify this document under the terms of
8     the GNU General Public License as published by the Free Software
9     Foundation; either version 2 of the License, or (at your option) any
10     later version.
11    
12     This document is distributed in the hope that it will be useful,
13     but WITHOUT ANY WARRANTY; without even the implied warranty of
14     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
15     General Public License for more details.
16    
17     You should have received a copy of the GNU General Public License
18     along with this program; if not, write to the Free Software
19     Foundation, Inc. 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
20     -->
21     </head>
22     <body>
23    
24 pcg 1.28 <h1>$Revision: 1.28 $</h1>
25 pcg 1.9
26 pcg 1.1 <h1>KGS Protocol Description</h1>
27    
28     <p>This XML document describes the KGS protocol. It is also used
29     to automatically generate the perl parser for all the messages and
30     structures in the protocol. Adapting it to other languages should be
31     trivial.</p>
32    
33 pcg 1.9 <p>
34     <b>Please note that the author of KGS has told me that he will
35 pcg 1.24 change the protocol in response to my efforts. Unfortunately, he does
36     this just to make it more difficult to reverse-engineer it, since his
37     changes are neither required, nor useful (they just make the protocol
38     less robust, without adding added value).</b>
39 pcg 1.9 </p>
40    
41 pcg 1.4 <p>If you feel you need to update the visual appearance of this
42 pcg 1.10 document, feel free to look <tt>doc/doc2html.xsl</tt> and improve
43 pcg 1.4 it.</p>
44    
45 pcg 1.7 <p>The current version of this document can always be found at
46     <a href="http://cvs.sourceforge.net/cgi-bin/viewcvs.cgi/*checkout*/kgsueme/kgsueme/doc/protocol.xml?rev=HEAD&amp;content-type=text/xml">here</a>, while
47     the HTML version of it can be found
48     <a href="http://cvs.sourceforge.net/cgi-bin/viewcvs.cgi/*checkout*/kgsueme/kgsueme/doc/protocol.html?rev=HEAD&amp;content-type=text/html">here</a>.
49     </p>
50    
51 pcg 1.23 <h2>Changes for server version 2.5</h2>
52 pcg 1.22
53     <p>Sorry - I have little time to dissect the protocol, but as far
54     as I can see, there was no deeper need for the protocol change, as
55 pcg 1.24 the protocol itself didn't change in a significant way. The only
56 pcg 1.22 significant change was the addition of a linear congruence generator
57 pcg 1.24 that is xor'ed into the packet length, and some heavy foolery to change
58     receive packets. It seems that wms prefers to lock out many of his own
59     users than to have a few people write their own client. I didn't really
60     expect that from him, but instead expected real changes for the good,
61     as he is claiming all the time.</p>
62 pcg 1.22
63 pcg 1.24 <p>Well, that is just what he accouned earlier, so he just did what he
64 pcg 1.22 said...</p>
65    
66     <p>Anything I know about changes in 2.5.x are reflected in this
67 pcg 1.26 document already. You can log-in, chat, log-out, watch games, but you
68     cannot comment games nor play nor privately chat.</p>
69 pcg 1.22
70 pcg 1.1 <h2>Structure and conventions of this document and the protocol</h2>
71    
72     <p>"Send" means messages send from the client to the server, while
73     "received" means messages send by the server to the client.</p>
74    
75 pcg 1.4 <p>Everything on the wire is in little-endian format (what a shame).</p>
76 pcg 1.1
77 pcg 1.4 <p>Primitive types are mostly integers (signed
78     "<code>I</code>&lt;bits&gt;", unsigned "<code>U</code>&lt;bits&gt;"),
79     ascii strings ("<code>username</code>"), or zero-terminated
80     UCS2-Strings ("<code>STRING</code>"). Yes, I know java is supposed to
81     do UTF-16, but no implementation seems to care...</p>
82 pcg 1.1
83 pcg 1.15 <p>For the rest, go figure or bug me, <a href="mailto:pcg@goof.com">Marc Lehmann &lt;pcg@goof.com&gt;</a>
84     </p>
85 pcg 1.1
86     <h2>Stream and message structure.</h2>
87    
88 pcg 1.4 <p>After connecting to the server, a handshake byte is sent. It's
89     the major version number of the protocol the client expects to
90     receive. Version 3 and 4 are mostly the same, except that Version 4
91     clients expect server messages to be compressed, version 3 clients
92     not.</p>
93    
94     <p>The server sends back his protocol number, which is always 3 in
95     the current protocol. Most of the protocol variation is determined by
96     the server using the client version that is used in the initial login
97     message, not the initial handshake byte.</p>
98 pcg 1.1
99     <p>After the initial handshake, the client sends uncompressed
100     messages, while the server sends back a zlib-compressed
101     stream (<a href="http://rfc1950.x42.com/">rfc1950</a> and <a href="http://rfc1950.x42.com/">rfc1951</a>).</p>
102    
103     <p>All messages have the same header:</p>
104    
105 pcg 1.3 <h4>STRUCTURE message_header</h4>
106 pcg 1.17 <p>
107     </p>
108     <table border="1" width="100%">
109     <tr>
110     <th width="10%">NAME</th>
111     <th width="10%">TYPE</th>
112     <th width="15%">DEFAULT</th>
113     <th>DESCRIPTION</th>
114     <th width="15%">DEC-GUARD</th>
115 pcg 1.1 </tr>
116     <tr>
117     <td>_unknown</td>
118 pcg 1.3 <td>U16</td>
119 pcg 1.17 <td> </td>
120     <td>
121    
122      
123     </td>
124 pcg 1.3 <td>
125 pcg 1.17 <b></b>
126      
127     </td>
128 pcg 1.1 </tr>
129     <tr>
130     <td>length</td>
131 pcg 1.3 <td>U16</td>
132 pcg 1.17 <td> </td>
133     <td>
134 pcg 1.22
135 pcg 1.17
136      
137     </td>
138 pcg 1.3 <td>
139 pcg 1.17 <b></b>
140      
141     </td>
142 pcg 1.1 </tr>
143     <tr>
144     <td>type</td>
145 pcg 1.3 <td>U16</td>
146 pcg 1.17 <td> </td>
147     <td>
148    
149      
150     </td>
151 pcg 1.3 <td>
152 pcg 1.17 <b></b>
153      
154     </td>
155 pcg 1.1 </tr>
156     </table>
157    
158 pcg 1.3 <h2>Primitive types used in the protocol.</h2>
159    
160 pcg 1.9 <p>Apart from the basic types, I need to define some extra types to
161     deal with fixed-point values (based on integer types) or fixed-length
162     strings (either 7-bit-ascii or more limited (<code>A</code>), or UCS-2
163     based (<code>S</code>)).</p>
164    
165 pcg 1.4 <h4>TYPE username</h4>
166 pcg 1.22 BASE TYPE A, LENGTH 10, MULTIPLIER <br />
167 pcg 1.8
168     <p>The basic user or login name, used throughout the protocol
169     as a handle to the user.</p>
170    
171 pcg 1.4 <h4>TYPE roomname</h4>
172 pcg 1.17 BASE TYPE S, LENGTH 25, MULTIPLIER <br />
173 pcg 1.3 <!-- argh, how horribly broken -->
174 pcg 1.8
175     <p>Many strings in the protocol are fixed-width for no good reason
176 pcg 1.17 (maybe this is one reason for using compression in newer versions, as
177 pcg 1.8 the packets itself are wasting lots of space.</p>
178    
179 pcg 1.14 <h4>TYPE realname</h4>
180 pcg 1.17 BASE TYPE S, LENGTH 50, MULTIPLIER <br />
181 pcg 1.14 <h4>TYPE email</h4>
182 pcg 1.17 BASE TYPE S, LENGTH 70, MULTIPLIER <br />
183 pcg 1.14 <h4>TYPE userinfo</h4>
184 pcg 1.17 BASE TYPE S, LENGTH 1000, MULTIPLIER <br />
185 pcg 1.14 <h4>TYPE url</h4>
186 pcg 1.17 BASE TYPE A, LENGTH 100, MULTIPLIER <br />
187 pcg 1.14
188     <p>Used in user_record.</p>
189    
190 pcg 1.4 <h4>TYPE locale</h4>
191 pcg 1.17 BASE TYPE A, LENGTH 5, MULTIPLIER <br />
192 pcg 1.8
193     <p>A kind of locale specifier. It seems the general format seems to be
194     lowercase language, underscore, uppercase location, e.g. en_US. More
195     fancy specifications don't fit.</p>
196    
197 pcg 1.4 <h4>TYPE flag</h4>
198 pcg 1.17 BASE TYPE U8, LENGTH , MULTIPLIER 1<br />
199 pcg 1.8
200     <p>Just a simple boolean value. 0 means false, and 1 generally true,
201     but I suggest ccepting != 0 as true.</p>
202    
203 pcg 1.6 <h4>TYPE komi16</h4>
204 pcg 1.17 BASE TYPE I16, LENGTH , MULTIPLIER 2<br />
205 pcg 1.6 <h4>TYPE komi32</h4>
206 pcg 1.17 BASE TYPE I32, LENGTH , MULTIPLIER 2<br />
207 pcg 1.19 <h4>TYPE komi324</h4>
208     BASE TYPE I32, LENGTH , MULTIPLIER 4<br />
209 pcg 1.8
210     <p>Komi values are multiplied by 2 to make them integer in the
211 pcg 1.19 protocol. Well, *most* of the time at least...</p>
212 pcg 1.8
213 pcg 1.4 <h4>TYPE result</h4>
214 pcg 1.17 BASE TYPE I32, LENGTH , MULTIPLIER 2<br />
215 pcg 1.8
216 pcg 1.13 <p>The game result is also multiplied by two to give it higher
217     resolution. There are also special values for wins by time etc., either
218     in result or in the score* types, or both :)</p>
219 pcg 1.8
220 pcg 1.11 <h4>TYPE score16</h4>
221 pcg 1.17 BASE TYPE I16, LENGTH , MULTIPLIER 4<br />
222 pcg 1.11 <h4>TYPE score32</h4>
223 pcg 1.17 BASE TYPE I32, LENGTH , MULTIPLIER 4<br />
224 pcg 1.26 <h4>TYPE score1000</h4>
225     BASE TYPE I32, LENGTH , MULTIPLIER 1000<br />
226 pcg 1.8
227     <p>A score value (used for displaying the score at the end of a game)
228 pcg 1.13 are multiplied by four for a change (the 0.25 resolution is not
229     used). In game structures it is encoded by dividing by two, though, so
230 pcg 1.26 watch out! And in some others, it's encoded by multiplying by 1000...
231     yuck!</p>
232 pcg 1.8
233 pcg 1.4 <h4>TYPE time</h4>
234 pcg 1.17 BASE TYPE U32, LENGTH , MULTIPLIER 1000<br />
235 pcg 1.8
236     <p>Time values are multiplied by 1000, giving them millisecond
237     accuracy.</p>
238 pcg 1.3
239 pcg 1.14 <h4>TYPE timestamp</h4>
240 pcg 1.17 BASE TYPE U64, LENGTH , MULTIPLIER 1000<br />
241 pcg 1.14
242     <p>64 bit timeval, milliseconds since posix epoch, e.g. <code>my
243     ($year, $month, $day) = (gmtime $date * 0.001)[5,4,3];</code>
244     </p>
245    
246 pcg 1.15 <h4>TYPE password</h4>
247 pcg 1.17 BASE TYPE U64, LENGTH , MULTIPLIER <br />
248 pcg 1.15
249     <p>Password is a number calculated as follows (VERY insecure, basically
250     plaintext!): <code>password = 0; for char in characters do password ←
251     password * 1055 + ascii_code (char)</code>
252     </p>
253    
254 pcg 1.3 <h2>Constants, enumeration and set types used in the protocol.</h2>
255 pcg 1.1
256     <p>Baaah... not yet.</p>
257    
258 pcg 1.3 <h2>Structs used in send &amp; receive messages</h2>
259 pcg 1.1
260 pcg 1.3 <h4>STRUCTURE user</h4>
261     CLASS: KGS::User<br />
262 pcg 1.17 <p>
263 pcg 1.9
264 pcg 1.17 <p>Everywhere a user + flags is required, even used in some places
265 pcg 1.9 where only a username is required. I see no general rule on when a
266 pcg 1.17 complete user and when a partial user is required.</p>
267     </p>
268     <table border="1" width="100%">
269     <tr>
270     <th width="10%">NAME</th>
271     <th width="10%">TYPE</th>
272     <th width="15%">DEFAULT</th>
273     <th>DESCRIPTION</th>
274     <th width="15%">DEC-GUARD</th>
275 pcg 1.1 </tr>
276     <tr>
277     <td>name</td>
278 pcg 1.3 <td>username</td>
279 pcg 1.17 <td> </td>
280     <td>
281    
282      
283     </td>
284 pcg 1.3 <td>
285 pcg 1.17 <b></b>
286      
287     </td>
288 pcg 1.1 </tr>
289     <tr>
290     <td>flags</td>
291 pcg 1.3 <td>U32</td>
292 pcg 1.17 <td>1 </td>
293     <td>
294    
295      
296     </td>
297 pcg 1.3 <td>
298 pcg 1.17 <b></b>
299      
300     </td>
301 pcg 1.1 </tr>
302     </table>
303    
304 pcg 1.6 <h4>STRUCTURE rules</h4>
305     CLASS: KGS::Rules<br />
306 pcg 1.17 <p>
307    
308     <p>This structure is used for challanges as well as in the special
309     TREE "subprotocol". It tightly encodes the game parameters.</p>
310     </p>
311     <table border="1" width="100%">
312 pcg 1.6 <tr>
313 pcg 1.17 <th width="10%">NAME</th>
314     <th width="10%">TYPE</th>
315     <th width="15%">DEFAULT</th>
316     <th>DESCRIPTION</th>
317     <th width="15%">DEC-GUARD</th>
318 pcg 1.6 </tr>
319     <tr>
320     <td>ruleset</td>
321     <td>U8</td>
322 pcg 1.17 <td> </td>
323 pcg 1.6 <td>
324 pcg 1.17
325      
326     </td>
327     <td>
328     <b></b>
329      
330     </td>
331 pcg 1.6 </tr>
332     <tr>
333     <td>size</td>
334     <td>U8</td>
335 pcg 1.17 <td> </td>
336     <td>
337    
338      
339     </td>
340 pcg 1.6 <td>
341 pcg 1.17 <b></b>
342      
343     </td>
344 pcg 1.6 </tr>
345     <tr>
346     <td>handicap</td>
347     <td>U8</td>
348 pcg 1.17 <td> </td>
349 pcg 1.6 <td>
350 pcg 1.17
351      
352     </td>
353     <td>
354     <b></b>
355      
356     </td>
357 pcg 1.6 </tr>
358     <tr>
359     <td>komi</td>
360     <td>komi16</td>
361 pcg 1.17 <td> </td>
362     <td>
363    
364      
365     </td>
366 pcg 1.6 <td>
367 pcg 1.17 <b></b>
368      
369     </td>
370 pcg 1.6 </tr>
371     <tr>
372     <td>timesys</td>
373     <td>U8</td>
374 pcg 1.17 <td> </td>
375 pcg 1.6 <td>
376 pcg 1.17
377      
378     </td>
379     <td>
380     <b></b>
381      
382     </td>
383 pcg 1.6 </tr>
384     <tr>
385     <td>time</td>
386     <td>U32</td>
387 pcg 1.17 <td> </td>
388     <td>
389    
390      
391     </td>
392 pcg 1.6 <td>
393 pcg 1.17 <b></b>
394      
395     </td>
396 pcg 1.6 </tr>
397     <tr>
398     <td>interval</td>
399     <td>U32</td>
400 pcg 1.17 <td> </td>
401 pcg 1.6 <td>
402     byo-yomi time / canadian time
403 pcg 1.17
404      
405     </td>
406     <td>
407     <b></b>
408      
409     </td>
410 pcg 1.6 </tr>
411     <tr>
412     <td>count</td>
413     <td>U16</td>
414 pcg 1.17 <td> </td>
415 pcg 1.6 <td>
416     periods / moves
417 pcg 1.17
418      
419     </td>
420     <td>
421     <b></b>
422      
423     </td>
424 pcg 1.6 </tr>
425     </table>
426    
427 pcg 1.3 <h2>Structs used in send messages</h2>
428 pcg 1.1
429 pcg 1.17 <h2>Send messages</h2>
430    
431     <h4>
432     <a name="S0000"></a>SEND
433     MESSAGE login</h4>
434     NUMERIC TYPE (hex): 0000<p>
435 pcg 1.9
436 pcg 1.17 <p>Sent to login, usually the first message sent. The password needs to be set when the
437 pcg 1.9 guest flag is true.
438 pcg 1.17 Possible replies: <a href="#R0001">login(0001)</a>
439     <a href="#R0002">login(0002)</a>
440     <a href="#R0003">login(0003)</a>
441     <a href="#R0004">login(0004)</a>
442     <a href="#R0005">login(0005)</a>
443     <a href="#R0006">login(0006)</a>
444     <a href="#R0018">login(0018)</a>
445     <a href="#R0022">login(0022)</a>. Followed by: <a href="#R001b">timewarning_default(001b)</a> <a href="#R0411">chal_defaults(0411)</a>
446     </p>
447     </p>
448     <table border="1" width="100%">
449     <tr>
450     <th width="10%">NAME</th>
451     <th width="10%">TYPE</th>
452     <th width="15%">DEFAULT</th>
453     <th>DESCRIPTION</th>
454     <th width="15%">DEC-GUARD</th>
455 pcg 1.1 </tr>
456     <tr>
457     <td>ver_major</td>
458 pcg 1.3 <td>U32</td>
459 pcg 1.17 <td>2 </td>
460     <td>
461    
462      
463     </td>
464 pcg 1.3 <td>
465 pcg 1.17 <b></b>
466      
467     </td>
468 pcg 1.1 </tr>
469     <tr>
470     <td>ver_minor</td>
471 pcg 1.3 <td>U32</td>
472 pcg 1.22 <td>5 </td>
473 pcg 1.3 <td>
474 pcg 1.17
475      
476     </td>
477     <td>
478     <b></b>
479      
480     </td>
481 pcg 1.1 </tr>
482     <tr>
483     <td>ver_micro</td>
484 pcg 1.3 <td>U32</td>
485 pcg 1.22 <td>1 </td>
486 pcg 1.17 <td>
487    
488      
489     </td>
490 pcg 1.3 <td>
491 pcg 1.17 <b></b>
492      
493     </td>
494 pcg 1.1 </tr>
495     <tr>
496 pcg 1.3 <td>name</td>
497     <td>username</td>
498 pcg 1.17 <td> </td>
499 pcg 1.3 <td>
500 pcg 1.17
501      
502     </td>
503     <td>
504     <b></b>
505      
506     </td>
507 pcg 1.1 </tr>
508     <tr>
509 pcg 1.15 <td>password</td>
510     <td>password</td>
511 pcg 1.17 <td>0 </td>
512     <td>
513    
514      
515     </td>
516 pcg 1.3 <td>
517 pcg 1.17 <b></b>
518      
519     </td>
520 pcg 1.1 </tr>
521     <tr>
522 pcg 1.2 <td>guest</td>
523 pcg 1.3 <td>flag</td>
524 pcg 1.17 <td>1 </td>
525 pcg 1.3 <td>
526 pcg 1.17
527      
528     </td>
529     <td>
530     <b></b>
531      
532     </td>
533 pcg 1.1 </tr>
534     <tr>
535     <td>_unknown3</td>
536 pcg 1.3 <td>U16</td>
537 pcg 1.17 <td>0 </td>
538     <td>
539    
540      
541     </td>
542 pcg 1.3 <td>
543 pcg 1.17 <b></b>
544      
545     </td>
546 pcg 1.1 </tr>
547     <tr>
548 pcg 1.2 <td>locale</td>
549 pcg 1.3 <td>locale</td>
550 pcg 1.17 <td>"en_US" </td>
551 pcg 1.3 <td>
552 pcg 1.17
553      
554     </td>
555     <td>
556     <b></b>
557      
558     </td>
559 pcg 1.1 </tr>
560     <tr>
561     <td>clientver</td>
562     <td>DATA</td>
563 pcg 1.17 <td>"1.4.1_01:Swing app:Sun Microsystems Inc." </td>
564 pcg 1.3 <td>
565 pcg 1.4 The "default" is the java vm version, not exactly he client version. However,
566 pcg 1.17 you should always send a text like "Jonathan's C client bersion 0.6" or somesuch,
567 pcg 1.4 so the server can, if necessary, block broken clients or client versions.
568 pcg 1.17
569      
570     </td>
571     <td>
572     <b></b>
573      
574     </td>
575 pcg 1.1 </tr>
576     </table>
577    
578 pcg 1.17 <h4>
579     <a name="S0007"></a>SEND
580     MESSAGE req_userinfo</h4>
581     NUMERIC TYPE (hex): 0007<p>
582     <p>Request info about a certain user. Possible reply: <a href="#R0008">userinfo(0008)</a>
583     </p>
584     </p>
585     <table border="1" width="100%">
586 pcg 1.15 <tr>
587 pcg 1.17 <th width="10%">NAME</th>
588     <th width="10%">TYPE</th>
589     <th width="15%">DEFAULT</th>
590     <th>DESCRIPTION</th>
591     <th width="15%">DEC-GUARD</th>
592 pcg 1.15 </tr>
593     <tr>
594     <td>name</td>
595     <td>username</td>
596 pcg 1.17 <td> </td>
597     <td>
598    
599      
600     </td>
601 pcg 1.15 <td>
602 pcg 1.17 <b></b>
603      
604     </td>
605 pcg 1.15 </tr>
606     </table>
607    
608 pcg 1.17 <h4>
609     <a name="S0007"></a>SEND
610     MESSAGE update_userinfo</h4>
611     NUMERIC TYPE (hex): 0007<p>
612     <p>Update user info. Message structure is very similar
613     to <a href="#R0008">userinfo(0008)</a>.</p>
614     </p>
615     <table border="1" width="100%">
616 pcg 1.15 <tr>
617 pcg 1.17 <th width="10%">NAME</th>
618     <th width="10%">TYPE</th>
619     <th width="15%">DEFAULT</th>
620     <th>DESCRIPTION</th>
621     <th width="15%">DEC-GUARD</th>
622 pcg 1.15 </tr>
623     <tr>
624     <td>setpass</td>
625     <td>flag</td>
626 pcg 1.17 <td> </td>
627 pcg 1.15 <td>
628     Should the password be updated?
629 pcg 1.17
630      
631     </td>
632     <td>
633     <b></b>
634      
635     </td>
636 pcg 1.15 </tr>
637     <tr>
638     <td>password</td>
639     <td>password</td>
640 pcg 1.17 <td>0 </td>
641 pcg 1.15 <td>
642 pcg 1.17
643      
644     </td>
645     <td>
646     <b></b>
647      
648     </td>
649 pcg 1.15 </tr>
650     <tr>
651     <td>realname</td>
652     <td>realname</td>
653 pcg 1.17 <td> </td>
654     <td>
655    
656      
657     </td>
658 pcg 1.15 <td>
659 pcg 1.17 <b></b>
660      
661     </td>
662 pcg 1.15 </tr>
663     <tr>
664     <td>email</td>
665     <td>email</td>
666 pcg 1.17 <td> </td>
667 pcg 1.15 <td>
668 pcg 1.17
669      
670     </td>
671     <td>
672     <b></b>
673      
674     </td>
675 pcg 1.15 </tr>
676     <tr>
677     <td>info</td>
678     <td>userinfo</td>
679 pcg 1.17 <td> </td>
680     <td>
681    
682      
683     </td>
684 pcg 1.15 <td>
685 pcg 1.17 <b></b>
686      
687     </td>
688 pcg 1.15 </tr>
689     <tr>
690     <td>homepage</td>
691     <td>url</td>
692 pcg 1.17 <td> </td>
693 pcg 1.15 <td>
694 pcg 1.17
695      
696     </td>
697     <td>
698     <b></b>
699      
700     </td>
701 pcg 1.15 </tr>
702     <tr>
703     <td>_unused</td>
704     <td>U64</td>
705 pcg 1.17 <td>0 </td>
706     <td>
707    
708      
709     </td>
710 pcg 1.15 <td>
711 pcg 1.17 <b></b>
712      
713     </td>
714 pcg 1.15 </tr>
715     <tr>
716     <td>_unused</td>
717     <td>U64</td>
718 pcg 1.17 <td>0 </td>
719 pcg 1.15 <td>
720 pcg 1.17
721      
722     </td>
723     <td>
724     <b></b>
725      
726     </td>
727 pcg 1.15 </tr>
728     </table>
729    
730 pcg 1.17 <h4>
731     <a name="S0014"></a>SEND
732     MESSAGE req_stats</h4>
733     NUMERIC TYPE (hex): 0014<p>
734     <p>Request server statistics. Replied with <a href="#R0015">stats(0015)</a>
735     </p>
736 pcg 1.18 </p>
737     <table border="1" width="100%">
738     <tr>
739     <th width="10%">NAME</th>
740     <th width="10%">TYPE</th>
741     <th width="15%">DEFAULT</th>
742     <th>DESCRIPTION</th>
743     <th width="15%">DEC-GUARD</th>
744     </tr>
745     </table>
746    
747     <h4>
748 pcg 1.29 <a name="S0016"></a>SEND
749     MESSAGE idle_reset</h4>
750     NUMERIC TYPE (hex): 0016<p>
751     <p>Send in response to <a href="#R0016">idle_warn(0016)</a> to keep the server from disconnecting.</p>
752     </p>
753     <table border="1" width="100%">
754     <tr>
755     <th width="10%">NAME</th>
756     <th width="10%">TYPE</th>
757     <th width="15%">DEFAULT</th>
758     <th>DESCRIPTION</th>
759     <th width="15%">DEC-GUARD</th>
760     </tr>
761     </table>
762    
763     <h4>
764 pcg 1.20 <a name="S001d"></a>SEND
765 pcg 1.18 MESSAGE ping</h4>
766     NUMERIC TYPE (hex): 001d<p>
767     <p>Wild guess, I send it in <a href="#R0016">idle_warn(0016)</a>.</p>
768 pcg 1.17 </p>
769     <table border="1" width="100%">
770 pcg 1.1 <tr>
771 pcg 1.17 <th width="10%">NAME</th>
772     <th width="10%">TYPE</th>
773     <th width="15%">DEFAULT</th>
774     <th>DESCRIPTION</th>
775     <th width="15%">DEC-GUARD</th>
776 pcg 1.1 </tr>
777     </table>
778    
779 pcg 1.17 <h4>
780     <a name="S001e"></a>SEND
781     MESSAGE req_usergraph</h4>
782     NUMERIC TYPE (hex): 001e<p>
783     <p>Request user graph data, replied with <a href="#R001e">usergraph(001e)</a>.</p>
784     </p>
785     <table border="1" width="100%">
786 pcg 1.15 <tr>
787 pcg 1.17 <th width="10%">NAME</th>
788     <th width="10%">TYPE</th>
789     <th width="15%">DEFAULT</th>
790     <th>DESCRIPTION</th>
791     <th width="15%">DEC-GUARD</th>
792 pcg 1.15 </tr>
793     <tr>
794     <td>name</td>
795     <td>username</td>
796 pcg 1.17 <td> </td>
797     <td>
798    
799      
800     </td>
801 pcg 1.15 <td>
802 pcg 1.17 <b></b>
803      
804     </td>
805 pcg 1.15 </tr>
806     </table>
807    
808 pcg 1.17 <h4>
809     <a name="S001f"></a>SEND
810     MESSAGE fetch_memos</h4>
811     NUMERIC TYPE (hex): 001f<p>
812     <p>Unclear. Fetch all outstanding memos? Replied with <a href="#R001f">memo(001f)</a>
813     </p>
814     </p>
815     <table border="1" width="100%">
816 pcg 1.15 <tr>
817 pcg 1.17 <th width="10%">NAME</th>
818     <th width="10%">TYPE</th>
819     <th width="15%">DEFAULT</th>
820     <th>DESCRIPTION</th>
821     <th width="15%">DEC-GUARD</th>
822 pcg 1.15 </tr>
823     </table>
824    
825 pcg 1.17 <h4>
826     <a name="S0021"></a>SEND
827     MESSAGE req_pic</h4>
828     NUMERIC TYPE (hex): 0021<p>
829     <p>Request a user picture from the server. Results in a <a href="#R0021">userpic(0021)</a>
830     or a timeout.</p>
831     </p>
832     <table border="1" width="100%">
833 pcg 1.1 <tr>
834 pcg 1.17 <th width="10%">NAME</th>
835     <th width="10%">TYPE</th>
836     <th width="15%">DEFAULT</th>
837     <th>DESCRIPTION</th>
838     <th width="15%">DEC-GUARD</th>
839 pcg 1.1 </tr>
840     <tr>
841     <td>name</td>
842 pcg 1.3 <td>username</td>
843 pcg 1.17 <td> </td>
844     <td>
845    
846      
847     </td>
848 pcg 1.3 <td>
849 pcg 1.17 <b></b>
850      
851     </td>
852 pcg 1.1 </tr>
853     </table>
854    
855 pcg 1.17 <h4>
856     <a name="S0021"></a>SEND
857     MESSAGE upload_pic</h4>
858     NUMERIC TYPE (hex): 0021<p>
859 pcg 1.1 Same code as pic_req, but with an additional data section that
860 pcg 1.4 must contain a JPEG image that is &lt;=7KB. It must have 141×200 pixels.
861 pcg 1.17 </p>
862     <table border="1" width="100%">
863     <tr>
864     <th width="10%">NAME</th>
865     <th width="10%">TYPE</th>
866     <th width="15%">DEFAULT</th>
867     <th>DESCRIPTION</th>
868     <th width="15%">DEC-GUARD</th>
869 pcg 1.1 </tr>
870     <tr>
871     <td>name</td>
872 pcg 1.3 <td>username</td>
873 pcg 1.17 <td> </td>
874     <td>
875    
876      
877     </td>
878 pcg 1.3 <td>
879 pcg 1.17 <b></b>
880      
881     </td>
882 pcg 1.1 </tr>
883     <tr>
884     <td>data</td>
885     <td>DATA</td>
886 pcg 1.17 <td> </td>
887     <td>
888    
889      
890     </td>
891 pcg 1.3 <td>
892 pcg 1.17 <b></b>
893      
894     </td>
895 pcg 1.1 </tr>
896     </table>
897    
898 pcg 1.17 <h4>
899 pcg 1.29 <a name="S0023"></a>SEND
900     MESSAGE send_memo</h4>
901     NUMERIC TYPE (hex): 0023<p>
902     </p>
903     <table border="1" width="100%">
904     <tr>
905     <th width="10%">NAME</th>
906     <th width="10%">TYPE</th>
907     <th width="15%">DEFAULT</th>
908     <th>DESCRIPTION</th>
909     <th width="15%">DEC-GUARD</th>
910     </tr>
911     <tr>
912     <td>name</td>
913     <td>username</td>
914     <td> </td>
915     <td>
916    
917      
918     </td>
919     <td>
920     <b></b>
921      
922     </td>
923     </tr>
924     <tr>
925     <td>msg</td>
926     <td>STRING</td>
927     <td> </td>
928     <td>
929    
930      
931     </td>
932     <td>
933     <b></b>
934      
935     </td>
936     </tr>
937     </table>
938    
939     <h4>
940 pcg 1.17 <a name="S0100"></a>SEND
941     MESSAGE gnotice</h4>
942     NUMERIC TYPE (hex): 0100<p>
943     <p>Send a global message. Maybe. Never tried, for obvious reasons :/. Results
944     in a <a href="#R0100">gnotice(0100)</a> sent to all users.</p>
945     </p>
946     <table border="1" width="100%">
947 pcg 1.1 <tr>
948 pcg 1.17 <th width="10%">NAME</th>
949     <th width="10%">TYPE</th>
950     <th width="15%">DEFAULT</th>
951     <th>DESCRIPTION</th>
952     <th width="15%">DEC-GUARD</th>
953 pcg 1.1 </tr>
954     <tr>
955     <td>notice</td>
956     <td>STRING</td>
957 pcg 1.17 <td> </td>
958     <td>
959    
960      
961     </td>
962 pcg 1.3 <td>
963 pcg 1.17 <b></b>
964      
965     </td>
966 pcg 1.1 </tr>
967     </table>
968    
969 pcg 1.17 <h4>
970     <a name="S0318"></a>SEND
971     MESSAGE list_rooms</h4>
972     NUMERIC TYPE (hex): 0318<p>
973     <p>List the rooms in a specific group/category. Results in a <a href="#R0318">upd_rooms(0318)</a> message.</p>
974     </p>
975     <table border="1" width="100%">
976 pcg 1.1 <tr>
977 pcg 1.17 <th width="10%">NAME</th>
978     <th width="10%">TYPE</th>
979     <th width="15%">DEFAULT</th>
980     <th>DESCRIPTION</th>
981     <th width="15%">DEC-GUARD</th>
982 pcg 1.1 </tr>
983     <tr>
984 pcg 1.17 <td>group</td>
985 pcg 1.3 <td>U8</td>
986 pcg 1.17 <td> </td>
987     <td>
988    
989      
990     </td>
991 pcg 1.3 <td>
992 pcg 1.17 <b></b>
993      
994     </td>
995 pcg 1.1 </tr>
996     </table>
997    
998 pcg 1.17 <h4>
999     <a name="S031a"></a>SEND
1000     MESSAGE new_room</h4>
1001     NUMERIC TYPE (hex): 031a<p>
1002     Create a new room. Not verified.
1003     </p>
1004     <table border="1" width="100%">
1005 pcg 1.1 <tr>
1006 pcg 1.17 <th width="10%">NAME</th>
1007     <th width="10%">TYPE</th>
1008     <th width="15%">DEFAULT</th>
1009     <th>DESCRIPTION</th>
1010     <th width="15%">DEC-GUARD</th>
1011 pcg 1.1 </tr>
1012     <tr>
1013     <td>name</td>
1014 pcg 1.3 <td>username</td>
1015 pcg 1.17 <td> </td>
1016 pcg 1.3 <td>
1017 pcg 1.17
1018      
1019     </td>
1020     <td>
1021     <b></b>
1022      
1023     </td>
1024 pcg 1.1 </tr>
1025     <tr>
1026     <td>i1</td>
1027 pcg 1.3 <td>U32</td>
1028 pcg 1.17 <td>0 </td>
1029     <td>
1030    
1031      
1032     </td>
1033 pcg 1.3 <td>
1034 pcg 1.17 <b></b>
1035      
1036     </td>
1037 pcg 1.1 </tr>
1038     <tr>
1039     <td>b1</td>
1040 pcg 1.3 <td>U8</td>
1041 pcg 1.17 <td>0 </td>
1042 pcg 1.3 <td>
1043 pcg 1.17
1044      
1045     </td>
1046     <td>
1047     <b></b>
1048      
1049     </td>
1050 pcg 1.1 </tr>
1051     <tr>
1052     <td>b2</td>
1053 pcg 1.3 <td>U8</td>
1054 pcg 1.17 <td>255 </td>
1055     <td>
1056    
1057      
1058     </td>
1059 pcg 1.3 <td>
1060 pcg 1.17 <b></b>
1061      
1062     </td>
1063 pcg 1.1 </tr>
1064     <tr>
1065     <td>b3</td>
1066 pcg 1.3 <td>U8</td>
1067 pcg 1.17 <td>255 </td>
1068 pcg 1.3 <td>
1069 pcg 1.17
1070      
1071     </td>
1072     <td>
1073     <b></b>
1074      
1075     </td>
1076 pcg 1.1 </tr>
1077     <tr>
1078     <td>group</td>
1079 pcg 1.3 <td>U8</td>
1080 pcg 1.17 <td>1 </td>
1081     <td>
1082    
1083      
1084     </td>
1085 pcg 1.3 <td>
1086 pcg 1.17 <b></b>
1087      
1088     </td>
1089 pcg 1.1 </tr>
1090     <tr>
1091     <td>name</td>
1092     <td>STRING</td>
1093 pcg 1.17 <td> </td>
1094 pcg 1.3 <td>
1095 pcg 1.17
1096      
1097     </td>
1098     <td>
1099     <b></b>
1100      
1101     </td>
1102 pcg 1.1 </tr>
1103     <tr>
1104     <td>description</td>
1105     <td>STRING</td>
1106 pcg 1.17 <td> </td>
1107     <td>
1108    
1109      
1110     </td>
1111 pcg 1.3 <td>
1112 pcg 1.17 <b></b>
1113      
1114     </td>
1115 pcg 1.1 </tr>
1116     <tr>
1117     <td>flags</td>
1118 pcg 1.3 <td>U8</td>
1119 pcg 1.17 <td> </td>
1120 pcg 1.3 <td>
1121 pcg 1.1 0x10 .. private room etc.. see code
1122 pcg 1.17
1123      
1124     </td>
1125     <td>
1126     <b></b>
1127      
1128     </td>
1129 pcg 1.1 </tr>
1130     </table>
1131    
1132 pcg 1.17 <h4>
1133     <a name="S0413"></a>SEND
1134     MESSAGE req_game_record</h4>
1135     NUMERIC TYPE (hex): 0413<p>
1136     <p>Requests part of the users game record to be sent. Results in a <a href="#R0414">game_record(0414)</a> or maybe a timeout.</p>
1137     </p>
1138     <table border="1" width="100%">
1139 pcg 1.14 <tr>
1140 pcg 1.17 <th width="10%">NAME</th>
1141     <th width="10%">TYPE</th>
1142     <th width="15%">DEFAULT</th>
1143     <th>DESCRIPTION</th>
1144     <th width="15%">DEC-GUARD</th>
1145 pcg 1.14 </tr>
1146     <tr>
1147     <td>name</td>
1148     <td>username</td>
1149 pcg 1.17 <td> </td>
1150 pcg 1.14 <td>
1151 pcg 1.17
1152      
1153     </td>
1154     <td>
1155     <b></b>
1156      
1157     </td>
1158 pcg 1.14 </tr>
1159     <tr>
1160     <td>timestamp</td>
1161     <td>timestamp</td>
1162 pcg 1.17 <td> </td>
1163 pcg 1.14 <td>
1164     If zero, start at the newest games, else only send games
1165     before the given timestap.
1166 pcg 1.17
1167      
1168     </td>
1169     <td>
1170     <b></b>
1171      
1172     </td>
1173 pcg 1.14 </tr>
1174     </table>
1175    
1176 pcg 1.17 <h4>
1177     <a name="S4300"></a>SEND
1178     MESSAGE join_room</h4>
1179     NUMERIC TYPE (hex): 4300<p>
1180     <p>Joins the given room. <a href="#R4300">join_room(4300)</a> messages for yourself
1181     and all users in that room, as well as the initial gamelist, are
1182     send if the room exists. If not, timeout...</p>
1183     </p>
1184     <table border="1" width="100%">
1185 pcg 1.1 <tr>
1186 pcg 1.17 <th width="10%">NAME</th>
1187     <th width="10%">TYPE</th>
1188     <th width="15%">DEFAULT</th>
1189     <th>DESCRIPTION</th>
1190     <th width="15%">DEC-GUARD</th>
1191 pcg 1.1 </tr>
1192     <tr>
1193     <td>channel</td>
1194 pcg 1.3 <td>U16</td>
1195 pcg 1.17 <td> </td>
1196 pcg 1.3 <td>
1197 pcg 1.17
1198      
1199     </td>
1200     <td>
1201     <b></b>
1202      
1203     </td>
1204 pcg 1.1 </tr>
1205     <tr>
1206     <td>user</td>
1207     <td>user</td>
1208 pcg 1.17 <td> </td>
1209     <td>
1210    
1211      
1212     </td>
1213 pcg 1.3 <td>
1214 pcg 1.17 <b></b>
1215      
1216     </td>
1217 pcg 1.1 </tr>
1218     </table>
1219    
1220 pcg 1.17 <h4>
1221     <a name="S4301"></a>SEND
1222     MESSAGE msg_room</h4>
1223     NUMERIC TYPE (hex): 4301<p>
1224     Send a message to the room.
1225     </p>
1226     <table border="1" width="100%">
1227 pcg 1.1 <tr>
1228 pcg 1.17 <th width="10%">NAME</th>
1229     <th width="10%">TYPE</th>
1230     <th width="15%">DEFAULT</th>
1231     <th>DESCRIPTION</th>
1232     <th width="15%">DEC-GUARD</th>
1233 pcg 1.1 </tr>
1234     <tr>
1235     <td>channel</td>
1236 pcg 1.3 <td>U16</td>
1237 pcg 1.17 <td> </td>
1238     <td>
1239    
1240      
1241     </td>
1242 pcg 1.3 <td>
1243 pcg 1.17 <b></b>
1244      
1245     </td>
1246 pcg 1.1 </tr>
1247     <tr>
1248     <td>name</td>
1249 pcg 1.3 <td>username</td>
1250 pcg 1.17 <td> </td>
1251 pcg 1.3 <td>
1252 pcg 1.9 Must be the login-name of the user.
1253 pcg 1.17
1254      
1255     </td>
1256     <td>
1257     <b></b>
1258      
1259     </td>
1260 pcg 1.1 </tr>
1261     <tr>
1262     <td>message</td>
1263     <td>STRING</td>
1264 pcg 1.17 <td> </td>
1265     <td>
1266    
1267      
1268     </td>
1269 pcg 1.3 <td>
1270 pcg 1.17 <b></b>
1271      
1272     </td>
1273 pcg 1.1 </tr>
1274     </table>
1275    
1276 pcg 1.17 <h4>
1277     <a name="S4302"></a>SEND
1278     MESSAGE part_room</h4>
1279     NUMERIC TYPE (hex): 4302<p>
1280     Remove yourself (or maybe others as admin) from a room.
1281     </p>
1282     <table border="1" width="100%">
1283 pcg 1.1 <tr>
1284 pcg 1.17 <th width="10%">NAME</th>
1285     <th width="10%">TYPE</th>
1286     <th width="15%">DEFAULT</th>
1287     <th>DESCRIPTION</th>
1288     <th width="15%">DEC-GUARD</th>
1289 pcg 1.1 </tr>
1290     <tr>
1291     <td>channel</td>
1292 pcg 1.3 <td>U16</td>
1293 pcg 1.17 <td> </td>
1294 pcg 1.3 <td>
1295 pcg 1.17
1296      
1297     </td>
1298     <td>
1299     <b></b>
1300      
1301     </td>
1302 pcg 1.1 </tr>
1303     <tr>
1304     <td>name</td>
1305 pcg 1.3 <td>username</td>
1306 pcg 1.17 <td> </td>
1307     <td>
1308    
1309      
1310     </td>
1311 pcg 1.3 <td>
1312 pcg 1.17 <b></b>
1313      
1314     </td>
1315 pcg 1.1 </tr>
1316     </table>
1317    
1318 pcg 1.17 <h4>
1319     <a name="S4305"></a>SEND
1320     MESSAGE new_game</h4>
1321     NUMERIC TYPE (hex): 4305<p>
1322     Unclear. Start a new game.
1323     </p>
1324     <table border="1" width="100%">
1325 pcg 1.1 <tr>
1326 pcg 1.17 <th width="10%">NAME</th>
1327     <th width="10%">TYPE</th>
1328     <th width="15%">DEFAULT</th>
1329     <th>DESCRIPTION</th>
1330     <th width="15%">DEC-GUARD</th>
1331 pcg 1.1 </tr>
1332     <tr>
1333     <td>channel</td>
1334 pcg 1.3 <td>U16</td>
1335 pcg 1.17 <td> </td>
1336     <td>
1337    
1338      
1339     </td>
1340 pcg 1.3 <td>
1341 pcg 1.17 <b></b>
1342      
1343     </td>
1344 pcg 1.1 </tr>
1345     <tr>
1346     <td>id</td>
1347 pcg 1.3 <td>U16</td>
1348 pcg 1.17 <td> </td>
1349     <td>
1350    
1351      
1352     </td>
1353 pcg 1.3 <td>
1354 pcg 1.17 <b></b>
1355      
1356     </td>
1357 pcg 1.1 </tr>
1358     <tr>
1359     <td>gametype</td>
1360 pcg 1.3 <td>U32</td>
1361 pcg 1.17 <td> </td>
1362     <td>
1363    
1364      
1365     </td>
1366 pcg 1.3 <td>
1367 pcg 1.17 <b></b>
1368      
1369     </td>
1370 pcg 1.1 </tr>
1371     <tr>
1372     <td>rules</td>
1373     <td>rules</td>
1374 pcg 1.17 <td> </td>
1375     <td>
1376    
1377      
1378     </td>
1379 pcg 1.3 <td>
1380 pcg 1.17 <b></b>
1381      
1382     </td>
1383 pcg 1.1 </tr>
1384     <tr>
1385     <td>notes</td>
1386     <td>STRING</td>
1387 pcg 1.17 <td> </td>
1388     <td>
1389    
1390      
1391     </td>
1392 pcg 1.3 <td>
1393 pcg 1.17 <b></b>
1394      
1395     </td>
1396 pcg 1.1 </tr>
1397     </table>
1398    
1399 pcg 1.17 <h4>
1400     <a name="S430b"></a>SEND
1401     MESSAGE req_games</h4>
1402     NUMERIC TYPE (hex): 430b<p>
1403 pcg 1.9 Request to update room game list (send this once per minute to get
1404     updated). Results in upd_games messages.
1405 pcg 1.17 </p>
1406     <table border="1" width="100%">
1407     <tr>
1408     <th width="10%">NAME</th>
1409     <th width="10%">TYPE</th>
1410     <th width="15%">DEFAULT</th>
1411     <th>DESCRIPTION</th>
1412     <th width="15%">DEC-GUARD</th>
1413 pcg 1.1 </tr>
1414     <tr>
1415     <td>channel</td>
1416 pcg 1.3 <td>U16</td>
1417 pcg 1.17 <td> </td>
1418 pcg 1.3 <td>
1419 pcg 1.17
1420      
1421     </td>
1422     <td>
1423     <b></b>
1424      
1425     </td>
1426 pcg 1.1 </tr>
1427     </table>
1428    
1429 pcg 1.17 <h4>
1430     <a name="S4319"></a>SEND
1431     MESSAGE req_desc</h4>
1432     NUMERIC TYPE (hex): 4319<p>
1433     Request room description.
1434     </p>
1435     <table border="1" width="100%">
1436 pcg 1.1 <tr>
1437 pcg 1.17 <th width="10%">NAME</th>
1438     <th width="10%">TYPE</th>
1439     <th width="15%">DEFAULT</th>
1440     <th>DESCRIPTION</th>
1441     <th width="15%">DEC-GUARD</th>
1442 pcg 1.1 </tr>
1443     <tr>
1444     <td>channel</td>
1445 pcg 1.3 <td>U16</td>
1446 pcg 1.17 <td> </td>
1447     <td>
1448    
1449      
1450     </td>
1451 pcg 1.3 <td>
1452 pcg 1.17 <b></b>
1453      
1454     </td>
1455 pcg 1.1 </tr>
1456     </table>
1457    
1458 pcg 1.17 <h4>
1459     <a name="S4400"></a>SEND
1460     MESSAGE send_chal</h4>
1461     NUMERIC TYPE (hex): 4400<p>
1462     Unclear.
1463     </p>
1464     <table border="1" width="100%">
1465 pcg 1.1 <tr>
1466 pcg 1.17 <th width="10%">NAME</th>
1467     <th width="10%">TYPE</th>
1468     <th width="15%">DEFAULT</th>
1469     <th>DESCRIPTION</th>
1470     <th width="15%">DEC-GUARD</th>
1471 pcg 1.1 </tr>
1472     <tr>
1473     <td>channel</td>
1474 pcg 1.3 <td>U16</td>
1475 pcg 1.17 <td> </td>
1476     <td>
1477    
1478      
1479     </td>
1480 pcg 1.3 <td>
1481 pcg 1.17 <b></b>
1482      
1483     </td>
1484 pcg 1.1 </tr>
1485     <tr>
1486     <td>black</td>
1487 pcg 1.3 <td>username</td>
1488 pcg 1.17 <td> </td>
1489 pcg 1.3 <td>
1490 pcg 1.17
1491      
1492     </td>
1493     <td>
1494     <b></b>
1495      
1496     </td>
1497 pcg 1.1 </tr>
1498     <tr>
1499     <td>white</td>
1500 pcg 1.3 <td>username</td>
1501 pcg 1.17 <td> </td>
1502 pcg 1.3 <td>
1503 pcg 1.1 More following... TREE or challenge.
1504 pcg 1.17
1505      
1506     </td>
1507     <td>
1508     <b></b>
1509      
1510     </td>
1511 pcg 1.1 </tr>
1512     </table>
1513    
1514 pcg 1.17 <h4>
1515     <a name="S4403"></a>SEND
1516     MESSAGE join_game</h4>
1517     NUMERIC TYPE (hex): 4403<p>
1518     Join a game. See join_room.
1519     </p>
1520     <table border="1" width="100%">
1521 pcg 1.1 <tr>
1522 pcg 1.17 <th width="10%">NAME</th>
1523     <th width="10%">TYPE</th>
1524     <th width="15%">DEFAULT</th>
1525     <th>DESCRIPTION</th>
1526     <th width="15%">DEC-GUARD</th>
1527 pcg 1.1 </tr>
1528     <tr>
1529 pcg 1.5 <td>channel</td>
1530     <td>U16</td>
1531 pcg 1.17 <td> </td>
1532     <td>
1533    
1534      
1535     </td>
1536 pcg 1.3 <td>
1537 pcg 1.17 <b></b>
1538      
1539     </td>
1540 pcg 1.1 </tr>
1541     <tr>
1542 pcg 1.5 <td>user</td>
1543     <td>user</td>
1544 pcg 1.17 <td> </td>
1545     <td>
1546    
1547      
1548     </td>
1549 pcg 1.3 <td>
1550 pcg 1.17 <b></b>
1551      
1552     </td>
1553 pcg 1.1 </tr>
1554     </table>
1555    
1556 pcg 1.17 <h4>
1557     <a name="S4404"></a>SEND
1558     MESSAGE part_game</h4>
1559     NUMERIC TYPE (hex): 4404<p>
1560     Leave (or kick as admin?) a certain user from a game.
1561     </p>
1562     <table border="1" width="100%">
1563 pcg 1.1 <tr>
1564 pcg 1.17 <th width="10%">NAME</th>
1565     <th width="10%">TYPE</th>
1566     <th width="15%">DEFAULT</th>
1567     <th>DESCRIPTION</th>
1568     <th width="15%">DEC-GUARD</th>
1569 pcg 1.1 </tr>
1570     <tr>
1571     <td>channel</td>
1572 pcg 1.3 <td>U16</td>
1573 pcg 1.17 <td> </td>
1574     <td>
1575    
1576      
1577     </td>
1578 pcg 1.3 <td>
1579 pcg 1.17 <b></b>
1580      
1581     </td>
1582 pcg 1.1 </tr>
1583     <tr>
1584     <td>name</td>
1585 pcg 1.3 <td>username</td>
1586 pcg 1.17 <td> </td>
1587 pcg 1.3 <td>
1588 pcg 1.17
1589      
1590     </td>
1591     <td>
1592     <b></b>
1593      
1594     </td>
1595 pcg 1.1 </tr>
1596     </table>
1597    
1598 pcg 1.17 <h4>
1599 pcg 1.27 <a name="S4406"></a>SEND
1600     MESSAGE upd_tree</h4>
1601     NUMERIC TYPE (hex): 4406<p>
1602     Upload a partial game tree to the server. This is used to send moves
1603     and even in-game comments to the server. For the comments, the
1604     server prepends the username and rank.
1605    
1606 pcg 1.17 </p>
1607     <table border="1" width="100%">
1608     <tr>
1609     <th width="10%">NAME</th>
1610     <th width="10%">TYPE</th>
1611     <th width="15%">DEFAULT</th>
1612     <th>DESCRIPTION</th>
1613     <th width="15%">DEC-GUARD</th>
1614 pcg 1.1 </tr>
1615     <tr>
1616     <td>channel</td>
1617 pcg 1.3 <td>U16</td>
1618 pcg 1.17 <td> </td>
1619     <td>
1620    
1621      
1622     </td>
1623 pcg 1.3 <td>
1624 pcg 1.17 <b></b>
1625      
1626     </td>
1627 pcg 1.1 </tr>
1628     <tr>
1629     <td>tree</td>
1630     <td>TREE</td>
1631 pcg 1.17 <td> </td>
1632     <td>
1633    
1634      
1635     </td>
1636 pcg 1.3 <td>
1637 pcg 1.17 <b></b>
1638      
1639     </td>
1640 pcg 1.1 </tr>
1641     </table>
1642    
1643 pcg 1.17 <h4>
1644     <a name="S4408"></a>SEND
1645     MESSAGE get_tree</h4>
1646     NUMERIC TYPE (hex): 4408<p>
1647 pcg 1.9 Request the game tree starting at a given node. This is used
1648     when the server only sends a partial tree (with end code "more").
1649 pcg 1.17 </p>
1650     <table border="1" width="100%">
1651     <tr>
1652     <th width="10%">NAME</th>
1653     <th width="10%">TYPE</th>
1654     <th width="15%">DEFAULT</th>
1655     <th>DESCRIPTION</th>
1656     <th width="15%">DEC-GUARD</th>
1657 pcg 1.1 </tr>
1658     <tr>
1659     <td>channel</td>
1660 pcg 1.3 <td>U16</td>
1661 pcg 1.17 <td> </td>
1662 pcg 1.3 <td>
1663 pcg 1.17
1664      
1665     </td>
1666     <td>
1667     <b></b>
1668      
1669     </td>
1670 pcg 1.1 </tr>
1671     <tr>
1672     <td>node</td>
1673 pcg 1.3 <td>U32</td>
1674 pcg 1.17 <td> </td>
1675     <td>
1676    
1677      
1678     </td>
1679 pcg 1.3 <td>
1680 pcg 1.17 <b></b>
1681      
1682     </td>
1683 pcg 1.1 </tr>
1684     </table>
1685    
1686 pcg 1.17 <h4>
1687     <a name="S440c"></a>SEND
1688     MESSAGE claim_win</h4>
1689     NUMERIC TYPE (hex): 440c<p>
1690     Unclear.
1691     </p>
1692     <table border="1" width="100%">
1693 pcg 1.1 <tr>
1694 pcg 1.17 <th width="10%">NAME</th>
1695     <th width="10%">TYPE</th>
1696     <th width="15%">DEFAULT</th>
1697     <th>DESCRIPTION</th>
1698     <th width="15%">DEC-GUARD</th>
1699 pcg 1.1 </tr>
1700     <tr>
1701     <td>channel</td>
1702 pcg 1.3 <td>U16</td>
1703 pcg 1.17 <td> </td>
1704     <td>
1705    
1706      
1707     </td>
1708 pcg 1.3 <td>
1709 pcg 1.17 <b></b>
1710      
1711     </td>
1712 pcg 1.1 </tr>
1713     <tr>
1714     <td>_byte</td>
1715 pcg 1.3 <td>U8 </td>
1716 pcg 1.17 <td> </td>
1717 pcg 1.3 <td>
1718 pcg 1.1 Player colour maybe? Unclear.
1719 pcg 1.17
1720      
1721     </td>
1722     <td>
1723     <b></b>
1724      
1725     </td>
1726 pcg 1.1 </tr>
1727     </table>
1728    
1729 pcg 1.17 <h4>
1730     <a name="S440d"></a>SEND
1731     MESSAGE add_time</h4>
1732     NUMERIC TYPE (hex): 440d<p>
1733 pcg 1.9 Not checked.
1734    
1735 pcg 1.17 </p>
1736     <table border="1" width="100%">
1737     <tr>
1738     <th width="10%">NAME</th>
1739     <th width="10%">TYPE</th>
1740     <th width="15%">DEFAULT</th>
1741     <th>DESCRIPTION</th>
1742     <th width="15%">DEC-GUARD</th>
1743 pcg 1.1 </tr>
1744     <tr>
1745     <td>channel</td>
1746 pcg 1.3 <td>U16</td>
1747 pcg 1.17 <td> </td>
1748     <td>
1749    
1750      
1751     </td>
1752 pcg 1.3 <td>
1753 pcg 1.17 <b></b>
1754      
1755     </td>
1756 pcg 1.1 </tr>
1757     <tr>
1758     <td>time</td>
1759 pcg 1.3 <td>U32</td>
1760 pcg 1.17 <td> </td>
1761 pcg 1.3 <td>
1762 pcg 1.17
1763      
1764     </td>
1765     <td>
1766     <b></b>
1767      
1768     </td>
1769 pcg 1.1 </tr>
1770     <tr>
1771     <td>player</td>
1772 pcg 1.3 <td>U8</td>
1773 pcg 1.17 <td> </td>
1774     <td>
1775    
1776      
1777     </td>
1778 pcg 1.3 <td>
1779 pcg 1.17 <b></b>
1780      
1781     </td>
1782 pcg 1.1 </tr>
1783     </table>
1784    
1785 pcg 1.17 <h4>
1786     <a name="S440f"></a>SEND
1787     MESSAGE grant_undo</h4>
1788     NUMERIC TYPE (hex): 440f<p>
1789     Can be send after a req_undo message was received to grant the undo.
1790     </p>
1791     <table border="1" width="100%">
1792 pcg 1.1 <tr>
1793 pcg 1.17 <th width="10%">NAME</th>
1794     <th width="10%">TYPE</th>
1795     <th width="15%">DEFAULT</th>
1796     <th>DESCRIPTION</th>
1797     <th width="15%">DEC-GUARD</th>
1798 pcg 1.1 </tr>
1799     <tr>
1800     <td>channel</td>
1801 pcg 1.3 <td>U16</td>
1802 pcg 1.17 <td> </td>
1803     <td>
1804    
1805      
1806     </td>
1807 pcg 1.3 <td>
1808 pcg 1.17 <b></b>
1809      
1810     </td>
1811 pcg 1.1 </tr>
1812     </table>
1813    
1814 pcg 1.17 <h4>
1815     <a name="S4410"></a>SEND
1816     MESSAGE resign_game</h4>
1817     NUMERIC TYPE (hex): 4410<p>
1818     Resign the game.
1819     </p>
1820     <table border="1" width="100%">
1821 pcg 1.1 <tr>
1822 pcg 1.17 <th width="10%">NAME</th>
1823     <th width="10%">TYPE</th>
1824     <th width="15%">DEFAULT</th>
1825     <th>DESCRIPTION</th>
1826     <th width="15%">DEC-GUARD</th>
1827 pcg 1.1 </tr>
1828     <tr>
1829     <td>channel</td>
1830 pcg 1.3 <td>U16</td>
1831 pcg 1.17 <td> </td>
1832 pcg 1.3 <td>
1833 pcg 1.17
1834      
1835     </td>
1836     <td>
1837     <b></b>
1838      
1839     </td>
1840 pcg 1.1 </tr>
1841     <tr>
1842     <td>player</td>
1843 pcg 1.3 <td>U8</td>
1844 pcg 1.17 <td> </td>
1845     <td>
1846    
1847      
1848     </td>
1849 pcg 1.3 <td>
1850 pcg 1.17 <b></b>
1851      
1852     </td>
1853 pcg 1.1 </tr>
1854     </table>
1855    
1856 pcg 1.17 <h4>
1857     <a name="S441a"></a>SEND
1858     MESSAGE set_teacher</h4>
1859     NUMERIC TYPE (hex): 441a<p>
1860     Change the teacher to somebody else (or possibly yourself == take it).
1861     </p>
1862     <table border="1" width="100%">
1863 pcg 1.1 <tr>
1864 pcg 1.17 <th width="10%">NAME</th>
1865     <th width="10%">TYPE</th>
1866     <th width="15%">DEFAULT</th>
1867     <th>DESCRIPTION</th>
1868     <th width="15%">DEC-GUARD</th>
1869 pcg 1.1 </tr>
1870     <tr>
1871     <td>channel</td>
1872 pcg 1.3 <td>U16</td>
1873 pcg 1.17 <td> </td>
1874     <td>
1875    
1876      
1877     </td>
1878 pcg 1.3 <td>
1879 pcg 1.17 <b></b>
1880      
1881     </td>
1882 pcg 1.1 </tr>
1883     <tr>
1884     <td>name</td>
1885 pcg 1.3 <td>username</td>
1886 pcg 1.17 <td> </td>
1887     <td>
1888    
1889      
1890     </td>
1891 pcg 1.3 <td>
1892 pcg 1.17 <b></b>
1893      
1894     </td>
1895 pcg 1.1 </tr>
1896     </table>
1897    
1898 pcg 1.17 <h4>
1899     <a name="S4422"></a>SEND
1900     MESSAGE add_user</h4>
1901     NUMERIC TYPE (hex): 4422<p>
1902 pcg 1.9 Unclear. Maybe allow users to talk? No idea, really.
1903    
1904 pcg 1.17 </p>
1905     <table border="1" width="100%">
1906     <tr>
1907     <th width="10%">NAME</th>
1908     <th width="10%">TYPE</th>
1909     <th width="15%">DEFAULT</th>
1910     <th>DESCRIPTION</th>
1911     <th width="15%">DEC-GUARD</th>
1912 pcg 1.1 </tr>
1913     <tr>
1914     <td>channel</td>
1915 pcg 1.3 <td>U16</td>
1916 pcg 1.17 <td> </td>
1917     <td>
1918    
1919      
1920     </td>
1921 pcg 1.3 <td>
1922 pcg 1.17 <b></b>
1923      
1924     </td>
1925 pcg 1.1 </tr>
1926     <tr>
1927     <td>othername</td>
1928 pcg 1.3 <td>username</td>
1929 pcg 1.17 <td> </td>
1930 pcg 1.3 <td>
1931 pcg 1.17
1932      
1933     </td>
1934     <td>
1935     <b></b>
1936      
1937     </td>
1938 pcg 1.1 </tr>
1939     <tr>
1940     <td>name</td>
1941 pcg 1.3 <td>username</td>
1942 pcg 1.17 <td> </td>
1943     <td>; # gives user access to the game (to what? ;)
1944    
1945      
1946     </td>
1947 pcg 1.3 <td>
1948 pcg 1.17 <b></b>
1949      
1950     </td>
1951 pcg 1.1 </tr>
1952     </table>
1953    
1954 pcg 1.17 <h4>
1955     <a name="S4423"></a>SEND
1956     MESSAGE set_privacy</h4>
1957     NUMERIC TYPE (hex): 4423<p>
1958     Probably sets the "quiet" flag. Not checked.
1959     </p>
1960     <table border="1" width="100%">
1961 pcg 1.1 <tr>
1962 pcg 1.17 <th width="10%">NAME</th>
1963     <th width="10%">TYPE</th>
1964     <th width="15%">DEFAULT</th>
1965     <th>DESCRIPTION</th>
1966     <th width="15%">DEC-GUARD</th>
1967 pcg 1.1 </tr>
1968     <tr>
1969     <td>channel</td>
1970 pcg 1.3 <td>U16</td>
1971 pcg 1.17 <td> </td>
1972     <td>
1973    
1974      
1975     </td>
1976 pcg 1.3 <td>
1977 pcg 1.17 <b></b>
1978      
1979     </td>
1980 pcg 1.1 </tr>
1981     <tr>
1982     <td>private</td>
1983 pcg 1.3 <td>U8</td>
1984 pcg 1.17 <td> </td>
1985 pcg 1.3 <td>
1986 pcg 1.17
1987      
1988     </td>
1989     <td>
1990     <b></b>
1991      
1992     </td>
1993 pcg 1.1 </tr>
1994     </table>
1995    
1996 pcg 1.17 <h4>
1997     <a name="S4429"></a>SEND
1998     MESSAGE reject_chal</h4>
1999     NUMERIC TYPE (hex): 4429<p>
2000 pcg 1.9 Reject a challenge from a given user. Not checked.
2001    
2002 pcg 1.17 </p>
2003     <table border="1" width="100%">
2004     <tr>
2005     <th width="10%">NAME</th>
2006     <th width="10%">TYPE</th>
2007     <th width="15%">DEFAULT</th>
2008     <th>DESCRIPTION</th>
2009     <th width="15%">DEC-GUARD</th>
2010 pcg 1.1 </tr>
2011     <tr>
2012     <td>channel</td>
2013 pcg 1.3 <td>U16</td>
2014 pcg 1.17 <td> </td>
2015     <td>
2016    
2017      
2018     </td>
2019 pcg 1.3 <td>
2020 pcg 1.17 <b></b>
2021      
2022     </td>
2023 pcg 1.1 </tr>
2024     <tr>
2025     <td>name</td>
2026 pcg 1.3 <td>username</td>
2027 pcg 1.17 <td> </td>
2028     <td>
2029    
2030      
2031     </td>
2032 pcg 1.3 <td>
2033 pcg 1.17 <b></b>
2034      
2035     </td>
2036 pcg 1.1 </tr>
2037     </table>
2038    
2039 pcg 1.17 <h4>
2040     <a name="S4433"></a>SEND
2041     MESSAGE req_result</h4>
2042     NUMERIC TYPE (hex): 4433<p>
2043 pcg 1.9 I forgot.
2044    
2045 pcg 1.17 </p>
2046     <table border="1" width="100%">
2047     <tr>
2048     <th width="10%">NAME</th>
2049     <th width="10%">TYPE</th>
2050     <th width="15%">DEFAULT</th>
2051     <th>DESCRIPTION</th>
2052     <th width="15%">DEC-GUARD</th>
2053 pcg 1.1 </tr>
2054     <tr>
2055     <td>channel</td>
2056 pcg 1.3 <td>U16</td>
2057 pcg 1.17 <td> </td>
2058 pcg 1.3 <td>
2059 pcg 1.17
2060      
2061     </td>
2062     <td>
2063     <b></b>
2064      
2065     </td>
2066 pcg 1.1 </tr>
2067     </table>
2068    
2069 pcg 1.3 <h2>Structs mainly used in receive messages</h2>
2070 pcg 1.1
2071 pcg 1.3 <h4>STRUCTURE challenge_defaults</h4>
2072 pcg 1.17 <p>
2073     Send soon after log-in to set the defaults for game challenges.
2074     </p>
2075     <table border="1" width="100%">
2076 pcg 1.1 <tr>
2077 pcg 1.17 <th width="10%">NAME</th>
2078     <th width="10%">TYPE</th>
2079     <th width="15%">DEFAULT</th>
2080     <th>DESCRIPTION</th>
2081     <th width="15%">DEC-GUARD</th>
2082 pcg 1.1 </tr>
2083     <tr>
2084     <td>gametype</td>
2085 pcg 1.3 <td>U32</td>
2086 pcg 1.17 <td> </td>
2087     <td>
2088    
2089      
2090     </td>
2091 pcg 1.3 <td>
2092 pcg 1.17 <b></b>
2093      
2094     </td>
2095 pcg 1.1 </tr>
2096     <tr>
2097     <td>size</td>
2098 pcg 1.3 <td>U32</td>
2099 pcg 1.17 <td> </td>
2100     <td>
2101    
2102      
2103     </td>
2104 pcg 1.3 <td>
2105 pcg 1.17 <b></b>
2106      
2107     </td>
2108 pcg 1.1 </tr>
2109     <tr>
2110     <td>timesys</td>
2111 pcg 1.3 <td>U32</td>
2112 pcg 1.17 <td> </td>
2113     <td>
2114    
2115      
2116     </td>
2117 pcg 1.3 <td>
2118 pcg 1.17 <b></b>
2119      
2120     </td>
2121 pcg 1.1 </tr>
2122     <tr>
2123     <td>time</td>
2124 pcg 1.3 <td>U32</td>
2125 pcg 1.17 <td> </td>
2126     <td>
2127    
2128      
2129     </td>
2130 pcg 1.3 <td>
2131 pcg 1.17 <b></b>
2132      
2133     </td>
2134 pcg 1.1 </tr>
2135     <tr>
2136     <td>byo_time</td>
2137 pcg 1.3 <td>U32</td>
2138 pcg 1.17 <td> </td>
2139     <td>
2140    
2141      
2142     </td>
2143 pcg 1.3 <td>
2144 pcg 1.17 <b></b>
2145      
2146     </td>
2147 pcg 1.1 </tr>
2148     <tr>
2149     <td>byo_periods</td>
2150 pcg 1.3 <td>U32</td>
2151 pcg 1.17 <td> </td>
2152     <td>
2153    
2154      
2155     </td>
2156 pcg 1.3 <td>
2157 pcg 1.17 <b></b>
2158      
2159     </td>
2160 pcg 1.1 </tr>
2161     <tr>
2162     <td>can_time</td>
2163 pcg 1.3 <td>U32</td>
2164 pcg 1.17 <td> </td>
2165     <td>
2166    
2167      
2168     </td>
2169 pcg 1.3 <td>
2170 pcg 1.17 <b></b>
2171      
2172     </td>
2173 pcg 1.1 </tr>
2174     <tr>
2175     <td>can_stones</td>
2176 pcg 1.3 <td>U32</td>
2177 pcg 1.17 <td> </td>
2178     <td>
2179    
2180      
2181     </td>
2182 pcg 1.3 <td>
2183 pcg 1.17 <b></b>
2184      
2185     </td>
2186 pcg 1.1 </tr>
2187     </table>
2188    
2189 pcg 1.3 <h4>STRUCTURE challenge</h4>
2190     CLASS: KGS::Challenge<br />
2191 pcg 1.17 <p>
2192 pcg 1.9 A challenge.
2193    
2194 pcg 1.17 </p>
2195     <table border="1" width="100%">
2196     <tr>
2197     <th width="10%">NAME</th>
2198     <th width="10%">TYPE</th>
2199     <th width="15%">DEFAULT</th>
2200     <th>DESCRIPTION</th>
2201     <th width="15%">DEC-GUARD</th>
2202 pcg 1.1 </tr>
2203     <tr>
2204     <td>user1</td>
2205     <td>user</td>
2206 pcg 1.17 <td> </td>
2207 pcg 1.3 <td>
2208 pcg 1.17
2209      
2210     </td>
2211     <td>
2212     <b></b>
2213      
2214     </td>
2215 pcg 1.1 </tr>
2216     <tr>
2217     <td>user2</td>
2218     <td>user</td>
2219 pcg 1.17 <td> </td>
2220     <td>
2221    
2222      
2223     </td>
2224 pcg 1.3 <td>
2225 pcg 1.17 <b></b>
2226      
2227     </td>
2228 pcg 1.1 </tr>
2229     <tr>
2230     <td>gametype</td>
2231 pcg 1.3 <td>U32</td>
2232 pcg 1.17 <td> </td>
2233 pcg 1.3 <td>
2234 pcg 1.17
2235      
2236     </td>
2237     <td>
2238     <b></b>
2239      
2240     </td>
2241 pcg 1.1 </tr>
2242     <tr>
2243     <td>rules</td>
2244     <td>rules</td>
2245 pcg 1.17 <td> </td>
2246 pcg 1.3 <td>
2247 pcg 1.1 Maybe the rules" are in TREE format. I forgot.
2248 pcg 1.17
2249      
2250     </td>
2251     <td>
2252     <b></b>
2253      
2254     </td>
2255 pcg 1.1 </tr>
2256     </table>
2257    
2258 pcg 1.3 <h4>STRUCTURE game</h4>
2259     CLASS: KGS::Game<br />
2260 pcg 1.17 <p>
2261 pcg 1.9 Basic information about a game. Used in rooms for the gamelist and
2262     in games to detect when a game is saved, changed type (e.g. R =&gt; D)
2263     etc.
2264    
2265 pcg 1.17 </p>
2266     <table border="1" width="100%">
2267     <tr>
2268     <th width="10%">NAME</th>
2269     <th width="10%">TYPE</th>
2270     <th width="15%">DEFAULT</th>
2271     <th>DESCRIPTION</th>
2272     <th width="15%">DEC-GUARD</th>
2273 pcg 1.1 </tr>
2274     <tr>
2275     <td>channel</td>
2276 pcg 1.3 <td>U16</td>
2277 pcg 1.17 <td> </td>
2278     <td>
2279    
2280      
2281     </td>
2282 pcg 1.3 <td>
2283 pcg 1.17 <b></b>
2284      
2285     </td>
2286 pcg 1.1 </tr>
2287     <tr>
2288 pcg 1.3 <td>type</td>
2289 pcg 1.25 <td>U8</td>
2290 pcg 1.17 <td> </td>
2291     <td>
2292    
2293      
2294     </td>
2295 pcg 1.3 <td>
2296 pcg 1.17 <b></b>
2297      
2298     </td>
2299 pcg 1.1 </tr>
2300     <tr>
2301     <td>user1</td>
2302     <td>user</td>
2303 pcg 1.17 <td> </td>
2304 pcg 1.3 <td>
2305 pcg 1.1 White
2306 pcg 1.17
2307      
2308     </td>
2309     <td>
2310     <b></b>
2311      
2312     </td>
2313 pcg 1.1 </tr>
2314     <tr>
2315     <td>user2</td>
2316     <td>user</td>
2317 pcg 1.17 <td> </td>
2318 pcg 1.3 <td>
2319 pcg 1.1 Black
2320 pcg 1.17
2321      
2322     </td>
2323     <td>
2324     <b></b>
2325      
2326     </td>
2327 pcg 1.1 </tr>
2328     <tr>
2329     <td>user3</td>
2330     <td>user</td>
2331 pcg 1.17 <td> </td>
2332 pcg 1.3 <td>
2333 pcg 1.1 Owner
2334 pcg 1.17
2335      
2336     </td>
2337     <td>
2338     <b></b>
2339      
2340     </td>
2341 pcg 1.1 </tr>
2342     <tr>
2343     <td>size</td>
2344 pcg 1.25 <td>U8</td>
2345 pcg 1.17 <td> </td>
2346     <td>
2347    
2348      
2349     </td>
2350 pcg 1.3 <td>
2351 pcg 1.17 <b></b>
2352      
2353     </td>
2354 pcg 1.1 </tr>
2355     <tr>
2356     <td>handicap</td>
2357 pcg 1.25 <td>I8</td>
2358 pcg 1.17 <td> </td>
2359 pcg 1.3 <td>
2360 pcg 1.1 &lt; 0 not fully setup
2361 pcg 1.17
2362      
2363     </td>
2364     <td>
2365     <b></b>
2366      
2367     </td>
2368 pcg 1.1 </tr>
2369     <tr>
2370     <td>komi</td>
2371 pcg 1.25 <td>komi16</td>
2372 pcg 1.17 <td> </td>
2373     <td>
2374    
2375      
2376     </td>
2377 pcg 1.3 <td>
2378 pcg 1.17 <b></b>
2379      
2380     </td>
2381 pcg 1.1 </tr>
2382     <tr>
2383     <td>moves</td>
2384 pcg 1.13 <td>I16</td>
2385 pcg 1.17 <td> </td>
2386 pcg 1.3 <td>
2387 pcg 1.12 This field reflects either the movenum or the score, sorry, not even guards help, as
2388 pcg 1.13 the flags to determine that are _after_ the field. Arg. Divide by two to get the actual
2389 pcg 1.26 score (NOT score16!) (arg²).
2390 pcg 1.17
2391      
2392     </td>
2393     <td>
2394     <b></b>
2395      
2396     </td>
2397 pcg 1.1 </tr>
2398     <tr>
2399     <td>flags</td>
2400 pcg 1.3 <td>U16</td>
2401 pcg 1.17 <td> </td>
2402     <td>
2403    
2404      
2405     </td>
2406 pcg 1.3 <td>
2407 pcg 1.17 <b></b>
2408      
2409     </td>
2410 pcg 1.1 </tr>
2411     <tr>
2412     <td>observers</td>
2413 pcg 1.3 <td>U32</td>
2414 pcg 1.17 <td> </td>
2415     <td>
2416    
2417      
2418     </td>
2419 pcg 1.3 <td>
2420 pcg 1.17 <b></b>
2421      
2422     </td>
2423 pcg 1.1 </tr>
2424     <tr>
2425     <td>saved</td>
2426 pcg 1.3 <td>flag</td>
2427 pcg 1.17 <td> </td>
2428     <td>
2429    
2430      
2431     </td>
2432 pcg 1.3 <td>
2433 pcg 1.17 <b></b>
2434      
2435     </td>
2436 pcg 1.1 </tr>
2437     <tr>
2438     <td>notes</td>
2439     <td>STRING</td>
2440 pcg 1.17 <td> </td>
2441     <td>
2442    
2443      
2444     </td>
2445 pcg 1.3 <td>
2446 pcg 1.17 <b>handicap</b> &lt; 0
2447      
2448     </td>
2449 pcg 1.1 </tr>
2450     </table>
2451    
2452 pcg 1.3 <h4>STRUCTURE room_obs</h4>
2453 pcg 1.17 <p>
2454 pcg 1.9 Obsolete.
2455    
2456 pcg 1.17 </p>
2457     <table border="1" width="100%">
2458     <tr>
2459     <th width="10%">NAME</th>
2460     <th width="10%">TYPE</th>
2461     <th width="15%">DEFAULT</th>
2462     <th>DESCRIPTION</th>
2463     <th width="15%">DEC-GUARD</th>
2464 pcg 1.1 </tr>
2465     <tr>
2466     <td>name</td>
2467 pcg 1.3 <td>roomname</td>
2468 pcg 1.17 <td> </td>
2469 pcg 1.3 <td>
2470 pcg 1.17
2471      
2472     </td>
2473     <td>
2474     <b></b>
2475      
2476     </td>
2477 pcg 1.1 </tr>
2478     <tr>
2479     <td>channel</td>
2480 pcg 1.3 <td>U16</td>
2481 pcg 1.17 <td> </td>
2482     <td>
2483    
2484      
2485     </td>
2486 pcg 1.3 <td>
2487 pcg 1.17 <b></b>
2488      
2489     </td>
2490 pcg 1.1 </tr>
2491     <tr>
2492     <td>flags</td>
2493 pcg 1.3 <td>U32</td>
2494 pcg 1.17 <td> </td>
2495 pcg 1.3 <td>
2496 pcg 1.17
2497      
2498     </td>
2499     <td>
2500     <b></b>
2501      
2502     </td>
2503 pcg 1.1 </tr>
2504     <tr>
2505     <td>users</td>
2506 pcg 1.3 <td>U32</td>
2507 pcg 1.17 <td> </td>
2508     <td>
2509    
2510      
2511     </td>
2512 pcg 1.3 <td>
2513 pcg 1.17 <b></b>
2514      
2515     </td>
2516 pcg 1.1 </tr>
2517     </table>
2518    
2519 pcg 1.3 <h4>STRUCTURE room</h4>
2520     CLASS: KGS::Room<br />
2521 pcg 1.17 <p>
2522     </p>
2523     <table border="1" width="100%">
2524 pcg 1.1 <tr>
2525 pcg 1.17 <th width="10%">NAME</th>
2526     <th width="10%">TYPE</th>
2527     <th width="15%">DEFAULT</th>
2528     <th>DESCRIPTION</th>
2529     <th width="15%">DEC-GUARD</th>
2530 pcg 1.1 </tr>
2531     <tr>
2532     <td>channel</td>
2533 pcg 1.3 <td>U16</td>
2534 pcg 1.17 <td> </td>
2535     <td>
2536    
2537      
2538     </td>
2539 pcg 1.3 <td>
2540 pcg 1.17 <b></b>
2541      
2542     </td>
2543 pcg 1.1 </tr>
2544     <tr>
2545     <td>flags</td>
2546 pcg 1.3 <td>U8</td>
2547 pcg 1.17 <td> </td>
2548     <td>
2549    
2550      
2551     </td>
2552 pcg 1.3 <td>
2553 pcg 1.17 <b></b>
2554      
2555     </td>
2556 pcg 1.1 </tr>
2557     <tr>
2558     <td>group</td>
2559 pcg 1.3 <td>U8</td>
2560 pcg 1.17 <td> </td>
2561     <td>
2562    
2563      
2564     </td>
2565 pcg 1.3 <td>
2566 pcg 1.17 <b></b>
2567      
2568     </td>
2569 pcg 1.1 </tr>
2570     <tr>
2571     <td>users</td>
2572 pcg 1.3 <td>U16</td>
2573 pcg 1.17 <td> </td>
2574     <td>
2575    
2576      
2577     </td>
2578 pcg 1.3 <td>
2579 pcg 1.17 <b></b>
2580      
2581     </td>
2582 pcg 1.1 </tr>
2583     <tr>
2584     <td>games</td>
2585 pcg 1.3 <td>U16</td>
2586 pcg 1.17 <td> </td>
2587     <td>
2588    
2589      
2590     </td>
2591 pcg 1.3 <td>
2592 pcg 1.17 <b></b>
2593      
2594     </td>
2595 pcg 1.1 </tr>
2596     <tr>
2597     <td>name</td>
2598     <td>STRING</td>
2599 pcg 1.17 <td> </td>
2600     <td>
2601    
2602      
2603     </td>
2604 pcg 1.3 <td>
2605 pcg 1.17 <b></b>
2606      
2607     </td>
2608 pcg 1.1 </tr>
2609     </table>
2610    
2611 pcg 1.10 <h4>STRUCTURE scorevalues</h4>
2612 pcg 1.3 CLASS: KGS::Score<br />
2613 pcg 1.17 <p>
2614     </p>
2615     <table border="1" width="100%">
2616     <tr>
2617     <th width="10%">NAME</th>
2618     <th width="10%">TYPE</th>
2619     <th width="15%">DEFAULT</th>
2620     <th>DESCRIPTION</th>
2621     <th width="15%">DEC-GUARD</th>
2622 pcg 1.1 </tr>
2623     <tr>
2624     <td>score</td>
2625 pcg 1.11 <td>score32</td>
2626 pcg 1.17 <td> </td>
2627     <td>
2628    
2629      
2630     </td>
2631 pcg 1.3 <td>
2632 pcg 1.17 <b></b>
2633      
2634     </td>
2635 pcg 1.1 </tr>
2636     <tr>
2637     <td>territory</td>
2638 pcg 1.3 <td>U32</td>
2639 pcg 1.17 <td> </td>
2640     <td>
2641    
2642      
2643     </td>
2644 pcg 1.3 <td>
2645 pcg 1.17 <b></b>
2646      
2647     </td>
2648 pcg 1.1 </tr>
2649     <tr>
2650     <td>captures</td>
2651 pcg 1.3 <td>U32</td>
2652 pcg 1.17 <td> </td>
2653     <td>
2654    
2655      
2656     </td>
2657 pcg 1.3 <td>
2658 pcg 1.17 <b></b>
2659      
2660     </td>
2661 pcg 1.1 </tr>
2662     <tr>
2663     <td>i3</td>
2664 pcg 1.3 <td>U32</td>
2665 pcg 1.17 <td> </td>
2666     <td>
2667    
2668      
2669     </td>
2670 pcg 1.3 <td>
2671 pcg 1.17 <b></b>
2672      
2673     </td>
2674 pcg 1.1 </tr>
2675     <tr>
2676     <td>f2</td>
2677 pcg 1.3 <td>U32</td>
2678 pcg 1.17 <td> </td>
2679     <td>
2680    
2681      
2682     </td>
2683 pcg 1.3 <td>
2684 pcg 1.17 <b></b>
2685      
2686     </td>
2687 pcg 1.1 </tr>
2688     <tr>
2689     <td>komi</td>
2690 pcg 1.19 <td>komi324</td>
2691 pcg 1.17 <td> </td>
2692     <td>
2693    
2694      
2695     </td>
2696 pcg 1.3 <td>
2697 pcg 1.17 <b></b>
2698      
2699     </td>
2700 pcg 1.1 </tr>
2701     <tr>
2702     <td>i4</td>
2703 pcg 1.3 <td>U32</td>
2704 pcg 1.17 <td> </td>
2705 pcg 1.3 <td>
2706     Apparently the i3, f2, i4 are zero.
2707 pcg 1.17
2708      
2709     </td>
2710     <td>
2711     <b></b>
2712      
2713     </td>
2714 pcg 1.1 </tr>
2715     </table>
2716    
2717 pcg 1.14 <h4>STRUCTURE game_record</h4>
2718     CLASS: KGS::GameRecord<br />
2719 pcg 1.17 <p>
2720     <p>A single game record entry, as seen in <a href="#R0008">userinfo(0008)</a>.</p>
2721     </p>
2722     <table border="1" width="100%">
2723 pcg 1.14 <tr>
2724 pcg 1.17 <th width="10%">NAME</th>
2725     <th width="10%">TYPE</th>
2726     <th width="15%">DEFAULT</th>
2727     <th>DESCRIPTION</th>
2728     <th width="15%">DEC-GUARD</th>
2729 pcg 1.14 </tr>
2730     <tr>
2731     <td>timestamp</td>
2732     <td>timestamp</td>
2733 pcg 1.17 <td> </td>
2734 pcg 1.14 <td>
2735     Time this game was played.
2736 pcg 1.17
2737      
2738     </td>
2739     <td>
2740     <b></b>
2741      
2742     </td>
2743 pcg 1.14 </tr>
2744     <tr>
2745     <td>flags</td>
2746     <td>U8</td>
2747 pcg 1.17 <td> </td>
2748 pcg 1.14 <td>
2749     High four bits are handicap, low four bits are gametype (encoded strangely? unclear).
2750 pcg 1.17
2751      
2752     </td>
2753     <td>
2754     <b></b>
2755      
2756     </td>
2757 pcg 1.14 </tr>
2758     <tr>
2759     <td>user1</td>
2760     <td>user</td>
2761 pcg 1.17 <td> </td>
2762 pcg 1.14 <td>
2763     White, flags contain low 8 bits of revision (bits 16-23).
2764 pcg 1.17
2765      
2766     </td>
2767     <td>
2768     <b></b>
2769      
2770     </td>
2771 pcg 1.14 </tr>
2772     <tr>
2773     <td>user2</td>
2774     <td>user</td>
2775 pcg 1.17 <td> </td>
2776 pcg 1.14 <td>
2777     Black, flags contain high 8 bits of revision (bits 16-23).
2778 pcg 1.17
2779      
2780     </td>
2781     <td>
2782     <b></b>
2783      
2784     </td>
2785 pcg 1.14 </tr>
2786     <tr>
2787     <td>user3</td>
2788     <td>user</td>
2789 pcg 1.17 <td> </td>
2790 pcg 1.14 <td>
2791     Owner (or empty)
2792 pcg 1.17
2793      
2794     </td>
2795     <td>
2796     <b></b>
2797      
2798     </td>
2799 pcg 1.14 </tr>
2800     <tr>
2801     <td>komi</td>
2802     <td>komi16</td>
2803 pcg 1.17 <td> </td>
2804     <td>
2805    
2806      
2807     </td>
2808 pcg 1.14 <td>
2809 pcg 1.17 <b></b>
2810      
2811     </td>
2812 pcg 1.14 </tr>
2813     <tr>
2814     <td>score</td>
2815     <td>score16</td>
2816 pcg 1.17 <td> </td>
2817 pcg 1.14 <td>
2818 pcg 1.17
2819      
2820     </td>
2821     <td>
2822     <b></b>
2823      
2824     </td>
2825 pcg 1.14 </tr>
2826     <tr>
2827     <td>status</td>
2828     <td>U8</td>
2829 pcg 1.17 <td> </td>
2830 pcg 1.14 <td>
2831     0x80 inprogress
2832 pcg 1.17
2833      
2834     </td>
2835     <td>
2836     <b></b>
2837      
2838     </td>
2839 pcg 1.14 </tr>
2840     </table>
2841    
2842 pcg 1.1 <h2>Receive messages</h2>
2843    
2844 pcg 1.17 <h4>
2845     <a name="R0001"></a>RECV
2846     MESSAGE login</h4>
2847     NUMERIC TYPE (hex): 0001
2848     (possibly in response to
2849     <a href="#S0000">login(0000)</a>
2850     )
2851     <p>
2852     </p>
2853     <table border="1" width="100%">
2854     <tr>
2855     <th width="10%">NAME</th>
2856     <th width="10%">TYPE</th>
2857     <th width="15%">DEFAULT</th>
2858     <th>DESCRIPTION</th>
2859     <th width="15%">DEC-GUARD</th>
2860 pcg 1.1 </tr>
2861     <tr>
2862     <td>result</td>
2863     <td>CONSTANT</td>
2864 pcg 1.17 <td>"login ok" </td>
2865     <td>
2866    
2867      
2868     </td>
2869 pcg 1.3 <td>
2870 pcg 1.17 <b></b>
2871      
2872     </td>
2873 pcg 1.1 </tr>
2874     <tr>
2875     <td>success</td>
2876     <td>CONSTANT</td>
2877 pcg 1.17 <td>1 </td>
2878 pcg 1.3 <td>
2879 pcg 1.17
2880      
2881     </td>
2882     <td>
2883     <b></b>
2884      
2885     </td>
2886 pcg 1.1 </tr>
2887     </table>
2888    
2889 pcg 1.17 <h4>
2890     <a name="R0002"></a>RECV
2891     MESSAGE login</h4>
2892     NUMERIC TYPE (hex): 0002
2893     (possibly in response to
2894     <a href="#S0000">login(0000)</a>
2895     )
2896     <p>
2897     </p>
2898     <table border="1" width="100%">
2899     <tr>
2900     <th width="10%">NAME</th>
2901     <th width="10%">TYPE</th>
2902     <th width="15%">DEFAULT</th>
2903     <th>DESCRIPTION</th>
2904     <th width="15%">DEC-GUARD</th>
2905 pcg 1.1 </tr>
2906     <tr>
2907     <td>result</td>
2908     <td>CONSTANT</td>
2909 pcg 1.17 <td>"guest login ok" </td>
2910 pcg 1.3 <td>
2911 pcg 1.17
2912      
2913     </td>
2914     <td>
2915     <b></b>
2916      
2917     </td>
2918 pcg 1.1 </tr>
2919     <tr>
2920     <td>success</td>
2921     <td>CONSTANT</td>
2922 pcg 1.17 <td>1 </td>
2923     <td>
2924    
2925      
2926     </td>
2927 pcg 1.3 <td>
2928 pcg 1.17 <b></b>
2929      
2930     </td>
2931 pcg 1.1 </tr>
2932     </table>
2933    
2934 pcg 1.17 <h4>
2935     <a name="R0003"></a>RECV
2936     MESSAGE login</h4>
2937     NUMERIC TYPE (hex): 0003
2938     (possibly in response to
2939     <a href="#S0000">login(0000)</a>
2940     )
2941     <p>
2942     </p>
2943     <table border="1" width="100%">
2944     <tr>
2945     <th width="10%">NAME</th>
2946     <th width="10%">TYPE</th>
2947     <th width="15%">DEFAULT</th>
2948     <th>DESCRIPTION</th>
2949     <th width="15%">DEC-GUARD</th>
2950 pcg 1.1 </tr>
2951     <tr>
2952     <td>result</td>
2953     <td>CONSTANT</td>
2954 pcg 1.17 <td>"login error 3" </td>
2955 pcg 1.3 <td>
2956 pcg 1.1 ** maybe more following? **
2957 pcg 1.17
2958      
2959     </td>
2960     <td>
2961     <b></b>
2962      
2963     </td>
2964 pcg 1.1 </tr>
2965     </table>
2966    
2967 pcg 1.17 <h4>
2968     <a name="R0004"></a>RECV
2969     MESSAGE login</h4>
2970     NUMERIC TYPE (hex): 0004
2971     (possibly in response to
2972     <a href="#S0000">login(0000)</a>
2973     )
2974     <p>
2975     </p>
2976     <table border="1" width="100%">
2977     <tr>
2978     <th width="10%">NAME</th>
2979     <th width="10%">TYPE</th>
2980     <th width="15%">DEFAULT</th>
2981     <th>DESCRIPTION</th>
2982     <th width="15%">DEC-GUARD</th>
2983 pcg 1.1 </tr>
2984     <tr>
2985     <td>result</td>
2986     <td>CONSTANT</td>
2987 pcg 1.17 <td>"wrong password" </td>
2988 pcg 1.3 <td>
2989 pcg 1.1 ** maybe more following? **
2990 pcg 1.17
2991      
2992     </td>
2993     <td>
2994     <b></b>
2995      
2996     </td>
2997 pcg 1.1 </tr>
2998     </table>
2999    
3000 pcg 1.17 <h4>
3001     <a name="R0005"></a>RECV
3002     MESSAGE login</h4>
3003     NUMERIC TYPE (hex): 0005
3004     (possibly in response to
3005     <a href="#S0000">login(0000)</a>
3006     )
3007     <p>
3008     </p>
3009     <table border="1" width="100%">
3010     <tr>
3011     <th width="10%">NAME</th>
3012     <th width="10%">TYPE</th>
3013     <th width="15%">DEFAULT</th>
3014     <th>DESCRIPTION</th>
3015     <th width="15%">DEC-GUARD</th>
3016 pcg 1.1 </tr>
3017     <tr>
3018     <td>result</td>
3019     <td>CONSTANT</td>
3020 pcg 1.17 <td>"user unknown" </td>
3021 pcg 1.3 <td>
3022 pcg 1.1 ** maybe more following? **
3023 pcg 1.17
3024      
3025     </td>
3026     <td>
3027     <b></b>
3028      
3029     </td>
3030 pcg 1.1 </tr>
3031     </table>
3032    
3033 pcg 1.17 <h4>
3034     <a name="R0006"></a>RECV
3035     MESSAGE login</h4>
3036     NUMERIC TYPE (hex): 0006
3037     (possibly in response to
3038     <a href="#S0000">login(0000)</a>
3039     )
3040     <p>
3041     </p>
3042     <table border="1" width="100%">
3043     <tr>
3044     <th width="10%">NAME</th>
3045     <th width="10%">TYPE</th>
3046     <th width="15%">DEFAULT</th>
3047     <th>DESCRIPTION</th>
3048     <th width="15%">DEC-GUARD</th>
3049 pcg 1.1 </tr>
3050     <tr>
3051     <td>result</td>
3052     <td>CONSTANT</td>
3053 pcg 1.17 <td>"user exists" </td>
3054 pcg 1.3 <td>
3055 pcg 1.1 ** maybe more following? **
3056 pcg 1.17
3057      
3058     </td>
3059     <td>
3060     <b></b>
3061      
3062     </td>
3063 pcg 1.1 </tr>
3064     </table>
3065    
3066 pcg 1.17 <h4>
3067     <a name="R0008"></a>RECV
3068     MESSAGE userinfo</h4>
3069     NUMERIC TYPE (hex): 0008
3070     (possibly in response to
3071     <a href="#S0007">req_userinfo(0007)</a>
3072     )
3073     <p>
3074     User info.
3075     </p>
3076     <table border="1" width="100%">
3077 pcg 1.14 <tr>
3078 pcg 1.17 <th width="10%">NAME</th>
3079     <th width="10%">TYPE</th>
3080     <th width="15%">DEFAULT</th>
3081     <th>DESCRIPTION</th>
3082     <th width="15%">DEC-GUARD</th>
3083 pcg 1.14 </tr>
3084     <tr>
3085     <td>user</td>
3086     <td>user</td>
3087 pcg 1.17 <td> </td>
3088     <td>
3089    
3090      
3091     </td>
3092 pcg 1.14 <td>
3093 pcg 1.17 <b></b>
3094      
3095     </td>
3096 pcg 1.14 </tr>
3097     <tr>
3098 pcg 1.15 <td>_unused</td>
3099     <td>U64</td>
3100 pcg 1.17 <td> </td>
3101     <td>
3102    
3103      
3104     </td>
3105 pcg 1.14 <td>
3106 pcg 1.17 <b></b>
3107      
3108     </td>
3109 pcg 1.14 </tr>
3110     <tr>
3111     <td>realname</td>
3112     <td>realname</td>
3113 pcg 1.17 <td> </td>
3114     <td>
3115    
3116      
3117     </td>
3118 pcg 1.14 <td>
3119 pcg 1.17 <b></b>
3120      
3121     </td>
3122 pcg 1.14 </tr>
3123     <tr>
3124     <td>email</td>
3125     <td>email</td>
3126 pcg 1.17 <td> </td>
3127     <td>
3128    
3129      
3130     </td>
3131 pcg 1.14 <td>
3132 pcg 1.17 <b></b>
3133      
3134     </td>
3135 pcg 1.14 </tr>
3136     <tr>
3137     <td>info</td>
3138     <td>userinfo</td>
3139 pcg 1.17 <td> </td>
3140     <td>
3141    
3142      
3143     </td>
3144 pcg 1.14 <td>
3145 pcg 1.17 <b></b>
3146      
3147     </td>
3148 pcg 1.14 </tr>
3149     <tr>
3150     <td>homepage</td>
3151     <td>url</td>
3152 pcg 1.17 <td> </td>
3153     <td>
3154    
3155      
3156     </td>
3157 pcg 1.14 <td>
3158 pcg 1.17 <b></b>
3159      
3160     </td>
3161 pcg 1.14 </tr>
3162     <tr>
3163     <td>regdate</td>
3164     <td>timestamp</td>
3165 pcg 1.17 <td> </td>
3166 pcg 1.14 <td>
3167     When the user registered (0 == never registered).
3168 pcg 1.17
3169      
3170     </td>
3171     <td>
3172     <b></b>
3173      
3174     </td>
3175 pcg 1.14 </tr>
3176     <tr>
3177     <td>lastlogin</td>
3178     <td>timestamp</td>
3179 pcg 1.17 <td> </td>
3180 pcg 1.14 <td>
3181     When the user logged in for the last time.
3182 pcg 1.17
3183      
3184     </td>
3185     <td>
3186     <b></b>
3187      
3188     </td>
3189 pcg 1.14 </tr>
3190     </table>
3191    
3192 pcg 1.17 <h4>
3193     <a name="R0018"></a>RECV
3194     MESSAGE login</h4>
3195     NUMERIC TYPE (hex): 0018
3196     (possibly in response to
3197     <a href="#S0000">login(0000)</a>
3198     )
3199     <p>
3200     </p>
3201     <table border="1" width="100%">
3202     <tr>
3203     <th width="10%">NAME</th>
3204     <th width="10%">TYPE</th>
3205     <th width="15%">DEFAULT</th>
3206     <th>DESCRIPTION</th>
3207     <th width="15%">DEC-GUARD</th>
3208 pcg 1.1 </tr>
3209     <tr>
3210     <td>result</td>
3211     <td>CONSTANT</td>
3212 pcg 1.17 <td>"login error 18" </td>
3213 pcg 1.3 <td>
3214 pcg 1.1 ** maybe more following? **
3215 pcg 1.17
3216      
3217     </td>
3218     <td>
3219     <b></b>
3220      
3221     </td>
3222 pcg 1.1 </tr>
3223     </table>
3224    
3225 pcg 1.17 <h4>
3226     <a name="R0022"></a>RECV
3227     MESSAGE login</h4>
3228     NUMERIC TYPE (hex): 0022
3229     (possibly in response to
3230     <a href="#S0000">login(0000)</a>
3231     )
3232     <p>
3233 pcg 1.21 I was blocked sooo many times for developing this client that it was
3234     easy to figure out. The KGS admins sure need no extra nazi training
3235     :(
3236 pcg 1.17 </p>
3237     <table border="1" width="100%">
3238     <tr>
3239     <th width="10%">NAME</th>
3240     <th width="10%">TYPE</th>
3241     <th width="15%">DEFAULT</th>
3242     <th>DESCRIPTION</th>
3243     <th width="15%">DEC-GUARD</th>
3244 pcg 1.1 </tr>
3245     <tr>
3246 pcg 1.21 <td>reason</td>
3247     <td>STRING</td>
3248     <td> </td>
3249 pcg 1.17 <td>
3250    
3251      
3252     </td>
3253 pcg 1.3 <td>
3254 pcg 1.17 <b></b>
3255      
3256     </td>
3257 pcg 1.1 </tr>
3258     <tr>
3259 pcg 1.21 <td>result</td>
3260     <td>CONSTANT</td>
3261     <td>"user or ip blocked" </td>
3262 pcg 1.3 <td>
3263 pcg 1.17
3264      
3265     </td>
3266     <td>
3267     <b></b>
3268      
3269     </td>
3270 pcg 1.1 </tr>
3271     </table>
3272    
3273 pcg 1.17 <h4>
3274     <a name="R0013"></a>RECV
3275     MESSAGE msg_chat</h4>
3276     NUMERIC TYPE (hex): 0013<p>
3277     </p>
3278     <table border="1" width="100%">
3279     <tr>
3280     <th width="10%">NAME</th>
3281     <th width="10%">TYPE</th>
3282     <th width="15%">DEFAULT</th>
3283     <th>DESCRIPTION</th>
3284     <th width="15%">DEC-GUARD</th>
3285 pcg 1.1 </tr>
3286     <tr>
3287     <td>user1</td>
3288 pcg 1.3 <td>username</td>
3289 pcg 1.17 <td> </td>
3290 pcg 1.3 <td>
3291 pcg 1.17
3292      
3293     </td>
3294     <td>
3295     <b></b>
3296      
3297     </td>
3298 pcg 1.1 </tr>
3299     <tr>
3300     <td>user2</td>
3301 pcg 1.3 <td>username</td>
3302 pcg 1.17 <td> </td>
3303     <td>
3304    
3305      
3306     </td>
3307 pcg 1.3 <td>
3308 pcg 1.17 <b></b>
3309      
3310     </td>
3311 pcg 1.1 </tr>
3312     <tr>
3313     <td>message</td>
3314     <td>STRING</td>
3315 pcg 1.17 <td> </td>
3316 pcg 1.3 <td>
3317 pcg 1.17
3318      
3319     </td>
3320     <td>
3321     <b></b>
3322      
3323     </td>
3324 pcg 1.1 </tr>
3325     </table>
3326    
3327 pcg 1.17 <h4>
3328     <a name="R0015"></a>RECV
3329     MESSAGE stats</h4>
3330     NUMERIC TYPE (hex): 0015
3331     (possibly in response to
3332     <a href="#S0014">req_stats(0014)</a>
3333     )
3334     <p>
3335     </p>
3336     <table border="1" width="100%">
3337     <tr>
3338     <th width="10%">NAME</th>
3339     <th width="10%">TYPE</th>
3340     <th width="15%">DEFAULT</th>
3341     <th>DESCRIPTION</th>
3342     <th width="15%">DEC-GUARD</th>
3343 pcg 1.1 </tr>
3344     <tr>
3345     <td>ver_major</td>
3346 pcg 1.3 <td>U16</td>
3347 pcg 1.17 <td> </td>
3348 pcg 1.3 <td>
3349 pcg 1.17
3350      
3351     </td>
3352     <td>
3353     <b></b>
3354      
3355     </td>
3356 pcg 1.1 </tr>
3357     <tr>
3358     <td>ver_minor</td>
3359 pcg 1.3 <td>U16</td>
3360 pcg 1.17 <td> </td>
3361     <td>
3362    
3363      
3364     </td>
3365 pcg 1.3 <td>
3366 pcg 1.17 <b></b>
3367      
3368     </td>
3369 pcg 1.1 </tr>
3370     <tr>
3371     <td>ver_micro</td>
3372 pcg 1.3 <td>U16</td>
3373 pcg 1.17 <td> </td>
3374 pcg 1.3 <td>
3375 pcg 1.17
3376      
3377     </td>
3378     <td>
3379     <b></b>
3380      
3381     </td>
3382 pcg 1.1 </tr>
3383     <tr>
3384     <td>boot_time</td>
3385 pcg 1.14 <td>timestamp</td>
3386 pcg 1.17 <td> </td>
3387     <td>
3388    
3389      
3390     </td>
3391 pcg 1.3 <td>
3392 pcg 1.17 <b></b>
3393      
3394     </td>
3395 pcg 1.1 </tr>
3396     <tr>
3397     <td>users_cur</td>
3398 pcg 1.3 <td>U32</td>
3399 pcg 1.17 <td> </td>
3400 pcg 1.3 <td>
3401 pcg 1.17
3402      
3403     </td>
3404     <td>
3405     <b></b>
3406      
3407     </td>
3408 pcg 1.1 </tr>
3409     <tr>
3410     <td>users_max</td>
3411 pcg 1.3 <td>U32</td>
3412 pcg 1.17 <td> </td>
3413     <td>
3414    
3415      
3416     </td>
3417 pcg 1.3 <td>
3418 pcg 1.17 <b></b>
3419      
3420     </td>
3421 pcg 1.1 </tr>
3422     <tr>
3423     <td>users_lim</td>
3424 pcg 1.3 <td>U32</td>
3425 pcg 1.17 <td> </td>
3426 pcg 1.3 <td>
3427 pcg 1.17
3428      
3429     </td>
3430     <td>
3431     <b></b>
3432      
3433     </td>
3434 pcg 1.1 </tr>
3435     <tr>
3436     <td>accts_cur</td>
3437 pcg 1.3 <td>U32</td>
3438 pcg 1.17 <td> </td>
3439     <td>
3440    
3441      
3442     </td>
3443 pcg 1.3 <td>
3444 pcg 1.17 <b></b>
3445      
3446     </td>
3447 pcg 1.1 </tr>
3448     <tr>
3449     <td>accts_max</td>
3450 pcg 1.3 <td>U32</td>
3451 pcg 1.17 <td> </td>
3452 pcg 1.3 <td>
3453 pcg 1.17
3454      
3455     </td>
3456     <td>
3457     <b></b>
3458      
3459     </td>
3460 pcg 1.1 </tr>
3461     <tr>
3462     <td>unknown1</td>
3463 pcg 1.3 <td>U32</td>
3464 pcg 1.17 <td> </td>
3465     <td>
3466    
3467      
3468     </td>
3469 pcg 1.3 <td>
3470 pcg 1.17 <b></b>
3471      
3472     </td>
3473 pcg 1.1 </tr>
3474     <tr>
3475     <td>work_max</td>
3476 pcg 1.3 <td>U32</td>
3477 pcg 1.17 <td> </td>
3478 pcg 1.3 <td>
3479 pcg 1.17
3480      
3481     </td>
3482     <td>
3483     <b></b>
3484      
3485     </td>
3486 pcg 1.1 </tr>
3487     <tr>
3488     <td>rooms_cur</td>
3489 pcg 1.3 <td>U32</td>
3490 pcg 1.17 <td> </td>
3491     <td>
3492    
3493      
3494     </td>
3495 pcg 1.3 <td>
3496 pcg 1.17 <b></b>
3497      
3498     </td>
3499 pcg 1.1 </tr>
3500     <tr>
3501     <td>rooms_max</td>
3502 pcg 1.3 <td>U32</td>
3503 pcg 1.17 <td> </td>
3504 pcg 1.3 <td>
3505 pcg 1.17
3506      
3507     </td>
3508     <td>
3509     <b></b>
3510      
3511     </td>
3512 pcg 1.1 </tr>
3513     <tr>
3514     <td>rooms_lim</td>
3515 pcg 1.3 <td>U32</td>
3516 pcg 1.17 <td> </td>
3517     <td>
3518    
3519      
3520     </td>
3521 pcg 1.3 <td>
3522 pcg 1.17 <b></b>
3523      
3524     </td>
3525 pcg 1.1 </tr>
3526     <tr>
3527     <td>games_cur</td>
3528 pcg 1.3 <td>U32</td>
3529 pcg 1.17 <td> </td>
3530 pcg 1.3 <td>
3531 pcg 1.17
3532      
3533     </td>
3534     <td>
3535     <b></b>
3536      
3537     </td>
3538 pcg 1.1 </tr>
3539     <tr>
3540     <td>games_max</td>
3541 pcg 1.3 <td>U32</td>
3542 pcg 1.17 <td> </td>
3543     <td>
3544    
3545      
3546     </td>
3547 pcg 1.3 <td>
3548 pcg 1.17 <b></b>
3549      
3550     </td>
3551 pcg 1.1 </tr>
3552     <tr>
3553     <td>games_lim</td>
3554 pcg 1.3 <td>U32</td>
3555 pcg 1.17 <td> </td>
3556 pcg 1.3 <td>
3557 pcg 1.17
3558      
3559     </td>
3560     <td>
3561     <b></b>
3562      
3563     </td>
3564 pcg 1.1 </tr>
3565     <tr>
3566     <td>results_cur</td>
3567 pcg 1.3 <td>U32</td>
3568 pcg 1.17 <td> </td>
3569     <td>
3570    
3571      
3572     </td>
3573 pcg 1.3 <td>
3574 pcg 1.17 <b></b>
3575      
3576     </td>
3577 pcg 1.1 </tr>
3578     <tr>
3579     <td>results_max</td>
3580 pcg 1.3 <td>U32</td>
3581 pcg 1.17 <td> </td>
3582 pcg 1.3 <td>
3583 pcg 1.17
3584      
3585     </td>
3586     <td>
3587     <b></b>
3588      
3589     </td>
3590 pcg 1.1 </tr>
3591     <tr>
3592     <td>unknown2</td>
3593 pcg 1.3 <td>U32</td>
3594 pcg 1.17 <td> </td>
3595     <td>
3596    
3597      
3598     </td>
3599 pcg 1.3 <td>
3600 pcg 1.17 <b></b>
3601      
3602     </td>
3603 pcg 1.1 </tr>
3604     <tr>
3605     <td>params_cur</td>
3606 pcg 1.3 <td>U32</td>
3607 pcg 1.17 <td> </td>
3608 pcg 1.3 <td>
3609 pcg 1.17
3610      
3611     </td>
3612     <td>
3613     <b></b>
3614      
3615     </td>
3616 pcg 1.1 </tr>
3617     <tr>
3618     <td>params_max</td>
3619 pcg 1.3 <td>U32</td>
3620 pcg 1.17 <td> </td>
3621     <td>
3622    
3623      
3624     </td>
3625 pcg 1.3 <td>
3626 pcg 1.17 <b></b>
3627      
3628     </td>
3629 pcg 1.1 </tr>
3630     <tr>
3631     <td>bytes_in</td>
3632 pcg 1.3 <td>U64</td>
3633 pcg 1.17 <td> </td>
3634 pcg 1.3 <td>
3635 pcg 1.17
3636      
3637     </td>
3638     <td>
3639     <b></b>
3640      
3641     </td>
3642 pcg 1.1 </tr>
3643     <tr>
3644     <td>packets_in</td>
3645 pcg 1.3 <td>U64</td>
3646 pcg 1.17 <td> </td>
3647     <td>
3648    
3649      
3650     </td>
3651 pcg 1.3 <td>
3652 pcg 1.17 <b></b>
3653      
3654     </td>
3655 pcg 1.1 </tr>
3656     <tr>
3657     <td>bytes_out</td>
3658 pcg 1.17 <td>U64</td>
3659     <td> </td>
3660     <td>
3661    
3662      
3663     </td>
3664 pcg 1.3 <td>
3665 pcg 1.17 <b></b>
3666      
3667     </td>
3668 pcg 1.1 </tr>
3669     <tr>
3670     <td>packets_out</td>
3671 pcg 1.3 <td>U64</td>
3672 pcg 1.17 <td> </td>
3673 pcg 1.3 <td>
3674 pcg 1.17
3675      
3676     </td>
3677     <td>
3678     <b></b>
3679      
3680     </td>
3681 pcg 1.1 </tr>
3682     </table>
3683    
3684 pcg 1.17 <h4>
3685     <a name="R0016"></a>RECV
3686     MESSAGE idle_warn</h4>
3687 pcg 1.29 NUMERIC TYPE (hex): 0016
3688     (possibly in response to
3689     <a href="#S0016">idle_reset(0016)</a>
3690     )
3691     <p>
3692 pcg 1.17 idle warning, autologout soon (10 minutes...)
3693     </p>
3694     <table border="1" width="100%">
3695 pcg 1.1 <tr>
3696 pcg 1.17 <th width="10%">NAME</th>
3697     <th width="10%">TYPE</th>
3698     <th width="15%">DEFAULT</th>
3699     <th>DESCRIPTION</th>
3700     <th width="15%">DEC-GUARD</th>
3701 pcg 1.1 </tr>
3702     </table>
3703    
3704 pcg 1.17 <h4>
3705     <a name="R001b"></a>RECV
3706     MESSAGE timewarning_default</h4>
3707     NUMERIC TYPE (hex): 001b
3708     (possibly in response to
3709     <a href="#S0000">login(0000)</a>
3710     )
3711     <p>
3712     WILD guess
3713     </p>
3714     <table border="1" width="100%">
3715 pcg 1.1 <tr>
3716 pcg 1.17 <th width="10%">NAME</th>
3717     <th width="10%">TYPE</th>
3718     <th width="15%">DEFAULT</th>
3719     <th>DESCRIPTION</th>
3720     <th width="15%">DEC-GUARD</th>
3721 pcg 1.1 </tr>
3722     <tr>
3723     <td>channel</td>
3724 pcg 1.3 <td>U16</td>
3725 pcg 1.17 <td> </td>
3726     <td>
3727    
3728      
3729     </td>
3730 pcg 1.3 <td>
3731 pcg 1.17 <b></b>
3732      
3733     </td>
3734 pcg 1.1 </tr>
3735     <tr>
3736     <td>time</td>
3737 pcg 1.3 <td>U16</td>
3738 pcg 1.17 <td> </td>
3739     <td>
3740    
3741      
3742     </td>
3743 pcg 1.3 <td>
3744 pcg 1.17 <b></b>
3745      
3746     </td>
3747 pcg 1.1 </tr>
3748     </table>
3749    
3750 pcg 1.17 <h4>
3751     <a name="R001c"></a>RECV
3752     MESSAGE idle_err</h4>
3753     NUMERIC TYPE (hex): 001c<p>
3754     autologout
3755     </p>
3756     <table border="1" width="100%">
3757 pcg 1.1 <tr>
3758 pcg 1.17 <th width="10%">NAME</th>
3759     <th width="10%">TYPE</th>
3760     <th width="15%">DEFAULT</th>
3761     <th>DESCRIPTION</th>
3762     <th width="15%">DEC-GUARD</th>
3763 pcg 1.1 </tr>
3764     </table>
3765    
3766 pcg 1.17 <h4>
3767     <a name="R001d"></a>RECV
3768     MESSAGE ping</h4>
3769     NUMERIC TYPE (hex): 001d<p>
3770 pcg 1.14 Sent by the server regularly, but not answering them
3771     isn't valid. Strange form of keepalive?
3772 pcg 1.17 </p>
3773     <table border="1" width="100%">
3774     <tr>
3775     <th width="10%">NAME</th>
3776     <th width="10%">TYPE</th>
3777     <th width="15%">DEFAULT</th>
3778     <th>DESCRIPTION</th>
3779     <th width="15%">DEC-GUARD</th>
3780 pcg 1.1 </tr>
3781     </table>
3782    
3783 pcg 1.17 <h4>
3784     <a name="R001e"></a>RECV
3785     MESSAGE usergraph</h4>
3786     NUMERIC TYPE (hex): 001e
3787     (possibly in response to
3788     <a href="#S001e">req_usergraph(001e)</a>
3789     )
3790     <p>
3791     User graph data.
3792     </p>
3793     <table border="1" width="100%">
3794 pcg 1.15 <tr>
3795 pcg 1.17 <th width="10%">NAME</th>
3796     <th width="10%">TYPE</th>
3797     <th width="15%">DEFAULT</th>
3798     <th>DESCRIPTION</th>
3799     <th width="15%">DEC-GUARD</th>
3800 pcg 1.15 </tr>
3801     <tr>
3802     <td>data</td>
3803     <td>I16</td>
3804 pcg 1.17 <td> </td>
3805 pcg 1.15 <td>
3806     If empty, no graph is available. The unit seems to
3807     be centi-kyu, with 1 dan == 0, 2 dan == 100, 1 kyu == -100.
3808     There is probably one entry per day, the newest one last.
3809 pcg 1.17
3810      
3811     </td>
3812     <td>
3813     <b></b>
3814      
3815     </td>
3816 pcg 1.15 </tr>
3817     </table>
3818    
3819 pcg 1.17 <h4>
3820     <a name="R001f"></a>RECV
3821     MESSAGE memo</h4>
3822     NUMERIC TYPE (hex): 001f
3823     (possibly in response to
3824     <a href="#S001f">fetch_memos(001f)</a>
3825     )
3826     <p>
3827 pcg 1.15 Unclear. "Leave Message"?
3828     6 strings following.
3829 pcg 1.17 </p>
3830     <table border="1" width="100%">
3831     <tr>
3832     <th width="10%">NAME</th>
3833     <th width="10%">TYPE</th>
3834     <th width="15%">DEFAULT</th>
3835     <th>DESCRIPTION</th>
3836     <th width="15%">DEC-GUARD</th>
3837 pcg 1.15 </tr>
3838     <tr>
3839     <td>s1</td>
3840     <td>STRING</td>
3841 pcg 1.17 <td> </td>
3842     <td>
3843    
3844      
3845     </td>
3846 pcg 1.15 <td>
3847 pcg 1.17 <b></b>
3848      
3849     </td>
3850 pcg 1.15 </tr>
3851     <tr>
3852     <td>s2</td>
3853     <td>STRING</td>
3854 pcg 1.17 <td> </td>
3855     <td>
3856    
3857      
3858     </td>
3859 pcg 1.15 <td>
3860 pcg 1.17 <b></b>
3861      
3862     </td>
3863 pcg 1.15 </tr>
3864     <tr>
3865     <td>s3</td>
3866     <td>STRING</td>
3867 pcg 1.17 <td> </td>
3868     <td>
3869    
3870      
3871     </td>
3872 pcg 1.15 <td>
3873 pcg 1.17 <b></b>
3874      
3875     </td>
3876 pcg 1.15 </tr>
3877     <tr>
3878     <td>s4</td>
3879     <td>STRING</td>
3880 pcg 1.17 <td> </td>
3881     <td>
3882    
3883      
3884     </td>
3885 pcg 1.15 <td>
3886 pcg 1.17 <b></b>
3887      
3888     </td>
3889 pcg 1.15 </tr>
3890     <tr>
3891     <td>s5</td>
3892     <td>STRING</td>
3893 pcg 1.17 <td> </td>
3894     <td>
3895    
3896      
3897     </td>
3898 pcg 1.15 <td>
3899 pcg 1.17 <b></b>
3900      
3901     </td>
3902 pcg 1.15 </tr>
3903     <tr>
3904     <td>s6</td>
3905     <td>STRING</td>
3906 pcg 1.17 <td> </td>
3907     <td>
3908    
3909      
3910     </td>
3911 pcg 1.15 <td>
3912 pcg 1.17 <b></b>
3913      
3914     </td>
3915 pcg 1.15 </tr>
3916     </table>
3917    
3918 pcg 1.17 <h4>
3919     <a name="R0021"></a>RECV
3920     MESSAGE userpic</h4>
3921     NUMERIC TYPE (hex): 0021
3922     (possibly in response to
3923     <a href="#S0021">req_pic(0021)</a>
3924     )
3925     <p>
3926     </p>
3927     <table border="1" width="100%">
3928     <tr>
3929     <th width="10%">NAME</th>
3930     <th width="10%">TYPE</th>
3931     <th width="15%">DEFAULT</th>
3932     <th>DESCRIPTION</th>
3933     <th width="15%">DEC-GUARD</th>
3934 pcg 1.1 </tr>
3935     <tr>
3936     <td>name</td>
3937 pcg 1.3 <td>username</td>
3938 pcg 1.17 <td> </td>
3939 pcg 1.3 <td>
3940 pcg 1.1 Reply to pic_req, contains an image in jpeg format.
3941 pcg 1.17
3942      
3943     </td>
3944     <td>
3945     <b></b>
3946      
3947     </td>
3948 pcg 1.1 </tr>
3949     <tr>
3950     <td>data</td>
3951     <td>DATA</td>
3952 pcg 1.17 <td> </td>
3953     <td>
3954    
3955      
3956     </td>
3957 pcg 1.3 <td>
3958 pcg 1.17 <b></b>
3959      
3960     </td>
3961 pcg 1.1 </tr>
3962     </table>
3963    
3964 pcg 1.17 <h4>
3965     <a name="R0100"></a>RECV
3966     MESSAGE gnotice</h4>
3967     NUMERIC TYPE (hex): 0100
3968     (possibly in response to
3969     <a href="#S0100">gnotice(0100)</a>
3970     )
3971     <p>
3972     global notice, sent to everybody
3973     </p>
3974     <table border="1" width="100%">
3975 pcg 1.1 <tr>
3976 pcg 1.17 <th width="10%">NAME</th>
3977     <th width="10%">TYPE</th>
3978     <th width="15%">DEFAULT</th>
3979     <th>DESCRIPTION</th>
3980     <th width="15%">DEC-GUARD</th>
3981 pcg 1.1 </tr>
3982     <tr>
3983     <td>notice</td>
3984     <td>STRING</td>
3985 pcg 1.17 <td> </td>
3986     <td>
3987    
3988      
3989     </td>
3990 pcg 1.3 <td>
3991 pcg 1.17 <b></b>
3992      
3993     </td>
3994 pcg 1.1 </tr>
3995     </table>
3996    
3997 pcg 1.17 <h4>
3998     <a name="R0202"></a>RECV
3999     MESSAGE upd_user</h4>
4000     NUMERIC TYPE (hex): 0202<p>
4001 pcg 1.15 # maybe soe notify? Totally unclear.
4002 pcg 1.14 # loc 0" type="chat(?) loc 1 =&gt; gameinfo?, loc 2 =&gt; game result (more data)
4003 pcg 1.17 </p>
4004     <table border="1" width="100%">
4005     <tr>
4006     <th width="10%">NAME</th>
4007     <th width="10%">TYPE</th>
4008     <th width="15%">DEFAULT</th>
4009     <th>DESCRIPTION</th>
4010     <th width="15%">DEC-GUARD</th>
4011 pcg 1.14 </tr>
4012     <tr>
4013     <td>location</td>
4014     <td>U32</td>
4015 pcg 1.17 <td> </td>
4016     <td>
4017    
4018      
4019     </td>
4020 pcg 1.14 <td>
4021 pcg 1.17 <b></b>
4022      
4023     </td>
4024 pcg 1.14 </tr>
4025     <tr>
4026     <td>user</td>
4027     <td>user</td>
4028 pcg 1.17 <td> </td>
4029     <td>
4030    
4031      
4032     </td>
4033 pcg 1.14 <td>
4034 pcg 1.17 <b></b>
4035      
4036     </td>
4037 pcg 1.14 </tr>
4038     <tr>
4039     <td>lotsofinfo</td>
4040     <td>DATA</td>
4041 pcg 1.17 <td> </td>
4042     <td>
4043    
4044      
4045     </td>
4046 pcg 1.14 <td>
4047 pcg 1.17 <b>location</b> == 2
4048      
4049     </td>
4050 pcg 1.14 </tr>
4051     </table>
4052 pcg 1.1
4053 pcg 1.17 <h4>
4054     <a name="R0310"></a>RECV
4055     MESSAGE priv_room</h4>
4056     NUMERIC TYPE (hex): 0310<p>
4057     "permission denied" when joining a room
4058     </p>
4059     <table border="1" width="100%">
4060 pcg 1.1 <tr>
4061 pcg 1.17 <th width="10%">NAME</th>
4062     <th width="10%">TYPE</th>
4063     <th width="15%">DEFAULT</th>
4064     <th>DESCRIPTION</th>
4065     <th width="15%">DEC-GUARD</th>
4066 pcg 1.1 </tr>
4067     <tr>
4068     <td>name</td>
4069     <td>STRING</td>
4070 pcg 1.17 <td> </td>
4071 pcg 1.3 <td>
4072 pcg 1.17
4073      
4074     </td>
4075     <td>
4076     <b></b>
4077      
4078     </td>
4079 pcg 1.1 </tr>
4080     </table>
4081    
4082 pcg 1.17 <h4>
4083     <a name="R0318"></a>RECV
4084     MESSAGE upd_rooms</h4>
4085     NUMERIC TYPE (hex): 0318
4086     (possibly in response to
4087     <a href="#S0318">list_rooms(0318)</a>
4088     )
4089     <p>
4090     </p>
4091     <table border="1" width="100%">
4092     <tr>
4093     <th width="10%">NAME</th>
4094     <th width="10%">TYPE</th>
4095     <th width="15%">DEFAULT</th>
4096     <th>DESCRIPTION</th>
4097     <th width="15%">DEC-GUARD</th>
4098 pcg 1.1 </tr>
4099     <tr>
4100     <td>rooms</td>
4101     <td>room</td>
4102 pcg 1.17 <td> </td>
4103 pcg 1.3 <td>
4104 pcg 1.17
4105      
4106     </td>
4107     <td>
4108     <b></b>
4109      
4110     </td>
4111 pcg 1.1 </tr>
4112     </table>
4113    
4114 pcg 1.17 <h4>
4115     <a name="R0411"></a>RECV
4116     MESSAGE chal_defaults</h4>
4117     NUMERIC TYPE (hex): 0411
4118     (possibly in response to
4119     <a href="#S0000">login(0000)</a>
4120     )
4121     <p>
4122     </p>
4123     <table border="1" width="100%">
4124     <tr>
4125     <th width="10%">NAME</th>
4126     <th width="10%">TYPE</th>
4127     <th width="15%">DEFAULT</th>
4128     <th>DESCRIPTION</th>
4129     <th width="15%">DEC-GUARD</th>
4130 pcg 1.1 </tr>
4131     <tr>
4132 pcg 1.14 <td>channel</td>
4133 pcg 1.3 <td>U16</td>
4134 pcg 1.17 <td> </td>
4135 pcg 1.3 <td>
4136 pcg 1.17
4137      
4138     </td>
4139     <td>
4140     <b></b>
4141      
4142     </td>
4143 pcg 1.1 </tr>
4144     <tr>
4145 pcg 1.14 <td>defaults</td>
4146     <td>challenge_defaults</td>
4147 pcg 1.17 <td> </td>
4148     <td>
4149    
4150      
4151     </td>
4152 pcg 1.3 <td>
4153 pcg 1.17 <b></b>
4154      
4155     </td>
4156 pcg 1.1 </tr>
4157     </table>
4158    
4159 pcg 1.17 <h4>
4160     <a name="S0412"></a>SEND
4161     MESSAGE rej_game</h4>
4162     NUMERIC TYPE (hex): 0412<p>
4163     Unable to create challenge. The channel might be optional.
4164     </p>
4165     <table border="1" width="100%">
4166 pcg 1.15 <tr>
4167 pcg 1.17 <th width="10%">NAME</th>
4168     <th width="10%">TYPE</th>
4169     <th width="15%">DEFAULT</th>
4170     <th>DESCRIPTION</th>
4171     <th width="15%">DEC-GUARD</th>
4172 pcg 1.15 </tr>
4173     <tr>
4174     <td>channel</td>
4175     <td>U16</td>
4176 pcg 1.17 <td> </td>
4177     <td>
4178    
4179      
4180     </td>
4181 pcg 1.15 <td>
4182 pcg 1.17 <b></b>
4183      
4184     </td>
4185 pcg 1.15 </tr>
4186     </table>
4187    
4188 pcg 1.17 <h4>
4189     <a name="R0414"></a>RECV
4190     MESSAGE game_record</h4>
4191     NUMERIC TYPE (hex): 0414
4192     (possibly in response to
4193     <a href="#S0413">req_game_record(0413)</a>
4194     )
4195     <p>
4196     The users game record.
4197     </p>
4198     <table border="1" width="100%">
4199 pcg 1.1 <tr>
4200 pcg 1.17 <th width="10%">NAME</th>
4201     <th width="10%">TYPE</th>
4202     <th width="15%">DEFAULT</th>
4203     <th>DESCRIPTION</th>
4204     <th width="15%">DEC-GUARD</th>
4205 pcg 1.14 </tr>
4206     <tr>
4207     <td>name</td>
4208     <td>username</td>
4209 pcg 1.17 <td> </td>
4210 pcg 1.14 <td>
4211 pcg 1.17
4212      
4213     </td>
4214     <td>
4215     <b></b>
4216      
4217     </td>
4218 pcg 1.14 </tr>
4219     <tr>
4220     <td>more</td>
4221     <td>flag</td>
4222 pcg 1.17 <td> </td>
4223 pcg 1.14 <td>
4224     Wether more games are available (must be requested manually)
4225 pcg 1.17
4226      
4227     </td>
4228     <td>
4229     <b></b>
4230      
4231     </td>
4232 pcg 1.1 </tr>
4233     <tr>
4234 pcg 1.14 <td>games</td>
4235     <td>game_record</td>
4236 pcg 1.17 <td> </td>
4237 pcg 1.3 <td>
4238 pcg 1.17
4239      
4240     </td>
4241     <td>
4242     <b></b>
4243      
4244     </td>
4245 pcg 1.14 </tr>
4246     </table>
4247    
4248 pcg 1.17 <h4>
4249     <a name="R041c"></a>RECV
4250     MESSAGE upd_game2</h4>
4251     NUMERIC TYPE (hex): 041c<p>
4252     Unclear.
4253     </p>
4254     <table border="1" width="100%">
4255 pcg 1.14 <tr>
4256 pcg 1.17 <th width="10%">NAME</th>
4257     <th width="10%">TYPE</th>
4258     <th width="15%">DEFAULT</th>
4259     <th>DESCRIPTION</th>
4260     <th width="15%">DEC-GUARD</th>
4261 pcg 1.1 </tr>
4262     <tr>
4263 pcg 1.14 <td>channel_junk</td>
4264     <td>U16</td>
4265 pcg 1.17 <td> </td>
4266     <td>
4267    
4268      
4269     </td>
4270 pcg 1.3 <td>
4271 pcg 1.17 <b></b>
4272      
4273     </td>
4274 pcg 1.1 </tr>
4275     <tr>
4276 pcg 1.14 <td>game</td>
4277     <td>game</td>
4278 pcg 1.17 <td> </td>
4279     <td>
4280    
4281      
4282     </td>
4283 pcg 1.3 <td>
4284 pcg 1.17 <b></b>
4285      
4286     </td>
4287 pcg 1.1 </tr>
4288     </table>
4289    
4290     <h3>Room messages</h3>
4291    
4292     <p>Not all room messages are for rooms only, and rooms need to parse
4293     not only these messages. Orthogonality, what for?</p>
4294    
4295 pcg 1.17 <h4>
4296     <a name="R4300"></a>RECV
4297     MESSAGE join_room</h4>
4298     NUMERIC TYPE (hex): 4300
4299     (possibly in response to
4300     <a href="#S4300">join_room(4300)</a>
4301     )
4302     <p>
4303     </p>
4304     <table border="1" width="100%">
4305     <tr>
4306     <th width="10%">NAME</th>
4307     <th width="10%">TYPE</th>
4308     <th width="15%">DEFAULT</th>
4309     <th>DESCRIPTION</th>
4310     <th width="15%">DEC-GUARD</th>
4311 pcg 1.1 </tr>
4312     <tr>
4313     <td>channel</td>
4314 pcg 1.3 <td>U16</td>
4315 pcg 1.17 <td> </td>
4316     <td>
4317    
4318      
4319     </td>
4320 pcg 1.3 <td>
4321 pcg 1.17 <b></b>
4322      
4323     </td>
4324 pcg 1.1 </tr>
4325     <tr>
4326     <td>users</td>
4327     <td>user</td>
4328 pcg 1.17 <td> </td>
4329     <td>
4330    
4331      
4332     </td>
4333 pcg 1.3 <td>
4334 pcg 1.17 <b></b>
4335      
4336     </td>
4337 pcg 1.1 </tr>
4338     </table>
4339    
4340 pcg 1.17 <h4>
4341     <a name="R4301"></a>RECV
4342     MESSAGE msg_room</h4>
4343     NUMERIC TYPE (hex): 4301<p>
4344     </p>
4345     <table border="1" width="100%">
4346 pcg 1.1 <tr>
4347 pcg 1.17 <th width="10%">NAME</th>
4348     <th width="10%">TYPE</th>
4349     <th width="15%">DEFAULT</th>
4350     <th>DESCRIPTION</th>
4351     <th width="15%">DEC-GUARD</th>
4352 pcg 1.1 </tr>
4353     <tr>
4354     <td>channel</td>
4355 pcg 1.3 <td>U16</td>
4356 pcg 1.17 <td> </td>
4357 pcg 1.3 <td>
4358 pcg 1.17
4359      
4360     </td>
4361     <td>
4362     <b></b>
4363      
4364     </td>
4365 pcg 1.1 </tr>
4366     <tr>
4367     <td>name</td>
4368 pcg 1.3 <td>username</td>
4369 pcg 1.17 <td> </td>
4370     <td>
4371    
4372      
4373     </td>
4374 pcg 1.3 <td>
4375 pcg 1.17 <b></b>
4376      
4377     </td>
4378 pcg 1.1 </tr>
4379     <tr>
4380     <td>message</td>
4381     <td>STRING</td>
4382 pcg 1.17 <td> </td>
4383 pcg 1.3 <td>
4384 pcg 1.17
4385      
4386     </td>
4387     <td>
4388     <b></b>
4389      
4390     </td>
4391 pcg 1.1 </tr>
4392     </table>
4393    
4394 pcg 1.17 <h4>
4395     <a name="R4302"></a>RECV
4396     MESSAGE part_room</h4>
4397     NUMERIC TYPE (hex): 4302<p>
4398     </p>
4399     <table border="1" width="100%">
4400 pcg 1.1 <tr>
4401 pcg 1.17 <th width="10%">NAME</th>
4402     <th width="10%">TYPE</th>
4403     <th width="15%">DEFAULT</th>
4404     <th>DESCRIPTION</th>
4405     <th width="15%">DEC-GUARD</th>
4406 pcg 1.1 </tr>
4407     <tr>
4408     <td>channel</td>
4409 pcg 1.3 <td>U16</td>
4410 pcg 1.17 <td> </td>
4411     <td>
4412    
4413      
4414     </td>
4415 pcg 1.3 <td>
4416 pcg 1.17 <b></b>
4417      
4418     </td>
4419 pcg 1.1 </tr>
4420     <tr>
4421     <td>user</td>
4422     <td>user</td>
4423 pcg 1.17 <td> </td>
4424     <td>
4425    
4426      
4427     </td>
4428 pcg 1.3 <td>
4429 pcg 1.17 <b></b>
4430      
4431     </td>
4432 pcg 1.1 </tr>
4433     </table>
4434    
4435 pcg 1.17 <h4>
4436     <a name="R4303"></a>RECV
4437     MESSAGE del_room</h4>
4438     NUMERIC TYPE (hex): 4303<p>
4439     </p>
4440     <table border="1" width="100%">
4441 pcg 1.1 <tr>
4442 pcg 1.17 <th width="10%">NAME</th>
4443     <th width="10%">TYPE</th>
4444     <th width="15%">DEFAULT</th>
4445     <th>DESCRIPTION</th>
4446     <th width="15%">DEC-GUARD</th>
4447 pcg 1.1 </tr>
4448     <tr>
4449     <td>channel</td>
4450 pcg 1.3 <td>U16</td>
4451 pcg 1.17 <td> </td>
4452 pcg 1.3 <td>
4453 pcg 1.17
4454      
4455     </td>
4456     <td>
4457     <b></b>
4458      
4459     </td>
4460 pcg 1.1 </tr>
4461     </table>
4462    
4463 pcg 1.17 <h4>
4464     <a name="R4304"></a>RECV
4465     MESSAGE upd_games</h4>
4466     NUMERIC TYPE (hex): 4304<p>
4467     </p>
4468     <table border="1" width="100%">
4469 pcg 1.1 <tr>
4470 pcg 1.17 <th width="10%">NAME</th>
4471     <th width="10%">TYPE</th>
4472     <th width="15%">DEFAULT</th>
4473     <th>DESCRIPTION</th>
4474     <th width="15%">DEC-GUARD</th>
4475 pcg 1.1 </tr>
4476     <tr>
4477     <td>channel</td>
4478 pcg 1.3 <td>U16</td>
4479 pcg 1.17 <td> </td>
4480     <td>
4481    
4482      
4483     </td>
4484 pcg 1.3 <td>
4485 pcg 1.17 <b></b>
4486      
4487     </td>
4488 pcg 1.1 </tr>
4489     <tr>
4490     <td>games</td>
4491     <td>game</td>
4492 pcg 1.17 <td> </td>
4493     <td>
4494    
4495      
4496     </td>
4497 pcg 1.3 <td>
4498 pcg 1.17 <b></b>
4499      
4500     </td>
4501 pcg 1.1 </tr>
4502     </table>
4503    
4504 pcg 1.17 <h4>
4505     <a name="R4319"></a>RECV
4506     MESSAGE desc_room</h4>
4507     NUMERIC TYPE (hex): 4319<p>
4508     </p>
4509     <table border="1" width="100%">
4510 pcg 1.1 <tr>
4511 pcg 1.17 <th width="10%">NAME</th>
4512     <th width="10%">TYPE</th>
4513     <th width="15%">DEFAULT</th>
4514     <th>DESCRIPTION</th>
4515     <th width="15%">DEC-GUARD</th>
4516 pcg 1.1 </tr>
4517     <tr>
4518     <td>channel</td>
4519 pcg 1.3 <td>U16</td>
4520 pcg 1.17 <td> </td>
4521 pcg 1.3 <td>
4522 pcg 1.17
4523      
4524     </td>
4525     <td>
4526     <b></b>
4527      
4528     </td>
4529 pcg 1.1 </tr>
4530     <tr>
4531     <td>owner</td>
4532 pcg 1.3 <td>username</td>
4533 pcg 1.17 <td> </td>
4534     <td>
4535    
4536      
4537     </td>
4538 pcg 1.3 <td>
4539 pcg 1.17 <b></b>
4540      
4541     </td>
4542 pcg 1.1 </tr>
4543     <tr>
4544     <td>description</td>
4545     <td>STRING</td>
4546 pcg 1.17 <td> </td>
4547 pcg 1.3 <td>
4548 pcg 1.17
4549      
4550     </td>
4551     <td>
4552     <b></b>
4553      
4554     </td>
4555 pcg 1.1 </tr>
4556     </table>
4557 pcg 1.27
4558 pcg 1.1 <h3>Game messages</h3>
4559    
4560 pcg 1.17 <h4>
4561     <a name="R4400"></a>RECV
4562     MESSAGE upd_chal</h4>
4563     NUMERIC TYPE (hex): 4400<p>
4564     Unclear.
4565     </p>
4566     <table border="1" width="100%">
4567 pcg 1.1 <tr>
4568 pcg 1.17 <th width="10%">NAME</th>
4569     <th width="10%">TYPE</th>
4570     <th width="15%">DEFAULT</th>
4571     <th>DESCRIPTION</th>
4572     <th width="15%">DEC-GUARD</th>
4573 pcg 1.1 </tr>
4574     <tr>
4575     <td>channel</td>
4576 pcg 1.3 <td>U16</td>
4577 pcg 1.17 <td> </td>
4578     <td>
4579    
4580      
4581     </td>
4582 pcg 1.3 <td>
4583 pcg 1.17 <b></b>
4584      
4585     </td>
4586 pcg 1.1 </tr>
4587     <tr>
4588     <td>challenge</td>
4589     <td>challenge</td>
4590 pcg 1.17 <td> </td>
4591     <td>
4592    
4593      
4594     </td>
4595 pcg 1.3 <td>
4596 pcg 1.17 <b></b>
4597      
4598     </td>
4599 pcg 1.1 </tr>
4600     </table>
4601    
4602 pcg 1.17 <h4>
4603     <a name="R4401"></a>RECV
4604     MESSAGE upd_game</h4>
4605     NUMERIC TYPE (hex): 4401<p>
4606     </p>
4607     <table border="1" width="100%">
4608 pcg 1.1 <tr>
4609 pcg 1.17 <th width="10%">NAME</th>
4610     <th width="10%">TYPE</th>
4611     <th width="15%">DEFAULT</th>
4612     <th>DESCRIPTION</th>
4613     <th width="15%">DEC-GUARD</th>
4614 pcg 1.1 </tr>
4615     <tr>
4616     <td>channel</td>
4617 pcg 1.3 <td>U16</td>
4618 pcg 1.17 <td> </td>
4619     <td>
4620    
4621      
4622     </td>
4623 pcg 1.3 <td>
4624 pcg 1.17 <b></b>
4625      
4626     </td>
4627 pcg 1.1 </tr>
4628     <tr>
4629     <td>game</td>
4630     <td>game</td>
4631 pcg 1.17 <td> </td>
4632 pcg 1.3 <td>
4633 pcg 1.17
4634      
4635     </td>
4636     <td>
4637     <b></b>
4638      
4639     </td>
4640 pcg 1.1 </tr>
4641     </table>
4642    
4643 pcg 1.17 <h4>
4644     <a name="R4402"></a>RECV
4645     MESSAGE del_game</h4>
4646     NUMERIC TYPE (hex): 4402<p>
4647     </p>
4648     <table border="1" width="100%">
4649 pcg 1.1 <tr>
4650 pcg 1.17 <th width="10%">NAME</th>
4651     <th width="10%">TYPE</th>
4652     <th width="15%">DEFAULT</th>
4653     <th>DESCRIPTION</th>
4654     <th width="15%">DEC-GUARD</th>
4655 pcg 1.1 </tr>
4656     <tr>
4657     <td>channel</td>
4658 pcg 1.3 <td>U16</td>
4659 pcg 1.17 <td> </td>
4660     <td>
4661    
4662      
4663     </td>
4664 pcg 1.3 <td>
4665 pcg 1.17 <b></b>
4666      
4667     </td>
4668 pcg 1.1 </tr>
4669     </table>
4670    
4671 pcg 1.17 <h4>
4672     <a name="R4403"></a>RECV
4673     MESSAGE upd_observers</h4>
4674     NUMERIC TYPE (hex): 4403<p>
4675     </p>
4676     <table border="1" width="100%">
4677 pcg 1.1 <tr>
4678 pcg 1.17 <th width="10%">NAME</th>
4679     <th width="10%">TYPE</th>
4680     <th width="15%">DEFAULT</th>
4681     <th>DESCRIPTION</th>
4682     <th width="15%">DEC-GUARD</th>
4683 pcg 1.1 </tr>
4684     <tr>
4685     <td>channel</td>
4686 pcg 1.3 <td>U16</td>
4687 pcg 1.17 <td> </td>
4688     <td>
4689    
4690      
4691     </td>
4692 pcg 1.3 <td>
4693 pcg 1.17 <b></b>
4694      
4695     </td>
4696 pcg 1.1 </tr>
4697     <tr>
4698     <td>users</td>
4699     <td>user</td>
4700 pcg 1.17 <td> </td>
4701 pcg 1.3 <td>
4702 pcg 1.17
4703      
4704     </td>
4705     <td>
4706     <b></b>
4707      
4708     </td>
4709 pcg 1.1 </tr>
4710     </table>
4711    
4712 pcg 1.17 <h4>
4713     <a name="R4404"></a>RECV
4714     MESSAGE del_observer</h4>
4715     NUMERIC TYPE (hex): 4404<p>
4716     </p>
4717     <table border="1" width="100%">
4718 pcg 1.1 <tr>
4719 pcg 1.17 <th width="10%">NAME</th>
4720     <th width="10%">TYPE</th>
4721     <th width="15%">DEFAULT</th>
4722     <th>DESCRIPTION</th>
4723     <th width="15%">DEC-GUARD</th>
4724 pcg 1.1 </tr>
4725     <tr>
4726     <td>channel</td>
4727 pcg 1.3 <td>U16</td>
4728 pcg 1.17 <td> </td>
4729     <td>
4730    
4731      
4732     </td>
4733 pcg 1.3 <td>
4734 pcg 1.17 <b></b>
4735      
4736     </td>
4737 pcg 1.1 </tr>
4738     <tr>
4739     <td>name</td>
4740 pcg 1.3 <td>username</td>
4741 pcg 1.17 <td> </td>
4742     <td>
4743    
4744      
4745     </td>
4746 pcg 1.3 <td>
4747 pcg 1.17 <b></b>
4748      
4749     </td>
4750 pcg 1.1 </tr>
4751     </table>
4752    
4753 pcg 1.17 <h4>
4754     <a name="R4405"></a>RECV
4755     MESSAGE set_tree</h4>
4756     NUMERIC TYPE (hex): 4405<p>
4757     </p>
4758     <table border="1" width="100%">
4759 pcg 1.1 <tr>
4760 pcg 1.17 <th width="10%">NAME</th>
4761     <th width="10%">TYPE</th>
4762     <th width="15%">DEFAULT</th>
4763     <th>DESCRIPTION</th>
4764     <th width="15%">DEC-GUARD</th>
4765 pcg 1.1 </tr>
4766     <tr>
4767     <td>channel</td>
4768 pcg 1.3 <td>U16</td>
4769 pcg 1.17 <td> </td>
4770 pcg 1.3 <td>
4771 pcg 1.17
4772      
4773     </td>
4774     <td>
4775     <b></b>
4776      
4777     </td>
4778 pcg 1.1 </tr>
4779     <tr>
4780     <td>tree</td>
4781     <td>TREE</td>
4782 pcg 1.17 <td> </td>
4783     <td>
4784    
4785      
4786     </td>
4787 pcg 1.3 <td>
4788 pcg 1.17 <b></b>
4789      
4790     </td>
4791 pcg 1.1 </tr>
4792     </table>
4793    
4794 pcg 1.17 <h4>
4795     <a name="R4406"></a>RECV
4796     MESSAGE upd_tree</h4>
4797     NUMERIC TYPE (hex): 4406<p>
4798     </p>
4799     <table border="1" width="100%">
4800 pcg 1.1 <tr>
4801 pcg 1.17 <th width="10%">NAME</th>
4802     <th width="10%">TYPE</th>
4803     <th width="15%">DEFAULT</th>
4804     <th>DESCRIPTION</th>
4805     <th width="15%">DEC-GUARD</th>
4806 pcg 1.1 </tr>
4807     <tr>
4808     <td>channel</td>
4809 pcg 1.3 <td>U16</td>
4810 pcg 1.17 <td> </td>
4811     <td>
4812    
4813      
4814     </td>
4815 pcg 1.3 <td>
4816 pcg 1.17 <b></b>
4817      
4818     </td>
4819 pcg 1.1 </tr>
4820     <tr>
4821     <td>tree</td>
4822     <td>TREE</td>
4823 pcg 1.17 <td> </td>
4824     <td>
4825    
4826      
4827     </td>
4828 pcg 1.3 <td>
4829 pcg 1.17 <b></b>
4830      
4831     </td>
4832 pcg 1.1 </tr>
4833     </table>
4834    
4835 pcg 1.17 <h4>
4836     <a name="R4409"></a>RECV
4837     MESSAGE superko</h4>
4838     NUMERIC TYPE (hex): 4409<p>
4839     Superko-warning.
4840     </p>
4841     <table border="1" width="100%">
4842 pcg 1.1 <tr>
4843 pcg 1.17 <th width="10%">NAME</th>
4844     <th width="10%">TYPE</th>
4845     <th width="15%">DEFAULT</th>
4846     <th>DESCRIPTION</th>
4847     <th width="15%">DEC-GUARD</th>
4848 pcg 1.1 </tr>
4849     <tr>
4850     <td>channel</td>
4851 pcg 1.3 <td>U16</td>
4852 pcg 1.17 <td> </td>
4853     <td>
4854    
4855      
4856     </td>
4857 pcg 1.3 <td>
4858 pcg 1.17 <b></b>
4859      
4860     </td>
4861 pcg 1.1 </tr>
4862     </table>
4863    
4864 pcg 1.17 <h4>
4865     <a name="R440b"></a>RECV
4866     MESSAGE final_result</h4>
4867     NUMERIC TYPE (hex): 440b<p>
4868     </p>
4869     <table border="1" width="100%">
4870 pcg 1.1 <tr>
4871 pcg 1.17 <th width="10%">NAME</th>
4872     <th width="10%">TYPE</th>
4873     <th width="15%">DEFAULT</th>
4874     <th>DESCRIPTION</th>
4875     <th width="15%">DEC-GUARD</th>
4876 pcg 1.1 </tr>
4877     <tr>
4878     <td>channel</td>
4879 pcg 1.3 <td>U16</td>
4880 pcg 1.17 <td> </td>
4881 pcg 1.3 <td>
4882 pcg 1.17
4883      
4884     </td>
4885     <td>
4886     <b></b>
4887      
4888     </td>
4889 pcg 1.1 </tr>
4890     <tr>
4891     <td>blackscore</td>
4892 pcg 1.10 <td>scorevalues</td>
4893 pcg 1.17 <td> </td>
4894     <td>
4895    
4896      
4897     </td>
4898 pcg 1.3 <td>
4899 pcg 1.17 <b></b>
4900      
4901     </td>
4902 pcg 1.1 </tr>
4903     <tr>
4904     <td>whitescore</td>
4905 pcg 1.10 <td>scorevalues</td>
4906 pcg 1.17 <td> </td>
4907 pcg 1.3 <td>
4908 pcg 1.17
4909      
4910     </td>
4911     <td>
4912     <b></b>
4913      
4914     </td>
4915 pcg 1.1 </tr>
4916     </table>
4917    
4918 pcg 1.17 <h4>
4919     <a name="R440e"></a>RECV
4920     MESSAGE req_undo</h4>
4921     NUMERIC TYPE (hex): 440e<p>
4922     </p>
4923     <table border="1" width="100%">
4924 pcg 1.1 <tr>
4925 pcg 1.17 <th width="10%">NAME</th>
4926     <th width="10%">TYPE</th>
4927     <th width="15%">DEFAULT</th>
4928     <th>DESCRIPTION</th>
4929     <th width="15%">DEC-GUARD</th>
4930 pcg 1.1 </tr>
4931     <tr>
4932     <td>channel</td>
4933 pcg 1.3 <td>U16</td>
4934 pcg 1.17 <td> </td>
4935 pcg 1.3 <td>
4936 pcg 1.1
4937 pcg 1.17
4938      
4939     </td>
4940     <td>
4941     <b></b>
4942      
4943     </td>
4944 pcg 1.1 </tr>
4945     </table>
4946    
4947 pcg 1.17 <h4>
4948     <a name="R4410"></a>RECV
4949     MESSAGE resign_game</h4>
4950     NUMERIC TYPE (hex): 4410<p>
4951     </p>
4952     <table border="1" width="100%">
4953 pcg 1.1 <tr>
4954 pcg 1.17 <th width="10%">NAME</th>
4955     <th width="10%">TYPE</th>
4956     <th width="15%">DEFAULT</th>
4957     <th>DESCRIPTION</th>
4958     <th width="15%">DEC-GUARD</th>
4959 pcg 1.1 </tr>
4960     <tr>
4961     <td>channel</td>
4962 pcg 1.3 <td>U16</td>
4963 pcg 1.17 <td> </td>
4964     <td>
4965    
4966      
4967     </td>
4968 pcg 1.3 <td>
4969 pcg 1.17 <b></b>
4970      
4971     </td>
4972 pcg 1.1 </tr>
4973     <tr>
4974     <td>player</td>
4975 pcg 1.3 <td>U8</td>
4976 pcg 1.17 <td> </td>
4977 pcg 1.3 <td>
4978 pcg 1.17
4979      
4980     </td>
4981     <td>
4982     <b></b>
4983      
4984     </td>
4985 pcg 1.1 </tr>
4986     </table>
4987    
4988 pcg 1.17 <h4>
4989     <a name="R441a"></a>RECV
4990     MESSAGE set_teacher</h4>
4991     NUMERIC TYPE (hex): 441a<p>
4992     </p>
4993     <table border="1" width="100%">
4994 pcg 1.1 <tr>
4995 pcg 1.17 <th width="10%">NAME</th>
4996     <th width="10%">TYPE</th>
4997     <th width="15%">DEFAULT</th>
4998     <th>DESCRIPTION</th>
4999     <th width="15%">DEC-GUARD</th>
5000 pcg 1.1 </tr>
5001     <tr>
5002     <td>channel</td>
5003 pcg 1.3 <td>U16</td>
5004 pcg 1.17 <td> </td>
5005     <td>
5006    
5007      
5008     </td>
5009 pcg 1.3 <td>
5010 pcg 1.17 <b></b>
5011      
5012     </td>
5013 pcg 1.1 </tr>
5014     <tr>
5015     <td>name</td>
5016 pcg 1.3 <td>username</td>
5017 pcg 1.17 <td> </td>
5018     <td>
5019    
5020      
5021     </td>
5022 pcg 1.3 <td>
5023 pcg 1.17 <b></b>
5024      
5025     </td>
5026 pcg 1.1 </tr>
5027     </table>
5028    
5029 pcg 1.17 <h4>
5030     <a name="R441d"></a>RECV
5031     MESSAGE owner_left</h4>
5032     NUMERIC TYPE (hex): 441d<p>
5033     Unclear.
5034     </p>
5035     <table border="1" width="100%">
5036 pcg 1.1 <tr>
5037 pcg 1.17 <th width="10%">NAME</th>
5038     <th width="10%">TYPE</th>
5039     <th width="15%">DEFAULT</th>
5040     <th>DESCRIPTION</th>
5041     <th width="15%">DEC-GUARD</th>
5042 pcg 1.1 </tr>
5043     <tr>
5044     <td>channel</td>
5045 pcg 1.3 <td>U16</td>
5046 pcg 1.17 <td> </td>
5047     <td>
5048    
5049      
5050     </td>
5051 pcg 1.3 <td>
5052 pcg 1.17 <b></b>
5053      
5054     </td>
5055 pcg 1.1 </tr>
5056     </table>
5057    
5058 pcg 1.17 <h4>
5059     <a name="R441e"></a>RECV
5060     MESSAGE teacher_left</h4>
5061     NUMERIC TYPE (hex): 441e<p>
5062     Unclear.
5063     </p>
5064     <table border="1" width="100%">
5065 pcg 1.1 <tr>
5066 pcg 1.17 <th width="10%">NAME</th>
5067     <th width="10%">TYPE</th>
5068     <th width="15%">DEFAULT</th>
5069     <th>DESCRIPTION</th>
5070     <th width="15%">DEC-GUARD</th>
5071 pcg 1.1 </tr>
5072     <tr>
5073     <td>channel</td>
5074 pcg 1.3 <td>U16</td>
5075 pcg 1.17 <td> </td>
5076     <td>
5077    
5078      
5079     </td>
5080 pcg 1.3 <td>
5081 pcg 1.17 <b></b>
5082      
5083     </td>
5084 pcg 1.1 </tr>
5085     </table>
5086    
5087 pcg 1.17 <h4>
5088     <a name="R4422"></a>RECV
5089     MESSAGE unknown4422</h4>
5090     NUMERIC TYPE (hex): 4422<p>
5091     change teacher? something to do with editing?
5092     </p>
5093     <table border="1" width="100%">
5094 pcg 1.1 <tr>
5095 pcg 1.17 <th width="10%">NAME</th>
5096     <th width="10%">TYPE</th>
5097     <th width="15%">DEFAULT</th>
5098     <th>DESCRIPTION</th>
5099     <th width="15%">DEC-GUARD</th>
5100 pcg 1.1 </tr>
5101     <tr>
5102     <td>channel</td>
5103 pcg 1.3 <td>U16</td>
5104 pcg 1.17 <td> </td>
5105 pcg 1.3 <td>
5106 pcg 1.17
5107      
5108     </td>
5109     <td>
5110     <b></b>
5111      
5112     </td>
5113 pcg 1.1 </tr>
5114     <tr>
5115     <td>name1</td>
5116 pcg 1.3 <td>username</td>
5117 pcg 1.17 <td> </td>
5118     <td>
5119    
5120      
5121     </td>
5122 pcg 1.3 <td>
5123 pcg 1.17 <b></b>
5124      
5125     </td>
5126 pcg 1.1 </tr>
5127     <tr>
5128     <td>name2</td>
5129 pcg 1.3 <td>username</td>
5130 pcg 1.26 <td> </td>
5131     <td>
5132    
5133      
5134     </td>
5135     <td>
5136     <b></b>
5137      
5138     </td>
5139     </tr>
5140     </table>
5141    
5142     <h4>
5143     <a name="R4428"></a>RECV
5144     MESSAGE add_tree</h4>
5145     NUMERIC TYPE (hex): 4428<p>
5146     <p>See <a href="#R4405">set_tree(4405)</a>. In addition, flags the tree as being
5147     uploaded completely.</p>
5148     </p>
5149     <table border="1" width="100%">
5150     <tr>
5151     <th width="10%">NAME</th>
5152     <th width="10%">TYPE</th>
5153     <th width="15%">DEFAULT</th>
5154     <th>DESCRIPTION</th>
5155     <th width="15%">DEC-GUARD</th>
5156     </tr>
5157     <tr>
5158     <td>channel</td>
5159     <td>U16</td>
5160     <td> </td>
5161     <td>
5162    
5163      
5164     </td>
5165     <td>
5166     <b></b>
5167      
5168     </td>
5169     </tr>
5170     <tr>
5171     <td>tree</td>
5172     <td>TREE</td>
5173 pcg 1.17 <td> </td>
5174 pcg 1.3 <td>
5175 pcg 1.17
5176      
5177     </td>
5178     <td>
5179     <b></b>
5180      
5181     </td>
5182 pcg 1.1 </tr>
5183     </table>
5184    
5185 pcg 1.17 <h4>
5186     <a name="R4433"></a>RECV
5187     MESSAGE req_result</h4>
5188     NUMERIC TYPE (hex): 4433<p>
5189     Unclear.
5190     </p>
5191     <table border="1" width="100%">
5192 pcg 1.1 <tr>
5193 pcg 1.17 <th width="10%">NAME</th>
5194     <th width="10%">TYPE</th>
5195     <th width="15%">DEFAULT</th>
5196     <th>DESCRIPTION</th>
5197     <th width="15%">DEC-GUARD</th>
5198 pcg 1.1 </tr>
5199     <tr>
5200     <td>channel</td>
5201 pcg 1.3 <td>U16</td>
5202 pcg 1.17 <td> </td>
5203 pcg 1.3 <td>
5204 pcg 1.1 # # recv_result(?)
5205 pcg 1.17
5206      
5207     </td>
5208     <td>
5209     <b></b>
5210      
5211     </td>
5212 pcg 1.1 </tr>
5213     </table>
5214    
5215 pcg 1.17 <h4>
5216     <a name="R4434"></a>RECV
5217     MESSAGE unknown4434</h4>
5218     NUMERIC TYPE (hex): 4434<p>
5219     </p>
5220     <table border="1" width="100%">
5221 pcg 1.1 <tr>
5222 pcg 1.17 <th width="10%">NAME</th>
5223     <th width="10%">TYPE</th>
5224     <th width="15%">DEFAULT</th>
5225     <th>DESCRIPTION</th>
5226     <th width="15%">DEC-GUARD</th>
5227 pcg 1.1 </tr>
5228     <tr>
5229     <td>channel</td>
5230 pcg 1.3 <td>U16</td>
5231 pcg 1.17 <td> </td>
5232     <td>
5233    
5234      
5235     </td>
5236 pcg 1.3 <td>
5237 pcg 1.17 <b></b>
5238      
5239     </td>
5240 pcg 1.1 </tr>
5241     <tr>
5242     <td>b1</td>
5243 pcg 1.3 <td>U8</td>
5244 pcg 1.17 <td> </td>
5245 pcg 1.3 <td>
5246 pcg 1.1 ?? !demonstration game??
5247 pcg 1.17
5248      
5249     </td>
5250     <td>
5251     <b></b>
5252      
5253     </td>
5254 pcg 1.1 </tr>
5255     </table>
5256    
5257     </body>
5258     </html>