I didn't fully test this for you, it looks like I messed up the "my" part of declaring the variables $x, $y and $z. Here's the fix (i think, still didn't test it).
@ is perl for array and each /loc is an array that gets loaded into x,y,z from
the chooserandom function
Code:
sub EVENT_ATTACK {
my @warp1 = (212.9, 2628.3, 67.2);
my @warp2 = (220.8, 2708.3, 67.1);
my @warp3 = (258.9, 2712.3, 67.1);
my @warp4 = (243.3, 2658.4, 67.1);
my @warp5 = (223.8, 2658.4, 67.1);
my @warp6 = (271.9, 2604.8, 67.1);
my @warp7 = (318.4, 2678.8, 67.1);
my @warp8 = (370.4, 2677.7, 76.1);
my($x, $y, $z)=quest::ChooseRandom(@warp1,@warp2,@warp3,@warp4,@warp5,@warp6,@warp7,@warp8);
$npc->SendTo($x, $y, $z);
}