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

Comparing deliantra/server/ext/commands.ext (file contents):
Revision 1.44 by root, Mon May 7 07:47:32 2007 UTC vs.
Revision 1.55 by root, Fri Jul 20 14:13:58 2007 UTC

1#! perl # MANDATORY 1#! perl # mandatory depends=irc
2 2
3use POSIX (); 3use POSIX ();
4 4
5# miscellaneous commands 5# miscellaneous commands
6 6
36 $ob->esrv_update_item (cf::UPD_NAME, $item); 36 $ob->esrv_update_item (cf::UPD_NAME, $item);
37 37
38 1 38 1
39} 39}
40 40
41sub ext::schmorp_irc::users; # HACK: TODO: replace by signal
42
43sub who_listing(;$$) { 41sub who_listing(;$$) {
44 my ($privileged, $select) = @_; 42 my ($privileged, $select) = @_;
45 43
46 my ($numwiz, $numafk) = (0, 0); 44 my ($numwiz, $numafk) = (0, 0);
47 my @pl; 45 my @pl;
64 (grep /$select/, 62 (grep /$select/,
65 map { 63 map {
66 my ($pl, $ob, $ns) = ($_, $_->ob, $_->ns); 64 my ($pl, $ob, $ns) = ($_, $_->ob, $_->ns);
67 65
68 "* " . $ob->name . "/" . $ob->level . " " . (length $pl->own_title ? $pl->own_title : "the " . $pl->title) 66 "* " . $ob->name . "/" . $ob->level . " " . (length $pl->own_title ? $pl->own_title : "the " . $pl->title)
67 . ($pl->gender ? " [f]" : " [m]")
69 . ($pl->peaceful ? " [peaceful]" : " [HOSTILE]") 68 . ($pl->peaceful ? " [peaceful]" : " [HOSTILE]")
70 . ($ns->afk ? " [AFK]" : "") 69 . ($ns->afk ? " [AFK]" : "")
71 . ($ob->flag (cf::FLAG_WIZ) ? " [WIZ]" : "") 70 . ($ob->flag (cf::FLAG_WIZ) ? " [WIZ]" : "")
72 . " [" . $pl->ns->version . "]" 71 . " [" . $pl->ns->version . "]"
73 . " [" . ($pl->peaceful || $privileged ? $ob->map->visible_name : $ob->region->name) . "]" 72 . " [" . ($pl->peaceful || $privileged ? $ob->map->visible_name : $ob->region->name) . "]"
74 . (sprintf " [rtt %.3fs]", $pl->ns->rtt * 1e-6) 73 . (sprintf " [rtt %.3fs]", $pl->ns->rtt * 1e-6)
75 . ($privileged ? " " . $pl->ns->host : "") 74 . ($privileged ? " " . $pl->ns->host : "")
76 } sort { (lc $a->ob->name) cmp (lc $b->ob->name) } @pl 75 } sort { (lc $a->ob->name) cmp (lc $b->ob->name) } @pl
77 ), 76 ),
78 eval { "* IRC: " . join ", ", ext::schmorp_irc::users }, 77 eval { "* IRC: " . join ", ", ext::irc::users },
79 ) 78 )
80} 79}
81 80
82cf::register_command who => sub { 81cf::register_command who => sub {
83 my ($ob, $arg) = @_; 82 my ($ob, $arg) = @_;
116 my ($ob) = @_; 115 my ($ob) = @_;
117 116
118 # Too hard to try and make a header that lines everything up, so just 117 # Too hard to try and make a header that lines everything up, so just
119 # give a description. (comment from C++) 118 # give a description. (comment from C++)
120 my $reply = 119 my $reply =
121 "The first column is the name of the body location.\n" 120 "The first column is the name of the body location.\n\n"
122 . "The second column is how many of those locations your body has.\n" 121 . "The second column is how many of those locations your body has.\n\n"
123 . "The third column is how many slots in that location are available.\n"; 122 . "The third column is how many slots in that location are available.\n\n";
124 123
125 $reply .= sprintf "%-20s %3s %5s\n", "Location", "You", "Avail"; 124 $reply .= sprintf " %-20s %3s %5s\n", "Location", "You", "Avail";
126 for (0 .. cf::NUM_BODY_LOCATIONS - 1) { 125 for (0 .. cf::NUM_BODY_LOCATIONS - 1) {
127 my $msg = cf::object::slot_nonuse_name $_; 126 my $msg = cf::object::slot_nonuse_name $_;
128 $msg =~ s/^.*? a //; 127 $msg =~ s/^.*? a //;
129 $reply .= sprintf "%-20s %3d %5d\n", $msg, $ob->slot_info ($_), $ob->slot_used ($_) 128 $reply .= sprintf " %-20s %3d %5d\n", $msg, $ob->slot_info ($_), $ob->slot_used ($_)
130 if $ob->slot_info ($_) or $ob->slot_used ($_); 129 if $ob->slot_info ($_) or $ob->slot_used ($_);
131 } 130 }
132 131
133 $reply .= "You are not allowed to wear armor\n" 132 $reply .= "You are not allowed to wear armor\n\n"
134 unless $ob->flag (cf::FLAG_USE_ARMOUR); 133 unless $ob->flag (cf::FLAG_USE_ARMOUR);
135 $reply .= "You are not allowed to use weapons\n" 134 $reply .= "You are not allowed to use weapons\n\n"
136 unless $ob->flag (cf::FLAG_USE_WEAPON); 135 unless $ob->flag (cf::FLAG_USE_WEAPON);
137 136
138 $ob->reply (undef, $reply); 137 $ob->reply (undef, $reply);
139 138
140 1 139 1
186} 185}
187 186
188cf::register_command mapinfo => sub { 187cf::register_command mapinfo => sub {
189 my ($ob) = @_; 188 my ($ob) = @_;
190 189
190 $ob = $ob->contr->observe;
191
191 my $map = $ob->map 192 my $map = $ob->map
192 or return; 193 or return;
193 $ob->reply (undef, (sprintf "%s (%s) %s", $map->name, $map->path, $ob->region->longname)); 194 $ob->reply (undef, (sprintf "%s (%s) %s", $map->name, $map->path, $ob->region->longname));
194 $ob->reply (undef, (sprintf "players: %d difficulty: %d size: %d start: %dx%d timeout: %d", 195 $ob->reply (undef, (sprintf "players: %d difficulty: %d size: %d start: %dx%d timeout: %d",
195 $map->players, $map->difficulty, $map->width, $map->height, $map->enter_x, $map->enter_y, $map->timeout)) 196 (scalar $map->players), $map->difficulty, $map->width, $map->height, $map->enter_x, $map->enter_y, $map->timeout))
196 if $ob->flag (cf::FLAG_WIZ); 197 if $ob->flag (cf::FLAG_WIZ);
197 $ob->reply (undef, $map->msg); 198 $ob->reply (undef, $map->msg);
198 199
199 1 200 1
200}; 201};
201 202
202cf::register_command whereami => sub { 203cf::register_command whereami => sub {
203 my ($ob) = @_; 204 my ($ob) = @_;
204 205
205 my $reg = $ob->region; 206 my $reg = $ob->contr->observe->region;
206 $ob->reply (undef, (sprintf "You are %s.\n%s", $reg->longname, $reg->msg)); 207 $ob->reply (undef, (sprintf "You are %s.\n%s", $reg->longname, $reg->msg));
207 208
208 1 209 1
209}; 210};
210 211
245 _set_mode "usekeys", $ob, $arg, usekeys => qw(inventory keyrings containers); 246 _set_mode "usekeys", $ob, $arg, usekeys => qw(inventory keyrings containers);
246 247
247 1 248 1
248}; 249};
249 250
251cf::register_command hintmode => sub {
252 my ($ob, $arg) = @_;
253
254 _set_mode "hintmode", $ob, $arg, hintmode => qw(show mark hide);
255
256 1
257};
258
250cf::register_command afk => sub { 259cf::register_command afk => sub {
251 my ($ob, $arg) = @_; 260 my ($ob, $arg) = @_;
252 261
253 $ob->contr->ns->afk ($ob->contr->ns->afk ? 0 : 1); 262 $ob->contr->ns->afk ($ob->contr->ns->afk ? 0 : 1);
254 $ob->reply (undef, $ob->contr->ns->afk ? "You are now AFK" : "You are no longer AFK"); 263 $ob->reply (undef, $ob->contr->ns->afk ? "You are now AFK" : "You are no longer AFK");
278 my ($ob, $arg) = @_; 287 my ($ob, $arg) = @_;
279 288
280 return $ob->reply (undef, sprintf "Output rate is presently %dbps.", $ob->contr->ns->max_rate / $cf::TICK) 289 return $ob->reply (undef, sprintf "Output rate is presently %dbps.", $ob->contr->ns->max_rate / $cf::TICK)
281 unless $arg > 0; 290 unless $arg > 0;
282 291
283 # minimum is 2k/s 292 # minimum is 5k/s
284 $ob->contr->ns->max_rate ((List::Util::max 2048, $arg) * $cf::TICK); 293 $ob->contr->ns->max_rate ((List::Util::max 5000, $arg) * $cf::TICK);
285 $ob->reply (undef, sprintf "Output rate now set to %dbps.", $ob->contr->ns->max_rate / $cf::TICK); 294 $ob->reply (undef, sprintf "Output rate now set to %dbps.", $ob->contr->ns->max_rate / $cf::TICK);
286 295
287 1 296 1
288}; 297};
289 298

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines