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