ViewVC Help
View File | Revision Log | Show Annotations | Download File
/cvs/cvsroot/kgsueme/doc/protocol.html
Revision: 1.35
Committed: Fri Jul 25 19:39:15 2003 UTC (23 years, 2 months ago) by pcg
Content type: text/html
Branch: MAIN
Changes since 1.34: +85 -1 lines
Log Message:
*** empty log message ***

File Contents

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