Author Topic: What code do I use to switch datablocks?  (Read 1382 times)

That'll make only one of them show up in lists.

Ok.. Now when I right click, nothing happens. Also, how do I disable the "tab" function?

Get rid of the // before first/thirdperson only on each of the datablocks.

Repost the code after that.

This?
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 FirstPerson::onTrigger(%this,%obj,%trigger,%val)
{
      if(%trigger == 4 && %val == 1)
            {
                  %obj.changedatablock(FirstPerson);
            }
}

datablock PlayerData(FirstPerson : PlayerStandardArmor)
{
   maxfreelookangle = 0;
   maxlookangle = 0;
   minlookangle = 0;
   minJetEnergy = 0;
   jetEnergyDrain = 0;
   canJet = 0;
   firstpersononly = 1;
   canRide = true;
   showEnergyBar = false;

   runSurfaceAngle  = 55;
   jumpSurfaceAngle = 55;
};

function ThirdPerson::onTrigger(%this,%obj,%trigger,%val)
{
      if(%trigger == 4 && %val == 1)
            {
                  %obj.changedatablock(ThirdPerson);
            }
}

You have the function names backwards.

Top one should be ThirdPeron::onTrigger.
Bottom one should be FirstPerson::onTrigger.

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)
{
      if(%trigger == 4 && %val == 1)
            {
                  %obj.changedatablock(FirstPerson);
            }
}

datablock PlayerData(FirstPerson : PlayerStandardArmor)
{
   maxfreelookangle = 0;
   maxlookangle = 0;
   minlookangle = 0;
   minJetEnergy = 0;
   jetEnergyDrain = 0;
   canJet = 0;
   firstpersononly = 1;
   canRide = true;
   showEnergyBar = false;

   runSurfaceAngle  = 55;
   jumpSurfaceAngle = 55;
};

function FirstPerson::onTrigger(%this,%obj,%trigger,%val)
{
      if(%trigger == 4 && %val == 1)
            {
                  %obj.changedatablock(ThirdPerson);
            }
}
EDIT: Tab stopped working. YAY! But.. when I right click it doesn't switch between datablocks.
« Last Edit: March 02, 2010, 07:56:47 PM by Butler »



Spelling error, you have ThirdPeron::onTrigger instead of ThirdPerson::onTrigger

Also, some changes to make to FirstPerson datablock:

Add:
uiName = "";
Remove:
   maxlookangle = 0;
   minlookangle = 0;

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)
{
      if(%trigger == 4 && %val == 1)
            {
                  %obj.changedatablock(FirstPerson);
            }
}

datablock PlayerData(FirstPerson : PlayerStandardArmor)
{
   maxfreelookangle = 0;
   minJetEnergy = 0;
   jetEnergyDrain = 0;
   canJet = 0;
   firstpersononly = 1;
   canRide = true;
   showEnergyBar = false;
   uiName = " ";

   runSurfaceAngle  = 55;
   jumpSurfaceAngle = 55;
};

function FirstPerson::onTrigger(%this,%obj,%trigger,%val)
{
      if(%trigger == 4 && %val == 1)
            {
                  %obj.changedatablock(ThirdPerson);
            }
}
« Last Edit: March 02, 2010, 07:57:24 PM by Butler »