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 |
}; |