Here is a solution to your issue.
When Trevius originally got this packet working he made it so there was an option to send these to an individual client.
So, assuming that your particle is 'static' as in, you send it once it stays for the client, this is what you can do.
Initially, send your particle packet just like you are with the NPC as it is.
And then for clients that zone in, you will need to send the particle to them so that they get the static particle spawned on their screen as well, BUT you only want to send it to that specific client so that you don't have the overlapping particle mess appear on other clients.
Code:
Perl_croak(aTHX_ "Usage: Mob::SendAppearanceEffect(THIS, parm1, parm2, parm3, parm4, parm5, singleclient)");
So, how does this end up looking? You need to get a little fancy and control the NPC from the player script.
Something like this.
player.pl
Code:
sub EVENT_ENTERZONE{
#::: Make sure your npc_id is your particle npc (Assuming it is unique and there arent multiple of the same NPC)
$entity_list->GetNPCByNPCTypeID(npc_id)->SendAppearanceEffect(346, 0, 0, 0, 0, $client);
}
So to break down what I'm doing, I'm fetching the entity with the entity_list method which means I can then cast methods to it like if I was performing commands on it via the NPC's script.
Does that make sense?