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