Author Topic: Script Codes  (Read 1809 times)

2 Questions:


1: What is the script line for registering right click, like, right click to shoot?
2: What is the line for switching between datablocks?

Look at existing mods that have these functions and try to figure it out yourself before asking here. Post any code you have tried.

Because I know exactly what you want to make, try this as the function, as it's datablock specific, meaning this wont happen with other datablocks.

function FirstPerson::onTrigger(%this,%obj,%trigger,%val)
and
function ThirdPerson::onTrigger(%this,%obj,%trigger,%val)


Make sure %trigger is 4 and %val is 1 when changing datablock.

What do you mean by "make sure %trigger is 4 and %val is 1" ?

Remember, Im new in this area..

What do you mean by "make sure %trigger is 4 and %val is 1" ?

Remember, Im new in this area..
With if statements.

This is what I got..
Code: [Select]
function ThirdPerson::onTrigger(%this,%obj,%trigger,%val)
{
%trigger.changedatablock(ThirdPerson);
}

I want it to change datablock on RIGHT Click, so would I change the onTrigger  to  onJet?
« Last Edit: February 28, 2010, 10:44:23 AM by Butler »

Double Toast: Would this work?
Code: [Select]
datablock PlayerData(ThirdPerson : PlayerStandardArmor)
{
   cameramaxdist = 5;
   cameraVerticalOffset = 10;
   cameraHorizontalOffset = 0;
   cameraTilt = -5;
   maxfreelookangle = 0;
   maxlookangle = 0;
   minlookangle = 0;
   minJetEnergy = 0;
   jetEnergyDrain = 0;
   canJet = 0;
   //thirdpersononly = 1;
   uiName = "TopDown";
   canRide = true;
   showEnergyBar = false;

   runSurfaceAngle  = 55;
   jumpSurfaceAngle = 55;
};

function ThirdPerson::onTrigger(%this,%obj,%trigger,%val)
{
   %trigger.changedatablock(FirstPerson);
};

datablock Playerdata(FirstPerson : PlayerStandardArmor)
{
   maxfreelookangle = 0;
   maxlookangle = 10;
   minlookangle = 0;
   minJetEnergy = 0;
   jetEnergyDrain = 0;
   canJet = 0;
   //firstpersononly = 1;
   uiName = "TopDown";
   canRide = true;
   showEnergyBar = false;

   runSurfaceAngle  = 55;
   jumpSurfaceAngle = 55;
};

function FirstPerson::onTrigger(%this,%obj,%trigger,%val)
{
   %trigger.changedatablock(ThirdPerson);
};

This is what I got..
Code: [Select]
function ThirdPerson::onTrigger(%this,%obj,%trigger,%val)
{
%trigger.changedatablock(ThirdPerson);
}

I want it to change datablock on RIGHT Click, so would I change the onTrigger  to  onJet?
Incorrect.
It remains onTrigger.
%trigger will be 4 and %val will be 1 while you are jetting.
%obj is what you want to call .changedatablock on

So would %val be right click?
Or would %trigger be right click?
Or would %obj be right click?
Code: [Select]
function ThirdPerson::onTrigger(%this,%obj,%trigger,%val)
{
%obj.changedatablock(ThirdPerson);
}

Look at any existing mod that has a jet-triggered function/event and try and use it.

So would %val be right click?
Or would %trigger be right click?
Or would %obj be right click?
Code: [Select]
function ThirdPerson::onTrigger(%this,%obj,%trigger,%val)
{
%obj.changedatablock(ThirdPerson);
}

%obj is the player.
%trigger is what you are triggering (0 = left click, bla bla bla, 4 = jet)
%val is whether you pressed or released (1 = press, 0 = release)

Code: [Select]

package MP7
{
  function Armor::onTrigger(%this, %player, %slot, %val)
{
if(%player.getMountedImage(0) $= MP71Image.getID() && %slot $= 4 && %val)
{
if(%player.lastNade !$= "" && getSimTime() - %player.lastNade < 3000)
{
return;
}
%projectile = MP7GrenadeProjectile;
%vector = %player.getMuzzleVector(0);
%objectVelocity = %player.getVelocity();
%vector1 = VectorScale(%vector, %projectile.muzzleVelocity);
%vector2 = VectorScale(%objectVelocity, %projectile.velInheritFactor);
%velocity = VectorAdd(%vector1,%vector2);
%p = new Projectile()
{
dataBlock = %projectile;
initialVelocity = %velocity;
initialPosition = %player.getMuzzlePoint(0);
sourceObject = %player;
sourceSlot = 0;
client = %player.client;
};
%player.lastNade = getSimTime();
serverPlay3D(MP7GrenadefireSound,%player.getPosition());
MissionCleanup.add(%p);
return %p;

}
}
};
ActivatePackage(MP7);



So.. This?
Code: [Select]
function ThirdPerson::onTrigger(%this,%obj,%trigger,%val)
{
      if(%trigger == 4);
                  {
                  %obj.changedatablock(FirstPerson);
                  }
}