set g_botclip_collisions 1 "0 = disable collision testing against botclips, might be useful on some defrag maps"
set g_grappling_hook 0 "let players spawn with the grappling hook which allows them to pull themselves up"
+set g_grappling_hook_useammo 0 "use ammunition with the off-hand grappling hook"
set g_spawn_alloweffects 1 "allow clients to enable spawn point and event effects such as particles and sounds, see cl_spawn_ cvars for more info"
set g_spawn_furthest 0.5 "this amount of the spawns shall be far away from any players"
// can't use the autocvar as it doesn't work in the campaign
//AUTOCVAR(g_grappling_hook, bool, false, "let players spawn with the grappling hook which allows them to pull themselves up");
#ifdef SVQC
+AUTOCVAR(g_grappling_hook_useammo, bool, false, "Use ammunition with the off-hand grappling hook");
+
REGISTER_MUTATOR(hook, cvar("g_grappling_hook")) {
MUTATOR_ONADD {
g_grappling_hook = true;
- WEP_HOOK.ammo_factor = 0;
+ if(!autocvar_g_grappling_hook_useammo)
+ WEP_HOOK.ammo_factor = 0;
}
MUTATOR_ONROLLBACK_OR_REMOVE {
g_grappling_hook = false;
- WEP_HOOK.ammo_factor = 1;
+ if(!autocvar_g_grappling_hook_useammo)
+ WEP_HOOK.ammo_factor = 1; // we don't need to change it
}
return false;
M_ARGV(0, string) = strcat(M_ARGV(0, string), "\n\n^3grappling hook^8 is enabled, press 'e' to use it\n");
}
+MUTATOR_HOOKFUNCTION(hook, SetStartItems)
+{
+ if(autocvar_g_grappling_hook_useammo)
+ {
+ start_items |= ITEM_JetpackRegen.m_itemid;
+ start_ammo_fuel = max(start_ammo_fuel, cvar("g_balance_fuel_rotstable"));
+ warmup_start_ammo_fuel = max(warmup_start_ammo_fuel, cvar("g_balance_fuel_rotstable"));
+ }
+}
+
MUTATOR_HOOKFUNCTION(hook, PlayerSpawn)
{
entity player = M_ARGV(0, entity);
start_ammo_cells = warmup_start_ammo_cells = cvar("g_instagib_ammo_start");
start_ammo_plasma = warmup_start_ammo_plasma = 0;
start_ammo_rockets = warmup_start_ammo_rockets = 0;
- start_ammo_fuel = warmup_start_ammo_fuel = 0;
+ //start_ammo_fuel = warmup_start_ammo_fuel = 0;
start_weapons = warmup_start_weapons = WEPSET(VAPORIZER);
start_items |= IT_UNLIMITED_SUPERWEAPONS;
{
actor.ammo_fuel = 0;
actor.(weaponentity).hook_state |= HOOK_REMOVING;
- W_SwitchWeapon_Force(actor, w_getbestweapon(actor, weaponentity), weaponentity);
+ if(actor.(weaponentity).m_weapon != WEP_Null) // offhand
+ W_SwitchWeapon_Force(actor, w_getbestweapon(actor, weaponentity), weaponentity);
}
}
}