That's because it only executes that location once.
You can move your random into the HP event, or somewhere that it will be executed more than once. Another option is to set a timer and have your random execute again.
For example:
Code:
my $Random;
sub EVENT_SPAWN
{
quest::setnexthpevent(99);
}
sub EVENT_HP
{
if($hpevent == 99)
{
$Random = quest::ChooseRandom(Warrior,Cleric,Paladin,Ranger,Shadowknight,Druid,Monk,Bard,Rogue,Shaman,Necromancer,Wizard,Magician,Enchanter,Beastlord,Berserker);
quest::shout("Only The powers of a $Random can defeat me!");
}
}