ViewVC Help
View File | Revision Log | Show Annotations | Download File
/cvs/deliantra/server/ext/schmorp-clientchk.ext
(Generate patch)

Comparing deliantra/server/ext/schmorp-clientchk.ext (file contents):
Revision 1.6 by root, Sat Jan 13 23:06:13 2007 UTC vs.
Revision 1.7 by root, Mon Mar 12 23:45:10 2007 UTC

1#! perl # MANDATORY 1#! perl # MANDATORY
2 2
3# check client version and string for old clients and possibly issue warnings for them 3# check client version and string for old clients and possibly issue warnings for them
4 4
5cf::player->attach ( 5cf::client->attach (
6 on_login => sub { 6 on_addme => sub {
7 my ($pl) = @_; 7 my ($ns) = @_;
8 8
9 my $client = $pl->ns->version; 9 my $client = $ns->version;
10 10
11 my $is_cf = $client =~ /^(?:GTK|X11) (?:Unix|Win32) Client ([.0-9]+)/ 11 my $is_cf = $client =~ /^(?:GTK|X11) (?:Unix|Win32) Client ([.0-9]+)/
12 ? join "", map chr, split /\./, $1 12 ? join "", map chr, split /\./, $1
13 : undef; 13 : undef;
14 14
15 my $is_jx = $client =~ /^JCrossclient 1.0 alpha-(\d+)/ 15 my $is_jx = $client =~ /^JCrossclient 1.0 alpha-(\d+)/
16 ? join "", map chr, split /\./, $1 16 ? join "", map chr, split /\./, $1
17 : undef; 17 : undef;
18 18
19 if ($is_cf) { # && $is_cf lt v1.9.2) { 19 if ($is_cf) { # && $is_cf lt v1.9.2) {
20 $pl->ob->message ("(enabling workaround for client buffer overflow)", cf::NDI_RED | cf::NDI_UNIQUE); 20 $ns->send_packet (sprintf "drawinfo %d %s", cf::NDI_RED, "(enabling workaround for client buffer overflow)");
21 $pl->ns->buggy_mapscroll (1); 21 $ns->buggy_mapscroll (1);
22 $ns->send_packet (sprintf "drawinfo %d %s", cf::NDI_RED, "(enabling workaround for broken face caching)");
23 $ns->force_bad_checksum (1);
22 } 24 }
23 25
24 if ($is_jx) { 26 if ($is_jx) {
25 $pl->ob->message ("(enabling buggy map scroll workaround)", cf::NDI_RED | cf::NDI_UNIQUE); 27 $ns->send_packet (sprintf "drawinfo %d %s", cf::NDI_RED, "(enabling buggy map scroll workaround)");
26 $pl->ns->buggy_mapscroll (1); 28 $ns->buggy_mapscroll (1);
27 } 29 }
28 30
29 if ($is_jx) { 31 if ($is_jx) {
30 $pl->ob->message ("You are using a known to be buggy client (an alpha version, too). " 32 $ns->send_packet (sprintf "drawinfo %d %s", cf::NDI_RED, "You are using a known to be buggy client (an alpha version, too). "
31 . "If you encounter map freezes or other bugs, consider using a more stable client " 33 . "If you encounter map freezes or other bugs, consider using a more stable client "
32 . "such as CFPlus or gcfclient or gcfclient2"); 34 . "such as CFPlus or gcfclient or gcfclient2");
33 } 35 }
34 36
35 if ($is_cf && $is_cf lt v1.9.1) { 37 if ($is_cf && $is_cf lt v1.9.1) {
36 $pl->ob->message (<<EOF, cf::NDI_RED | cf::NDI_UNIQUE); 38 $ns->send_packet (sprintf "drawinfo %d %s", cf::NDI_RED, <<EOF);
37 39
38*** *** *** *** *** *** *** *** *** *** *** *** *** *** 40*** *** *** *** *** *** *** *** *** *** *** *** *** ***
39*** *** *** *** *** *** *** *** *** *** *** *** *** *** 41*** *** *** *** *** *** *** *** *** *** *** *** *** ***
40*** WARNING: Your client is BUGGY 42*** WARNING: Your client is BUGGY
41*** *** *** *** *** *** *** *** *** *** *** *** *** *** 43*** *** *** *** *** *** *** *** *** *** *** *** *** ***

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines