ViewVC Help
View File | Revision Log | Show Annotations | Download File
/cvs/deliantra/maps/perl/tell.ext
Revision: 1.2
Committed: Sat May 6 20:29:44 2006 UTC (18 years ago) by pippijn
Branch: MAIN
Changes since 1.1: +27 -2 lines
Log Message:
Implemented 'reply' command.

File Contents

# Content
1 #! perl
2 cf::register_command tell => 0, sub
3 {
4 my ($who, $args) = @_;
5 my ($target, $msg) = split /\s+/, $args, 2;
6
7 my $name = $who->name;
8
9 if (my $other = cf::player::find $target)
10 {
11 if ($other->ob->{ext_ignore_tell}{$name} < time) {
12 delete $other->ob->{ext_ignore_tell}{$name};
13 }
14 if ($target ne $name and !$other->ob->{ext_ignore_tell}{$name}) {
15 $who->message ("You tell $target: $msg");
16 $other->ob->message ("$name tells you: $msg");
17 $other->ob->{ext_last_tell} = $name;
18 } elsif ($target eq $name) {
19 $who->message ("You are talking to yourself, you freak!", cf::NDI_UNIQUE);
20 } else {
21 $who->message ($other->ob->name." ignores what you say. Give up on it.", cf::NDI_UNIQUE);
22 }
23 }
24 else
25 {
26 $who->message ("No such player or ambiguous name. Your message: ".$msg,
27 cf::NDI_UNIQUE);
28 }
29 };
30
31 cf::register_command reply => 0, sub
32 {
33 my $name = $who->name;
34
35 if (my $other = cf::player::find $who->{ext_last_tell})
36 {
37 if ($other->ob->{ext_ignore_tell}{$name} < time) {
38 delete $other->ob->{ext_ignore_tell}{$name};
39 }
40 if (!$other->ob->{ext_ignore_tell}{$name}) {
41 $who->message ("You tell $target: $_");
42 $other->ob->message ("$name tells you: $_");
43 $who->{ext_last_tell} = $other->ob->name;
44 } else {
45 $who->message ($other->ob->name." ignores what you say. Give up on it.", cf::NDI_UNIQUE);
46 }
47 }
48 else
49 {
50 $who->message ("Can't reply, player left. Your message: ".$_,
51 cf::NDI_UNIQUE);
52 }
53 };