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