I haven't practice changing skin for models but I have suggestion for your problem. It just need some passion and not so professional.
You can create hundreds of ent_create("myLight.tga", .....) and then set all to INVISIBLE. Position them along your model (as what you call arm). Then switch the set/reset(MyLight[x],INVISIBLE).
P/S: When I first look at ur posting, I thought the picture is graphics rendered by Gamestudio with super complicated shader and lightings.
That's one of the options, now i'm using this:
BMAP* arm = "lampjes1.tga";
bmap_to_format(bmap_load(bmap_for_entity(my,1),"lampjes1.tga",0),888);
But it's not showing correctly the texture, i need to set the material to no alpha 24-bit, but's not show correctly..
P/S: That image isn't gamestudio, its a real picture from a fairground
