home *** CD-ROM | disk | FTP | other *** search
/ Quake 'em / QUAKEEM.BIN / quake / programs / qwiz12 / wizmark.qc < prev   
Encoding:
Text File  |  1996-08-16  |  2.3 KB  |  85 lines

  1. /*
  2.  
  3. ==============================================================================
  4.  
  5. wizmark
  6.  
  7. ==============================================================================
  8.  
  9. */
  10.  
  11.  
  12. float    IT_WIZMARK = 8388608;    // wizmark bit mask flag
  13. float   IT_WIZMARK_neg = 8388607;    // negative wizmark bit mask flag
  14.  
  15.  
  16. //--------------------------------------------------------------------
  17. // When time expires wizmark gets deactivated
  18. //--------------------------------------------------------------------
  19. void() Removewizmark =
  20. {
  21.     WriteByte (MSG_BROADCAST, SVC_TEMPENTITY);
  22.         WriteByte (MSG_BROADCAST, TE_TELEPORT);
  23.         WriteCoord (MSG_BROADCAST, self.origin_x);
  24.         WriteCoord (MSG_BROADCAST, self.origin_y);
  25.         WriteCoord (MSG_BROADCAST, self.origin_z);
  26.         sound (self, CHAN_BODY, "shalrath/attack2.wav", 1, ATTN_NORM);
  27.     SUB_Remove();
  28.     self.owner.items = self.owner.items & IT_WIZMARK_neg;
  29.     sprint(self.owner,"Wizard Mark expired\n");
  30. };
  31.  
  32.  
  33.  
  34. //--------------------------------------------------------------------
  35. // Spawns wizmark
  36. //--------------------------------------------------------------------
  37. void(entity myself) Activatewizmark =
  38. {
  39.     local entity    wizmark;
  40.  
  41.     wizmark = spawn();
  42.     wizmark.solid = SOLID_NOT;
  43.     wizmark.movetype = MOVETYPE_NOCLIP;
  44.     wizmark.origin = (self.origin + v_forward*15 + '0 0 0');
  45.  
  46.     wizmark.avelocity = '0 0 0';
  47.  
  48.     wizmark.angles = self.angles;
  49.     setmodel (wizmark, "progs/end3.mdl");
  50.     wizmark.classname = "wizmark";
  51.     wizmark.owner=myself;
  52.     wizmark.nextthink = time + 20;    
  53.     wizmark.think = Removewizmark;
  54.     self.items = self.items | IT_WIZMARK;
  55.     stuffcmd (wizmark.owner, "bf\n");
  56.     sprint(wizmark.owner,"Wizard Mark has been placed\n");
  57.  
  58.  
  59. };
  60.  
  61.  
  62.  
  63. //--------------------------------------------------------------------
  64. // Checks if wizmarkgraph should be activated
  65. //--------------------------------------------------------------------
  66. void() WizmarkC = 
  67. {
  68.     if ((self.items & IT_WIZMARK) == IT_WIZMARK)
  69.     {
  70.         sprint(self,"An illusion has already been cast\n");
  71.         return;
  72.     }
  73.  
  74.     if (self.ammo_cells < 10)
  75.     {
  76.         sprint(self,"cells are low\n");
  77.         return;
  78.     }
  79.       self.currentammo = self.ammo_cells = self.ammo_cells - 10;
  80.     W_SetCurrentAmmo();
  81.  
  82.     sound (self, CHAN_WEAPON, "shalrath/attack2.wav", 1, ATTN_NORM);
  83.     Activatewizmark (self);
  84. }; 
  85.