Replied to your PM, but, posting here all to see:
Code:
sub EVENT_SPAWN {
## both arrays below should have same number of elements, in pairs
my @npcraces = (367, 420, 454, 458, 464, 466, 467, 469);
my @npcsizes = (5, 3, 7, 4, 6, 5, 5, 4);
my $elementselected = quest::ChooseRandom(0..((scalar @npcraces) - 1));
quest::npcrace($npcraces[$elementselected]);
quest::npcsize($npcsizes[$elementselected]);
quest::npcgender(quest::ChooseRandom(0..1));
}
## or
sub EVENT_SPAWN {
# keys start at 1, add as many key/value pairs as you'd like, first element in array is race, second is size
%SpawnHash = (
1 => [367, 5],
2 => [420, 3],
3 => [454, 7],
4 => [458, 4],
);
my $selectedkey = quest::ChooseRandom(1..(scalar keys %SpawnHash));
quest::npcrace($SpawnHash[$selectedkey][0]);
quest::npcsize($npcsizes[$selectedkey][1]);
quest::npcgender(quest::ChooseRandom(0..1)); # in case you wouldn't want to deal with it in the hash
}
## or
sub EVENT_SPAWN {
# keys start at 1, add as many key/value pairs as you'd like, first element in array is race, second is size, third is gender
%SpawnHash = (
1 => [367, 5, 0],
2 => [420, 3, 1],
3 => [454, 7, 1],
4 => [458, 4, 0],
);
my $selectedkey = quest::ChooseRandom(1..(scalar keys %SpawnHash));
quest::npcrace($SpawnHash[$selectedkey][0]);
quest::npcsize($SpawnHash[$selectedkey][1]);
quest::npcgender($SpawnHash[$selectedkey][2]);
}