InsideQC
 - Front Page

Tutorials are copyrighted by their author and the Inside3D staff. And may be used in any Quake modification provided that the author and the InsideQC staff are credited. Please direct any comments to the author.


Created By: QC Lord
eMail: errorabove@hotmail.com
Difficulty Scale: Easy



			Healing Zombies... weird heh!!!

Step 1)
	Ok, let's get started.  First we need to make it so the Zombies
	have a very small chance of being the Healer, so we need to open
	up the zombie.qc file and find the function... monster_zombie.


Step 2)
	At the top of that file you need to add the following line.


		local float healchance; // The chance that the zombie will have the healing ability


Step 3)
	Find the next part in that function.  It should look like this.


		self.solid = SOLID_SLIDEBOX;
		self.movetype = MOVETYPE_STEP;

		setmodel (self, "progs/zombie.mdl");


Step 4)
	After those lines you need to add the following.


		healchance = random();   // Random number for the healchance

                if (healchance >= 0.90)  // 10 percent chance of having the healing ability
                {
	                self.skin = 1; // Skin number 0 is the default skin, 1 
				       //is the healer
                }


Step 5)
	Next I need you to go find the following lines.


		setsize (self, '-16 -16 -24', '16 16 40');
		self.health = 60;

Step 6)
	After those lines I need you to add the following.


		if (self.skin == 0)   // if the zombie is the original then...
		{
			self.th_stand = zombie_stand1;
			self.th_walk = zombie_walk1;
			self.th_run = zombie_run1;
			self.th_pain = zombie_pain;
			self.th_die = zombie_die;
			self.th_missile = zombie_missile;
		}
		if (self.skin == 1)   // if the zombie is a healer then...
		{
			self.th_stand = zombie_walk1;  // Wonders around
			self.th_walk = zombie_walk1;  // Walking
			self.th_run = zombie_run1;  // Running
			self.th_pain = zombie_die;  // If he is hit by any weapon then gib
			self.th_die = zombie_die;  // Dieing
			self.th_missile = zombie_walk1;  // Walking
			self.touch = HealPlayer;  // If you touch him then he will heal u
		}


Step 7)
	Now, for the last bit of coding.  Above the monster_zombie function
	add the following function.


		void() HealPlayer =  // Heal the player function
		{
			if (other.classname != "player")  // if something other than the player touches it then do nothing
			{
				return;
			}
			if (other.classname == "player")  // if the player touches it then...
			{
				if (other.health >= 100)  // if player's health is greater than or equal to 100 then do nothing
				{
					return;
				}
				if (other.health <= 95)  // If player's health is less than or equal to 95 then add 5 to health
				{
					other.health = other.health + 5;
				}
			}
		};


Step 8)
	Unzip this model into your project directory under /progs.
	Compile, and find a zombie that looks different.  Walk up
	to them and touch them.  They will make your health 100%.