ViewVC Help
View File | Revision Log | Show Annotations | Download File
/cvs/kgsueme/doc/protocol.html
Revision: 1.69
Committed: Mon May 31 03:05:30 2004 UTC (20 years ago) by root
Content type: text/html
Branch: MAIN
Changes since 1.68: +1 -1 lines
Log Message:
*** empty log message ***

File Contents

# User Rev Content
1 pcg 1.1 <html>
2     <head>
3     <title>KGS Protocol Description</title>
4 pcg 1.37 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
5 pcg 1.1 <!--
6     Copyright (C) 2003 Marc Lehmannn &lt;pcg@goof.com&gt;
7    
8     You can redistribute and/or modify this document under the terms of
9     the GNU General Public License as published by the Free Software
10     Foundation; either version 2 of the License, or (at your option) any
11     later version.
12    
13     This document is distributed in the hope that it will be useful,
14     but WITHOUT ANY WARRANTY; without even the implied warranty of
15     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
16     General Public License for more details.
17    
18     You should have received a copy of the GNU General Public License
19     along with this program; if not, write to the Free Software
20     Foundation, Inc. 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
21     -->
22     </head>
23     <body>
24    
25 root 1.69 <h1>$Revision: 1.69 $</h1>
26 pcg 1.9
27 pcg 1.1 <h1>KGS Protocol Description</h1>
28    
29     <p>This XML document describes the KGS protocol. It is also used
30     to automatically generate the perl parser for all the messages and
31     structures in the protocol. Adapting it to other languages should be
32 pcg 1.33 almost trivial.</p>
33 pcg 1.1
34 pcg 1.9 <p>
35 pcg 1.37 <b>Please note that wms has told me that he will change the
36     protocol in response to my efforts. No problems with changing the
37     protocol for good, but he does this just to make it more difficult
38     to reverse-engineer it, since his changes are neither required, nor
39     useful (they just make the protocol less robust, without adding added
40     value). He doesn't even care that this locks out some users who cannot
41     upgrade (cgoban2 isn't available for their platform anymore). It hurts
42     to see such a waste of time and efforts that could have been used to
43     fix bugs or improve the client...</b>
44 pcg 1.9 </p>
45    
46 pcg 1.4 <p>If you feel you need to update the visual appearance of this
47 pcg 1.10 document, feel free to look <tt>doc/doc2html.xsl</tt> and improve
48 pcg 1.4 it.</p>
49    
50 pcg 1.7 <p>The current version of this document can always be found at
51 root 1.67 <a href="http://cvs.schmorp.de/browse/*checkout*/kgsueme/doc/protocol.xml">here</a>, while
52 pcg 1.7 the HTML version of it can be found
53 root 1.67 <a href="http://cvs.schmorp.de/browse/*checkout*/kgsueme/doc/protocol.html">here</a>.</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 pcg 1.48 ascii strings ("<code>username</code>"), zero- or non-terminated
66     UCS2-Strings ("<code>ZSTRING</code>" or "<code>STRING</code>"). Yes,
67     I know java is supposed to do UTF-16, but no implementation seems to
68     care...</p>
69 pcg 1.1
70 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>
71     </p>
72 pcg 1.1
73     <h2>Stream and message structure.</h2>
74    
75 pcg 1.4 <p>After connecting to the server, a handshake byte is sent. It's
76     the major version number of the protocol the client expects to
77     receive. Version 3 and 4 are mostly the same, except that Version 4
78     clients expect server messages to be compressed, version 3 clients
79     not.</p>
80    
81     <p>The server sends back his protocol number, which is always 3 in
82     the current protocol. Most of the protocol variation is determined by
83     the server using the client version that is used in the initial login
84     message, not the initial handshake byte.</p>
85 pcg 1.1
86     <p>After the initial handshake, the client sends uncompressed
87     messages, while the server sends back a zlib-compressed
88     stream (<a href="http://rfc1950.x42.com/">rfc1950</a> and <a href="http://rfc1950.x42.com/">rfc1951</a>).</p>
89    
90     <p>All messages have the same header:</p>
91    
92 pcg 1.3 <h4>STRUCTURE message_header</h4>
93 pcg 1.17 <p>
94     </p>
95     <table border="1" width="100%">
96     <tr>
97     <th width="10%">NAME</th>
98 pcg 1.37 <th width="8%">TYPE</th>
99     <th width="4%">VALUE</th>
100 pcg 1.17 <th>DESCRIPTION</th>
101 pcg 1.37 <th width="10%">GUARD</th>
102 pcg 1.1 </tr>
103     <tr>
104     <td>_unknown</td>
105 pcg 1.3 <td>U16</td>
106 pcg 1.17 <td> </td>
107     <td>
108    
109      
110     </td>
111 pcg 1.3 <td>
112 pcg 1.17 <b></b>
113      
114     </td>
115 pcg 1.1 </tr>
116     <tr>
117     <td>length</td>
118 pcg 1.3 <td>U16</td>
119 pcg 1.17 <td> </td>
120     <td>
121 pcg 1.22
122 pcg 1.17
123      
124     </td>
125 pcg 1.3 <td>
126 pcg 1.17 <b></b>
127      
128     </td>
129 pcg 1.1 </tr>
130     <tr>
131     <td>type</td>
132 pcg 1.3 <td>U16</td>
133 pcg 1.17 <td> </td>
134     <td>
135    
136      
137     </td>
138 pcg 1.3 <td>
139 pcg 1.17 <b></b>
140      
141     </td>
142 pcg 1.1 </tr>
143     </table>
144    
145 pcg 1.3 <h2>Primitive types used in the protocol.</h2>
146    
147 pcg 1.9 <p>Apart from the basic types, I need to define some extra types to
148     deal with fixed-point values (based on integer types) or fixed-length
149     strings (either 7-bit-ascii or more limited (<code>A</code>), or UCS-2
150     based (<code>S</code>)).</p>
151    
152 pcg 1.4 <h4>TYPE username</h4>
153 pcg 1.22 BASE TYPE A, LENGTH 10, MULTIPLIER <br />
154 pcg 1.8
155     <p>The basic user or login name, used throughout the protocol
156     as a handle to the user.</p>
157    
158 pcg 1.4 <h4>TYPE roomname</h4>
159 pcg 1.17 BASE TYPE S, LENGTH 25, MULTIPLIER <br />
160 pcg 1.3 <!-- argh, how horribly broken -->
161 pcg 1.8
162     <p>Many strings in the protocol are fixed-width for no good reason
163 pcg 1.17 (maybe this is one reason for using compression in newer versions, as
164 pcg 1.8 the packets itself are wasting lots of space.</p>
165    
166 pcg 1.14 <h4>TYPE realname</h4>
167 pcg 1.17 BASE TYPE S, LENGTH 50, MULTIPLIER <br />
168 pcg 1.14 <h4>TYPE email</h4>
169 pcg 1.17 BASE TYPE S, LENGTH 70, MULTIPLIER <br />
170 pcg 1.14 <h4>TYPE userinfo</h4>
171 pcg 1.17 BASE TYPE S, LENGTH 1000, MULTIPLIER <br />
172 pcg 1.14 <h4>TYPE url</h4>
173 pcg 1.17 BASE TYPE A, LENGTH 100, MULTIPLIER <br />
174 pcg 1.14
175     <p>Used in user_record.</p>
176    
177 pcg 1.4 <h4>TYPE locale</h4>
178 pcg 1.17 BASE TYPE A, LENGTH 5, MULTIPLIER <br />
179 pcg 1.8
180     <p>A kind of locale specifier. It seems the general format seems to be
181     lowercase language, underscore, uppercase location, e.g. en_US. More
182     fancy specifications don't fit.</p>
183    
184 pcg 1.4 <h4>TYPE flag</h4>
185 pcg 1.17 BASE TYPE U8, LENGTH , MULTIPLIER 1<br />
186 pcg 1.8
187     <p>Just a simple boolean value. 0 means false, and 1 generally true,
188 pcg 1.40 but I suggest accepting != 0 as true.</p>
189 pcg 1.8
190 pcg 1.6 <h4>TYPE komi16</h4>
191 pcg 1.17 BASE TYPE I16, LENGTH , MULTIPLIER 2<br />
192 pcg 1.6 <h4>TYPE komi32</h4>
193 pcg 1.17 BASE TYPE I32, LENGTH , MULTIPLIER 2<br />
194 pcg 1.19 <h4>TYPE komi324</h4>
195     BASE TYPE I32, LENGTH , MULTIPLIER 4<br />
196 pcg 1.8
197     <p>Komi values are multiplied by 2 to make them integer in the
198 pcg 1.19 protocol. Well, *most* of the time at least...</p>
199 pcg 1.8
200 pcg 1.4 <h4>TYPE result</h4>
201 pcg 1.17 BASE TYPE I32, LENGTH , MULTIPLIER 2<br />
202 pcg 1.8
203 pcg 1.13 <p>The game result is also multiplied by two to give it higher
204     resolution. There are also special values for wins by time etc., either
205     in result or in the score* types, or both :)</p>
206 pcg 1.8
207 pcg 1.11 <h4>TYPE score16</h4>
208 pcg 1.17 BASE TYPE I16, LENGTH , MULTIPLIER 4<br />
209 pcg 1.11 <h4>TYPE score32</h4>
210 pcg 1.17 BASE TYPE I32, LENGTH , MULTIPLIER 4<br />
211 pcg 1.26 <h4>TYPE score1000</h4>
212     BASE TYPE I32, LENGTH , MULTIPLIER 1000<br />
213 pcg 1.8
214     <p>A score value (used for displaying the score at the end of a game)
215 pcg 1.13 are multiplied by four for a change (the 0.25 resolution is not
216     used). In game structures it is encoded by dividing by two, though, so
217 pcg 1.26 watch out! And in some others, it's encoded by multiplying by 1000...
218     yuck!</p>
219 pcg 1.8
220 pcg 1.4 <h4>TYPE time</h4>
221 pcg 1.17 BASE TYPE U32, LENGTH , MULTIPLIER 1000<br />
222 pcg 1.8
223     <p>Time values are multiplied by 1000, giving them millisecond
224     accuracy.</p>
225 pcg 1.3
226 pcg 1.14 <h4>TYPE timestamp</h4>
227 pcg 1.17 BASE TYPE U64, LENGTH , MULTIPLIER 1000<br />
228 pcg 1.14
229     <p>64 bit timeval, milliseconds since posix epoch, e.g. <code>my
230     ($year, $month, $day) = (gmtime $date * 0.001)[5,4,3];</code>
231     </p>
232    
233 pcg 1.15 <h4>TYPE password</h4>
234 pcg 1.17 BASE TYPE U64, LENGTH , MULTIPLIER <br />
235 pcg 1.15
236     <p>Password is a number calculated as follows (VERY insecure, basically
237     plaintext!): <code>password = 0; for char in characters do password ←
238     password * 1055 + ascii_code (char)</code>
239     </p>
240    
241 pcg 1.60 <h4>TYPE CLIENTID16</h4>
242 pcg 1.58 BASE TYPE U16, LENGTH , MULTIPLIER 1<br />
243 pcg 1.60 <h4>TYPE CLIENTID8</h4>
244     BASE TYPE U8, LENGTH , MULTIPLIER 1<br />
245 pcg 1.58
246     <p>An id chosen by the client, usually starting at one, to identify
247     some handshakes initiated by the client, such as new games or memos.</p>
248    
249 pcg 1.37 <h2>Enumeration and set types used in the protocol.</h2>
250 pcg 1.1
251 pcg 1.37 <h4>enum: GAMETYPE</h4>
252     <p>
253     </p>
254     <table border="1" width="100%">
255     <tr>
256     <th width="10%">NAME</th>
257     <th width="8%">TYPE</th>
258     <th width="4%">VALUE</th>
259     <th>DESCRIPTION</th>
260     <th width="10%">GUARD</th>
261     </tr>
262     <tr>
263     <td>DEMONSTRATION</td>
264     <td></td>
265     <td>0 </td>
266     <td>
267    
268      
269     </td>
270     <td>
271     <b></b>
272      
273     </td>
274     </tr>
275     <tr>
276 pcg 1.54 <td>EDITING</td>
277 pcg 1.37 <td></td>
278     <td>1 </td>
279     <td>
280    
281      
282     </td>
283     <td>
284     <b></b>
285      
286     </td>
287     </tr>
288     <tr>
289 pcg 1.54 <td>TEACHING</td>
290 pcg 1.37 <td></td>
291     <td>2 </td>
292     <td>
293    
294      
295     </td>
296     <td>
297     <b></b>
298      
299     </td>
300     </tr>
301     <tr>
302 pcg 1.54 <td>SIMUL</td>
303 pcg 1.37 <td></td>
304     <td>3 </td>
305     <td>
306    
307      
308     </td>
309     <td>
310     <b></b>
311      
312     </td>
313     </tr>
314     <tr>
315 pcg 1.54 <td>FREE</td>
316 pcg 1.37 <td></td>
317     <td>4 </td>
318     <td>
319    
320      
321     </td>
322     <td>
323     <b></b>
324      
325     </td>
326     </tr>
327     <tr>
328 pcg 1.54 <td>RATED</td>
329 pcg 1.37 <td></td>
330 pcg 1.54 <td>5 </td>
331 pcg 1.37 <td>
332    
333      
334     </td>
335     <td>
336     <b></b>
337      
338     </td>
339     </tr>
340     <tr>
341     <td>PRIVATE</td>
342     <td></td>
343 pcg 1.54 <td>128 </td>
344 pcg 1.37 <td>
345    
346      
347     </td>
348     <td>
349     <b></b>
350      
351     </td>
352     </tr>
353     </table>
354    
355     <h4>set: GAMEFLAG</h4>
356     <p>
357     </p>
358     <table border="1" width="100%">
359     <tr>
360     <th width="10%">NAME</th>
361     <th width="8%">TYPE</th>
362     <th width="4%">VALUE</th>
363     <th>DESCRIPTION</th>
364     <th width="10%">GUARD</th>
365     </tr>
366     <tr>
367     <td>SCORED</td>
368     <td></td>
369     <td>1 </td>
370     <td>
371    
372      
373     </td>
374     <td>
375     <b></b>
376      
377     </td>
378     </tr>
379     <tr>
380     <td>ADJOURNED</td>
381     <td></td>
382     <td>2 </td>
383     <td>
384    
385      
386     </td>
387     <td>
388     <b></b>
389      
390     </td>
391     </tr>
392     <tr>
393     <td>UPLOADED</td>
394     <td></td>
395     <td>4 </td>
396     <td>
397    
398      
399     </td>
400     <td>
401     <b></b>
402      
403     </td>
404     </tr>
405     </table>
406    
407 pcg 1.40 <h4>set: ROOMFLAG</h4>
408     <p>
409     </p>
410     <table border="1" width="100%">
411     <tr>
412     <th width="10%">NAME</th>
413     <th width="8%">TYPE</th>
414     <th width="4%">VALUE</th>
415     <th>DESCRIPTION</th>
416     <th width="10%">GUARD</th>
417     </tr>
418     <tr>
419     <td>ADMIN</td>
420     <td></td>
421     <td>0x01 </td>
422     <td>
423    
424      
425     </td>
426     <td>
427     <b></b>
428      
429     </td>
430     </tr>
431     <tr>
432     <td>DEFAULT</td>
433     <td></td>
434     <td>0x04 </td>
435     <td>
436    
437      
438     </td>
439     <td>
440     <b></b>
441      
442     </td>
443     </tr>
444     <tr>
445     <td>PRIVATE</td>
446     <td></td>
447     <td>0x10 </td>
448     <td>
449    
450      
451     </td>
452     <td>
453     <b></b>
454      
455     </td>
456     </tr>
457     </table>
458    
459     <h4>set: GAMESTATUS</h4>
460     <p>
461     </p>
462     <table border="1" width="100%">
463     <tr>
464     <th width="10%">NAME</th>
465     <th width="8%">TYPE</th>
466     <th width="4%">VALUE</th>
467     <th>DESCRIPTION</th>
468     <th width="10%">GUARD</th>
469     </tr>
470     <tr>
471     <td>INPLAY</td>
472     <td></td>
473     <td>0x80 </td>
474     <td>
475    
476      
477     </td>
478     <td>
479     <b></b>
480      
481     </td>
482     </tr>
483     </table>
484    
485 pcg 1.37 <h4>enum: SCORE</h4>
486     <p>
487     <p>Special score values, in addition to numerical scores. Some are also used with their
488     negative value.</p>
489     </p>
490     <table border="1" width="100%">
491     <tr>
492     <th width="10%">NAME</th>
493     <th width="8%">TYPE</th>
494     <th width="4%">VALUE</th>
495     <th>DESCRIPTION</th>
496     <th width="10%">GUARD</th>
497     </tr>
498     <tr>
499     <td>TIMEOUT</td>
500     <td></td>
501     <td>16384 / 4 </td>
502     <td>
503     Also used negatively to score for white instead of black.
504    
505    
506      
507     </td>
508     <td>
509     <b></b>
510      
511     </td>
512     </tr>
513     <tr>
514     <td>RESIGN</td>
515     <td></td>
516     <td>16385 / 4 </td>
517     <td>
518     Also used negatively to score for white instead of black.
519    
520    
521      
522     </td>
523     <td>
524     <b></b>
525      
526     </td>
527     </tr>
528     <tr>
529     <td>FORFEIT</td>
530     <td></td>
531     <td> 0 / 4 </td>
532     <td>
533     Also used negatively to score for white instead of black.
534    
535    
536      
537     </td>
538     <td>
539     <b></b>
540      
541     </td>
542     </tr>
543     <tr>
544     <td>JIGO</td>
545     <td></td>
546     <td>16386 / 4 </td>
547     <td>
548    
549    
550      
551     </td>
552     <td>
553     <b></b>
554      
555     </td>
556     </tr>
557     <tr>
558     <td>NO_RESULT</td>
559     <td></td>
560     <td>16386 / 4 </td>
561     <td>
562    
563      
564     </td>
565     <td>
566     <b></b>
567      
568     </td>
569     </tr>
570     <tr>
571     <td>ADJOURNED</td>
572     <td></td>
573     <td>16387 / 4 </td>
574     <td>
575    
576      
577     </td>
578     <td>
579     <b></b>
580      
581     </td>
582     </tr>
583     <tr>
584     <td>UNKNOWN</td>
585     <td></td>
586     <td>16389 / 4 </td>
587     <td>
588    
589      
590     </td>
591     <td>
592     <b></b>
593      
594     </td>
595     </tr>
596     </table>
597    
598     <h4>enum: RULESET</h4>
599     <p>
600     </p>
601     <table border="1" width="100%">
602     <tr>
603     <th width="10%">NAME</th>
604     <th width="8%">TYPE</th>
605     <th width="4%">VALUE</th>
606     <th>DESCRIPTION</th>
607     <th width="10%">GUARD</th>
608     </tr>
609     <tr>
610     <td>JAPANESE</td>
611     <td></td>
612     <td>0 </td>
613     <td>
614    
615      
616     </td>
617     <td>
618     <b></b>
619      
620     </td>
621     </tr>
622     <tr>
623     <td>CHINESE </td>
624     <td></td>
625     <td>1 </td>
626     <td>
627    
628      
629     </td>
630     <td>
631     <b></b>
632      
633     </td>
634     </tr>
635     <tr>
636     <td>AGA</td>
637     <td></td>
638     <td>2 </td>
639     <td>
640    
641      
642     </td>
643     <td>
644     <b></b>
645      
646     </td>
647     </tr>
648     <tr>
649     <td>NEW_ZEALAND</td>
650     <td></td>
651     <td>3 </td>
652     <td>
653    
654      
655     </td>
656     <td>
657     <b></b>
658      
659     </td>
660     </tr>
661     </table>
662    
663     <h4>enum: TIMESYS</h4>
664     <p>
665     </p>
666     <table border="1" width="100%">
667     <tr>
668     <th width="10%">NAME</th>
669     <th width="8%">TYPE</th>
670     <th width="4%">VALUE</th>
671     <th>DESCRIPTION</th>
672     <th width="10%">GUARD</th>
673     </tr>
674     <tr>
675     <td>NONE</td>
676     <td></td>
677     <td>0 </td>
678     <td>
679    
680      
681     </td>
682     <td>
683     <b></b>
684      
685     </td>
686     </tr>
687     <tr>
688     <td>ABSOLUTE</td>
689     <td></td>
690     <td>1 </td>
691     <td>
692    
693      
694     </td>
695     <td>
696     <b></b>
697      
698     </td>
699     </tr>
700     <tr>
701     <td>BYO_YOMI</td>
702     <td></td>
703     <td>2 </td>
704     <td>
705    
706      
707     </td>
708     <td>
709     <b></b>
710      
711     </td>
712     </tr>
713     <tr>
714     <td>CANADIAN</td>
715     <td></td>
716     <td>3 </td>
717     <td>
718    
719      
720     </td>
721     <td>
722     <b></b>
723      
724     </td>
725     </tr>
726     </table>
727    
728     <h4>enum: COLOUR</h4>
729     <p>
730     <p>Convinience constants used in several places.</p>
731     </p>
732     <table border="1" width="100%">
733     <tr>
734     <th width="10%">NAME</th>
735     <th width="8%">TYPE</th>
736     <th width="4%">VALUE</th>
737     <th>DESCRIPTION</th>
738     <th width="10%">GUARD</th>
739     </tr>
740     <tr>
741     <td>BLACK</td>
742     <td></td>
743     <td>0 </td>
744     <td>
745    
746      
747     </td>
748     <td>
749     <b></b>
750      
751     </td>
752     </tr>
753     <tr>
754     <td>WHITE</td>
755     <td></td>
756     <td>1 </td>
757     <td>
758 pcg 1.63
759      
760     </td>
761     <td>
762     <b></b>
763      
764     </td>
765     </tr>
766     <tr>
767     <td>NONE</td>
768     <td></td>
769     <td>2 </td>
770     <td>
771    
772 pcg 1.37  
773     </td>
774     <td>
775     <b></b>
776      
777     </td>
778     </tr>
779     </table>
780 pcg 1.1
781 pcg 1.3 <h2>Structs used in send &amp; receive messages</h2>
782 pcg 1.1
783 pcg 1.3 <h4>STRUCTURE user</h4>
784     CLASS: KGS::User<br />
785 pcg 1.17 <p>
786 pcg 1.9
787 pcg 1.40 <p>Almost everywhere a user + flags is required, even used in some places
788 pcg 1.9 where only a username is required. I see no general rule on when a
789 pcg 1.17 complete user and when a partial user is required.</p>
790     </p>
791     <table border="1" width="100%">
792     <tr>
793     <th width="10%">NAME</th>
794 pcg 1.37 <th width="8%">TYPE</th>
795     <th width="4%">VALUE</th>
796 pcg 1.17 <th>DESCRIPTION</th>
797 pcg 1.37 <th width="10%">GUARD</th>
798 pcg 1.1 </tr>
799     <tr>
800     <td>name</td>
801 pcg 1.3 <td>username</td>
802 pcg 1.17 <td> </td>
803     <td>
804    
805      
806     </td>
807 pcg 1.3 <td>
808 pcg 1.17 <b></b>
809      
810     </td>
811 pcg 1.1 </tr>
812     <tr>
813     <td>flags</td>
814 pcg 1.3 <td>U32</td>
815 pcg 1.17 <td>1 </td>
816     <td>
817    
818      
819     </td>
820 pcg 1.3 <td>
821 pcg 1.17 <b></b>
822      
823     </td>
824 pcg 1.1 </tr>
825     </table>
826    
827 pcg 1.6 <h4>STRUCTURE rules</h4>
828     CLASS: KGS::Rules<br />
829 pcg 1.17 <p>
830    
831 pcg 1.48 <p>This structure is used for challenges as well as in the special
832 pcg 1.17 TREE "subprotocol". It tightly encodes the game parameters.</p>
833     </p>
834     <table border="1" width="100%">
835 pcg 1.6 <tr>
836 pcg 1.17 <th width="10%">NAME</th>
837 pcg 1.37 <th width="8%">TYPE</th>
838     <th width="4%">VALUE</th>
839 pcg 1.17 <th>DESCRIPTION</th>
840 pcg 1.37 <th width="10%">GUARD</th>
841 pcg 1.6 </tr>
842     <tr>
843     <td>ruleset</td>
844     <td>U8</td>
845 pcg 1.17 <td> </td>
846 pcg 1.6 <td>
847 pcg 1.17
848      
849     </td>
850     <td>
851     <b></b>
852      
853     </td>
854 pcg 1.6 </tr>
855     <tr>
856     <td>size</td>
857     <td>U8</td>
858 pcg 1.17 <td> </td>
859     <td>
860    
861      
862     </td>
863 pcg 1.6 <td>
864 pcg 1.17 <b></b>
865      
866     </td>
867 pcg 1.6 </tr>
868     <tr>
869     <td>handicap</td>
870     <td>U8</td>
871 pcg 1.17 <td> </td>
872 pcg 1.6 <td>
873 pcg 1.17
874      
875     </td>
876     <td>
877     <b></b>
878      
879     </td>
880 pcg 1.6 </tr>
881     <tr>
882     <td>komi</td>
883     <td>komi16</td>
884 pcg 1.17 <td> </td>
885     <td>
886    
887      
888     </td>
889 pcg 1.6 <td>
890 pcg 1.17 <b></b>
891      
892     </td>
893 pcg 1.6 </tr>
894     <tr>
895     <td>timesys</td>
896     <td>U8</td>
897 pcg 1.17 <td> </td>
898 pcg 1.6 <td>
899 pcg 1.17
900      
901     </td>
902     <td>
903     <b></b>
904      
905     </td>
906 pcg 1.6 </tr>
907     <tr>
908     <td>time</td>
909     <td>U32</td>
910 pcg 1.17 <td> </td>
911     <td>
912    
913      
914     </td>
915 pcg 1.6 <td>
916 pcg 1.17 <b></b>
917      
918     </td>
919 pcg 1.6 </tr>
920     <tr>
921     <td>interval</td>
922     <td>U32</td>
923 pcg 1.17 <td> </td>
924 pcg 1.6 <td>
925     byo-yomi time / canadian time
926 pcg 1.17
927      
928     </td>
929     <td>
930     <b></b>
931      
932     </td>
933 pcg 1.6 </tr>
934     <tr>
935     <td>count</td>
936     <td>U16</td>
937 pcg 1.17 <td> </td>
938 pcg 1.6 <td>
939     periods / moves
940 pcg 1.17
941      
942     </td>
943     <td>
944     <b></b>
945      
946     </td>
947 pcg 1.6 </tr>
948     </table>
949    
950 pcg 1.32 <h2>Structs used in messages from the client</h2>
951 pcg 1.1
952 pcg 1.32 <h2>Client-generated messages</h2>
953 pcg 1.17
954     <h4>
955 pcg 1.32 <a name="C0000"></a>ORIGIN: CLIENT;
956     MESSAGE: login</h4>
957 pcg 1.17 NUMERIC TYPE (hex): 0000<p>
958 pcg 1.9
959 pcg 1.17 <p>Sent to login, usually the first message sent. The password needs to be set when the
960 pcg 1.9 guest flag is true.
961 pcg 1.32 Possible replies: <a href="#S0001">login(0001)</a>
962     <a href="#S0002">login(0002)</a>
963     <a href="#S0003">login(0003)</a>
964     <a href="#S0004">login(0004)</a>
965     <a href="#S0005">login(0005)</a>
966     <a href="#S0006">login(0006)</a>
967     <a href="#S0018">login(0018)</a>
968 pcg 1.40 <a href="#S001c">login(001c)</a>
969 pcg 1.32 <a href="#S0022">login(0022)</a>. Followed by: <a href="#S001b">timewarning_default(001b)</a> <a href="#S0411">chal_defaults(0411)</a>
970 pcg 1.17 </p>
971     </p>
972     <table border="1" width="100%">
973     <tr>
974     <th width="10%">NAME</th>
975 pcg 1.37 <th width="8%">TYPE</th>
976     <th width="4%">VALUE</th>
977 pcg 1.17 <th>DESCRIPTION</th>
978 pcg 1.37 <th width="10%">GUARD</th>
979 pcg 1.1 </tr>
980     <tr>
981     <td>ver_major</td>
982 pcg 1.3 <td>U32</td>
983 pcg 1.17 <td>2 </td>
984     <td>
985    
986      
987     </td>
988 pcg 1.3 <td>
989 pcg 1.17 <b></b>
990      
991     </td>
992 pcg 1.1 </tr>
993     <tr>
994     <td>ver_minor</td>
995 pcg 1.3 <td>U32</td>
996 pcg 1.52 <td>6 </td>
997 pcg 1.3 <td>
998 pcg 1.17
999      
1000     </td>
1001     <td>
1002     <b></b>
1003      
1004     </td>
1005 pcg 1.1 </tr>
1006     <tr>
1007     <td>ver_micro</td>
1008 pcg 1.3 <td>U32</td>
1009 pcg 1.55 <td>1 </td>
1010 pcg 1.17 <td>
1011    
1012      
1013     </td>
1014 pcg 1.3 <td>
1015 pcg 1.17 <b></b>
1016      
1017     </td>
1018 pcg 1.1 </tr>
1019     <tr>
1020 pcg 1.3 <td>name</td>
1021     <td>username</td>
1022 pcg 1.17 <td> </td>
1023 pcg 1.3 <td>
1024 pcg 1.17
1025      
1026     </td>
1027     <td>
1028     <b></b>
1029      
1030     </td>
1031 pcg 1.1 </tr>
1032     <tr>
1033 pcg 1.15 <td>password</td>
1034     <td>password</td>
1035 pcg 1.17 <td>0 </td>
1036     <td>
1037    
1038      
1039     </td>
1040 pcg 1.3 <td>
1041 pcg 1.17 <b></b>
1042      
1043     </td>
1044 pcg 1.1 </tr>
1045     <tr>
1046 pcg 1.2 <td>guest</td>
1047 pcg 1.3 <td>flag</td>
1048 pcg 1.17 <td>1 </td>
1049 pcg 1.3 <td>
1050 pcg 1.17
1051      
1052     </td>
1053     <td>
1054     <b></b>
1055      
1056     </td>
1057 pcg 1.1 </tr>
1058     <tr>
1059     <td>_unknown3</td>
1060 pcg 1.3 <td>U16</td>
1061 pcg 1.17 <td>0 </td>
1062     <td>
1063    
1064      
1065     </td>
1066 pcg 1.3 <td>
1067 pcg 1.17 <b></b>
1068      
1069     </td>
1070 pcg 1.1 </tr>
1071     <tr>
1072 pcg 1.2 <td>locale</td>
1073 pcg 1.3 <td>locale</td>
1074 pcg 1.17 <td>"en_US" </td>
1075 pcg 1.3 <td>
1076 pcg 1.17
1077      
1078     </td>
1079     <td>
1080     <b></b>
1081      
1082     </td>
1083 pcg 1.1 </tr>
1084     <tr>
1085     <td>clientver</td>
1086     <td>DATA</td>
1087 pcg 1.49 <td>"1.4.2_03:Swing app:Sun Microsystems Inc." </td>
1088 pcg 1.3 <td>
1089 pcg 1.4 The "default" is the java vm version, not exactly he client version. However,
1090 pcg 1.49 you should always send a text like "Jonathan's C client version 0.6" or somesuch,
1091 pcg 1.4 so the server can, if necessary, block broken clients or client versions.
1092 pcg 1.17
1093      
1094     </td>
1095     <td>
1096     <b></b>
1097      
1098     </td>
1099 pcg 1.1 </tr>
1100     </table>
1101    
1102 pcg 1.17 <h4>
1103 pcg 1.32 <a name="C0007"></a>ORIGIN: CLIENT;
1104     MESSAGE: req_userinfo</h4>
1105 pcg 1.17 NUMERIC TYPE (hex): 0007<p>
1106 pcg 1.32 <p>Request info about a certain user. Possible reply: <a href="#S0008">userinfo(0008)</a>
1107 pcg 1.17 </p>
1108 pcg 1.38 </p>
1109     <table border="1" width="100%">
1110     <tr>
1111     <th width="10%">NAME</th>
1112     <th width="8%">TYPE</th>
1113     <th width="4%">VALUE</th>
1114     <th>DESCRIPTION</th>
1115     <th width="10%">GUARD</th>
1116     </tr>
1117     <tr>
1118     <td>name</td>
1119     <td>username</td>
1120     <td> </td>
1121     <td>
1122    
1123      
1124     </td>
1125     <td>
1126     <b></b>
1127      
1128     </td>
1129     </tr>
1130     </table>
1131    
1132     <h4>
1133     <a name="C0007"></a>ORIGIN: CLIENT;
1134 pcg 1.32 MESSAGE: update_userinfo</h4>
1135 pcg 1.17 NUMERIC TYPE (hex): 0007<p>
1136     <p>Update user info. Message structure is very similar
1137 pcg 1.32 to <a href="#S0008">userinfo(0008)</a>.</p>
1138 pcg 1.17 </p>
1139     <table border="1" width="100%">
1140 pcg 1.15 <tr>
1141 pcg 1.17 <th width="10%">NAME</th>
1142 pcg 1.37 <th width="8%">TYPE</th>
1143     <th width="4%">VALUE</th>
1144 pcg 1.17 <th>DESCRIPTION</th>
1145 pcg 1.37 <th width="10%">GUARD</th>
1146 pcg 1.15 </tr>
1147     <tr>
1148     <td>setpass</td>
1149     <td>flag</td>
1150 pcg 1.17 <td> </td>
1151 pcg 1.15 <td>
1152     Should the password be updated?
1153 pcg 1.17
1154      
1155     </td>
1156     <td>
1157     <b></b>
1158      
1159     </td>
1160 pcg 1.15 </tr>
1161     <tr>
1162     <td>password</td>
1163     <td>password</td>
1164 pcg 1.17 <td>0 </td>
1165 pcg 1.15 <td>
1166 pcg 1.17
1167      
1168     </td>
1169     <td>
1170     <b></b>
1171      
1172     </td>
1173 pcg 1.15 </tr>
1174     <tr>
1175     <td>realname</td>
1176     <td>realname</td>
1177 pcg 1.17 <td> </td>
1178     <td>
1179    
1180      
1181     </td>
1182 pcg 1.15 <td>
1183 pcg 1.17 <b></b>
1184      
1185     </td>
1186 pcg 1.15 </tr>
1187     <tr>
1188     <td>email</td>
1189     <td>email</td>
1190 pcg 1.17 <td> </td>
1191 pcg 1.15 <td>
1192 pcg 1.17
1193      
1194     </td>
1195     <td>
1196     <b></b>
1197      
1198     </td>
1199 pcg 1.15 </tr>
1200     <tr>
1201     <td>info</td>
1202     <td>userinfo</td>
1203 pcg 1.17 <td> </td>
1204     <td>
1205    
1206      
1207     </td>
1208 pcg 1.15 <td>
1209 pcg 1.17 <b></b>
1210      
1211     </td>
1212 pcg 1.15 </tr>
1213     <tr>
1214     <td>homepage</td>
1215     <td>url</td>
1216 pcg 1.17 <td> </td>
1217 pcg 1.15 <td>
1218 pcg 1.17
1219      
1220     </td>
1221     <td>
1222     <b></b>
1223      
1224     </td>
1225 pcg 1.15 </tr>
1226     <tr>
1227     <td>_unused</td>
1228     <td>U64</td>
1229 pcg 1.17 <td>0 </td>
1230     <td>
1231    
1232      
1233     </td>
1234 pcg 1.15 <td>
1235 pcg 1.17 <b></b>
1236      
1237     </td>
1238 pcg 1.15 </tr>
1239     <tr>
1240     <td>_unused</td>
1241     <td>U64</td>
1242 pcg 1.17 <td>0 </td>
1243 pcg 1.15 <td>
1244 pcg 1.17
1245      
1246     </td>
1247     <td>
1248     <b></b>
1249      
1250     </td>
1251 pcg 1.15 </tr>
1252     </table>
1253    
1254 pcg 1.17 <h4>
1255 pcg 1.36 <a name="C0013"></a>ORIGIN: CLIENT;
1256     MESSAGE: msg_chat</h4>
1257     NUMERIC TYPE (hex): 0013<p>
1258     <p>This message is sent to initiate or continue a private chat with
1259     a user. You'll always receive a copy of what you have sent back
1260     from the server (as usual).</p>
1261     </p>
1262     <table border="1" width="100%">
1263     <tr>
1264     <th width="10%">NAME</th>
1265 pcg 1.37 <th width="8%">TYPE</th>
1266     <th width="4%">VALUE</th>
1267 pcg 1.36 <th>DESCRIPTION</th>
1268 pcg 1.37 <th width="10%">GUARD</th>
1269 pcg 1.36 </tr>
1270     <tr>
1271     <td>name</td>
1272     <td>username</td>
1273     <td> </td>
1274     <td>
1275     Name of sender ("yourself").
1276    
1277      
1278     </td>
1279     <td>
1280     <b></b>
1281      
1282     </td>
1283     </tr>
1284     <tr>
1285     <td>name2</td>
1286     <td>username</td>
1287     <td> </td>
1288     <td>
1289     Name of recipient.
1290    
1291      
1292     </td>
1293     <td>
1294     <b></b>
1295      
1296     </td>
1297     </tr>
1298     <tr>
1299     <td>message</td>
1300     <td>STRING</td>
1301     <td> </td>
1302     <td>
1303     The message.
1304    
1305      
1306     </td>
1307     <td>
1308     <b></b>
1309      
1310     </td>
1311     </tr>
1312     </table>
1313    
1314     <h4>
1315 pcg 1.32 <a name="C0014"></a>ORIGIN: CLIENT;
1316     MESSAGE: req_stats</h4>
1317 pcg 1.17 NUMERIC TYPE (hex): 0014<p>
1318 pcg 1.32 <p>Request server statistics. Replied with <a href="#S0015">stats(0015)</a>
1319 pcg 1.17 </p>
1320 pcg 1.18 </p>
1321     <table border="1" width="100%">
1322     <tr>
1323     <th width="10%">NAME</th>
1324 pcg 1.37 <th width="8%">TYPE</th>
1325     <th width="4%">VALUE</th>
1326 pcg 1.18 <th>DESCRIPTION</th>
1327 pcg 1.37 <th width="10%">GUARD</th>
1328 pcg 1.18 </tr>
1329     </table>
1330    
1331     <h4>
1332 pcg 1.32 <a name="C0016"></a>ORIGIN: CLIENT;
1333     MESSAGE: idle_reset</h4>
1334 pcg 1.29 NUMERIC TYPE (hex): 0016<p>
1335 pcg 1.32 <p>Send in response to <a href="#S0016">idle_warn(0016)</a> to keep the server from disconnecting.</p>
1336 pcg 1.29 </p>
1337     <table border="1" width="100%">
1338     <tr>
1339     <th width="10%">NAME</th>
1340 pcg 1.37 <th width="8%">TYPE</th>
1341     <th width="4%">VALUE</th>
1342 pcg 1.29 <th>DESCRIPTION</th>
1343 pcg 1.37 <th width="10%">GUARD</th>
1344 pcg 1.29 </tr>
1345     </table>
1346    
1347     <h4>
1348 pcg 1.32 <a name="C001d"></a>ORIGIN: CLIENT;
1349     MESSAGE: ping</h4>
1350 pcg 1.18 NUMERIC TYPE (hex): 001d<p>
1351 pcg 1.60 <p>No idea. Not used anymore?</p>
1352 pcg 1.17 </p>
1353     <table border="1" width="100%">
1354 pcg 1.1 <tr>
1355 pcg 1.17 <th width="10%">NAME</th>
1356 pcg 1.37 <th width="8%">TYPE</th>
1357     <th width="4%">VALUE</th>
1358 pcg 1.17 <th>DESCRIPTION</th>
1359 pcg 1.37 <th width="10%">GUARD</th>
1360 pcg 1.1 </tr>
1361     </table>
1362    
1363 pcg 1.17 <h4>
1364 pcg 1.32 <a name="C001e"></a>ORIGIN: CLIENT;
1365     MESSAGE: req_usergraph</h4>
1366 pcg 1.17 NUMERIC TYPE (hex): 001e<p>
1367 pcg 1.32 <p>Request user graph data, replied with <a href="#S001e">usergraph(001e)</a>.</p>
1368 pcg 1.17 </p>
1369     <table border="1" width="100%">
1370 pcg 1.15 <tr>
1371 pcg 1.17 <th width="10%">NAME</th>
1372 pcg 1.37 <th width="8%">TYPE</th>
1373     <th width="4%">VALUE</th>
1374 pcg 1.17 <th>DESCRIPTION</th>
1375 pcg 1.37 <th width="10%">GUARD</th>
1376 pcg 1.15 </tr>
1377     <tr>
1378     <td>name</td>
1379     <td>username</td>
1380 pcg 1.17 <td> </td>
1381     <td>
1382    
1383      
1384     </td>
1385 pcg 1.15 <td>
1386 pcg 1.17 <b></b>
1387      
1388     </td>
1389 pcg 1.15 </tr>
1390     </table>
1391    
1392 pcg 1.17 <h4>
1393 pcg 1.32 <a name="C0021"></a>ORIGIN: CLIENT;
1394     MESSAGE: req_pic</h4>
1395 pcg 1.17 NUMERIC TYPE (hex): 0021<p>
1396 pcg 1.32 <p>Request a user picture from the server. Results in a <a href="#S0021">userpic(0021)</a>
1397 pcg 1.17 or a timeout.</p>
1398     </p>
1399     <table border="1" width="100%">
1400 pcg 1.1 <tr>
1401 pcg 1.17 <th width="10%">NAME</th>
1402 pcg 1.37 <th width="8%">TYPE</th>
1403     <th width="4%">VALUE</th>
1404 pcg 1.17 <th>DESCRIPTION</th>
1405 pcg 1.37 <th width="10%">GUARD</th>
1406 pcg 1.1 </tr>
1407     <tr>
1408     <td>name</td>
1409 pcg 1.3 <td>username</td>
1410 pcg 1.17 <td> </td>
1411     <td>
1412    
1413      
1414     </td>
1415 pcg 1.3 <td>
1416 pcg 1.17 <b></b>
1417      
1418     </td>
1419 pcg 1.1 </tr>
1420     </table>
1421    
1422 pcg 1.17 <h4>
1423 pcg 1.32 <a name="C0021"></a>ORIGIN: CLIENT;
1424     MESSAGE: upload_pic</h4>
1425 pcg 1.17 NUMERIC TYPE (hex): 0021<p>
1426 pcg 1.1 Same code as pic_req, but with an additional data section that
1427 pcg 1.4 must contain a JPEG image that is &lt;=7KB. It must have 141×200 pixels.
1428 pcg 1.17 </p>
1429     <table border="1" width="100%">
1430     <tr>
1431     <th width="10%">NAME</th>
1432 pcg 1.37 <th width="8%">TYPE</th>
1433     <th width="4%">VALUE</th>
1434 pcg 1.17 <th>DESCRIPTION</th>
1435 pcg 1.37 <th width="10%">GUARD</th>
1436 pcg 1.1 </tr>
1437     <tr>
1438     <td>name</td>
1439 pcg 1.3 <td>username</td>
1440 pcg 1.17 <td> </td>
1441     <td>
1442    
1443      
1444     </td>
1445 pcg 1.3 <td>
1446 pcg 1.17 <b></b>
1447      
1448     </td>
1449 pcg 1.1 </tr>
1450     <tr>
1451     <td>data</td>
1452     <td>DATA</td>
1453 pcg 1.17 <td> </td>
1454     <td>
1455    
1456      
1457     </td>
1458 pcg 1.3 <td>
1459 pcg 1.17 <b></b>
1460      
1461     </td>
1462 pcg 1.1 </tr>
1463     </table>
1464    
1465 pcg 1.17 <h4>
1466 pcg 1.32 <a name="C0023"></a>ORIGIN: CLIENT;
1467     MESSAGE: send_memo</h4>
1468 pcg 1.29 NUMERIC TYPE (hex): 0023<p>
1469     </p>
1470     <table border="1" width="100%">
1471     <tr>
1472     <th width="10%">NAME</th>
1473 pcg 1.37 <th width="8%">TYPE</th>
1474     <th width="4%">VALUE</th>
1475 pcg 1.29 <th>DESCRIPTION</th>
1476 pcg 1.37 <th width="10%">GUARD</th>
1477 pcg 1.29 </tr>
1478     <tr>
1479     <td>name</td>
1480     <td>username</td>
1481     <td> </td>
1482     <td>
1483    
1484      
1485     </td>
1486     <td>
1487     <b></b>
1488      
1489     </td>
1490     </tr>
1491     <tr>
1492 pcg 1.58 <td>cid</td>
1493 pcg 1.60 <td>CLIENTID16</td>
1494 pcg 1.58 <td> </td>
1495     <td>
1496    
1497      
1498     </td>
1499     <td>
1500     <b></b>
1501      
1502     </td>
1503     </tr>
1504     <tr>
1505 pcg 1.29 <td>msg</td>
1506     <td>STRING</td>
1507     <td> </td>
1508     <td>
1509    
1510      
1511     </td>
1512     <td>
1513     <b></b>
1514      
1515     </td>
1516     </tr>
1517     </table>
1518    
1519     <h4>
1520 pcg 1.58 <a name="C0024"></a>ORIGIN: CLIENT;
1521     MESSAGE: delete_memos</h4>
1522     NUMERIC TYPE (hex): 0024<p>
1523     <p>Unconditionally deletes all memos.</p>
1524     </p>
1525     <table border="1" width="100%">
1526     <tr>
1527     <th width="10%">NAME</th>
1528     <th width="8%">TYPE</th>
1529     <th width="4%">VALUE</th>
1530     <th>DESCRIPTION</th>
1531     <th width="10%">GUARD</th>
1532     </tr>
1533     </table>
1534    
1535     <h4>
1536 pcg 1.32 <a name="C0100"></a>ORIGIN: CLIENT;
1537     MESSAGE: gnotice</h4>
1538 pcg 1.17 NUMERIC TYPE (hex): 0100<p>
1539     <p>Send a global message. Maybe. Never tried, for obvious reasons :/. Results
1540 pcg 1.32 in a <a href="#S0100">gnotice(0100)</a> sent to all users.</p>
1541 pcg 1.17 </p>
1542     <table border="1" width="100%">
1543 pcg 1.1 <tr>
1544 pcg 1.17 <th width="10%">NAME</th>
1545 pcg 1.37 <th width="8%">TYPE</th>
1546     <th width="4%">VALUE</th>
1547 pcg 1.17 <th>DESCRIPTION</th>
1548 pcg 1.37 <th width="10%">GUARD</th>
1549 pcg 1.1 </tr>
1550     <tr>
1551     <td>notice</td>
1552     <td>STRING</td>
1553 pcg 1.17 <td> </td>
1554     <td>
1555    
1556      
1557     </td>
1558 pcg 1.3 <td>
1559 pcg 1.17 <b></b>
1560      
1561     </td>
1562 pcg 1.1 </tr>
1563     </table>
1564    
1565 pcg 1.17 <h4>
1566 pcg 1.33 <a name="C0200"></a>ORIGIN: CLIENT;
1567     MESSAGE: notify_add</h4>
1568     NUMERIC TYPE (hex): 0200<p>
1569    
1570     <p>Probably setting a notifier on a username, to get informed about
1571 pcg 1.36 changes using messages. sending your own
1572     username gives you a disconnect, so don't do that at home, kids!</p>
1573 pcg 1.33 </p>
1574     <table border="1" width="100%">
1575     <tr>
1576     <th width="10%">NAME</th>
1577 pcg 1.37 <th width="8%">TYPE</th>
1578     <th width="4%">VALUE</th>
1579 pcg 1.33 <th>DESCRIPTION</th>
1580 pcg 1.37 <th width="10%">GUARD</th>
1581 pcg 1.33 </tr>
1582     <tr>
1583     <td>name</td>
1584     <td>username</td>
1585     <td> </td>
1586     <td>
1587    
1588      
1589     </td>
1590     <td>
1591     <b></b>
1592      
1593     </td>
1594     </tr>
1595     </table>
1596    
1597     <h4>
1598     <a name="C0201"></a>ORIGIN: CLIENT;
1599     MESSAGE: notify_del</h4>
1600     NUMERIC TYPE (hex): 0201<p>
1601    
1602     <p>Probably remove the notifier again.</p>
1603     </p>
1604     <table border="1" width="100%">
1605     <tr>
1606     <th width="10%">NAME</th>
1607 pcg 1.37 <th width="8%">TYPE</th>
1608     <th width="4%">VALUE</th>
1609 pcg 1.33 <th>DESCRIPTION</th>
1610 pcg 1.37 <th width="10%">GUARD</th>
1611 pcg 1.33 </tr>
1612     <tr>
1613     <td>name</td>
1614     <td>username</td>
1615     <td> </td>
1616     <td>
1617    
1618      
1619     </td>
1620     <td>
1621     <b></b>
1622      
1623     </td>
1624     </tr>
1625     </table>
1626    
1627     <h4>
1628 pcg 1.32 <a name="C0318"></a>ORIGIN: CLIENT;
1629     MESSAGE: list_rooms</h4>
1630 pcg 1.17 NUMERIC TYPE (hex): 0318<p>
1631 pcg 1.32 <p>List the rooms in a specific group/category. Results in a <a href="#S0318">upd_rooms(0318)</a> message.</p>
1632 pcg 1.17 </p>
1633     <table border="1" width="100%">
1634 pcg 1.1 <tr>
1635 pcg 1.17 <th width="10%">NAME</th>
1636 pcg 1.37 <th width="8%">TYPE</th>
1637     <th width="4%">VALUE</th>
1638 pcg 1.17 <th>DESCRIPTION</th>
1639 pcg 1.37 <th width="10%">GUARD</th>
1640 pcg 1.1 </tr>
1641     <tr>
1642 pcg 1.17 <td>group</td>
1643 pcg 1.3 <td>U8</td>
1644 pcg 1.17 <td> </td>
1645     <td>
1646    
1647      
1648     </td>
1649 pcg 1.3 <td>
1650 pcg 1.17 <b></b>
1651      
1652     </td>
1653 pcg 1.1 </tr>
1654     </table>
1655    
1656 pcg 1.17 <h4>
1657 pcg 1.32 <a name="C031a"></a>ORIGIN: CLIENT;
1658     MESSAGE: new_room</h4>
1659 pcg 1.17 NUMERIC TYPE (hex): 031a<p>
1660     Create a new room. Not verified.
1661     </p>
1662     <table border="1" width="100%">
1663 pcg 1.1 <tr>
1664 pcg 1.17 <th width="10%">NAME</th>
1665 pcg 1.37 <th width="8%">TYPE</th>
1666     <th width="4%">VALUE</th>
1667 pcg 1.17 <th>DESCRIPTION</th>
1668 pcg 1.37 <th width="10%">GUARD</th>
1669 pcg 1.1 </tr>
1670     <tr>
1671     <td>name</td>
1672 pcg 1.3 <td>username</td>
1673 pcg 1.17 <td> </td>
1674 pcg 1.3 <td>
1675 pcg 1.17
1676      
1677     </td>
1678     <td>
1679     <b></b>
1680      
1681     </td>
1682 pcg 1.1 </tr>
1683     <tr>
1684     <td>i1</td>
1685 pcg 1.3 <td>U32</td>
1686 pcg 1.17 <td>0 </td>
1687     <td>
1688    
1689      
1690     </td>
1691 pcg 1.3 <td>
1692 pcg 1.17 <b></b>
1693      
1694     </td>
1695 pcg 1.1 </tr>
1696     <tr>
1697     <td>b1</td>
1698 pcg 1.3 <td>U8</td>
1699 pcg 1.17 <td>0 </td>
1700 pcg 1.3 <td>
1701 pcg 1.17
1702      
1703     </td>
1704     <td>
1705     <b></b>
1706      
1707     </td>
1708 pcg 1.1 </tr>
1709     <tr>
1710     <td>b2</td>
1711 pcg 1.3 <td>U8</td>
1712 pcg 1.17 <td>255 </td>
1713     <td>
1714    
1715      
1716     </td>
1717 pcg 1.3 <td>
1718 pcg 1.17 <b></b>
1719      
1720     </td>
1721 pcg 1.1 </tr>
1722     <tr>
1723     <td>b3</td>
1724 pcg 1.3 <td>U8</td>
1725 pcg 1.17 <td>255 </td>
1726 pcg 1.3 <td>
1727 pcg 1.17
1728      
1729     </td>
1730     <td>
1731     <b></b>
1732      
1733     </td>
1734 pcg 1.1 </tr>
1735     <tr>
1736     <td>group</td>
1737 pcg 1.3 <td>U8</td>
1738 pcg 1.17 <td>1 </td>
1739     <td>
1740    
1741      
1742     </td>
1743 pcg 1.3 <td>
1744 pcg 1.17 <b></b>
1745      
1746     </td>
1747 pcg 1.1 </tr>
1748     <tr>
1749     <td>name</td>
1750 pcg 1.48 <td>ZSTRING</td>
1751 pcg 1.17 <td> </td>
1752 pcg 1.3 <td>
1753 pcg 1.17
1754      
1755     </td>
1756     <td>
1757     <b></b>
1758      
1759     </td>
1760 pcg 1.1 </tr>
1761     <tr>
1762     <td>description</td>
1763 pcg 1.48 <td>ZSTRING</td>
1764 pcg 1.17 <td> </td>
1765     <td>
1766    
1767      
1768     </td>
1769 pcg 1.3 <td>
1770 pcg 1.17 <b></b>
1771      
1772     </td>
1773 pcg 1.1 </tr>
1774     <tr>
1775     <td>flags</td>
1776 pcg 1.3 <td>U8</td>
1777 pcg 1.17 <td> </td>
1778 pcg 1.3 <td>
1779 pcg 1.40 See ROOMFLAGs
1780 pcg 1.17
1781      
1782     </td>
1783     <td>
1784     <b></b>
1785      
1786     </td>
1787 pcg 1.1 </tr>
1788     </table>
1789    
1790 pcg 1.17 <h4>
1791 pcg 1.46 <a name="C031b"></a>ORIGIN: CLIENT;
1792 pcg 1.47 MESSAGE: req_upd_rooms</h4>
1793 pcg 1.46 NUMERIC TYPE (hex): 031b<p>
1794 pcg 1.47 <p>Request a rooms update message for the given room.</p>
1795 pcg 1.46 </p>
1796     <table border="1" width="100%">
1797     <tr>
1798     <th width="10%">NAME</th>
1799     <th width="8%">TYPE</th>
1800     <th width="4%">VALUE</th>
1801     <th>DESCRIPTION</th>
1802     <th width="10%">GUARD</th>
1803     </tr>
1804     <tr>
1805     <td>channel</td>
1806     <td>U16</td>
1807     <td> </td>
1808     <td>
1809    
1810      
1811     </td>
1812     <td>
1813     <b></b>
1814      
1815     </td>
1816     </tr>
1817     </table>
1818    
1819     <h4>
1820 pcg 1.32 <a name="C0413"></a>ORIGIN: CLIENT;
1821     MESSAGE: req_game_record</h4>
1822 pcg 1.17 NUMERIC TYPE (hex): 0413<p>
1823 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>
1824 pcg 1.17 </p>
1825     <table border="1" width="100%">
1826 pcg 1.14 <tr>
1827 pcg 1.17 <th width="10%">NAME</th>
1828 pcg 1.37 <th width="8%">TYPE</th>
1829     <th width="4%">VALUE</th>
1830 pcg 1.17 <th>DESCRIPTION</th>
1831 pcg 1.37 <th width="10%">GUARD</th>
1832 pcg 1.14 </tr>
1833     <tr>
1834     <td>name</td>
1835     <td>username</td>
1836 pcg 1.17 <td> </td>
1837 pcg 1.14 <td>
1838 pcg 1.17
1839      
1840     </td>
1841     <td>
1842     <b></b>
1843      
1844     </td>
1845 pcg 1.14 </tr>
1846     <tr>
1847     <td>timestamp</td>
1848     <td>timestamp</td>
1849 pcg 1.17 <td> </td>
1850 pcg 1.14 <td>
1851     If zero, start at the newest games, else only send games
1852     before the given timestap.
1853 pcg 1.17
1854      
1855     </td>
1856     <td>
1857     <b></b>
1858      
1859     </td>
1860 pcg 1.14 </tr>
1861     </table>
1862    
1863 pcg 1.17 <h4>
1864 pcg 1.32 <a name="C4300"></a>ORIGIN: CLIENT;
1865     MESSAGE: join_room</h4>
1866 pcg 1.17 NUMERIC TYPE (hex): 4300<p>
1867 pcg 1.32 <p>Joins the given room. <a href="#S4300">join_room(4300)</a> messages for yourself
1868 pcg 1.17 and all users in that room, as well as the initial gamelist, are
1869     send if the room exists. If not, timeout...</p>
1870     </p>
1871     <table border="1" width="100%">
1872 pcg 1.1 <tr>
1873 pcg 1.17 <th width="10%">NAME</th>
1874 pcg 1.37 <th width="8%">TYPE</th>
1875     <th width="4%">VALUE</th>
1876 pcg 1.17 <th>DESCRIPTION</th>
1877 pcg 1.37 <th width="10%">GUARD</th>
1878 pcg 1.1 </tr>
1879     <tr>
1880     <td>channel</td>
1881 pcg 1.3 <td>U16</td>
1882 pcg 1.17 <td> </td>
1883 pcg 1.3 <td>
1884 pcg 1.17
1885      
1886     </td>
1887     <td>
1888     <b></b>
1889      
1890     </td>
1891 pcg 1.1 </tr>
1892     <tr>
1893     <td>user</td>
1894     <td>user</td>
1895 pcg 1.17 <td> </td>
1896     <td>
1897    
1898      
1899     </td>
1900 pcg 1.3 <td>
1901 pcg 1.17 <b></b>
1902      
1903     </td>
1904 pcg 1.1 </tr>
1905     </table>
1906    
1907 pcg 1.17 <h4>
1908 pcg 1.32 <a name="C4301"></a>ORIGIN: CLIENT;
1909     MESSAGE: msg_room</h4>
1910 pcg 1.17 NUMERIC TYPE (hex): 4301<p>
1911     Send a message to the room.
1912     </p>
1913     <table border="1" width="100%">
1914 pcg 1.1 <tr>
1915 pcg 1.17 <th width="10%">NAME</th>
1916 pcg 1.37 <th width="8%">TYPE</th>
1917     <th width="4%">VALUE</th>
1918 pcg 1.17 <th>DESCRIPTION</th>
1919 pcg 1.37 <th width="10%">GUARD</th>
1920 pcg 1.1 </tr>
1921     <tr>
1922     <td>channel</td>
1923 pcg 1.3 <td>U16</td>
1924 pcg 1.17 <td> </td>
1925     <td>
1926    
1927      
1928     </td>
1929 pcg 1.3 <td>
1930 pcg 1.17 <b></b>
1931      
1932     </td>
1933 pcg 1.1 </tr>
1934     <tr>
1935     <td>name</td>
1936 pcg 1.3 <td>username</td>
1937 pcg 1.17 <td> </td>
1938 pcg 1.3 <td>
1939 pcg 1.9 Must be the login-name of the user.
1940 pcg 1.17
1941      
1942     </td>
1943     <td>
1944     <b></b>
1945      
1946     </td>
1947 pcg 1.1 </tr>
1948     <tr>
1949     <td>message</td>
1950     <td>STRING</td>
1951 pcg 1.17 <td> </td>
1952     <td>
1953    
1954      
1955     </td>
1956 pcg 1.3 <td>
1957 pcg 1.17 <b></b>
1958      
1959     </td>
1960 pcg 1.1 </tr>
1961     </table>
1962    
1963 pcg 1.17 <h4>
1964 pcg 1.32 <a name="C4302"></a>ORIGIN: CLIENT;
1965     MESSAGE: part_room</h4>
1966 pcg 1.17 NUMERIC TYPE (hex): 4302<p>
1967     Remove yourself (or maybe others as admin) from a room.
1968     </p>
1969     <table border="1" width="100%">
1970 pcg 1.1 <tr>
1971 pcg 1.17 <th width="10%">NAME</th>
1972 pcg 1.37 <th width="8%">TYPE</th>
1973     <th width="4%">VALUE</th>
1974 pcg 1.17 <th>DESCRIPTION</th>
1975 pcg 1.37 <th width="10%">GUARD</th>
1976 pcg 1.1 </tr>
1977     <tr>
1978     <td>channel</td>
1979 pcg 1.3 <td>U16</td>
1980 pcg 1.17 <td> </td>
1981 pcg 1.3 <td>
1982 pcg 1.17
1983      
1984     </td>
1985     <td>
1986     <b></b>
1987      
1988     </td>
1989 pcg 1.1 </tr>
1990     <tr>
1991     <td>name</td>
1992 pcg 1.3 <td>username</td>
1993 pcg 1.17 <td> </td>
1994     <td>
1995    
1996      
1997     </td>
1998 pcg 1.3 <td>
1999 pcg 1.17 <b></b>
2000      
2001     </td>
2002 pcg 1.1 </tr>
2003     </table>
2004    
2005 pcg 1.17 <h4>
2006 pcg 1.32 <a name="C4305"></a>ORIGIN: CLIENT;
2007     MESSAGE: new_game</h4>
2008 pcg 1.17 NUMERIC TYPE (hex): 4305<p>
2009 pcg 1.59 <p>Create a new game.</p>
2010 pcg 1.41 </p>
2011 pcg 1.17 <table border="1" width="100%">
2012 pcg 1.1 <tr>
2013 pcg 1.17 <th width="10%">NAME</th>
2014 pcg 1.37 <th width="8%">TYPE</th>
2015     <th width="4%">VALUE</th>
2016 pcg 1.17 <th>DESCRIPTION</th>
2017 pcg 1.37 <th width="10%">GUARD</th>
2018 pcg 1.1 </tr>
2019     <tr>
2020     <td>channel</td>
2021 pcg 1.3 <td>U16</td>
2022 pcg 1.17 <td> </td>
2023     <td>
2024    
2025      
2026     </td>
2027 pcg 1.3 <td>
2028 pcg 1.17 <b></b>
2029      
2030     </td>
2031 pcg 1.1 </tr>
2032     <tr>
2033 pcg 1.58 <td>cid</td>
2034 pcg 1.60 <td>CLIENTID16</td>
2035 pcg 1.17 <td> </td>
2036     <td>
2037    
2038      
2039     </td>
2040 pcg 1.3 <td>
2041 pcg 1.17 <b></b>
2042      
2043     </td>
2044 pcg 1.1 </tr>
2045     <tr>
2046 pcg 1.60 <td>gametype</td>
2047 pcg 1.54 <td>U8</td>
2048     <td> </td>
2049     <td>
2050    
2051      
2052     </td>
2053     <td>
2054     <b></b>
2055      
2056     </td>
2057     </tr>
2058     <tr>
2059     <td>flags</td>
2060     <td>U8</td>
2061 pcg 1.17 <td> </td>
2062     <td>
2063    
2064      
2065     </td>
2066 pcg 1.3 <td>
2067 pcg 1.17 <b></b>
2068      
2069     </td>
2070 pcg 1.1 </tr>
2071     <tr>
2072     <td>rules</td>
2073     <td>rules</td>
2074 pcg 1.17 <td> </td>
2075     <td>
2076    
2077      
2078     </td>
2079 pcg 1.3 <td>
2080 pcg 1.17 <b></b>
2081      
2082     </td>
2083 pcg 1.1 </tr>
2084     <tr>
2085     <td>notes</td>
2086     <td>STRING</td>
2087 pcg 1.17 <td> </td>
2088     <td>
2089 pcg 1.39
2090      
2091     </td>
2092     <td>
2093     <b></b>
2094      
2095     </td>
2096     </tr>
2097     </table>
2098    
2099     <h4>
2100     <a name="C430a"></a>ORIGIN: CLIENT;
2101     MESSAGE: load_game</h4>
2102     NUMERIC TYPE (hex): 430a<p>
2103     Load an existing game into a room(?)
2104     There is no indication that a new game is there except
2105     for a upd_observers message with your name in it. Which means
2106     you have to watch upd_observers messages that are not for any
2107     currently open game and open one. Ugh.
2108     </p>
2109     <table border="1" width="100%">
2110     <tr>
2111     <th width="10%">NAME</th>
2112     <th width="8%">TYPE</th>
2113     <th width="4%">VALUE</th>
2114     <th>DESCRIPTION</th>
2115     <th width="10%">GUARD</th>
2116     </tr>
2117     <tr>
2118     <td>channel</td>
2119     <td>U16</td>
2120     <td> </td>
2121     <td>
2122     The room to load the game into.
2123    
2124      
2125     </td>
2126     <td>
2127     <b></b>
2128      
2129     </td>
2130     </tr>
2131     <tr>
2132     <td>timestamp</td>
2133     <td>timestamp</td>
2134     <td> </td>
2135     <td>
2136     From the game record.
2137    
2138      
2139     </td>
2140     <td>
2141     <b></b>
2142      
2143     </td>
2144     </tr>
2145     <tr>
2146     <td>user</td>
2147     <td>username</td>
2148     <td> </td>
2149     <td>
2150    
2151      
2152     </td>
2153     <td>
2154     <b></b>
2155      
2156     </td>
2157     </tr>
2158     <tr>
2159     <td>flags</td>
2160     <td>U8</td>
2161     <td> </td>
2162     <td>
2163     0 == public, 2 == private
2164 pcg 1.17
2165      
2166     </td>
2167 pcg 1.3 <td>
2168 pcg 1.17 <b></b>
2169      
2170     </td>
2171 pcg 1.1 </tr>
2172     </table>
2173    
2174 pcg 1.17 <h4>
2175 pcg 1.32 <a name="C430b"></a>ORIGIN: CLIENT;
2176     MESSAGE: req_games</h4>
2177 pcg 1.17 NUMERIC TYPE (hex): 430b<p>
2178 pcg 1.9 Request to update room game list (send this once per minute to get
2179     updated). Results in upd_games messages.
2180 pcg 1.17 </p>
2181     <table border="1" width="100%">
2182     <tr>
2183     <th width="10%">NAME</th>
2184 pcg 1.37 <th width="8%">TYPE</th>
2185     <th width="4%">VALUE</th>
2186 pcg 1.17 <th>DESCRIPTION</th>
2187 pcg 1.37 <th width="10%">GUARD</th>
2188 pcg 1.1 </tr>
2189     <tr>
2190     <td>channel</td>
2191 pcg 1.3 <td>U16</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     </table>
2203    
2204 pcg 1.17 <h4>
2205 pcg 1.32 <a name="C4319"></a>ORIGIN: CLIENT;
2206     MESSAGE: req_desc</h4>
2207 pcg 1.17 NUMERIC TYPE (hex): 4319<p>
2208     Request room description.
2209     </p>
2210     <table border="1" width="100%">
2211 pcg 1.1 <tr>
2212 pcg 1.17 <th width="10%">NAME</th>
2213 pcg 1.37 <th width="8%">TYPE</th>
2214     <th width="4%">VALUE</th>
2215 pcg 1.17 <th>DESCRIPTION</th>
2216 pcg 1.37 <th width="10%">GUARD</th>
2217 pcg 1.1 </tr>
2218     <tr>
2219     <td>channel</td>
2220 pcg 1.3 <td>U16</td>
2221 pcg 1.17 <td> </td>
2222     <td>
2223    
2224      
2225     </td>
2226 pcg 1.3 <td>
2227 pcg 1.17 <b></b>
2228      
2229     </td>
2230 pcg 1.1 </tr>
2231     </table>
2232    
2233 pcg 1.17 <h4>
2234 pcg 1.32 <a name="C4400"></a>ORIGIN: CLIENT;
2235 pcg 1.59 MESSAGE: challenge</h4>
2236 pcg 1.17 NUMERIC TYPE (hex): 4400<p>
2237 pcg 1.59 <p>Used to send challenges to existing games.</p>
2238     </p>
2239 pcg 1.17 <table border="1" width="100%">
2240 pcg 1.1 <tr>
2241 pcg 1.17 <th width="10%">NAME</th>
2242 pcg 1.37 <th width="8%">TYPE</th>
2243     <th width="4%">VALUE</th>
2244 pcg 1.17 <th>DESCRIPTION</th>
2245 pcg 1.37 <th width="10%">GUARD</th>
2246 pcg 1.1 </tr>
2247     <tr>
2248     <td>channel</td>
2249 pcg 1.3 <td>U16</td>
2250 pcg 1.17 <td> </td>
2251     <td>
2252    
2253      
2254     </td>
2255 pcg 1.3 <td>
2256 pcg 1.17 <b></b>
2257      
2258     </td>
2259 pcg 1.1 </tr>
2260     <tr>
2261 pcg 1.60 <td>black</td>
2262     <td>user</td>
2263     <td> </td>
2264     <td>
2265    
2266      
2267     </td>
2268     <td>
2269     <b></b>
2270      
2271     </td>
2272     </tr>
2273     <tr>
2274     <td>white</td>
2275     <td>user</td>
2276     <td> </td>
2277     <td>
2278    
2279      
2280     </td>
2281     <td>
2282     <b></b>
2283      
2284     </td>
2285     </tr>
2286     <tr>
2287     <td>gametype</td>
2288     <td>U8</td>
2289     <td> </td>
2290     <td>
2291    
2292      
2293     </td>
2294     <td>
2295     <b></b>
2296      
2297     </td>
2298     </tr>
2299     <tr>
2300     <td>cid</td>
2301     <td>CLIENTID8</td>
2302     <td> </td>
2303     <td>
2304    
2305      
2306     </td>
2307     <td>
2308     <b></b>
2309      
2310     </td>
2311     </tr>
2312     <tr>
2313     <td>rules</td>
2314     <td>rules</td>
2315 pcg 1.17 <td> </td>
2316 pcg 1.3 <td>
2317 pcg 1.17
2318      
2319     </td>
2320     <td>
2321     <b></b>
2322      
2323     </td>
2324 pcg 1.1 </tr>
2325     </table>
2326    
2327 pcg 1.17 <h4>
2328 pcg 1.32 <a name="C4403"></a>ORIGIN: CLIENT;
2329     MESSAGE: join_game</h4>
2330 pcg 1.17 NUMERIC TYPE (hex): 4403<p>
2331     Join a game. See join_room.
2332     </p>
2333     <table border="1" width="100%">
2334 pcg 1.1 <tr>
2335 pcg 1.17 <th width="10%">NAME</th>
2336 pcg 1.37 <th width="8%">TYPE</th>
2337     <th width="4%">VALUE</th>
2338 pcg 1.17 <th>DESCRIPTION</th>
2339 pcg 1.37 <th width="10%">GUARD</th>
2340 pcg 1.1 </tr>
2341     <tr>
2342 pcg 1.5 <td>channel</td>
2343     <td>U16</td>
2344 pcg 1.17 <td> </td>
2345     <td>
2346    
2347      
2348     </td>
2349 pcg 1.3 <td>
2350 pcg 1.17 <b></b>
2351      
2352     </td>
2353 pcg 1.1 </tr>
2354     <tr>
2355 pcg 1.5 <td>user</td>
2356     <td>user</td>
2357 pcg 1.17 <td> </td>
2358     <td>
2359    
2360      
2361     </td>
2362 pcg 1.3 <td>
2363 pcg 1.17 <b></b>
2364      
2365     </td>
2366 pcg 1.1 </tr>
2367     </table>
2368    
2369 pcg 1.17 <h4>
2370 pcg 1.32 <a name="C4404"></a>ORIGIN: CLIENT;
2371     MESSAGE: part_game</h4>
2372 pcg 1.17 NUMERIC TYPE (hex): 4404<p>
2373     Leave (or kick as admin?) a certain user from a game.
2374     </p>
2375     <table border="1" width="100%">
2376 pcg 1.1 <tr>
2377 pcg 1.17 <th width="10%">NAME</th>
2378 pcg 1.37 <th width="8%">TYPE</th>
2379     <th width="4%">VALUE</th>
2380 pcg 1.17 <th>DESCRIPTION</th>
2381 pcg 1.37 <th width="10%">GUARD</th>
2382 pcg 1.1 </tr>
2383     <tr>
2384     <td>channel</td>
2385 pcg 1.3 <td>U16</td>
2386 pcg 1.17 <td> </td>
2387     <td>
2388    
2389      
2390     </td>
2391 pcg 1.3 <td>
2392 pcg 1.17 <b></b>
2393      
2394     </td>
2395 pcg 1.1 </tr>
2396     <tr>
2397     <td>name</td>
2398 pcg 1.3 <td>username</td>
2399 pcg 1.17 <td> </td>
2400 pcg 1.3 <td>
2401 pcg 1.17
2402      
2403     </td>
2404     <td>
2405     <b></b>
2406      
2407     </td>
2408 pcg 1.1 </tr>
2409     </table>
2410    
2411 pcg 1.17 <h4>
2412 pcg 1.35 <a name="C4405"></a>ORIGIN: CLIENT;
2413     MESSAGE: set_tree</h4>
2414     NUMERIC TYPE (hex): 4405<p>
2415     Possibly upload an initial game to an empty room. Not tested.
2416    
2417     </p>
2418     <table border="1" width="100%">
2419     <tr>
2420     <th width="10%">NAME</th>
2421 pcg 1.37 <th width="8%">TYPE</th>
2422     <th width="4%">VALUE</th>
2423 pcg 1.35 <th>DESCRIPTION</th>
2424 pcg 1.37 <th width="10%">GUARD</th>
2425 pcg 1.35 </tr>
2426     <tr>
2427     <td>channel</td>
2428     <td>U16</td>
2429     <td> </td>
2430     <td>
2431    
2432      
2433     </td>
2434     <td>
2435     <b></b>
2436      
2437     </td>
2438     </tr>
2439     <tr>
2440     <td>tree</td>
2441     <td>TREE</td>
2442     <td> </td>
2443     <td>
2444    
2445      
2446     </td>
2447     <td>
2448     <b></b>
2449      
2450     </td>
2451     </tr>
2452     </table>
2453    
2454     <h4>
2455 pcg 1.32 <a name="C4406"></a>ORIGIN: CLIENT;
2456     MESSAGE: upd_tree</h4>
2457 pcg 1.27 NUMERIC TYPE (hex): 4406<p>
2458 pcg 1.60 <p>Upload a partial game tree to the server. This is used to send moves
2459 pcg 1.27 and even in-game comments to the server. For the comments, the
2460 pcg 1.60 server prepends the username and rank.</p>
2461     </p>
2462 pcg 1.17 <table border="1" width="100%">
2463     <tr>
2464     <th width="10%">NAME</th>
2465 pcg 1.37 <th width="8%">TYPE</th>
2466     <th width="4%">VALUE</th>
2467 pcg 1.17 <th>DESCRIPTION</th>
2468 pcg 1.37 <th width="10%">GUARD</th>
2469 pcg 1.1 </tr>
2470     <tr>
2471     <td>channel</td>
2472 pcg 1.3 <td>U16</td>
2473 pcg 1.17 <td> </td>
2474     <td>
2475    
2476      
2477     </td>
2478 pcg 1.3 <td>
2479 pcg 1.17 <b></b>
2480      
2481     </td>
2482 pcg 1.1 </tr>
2483     <tr>
2484     <td>tree</td>
2485     <td>TREE</td>
2486 pcg 1.17 <td> </td>
2487     <td>
2488    
2489      
2490     </td>
2491 pcg 1.3 <td>
2492 pcg 1.17 <b></b>
2493      
2494     </td>
2495 pcg 1.1 </tr>
2496     </table>
2497    
2498 pcg 1.17 <h4>
2499 pcg 1.60 <a name="C4407"></a>ORIGIN: CLIENT;
2500     MESSAGE: mark_dead</h4>
2501     NUMERIC TYPE (hex): 4407<p>
2502     <p>Marks stones ad dead (or alive?) by the client. Details unclear</p>
2503     </p>
2504     <table border="1" width="100%">
2505     <tr>
2506     <th width="10%">NAME</th>
2507     <th width="8%">TYPE</th>
2508     <th width="4%">VALUE</th>
2509     <th>DESCRIPTION</th>
2510     <th width="10%">GUARD</th>
2511     </tr>
2512     <tr>
2513     <td>channel</td>
2514     <td>U16</td>
2515     <td> </td>
2516     <td>
2517    
2518      
2519     </td>
2520     <td>
2521     <b></b>
2522      
2523     </td>
2524     </tr>
2525     <tr>
2526     <td>x</td>
2527     <td>U8</td>
2528     <td> </td>
2529     <td>
2530    
2531      
2532     </td>
2533     <td>
2534     <b></b>
2535      
2536     </td>
2537     </tr>
2538     <tr>
2539     <td>y</td>
2540     <td>U8</td>
2541     <td> </td>
2542     <td>
2543    
2544      
2545     </td>
2546     <td>
2547     <b></b>
2548      
2549     </td>
2550     </tr>
2551     <tr>
2552     <td>dead</td>
2553     <td>flag</td>
2554     <td> </td>
2555     <td>
2556    
2557 root 1.67  
2558     </td>
2559     <td>
2560     <b></b>
2561      
2562     </td>
2563     </tr>
2564     </table>
2565    
2566     <h4>
2567     <a name="C4408"></a>ORIGIN: CLIENT;
2568     MESSAGE: get_tree</h4>
2569     NUMERIC TYPE (hex): 4408<p>
2570     <p>Request the game tree starting at a given node. This is used when
2571     the server only sends a partial tree (with end code "more").</p>
2572     </p>
2573     <table border="1" width="100%">
2574     <tr>
2575     <th width="10%">NAME</th>
2576     <th width="8%">TYPE</th>
2577     <th width="4%">VALUE</th>
2578     <th>DESCRIPTION</th>
2579     <th width="10%">GUARD</th>
2580     </tr>
2581     <tr>
2582     <td>channel</td>
2583     <td>U16</td>
2584     <td> </td>
2585     <td>
2586    
2587      
2588     </td>
2589     <td>
2590     <b></b>
2591      
2592     </td>
2593     </tr>
2594     <tr>
2595     <td>node</td>
2596     <td>U32</td>
2597     <td> </td>
2598     <td>
2599    
2600 pcg 1.60  
2601     </td>
2602     <td>
2603     <b></b>
2604      
2605     </td>
2606     </tr>
2607     </table>
2608    
2609     <h4>
2610 pcg 1.63 <a name="C440a"></a>ORIGIN: CLIENT;
2611     MESSAGE: game_done</h4>
2612     NUMERIC TYPE (hex): 440a<p>
2613     <p>Sent by the client to mark the game as done.</p>
2614     </p>
2615 pcg 1.17 <table border="1" width="100%">
2616     <tr>
2617     <th width="10%">NAME</th>
2618 pcg 1.37 <th width="8%">TYPE</th>
2619     <th width="4%">VALUE</th>
2620 pcg 1.17 <th>DESCRIPTION</th>
2621 pcg 1.37 <th width="10%">GUARD</th>
2622 pcg 1.1 </tr>
2623     <tr>
2624     <td>channel</td>
2625 pcg 1.3 <td>U16</td>
2626 pcg 1.17 <td> </td>
2627 pcg 1.3 <td>
2628 pcg 1.17
2629      
2630     </td>
2631     <td>
2632     <b></b>
2633      
2634     </td>
2635 pcg 1.1 </tr>
2636     <tr>
2637 pcg 1.63 <td>id</td>
2638 pcg 1.3 <td>U32</td>
2639 pcg 1.17 <td> </td>
2640     <td>
2641 pcg 1.63
2642 pcg 1.17  
2643     </td>
2644 pcg 1.3 <td>
2645 pcg 1.17 <b></b>
2646      
2647     </td>
2648 pcg 1.1 </tr>
2649     </table>
2650    
2651 pcg 1.17 <h4>
2652 pcg 1.32 <a name="C440c"></a>ORIGIN: CLIENT;
2653     MESSAGE: claim_win</h4>
2654 pcg 1.17 NUMERIC TYPE (hex): 440c<p>
2655 pcg 1.62 <p>Used by the client to claim a win.</p>
2656     </p>
2657 pcg 1.17 <table border="1" width="100%">
2658 pcg 1.1 <tr>
2659 pcg 1.17 <th width="10%">NAME</th>
2660 pcg 1.37 <th width="8%">TYPE</th>
2661     <th width="4%">VALUE</th>
2662 pcg 1.17 <th>DESCRIPTION</th>
2663 pcg 1.37 <th width="10%">GUARD</th>
2664 pcg 1.1 </tr>
2665     <tr>
2666     <td>channel</td>
2667 pcg 1.3 <td>U16</td>
2668 pcg 1.17 <td> </td>
2669     <td>
2670    
2671      
2672     </td>
2673 pcg 1.3 <td>
2674 pcg 1.17 <b></b>
2675      
2676     </td>
2677 pcg 1.1 </tr>
2678     <tr>
2679 pcg 1.62 <td>player</td>
2680 pcg 1.3 <td>U8 </td>
2681 pcg 1.17 <td> </td>
2682 pcg 1.3 <td>
2683 pcg 1.17
2684      
2685     </td>
2686     <td>
2687     <b></b>
2688      
2689     </td>
2690 pcg 1.1 </tr>
2691     </table>
2692    
2693 pcg 1.17 <h4>
2694 pcg 1.32 <a name="C440d"></a>ORIGIN: CLIENT;
2695     MESSAGE: add_time</h4>
2696 pcg 1.17 NUMERIC TYPE (hex): 440d<p>
2697 pcg 1.65 <p>Adds the given amount of time to your opponent's clock.</p>
2698     </p>
2699 pcg 1.17 <table border="1" width="100%">
2700     <tr>
2701     <th width="10%">NAME</th>
2702 pcg 1.37 <th width="8%">TYPE</th>
2703     <th width="4%">VALUE</th>
2704 pcg 1.17 <th>DESCRIPTION</th>
2705 pcg 1.37 <th width="10%">GUARD</th>
2706 pcg 1.1 </tr>
2707     <tr>
2708     <td>channel</td>
2709 pcg 1.3 <td>U16</td>
2710 pcg 1.17 <td> </td>
2711     <td>
2712    
2713      
2714     </td>
2715 pcg 1.3 <td>
2716 pcg 1.17 <b></b>
2717      
2718     </td>
2719 pcg 1.1 </tr>
2720     <tr>
2721     <td>time</td>
2722 pcg 1.3 <td>U32</td>
2723 pcg 1.17 <td> </td>
2724 pcg 1.3 <td>
2725 pcg 1.17
2726      
2727     </td>
2728     <td>
2729     <b></b>
2730      
2731     </td>
2732 pcg 1.1 </tr>
2733     <tr>
2734     <td>player</td>
2735 pcg 1.3 <td>U8</td>
2736 pcg 1.17 <td> </td>
2737     <td>
2738    
2739      
2740     </td>
2741 pcg 1.3 <td>
2742 pcg 1.17 <b></b>
2743      
2744     </td>
2745 pcg 1.1 </tr>
2746     </table>
2747    
2748 pcg 1.17 <h4>
2749 pcg 1.59 <a name="C440e"></a>ORIGIN: CLIENT;
2750     MESSAGE: req_undo</h4>
2751     NUMERIC TYPE (hex): 440e<p>
2752     </p>
2753     <table border="1" width="100%">
2754     <tr>
2755     <th width="10%">NAME</th>
2756     <th width="8%">TYPE</th>
2757     <th width="4%">VALUE</th>
2758     <th>DESCRIPTION</th>
2759     <th width="10%">GUARD</th>
2760     </tr>
2761     <tr>
2762     <td>channel</td>
2763     <td>U16</td>
2764     <td> </td>
2765     <td>
2766    
2767      
2768     </td>
2769     <td>
2770     <b></b>
2771      
2772     </td>
2773     </tr>
2774     </table>
2775    
2776     <h4>
2777 pcg 1.32 <a name="C440f"></a>ORIGIN: CLIENT;
2778     MESSAGE: grant_undo</h4>
2779 pcg 1.17 NUMERIC TYPE (hex): 440f<p>
2780     Can be send after a req_undo message was received to grant the undo.
2781     </p>
2782     <table border="1" width="100%">
2783 pcg 1.1 <tr>
2784 pcg 1.17 <th width="10%">NAME</th>
2785 pcg 1.37 <th width="8%">TYPE</th>
2786     <th width="4%">VALUE</th>
2787 pcg 1.17 <th>DESCRIPTION</th>
2788 pcg 1.37 <th width="10%">GUARD</th>
2789 pcg 1.1 </tr>
2790     <tr>
2791     <td>channel</td>
2792 pcg 1.3 <td>U16</td>
2793 pcg 1.17 <td> </td>
2794     <td>
2795    
2796      
2797     </td>
2798 pcg 1.3 <td>
2799 pcg 1.17 <b></b>
2800      
2801     </td>
2802 pcg 1.1 </tr>
2803     </table>
2804    
2805 pcg 1.17 <h4>
2806 pcg 1.32 <a name="C4410"></a>ORIGIN: CLIENT;
2807     MESSAGE: resign_game</h4>
2808 pcg 1.17 NUMERIC TYPE (hex): 4410<p>
2809     Resign the game.
2810     </p>
2811     <table border="1" width="100%">
2812 pcg 1.1 <tr>
2813 pcg 1.17 <th width="10%">NAME</th>
2814 pcg 1.37 <th width="8%">TYPE</th>
2815     <th width="4%">VALUE</th>
2816 pcg 1.17 <th>DESCRIPTION</th>
2817 pcg 1.37 <th width="10%">GUARD</th>
2818 pcg 1.1 </tr>
2819     <tr>
2820     <td>channel</td>
2821 pcg 1.3 <td>U16</td>
2822 pcg 1.17 <td> </td>
2823 pcg 1.3 <td>
2824 pcg 1.17
2825      
2826     </td>
2827     <td>
2828     <b></b>
2829      
2830     </td>
2831 pcg 1.1 </tr>
2832     <tr>
2833     <td>player</td>
2834 pcg 1.3 <td>U8</td>
2835 pcg 1.17 <td> </td>
2836     <td>
2837    
2838      
2839     </td>
2840 pcg 1.3 <td>
2841 pcg 1.17 <b></b>
2842      
2843     </td>
2844 pcg 1.1 </tr>
2845     </table>
2846    
2847 pcg 1.17 <h4>
2848 pcg 1.32 <a name="C441a"></a>ORIGIN: CLIENT;
2849     MESSAGE: set_teacher</h4>
2850 pcg 1.17 NUMERIC TYPE (hex): 441a<p>
2851 pcg 1.50 <p>Change the teacher to somebody else (or possibly yourself == take it). If the
2852     name is empty, the game will continue normally.</p>
2853     </p>
2854 pcg 1.17 <table border="1" width="100%">
2855 pcg 1.1 <tr>
2856 pcg 1.17 <th width="10%">NAME</th>
2857 pcg 1.37 <th width="8%">TYPE</th>
2858     <th width="4%">VALUE</th>
2859 pcg 1.17 <th>DESCRIPTION</th>
2860 pcg 1.37 <th width="10%">GUARD</th>
2861 pcg 1.1 </tr>
2862     <tr>
2863     <td>channel</td>
2864 pcg 1.3 <td>U16</td>
2865 pcg 1.17 <td> </td>
2866     <td>
2867    
2868      
2869     </td>
2870 pcg 1.3 <td>
2871 pcg 1.17 <b></b>
2872      
2873     </td>
2874 pcg 1.1 </tr>
2875     <tr>
2876     <td>name</td>
2877 pcg 1.3 <td>username</td>
2878 pcg 1.17 <td> </td>
2879     <td>
2880    
2881      
2882     </td>
2883 pcg 1.3 <td>
2884 pcg 1.17 <b></b>
2885      
2886     </td>
2887 pcg 1.1 </tr>
2888     </table>
2889    
2890 pcg 1.17 <h4>
2891 pcg 1.32 <a name="C4422"></a>ORIGIN: CLIENT;
2892 pcg 1.40 MESSAGE: allow_user</h4>
2893 pcg 1.17 NUMERIC TYPE (hex): 4422<p>
2894 pcg 1.50 <p>Unclear. Maybe allow users to talk? No idea, really.</p>
2895     </p>
2896 pcg 1.17 <table border="1" width="100%">
2897     <tr>
2898     <th width="10%">NAME</th>
2899 pcg 1.37 <th width="8%">TYPE</th>
2900     <th width="4%">VALUE</th>
2901 pcg 1.17 <th>DESCRIPTION</th>
2902 pcg 1.37 <th width="10%">GUARD</th>
2903 pcg 1.1 </tr>
2904     <tr>
2905     <td>channel</td>
2906 pcg 1.3 <td>U16</td>
2907 pcg 1.17 <td> </td>
2908     <td>
2909    
2910      
2911     </td>
2912 pcg 1.3 <td>
2913 pcg 1.17 <b></b>
2914      
2915     </td>
2916 pcg 1.1 </tr>
2917     <tr>
2918     <td>othername</td>
2919 pcg 1.3 <td>username</td>
2920 pcg 1.17 <td> </td>
2921 pcg 1.3 <td>
2922 pcg 1.17
2923      
2924     </td>
2925     <td>
2926     <b></b>
2927      
2928     </td>
2929 pcg 1.1 </tr>
2930     <tr>
2931     <td>name</td>
2932 pcg 1.3 <td>username</td>
2933 pcg 1.17 <td> </td>
2934     <td>; # gives user access to the game (to what? ;)
2935    
2936      
2937     </td>
2938 pcg 1.3 <td>
2939 pcg 1.17 <b></b>
2940      
2941     </td>
2942 pcg 1.1 </tr>
2943     </table>
2944    
2945 pcg 1.17 <h4>
2946 pcg 1.32 <a name="C4423"></a>ORIGIN: CLIENT;
2947     MESSAGE: set_privacy</h4>
2948 pcg 1.17 NUMERIC TYPE (hex): 4423<p>
2949     Probably sets the "quiet" flag. Not checked.
2950     </p>
2951     <table border="1" width="100%">
2952 pcg 1.1 <tr>
2953 pcg 1.17 <th width="10%">NAME</th>
2954 pcg 1.37 <th width="8%">TYPE</th>
2955     <th width="4%">VALUE</th>
2956 pcg 1.17 <th>DESCRIPTION</th>
2957 pcg 1.37 <th width="10%">GUARD</th>
2958 pcg 1.1 </tr>
2959     <tr>
2960     <td>channel</td>
2961 pcg 1.3 <td>U16</td>
2962 pcg 1.17 <td> </td>
2963     <td>
2964    
2965      
2966     </td>
2967 pcg 1.3 <td>
2968 pcg 1.17 <b></b>
2969      
2970     </td>
2971 pcg 1.1 </tr>
2972     <tr>
2973     <td>private</td>
2974 pcg 1.58 <td>flag</td>
2975 pcg 1.17 <td> </td>
2976 pcg 1.3 <td>
2977 pcg 1.17
2978      
2979     </td>
2980     <td>
2981     <b></b>
2982      
2983     </td>
2984 pcg 1.1 </tr>
2985     </table>
2986    
2987 pcg 1.17 <h4>
2988 pcg 1.60 <a name="C4427"></a>ORIGIN: CLIENT;
2989 pcg 1.61 MESSAGE: game_move</h4>
2990 pcg 1.60 NUMERIC TYPE (hex): 4427<p>
2991     <p>Only during playing, moves.</p>
2992     </p>
2993     <table border="1" width="100%">
2994     <tr>
2995     <th width="10%">NAME</th>
2996     <th width="8%">TYPE</th>
2997     <th width="4%">VALUE</th>
2998     <th>DESCRIPTION</th>
2999     <th width="10%">GUARD</th>
3000     </tr>
3001     <tr>
3002     <td>channel</td>
3003     <td>U16</td>
3004     <td> </td>
3005     <td>
3006    
3007      
3008     </td>
3009     <td>
3010     <b></b>
3011      
3012     </td>
3013     </tr>
3014     <tr>
3015     <td>x</td>
3016     <td>U8</td>
3017     <td> </td>
3018     <td>
3019    
3020      
3021     </td>
3022     <td>
3023     <b></b>
3024      
3025     </td>
3026     </tr>
3027     <tr>
3028     <td>y</td>
3029     <td>U8</td>
3030     <td> </td>
3031     <td>
3032    
3033      
3034     </td>
3035     <td>
3036     <b></b>
3037      
3038     </td>
3039     </tr>
3040     </table>
3041    
3042     <h4>
3043 pcg 1.32 <a name="C4429"></a>ORIGIN: CLIENT;
3044     MESSAGE: reject_challenge</h4>
3045 pcg 1.17 NUMERIC TYPE (hex): 4429<p>
3046 pcg 1.9 Reject a challenge from a given user. Not checked.
3047    
3048 pcg 1.17 </p>
3049     <table border="1" width="100%">
3050     <tr>
3051     <th width="10%">NAME</th>
3052 pcg 1.37 <th width="8%">TYPE</th>
3053     <th width="4%">VALUE</th>
3054 pcg 1.17 <th>DESCRIPTION</th>
3055 pcg 1.37 <th width="10%">GUARD</th>
3056 pcg 1.1 </tr>
3057     <tr>
3058     <td>channel</td>
3059 pcg 1.3 <td>U16</td>
3060 pcg 1.17 <td> </td>
3061     <td>
3062    
3063      
3064     </td>
3065 pcg 1.3 <td>
3066 pcg 1.17 <b></b>
3067      
3068     </td>
3069 pcg 1.1 </tr>
3070     <tr>
3071     <td>name</td>
3072 pcg 1.3 <td>username</td>
3073 pcg 1.17 <td> </td>
3074     <td>
3075 pcg 1.60
3076      
3077     </td>
3078     <td>
3079     <b></b>
3080      
3081     </td>
3082     </tr>
3083     <tr>
3084     <td>gametype</td>
3085     <td>U8</td>
3086     <td> </td>
3087     <td>
3088    
3089      
3090     </td>
3091     <td>
3092     <b></b>
3093      
3094     </td>
3095     </tr>
3096     <tr>
3097     <td>cid</td>
3098     <td>CLIENTID8</td>
3099     <td> </td>
3100     <td>
3101    
3102      
3103     </td>
3104     <td>
3105     <b></b>
3106      
3107     </td>
3108     </tr>
3109     <tr>
3110     <td>rules</td>
3111     <td>rules</td>
3112     <td> </td>
3113     <td>
3114 pcg 1.17
3115      
3116     </td>
3117 pcg 1.3 <td>
3118 pcg 1.17 <b></b>
3119      
3120     </td>
3121 pcg 1.1 </tr>
3122     </table>
3123    
3124 pcg 1.17 <h4>
3125 pcg 1.65 <a name="C442d"></a>ORIGIN: CLIENT;
3126     MESSAGE: more_comments</h4>
3127     NUMERIC TYPE (hex): 442d<p>
3128     <p>Quite brokenly, the want this to send you more comments.
3129     Reply to <a href="#S442d">more_comments(442d)</a>.</p>
3130     </p>
3131     <table border="1" width="100%">
3132     <tr>
3133     <th width="10%">NAME</th>
3134     <th width="8%">TYPE</th>
3135     <th width="4%">VALUE</th>
3136     <th>DESCRIPTION</th>
3137     <th width="10%">GUARD</th>
3138     </tr>
3139     <tr>
3140     <td>channel</td>
3141     <td>U16</td>
3142     <td> </td>
3143     <td>
3144    
3145      
3146     </td>
3147     <td>
3148     <b></b>
3149      
3150     </td>
3151     </tr>
3152     <tr>
3153     <td>node</td>
3154     <td>U32</td>
3155     <td> </td>
3156     <td>
3157    
3158      
3159     </td>
3160     <td>
3161     <b></b>
3162      
3163     </td>
3164     </tr>
3165     </table>
3166    
3167     <h4>
3168 pcg 1.46 <a name="C442e"></a>ORIGIN: CLIENT;
3169     MESSAGE: save_game</h4>
3170     NUMERIC TYPE (hex): 442e<p>
3171     <p>Is send when a game is closed and should be saved on the gamerecord.</p>
3172     </p>
3173     <table border="1" width="100%">
3174     <tr>
3175     <th width="10%">NAME</th>
3176     <th width="8%">TYPE</th>
3177     <th width="4%">VALUE</th>
3178     <th>DESCRIPTION</th>
3179     <th width="10%">GUARD</th>
3180     </tr>
3181     <tr>
3182     <td>channel</td>
3183     <td>U16</td>
3184     <td> </td>
3185     <td>
3186    
3187      
3188     </td>
3189     <td>
3190     <b></b>
3191      
3192     </td>
3193     </tr>
3194     </table>
3195    
3196     <h4>
3197 pcg 1.32 <a name="C4433"></a>ORIGIN: CLIENT;
3198     MESSAGE: req_result</h4>
3199 pcg 1.17 NUMERIC TYPE (hex): 4433<p>
3200 pcg 1.9 I forgot.
3201    
3202 pcg 1.17 </p>
3203     <table border="1" width="100%">
3204     <tr>
3205     <th width="10%">NAME</th>
3206 pcg 1.37 <th width="8%">TYPE</th>
3207     <th width="4%">VALUE</th>
3208 pcg 1.17 <th>DESCRIPTION</th>
3209 pcg 1.37 <th width="10%">GUARD</th>
3210 pcg 1.1 </tr>
3211     <tr>
3212     <td>channel</td>
3213 pcg 1.3 <td>U16</td>
3214 pcg 1.35 <td> </td>
3215     <td>
3216    
3217      
3218     </td>
3219     <td>
3220     <b></b>
3221      
3222     </td>
3223     </tr>
3224     </table>
3225    
3226     <h4>
3227 pcg 1.48 <a name="C4434"></a>ORIGIN: CLIENT;
3228     MESSAGE: set_quiet</h4>
3229     NUMERIC TYPE (hex): 4434<p>
3230     <p>Sets (or clears) the quiet flag on a game.</p>
3231     </p>
3232     <table border="1" width="100%">
3233     <tr>
3234     <th width="10%">NAME</th>
3235     <th width="8%">TYPE</th>
3236     <th width="4%">VALUE</th>
3237     <th>DESCRIPTION</th>
3238     <th width="10%">GUARD</th>
3239     </tr>
3240     <tr>
3241     <td>channel</td>
3242     <td>U16</td>
3243     <td> </td>
3244     <td>
3245    
3246      
3247     </td>
3248     <td>
3249     <b></b>
3250      
3251     </td>
3252     </tr>
3253     <tr>
3254     <td>quiet</td>
3255 pcg 1.58 <td>flag</td>
3256 pcg 1.48 <td> </td>
3257     <td>
3258    
3259      
3260     </td>
3261     <td>
3262     <b></b>
3263      
3264     </td>
3265     </tr>
3266     </table>
3267    
3268     <h4>
3269 pcg 1.35 <a name="C4436"></a>ORIGIN: CLIENT;
3270     MESSAGE: msg_game</h4>
3271     NUMERIC TYPE (hex): 4436<p>
3272     </p>
3273     <table border="1" width="100%">
3274     <tr>
3275     <th width="10%">NAME</th>
3276 pcg 1.37 <th width="8%">TYPE</th>
3277     <th width="4%">VALUE</th>
3278 pcg 1.35 <th>DESCRIPTION</th>
3279 pcg 1.37 <th width="10%">GUARD</th>
3280 pcg 1.35 </tr>
3281     <tr>
3282     <td>channel</td>
3283     <td>U16</td>
3284     <td> </td>
3285     <td>
3286    
3287      
3288     </td>
3289     <td>
3290     <b></b>
3291      
3292     </td>
3293     </tr>
3294     <tr>
3295     <td>message</td>
3296     <td>STRING</td>
3297 pcg 1.17 <td> </td>
3298 pcg 1.3 <td>
3299 pcg 1.17
3300      
3301     </td>
3302     <td>
3303     <b></b>
3304      
3305     </td>
3306 pcg 1.1 </tr>
3307     </table>
3308    
3309 pcg 1.37 <h4>
3310     <a name="Cffff"></a>ORIGIN: CLIENT;
3311     MESSAGE: quit</h4>
3312     NUMERIC TYPE (hex): ffff<p>
3313     <p>Sent by the client just before it logs out.</p>
3314     </p>
3315     <table border="1" width="100%">
3316     <tr>
3317     <th width="10%">NAME</th>
3318     <th width="8%">TYPE</th>
3319     <th width="4%">VALUE</th>
3320     <th>DESCRIPTION</th>
3321     <th width="10%">GUARD</th>
3322     </tr>
3323     </table>
3324    
3325 pcg 1.32 <h2>Structs mainly used in messages send by the server</h2>
3326 pcg 1.1
3327 pcg 1.3 <h4>STRUCTURE challenge_defaults</h4>
3328 pcg 1.17 <p>
3329     Send soon after log-in to set the defaults for game challenges.
3330     </p>
3331     <table border="1" width="100%">
3332 pcg 1.1 <tr>
3333 pcg 1.17 <th width="10%">NAME</th>
3334 pcg 1.37 <th width="8%">TYPE</th>
3335     <th width="4%">VALUE</th>
3336 pcg 1.17 <th>DESCRIPTION</th>
3337 pcg 1.37 <th width="10%">GUARD</th>
3338 pcg 1.1 </tr>
3339     <tr>
3340 pcg 1.60 <td>gametype</td>
3341 pcg 1.59 <td>U8</td>
3342     <td> </td>
3343     <td>
3344    
3345      
3346     </td>
3347     <td>
3348     <b></b>
3349      
3350     </td>
3351     </tr>
3352     <tr>
3353     <td>ruleset</td>
3354     <td>U8</td>
3355 pcg 1.17 <td> </td>
3356     <td>
3357    
3358      
3359     </td>
3360 pcg 1.3 <td>
3361 pcg 1.17 <b></b>
3362      
3363     </td>
3364 pcg 1.1 </tr>
3365     <tr>
3366     <td>size</td>
3367 pcg 1.3 <td>U32</td>
3368 pcg 1.17 <td> </td>
3369     <td>
3370    
3371      
3372     </td>
3373 pcg 1.3 <td>
3374 pcg 1.17 <b></b>
3375      
3376     </td>
3377 pcg 1.1 </tr>
3378     <tr>
3379     <td>timesys</td>
3380 pcg 1.3 <td>U32</td>
3381 pcg 1.17 <td> </td>
3382     <td>
3383    
3384      
3385     </td>
3386 pcg 1.3 <td>
3387 pcg 1.17 <b></b>
3388      
3389     </td>
3390 pcg 1.1 </tr>
3391     <tr>
3392     <td>time</td>
3393 pcg 1.3 <td>U32</td>
3394 pcg 1.17 <td> </td>
3395     <td>
3396    
3397      
3398     </td>
3399 pcg 1.3 <td>
3400 pcg 1.17 <b></b>
3401      
3402     </td>
3403 pcg 1.1 </tr>
3404     <tr>
3405     <td>byo_time</td>
3406 pcg 1.3 <td>U32</td>
3407 pcg 1.17 <td> </td>
3408     <td>
3409    
3410      
3411     </td>
3412 pcg 1.3 <td>
3413 pcg 1.17 <b></b>
3414      
3415     </td>
3416 pcg 1.1 </tr>
3417     <tr>
3418     <td>byo_periods</td>
3419 pcg 1.3 <td>U32</td>
3420 pcg 1.17 <td> </td>
3421     <td>
3422    
3423      
3424     </td>
3425 pcg 1.3 <td>
3426 pcg 1.17 <b></b>
3427      
3428     </td>
3429 pcg 1.1 </tr>
3430     <tr>
3431     <td>can_time</td>
3432 pcg 1.3 <td>U32</td>
3433 pcg 1.17 <td> </td>
3434     <td>
3435    
3436      
3437     </td>
3438 pcg 1.3 <td>
3439 pcg 1.17 <b></b>
3440      
3441     </td>
3442 pcg 1.1 </tr>
3443     <tr>
3444     <td>can_stones</td>
3445 pcg 1.3 <td>U32</td>
3446 pcg 1.17 <td> </td>
3447     <td>
3448 pcg 1.58
3449      
3450     </td>
3451     <td>
3452     <b></b>
3453      
3454     </td>
3455     </tr>
3456     <tr>
3457     <td>notes</td>
3458     <td>STRING</td>
3459     <td> </td>
3460     <td>
3461 pcg 1.17
3462      
3463     </td>
3464 pcg 1.3 <td>
3465 pcg 1.17 <b></b>
3466      
3467     </td>
3468 pcg 1.1 </tr>
3469     </table>
3470    
3471 pcg 1.3 <h4>STRUCTURE game</h4>
3472     CLASS: KGS::Game<br />
3473 pcg 1.17 <p>
3474 pcg 1.9 Basic information about a game. Used in rooms for the gamelist and
3475     in games to detect when a game is saved, changed type (e.g. R =&gt; D)
3476     etc.
3477    
3478 pcg 1.17 </p>
3479     <table border="1" width="100%">
3480     <tr>
3481     <th width="10%">NAME</th>
3482 pcg 1.37 <th width="8%">TYPE</th>
3483     <th width="4%">VALUE</th>
3484 pcg 1.17 <th>DESCRIPTION</th>
3485 pcg 1.37 <th width="10%">GUARD</th>
3486 pcg 1.1 </tr>
3487     <tr>
3488     <td>channel</td>
3489 pcg 1.3 <td>U16</td>
3490 pcg 1.17 <td> </td>
3491     <td>
3492    
3493      
3494     </td>
3495 pcg 1.3 <td>
3496 pcg 1.17 <b></b>
3497      
3498     </td>
3499 pcg 1.1 </tr>
3500     <tr>
3501 pcg 1.3 <td>type</td>
3502 pcg 1.25 <td>U8</td>
3503 pcg 1.17 <td> </td>
3504     <td>
3505    
3506      
3507     </td>
3508 pcg 1.3 <td>
3509 pcg 1.17 <b></b>
3510      
3511     </td>
3512 pcg 1.1 </tr>
3513     <tr>
3514 pcg 1.60 <td>black</td>
3515 pcg 1.1 <td>user</td>
3516 pcg 1.17 <td> </td>
3517 pcg 1.3 <td>
3518 pcg 1.1 White
3519 pcg 1.17
3520      
3521     </td>
3522     <td>
3523     <b></b>
3524      
3525     </td>
3526 pcg 1.1 </tr>
3527     <tr>
3528 pcg 1.60 <td>white</td>
3529 pcg 1.1 <td>user</td>
3530 pcg 1.17 <td> </td>
3531 pcg 1.3 <td>
3532 pcg 1.1 Black
3533 pcg 1.17
3534      
3535     </td>
3536     <td>
3537     <b></b>
3538      
3539     </td>
3540 pcg 1.1 </tr>
3541     <tr>
3542 pcg 1.60 <td>owner</td>
3543 pcg 1.1 <td>user</td>
3544 pcg 1.17 <td> </td>
3545 pcg 1.3 <td>
3546 pcg 1.1 Owner
3547 pcg 1.17
3548      
3549     </td>
3550     <td>
3551     <b></b>
3552      
3553     </td>
3554 pcg 1.1 </tr>
3555     <tr>
3556     <td>size</td>
3557 pcg 1.25 <td>U8</td>
3558 pcg 1.17 <td> </td>
3559     <td>
3560    
3561      
3562     </td>
3563 pcg 1.3 <td>
3564 pcg 1.17 <b></b>
3565      
3566     </td>
3567 pcg 1.1 </tr>
3568     <tr>
3569     <td>handicap</td>
3570 pcg 1.25 <td>I8</td>
3571 pcg 1.17 <td> </td>
3572 pcg 1.3 <td>
3573 pcg 1.1 &lt; 0 not fully setup
3574 pcg 1.17
3575      
3576     </td>
3577     <td>
3578     <b></b>
3579      
3580     </td>
3581 pcg 1.1 </tr>
3582     <tr>
3583     <td>komi</td>
3584 pcg 1.25 <td>komi16</td>
3585 pcg 1.17 <td> </td>
3586     <td>
3587    
3588      
3589     </td>
3590 pcg 1.3 <td>
3591 pcg 1.17 <b></b>
3592      
3593     </td>
3594 pcg 1.1 </tr>
3595     <tr>
3596     <td>moves</td>
3597 pcg 1.13 <td>I16</td>
3598 pcg 1.17 <td> </td>
3599 pcg 1.3 <td>
3600 pcg 1.12 This field reflects either the movenum or the score, sorry, not even guards help, as
3601 pcg 1.13 the flags to determine that are _after_ the field. Arg. Divide by two to get the actual
3602 pcg 1.26 score (NOT score16!) (arg²).
3603 pcg 1.17
3604      
3605     </td>
3606     <td>
3607     <b></b>
3608      
3609     </td>
3610 pcg 1.1 </tr>
3611     <tr>
3612     <td>flags</td>
3613 pcg 1.3 <td>U16</td>
3614 pcg 1.17 <td> </td>
3615     <td>
3616    
3617      
3618     </td>
3619 pcg 1.3 <td>
3620 pcg 1.17 <b></b>
3621      
3622     </td>
3623 pcg 1.1 </tr>
3624     <tr>
3625     <td>observers</td>
3626 pcg 1.3 <td>U32</td>
3627 pcg 1.17 <td> </td>
3628     <td>
3629    
3630      
3631     </td>
3632 pcg 1.3 <td>
3633 pcg 1.17 <b></b>
3634      
3635     </td>
3636 pcg 1.1 </tr>
3637     <tr>
3638     <td>saved</td>
3639 pcg 1.3 <td>flag</td>
3640 pcg 1.17 <td> </td>
3641     <td>
3642    
3643      
3644     </td>
3645 pcg 1.3 <td>
3646 pcg 1.17 <b></b>
3647      
3648     </td>
3649 pcg 1.1 </tr>
3650     <tr>
3651     <td>notes</td>
3652     <td>STRING</td>
3653 pcg 1.17 <td> </td>
3654     <td>
3655    
3656      
3657     </td>
3658 pcg 1.3 <td>
3659 pcg 1.17 <b>handicap</b> &lt; 0
3660      
3661     </td>
3662 pcg 1.1 </tr>
3663     </table>
3664    
3665 pcg 1.3 <h4>STRUCTURE room_obs</h4>
3666 pcg 1.17 <p>
3667 pcg 1.9 Obsolete.
3668    
3669 pcg 1.17 </p>
3670     <table border="1" width="100%">
3671     <tr>
3672     <th width="10%">NAME</th>
3673 pcg 1.37 <th width="8%">TYPE</th>
3674     <th width="4%">VALUE</th>
3675 pcg 1.17 <th>DESCRIPTION</th>
3676 pcg 1.37 <th width="10%">GUARD</th>
3677 pcg 1.1 </tr>
3678     <tr>
3679     <td>name</td>
3680 pcg 1.3 <td>roomname</td>
3681 pcg 1.17 <td> </td>
3682 pcg 1.3 <td>
3683 pcg 1.17
3684      
3685     </td>
3686     <td>
3687     <b></b>
3688      
3689     </td>
3690 pcg 1.1 </tr>
3691     <tr>
3692     <td>channel</td>
3693 pcg 1.3 <td>U16</td>
3694 pcg 1.17 <td> </td>
3695     <td>
3696    
3697      
3698     </td>
3699 pcg 1.3 <td>
3700 pcg 1.17 <b></b>
3701      
3702     </td>
3703 pcg 1.1 </tr>
3704     <tr>
3705     <td>flags</td>
3706 pcg 1.3 <td>U32</td>
3707 pcg 1.17 <td> </td>
3708 pcg 1.3 <td>
3709 pcg 1.17
3710      
3711     </td>
3712     <td>
3713     <b></b>
3714      
3715     </td>
3716 pcg 1.1 </tr>
3717     <tr>
3718     <td>users</td>
3719 pcg 1.3 <td>U32</td>
3720 pcg 1.17 <td> </td>
3721     <td>
3722    
3723      
3724     </td>
3725 pcg 1.3 <td>
3726 pcg 1.17 <b></b>
3727      
3728     </td>
3729 pcg 1.1 </tr>
3730     </table>
3731    
3732 pcg 1.3 <h4>STRUCTURE room</h4>
3733     CLASS: KGS::Room<br />
3734 pcg 1.17 <p>
3735     </p>
3736     <table border="1" width="100%">
3737 pcg 1.1 <tr>
3738 pcg 1.17 <th width="10%">NAME</th>
3739 pcg 1.37 <th width="8%">TYPE</th>
3740     <th width="4%">VALUE</th>
3741 pcg 1.17 <th>DESCRIPTION</th>
3742 pcg 1.37 <th width="10%">GUARD</th>
3743 pcg 1.1 </tr>
3744     <tr>
3745     <td>channel</td>
3746 pcg 1.3 <td>U16</td>
3747 pcg 1.17 <td> </td>
3748     <td>
3749    
3750      
3751     </td>
3752 pcg 1.3 <td>
3753 pcg 1.17 <b></b>
3754      
3755     </td>
3756 pcg 1.1 </tr>
3757     <tr>
3758     <td>flags</td>
3759 pcg 1.3 <td>U8</td>
3760 pcg 1.17 <td> </td>
3761     <td>
3762    
3763      
3764     </td>
3765 pcg 1.3 <td>
3766 pcg 1.17 <b></b>
3767      
3768     </td>
3769 pcg 1.1 </tr>
3770     <tr>
3771     <td>group</td>
3772 pcg 1.3 <td>U8</td>
3773 pcg 1.17 <td> </td>
3774     <td>
3775    
3776      
3777     </td>
3778 pcg 1.3 <td>
3779 pcg 1.17 <b></b>
3780      
3781     </td>
3782 pcg 1.1 </tr>
3783     <tr>
3784     <td>users</td>
3785 pcg 1.3 <td>U16</td>
3786 pcg 1.17 <td> </td>
3787     <td>
3788    
3789      
3790     </td>
3791 pcg 1.3 <td>
3792 pcg 1.17 <b></b>
3793      
3794     </td>
3795 pcg 1.1 </tr>
3796     <tr>
3797     <td>games</td>
3798 pcg 1.3 <td>U16</td>
3799 pcg 1.17 <td> </td>
3800     <td>
3801    
3802      
3803     </td>
3804 pcg 1.3 <td>
3805 pcg 1.17 <b></b>
3806      
3807     </td>
3808 pcg 1.1 </tr>
3809     <tr>
3810     <td>name</td>
3811     <td>STRING</td>
3812 pcg 1.17 <td> </td>
3813     <td>
3814    
3815      
3816     </td>
3817 pcg 1.3 <td>
3818 pcg 1.17 <b></b>
3819      
3820     </td>
3821 pcg 1.1 </tr>
3822     </table>
3823    
3824 pcg 1.10 <h4>STRUCTURE scorevalues</h4>
3825 pcg 1.3 CLASS: KGS::Score<br />
3826 pcg 1.17 <p>
3827     </p>
3828     <table border="1" width="100%">
3829     <tr>
3830     <th width="10%">NAME</th>
3831 pcg 1.37 <th width="8%">TYPE</th>
3832     <th width="4%">VALUE</th>
3833 pcg 1.17 <th>DESCRIPTION</th>
3834 pcg 1.37 <th width="10%">GUARD</th>
3835 pcg 1.1 </tr>
3836     <tr>
3837     <td>score</td>
3838 pcg 1.11 <td>score32</td>
3839 pcg 1.17 <td> </td>
3840     <td>
3841    
3842      
3843     </td>
3844 pcg 1.3 <td>
3845 pcg 1.17 <b></b>
3846      
3847     </td>
3848 pcg 1.1 </tr>
3849     <tr>
3850     <td>territory</td>
3851 pcg 1.3 <td>U32</td>
3852 pcg 1.17 <td> </td>
3853     <td>
3854    
3855      
3856     </td>
3857 pcg 1.3 <td>
3858 pcg 1.17 <b></b>
3859      
3860     </td>
3861 pcg 1.1 </tr>
3862     <tr>
3863     <td>captures</td>
3864 pcg 1.3 <td>U32</td>
3865 pcg 1.17 <td> </td>
3866     <td>
3867    
3868      
3869     </td>
3870 pcg 1.3 <td>
3871 pcg 1.17 <b></b>
3872      
3873     </td>
3874 pcg 1.1 </tr>
3875     <tr>
3876     <td>i3</td>
3877 pcg 1.3 <td>U32</td>
3878 pcg 1.17 <td> </td>
3879     <td>
3880    
3881      
3882     </td>
3883 pcg 1.3 <td>
3884 pcg 1.17 <b></b>
3885      
3886     </td>
3887 pcg 1.1 </tr>
3888     <tr>
3889     <td>f2</td>
3890 pcg 1.3 <td>U32</td>
3891 pcg 1.17 <td> </td>
3892     <td>
3893    
3894      
3895     </td>
3896 pcg 1.3 <td>
3897 pcg 1.17 <b></b>
3898      
3899     </td>
3900 pcg 1.1 </tr>
3901     <tr>
3902     <td>komi</td>
3903 pcg 1.19 <td>komi324</td>
3904 pcg 1.17 <td> </td>
3905     <td>
3906    
3907      
3908     </td>
3909 pcg 1.3 <td>
3910 pcg 1.17 <b></b>
3911      
3912     </td>
3913 pcg 1.1 </tr>
3914     <tr>
3915     <td>i4</td>
3916 pcg 1.3 <td>U32</td>
3917 pcg 1.17 <td> </td>
3918 pcg 1.3 <td>
3919     Apparently the i3, f2, i4 are zero.
3920 pcg 1.17
3921      
3922     </td>
3923     <td>
3924     <b></b>
3925      
3926     </td>
3927 pcg 1.1 </tr>
3928     </table>
3929    
3930 pcg 1.14 <h4>STRUCTURE game_record</h4>
3931     CLASS: KGS::GameRecord<br />
3932 pcg 1.17 <p>
3933 pcg 1.32 <p>A single game record entry, as seen in <a href="#S0008">userinfo(0008)</a>.</p>
3934 pcg 1.17 </p>
3935     <table border="1" width="100%">
3936 pcg 1.14 <tr>
3937 pcg 1.17 <th width="10%">NAME</th>
3938 pcg 1.37 <th width="8%">TYPE</th>
3939     <th width="4%">VALUE</th>
3940 pcg 1.17 <th>DESCRIPTION</th>
3941 pcg 1.37 <th width="10%">GUARD</th>
3942 pcg 1.14 </tr>
3943     <tr>
3944     <td>timestamp</td>
3945     <td>timestamp</td>
3946 pcg 1.17 <td> </td>
3947 pcg 1.14 <td>
3948     Time this game was played.
3949 pcg 1.17
3950      
3951     </td>
3952     <td>
3953     <b></b>
3954      
3955     </td>
3956 pcg 1.14 </tr>
3957     <tr>
3958 pcg 1.42 <td>flags1</td>
3959 pcg 1.14 <td>U8</td>
3960 pcg 1.17 <td> </td>
3961 pcg 1.14 <td>
3962 pcg 1.17
3963      
3964     </td>
3965     <td>
3966     <b></b>
3967      
3968     </td>
3969 pcg 1.14 </tr>
3970     <tr>
3971 pcg 1.60 <td>black</td>
3972 pcg 1.14 <td>user</td>
3973 pcg 1.17 <td> </td>
3974 pcg 1.14 <td>
3975     White, flags contain low 8 bits of revision (bits 16-23).
3976 pcg 1.17
3977      
3978     </td>
3979     <td>
3980     <b></b>
3981      
3982     </td>
3983 pcg 1.14 </tr>
3984     <tr>
3985 pcg 1.60 <td>white</td>
3986 pcg 1.14 <td>user</td>
3987 pcg 1.17 <td> </td>
3988 pcg 1.14 <td>
3989     Black, flags contain high 8 bits of revision (bits 16-23).
3990 pcg 1.17
3991      
3992     </td>
3993     <td>
3994     <b></b>
3995      
3996     </td>
3997 pcg 1.14 </tr>
3998     <tr>
3999 pcg 1.60 <td>owner</td>
4000 pcg 1.14 <td>user</td>
4001 pcg 1.17 <td> </td>
4002 pcg 1.14 <td>
4003 pcg 1.34
4004 pcg 1.17
4005      
4006     </td>
4007     <td>
4008     <b></b>
4009      
4010     </td>
4011 pcg 1.14 </tr>
4012     <tr>
4013 pcg 1.42 <td>flags2</td>
4014     <td>U16</td>
4015 pcg 1.17 <td> </td>
4016     <td>
4017    
4018      
4019     </td>
4020 pcg 1.14 <td>
4021 pcg 1.17 <b></b>
4022      
4023     </td>
4024 pcg 1.14 </tr>
4025     <tr>
4026     <td>score</td>
4027     <td>score16</td>
4028 pcg 1.17 <td> </td>
4029 pcg 1.14 <td>
4030 pcg 1.17
4031      
4032     </td>
4033     <td>
4034     <b></b>
4035      
4036     </td>
4037 pcg 1.14 </tr>
4038     <tr>
4039 pcg 1.42 <td>flags3</td>
4040 pcg 1.14 <td>U8</td>
4041 pcg 1.17 <td> </td>
4042 pcg 1.14 <td>
4043 pcg 1.34
4044    
4045 pcg 1.17  
4046     </td>
4047     <td>
4048     <b></b>
4049      
4050     </td>
4051 pcg 1.14 </tr>
4052     </table>
4053    
4054 pcg 1.32 <h2>Server-generated messages</h2>
4055 pcg 1.1
4056 pcg 1.17 <h4>
4057 pcg 1.32 <a name="S0001"></a>ORIGIN: SERVER;
4058     MESSAGE: login</h4>
4059 pcg 1.17 NUMERIC TYPE (hex): 0001
4060     (possibly in response to
4061 pcg 1.32 <a href="#C0000">login(0000)</a>
4062 pcg 1.17 )
4063     <p>
4064     </p>
4065     <table border="1" width="100%">
4066     <tr>
4067     <th width="10%">NAME</th>
4068 pcg 1.37 <th width="8%">TYPE</th>
4069     <th width="4%">VALUE</th>
4070 pcg 1.17 <th>DESCRIPTION</th>
4071 pcg 1.37 <th width="10%">GUARD</th>
4072 pcg 1.1 </tr>
4073     <tr>
4074 pcg 1.40 <td>message</td>
4075 pcg 1.1 <td>CONSTANT</td>
4076 pcg 1.40 <td>login successful </td>
4077 pcg 1.17 <td>
4078    
4079      
4080     </td>
4081 pcg 1.3 <td>
4082 pcg 1.17 <b></b>
4083      
4084     </td>
4085 pcg 1.1 </tr>
4086     <tr>
4087     <td>success</td>
4088     <td>CONSTANT</td>
4089 pcg 1.17 <td>1 </td>
4090 pcg 1.3 <td>
4091 pcg 1.17
4092      
4093     </td>
4094     <td>
4095     <b></b>
4096      
4097     </td>
4098 pcg 1.1 </tr>
4099     </table>
4100    
4101 pcg 1.17 <h4>
4102 pcg 1.32 <a name="S0002"></a>ORIGIN: SERVER;
4103     MESSAGE: login</h4>
4104 pcg 1.17 NUMERIC TYPE (hex): 0002
4105     (possibly in response to
4106 pcg 1.32 <a href="#C0000">login(0000)</a>
4107 pcg 1.17 )
4108     <p>
4109     </p>
4110     <table border="1" width="100%">
4111     <tr>
4112     <th width="10%">NAME</th>
4113 pcg 1.37 <th width="8%">TYPE</th>
4114     <th width="4%">VALUE</th>
4115 pcg 1.17 <th>DESCRIPTION</th>
4116 pcg 1.37 <th width="10%">GUARD</th>
4117 pcg 1.1 </tr>
4118     <tr>
4119 pcg 1.40 <td>message</td>
4120 pcg 1.1 <td>CONSTANT</td>
4121 pcg 1.40 <td>login successful: client version is outdated. </td>
4122 pcg 1.3 <td>
4123 pcg 1.17
4124      
4125     </td>
4126     <td>
4127     <b></b>
4128      
4129     </td>
4130 pcg 1.1 </tr>
4131     <tr>
4132     <td>success</td>
4133     <td>CONSTANT</td>
4134 pcg 1.17 <td>1 </td>
4135     <td>
4136    
4137      
4138     </td>
4139 pcg 1.3 <td>
4140 pcg 1.17 <b></b>
4141      
4142     </td>
4143 pcg 1.1 </tr>
4144     </table>
4145    
4146 pcg 1.17 <h4>
4147 pcg 1.32 <a name="S0003"></a>ORIGIN: SERVER;
4148     MESSAGE: login</h4>
4149 pcg 1.17 NUMERIC TYPE (hex): 0003
4150     (possibly in response to
4151 pcg 1.32 <a href="#C0000">login(0000)</a>
4152 pcg 1.17 )
4153     <p>
4154     </p>
4155     <table border="1" width="100%">
4156     <tr>
4157     <th width="10%">NAME</th>
4158 pcg 1.37 <th width="8%">TYPE</th>
4159     <th width="4%">VALUE</th>
4160 pcg 1.17 <th>DESCRIPTION</th>
4161 pcg 1.37 <th width="10%">GUARD</th>
4162 pcg 1.1 </tr>
4163     <tr>
4164 pcg 1.40 <td>message</td>
4165 pcg 1.1 <td>CONSTANT</td>
4166 pcg 1.40 <td>login failed: client version out of date </td>
4167 pcg 1.3 <td>
4168 pcg 1.1 ** maybe more following? **
4169 pcg 1.17
4170      
4171     </td>
4172     <td>
4173     <b></b>
4174      
4175     </td>
4176 pcg 1.1 </tr>
4177     </table>
4178    
4179 pcg 1.17 <h4>
4180 pcg 1.32 <a name="S0004"></a>ORIGIN: SERVER;
4181     MESSAGE: login</h4>
4182 pcg 1.17 NUMERIC TYPE (hex): 0004
4183     (possibly in response to
4184 pcg 1.32 <a href="#C0000">login(0000)</a>
4185 pcg 1.17 )
4186     <p>
4187     </p>
4188     <table border="1" width="100%">
4189     <tr>
4190     <th width="10%">NAME</th>
4191 pcg 1.37 <th width="8%">TYPE</th>
4192     <th width="4%">VALUE</th>
4193 pcg 1.17 <th>DESCRIPTION</th>
4194 pcg 1.37 <th width="10%">GUARD</th>
4195 pcg 1.1 </tr>
4196     <tr>
4197 pcg 1.40 <td>message</td>
4198 pcg 1.1 <td>CONSTANT</td>
4199 pcg 1.40 <td>login failed: wrong password </td>
4200 pcg 1.3 <td>
4201 pcg 1.1 ** maybe more following? **
4202 pcg 1.17
4203      
4204     </td>
4205     <td>
4206     <b></b>
4207      
4208     </td>
4209 pcg 1.1 </tr>
4210     </table>
4211    
4212 pcg 1.17 <h4>
4213 pcg 1.32 <a name="S0005"></a>ORIGIN: SERVER;
4214     MESSAGE: login</h4>
4215 pcg 1.17 NUMERIC TYPE (hex): 0005
4216     (possibly in response to
4217 pcg 1.32 <a href="#C0000">login(0000)</a>
4218 pcg 1.17 )
4219     <p>
4220     </p>
4221     <table border="1" width="100%">
4222     <tr>
4223     <th width="10%">NAME</th>
4224 pcg 1.37 <th width="8%">TYPE</th>
4225     <th width="4%">VALUE</th>
4226 pcg 1.17 <th>DESCRIPTION</th>
4227 pcg 1.37 <th width="10%">GUARD</th>
4228 pcg 1.1 </tr>
4229     <tr>
4230 pcg 1.40 <td>message</td>
4231 pcg 1.1 <td>CONSTANT</td>
4232 pcg 1.40 <td>login failed: specified user does not exist </td>
4233 pcg 1.3 <td>
4234 pcg 1.17
4235      
4236     </td>
4237     <td>
4238     <b></b>
4239      
4240     </td>
4241 pcg 1.1 </tr>
4242     </table>
4243    
4244 pcg 1.17 <h4>
4245 pcg 1.32 <a name="S0006"></a>ORIGIN: SERVER;
4246     MESSAGE: login</h4>
4247 pcg 1.17 NUMERIC TYPE (hex): 0006
4248     (possibly in response to
4249 pcg 1.32 <a href="#C0000">login(0000)</a>
4250 pcg 1.17 )
4251     <p>
4252     </p>
4253     <table border="1" width="100%">
4254     <tr>
4255     <th width="10%">NAME</th>
4256 pcg 1.37 <th width="8%">TYPE</th>
4257     <th width="4%">VALUE</th>
4258 pcg 1.17 <th>DESCRIPTION</th>
4259 pcg 1.37 <th width="10%">GUARD</th>
4260 pcg 1.1 </tr>
4261     <tr>
4262 pcg 1.40 <td>message</td>
4263 pcg 1.1 <td>CONSTANT</td>
4264 pcg 1.56 <td>login failed: user of same name logged in </td>
4265 pcg 1.3 <td>
4266 pcg 1.17
4267      
4268     </td>
4269     <td>
4270     <b></b>
4271      
4272     </td>
4273 pcg 1.1 </tr>
4274     </table>
4275    
4276 pcg 1.17 <h4>
4277 pcg 1.32 <a name="S0008"></a>ORIGIN: SERVER;
4278     MESSAGE: userinfo</h4>
4279 pcg 1.17 NUMERIC TYPE (hex): 0008
4280     (possibly in response to
4281 pcg 1.32 <a href="#C0007">req_userinfo(0007)</a>
4282 pcg 1.17 )
4283     <p>
4284     User info.
4285     </p>
4286     <table border="1" width="100%">
4287 pcg 1.14 <tr>
4288 pcg 1.17 <th width="10%">NAME</th>
4289 pcg 1.37 <th width="8%">TYPE</th>
4290     <th width="4%">VALUE</th>
4291 pcg 1.17 <th>DESCRIPTION</th>
4292 pcg 1.37 <th width="10%">GUARD</th>
4293 pcg 1.14 </tr>
4294     <tr>
4295 pcg 1.33 <td>_unused0</td>
4296     <td>flag</td>
4297     <td> </td>
4298     <td>
4299    
4300      
4301     </td>
4302     <td>
4303     <b></b>
4304      
4305     </td>
4306     </tr>
4307     <tr>
4308 pcg 1.14 <td>user</td>
4309     <td>user</td>
4310 pcg 1.17 <td> </td>
4311     <td>
4312    
4313      
4314     </td>
4315 pcg 1.14 <td>
4316 pcg 1.17 <b></b>
4317      
4318     </td>
4319 pcg 1.14 </tr>
4320     <tr>
4321 pcg 1.33 <td>_unused1</td>
4322 pcg 1.15 <td>U64</td>
4323 pcg 1.17 <td> </td>
4324     <td>
4325    
4326      
4327     </td>
4328 pcg 1.14 <td>
4329 pcg 1.17 <b></b>
4330      
4331     </td>
4332 pcg 1.14 </tr>
4333     <tr>
4334     <td>realname</td>
4335     <td>realname</td>
4336 pcg 1.17 <td> </td>
4337     <td>
4338    
4339      
4340     </td>
4341 pcg 1.14 <td>
4342 pcg 1.17 <b></b>
4343      
4344     </td>
4345 pcg 1.14 </tr>
4346     <tr>
4347     <td>email</td>
4348     <td>email</td>
4349 pcg 1.17 <td> </td>
4350     <td>
4351    
4352      
4353     </td>
4354 pcg 1.14 <td>
4355 pcg 1.17 <b></b>
4356      
4357     </td>
4358 pcg 1.14 </tr>
4359     <tr>
4360     <td>info</td>
4361     <td>userinfo</td>
4362 pcg 1.17 <td> </td>
4363     <td>
4364    
4365      
4366     </td>
4367 pcg 1.14 <td>
4368 pcg 1.17 <b></b>
4369      
4370     </td>
4371 pcg 1.14 </tr>
4372     <tr>
4373     <td>homepage</td>
4374     <td>url</td>
4375 pcg 1.17 <td> </td>
4376     <td>
4377    
4378      
4379     </td>
4380 pcg 1.14 <td>
4381 pcg 1.17 <b></b>
4382      
4383     </td>
4384 pcg 1.14 </tr>
4385     <tr>
4386     <td>regdate</td>
4387     <td>timestamp</td>
4388 pcg 1.17 <td> </td>
4389 pcg 1.14 <td>
4390     When the user registered (0 == never registered).
4391 pcg 1.17
4392      
4393     </td>
4394     <td>
4395     <b></b>
4396      
4397     </td>
4398 pcg 1.14 </tr>
4399     <tr>
4400     <td>lastlogin</td>
4401     <td>timestamp</td>
4402 pcg 1.17 <td> </td>
4403 pcg 1.14 <td>
4404     When the user logged in for the last time.
4405 pcg 1.17
4406      
4407     </td>
4408     <td>
4409     <b></b>
4410      
4411     </td>
4412 pcg 1.14 </tr>
4413     </table>
4414    
4415 pcg 1.17 <h4>
4416 pcg 1.40 <a name="S0009"></a>ORIGIN: SERVER;
4417     MESSAGE: upd_userinfo_result</h4>
4418     NUMERIC TYPE (hex): 0009<p>
4419     </p>
4420     <table border="1" width="100%">
4421     <tr>
4422     <th width="10%">NAME</th>
4423     <th width="8%">TYPE</th>
4424     <th width="4%">VALUE</th>
4425     <th>DESCRIPTION</th>
4426     <th width="10%">GUARD</th>
4427     </tr>
4428     <tr>
4429     <td>name</td>
4430     <td>username</td>
4431     <td> </td>
4432     <td>
4433    
4434      
4435     </td>
4436     <td>
4437     <b></b>
4438      
4439     </td>
4440     </tr>
4441     <tr>
4442     <td>message</td>
4443     <td>CONSTANT</td>
4444     <td>Thanks for registering. </td>
4445     <td>
4446    
4447      
4448     </td>
4449     <td>
4450     <b></b>
4451      
4452     </td>
4453     </tr>
4454     </table>
4455    
4456     <h4>
4457     <a name="S000a"></a>ORIGIN: SERVER;
4458     MESSAGE: upd_userinfo_result</h4>
4459     NUMERIC TYPE (hex): 000a<p>
4460     </p>
4461     <table border="1" width="100%">
4462     <tr>
4463     <th width="10%">NAME</th>
4464     <th width="8%">TYPE</th>
4465     <th width="4%">VALUE</th>
4466     <th>DESCRIPTION</th>
4467     <th width="10%">GUARD</th>
4468     </tr>
4469     <tr>
4470     <td>name</td>
4471     <td>username</td>
4472     <td> </td>
4473     <td>
4474    
4475      
4476     </td>
4477     <td>
4478     <b></b>
4479      
4480     </td>
4481     </tr>
4482     <tr>
4483     <td>message</td>
4484     <td>CONSTANT</td>
4485     <td>The user "%s" has been successfully updated. </td>
4486     <td>
4487    
4488      
4489     </td>
4490     <td>
4491     <b></b>
4492      
4493     </td>
4494     </tr>
4495     </table>
4496    
4497     <h4>
4498     <a name="S000b"></a>ORIGIN: SERVER;
4499     MESSAGE: upd_userinfo_result</h4>
4500     NUMERIC TYPE (hex): 000b<p>
4501     </p>
4502     <table border="1" width="100%">
4503     <tr>
4504     <th width="10%">NAME</th>
4505     <th width="8%">TYPE</th>
4506     <th width="4%">VALUE</th>
4507     <th>DESCRIPTION</th>
4508     <th width="10%">GUARD</th>
4509     </tr>
4510     <tr>
4511     <td>name</td>
4512     <td>username</td>
4513     <td> </td>
4514     <td>
4515    
4516      
4517     </td>
4518     <td>
4519     <b></b>
4520      
4521     </td>
4522     </tr>
4523     <tr>
4524     <td>message</td>
4525     <td>CONSTANT</td>
4526     <td>There is no user "%s". Update failed. </td>
4527     <td>
4528    
4529      
4530     </td>
4531     <td>
4532     <b></b>
4533      
4534     </td>
4535     </tr>
4536     </table>
4537    
4538     <h4>
4539     <a name="S0012"></a>ORIGIN: SERVER;
4540     MESSAGE: userinfo_failed</h4>
4541     NUMERIC TYPE (hex): 0012<p>
4542     <p>Sent when no userinfo for the requested user could be found(?)</p>
4543     </p>
4544     <table border="1" width="100%">
4545     <tr>
4546     <th width="10%">NAME</th>
4547     <th width="8%">TYPE</th>
4548     <th width="4%">VALUE</th>
4549     <th>DESCRIPTION</th>
4550     <th width="10%">GUARD</th>
4551     </tr>
4552     <tr>
4553     <td>name</td>
4554     <td>username</td>
4555     <td> </td>
4556     <td>
4557    
4558      
4559     </td>
4560     <td>
4561     <b></b>
4562      
4563     </td>
4564     </tr>
4565     </table>
4566    
4567     <h4>
4568 pcg 1.32 <a name="S0013"></a>ORIGIN: SERVER;
4569     MESSAGE: msg_chat</h4>
4570 pcg 1.17 NUMERIC TYPE (hex): 0013<p>
4571     </p>
4572     <table border="1" width="100%">
4573     <tr>
4574     <th width="10%">NAME</th>
4575 pcg 1.37 <th width="8%">TYPE</th>
4576     <th width="4%">VALUE</th>
4577 pcg 1.17 <th>DESCRIPTION</th>
4578 pcg 1.37 <th width="10%">GUARD</th>
4579 pcg 1.1 </tr>
4580     <tr>
4581 pcg 1.34 <td>name</td>
4582 pcg 1.3 <td>username</td>
4583 pcg 1.17 <td> </td>
4584 pcg 1.3 <td>
4585 pcg 1.36 Name of sender (either yourself (echo) or other)
4586 pcg 1.17
4587      
4588     </td>
4589     <td>
4590     <b></b>
4591      
4592     </td>
4593 pcg 1.1 </tr>
4594     <tr>
4595 pcg 1.34 <td>name2</td>
4596 pcg 1.3 <td>username</td>
4597 pcg 1.17 <td> </td>
4598     <td>
4599 pcg 1.36 Name of recipient.
4600 pcg 1.17
4601      
4602     </td>
4603 pcg 1.3 <td>
4604 pcg 1.17 <b></b>
4605      
4606     </td>
4607 pcg 1.1 </tr>
4608     <tr>
4609     <td>message</td>
4610     <td>STRING</td>
4611 pcg 1.17 <td> </td>
4612 pcg 1.3 <td>
4613 pcg 1.17
4614      
4615     </td>
4616     <td>
4617     <b></b>
4618      
4619     </td>
4620 pcg 1.1 </tr>
4621     </table>
4622    
4623 pcg 1.17 <h4>
4624 pcg 1.32 <a name="S0015"></a>ORIGIN: SERVER;
4625     MESSAGE: stats</h4>
4626 pcg 1.17 NUMERIC TYPE (hex): 0015
4627     (possibly in response to
4628 pcg 1.32 <a href="#C0014">req_stats(0014)</a>
4629 pcg 1.17 )
4630     <p>
4631     </p>
4632     <table border="1" width="100%">
4633     <tr>
4634     <th width="10%">NAME</th>
4635 pcg 1.37 <th width="8%">TYPE</th>
4636     <th width="4%">VALUE</th>
4637 pcg 1.17 <th>DESCRIPTION</th>
4638 pcg 1.37 <th width="10%">GUARD</th>
4639 pcg 1.1 </tr>
4640     <tr>
4641     <td>ver_major</td>
4642 pcg 1.3 <td>U16</td>
4643 pcg 1.17 <td> </td>
4644 pcg 1.3 <td>
4645 pcg 1.17
4646      
4647     </td>
4648     <td>
4649     <b></b>
4650      
4651     </td>
4652 pcg 1.1 </tr>
4653     <tr>
4654     <td>ver_minor</td>
4655 pcg 1.3 <td>U16</td>
4656 pcg 1.17 <td> </td>
4657     <td>
4658    
4659      
4660     </td>
4661 pcg 1.3 <td>
4662 pcg 1.17 <b></b>
4663      
4664     </td>
4665 pcg 1.1 </tr>
4666     <tr>
4667     <td>ver_micro</td>
4668 pcg 1.3 <td>U16</td>
4669 pcg 1.17 <td> </td>
4670 pcg 1.3 <td>
4671 pcg 1.17
4672      
4673     </td>
4674     <td>
4675     <b></b>
4676      
4677     </td>
4678 pcg 1.1 </tr>
4679     <tr>
4680     <td>boot_time</td>
4681 pcg 1.14 <td>timestamp</td>
4682 pcg 1.17 <td> </td>
4683     <td>
4684    
4685      
4686     </td>
4687 pcg 1.3 <td>
4688 pcg 1.17 <b></b>
4689      
4690     </td>
4691 pcg 1.1 </tr>
4692     <tr>
4693     <td>users_cur</td>
4694 pcg 1.3 <td>U32</td>
4695 pcg 1.17 <td> </td>
4696 pcg 1.3 <td>
4697 pcg 1.17
4698      
4699     </td>
4700     <td>
4701     <b></b>
4702      
4703     </td>
4704 pcg 1.1 </tr>
4705     <tr>
4706     <td>users_max</td>
4707 pcg 1.3 <td>U32</td>
4708 pcg 1.17 <td> </td>
4709     <td>
4710    
4711      
4712     </td>
4713 pcg 1.3 <td>
4714 pcg 1.17 <b></b>
4715      
4716     </td>
4717 pcg 1.1 </tr>
4718     <tr>
4719     <td>users_lim</td>
4720 pcg 1.3 <td>U32</td>
4721 pcg 1.17 <td> </td>
4722 pcg 1.3 <td>
4723 pcg 1.17
4724      
4725     </td>
4726     <td>
4727     <b></b>
4728      
4729     </td>
4730 pcg 1.1 </tr>
4731     <tr>
4732     <td>accts_cur</td>
4733 pcg 1.3 <td>U32</td>
4734 pcg 1.17 <td> </td>
4735     <td>
4736    
4737      
4738     </td>
4739 pcg 1.3 <td>
4740 pcg 1.17 <b></b>
4741      
4742     </td>
4743 pcg 1.1 </tr>
4744     <tr>
4745     <td>accts_max</td>
4746 pcg 1.3 <td>U32</td>
4747 pcg 1.17 <td> </td>
4748 pcg 1.3 <td>
4749 pcg 1.17
4750      
4751     </td>
4752     <td>
4753     <b></b>
4754      
4755     </td>
4756 pcg 1.1 </tr>
4757     <tr>
4758     <td>unknown1</td>
4759 pcg 1.3 <td>U32</td>
4760 pcg 1.17 <td> </td>
4761     <td>
4762    
4763      
4764     </td>
4765 pcg 1.3 <td>
4766 pcg 1.17 <b></b>
4767      
4768     </td>
4769 pcg 1.1 </tr>
4770     <tr>
4771     <td>work_max</td>
4772 pcg 1.3 <td>U32</td>
4773 pcg 1.17 <td> </td>
4774 pcg 1.3 <td>
4775 pcg 1.17
4776      
4777     </td>
4778     <td>
4779     <b></b>
4780      
4781     </td>
4782 pcg 1.1 </tr>
4783     <tr>
4784     <td>rooms_cur</td>
4785 pcg 1.3 <td>U32</td>
4786 pcg 1.17 <td> </td>
4787     <td>
4788    
4789      
4790     </td>
4791 pcg 1.3 <td>
4792 pcg 1.17 <b></b>
4793      
4794     </td>
4795 pcg 1.1 </tr>
4796     <tr>
4797     <td>rooms_max</td>
4798 pcg 1.3 <td>U32</td>
4799 pcg 1.17 <td> </td>
4800 pcg 1.3 <td>
4801 pcg 1.17
4802      
4803     </td>
4804     <td>
4805     <b></b>
4806      
4807     </td>
4808 pcg 1.1 </tr>
4809     <tr>
4810     <td>rooms_lim</td>
4811 pcg 1.3 <td>U32</td>
4812 pcg 1.17 <td> </td>
4813     <td>
4814    
4815      
4816     </td>
4817 pcg 1.3 <td>
4818 pcg 1.17 <b></b>
4819      
4820     </td>
4821 pcg 1.1 </tr>
4822     <tr>
4823     <td>games_cur</td>
4824 pcg 1.3 <td>U32</td>
4825 pcg 1.17 <td> </td>
4826 pcg 1.3 <td>
4827 pcg 1.17
4828      
4829     </td>
4830     <td>
4831     <b></b>
4832      
4833     </td>
4834 pcg 1.1 </tr>
4835     <tr>
4836     <td>games_max</td>
4837 pcg 1.3 <td>U32</td>
4838 pcg 1.17 <td> </td>
4839     <td>
4840    
4841      
4842     </td>
4843 pcg 1.3 <td>
4844 pcg 1.17 <b></b>
4845      
4846     </td>
4847 pcg 1.1 </tr>
4848     <tr>
4849     <td>games_lim</td>
4850 pcg 1.3 <td>U32</td>
4851 pcg 1.17 <td> </td>
4852 pcg 1.3 <td>
4853 pcg 1.17
4854      
4855     </td>
4856     <td>
4857     <b></b>
4858      
4859     </td>
4860 pcg 1.1 </tr>
4861     <tr>
4862     <td>results_cur</td>
4863 pcg 1.3 <td>U32</td>
4864 pcg 1.17 <td> </td>
4865     <td>
4866    
4867      
4868     </td>
4869 pcg 1.3 <td>
4870 pcg 1.17 <b></b>
4871      
4872     </td>
4873 pcg 1.1 </tr>
4874     <tr>
4875     <td>results_max</td>
4876 pcg 1.3 <td>U32</td>
4877 pcg 1.17 <td> </td>
4878 pcg 1.3 <td>
4879 pcg 1.17
4880      
4881     </td>
4882     <td>
4883     <b></b>
4884      
4885     </td>
4886 pcg 1.1 </tr>
4887     <tr>
4888     <td>unknown2</td>
4889 pcg 1.3 <td>U32</td>
4890 pcg 1.17 <td> </td>
4891     <td>
4892    
4893      
4894     </td>
4895 pcg 1.3 <td>
4896 pcg 1.17 <b></b>
4897      
4898     </td>
4899 pcg 1.1 </tr>
4900     <tr>
4901     <td>params_cur</td>
4902 pcg 1.3 <td>U32</td>
4903 pcg 1.17 <td> </td>
4904 pcg 1.3 <td>
4905 pcg 1.17
4906      
4907     </td>
4908     <td>
4909     <b></b>
4910      
4911     </td>
4912 pcg 1.1 </tr>
4913     <tr>
4914     <td>params_max</td>
4915 pcg 1.3 <td>U32</td>
4916 pcg 1.17 <td> </td>
4917     <td>
4918    
4919      
4920     </td>
4921 pcg 1.3 <td>
4922 pcg 1.17 <b></b>
4923      
4924     </td>
4925 pcg 1.1 </tr>
4926     <tr>
4927     <td>bytes_in</td>
4928 pcg 1.3 <td>U64</td>
4929 pcg 1.17 <td> </td>
4930 pcg 1.3 <td>
4931 pcg 1.17
4932      
4933     </td>
4934     <td>
4935     <b></b>
4936      
4937     </td>
4938 pcg 1.1 </tr>
4939     <tr>
4940     <td>packets_in</td>
4941 pcg 1.3 <td>U64</td>
4942 pcg 1.17 <td> </td>
4943     <td>
4944    
4945      
4946     </td>
4947 pcg 1.3 <td>
4948 pcg 1.17 <b></b>
4949      
4950     </td>
4951 pcg 1.1 </tr>
4952     <tr>
4953     <td>bytes_out</td>
4954 pcg 1.17 <td>U64</td>
4955     <td> </td>
4956     <td>
4957    
4958      
4959     </td>
4960 pcg 1.3 <td>
4961 pcg 1.17 <b></b>
4962      
4963     </td>
4964 pcg 1.1 </tr>
4965     <tr>
4966     <td>packets_out</td>
4967 pcg 1.3 <td>U64</td>
4968 pcg 1.17 <td> </td>
4969 pcg 1.3 <td>
4970 pcg 1.17
4971      
4972     </td>
4973     <td>
4974     <b></b>
4975      
4976     </td>
4977 pcg 1.1 </tr>
4978     </table>
4979    
4980 pcg 1.17 <h4>
4981 pcg 1.32 <a name="S0016"></a>ORIGIN: SERVER;
4982     MESSAGE: idle_warn</h4>
4983 pcg 1.29 NUMERIC TYPE (hex): 0016
4984     (possibly in response to
4985 pcg 1.32 <a href="#C0016">idle_reset(0016)</a>
4986 pcg 1.29 )
4987     <p>
4988 pcg 1.60 <p>idle warning, autologout soon (10 minutes...). Responding with <a href="#S001d">ping(001d)</a> usually helps.</p>
4989     </p>
4990 pcg 1.17 <table border="1" width="100%">
4991 pcg 1.1 <tr>
4992 pcg 1.17 <th width="10%">NAME</th>
4993 pcg 1.37 <th width="8%">TYPE</th>
4994     <th width="4%">VALUE</th>
4995 pcg 1.17 <th>DESCRIPTION</th>
4996 pcg 1.37 <th width="10%">GUARD</th>
4997 pcg 1.1 </tr>
4998     </table>
4999    
5000 pcg 1.17 <h4>
5001 pcg 1.34 <a name="S0018"></a>ORIGIN: SERVER;
5002     MESSAGE: login</h4>
5003     NUMERIC TYPE (hex): 0018
5004     (possibly in response to
5005     <a href="#C0000">login(0000)</a>
5006     )
5007     <p>
5008     </p>
5009     <table border="1" width="100%">
5010     <tr>
5011     <th width="10%">NAME</th>
5012 pcg 1.37 <th width="8%">TYPE</th>
5013     <th width="4%">VALUE</th>
5014 pcg 1.34 <th>DESCRIPTION</th>
5015 pcg 1.37 <th width="10%">GUARD</th>
5016 pcg 1.34 </tr>
5017     <tr>
5018 pcg 1.40 <td>message</td>
5019 pcg 1.34 <td>CONSTANT</td>
5020 pcg 1.40 <td>logged out: another client logged in with your username </td>
5021 pcg 1.34 <td>
5022    
5023      
5024     </td>
5025     <td>
5026     <b></b>
5027      
5028     </td>
5029     </tr>
5030     </table>
5031    
5032     <h4>
5033 pcg 1.40 <a name="S001c"></a>ORIGIN: SERVER;
5034 pcg 1.34 MESSAGE: login</h4>
5035 pcg 1.40 NUMERIC TYPE (hex): 001c
5036 pcg 1.34 (possibly in response to
5037     <a href="#C0000">login(0000)</a>
5038     )
5039     <p>
5040     </p>
5041     <table border="1" width="100%">
5042     <tr>
5043     <th width="10%">NAME</th>
5044 pcg 1.37 <th width="8%">TYPE</th>
5045     <th width="4%">VALUE</th>
5046 pcg 1.34 <th>DESCRIPTION</th>
5047 pcg 1.37 <th width="10%">GUARD</th>
5048 pcg 1.34 </tr>
5049     <tr>
5050 pcg 1.40 <td>message</td>
5051     <td>CONSTANT</td>
5052     <td>logged out: idle for too long </td>
5053 pcg 1.34 <td>
5054 pcg 1.40
5055 pcg 1.34  
5056     </td>
5057     <td>
5058     <b></b>
5059      
5060     </td>
5061     </tr>
5062 pcg 1.40 </table>
5063    
5064     <h4>
5065     <a name="S0020"></a>ORIGIN: SERVER;
5066     MESSAGE: error</h4>
5067     NUMERIC TYPE (hex): 0020<p>
5068     </p>
5069     <table border="1" width="100%">
5070     <tr>
5071     <th width="10%">NAME</th>
5072     <th width="8%">TYPE</th>
5073     <th width="4%">VALUE</th>
5074     <th>DESCRIPTION</th>
5075     <th width="10%">GUARD</th>
5076     </tr>
5077 pcg 1.34 <tr>
5078 pcg 1.40 <td>message</td>
5079 pcg 1.34 <td>CONSTANT</td>
5080 pcg 1.40 <td>Sorry, you have too many unfinished games. You cannot turn on your rank. Please finish some of your games, then try again. </td>
5081 pcg 1.34 <td>
5082    
5083      
5084     </td>
5085     <td>
5086     <b></b>
5087      
5088     </td>
5089     </tr>
5090     </table>
5091    
5092     <h4>
5093 pcg 1.40 <a name="S0022"></a>ORIGIN: SERVER;
5094     MESSAGE: login</h4>
5095     NUMERIC TYPE (hex): 0022
5096     (possibly in response to
5097     <a href="#C0000">login(0000)</a>
5098     )
5099     <p>
5100     I was blocked sooo many times for developing this client that it was
5101     easy to figure out. The KGS admins sure need no extra nazi training
5102     :(
5103     </p>
5104     <table border="1" width="100%">
5105     <tr>
5106     <th width="10%">NAME</th>
5107     <th width="8%">TYPE</th>
5108     <th width="4%">VALUE</th>
5109     <th>DESCRIPTION</th>
5110     <th width="10%">GUARD</th>
5111     </tr>
5112     <tr>
5113     <td>reason</td>
5114     <td>STRING</td>
5115     <td> </td>
5116     <td>
5117    
5118      
5119     </td>
5120     <td>
5121     <b></b>
5122      
5123     </td>
5124     </tr>
5125     <tr>
5126     <td>result</td>
5127     <td>CONSTANT</td>
5128     <td>user or ip blocked </td>
5129     <td>
5130    
5131      
5132     </td>
5133     <td>
5134     <b></b>
5135      
5136     </td>
5137     </tr>
5138     </table>
5139    
5140     <h4>
5141     <a name="S001b"></a>ORIGIN: SERVER;
5142     MESSAGE: timewarning_default</h4>
5143     NUMERIC TYPE (hex): 001b
5144 pcg 1.17 (possibly in response to
5145 pcg 1.32 <a href="#C0000">login(0000)</a>
5146 pcg 1.17 )
5147     <p>
5148     WILD guess
5149     </p>
5150     <table border="1" width="100%">
5151 pcg 1.1 <tr>
5152 pcg 1.17 <th width="10%">NAME</th>
5153 pcg 1.37 <th width="8%">TYPE</th>
5154     <th width="4%">VALUE</th>
5155 pcg 1.17 <th>DESCRIPTION</th>
5156 pcg 1.37 <th width="10%">GUARD</th>
5157 pcg 1.1 </tr>
5158     <tr>
5159     <td>channel</td>
5160 pcg 1.3 <td>U16</td>
5161 pcg 1.17 <td> </td>
5162     <td>
5163    
5164      
5165     </td>
5166 pcg 1.3 <td>
5167 pcg 1.17 <b></b>
5168      
5169     </td>
5170 pcg 1.1 </tr>
5171     <tr>
5172     <td>time</td>
5173 pcg 1.3 <td>U16</td>
5174 pcg 1.17 <td> </td>
5175     <td>
5176    
5177      
5178     </td>
5179 pcg 1.3 <td>
5180 pcg 1.17 <b></b>
5181      
5182     </td>
5183 pcg 1.1 </tr>
5184     </table>
5185    
5186 pcg 1.17 <h4>
5187 pcg 1.32 <a name="S001c"></a>ORIGIN: SERVER;
5188     MESSAGE: idle_err</h4>
5189 pcg 1.17 NUMERIC TYPE (hex): 001c<p>
5190     autologout
5191     </p>
5192     <table border="1" width="100%">
5193 pcg 1.1 <tr>
5194 pcg 1.17 <th width="10%">NAME</th>
5195 pcg 1.37 <th width="8%">TYPE</th>
5196     <th width="4%">VALUE</th>
5197 pcg 1.17 <th>DESCRIPTION</th>
5198 pcg 1.37 <th width="10%">GUARD</th>
5199 pcg 1.1 </tr>
5200     </table>
5201    
5202 pcg 1.17 <h4>
5203 pcg 1.32 <a name="S001d"></a>ORIGIN: SERVER;
5204     MESSAGE: ping</h4>
5205 pcg 1.17 NUMERIC TYPE (hex): 001d<p>
5206 pcg 1.14 Sent by the server regularly, but not answering them
5207     isn't valid. Strange form of keepalive?
5208 pcg 1.17 </p>
5209     <table border="1" width="100%">
5210     <tr>
5211     <th width="10%">NAME</th>
5212 pcg 1.37 <th width="8%">TYPE</th>
5213     <th width="4%">VALUE</th>
5214 pcg 1.17 <th>DESCRIPTION</th>
5215 pcg 1.37 <th width="10%">GUARD</th>
5216 pcg 1.1 </tr>
5217     </table>
5218    
5219 pcg 1.17 <h4>
5220 pcg 1.32 <a name="S001e"></a>ORIGIN: SERVER;
5221     MESSAGE: usergraph</h4>
5222 pcg 1.17 NUMERIC TYPE (hex): 001e
5223     (possibly in response to
5224 pcg 1.32 <a href="#C001e">req_usergraph(001e)</a>
5225 pcg 1.17 )
5226     <p>
5227     User graph data.
5228     </p>
5229     <table border="1" width="100%">
5230 pcg 1.15 <tr>
5231 pcg 1.17 <th width="10%">NAME</th>
5232 pcg 1.37 <th width="8%">TYPE</th>
5233     <th width="4%">VALUE</th>
5234 pcg 1.17 <th>DESCRIPTION</th>
5235 pcg 1.37 <th width="10%">GUARD</th>
5236 pcg 1.15 </tr>
5237     <tr>
5238 pcg 1.33 <td>name</td>
5239     <td>username</td>
5240     <td> </td>
5241     <td>
5242    
5243      
5244     </td>
5245     <td>
5246     <b></b>
5247      
5248     </td>
5249     </tr>
5250     <tr>
5251 pcg 1.15 <td>data</td>
5252     <td>I16</td>
5253 pcg 1.17 <td> </td>
5254 pcg 1.15 <td>
5255     If empty, no graph is available. The unit seems to
5256     be centi-kyu, with 1 dan == 0, 2 dan == 100, 1 kyu == -100.
5257     There is probably one entry per day, the newest one last.
5258 pcg 1.17
5259      
5260     </td>
5261     <td>
5262     <b></b>
5263      
5264     </td>
5265 pcg 1.15 </tr>
5266     </table>
5267    
5268 pcg 1.17 <h4>
5269 pcg 1.58 <a name="S0021"></a>ORIGIN: SERVER;
5270     MESSAGE: userpic</h4>
5271     NUMERIC TYPE (hex): 0021
5272 pcg 1.17 (possibly in response to
5273 pcg 1.58 <a href="#C0021">req_pic(0021)</a>
5274 pcg 1.17 )
5275     <p>
5276     </p>
5277     <table border="1" width="100%">
5278     <tr>
5279     <th width="10%">NAME</th>
5280 pcg 1.37 <th width="8%">TYPE</th>
5281     <th width="4%">VALUE</th>
5282 pcg 1.17 <th>DESCRIPTION</th>
5283 pcg 1.37 <th width="10%">GUARD</th>
5284 pcg 1.15 </tr>
5285     <tr>
5286 pcg 1.58 <td>name</td>
5287     <td>username</td>
5288     <td> </td>
5289     <td>
5290     Reply to pic_req, contains an image in jpeg format.
5291    
5292      
5293     </td>
5294     <td>
5295     <b></b>
5296      
5297     </td>
5298     </tr>
5299     <tr>
5300     <td>data</td>
5301     <td>DATA</td>
5302     <td> </td>
5303     <td>
5304    
5305      
5306     </td>
5307     <td>
5308     <b></b>
5309      
5310     </td>
5311     </tr>
5312     </table>
5313    
5314     <h4>
5315     <a name="S0025"></a>ORIGIN: SERVER;
5316     MESSAGE: memo_error</h4>
5317     NUMERIC TYPE (hex): 0025<p>
5318     <p>Account unknown.</p>
5319     </p>
5320     <table border="1" width="100%">
5321     <tr>
5322     <th width="10%">NAME</th>
5323     <th width="8%">TYPE</th>
5324     <th width="4%">VALUE</th>
5325     <th>DESCRIPTION</th>
5326     <th width="10%">GUARD</th>
5327     </tr>
5328     <tr>
5329     <td>name</td>
5330     <td>username</td>
5331     <td> </td>
5332     <td>
5333    
5334      
5335     </td>
5336     <td>
5337     <b></b>
5338      
5339     </td>
5340     </tr>
5341     <tr>
5342     <td>cid</td>
5343 pcg 1.60 <td>CLIENTID16</td>
5344 pcg 1.58 <td> </td>
5345     <td>
5346    
5347      
5348     </td>
5349     <td>
5350     <b></b>
5351      
5352     </td>
5353     </tr>
5354     <tr>
5355     <td>message</td>
5356     <td>CONSTANT</td>
5357     <td>memo send failed: account already exists </td>
5358     <td>
5359    
5360      
5361     </td>
5362     <td>
5363     <b></b>
5364      
5365     </td>
5366     </tr>
5367     <tr>
5368     <td>subtype</td>
5369     <td>CONSTANT</td>
5370     <td>25 </td>
5371     <td>
5372    
5373      
5374     </td>
5375     <td>
5376     <b></b>
5377      
5378     </td>
5379     </tr>
5380     </table>
5381    
5382     <h4>
5383     <a name="S0026"></a>ORIGIN: SERVER;
5384     MESSAGE: memo_error</h4>
5385     NUMERIC TYPE (hex): 0026<p>
5386     <p>Just a guess.</p>
5387     </p>
5388     <table border="1" width="100%">
5389     <tr>
5390     <th width="10%">NAME</th>
5391     <th width="8%">TYPE</th>
5392     <th width="4%">VALUE</th>
5393     <th>DESCRIPTION</th>
5394     <th width="10%">GUARD</th>
5395     </tr>
5396     <tr>
5397     <td>name</td>
5398     <td>username</td>
5399     <td> </td>
5400     <td>
5401    
5402      
5403     </td>
5404     <td>
5405     <b></b>
5406      
5407     </td>
5408     </tr>
5409     <tr>
5410     <td>cid</td>
5411 pcg 1.60 <td>CLIENTID16</td>
5412 pcg 1.58 <td> </td>
5413     <td>
5414    
5415      
5416     </td>
5417     <td>
5418     <b></b>
5419      
5420     </td>
5421     </tr>
5422     <tr>
5423     <td>message</td>
5424     <td>CONSTANT</td>
5425     <td>memo send failed: error 26 </td>
5426     <td>
5427    
5428      
5429     </td>
5430     <td>
5431     <b></b>
5432      
5433     </td>
5434     </tr>
5435     <tr>
5436     <td>subtype</td>
5437     <td>CONSTANT</td>
5438     <td>26 </td>
5439     <td>
5440    
5441      
5442     </td>
5443     <td>
5444     <b></b>
5445      
5446     </td>
5447     </tr>
5448     </table>
5449    
5450     <h4>
5451     <a name="S0027"></a>ORIGIN: SERVER;
5452     MESSAGE: memo_error</h4>
5453     NUMERIC TYPE (hex): 0027<p>
5454     <p>User is currently online, please use chat.</p>
5455     </p>
5456     <table border="1" width="100%">
5457     <tr>
5458     <th width="10%">NAME</th>
5459     <th width="8%">TYPE</th>
5460     <th width="4%">VALUE</th>
5461     <th>DESCRIPTION</th>
5462     <th width="10%">GUARD</th>
5463     </tr>
5464     <tr>
5465     <td>name</td>
5466     <td>username</td>
5467     <td> </td>
5468     <td>
5469    
5470      
5471     </td>
5472     <td>
5473     <b></b>
5474      
5475     </td>
5476     </tr>
5477     <tr>
5478     <td>cid</td>
5479 pcg 1.60 <td>CLIENTID16</td>
5480 pcg 1.17 <td> </td>
5481     <td>
5482    
5483      
5484     </td>
5485 pcg 1.15 <td>
5486 pcg 1.17 <b></b>
5487      
5488     </td>
5489 pcg 1.15 </tr>
5490     <tr>
5491 pcg 1.58 <td>message</td>
5492     <td>CONSTANT</td>
5493     <td>memo send failed: user is online, use chat </td>
5494     <td>
5495    
5496      
5497     </td>
5498     <td>
5499     <b></b>
5500      
5501     </td>
5502     </tr>
5503     <tr>
5504     <td>subtype</td>
5505     <td>CONSTANT</td>
5506     <td>27 </td>
5507     <td>
5508    
5509      
5510     </td>
5511     <td>
5512     <b></b>
5513      
5514     </td>
5515     </tr>
5516     </table>
5517    
5518     <h4>
5519     <a name="S0028"></a>ORIGIN: SERVER;
5520     MESSAGE: memo_error</h4>
5521     NUMERIC TYPE (hex): 0028<p>
5522     <p>Just a guess.</p>
5523     </p>
5524     <table border="1" width="100%">
5525     <tr>
5526     <th width="10%">NAME</th>
5527     <th width="8%">TYPE</th>
5528     <th width="4%">VALUE</th>
5529     <th>DESCRIPTION</th>
5530     <th width="10%">GUARD</th>
5531     </tr>
5532     <tr>
5533     <td>name</td>
5534     <td>username</td>
5535 pcg 1.17 <td> </td>
5536     <td>
5537    
5538      
5539     </td>
5540 pcg 1.15 <td>
5541 pcg 1.17 <b></b>
5542      
5543     </td>
5544 pcg 1.15 </tr>
5545     <tr>
5546 pcg 1.58 <td>cid</td>
5547 pcg 1.60 <td>CLIENTID16</td>
5548 pcg 1.17 <td> </td>
5549     <td>
5550    
5551      
5552     </td>
5553 pcg 1.15 <td>
5554 pcg 1.17 <b></b>
5555      
5556     </td>
5557 pcg 1.15 </tr>
5558     <tr>
5559 pcg 1.58 <td>message</td>
5560     <td>CONSTANT</td>
5561     <td>memo send failed: error 28 </td>
5562     <td>
5563    
5564      
5565     </td>
5566     <td>
5567     <b></b>
5568      
5569     </td>
5570     </tr>
5571     <tr>
5572     <td>subtype</td>
5573     <td>CONSTANT</td>
5574     <td>28 </td>
5575     <td>
5576    
5577      
5578     </td>
5579     <td>
5580     <b></b>
5581      
5582     </td>
5583     </tr>
5584     </table>
5585    
5586     <h4>
5587     <a name="S0029"></a>ORIGIN: SERVER;
5588     MESSAGE: memo</h4>
5589     NUMERIC TYPE (hex): 0029<p>
5590     </p>
5591     <table border="1" width="100%">
5592     <tr>
5593     <th width="10%">NAME</th>
5594     <th width="8%">TYPE</th>
5595     <th width="4%">VALUE</th>
5596     <th>DESCRIPTION</th>
5597     <th width="10%">GUARD</th>
5598     </tr>
5599     <tr>
5600     <td>name</td>
5601     <td>username</td>
5602 pcg 1.17 <td> </td>
5603     <td>
5604    
5605      
5606     </td>
5607 pcg 1.15 <td>
5608 pcg 1.17 <b></b>
5609      
5610     </td>
5611 pcg 1.15 </tr>
5612     <tr>
5613 pcg 1.58 <td>time</td>
5614     <td>timestamp</td>
5615 pcg 1.17 <td> </td>
5616     <td>
5617    
5618      
5619     </td>
5620 pcg 1.15 <td>
5621 pcg 1.17 <b></b>
5622      
5623     </td>
5624 pcg 1.15 </tr>
5625     <tr>
5626 pcg 1.58 <td>message</td>
5627 pcg 1.48 <td>ZSTRING</td>
5628 pcg 1.17 <td> </td>
5629     <td>
5630    
5631      
5632     </td>
5633 pcg 1.15 <td>
5634 pcg 1.17 <b></b>
5635      
5636     </td>
5637 pcg 1.15 </tr>
5638     </table>
5639    
5640 pcg 1.17 <h4>
5641 pcg 1.58 <a name="S002a"></a>ORIGIN: SERVER;
5642     MESSAGE: memo_sent</h4>
5643     NUMERIC TYPE (hex): 002a<p>
5644     <p>The memo was sent successfully</p>
5645     </p>
5646 pcg 1.17 <table border="1" width="100%">
5647     <tr>
5648     <th width="10%">NAME</th>
5649 pcg 1.37 <th width="8%">TYPE</th>
5650     <th width="4%">VALUE</th>
5651 pcg 1.17 <th>DESCRIPTION</th>
5652 pcg 1.37 <th width="10%">GUARD</th>
5653 pcg 1.1 </tr>
5654     <tr>
5655     <td>name</td>
5656 pcg 1.3 <td>username</td>
5657 pcg 1.17 <td> </td>
5658 pcg 1.3 <td>
5659 pcg 1.17
5660      
5661     </td>
5662     <td>
5663     <b></b>
5664      
5665     </td>
5666 pcg 1.1 </tr>
5667     <tr>
5668 pcg 1.58 <td>cid</td>
5669 pcg 1.60 <td>CLIENTID16</td>
5670 pcg 1.17 <td> </td>
5671     <td>
5672    
5673      
5674     </td>
5675 pcg 1.3 <td>
5676 pcg 1.17 <b></b>
5677      
5678     </td>
5679 pcg 1.1 </tr>
5680     </table>
5681    
5682 pcg 1.17 <h4>
5683 pcg 1.32 <a name="S0100"></a>ORIGIN: SERVER;
5684     MESSAGE: gnotice</h4>
5685 pcg 1.17 NUMERIC TYPE (hex): 0100
5686     (possibly in response to
5687 pcg 1.32 <a href="#C0100">gnotice(0100)</a>
5688 pcg 1.17 )
5689     <p>
5690     global notice, sent to everybody
5691     </p>
5692     <table border="1" width="100%">
5693 pcg 1.1 <tr>
5694 pcg 1.17 <th width="10%">NAME</th>
5695 pcg 1.37 <th width="8%">TYPE</th>
5696     <th width="4%">VALUE</th>
5697 pcg 1.17 <th>DESCRIPTION</th>
5698 pcg 1.37 <th width="10%">GUARD</th>
5699 pcg 1.1 </tr>
5700     <tr>
5701     <td>notice</td>
5702     <td>STRING</td>
5703 pcg 1.17 <td> </td>
5704     <td>
5705    
5706      
5707     </td>
5708 pcg 1.3 <td>
5709 pcg 1.17 <b></b>
5710      
5711     </td>
5712 pcg 1.1 </tr>
5713     </table>
5714    
5715 pcg 1.17 <h4>
5716 pcg 1.32 <a name="S0202"></a>ORIGIN: SERVER;
5717 pcg 1.33 MESSAGE: notify_event</h4>
5718 pcg 1.17 NUMERIC TYPE (hex): 0202<p>
5719 pcg 1.15 # maybe soe notify? Totally unclear.
5720 pcg 1.37 # loc 0" type="userinfo, flags etc. loc 1 =&gt; gameinfo?, loc 2 =&gt; game result (more data)
5721 pcg 1.17 </p>
5722     <table border="1" width="100%">
5723     <tr>
5724     <th width="10%">NAME</th>
5725 pcg 1.37 <th width="8%">TYPE</th>
5726     <th width="4%">VALUE</th>
5727 pcg 1.17 <th>DESCRIPTION</th>
5728 pcg 1.37 <th width="10%">GUARD</th>
5729 pcg 1.14 </tr>
5730     <tr>
5731 pcg 1.33 <td>event</td>
5732 pcg 1.14 <td>U32</td>
5733 pcg 1.17 <td> </td>
5734     <td>
5735    
5736      
5737     </td>
5738 pcg 1.14 <td>
5739 pcg 1.17 <b></b>
5740      
5741     </td>
5742 pcg 1.14 </tr>
5743     <tr>
5744     <td>user</td>
5745     <td>user</td>
5746 pcg 1.17 <td> </td>
5747     <td>
5748    
5749      
5750     </td>
5751 pcg 1.14 <td>
5752 pcg 1.17 <b></b>
5753      
5754     </td>
5755 pcg 1.14 </tr>
5756     <tr>
5757 pcg 1.34 <td>gamerecord</td>
5758 pcg 1.33 <td>game_record</td>
5759 pcg 1.17 <td> </td>
5760     <td>
5761 pcg 1.33
5762 pcg 1.17  
5763     </td>
5764 pcg 1.14 <td>
5765 pcg 1.33 <b>event</b> == 2
5766 pcg 1.17  
5767     </td>
5768 pcg 1.14 </tr>
5769     </table>
5770 pcg 1.1
5771 pcg 1.17 <h4>
5772 pcg 1.58 <a name="S030c"></a>ORIGIN: SERVER;
5773     MESSAGE: unknown_030c</h4>
5774     NUMERIC TYPE (hex): 030c<p>
5775     <p>Not the slightest... No payload, either.</p>
5776     </p>
5777     <table border="1" width="100%">
5778     <tr>
5779     <th width="10%">NAME</th>
5780     <th width="8%">TYPE</th>
5781     <th width="4%">VALUE</th>
5782     <th>DESCRIPTION</th>
5783     <th width="10%">GUARD</th>
5784     </tr>
5785     </table>
5786    
5787     <h4>
5788 pcg 1.32 <a name="S0310"></a>ORIGIN: SERVER;
5789     MESSAGE: priv_room</h4>
5790 pcg 1.17 NUMERIC TYPE (hex): 0310<p>
5791     "permission denied" when joining a room
5792     </p>
5793     <table border="1" width="100%">
5794 pcg 1.1 <tr>
5795 pcg 1.17 <th width="10%">NAME</th>
5796 pcg 1.37 <th width="8%">TYPE</th>
5797     <th width="4%">VALUE</th>
5798 pcg 1.17 <th>DESCRIPTION</th>
5799 pcg 1.37 <th width="10%">GUARD</th>
5800 pcg 1.1 </tr>
5801     <tr>
5802     <td>name</td>
5803     <td>STRING</td>
5804 pcg 1.17 <td> </td>
5805 pcg 1.3 <td>
5806 pcg 1.17
5807      
5808     </td>
5809     <td>
5810     <b></b>
5811      
5812     </td>
5813 pcg 1.1 </tr>
5814     </table>
5815    
5816 pcg 1.17 <h4>
5817 pcg 1.32 <a name="S0318"></a>ORIGIN: SERVER;
5818     MESSAGE: upd_rooms</h4>
5819 pcg 1.17 NUMERIC TYPE (hex): 0318
5820     (possibly in response to
5821 pcg 1.32 <a href="#C0318">list_rooms(0318)</a>
5822 pcg 1.17 )
5823     <p>
5824     </p>
5825     <table border="1" width="100%">
5826     <tr>
5827     <th width="10%">NAME</th>
5828 pcg 1.37 <th width="8%">TYPE</th>
5829     <th width="4%">VALUE</th>
5830 pcg 1.17 <th>DESCRIPTION</th>
5831 pcg 1.37 <th width="10%">GUARD</th>
5832 pcg 1.1 </tr>
5833     <tr>
5834     <td>rooms</td>
5835     <td>room</td>
5836 pcg 1.17 <td> </td>
5837 pcg 1.3 <td>
5838 pcg 1.17
5839      
5840     </td>
5841     <td>
5842     <b></b>
5843      
5844     </td>
5845 pcg 1.1 </tr>
5846     </table>
5847    
5848 pcg 1.17 <h4>
5849 pcg 1.32 <a name="S0411"></a>ORIGIN: SERVER;
5850     MESSAGE: chal_defaults</h4>
5851 pcg 1.17 NUMERIC TYPE (hex): 0411
5852     (possibly in response to
5853 pcg 1.32 <a href="#C0000">login(0000)</a>
5854 pcg 1.17 )
5855     <p>
5856     </p>
5857     <table border="1" width="100%">
5858     <tr>
5859     <th width="10%">NAME</th>
5860 pcg 1.37 <th width="8%">TYPE</th>
5861     <th width="4%">VALUE</th>
5862 pcg 1.17 <th>DESCRIPTION</th>
5863 pcg 1.37 <th width="10%">GUARD</th>
5864 pcg 1.1 </tr>
5865     <tr>
5866 pcg 1.14 <td>channel</td>
5867 pcg 1.3 <td>U16</td>
5868 pcg 1.17 <td> </td>
5869 pcg 1.3 <td>
5870 pcg 1.17
5871      
5872     </td>
5873     <td>
5874     <b></b>
5875      
5876     </td>
5877 pcg 1.1 </tr>
5878     <tr>
5879 pcg 1.14 <td>defaults</td>
5880     <td>challenge_defaults</td>
5881 pcg 1.17 <td> </td>
5882     <td>
5883    
5884      
5885     </td>
5886 pcg 1.3 <td>
5887 pcg 1.17 <b></b>
5888      
5889     </td>
5890 pcg 1.1 </tr>
5891     </table>
5892    
5893 pcg 1.17 <h4>
5894 pcg 1.32 <a name="S0412"></a>ORIGIN: SERVER;
5895 pcg 1.61 MESSAGE: already_playing</h4>
5896 pcg 1.17 NUMERIC TYPE (hex): 0412<p>
5897 pcg 1.61 Unable to create new game.
5898 pcg 1.17 </p>
5899     <table border="1" width="100%">
5900 pcg 1.15 <tr>
5901 pcg 1.17 <th width="10%">NAME</th>
5902 pcg 1.37 <th width="8%">TYPE</th>
5903     <th width="4%">VALUE</th>
5904 pcg 1.17 <th>DESCRIPTION</th>
5905 pcg 1.37 <th width="10%">GUARD</th>
5906 pcg 1.15 </tr>
5907     <tr>
5908 pcg 1.40 <td>message</td>
5909     <td>CONSTANT</td>
5910     <td>Sorry, you are already playing in one game, so you can't start playing in another. </td>
5911     <td>
5912    
5913      
5914     </td>
5915     <td>
5916     <b></b>
5917      
5918     </td>
5919     </tr>
5920     <tr>
5921 pcg 1.61 <td>cid</td>
5922     <td>CLIENTID16</td>
5923 pcg 1.17 <td> </td>
5924     <td>
5925 pcg 1.61
5926 pcg 1.17  
5927     </td>
5928 pcg 1.15 <td>
5929 pcg 1.17 <b></b>
5930      
5931     </td>
5932 pcg 1.15 </tr>
5933     </table>
5934    
5935 pcg 1.17 <h4>
5936 pcg 1.32 <a name="S0414"></a>ORIGIN: SERVER;
5937     MESSAGE: game_record</h4>
5938 pcg 1.17 NUMERIC TYPE (hex): 0414
5939     (possibly in response to
5940 pcg 1.32 <a href="#C0413">req_game_record(0413)</a>
5941 pcg 1.17 )
5942     <p>
5943     The users game record.
5944     </p>
5945     <table border="1" width="100%">
5946 pcg 1.1 <tr>
5947 pcg 1.17 <th width="10%">NAME</th>
5948 pcg 1.37 <th width="8%">TYPE</th>
5949     <th width="4%">VALUE</th>
5950 pcg 1.17 <th>DESCRIPTION</th>
5951 pcg 1.37 <th width="10%">GUARD</th>
5952 pcg 1.14 </tr>
5953     <tr>
5954     <td>name</td>
5955     <td>username</td>
5956 pcg 1.17 <td> </td>
5957 pcg 1.14 <td>
5958 pcg 1.17
5959      
5960     </td>
5961     <td>
5962     <b></b>
5963      
5964     </td>
5965 pcg 1.14 </tr>
5966     <tr>
5967     <td>more</td>
5968     <td>flag</td>
5969 pcg 1.17 <td> </td>
5970 pcg 1.14 <td>
5971     Wether more games are available (must be requested manually)
5972 pcg 1.17
5973      
5974     </td>
5975     <td>
5976     <b></b>
5977      
5978     </td>
5979 pcg 1.1 </tr>
5980     <tr>
5981 pcg 1.14 <td>games</td>
5982     <td>game_record</td>
5983 pcg 1.17 <td> </td>
5984 pcg 1.3 <td>
5985 pcg 1.17
5986      
5987     </td>
5988     <td>
5989     <b></b>
5990      
5991     </td>
5992 pcg 1.14 </tr>
5993     </table>
5994    
5995 pcg 1.17 <h4>
5996 pcg 1.40 <a name="S0417"></a>ORIGIN: SERVER;
5997     MESSAGE: error</h4>
5998     NUMERIC TYPE (hex): 0417<p>
5999     </p>
6000     <table border="1" width="100%">
6001     <tr>
6002     <th width="10%">NAME</th>
6003     <th width="8%">TYPE</th>
6004     <th width="4%">VALUE</th>
6005     <th>DESCRIPTION</th>
6006     <th width="10%">GUARD</th>
6007     </tr>
6008     <tr>
6009     <td>message</td>
6010     <td>CONSTANT</td>
6011     <td>Sorry, your opponent is currently not logged in, so you can't resume this game. </td>
6012     <td>
6013    
6014      
6015     </td>
6016     <td>
6017     <b></b>
6018      
6019     </td>
6020     </tr>
6021     </table>
6022    
6023     <h4>
6024     <a name="S0418"></a>ORIGIN: SERVER;
6025     MESSAGE: error</h4>
6026     NUMERIC TYPE (hex): 0418<p>
6027     </p>
6028     <table border="1" width="100%">
6029     <tr>
6030     <th width="10%">NAME</th>
6031     <th width="8%">TYPE</th>
6032     <th width="4%">VALUE</th>
6033     <th>DESCRIPTION</th>
6034     <th width="10%">GUARD</th>
6035     </tr>
6036     <tr>
6037     <td>message</td>
6038     <td>CONSTANT</td>
6039     <td>Sorry, your opponent is already playing in a game, so you cannot continue this one. </td>
6040     <td>
6041    
6042      
6043     </td>
6044     <td>
6045     <b></b>
6046      
6047     </td>
6048     </tr>
6049     </table>
6050    
6051     <h4>
6052     <a name="S0419"></a>ORIGIN: SERVER;
6053     MESSAGE: error</h4>
6054     NUMERIC TYPE (hex): 0419<p>
6055     </p>
6056     <table border="1" width="100%">
6057     <tr>
6058     <th width="10%">NAME</th>
6059     <th width="8%">TYPE</th>
6060     <th width="4%">VALUE</th>
6061     <th>DESCRIPTION</th>
6062     <th width="10%">GUARD</th>
6063     </tr>
6064     <tr>
6065     <td>message</td>
6066     <td>CONSTANT</td>
6067     <td>Sorry, the server is out of boards! Please wait a few minutes and try to start a game again. </td>
6068     <td>
6069    
6070      
6071     </td>
6072     <td>
6073     <b></b>
6074      
6075     </td>
6076     </tr>
6077     </table>
6078    
6079     <h4>
6080 pcg 1.32 <a name="S041c"></a>ORIGIN: SERVER;
6081     MESSAGE: upd_game2</h4>
6082 pcg 1.17 NUMERIC TYPE (hex): 041c<p>
6083     Unclear.
6084     </p>
6085     <table border="1" width="100%">
6086 pcg 1.14 <tr>
6087 pcg 1.17 <th width="10%">NAME</th>
6088 pcg 1.37 <th width="8%">TYPE</th>
6089     <th width="4%">VALUE</th>
6090 pcg 1.17 <th>DESCRIPTION</th>
6091 pcg 1.37 <th width="10%">GUARD</th>
6092 pcg 1.1 </tr>
6093     <tr>
6094 pcg 1.14 <td>channel_junk</td>
6095     <td>U16</td>
6096 pcg 1.17 <td> </td>
6097     <td>
6098    
6099      
6100     </td>
6101 pcg 1.3 <td>
6102 pcg 1.17 <b></b>
6103      
6104     </td>
6105 pcg 1.1 </tr>
6106     <tr>
6107 pcg 1.14 <td>game</td>
6108     <td>game</td>
6109 pcg 1.17 <td> </td>
6110     <td>
6111    
6112      
6113     </td>
6114 pcg 1.3 <td>
6115 pcg 1.17 <b></b>
6116      
6117     </td>
6118 pcg 1.1 </tr>
6119     </table>
6120    
6121 pcg 1.40 <h4>
6122     <a name="S041f"></a>ORIGIN: SERVER;
6123     MESSAGE: error</h4>
6124     NUMERIC TYPE (hex): 041f<p>
6125     </p>
6126     <table border="1" width="100%">
6127     <tr>
6128     <th width="10%">NAME</th>
6129     <th width="8%">TYPE</th>
6130     <th width="4%">VALUE</th>
6131     <th>DESCRIPTION</th>
6132     <th width="10%">GUARD</th>
6133     </tr>
6134     <tr>
6135     <td>message</td>
6136     <td>CONSTANT</td>
6137     <td>Sorry, the game you tried to load was not correctly saved...probably caused by the server crashing. It cannot be recovered. </td>
6138     <td>
6139    
6140      
6141     </td>
6142     <td>
6143     <b></b>
6144      
6145     </td>
6146     </tr>
6147     </table>
6148    
6149     <h4>
6150     <a name="S0420"></a>ORIGIN: SERVER;
6151     MESSAGE: error</h4>
6152     NUMERIC TYPE (hex): 0420<p>
6153     </p>
6154     <table border="1" width="100%">
6155     <tr>
6156     <th width="10%">NAME</th>
6157     <th width="8%">TYPE</th>
6158     <th width="4%">VALUE</th>
6159     <th>DESCRIPTION</th>
6160     <th width="10%">GUARD</th>
6161     </tr>
6162     <tr>
6163     <td>message</td>
6164     <td>CONSTANT</td>
6165     <td>Sorry, user "%s" has left the game you are starting before you could challenge them. You will have to play against somebody else. </td>
6166     <td>
6167    
6168      
6169     </td>
6170     <td>
6171     <b></b>
6172      
6173     </td>
6174     </tr>
6175     </table>
6176    
6177     <h4>
6178     <a name="S0421"></a>ORIGIN: SERVER;
6179     MESSAGE: error</h4>
6180     NUMERIC TYPE (hex): 0421<p>
6181     </p>
6182     <table border="1" width="100%">
6183     <tr>
6184     <th width="10%">NAME</th>
6185     <th width="8%">TYPE</th>
6186     <th width="4%">VALUE</th>
6187     <th>DESCRIPTION</th>
6188     <th width="10%">GUARD</th>
6189     </tr>
6190     <tr>
6191     <td>message</td>
6192     <td>CONSTANT</td>
6193     <td>Sorry, this game is a private lesson. You will not be allowed to observe it. </td>
6194     <td>
6195    
6196      
6197     </td>
6198     <td>
6199     <b></b>
6200      
6201     </td>
6202     </tr>
6203     </table>
6204    
6205 pcg 1.44 <!-- added recently -->
6206     <h4>
6207     <a name="S043a"></a>ORIGIN: SERVER;
6208 pcg 1.46 MESSAGE: add_global_challenge</h4>
6209 pcg 1.44 NUMERIC TYPE (hex): 043a<p>
6210 pcg 1.46 <p>
6211     Adds or updates a global challenge (open game list).
6212 pcg 1.44 </p>
6213 pcg 1.46 </p>
6214 pcg 1.44 <table border="1" width="100%">
6215     <tr>
6216     <th width="10%">NAME</th>
6217     <th width="8%">TYPE</th>
6218     <th width="4%">VALUE</th>
6219     <th>DESCRIPTION</th>
6220     <th width="10%">GUARD</th>
6221     </tr>
6222     <tr>
6223     <td>channel</td>
6224     <td>U16</td>
6225     <td> </td>
6226     <td>
6227    
6228      
6229     </td>
6230     <td>
6231     <b></b>
6232      
6233     </td>
6234     </tr>
6235     <tr>
6236     <td>game</td>
6237     <td>game</td>
6238     <td> </td>
6239     <td>
6240 pcg 1.59
6241 pcg 1.44  
6242     </td>
6243     <td>
6244     <b></b>
6245      
6246     </td>
6247     </tr>
6248     </table>
6249    
6250 pcg 1.1 <h3>Room messages</h3>
6251    
6252     <p>Not all room messages are for rooms only, and rooms need to parse
6253     not only these messages. Orthogonality, what for?</p>
6254    
6255 pcg 1.17 <h4>
6256 pcg 1.32 <a name="S4300"></a>ORIGIN: SERVER;
6257     MESSAGE: join_room</h4>
6258 pcg 1.17 NUMERIC TYPE (hex): 4300
6259     (possibly in response to
6260 pcg 1.32 <a href="#C4300">join_room(4300)</a>
6261 pcg 1.17 )
6262     <p>
6263     </p>
6264     <table border="1" width="100%">
6265     <tr>
6266     <th width="10%">NAME</th>
6267 pcg 1.37 <th width="8%">TYPE</th>
6268     <th width="4%">VALUE</th>
6269 pcg 1.17 <th>DESCRIPTION</th>
6270 pcg 1.37 <th width="10%">GUARD</th>
6271 pcg 1.1 </tr>
6272     <tr>
6273     <td>channel</td>
6274 pcg 1.3 <td>U16</td>
6275 pcg 1.17 <td> </td>
6276     <td>
6277    
6278      
6279     </td>
6280 pcg 1.3 <td>
6281 pcg 1.17 <b></b>
6282      
6283     </td>
6284 pcg 1.1 </tr>
6285     <tr>
6286     <td>users</td>
6287     <td>user</td>
6288 pcg 1.17 <td> </td>
6289     <td>
6290    
6291      
6292     </td>
6293 pcg 1.3 <td>
6294 pcg 1.17 <b></b>
6295      
6296     </td>
6297 pcg 1.1 </tr>
6298     </table>
6299    
6300 pcg 1.17 <h4>
6301 pcg 1.32 <a name="S4301"></a>ORIGIN: SERVER;
6302     MESSAGE: msg_room</h4>
6303 pcg 1.17 NUMERIC TYPE (hex): 4301<p>
6304     </p>
6305     <table border="1" width="100%">
6306 pcg 1.1 <tr>
6307 pcg 1.17 <th width="10%">NAME</th>
6308 pcg 1.37 <th width="8%">TYPE</th>
6309     <th width="4%">VALUE</th>
6310 pcg 1.17 <th>DESCRIPTION</th>
6311 pcg 1.37 <th width="10%">GUARD</th>
6312 pcg 1.1 </tr>
6313     <tr>
6314     <td>channel</td>
6315 pcg 1.3 <td>U16</td>
6316 pcg 1.17 <td> </td>
6317 pcg 1.3 <td>
6318 pcg 1.17
6319      
6320     </td>
6321     <td>
6322     <b></b>
6323      
6324     </td>
6325 pcg 1.1 </tr>
6326     <tr>
6327     <td>name</td>
6328 pcg 1.3 <td>username</td>
6329 pcg 1.17 <td> </td>
6330     <td>
6331    
6332      
6333     </td>
6334 pcg 1.3 <td>
6335 pcg 1.17 <b></b>
6336      
6337     </td>
6338 pcg 1.1 </tr>
6339     <tr>
6340     <td>message</td>
6341     <td>STRING</td>
6342 pcg 1.17 <td> </td>
6343 pcg 1.3 <td>
6344 pcg 1.17
6345      
6346     </td>
6347     <td>
6348     <b></b>
6349      
6350     </td>
6351 pcg 1.1 </tr>
6352     </table>
6353    
6354 pcg 1.17 <h4>
6355 pcg 1.32 <a name="S4302"></a>ORIGIN: SERVER;
6356     MESSAGE: part_room</h4>
6357 pcg 1.17 NUMERIC TYPE (hex): 4302<p>
6358     </p>
6359     <table border="1" width="100%">
6360 pcg 1.1 <tr>
6361 pcg 1.17 <th width="10%">NAME</th>
6362 pcg 1.37 <th width="8%">TYPE</th>
6363     <th width="4%">VALUE</th>
6364 pcg 1.17 <th>DESCRIPTION</th>
6365 pcg 1.37 <th width="10%">GUARD</th>
6366 pcg 1.1 </tr>
6367     <tr>
6368     <td>channel</td>
6369 pcg 1.3 <td>U16</td>
6370 pcg 1.17 <td> </td>
6371     <td>
6372    
6373      
6374     </td>
6375 pcg 1.3 <td>
6376 pcg 1.17 <b></b>
6377      
6378     </td>
6379 pcg 1.1 </tr>
6380     <tr>
6381     <td>user</td>
6382     <td>user</td>
6383 pcg 1.17 <td> </td>
6384     <td>
6385    
6386      
6387     </td>
6388 pcg 1.3 <td>
6389 pcg 1.17 <b></b>
6390      
6391     </td>
6392 pcg 1.1 </tr>
6393     </table>
6394    
6395 pcg 1.17 <h4>
6396 pcg 1.32 <a name="S4303"></a>ORIGIN: SERVER;
6397     MESSAGE: del_room</h4>
6398 pcg 1.17 NUMERIC TYPE (hex): 4303<p>
6399     </p>
6400     <table border="1" width="100%">
6401 pcg 1.1 <tr>
6402 pcg 1.17 <th width="10%">NAME</th>
6403 pcg 1.37 <th width="8%">TYPE</th>
6404     <th width="4%">VALUE</th>
6405 pcg 1.17 <th>DESCRIPTION</th>
6406 pcg 1.37 <th width="10%">GUARD</th>
6407 pcg 1.1 </tr>
6408     <tr>
6409     <td>channel</td>
6410 pcg 1.3 <td>U16</td>
6411 pcg 1.17 <td> </td>
6412 pcg 1.3 <td>
6413 pcg 1.17
6414      
6415     </td>
6416     <td>
6417     <b></b>
6418      
6419     </td>
6420 pcg 1.1 </tr>
6421     </table>
6422    
6423 pcg 1.17 <h4>
6424 pcg 1.32 <a name="S4304"></a>ORIGIN: SERVER;
6425     MESSAGE: upd_games</h4>
6426 pcg 1.17 NUMERIC TYPE (hex): 4304<p>
6427     </p>
6428     <table border="1" width="100%">
6429 pcg 1.1 <tr>
6430 pcg 1.17 <th width="10%">NAME</th>
6431 pcg 1.37 <th width="8%">TYPE</th>
6432     <th width="4%">VALUE</th>
6433 pcg 1.17 <th>DESCRIPTION</th>
6434 pcg 1.37 <th width="10%">GUARD</th>
6435 pcg 1.1 </tr>
6436     <tr>
6437     <td>channel</td>
6438 pcg 1.3 <td>U16</td>
6439 pcg 1.17 <td> </td>
6440     <td>
6441    
6442      
6443     </td>
6444 pcg 1.3 <td>
6445 pcg 1.17 <b></b>
6446      
6447     </td>
6448 pcg 1.1 </tr>
6449     <tr>
6450     <td>games</td>
6451     <td>game</td>
6452 pcg 1.17 <td> </td>
6453     <td>
6454    
6455      
6456     </td>
6457 pcg 1.3 <td>
6458 pcg 1.17 <b></b>
6459      
6460     </td>
6461 pcg 1.1 </tr>
6462     </table>
6463    
6464 pcg 1.17 <h4>
6465 pcg 1.32 <a name="S4319"></a>ORIGIN: SERVER;
6466     MESSAGE: desc_room</h4>
6467 pcg 1.17 NUMERIC TYPE (hex): 4319<p>
6468     </p>
6469     <table border="1" width="100%">
6470 pcg 1.1 <tr>
6471 pcg 1.17 <th width="10%">NAME</th>
6472 pcg 1.37 <th width="8%">TYPE</th>
6473     <th width="4%">VALUE</th>
6474 pcg 1.17 <th>DESCRIPTION</th>
6475 pcg 1.37 <th width="10%">GUARD</th>
6476 pcg 1.1 </tr>
6477     <tr>
6478     <td>channel</td>
6479 pcg 1.3 <td>U16</td>
6480 pcg 1.17 <td> </td>
6481 pcg 1.3 <td>
6482 pcg 1.17
6483      
6484     </td>
6485     <td>
6486     <b></b>
6487      
6488     </td>
6489 pcg 1.1 </tr>
6490     <tr>
6491     <td>owner</td>
6492 pcg 1.3 <td>username</td>
6493 pcg 1.17 <td> </td>
6494     <td>
6495    
6496      
6497     </td>
6498 pcg 1.3 <td>
6499 pcg 1.17 <b></b>
6500      
6501     </td>
6502 pcg 1.1 </tr>
6503     <tr>
6504     <td>description</td>
6505     <td>STRING</td>
6506 pcg 1.17 <td> </td>
6507 pcg 1.3 <td>
6508 pcg 1.17
6509      
6510     </td>
6511     <td>
6512     <b></b>
6513      
6514     </td>
6515 pcg 1.1 </tr>
6516     </table>
6517 pcg 1.27
6518 pcg 1.1 <h3>Game messages</h3>
6519    
6520 pcg 1.17 <h4>
6521 pcg 1.32 <a name="S4400"></a>ORIGIN: SERVER;
6522 pcg 1.59 MESSAGE: challenge</h4>
6523 pcg 1.17 NUMERIC TYPE (hex): 4400<p>
6524     Unclear.
6525     </p>
6526     <table border="1" width="100%">
6527 pcg 1.1 <tr>
6528 pcg 1.17 <th width="10%">NAME</th>
6529 pcg 1.37 <th width="8%">TYPE</th>
6530     <th width="4%">VALUE</th>
6531 pcg 1.17 <th>DESCRIPTION</th>
6532 pcg 1.37 <th width="10%">GUARD</th>
6533 pcg 1.1 </tr>
6534     <tr>
6535     <td>channel</td>
6536 pcg 1.3 <td>U16</td>
6537 pcg 1.17 <td> </td>
6538     <td>
6539    
6540      
6541     </td>
6542 pcg 1.3 <td>
6543 pcg 1.17 <b></b>
6544      
6545     </td>
6546 pcg 1.1 </tr>
6547     <tr>
6548 pcg 1.60 <td>black</td>
6549     <td>user</td>
6550     <td> </td>
6551     <td>
6552    
6553      
6554     </td>
6555     <td>
6556     <b></b>
6557      
6558     </td>
6559     </tr>
6560     <tr>
6561     <td>white</td>
6562     <td>user</td>
6563     <td> </td>
6564     <td>
6565    
6566      
6567     </td>
6568     <td>
6569     <b></b>
6570      
6571     </td>
6572     </tr>
6573     <tr>
6574     <td>gametype</td>
6575     <td>U8</td>
6576     <td> </td>
6577     <td>
6578    
6579      
6580     </td>
6581     <td>
6582     <b></b>
6583      
6584     </td>
6585     </tr>
6586     <tr>
6587     <td>cid</td>
6588     <td>CLIENTID8</td>
6589     <td> </td>
6590     <td>
6591    
6592      
6593     </td>
6594     <td>
6595     <b></b>
6596      
6597     </td>
6598     </tr>
6599     <tr>
6600     <td>rules</td>
6601     <td>rules</td>
6602     <td> </td>
6603     <td>
6604    
6605      
6606     </td>
6607     <td>
6608     <b></b>
6609      
6610     </td>
6611     </tr>
6612     <tr>
6613     <td>notes</td>
6614     <td>STRING</td>
6615 pcg 1.17 <td> </td>
6616     <td>
6617 pcg 1.60
6618 pcg 1.17  
6619     </td>
6620 pcg 1.3 <td>
6621 pcg 1.17 <b></b>
6622      
6623     </td>
6624 pcg 1.1 </tr>
6625     </table>
6626    
6627 pcg 1.17 <h4>
6628 pcg 1.32 <a name="S4401"></a>ORIGIN: SERVER;
6629     MESSAGE: upd_game</h4>
6630 pcg 1.17 NUMERIC TYPE (hex): 4401<p>
6631     </p>
6632     <table border="1" width="100%">
6633 pcg 1.1 <tr>
6634 pcg 1.17 <th width="10%">NAME</th>
6635 pcg 1.37 <th width="8%">TYPE</th>
6636     <th width="4%">VALUE</th>
6637 pcg 1.17 <th>DESCRIPTION</th>
6638 pcg 1.37 <th width="10%">GUARD</th>
6639 pcg 1.1 </tr>
6640     <tr>
6641     <td>channel</td>
6642 pcg 1.3 <td>U16</td>
6643 pcg 1.17 <td> </td>
6644     <td>
6645    
6646      
6647     </td>
6648 pcg 1.3 <td>
6649 pcg 1.17 <b></b>
6650      
6651     </td>
6652 pcg 1.1 </tr>
6653     <tr>
6654     <td>game</td>
6655     <td>game</td>
6656 pcg 1.17 <td> </td>
6657 pcg 1.3 <td>
6658 pcg 1.17
6659      
6660     </td>
6661     <td>
6662     <b></b>
6663      
6664     </td>
6665 pcg 1.1 </tr>
6666     </table>
6667    
6668 pcg 1.17 <h4>
6669 pcg 1.32 <a name="S4402"></a>ORIGIN: SERVER;
6670     MESSAGE: del_game</h4>
6671 pcg 1.17 NUMERIC TYPE (hex): 4402<p>
6672     </p>
6673     <table border="1" width="100%">
6674 pcg 1.1 <tr>
6675 pcg 1.17 <th width="10%">NAME</th>
6676 pcg 1.37 <th width="8%">TYPE</th>
6677     <th width="4%">VALUE</th>
6678 pcg 1.17 <th>DESCRIPTION</th>
6679 pcg 1.37 <th width="10%">GUARD</th>
6680 pcg 1.1 </tr>
6681     <tr>
6682     <td>channel</td>
6683 pcg 1.3 <td>U16</td>
6684 pcg 1.17 <td> </td>
6685     <td>
6686    
6687      
6688     </td>
6689 pcg 1.3 <td>
6690 pcg 1.17 <b></b>
6691      
6692     </td>
6693 pcg 1.1 </tr>
6694     </table>
6695    
6696 pcg 1.17 <h4>
6697 pcg 1.32 <a name="S4403"></a>ORIGIN: SERVER;
6698     MESSAGE: upd_observers</h4>
6699 pcg 1.17 NUMERIC TYPE (hex): 4403<p>
6700     </p>
6701     <table border="1" width="100%">
6702 pcg 1.1 <tr>
6703 pcg 1.17 <th width="10%">NAME</th>
6704 pcg 1.37 <th width="8%">TYPE</th>
6705     <th width="4%">VALUE</th>
6706 pcg 1.17 <th>DESCRIPTION</th>
6707 pcg 1.37 <th width="10%">GUARD</th>
6708 pcg 1.1 </tr>
6709     <tr>
6710     <td>channel</td>
6711 pcg 1.3 <td>U16</td>
6712 pcg 1.17 <td> </td>
6713     <td>
6714    
6715      
6716     </td>
6717 pcg 1.3 <td>
6718 pcg 1.17 <b></b>
6719      
6720     </td>
6721 pcg 1.1 </tr>
6722     <tr>
6723     <td>users</td>
6724     <td>user</td>
6725 pcg 1.17 <td> </td>
6726 pcg 1.3 <td>
6727 pcg 1.17
6728      
6729     </td>
6730     <td>
6731     <b></b>
6732      
6733     </td>
6734 pcg 1.1 </tr>
6735     </table>
6736    
6737 pcg 1.17 <h4>
6738 pcg 1.32 <a name="S4404"></a>ORIGIN: SERVER;
6739     MESSAGE: del_observer</h4>
6740 pcg 1.17 NUMERIC TYPE (hex): 4404<p>
6741     </p>
6742     <table border="1" width="100%">
6743 pcg 1.1 <tr>
6744 pcg 1.17 <th width="10%">NAME</th>
6745 pcg 1.37 <th width="8%">TYPE</th>
6746     <th width="4%">VALUE</th>
6747 pcg 1.17 <th>DESCRIPTION</th>
6748 pcg 1.37 <th width="10%">GUARD</th>
6749 pcg 1.1 </tr>
6750     <tr>
6751     <td>channel</td>
6752 pcg 1.3 <td>U16</td>
6753 pcg 1.17 <td> </td>
6754     <td>
6755    
6756      
6757     </td>
6758 pcg 1.3 <td>
6759 pcg 1.17 <b></b>
6760      
6761     </td>
6762 pcg 1.1 </tr>
6763     <tr>
6764     <td>name</td>
6765 pcg 1.3 <td>username</td>
6766 pcg 1.17 <td> </td>
6767     <td>
6768    
6769      
6770     </td>
6771 pcg 1.3 <td>
6772 pcg 1.17 <b></b>
6773      
6774     </td>
6775 pcg 1.1 </tr>
6776     </table>
6777    
6778 pcg 1.17 <h4>
6779 pcg 1.32 <a name="S4405"></a>ORIGIN: SERVER;
6780     MESSAGE: set_tree</h4>
6781 pcg 1.17 NUMERIC TYPE (hex): 4405<p>
6782     </p>
6783     <table border="1" width="100%">
6784 pcg 1.1 <tr>
6785 pcg 1.17 <th width="10%">NAME</th>
6786 pcg 1.37 <th width="8%">TYPE</th>
6787     <th width="4%">VALUE</th>
6788 pcg 1.17 <th>DESCRIPTION</th>
6789 pcg 1.37 <th width="10%">GUARD</th>
6790 pcg 1.1 </tr>
6791     <tr>
6792     <td>channel</td>
6793 pcg 1.3 <td>U16</td>
6794 pcg 1.17 <td> </td>
6795 pcg 1.3 <td>
6796 pcg 1.17
6797      
6798     </td>
6799     <td>
6800     <b></b>
6801      
6802     </td>
6803 pcg 1.1 </tr>
6804     <tr>
6805     <td>tree</td>
6806     <td>TREE</td>
6807 pcg 1.17 <td> </td>
6808     <td>
6809    
6810      
6811     </td>
6812 pcg 1.3 <td>
6813 pcg 1.17 <b></b>
6814      
6815     </td>
6816 pcg 1.1 </tr>
6817     </table>
6818    
6819 pcg 1.17 <h4>
6820 pcg 1.32 <a name="S4406"></a>ORIGIN: SERVER;
6821     MESSAGE: upd_tree</h4>
6822 pcg 1.17 NUMERIC TYPE (hex): 4406<p>
6823     </p>
6824     <table border="1" width="100%">
6825 pcg 1.1 <tr>
6826 pcg 1.17 <th width="10%">NAME</th>
6827 pcg 1.37 <th width="8%">TYPE</th>
6828     <th width="4%">VALUE</th>
6829 pcg 1.17 <th>DESCRIPTION</th>
6830 pcg 1.37 <th width="10%">GUARD</th>
6831 pcg 1.1 </tr>
6832     <tr>
6833     <td>channel</td>
6834 pcg 1.3 <td>U16</td>
6835 pcg 1.17 <td> </td>
6836     <td>
6837    
6838      
6839     </td>
6840 pcg 1.3 <td>
6841 pcg 1.17 <b></b>
6842      
6843     </td>
6844 pcg 1.1 </tr>
6845     <tr>
6846     <td>tree</td>
6847     <td>TREE</td>
6848 pcg 1.17 <td> </td>
6849     <td>
6850    
6851      
6852     </td>
6853 pcg 1.3 <td>
6854 pcg 1.17 <b></b>
6855      
6856     </td>
6857 pcg 1.1 </tr>
6858     </table>
6859    
6860 pcg 1.17 <h4>
6861 pcg 1.32 <a name="S4409"></a>ORIGIN: SERVER;
6862     MESSAGE: superko</h4>
6863 pcg 1.17 NUMERIC TYPE (hex): 4409<p>
6864     Superko-warning.
6865     </p>
6866     <table border="1" width="100%">
6867 pcg 1.1 <tr>
6868 pcg 1.17 <th width="10%">NAME</th>
6869 pcg 1.37 <th width="8%">TYPE</th>
6870     <th width="4%">VALUE</th>
6871 pcg 1.17 <th>DESCRIPTION</th>
6872 pcg 1.37 <th width="10%">GUARD</th>
6873 pcg 1.1 </tr>
6874     <tr>
6875     <td>channel</td>
6876 pcg 1.3 <td>U16</td>
6877 pcg 1.17 <td> </td>
6878     <td>
6879    
6880      
6881     </td>
6882 pcg 1.3 <td>
6883 pcg 1.17 <b></b>
6884      
6885     </td>
6886 pcg 1.1 </tr>
6887     </table>
6888    
6889 pcg 1.17 <h4>
6890 pcg 1.63 <a name="S440a"></a>ORIGIN: SERVER;
6891     MESSAGE: game_done</h4>
6892     NUMERIC TYPE (hex): 440a<p>
6893     <p>Send by the server when one of the players sends a done.</p>
6894     </p>
6895     <table border="1" width="100%">
6896     <tr>
6897     <th width="10%">NAME</th>
6898     <th width="8%">TYPE</th>
6899     <th width="4%">VALUE</th>
6900     <th>DESCRIPTION</th>
6901     <th width="10%">GUARD</th>
6902     </tr>
6903     <tr>
6904     <td>channel</td>
6905     <td>U16</td>
6906     <td> </td>
6907     <td>
6908    
6909      
6910     </td>
6911     <td>
6912     <b></b>
6913      
6914     </td>
6915     </tr>
6916     <tr>
6917     <td>id</td>
6918     <td>U32</td>
6919     <td> </td>
6920     <td>
6921    
6922      
6923     </td>
6924     <td>
6925     <b></b>
6926      
6927     </td>
6928     </tr>
6929     <tr>
6930     <td>black</td>
6931     <td>flag</td>
6932     <td> </td>
6933     <td>
6934    
6935      
6936     </td>
6937     <td>
6938     <b></b>
6939      
6940     </td>
6941     </tr>
6942     <tr>
6943     <td>white</td>
6944     <td>flag</td>
6945     <td> </td>
6946     <td>
6947    
6948      
6949     </td>
6950     <td>
6951     <b></b>
6952      
6953     </td>
6954     </tr>
6955     </table>
6956    
6957     <h4>
6958 pcg 1.32 <a name="S440b"></a>ORIGIN: SERVER;
6959     MESSAGE: final_result</h4>
6960 pcg 1.17 NUMERIC TYPE (hex): 440b<p>
6961     </p>
6962     <table border="1" width="100%">
6963 pcg 1.1 <tr>
6964 pcg 1.17 <th width="10%">NAME</th>
6965 pcg 1.37 <th width="8%">TYPE</th>
6966     <th width="4%">VALUE</th>
6967 pcg 1.17 <th>DESCRIPTION</th>
6968 pcg 1.37 <th width="10%">GUARD</th>
6969 pcg 1.1 </tr>
6970     <tr>
6971     <td>channel</td>
6972 pcg 1.3 <td>U16</td>
6973 pcg 1.17 <td> </td>
6974 pcg 1.3 <td>
6975 pcg 1.17
6976      
6977     </td>
6978     <td>
6979     <b></b>
6980      
6981     </td>
6982 pcg 1.1 </tr>
6983     <tr>
6984     <td>blackscore</td>
6985 pcg 1.10 <td>scorevalues</td>
6986 pcg 1.17 <td> </td>
6987     <td>
6988    
6989      
6990     </td>
6991 pcg 1.3 <td>
6992 pcg 1.17 <b></b>
6993      
6994     </td>
6995 pcg 1.1 </tr>
6996     <tr>
6997     <td>whitescore</td>
6998 pcg 1.10 <td>scorevalues</td>
6999 pcg 1.17 <td> </td>
7000 pcg 1.3 <td>
7001 pcg 1.17
7002      
7003     </td>
7004     <td>
7005     <b></b>
7006      
7007     </td>
7008 pcg 1.1 </tr>
7009     </table>
7010    
7011 pcg 1.17 <h4>
7012 pcg 1.61 <a name="S440c"></a>ORIGIN: SERVER;
7013     MESSAGE: out_of_time</h4>
7014     NUMERIC TYPE (hex): 440c<p>
7015 pcg 1.62 <p>Sent when the user is out of time and moves, or when the opponent
7016     requests <a href="#S0008">userinfo(0008)</a>.</p>
7017     </p>
7018 pcg 1.61 <table border="1" width="100%">
7019     <tr>
7020     <th width="10%">NAME</th>
7021     <th width="8%">TYPE</th>
7022     <th width="4%">VALUE</th>
7023     <th>DESCRIPTION</th>
7024     <th width="10%">GUARD</th>
7025     </tr>
7026     <tr>
7027     <td>channel</td>
7028     <td>U16</td>
7029     <td> </td>
7030     <td>
7031    
7032      
7033     </td>
7034     <td>
7035     <b></b>
7036      
7037     </td>
7038     </tr>
7039     <tr>
7040     <td>player</td>
7041     <td>U8</td>
7042     <td> </td>
7043     <td>
7044    
7045      
7046     </td>
7047     <td>
7048     <b></b>
7049      
7050     </td>
7051     </tr>
7052     </table>
7053    
7054     <h4>
7055 pcg 1.32 <a name="S440e"></a>ORIGIN: SERVER;
7056     MESSAGE: req_undo</h4>
7057 pcg 1.17 NUMERIC TYPE (hex): 440e<p>
7058     </p>
7059     <table border="1" width="100%">
7060 pcg 1.1 <tr>
7061 pcg 1.17 <th width="10%">NAME</th>
7062 pcg 1.37 <th width="8%">TYPE</th>
7063     <th width="4%">VALUE</th>
7064 pcg 1.17 <th>DESCRIPTION</th>
7065 pcg 1.37 <th width="10%">GUARD</th>
7066 pcg 1.1 </tr>
7067     <tr>
7068     <td>channel</td>
7069 pcg 1.3 <td>U16</td>
7070 pcg 1.17 <td> </td>
7071 pcg 1.3 <td>
7072 pcg 1.17
7073      
7074     </td>
7075     <td>
7076     <b></b>
7077      
7078     </td>
7079 pcg 1.1 </tr>
7080     </table>
7081    
7082 pcg 1.17 <h4>
7083 pcg 1.32 <a name="S4410"></a>ORIGIN: SERVER;
7084     MESSAGE: resign_game</h4>
7085 pcg 1.17 NUMERIC TYPE (hex): 4410<p>
7086     </p>
7087     <table border="1" width="100%">
7088 pcg 1.1 <tr>
7089 pcg 1.17 <th width="10%">NAME</th>
7090 pcg 1.37 <th width="8%">TYPE</th>
7091     <th width="4%">VALUE</th>
7092 pcg 1.17 <th>DESCRIPTION</th>
7093 pcg 1.37 <th width="10%">GUARD</th>
7094 pcg 1.1 </tr>
7095     <tr>
7096     <td>channel</td>
7097 pcg 1.3 <td>U16</td>
7098 pcg 1.17 <td> </td>
7099     <td>
7100    
7101      
7102     </td>
7103 pcg 1.3 <td>
7104 pcg 1.17 <b></b>
7105      
7106     </td>
7107 pcg 1.1 </tr>
7108     <tr>
7109     <td>player</td>
7110 pcg 1.3 <td>U8</td>
7111 pcg 1.17 <td> </td>
7112 pcg 1.3 <td>
7113 pcg 1.17
7114      
7115     </td>
7116     <td>
7117     <b></b>
7118      
7119     </td>
7120 pcg 1.1 </tr>
7121     </table>
7122    
7123 pcg 1.17 <h4>
7124 pcg 1.40 <a name="S4415"></a>ORIGIN: SERVER;
7125     MESSAGE: game_error</h4>
7126     NUMERIC TYPE (hex): 4415<p>
7127     </p>
7128     <table border="1" width="100%">
7129     <tr>
7130     <th width="10%">NAME</th>
7131     <th width="8%">TYPE</th>
7132     <th width="4%">VALUE</th>
7133     <th>DESCRIPTION</th>
7134     <th width="10%">GUARD</th>
7135     </tr>
7136     <tr>
7137     <td>channel</td>
7138     <td>U16</td>
7139     <td> </td>
7140     <td>
7141    
7142      
7143     </td>
7144     <td>
7145     <b></b>
7146      
7147     </td>
7148     </tr>
7149     <tr>
7150     <td>message</td>
7151     <td>CONSTANT</td>
7152     <td>Sorry, this is a lecture game. Only authorized players are allowed to make comments. </td>
7153     <td>
7154    
7155      
7156     </td>
7157     <td>
7158     <b></b>
7159      
7160     </td>
7161     </tr>
7162     </table>
7163    
7164     <h4>
7165 pcg 1.32 <a name="S441a"></a>ORIGIN: SERVER;
7166     MESSAGE: set_teacher</h4>
7167 pcg 1.17 NUMERIC TYPE (hex): 441a<p>
7168     </p>
7169     <table border="1" width="100%">
7170 pcg 1.1 <tr>
7171 pcg 1.17 <th width="10%">NAME</th>
7172 pcg 1.37 <th width="8%">TYPE</th>
7173     <th width="4%">VALUE</th>
7174 pcg 1.17 <th>DESCRIPTION</th>
7175 pcg 1.37 <th width="10%">GUARD</th>
7176 pcg 1.1 </tr>
7177     <tr>
7178     <td>channel</td>
7179 pcg 1.3 <td>U16</td>
7180 pcg 1.17 <td> </td>
7181     <td>
7182    
7183      
7184     </td>
7185 pcg 1.3 <td>
7186 pcg 1.17 <b></b>
7187      
7188     </td>
7189 pcg 1.1 </tr>
7190     <tr>
7191     <td>name</td>
7192 pcg 1.3 <td>username</td>
7193 pcg 1.17 <td> </td>
7194     <td>
7195    
7196      
7197     </td>
7198 pcg 1.3 <td>
7199 pcg 1.17 <b></b>
7200      
7201     </td>
7202 pcg 1.1 </tr>
7203     </table>
7204    
7205 pcg 1.17 <h4>
7206 pcg 1.32 <a name="S441d"></a>ORIGIN: SERVER;
7207     MESSAGE: owner_left</h4>
7208 pcg 1.17 NUMERIC TYPE (hex): 441d<p>
7209     </p>
7210     <table border="1" width="100%">
7211 pcg 1.1 <tr>
7212 pcg 1.17 <th width="10%">NAME</th>
7213 pcg 1.37 <th width="8%">TYPE</th>
7214     <th width="4%">VALUE</th>
7215 pcg 1.17 <th>DESCRIPTION</th>
7216 pcg 1.37 <th width="10%">GUARD</th>
7217 pcg 1.1 </tr>
7218     <tr>
7219     <td>channel</td>
7220 pcg 1.3 <td>U16</td>
7221 pcg 1.17 <td> </td>
7222     <td>
7223 pcg 1.40
7224      
7225     </td>
7226     <td>
7227     <b></b>
7228      
7229     </td>
7230     </tr>
7231     <tr>
7232     <td>message</td>
7233     <td>CONSTANT</td>
7234     <td>Sorry, the owner of this game has left. Nobody will be allowed to edit it until the owner returns. </td>
7235     <td>
7236 pcg 1.17
7237      
7238     </td>
7239 pcg 1.3 <td>
7240 pcg 1.17 <b></b>
7241      
7242     </td>
7243 pcg 1.1 </tr>
7244     </table>
7245    
7246 pcg 1.17 <h4>
7247 pcg 1.32 <a name="S441e"></a>ORIGIN: SERVER;
7248     MESSAGE: teacher_left</h4>
7249 pcg 1.17 NUMERIC TYPE (hex): 441e<p>
7250     Unclear.
7251     </p>
7252     <table border="1" width="100%">
7253 pcg 1.1 <tr>
7254 pcg 1.17 <th width="10%">NAME</th>
7255 pcg 1.37 <th width="8%">TYPE</th>
7256     <th width="4%">VALUE</th>
7257 pcg 1.17 <th>DESCRIPTION</th>
7258 pcg 1.37 <th width="10%">GUARD</th>
7259 pcg 1.1 </tr>
7260     <tr>
7261     <td>channel</td>
7262 pcg 1.3 <td>U16</td>
7263 pcg 1.17 <td> </td>
7264     <td>
7265    
7266      
7267     </td>
7268 pcg 1.3 <td>
7269 pcg 1.17 <b></b>
7270      
7271     </td>
7272 pcg 1.1 </tr>
7273     </table>
7274    
7275 pcg 1.17 <h4>
7276 pcg 1.32 <a name="S4422"></a>ORIGIN: SERVER;
7277 pcg 1.40 MESSAGE: allow_user_result</h4>
7278 pcg 1.17 NUMERIC TYPE (hex): 4422<p>
7279     </p>
7280     <table border="1" width="100%">
7281 pcg 1.1 <tr>
7282 pcg 1.17 <th width="10%">NAME</th>
7283 pcg 1.37 <th width="8%">TYPE</th>
7284     <th width="4%">VALUE</th>
7285 pcg 1.17 <th>DESCRIPTION</th>
7286 pcg 1.37 <th width="10%">GUARD</th>
7287 pcg 1.1 </tr>
7288     <tr>
7289 pcg 1.40 <td>message</td>
7290     <td>CONSTANT</td>
7291     <td>User "%s" will now be allowed full access to your game. </td>
7292     <td>
7293    
7294      
7295     </td>
7296     <td>
7297     <b></b>
7298      
7299     </td>
7300     </tr>
7301     <tr>
7302 pcg 1.1 <td>channel</td>
7303 pcg 1.3 <td>U16</td>
7304 pcg 1.17 <td> </td>
7305 pcg 1.3 <td>
7306 pcg 1.40
7307      
7308     </td>
7309     <td>
7310     <b></b>
7311      
7312     </td>
7313     </tr>
7314     </table>
7315    
7316     <h4>
7317     <a name="S4424"></a>ORIGIN: SERVER;
7318     MESSAGE: allow_user_result</h4>
7319     NUMERIC TYPE (hex): 4424<p>
7320     </p>
7321     <table border="1" width="100%">
7322     <tr>
7323     <th width="10%">NAME</th>
7324     <th width="8%">TYPE</th>
7325     <th width="4%">VALUE</th>
7326     <th>DESCRIPTION</th>
7327     <th width="10%">GUARD</th>
7328     </tr>
7329     <tr>
7330     <td>message</td>
7331     <td>CONSTANT</td>
7332     <td>Sorry, user "%s" is a guest and cannot be allowed full access to your game. </td>
7333     <td>
7334 pcg 1.17
7335      
7336     </td>
7337     <td>
7338     <b></b>
7339      
7340     </td>
7341 pcg 1.1 </tr>
7342     <tr>
7343 pcg 1.40 <td>channel</td>
7344     <td>U16</td>
7345 pcg 1.17 <td> </td>
7346     <td>
7347 pcg 1.40
7348      
7349     </td>
7350     <td>
7351     <b></b>
7352      
7353     </td>
7354     </tr>
7355     </table>
7356    
7357     <h4>
7358     <a name="S4425"></a>ORIGIN: SERVER;
7359     MESSAGE: allow_user_result</h4>
7360     NUMERIC TYPE (hex): 4425<p>
7361     </p>
7362     <table border="1" width="100%">
7363     <tr>
7364     <th width="10%">NAME</th>
7365     <th width="8%">TYPE</th>
7366     <th width="4%">VALUE</th>
7367     <th>DESCRIPTION</th>
7368     <th width="10%">GUARD</th>
7369     </tr>
7370     <tr>
7371     <td>message</td>
7372     <td>CONSTANT</td>
7373     <td>Sorry, user "%s" does not seem to exist and cannot be allowed into your game. </td>
7374     <td>
7375 pcg 1.17
7376      
7377     </td>
7378 pcg 1.3 <td>
7379 pcg 1.17 <b></b>
7380      
7381     </td>
7382 pcg 1.1 </tr>
7383     <tr>
7384 pcg 1.40 <td>channel</td>
7385     <td>U16</td>
7386 pcg 1.26 <td> </td>
7387     <td>
7388    
7389      
7390     </td>
7391     <td>
7392     <b></b>
7393      
7394     </td>
7395     </tr>
7396     </table>
7397    
7398     <h4>
7399 pcg 1.32 <a name="S4428"></a>ORIGIN: SERVER;
7400     MESSAGE: add_tree</h4>
7401 pcg 1.26 NUMERIC TYPE (hex): 4428<p>
7402 pcg 1.32 <p>See <a href="#S4405">set_tree(4405)</a>. In addition, flags the tree as being
7403 pcg 1.26 uploaded completely.</p>
7404     </p>
7405     <table border="1" width="100%">
7406     <tr>
7407     <th width="10%">NAME</th>
7408 pcg 1.37 <th width="8%">TYPE</th>
7409     <th width="4%">VALUE</th>
7410 pcg 1.26 <th>DESCRIPTION</th>
7411 pcg 1.37 <th width="10%">GUARD</th>
7412 pcg 1.26 </tr>
7413     <tr>
7414     <td>channel</td>
7415     <td>U16</td>
7416     <td> </td>
7417     <td>
7418    
7419      
7420     </td>
7421     <td>
7422     <b></b>
7423      
7424     </td>
7425     </tr>
7426     <tr>
7427     <td>tree</td>
7428     <td>TREE</td>
7429 pcg 1.40 <td> </td>
7430     <td>
7431    
7432      
7433     </td>
7434     <td>
7435     <b></b>
7436      
7437     </td>
7438     </tr>
7439     </table>
7440    
7441     <h4>
7442     <a name="S4429"></a>ORIGIN: SERVER;
7443     MESSAGE: reject_challenge</h4>
7444     NUMERIC TYPE (hex): 4429<p>
7445     Reject a challenge by a given user. Not checked.
7446     </p>
7447     <table border="1" width="100%">
7448     <tr>
7449     <th width="10%">NAME</th>
7450     <th width="8%">TYPE</th>
7451     <th width="4%">VALUE</th>
7452     <th>DESCRIPTION</th>
7453     <th width="10%">GUARD</th>
7454     </tr>
7455     <tr>
7456     <td>channel</td>
7457     <td>U16</td>
7458     <td> </td>
7459     <td>
7460    
7461      
7462     </td>
7463     <td>
7464     <b></b>
7465      
7466     </td>
7467     </tr>
7468     <tr>
7469     <td>name</td>
7470     <td>username</td>
7471 pcg 1.17 <td> </td>
7472 pcg 1.3 <td>
7473 pcg 1.60
7474      
7475     </td>
7476     <td>
7477     <b></b>
7478      
7479     </td>
7480     </tr>
7481     <tr>
7482     <td>gametype</td>
7483     <td>U8</td>
7484     <td> </td>
7485     <td>
7486    
7487      
7488     </td>
7489     <td>
7490     <b></b>
7491      
7492     </td>
7493     </tr>
7494     <tr>
7495     <td>cid</td>
7496     <td>CLIENTID8</td>
7497     <td> </td>
7498     <td>
7499    
7500      
7501     </td>
7502     <td>
7503     <b></b>
7504      
7505     </td>
7506     </tr>
7507     <tr>
7508     <td>rules</td>
7509     <td>rules</td>
7510     <td> </td>
7511     <td>
7512 pcg 1.17
7513 pcg 1.41  
7514     </td>
7515     <td>
7516     <b></b>
7517      
7518     </td>
7519     </tr>
7520     </table>
7521    
7522     <h4>
7523 pcg 1.63 <a name="S442b"></a>ORIGIN: SERVER;
7524     MESSAGE: set_comments</h4>
7525     NUMERIC TYPE (hex): 442b<p>
7526     <p>Sent at end of games to set the comments not seen previously.</p>
7527     </p>
7528     <table border="1" width="100%">
7529     <tr>
7530     <th width="10%">NAME</th>
7531     <th width="8%">TYPE</th>
7532     <th width="4%">VALUE</th>
7533     <th>DESCRIPTION</th>
7534     <th width="10%">GUARD</th>
7535     </tr>
7536     <tr>
7537     <td>channel</td>
7538     <td>U16</td>
7539     <td> </td>
7540     <td>
7541    
7542      
7543     </td>
7544     <td>
7545     <b></b>
7546      
7547     </td>
7548     </tr>
7549     <tr>
7550     <td>node</td>
7551     <td>U32</td>
7552     <td> </td>
7553     <td>
7554    
7555      
7556     </td>
7557     <td>
7558     <b></b>
7559      
7560     </td>
7561     </tr>
7562     <tr>
7563     <td>comments</td>
7564     <td>STRING</td>
7565     <td> </td>
7566     <td>
7567    
7568      
7569     </td>
7570     <td>
7571     <b></b>
7572      
7573     </td>
7574     </tr>
7575     </table>
7576    
7577     <h4>
7578     <a name="S442c"></a>ORIGIN: SERVER;
7579     MESSAGE: add_comments</h4>
7580     NUMERIC TYPE (hex): 442c<p>
7581     <p>Sent at end of games to add all game commentary.</p>
7582     </p>
7583     <table border="1" width="100%">
7584     <tr>
7585     <th width="10%">NAME</th>
7586     <th width="8%">TYPE</th>
7587     <th width="4%">VALUE</th>
7588     <th>DESCRIPTION</th>
7589     <th width="10%">GUARD</th>
7590     </tr>
7591     <tr>
7592     <td>channel</td>
7593     <td>U16</td>
7594     <td> </td>
7595     <td>
7596    
7597      
7598     </td>
7599     <td>
7600     <b></b>
7601      
7602     </td>
7603     </tr>
7604     <tr>
7605     <td>node</td>
7606     <td>U32</td>
7607     <td> </td>
7608     <td>
7609    
7610      
7611     </td>
7612     <td>
7613     <b></b>
7614      
7615     </td>
7616     </tr>
7617     <tr>
7618     <td>comments</td>
7619     <td>STRING</td>
7620     <td> </td>
7621     <td>
7622    
7623      
7624     </td>
7625     <td>
7626     <b></b>
7627      
7628     </td>
7629     </tr>
7630     </table>
7631    
7632     <h4>
7633 pcg 1.65 <a name="S442d"></a>ORIGIN: SERVER;
7634     MESSAGE: more_comments</h4>
7635     NUMERIC TYPE (hex): 442d<p>
7636     <p>Quite brokenly, the server sends you this to make you ask for more comments.
7637     Reply with <a href="#S442d">more_comments(442d)</a>.</p>
7638     </p>
7639     <table border="1" width="100%">
7640     <tr>
7641     <th width="10%">NAME</th>
7642     <th width="8%">TYPE</th>
7643     <th width="4%">VALUE</th>
7644     <th>DESCRIPTION</th>
7645     <th width="10%">GUARD</th>
7646     </tr>
7647     <tr>
7648     <td>channel</td>
7649     <td>U16</td>
7650     <td> </td>
7651     <td>
7652    
7653      
7654     </td>
7655     <td>
7656     <b></b>
7657      
7658     </td>
7659     </tr>
7660     <tr>
7661     <td>node</td>
7662     <td>U32</td>
7663     <td> </td>
7664     <td>
7665    
7666      
7667     </td>
7668     <td>
7669     <b></b>
7670      
7671     </td>
7672     </tr>
7673     </table>
7674    
7675     <h4>
7676 pcg 1.46 <a name="S442f"></a>ORIGIN: SERVER;
7677 pcg 1.41 MESSAGE: new_game</h4>
7678     NUMERIC TYPE (hex): 442f<p>
7679     <p>Notifies the client that a new game has been created. This
7680 pcg 1.46 message is sent long *after* upd_games and upd_observers etc.
7681     have been received. *sigh*</p>
7682 pcg 1.41 </p>
7683     <table border="1" width="100%">
7684     <tr>
7685     <th width="10%">NAME</th>
7686     <th width="8%">TYPE</th>
7687     <th width="4%">VALUE</th>
7688     <th>DESCRIPTION</th>
7689     <th width="10%">GUARD</th>
7690     </tr>
7691     <tr>
7692     <td>channel</td>
7693     <td>U16</td>
7694     <td> </td>
7695     <td>
7696    
7697      
7698     </td>
7699     <td>
7700     <b></b>
7701      
7702     </td>
7703     </tr>
7704     <tr>
7705 pcg 1.58 <td>cid</td>
7706 pcg 1.60 <td>CLIENTID16</td>
7707 pcg 1.41 <td> </td>
7708     <td>
7709    
7710 pcg 1.17  
7711     </td>
7712     <td>
7713     <b></b>
7714      
7715     </td>
7716 pcg 1.1 </tr>
7717     </table>
7718    
7719 pcg 1.17 <h4>
7720 pcg 1.32 <a name="S4433"></a>ORIGIN: SERVER;
7721     MESSAGE: req_result</h4>
7722 pcg 1.17 NUMERIC TYPE (hex): 4433<p>
7723     Unclear.
7724     </p>
7725     <table border="1" width="100%">
7726 pcg 1.1 <tr>
7727 pcg 1.17 <th width="10%">NAME</th>
7728 pcg 1.37 <th width="8%">TYPE</th>
7729     <th width="4%">VALUE</th>
7730 pcg 1.17 <th>DESCRIPTION</th>
7731 pcg 1.37 <th width="10%">GUARD</th>
7732 pcg 1.1 </tr>
7733     <tr>
7734     <td>channel</td>
7735 pcg 1.3 <td>U16</td>
7736 pcg 1.17 <td> </td>
7737 pcg 1.3 <td>
7738 pcg 1.1 # # recv_result(?)
7739 pcg 1.17
7740      
7741     </td>
7742     <td>
7743     <b></b>
7744      
7745     </td>
7746 pcg 1.1 </tr>
7747     </table>
7748    
7749 pcg 1.17 <h4>
7750 pcg 1.32 <a name="S4434"></a>ORIGIN: SERVER;
7751 pcg 1.48 MESSAGE: set_quiet</h4>
7752 pcg 1.17 NUMERIC TYPE (hex): 4434<p>
7753 pcg 1.48 <p>Sets (or clears) the quiet flag on a game.</p>
7754     </p>
7755 pcg 1.17 <table border="1" width="100%">
7756 pcg 1.1 <tr>
7757 pcg 1.17 <th width="10%">NAME</th>
7758 pcg 1.37 <th width="8%">TYPE</th>
7759     <th width="4%">VALUE</th>
7760 pcg 1.17 <th>DESCRIPTION</th>
7761 pcg 1.37 <th width="10%">GUARD</th>
7762 pcg 1.1 </tr>
7763     <tr>
7764     <td>channel</td>
7765 pcg 1.3 <td>U16</td>
7766 pcg 1.17 <td> </td>
7767     <td>
7768    
7769      
7770     </td>
7771 pcg 1.3 <td>
7772 pcg 1.17 <b></b>
7773      
7774     </td>
7775 pcg 1.1 </tr>
7776     <tr>
7777 pcg 1.48 <td>quiet</td>
7778 pcg 1.58 <td>flag</td>
7779 pcg 1.17 <td> </td>
7780 pcg 1.3 <td>
7781 pcg 1.17
7782      
7783     </td>
7784     <td>
7785     <b></b>
7786      
7787     </td>
7788 pcg 1.1 </tr>
7789     </table>
7790    
7791 pcg 1.43 <h4>
7792 pcg 1.50 <a name="S4437"></a>ORIGIN: SERVER;
7793 pcg 1.57 MESSAGE: set_gametime</h4>
7794 pcg 1.50 NUMERIC TYPE (hex): 4437<p>
7795 pcg 1.66 <p>Sent when joining a running game. Gives the remaining time +
7796 pcg 1.57 periods/moves for the players, to correctly initialize the clocks.</p>
7797 pcg 1.50 </p>
7798     <table border="1" width="100%">
7799     <tr>
7800     <th width="10%">NAME</th>
7801     <th width="8%">TYPE</th>
7802     <th width="4%">VALUE</th>
7803     <th>DESCRIPTION</th>
7804     <th width="10%">GUARD</th>
7805     </tr>
7806     <tr>
7807     <td>channel</td>
7808     <td>U16</td>
7809     <td> </td>
7810     <td>
7811    
7812      
7813     </td>
7814     <td>
7815     <b></b>
7816      
7817     </td>
7818     </tr>
7819     <tr>
7820 pcg 1.64 <td>black_time</td>
7821 pcg 1.50 <td>time</td>
7822     <td> </td>
7823     <td>
7824    
7825      
7826     </td>
7827     <td>
7828     <b></b>
7829      
7830     </td>
7831     </tr>
7832     <tr>
7833 pcg 1.64 <td>black_moves</td>
7834 pcg 1.50 <td>U16</td>
7835     <td> </td>
7836     <td>
7837    
7838      
7839     </td>
7840     <td>
7841     <b></b>
7842      
7843     </td>
7844     </tr>
7845     <tr>
7846 pcg 1.64 <td>white_time</td>
7847 pcg 1.50 <td>time</td>
7848     <td> </td>
7849     <td>
7850    
7851      
7852     </td>
7853     <td>
7854     <b></b>
7855      
7856     </td>
7857     </tr>
7858     <tr>
7859 pcg 1.64 <td>white_moves</td>
7860 pcg 1.50 <td>U16</td>
7861     <td> </td>
7862     <td>
7863    
7864      
7865     </td>
7866     <td>
7867     <b></b>
7868      
7869     </td>
7870     </tr>
7871     </table>
7872    
7873     <h4>
7874 pcg 1.44 <a name="S443b"></a>ORIGIN: SERVER;
7875 pcg 1.46 MESSAGE: del_global_challenge</h4>
7876 pcg 1.43 NUMERIC TYPE (hex): 443b<p>
7877 pcg 1.46 <p>
7878     Remove a game from the global challenge list (open game list).
7879 pcg 1.43 </p>
7880 pcg 1.46 </p>
7881 pcg 1.43 <table border="1" width="100%">
7882     <tr>
7883     <th width="10%">NAME</th>
7884     <th width="8%">TYPE</th>
7885     <th width="4%">VALUE</th>
7886     <th>DESCRIPTION</th>
7887     <th width="10%">GUARD</th>
7888     </tr>
7889     <tr>
7890     <td>channel</td>
7891     <td>U16</td>
7892     <td> </td>
7893     <td>
7894    
7895      
7896     </td>
7897     <td>
7898     <b></b>
7899      
7900     </td>
7901     </tr>
7902     <tr>
7903 pcg 1.44 <td>game</td>
7904 pcg 1.43 <td>U16</td>
7905     <td> </td>
7906     <td>
7907 pcg 1.46
7908 pcg 1.43  
7909     </td>
7910     <td>
7911     <b></b>
7912      
7913     </td>
7914     </tr>
7915     </table>
7916 pcg 1.1 </body>
7917     </html>