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