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.31 by root, Fri Mar 2 14:44:52 2007 UTC vs.
Revision 1.39 by root, Mon Apr 2 19:56:11 2007 UTC

1#! perl 1#! perl # MANDATORY
2 2
3use POSIX (); 3use POSIX ();
4 4
5# miscellaneous commands 5# miscellaneous commands
6 6
116}; 116};
117 117
118cf::register_command mark => sub { 118cf::register_command mark => sub {
119 my ($pl, $arg) = @_; 119 my ($pl, $arg) = @_;
120 120
121 unless (length $arg) { 121 if (length $arg) {
122 my $ob = $pl->find_best_object_match ($arg);
123
124 return $pl->reply (undef, "Could not find an object that matches $arg")
125 unless $ob;
126
127 $pl->contr->mark ($ob);
128 $pl->reply (undef, (sprintf "Marked item %s", $ob->name, $ob->title));
129 } else {
122 my $ob = $pl->find_marked_object; 130 my $ob = $pl->find_marked_object;
123 131
124 $pl->reply (undef, $ob 132 $pl->reply (undef, $ob
125 ? (sprintf "%s %s * is marked.", $ob->name, $ob->title) 133 ? (sprintf "%s %s * is marked.", $ob->name, $ob->title)
126 : "You have no marked object."); 134 : "You have no marked object.");
127 } else {
128 my $ob = $pl->find_best_object_match ($arg);
129
130 return $pl->reply (undef, "Could not find an object that matches $arg")
131 unless $ob;
132
133 $pl->contr->mark ($ob);
134 $pl->reply (undef, (sprintf "Marked item %s", $ob->name, $ob->title));
135 }
136
137 1 135 }
138};
139
140cf::register_command who => sub {
141 my ($ob, $arg) = @_;
142
143 $ob->speed_left ($ob->speed_left - 0.25);
144
145 $ob->reply (undef, (join "\n", who_listing $ob->may ("extended_who")), cf::NDI_UNIQUE | cf::NDI_DK_ORANGE);
146 136
147 1 137 1
148}; 138};
149 139
150for my $cmd ("run", "fire") { 140for my $cmd ("run", "fire") {
151 my $oncmd = "${cmd}_on"; 141 my $oncmd = "${cmd}_on";
152 cf::register_command $cmd => sub { 142 cf::register_command $cmd => sub {
153 my ($ob, $arg) = @_; 143 my ($ob, $arg) = @_;
154 144
155 return $ob->reply (undef, "Can't $cmd into a non adjacent square.") 145 $ob->reply (undef, "Can't $cmd into a non adjacent square.")
156 if $arg < 0 or $arg >= 9; 146 if $arg < 0 or $arg >= 9;
157 147
158 $ob->contr->$oncmd (1); 148 $ob->contr->$oncmd (1);
159 $ob->move ($arg); 149 $ob->move_player ($arg);
160 150
161 1 151 1
162 }; 152 };
163 153
164 cf::register_command "${cmd}_stop" => sub { 154 cf::register_command "${cmd}_stop" => sub {
165 my ($ob) = @_; 155 my ($ob) = @_;
166 156
167 $ob->contr->$oncmd (0); 157 $ob->contr->$oncmd (0);
168 158
257 $ob->reply (undef, $ob->contr->braced ? "You are braced." : "Not braced."); 247 $ob->reply (undef, $ob->contr->braced ? "You are braced." : "Not braced.");
258 248
259 1 249 1
260}; 250};
261 251
252cf::register_command 'output-rate' => sub {
253 my ($ob, $arg) = @_;
254
255 return $ob->reply (undef, sprintf "Output rate is presently %dbps.", $ob->contr->ns->max_rate / $cf::TICK)
256 unless $arg > 0;
257
258 # minimum is 2k/s
259 $ob->contr->ns->max_rate ((List::Util::max 2048, $arg) * $cf::TICK);
260 $ob->reply (undef, sprintf "Output rate now set to %dbps.", $ob->contr->ns->max_rate / $cf::TICK);
261
262 1
263};
264
262cf::register_command 'output-count' => sub { 265cf::register_command 'output-count' => sub {
263 my ($ob, $arg) = @_; 266 my ($ob, $arg) = @_;
264 267
265 return $ob->reply (undef, "Output count is presently " . $ob->contr->outputs_count) 268 return $ob->reply (undef, "Output count is presently " . $ob->contr->outputs_count)
266 unless $arg > 0; 269 unless $arg > 0;
272}; 275};
273 276
274cf::register_command 'output-sync' => sub { 277cf::register_command 'output-sync' => sub {
275 my ($ob, $arg) = @_; 278 my ($ob, $arg) = @_;
276 279
277 return $ob->reply (undef, "Output sync time is presently " . $ob->contr->outputs_sync) 280 return $ob->reply (undef, sprintf "Output sync time is presently %.1fs", $ob->contr->outputs_sync * $cf::TICK)
278 unless $arg > 0; 281 unless length $arg;
279 282
280 $ob->contr->outputs_sync ($arg); 283 $ob->contr->outputs_sync ($arg / $cf::TICK);
281 $ob->reply (undef, "Output sync time now set to " . $ob->contr->outputs_sync); 284 $ob->reply (undef, sprintf "Output sync time now set to %.1fs", $ob->contr->outputs_sync * $cf::TICK);
282 285
283 1 286 1
284}; 287};
285 288
286# XXX: This has a bug. After one sets his wimpy level to 0 and resets it to 289# XXX: This has a bug. After one sets his wimpy level to 0 and resets it to

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines