also, it doesn't spread.
function armor::onTrigger(%this, %obj, %triggerNum, %val)
{
%mount = %obj.getObjectMount();
if(isObject(%mount))
{
if(%mount.getDataBlock() == CrocodileTurretPlayer.getId() && %triggerNum == 0 && %val)
{
%client = %obj.client;
if(isObject(%client))
ServerCmdUnUseTool(%client);
if(getSimTime() - %obj.lastShotTime < 30)
return;
%scaleFactor = getWord(%mount.getScale(), 2);
%p = new Projectile()
{
dataBlock = CrocodileProjectile;
initialPosition = vectorAdd(%mount.getEyeTransform(),vectorScale(%mount.getEyeVector(),3));
initialVelocity = vectorScale(%mount.getEyeVector(),140 * %scaleFactor);
sourceObject = %obj;
client = %obj.client;
sourceSlot = 0;
originPoint = vectorAdd(%mount.getEyeTransform(),vectorScale(%mount.getEyeVector(),3));
};
MissionCleanup.add(%p);
%p.setScale(%scaleFactor SPC %scaleFactor SPC %scaleFactor);
%theVector = %mount.getEyeVector();
%theVector = vectorAdd(%theVector,"0 0 1");
%theVector = vectorScale(%theVector,%mount.getObjectMount().dataBlock.mass*5);
%theVector = vectorSub(%theVector,vectorScale(%thevector,2));
%theVector = vectorAdd(%theVector, getRandom(-15, 15) SPC getRandom(-15, 15) SPC getRandom(-15, 15));
%mount.getObjectMount().applyImpulse(getWords(%mount.getEyeTransform(),0,2),%theVector);
%obj.playThread(0,activate);
%obj.lastShotTime = getSimTime();
return;
}
}
Parent::onTrigger(%this,%obj,%triggerNum,%val);
}