Sorvani is exactly right. Since the timer event itself is triggered by a timer and not by a client, there is no way for it to know which client to update. Your best bet is probably to have the NPC send a signal to player.pl and then update your task from there for anyone that has it.
Basically, you would remove the line that updates the task activity and insteal put the line below:
Code:
$npc->SignalAllClients(1);
That will send a signal of 1 to all clients in the zone. Then, you would make a player.pl file and add the following sub:
player.pl
Code:
sub EVENT_SIGNAL {
if ($signal == 1)
{
my $IsTaskActive = quest::istaskactivityactive(248, 2);
if ($IsTaskActive == 1) {
quest::updatetaskactivity(248, 3);
}
}
}
I think that should do what you are wanting, but I didn't test it so you may need to work with it a little.