ViewVC Help
View File | Revision Log | Show Annotations | Download File
/cvs/kgsueme/doc/protocol.html
Revision: 1.79
Committed: Wed Oct 13 00:33:15 2004 UTC (19 years, 7 months ago) by root
Content type: text/html
Branch: MAIN
Changes since 1.78: +2 -2 lines
Log Message:
*** empty log message ***

File Contents

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