Healer Zombies

InsideQC tutorials kleskby 0 702
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

Comments


captcha


No comments yet. Be the first!
Owned by kleskby#1837
Close

You have no new notifications.

SHOUTBOX
Open chat to load…
Log in to chat