Nice work!
Alternately, you could also just modify command_reloadqst to
Code:
void command_reloadqst(Client *c, const Seperator *sep)
{
#ifdef EMBPERL
if (c->GetTarget() == 0 || !c->GetTarget()->IsNPC())
{
c->Message(0, "Error: Bad target");
return;
}
c->Message(0, "Reloading perl quest script for NPC type %i.",
c->GetTarget()->GetNPCTypeID());
((PerlembParser *)parse)->LoadScript(c->GetTarget()->GetNPCTypeID(), zone->GetShortName());
#else
parse->ClearCache();
c->Message(0, "Clearing *.qst memory cache.");
#endif
And have #reloadqst reload either old qst or perl depending on which is being used...