ViewVC Help
View File | Revision Log | Show Annotations | Download File
/cvs/cf.schmorp.de/maps/perl/tell.ext
Revision: 1.5
Committed: Sun May 7 08:10:23 2006 UTC (18 years, 2 months ago) by root
Branch: MAIN
CVS Tags: HEAD
Changes since 1.4: +0 -0 lines
State: FILE REMOVED
Log Message:
combined chat/Shout/tell/reply/ignore/unignore into a single extension

File Contents

# Content
1 #! perl
2
3 cf::register_command tell => 0, sub {
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 $other->ob->{ext_ignore_tell}{$name} >= time
12 or 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 $who->message ("No such player or ambiguous name. Your message: $msg", cf::NDI_UNIQUE);
26 }
27 };
28
29 cf::register_command reply => 0, sub {
30 my ($who, $args) = @_;
31 my $name = $who->name;
32
33 if (my $other = cf::player::find $who->{ext_last_tell}) {
34
35 $other->ob->{ext_ignore_tell}{$name} >= time
36 or delete $other->ob->{ext_ignore_tell}{$name};
37
38 if (!$other->ob->{ext_ignore_tell}{$name}) {
39 $who->message ("You tell " . $other->ob->name . ": $args");
40 $other->ob->message ("$name tells you: $args");
41 $who->{ext_last_tell} = $other->ob->name;
42 } else {
43 $who->message ($other->ob->name . " ignores what you say. Give up on it.", cf::NDI_UNIQUE);
44 }
45
46 } else {
47 $who->message ("Can't reply, player left. Your message: $args", cf::NDI_UNIQUE);
48 }
49 };
50
51