ViewVC Help
View File | Revision Log | Show Annotations | Download File
/cvs/deliantra/maps/perl/eval.ext
(Generate patch)

Comparing deliantra/maps/perl/eval.ext (file contents):
Revision 1.1 by root, Fri Mar 31 20:21:19 2006 UTC vs.
Revision 1.2 by root, Fri Mar 31 20:43:18 2006 UTC

1#! perl 1#! perl
2 2
3# generic perl code evaluator 3# generic perl code evaluator
4 4
5sub eval_event {
6 my ($event, $args, @args) = @_;
7
8 my $code = $event->message;
9 my $who = eval { $event->environment->name } || "<unknown>";
10
11 my $rv = eval "my ($args) = \@args;\n"
12 . "#line 1 \"$who\"\n"
13 . $code;
14
15 warn $@ if $@;
16
17 $rv
18}
19
5# currently say only 20# currently say only
6sub on_say { 21sub on_say {
7 my ($event) = @_; 22 my ($event) = @_;
8 my ($event, $ob, $msg, $options) = @$event{qw(event who message options)}; 23 my ($event, $who, $msg, $options) = @$event{qw(event who message options)};
9 24
10 local $_ = $msg; 25 local $_ = $msg;
11 eval $event->message 26
27 eval_event $event, '$who, $msg, $options', $who, $msg, $options
12} 28}

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines