first commit
This commit is contained in:
143
mod_slipgate/source/server/trap_explobox.qc
Normal file
143
mod_slipgate/source/server/trap_explobox.qc
Normal file
@@ -0,0 +1,143 @@
|
||||
/*==========
|
||||
explobox_explode
|
||||
==========*/
|
||||
static void() explobox_explode =
|
||||
{
|
||||
setorigin(self, realorigin(self)); // fix our origin as we're a bmodel
|
||||
|
||||
RadiusDamage (self, self, self.dmg, world);
|
||||
te_explosion(self.origin);
|
||||
BecomeExplosion();
|
||||
|
||||
// fire targets
|
||||
activator = self.enemy;
|
||||
UseTargets();
|
||||
};
|
||||
|
||||
/*==========
|
||||
explobox_die
|
||||
==========*/
|
||||
static void(entity inflictor, entity attacker) explobox_die =
|
||||
{
|
||||
self.enemy = attacker; // for firing targets
|
||||
self.solid = SOLID_NOT;
|
||||
self.takedamage = DAMAGE_NO;
|
||||
self.think = explobox_explode;
|
||||
self.nextthink = self.ltime + 0.1;
|
||||
};
|
||||
|
||||
/*==========
|
||||
explobox_use
|
||||
==========*/
|
||||
static static void() explobox_use =
|
||||
{
|
||||
self.enemy = activator; // for firing targets
|
||||
self.use = SUB_Null;
|
||||
self.think = explobox_explode;
|
||||
self.nextthink = self.ltime + 0.1;
|
||||
};
|
||||
|
||||
/*==========
|
||||
explobox_drop
|
||||
==========*/
|
||||
static float() explobox_drop =
|
||||
{
|
||||
self.origin_z = self.origin_z + 2;
|
||||
if (!droptofloor())
|
||||
{
|
||||
dprint (self.classname);
|
||||
dprint (" fell out of level at ");
|
||||
dprint (vtos(realorigin(self)));
|
||||
dprint ("\n");
|
||||
remove(self);
|
||||
return TRUE;
|
||||
}
|
||||
return FALSE;
|
||||
};
|
||||
|
||||
/*==========
|
||||
explobox_start
|
||||
==========*/
|
||||
static void() explobox_start =
|
||||
{
|
||||
self.solid = SOLID_BSP;
|
||||
self.movetype = MOVETYPE_PUSH;
|
||||
if (self.classname == "misc_explobox2")
|
||||
{
|
||||
precache_model2 ("maps/b_exbox2.bsp");
|
||||
setmodel (self, "maps/b_exbox2.bsp");
|
||||
setsize(self, '0 0 0', '32 32 32');
|
||||
if (explobox_drop())
|
||||
return;
|
||||
}
|
||||
else if (self.classname == "misc_explobox")
|
||||
{
|
||||
precache_model ("maps/b_explob.bsp");
|
||||
setmodel (self, "maps/b_explob.bsp");
|
||||
setsize(self, '0 0 0', '32 32 64');
|
||||
if (explobox_drop())
|
||||
return;
|
||||
}
|
||||
else
|
||||
setmodel (self, self.model);
|
||||
|
||||
self.classname = "explobox";
|
||||
SetPositiveDefault(dmg, 160);
|
||||
self.colour = 192;
|
||||
|
||||
// if targetname is set, it must be triggered
|
||||
if (self.targetname != "")
|
||||
self.use = explobox_use;
|
||||
else
|
||||
{
|
||||
SetPositiveDefault(health, 20);
|
||||
self.takedamage = DAMAGE_AIM;
|
||||
self.th_die = explobox_die;
|
||||
}
|
||||
};
|
||||
|
||||
/*QUAKED misc_explobox (1 .5 0) (0 0 0) (32 32 64) X X X X X X X X NOT_IN_EASY NOT_IN_NORMAL NOT_IN_HARD NOT_IN_DM
|
||||
{
|
||||
model("maps/b_explob.bsp");
|
||||
}
|
||||
Large explosive box
|
||||
If "targetname" is set, cannot be shot and must be triggered.
|
||||
|
||||
Keys:
|
||||
"targetname" - if set, cannot be shot and must be triggered.
|
||||
"health" - override default health of 20.
|
||||
"dmg" - override default damage of 160.
|
||||
*/
|
||||
void() misc_explobox =
|
||||
{
|
||||
explobox_start();
|
||||
};
|
||||
|
||||
/*QUAKED misc_explobox2 (1 .5 0) (0 0 0) (32 32 32) X X X X X X X X NOT_IN_EASY NOT_IN_NORMAL NOT_IN_HARD NOT_IN_DM
|
||||
{
|
||||
model("maps/b_exbox2.bsp");
|
||||
}
|
||||
Small explosive box
|
||||
|
||||
Keys:
|
||||
"targetname" - if set, cannot be shot and must be triggered.
|
||||
"health" - override default health of 20.
|
||||
"dmg" - override default damage of 160.
|
||||
*/
|
||||
void() misc_explobox2 =
|
||||
{
|
||||
explobox_start();
|
||||
};
|
||||
|
||||
/*QUAKED func_explosive (1 .5 0) ? X X X X X X X X NOT_IN_EASY NOT_IN_NORMAL NOT_IN_HARD NOT_IN_DM
|
||||
Brush that explodes when shot or triggered
|
||||
|
||||
Keys:
|
||||
"targetname" - if set, cannot be shot and must be triggered.
|
||||
"health" - override default health of 20.
|
||||
"dmg" - override default damage of 160.
|
||||
*/
|
||||
void() func_explosive =
|
||||
{
|
||||
explobox_start();
|
||||
};
|
||||
Reference in New Issue
Block a user