Healer Zombies

1996-06-22 InsideQC tutorials kleskby 0 102
Author: QC Lord
Source: https://www.insideqc.com/qctut/qctut-46.shtml





			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%.


Tags: tutorial, quakec, qc, insideqc, monster, ai
Owned by kleskby#1837
Telegram
Close

You have no new notifications.


You have no new messages.