ViewVC Help
View File | Revision Log | Show Annotations | Download File
/cvs/deliantra/maps/perl/tell.ext
Revision: 1.3
Committed: Sat May 6 20:38:56 2006 UTC (18 years ago) by pippijn
Branch: MAIN
Changes since 1.2: +4 -3 lines
Log Message:
Fixed bug

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 ($who, $args) = @_;
34 my $name = $who->name;
35
36 if (my $other = cf::player::find $who->{ext_last_tell})
37 {
38 if ($other->ob->{ext_ignore_tell}{$name} < time) {
39 delete $other->ob->{ext_ignore_tell}{$name};
40 }
41 if (!$other->ob->{ext_ignore_tell}{$name}) {
42 $who->message ("You tell ".$other->ob->name.": $args");
43 $other->ob->message ("$name tells you: $args");
44 $who->{ext_last_tell} = $other->ob->name;
45 } else {
46 $who->message ($other->ob->name." ignores what you say. Give up on it.", cf::NDI_UNIQUE);
47 }
48 }
49 else
50 {
51 $who->message ("Can't reply, player left. Your message: ".$args,
52 cf::NDI_UNIQUE);
53 }
54 };