You're going to want to add an "else" statement on that incase the player is in an illusion, so they get a desired pet race there as well.
I've been considering doing it this way as well, but you just saved me the time. Thanks!
Edit*
Quickly added the functionality to its own sub routine to make adding pet NPCID's less blocky:
Code:
sub EVENT_SPAWN {
if ($npc->GetNPCTypeID() == 837) {
PET_RACE();
}
# Next NPC ID here:
}
sub PET_RACE {
my $petowner = $entity_list->GetClientByID($npc->GetOwnerID());
if ($petowner->GetRace() == 1) { # Human
$npc->SetRace(468);
$npc->ChangeSize(12);
}
elsif ($petowner->GetRace() == 2) { # Barbarian
$npc->SetRace(528);
$npc->ChangeSize(4);
}
elsif ($petowner->GetRace() == 3) { # Erudite
$npc->SetRace(602);
$npc->ChangeSize(8);
}
elsif ($petowner->GetRace() == 4) { # Wood Elf
$npc->SetRace(64);
$npc->ChangeSize(7);
}
elsif ($petowner->GetRace() == 5) { # High Elf
$npc->SetRace(473);
$npc->ChangeSize(5);
}
elsif ($petowner->GetRace() == 6) { # Dark Elf
$npc->SetRace(365);
$npc->ChangeSize(8);
}
elsif ($petowner->GetRace() == 7) { # Half Elf
$npc->SetRace(560);
$npc->ChangeSize(7);
}
elsif ($petowner->GetRace() == 8) { # Dwarf
$npc->SetRace(16);
$npc->ChangeSize(6);
}
elsif ($petowner->GetRace() == 9) { # Troll
$npc->SetRace(259);
$npc->ChangeSize(8);
}
elsif ($petowner->GetRace() == 10) { # Ogre
$npc->SetRace(135);
$npc->ChangeSize(7);
}
elsif ($petowner->GetRace() == 11) { # Halfling
$npc->SetRace(321);
$npc->ChangeSize(6);
}
elsif ($petowner->GetRace() == 12) { # Gnome
$npc->SetRace(570);
$npc->ChangeSize(7);
}
elsif ($petowner->GetRace() == 128) { # Iksar
$npc->SetRace(389);
$npc->ChangeSize(7);
}
elsif ($petowner->GetRace() == 330) { # Froglok
$npc->SetRace(245);
$npc->ChangeSize(7);
}
elsif ($petowner->GetRace() == 522) { # Drakkin
$npc->SetRace(611);
$npc->ChangeSize(7);
}
else {
$npc->SetRace(611); # Change this to desired pet race
$npc->ChangeSize(7); # Change this to suit size
}
}