OK, it's been a while and I'm still having trouble.
datablock PlayerData(PlayerRPGBarbarian : PlayerStandardArmor)
{
rechargeRate = 0.65;
runForce = 4325;
runEnergyDrain = 0.25;
maxForwardSpeed = "5";
maxBackwardSpeed = "6";
maxSideSpeed = "6";
maxForwardCrouchSpeed = "3";
maxBackwardCrouchSpeed = "2";
maxSideCrouchSpeed = "2";
maxDamage = 225;
airControl = 0.1;
jumpForce = 950;
canJet = 0;
uiName = "RPG Barbarian";
canRide = 1;
showEnergyBar = 1;
maxTools = 2;
maxWeapons = 2;
};
datablock PlayerData(PlayerRPGBarbarianActive : PlayerRPGBarbarian)
{
runEnergyDrain = 1.75;
minRunEnergy = 1;
maxForwardSpeed = "16";
maxBackwardSpeed = "0";
maxSideSpeed = "0";
maxForwardCrouchSpeed = "3";
maxBackwardCrouchSpeed = "2";
maxSideCrouchSpeed = "2";
airControl = 0;
uiName = "";
canRide = 0;
};
package RPGBarbarianPlayer
{
function Armor::onTrigger(%data,%player,%slot,%io)
{
if(%slot == 4)
{
if(%io && %data.getName() $= "PlayerRPGBarbarian")
{
%player.changeDatablock(PlayerRPGKnightActive);
%tool = %player.currTool;
servercmdunusetool(%player.client);
%player.currTool = %tool;
%player.hideNode("ALL");
%player.unHideNode("LShoe");
%player.setNodeColor("LShoe", "1 .926 .694 1");
%player.unHideNode("RShoe");
%player.setNodeColor("RShoe", "1 .926 .694 1");
%player.unHideNode("LArm");
%player.setNodeColor("LArm", "1 .926 .694 1");
%player.unHideNode("RArm");
%player.setNodeColor("RArm", "1 .926 .694 1");
%player.unHideNode("LHand");
%player.setNodeColorNode("LHand", "1 .926 .694 1");
%player.unHideNode("RHand");
%player.setNodeColorNode("RHand", "1 .926 .694 1");
%player.unHideNode("Chest");
%player.setNodeColor("Chest",".471 .235 .169 1");
%player.unHideNode("Pants");
%player.setNodeColor("Pants",".471 .235 .169 1");
%player.unHideNode("Headskin");
%player.setNodeColor("Headskin","1 .926 .694 1");
%player.setDecalName("Medieval-Tunic");
} else if(!%io && %data.getName() $= "PlayerRPGBarbarianActive")
{
%player.changeDatablock(PlayerRPGBarbarian);
servercmduseTool(%player.client,%player.currTool);
%player.hideNode("ALL");
%player.unHideNode("LShoe");
%player.setNodeColor("LShoe", "1 .926 .694 1");
%player.unHideNode("RShoe");
%player.setNodeColor("RShoe", "1 .926 .694 1");
%player.unHideNode("LArm");
%player.setNodeColor("LArm", "1 .926 .694 1");
%player.unHideNode("RArm");
%player.setNodeColor("RArm", "1 .926 .694 1");
%player.unHideNode("LHand");
%player.setNodeColorNode("LHand", "1 .926 .694 1");
%player.unHideNode("RHand");
%player.setNodeColorNode("RHand", "1 .926 .694 1");
%player.unHideNode("Chest");
%player.setNodeColor("Chest",".471 .235 .169 1");
%player.unHideNode("Pants");
%player.setNodeColor("Pants",".471 .235 .169 1");
%player.unHideNode("Headskin");
%player.setNodeColor("Headskin","1 .926 .694 1");
%player.setDecalName("Medieval-Tunic");
}
}
Parent::onTrigger(%data,%player,%slot,%io);
}
function Player::mountImage(%player,%image,%slot)
{
if(%player.getDatablock().getName() $= "PlayerRPGBarbarianActive" && %slot == 0)
{
%player.currTool = %slot;
%player.hideNode("ALL");
%player.unHideNode("LShoe");
%player.setNodeColor("LShoe", "1 .926 .694 1");
%player.unHideNode("RShoe");
%player.setNodeColor("RShoe", "1 .926 .694 1");
%player.unHideNode("LArm");
%player.setNodeColor("LArm", "1 .926 .694 1");
%player.unHideNode("RArm");
%player.setNodeColor("RArm", "1 .926 .694 1");
%player.unHideNode("LHand");
%player.setNodeColorNode("LHand", "1 .926 .694 1");
%player.unHideNode("RHand");
%player.setNodeColorNode("RHand", "1 .926 .694 1");
%player.unHideNode("Chest");
%player.setNodeColor("Chest",".471 .235 .169 1");
%player.unHideNode("Pants");
%player.setNodeColor("Pants",".471 .235 .169 1");
%player.unHideNode("Headskin");
%player.setNodeColor("Headskin","1 .926 .694 1");
%player.setDecalName("Medieval-Tunic");
return;
}
Parent::mountImage(%player,%image,%slot);
}
function ServerCmdUseTool(%client,%slot)
{
if(isObject(%player = %client.player))
{
if(%player.getDatablock().getName() $= "PlayerRPGBarbarianActive")
{
%player.currTool = %slot;
%player.hideNode("ALL");
%player.unHideNode("LShoe");
%player.setNodeColor("LShoe", "1 .926 .694 1");
%player.unHideNode("RShoe");
%player.setNodeColor("RShoe", "1 .926 .694 1");
%player.unHideNode("LArm");
%player.setNodeColor("LArm", "1 .926 .694 1");
%player.unHideNode("RArm");
%player.setNodeColor("RArm", "1 .926 .694 1");
%player.unHideNode("LHand");
%player.setNodeColorNode("LHand", "1 .926 .694 1");
%player.unHideNode("RHand");
%player.setNodeColorNode("RHand", "1 .926 .694 1");
%player.unHideNode("Chest");
%player.setNodeColor("Chest",".471 .235 .169 1");
%player.unHideNode("Pants");
%player.setNodeColor("Pants",".471 .235 .169 1");
%player.unHideNode("Headskin");
%player.setNodeColor("Headskin","1 .926 .694 1");
%player.setDecalName("Medieval-Tunic");
return;
}
}
Parent::serverCmdUseTool(%client,%slot);
}
};
activatePackage(RPGBarbarianPlayer);
This changes the player successfully, but only when they sprint for the first time. Can someone explain why and how I can fix it (if applicable)?