allow_mutatorblocked = M_ARGV(3, bool);
if(allguns)
- d = boolean(weaponinfo.spawnflags & WEP_FLAG_NORMAL);
+ d = boolean((weaponinfo.spawnflags & WEP_FLAG_NORMAL) && !(weaponinfo.spawnflags & WEP_FLAG_HIDDEN));
else if(!mutator_returnvalue)
d = !(!weaponinfo.weaponstart);
return t;
}
+void weaponarena_available_update(entity this)
+{
+ if(!weaponsInMap)
+ {
+ // if no weapons are available, just fall back to most weapons arena
+ FOREACH(Weapons, it != WEP_Null, {
+ if(!(it.spawnflags & WEP_FLAG_MUTATORBLOCKED) && (it.spawnflags & WEP_FLAG_NORMAL) && !(it.spawnflags & WEP_FLAG_HIDDEN))
+ g_weaponarena_weapons |= (it.m_wepset);
+ });
+ start_weapons = g_weaponarena_weapons;
+ return;
+ }
+ g_weaponarena_weapons |= weaponsInMap;
+ start_weapons = g_weaponarena_weapons;
+}
+
void readplayerstartcvars()
{
float i, t;
g_weaponarena_weapons |= (it.m_wepset);
});
}
+ else if (s == "available")
+ {
+ g_weaponarena = 2;
+ g_weaponarena_list = "Most Weapons";
+ // include weapons the player would start with
+ FOREACH(Weapons, it != WEP_Null, {
+ int w = want_weapon(it, false);
+ if(w & 1)
+ g_weaponarena_weapons |= (it.m_wepset);
+ });
+ InitializeEntity(NULL, weaponarena_available_update, INITPRIO_FINDTARGET);
+ }
else if (s == "none")
{
g_weaponarena = 1;
// note that it doesn't reset all server cvars,
// some are shared with the client and so are left in xonotic-common.cfg
- set name_maxlength 64 "max player name length (not counting color codes) allowed by the server"
+ set sv_name_maxlength 64 "max player name length (not counting color codes) allowed by the server"
// taunts and voices
set sv_taunt 1 "allow taunts on the server"
set g_pickup_respawntime_scaling_reciprocal 0 "Multiply respawn time by `reciprocal / (p + offset) + linear` where `p` is the current number of players, takes effect with 2 or more players present, `reciprocal` (with `offset` and `linear` set to 0) can be used to achieve a constant number of items spawned *per player*"
set g_pickup_respawntime_scaling_offset 0 "Multiply respawn time by `reciprocal / (p + offset) + linear` where `p` is the current number of players, takes effect with 2 or more players present, `offset` offsets the curve left or right - the results are not intuitive and I recommend plotting the respawn time and the number of items per player to see what's happening"
set g_pickup_respawntime_scaling_linear 1 "Multiply respawn time by `reciprocal / (p + offset) + linear` where `p` is the current number of players, takes effect with 2 or more players present, `linear` can be used to simply scale the respawn time linearly"
-set g_weaponarena "0" "put in a list of weapons to enable a weapon arena mode, or try \"all\" or \"most\""
+set g_weaponarena "0" "put in a list of weapons to enable a weapon arena mode, or try \"all\" or \"most\" or \"available\""
set g_weaponarena_random "0" "if set to a number, only that weapon count is given on every spawn (randomly)"
set g_weaponarena_random_with_blaster "1" "additionally, always provide the blaster in random weapon arena games"
set g_spawnpoints_auto_move_out_of_solid 0 "if set to 1 you will see a warning if a spawn point was placed inside a solid"
set g_cloaked 0 "display all players mostly invisible"
set g_player_alpha 1 "default opacity of players"
set g_player_brightness 0 "set to 2 for brighter players"
+ set g_player_damageforcescale 2 "push multiplier of attacks against players"
set g_balance_cloaked_alpha 0.25 "opacity of cloaked players"
set g_playerclip_collisions 1 "0 = disable collision testing against playerclips, might be useful on some defrag maps"