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

# User Rev Content
1 pippijn 1.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 pippijn 1.2 $other->ob->{ext_last_tell} = $name;
18 pippijn 1.1 } 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 pippijn 1.2 $who->message ("No such player or ambiguous name. Your message: ".$msg,
27 pippijn 1.1 cf::NDI_UNIQUE);
28     }
29 pippijn 1.2 };
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     };