--- cf.schmorp.de/maps/perl/schmorp-neko.ext 2006/02/08 05:22:41 1.2 +++ cf.schmorp.de/maps/perl/schmorp-neko.ext 2006/02/09 05:06:17 1.8 @@ -22,10 +22,8 @@ my ($data) = @_; if (my $pl = $data->{who}->nearest_player) { - if ($pl->level >= 10) { - my (undef, undef, undef, $dir, undef) = $data->{who}->direction ($pl); - $data->{who}->move ($data->{who}, $dir); - } + my (undef, undef, undef, $dir, undef) = $data->{who}->rangevector ($pl); + $data->{who}->move ($dir); } 1 @@ -34,20 +32,27 @@ sub on_attack { my ($data) = @_; - cf::LOG cf::llevDebug, sprintf "QBERT Neko-san was attacked by %s!", $data->{activator}->name; + $data->{activator}{neko_attack}++ + or cf::LOG cf::llevDebug, sprintf "QBERT Neko-san was attacked by %s!\n", $data->{activator}->name; - $data->{activator}->message ("Neko-san is suddenly gone!"); - teleport $data->{activator}, "/scorn/misc/scorn_illusions", 15, 7; - $data->{activator}->message ("You hear strange noises all around you..."); - $data->{activator}->message ("You feel dumb."); + $data->{activator}->message ("Meoow! (Please do not hurt me)") + if !($data->{activator}{neko_attack} & 15); - 0 + if ($data->{activator}{neko_attack} > 512) { + $data->{activator}{neko_attack} -= 128; + $data->{activator}->message ("Neko-san is suddenly gone!"); + teleport $data->{activator}, "/scorn/misc/scorn_illusions", 15, 7; + $data->{activator}->message ("You hear strange noises all around you..."); + $data->{activator}->message ("You feel dumb."); + } + + 1 } sub on_say { my ($data) = @_; - cf::LOG cf::llevDebug, "QBERT [Neko-fon] $data->{message}"; + cf::LOG cf::llevDebug, sprintf "QBERT [Neko-fon] %s: %s\n", $data->{activator}->name, $data->{message}; 0 }