home *** CD-ROM | disk | FTP | other *** search
/ Quake 'em / QUAKEEM.BIN / quake / programs / lasertag / lasertag.dif next >
Encoding:
Text File  |  1981-01-07  |  3.9 KB  |  152 lines

  1. diff -u ./client.qc ./client.qc
  2. --- ./client.qc    Wed Jul 24 23:51:22 1996
  3. +++ ./client.qc    Thu Jan  8 00:34:27 1981
  4. @@ -452,6 +452,7 @@
  5.  
  6.      self.classname = "player";
  7.      self.health = 100;
  8. +    self.lives = 3;
  9.      self.takedamage = DAMAGE_AIM;
  10.      self.solid = SOLID_SLIDEBOX;
  11.      self.movetype = MOVETYPE_WALK;
  12. @@ -1115,6 +1116,39 @@
  13.              self.radsuit_finished = 0;
  14.          }
  15.      }    
  16. +
  17. +// Laser tag after death noweapon
  18. +    if (self.noweapon_finished)
  19. +    {
  20. +// sound and screen flash when items starts to run out
  21. +        if (self.noweapon_finished < time + 3)
  22. +        {
  23. +            if (self.noweapon_time == 1)
  24. +            {
  25. +                sprint (self, "Use of weapon nearing\n");
  26. +                stuffcmd (self, "bf\n");
  27. +                sound (self, CHAN_AUTO, "items/protect2.wav", 1, ATTN_NORM);
  28. +                self.noweapon_time = time + 1;
  29. +            }
  30. +            
  31. +            if (self.noweapon_time < time)
  32. +            {
  33. +                self.noweapon_time = time + 1;
  34. +                stuffcmd (self, "bf\n");
  35. +            }
  36. +        }
  37. +        
  38. +        if (self.noweapon_finished < time)
  39. +        {    // just stopped
  40. +            self.items = self.items - IT_NOWEAPON;
  41. +            self.noweapon_time = 0;
  42. +            self.noweapon_finished = 0;
  43. +        }
  44. +        if (self.noweapon_finished > time)
  45. +            self.effects = self.effects | EF_DIMLIGHT;
  46. +        else
  47. +            self.effects = self.effects - (self.effects & EF_DIMLIGHT);
  48. +    }
  49.  
  50.  };
  51.  
  52. diff -u ./combat.qc ./combat.qc
  53. --- ./combat.qc    Wed Jul 24 23:51:22 1996
  54. +++ ./combat.qc    Thu Jan  8 00:32:37 1981
  55. @@ -112,6 +112,10 @@
  56.  // used by buttons and triggers to set activator for target firing
  57.      damage_attacker = attacker;
  58.  
  59. +// team play damage avoidance
  60. +    if ( (teamplay == 1) && (targ.team > 0)&&(targ.team == attacker.team) )
  61. +        return;
  62. +        
  63.  // check for quad damage powerup on the attacker
  64.      if (attacker.super_damage_finished > time)
  65.          damage = damage * 4;
  66. @@ -160,18 +164,32 @@
  67.          return;
  68.      }
  69.  
  70. -// team play damage avoidance
  71. -    if ( (teamplay == 1) && (targ.team > 0)&&(targ.team == attacker.team) )
  72. -        return;
  73. -        
  74.  // do the damage
  75.      targ.health = targ.health - take;
  76.              
  77.      if (targ.health <= 0)
  78.      {
  79. -        Killed (targ, attacker);
  80. -        return;
  81. -    }
  82. +        if (targ.lives <= 0)
  83. +        {
  84. +            Killed (targ, attacker);
  85. +            return;
  86. +        }
  87. +        else
  88. +        {
  89. +            targ.lives = targ.lives - 1;
  90. +            targ.health = 100;
  91. +            targ.air_finished = time + 12;
  92. +            targ.dmg = 2;        // initial water damage
  93. +                targ.super_damage_finished = 0;
  94. +                targ.radsuit_finished = 0;
  95. +                targ.invisible_finished = 0;
  96. +                targ.effects = 0;
  97. +
  98. +                targ.invincible_time = 1;    // invincible for 5 seconds
  99. +                targ.invincible_finished = time + 5;
  100. +            targ.noweapon_time = 1;        // noweapon for 10 seconds
  101. +            targ.noweapon_finished = time + 10;
  102. +     }
  103.  
  104.  // react to the damage
  105.      oldself = self;
  106. diff -u ./defs.qc ./defs.qc
  107. --- ./defs.qc    Wed Jul 24 23:51:22 1996
  108. +++ ./defs.qc    Thu Jan  8 00:38:03 1981
  109. @@ -135,6 +135,7 @@
  110.  // stats
  111.  .float        health;
  112.  .float        frags;
  113. +.float        lives;            // Laser tag lives
  114.  .float        weapon;            // one of the IT_SHOTGUN, etc flags
  115.  .string        weaponmodel;
  116.  .float        weaponframe;
  117. @@ -240,6 +241,7 @@
  118.  float    FL_PARTIALGROUND        = 1024;    // not all corners are valid
  119.  float    FL_WATERJUMP            = 2048;    // player jumping out of water
  120.  float    FL_JUMPRELEASED            = 4096;    // for jump debouncing
  121. +float    FL_NOATTACK            = 8192; // Laser tag: can't attack after death
  122.  
  123.  // edict.movetype values
  124.  float    MOVETYPE_NONE            = 0;    // never moves
  125. @@ -462,11 +464,13 @@
  126.  .float         attack_finished;
  127.  .float        pain_finished;
  128.  
  129. +.float        noweapon_finished;
  130.  .float        invincible_finished;
  131.  .float        invisible_finished;
  132.  .float        super_damage_finished;
  133.  .float        radsuit_finished;
  134.  
  135. +.float        noweapon_time;
  136.  .float        invincible_time, invincible_sound;
  137.  .float        invisible_time, invisible_sound;
  138.  .float        super_time, super_sound;
  139. diff -u ./weapons.qc ./weapons.qc
  140. --- ./weapons.qc    Wed Jul 24 23:51:24 1996
  141. +++ ./weapons.qc    Thu Jan  8 00:32:37 1981
  142. @@ -887,6 +887,9 @@
  143.      if (!W_CheckNoAmmo ())
  144.          return;
  145.  
  146. +    if (time < self.noweapon_finished)
  147. +        return;
  148. +
  149.      makevectors    (self.v_angle);            // calculate forward angle for velocity
  150.      self.show_hostile = time + 1;    // wake monsters up
  151.  
  152.