Author Topic: Regenerating Health  (Read 506 times)

I have the basic layout of my Player-Type, but I want a regenerating health without the energy bar since I already made a text-based Health display.  I looked at Iban's Health-Modes player he posted (under his alt IbanZ) and looking at the script it needs a stamina bar.
Can someone get the regenerating Health script without the energy bar?
Code: [Select]
// ============================================================
// Project            :  IbanMod - Health Modes
// File               :  .\Health Modes\Player_No Jet Health.cs
// Author             :  Iban
//
// Editor             :  Codeweaver v. 1.2.2685.32755
//
// Description        :  Everything in this package is self explanitory.
//                    :  Feel free to edit anything you want.
//                    :  Credits go to Space Guy for the original code.
//                    :  I merely made it more open-ended as to increase effeciency and allow easier modifications.
//                    :  Have fun, modders!
// ============================================================

package armorDamageOverride
{
function Armor::damage(%this, %obj, %sourceObject, %position, %damage, %damageType)
{
if(%obj.getDatablock().isHealthPlayer)
{
%curEnergy = %obj.getEnergyLevel();

if(%damage >= %curEnergy)
{
%obj.setEnergyLevel(0);
%damage -= %curEnergy;
}
else
{
%obj.setEnergyLevel(%curEnergy - %damage);
%damage = 0;
}

Parent::damage(%this, %obj, %sourceObject, %position, %damage, %damageType);

if(%obj.getDatablock().isShieldedPlayer && %damage < %curEnergy)
{
%obj.emote(shieldZapImage);
}
else
{
if(%obj.getEnergyLevel() < %obj.maxEnergy / 2)
{
%obj.emote(painMidImage, 1);
}
if(%obj.getEnergyLevel() < %obj.maxEnergy / 3)
{
%obj.emote(painHighImage, 1);
}
}
}
else
{
Parent::damage(%this, %obj, %sourceObject, %position, %damage, %damageType);
}
}
};
ActivatePackage(armorDamageOverride);
« Last Edit: August 05, 2010, 03:52:54 AM by brickybob »

I made this for a TF2 Medic-style regeneration a while back, I don't know whether Demian already added it to his pack. The health increase is about 1 every second (the x/32 is due to it being measured in 'ticks' when the engine does physics etc. updates), increasing to 2 then 3 after five and ten seconds respectively.

Code: [Select]
//Medic gets regenerating health

datablock PlayerData(PlayerTF2Medic : PlayerStandardArmor)
{
runForce = 51 * 90;
runEnergyDrain = 0;
minRunEnergy = 0;

maxForwardSpeed = 7;
maxBackwardSpeed = 4;
maxSideSpeed = 6;

maxForwardCrouchSpeed = 3;
maxBackwardCrouchSpeed = 2;
maxSideCrouchSpeed = 2;

jumpForce = 9 * 90;
jumpEnergyDrain = 0;
minJumpEnergy = 0;
jumpDelay = 3;

minJetEnergy = 0;
jetEnergyDrain = 0;
canJet = 0;

uiName = "TF2 Medic";
maxDamage = 120;
};

function PlayerTF2Medic::onAdd(%this,%obj)
{
Parent::onAdd(%this,%obj);
%obj.setRepairRate(1/32);
}

function PlayerTF2Medic::onDamage(%this,%obj,%delta)
{
Parent::onDamage(%this,%obj,%delta);
if(%delta > 0)
{
if(isEventPending(%obj.medicRepairSched1))
cancel(%obj.medicRepairSched1);

if(isEventPending(%obj.medicRepairSched2))
cancel(%obj.medicRepairSched2);

%obj.setRepairRate(1/32);

if(%obj.getState() !$= "Dead")
{
%obj.medicRepairSched1 = %obj.schedule(5000,setRepairRate,2/32);
%obj.medicRepairSched2 = %obj.schedule(10000,setRepairRate,3/32);
}
}
}