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.45 by root, Sat May 19 11:04:16 2007 UTC vs.
Revision 1.54 by root, Fri Jul 6 03:52:51 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::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) . "]"
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
191 my $map = $ob->map 190 my $map = $ob->contr->observe->map
192 or return; 191 or return;
193 $ob->reply (undef, (sprintf "%s (%s) %s", $map->name, $map->path, $ob->region->longname)); 192 $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", 193 $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)) 194 (scalar $map->players), $map->difficulty, $map->width, $map->height, $map->enter_x, $map->enter_y, $map->timeout))
196 if $ob->flag (cf::FLAG_WIZ); 195 if $ob->flag (cf::FLAG_WIZ);
197 $ob->reply (undef, $map->msg); 196 $ob->reply (undef, $map->msg);
198 197
199 1 198 1
200}; 199};
201 200
202cf::register_command whereami => sub { 201cf::register_command whereami => sub {
203 my ($ob) = @_; 202 my ($ob) = @_;
204 203
205 my $reg = $ob->region; 204 my $reg = $ob->contr->observe->region;
206 $ob->reply (undef, (sprintf "You are %s.\n%s", $reg->longname, $reg->msg)); 205 $ob->reply (undef, (sprintf "You are %s.\n%s", $reg->longname, $reg->msg));
207 206
208 1 207 1
209}; 208};
210 209
245 _set_mode "usekeys", $ob, $arg, usekeys => qw(inventory keyrings containers); 244 _set_mode "usekeys", $ob, $arg, usekeys => qw(inventory keyrings containers);
246 245
247 1 246 1
248}; 247};
249 248
249cf::register_command hintmode => sub {
250 my ($ob, $arg) = @_;
251
252 _set_mode "hintmode", $ob, $arg, hintmode => qw(show mark hide);
253
254 1
255};
256
250cf::register_command afk => sub { 257cf::register_command afk => sub {
251 my ($ob, $arg) = @_; 258 my ($ob, $arg) = @_;
252 259
253 $ob->contr->ns->afk ($ob->contr->ns->afk ? 0 : 1); 260 $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"); 261 $ob->reply (undef, $ob->contr->ns->afk ? "You are now AFK" : "You are no longer AFK");
278 my ($ob, $arg) = @_; 285 my ($ob, $arg) = @_;
279 286
280 return $ob->reply (undef, sprintf "Output rate is presently %dbps.", $ob->contr->ns->max_rate / $cf::TICK) 287 return $ob->reply (undef, sprintf "Output rate is presently %dbps.", $ob->contr->ns->max_rate / $cf::TICK)
281 unless $arg > 0; 288 unless $arg > 0;
282 289
283 # minimum is 2k/s 290 # minimum is 5k/s
284 $ob->contr->ns->max_rate ((List::Util::max 2048, $arg) * $cf::TICK); 291 $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); 292 $ob->reply (undef, sprintf "Output rate now set to %dbps.", $ob->contr->ns->max_rate / $cf::TICK);
286 293
287 1 294 1
288}; 295};
289 296

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines