154 lines
3.8 KiB
Plaintext
154 lines
3.8 KiB
Plaintext
/*==========
|
|
weapon_touch
|
|
==========*/
|
|
static void() weapon_touch =
|
|
{
|
|
if (other.classname != "player")
|
|
return;
|
|
if (other.health <= 0)
|
|
return;
|
|
if (coop && (other.items & self.weapon))
|
|
{
|
|
// fire targets in coop even if all players already have the weapon
|
|
if (!self.count)
|
|
{
|
|
activator = other;
|
|
UseTargets();
|
|
}
|
|
self.count = 1;
|
|
return;
|
|
}
|
|
|
|
other.ammo_shells = other.ammo_shells + self.ammo_shells;
|
|
other.ammo_nails = other.ammo_nails + self.ammo_nails;
|
|
other.ammo_rockets = other.ammo_rockets + self.ammo_rockets;
|
|
other.ammo_cells = other.ammo_cells + self.ammo_cells;
|
|
W_BoundAmmo(other);
|
|
W_SetCurrentAmmo(other);
|
|
|
|
sprint (other, "You got the ");
|
|
sprint (other, self.netname);
|
|
sprint (other, "\n");
|
|
|
|
sound (other, CHAN_ITEM, "weapons/pkup.wav", 1, ATTN_NORM);
|
|
stuffcmd (other, "bf\n");
|
|
|
|
self.model = string_null;
|
|
self.solid = SOLID_NOT;
|
|
if (deathmatch)
|
|
{
|
|
self.think = ItemRespawn;
|
|
self.nextthink = time + 30;
|
|
}
|
|
|
|
if (!(other.items & self.weapon))
|
|
{
|
|
other.items = other.items | self.weapon;
|
|
if (!other.weaponframe)
|
|
{
|
|
other.weapon = self.weapon;
|
|
W_UpdateWeapon(other);
|
|
}
|
|
}
|
|
|
|
// fire targets
|
|
activator = other;
|
|
UseTargets();
|
|
};
|
|
|
|
/*QUAKED weapon_supershotgun (0 0 1) (-16 -16 0) (16 16 56) X X X X X X X X NOT_IN_EASY NOT_IN_NORMAL NOT_IN_HARD NOT_IN_DM
|
|
{ model("progs/g_shot.mdl"); }
|
|
Double-barrelled Shotgun
|
|
*/
|
|
void() weapon_supershotgun =
|
|
{
|
|
precache_model ("progs/g_shot.mdl");
|
|
setmodel (self, "progs/g_shot.mdl");
|
|
self.weapon = IT_SUPER_SHOTGUN;
|
|
self.netname = "Double-barrelled Shotgun";
|
|
self.ammo_shells = 5;
|
|
self.touch = weapon_touch;
|
|
setsize (self, '-16 -16 0', '16 16 56');
|
|
StartItem ();
|
|
};
|
|
|
|
/*QUAKED weapon_nailgun (0 0 1) (-16 -16 0) (16 16 56) X X X X X X X X NOT_IN_EASY NOT_IN_NORMAL NOT_IN_HARD NOT_IN_DM
|
|
{ model("progs/g_nail.mdl"); }
|
|
Nailgun
|
|
*/
|
|
void() weapon_nailgun =
|
|
{
|
|
precache_model ("progs/g_nail.mdl");
|
|
setmodel (self, "progs/g_nail.mdl");
|
|
self.weapon = IT_NAILGUN;
|
|
self.netname = "nailgun";
|
|
self.ammo_nails = 30;
|
|
self.touch = weapon_touch;
|
|
setsize (self, '-16 -16 0', '16 16 56');
|
|
StartItem ();
|
|
};
|
|
|
|
/*QUAKED weapon_supernailgun (0 0 1) (-16 -16 0) (16 16 56) X X X X X X X X NOT_IN_EASY NOT_IN_NORMAL NOT_IN_HARD NOT_IN_DM
|
|
{ model("progs/g_nail2.mdl"); }
|
|
Perforator
|
|
*/
|
|
void() weapon_supernailgun =
|
|
{
|
|
precache_model ("progs/g_nail2.mdl");
|
|
setmodel (self, "progs/g_nail2.mdl");
|
|
self.weapon = IT_SUPER_NAILGUN;
|
|
self.netname = "Super Nailgun";
|
|
self.ammo_nails = 30;
|
|
self.touch = weapon_touch;
|
|
setsize (self, '-16 -16 0', '16 16 56');
|
|
StartItem ();
|
|
};
|
|
|
|
/*QUAKED weapon_grenadelauncher (0 0 1) (-16 -16 0) (16 16 56) X X X X X X X X NOT_IN_EASY NOT_IN_NORMAL NOT_IN_HARD NOT_IN_DM
|
|
{ model("progs/g_rock.mdl"); }
|
|
Grenade Launcher
|
|
*/
|
|
void() weapon_grenadelauncher =
|
|
{
|
|
precache_model ("progs/g_rock.mdl");
|
|
setmodel (self, "progs/g_rock.mdl");
|
|
self.weapon = IT_GRENADE_LAUNCHER;
|
|
self.netname = "Grenade Launcher";
|
|
self.ammo_rockets = 5;
|
|
self.touch = weapon_touch;
|
|
setsize (self, '-16 -16 0', '16 16 56');
|
|
StartItem ();
|
|
};
|
|
|
|
/*QUAKED weapon_rocketlauncher (0 0 1) (-16 -16 0) (16 16 56) X X X X X X X X NOT_IN_EASY NOT_IN_NORMAL NOT_IN_HARD NOT_IN_DM
|
|
{ model("progs/g_rock2.mdl"); }
|
|
Rocket Launcher
|
|
*/
|
|
void() weapon_rocketlauncher =
|
|
{
|
|
precache_model ("progs/g_rock2.mdl");
|
|
setmodel (self, "progs/g_rock2.mdl");
|
|
self.weapon = IT_ROCKET_LAUNCHER;
|
|
self.netname = "Rocket Launcher";
|
|
self.ammo_rockets = 5;
|
|
self.touch = weapon_touch;
|
|
setsize (self, '-16 -16 0', '16 16 56');
|
|
StartItem ();
|
|
};
|
|
|
|
/*QUAKED weapon_lightning (0 0 1) (-16 -16 0) (16 16 56) X X X X X X X X NOT_IN_EASY NOT_IN_NORMAL NOT_IN_HARD NOT_IN_DM
|
|
{ model("progs/g_light.mdl"); }
|
|
Thunderbolt
|
|
*/
|
|
void() weapon_lightning =
|
|
{
|
|
precache_model ("progs/g_light.mdl");
|
|
setmodel (self, "progs/g_light.mdl");
|
|
self.weapon = IT_LIGHTNING;
|
|
self.netname = "Thunderbolt";
|
|
self.ammo_cells = 15;
|
|
self.touch = weapon_touch;
|
|
setsize (self, '-16 -16 0', '16 16 56');
|
|
StartItem();
|
|
};
|