Well, you should be fine if you just create the effect at the location of every player and update it so it stays at the player's location. You don't gain anything by putting it at static locations really. The issue with putting it at the position of the player's vehicle is that that position can be significantly different to that of the player's eye (as you move, the particles will be created at your feet and you'll never see them since you will have moved by the time they have drifted up. You also need to keep it there, so the player can always see it. I'd suggest placing it, and keeping it, just in front of the player's eyes:
_dust = "#particlesource" createVehicleLocal getpos vehicle player;
_dust setParticleParams [["\Ca\Data\Cl_basic.p3d", 1, 0, 1], "", "Billboard", 1, 10, [1, 0, 0], [0,0,0], 5, 0.2, 0.1568, 0.0, [20, 20], [[0.7,0.6,0.5,0.0],[0.7,0.6,0.5,0.2],[0.7,0.6,0.5,0.0]], [0, 1], 1, 0, "", "", nil];
_dust setParticleRandom [0, [100, 100, 0], [0, 0, 0], 0, 0, [0, 0, 0, 0], 0, 0];
_dust setDropInterval 0.01;
waitUntil
{
_dust setPos positionCameraToWorld [0, 0, 1]; // Place 1m in front of player's eyes, so should cover view entirely.
false; // Run forever.
};
This method also has the advantage of working if the player is seeing a cut-scene or other camera effect (such as SPON RearView). You may be able to get away with creating particles less often (higher value in setDropInterval) since all the particles will be in the player's view and you wouldn't need to make it as a circle. Probably need to play around with all the parameters in this case to get it looking good though. I'm just pushing you in the direction I would probably go...