The dust is also caused by the fine particles that settle on the clothes. The fine particles are usually caused by a nearby explosion that damaged a concrete, or brick building. There may be large chunks flying from the wall of the building, but there are also millions of tiny particles that fly off also and easily settle in the lining of the soldiers clothes.
Perhaps something to notice would be that there should be less 'dust' from the soldier every time he his shot. That might need to be incorporated into the script.
I believe that there will be one problem that the scripter may encounter.
It being that it is very difficult to find out where the bullet may have hit the soldier.
One way to avoid this would be to get the velocity of the bullet, and calculate the most likely point of impact. I'm not sure exactly how to do this myself, but if the scripter might want to look more into vector mathmatics.
This site might either help to brush up on vector mathmatics, or get you to know how it all works.
http://www.physics.uoguelph.ca/tutorials/vectors/vectors.htmlI'm not sure if the velocities that OFP return will be easy to apply here, so this might not be the best choice, in fact I wouldn't recommend it at all.
The second solution to the problem could also be to use the "hit" eventHandler. I believe that the event handler can return the body part where the bullet hit. This is a bit less accurate than the vector mathmatics, but most likely will suit most of your needs