X-Git-Url: http://git.xonotic.org/?a=blobdiff_plain;f=gamemodes.cfg;h=71f0dc1792200bea112c846ba847e47c7526bf29;hb=facab43576ecefbdc9cfbfd66fb4c8798ea9e8a5;hp=feed7488b5c2681d4e78565c600d6cf69a2350e0;hpb=9029f02a98472212424469b1ea5d73597d41cfe8;p=xonotic%2Fxonotic-data.pk3dir.git diff --git a/gamemodes.cfg b/gamemodes.cfg index feed7488b..71f0dc179 100644 --- a/gamemodes.cfg +++ b/gamemodes.cfg @@ -18,6 +18,7 @@ alias asay_drop "say_team (%l) dropped %w ; impulse 17" // ================= // gamestart hooks // ================= +seta cl_matchcount 0 // incremented by cl_hook_gameend and used by playerstats to know when to alias _cl_hook_gamestart "set _cl_hook_gametype $1; _cl_hook_gamestart_stage2" alias _cl_hook_gamestart_stage2 "cl_hook_gamestart_all; cl_hook_gamestart_${_cl_hook_gametype}" alias cl_hook_gamestart_all @@ -36,7 +37,8 @@ alias cl_hook_gamestart_nb alias cl_hook_gamestart_cts alias cl_hook_gamestart_ka alias cl_hook_gamestart_ft -alias cl_hook_gameend +alias cl_hook_gamestart_inv +alias cl_hook_gameend "rpn /cl_matchcount dup load 1 + =" // increase match count every time a game ends alias cl_hook_activeweapon alias _sv_hook_gamestart "set _sv_hook_gametype $1; _sv_hook_gamestart_stage2" @@ -56,10 +58,45 @@ alias sv_hook_gamestart_nb alias sv_hook_gamestart_cts alias sv_hook_gamestart_ka alias sv_hook_gamestart_ft +alias sv_hook_gamestart_inv alias sv_hook_gamerestart alias sv_hook_gameend +// ===================== +// gametype vote hooks +// ===================== +// These are called when the mode is switched via gametype vote screen, +// earlier than gamestart hooks (useful for enabling per-gamemode mutators) +// The _all hook is called before the specific one +// here it sets g_maxplayers to undo what duel does +alias sv_vote_gametype_hook_all "set g_maxplayers 0" +alias sv_vote_gametype_hook_as +alias sv_vote_gametype_hook_ca +alias sv_vote_gametype_hook_ctf +alias sv_vote_gametype_hook_cts +alias sv_vote_gametype_hook_dm +alias sv_vote_gametype_hook_dom +alias sv_vote_gametype_hook_ft +alias sv_vote_gametype_hook_inv +alias sv_vote_gametype_hook_ka +alias sv_vote_gametype_hook_kh +alias sv_vote_gametype_hook_lms +alias sv_vote_gametype_hook_nb +alias sv_vote_gametype_hook_ons +alias sv_vote_gametype_hook_rc +alias sv_vote_gametype_hook_tdm + +// Preset to allow duel to be used for the gametype voting screen +// sv_vote_gametype_*_type Must be set to the name of the gametype the option is based on +// sv_vote_gametype_*_name Contains a human-readable name of the gametype +// sv_vote_gametype_*_description Contains a longer description +set sv_vote_gametype_duel_type dm +set sv_vote_gametype_duel_name Duel +set sv_vote_gametype_duel_description "One vs One match" +alias sv_vote_gametype_hook_duel "set g_maxplayers 2" + + // =========== // leadlimit // =========== @@ -78,55 +115,118 @@ seta g_keyhunt_point_leadlimit -1 "Keyhunt point lead limit overriding the mapin seta g_race_laps_limit -1 "Race laps limit overriding the mapinfo specified one (use 0 to play without limit, and -1 to use the mapinfo's limit)" seta g_nexball_goallimit -1 "Nexball goal limit overriding the mapinfo specified one (use 0 to play without limit, and -1 to use the mapinfo's limit)" seta g_nexball_goalleadlimit -1 "Nexball goal lead limit overriding the mapinfo specified one (use 0 to play without limit, and -1 to use the mapinfo's limit)" +seta g_invasion_point_limit -1 "Invasion point limit overriding the mapinfo specified one (use 0 to play without limit, and -1 to use the mapinfo's limit)" // ================================= // respawn delay/waves/weapon_stay // ================================= -// when variables are set to anything other than 0, they take over the global setting... -// to force disable delay or waves, set them to 0.125 -set g_ctf_respawn_delay 5 +// when variables are set to anything other than 0, they take over the global setting. Negative values force an output value of zero. +set g_ctf_respawn_delay_small 1 +set g_ctf_respawn_delay_small_count 1 +set g_ctf_respawn_delay_large 5 +set g_ctf_respawn_delay_large_count 5 +set g_ctf_respawn_delay_max 0 set g_ctf_respawn_waves 0 set g_ctf_weapon_stay 0 -set g_dm_respawn_delay 0 +set g_dm_respawn_delay_small 0 +set g_dm_respawn_delay_small_count 0 +set g_dm_respawn_delay_large 0 +set g_dm_respawn_delay_large_count 0 +set g_dm_respawn_delay_max 0 set g_dm_respawn_waves 0 set g_dm_weapon_stay 0 -set g_dom_respawn_delay 0 +set g_dom_respawn_delay_small 0 +set g_dom_respawn_delay_small_count 0 +set g_dom_respawn_delay_large 0 +set g_dom_respawn_delay_large_count 0 +set g_dom_respawn_delay_max 0 set g_dom_respawn_waves 0 set g_dom_weapon_stay 0 -set g_lms_respawn_delay 0 +set g_lms_respawn_delay_small 0 +set g_lms_respawn_delay_small_count 0 +set g_lms_respawn_delay_large 0 +set g_lms_respawn_delay_large_count 0 +set g_lms_respawn_delay_max 0 set g_lms_respawn_waves 0 set g_lms_weapon_stay 0 -set g_tdm_respawn_delay 0 +set g_tdm_respawn_delay_small 0 +set g_tdm_respawn_delay_small_count 0 +set g_tdm_respawn_delay_large 0 +set g_tdm_respawn_delay_large_count 0 +set g_tdm_respawn_delay_max 0 set g_tdm_respawn_waves 0 set g_tdm_weapon_stay 0 -set g_ka_respawn_delay 0 +set g_ka_respawn_delay_small 0 +set g_ka_respawn_delay_small_count 0 +set g_ka_respawn_delay_large 0 +set g_ka_respawn_delay_large_count 0 +set g_ka_respawn_delay_max 0 set g_ka_respawn_waves 0 set g_ka_weapon_stay 0 -set g_kh_respawn_delay 0 +set g_kh_respawn_delay_small 0 +set g_kh_respawn_delay_small_count 0 +set g_kh_respawn_delay_large 0 +set g_kh_respawn_delay_large_count 0 +set g_kh_respawn_delay_max 0 set g_kh_respawn_waves 0 set g_kh_weapon_stay 0 -set g_ca_respawn_delay 0 +set g_ca_respawn_delay_small 0 +set g_ca_respawn_delay_small_count 0 +set g_ca_respawn_delay_large 0 +set g_ca_respawn_delay_large_count 0 +set g_ca_respawn_delay_max 0 set g_ca_respawn_waves 0 set g_ca_weapon_stay 0 -set g_nb_respawn_delay 0 +set g_nb_respawn_delay_small 0 +set g_nb_respawn_delay_small_count 0 +set g_nb_respawn_delay_large 0 +set g_nb_respawn_delay_large_count 0 +set g_nb_respawn_delay_max 0 set g_nb_respawn_waves 0 set g_nb_weapon_stay 0 -set g_as_respawn_delay 0 +set g_as_respawn_delay_small 0 +set g_as_respawn_delay_small_count 0 +set g_as_respawn_delay_large 0 +set g_as_respawn_delay_large_count 0 +set g_as_respawn_delay_max 0 set g_as_respawn_waves 0 set g_as_weapon_stay 0 -set g_ons_respawn_delay 0 +set g_ons_respawn_delay_small 0 +set g_ons_respawn_delay_small_count 0 +set g_ons_respawn_delay_large 0 +set g_ons_respawn_delay_large_count 0 +set g_ons_respawn_delay_max 0 set g_ons_respawn_waves 0 set g_ons_weapon_stay 0 +set g_rc_respawn_delay_small 0 +set g_rc_respawn_delay_small_count 0 +set g_rc_respawn_delay_large 0 +set g_rc_respawn_delay_large_count 0 +set g_rc_respawn_delay_max 0 set g_rc_respawn_waves 0 -set g_rc_respawn_delay 0 set g_rc_weapon_stay 0 +set g_cts_respawn_delay_small -1 // CTS shall have instant respawn. +set g_cts_respawn_delay_small_count 0 +set g_cts_respawn_delay_large -1 // CTS shall have instant respawn. +set g_cts_respawn_delay_large_count 0 +set g_cts_respawn_delay_max 0 set g_cts_respawn_waves 0 -set g_cts_respawn_delay 0 set g_cts_weapon_stay 2 +set g_ft_respawn_delay_small 0 +set g_ft_respawn_delay_small_count 0 +set g_ft_respawn_delay_large 0 +set g_ft_respawn_delay_large_count 0 +set g_ft_respawn_delay_max 0 set g_ft_respawn_waves 0 -set g_ft_respawn_delay 0 set g_ft_weapon_stay 0 +set g_inv_respawn_delay_small 0 +set g_inv_respawn_delay_small_count 0 +set g_inv_respawn_delay_large 0 +set g_inv_respawn_delay_large_count 0 +set g_inv_respawn_delay_max 0 +set g_inv_respawn_waves 0 +set g_inv_weapon_stay 0 // ========= @@ -138,14 +238,15 @@ set g_assault 0 "Assault: attack the enemy base as fast as you can, then defend // ============ // clan arena // ============ -set g_ca 0 "Clan Arena: Played in rounds, once you're dead you're out! The team with survivors wins the round." -set g_ca_point_limit 10 "point limit 10 is standard for clan arena" -set g_ca_point_leadlimit 0 -set g_ca_spectate_enemies 0 "Allow spectating enemy player by dead player during clan arena games." +set g_ca 0 "Clan Arena: Played in rounds, once you're dead you're out! The team with survivors wins the round" +seta g_ca_point_limit -1 "Clan Arena point limit overriding the mapinfo specified one (use 0 to play without limit, and -1 to use the mapinfo's limit)" +seta g_ca_point_leadlimit -1 "Clan Arena point lead limit overriding the mapinfo specified one (use 0 to play without limit, and -1 to use the mapinfo's limit)" +set g_ca_spectate_enemies 0 "Allow spectating enemy player by dead player during clan arena games" set g_ca_warmup 10 "how long the players will have time to run around the map before the round starts" set g_ca_damage2score_multiplier 0.01 -set g_ca_round_timelimit 180 +set g_ca_round_timelimit 180 "round time limit in seconds" seta g_ca_teams_override 0 +set g_ca_team_spawns 0 "when 1, players spawn from the team spawnpoints of the map, if any" set g_ca_teams 0 @@ -153,9 +254,15 @@ set g_ca_teams 0 // capture the flag // ================== set g_ctf 0 "Capture The Flag: take the enemy flag and bring it to yours at your base to score" -set g_ctf_flag_return_time 15 -set g_ctf_flag_return_dropped 100 -set g_ctf_flag_return_damage 0 +set g_ctf_oneflag 0 "Allow oneflag CTF mode on maps that support it" +set g_ctf_oneflag_reverse 0 "apply reverse mode to oneflag CTF (take flag to enemy bases to cap), overrides g_ctf_reverse only in oneflag, g_ctf_reverse still affects oneflag" +set g_ctf_flag_return 1 "auto return the flag to base when touched by a teammate" +set g_ctf_flag_return_carrying 0 "(manual return mode) auto return the flag to base if touched by a flag carrier" +set g_ctf_flag_return_carried_radius 100 "allow flags to be returned by carrier if base is within this radius" +set g_ctf_flag_return_time 15 "automatically return the flag to base after this amount of time" +set g_ctf_flag_return_dropped 100 "automatically return the flag to base if dropped within this distance from base (in qu)" +set g_ctf_flag_return_damage 0 "allow the flag to be damaged, reducing time needed to automatically return to base" +set g_ctf_flag_return_damage_delay 0 "how much time the flag takes to automatically return to base if it falls into lava/slime/trigger hurt" set g_ctf_flag_return_when_unreachable 1 "automatically return the flag if it falls into lava/slime/trigger hurt" set g_ctf_flagcarrier_auto_helpme_damage 100 "automatically place a helpme notification on flag carrier waypointsprite if they get hit and their health dips below this value" set g_ctf_flagcarrier_auto_helpme_time 2 "antispam time for the helpme notification" @@ -200,6 +307,7 @@ set g_ctf_pass_timelimit 2 "how long a flag can stay trying to pass before it gi set g_ctf_pass_velocity 750 "how fast or far a player can pass the flag" set g_ctf_allow_vehicle_touch 0 "allow flags to be picked up/captured/returned without even leaving the vehicle" set g_ctf_allow_vehicle_carry 1 "allow players to hold flags inside a vehicle" +set g_ctf_allow_monster_touch 0 "allow flags to be returned by monsters" set g_ctf_shield_max_ratio 0 "shield at most this percentage of a team from the enemy flag (try: 0.4 for 40%)" set g_ctf_shield_min_negscore 20 "shield the player from the flag if he's got this negative amount of points or less" @@ -209,6 +317,12 @@ set g_ctf_flag_red_model "models/ctf/flags.md3" set g_ctf_flag_red_skin 0 set g_ctf_flag_blue_model "models/ctf/flags.md3" set g_ctf_flag_blue_skin 1 +set g_ctf_flag_yellow_model "models/ctf/flags.md3" +set g_ctf_flag_yellow_skin 2 +set g_ctf_flag_pink_model "models/ctf/flags.md3" +set g_ctf_flag_pink_skin 3 +set g_ctf_flag_neutral_model "models/ctf/flags.md3" +set g_ctf_flag_neutral_skin 4 set g_ctf_flag_glowtrails 1 set g_ctf_fullbrightflags 0 set g_ctf_dynamiclights 0 @@ -231,8 +345,10 @@ set g_cts_finish_kill_delay 10 "prevent cheating by running back to the start li // ========================== set g_dm 1 "Deathmatch: killing any other player is one frag, player with most frags wins" set g_tdm_teams 2 "how many teams are in team deathmatch (set by mapinfo)" -set g_tdm_team_spawns 0 "when 1, a map can define team spawnpoints for TDM" +set g_tdm_team_spawns 0 "when 1, players spawn from the team spawnpoints of the map, if any" seta g_tdm_teams_override 0 "how many teams are in team deathmatch" +set g_tdm_point_limit -1 "TDM point limit overriding the mapinfo specified one (use 0 to play without limit, and -1 to use the mapinfo's limit)" +set g_tdm_point_leadlimit -1 "TDM point lead limit overriding the mapinfo specified one (use 0 to play without limit, and -1 to use the mapinfo's limit)" // ============ @@ -245,8 +361,12 @@ set g_domination_disable_frags 0 "players can't get frags normally, only get po set g_domination_point_amt 0 "override: how many points to get per ping" set g_domination_point_fullbright 0 "domination point fullbright" set g_domination_point_rate 0 "override: how often to give those points" -set g_domination_point_capturetime 0.1 "how long it takes to capture a point (given no interference)" +//set g_domination_point_capturetime 0.1 "how long it takes to capture a point (given no interference)" set g_domination_point_glow 0 "domination point glow (warning, slow)" +set g_domination_roundbased 0 "enable round-based domination (capture all control points to win the round)" +set g_domination_roundbased_point_limit 5 "capture limit in round-based domination mode" +set g_domination_round_timelimit 120 +set g_domination_warmup 5 //set g_domination_balance_team_points 1 "# of points received is based on team sizes" @@ -260,19 +380,19 @@ seta g_freezetag_point_leadlimit -1 "Freeze Tag point lead limit overriding the set g_freezetag_revive_speed 0.4 "Speed for reviving a frozen teammate" set g_freezetag_revive_clearspeed 1.6 "Speed at which reviving progress gets lost when out of range" set g_freezetag_revive_extra_size 100 "Distance in qu that you can stand from a frozen teammate to keep reviving him" -set g_freezetag_revive_falldamage 0 "Enable reviving from this amount of fall damage" -set g_freezetag_revive_falldamage_health 40 "Amount of health player has if they revived from falling" -set g_freezetag_round_timelimit 180 -set g_freezetag_frozen_force 0.6 "How much to multiply the force on a frozen player with" +set g_freezetag_revive_nade 1 "Enable reviving from own nade explosion" +set g_freezetag_revive_nade_health 40 "Amount of health player has if they revived from their own nade explosion" +set g_freezetag_round_timelimit 180 "round time limit in seconds" set g_freezetag_frozen_maxtime 60 "frozen players will be automatically unfrozen after this time in seconds" seta g_freezetag_teams_override 0 +set g_freezetag_team_spawns 0 "when 1, players spawn from the team spawnpoints of the map, if any" set g_freezetag_teams 0 // ========== // keepaway // ========== -set g_keepaway 0 "game mode which focuses around a ball, look at g_keepaway_win_mode for further details" +set g_keepaway 0 "game mode which focuses around a ball" set g_keepaway_score_bckill 1 "enable scoring points (y/n) for ball carrier kills (value is how many points to award)" set g_keepaway_score_killac 1 "amount of points to give when you kill someone while you have the ball" set g_keepaway_score_timeinterval 1 "amount of time it takes between intervals for timepoints to be added to the score" @@ -292,8 +412,6 @@ set g_keepawayball_effects 0 "Add together the numbers you want: EF_ADDITIVE (32 set g_keepawayball_trail_color 254 "particle trail color from player/ball" set g_keepawayball_damageforcescale 3 "Scale of force which is applied to the ball by weapons/explosions/etc" set g_keepawayball_respawntime 10 "if no one picks up the ball, how long to wait until the ball respawns" -seta g_keepaway_teams_override 0 -set g_keepaway_teams 0 // ========== @@ -318,6 +436,7 @@ set g_balance_keyhunt_protecttime 0.8 set g_balance_keyhunt_damageforcescale 1 seta g_keyhunt_teams_override 0 set g_keyhunt_teams 0 +set g_keyhunt_team_spawns 0 "when 1, players spawn from the team spawnpoints of the map, if any" // =================== @@ -346,8 +465,10 @@ set g_balance_nexball_secondary_force 500 "stealing projectile force" set g_balance_nexball_secondary_refire 0.6 "stealing projectile refire" set g_balance_nexball_secondary_animtime 0.3 "stealing projectile animtime" set g_nexball_football_physics 2 "0: Revenant's original movement, 1: 0 but half independant of aiming height, 2: 1 fully independant, -1: first recode try" +set g_nexball_basketball_jumppad 1 "whether basketballs should be pushable by jumppads" set g_nexball_basketball_bouncefactor 0.6 "velocity loss when the ball bounces" set g_nexball_basketball_bouncestop 0.075 "speed at which the ball stops when it hits the ground (multiplied by sv_gravity)" +set g_nexball_football_jumppad 1 "whether footballs should be pushable by jumppads" set g_nexball_football_bouncefactor 0.6 "velocity loss when the ball bounces" set g_nexball_football_bouncestop 0.075 "speed at which the ball stops when it hits the ground (multiplied by sv_gravity)" set g_nexball_football_boost_forward 100 "forward velocity boost when the ball is touched" @@ -368,6 +489,7 @@ set g_nexball_sound_bounce 1 "bouncing sound (0: off)" set g_nexball_basketball_trail 1 "1 to leave a trail" set g_nexball_football_trail 0 "1 to leave a trail" set g_nexball_trail_color 254 "1-256 for different colors (Quake palette, 254 is white)" +set g_nexball_playerclip_collisions 1 "make the ball bounce off clips" set g_nexball_radar_showallplayers 1 "1: show every player and the ball on the radar 0: only show teammates and the ball on the radar" seta g_nexball_safepass_maxdist 5000 "Max distance to allow save fassping (0 to turn off safe passing)" seta g_nexball_safepass_turnrate 0.1 "How fast the safe-pass ball can habge direction" @@ -381,7 +503,16 @@ seta g_nexball_tackling 1 "Allow ball theft?" // onslaught // =========== set g_onslaught 0 "Onslaught: take control points towards the enemy generator and then destroy it" +set g_onslaught_point_limit 1 "Onslaught point limit overriding the mapinfo specified one (use 0 to play without limit, and -1 to use the mapinfo's limit)" +set g_onslaught_warmup 5 +set g_onslaught_round_timelimit 280 +set g_onslaught_teleport_radius 200 "Allows teleporting from a control point to another" +set g_onslaught_teleport_wait 5 "Time before player can teleport again" +set g_onslaught_spawn_choose 1 "Allow players to choose the control point to be spawned at" +set g_onslaught_click_radius 500 "When choosing from the map, this level of precision is required" + set g_onslaught_gen_health 2500 +set g_onslaught_allow_vehicle_touch 0 set g_onslaught_cp_health 1000 set g_onslaught_cp_buildhealth 100 set g_onslaught_cp_buildtime 5 @@ -389,8 +520,13 @@ set g_onslaught_cp_regen 20 set g_onslaught_cp_proxydecap 0 "de-capture controlpoints by standing close to them" set g_onslaught_cp_proxydecap_distance 512 set g_onslaught_cp_proxydecap_dps 100 +set g_onslaught_shield_force 100 set g_onslaught_spawn_at_controlpoints 0 +set g_onslaught_spawn_at_controlpoints_chance 0.5 +set g_onslaught_spawn_at_controlpoints_random 0 set g_onslaught_spawn_at_generator 0 +set g_onslaught_spawn_at_generator_chance 0 +set g_onslaught_spawn_at_generator_random 0 // ====== @@ -398,5 +534,18 @@ set g_onslaught_spawn_at_generator 0 // ====== set g_race 0 "Race: be faster than your opponents" set g_race_qualifying_timelimit 0 -set g_race_qualifying_timelimit_override -1 +set g_race_qualifying_timelimit_override -1 "qualifying session time limit overriding the mapinfo specified one (use 0 to play without limit, and -1 to use the mapinfo's limit)" set g_race_teams 0 "when 2, 3, or 4, the race is played as a team game (the team members can add up their laps)" + +// ========== +// invasion +// ========== +set g_invasion 0 "Invasion: survive against waves of monsters" +set g_invasion_round_timelimit 120 "maximum time to kill all monsters" +set g_invasion_warmup 10 "time between waves to prepare for battle" +set g_invasion_monster_count 10 "number of monsters on first wave (increments)" +set g_invasion_zombies_only 0 "only spawn zombies" +set g_invasion_spawn_delay 0.25 +set g_invasion_spawnpoint_spawn_delay 0.5 +set g_invasion_teams 0 "number of teams in invasion (note: use mapinfo to set this)" +set g_invasion_team_spawns 1 "use team spawns in teamplay invasion mode"