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