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

Comparing deliantra/server/ext/dmcommands.ext (file contents):
Revision 1.24 by root, Sat Dec 20 02:32:31 2008 UTC vs.
Revision 1.27 by root, Fri Jan 11 15:08:03 2013 UTC

1#! perl # mandatory 1#! perl # mandatory
2 2
3# wizard commands 3# wizard commands
4
5sub dm($) {
6 my ($ob) = @_;
7
8 if ($ob->flag (cf::FLAG_WIZ)) {
9 $ob->reply (undef, "You are already the Dungeon Master!");
10 return 0;
11
12 } else {
13 $ob->flag (cf::FLAG_WIZ , 1);
14 $ob->flag (cf::FLAG_WIZPASS, 1);
15 $ob->flag (cf::FLAG_WIZCAST, 1);
16 $ob->flag (cf::FLAG_WIZLOOK, 1);
17
18 $ob->contr->do_los (1);
19 $ob->contr->ns->update_command_faces;
20
21 $ob->reply (undef, "Ok, you are the Dungeon Master!");
22
23 return 1;
24 }
25}
26
27sub hide($) {
28 my ($ob) = @_;
29
30 if ($ob->contr->hidden) {
31 $ob->contr->hidden (0);
32# $ob->invisible (1);
33
34 $ob->reply (undef, "You are no longer hidden!");
35 } else {
36 $ob->contr->hidden (1);
37
38 $ob->reply (undef, "You are now hidden!");
39 }
40}
41
42cf::register_command dm => sub {
43 my ($ob, $arg) = @_;
44
45 return unless $ob->may ("command_dm");
46
47 dm $ob
48 and $ob->reply (undef, "The Dungeon Master has arrived!", cf::NDI_UNIQUE | cf::NDI_ALL | cf::NDI_LT_GREEN);
49
50 1
51};
52
53cf::register_command dmhide => sub {
54 my ($ob, $arg) = @_;
55
56 return unless $ob->may ("command_dm");
57
58 dm $ob
59 and hide $ob;
60
61 1
62};
63
64cf::register_command hide => sub {
65 my ($ob, $arg) = @_;
66 return $ob->reply (undef, "Sorry, you are not the DM!")
67 unless $ob->flag (cf::FLAG_WIZ);
68
69 hide $ob;
70
71 1
72};
73
74cf::register_command nodm => sub {
75 my ($ob, $arg) = @_;
76 return $ob->reply (undef, "Sorry, you are not the DM!")
77 unless $ob->flag (cf::FLAG_WIZ);
78
79 $ob->contr->hidden
80 and hide $ob;
81
82 $ob->flag (cf::FLAG_WIZ , 0);
83 $ob->flag (cf::FLAG_WIZPASS, 0);
84 $ob->flag (cf::FLAG_WIZCAST, 0);
85 $ob->flag (cf::FLAG_WIZLOOK, 0);
86
87 $ob->contr->do_los (1);
88 $ob->contr->ns->update_command_faces;
89
90 1
91};
4 92
5cf::register_command shutdown => sub { 93cf::register_command shutdown => sub {
6 my ($ob, $arg) = @_; 94 my ($ob, $arg) = @_;
7 return $ob->reply (undef, "Sorry, you can't shutdown the server.") 95 return $ob->reply (undef, "Sorry, you can't shutdown the server.")
8 unless $ob->flag (cf::FLAG_WIZ); 96 unless $ob->flag (cf::FLAG_WIZ);
93cf::register_command wizlook => sub { 181cf::register_command wizlook => sub {
94 my ($ob, $arg) = @_; 182 my ($ob, $arg) = @_;
95 183
96 return unless $ob->may ("command_wizlook"); 184 return unless $ob->may ("command_wizlook");
97 185
186 my $new_val = length $arg ? $arg * 1 : !$ob->flag (cf::FLAG_WIZLOOK);
187
188 $ob->flag (cf::FLAG_WIZLOOK, $new_val);
189
98 $ob->contr->clear_los (0); 190 $ob->contr->do_los (1);
99 191
100 $ob->reply (undef, "You can temporarily see through walls."); 192 $ob->reply (undef,
193 $new_val
194 ? "You can now look through walls."
195 : "You will now see the same thing as you would normally.",
196 );
101 197
102 1 198 1
103}; 199};
104 200
105cf::register_command reset => sub { 201cf::register_command reset => sub {
106 my ($ob, $arg) = @_; 202 my ($ob, $arg) = @_;
107 203
108 return unless $ob->may ("command_reset"); 204 return unless $ob->may ("command_reset");
205
206 my $unique = $arg =~ s/^\s*--unique\s*//;
109 207
110 my $map = $ob->map; 208 my $map = $ob->map;
111 209
112 my @pl = $map->players; 210 my @pl = $map->players;
113 $_->enter_link for @pl; 211 $_->enter_link for @pl;
114 cf::async { 212 cf::async {
115 my $name = $map->visible_name; 213 my $name = $map->visible_name;
116 $Coro::current->{desc} = "reset $name"; 214 $Coro::current->{desc} = "reset $name";
117 215
216 $map->clear_unique_items if $unique;
118 $map->reset; 217 $map->reset;
218
119 $_->leave_link for @pl; 219 $_->leave_link for @pl;
120 220
121 $ob->reply (undef, "$name was reset."); 221 $ob->reply (undef, "$name was reset.");
122 }; 222 };
123 223

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines