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