Blockland Forums > Modification Help

Syntax Error in Script

Pages: (1/4) > >>

Audax:

I recently just tried to turn this into a script, seemed simple. But when I make a server the Script does not load due to a syntax error.
Here is the script:

--- Code: ---package TumbleOnFall
{
function Player::getVelocity(%this,%obj,%col,%pos,%speed)
{
%zVec = getWord(%obj.getVelocity(),2);
if(%zVec <= -20)
}
}
function tumble(%obj, %time)
{
   //do not tumble non-players
   if(!(%obj.getType() & $TypeMasks::PlayerObjectType))
      return;

   //do not tumble dead people
   if(%obj.getDamageLevel() >= 1.0)
      return;

//mount the object on a new deathvehicle for %time milliseconds
%currentVehicle = %obj.getObjectMount();
%client = %obj.client;

%newcar = new WheeledVehicle()
{
dataBlock = deathVehicle;
client = %client;
initialPosition = %posX @ " " @ %posY @ " " @ %posZ;
};
MissionCleanup.add(%newcar);
//%newcar = %client.tumbleVehicle;
%newcar.setVelocity("0 0 0");

if(!%newcar)
return;

//neutralize current velocity
%newcar.applyImpulse( %newcar.getPosition(), vectorScale(%newcar.getVelocity() * -1, %newcar.getDataBlock().mass) );

//error("player tumbling!");
%obj.canDismount = false;

if(%currentVehicle && (%currentVehicle.getDataBlock().getName() $= "skiVehicle") )
{
//%obj.client.setControlObject(%obj);
//match ski vehicle
//neutralize velocity first

%newcar.setTransform(%currentVehicle.getTransform());
%newcar.applyImpulse( %newcar.getPosition(), vectorScale(%currentVehicle.getVelocity(), %newcar.getDataBlock().mass) );
%newcar.mountObject(%obj, 0);

%currentVehicle.setTransform("0 0 -1000");
%currentVehicle.schedule(500, delete);
}
else
{
//match player
//error("transform = ",%obj.getTransform());
%newcar.setTransform(%obj.getTransform());
%newcar.applyImpulse( %newcar.getPosition(), vectorScale(%obj.getVelocity(), %newcar.getDataBlock().mass) );
//%newcar.setTransform(%obj.getTransform());

//%obj.setTransform("0 0 0 0 0 1 0");

%newcar.mountObject(%obj, 0);

//error("not skiing");
//error("transform = ",%obj.getTransform());
}

//definitely delete after 45 seconds
%newcar.schedule(45 * 1000, delete);

%newcar.schedule(2000, tumbleCheck);

%client.camera.setMode("Corpse",%obj);
%client.setControlObject(%client.camera);

//remove %player.istumbling after a we stop
//schedule(%time, %obj, stopTumble, %obj);


//%nextTumbleVehicle = new WheeledVehicle()
//{
// dataBlock = deathVehicle;
// client = %client;
// initialPosition = %posX @ " " @ %posY @ " " @ %posZ;
//};
//%obj.client.tumbleVehicle = %nextTumbleVehicle;
//%nextTumbleVehicle.setTransform("0 0 -90");



//%newcar.schedule(%time, unmountobject, %obj);
//%obj.schedule(%time, setcontrolobject, 0);
//%newcar.schedule(%time + 250, setTransform, "0 0 -90");
}
activatePackage(TumbleOnFall);
--- End code ---
Here is the console log:

--- Code: ---Loading Add-On: Script_TumbleOnFall (CRC:-480920754)
Add-Ons/Script_TumbleOnFall/TumbleOnFall.cs Line: 7 - Syntax error.
>>> Some error context, with ## on sides of error halt:
Package TumbleOnFall

{

^function Player::getVelocity(%this,%obj,%col,%pos,%speed)

^{

^%zVec = getWord(%obj.getVelocity(),2);

^if(%zVec <= -20)

^}##
##
}

function tumble(%obj, %time)

{

   //do not tumble non-players

   if(!(%obj.getType() & $TypeMasks::PlayerObjectType))

      return;



   //do not tumble dead people

   if(%obj.getDamageLevel() >= 1.0)

      return;



^//mount the object on a new deathvehicle for %time milliseconds
>>> Error report complete.

ADD-ON "Script_TumbleOnFall" CONTAINS SYNTAX ERRORS
--- End code ---


Headcrab Zombie:

The if statement in line 6.
You're not doing anything with it. Either remove it or add something after it.

Audax:

Still getting a syntax error:

--- Code: ---Loading Add-On: Script_TumbleOnFall (CRC:-1082501054)
Add-Ons/Script_TumbleOnFall/TumbleOnFall.cs Line: 7 - Syntax error.
>>> Some error context, with ## on sides of error halt:
ackage TumbleOnFall

{

^function Player::getVelocity(%this,%obj,%col,%pos,%speed)

^{

^%zVec = getWord(%obj.getVelocity(),2);

^(%zVec <= -20)

^}##
##
}

function tumble(%obj, %time)

{

   //do not tumble non-players

   if(!(%obj.getType() & $TypeMasks::PlayerObjectType))

      return;



   //do not tumble dead people

   if(%obj.getDamageLevel() >= 1.0)

      return;



^//mount the object on a new deathvehicle for %time milliseconds
>>> Error report complete.

ADD-ON "Script_TumbleOnFall" CONTAINS SYNTAX ERRORS
--- End code ---

The error was not on line 6, it was Line 7, it is shown near the ##s.

Headcrab Zombie:

Add a ; after the package


--- Code: ---package f
{
     //stuff
}; //<-semicolon here
--- End code ---


And it looks like you only remove the word if, remove that entire line.



Audax:

I need that line of where the if statement was so it can check your velocity and tumble you.

Pages: (1/4) > >>

Go to full version