home *** CD-ROM | disk | FTP | other *** search
- diff -u ./client.qc ./client.qc
- --- ./client.qc Wed Jul 24 23:51:22 1996
- +++ ./client.qc Thu Jan 8 00:34:27 1981
- @@ -452,6 +452,7 @@
-
- self.classname = "player";
- self.health = 100;
- + self.lives = 3;
- self.takedamage = DAMAGE_AIM;
- self.solid = SOLID_SLIDEBOX;
- self.movetype = MOVETYPE_WALK;
- @@ -1115,6 +1116,39 @@
- self.radsuit_finished = 0;
- }
- }
- +
- +// Laser tag after death noweapon
- + if (self.noweapon_finished)
- + {
- +// sound and screen flash when items starts to run out
- + if (self.noweapon_finished < time + 3)
- + {
- + if (self.noweapon_time == 1)
- + {
- + sprint (self, "Use of weapon nearing\n");
- + stuffcmd (self, "bf\n");
- + sound (self, CHAN_AUTO, "items/protect2.wav", 1, ATTN_NORM);
- + self.noweapon_time = time + 1;
- + }
- +
- + if (self.noweapon_time < time)
- + {
- + self.noweapon_time = time + 1;
- + stuffcmd (self, "bf\n");
- + }
- + }
- +
- + if (self.noweapon_finished < time)
- + { // just stopped
- + self.items = self.items - IT_NOWEAPON;
- + self.noweapon_time = 0;
- + self.noweapon_finished = 0;
- + }
- + if (self.noweapon_finished > time)
- + self.effects = self.effects | EF_DIMLIGHT;
- + else
- + self.effects = self.effects - (self.effects & EF_DIMLIGHT);
- + }
-
- };
-
- diff -u ./combat.qc ./combat.qc
- --- ./combat.qc Wed Jul 24 23:51:22 1996
- +++ ./combat.qc Thu Jan 8 00:32:37 1981
- @@ -112,6 +112,10 @@
- // used by buttons and triggers to set activator for target firing
- damage_attacker = attacker;
-
- +// team play damage avoidance
- + if ( (teamplay == 1) && (targ.team > 0)&&(targ.team == attacker.team) )
- + return;
- +
- // check for quad damage powerup on the attacker
- if (attacker.super_damage_finished > time)
- damage = damage * 4;
- @@ -160,18 +164,32 @@
- return;
- }
-
- -// team play damage avoidance
- - if ( (teamplay == 1) && (targ.team > 0)&&(targ.team == attacker.team) )
- - return;
- -
- // do the damage
- targ.health = targ.health - take;
-
- if (targ.health <= 0)
- {
- - Killed (targ, attacker);
- - return;
- - }
- + if (targ.lives <= 0)
- + {
- + Killed (targ, attacker);
- + return;
- + }
- + else
- + {
- + targ.lives = targ.lives - 1;
- + targ.health = 100;
- + targ.air_finished = time + 12;
- + targ.dmg = 2; // initial water damage
- + targ.super_damage_finished = 0;
- + targ.radsuit_finished = 0;
- + targ.invisible_finished = 0;
- + targ.effects = 0;
- +
- + targ.invincible_time = 1; // invincible for 5 seconds
- + targ.invincible_finished = time + 5;
- + targ.noweapon_time = 1; // noweapon for 10 seconds
- + targ.noweapon_finished = time + 10;
- + }
-
- // react to the damage
- oldself = self;
- diff -u ./defs.qc ./defs.qc
- --- ./defs.qc Wed Jul 24 23:51:22 1996
- +++ ./defs.qc Thu Jan 8 00:38:03 1981
- @@ -135,6 +135,7 @@
- // stats
- .float health;
- .float frags;
- +.float lives; // Laser tag lives
- .float weapon; // one of the IT_SHOTGUN, etc flags
- .string weaponmodel;
- .float weaponframe;
- @@ -240,6 +241,7 @@
- float FL_PARTIALGROUND = 1024; // not all corners are valid
- float FL_WATERJUMP = 2048; // player jumping out of water
- float FL_JUMPRELEASED = 4096; // for jump debouncing
- +float FL_NOATTACK = 8192; // Laser tag: can't attack after death
-
- // edict.movetype values
- float MOVETYPE_NONE = 0; // never moves
- @@ -462,11 +464,13 @@
- .float attack_finished;
- .float pain_finished;
-
- +.float noweapon_finished;
- .float invincible_finished;
- .float invisible_finished;
- .float super_damage_finished;
- .float radsuit_finished;
-
- +.float noweapon_time;
- .float invincible_time, invincible_sound;
- .float invisible_time, invisible_sound;
- .float super_time, super_sound;
- diff -u ./weapons.qc ./weapons.qc
- --- ./weapons.qc Wed Jul 24 23:51:24 1996
- +++ ./weapons.qc Thu Jan 8 00:32:37 1981
- @@ -887,6 +887,9 @@
- if (!W_CheckNoAmmo ())
- return;
-
- + if (time < self.noweapon_finished)
- + return;
- +
- makevectors (self.v_angle); // calculate forward angle for velocity
- self.show_hostile = time + 1; // wake monsters up
-
-