Author Topic: Custom Playertype Crashing Certain Clients?  (Read 691 times)

 I have made a custom playertype for someone who has confirmed to me that any client who does not have this playertype add-on will crash. I've checked to see if I have non existent dsq's in the playertype's script, but it seems that that is not the case. I'm not exactly sure what to do with this. I'm sure that it is possible to have playertypes that a client does not have and still be able to play, as is the case with playertypes like Bushido's boss on his server.

Does anyone have any potential solutions to this issue?

Post the properties and script of the playertype.

Code: [Select]
// Load dts shapes and merge animations
datablock TSShapeConstructor(BSMechDts)
{
baseShape  = "./BSMech.dts";
sequence0  = "./BS_root.dsq root";

sequence1  = "./BS_walk.dsq run";
sequence2  = "./BS_walk.dsq walk";
sequence3  = "./BS_back.dsq back";
sequence4  = "./BS_side.dsq side";

sequence5  = "./BS_crouch.dsq crouch";
sequence6  = "./BS_crouchwalk.dsq crouchRun";
sequence7  = "./BS_crouchback.dsq crouchBack";
sequence8  = "./BS_crouchside.dsq crouchSide";

sequence9  = "./BS_look.dsq look";
sequence10 = "./BS_headside.dsq headside";
sequence11 = "./BS_root.dsq headUp";

sequence12 = "./BS_jump.dsq jump";
sequence13 = "./BS_jump.dsq standjump";
sequence14 = "./BS_fall.dsq fall";
sequence15 = "./BS_land.dsq land";

sequence16 = "./BS_root.dsq armAttack";
sequence17 = "./BS_ArmupLeft.dsq armReadyLeft";
sequence18 = "./BS_ArmupRight.dsq armReadyRight";
sequence19 = "./BS_ArmupBoth.dsq armReadyBoth";
sequence20 = "./BS_root.dsq spearready"; 
sequence21 = "./BS_root.dsq spearThrow";

sequence22 = "./BS_root.dsq talk"; 

sequence23 = "./BS_death1.dsq death1";

sequence24 = "./BS_root.dsq shiftUp";
sequence25 = "./BS_root.dsq shiftDown";
sequence26 = "./BS_RecoilBoth.dsq shiftAway";
sequence27 = "./BS_root.dsq shiftTo";
sequence28 = "./BS_RecoilLeft.dsq shiftLeft";
sequence29 = "./BS_RecoilRight.dsq shiftRight";
sequence30 = "./BS_root.dsq rotCW";
sequence31 = "./BS_root.dsq rotCCW";

sequence32 = "./BS_root.dsq undo";
sequence33 = "./BS_root.dsq plant";

sequence34 = "./BS_root.dsq sit";

sequence35 = "./BS_root.dsq wrench";

   sequence36 = "./BS_root.dsq activate";
   sequence37 = "./BS_root.dsq activate2";

   sequence38 = "./BS_root.dsq leftrecoil";
};   

datablock AudioProfile(BSMechJumpSound)
{
   fileName = "./jumpBSMech.wav";
   description = AudioClose3d;
   preload = true;
};

           

