first commit
This commit is contained in:
93
mod_slipgate/source/server/trap_shooter.qc
Normal file
93
mod_slipgate/source/server/trap_shooter.qc
Normal file
@@ -0,0 +1,93 @@
|
||||
static enumflags { SHOOTER_SUPERSPIKE, SHOOTER_LASER };
|
||||
|
||||
void(vector org, vector vec) LaunchLaser;
|
||||
|
||||
/*==========
|
||||
shooter_use
|
||||
==========*/
|
||||
static void() shooter_use =
|
||||
{
|
||||
if (self.spawnflags & SHOOTER_LASER)
|
||||
{
|
||||
sound (self, CHAN_VOICE, "enforcer/enfire.wav", 1, ATTN_NORM);
|
||||
LaunchLaser (self.origin, self.movedir);
|
||||
}
|
||||
else if (self.spawnflags & SHOOTER_SUPERSPIKE)
|
||||
{
|
||||
sound (self, CHAN_VOICE, "weapons/spike2.wav", 1, ATTN_NORM);
|
||||
launch_spike (self.origin, self.movedir);
|
||||
newmis.touch = superspike_touch;
|
||||
}
|
||||
else
|
||||
{
|
||||
sound (self, CHAN_VOICE, "weapons/rocket1i.wav", 1, ATTN_NORM);
|
||||
launch_spike (self.origin, self.movedir);
|
||||
}
|
||||
newmis.velocity = self.movedir * 500;
|
||||
};
|
||||
|
||||
/*==========
|
||||
shooter_think
|
||||
==========*/
|
||||
static void() shooter_think =
|
||||
{
|
||||
shooter_use();
|
||||
self.think = shooter_think;
|
||||
self.nextthink = time + self.wait;
|
||||
};
|
||||
|
||||
/*==========
|
||||
shooter_precache
|
||||
==========*/
|
||||
static void() shooter_precache =
|
||||
{
|
||||
if (self.spawnflags & SHOOTER_LASER)
|
||||
{
|
||||
precache_model2 ("progs/laser.mdl");
|
||||
precache_sound2 ("enforcer/enfire.wav");
|
||||
precache_sound2 ("enforcer/enfstop.wav");
|
||||
}
|
||||
else if (self.spawnflags & SHOOTER_SUPERSPIKE)
|
||||
precache_sound ("weapons/spike2.wav");
|
||||
else
|
||||
precache_sound("weapons/rocket1i.wav");
|
||||
};
|
||||
|
||||
/*QUAKED trap_spikeshooter (1 .5 0) (-8 -8 -8) (8 8 8) SUPERSPIKE LASER
|
||||
Fires projectiles when triggered.
|
||||
|
||||
Keys:
|
||||
"angle" - direction of movement
|
||||
|
||||
Spawnflags:
|
||||
If no spawnflag is set, shoots regular nails.
|
||||
SUPERSPIKE - fire supernails
|
||||
LASER - fire enforcer lasers
|
||||
*/
|
||||
void() trap_spikeshooter =
|
||||
{
|
||||
shooter_precache();
|
||||
SetMovedir();
|
||||
self.use = shooter_use;
|
||||
};
|
||||
|
||||
/*QUAKED trap_shooter (1 .5 0) (-8 -8 -8) (8 8 8) SUPERSPIKE LASER
|
||||
Continuously fires projectiles.
|
||||
|
||||
Keys:
|
||||
"angle" - direction of movement
|
||||
"wait" - time between shots
|
||||
"nextthink" - delay on first shot, so shooters can be staggered.
|
||||
|
||||
Spawnflags:
|
||||
If no spawnflag is set, shoots regular nails.
|
||||
SUPERSPIKE - fire supernails
|
||||
LASER - fire enforcer lasers
|
||||
*/
|
||||
void() trap_shooter =
|
||||
{
|
||||
shooter_precache();
|
||||
SetPositiveDefault(wait, 1);
|
||||
self.think = shooter_think;
|
||||
self.nextthink = self.nextthink + self.wait;
|
||||
};
|
||||
Reference in New Issue
Block a user