ViewVC Help
View File | Revision Log | Show Annotations | Download File
/cvs/kgsueme/doc/protocol.html
Revision: 1.71
Committed: Mon May 31 08:44:22 2004 UTC (20 years ago) by root
Content type: text/html
Branch: MAIN
Changes since 1.70: +7 -2 lines
Log Message:
*** empty log message ***

File Contents

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