Author Topic: Custom Player Type  (Read 1224 times)

I'm trying to make a custom player type with a new model for the head.

I have the model in Milkshape 3D.

How would I replace the head for a custom model?

It'd be much simpler to just hide the current blockhead's head and mount your head as an image to appear to be the player's actual head.

Thats what I was thinking, Should I use the same code that applys to a weapon? Or does it have to be different with a player type?

Thats what I was thinking, Should I use the same code that applys to a weapon? Or does it have to be different with a player type?
Take a look at the hat mod.

..I don't even know how to use the hat mod and never cared enough to find out. Besides, I want to know if that string will even work for a playertype and how to make it so when you become that playertype, the new model is set as a bodypart.

And also, how do you edit the Health of the player? I cant find an editable variable for health.

Is there even one?

And also, how do you edit the Health of the player? I cant find an editable variable for health.

Is there even one?
Code: [Select]
new PlayerData(PlayerStandardArmor)
{
   className = "armor";
   shapeFile = "./data/shapes/player/m.dts";
   emap = "1";
   renderWhenDestroyed = "1";
   mass = "90";
   drag = "0.1";
   density = "0.7";
   maxEnergy = "100";
   maxDamage = "100";
   disabledLevel = "1";
   destroyedLevel = "1";
   repairRate = "0.33";
   rechargeRate = "0.8";
   inheritEnergyFromMount = "0";
   isInvincible = "0";
   firstPersonOnly = "0";
   thirdPersonOnly = "0";
   useEyePoint = "0";
   observeThroughObject = "0";
   computeCRC = "0";
   renderFirstPerson = "0";
   pickupRadius = "1.25";
   minLookAngle = "-1.5708";
   maxLookAngle = "1.5708";
   maxFreelookAngle = "3";
   maxTimeScale = "1.5";
   maxStepHeight = "1";
   runForce = "4320";
   runEnergyDrain = "0";
   minRunEnergy = "0";
   maxForwardSpeed = "7";
   maxBackwardSpeed = "4";
   maxSideSpeed = "6";
   maxUnderwaterForwardSpeed = "8.4";
   maxUnderwaterBackwardSpeed = "7.8";
   maxUnderwaterSideSpeed = "7.8";
   runSurfaceAngle = "70";
   minImpactSpeed = "30";
   maxForwardCrouchSpeed = "3";
   maxBackwardCrouchSpeed = "2";
   maxSideCrouchSpeed = "2";
   airControl = "0.1";
   cameraTilt = "0.261";
   cameraVerticalOffset = "0.75";
   cameraHorizontalOffset = "0";
   cameraMaxDist = "8";
   cameraMinDist = "0";
   jumpForce = "1080";
   jumpEnergyDrain = "0";
   minJumpEnergy = "0";
   minJumpSpeed = "20";
   maxJumpSpeed = "30";
   jumpSurfaceAngle = "80";
   jumpDelay = "3";
   jetEnergyDrain = "0";
   minJetEnergy = "0";
   canJet = "1";
   boundingBox = "5 5 10.6";
   crouchBoundingBox = "5 5 4";
   horizMaxSpeed = "68";
   horizResistSpeed = "33";
   horizResistFactor = "0.35";
   upMaxSpeed = "80";
   upResistSpeed = "25";
   upResistFactor = "0.3";
   decalOffset = "0.25";
   jetEmitter = "playerJetEmitter";
   jetGroundEmitter = "playerJetGroundEmitter";
   jetGroundDistance = "3.98827";
   footPuffNumParts = "10";
   footPuffRadius = "0.25";
   JumpSound = "JumpSound";
   mediumSplashSoundVelocity = "10";
   hardSplashSoundVelocity = "20";
   exitSplashSoundVelocity = "5";
   impactWaterEasy = "Splash1Sound";
   impactWaterMedium = "Splash1Sound";
   impactWaterHard = "Splash1Sound";
   exitingWater = "exitWaterSound";
   Splash = "PlayerSplash";
   splashVelocity = "4";
   splashAngle = "67";
   splashFreqMod = "300";
   splashVelEpsilon = "0.6";
   bubbleEmitTime = "0.1";
   splashEmitter[0] = "PlayerFoamDropletsEmitter";
   splashEmitter[1] = "PlayerFoamEmitter";
   splashEmitter[2] = "PlayerBubbleEmitter";
   footstepSplashHeight = "0.35";
   groundImpactMinSpeed = "10";
   groundImpactShakeFreq = "4 4 4";
   groundImpactShakeAmp = "1 1 1";
   groundImpactShakeDuration = "0.8";
   groundImpactShakeFalloff = "10";
   uiName = "Standard Player";
   rideAble = "0";
   canRide = "1";
      cameraMinFov = "5";
      showEnergyBar = "0";
      brickImage = "brickImage";
      speedDamageScale = "3.8";
      cameraDefaultFov = "90";
      aiAvoidThis = "1";
      maxItems = "10";
      maxTools = "5";
      cameraMaxFov = "120";
      maxWeapons = "5";
};

Search through that, I'm too lazy.


Ah, thank you. I was wondering what that was..

Now I just need to know how to make it so when you become a playertype, a new model is set as a bodypart.

      I know
function ItemImage::onMount(%this, %obj, %slot)
{   
   %obj.hidenode("__");
}
                    is for an item/weapon, but for a playertype?

onAdd? I'm not sure but this MAY be the function you're looking for.

How do I specify the dts file?

Use armor::onNewDatablock(%this, %obj) - it'll cover when a player spawns as the datablock (i.e. in a minigame) or changes to it (i.e. from wrench events).

You don't specify the DTS file, you make an image datablock for it. Just about every weapon has an image datablock, you just need to take that and modify it to be inactive instead of a gun. Then you need to mount it to the player.

Could I get an example?

Example of what Amade said in Coding please?

Really? No one has an example of this?