using System; using System.Windows.Forms; using GTA; namespace pdHealth { public class pdHealth : Script { public pdHealth() { this.Tick += new EventHandler(this.doHealthTick); //this.KeyDown += new GTA.KeyEventHandler(this.keyDownHandler); } //Settings: int tickTime = 100; //Tick-Rate in ms int armorRegen = 25; //How far to regenerate the armor int armorRegenSpeed = 1; //How much armor to regenerate per tick int armorRegenDelay = 5000; //Delay before recharging armor int overrideHealth = 50; //Set your max health to balance the regenerating armor. This will override any max health values set via trainer. Set to -1 to disable. bool allDamageArmor = true; //The armor soaks up all the health, even fall and explosion-damage. bool ditchDamage = false; //Ditch damage, if hit depletes armor //Vars int armorVal = -1; int healthVal = -1; int timeUntilRegen = 0; private void doHealthTick(object sender, EventArgs e) { Ped pl = Player.Character; if (overrideHealth != -1) { if (pl.Health > overrideHealth) { pl.Health = overrideHealth; } //MaxHealth not functional? } if (pl.isAlive == false) { armorVal = -1; healthVal = -1; timeUntilRegen = 0; return; } if (pl.Armor < armorVal) { timeUntilRegen = armorRegenDelay; } if (pl.Health < healthVal) { timeUntilRegen = armorRegenDelay; } if (allDamageArmor == true) { if (pl.Health < healthVal) { int damageTaken = healthVal - pl.Health; if (damageTaken < pl.Armor) { pl.Health = pl.Health + damageTaken; pl.Armor = pl.Armor - damageTaken; } else { pl.Health = pl.Health + pl.Armor; pl.Armor = 0; } } } if (timeUntilRegen > 0) { timeUntilRegen = timeUntilRegen - tickTime; if (timeUntilRegen < 0) { timeUntilRegen = 0; } } else { if (pl.Armor < armorRegen) { pl.Armor = pl.Armor + armorRegenSpeed; if (pl.Armor > armorRegen) { pl.Armor = armorRegen; } } } armorVal = pl.Armor; healthVal = pl.Health; Game.DisplayText("Health:\n " +pl.Health.ToString(), 1000); Wait(tickTime); } //Testing private void keyDownHandler(object sender, GTA.KeyEventArgs e) { if (e.Key == Keys.B) { Ped pl = Player.Character; pl.Invincible = true; pl.Health = -1; return; } if (e.Key == Keys.N) { Ped pl = Player.Character; pl.Invincible = false; pl.Health = -100; return; } } } }