datablock PlayerData(BSMechArmor : PlayerStandardArmor)
{
   renderFirstPerson = false;
   emap = false;
   
   className = Armor;
   shapeFile = "./BSMech.dts";
   cameraMaxDist = 8;
   cameraTilt = 0.261;//0.174 * 2.5; //~25 degrees
   cameraVerticalOffset = 2.3;
     
   cameraDefaultFov = 90.0;
   cameraMinFov = 5.0;
   cameraMaxFov = 120.0;
   
   //debrisShapeName = "~/data/shapes/player/debris_player.dts";
   //debris = BSMechDebris;

   aiAvoidThis = true;

   minLookAngle = -1.5708;
   maxLookAngle = 1.5708;
   maxFreelookAngle = 3.0;

   mass = 90;
   drag = 0.1;
   density = 0.7;
   maxDamage = 250;
   maxEnergy =  100;
   repairRate = 0.33;

   rechargeRate = 0.4;

   runForce = 28 * 90;
   runEnergyDrain = 0;
   minRunEnergy = 0;
   maxForwardSpeed = 6; //12
   maxBackwardSpeed = 6;
   maxSideSpeed = 1;

   maxForwardCrouchSpeed = 6; //12
   maxBackwardCrouchSpeed = 6;
   maxSideCrouchSpeed = 1;

   maxForwardProneSpeed = 0;
   maxBackwardProneSpeed = 0;
   maxSideProneSpeed = 0;

   maxForwardWalkSpeed = 0;
   maxBackwardWalkSpeed = 0;
   maxSideWalkSpeed = 0;

   maxUnderwaterForwardSpeed = 8.4;
   maxUnderwaterBackwardSpeed = 7.8;
   maxUnderwaterSideSpeed = 7.8;

   jumpForce = 17 * 90; //8.3 * 90;
   jumpEnergyDrain = 0;
   minJumpEnergy = 0;
   jumpDelay = 0;

minJetEnergy = 2;
jetEnergyDrain = 2;
canJet = 1;

   minImpactSpeed = 250;
   speedDamageScale = 3.8;

   boundingBox = vectorScale("2.5 2.5 4", 4); //2.5 2.5 2.4", 4
   crouchBoundingBox = vectorScale("2.5 2.5 3", 4); //2.5 2.5 2.4", 4
   
   pickupRadius = 0.75;
   
   // Foot Prints
   //decalData   = BSMechFootprint;
   //decalOffset = 0.25;
   canjet = true;
 //  jetEmitter = "PlayerJetEmitter";
  // jetGroundEmitter = "";
  // jetGroundDistance = 4;
   
   
 
   //footPuffEmitter = LightPuffEmitter;
   footPuffNumParts = 10;
   footPuffRadius = 0.25;

   //dustEmitter = LiftoffDustEmitter;

   splash = PlayerSplash;
   splashVelocity = 4.0;
   splashAngle = 67.0;
   splashFreqMod = 300.0;
   splashVelEpsilon = 0.60;
   bubbleEmitTime = 0.1;
   splashEmitter[0] = PlayerFoamDropletsEmitter;
   splashEmitter[1] = PlayerFoamEmitter;
   splashEmitter[2] = PlayerBubbleEmitter;
   mediumSplashSoundVelocity = 10.0;   
   hardSplashSoundVelocity = 20.0;   
   exitSplashSoundVelocity = 5.0;

   // Controls over slope of runnable/jumpable surfaces
   runSurfaceAngle  = 85;
   jumpSurfaceAngle = 86;

   minJumpSpeed = 20;
   maxJumpSpeed = 30;

   horizMaxSpeed = 68;
   horizResistSpeed = 33;
   horizResistFactor = 0.35;

   upMaxSpeed = 80;
   upResistSpeed = 25;
   upResistFactor = 0.3;
   
   footstepSplashHeight = 0.35;

   //NOTE:  some sounds commented out until wav's are available

   JumpSound = BSMechJumpSound;

   // Footstep Sounds
//   FootSoftSound        = BSMechFootFallSound;
//   FootHardSound        = BSMechFootFallSound;
//   FootMetalSound       = BSMechFootFallSound;
//   FootSnowSound        = BSMechFootFallSound;
//   FootShallowSound     = BSMechFootFallSound;
//   FootWadingSound      = BSMechFootFallSound;
//   FootUnderwaterSound  = BSMechFootFallSound;
   //FootBubblesSound     = FootLightBubblesSound;
   //movingBubblesSound   = ArmorMoveBubblesSound;
   //waterBreathSound     = WaterBreathMaleSound;

   //impactSoftSound      = ImpactLightSoftSound;
   //impactHardSound      = ImpactLightHardSound;
   //impactMetalSound     = ImpactLightMetalSound;
   //impactSnowSound      = ImpactLightSnowSound;
   
   impactWaterEasy      = Splash1Sound;
   impactWaterMedium    = Splash1Sound;
   impactWaterHard      = Splash1Sound;
   
   groundImpactMinSpeed    = 10.0;
   groundImpactShakeFreq   = "4.0 4.0 4.0";
   groundImpactShakeAmp    = "1.0 1.0 1.0";
   groundImpactShakeDuration = 0.8;
   groundImpactShakeFalloff = 10.0;
   
   //exitingWater         = ExitingWaterLightSound;

   // Inventory Items
maxItems   = 10; //total number of bricks you can carry
maxWeapons = 5; //this will be controlled by mini-game code
maxTools = 5;

uiName = "Battle Suit";
rideable = false;
lookUpLimit = 0.6;
lookDownLimit = 0.2;

canRide = false;
showEnergyBar = true;
paintable = true;

// brickImage = BSMechBrickImage; //the imageData to use for brick deployment
};

Code: [Select]
-snip-
Why did you put canJet = true; and canJet = 1; ?

Why did you put canJet = true; and canJet = 1; ?

Oh, I guess I never noticed that. I didn't see any console errors, that I remember....

Though, I'm not particularly sure why this would make only people without the playertype add-on crash.
« Last Edit: July 09, 2012, 12:59:11 AM by FrogFreak »

I don't really know. Also, what?

Code: [Select]
   // Footstep Sounds
//   FootSoftSound        = BSMechFootFallSound;
//   FootHardSound        = BSMechFootFallSound;
//   FootMetalSound       = BSMechFootFallSound;
//   FootSnowSound        = BSMechFootFallSound;
//   FootShallowSound     = BSMechFootFallSound;
//   FootWadingSound      = BSMechFootFallSound;
//   FootUnderwaterSound  = BSMechFootFallSound;
   //FootBubblesSound     = FootLightBubblesSound;
   //movingBubblesSound   = ArmorMoveBubblesSound;
   //waterBreathSound     = WaterBreathMaleSound;

   //impactSoftSound      = ImpactLightSoftSound;
   //impactHardSound      = ImpactLightHardSound;
   //impactMetalSound     = ImpactLightMetalSound;
   //impactSnowSound      = ImpactLightSnowSound;

Those should be in the horse script too.