djcev.com

//

Git Repos / fte_dogmode / qc / triggers / take_weapon.qc

Last update to this file was on 2024-06-26 at 03:47.

Show take_weapon.qc

//==============================================================================
// trigger_take_weapon
//==============================================================================

//======================================================================
// GIVE AND TAKE STUFF (WIP)
// This is Axe only at the moment. Need to research removing all weapons.
//======================================================================

//======================================================================
// forward declarations
//======================================================================

#ifdef SSQC
void() trigger_take_weapon_touch;
void(entity e) trigger_take_weapon_init;
void() trigger_take_weapon;
#endif

//------------------------------------------------------------------------------

#ifdef SSQC
/*QUAKED trigger_take_weapon (.5 .5 .5) ? X X X X X X X X NOT_ON_EASY NOT_ON_NORMAL NOT_ON_HARD_OR_NIGHTMARE NOT_IN_DEATHMATCH NOT_IN_COOP NOT_IN_SINGLEPLAYER X NOT_ON_HARD_ONLY NOT_ON_NIGHTMARE_ONLY

Removes shotgun upon touch. You can also set "reset_items" in the worldspawn entity to accomplish an axe only start.
*/
//----------------------------------------------------------------------
// class trigger_take_weapon: base_multiple
// {
//--------------------------------------------------------------
// trigger_take_weapon_use
// thanks to ShanJaq and Spike for their help on this.
//--------------------------------------------------------------
void() trigger_take_weapon_touch =
{
// from Copper -- dumptruck_ds
if (sub_checkvalidtouch(other) == FALSE)
return;

if (!(other.flags & FL_CLIENT))
return;

base_multiple_fire ();
other.items &= ~IT_SHOTGUN;
other.currentammo = !other.ammo_shells;
other.ammo_shells = !other.ammo_shells;
other.items = other.items - (other.items & IT_SHELLS);

if (other.classtype == CT_PLAYER)
{
sub_runfloatas (other, player_best_weapon);
sub_runvoidas (other, player_set_current_ammo);
}
};

//--------------------------------------------------------------
void(entity e) trigger_take_weapon_init =
{
e.classname = "trigger_take_weapon";
e.classtype = CT_TRIGGER_TAKE_WEAPON;
e.touch = trigger_take_weapon_touch;
e.wait = -1;

base_multiple_init (e);
sub_checkwaiting (e);
};

//--------------------------------------------------------------
void() trigger_take_weapon =
{
// new spawnflags for all entities -- iw
if (SUB_Inhibit())
return;

trigger_take_weapon_init (self);
};
// };
#endif

Return to the top of this page or return to the overview of this repo.

Log take_weapon.qc

Return to the top of this page or return to the overview of this repo.