Edit what's in red, pay close attention to what's in blue.
function YourWeaponImage::someRandomScriptName(%this, %obj, %slot)
{
%obj.damageModifier = AMOUNT;
}
function YourWeaponImage::onFire(%this, %obj, %slot)
{
%vector = %obj.getMuzzleVector(%slot);
%objectVelocity = %obj.getVelocity();
%vector1 = VectorScale(%vector, %this.projectile.muzzleVelocity);
%vector2 = VectorScale(%objectVelocity, %this.projectile.velInheritFactor);
%velocity = VectorAdd(%vector1,%vector2);
%mat = MatrixCreateFromEuler(0 SPC 0 SPC 0);
%velocity = MatrixMulVector(%mat, %velocity);
%p = new Projectile()
{
dataBlock = %this.projectile.getDatablock();
initialVelocity = %velocity;
initialPosition = %obj.getMuzzlePoint(%slot);
sourceObject = %obj;
modifier = %obj.damageModifier;
client = %obj.client;
sourceSlot = %slot;
};
}
function YourProjectile::Damage(%this, %obj, %col, %fade, %pos, %normal)
{
if(strPos(%col.getClassName(), "Player") != -1)
{
%amount = %this.directDamage * %obj.modifier;
%col.damage(%obj.sourceObject, %pos, %amount, $DamageType::YourDamageType);
}
}