package riotarmor
{
function ProjectileData::damage(%this,%obj,%col,%fade,%pos,%normal)
{
if(%col.riotarmor)
{
%shielded = 0;
if(%col.getType() & $TypeMasks::PlayerObjectType)
{
%scale = getWord(%col.getScale(),2);
%fvec = %col.getForwardVector();
%fX = getWord(%fvec,0);
%fY = getWord(%fvec,1);
%evec = %col.getEyeVector();
%eX = getWord(%evec,0);
%eY = getWord(%evec,1);
%eZ = getWord(%evec,2);
%eXY = mSqrt(%eX*%eX+%eY*%eY);
%aimVec = %fX*%eXY SPC %fY*%eXY SPC %eZ;
if(%eZ > 0.75)
%shielded = (getword(%pos, 2) < getword(%col.getWorldBoxCenter(),2) - 4.4*%scale);
else if(%ez < -0.75)
%shielded = (getword(%pos, 2) > getword(%col.getWorldBoxCenter(),2) - 3.3*%scale);
else
%shielded = (vectorDot(vectorNormalize(%obj.getVelocity()),%aimVec) > 0);
%reflectVector = vectorScale(%col.getForwardVector(),-1);
%reflectPoint = vectorAdd(%col.getHackPosition(),%reflectVector);
if(%shielded)
{
serverPlay3d(kevlarImpactSound,%pos);
================ %col.player.addhealth(-5);
%scaleFactor = getWord(%obj.getScale(), 2);
%pos = %reflectPoint;
%vec = vectorScale(%reflectVector,vectorLen(%obj.getVelocity()));
%vel = vectorAdd(%vec,vectorScale(%col.getVelocity(),%obj.dataBlock.velInheritFactor));
%p = new Projectile()
{
dataBlock = %obj.dataBlock;
initialPosition = %pos;
initialVelocity = %vel;
sourceObject = %obj;
client = %col.client;
sourceSlot = 0;
originPoint = %pos;
reflectTime = getSimTime();
};
MissionCleanup.add(%p);
%p.setScale(%scaleFactor SPC %scaleFactor SPC %scaleFactor);
%obj.schedule(10,delete);
return;
}
}
}
return Parent::damage(%this,%obj,%col,%fade,%pos,%normal);
}
};
if(isPackage(riotarmor))
deactivatePackage(riotarmor);
activatepackage(riotarmor);
I'm trying to make some riot armor for your back and i want you to lose 5 health when colliding with your back but it just gives me error messages
What is wrong with the line with a bunch of equal signs?
it works without the %col.player.addhealth(-5);
(the equal signs aren't actually used in the script huurr)