Here's my easy script that accomplishes preventing players from skipping other dragons in Ashengate. When engaging the final npc, if any of the other dragons are still alive, it does not despawn and replace itself with the correct version. This version also rapidly DT's (done with spell list assignment).
Code:
#1759 Scorchwing the Magma Inferno DT
sub EVENT_AGGRO {
if (!$entity_list->GetMobByNpcTypeID(1750) && !$entity_list->GetMobByNpcTypeID(1752) && !$entity_list->GetMobByNpcTypeID(1754) && !$entity_list->GetMobByNpcTypeID(1755) && !$entity_list->GetMobByNpcTypeID(1757) && !$entity_list->GetMobByNpcTypeID(1761) && !$entity_list->GetMobByNpcTypeID(1762) && !$entity_list->GetMobByNpcTypeID(1763)) {
quest::spawn2(1765,0,0,$x,$y,$z,$h);
quest::depop_withtimer();
}
}