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