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