Yeah, EVENT_TIMER does not pass the client information, because it doesn't know which client it should be passing to the timer. You would probably just want to get the NPC's target, check if it is a client, and if so, get the faction value for that client with the faction ID that the NPC uses. The script below should work for what you are wanting to do. You will need to put the NPC's faction ID where it says "faction_id" so it knows which faction it is looking up the value for against the client.
Code:
my $target_faction = 999999; # Random high number that is > 6
my $target = $npc->GetTarget();
if ($target && $target->IsClient())
{
$target_faction = $target->GetCharacterFactionLevel(faction_id); # Set "faction_id" to the NPC's faction id
}
I haven't tested that script, but it should work for getting the faction in the timer as you are trying to do. You would then check if $target_faction is <= 6 or whatever.