Author Topic: Where is the syntax error?  (Read 2461 times)

Can somebody please tell me where is it?
Code: [Select]
package ProjectileDismemberment
{
   function ProjectileData::damage(%this, %obj, %col, %fade, %pos, %normal)
   {
   parent::damage(%this, %obj, %col, %fade, %pos, %normal);
      if(%col.gettype() & $TypeMasks::PlayerObjectType && fileName(%col.dataBlock.shapeFile) $= "m.dts")
   {
      %fvec = %col.getForwardVector();
      %vec1 = -getWord(%fvec,1) SPC getWord(%fvec,0) SPC 0;
      %vec2 = vectorNormalize(%obj.initialVelocity);
     
      %damloc = (vectorDot(%vec1,%vec2) > 0);
     
      %scale = getWord(%col.getScale(),2);
      if(getword(%pos, 2) > getword(%col.getWorldBoxCenter(), 2) - 3.3*%scale)
      {
            %obj.setNodeColor("headskin","0.7 0 0 1");
         if(!%col.disHead)
            {
         %proj = new Projectile()
            {
               scale = %col.getScale();
               dataBlock = aaaaaaaaaaaaaaaaaa;
               initialVelocity = %col.getVelocity();
               initialPosition = %col.getPosition();
               sourceObject = %col;
               sourceSlot = 0;
               client = %col.client;
            };
            MissionCleanup.add(%proj);
            }
         for(%i=0;$hat[%i] !$= "";%i++) %hidestr = %hidestr SPC $hat[%i];
         for(%i=0;$accent[%i] !$= "";%i++) %hidestr = %hidestr SPC $accent[%i];
      }
      else if(getword(%pos, 2) > getword(%col.getWorldBoxCenter(), 2) - 4.5*%scale)
      {
         if(%damLoc == 0)
         {
            %obj.setNodeColor("lhand lhook larm larmslim","0.7 0 0 1");
            if(!%col.dislhand)
            {
            %proj = new Projectile()
            {
               scale = %col.getScale();
               dataBlock = aaaaaaaaaaaaaaaaaa;
               initialVelocity = %col.getVelocity();
               initialPosition = %col.getPosition();
               sourceObject = %col;
               sourceSlot = 0;
               client = %col.client;
            };
            MissionCleanup.add(%proj);
            %proj = new Projectile()
            {
               scale = %col.getScale();
               dataBlock = aaaaaaaaaaaaaaaaaa;
               initialVelocity = %col.getVelocity();
               initialPosition = %col.getPosition();
               sourceObject = %col;
               sourceSlot = 0;
               client = %col.client;
            };
            MissionCleanup.add(%proj);
            }
         }
         else
         {
            %obj.setNodeColor("rhand rhook rarm rarmslim","0.7 0 0 1");
            if(!%col.dishand)
            {
            %col.dishand = 1;
            %proj = new Projectile()
            {
               scale = %col.getScale();
               dataBlock = aaaaaaaaaaaaaaaaaa;
               initialVelocity = %col.getVelocity();
               initialPosition = %col.getPosition();
               sourceObject = %col;
               sourceSlot = 0;
               client = %col.client;
            };
            MissionCleanup.add(%proj);
            %proj = new Projectile()
            {
               scale = %col.getScale();
               dataBlock = aaaaaaaaaaaaaaaaaa;
               initialVelocity = %col.getVelocity();
               initialPosition = %col.getPosition();
               sourceObject = %col;
               sourceSlot = 0;
               client = %col.client;
            };
            MissionCleanup.add(%proj);
         }
         }
      }
      else
      {
         if(%damLoc == 0)
         {
            %obj.setNodeColor("lshoe lpeg","0.7 0 0 1");
            if(!%col.dislfoot)
            {
            %proj = new Projectile()
            {
               scale = %col.getScale();
               dataBlock = aaaaaaaaaaaaaaaaaa;
               initialVelocity = %col.getVelocity();
               initialPosition = %col.getPosition();
               sourceObject = %col;
               sourceSlot = 0;
               client = %col.client;
            };
            MissionCleanup.add(%proj);
            }
         }
         else
         {
            %obj.setNodeColor("rshoe rpeg","0.7 0 0 1");
            if(!%col.disfoot)
            {
            %proj = new Projectile()
            {
               scale = %col.getScale();
               dataBlock = aaaaaaaaaaaaaaaaaa;
               initialVelocity = %col.getVelocity();
               initialPosition = %col.getPosition();
               sourceObject = %col;
               sourceSlot = 0;
               client = %col.client;
            };
            MissionCleanup.add(%proj);
            }
          else
           {
            %obj.setNodeColor("chest","0.7 0 0 1");
            if(!%col.dischest)
            {
            %proj = new Projectile()
            {
               scale = %col.getScale();
               dataBlock = aaaaaaaaaaaaaaaaaa;
               initialVelocity = %col.getVelocity();
               initialPosition = %col.getPosition();
               sourceObject = %col;
               sourceSlot = 0;
               client = %col.client;
            };
            MissionCleanup.add(%proj);
            }
         }
      }
     
      if(%col.dismembermentUnhideStr $= "")
         %col.dismembermentUnhideStr = "START";
     
      for(%i=0;%i<getWordCount(%hidestr);%i++)
      {
         %node = getWord(%hidestr,%i);
         if(%col.isNodeVisible(%node) && strStr(%col.dismembermentUnhideStr," " @ %node) == -1)
            %col.dismembermentUnhideStr = %col.dismembermentUnhideStr SPC %node;
         
         %col.hideNode(%node);
      }
     
      cancel(%col.dismembermentResetSched);
      %col.dismembermentResetSched = %col.schedule(5000,dismembermentReset);
   }

   //return Parent::Damage(%this, %obj, %col, %fade, %pos, %normal);
   }

   function WeaponImage::onRaycastDamage(%this,%obj,%slot,%col,%pos,%normal,%shotVec,%crit)
   {
      parent::onRaycastDamage(%this,%obj,%slot,%col,%pos,%normal,%shotVec,%crit);
     if(%col.gettype() & $TypeMasks::PlayerObjectType && fileName(%col.dataBlock.shapeFile) $= "m.dts")
   {
      %fvec = %col.getForwardVector();
      %vec1 = -getWord(%fvec,1) SPC getWord(%fvec,0) SPC 0;
      %vec2 = vectorNormalize(%obj.initialVelocity);
     
      %damloc = (vectorDot(%vec1,%vec2) > 0);
     
      %scale = getWord(%col.getScale(),2);
      if(getword(%pos, 2) > getword(%col.getWorldBoxCenter(), 2) - 3.3*%scale)
      {
         %hidestr = "headskin";
         if(!%col.disHead)
            {
            %col.dishead =1;
            %col.kill();
         %proj = new Projectile()
            {
               scale = %col.getScale();
               dataBlock = DismemExplosionProjectile;
               initialVelocity = %col.getVelocity();
               initialPosition = %col.getPosition();
               sourceObject = %col;
               sourceSlot = 0;
               client = %col.client;
            };
            MissionCleanup.add(%proj);
            }
         for(%i=0;$hat[%i] !$= "";%i++) %hidestr = %hidestr SPC $hat[%i];
         for(%i=0;$accent[%i] !$= "";%i++) %hidestr = %hidestr SPC $accent[%i];
      }
      else if(getword(%pos, 2) > getword(%col.getWorldBoxCenter(), 2) - 4.5*%scale)
      {
         if(%damLoc == 0)
         {
            %hidestr = "lhand lhook larm larmslim";
            if(!%col.dislhand)
            {
            %col.disLhand = 1;
            %proj = new Projectile()
            {
               scale = %col.getScale();
               dataBlock = DismemLHandProjectile;
               initialVelocity = %col.getVelocity();
               initialPosition = %col.getPosition();
               sourceObject = %col;
               sourceSlot = 0;
               client = %col.client;
            };
            MissionCleanup.add(%proj);
            %proj = new Projectile()
            {
               scale = %col.getScale();
               dataBlock = DismemshoulderProjectile;
               initialVelocity = %col.getVelocity();
               initialPosition = %col.getPosition();
               sourceObject = %col;
               sourceSlot = 0;
               client = %col.client;
            };
            MissionCleanup.add(%proj);
            }
         }
         else
         {
            %hidestr = "rhand rhook rarm rarmslim";
            if(!%col.dishand)
            {
            %col.dishand = 1;
            %proj = new Projectile()
            {
               scale = %col.getScale();
               dataBlock = DismemHandProjectile;
               initialVelocity = %col.getVelocity();
               initialPosition = %col.getPosition();
               sourceObject = %col;
               sourceSlot = 0;
               client = %col.client;
            };
            MissionCleanup.add(%proj);
            %proj = new Projectile()
            {
               scale = %col.getScale();
               dataBlock = DismemshoulderProjectile;
               initialVelocity = %col.getVelocity();
               initialPosition = %col.getPosition();
               sourceObject = %col;
               sourceSlot = 0;
               client = %col.client;
            };
            MissionCleanup.add(%proj);
         }
         }
      }
      else
      {
         if(%damLoc == 0)
         {
            %hidestr = "lshoe lpeg";
            if(!%col.dislfoot)
            {
            %col.disLfoot = 1;
            %col.setCrouching(1);
            %proj = new Projectile()
            {
               scale = %col.getScale();
               dataBlock = DismemFootProjectile;
               initialVelocity = %col.getVelocity();
               initialPosition = %col.getPosition();
               sourceObject = %col;
               sourceSlot = 0;
               client = %col.client;
            };
            MissionCleanup.add(%proj);
            }
         }
         else
         {
            %hidestr = "rshoe rpeg";
            if(!%col.disfoot)
            {
            %col.disfoot = 1;
            %col.setCrouching(1);
            %proj = new Projectile()
            {
               scale = %col.getScale();
               dataBlock = DismemFootProjectile;
               initialVelocity = %col.getVelocity();
               initialPosition = %col.getPosition();
               sourceObject = %col;
               sourceSlot = 0;
               client = %col.client;
            };
            MissionCleanup.add(%proj);
            }
         }
      }
     
      if(%col.dismembermentUnhideStr $= "")
         %col.dismembermentUnhideStr = "START";
     
      for(%i=0;%i<getWordCount(%hidestr);%i++)
      {
         %node = getWord(%hidestr,%i);
         if(%col.isNodeVisible(%node) && strStr(%col.dismembermentUnhideStr," " @ %node) == -1)
            %col.dismembermentUnhideStr = %col.dismembermentUnhideStr SPC %node;
         
         %col.hideNode(%node);
      }
     
      cancel(%col.dismembermentResetSched);
      %col.dismembermentResetSched = %col.schedule(5000,dismembermentReset);
   }
   }
};
activatepackage(ProjectileDismemberment);

datablock DebrisData(dismemheadDebris)
{
   emitters = smallBloodEmitter;

   shapeFile = "./head.dts";
   lifetime = 6.0;
   minSpinSpeed = -400.0;
   maxSpinSpeed = 200.0;
   elasticity = 0.5;
   friction = 0.2;
   numBounces = 3;
   staticOnMaxBounce = true;
   snapOnMaxBounce = false;
   fade = true;
   gravModifier = 2;
};
datablock DebrisData(dismemhandDebris : dismemheadDebris)
{
   emitters = smallBloodEmitter;

   shapeFile = "./hand.dts";
};
datablock DebrisData(dismemhandLeftDebris : dismemheadDebris)
{
   emitters = smallBloodEmitter;

   shapeFile = "./handLeft.dts";
};
datablock DebrisData(dismemshoulderDebris : dismemheadDebris)
{
   emitters = smallBloodEmitter;

   shapeFile = "./shoulder.dts";
};
datablock DebrisData(dismemfootDebris : dismemheadDebris)
{
   emitters = smallBloodEmitter;

   shapeFile = "./foot.dts";
};
datablock ProjectileData(DismemExplosionProjectile)
{
   projectileShapeName = "base/data/shapes/empty.dts";
   directDamage     = 10;
   directDamageType = $DamageType::Default; //Damagetype default actually does no damage
   radiusDamageType = $DamageType::Default;
   impactImpulse    = 10;
   verticalImpulse  = 10;
   explosion        = dismemExplosion;

   brickExplosionRadius            = 0;
   brickExplosionImpact            = false;
   brickExplosionForce             = 0;
   brickExplosionMaxVolume         = 0;
   brickExplosionMaxVolumeFloating = 0;

   muzzleVelocity   = 1;
   velInheritFactor = 1;

   lifetime         = 10;
   bounceElasticity = 0;
   bounceFriction   = 0;
   isBallistic    = false;
   explodeOnDeath = true;
   hasLight       = false;
};
datablock ExplosionData(dismemExplosion) //Gotta make sub-explosions first because an explosion has to exist to be a part of another explosion...
{
   lifetimeMS = 33;
   particleEmitter = "goreEmitter";
   debrisNumVariance      = 0;
   debrisPhiMin           = 0;
   debrisPhiMax           = 360;
   debrisThetaMin         = 5;
   debrisThetaMax         = 105;
   debrisVelocity         = 5;
   debrisVelocityVariance = 1;

   debris = dismemheadDebris;
   debrisNum = 1;

   faceViewer     = true;
   explosionScale = "1 1 1";

   shakeCamera = false;

   lightStartRadius = 0;
   lightEndRadius = 0;

   impulseRadius = 100;
   impulseForce = 100;

   radiusDamage = 0;
   damageRadius = 0;
};
datablock ExplosionData(dismemExplosionFoot : dismemExplosion)
{
   particleEmitter = "goreEmitter";
   debris = dismemfootDebris;
   debrisNum = 1;
   lifeTimeMS = 500;
   particleDensity = 45;
   particleRadius  = 2.5;
};
datablock ProjectileData(DismemFootProjectile : DismemExplosionProjectile)
{
   particleEmitter = "goreEmitter";
 explosion = dismemExplosionFoot; 
};
datablock ExplosionData(dismemExplosionShoulder : dismemExplosion)
{
   particleEmitter = "goreEmitter";
   debris = dismemshoulderDebris;
   debrisNum = 1;
   lifeTimeMS = 500;
   particleDensity = 45;
   particleRadius  = 2.5;
};
datablock ProjectileData(DismemShoulderProjectile : DismemExplosionProjectile)
{
   particleEmitter = "goreEmitter";
 explosion = dismemExplosionShoulder; 
};
datablock ExplosionData(dismemExplosionHand : dismemExplosion)
{
   particleEmitter = "goreEmitter";
   debris = dismemhandDebris;
   debrisNum = 1;
   lifeTimeMS = 500;
   particleDensity = 45;
   particleRadius  = 2.5;
};
datablock ProjectileData(DismemHandProjectile : DismemExplosionProjectile)
{
 explosion = dismemExplosionHand; 
};
datablock ExplosionData(dismemExplosionLHand : dismemExplosion)
{
   debris = dismemHandLeftDebris;
   debrisNum = 1;
   lifeTimeMS = 500;
   particleDensity = 45;
   particleRadius  = 2.5;
};
datablock ProjectileData(DismemLHandProjectile : DismemExplosionProjectile)
{
 explosion = dismemExplosionLHand; 
};
datablock ParticleData(smallBloodParticle)
{
   dragCoefficient = 3;
   gravityCoefficient = 0.5;
   inheritedVelFactor = 0.3;
   constantAcceleration = 0;
   lifetimeMS         = 700;
   lifetimeVarianceMS = 250;
   textureName = "base/data/particles/dot";
   spinSpeed     = 0;
   spinRandomMin = -20;
   spinRandomMax = 20;
   colors[0] = "0.6 0 0 1";
   colors[1] = "0.5 0 0 0.9 ";
   colors[2] = "0.4 0 0 0";
   sizes[0] = 0.06;
   sizes[1] = 0.09;
   sizes[2] = 0.04;
   times[1] = 0.5;
   times[2] = 1;
   useInvAlpha = true;
};

datablock ParticleEmitterData(smallBloodEmitter)
{
   ejectionPeriodMS = 2;
   periodVarianceMS = 0;
   ejectionVelocity = 2;
   velocityVariance = 1.2;
   ejectionOffset   = 0;
   thetaMin = 0;
   thetaMax = 180;
   phiReferenceVel = 0;
   phiVariance     = 360;
   overrideAdvance = false;
   lifetimeMS = 3500;
   particles = "smallBloodParticle";

   uiName = "Bleed";
};

datablock ParticleData(goreParticle)
{
   dragCoefficient      = 6;
   gravityCoefficient   = 0.6;
   inheritedVelFactor   = 0.5;
   constantAcceleration = 0;
   lifetimeMS           = 1000;
   lifetimeVarianceMS   = 500;
   textureName          = "./pain";
   spinSpeed      = 0;
   spinRandomMin  = -100;
   spinRandomMax   = 100;
   colors[0]     = "1 0 0 1";
   colors[1]     = "0.8 0 0 0.9 ";
   colors[2]     = "0.5 0 0 0";
   sizes[0]      = 1;
   sizes[1]      = 1.3;
   sizes[2]      = 0.65;
   times[1] = 0.5;
   times[2] = 1;
   useInvAlpha = true;
};
datablock ParticleEmitterData(goreEmitter)
{
   ejectionPeriodMS = 10;
   periodVarianceMS = 0;
   ejectionVelocity = 10;
   velocityVariance = 5;
   ejectionOffset   = 0.25;
   thetaMin         = 5;
   thetaMax         = 105;
   phiReferenceVel  = 0;
   phiVariance      = 360;
   overrideAdvance = false;
   particles = "goreParticle";

   uiName = "Gore";
};

function AIPlayer::setCrouching(%obj, %bool)
{
if(!%bool && (%obj.disLFoot || %obj.disRFoot))
{
parent::setCrouching(%obj, %bool);
}
}
Don't tell me there is useless code, i am trying to re use the collision code from my dismemberment mod.

Line 6?
Code: [Select]
     if(%col.gettype() & $TypeMasks::PlayerObjectType && fileName(%col.dataBlock.shapeFile) $= "m.dts") && is &

Line 6?
Code: [Select]
      if(%col.gettype() & $TypeMasks::PlayerObjectType && fileName(%col.dataBlock.shapeFile) $= "m.dts") && is &
He's doing a bitwise and with the type and mask to make sure that the type is correct.
Though, you might want to toss %col.getType() & $TypeMasks::PlayerObjectType into parenthesis.

BL says it's somewhere in hidenode "node"
Search for that, it's next to the extra raycast check.

I may be wrong, but I think you have too many brackets at the end of your package.

This part is missing a bracket

Code: [Select]
         else
         {
            %obj.setNodeColor("rshoe rpeg","0.7 0 0 1");
            if(!%col.disfoot)
            {
              %proj = new Projectile()
              {
               scale = %col.getScale();
               dataBlock = aaaaaaaaaaaaaaaaaa;
               initialVelocity = %col.getVelocity();
               initialPosition = %col.getPosition();
               sourceObject = %col;
               sourceSlot = 0;
               client = %col.client;
              };
              MissionCleanup.add(%proj);
            }
You should put bigger margins so you can see brackets opening / closing better. When I open a new bracket I always put the bracket on a new line and put 3 spaces more until the bracket is closed, it's good to have something like that to keep you right

Here is the whole package how I would lay it out

Code: [Select]
package ProjectileDismemberment
{
   function ProjectileData::damage(%this, %obj, %col, %fade, %pos, %normal)
   {
      parent::damage(%this, %obj, %col, %fade, %pos, %normal);
      if(%col.gettype() & $TypeMasks::PlayerObjectType && fileName(%col.dataBlock.shapeFile) $= "m.dts")
      {
         %fvec = %col.getForwardVector();
         %vec1 = -getWord(%fvec,1) SPC getWord(%fvec,0) SPC 0;
         %vec2 = vectorNormalize(%obj.initialVelocity);
     
         %damloc = (vectorDot(%vec1,%vec2) > 0);
         %scale = getWord(%col.getScale(),2);

         if(getword(%pos, 2) > getword(%col.getWorldBoxCenter(), 2) - 3.3*%scale)
         {
            %obj.setNodeColor("headskin","0.7 0 0 1");
            if(!%col.disHead)
            {
               %proj = new Projectile()
               {
                 scale = %col.getScale();
                 dataBlock = aaaaaaaaaaaaaaaaaa;
                 initialVelocity = %col.getVelocity();
                 initialPosition = %col.getPosition();
                 sourceObject = %col;
                 sourceSlot = 0;
                 client = %col.client;
               };
               MissionCleanup.add(%proj);
            }
            for(%i=0;$hat[%i] !$= "";%i++) %hidestr = %hidestr SPC $hat[%i];
            for(%i=0;$accent[%i] !$= "";%i++) %hidestr = %hidestr SPC $accent[%i];
         }

         else if(getword(%pos, 2) > getword(%col.getWorldBoxCenter(), 2) - 4.5*%scale)
         {
            if(%damLoc == 0)
            {
               %obj.setNodeColor("lhand lhook larm larmslim","0.7 0 0 1");
               if(!%col.dislhand)
               {
                  %proj = new Projectile()
                  {
                    scale = %col.getScale();
                    dataBlock = aaaaaaaaaaaaaaaaaa;
                    initialVelocity = %col.getVelocity();
                    initialPosition = %col.getPosition();
                    sourceObject = %col;
                    sourceSlot = 0;
                    client = %col.client;
                  };
                  MissionCleanup.add(%proj);
                  %proj = new Projectile()
                  {
                    scale = %col.getScale();
                    dataBlock = aaaaaaaaaaaaaaaaaa;
                    initialVelocity = %col.getVelocity();
                    initialPosition = %col.getPosition();
                    sourceObject = %col;
                    sourceSlot = 0;
                    client = %col.client;
                  };
                  MissionCleanup.add(%proj);
               }
            }
         }

         else
         {
            %obj.setNodeColor("rhand rhook rarm rarmslim","0.7 0 0 1");
            if(!%col.dishand)
            {
               %col.dishand = 1;
               %proj = new Projectile()
               {
                 scale = %col.getScale();
                 dataBlock = aaaaaaaaaaaaaaaaaa;
                 initialVelocity = %col.getVelocity();
                 initialPosition = %col.getPosition();
                 sourceObject = %col;
                 sourceSlot = 0;
                 client = %col.client;
               };
               MissionCleanup.add(%proj);
               %proj = new Projectile()
               {
                 scale = %col.getScale();
                 dataBlock = aaaaaaaaaaaaaaaaaa;
                 initialVelocity = %col.getVelocity();
                 initialPosition = %col.getPosition();
                 sourceObject = %col;
                 sourceSlot = 0;
                 client = %col.client;
               };
               MissionCleanup.add(%proj);
            }
         }

         else
         {
            if(%damLoc == 0)
            {
               %obj.setNodeColor("lshoe lpeg","0.7 0 0 1");
               if(!%col.dislfoot)
               {
                  %proj = new Projectile()
                  {
                    scale = %col.getScale();
                    dataBlock = aaaaaaaaaaaaaaaaaa;
                    initialVelocity = %col.getVelocity();
                    initialPosition = %col.getPosition();
                    sourceObject = %col;
                    sourceSlot = 0;
                    client = %col.client;
                  };
                  MissionCleanup.add(%proj);
               }
            }
         }

         else
         {
            %obj.setNodeColor("rshoe rpeg","0.7 0 0 1");
            if(!%col.disfoot)
            {
               %proj = new Projectile()
               {
                 scale = %col.getScale();
                 dataBlock = aaaaaaaaaaaaaaaaaa;
                 initialVelocity = %col.getVelocity();
                 initialPosition = %col.getPosition();
                 sourceObject = %col;
                 sourceSlot = 0;
                 client = %col.client;
               };
               MissionCleanup.add(%proj);
            }
            else
            {
               %obj.setNodeColor("chest","0.7 0 0 1");
               if(!%col.dischest)
               {
                  %proj = new Projectile()
                  {
                    scale = %col.getScale();
                    dataBlock = aaaaaaaaaaaaaaaaaa;
                    initialVelocity = %col.getVelocity();
                    initialPosition = %col.getPosition();
                    sourceObject = %col;
                    sourceSlot = 0;
                    client = %col.client;
                 };
                 MissionCleanup.add(%proj);
               }
            }
         }
     
         if(%col.dismembermentUnhideStr $= "")
            %col.dismembermentUnhideStr = "START";
     
         for(%i=0;%i<getWordCount(%hidestr);%i++)
         {
            %node = getWord(%hidestr,%i);
            if(%col.isNodeVisible(%node) && strStr(%col.dismembermentUnhideStr," " @ %node) == -1)
               %col.dismembermentUnhideStr = %col.dismembermentUnhideStr SPC %node;
         
            %col.hideNode(%node);
         }
     
         cancel(%col.dismembermentResetSched);
         %col.dismembermentResetSched = %col.schedule(5000,dismembermentReset);
      }

   //return Parent::Damage(%this, %obj, %col, %fade, %pos, %normal);
   }

   function WeaponImage::onRaycastDamage(%this,%obj,%slot,%col,%pos,%normal,%shotVec,%crit)
   {
      parent::onRaycastDamage(%this,%obj,%slot,%col,%pos,%normal,%shotVec,%crit);
      if(%col.gettype() & $TypeMasks::PlayerObjectType && fileName(%col.dataBlock.shapeFile) $= "m.dts")
      {
         %fvec = %col.getForwardVector();
         %vec1 = -getWord(%fvec,1) SPC getWord(%fvec,0) SPC 0;
         %vec2 = vectorNormalize(%obj.initialVelocity);
     
         %damloc = (vectorDot(%vec1,%vec2) > 0);
         %scale = getWord(%col.getScale(),2);

         if(getword(%pos, 2) > getword(%col.getWorldBoxCenter(), 2) - 3.3*%scale)
         {
            %hidestr = "headskin";
            if(!%col.disHead)
            {
               %col.dishead =1;
               %col.kill();
               %proj = new Projectile()
               {
                 scale = %col.getScale();
                 dataBlock = DismemExplosionProjectile;
                 initialVelocity = %col.getVelocity();
                 initialPosition = %col.getPosition();
                 sourceObject = %col;
                 sourceSlot = 0;
                 client = %col.client;
               };
               MissionCleanup.add(%proj);
            }
            for(%i=0;$hat[%i] !$= "";%i++) %hidestr = %hidestr SPC $hat[%i];
            for(%i=0;$accent[%i] !$= "";%i++) %hidestr = %hidestr SPC $accent[%i];
         }

         else if(getword(%pos, 2) > getword(%col.getWorldBoxCenter(), 2) - 4.5*%scale)
         {
            if(%damLoc == 0)
            {
               %hidestr = "lhand lhook larm larmslim";
               if(!%col.dislhand)
               {
                  %col.disLhand = 1;
                  %proj = new Projectile()
                  {
                    scale = %col.getScale();
                    dataBlock = DismemLHandProjectile;
                    initialVelocity = %col.getVelocity();
                    initialPosition = %col.getPosition();
                    sourceObject = %col;
                    sourceSlot = 0;
                    client = %col.client;
                  };
                  MissionCleanup.add(%proj);
                  %proj = new Projectile()
                  {
                    scale = %col.getScale();
                    dataBlock = DismemshoulderProjectile;
                    initialVelocity = %col.getVelocity();
                    initialPosition = %col.getPosition();
                    sourceObject = %col;
                    sourceSlot = 0;
                    client = %col.client;
                  };
                  MissionCleanup.add(%proj);
               }
            }
            else
            {
               %hidestr = "rhand rhook rarm rarmslim";
               if(!%col.dishand)
               {
                  %col.dishand = 1;
                  %proj = new Projectile()
                  {
                    scale = %col.getScale();
                    dataBlock = DismemHandProjectile;
                    initialVelocity = %col.getVelocity();
                    initialPosition = %col.getPosition();
                    sourceObject = %col;
                    sourceSlot = 0;
                    client = %col.client;
                  };
                  MissionCleanup.add(%proj);
                  %proj = new Projectile()
                  {
                    scale = %col.getScale();
                    dataBlock = DismemshoulderProjectile;
                    initialVelocity = %col.getVelocity();
                    initialPosition = %col.getPosition();
                    sourceObject = %col;
                    sourceSlot = 0;
                    client = %col.client;
                  };
                  MissionCleanup.add(%proj);
               }
            }
         }
         else
         {
            if(%damLoc == 0)
            {
               %hidestr = "lshoe lpeg";
               if(!%col.dislfoot)
               {
                  %col.disLfoot = 1;
                  %col.setCrouching(1);
                  %proj = new Projectile()
                  {
                    scale = %col.getScale();
                    dataBlock = DismemFootProjectile;
                    initialVelocity = %col.getVelocity();
                    initialPosition = %col.getPosition();
                    sourceObject = %col;
                    sourceSlot = 0;
                    client = %col.client;
                  };
                  MissionCleanup.add(%proj);
               }
            }
            else
            {
               %hidestr = "rshoe rpeg";
               if(!%col.disfoot)
               {
                  %col.disfoot = 1;
                  %col.setCrouching(1);
                  %proj = new Projectile()
                  {
                    scale = %col.getScale();
                    dataBlock = DismemFootProjectile;
                    initialVelocity = %col.getVelocity();
                    initialPosition = %col.getPosition();
                    sourceObject = %col;
                    sourceSlot = 0;
                    client = %col.client;
                  };
                  MissionCleanup.add(%proj);
               }
            }
         }
     
         if(%col.dismembermentUnhideStr $= "")
            %col.dismembermentUnhideStr = "START";
     
         for(%i=0;%i<getWordCount(%hidestr);%i++)
         {
            %node = getWord(%hidestr,%i);
            if(%col.isNodeVisible(%node) && strStr(%col.dismembermentUnhideStr," " @ %node) == -1)
               %col.dismembermentUnhideStr = %col.dismembermentUnhideStr SPC %node;
         
            %col.hideNode(%node);
         }
     
         cancel(%col.dismembermentResetSched);
         %col.dismembermentResetSched = %col.schedule(5000,dismembermentReset);
      }
   }
};
activatepackage(ProjectileDismemberment);

There is a syntax error at line 1
ackage Propackage ProjectileDismemberment
##
##{
       function ProjectileData::damage(&this,  %obj,  %col,  %fade  %pos  %normal)
     {
        parent::damage(&this,  %obj,  %col,  %fade  %pos  %normal);
        if(%col.gettype()  &.....................

Code: [Select]
ackage Propackage ProjectileDismemberment?? package Propackage_ProjectileDismembe rment

That is fixed, but loving hell that would have been too easy.
There is a ANOTHER syntax error
Code: [Select]
                 initialPosition = %col.getPosition();
                 sourceObject = %col;
                 sourceSlot = 0;
                 client = %col.client;
               };
               MissionCleanup.add(%proj);
               %proj = new Projectile()
               {
                 scale = %col.getScale();
                 dataBlock = aaaaaaaaaaaaaaaaaa;
                 initialVelocity = %col.getVelocity();
                 initialPosition = %col.getPosition();
                 sourceObject = %col;
                 sourceSlot = 0;
                 client = %col.client;
               };
               MissionCleanup.add(%proj);
            }
         }

         else
##
##       {
            if(%damLoc == 0)
            {
               %obj.setNodeColor("lshoe lpeg","0.7 0 0 1");
               if(!%col.dislfoot)
               {
                  %proj = new Projectile()
                  {
                    scale = %col.getScale();

Might be because it's an else statement after an else statement, it has no "if" to compare it to.

Might be because it's an else statement after an else statement, it has no "if" to compare it to.
So what do i do?

Actually no it's not that, I can't see anything wrong :c

EDIT: Nope I was right the first time, looked at the wrong function 2nd time round

Put this as the damage function
Code: [Select]
   function ProjectileData::damage(%this, %obj, %col, %fade, %pos, %normal)
   {
      parent::damage(%this, %obj, %col, %fade, %pos, %normal);

      if(%col.gettype() & $TypeMasks::PlayerObjectType && fileName(%col.dataBlock.shapeFile) $= "m.dts")
      {
         %fvec = %col.getForwardVector();
         %vec1 = -getWord(%fvec,1) SPC getWord(%fvec,0) SPC 0;
         %vec2 = vectorNormalize(%obj.initialVelocity);
     
         %damloc = (vectorDot(%vec1,%vec2) > 0);
         %scale = getWord(%col.getScale(),2);

         if(getword(%pos, 2) > getword(%col.getWorldBoxCenter(), 2) - 3.3*%scale)
         {
            %obj.setNodeColor("headskin","0.7 0 0 1");
            if(!%col.disHead)
            {
               %proj = new Projectile()
               {
                 scale = %col.getScale();
                 dataBlock = aaaaaaaaaaaaaaaaaa;
                 initialVelocity = %col.getVelocity();
                 initialPosition = %col.getPosition();
                 sourceObject = %col;
                 sourceSlot = 0;
                 client = %col.client;
               };
               MissionCleanup.add(%proj);
            }
            for(%i=0;$hat[%i] !$= "";%i++) %hidestr = %hidestr SPC $hat[%i];
            for(%i=0;$accent[%i] !$= "";%i++) %hidestr = %hidestr SPC $accent[%i];
         }

         else if(getword(%pos, 2) > getword(%col.getWorldBoxCenter(), 2) - 4.5*%scale)
         {
            if(%damLoc == 0)
            {
               %obj.setNodeColor("lhand lhook larm larmslim","0.7 0 0 1");
               if(!%col.dislhand)
               {
                  %proj = new Projectile()
                  {
                    scale = %col.getScale();
                    dataBlock = aaaaaaaaaaaaaaaaaa;
                    initialVelocity = %col.getVelocity();
                    initialPosition = %col.getPosition();
                    sourceObject = %col;
                    sourceSlot = 0;
                    client = %col.client;
                  };
                  MissionCleanup.add(%proj);
                  %proj = new Projectile()
                  {
                    scale = %col.getScale();
                    dataBlock = aaaaaaaaaaaaaaaaaa;
                    initialVelocity = %col.getVelocity();
                    initialPosition = %col.getPosition();
                    sourceObject = %col;
                    sourceSlot = 0;
                    client = %col.client;
                  };
                  MissionCleanup.add(%proj);
               }
            }

            else
            {
               %obj.setNodeColor("rhand rhook rarm rarmslim","0.7 0 0 1");
               if(!%col.dishand)
               {
                  %col.dishand = 1;
                  %proj = new Projectile()
                  {
                    scale = %col.getScale();
                    dataBlock = aaaaaaaaaaaaaaaaaa;
                    initialVelocity = %col.getVelocity();
                    initialPosition = %col.getPosition();
                    sourceObject = %col;
                    sourceSlot = 0;
                    client = %col.client;
                  };
                  MissionCleanup.add(%proj);
                  %proj = new Projectile()
                  {
                    scale = %col.getScale();
                    dataBlock = aaaaaaaaaaaaaaaaaa;
                    initialVelocity = %col.getVelocity();
                    initialPosition = %col.getPosition();
                    sourceObject = %col;
                    sourceSlot = 0;
                    client = %col.client;
                  };
                  MissionCleanup.add(%proj);
               }
            }
}
         else
{
    if(%damLoc == 0)
            {
               %obj.setNodeColor("lshoe lpeg","0.7 0 0 1");
               if(!%col.dislfoot)
               {
                  %proj = new Projectile()
                  {
                    scale = %col.getScale();
                    dataBlock = aaaaaaaaaaaaaaaaaa;
                    initialVelocity = %col.getVelocity();
                    initialPosition = %col.getPosition();
                    sourceObject = %col;
                    sourceSlot = 0;
                    client = %col.client;
                  };
                  MissionCleanup.add(%proj);
               }
            }
}

         else
         {
            %obj.setNodeColor("rshoe rpeg","0.7 0 0 1");
            if(!%col.disfoot)
            {
               %proj = new Projectile()
               {
                 scale = %col.getScale();
                 dataBlock = aaaaaaaaaaaaaaaaaa;
                 initialVelocity = %col.getVelocity();
                 initialPosition = %col.getPosition();
                 sourceObject = %col;
                 sourceSlot = 0;
                 client = %col.client;
               };
               MissionCleanup.add(%proj);
            }
            else
            {
               %obj.setNodeColor("chest","0.7 0 0 1");
               if(!%col.dischest)
               {
                  %proj = new Projectile()
                  {
                    scale = %col.getScale();
                    dataBlock = aaaaaaaaaaaaaaaaaa;
                    initialVelocity = %col.getVelocity();
                    initialPosition = %col.getPosition();
                    sourceObject = %col;
                    sourceSlot = 0;
                    client = %col.client;
                 };
                 MissionCleanup.add(%proj);
               }
            }
         }
     
         if(%col.dismembermentUnhideStr $= "")
            %col.dismembermentUnhideStr = "START";
     
         for(%i=0;%i<getWordCount(%hidestr);%i++)
         {
            %node = getWord(%hidestr,%i);
            if(%col.isNodeVisible(%node) && strStr(%col.dismembermentUnhideStr," " @ %node) == -1)
               %col.dismembermentUnhideStr = %col.dismembermentUnhideStr SPC %node;
         
            %col.hideNode(%node);
         }
     
         cancel(%col.dismembermentResetSched);
         %col.dismembermentResetSched = %col.schedule(5000,dismembermentReset);
      }

   //return Parent::Damage(%this, %obj, %col, %fade, %pos, %normal);
   }
« Last Edit: June 28, 2016, 10:12:45 AM by Jervan »

It seems there are syntax errors at all "else" statements.

Sorry, I hate brackets. This should work

Code: [Select]
function ProjectileData::damage(%this, %obj, %col, %fade, %pos, %normal)
   {
      parent::damage(%this, %obj, %col, %fade, %pos, %normal);

      if(%col.gettype() & $TypeMasks::PlayerObjectType && fileName(%col.dataBlock.shapeFile) $= "m.dts")
      {
         %fvec = %col.getForwardVector();
         %vec1 = -getWord(%fvec,1) SPC getWord(%fvec,0) SPC 0;
         %vec2 = vectorNormalize(%obj.initialVelocity);
     
         %damloc = (vectorDot(%vec1,%vec2) > 0);
         %scale = getWord(%col.getScale(),2);

         if(getword(%pos, 2) > getword(%col.getWorldBoxCenter(), 2) - 3.3*%scale)
         {
            %obj.setNodeColor("headskin","0.7 0 0 1");
            if(!%col.disHead)
            {
               %proj = new Projectile()
               {
                 scale = %col.getScale();
                 dataBlock = aaaaaaaaaaaaaaaaaa;
                 initialVelocity = %col.getVelocity();
                 initialPosition = %col.getPosition();
                 sourceObject = %col;
                 sourceSlot = 0;
                 client = %col.client;
               };
               MissionCleanup.add(%proj);
            }
            for(%i=0;$hat[%i] !$= "";%i++) %hidestr = %hidestr SPC $hat[%i];
            for(%i=0;$accent[%i] !$= "";%i++) %hidestr = %hidestr SPC $accent[%i];
         }

         else if(getword(%pos, 2) > getword(%col.getWorldBoxCenter(), 2) - 4.5*%scale)
         {
            if(%damLoc == 0)
            {
               %obj.setNodeColor("lhand lhook larm larmslim","0.7 0 0 1");
               if(!%col.dislhand)
               {
                  %proj = new Projectile()
                  {
                    scale = %col.getScale();
                    dataBlock = aaaaaaaaaaaaaaaaaa;
                    initialVelocity = %col.getVelocity();
                    initialPosition = %col.getPosition();
                    sourceObject = %col;
                    sourceSlot = 0;
                    client = %col.client;
                  };
                  MissionCleanup.add(%proj);
                  %proj = new Projectile()
                  {
                    scale = %col.getScale();
                    dataBlock = aaaaaaaaaaaaaaaaaa;
                    initialVelocity = %col.getVelocity();
                    initialPosition = %col.getPosition();
                    sourceObject = %col;
                    sourceSlot = 0;
                    client = %col.client;
                  };
                  MissionCleanup.add(%proj);
               }
            }
            else
            {
               %obj.setNodeColor("rhand rhook rarm rarmslim","0.7 0 0 1");
               if(!%col.dishand)
               {
                  %col.dishand = 1;
                  %proj = new Projectile()
                  {
                    scale = %col.getScale();
                    dataBlock = aaaaaaaaaaaaaaaaaa;
                    initialVelocity = %col.getVelocity();
                    initialPosition = %col.getPosition();
                    sourceObject = %col;
                    sourceSlot = 0;
                    client = %col.client;
                  };
                  MissionCleanup.add(%proj);
                  %proj = new Projectile()
                  {
                    scale = %col.getScale();
                    dataBlock = aaaaaaaaaaaaaaaaaa;
                    initialVelocity = %col.getVelocity();
                    initialPosition = %col.getPosition();
                    sourceObject = %col;
                    sourceSlot = 0;
                    client = %col.client;
                  };
                  MissionCleanup.add(%proj);
               }
            }
         }

         else
{
    if(%damLoc == 0)
            {
               %obj.setNodeColor("lshoe lpeg","0.7 0 0 1");
               if(!%col.dislfoot)
               {
                  %proj = new Projectile()
                  {
                    scale = %col.getScale();
                    dataBlock = aaaaaaaaaaaaaaaaaa;
                    initialVelocity = %col.getVelocity();
                    initialPosition = %col.getPosition();
                    sourceObject = %col;
                    sourceSlot = 0;
                    client = %col.client;
                  };
                  MissionCleanup.add(%proj);
               }
            }
            else
            {
               %obj.setNodeColor("rshoe rpeg","0.7 0 0 1");
               if(!%col.disfoot)
               {
                  %proj = new Projectile()
                  {
                    scale = %col.getScale();
                    dataBlock = aaaaaaaaaaaaaaaaaa;
                    initialVelocity = %col.getVelocity();
                    initialPosition = %col.getPosition();
                    sourceObject = %col;
                    sourceSlot = 0;
                    client = %col.client;
                  };
                  MissionCleanup.add(%proj);
               }
               else
               {
                  %obj.setNodeColor("chest","0.7 0 0 1");
                  if(!%col.dischest)
                  {
                     %proj = new Projectile()
                     {
                       scale = %col.getScale();
                       dataBlock = aaaaaaaaaaaaaaaaaa;
                       initialVelocity = %col.getVelocity();
                       initialPosition = %col.getPosition();
                       sourceObject = %col;
                       sourceSlot = 0;
                       client = %col.client;
                    };
                    MissionCleanup.add(%proj);
                  }
               }
            }
         }

         if(%col.dismembermentUnhideStr $= "")
            %col.dismembermentUnhideStr = "START";
     
         for(%i=0;%i<getWordCount(%hidestr);%i++)
         {
            %node = getWord(%hidestr,%i);
            if(%col.isNodeVisible(%node) && strStr(%col.dismembermentUnhideStr," " @ %node) == -1)
               %col.dismembermentUnhideStr = %col.dismembermentUnhideStr SPC %node;
         
            %col.hideNode(%node);
         }
     
         cancel(%col.dismembermentResetSched);
         %col.dismembermentResetSched = %col.schedule(5000,dismembermentReset);
      }

   //return Parent::Damage(%this, %obj, %col, %fade, %pos, %normal);
   }