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