ViewVC Help
View File | Revision Log | Show Annotations | Download File
/cvs/cvsroot/kgsueme/doc/protocol.html
Revision: 1.59
Committed: Sat May 29 06:38:26 2004 UTC (22 years, 4 months ago) by pcg
Content type: text/html
Branch: MAIN
Changes since 1.58: +67 -32 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.59 <h1>$Revision: 1.58 $</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.59 <p>Create a new game.</p>
1996 pcg 1.41 </p>
1997 pcg 1.17 <table border="1" width="100%">
1998 pcg 1.1 <tr>
1999 pcg 1.17 <th width="10%">NAME</th>
2000 pcg 1.37 <th width="8%">TYPE</th>
2001     <th width="4%">VALUE</th>
2002 pcg 1.17 <th>DESCRIPTION</th>
2003 pcg 1.37 <th width="10%">GUARD</th>
2004 pcg 1.1 </tr>
2005     <tr>
2006     <td>channel</td>
2007 pcg 1.3 <td>U16</td>
2008 pcg 1.17 <td> </td>
2009     <td>
2010    
2011      
2012     </td>
2013 pcg 1.3 <td>
2014 pcg 1.17 <b></b>
2015      
2016     </td>
2017 pcg 1.1 </tr>
2018     <tr>
2019 pcg 1.58 <td>cid</td>
2020     <td>clientid</td>
2021 pcg 1.17 <td> </td>
2022     <td>
2023    
2024      
2025     </td>
2026 pcg 1.3 <td>
2027 pcg 1.17 <b></b>
2028      
2029     </td>
2030 pcg 1.1 </tr>
2031     <tr>
2032 pcg 1.54 <td>type</td>
2033     <td>U8</td>
2034     <td> </td>
2035     <td>
2036    
2037      
2038     </td>
2039     <td>
2040     <b></b>
2041      
2042     </td>
2043     </tr>
2044     <tr>
2045     <td>flags</td>
2046     <td>U8</td>
2047 pcg 1.17 <td> </td>
2048     <td>
2049    
2050      
2051     </td>
2052 pcg 1.3 <td>
2053 pcg 1.17 <b></b>
2054      
2055     </td>
2056 pcg 1.1 </tr>
2057     <tr>
2058     <td>rules</td>
2059     <td>rules</td>
2060 pcg 1.17 <td> </td>
2061     <td>
2062    
2063      
2064     </td>
2065 pcg 1.3 <td>
2066 pcg 1.17 <b></b>
2067      
2068     </td>
2069 pcg 1.1 </tr>
2070     <tr>
2071     <td>notes</td>
2072     <td>STRING</td>
2073 pcg 1.17 <td> </td>
2074     <td>
2075 pcg 1.39
2076      
2077     </td>
2078     <td>
2079     <b></b>
2080      
2081     </td>
2082     </tr>
2083     </table>
2084    
2085     <h4>
2086     <a name="C430a"></a>ORIGIN: CLIENT;
2087     MESSAGE: load_game</h4>
2088     NUMERIC TYPE (hex): 430a<p>
2089     Load an existing game into a room(?)
2090     There is no indication that a new game is there except
2091     for a upd_observers message with your name in it. Which means
2092     you have to watch upd_observers messages that are not for any
2093     currently open game and open one. Ugh.
2094     </p>
2095     <table border="1" width="100%">
2096     <tr>
2097     <th width="10%">NAME</th>
2098     <th width="8%">TYPE</th>
2099     <th width="4%">VALUE</th>
2100     <th>DESCRIPTION</th>
2101     <th width="10%">GUARD</th>
2102     </tr>
2103     <tr>
2104     <td>channel</td>
2105     <td>U16</td>
2106     <td> </td>
2107     <td>
2108     The room to load the game into.
2109    
2110      
2111     </td>
2112     <td>
2113     <b></b>
2114      
2115     </td>
2116     </tr>
2117     <tr>
2118     <td>timestamp</td>
2119     <td>timestamp</td>
2120     <td> </td>
2121     <td>
2122     From the game record.
2123    
2124      
2125     </td>
2126     <td>
2127     <b></b>
2128      
2129     </td>
2130     </tr>
2131     <tr>
2132     <td>user</td>
2133     <td>username</td>
2134     <td> </td>
2135     <td>
2136    
2137      
2138     </td>
2139     <td>
2140     <b></b>
2141      
2142     </td>
2143     </tr>
2144     <tr>
2145     <td>flags</td>
2146     <td>U8</td>
2147     <td> </td>
2148     <td>
2149     0 == public, 2 == private
2150 pcg 1.17
2151      
2152     </td>
2153 pcg 1.3 <td>
2154 pcg 1.17 <b></b>
2155      
2156     </td>
2157 pcg 1.1 </tr>
2158     </table>
2159    
2160 pcg 1.17 <h4>
2161 pcg 1.32 <a name="C430b"></a>ORIGIN: CLIENT;
2162     MESSAGE: req_games</h4>
2163 pcg 1.17 NUMERIC TYPE (hex): 430b<p>
2164 pcg 1.9 Request to update room game list (send this once per minute to get
2165     updated). Results in upd_games messages.
2166 pcg 1.17 </p>
2167     <table border="1" width="100%">
2168     <tr>
2169     <th width="10%">NAME</th>
2170 pcg 1.37 <th width="8%">TYPE</th>
2171     <th width="4%">VALUE</th>
2172 pcg 1.17 <th>DESCRIPTION</th>
2173 pcg 1.37 <th width="10%">GUARD</th>
2174 pcg 1.1 </tr>
2175     <tr>
2176     <td>channel</td>
2177 pcg 1.3 <td>U16</td>
2178 pcg 1.17 <td> </td>
2179 pcg 1.3 <td>
2180 pcg 1.17
2181      
2182     </td>
2183     <td>
2184     <b></b>
2185      
2186     </td>
2187 pcg 1.1 </tr>
2188     </table>
2189    
2190 pcg 1.17 <h4>
2191 pcg 1.32 <a name="C4319"></a>ORIGIN: CLIENT;
2192     MESSAGE: req_desc</h4>
2193 pcg 1.17 NUMERIC TYPE (hex): 4319<p>
2194     Request room description.
2195     </p>
2196     <table border="1" width="100%">
2197 pcg 1.1 <tr>
2198 pcg 1.17 <th width="10%">NAME</th>
2199 pcg 1.37 <th width="8%">TYPE</th>
2200     <th width="4%">VALUE</th>
2201 pcg 1.17 <th>DESCRIPTION</th>
2202 pcg 1.37 <th width="10%">GUARD</th>
2203 pcg 1.1 </tr>
2204     <tr>
2205     <td>channel</td>
2206 pcg 1.3 <td>U16</td>
2207 pcg 1.17 <td> </td>
2208     <td>
2209    
2210      
2211     </td>
2212 pcg 1.3 <td>
2213 pcg 1.17 <b></b>
2214      
2215     </td>
2216 pcg 1.1 </tr>
2217     </table>
2218    
2219 pcg 1.17 <h4>
2220 pcg 1.32 <a name="C4400"></a>ORIGIN: CLIENT;
2221 pcg 1.59 MESSAGE: challenge</h4>
2222 pcg 1.17 NUMERIC TYPE (hex): 4400<p>
2223 pcg 1.59 <p>Used to send challenges to existing games.</p>
2224     </p>
2225 pcg 1.17 <table border="1" width="100%">
2226 pcg 1.1 <tr>
2227 pcg 1.17 <th width="10%">NAME</th>
2228 pcg 1.37 <th width="8%">TYPE</th>
2229     <th width="4%">VALUE</th>
2230 pcg 1.17 <th>DESCRIPTION</th>
2231 pcg 1.37 <th width="10%">GUARD</th>
2232 pcg 1.1 </tr>
2233     <tr>
2234     <td>channel</td>
2235 pcg 1.3 <td>U16</td>
2236 pcg 1.17 <td> </td>
2237     <td>
2238    
2239      
2240     </td>
2241 pcg 1.3 <td>
2242 pcg 1.17 <b></b>
2243      
2244     </td>
2245 pcg 1.1 </tr>
2246     <tr>
2247 pcg 1.59 <td>challenge</td>
2248     <td>challenge</td>
2249 pcg 1.17 <td> </td>
2250 pcg 1.3 <td>
2251 pcg 1.17
2252      
2253     </td>
2254     <td>
2255     <b></b>
2256      
2257     </td>
2258 pcg 1.1 </tr>
2259     </table>
2260    
2261 pcg 1.17 <h4>
2262 pcg 1.32 <a name="C4403"></a>ORIGIN: CLIENT;
2263     MESSAGE: join_game</h4>
2264 pcg 1.17 NUMERIC TYPE (hex): 4403<p>
2265     Join a game. See join_room.
2266     </p>
2267     <table border="1" width="100%">
2268 pcg 1.1 <tr>
2269 pcg 1.17 <th width="10%">NAME</th>
2270 pcg 1.37 <th width="8%">TYPE</th>
2271     <th width="4%">VALUE</th>
2272 pcg 1.17 <th>DESCRIPTION</th>
2273 pcg 1.37 <th width="10%">GUARD</th>
2274 pcg 1.1 </tr>
2275     <tr>
2276 pcg 1.5 <td>channel</td>
2277     <td>U16</td>
2278 pcg 1.17 <td> </td>
2279     <td>
2280    
2281      
2282     </td>
2283 pcg 1.3 <td>
2284 pcg 1.17 <b></b>
2285      
2286     </td>
2287 pcg 1.1 </tr>
2288     <tr>
2289 pcg 1.5 <td>user</td>
2290     <td>user</td>
2291 pcg 1.17 <td> </td>
2292     <td>
2293    
2294      
2295     </td>
2296 pcg 1.3 <td>
2297 pcg 1.17 <b></b>
2298      
2299     </td>
2300 pcg 1.1 </tr>
2301     </table>
2302    
2303 pcg 1.17 <h4>
2304 pcg 1.32 <a name="C4404"></a>ORIGIN: CLIENT;
2305     MESSAGE: part_game</h4>
2306 pcg 1.17 NUMERIC TYPE (hex): 4404<p>
2307     Leave (or kick as admin?) a certain user from a game.
2308     </p>
2309     <table border="1" width="100%">
2310 pcg 1.1 <tr>
2311 pcg 1.17 <th width="10%">NAME</th>
2312 pcg 1.37 <th width="8%">TYPE</th>
2313     <th width="4%">VALUE</th>
2314 pcg 1.17 <th>DESCRIPTION</th>
2315 pcg 1.37 <th width="10%">GUARD</th>
2316 pcg 1.1 </tr>
2317     <tr>
2318     <td>channel</td>
2319 pcg 1.3 <td>U16</td>
2320 pcg 1.17 <td> </td>
2321     <td>
2322    
2323      
2324     </td>
2325 pcg 1.3 <td>
2326 pcg 1.17 <b></b>
2327      
2328     </td>
2329 pcg 1.1 </tr>
2330     <tr>
2331     <td>name</td>
2332 pcg 1.3 <td>username</td>
2333 pcg 1.17 <td> </td>
2334 pcg 1.3 <td>
2335 pcg 1.17
2336      
2337     </td>
2338     <td>
2339     <b></b>
2340      
2341     </td>
2342 pcg 1.1 </tr>
2343     </table>
2344    
2345 pcg 1.17 <h4>
2346 pcg 1.35 <a name="C4405"></a>ORIGIN: CLIENT;
2347     MESSAGE: set_tree</h4>
2348     NUMERIC TYPE (hex): 4405<p>
2349     Possibly upload an initial game to an empty room. Not tested.
2350    
2351     </p>
2352     <table border="1" width="100%">
2353     <tr>
2354     <th width="10%">NAME</th>
2355 pcg 1.37 <th width="8%">TYPE</th>
2356     <th width="4%">VALUE</th>
2357 pcg 1.35 <th>DESCRIPTION</th>
2358 pcg 1.37 <th width="10%">GUARD</th>
2359 pcg 1.35 </tr>
2360     <tr>
2361     <td>channel</td>
2362     <td>U16</td>
2363     <td> </td>
2364     <td>
2365    
2366      
2367     </td>
2368     <td>
2369     <b></b>
2370      
2371     </td>
2372     </tr>
2373     <tr>
2374     <td>tree</td>
2375     <td>TREE</td>
2376     <td> </td>
2377     <td>
2378    
2379      
2380     </td>
2381     <td>
2382     <b></b>
2383      
2384     </td>
2385     </tr>
2386     </table>
2387    
2388     <h4>
2389 pcg 1.32 <a name="C4406"></a>ORIGIN: CLIENT;
2390     MESSAGE: upd_tree</h4>
2391 pcg 1.27 NUMERIC TYPE (hex): 4406<p>
2392     Upload a partial game tree to the server. This is used to send moves
2393     and even in-game comments to the server. For the comments, the
2394     server prepends the username and rank.
2395    
2396 pcg 1.17 </p>
2397     <table border="1" width="100%">
2398     <tr>
2399     <th width="10%">NAME</th>
2400 pcg 1.37 <th width="8%">TYPE</th>
2401     <th width="4%">VALUE</th>
2402 pcg 1.17 <th>DESCRIPTION</th>
2403 pcg 1.37 <th width="10%">GUARD</th>
2404 pcg 1.1 </tr>
2405     <tr>
2406     <td>channel</td>
2407 pcg 1.3 <td>U16</td>
2408 pcg 1.17 <td> </td>
2409     <td>
2410    
2411      
2412     </td>
2413 pcg 1.3 <td>
2414 pcg 1.17 <b></b>
2415      
2416     </td>
2417 pcg 1.1 </tr>
2418     <tr>
2419     <td>tree</td>
2420     <td>TREE</td>
2421 pcg 1.17 <td> </td>
2422     <td>
2423    
2424      
2425     </td>
2426 pcg 1.3 <td>
2427 pcg 1.17 <b></b>
2428      
2429     </td>
2430 pcg 1.1 </tr>
2431     </table>
2432    
2433 pcg 1.17 <h4>
2434 pcg 1.32 <a name="C4408"></a>ORIGIN: CLIENT;
2435     MESSAGE: get_tree</h4>
2436 pcg 1.17 NUMERIC TYPE (hex): 4408<p>
2437 pcg 1.9 Request the game tree starting at a given node. This is used
2438     when the server only sends a partial tree (with end code "more").
2439 pcg 1.17 </p>
2440     <table border="1" width="100%">
2441     <tr>
2442     <th width="10%">NAME</th>
2443 pcg 1.37 <th width="8%">TYPE</th>
2444     <th width="4%">VALUE</th>
2445 pcg 1.17 <th>DESCRIPTION</th>
2446 pcg 1.37 <th width="10%">GUARD</th>
2447 pcg 1.1 </tr>
2448     <tr>
2449     <td>channel</td>
2450 pcg 1.3 <td>U16</td>
2451 pcg 1.17 <td> </td>
2452 pcg 1.3 <td>
2453 pcg 1.17
2454      
2455     </td>
2456     <td>
2457     <b></b>
2458      
2459     </td>
2460 pcg 1.1 </tr>
2461     <tr>
2462     <td>node</td>
2463 pcg 1.3 <td>U32</td>
2464 pcg 1.17 <td> </td>
2465     <td>
2466    
2467      
2468     </td>
2469 pcg 1.3 <td>
2470 pcg 1.17 <b></b>
2471      
2472     </td>
2473 pcg 1.1 </tr>
2474     </table>
2475    
2476 pcg 1.17 <h4>
2477 pcg 1.32 <a name="C440c"></a>ORIGIN: CLIENT;
2478     MESSAGE: claim_win</h4>
2479 pcg 1.17 NUMERIC TYPE (hex): 440c<p>
2480     Unclear.
2481     </p>
2482     <table border="1" width="100%">
2483 pcg 1.1 <tr>
2484 pcg 1.17 <th width="10%">NAME</th>
2485 pcg 1.37 <th width="8%">TYPE</th>
2486     <th width="4%">VALUE</th>
2487 pcg 1.17 <th>DESCRIPTION</th>
2488 pcg 1.37 <th width="10%">GUARD</th>
2489 pcg 1.1 </tr>
2490     <tr>
2491     <td>channel</td>
2492 pcg 1.3 <td>U16</td>
2493 pcg 1.17 <td> </td>
2494     <td>
2495    
2496      
2497     </td>
2498 pcg 1.3 <td>
2499 pcg 1.17 <b></b>
2500      
2501     </td>
2502 pcg 1.1 </tr>
2503     <tr>
2504     <td>_byte</td>
2505 pcg 1.3 <td>U8 </td>
2506 pcg 1.17 <td> </td>
2507 pcg 1.3 <td>
2508 pcg 1.1 Player colour maybe? Unclear.
2509 pcg 1.17
2510      
2511     </td>
2512     <td>
2513     <b></b>
2514      
2515     </td>
2516 pcg 1.1 </tr>
2517     </table>
2518    
2519 pcg 1.17 <h4>
2520 pcg 1.32 <a name="C440d"></a>ORIGIN: CLIENT;
2521     MESSAGE: add_time</h4>
2522 pcg 1.17 NUMERIC TYPE (hex): 440d<p>
2523 pcg 1.9 Not checked.
2524    
2525 pcg 1.17 </p>
2526     <table border="1" width="100%">
2527     <tr>
2528     <th width="10%">NAME</th>
2529 pcg 1.37 <th width="8%">TYPE</th>
2530     <th width="4%">VALUE</th>
2531 pcg 1.17 <th>DESCRIPTION</th>
2532 pcg 1.37 <th width="10%">GUARD</th>
2533 pcg 1.1 </tr>
2534     <tr>
2535     <td>channel</td>
2536 pcg 1.3 <td>U16</td>
2537 pcg 1.17 <td> </td>
2538     <td>
2539    
2540      
2541     </td>
2542 pcg 1.3 <td>
2543 pcg 1.17 <b></b>
2544      
2545     </td>
2546 pcg 1.1 </tr>
2547     <tr>
2548     <td>time</td>
2549 pcg 1.3 <td>U32</td>
2550 pcg 1.17 <td> </td>
2551 pcg 1.3 <td>
2552 pcg 1.17
2553      
2554     </td>
2555     <td>
2556     <b></b>
2557      
2558     </td>
2559 pcg 1.1 </tr>
2560     <tr>
2561     <td>player</td>
2562 pcg 1.3 <td>U8</td>
2563 pcg 1.17 <td> </td>
2564     <td>
2565    
2566      
2567     </td>
2568 pcg 1.3 <td>
2569 pcg 1.17 <b></b>
2570      
2571     </td>
2572 pcg 1.1 </tr>
2573     </table>
2574    
2575 pcg 1.17 <h4>
2576 pcg 1.59 <a name="C440e"></a>ORIGIN: CLIENT;
2577     MESSAGE: req_undo</h4>
2578     NUMERIC TYPE (hex): 440e<p>
2579     </p>
2580     <table border="1" width="100%">
2581     <tr>
2582     <th width="10%">NAME</th>
2583     <th width="8%">TYPE</th>
2584     <th width="4%">VALUE</th>
2585     <th>DESCRIPTION</th>
2586     <th width="10%">GUARD</th>
2587     </tr>
2588     <tr>
2589     <td>channel</td>
2590     <td>U16</td>
2591     <td> </td>
2592     <td>
2593    
2594      
2595     </td>
2596     <td>
2597     <b></b>
2598      
2599     </td>
2600     </tr>
2601     </table>
2602    
2603     <h4>
2604 pcg 1.32 <a name="C440f"></a>ORIGIN: CLIENT;
2605     MESSAGE: grant_undo</h4>
2606 pcg 1.17 NUMERIC TYPE (hex): 440f<p>
2607     Can be send after a req_undo message was received to grant the undo.
2608     </p>
2609     <table border="1" width="100%">
2610 pcg 1.1 <tr>
2611 pcg 1.17 <th width="10%">NAME</th>
2612 pcg 1.37 <th width="8%">TYPE</th>
2613     <th width="4%">VALUE</th>
2614 pcg 1.17 <th>DESCRIPTION</th>
2615 pcg 1.37 <th width="10%">GUARD</th>
2616 pcg 1.1 </tr>
2617     <tr>
2618     <td>channel</td>
2619 pcg 1.3 <td>U16</td>
2620 pcg 1.17 <td> </td>
2621     <td>
2622    
2623      
2624     </td>
2625 pcg 1.3 <td>
2626 pcg 1.17 <b></b>
2627      
2628     </td>
2629 pcg 1.1 </tr>
2630     </table>
2631    
2632 pcg 1.17 <h4>
2633 pcg 1.32 <a name="C4410"></a>ORIGIN: CLIENT;
2634     MESSAGE: resign_game</h4>
2635 pcg 1.17 NUMERIC TYPE (hex): 4410<p>
2636     Resign the game.
2637     </p>
2638     <table border="1" width="100%">
2639 pcg 1.1 <tr>
2640 pcg 1.17 <th width="10%">NAME</th>
2641 pcg 1.37 <th width="8%">TYPE</th>
2642     <th width="4%">VALUE</th>
2643 pcg 1.17 <th>DESCRIPTION</th>
2644 pcg 1.37 <th width="10%">GUARD</th>
2645 pcg 1.1 </tr>
2646     <tr>
2647     <td>channel</td>
2648 pcg 1.3 <td>U16</td>
2649 pcg 1.17 <td> </td>
2650 pcg 1.3 <td>
2651 pcg 1.17
2652      
2653     </td>
2654     <td>
2655     <b></b>
2656      
2657     </td>
2658 pcg 1.1 </tr>
2659     <tr>
2660     <td>player</td>
2661 pcg 1.3 <td>U8</td>
2662 pcg 1.17 <td> </td>
2663     <td>
2664    
2665      
2666     </td>
2667 pcg 1.3 <td>
2668 pcg 1.17 <b></b>
2669      
2670     </td>
2671 pcg 1.1 </tr>
2672     </table>
2673    
2674 pcg 1.17 <h4>
2675 pcg 1.32 <a name="C441a"></a>ORIGIN: CLIENT;
2676     MESSAGE: set_teacher</h4>
2677 pcg 1.17 NUMERIC TYPE (hex): 441a<p>
2678 pcg 1.50 <p>Change the teacher to somebody else (or possibly yourself == take it). If the
2679     name is empty, the game will continue normally.</p>
2680     </p>
2681 pcg 1.17 <table border="1" width="100%">
2682 pcg 1.1 <tr>
2683 pcg 1.17 <th width="10%">NAME</th>
2684 pcg 1.37 <th width="8%">TYPE</th>
2685     <th width="4%">VALUE</th>
2686 pcg 1.17 <th>DESCRIPTION</th>
2687 pcg 1.37 <th width="10%">GUARD</th>
2688 pcg 1.1 </tr>
2689     <tr>
2690     <td>channel</td>
2691 pcg 1.3 <td>U16</td>
2692 pcg 1.17 <td> </td>
2693     <td>
2694    
2695      
2696     </td>
2697 pcg 1.3 <td>
2698 pcg 1.17 <b></b>
2699      
2700     </td>
2701 pcg 1.1 </tr>
2702     <tr>
2703     <td>name</td>
2704 pcg 1.3 <td>username</td>
2705 pcg 1.17 <td> </td>
2706     <td>
2707    
2708      
2709     </td>
2710 pcg 1.3 <td>
2711 pcg 1.17 <b></b>
2712      
2713     </td>
2714 pcg 1.1 </tr>
2715     </table>
2716    
2717 pcg 1.17 <h4>
2718 pcg 1.32 <a name="C4422"></a>ORIGIN: CLIENT;
2719 pcg 1.40 MESSAGE: allow_user</h4>
2720 pcg 1.17 NUMERIC TYPE (hex): 4422<p>
2721 pcg 1.50 <p>Unclear. Maybe allow users to talk? No idea, really.</p>
2722     </p>
2723 pcg 1.17 <table border="1" width="100%">
2724     <tr>
2725     <th width="10%">NAME</th>
2726 pcg 1.37 <th width="8%">TYPE</th>
2727     <th width="4%">VALUE</th>
2728 pcg 1.17 <th>DESCRIPTION</th>
2729 pcg 1.37 <th width="10%">GUARD</th>
2730 pcg 1.1 </tr>
2731     <tr>
2732     <td>channel</td>
2733 pcg 1.3 <td>U16</td>
2734 pcg 1.17 <td> </td>
2735     <td>
2736    
2737      
2738     </td>
2739 pcg 1.3 <td>
2740 pcg 1.17 <b></b>
2741      
2742     </td>
2743 pcg 1.1 </tr>
2744     <tr>
2745     <td>othername</td>
2746 pcg 1.3 <td>username</td>
2747 pcg 1.17 <td> </td>
2748 pcg 1.3 <td>
2749 pcg 1.17
2750      
2751     </td>
2752     <td>
2753     <b></b>
2754      
2755     </td>
2756 pcg 1.1 </tr>
2757     <tr>
2758     <td>name</td>
2759 pcg 1.3 <td>username</td>
2760 pcg 1.17 <td> </td>
2761     <td>; # gives user access to the game (to what? ;)
2762    
2763      
2764     </td>
2765 pcg 1.3 <td>
2766 pcg 1.17 <b></b>
2767      
2768     </td>
2769 pcg 1.1 </tr>
2770     </table>
2771    
2772 pcg 1.17 <h4>
2773 pcg 1.32 <a name="C4423"></a>ORIGIN: CLIENT;
2774     MESSAGE: set_privacy</h4>
2775 pcg 1.17 NUMERIC TYPE (hex): 4423<p>
2776     Probably sets the "quiet" flag. Not checked.
2777     </p>
2778     <table border="1" width="100%">
2779 pcg 1.1 <tr>
2780 pcg 1.17 <th width="10%">NAME</th>
2781 pcg 1.37 <th width="8%">TYPE</th>
2782     <th width="4%">VALUE</th>
2783 pcg 1.17 <th>DESCRIPTION</th>
2784 pcg 1.37 <th width="10%">GUARD</th>
2785 pcg 1.1 </tr>
2786     <tr>
2787     <td>channel</td>
2788 pcg 1.3 <td>U16</td>
2789 pcg 1.17 <td> </td>
2790     <td>
2791    
2792      
2793     </td>
2794 pcg 1.3 <td>
2795 pcg 1.17 <b></b>
2796      
2797     </td>
2798 pcg 1.1 </tr>
2799     <tr>
2800     <td>private</td>
2801 pcg 1.58 <td>flag</td>
2802 pcg 1.17 <td> </td>
2803 pcg 1.3 <td>
2804 pcg 1.17
2805      
2806     </td>
2807     <td>
2808     <b></b>
2809      
2810     </td>
2811 pcg 1.1 </tr>
2812     </table>
2813    
2814 pcg 1.17 <h4>
2815 pcg 1.32 <a name="C4429"></a>ORIGIN: CLIENT;
2816     MESSAGE: reject_challenge</h4>
2817 pcg 1.17 NUMERIC TYPE (hex): 4429<p>
2818 pcg 1.9 Reject a challenge from a given user. Not checked.
2819    
2820 pcg 1.17 </p>
2821     <table border="1" width="100%">
2822     <tr>
2823     <th width="10%">NAME</th>
2824 pcg 1.37 <th width="8%">TYPE</th>
2825     <th width="4%">VALUE</th>
2826 pcg 1.17 <th>DESCRIPTION</th>
2827 pcg 1.37 <th width="10%">GUARD</th>
2828 pcg 1.1 </tr>
2829     <tr>
2830     <td>channel</td>
2831 pcg 1.3 <td>U16</td>
2832 pcg 1.17 <td> </td>
2833     <td>
2834    
2835      
2836     </td>
2837 pcg 1.3 <td>
2838 pcg 1.17 <b></b>
2839      
2840     </td>
2841 pcg 1.1 </tr>
2842     <tr>
2843     <td>name</td>
2844 pcg 1.3 <td>username</td>
2845 pcg 1.17 <td> </td>
2846     <td>
2847    
2848      
2849     </td>
2850 pcg 1.3 <td>
2851 pcg 1.17 <b></b>
2852      
2853     </td>
2854 pcg 1.1 </tr>
2855     </table>
2856    
2857 pcg 1.17 <h4>
2858 pcg 1.46 <a name="C442e"></a>ORIGIN: CLIENT;
2859     MESSAGE: save_game</h4>
2860     NUMERIC TYPE (hex): 442e<p>
2861     <p>Is send when a game is closed and should be saved on the gamerecord.</p>
2862     </p>
2863     <table border="1" width="100%">
2864     <tr>
2865     <th width="10%">NAME</th>
2866     <th width="8%">TYPE</th>
2867     <th width="4%">VALUE</th>
2868     <th>DESCRIPTION</th>
2869     <th width="10%">GUARD</th>
2870     </tr>
2871     <tr>
2872     <td>channel</td>
2873     <td>U16</td>
2874     <td> </td>
2875     <td>
2876    
2877      
2878     </td>
2879     <td>
2880     <b></b>
2881      
2882     </td>
2883     </tr>
2884     </table>
2885    
2886     <h4>
2887 pcg 1.32 <a name="C4433"></a>ORIGIN: CLIENT;
2888     MESSAGE: req_result</h4>
2889 pcg 1.17 NUMERIC TYPE (hex): 4433<p>
2890 pcg 1.9 I forgot.
2891    
2892 pcg 1.17 </p>
2893     <table border="1" width="100%">
2894     <tr>
2895     <th width="10%">NAME</th>
2896 pcg 1.37 <th width="8%">TYPE</th>
2897     <th width="4%">VALUE</th>
2898 pcg 1.17 <th>DESCRIPTION</th>
2899 pcg 1.37 <th width="10%">GUARD</th>
2900 pcg 1.1 </tr>
2901     <tr>
2902     <td>channel</td>
2903 pcg 1.3 <td>U16</td>
2904 pcg 1.35 <td> </td>
2905     <td>
2906    
2907      
2908     </td>
2909     <td>
2910     <b></b>
2911      
2912     </td>
2913     </tr>
2914     </table>
2915    
2916     <h4>
2917 pcg 1.48 <a name="C4434"></a>ORIGIN: CLIENT;
2918     MESSAGE: set_quiet</h4>
2919     NUMERIC TYPE (hex): 4434<p>
2920     <p>Sets (or clears) the quiet flag on a game.</p>
2921     </p>
2922     <table border="1" width="100%">
2923     <tr>
2924     <th width="10%">NAME</th>
2925     <th width="8%">TYPE</th>
2926     <th width="4%">VALUE</th>
2927     <th>DESCRIPTION</th>
2928     <th width="10%">GUARD</th>
2929     </tr>
2930     <tr>
2931     <td>channel</td>
2932     <td>U16</td>
2933     <td> </td>
2934     <td>
2935    
2936      
2937     </td>
2938     <td>
2939     <b></b>
2940      
2941     </td>
2942     </tr>
2943     <tr>
2944     <td>quiet</td>
2945 pcg 1.58 <td>flag</td>
2946 pcg 1.48 <td> </td>
2947     <td>
2948    
2949      
2950     </td>
2951     <td>
2952     <b></b>
2953      
2954     </td>
2955     </tr>
2956     </table>
2957    
2958     <h4>
2959 pcg 1.35 <a name="C4436"></a>ORIGIN: CLIENT;
2960     MESSAGE: msg_game</h4>
2961     NUMERIC TYPE (hex): 4436<p>
2962     </p>
2963     <table border="1" width="100%">
2964     <tr>
2965     <th width="10%">NAME</th>
2966 pcg 1.37 <th width="8%">TYPE</th>
2967     <th width="4%">VALUE</th>
2968 pcg 1.35 <th>DESCRIPTION</th>
2969 pcg 1.37 <th width="10%">GUARD</th>
2970 pcg 1.35 </tr>
2971     <tr>
2972     <td>channel</td>
2973     <td>U16</td>
2974     <td> </td>
2975     <td>
2976    
2977      
2978     </td>
2979     <td>
2980     <b></b>
2981      
2982     </td>
2983     </tr>
2984     <tr>
2985     <td>message</td>
2986     <td>STRING</td>
2987 pcg 1.17 <td> </td>
2988 pcg 1.3 <td>
2989 pcg 1.17
2990      
2991     </td>
2992     <td>
2993     <b></b>
2994      
2995     </td>
2996 pcg 1.1 </tr>
2997     </table>
2998    
2999 pcg 1.37 <h4>
3000     <a name="Cffff"></a>ORIGIN: CLIENT;
3001     MESSAGE: quit</h4>
3002     NUMERIC TYPE (hex): ffff<p>
3003     <p>Sent by the client just before it logs out.</p>
3004     </p>
3005     <table border="1" width="100%">
3006     <tr>
3007     <th width="10%">NAME</th>
3008     <th width="8%">TYPE</th>
3009     <th width="4%">VALUE</th>
3010     <th>DESCRIPTION</th>
3011     <th width="10%">GUARD</th>
3012     </tr>
3013     </table>
3014    
3015 pcg 1.32 <h2>Structs mainly used in messages send by the server</h2>
3016 pcg 1.1
3017 pcg 1.3 <h4>STRUCTURE challenge_defaults</h4>
3018 pcg 1.17 <p>
3019     Send soon after log-in to set the defaults for game challenges.
3020     </p>
3021     <table border="1" width="100%">
3022 pcg 1.1 <tr>
3023 pcg 1.17 <th width="10%">NAME</th>
3024 pcg 1.37 <th width="8%">TYPE</th>
3025     <th width="4%">VALUE</th>
3026 pcg 1.17 <th>DESCRIPTION</th>
3027 pcg 1.37 <th width="10%">GUARD</th>
3028 pcg 1.1 </tr>
3029     <tr>
3030 pcg 1.59 <td>type</td>
3031     <td>U8</td>
3032     <td> </td>
3033     <td>
3034    
3035      
3036     </td>
3037     <td>
3038     <b></b>
3039      
3040     </td>
3041     </tr>
3042     <tr>
3043     <td>ruleset</td>
3044     <td>U8</td>
3045 pcg 1.17 <td> </td>
3046     <td>
3047    
3048      
3049     </td>
3050 pcg 1.3 <td>
3051 pcg 1.17 <b></b>
3052      
3053     </td>
3054 pcg 1.1 </tr>
3055     <tr>
3056     <td>size</td>
3057 pcg 1.3 <td>U32</td>
3058 pcg 1.17 <td> </td>
3059     <td>
3060    
3061      
3062     </td>
3063 pcg 1.3 <td>
3064 pcg 1.17 <b></b>
3065      
3066     </td>
3067 pcg 1.1 </tr>
3068     <tr>
3069     <td>timesys</td>
3070 pcg 1.3 <td>U32</td>
3071 pcg 1.17 <td> </td>
3072     <td>
3073    
3074      
3075     </td>
3076 pcg 1.3 <td>
3077 pcg 1.17 <b></b>
3078      
3079     </td>
3080 pcg 1.1 </tr>
3081     <tr>
3082     <td>time</td>
3083 pcg 1.3 <td>U32</td>
3084 pcg 1.17 <td> </td>
3085     <td>
3086    
3087      
3088     </td>
3089 pcg 1.3 <td>
3090 pcg 1.17 <b></b>
3091      
3092     </td>
3093 pcg 1.1 </tr>
3094     <tr>
3095     <td>byo_time</td>
3096 pcg 1.3 <td>U32</td>
3097 pcg 1.17 <td> </td>
3098     <td>
3099    
3100      
3101     </td>
3102 pcg 1.3 <td>
3103 pcg 1.17 <b></b>
3104      
3105     </td>
3106 pcg 1.1 </tr>
3107     <tr>
3108     <td>byo_periods</td>
3109 pcg 1.3 <td>U32</td>
3110 pcg 1.17 <td> </td>
3111     <td>
3112    
3113      
3114     </td>
3115 pcg 1.3 <td>
3116 pcg 1.17 <b></b>
3117      
3118     </td>
3119 pcg 1.1 </tr>
3120     <tr>
3121     <td>can_time</td>
3122 pcg 1.3 <td>U32</td>
3123 pcg 1.17 <td> </td>
3124     <td>
3125    
3126      
3127     </td>
3128 pcg 1.3 <td>
3129 pcg 1.17 <b></b>
3130      
3131     </td>
3132 pcg 1.1 </tr>
3133     <tr>
3134     <td>can_stones</td>
3135 pcg 1.3 <td>U32</td>
3136 pcg 1.17 <td> </td>
3137     <td>
3138 pcg 1.58
3139      
3140     </td>
3141     <td>
3142     <b></b>
3143      
3144     </td>
3145     </tr>
3146     <tr>
3147     <td>notes</td>
3148     <td>STRING</td>
3149     <td> </td>
3150     <td>
3151 pcg 1.17
3152      
3153     </td>
3154 pcg 1.3 <td>
3155 pcg 1.17 <b></b>
3156      
3157     </td>
3158 pcg 1.1 </tr>
3159     </table>
3160    
3161 pcg 1.3 <h4>STRUCTURE challenge</h4>
3162     CLASS: KGS::Challenge<br />
3163 pcg 1.17 <p>
3164 pcg 1.9 A challenge.
3165    
3166 pcg 1.17 </p>
3167     <table border="1" width="100%">
3168     <tr>
3169     <th width="10%">NAME</th>
3170 pcg 1.37 <th width="8%">TYPE</th>
3171     <th width="4%">VALUE</th>
3172 pcg 1.17 <th>DESCRIPTION</th>
3173 pcg 1.37 <th width="10%">GUARD</th>
3174 pcg 1.1 </tr>
3175     <tr>
3176     <td>user1</td>
3177     <td>user</td>
3178 pcg 1.17 <td> </td>
3179 pcg 1.3 <td>
3180 pcg 1.17
3181      
3182     </td>
3183     <td>
3184     <b></b>
3185      
3186     </td>
3187 pcg 1.1 </tr>
3188     <tr>
3189     <td>user2</td>
3190     <td>user</td>
3191 pcg 1.17 <td> </td>
3192     <td>
3193    
3194      
3195     </td>
3196 pcg 1.3 <td>
3197 pcg 1.17 <b></b>
3198      
3199     </td>
3200 pcg 1.1 </tr>
3201     <tr>
3202 pcg 1.59 <td>type</td>
3203     <td>U8</td>
3204     <td> </td>
3205     <td>
3206    
3207      
3208     </td>
3209     <td>
3210     <b></b>
3211      
3212     </td>
3213     </tr>
3214     <tr>
3215     <td>id</td>
3216     <td>U8</td>
3217 pcg 1.17 <td> </td>
3218 pcg 1.3 <td>
3219 pcg 1.17
3220      
3221     </td>
3222     <td>
3223     <b></b>
3224      
3225     </td>
3226 pcg 1.1 </tr>
3227     <tr>
3228     <td>rules</td>
3229     <td>rules</td>
3230 pcg 1.17 <td> </td>
3231 pcg 1.3 <td>
3232 pcg 1.17
3233      
3234     </td>
3235     <td>
3236     <b></b>
3237      
3238     </td>
3239 pcg 1.1 </tr>
3240     </table>
3241    
3242 pcg 1.3 <h4>STRUCTURE game</h4>
3243     CLASS: KGS::Game<br />
3244 pcg 1.17 <p>
3245 pcg 1.9 Basic information about a game. Used in rooms for the gamelist and
3246     in games to detect when a game is saved, changed type (e.g. R =&gt; D)
3247     etc.
3248    
3249 pcg 1.17 </p>
3250     <table border="1" width="100%">
3251     <tr>
3252     <th width="10%">NAME</th>
3253 pcg 1.37 <th width="8%">TYPE</th>
3254     <th width="4%">VALUE</th>
3255 pcg 1.17 <th>DESCRIPTION</th>
3256 pcg 1.37 <th width="10%">GUARD</th>
3257 pcg 1.1 </tr>
3258     <tr>
3259     <td>channel</td>
3260 pcg 1.3 <td>U16</td>
3261 pcg 1.17 <td> </td>
3262     <td>
3263    
3264      
3265     </td>
3266 pcg 1.3 <td>
3267 pcg 1.17 <b></b>
3268      
3269     </td>
3270 pcg 1.1 </tr>
3271     <tr>
3272 pcg 1.3 <td>type</td>
3273 pcg 1.25 <td>U8</td>
3274 pcg 1.17 <td> </td>
3275     <td>
3276    
3277      
3278     </td>
3279 pcg 1.3 <td>
3280 pcg 1.17 <b></b>
3281      
3282     </td>
3283 pcg 1.1 </tr>
3284     <tr>
3285     <td>user1</td>
3286     <td>user</td>
3287 pcg 1.17 <td> </td>
3288 pcg 1.3 <td>
3289 pcg 1.1 White
3290 pcg 1.17
3291      
3292     </td>
3293     <td>
3294     <b></b>
3295      
3296     </td>
3297 pcg 1.1 </tr>
3298     <tr>
3299     <td>user2</td>
3300     <td>user</td>
3301 pcg 1.17 <td> </td>
3302 pcg 1.3 <td>
3303 pcg 1.1 Black
3304 pcg 1.17
3305      
3306     </td>
3307     <td>
3308     <b></b>
3309      
3310     </td>
3311 pcg 1.1 </tr>
3312     <tr>
3313     <td>user3</td>
3314     <td>user</td>
3315 pcg 1.17 <td> </td>
3316 pcg 1.3 <td>
3317 pcg 1.1 Owner
3318 pcg 1.17
3319      
3320     </td>
3321     <td>
3322     <b></b>
3323      
3324     </td>
3325 pcg 1.1 </tr>
3326     <tr>
3327     <td>size</td>
3328 pcg 1.25 <td>U8</td>
3329 pcg 1.17 <td> </td>
3330     <td>
3331    
3332      
3333     </td>
3334 pcg 1.3 <td>
3335 pcg 1.17 <b></b>
3336      
3337     </td>
3338 pcg 1.1 </tr>
3339     <tr>
3340     <td>handicap</td>
3341 pcg 1.25 <td>I8</td>
3342 pcg 1.17 <td> </td>
3343 pcg 1.3 <td>
3344 pcg 1.1 &lt; 0 not fully setup
3345 pcg 1.17
3346      
3347     </td>
3348     <td>
3349     <b></b>
3350      
3351     </td>
3352 pcg 1.1 </tr>
3353     <tr>
3354     <td>komi</td>
3355 pcg 1.25 <td>komi16</td>
3356 pcg 1.17 <td> </td>
3357     <td>
3358    
3359      
3360     </td>
3361 pcg 1.3 <td>
3362 pcg 1.17 <b></b>
3363      
3364     </td>
3365 pcg 1.1 </tr>
3366     <tr>
3367     <td>moves</td>
3368 pcg 1.13 <td>I16</td>
3369 pcg 1.17 <td> </td>
3370 pcg 1.3 <td>
3371 pcg 1.12 This field reflects either the movenum or the score, sorry, not even guards help, as
3372 pcg 1.13 the flags to determine that are _after_ the field. Arg. Divide by two to get the actual
3373 pcg 1.26 score (NOT score16!) (arg²).
3374 pcg 1.17
3375      
3376     </td>
3377     <td>
3378     <b></b>
3379      
3380     </td>
3381 pcg 1.1 </tr>
3382     <tr>
3383     <td>flags</td>
3384 pcg 1.3 <td>U16</td>
3385 pcg 1.17 <td> </td>
3386     <td>
3387    
3388      
3389     </td>
3390 pcg 1.3 <td>
3391 pcg 1.17 <b></b>
3392      
3393     </td>
3394 pcg 1.1 </tr>
3395     <tr>
3396     <td>observers</td>
3397 pcg 1.3 <td>U32</td>
3398 pcg 1.17 <td> </td>
3399     <td>
3400    
3401      
3402     </td>
3403 pcg 1.3 <td>
3404 pcg 1.17 <b></b>
3405      
3406     </td>
3407 pcg 1.1 </tr>
3408     <tr>
3409     <td>saved</td>
3410 pcg 1.3 <td>flag</td>
3411 pcg 1.17 <td> </td>
3412     <td>
3413    
3414      
3415     </td>
3416 pcg 1.3 <td>
3417 pcg 1.17 <b></b>
3418      
3419     </td>
3420 pcg 1.1 </tr>
3421     <tr>
3422     <td>notes</td>
3423     <td>STRING</td>
3424 pcg 1.17 <td> </td>
3425     <td>
3426    
3427      
3428     </td>
3429 pcg 1.3 <td>
3430 pcg 1.17 <b>handicap</b> &lt; 0
3431      
3432     </td>
3433 pcg 1.1 </tr>
3434     </table>
3435    
3436 pcg 1.3 <h4>STRUCTURE room_obs</h4>
3437 pcg 1.17 <p>
3438 pcg 1.9 Obsolete.
3439    
3440 pcg 1.17 </p>
3441     <table border="1" width="100%">
3442     <tr>
3443     <th width="10%">NAME</th>
3444 pcg 1.37 <th width="8%">TYPE</th>
3445     <th width="4%">VALUE</th>
3446 pcg 1.17 <th>DESCRIPTION</th>
3447 pcg 1.37 <th width="10%">GUARD</th>
3448 pcg 1.1 </tr>
3449     <tr>
3450     <td>name</td>
3451 pcg 1.3 <td>roomname</td>
3452 pcg 1.17 <td> </td>
3453 pcg 1.3 <td>
3454 pcg 1.17
3455      
3456     </td>
3457     <td>
3458     <b></b>
3459      
3460     </td>
3461 pcg 1.1 </tr>
3462     <tr>
3463     <td>channel</td>
3464 pcg 1.3 <td>U16</td>
3465 pcg 1.17 <td> </td>
3466     <td>
3467    
3468      
3469     </td>
3470 pcg 1.3 <td>
3471 pcg 1.17 <b></b>
3472      
3473     </td>
3474 pcg 1.1 </tr>
3475     <tr>
3476     <td>flags</td>
3477 pcg 1.3 <td>U32</td>
3478 pcg 1.17 <td> </td>
3479 pcg 1.3 <td>
3480 pcg 1.17
3481      
3482     </td>
3483     <td>
3484     <b></b>
3485      
3486     </td>
3487 pcg 1.1 </tr>
3488     <tr>
3489     <td>users</td>
3490 pcg 1.3 <td>U32</td>
3491 pcg 1.17 <td> </td>
3492     <td>
3493    
3494      
3495     </td>
3496 pcg 1.3 <td>
3497 pcg 1.17 <b></b>
3498      
3499     </td>
3500 pcg 1.1 </tr>
3501     </table>
3502    
3503 pcg 1.3 <h4>STRUCTURE room</h4>
3504     CLASS: KGS::Room<br />
3505 pcg 1.17 <p>
3506     </p>
3507     <table border="1" width="100%">
3508 pcg 1.1 <tr>
3509 pcg 1.17 <th width="10%">NAME</th>
3510 pcg 1.37 <th width="8%">TYPE</th>
3511     <th width="4%">VALUE</th>
3512 pcg 1.17 <th>DESCRIPTION</th>
3513 pcg 1.37 <th width="10%">GUARD</th>
3514 pcg 1.1 </tr>
3515     <tr>
3516     <td>channel</td>
3517 pcg 1.3 <td>U16</td>
3518 pcg 1.17 <td> </td>
3519     <td>
3520    
3521      
3522     </td>
3523 pcg 1.3 <td>
3524 pcg 1.17 <b></b>
3525      
3526     </td>
3527 pcg 1.1 </tr>
3528     <tr>
3529     <td>flags</td>
3530 pcg 1.3 <td>U8</td>
3531 pcg 1.17 <td> </td>
3532     <td>
3533    
3534      
3535     </td>
3536 pcg 1.3 <td>
3537 pcg 1.17 <b></b>
3538      
3539     </td>
3540 pcg 1.1 </tr>
3541     <tr>
3542     <td>group</td>
3543 pcg 1.3 <td>U8</td>
3544 pcg 1.17 <td> </td>
3545     <td>
3546    
3547      
3548     </td>
3549 pcg 1.3 <td>
3550 pcg 1.17 <b></b>
3551      
3552     </td>
3553 pcg 1.1 </tr>
3554     <tr>
3555     <td>users</td>
3556 pcg 1.3 <td>U16</td>
3557 pcg 1.17 <td> </td>
3558     <td>
3559    
3560      
3561     </td>
3562 pcg 1.3 <td>
3563 pcg 1.17 <b></b>
3564      
3565     </td>
3566 pcg 1.1 </tr>
3567     <tr>
3568     <td>games</td>
3569 pcg 1.3 <td>U16</td>
3570 pcg 1.17 <td> </td>
3571     <td>
3572    
3573      
3574     </td>
3575 pcg 1.3 <td>
3576 pcg 1.17 <b></b>
3577      
3578     </td>
3579 pcg 1.1 </tr>
3580     <tr>
3581     <td>name</td>
3582     <td>STRING</td>
3583 pcg 1.17 <td> </td>
3584     <td>
3585    
3586      
3587     </td>
3588 pcg 1.3 <td>
3589 pcg 1.17 <b></b>
3590      
3591     </td>
3592 pcg 1.1 </tr>
3593     </table>
3594    
3595 pcg 1.10 <h4>STRUCTURE scorevalues</h4>
3596 pcg 1.3 CLASS: KGS::Score<br />
3597 pcg 1.17 <p>
3598     </p>
3599     <table border="1" width="100%">
3600     <tr>
3601     <th width="10%">NAME</th>
3602 pcg 1.37 <th width="8%">TYPE</th>
3603     <th width="4%">VALUE</th>
3604 pcg 1.17 <th>DESCRIPTION</th>
3605 pcg 1.37 <th width="10%">GUARD</th>
3606 pcg 1.1 </tr>
3607     <tr>
3608     <td>score</td>
3609 pcg 1.11 <td>score32</td>
3610 pcg 1.17 <td> </td>
3611     <td>
3612    
3613      
3614     </td>
3615 pcg 1.3 <td>
3616 pcg 1.17 <b></b>
3617      
3618     </td>
3619 pcg 1.1 </tr>
3620     <tr>
3621     <td>territory</td>
3622 pcg 1.3 <td>U32</td>
3623 pcg 1.17 <td> </td>
3624     <td>
3625    
3626      
3627     </td>
3628 pcg 1.3 <td>
3629 pcg 1.17 <b></b>
3630      
3631     </td>
3632 pcg 1.1 </tr>
3633     <tr>
3634     <td>captures</td>
3635 pcg 1.3 <td>U32</td>
3636 pcg 1.17 <td> </td>
3637     <td>
3638    
3639      
3640     </td>
3641 pcg 1.3 <td>
3642 pcg 1.17 <b></b>
3643      
3644     </td>
3645 pcg 1.1 </tr>
3646     <tr>
3647     <td>i3</td>
3648 pcg 1.3 <td>U32</td>
3649 pcg 1.17 <td> </td>
3650     <td>
3651    
3652      
3653     </td>
3654 pcg 1.3 <td>
3655 pcg 1.17 <b></b>
3656      
3657     </td>
3658 pcg 1.1 </tr>
3659     <tr>
3660     <td>f2</td>
3661 pcg 1.3 <td>U32</td>
3662 pcg 1.17 <td> </td>
3663     <td>
3664    
3665      
3666     </td>
3667 pcg 1.3 <td>
3668 pcg 1.17 <b></b>
3669      
3670     </td>
3671 pcg 1.1 </tr>
3672     <tr>
3673     <td>komi</td>
3674 pcg 1.19 <td>komi324</td>
3675 pcg 1.17 <td> </td>
3676     <td>
3677    
3678      
3679     </td>
3680 pcg 1.3 <td>
3681 pcg 1.17 <b></b>
3682      
3683     </td>
3684 pcg 1.1 </tr>
3685     <tr>
3686     <td>i4</td>
3687 pcg 1.3 <td>U32</td>
3688 pcg 1.17 <td> </td>
3689 pcg 1.3 <td>
3690     Apparently the i3, f2, i4 are zero.
3691 pcg 1.17
3692      
3693     </td>
3694     <td>
3695     <b></b>
3696      
3697     </td>
3698 pcg 1.1 </tr>
3699     </table>
3700    
3701 pcg 1.14 <h4>STRUCTURE game_record</h4>
3702     CLASS: KGS::GameRecord<br />
3703 pcg 1.17 <p>
3704 pcg 1.32 <p>A single game record entry, as seen in <a href="#S0008">userinfo(0008)</a>.</p>
3705 pcg 1.17 </p>
3706     <table border="1" width="100%">
3707 pcg 1.14 <tr>
3708 pcg 1.17 <th width="10%">NAME</th>
3709 pcg 1.37 <th width="8%">TYPE</th>
3710     <th width="4%">VALUE</th>
3711 pcg 1.17 <th>DESCRIPTION</th>
3712 pcg 1.37 <th width="10%">GUARD</th>
3713 pcg 1.14 </tr>
3714     <tr>
3715     <td>timestamp</td>
3716     <td>timestamp</td>
3717 pcg 1.17 <td> </td>
3718 pcg 1.14 <td>
3719     Time this game was played.
3720 pcg 1.17
3721      
3722     </td>
3723     <td>
3724     <b></b>
3725      
3726     </td>
3727 pcg 1.14 </tr>
3728     <tr>
3729 pcg 1.42 <td>flags1</td>
3730 pcg 1.14 <td>U8</td>
3731 pcg 1.17 <td> </td>
3732 pcg 1.14 <td>
3733 pcg 1.17
3734      
3735     </td>
3736     <td>
3737     <b></b>
3738      
3739     </td>
3740 pcg 1.14 </tr>
3741     <tr>
3742     <td>user1</td>
3743     <td>user</td>
3744 pcg 1.17 <td> </td>
3745 pcg 1.14 <td>
3746     White, flags contain low 8 bits of revision (bits 16-23).
3747 pcg 1.17
3748      
3749     </td>
3750     <td>
3751     <b></b>
3752      
3753     </td>
3754 pcg 1.14 </tr>
3755     <tr>
3756     <td>user2</td>
3757     <td>user</td>
3758 pcg 1.17 <td> </td>
3759 pcg 1.14 <td>
3760     Black, flags contain high 8 bits of revision (bits 16-23).
3761 pcg 1.17
3762      
3763     </td>
3764     <td>
3765     <b></b>
3766      
3767     </td>
3768 pcg 1.14 </tr>
3769     <tr>
3770     <td>user3</td>
3771     <td>user</td>
3772 pcg 1.17 <td> </td>
3773 pcg 1.14 <td>
3774 pcg 1.34
3775 pcg 1.17
3776      
3777     </td>
3778     <td>
3779     <b></b>
3780      
3781     </td>
3782 pcg 1.14 </tr>
3783     <tr>
3784 pcg 1.42 <td>flags2</td>
3785     <td>U16</td>
3786 pcg 1.17 <td> </td>
3787     <td>
3788    
3789      
3790     </td>
3791 pcg 1.14 <td>
3792 pcg 1.17 <b></b>
3793      
3794     </td>
3795 pcg 1.14 </tr>
3796     <tr>
3797     <td>score</td>
3798     <td>score16</td>
3799 pcg 1.17 <td> </td>
3800 pcg 1.14 <td>
3801 pcg 1.17
3802      
3803     </td>
3804     <td>
3805     <b></b>
3806      
3807     </td>
3808 pcg 1.14 </tr>
3809     <tr>
3810 pcg 1.42 <td>flags3</td>
3811 pcg 1.14 <td>U8</td>
3812 pcg 1.17 <td> </td>
3813 pcg 1.14 <td>
3814 pcg 1.34
3815    
3816 pcg 1.17  
3817     </td>
3818     <td>
3819     <b></b>
3820      
3821     </td>
3822 pcg 1.14 </tr>
3823     </table>
3824    
3825 pcg 1.32 <h2>Server-generated messages</h2>
3826 pcg 1.1
3827 pcg 1.17 <h4>
3828 pcg 1.32 <a name="S0001"></a>ORIGIN: SERVER;
3829     MESSAGE: login</h4>
3830 pcg 1.17 NUMERIC TYPE (hex): 0001
3831     (possibly in response to
3832 pcg 1.32 <a href="#C0000">login(0000)</a>
3833 pcg 1.17 )
3834     <p>
3835     </p>
3836     <table border="1" width="100%">
3837     <tr>
3838     <th width="10%">NAME</th>
3839 pcg 1.37 <th width="8%">TYPE</th>
3840     <th width="4%">VALUE</th>
3841 pcg 1.17 <th>DESCRIPTION</th>
3842 pcg 1.37 <th width="10%">GUARD</th>
3843 pcg 1.1 </tr>
3844     <tr>
3845 pcg 1.40 <td>message</td>
3846 pcg 1.1 <td>CONSTANT</td>
3847 pcg 1.40 <td>login successful </td>
3848 pcg 1.17 <td>
3849    
3850      
3851     </td>
3852 pcg 1.3 <td>
3853 pcg 1.17 <b></b>
3854      
3855     </td>
3856 pcg 1.1 </tr>
3857     <tr>
3858     <td>success</td>
3859     <td>CONSTANT</td>
3860 pcg 1.17 <td>1 </td>
3861 pcg 1.3 <td>
3862 pcg 1.17
3863      
3864     </td>
3865     <td>
3866     <b></b>
3867      
3868     </td>
3869 pcg 1.1 </tr>
3870     </table>
3871    
3872 pcg 1.17 <h4>
3873 pcg 1.32 <a name="S0002"></a>ORIGIN: SERVER;
3874     MESSAGE: login</h4>
3875 pcg 1.17 NUMERIC TYPE (hex): 0002
3876     (possibly in response to
3877 pcg 1.32 <a href="#C0000">login(0000)</a>
3878 pcg 1.17 )
3879     <p>
3880     </p>
3881     <table border="1" width="100%">
3882     <tr>
3883     <th width="10%">NAME</th>
3884 pcg 1.37 <th width="8%">TYPE</th>
3885     <th width="4%">VALUE</th>
3886 pcg 1.17 <th>DESCRIPTION</th>
3887 pcg 1.37 <th width="10%">GUARD</th>
3888 pcg 1.1 </tr>
3889     <tr>
3890 pcg 1.40 <td>message</td>
3891 pcg 1.1 <td>CONSTANT</td>
3892 pcg 1.40 <td>login successful: client version is outdated. </td>
3893 pcg 1.3 <td>
3894 pcg 1.17
3895      
3896     </td>
3897     <td>
3898     <b></b>
3899      
3900     </td>
3901 pcg 1.1 </tr>
3902     <tr>
3903     <td>success</td>
3904     <td>CONSTANT</td>
3905 pcg 1.17 <td>1 </td>
3906     <td>
3907    
3908      
3909     </td>
3910 pcg 1.3 <td>
3911 pcg 1.17 <b></b>
3912      
3913     </td>
3914 pcg 1.1 </tr>
3915     </table>
3916    
3917 pcg 1.17 <h4>
3918 pcg 1.32 <a name="S0003"></a>ORIGIN: SERVER;
3919     MESSAGE: login</h4>
3920 pcg 1.17 NUMERIC TYPE (hex): 0003
3921     (possibly in response to
3922 pcg 1.32 <a href="#C0000">login(0000)</a>
3923 pcg 1.17 )
3924     <p>
3925     </p>
3926     <table border="1" width="100%">
3927     <tr>
3928     <th width="10%">NAME</th>
3929 pcg 1.37 <th width="8%">TYPE</th>
3930     <th width="4%">VALUE</th>
3931 pcg 1.17 <th>DESCRIPTION</th>
3932 pcg 1.37 <th width="10%">GUARD</th>
3933 pcg 1.1 </tr>
3934     <tr>
3935 pcg 1.40 <td>message</td>
3936 pcg 1.1 <td>CONSTANT</td>
3937 pcg 1.40 <td>login failed: client version out of date </td>
3938 pcg 1.3 <td>
3939 pcg 1.1 ** maybe more following? **
3940 pcg 1.17
3941      
3942     </td>
3943     <td>
3944     <b></b>
3945      
3946     </td>
3947 pcg 1.1 </tr>
3948     </table>
3949    
3950 pcg 1.17 <h4>
3951 pcg 1.32 <a name="S0004"></a>ORIGIN: SERVER;
3952     MESSAGE: login</h4>
3953 pcg 1.17 NUMERIC TYPE (hex): 0004
3954     (possibly in response to
3955 pcg 1.32 <a href="#C0000">login(0000)</a>
3956 pcg 1.17 )
3957     <p>
3958     </p>
3959     <table border="1" width="100%">
3960     <tr>
3961     <th width="10%">NAME</th>
3962 pcg 1.37 <th width="8%">TYPE</th>
3963     <th width="4%">VALUE</th>
3964 pcg 1.17 <th>DESCRIPTION</th>
3965 pcg 1.37 <th width="10%">GUARD</th>
3966 pcg 1.1 </tr>
3967     <tr>
3968 pcg 1.40 <td>message</td>
3969 pcg 1.1 <td>CONSTANT</td>
3970 pcg 1.40 <td>login failed: wrong password </td>
3971 pcg 1.3 <td>
3972 pcg 1.1 ** maybe more following? **
3973 pcg 1.17
3974      
3975     </td>
3976     <td>
3977     <b></b>
3978      
3979     </td>
3980 pcg 1.1 </tr>
3981     </table>
3982    
3983 pcg 1.17 <h4>
3984 pcg 1.32 <a name="S0005"></a>ORIGIN: SERVER;
3985     MESSAGE: login</h4>
3986 pcg 1.17 NUMERIC TYPE (hex): 0005
3987     (possibly in response to
3988 pcg 1.32 <a href="#C0000">login(0000)</a>
3989 pcg 1.17 )
3990     <p>
3991     </p>
3992     <table border="1" width="100%">
3993     <tr>
3994     <th width="10%">NAME</th>
3995 pcg 1.37 <th width="8%">TYPE</th>
3996     <th width="4%">VALUE</th>
3997 pcg 1.17 <th>DESCRIPTION</th>
3998 pcg 1.37 <th width="10%">GUARD</th>
3999 pcg 1.1 </tr>
4000     <tr>
4001 pcg 1.40 <td>message</td>
4002 pcg 1.1 <td>CONSTANT</td>
4003 pcg 1.40 <td>login failed: specified user does not exist </td>
4004 pcg 1.3 <td>
4005 pcg 1.17
4006      
4007     </td>
4008     <td>
4009     <b></b>
4010      
4011     </td>
4012 pcg 1.1 </tr>
4013     </table>
4014    
4015 pcg 1.17 <h4>
4016 pcg 1.32 <a name="S0006"></a>ORIGIN: SERVER;
4017     MESSAGE: login</h4>
4018 pcg 1.17 NUMERIC TYPE (hex): 0006
4019     (possibly in response to
4020 pcg 1.32 <a href="#C0000">login(0000)</a>
4021 pcg 1.17 )
4022     <p>
4023     </p>
4024     <table border="1" width="100%">
4025     <tr>
4026     <th width="10%">NAME</th>
4027 pcg 1.37 <th width="8%">TYPE</th>
4028     <th width="4%">VALUE</th>
4029 pcg 1.17 <th>DESCRIPTION</th>
4030 pcg 1.37 <th width="10%">GUARD</th>
4031 pcg 1.1 </tr>
4032     <tr>
4033 pcg 1.40 <td>message</td>
4034 pcg 1.1 <td>CONSTANT</td>
4035 pcg 1.56 <td>login failed: user of same name logged in </td>
4036 pcg 1.3 <td>
4037 pcg 1.17
4038      
4039     </td>
4040     <td>
4041     <b></b>
4042      
4043     </td>
4044 pcg 1.1 </tr>
4045     </table>
4046    
4047 pcg 1.17 <h4>
4048 pcg 1.32 <a name="S0008"></a>ORIGIN: SERVER;
4049     MESSAGE: userinfo</h4>
4050 pcg 1.17 NUMERIC TYPE (hex): 0008
4051     (possibly in response to
4052 pcg 1.32 <a href="#C0007">req_userinfo(0007)</a>
4053 pcg 1.17 )
4054     <p>
4055     User info.
4056     </p>
4057     <table border="1" width="100%">
4058 pcg 1.14 <tr>
4059 pcg 1.17 <th width="10%">NAME</th>
4060 pcg 1.37 <th width="8%">TYPE</th>
4061     <th width="4%">VALUE</th>
4062 pcg 1.17 <th>DESCRIPTION</th>
4063 pcg 1.37 <th width="10%">GUARD</th>
4064 pcg 1.14 </tr>
4065     <tr>
4066 pcg 1.33 <td>_unused0</td>
4067     <td>flag</td>
4068     <td> </td>
4069     <td>
4070    
4071      
4072     </td>
4073     <td>
4074     <b></b>
4075      
4076     </td>
4077     </tr>
4078     <tr>
4079 pcg 1.14 <td>user</td>
4080     <td>user</td>
4081 pcg 1.17 <td> </td>
4082     <td>
4083    
4084      
4085     </td>
4086 pcg 1.14 <td>
4087 pcg 1.17 <b></b>
4088      
4089     </td>
4090 pcg 1.14 </tr>
4091     <tr>
4092 pcg 1.33 <td>_unused1</td>
4093 pcg 1.15 <td>U64</td>
4094 pcg 1.17 <td> </td>
4095     <td>
4096    
4097      
4098     </td>
4099 pcg 1.14 <td>
4100 pcg 1.17 <b></b>
4101      
4102     </td>
4103 pcg 1.14 </tr>
4104     <tr>
4105     <td>realname</td>
4106     <td>realname</td>
4107 pcg 1.17 <td> </td>
4108     <td>
4109    
4110      
4111     </td>
4112 pcg 1.14 <td>
4113 pcg 1.17 <b></b>
4114      
4115     </td>
4116 pcg 1.14 </tr>
4117     <tr>
4118     <td>email</td>
4119     <td>email</td>
4120 pcg 1.17 <td> </td>
4121     <td>
4122    
4123      
4124     </td>
4125 pcg 1.14 <td>
4126 pcg 1.17 <b></b>
4127      
4128     </td>
4129 pcg 1.14 </tr>
4130     <tr>
4131     <td>info</td>
4132     <td>userinfo</td>
4133 pcg 1.17 <td> </td>
4134     <td>
4135    
4136      
4137     </td>
4138 pcg 1.14 <td>
4139 pcg 1.17 <b></b>
4140      
4141     </td>
4142 pcg 1.14 </tr>
4143     <tr>
4144     <td>homepage</td>
4145     <td>url</td>
4146 pcg 1.17 <td> </td>
4147     <td>
4148    
4149      
4150     </td>
4151 pcg 1.14 <td>
4152 pcg 1.17 <b></b>
4153      
4154     </td>
4155 pcg 1.14 </tr>
4156     <tr>
4157     <td>regdate</td>
4158     <td>timestamp</td>
4159 pcg 1.17 <td> </td>
4160 pcg 1.14 <td>
4161     When the user registered (0 == never registered).
4162 pcg 1.17
4163      
4164     </td>
4165     <td>
4166     <b></b>
4167      
4168     </td>
4169 pcg 1.14 </tr>
4170     <tr>
4171     <td>lastlogin</td>
4172     <td>timestamp</td>
4173 pcg 1.17 <td> </td>
4174 pcg 1.14 <td>
4175     When the user logged in for the last time.
4176 pcg 1.17
4177      
4178     </td>
4179     <td>
4180     <b></b>
4181      
4182     </td>
4183 pcg 1.14 </tr>
4184     </table>
4185    
4186 pcg 1.17 <h4>
4187 pcg 1.40 <a name="S0009"></a>ORIGIN: SERVER;
4188     MESSAGE: upd_userinfo_result</h4>
4189     NUMERIC TYPE (hex): 0009<p>
4190     </p>
4191     <table border="1" width="100%">
4192     <tr>
4193     <th width="10%">NAME</th>
4194     <th width="8%">TYPE</th>
4195     <th width="4%">VALUE</th>
4196     <th>DESCRIPTION</th>
4197     <th width="10%">GUARD</th>
4198     </tr>
4199     <tr>
4200     <td>name</td>
4201     <td>username</td>
4202     <td> </td>
4203     <td>
4204    
4205      
4206     </td>
4207     <td>
4208     <b></b>
4209      
4210     </td>
4211     </tr>
4212     <tr>
4213     <td>message</td>
4214     <td>CONSTANT</td>
4215     <td>Thanks for registering. </td>
4216     <td>
4217    
4218      
4219     </td>
4220     <td>
4221     <b></b>
4222      
4223     </td>
4224     </tr>
4225     </table>
4226    
4227     <h4>
4228     <a name="S000a"></a>ORIGIN: SERVER;
4229     MESSAGE: upd_userinfo_result</h4>
4230     NUMERIC TYPE (hex): 000a<p>
4231     </p>
4232     <table border="1" width="100%">
4233     <tr>
4234     <th width="10%">NAME</th>
4235     <th width="8%">TYPE</th>
4236     <th width="4%">VALUE</th>
4237     <th>DESCRIPTION</th>
4238     <th width="10%">GUARD</th>
4239     </tr>
4240     <tr>
4241     <td>name</td>
4242     <td>username</td>
4243     <td> </td>
4244     <td>
4245    
4246      
4247     </td>
4248     <td>
4249     <b></b>
4250      
4251     </td>
4252     </tr>
4253     <tr>
4254     <td>message</td>
4255     <td>CONSTANT</td>
4256     <td>The user "%s" has been successfully updated. </td>
4257     <td>
4258    
4259      
4260     </td>
4261     <td>
4262     <b></b>
4263      
4264     </td>
4265     </tr>
4266     </table>
4267    
4268     <h4>
4269     <a name="S000b"></a>ORIGIN: SERVER;
4270     MESSAGE: upd_userinfo_result</h4>
4271     NUMERIC TYPE (hex): 000b<p>
4272     </p>
4273     <table border="1" width="100%">
4274     <tr>
4275     <th width="10%">NAME</th>
4276     <th width="8%">TYPE</th>
4277     <th width="4%">VALUE</th>
4278     <th>DESCRIPTION</th>
4279     <th width="10%">GUARD</th>
4280     </tr>
4281     <tr>
4282     <td>name</td>
4283     <td>username</td>
4284     <td> </td>
4285     <td>
4286    
4287      
4288     </td>
4289     <td>
4290     <b></b>
4291      
4292     </td>
4293     </tr>
4294     <tr>
4295     <td>message</td>
4296     <td>CONSTANT</td>
4297     <td>There is no user "%s". Update failed. </td>
4298     <td>
4299    
4300      
4301     </td>
4302     <td>
4303     <b></b>
4304      
4305     </td>
4306     </tr>
4307     </table>
4308    
4309     <h4>
4310     <a name="S0012"></a>ORIGIN: SERVER;
4311     MESSAGE: userinfo_failed</h4>
4312     NUMERIC TYPE (hex): 0012<p>
4313     <p>Sent when no userinfo for the requested user could be found(?)</p>
4314     </p>
4315     <table border="1" width="100%">
4316     <tr>
4317     <th width="10%">NAME</th>
4318     <th width="8%">TYPE</th>
4319     <th width="4%">VALUE</th>
4320     <th>DESCRIPTION</th>
4321     <th width="10%">GUARD</th>
4322     </tr>
4323     <tr>
4324     <td>name</td>
4325     <td>username</td>
4326     <td> </td>
4327     <td>
4328    
4329      
4330     </td>
4331     <td>
4332     <b></b>
4333      
4334     </td>
4335     </tr>
4336     </table>
4337    
4338     <h4>
4339 pcg 1.32 <a name="S0013"></a>ORIGIN: SERVER;
4340     MESSAGE: msg_chat</h4>
4341 pcg 1.17 NUMERIC TYPE (hex): 0013<p>
4342     </p>
4343     <table border="1" width="100%">
4344     <tr>
4345     <th width="10%">NAME</th>
4346 pcg 1.37 <th width="8%">TYPE</th>
4347     <th width="4%">VALUE</th>
4348 pcg 1.17 <th>DESCRIPTION</th>
4349 pcg 1.37 <th width="10%">GUARD</th>
4350 pcg 1.1 </tr>
4351     <tr>
4352 pcg 1.34 <td>name</td>
4353 pcg 1.3 <td>username</td>
4354 pcg 1.17 <td> </td>
4355 pcg 1.3 <td>
4356 pcg 1.36 Name of sender (either yourself (echo) or other)
4357 pcg 1.17
4358      
4359     </td>
4360     <td>
4361     <b></b>
4362      
4363     </td>
4364 pcg 1.1 </tr>
4365     <tr>
4366 pcg 1.34 <td>name2</td>
4367 pcg 1.3 <td>username</td>
4368 pcg 1.17 <td> </td>
4369     <td>
4370 pcg 1.36 Name of recipient.
4371 pcg 1.17
4372      
4373     </td>
4374 pcg 1.3 <td>
4375 pcg 1.17 <b></b>
4376      
4377     </td>
4378 pcg 1.1 </tr>
4379     <tr>
4380     <td>message</td>
4381     <td>STRING</td>
4382 pcg 1.17 <td> </td>
4383 pcg 1.3 <td>
4384 pcg 1.17
4385      
4386     </td>
4387     <td>
4388     <b></b>
4389      
4390     </td>
4391 pcg 1.1 </tr>
4392     </table>
4393    
4394 pcg 1.17 <h4>
4395 pcg 1.32 <a name="S0015"></a>ORIGIN: SERVER;
4396     MESSAGE: stats</h4>
4397 pcg 1.17 NUMERIC TYPE (hex): 0015
4398     (possibly in response to
4399 pcg 1.32 <a href="#C0014">req_stats(0014)</a>
4400 pcg 1.17 )
4401     <p>
4402     </p>
4403     <table border="1" width="100%">
4404     <tr>
4405     <th width="10%">NAME</th>
4406 pcg 1.37 <th width="8%">TYPE</th>
4407     <th width="4%">VALUE</th>
4408 pcg 1.17 <th>DESCRIPTION</th>
4409 pcg 1.37 <th width="10%">GUARD</th>
4410 pcg 1.1 </tr>
4411     <tr>
4412     <td>ver_major</td>
4413 pcg 1.3 <td>U16</td>
4414 pcg 1.17 <td> </td>
4415 pcg 1.3 <td>
4416 pcg 1.17
4417      
4418     </td>
4419     <td>
4420     <b></b>
4421      
4422     </td>
4423 pcg 1.1 </tr>
4424     <tr>
4425     <td>ver_minor</td>
4426 pcg 1.3 <td>U16</td>
4427 pcg 1.17 <td> </td>
4428     <td>
4429    
4430      
4431     </td>
4432 pcg 1.3 <td>
4433 pcg 1.17 <b></b>
4434      
4435     </td>
4436 pcg 1.1 </tr>
4437     <tr>
4438     <td>ver_micro</td>
4439 pcg 1.3 <td>U16</td>
4440 pcg 1.17 <td> </td>
4441 pcg 1.3 <td>
4442 pcg 1.17
4443      
4444     </td>
4445     <td>
4446     <b></b>
4447      
4448     </td>
4449 pcg 1.1 </tr>
4450     <tr>
4451     <td>boot_time</td>
4452 pcg 1.14 <td>timestamp</td>
4453 pcg 1.17 <td> </td>
4454     <td>
4455    
4456      
4457     </td>
4458 pcg 1.3 <td>
4459 pcg 1.17 <b></b>
4460      
4461     </td>
4462 pcg 1.1 </tr>
4463     <tr>
4464     <td>users_cur</td>
4465 pcg 1.3 <td>U32</td>
4466 pcg 1.17 <td> </td>
4467 pcg 1.3 <td>
4468 pcg 1.17
4469      
4470     </td>
4471     <td>
4472     <b></b>
4473      
4474     </td>
4475 pcg 1.1 </tr>
4476     <tr>
4477     <td>users_max</td>
4478 pcg 1.3 <td>U32</td>
4479 pcg 1.17 <td> </td>
4480     <td>
4481    
4482      
4483     </td>
4484 pcg 1.3 <td>
4485 pcg 1.17 <b></b>
4486      
4487     </td>
4488 pcg 1.1 </tr>
4489     <tr>
4490     <td>users_lim</td>
4491 pcg 1.3 <td>U32</td>
4492 pcg 1.17 <td> </td>
4493 pcg 1.3 <td>
4494 pcg 1.17
4495      
4496     </td>
4497     <td>
4498     <b></b>
4499      
4500     </td>
4501 pcg 1.1 </tr>
4502     <tr>
4503     <td>accts_cur</td>
4504 pcg 1.3 <td>U32</td>
4505 pcg 1.17 <td> </td>
4506     <td>
4507    
4508      
4509     </td>
4510 pcg 1.3 <td>
4511 pcg 1.17 <b></b>
4512      
4513     </td>
4514 pcg 1.1 </tr>
4515     <tr>
4516     <td>accts_max</td>
4517 pcg 1.3 <td>U32</td>
4518 pcg 1.17 <td> </td>
4519 pcg 1.3 <td>
4520 pcg 1.17
4521      
4522     </td>
4523     <td>
4524     <b></b>
4525      
4526     </td>
4527 pcg 1.1 </tr>
4528     <tr>
4529     <td>unknown1</td>
4530 pcg 1.3 <td>U32</td>
4531 pcg 1.17 <td> </td>
4532     <td>
4533    
4534      
4535     </td>
4536 pcg 1.3 <td>
4537 pcg 1.17 <b></b>
4538      
4539     </td>
4540 pcg 1.1 </tr>
4541     <tr>
4542     <td>work_max</td>
4543 pcg 1.3 <td>U32</td>
4544 pcg 1.17 <td> </td>
4545 pcg 1.3 <td>
4546 pcg 1.17
4547      
4548     </td>
4549     <td>
4550     <b></b>
4551      
4552     </td>
4553 pcg 1.1 </tr>
4554     <tr>
4555     <td>rooms_cur</td>
4556 pcg 1.3 <td>U32</td>
4557 pcg 1.17 <td> </td>
4558     <td>
4559    
4560      
4561     </td>
4562 pcg 1.3 <td>
4563 pcg 1.17 <b></b>
4564      
4565     </td>
4566 pcg 1.1 </tr>
4567     <tr>
4568     <td>rooms_max</td>
4569 pcg 1.3 <td>U32</td>
4570 pcg 1.17 <td> </td>
4571 pcg 1.3 <td>
4572 pcg 1.17
4573      
4574     </td>
4575     <td>
4576     <b></b>
4577      
4578     </td>
4579 pcg 1.1 </tr>
4580     <tr>
4581     <td>rooms_lim</td>
4582 pcg 1.3 <td>U32</td>
4583 pcg 1.17 <td> </td>
4584     <td>
4585    
4586      
4587     </td>
4588 pcg 1.3 <td>
4589 pcg 1.17 <b></b>
4590      
4591     </td>
4592 pcg 1.1 </tr>
4593     <tr>
4594     <td>games_cur</td>
4595 pcg 1.3 <td>U32</td>
4596 pcg 1.17 <td> </td>
4597 pcg 1.3 <td>
4598 pcg 1.17
4599      
4600     </td>
4601     <td>
4602     <b></b>
4603      
4604     </td>
4605 pcg 1.1 </tr>
4606     <tr>
4607     <td>games_max</td>
4608 pcg 1.3 <td>U32</td>
4609 pcg 1.17 <td> </td>
4610     <td>
4611    
4612      
4613     </td>
4614 pcg 1.3 <td>
4615 pcg 1.17 <b></b>
4616      
4617     </td>
4618 pcg 1.1 </tr>
4619     <tr>
4620     <td>games_lim</td>
4621 pcg 1.3 <td>U32</td>
4622 pcg 1.17 <td> </td>
4623 pcg 1.3 <td>
4624 pcg 1.17
4625      
4626     </td>
4627     <td>
4628     <b></b>
4629      
4630     </td>
4631 pcg 1.1 </tr>
4632     <tr>
4633     <td>results_cur</td>
4634 pcg 1.3 <td>U32</td>
4635 pcg 1.17 <td> </td>
4636     <td>
4637    
4638      
4639     </td>
4640 pcg 1.3 <td>
4641 pcg 1.17 <b></b>
4642      
4643     </td>
4644 pcg 1.1 </tr>
4645     <tr>
4646     <td>results_max</td>
4647 pcg 1.3 <td>U32</td>
4648 pcg 1.17 <td> </td>
4649 pcg 1.3 <td>
4650 pcg 1.17
4651      
4652     </td>
4653     <td>
4654     <b></b>
4655      
4656     </td>
4657 pcg 1.1 </tr>
4658     <tr>
4659     <td>unknown2</td>
4660 pcg 1.3 <td>U32</td>
4661 pcg 1.17 <td> </td>
4662     <td>
4663    
4664      
4665     </td>
4666 pcg 1.3 <td>
4667 pcg 1.17 <b></b>
4668      
4669     </td>
4670 pcg 1.1 </tr>
4671     <tr>
4672     <td>params_cur</td>
4673 pcg 1.3 <td>U32</td>
4674 pcg 1.17 <td> </td>
4675 pcg 1.3 <td>
4676 pcg 1.17
4677      
4678     </td>
4679     <td>
4680     <b></b>
4681      
4682     </td>
4683 pcg 1.1 </tr>
4684     <tr>
4685     <td>params_max</td>
4686 pcg 1.3 <td>U32</td>
4687 pcg 1.17 <td> </td>
4688     <td>
4689    
4690      
4691     </td>
4692 pcg 1.3 <td>
4693 pcg 1.17 <b></b>
4694      
4695     </td>
4696 pcg 1.1 </tr>
4697     <tr>
4698     <td>bytes_in</td>
4699 pcg 1.3 <td>U64</td>
4700 pcg 1.17 <td> </td>
4701 pcg 1.3 <td>
4702 pcg 1.17
4703      
4704     </td>
4705     <td>
4706     <b></b>
4707      
4708     </td>
4709 pcg 1.1 </tr>
4710     <tr>
4711     <td>packets_in</td>
4712 pcg 1.3 <td>U64</td>
4713 pcg 1.17 <td> </td>
4714     <td>
4715    
4716      
4717     </td>
4718 pcg 1.3 <td>
4719 pcg 1.17 <b></b>
4720      
4721     </td>
4722 pcg 1.1 </tr>
4723     <tr>
4724     <td>bytes_out</td>
4725 pcg 1.17 <td>U64</td>
4726     <td> </td>
4727     <td>
4728    
4729      
4730     </td>
4731 pcg 1.3 <td>
4732 pcg 1.17 <b></b>
4733      
4734     </td>
4735 pcg 1.1 </tr>
4736     <tr>
4737     <td>packets_out</td>
4738 pcg 1.3 <td>U64</td>
4739 pcg 1.17 <td> </td>
4740 pcg 1.3 <td>
4741 pcg 1.17
4742      
4743     </td>
4744     <td>
4745     <b></b>
4746      
4747     </td>
4748 pcg 1.1 </tr>
4749     </table>
4750    
4751 pcg 1.17 <h4>
4752 pcg 1.32 <a name="S0016"></a>ORIGIN: SERVER;
4753     MESSAGE: idle_warn</h4>
4754 pcg 1.29 NUMERIC TYPE (hex): 0016
4755     (possibly in response to
4756 pcg 1.32 <a href="#C0016">idle_reset(0016)</a>
4757 pcg 1.29 )
4758     <p>
4759 pcg 1.17 idle warning, autologout soon (10 minutes...)
4760     </p>
4761     <table border="1" width="100%">
4762 pcg 1.1 <tr>
4763 pcg 1.17 <th width="10%">NAME</th>
4764 pcg 1.37 <th width="8%">TYPE</th>
4765     <th width="4%">VALUE</th>
4766 pcg 1.17 <th>DESCRIPTION</th>
4767 pcg 1.37 <th width="10%">GUARD</th>
4768 pcg 1.1 </tr>
4769     </table>
4770    
4771 pcg 1.17 <h4>
4772 pcg 1.34 <a name="S0018"></a>ORIGIN: SERVER;
4773     MESSAGE: login</h4>
4774     NUMERIC TYPE (hex): 0018
4775     (possibly in response to
4776     <a href="#C0000">login(0000)</a>
4777     )
4778     <p>
4779     </p>
4780     <table border="1" width="100%">
4781     <tr>
4782     <th width="10%">NAME</th>
4783 pcg 1.37 <th width="8%">TYPE</th>
4784     <th width="4%">VALUE</th>
4785 pcg 1.34 <th>DESCRIPTION</th>
4786 pcg 1.37 <th width="10%">GUARD</th>
4787 pcg 1.34 </tr>
4788     <tr>
4789 pcg 1.40 <td>message</td>
4790 pcg 1.34 <td>CONSTANT</td>
4791 pcg 1.40 <td>logged out: another client logged in with your username </td>
4792 pcg 1.34 <td>
4793    
4794      
4795     </td>
4796     <td>
4797     <b></b>
4798      
4799     </td>
4800     </tr>
4801     </table>
4802    
4803     <h4>
4804 pcg 1.40 <a name="S001c"></a>ORIGIN: SERVER;
4805 pcg 1.34 MESSAGE: login</h4>
4806 pcg 1.40 NUMERIC TYPE (hex): 001c
4807 pcg 1.34 (possibly in response to
4808     <a href="#C0000">login(0000)</a>
4809     )
4810     <p>
4811     </p>
4812     <table border="1" width="100%">
4813     <tr>
4814     <th width="10%">NAME</th>
4815 pcg 1.37 <th width="8%">TYPE</th>
4816     <th width="4%">VALUE</th>
4817 pcg 1.34 <th>DESCRIPTION</th>
4818 pcg 1.37 <th width="10%">GUARD</th>
4819 pcg 1.34 </tr>
4820     <tr>
4821 pcg 1.40 <td>message</td>
4822     <td>CONSTANT</td>
4823     <td>logged out: idle for too long </td>
4824 pcg 1.34 <td>
4825 pcg 1.40
4826 pcg 1.34  
4827     </td>
4828     <td>
4829     <b></b>
4830      
4831     </td>
4832     </tr>
4833 pcg 1.40 </table>
4834    
4835     <h4>
4836     <a name="S0020"></a>ORIGIN: SERVER;
4837     MESSAGE: error</h4>
4838     NUMERIC TYPE (hex): 0020<p>
4839     </p>
4840     <table border="1" width="100%">
4841     <tr>
4842     <th width="10%">NAME</th>
4843     <th width="8%">TYPE</th>
4844     <th width="4%">VALUE</th>
4845     <th>DESCRIPTION</th>
4846     <th width="10%">GUARD</th>
4847     </tr>
4848 pcg 1.34 <tr>
4849 pcg 1.40 <td>message</td>
4850 pcg 1.34 <td>CONSTANT</td>
4851 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>
4852 pcg 1.34 <td>
4853    
4854      
4855     </td>
4856     <td>
4857     <b></b>
4858      
4859     </td>
4860     </tr>
4861     </table>
4862    
4863     <h4>
4864 pcg 1.40 <a name="S0022"></a>ORIGIN: SERVER;
4865     MESSAGE: login</h4>
4866     NUMERIC TYPE (hex): 0022
4867     (possibly in response to
4868     <a href="#C0000">login(0000)</a>
4869     )
4870     <p>
4871     I was blocked sooo many times for developing this client that it was
4872     easy to figure out. The KGS admins sure need no extra nazi training
4873     :(
4874     </p>
4875     <table border="1" width="100%">
4876     <tr>
4877     <th width="10%">NAME</th>
4878     <th width="8%">TYPE</th>
4879     <th width="4%">VALUE</th>
4880     <th>DESCRIPTION</th>
4881     <th width="10%">GUARD</th>
4882     </tr>
4883     <tr>
4884     <td>reason</td>
4885     <td>STRING</td>
4886     <td> </td>
4887     <td>
4888    
4889      
4890     </td>
4891     <td>
4892     <b></b>
4893      
4894     </td>
4895     </tr>
4896     <tr>
4897     <td>result</td>
4898     <td>CONSTANT</td>
4899     <td>user or ip blocked </td>
4900     <td>
4901    
4902      
4903     </td>
4904     <td>
4905     <b></b>
4906      
4907     </td>
4908     </tr>
4909     </table>
4910    
4911     <h4>
4912     <a name="S001b"></a>ORIGIN: SERVER;
4913     MESSAGE: timewarning_default</h4>
4914     NUMERIC TYPE (hex): 001b
4915 pcg 1.17 (possibly in response to
4916 pcg 1.32 <a href="#C0000">login(0000)</a>
4917 pcg 1.17 )
4918     <p>
4919     WILD guess
4920     </p>
4921     <table border="1" width="100%">
4922 pcg 1.1 <tr>
4923 pcg 1.17 <th width="10%">NAME</th>
4924 pcg 1.37 <th width="8%">TYPE</th>
4925     <th width="4%">VALUE</th>
4926 pcg 1.17 <th>DESCRIPTION</th>
4927 pcg 1.37 <th width="10%">GUARD</th>
4928 pcg 1.1 </tr>
4929     <tr>
4930     <td>channel</td>
4931 pcg 1.3 <td>U16</td>
4932 pcg 1.17 <td> </td>
4933     <td>
4934    
4935      
4936     </td>
4937 pcg 1.3 <td>
4938 pcg 1.17 <b></b>
4939      
4940     </td>
4941 pcg 1.1 </tr>
4942     <tr>
4943     <td>time</td>
4944 pcg 1.3 <td>U16</td>
4945 pcg 1.17 <td> </td>
4946     <td>
4947    
4948      
4949     </td>
4950 pcg 1.3 <td>
4951 pcg 1.17 <b></b>
4952      
4953     </td>
4954 pcg 1.1 </tr>
4955     </table>
4956    
4957 pcg 1.17 <h4>
4958 pcg 1.32 <a name="S001c"></a>ORIGIN: SERVER;
4959     MESSAGE: idle_err</h4>
4960 pcg 1.17 NUMERIC TYPE (hex): 001c<p>
4961     autologout
4962     </p>
4963     <table border="1" width="100%">
4964 pcg 1.1 <tr>
4965 pcg 1.17 <th width="10%">NAME</th>
4966 pcg 1.37 <th width="8%">TYPE</th>
4967     <th width="4%">VALUE</th>
4968 pcg 1.17 <th>DESCRIPTION</th>
4969 pcg 1.37 <th width="10%">GUARD</th>
4970 pcg 1.1 </tr>
4971     </table>
4972    
4973 pcg 1.17 <h4>
4974 pcg 1.32 <a name="S001d"></a>ORIGIN: SERVER;
4975     MESSAGE: ping</h4>
4976 pcg 1.17 NUMERIC TYPE (hex): 001d<p>
4977 pcg 1.14 Sent by the server regularly, but not answering them
4978     isn't valid. Strange form of keepalive?
4979 pcg 1.17 </p>
4980     <table border="1" width="100%">
4981     <tr>
4982     <th width="10%">NAME</th>
4983 pcg 1.37 <th width="8%">TYPE</th>
4984     <th width="4%">VALUE</th>
4985 pcg 1.17 <th>DESCRIPTION</th>
4986 pcg 1.37 <th width="10%">GUARD</th>
4987 pcg 1.1 </tr>
4988     </table>
4989    
4990 pcg 1.17 <h4>
4991 pcg 1.32 <a name="S001e"></a>ORIGIN: SERVER;
4992     MESSAGE: usergraph</h4>
4993 pcg 1.17 NUMERIC TYPE (hex): 001e
4994     (possibly in response to
4995 pcg 1.32 <a href="#C001e">req_usergraph(001e)</a>
4996 pcg 1.17 )
4997     <p>
4998     User graph data.
4999     </p>
5000     <table border="1" width="100%">
5001 pcg 1.15 <tr>
5002 pcg 1.17 <th width="10%">NAME</th>
5003 pcg 1.37 <th width="8%">TYPE</th>
5004     <th width="4%">VALUE</th>
5005 pcg 1.17 <th>DESCRIPTION</th>
5006 pcg 1.37 <th width="10%">GUARD</th>
5007 pcg 1.15 </tr>
5008     <tr>
5009 pcg 1.33 <td>name</td>
5010     <td>username</td>
5011     <td> </td>
5012     <td>
5013    
5014      
5015     </td>
5016     <td>
5017     <b></b>
5018      
5019     </td>
5020     </tr>
5021     <tr>
5022 pcg 1.15 <td>data</td>
5023     <td>I16</td>
5024 pcg 1.17 <td> </td>
5025 pcg 1.15 <td>
5026     If empty, no graph is available. The unit seems to
5027     be centi-kyu, with 1 dan == 0, 2 dan == 100, 1 kyu == -100.
5028     There is probably one entry per day, the newest one last.
5029 pcg 1.17
5030      
5031     </td>
5032     <td>
5033     <b></b>
5034      
5035     </td>
5036 pcg 1.15 </tr>
5037     </table>
5038    
5039 pcg 1.17 <h4>
5040 pcg 1.58 <a name="S0021"></a>ORIGIN: SERVER;
5041     MESSAGE: userpic</h4>
5042     NUMERIC TYPE (hex): 0021
5043 pcg 1.17 (possibly in response to
5044 pcg 1.58 <a href="#C0021">req_pic(0021)</a>
5045 pcg 1.17 )
5046     <p>
5047     </p>
5048     <table border="1" width="100%">
5049     <tr>
5050     <th width="10%">NAME</th>
5051 pcg 1.37 <th width="8%">TYPE</th>
5052     <th width="4%">VALUE</th>
5053 pcg 1.17 <th>DESCRIPTION</th>
5054 pcg 1.37 <th width="10%">GUARD</th>
5055 pcg 1.15 </tr>
5056     <tr>
5057 pcg 1.58 <td>name</td>
5058     <td>username</td>
5059     <td> </td>
5060     <td>
5061     Reply to pic_req, contains an image in jpeg format.
5062    
5063      
5064     </td>
5065     <td>
5066     <b></b>
5067      
5068     </td>
5069     </tr>
5070     <tr>
5071     <td>data</td>
5072     <td>DATA</td>
5073     <td> </td>
5074     <td>
5075    
5076      
5077     </td>
5078     <td>
5079     <b></b>
5080      
5081     </td>
5082     </tr>
5083     </table>
5084    
5085     <h4>
5086     <a name="S0025"></a>ORIGIN: SERVER;
5087     MESSAGE: memo_error</h4>
5088     NUMERIC TYPE (hex): 0025<p>
5089     <p>Account unknown.</p>
5090     </p>
5091     <table border="1" width="100%">
5092     <tr>
5093     <th width="10%">NAME</th>
5094     <th width="8%">TYPE</th>
5095     <th width="4%">VALUE</th>
5096     <th>DESCRIPTION</th>
5097     <th width="10%">GUARD</th>
5098     </tr>
5099     <tr>
5100     <td>name</td>
5101     <td>username</td>
5102     <td> </td>
5103     <td>
5104    
5105      
5106     </td>
5107     <td>
5108     <b></b>
5109      
5110     </td>
5111     </tr>
5112     <tr>
5113     <td>cid</td>
5114     <td>clientid</td>
5115     <td> </td>
5116     <td>
5117    
5118      
5119     </td>
5120     <td>
5121     <b></b>
5122      
5123     </td>
5124     </tr>
5125     <tr>
5126     <td>message</td>
5127     <td>CONSTANT</td>
5128     <td>memo send failed: account already exists </td>
5129     <td>
5130    
5131      
5132     </td>
5133     <td>
5134     <b></b>
5135      
5136     </td>
5137     </tr>
5138     <tr>
5139     <td>subtype</td>
5140     <td>CONSTANT</td>
5141     <td>25 </td>
5142     <td>
5143    
5144      
5145     </td>
5146     <td>
5147     <b></b>
5148      
5149     </td>
5150     </tr>
5151     </table>
5152    
5153     <h4>
5154     <a name="S0026"></a>ORIGIN: SERVER;
5155     MESSAGE: memo_error</h4>
5156     NUMERIC TYPE (hex): 0026<p>
5157     <p>Just a guess.</p>
5158     </p>
5159     <table border="1" width="100%">
5160     <tr>
5161     <th width="10%">NAME</th>
5162     <th width="8%">TYPE</th>
5163     <th width="4%">VALUE</th>
5164     <th>DESCRIPTION</th>
5165     <th width="10%">GUARD</th>
5166     </tr>
5167     <tr>
5168     <td>name</td>
5169     <td>username</td>
5170     <td> </td>
5171     <td>
5172    
5173      
5174     </td>
5175     <td>
5176     <b></b>
5177      
5178     </td>
5179     </tr>
5180     <tr>
5181     <td>cid</td>
5182     <td>clientid</td>
5183     <td> </td>
5184     <td>
5185    
5186      
5187     </td>
5188     <td>
5189     <b></b>
5190      
5191     </td>
5192     </tr>
5193     <tr>
5194     <td>message</td>
5195     <td>CONSTANT</td>
5196     <td>memo send failed: error 26 </td>
5197     <td>
5198    
5199      
5200     </td>
5201     <td>
5202     <b></b>
5203      
5204     </td>
5205     </tr>
5206     <tr>
5207     <td>subtype</td>
5208     <td>CONSTANT</td>
5209     <td>26 </td>
5210     <td>
5211    
5212      
5213     </td>
5214     <td>
5215     <b></b>
5216      
5217     </td>
5218     </tr>
5219     </table>
5220    
5221     <h4>
5222     <a name="S0027"></a>ORIGIN: SERVER;
5223     MESSAGE: memo_error</h4>
5224     NUMERIC TYPE (hex): 0027<p>
5225     <p>User is currently online, please use chat.</p>
5226     </p>
5227     <table border="1" width="100%">
5228     <tr>
5229     <th width="10%">NAME</th>
5230     <th width="8%">TYPE</th>
5231     <th width="4%">VALUE</th>
5232     <th>DESCRIPTION</th>
5233     <th width="10%">GUARD</th>
5234     </tr>
5235     <tr>
5236     <td>name</td>
5237     <td>username</td>
5238     <td> </td>
5239     <td>
5240    
5241      
5242     </td>
5243     <td>
5244     <b></b>
5245      
5246     </td>
5247     </tr>
5248     <tr>
5249     <td>cid</td>
5250     <td>clientid</td>
5251 pcg 1.17 <td> </td>
5252     <td>
5253    
5254      
5255     </td>
5256 pcg 1.15 <td>
5257 pcg 1.17 <b></b>
5258      
5259     </td>
5260 pcg 1.15 </tr>
5261     <tr>
5262 pcg 1.58 <td>message</td>
5263     <td>CONSTANT</td>
5264     <td>memo send failed: user is online, use chat </td>
5265     <td>
5266    
5267      
5268     </td>
5269     <td>
5270     <b></b>
5271      
5272     </td>
5273     </tr>
5274     <tr>
5275     <td>subtype</td>
5276     <td>CONSTANT</td>
5277     <td>27 </td>
5278     <td>
5279    
5280      
5281     </td>
5282     <td>
5283     <b></b>
5284      
5285     </td>
5286     </tr>
5287     </table>
5288    
5289     <h4>
5290     <a name="S0028"></a>ORIGIN: SERVER;
5291     MESSAGE: memo_error</h4>
5292     NUMERIC TYPE (hex): 0028<p>
5293     <p>Just a guess.</p>
5294     </p>
5295     <table border="1" width="100%">
5296     <tr>
5297     <th width="10%">NAME</th>
5298     <th width="8%">TYPE</th>
5299     <th width="4%">VALUE</th>
5300     <th>DESCRIPTION</th>
5301     <th width="10%">GUARD</th>
5302     </tr>
5303     <tr>
5304     <td>name</td>
5305     <td>username</td>
5306 pcg 1.17 <td> </td>
5307     <td>
5308    
5309      
5310     </td>
5311 pcg 1.15 <td>
5312 pcg 1.17 <b></b>
5313      
5314     </td>
5315 pcg 1.15 </tr>
5316     <tr>
5317 pcg 1.58 <td>cid</td>
5318     <td>clientid</td>
5319 pcg 1.17 <td> </td>
5320     <td>
5321    
5322      
5323     </td>
5324 pcg 1.15 <td>
5325 pcg 1.17 <b></b>
5326      
5327     </td>
5328 pcg 1.15 </tr>
5329     <tr>
5330 pcg 1.58 <td>message</td>
5331     <td>CONSTANT</td>
5332     <td>memo send failed: error 28 </td>
5333     <td>
5334    
5335      
5336     </td>
5337     <td>
5338     <b></b>
5339      
5340     </td>
5341     </tr>
5342     <tr>
5343     <td>subtype</td>
5344     <td>CONSTANT</td>
5345     <td>28 </td>
5346     <td>
5347    
5348      
5349     </td>
5350     <td>
5351     <b></b>
5352      
5353     </td>
5354     </tr>
5355     </table>
5356    
5357     <h4>
5358     <a name="S0029"></a>ORIGIN: SERVER;
5359     MESSAGE: memo</h4>
5360     NUMERIC TYPE (hex): 0029<p>
5361     </p>
5362     <table border="1" width="100%">
5363     <tr>
5364     <th width="10%">NAME</th>
5365     <th width="8%">TYPE</th>
5366     <th width="4%">VALUE</th>
5367     <th>DESCRIPTION</th>
5368     <th width="10%">GUARD</th>
5369     </tr>
5370     <tr>
5371     <td>name</td>
5372     <td>username</td>
5373 pcg 1.17 <td> </td>
5374     <td>
5375    
5376      
5377     </td>
5378 pcg 1.15 <td>
5379 pcg 1.17 <b></b>
5380      
5381     </td>
5382 pcg 1.15 </tr>
5383     <tr>
5384 pcg 1.58 <td>time</td>
5385     <td>timestamp</td>
5386 pcg 1.17 <td> </td>
5387     <td>
5388    
5389      
5390     </td>
5391 pcg 1.15 <td>
5392 pcg 1.17 <b></b>
5393      
5394     </td>
5395 pcg 1.15 </tr>
5396     <tr>
5397 pcg 1.58 <td>message</td>
5398 pcg 1.48 <td>ZSTRING</td>
5399 pcg 1.17 <td> </td>
5400     <td>
5401    
5402      
5403     </td>
5404 pcg 1.15 <td>
5405 pcg 1.17 <b></b>
5406      
5407     </td>
5408 pcg 1.15 </tr>
5409     </table>
5410    
5411 pcg 1.17 <h4>
5412 pcg 1.58 <a name="S002a"></a>ORIGIN: SERVER;
5413     MESSAGE: memo_sent</h4>
5414     NUMERIC TYPE (hex): 002a<p>
5415     <p>The memo was sent successfully</p>
5416     </p>
5417 pcg 1.17 <table border="1" width="100%">
5418     <tr>
5419     <th width="10%">NAME</th>
5420 pcg 1.37 <th width="8%">TYPE</th>
5421     <th width="4%">VALUE</th>
5422 pcg 1.17 <th>DESCRIPTION</th>
5423 pcg 1.37 <th width="10%">GUARD</th>
5424 pcg 1.1 </tr>
5425     <tr>
5426     <td>name</td>
5427 pcg 1.3 <td>username</td>
5428 pcg 1.17 <td> </td>
5429 pcg 1.3 <td>
5430 pcg 1.17
5431      
5432     </td>
5433     <td>
5434     <b></b>
5435      
5436     </td>
5437 pcg 1.1 </tr>
5438     <tr>
5439 pcg 1.58 <td>cid</td>
5440     <td>clientid</td>
5441 pcg 1.17 <td> </td>
5442     <td>
5443    
5444      
5445     </td>
5446 pcg 1.3 <td>
5447 pcg 1.17 <b></b>
5448      
5449     </td>
5450 pcg 1.1 </tr>
5451     </table>
5452    
5453 pcg 1.17 <h4>
5454 pcg 1.32 <a name="S0100"></a>ORIGIN: SERVER;
5455     MESSAGE: gnotice</h4>
5456 pcg 1.17 NUMERIC TYPE (hex): 0100
5457     (possibly in response to
5458 pcg 1.32 <a href="#C0100">gnotice(0100)</a>
5459 pcg 1.17 )
5460     <p>
5461     global notice, sent to everybody
5462     </p>
5463     <table border="1" width="100%">
5464 pcg 1.1 <tr>
5465 pcg 1.17 <th width="10%">NAME</th>
5466 pcg 1.37 <th width="8%">TYPE</th>
5467     <th width="4%">VALUE</th>
5468 pcg 1.17 <th>DESCRIPTION</th>
5469 pcg 1.37 <th width="10%">GUARD</th>
5470 pcg 1.1 </tr>
5471     <tr>
5472     <td>notice</td>
5473     <td>STRING</td>
5474 pcg 1.17 <td> </td>
5475     <td>
5476    
5477      
5478     </td>
5479 pcg 1.3 <td>
5480 pcg 1.17 <b></b>
5481      
5482     </td>
5483 pcg 1.1 </tr>
5484     </table>
5485    
5486 pcg 1.17 <h4>
5487 pcg 1.32 <a name="S0202"></a>ORIGIN: SERVER;
5488 pcg 1.33 MESSAGE: notify_event</h4>
5489 pcg 1.17 NUMERIC TYPE (hex): 0202<p>
5490 pcg 1.15 # maybe soe notify? Totally unclear.
5491 pcg 1.37 # loc 0" type="userinfo, flags etc. loc 1 =&gt; gameinfo?, loc 2 =&gt; game result (more data)
5492 pcg 1.17 </p>
5493     <table border="1" width="100%">
5494     <tr>
5495     <th width="10%">NAME</th>
5496 pcg 1.37 <th width="8%">TYPE</th>
5497     <th width="4%">VALUE</th>
5498 pcg 1.17 <th>DESCRIPTION</th>
5499 pcg 1.37 <th width="10%">GUARD</th>
5500 pcg 1.14 </tr>
5501     <tr>
5502 pcg 1.33 <td>event</td>
5503 pcg 1.14 <td>U32</td>
5504 pcg 1.17 <td> </td>
5505     <td>
5506    
5507      
5508     </td>
5509 pcg 1.14 <td>
5510 pcg 1.17 <b></b>
5511      
5512     </td>
5513 pcg 1.14 </tr>
5514     <tr>
5515     <td>user</td>
5516     <td>user</td>
5517 pcg 1.17 <td> </td>
5518     <td>
5519    
5520      
5521     </td>
5522 pcg 1.14 <td>
5523 pcg 1.17 <b></b>
5524      
5525     </td>
5526 pcg 1.14 </tr>
5527     <tr>
5528 pcg 1.34 <td>gamerecord</td>
5529 pcg 1.33 <td>game_record</td>
5530 pcg 1.17 <td> </td>
5531     <td>
5532 pcg 1.33
5533 pcg 1.17  
5534     </td>
5535 pcg 1.14 <td>
5536 pcg 1.33 <b>event</b> == 2
5537 pcg 1.17  
5538     </td>
5539 pcg 1.14 </tr>
5540     </table>
5541 pcg 1.1
5542 pcg 1.17 <h4>
5543 pcg 1.58 <a name="S030c"></a>ORIGIN: SERVER;
5544     MESSAGE: unknown_030c</h4>
5545     NUMERIC TYPE (hex): 030c<p>
5546     <p>Not the slightest... No payload, either.</p>
5547     </p>
5548     <table border="1" width="100%">
5549     <tr>
5550     <th width="10%">NAME</th>
5551     <th width="8%">TYPE</th>
5552     <th width="4%">VALUE</th>
5553     <th>DESCRIPTION</th>
5554     <th width="10%">GUARD</th>
5555     </tr>
5556     </table>
5557    
5558     <h4>
5559 pcg 1.32 <a name="S0310"></a>ORIGIN: SERVER;
5560     MESSAGE: priv_room</h4>
5561 pcg 1.17 NUMERIC TYPE (hex): 0310<p>
5562     "permission denied" when joining a room
5563     </p>
5564     <table border="1" width="100%">
5565 pcg 1.1 <tr>
5566 pcg 1.17 <th width="10%">NAME</th>
5567 pcg 1.37 <th width="8%">TYPE</th>
5568     <th width="4%">VALUE</th>
5569 pcg 1.17 <th>DESCRIPTION</th>
5570 pcg 1.37 <th width="10%">GUARD</th>
5571 pcg 1.1 </tr>
5572     <tr>
5573     <td>name</td>
5574     <td>STRING</td>
5575 pcg 1.17 <td> </td>
5576 pcg 1.3 <td>
5577 pcg 1.17
5578      
5579     </td>
5580     <td>
5581     <b></b>
5582      
5583     </td>
5584 pcg 1.1 </tr>
5585     </table>
5586    
5587 pcg 1.17 <h4>
5588 pcg 1.32 <a name="S0318"></a>ORIGIN: SERVER;
5589     MESSAGE: upd_rooms</h4>
5590 pcg 1.17 NUMERIC TYPE (hex): 0318
5591     (possibly in response to
5592 pcg 1.32 <a href="#C0318">list_rooms(0318)</a>
5593 pcg 1.17 )
5594     <p>
5595     </p>
5596     <table border="1" width="100%">
5597     <tr>
5598     <th width="10%">NAME</th>
5599 pcg 1.37 <th width="8%">TYPE</th>
5600     <th width="4%">VALUE</th>
5601 pcg 1.17 <th>DESCRIPTION</th>
5602 pcg 1.37 <th width="10%">GUARD</th>
5603 pcg 1.1 </tr>
5604     <tr>
5605     <td>rooms</td>
5606     <td>room</td>
5607 pcg 1.17 <td> </td>
5608 pcg 1.3 <td>
5609 pcg 1.17
5610      
5611     </td>
5612     <td>
5613     <b></b>
5614      
5615     </td>
5616 pcg 1.1 </tr>
5617     </table>
5618    
5619 pcg 1.17 <h4>
5620 pcg 1.32 <a name="S0411"></a>ORIGIN: SERVER;
5621     MESSAGE: chal_defaults</h4>
5622 pcg 1.17 NUMERIC TYPE (hex): 0411
5623     (possibly in response to
5624 pcg 1.32 <a href="#C0000">login(0000)</a>
5625 pcg 1.17 )
5626     <p>
5627     </p>
5628     <table border="1" width="100%">
5629     <tr>
5630     <th width="10%">NAME</th>
5631 pcg 1.37 <th width="8%">TYPE</th>
5632     <th width="4%">VALUE</th>
5633 pcg 1.17 <th>DESCRIPTION</th>
5634 pcg 1.37 <th width="10%">GUARD</th>
5635 pcg 1.1 </tr>
5636     <tr>
5637 pcg 1.14 <td>channel</td>
5638 pcg 1.3 <td>U16</td>
5639 pcg 1.17 <td> </td>
5640 pcg 1.3 <td>
5641 pcg 1.17
5642      
5643     </td>
5644     <td>
5645     <b></b>
5646      
5647     </td>
5648 pcg 1.1 </tr>
5649     <tr>
5650 pcg 1.14 <td>defaults</td>
5651     <td>challenge_defaults</td>
5652 pcg 1.17 <td> </td>
5653     <td>
5654    
5655      
5656     </td>
5657 pcg 1.3 <td>
5658 pcg 1.17 <b></b>
5659      
5660     </td>
5661 pcg 1.1 </tr>
5662     </table>
5663    
5664 pcg 1.17 <h4>
5665 pcg 1.32 <a name="S0412"></a>ORIGIN: SERVER;
5666 pcg 1.40 MESSAGE: game_error</h4>
5667 pcg 1.17 NUMERIC TYPE (hex): 0412<p>
5668 pcg 1.40 Unable to create challenge. The channel is be optional.
5669 pcg 1.17 </p>
5670     <table border="1" width="100%">
5671 pcg 1.15 <tr>
5672 pcg 1.17 <th width="10%">NAME</th>
5673 pcg 1.37 <th width="8%">TYPE</th>
5674     <th width="4%">VALUE</th>
5675 pcg 1.17 <th>DESCRIPTION</th>
5676 pcg 1.37 <th width="10%">GUARD</th>
5677 pcg 1.15 </tr>
5678     <tr>
5679 pcg 1.40 <td>message</td>
5680     <td>CONSTANT</td>
5681     <td>Sorry, you are already playing in one game, so you can't start playing in another. </td>
5682     <td>
5683    
5684      
5685     </td>
5686     <td>
5687     <b></b>
5688      
5689     </td>
5690     </tr>
5691     <tr>
5692 pcg 1.15 <td>channel</td>
5693     <td>U16</td>
5694 pcg 1.17 <td> </td>
5695     <td>
5696    
5697      
5698     </td>
5699 pcg 1.15 <td>
5700 pcg 1.17 <b></b>
5701      
5702     </td>
5703 pcg 1.15 </tr>
5704     </table>
5705    
5706 pcg 1.17 <h4>
5707 pcg 1.32 <a name="S0414"></a>ORIGIN: SERVER;
5708     MESSAGE: game_record</h4>
5709 pcg 1.17 NUMERIC TYPE (hex): 0414
5710     (possibly in response to
5711 pcg 1.32 <a href="#C0413">req_game_record(0413)</a>
5712 pcg 1.17 )
5713     <p>
5714     The users game record.
5715     </p>
5716     <table border="1" width="100%">
5717 pcg 1.1 <tr>
5718 pcg 1.17 <th width="10%">NAME</th>
5719 pcg 1.37 <th width="8%">TYPE</th>
5720     <th width="4%">VALUE</th>
5721 pcg 1.17 <th>DESCRIPTION</th>
5722 pcg 1.37 <th width="10%">GUARD</th>
5723 pcg 1.14 </tr>
5724     <tr>
5725     <td>name</td>
5726     <td>username</td>
5727 pcg 1.17 <td> </td>
5728 pcg 1.14 <td>
5729 pcg 1.17
5730      
5731     </td>
5732     <td>
5733     <b></b>
5734      
5735     </td>
5736 pcg 1.14 </tr>
5737     <tr>
5738     <td>more</td>
5739     <td>flag</td>
5740 pcg 1.17 <td> </td>
5741 pcg 1.14 <td>
5742     Wether more games are available (must be requested manually)
5743 pcg 1.17
5744      
5745     </td>
5746     <td>
5747     <b></b>
5748      
5749     </td>
5750 pcg 1.1 </tr>
5751     <tr>
5752 pcg 1.14 <td>games</td>
5753     <td>game_record</td>
5754 pcg 1.17 <td> </td>
5755 pcg 1.3 <td>
5756 pcg 1.17
5757      
5758     </td>
5759     <td>
5760     <b></b>
5761      
5762     </td>
5763 pcg 1.14 </tr>
5764     </table>
5765    
5766 pcg 1.17 <h4>
5767 pcg 1.40 <a name="S0417"></a>ORIGIN: SERVER;
5768     MESSAGE: error</h4>
5769     NUMERIC TYPE (hex): 0417<p>
5770     </p>
5771     <table border="1" width="100%">
5772     <tr>
5773     <th width="10%">NAME</th>
5774     <th width="8%">TYPE</th>
5775     <th width="4%">VALUE</th>
5776     <th>DESCRIPTION</th>
5777     <th width="10%">GUARD</th>
5778     </tr>
5779     <tr>
5780     <td>message</td>
5781     <td>CONSTANT</td>
5782     <td>Sorry, your opponent is currently not logged in, so you can't resume this game. </td>
5783     <td>
5784    
5785      
5786     </td>
5787     <td>
5788     <b></b>
5789      
5790     </td>
5791     </tr>
5792     </table>
5793    
5794     <h4>
5795     <a name="S0418"></a>ORIGIN: SERVER;
5796     MESSAGE: error</h4>
5797     NUMERIC TYPE (hex): 0418<p>
5798     </p>
5799     <table border="1" width="100%">
5800     <tr>
5801     <th width="10%">NAME</th>
5802     <th width="8%">TYPE</th>
5803     <th width="4%">VALUE</th>
5804     <th>DESCRIPTION</th>
5805     <th width="10%">GUARD</th>
5806     </tr>
5807     <tr>
5808     <td>message</td>
5809     <td>CONSTANT</td>
5810     <td>Sorry, your opponent is already playing in a game, so you cannot continue this one. </td>
5811     <td>
5812    
5813      
5814     </td>
5815     <td>
5816     <b></b>
5817      
5818     </td>
5819     </tr>
5820     </table>
5821    
5822     <h4>
5823     <a name="S0419"></a>ORIGIN: SERVER;
5824     MESSAGE: error</h4>
5825     NUMERIC TYPE (hex): 0419<p>
5826     </p>
5827     <table border="1" width="100%">
5828     <tr>
5829     <th width="10%">NAME</th>
5830     <th width="8%">TYPE</th>
5831     <th width="4%">VALUE</th>
5832     <th>DESCRIPTION</th>
5833     <th width="10%">GUARD</th>
5834     </tr>
5835     <tr>
5836     <td>message</td>
5837     <td>CONSTANT</td>
5838     <td>Sorry, the server is out of boards! Please wait a few minutes and try to start a game again. </td>
5839     <td>
5840    
5841      
5842     </td>
5843     <td>
5844     <b></b>
5845      
5846     </td>
5847     </tr>
5848     </table>
5849    
5850     <h4>
5851 pcg 1.32 <a name="S041c"></a>ORIGIN: SERVER;
5852     MESSAGE: upd_game2</h4>
5853 pcg 1.17 NUMERIC TYPE (hex): 041c<p>
5854     Unclear.
5855     </p>
5856     <table border="1" width="100%">
5857 pcg 1.14 <tr>
5858 pcg 1.17 <th width="10%">NAME</th>
5859 pcg 1.37 <th width="8%">TYPE</th>
5860     <th width="4%">VALUE</th>
5861 pcg 1.17 <th>DESCRIPTION</th>
5862 pcg 1.37 <th width="10%">GUARD</th>
5863 pcg 1.1 </tr>
5864     <tr>
5865 pcg 1.14 <td>channel_junk</td>
5866     <td>U16</td>
5867 pcg 1.17 <td> </td>
5868     <td>
5869    
5870      
5871     </td>
5872 pcg 1.3 <td>
5873 pcg 1.17 <b></b>
5874      
5875     </td>
5876 pcg 1.1 </tr>
5877     <tr>
5878 pcg 1.14 <td>game</td>
5879     <td>game</td>
5880 pcg 1.17 <td> </td>
5881     <td>
5882    
5883      
5884     </td>
5885 pcg 1.3 <td>
5886 pcg 1.17 <b></b>
5887      
5888     </td>
5889 pcg 1.1 </tr>
5890     </table>
5891    
5892 pcg 1.40 <h4>
5893     <a name="S041f"></a>ORIGIN: SERVER;
5894     MESSAGE: error</h4>
5895     NUMERIC TYPE (hex): 041f<p>
5896     </p>
5897     <table border="1" width="100%">
5898     <tr>
5899     <th width="10%">NAME</th>
5900     <th width="8%">TYPE</th>
5901     <th width="4%">VALUE</th>
5902     <th>DESCRIPTION</th>
5903     <th width="10%">GUARD</th>
5904     </tr>
5905     <tr>
5906     <td>message</td>
5907     <td>CONSTANT</td>
5908     <td>Sorry, the game you tried to load was not correctly saved...probably caused by the server crashing. It cannot be recovered. </td>
5909     <td>
5910    
5911      
5912     </td>
5913     <td>
5914     <b></b>
5915      
5916     </td>
5917     </tr>
5918     </table>
5919    
5920     <h4>
5921     <a name="S0420"></a>ORIGIN: SERVER;
5922     MESSAGE: error</h4>
5923     NUMERIC TYPE (hex): 0420<p>
5924     </p>
5925     <table border="1" width="100%">
5926     <tr>
5927     <th width="10%">NAME</th>
5928     <th width="8%">TYPE</th>
5929     <th width="4%">VALUE</th>
5930     <th>DESCRIPTION</th>
5931     <th width="10%">GUARD</th>
5932     </tr>
5933     <tr>
5934     <td>message</td>
5935     <td>CONSTANT</td>
5936     <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>
5937     <td>
5938    
5939      
5940     </td>
5941     <td>
5942     <b></b>
5943      
5944     </td>
5945     </tr>
5946     </table>
5947    
5948     <h4>
5949     <a name="S0421"></a>ORIGIN: SERVER;
5950     MESSAGE: error</h4>
5951     NUMERIC TYPE (hex): 0421<p>
5952     </p>
5953     <table border="1" width="100%">
5954     <tr>
5955     <th width="10%">NAME</th>
5956     <th width="8%">TYPE</th>
5957     <th width="4%">VALUE</th>
5958     <th>DESCRIPTION</th>
5959     <th width="10%">GUARD</th>
5960     </tr>
5961     <tr>
5962     <td>message</td>
5963     <td>CONSTANT</td>
5964     <td>Sorry, this game is a private lesson. You will not be allowed to observe it. </td>
5965     <td>
5966    
5967      
5968     </td>
5969     <td>
5970     <b></b>
5971      
5972     </td>
5973     </tr>
5974     </table>
5975    
5976 pcg 1.44 <!-- added recently -->
5977     <h4>
5978     <a name="S043a"></a>ORIGIN: SERVER;
5979 pcg 1.46 MESSAGE: add_global_challenge</h4>
5980 pcg 1.44 NUMERIC TYPE (hex): 043a<p>
5981 pcg 1.46 <p>
5982     Adds or updates a global challenge (open game list).
5983 pcg 1.44 </p>
5984 pcg 1.46 </p>
5985 pcg 1.44 <table border="1" width="100%">
5986     <tr>
5987     <th width="10%">NAME</th>
5988     <th width="8%">TYPE</th>
5989     <th width="4%">VALUE</th>
5990     <th>DESCRIPTION</th>
5991     <th width="10%">GUARD</th>
5992     </tr>
5993     <tr>
5994     <td>channel</td>
5995     <td>U16</td>
5996     <td> </td>
5997     <td>
5998    
5999      
6000     </td>
6001     <td>
6002     <b></b>
6003      
6004     </td>
6005     </tr>
6006     <tr>
6007     <td>game</td>
6008     <td>game</td>
6009     <td> </td>
6010     <td>
6011 pcg 1.59
6012 pcg 1.44  
6013     </td>
6014     <td>
6015     <b></b>
6016      
6017     </td>
6018     </tr>
6019     </table>
6020    
6021 pcg 1.1 <h3>Room messages</h3>
6022    
6023     <p>Not all room messages are for rooms only, and rooms need to parse
6024     not only these messages. Orthogonality, what for?</p>
6025    
6026 pcg 1.17 <h4>
6027 pcg 1.32 <a name="S4300"></a>ORIGIN: SERVER;
6028     MESSAGE: join_room</h4>
6029 pcg 1.17 NUMERIC TYPE (hex): 4300
6030     (possibly in response to
6031 pcg 1.32 <a href="#C4300">join_room(4300)</a>
6032 pcg 1.17 )
6033     <p>
6034     </p>
6035     <table border="1" width="100%">
6036     <tr>
6037     <th width="10%">NAME</th>
6038 pcg 1.37 <th width="8%">TYPE</th>
6039     <th width="4%">VALUE</th>
6040 pcg 1.17 <th>DESCRIPTION</th>
6041 pcg 1.37 <th width="10%">GUARD</th>
6042 pcg 1.1 </tr>
6043     <tr>
6044     <td>channel</td>
6045 pcg 1.3 <td>U16</td>
6046 pcg 1.17 <td> </td>
6047     <td>
6048    
6049      
6050     </td>
6051 pcg 1.3 <td>
6052 pcg 1.17 <b></b>
6053      
6054     </td>
6055 pcg 1.1 </tr>
6056     <tr>
6057     <td>users</td>
6058     <td>user</td>
6059 pcg 1.17 <td> </td>
6060     <td>
6061    
6062      
6063     </td>
6064 pcg 1.3 <td>
6065 pcg 1.17 <b></b>
6066      
6067     </td>
6068 pcg 1.1 </tr>
6069     </table>
6070    
6071 pcg 1.17 <h4>
6072 pcg 1.32 <a name="S4301"></a>ORIGIN: SERVER;
6073     MESSAGE: msg_room</h4>
6074 pcg 1.17 NUMERIC TYPE (hex): 4301<p>
6075     </p>
6076     <table border="1" width="100%">
6077 pcg 1.1 <tr>
6078 pcg 1.17 <th width="10%">NAME</th>
6079 pcg 1.37 <th width="8%">TYPE</th>
6080     <th width="4%">VALUE</th>
6081 pcg 1.17 <th>DESCRIPTION</th>
6082 pcg 1.37 <th width="10%">GUARD</th>
6083 pcg 1.1 </tr>
6084     <tr>
6085     <td>channel</td>
6086 pcg 1.3 <td>U16</td>
6087 pcg 1.17 <td> </td>
6088 pcg 1.3 <td>
6089 pcg 1.17
6090      
6091     </td>
6092     <td>
6093     <b></b>
6094      
6095     </td>
6096 pcg 1.1 </tr>
6097     <tr>
6098     <td>name</td>
6099 pcg 1.3 <td>username</td>
6100 pcg 1.17 <td> </td>
6101     <td>
6102    
6103      
6104     </td>
6105 pcg 1.3 <td>
6106 pcg 1.17 <b></b>
6107      
6108     </td>
6109 pcg 1.1 </tr>
6110     <tr>
6111     <td>message</td>
6112     <td>STRING</td>
6113 pcg 1.17 <td> </td>
6114 pcg 1.3 <td>
6115 pcg 1.17
6116      
6117     </td>
6118     <td>
6119     <b></b>
6120      
6121     </td>
6122 pcg 1.1 </tr>
6123     </table>
6124    
6125 pcg 1.17 <h4>
6126 pcg 1.32 <a name="S4302"></a>ORIGIN: SERVER;
6127     MESSAGE: part_room</h4>
6128 pcg 1.17 NUMERIC TYPE (hex): 4302<p>
6129     </p>
6130     <table border="1" width="100%">
6131 pcg 1.1 <tr>
6132 pcg 1.17 <th width="10%">NAME</th>
6133 pcg 1.37 <th width="8%">TYPE</th>
6134     <th width="4%">VALUE</th>
6135 pcg 1.17 <th>DESCRIPTION</th>
6136 pcg 1.37 <th width="10%">GUARD</th>
6137 pcg 1.1 </tr>
6138     <tr>
6139     <td>channel</td>
6140 pcg 1.3 <td>U16</td>
6141 pcg 1.17 <td> </td>
6142     <td>
6143    
6144      
6145     </td>
6146 pcg 1.3 <td>
6147 pcg 1.17 <b></b>
6148      
6149     </td>
6150 pcg 1.1 </tr>
6151     <tr>
6152     <td>user</td>
6153     <td>user</td>
6154 pcg 1.17 <td> </td>
6155     <td>
6156    
6157      
6158     </td>
6159 pcg 1.3 <td>
6160 pcg 1.17 <b></b>
6161      
6162     </td>
6163 pcg 1.1 </tr>
6164     </table>
6165    
6166 pcg 1.17 <h4>
6167 pcg 1.32 <a name="S4303"></a>ORIGIN: SERVER;
6168     MESSAGE: del_room</h4>
6169 pcg 1.17 NUMERIC TYPE (hex): 4303<p>
6170     </p>
6171     <table border="1" width="100%">
6172 pcg 1.1 <tr>
6173 pcg 1.17 <th width="10%">NAME</th>
6174 pcg 1.37 <th width="8%">TYPE</th>
6175     <th width="4%">VALUE</th>
6176 pcg 1.17 <th>DESCRIPTION</th>
6177 pcg 1.37 <th width="10%">GUARD</th>
6178 pcg 1.1 </tr>
6179     <tr>
6180     <td>channel</td>
6181 pcg 1.3 <td>U16</td>
6182 pcg 1.17 <td> </td>
6183 pcg 1.3 <td>
6184 pcg 1.17
6185      
6186     </td>
6187     <td>
6188     <b></b>
6189      
6190     </td>
6191 pcg 1.1 </tr>
6192     </table>
6193    
6194 pcg 1.17 <h4>
6195 pcg 1.32 <a name="S4304"></a>ORIGIN: SERVER;
6196     MESSAGE: upd_games</h4>
6197 pcg 1.17 NUMERIC TYPE (hex): 4304<p>
6198     </p>
6199     <table border="1" width="100%">
6200 pcg 1.1 <tr>
6201 pcg 1.17 <th width="10%">NAME</th>
6202 pcg 1.37 <th width="8%">TYPE</th>
6203     <th width="4%">VALUE</th>
6204 pcg 1.17 <th>DESCRIPTION</th>
6205 pcg 1.37 <th width="10%">GUARD</th>
6206 pcg 1.1 </tr>
6207     <tr>
6208     <td>channel</td>
6209 pcg 1.3 <td>U16</td>
6210 pcg 1.17 <td> </td>
6211     <td>
6212    
6213      
6214     </td>
6215 pcg 1.3 <td>
6216 pcg 1.17 <b></b>
6217      
6218     </td>
6219 pcg 1.1 </tr>
6220     <tr>
6221     <td>games</td>
6222     <td>game</td>
6223 pcg 1.17 <td> </td>
6224     <td>
6225    
6226      
6227     </td>
6228 pcg 1.3 <td>
6229 pcg 1.17 <b></b>
6230      
6231     </td>
6232 pcg 1.1 </tr>
6233     </table>
6234    
6235 pcg 1.17 <h4>
6236 pcg 1.32 <a name="S4319"></a>ORIGIN: SERVER;
6237     MESSAGE: desc_room</h4>
6238 pcg 1.17 NUMERIC TYPE (hex): 4319<p>
6239     </p>
6240     <table border="1" width="100%">
6241 pcg 1.1 <tr>
6242 pcg 1.17 <th width="10%">NAME</th>
6243 pcg 1.37 <th width="8%">TYPE</th>
6244     <th width="4%">VALUE</th>
6245 pcg 1.17 <th>DESCRIPTION</th>
6246 pcg 1.37 <th width="10%">GUARD</th>
6247 pcg 1.1 </tr>
6248     <tr>
6249     <td>channel</td>
6250 pcg 1.3 <td>U16</td>
6251 pcg 1.17 <td> </td>
6252 pcg 1.3 <td>
6253 pcg 1.17
6254      
6255     </td>
6256     <td>
6257     <b></b>
6258      
6259     </td>
6260 pcg 1.1 </tr>
6261     <tr>
6262     <td>owner</td>
6263 pcg 1.3 <td>username</td>
6264 pcg 1.17 <td> </td>
6265     <td>
6266    
6267      
6268     </td>
6269 pcg 1.3 <td>
6270 pcg 1.17 <b></b>
6271      
6272     </td>
6273 pcg 1.1 </tr>
6274     <tr>
6275     <td>description</td>
6276     <td>STRING</td>
6277 pcg 1.17 <td> </td>
6278 pcg 1.3 <td>
6279 pcg 1.17
6280      
6281     </td>
6282     <td>
6283     <b></b>
6284      
6285     </td>
6286 pcg 1.1 </tr>
6287     </table>
6288 pcg 1.27
6289 pcg 1.1 <h3>Game messages</h3>
6290    
6291 pcg 1.17 <h4>
6292 pcg 1.32 <a name="S4400"></a>ORIGIN: SERVER;
6293 pcg 1.59 MESSAGE: challenge</h4>
6294 pcg 1.17 NUMERIC TYPE (hex): 4400<p>
6295     Unclear.
6296     </p>
6297     <table border="1" width="100%">
6298 pcg 1.1 <tr>
6299 pcg 1.17 <th width="10%">NAME</th>
6300 pcg 1.37 <th width="8%">TYPE</th>
6301     <th width="4%">VALUE</th>
6302 pcg 1.17 <th>DESCRIPTION</th>
6303 pcg 1.37 <th width="10%">GUARD</th>
6304 pcg 1.1 </tr>
6305     <tr>
6306     <td>channel</td>
6307 pcg 1.3 <td>U16</td>
6308 pcg 1.17 <td> </td>
6309     <td>
6310    
6311      
6312     </td>
6313 pcg 1.3 <td>
6314 pcg 1.17 <b></b>
6315      
6316     </td>
6317 pcg 1.1 </tr>
6318     <tr>
6319     <td>challenge</td>
6320     <td>challenge</td>
6321 pcg 1.17 <td> </td>
6322     <td>
6323    
6324      
6325     </td>
6326 pcg 1.3 <td>
6327 pcg 1.17 <b></b>
6328      
6329     </td>
6330 pcg 1.1 </tr>
6331     </table>
6332    
6333 pcg 1.17 <h4>
6334 pcg 1.32 <a name="S4401"></a>ORIGIN: SERVER;
6335     MESSAGE: upd_game</h4>
6336 pcg 1.17 NUMERIC TYPE (hex): 4401<p>
6337     </p>
6338     <table border="1" width="100%">
6339 pcg 1.1 <tr>
6340 pcg 1.17 <th width="10%">NAME</th>
6341 pcg 1.37 <th width="8%">TYPE</th>
6342     <th width="4%">VALUE</th>
6343 pcg 1.17 <th>DESCRIPTION</th>
6344 pcg 1.37 <th width="10%">GUARD</th>
6345 pcg 1.1 </tr>
6346     <tr>
6347     <td>channel</td>
6348 pcg 1.3 <td>U16</td>
6349 pcg 1.17 <td> </td>
6350     <td>
6351    
6352      
6353     </td>
6354 pcg 1.3 <td>
6355 pcg 1.17 <b></b>
6356      
6357     </td>
6358 pcg 1.1 </tr>
6359     <tr>
6360     <td>game</td>
6361     <td>game</td>
6362 pcg 1.17 <td> </td>
6363 pcg 1.3 <td>
6364 pcg 1.17
6365      
6366     </td>
6367     <td>
6368     <b></b>
6369      
6370     </td>
6371 pcg 1.1 </tr>
6372     </table>
6373    
6374 pcg 1.17 <h4>
6375 pcg 1.32 <a name="S4402"></a>ORIGIN: SERVER;
6376     MESSAGE: del_game</h4>
6377 pcg 1.17 NUMERIC TYPE (hex): 4402<p>
6378     </p>
6379     <table border="1" width="100%">
6380 pcg 1.1 <tr>
6381 pcg 1.17 <th width="10%">NAME</th>
6382 pcg 1.37 <th width="8%">TYPE</th>
6383     <th width="4%">VALUE</th>
6384 pcg 1.17 <th>DESCRIPTION</th>
6385 pcg 1.37 <th width="10%">GUARD</th>
6386 pcg 1.1 </tr>
6387     <tr>
6388     <td>channel</td>
6389 pcg 1.3 <td>U16</td>
6390 pcg 1.17 <td> </td>
6391     <td>
6392    
6393      
6394     </td>
6395 pcg 1.3 <td>
6396 pcg 1.17 <b></b>
6397      
6398     </td>
6399 pcg 1.1 </tr>
6400     </table>
6401    
6402 pcg 1.17 <h4>
6403 pcg 1.32 <a name="S4403"></a>ORIGIN: SERVER;
6404     MESSAGE: upd_observers</h4>
6405 pcg 1.17 NUMERIC TYPE (hex): 4403<p>
6406     </p>
6407     <table border="1" width="100%">
6408 pcg 1.1 <tr>
6409 pcg 1.17 <th width="10%">NAME</th>
6410 pcg 1.37 <th width="8%">TYPE</th>
6411     <th width="4%">VALUE</th>
6412 pcg 1.17 <th>DESCRIPTION</th>
6413 pcg 1.37 <th width="10%">GUARD</th>
6414 pcg 1.1 </tr>
6415     <tr>
6416     <td>channel</td>
6417 pcg 1.3 <td>U16</td>
6418 pcg 1.17 <td> </td>
6419     <td>
6420    
6421      
6422     </td>
6423 pcg 1.3 <td>
6424 pcg 1.17 <b></b>
6425      
6426     </td>
6427 pcg 1.1 </tr>
6428     <tr>
6429     <td>users</td>
6430     <td>user</td>
6431 pcg 1.17 <td> </td>
6432 pcg 1.3 <td>
6433 pcg 1.17
6434      
6435     </td>
6436     <td>
6437     <b></b>
6438      
6439     </td>
6440 pcg 1.1 </tr>
6441     </table>
6442    
6443 pcg 1.17 <h4>
6444 pcg 1.32 <a name="S4404"></a>ORIGIN: SERVER;
6445     MESSAGE: del_observer</h4>
6446 pcg 1.17 NUMERIC TYPE (hex): 4404<p>
6447     </p>
6448     <table border="1" width="100%">
6449 pcg 1.1 <tr>
6450 pcg 1.17 <th width="10%">NAME</th>
6451 pcg 1.37 <th width="8%">TYPE</th>
6452     <th width="4%">VALUE</th>
6453 pcg 1.17 <th>DESCRIPTION</th>
6454 pcg 1.37 <th width="10%">GUARD</th>
6455 pcg 1.1 </tr>
6456     <tr>
6457     <td>channel</td>
6458 pcg 1.3 <td>U16</td>
6459 pcg 1.17 <td> </td>
6460     <td>
6461    
6462      
6463     </td>
6464 pcg 1.3 <td>
6465 pcg 1.17 <b></b>
6466      
6467     </td>
6468 pcg 1.1 </tr>
6469     <tr>
6470     <td>name</td>
6471 pcg 1.3 <td>username</td>
6472 pcg 1.17 <td> </td>
6473     <td>
6474    
6475      
6476     </td>
6477 pcg 1.3 <td>
6478 pcg 1.17 <b></b>
6479      
6480     </td>
6481 pcg 1.1 </tr>
6482     </table>
6483    
6484 pcg 1.17 <h4>
6485 pcg 1.32 <a name="S4405"></a>ORIGIN: SERVER;
6486     MESSAGE: set_tree</h4>
6487 pcg 1.17 NUMERIC TYPE (hex): 4405<p>
6488     </p>
6489     <table border="1" width="100%">
6490 pcg 1.1 <tr>
6491 pcg 1.17 <th width="10%">NAME</th>
6492 pcg 1.37 <th width="8%">TYPE</th>
6493     <th width="4%">VALUE</th>
6494 pcg 1.17 <th>DESCRIPTION</th>
6495 pcg 1.37 <th width="10%">GUARD</th>
6496 pcg 1.1 </tr>
6497     <tr>
6498     <td>channel</td>
6499 pcg 1.3 <td>U16</td>
6500 pcg 1.17 <td> </td>
6501 pcg 1.3 <td>
6502 pcg 1.17
6503      
6504     </td>
6505     <td>
6506     <b></b>
6507      
6508     </td>
6509 pcg 1.1 </tr>
6510     <tr>
6511     <td>tree</td>
6512     <td>TREE</td>
6513 pcg 1.17 <td> </td>
6514     <td>
6515    
6516      
6517     </td>
6518 pcg 1.3 <td>
6519 pcg 1.17 <b></b>
6520      
6521     </td>
6522 pcg 1.1 </tr>
6523     </table>
6524    
6525 pcg 1.17 <h4>
6526 pcg 1.32 <a name="S4406"></a>ORIGIN: SERVER;
6527     MESSAGE: upd_tree</h4>
6528 pcg 1.17 NUMERIC TYPE (hex): 4406<p>
6529     </p>
6530     <table border="1" width="100%">
6531 pcg 1.1 <tr>
6532 pcg 1.17 <th width="10%">NAME</th>
6533 pcg 1.37 <th width="8%">TYPE</th>
6534     <th width="4%">VALUE</th>
6535 pcg 1.17 <th>DESCRIPTION</th>
6536 pcg 1.37 <th width="10%">GUARD</th>
6537 pcg 1.1 </tr>
6538     <tr>
6539     <td>channel</td>
6540 pcg 1.3 <td>U16</td>
6541 pcg 1.17 <td> </td>
6542     <td>
6543    
6544      
6545     </td>
6546 pcg 1.3 <td>
6547 pcg 1.17 <b></b>
6548      
6549     </td>
6550 pcg 1.1 </tr>
6551     <tr>
6552     <td>tree</td>
6553     <td>TREE</td>
6554 pcg 1.17 <td> </td>
6555     <td>
6556    
6557      
6558     </td>
6559 pcg 1.3 <td>
6560 pcg 1.17 <b></b>
6561      
6562     </td>
6563 pcg 1.1 </tr>
6564     </table>
6565    
6566 pcg 1.17 <h4>
6567 pcg 1.32 <a name="S4409"></a>ORIGIN: SERVER;
6568     MESSAGE: superko</h4>
6569 pcg 1.17 NUMERIC TYPE (hex): 4409<p>
6570     Superko-warning.
6571     </p>
6572     <table border="1" width="100%">
6573 pcg 1.1 <tr>
6574 pcg 1.17 <th width="10%">NAME</th>
6575 pcg 1.37 <th width="8%">TYPE</th>
6576     <th width="4%">VALUE</th>
6577 pcg 1.17 <th>DESCRIPTION</th>
6578 pcg 1.37 <th width="10%">GUARD</th>
6579 pcg 1.1 </tr>
6580     <tr>
6581     <td>channel</td>
6582 pcg 1.3 <td>U16</td>
6583 pcg 1.17 <td> </td>
6584     <td>
6585    
6586      
6587     </td>
6588 pcg 1.3 <td>
6589 pcg 1.17 <b></b>
6590      
6591     </td>
6592 pcg 1.1 </tr>
6593     </table>
6594    
6595 pcg 1.17 <h4>
6596 pcg 1.32 <a name="S440b"></a>ORIGIN: SERVER;
6597     MESSAGE: final_result</h4>
6598 pcg 1.17 NUMERIC TYPE (hex): 440b<p>
6599     </p>
6600     <table border="1" width="100%">
6601 pcg 1.1 <tr>
6602 pcg 1.17 <th width="10%">NAME</th>
6603 pcg 1.37 <th width="8%">TYPE</th>
6604     <th width="4%">VALUE</th>
6605 pcg 1.17 <th>DESCRIPTION</th>
6606 pcg 1.37 <th width="10%">GUARD</th>
6607 pcg 1.1 </tr>
6608     <tr>
6609     <td>channel</td>
6610 pcg 1.3 <td>U16</td>
6611 pcg 1.17 <td> </td>
6612 pcg 1.3 <td>
6613 pcg 1.17
6614      
6615     </td>
6616     <td>
6617     <b></b>
6618      
6619     </td>
6620 pcg 1.1 </tr>
6621     <tr>
6622     <td>blackscore</td>
6623 pcg 1.10 <td>scorevalues</td>
6624 pcg 1.17 <td> </td>
6625     <td>
6626    
6627      
6628     </td>
6629 pcg 1.3 <td>
6630 pcg 1.17 <b></b>
6631      
6632     </td>
6633 pcg 1.1 </tr>
6634     <tr>
6635     <td>whitescore</td>
6636 pcg 1.10 <td>scorevalues</td>
6637 pcg 1.17 <td> </td>
6638 pcg 1.3 <td>
6639 pcg 1.17
6640      
6641     </td>
6642     <td>
6643     <b></b>
6644      
6645     </td>
6646 pcg 1.1 </tr>
6647     </table>
6648    
6649 pcg 1.17 <h4>
6650 pcg 1.32 <a name="S440e"></a>ORIGIN: SERVER;
6651     MESSAGE: req_undo</h4>
6652 pcg 1.17 NUMERIC TYPE (hex): 440e<p>
6653     </p>
6654     <table border="1" width="100%">
6655 pcg 1.1 <tr>
6656 pcg 1.17 <th width="10%">NAME</th>
6657 pcg 1.37 <th width="8%">TYPE</th>
6658     <th width="4%">VALUE</th>
6659 pcg 1.17 <th>DESCRIPTION</th>
6660 pcg 1.37 <th width="10%">GUARD</th>
6661 pcg 1.1 </tr>
6662     <tr>
6663     <td>channel</td>
6664 pcg 1.3 <td>U16</td>
6665 pcg 1.17 <td> </td>
6666 pcg 1.3 <td>
6667 pcg 1.17
6668      
6669     </td>
6670     <td>
6671     <b></b>
6672      
6673     </td>
6674 pcg 1.1 </tr>
6675     </table>
6676    
6677 pcg 1.17 <h4>
6678 pcg 1.32 <a name="S4410"></a>ORIGIN: SERVER;
6679     MESSAGE: resign_game</h4>
6680 pcg 1.17 NUMERIC TYPE (hex): 4410<p>
6681     </p>
6682     <table border="1" width="100%">
6683 pcg 1.1 <tr>
6684 pcg 1.17 <th width="10%">NAME</th>
6685 pcg 1.37 <th width="8%">TYPE</th>
6686     <th width="4%">VALUE</th>
6687 pcg 1.17 <th>DESCRIPTION</th>
6688 pcg 1.37 <th width="10%">GUARD</th>
6689 pcg 1.1 </tr>
6690     <tr>
6691     <td>channel</td>
6692 pcg 1.3 <td>U16</td>
6693 pcg 1.17 <td> </td>
6694     <td>
6695    
6696      
6697     </td>
6698 pcg 1.3 <td>
6699 pcg 1.17 <b></b>
6700      
6701     </td>
6702 pcg 1.1 </tr>
6703     <tr>
6704     <td>player</td>
6705 pcg 1.3 <td>U8</td>
6706 pcg 1.17 <td> </td>
6707 pcg 1.3 <td>
6708 pcg 1.17
6709      
6710     </td>
6711     <td>
6712     <b></b>
6713      
6714     </td>
6715 pcg 1.1 </tr>
6716     </table>
6717    
6718 pcg 1.17 <h4>
6719 pcg 1.40 <a name="S4415"></a>ORIGIN: SERVER;
6720     MESSAGE: game_error</h4>
6721     NUMERIC TYPE (hex): 4415<p>
6722     </p>
6723     <table border="1" width="100%">
6724     <tr>
6725     <th width="10%">NAME</th>
6726     <th width="8%">TYPE</th>
6727     <th width="4%">VALUE</th>
6728     <th>DESCRIPTION</th>
6729     <th width="10%">GUARD</th>
6730     </tr>
6731     <tr>
6732     <td>channel</td>
6733     <td>U16</td>
6734     <td> </td>
6735     <td>
6736    
6737      
6738     </td>
6739     <td>
6740     <b></b>
6741      
6742     </td>
6743     </tr>
6744     <tr>
6745     <td>message</td>
6746     <td>CONSTANT</td>
6747     <td>Sorry, this is a lecture game. Only authorized players are allowed to make comments. </td>
6748     <td>
6749    
6750      
6751     </td>
6752     <td>
6753     <b></b>
6754      
6755     </td>
6756     </tr>
6757     </table>
6758    
6759     <h4>
6760 pcg 1.32 <a name="S441a"></a>ORIGIN: SERVER;
6761     MESSAGE: set_teacher</h4>
6762 pcg 1.17 NUMERIC TYPE (hex): 441a<p>
6763     </p>
6764     <table border="1" width="100%">
6765 pcg 1.1 <tr>
6766 pcg 1.17 <th width="10%">NAME</th>
6767 pcg 1.37 <th width="8%">TYPE</th>
6768     <th width="4%">VALUE</th>
6769 pcg 1.17 <th>DESCRIPTION</th>
6770 pcg 1.37 <th width="10%">GUARD</th>
6771 pcg 1.1 </tr>
6772     <tr>
6773     <td>channel</td>
6774 pcg 1.3 <td>U16</td>
6775 pcg 1.17 <td> </td>
6776     <td>
6777    
6778      
6779     </td>
6780 pcg 1.3 <td>
6781 pcg 1.17 <b></b>
6782      
6783     </td>
6784 pcg 1.1 </tr>
6785     <tr>
6786     <td>name</td>
6787 pcg 1.3 <td>username</td>
6788 pcg 1.17 <td> </td>
6789     <td>
6790    
6791      
6792     </td>
6793 pcg 1.3 <td>
6794 pcg 1.17 <b></b>
6795      
6796     </td>
6797 pcg 1.1 </tr>
6798     </table>
6799    
6800 pcg 1.17 <h4>
6801 pcg 1.32 <a name="S441d"></a>ORIGIN: SERVER;
6802     MESSAGE: owner_left</h4>
6803 pcg 1.17 NUMERIC TYPE (hex): 441d<p>
6804     </p>
6805     <table border="1" width="100%">
6806 pcg 1.1 <tr>
6807 pcg 1.17 <th width="10%">NAME</th>
6808 pcg 1.37 <th width="8%">TYPE</th>
6809     <th width="4%">VALUE</th>
6810 pcg 1.17 <th>DESCRIPTION</th>
6811 pcg 1.37 <th width="10%">GUARD</th>
6812 pcg 1.1 </tr>
6813     <tr>
6814     <td>channel</td>
6815 pcg 1.3 <td>U16</td>
6816 pcg 1.17 <td> </td>
6817     <td>
6818 pcg 1.40
6819      
6820     </td>
6821     <td>
6822     <b></b>
6823      
6824     </td>
6825     </tr>
6826     <tr>
6827     <td>message</td>
6828     <td>CONSTANT</td>
6829     <td>Sorry, the owner of this game has left. Nobody will be allowed to edit it until the owner returns. </td>
6830     <td>
6831 pcg 1.17
6832      
6833     </td>
6834 pcg 1.3 <td>
6835 pcg 1.17 <b></b>
6836      
6837     </td>
6838 pcg 1.1 </tr>
6839     </table>
6840    
6841 pcg 1.17 <h4>
6842 pcg 1.32 <a name="S441e"></a>ORIGIN: SERVER;
6843     MESSAGE: teacher_left</h4>
6844 pcg 1.17 NUMERIC TYPE (hex): 441e<p>
6845     Unclear.
6846     </p>
6847     <table border="1" width="100%">
6848 pcg 1.1 <tr>
6849 pcg 1.17 <th width="10%">NAME</th>
6850 pcg 1.37 <th width="8%">TYPE</th>
6851     <th width="4%">VALUE</th>
6852 pcg 1.17 <th>DESCRIPTION</th>
6853 pcg 1.37 <th width="10%">GUARD</th>
6854 pcg 1.1 </tr>
6855     <tr>
6856     <td>channel</td>
6857 pcg 1.3 <td>U16</td>
6858 pcg 1.17 <td> </td>
6859     <td>
6860    
6861      
6862     </td>
6863 pcg 1.3 <td>
6864 pcg 1.17 <b></b>
6865      
6866     </td>
6867 pcg 1.1 </tr>
6868     </table>
6869    
6870 pcg 1.17 <h4>
6871 pcg 1.32 <a name="S4422"></a>ORIGIN: SERVER;
6872 pcg 1.40 MESSAGE: allow_user_result</h4>
6873 pcg 1.17 NUMERIC TYPE (hex): 4422<p>
6874     </p>
6875     <table border="1" width="100%">
6876 pcg 1.1 <tr>
6877 pcg 1.17 <th width="10%">NAME</th>
6878 pcg 1.37 <th width="8%">TYPE</th>
6879     <th width="4%">VALUE</th>
6880 pcg 1.17 <th>DESCRIPTION</th>
6881 pcg 1.37 <th width="10%">GUARD</th>
6882 pcg 1.1 </tr>
6883     <tr>
6884 pcg 1.40 <td>message</td>
6885     <td>CONSTANT</td>
6886     <td>User "%s" will now be allowed full access to your game. </td>
6887     <td>
6888    
6889      
6890     </td>
6891     <td>
6892     <b></b>
6893      
6894     </td>
6895     </tr>
6896     <tr>
6897 pcg 1.1 <td>channel</td>
6898 pcg 1.3 <td>U16</td>
6899 pcg 1.17 <td> </td>
6900 pcg 1.3 <td>
6901 pcg 1.40
6902      
6903     </td>
6904     <td>
6905     <b></b>
6906      
6907     </td>
6908     </tr>
6909     </table>
6910    
6911     <h4>
6912     <a name="S4424"></a>ORIGIN: SERVER;
6913     MESSAGE: allow_user_result</h4>
6914     NUMERIC TYPE (hex): 4424<p>
6915     </p>
6916     <table border="1" width="100%">
6917     <tr>
6918     <th width="10%">NAME</th>
6919     <th width="8%">TYPE</th>
6920     <th width="4%">VALUE</th>
6921     <th>DESCRIPTION</th>
6922     <th width="10%">GUARD</th>
6923     </tr>
6924     <tr>
6925     <td>message</td>
6926     <td>CONSTANT</td>
6927     <td>Sorry, user "%s" is a guest and cannot be allowed full access to your game. </td>
6928     <td>
6929 pcg 1.17
6930      
6931     </td>
6932     <td>
6933     <b></b>
6934      
6935     </td>
6936 pcg 1.1 </tr>
6937     <tr>
6938 pcg 1.40 <td>channel</td>
6939     <td>U16</td>
6940 pcg 1.17 <td> </td>
6941     <td>
6942 pcg 1.40
6943      
6944     </td>
6945     <td>
6946     <b></b>
6947      
6948     </td>
6949     </tr>
6950     </table>
6951    
6952     <h4>
6953     <a name="S4425"></a>ORIGIN: SERVER;
6954     MESSAGE: allow_user_result</h4>
6955     NUMERIC TYPE (hex): 4425<p>
6956     </p>
6957     <table border="1" width="100%">
6958     <tr>
6959     <th width="10%">NAME</th>
6960     <th width="8%">TYPE</th>
6961     <th width="4%">VALUE</th>
6962     <th>DESCRIPTION</th>
6963     <th width="10%">GUARD</th>
6964     </tr>
6965     <tr>
6966     <td>message</td>
6967     <td>CONSTANT</td>
6968     <td>Sorry, user "%s" does not seem to exist and cannot be allowed into your game. </td>
6969     <td>
6970 pcg 1.17
6971      
6972     </td>
6973 pcg 1.3 <td>
6974 pcg 1.17 <b></b>
6975      
6976     </td>
6977 pcg 1.1 </tr>
6978     <tr>
6979 pcg 1.40 <td>channel</td>
6980     <td>U16</td>
6981 pcg 1.26 <td> </td>
6982     <td>
6983    
6984      
6985     </td>
6986     <td>
6987     <b></b>
6988      
6989     </td>
6990     </tr>
6991     </table>
6992    
6993     <h4>
6994 pcg 1.32 <a name="S4428"></a>ORIGIN: SERVER;
6995     MESSAGE: add_tree</h4>
6996 pcg 1.26 NUMERIC TYPE (hex): 4428<p>
6997 pcg 1.32 <p>See <a href="#S4405">set_tree(4405)</a>. In addition, flags the tree as being
6998 pcg 1.26 uploaded completely.</p>
6999     </p>
7000     <table border="1" width="100%">
7001     <tr>
7002     <th width="10%">NAME</th>
7003 pcg 1.37 <th width="8%">TYPE</th>
7004     <th width="4%">VALUE</th>
7005 pcg 1.26 <th>DESCRIPTION</th>
7006 pcg 1.37 <th width="10%">GUARD</th>
7007 pcg 1.26 </tr>
7008     <tr>
7009     <td>channel</td>
7010     <td>U16</td>
7011     <td> </td>
7012     <td>
7013    
7014      
7015     </td>
7016     <td>
7017     <b></b>
7018      
7019     </td>
7020     </tr>
7021     <tr>
7022     <td>tree</td>
7023     <td>TREE</td>
7024 pcg 1.40 <td> </td>
7025     <td>
7026    
7027      
7028     </td>
7029     <td>
7030     <b></b>
7031      
7032     </td>
7033     </tr>
7034     </table>
7035    
7036     <h4>
7037     <a name="S4429"></a>ORIGIN: SERVER;
7038     MESSAGE: reject_challenge</h4>
7039     NUMERIC TYPE (hex): 4429<p>
7040     Reject a challenge by a given user. Not checked.
7041    
7042     </p>
7043     <table border="1" width="100%">
7044     <tr>
7045     <th width="10%">NAME</th>
7046     <th width="8%">TYPE</th>
7047     <th width="4%">VALUE</th>
7048     <th>DESCRIPTION</th>
7049     <th width="10%">GUARD</th>
7050     </tr>
7051     <tr>
7052     <td>channel</td>
7053     <td>U16</td>
7054     <td> </td>
7055     <td>
7056    
7057      
7058     </td>
7059     <td>
7060     <b></b>
7061      
7062     </td>
7063     </tr>
7064     <tr>
7065     <td>name</td>
7066     <td>username</td>
7067 pcg 1.17 <td> </td>
7068 pcg 1.3 <td>
7069 pcg 1.17
7070 pcg 1.41  
7071     </td>
7072     <td>
7073     <b></b>
7074      
7075     </td>
7076     </tr>
7077     </table>
7078    
7079     <h4>
7080 pcg 1.46 <a name="S442f"></a>ORIGIN: SERVER;
7081 pcg 1.41 MESSAGE: new_game</h4>
7082     NUMERIC TYPE (hex): 442f<p>
7083     <p>Notifies the client that a new game has been created. This
7084 pcg 1.46 message is sent long *after* upd_games and upd_observers etc.
7085     have been received. *sigh*</p>
7086 pcg 1.41 </p>
7087     <table border="1" width="100%">
7088     <tr>
7089     <th width="10%">NAME</th>
7090     <th width="8%">TYPE</th>
7091     <th width="4%">VALUE</th>
7092     <th>DESCRIPTION</th>
7093     <th width="10%">GUARD</th>
7094     </tr>
7095     <tr>
7096     <td>channel</td>
7097     <td>U16</td>
7098     <td> </td>
7099     <td>
7100    
7101      
7102     </td>
7103     <td>
7104     <b></b>
7105      
7106     </td>
7107     </tr>
7108     <tr>
7109 pcg 1.58 <td>cid</td>
7110     <td>clientid</td>
7111 pcg 1.41 <td> </td>
7112     <td>
7113    
7114 pcg 1.17  
7115     </td>
7116     <td>
7117     <b></b>
7118      
7119     </td>
7120 pcg 1.1 </tr>
7121     </table>
7122    
7123 pcg 1.17 <h4>
7124 pcg 1.32 <a name="S4433"></a>ORIGIN: SERVER;
7125     MESSAGE: req_result</h4>
7126 pcg 1.17 NUMERIC TYPE (hex): 4433<p>
7127     Unclear.
7128     </p>
7129     <table border="1" width="100%">
7130 pcg 1.1 <tr>
7131 pcg 1.17 <th width="10%">NAME</th>
7132 pcg 1.37 <th width="8%">TYPE</th>
7133     <th width="4%">VALUE</th>
7134 pcg 1.17 <th>DESCRIPTION</th>
7135 pcg 1.37 <th width="10%">GUARD</th>
7136 pcg 1.1 </tr>
7137     <tr>
7138     <td>channel</td>
7139 pcg 1.3 <td>U16</td>
7140 pcg 1.17 <td> </td>
7141 pcg 1.3 <td>
7142 pcg 1.1 # # recv_result(?)
7143 pcg 1.17
7144      
7145     </td>
7146     <td>
7147     <b></b>
7148      
7149     </td>
7150 pcg 1.1 </tr>
7151     </table>
7152    
7153 pcg 1.17 <h4>
7154 pcg 1.32 <a name="S4434"></a>ORIGIN: SERVER;
7155 pcg 1.48 MESSAGE: set_quiet</h4>
7156 pcg 1.17 NUMERIC TYPE (hex): 4434<p>
7157 pcg 1.48 <p>Sets (or clears) the quiet flag on a game.</p>
7158     </p>
7159 pcg 1.17 <table border="1" width="100%">
7160 pcg 1.1 <tr>
7161 pcg 1.17 <th width="10%">NAME</th>
7162 pcg 1.37 <th width="8%">TYPE</th>
7163     <th width="4%">VALUE</th>
7164 pcg 1.17 <th>DESCRIPTION</th>
7165 pcg 1.37 <th width="10%">GUARD</th>
7166 pcg 1.1 </tr>
7167     <tr>
7168     <td>channel</td>
7169 pcg 1.3 <td>U16</td>
7170 pcg 1.17 <td> </td>
7171     <td>
7172    
7173      
7174     </td>
7175 pcg 1.3 <td>
7176 pcg 1.17 <b></b>
7177      
7178     </td>
7179 pcg 1.1 </tr>
7180     <tr>
7181 pcg 1.48 <td>quiet</td>
7182 pcg 1.58 <td>flag</td>
7183 pcg 1.17 <td> </td>
7184 pcg 1.3 <td>
7185 pcg 1.17
7186      
7187     </td>
7188     <td>
7189     <b></b>
7190      
7191     </td>
7192 pcg 1.1 </tr>
7193     </table>
7194    
7195 pcg 1.43 <h4>
7196 pcg 1.50 <a name="S4437"></a>ORIGIN: SERVER;
7197 pcg 1.57 MESSAGE: set_gametime</h4>
7198 pcg 1.50 NUMERIC TYPE (hex): 4437<p>
7199 pcg 1.57 <p>Sent when joining a game. Gives the remaining time +
7200     periods/moves for the players, to correctly initialize the clocks.</p>
7201 pcg 1.50 </p>
7202     <table border="1" width="100%">
7203     <tr>
7204     <th width="10%">NAME</th>
7205     <th width="8%">TYPE</th>
7206     <th width="4%">VALUE</th>
7207     <th>DESCRIPTION</th>
7208     <th width="10%">GUARD</th>
7209     </tr>
7210     <tr>
7211     <td>channel</td>
7212     <td>U16</td>
7213     <td> </td>
7214     <td>
7215    
7216      
7217     </td>
7218     <td>
7219     <b></b>
7220      
7221     </td>
7222     </tr>
7223     <tr>
7224     <td>btime</td>
7225     <td>time</td>
7226     <td> </td>
7227     <td>
7228    
7229      
7230     </td>
7231     <td>
7232     <b></b>
7233      
7234     </td>
7235     </tr>
7236     <tr>
7237     <td>bcount</td>
7238     <td>U16</td>
7239     <td> </td>
7240     <td>
7241    
7242      
7243     </td>
7244     <td>
7245     <b></b>
7246      
7247     </td>
7248     </tr>
7249     <tr>
7250     <td>wtime</td>
7251     <td>time</td>
7252     <td> </td>
7253     <td>
7254    
7255      
7256     </td>
7257     <td>
7258     <b></b>
7259      
7260     </td>
7261     </tr>
7262     <tr>
7263     <td>wcount</td>
7264     <td>U16</td>
7265     <td> </td>
7266     <td>
7267    
7268      
7269     </td>
7270     <td>
7271     <b></b>
7272      
7273     </td>
7274     </tr>
7275     </table>
7276    
7277     <h4>
7278 pcg 1.44 <a name="S443b"></a>ORIGIN: SERVER;
7279 pcg 1.46 MESSAGE: del_global_challenge</h4>
7280 pcg 1.43 NUMERIC TYPE (hex): 443b<p>
7281 pcg 1.46 <p>
7282     Remove a game from the global challenge list (open game list).
7283 pcg 1.43 </p>
7284 pcg 1.46 </p>
7285 pcg 1.43 <table border="1" width="100%">
7286     <tr>
7287     <th width="10%">NAME</th>
7288     <th width="8%">TYPE</th>
7289     <th width="4%">VALUE</th>
7290     <th>DESCRIPTION</th>
7291     <th width="10%">GUARD</th>
7292     </tr>
7293     <tr>
7294     <td>channel</td>
7295     <td>U16</td>
7296     <td> </td>
7297     <td>
7298    
7299      
7300     </td>
7301     <td>
7302     <b></b>
7303      
7304     </td>
7305     </tr>
7306     <tr>
7307 pcg 1.44 <td>game</td>
7308 pcg 1.43 <td>U16</td>
7309     <td> </td>
7310     <td>
7311 pcg 1.46
7312 pcg 1.43  
7313     </td>
7314     <td>
7315     <b></b>
7316      
7317     </td>
7318     </tr>
7319     </table>
7320 pcg 1.1 </body>
7321     </html>