I've got this as my bow projectile on collision.
It makes an arrow stick at the collision position for 5 seconds.
function arrowProjectile::onCollision(%this,%obj,%col,%fade,%pos,%normal)
{
if(%col.getClassName() $= "Player"){
if(getword(%pos, 2) > getword(%col.getWorldBoxCenter(), 2) - 3.3){
parent::onCollision(%this,%obj,%col,%fade,%pos,%normal);
}
}else{
%Arrow = new StaticShape()
{
position = %pos;
datablock = ArrowStuck;
scale = "1 1 1";
rotation = %obj.client.player.srot;
};
%Arrow.settransform(%obj.transform);
schedule(5000,0,"Arrowbewm", %Arrow);
}
parent::onCollision(%this,%obj,%col,%fade,%pos,%normal);
}
datablock StaticShapeData(ArrowStick)
{
category = "Static Shapes"; //Mission editor category
item = ArrowStick;
shapeFile = "add-ons/shapes/arrow.dts";
};
function Arrowbewm(%obj)
{
%obj.delete();
}