From: drjaska Date: Thu, 30 Mar 2023 17:57:42 +0000 (+0300) Subject: Merge branch 'master' into Mario/team_keepaway X-Git-Url: https://git.rm.cloudns.org/?a=commitdiff_plain;h=42146fd06547b87c3f556d3e6301a41596bd5972;p=xonotic%2Fxonotic-data.pk3dir.git Merge branch 'master' into Mario/team_keepaway --- 42146fd06547b87c3f556d3e6301a41596bd5972 diff --cc .gitlab-ci.yml index b276a2a23,8ba5c1806..e4dd9c0f5 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@@ -50,12 -64,18 +64,18 @@@ test_sv_game - diff notifications.cfg data/data/notifications_dump.cfg || { echo 'Please update notifications.cfg using `dumpnotifs`!'; exit 1; } - - wget -O data/stormkeep.pk3 http://beta.xonotic.org/autobuild-bsp/latest/stormkeep.pk3 - - wget -O data/maps/stormkeep.mapinfo https://gitlab.com/xonotic/xonotic-maps.pk3dir/raw/master/maps/stormkeep.mapinfo - - wget -O data/maps/stormkeep.waypoints https://gitlab.com/xonotic/xonotic-maps.pk3dir/raw/master/maps/stormkeep.waypoints - - wget -O data/maps/stormkeep.waypoints.cache https://gitlab.com/xonotic/xonotic-maps.pk3dir/raw/master/maps/stormkeep.waypoints.cache + # - wget -nv -O data/stormkeep.pk3 http://beta.xonotic.org/autobuild-bsp/latest/stormkeep.pk3 + # ^^ INCORRECT: /latest/stormkeep.pk3 is the most recently built, not necessarily the one built from master! + # we can't get the one from master directly as there's no /stable/stormkeep.pk3 or /master/stormkeep.pk3 + # and we can't run misc/tools/xonotic-map-compiler-autobuild as it uses commit hashes from xonotic-maps.pk3dir to generate filenames + # but the autobuild server can run it and provide us the resulting pk3: + - wget -nv -O data/stormkeep.pk3 https://beta.xonotic.org/pipeline-bin/stormkeep.pk3 + # see also: misc/infrastructure/xonotic-release-build.cron + - wget -nv -O data/maps/stormkeep.mapinfo https://gitlab.com/xonotic/xonotic-maps.pk3dir/raw/master/maps/stormkeep.mapinfo + - wget -nv -O data/maps/stormkeep.waypoints https://gitlab.com/xonotic/xonotic-maps.pk3dir/raw/master/maps/stormkeep.waypoints + - wget -nv -O data/maps/stormkeep.waypoints.cache https://gitlab.com/xonotic/xonotic-maps.pk3dir/raw/master/maps/stormkeep.waypoints.cache - - EXPECT=77364c2d1f95a5ff36fb7ad21e1a5ac6 - - EXPECT=fe5dec36cb304c55acee73afd1e09c0a ++ - EXPECT=3f5d7c3810b74874094de348c651363d - HASH=$(${ENGINE} +timestamps 1 +exec serverbench.cfg | tee /dev/stderr | sed -e 's,^\[[^]]*\] ,,' diff --cc gamemodes-client.cfg index ba39341df,259c2c31d..d71818573 --- a/gamemodes-client.cfg +++ b/gamemodes-client.cfg @@@ -32,7 -32,8 +32,9 @@@ alias cl_hook_gamestart_k alias cl_hook_gamestart_ft alias cl_hook_gamestart_inv alias cl_hook_gamestart_duel + alias cl_hook_gamestart_mayhem + alias cl_hook_gamestart_tmayhem +alias cl_hook_gamestart_tka alias cl_hook_gameend alias cl_hook_shutdown alias cl_hook_activeweapon diff --cc gamemodes-server.cfg index 51ab9231e,eb0dcdcdc..595fc5912 --- a/gamemodes-server.cfg +++ b/gamemodes-server.cfg @@@ -29,7 -29,8 +29,9 @@@ alias sv_hook_gamestart_k alias sv_hook_gamestart_ft alias sv_hook_gamestart_inv alias sv_hook_gamestart_duel + alias sv_hook_gamestart_mayhem + alias sv_hook_gamestart_tmayhem +alias sv_hook_gamestart_tka // there is currently no hook for when the match is restarted // see sv_hook_readyrestart for previous uses of this hook //alias sv_hook_gamerestart @@@ -59,7 -60,8 +61,9 @@@ alias sv_vote_gametype_hook_on alias sv_vote_gametype_hook_rc alias sv_vote_gametype_hook_tdm alias sv_vote_gametype_hook_duel + alias sv_vote_gametype_hook_mayhem + alias sv_vote_gametype_hook_tmayhem +alias sv_vote_gametype_hook_tka // Example preset to allow 1v1ctf to be used for the gametype voting screen. // Aliases can have max 31 chars so the gametype can have max 9 chars. @@@ -210,13 -212,20 +214,27 @@@ set g_duel_respawn_delay_large_count set g_duel_respawn_delay_max 0 set g_duel_respawn_waves 0 set g_duel_weapon_stay 0 + set g_mayhem_respawn_delay_small 0 + set g_mayhem_respawn_delay_small_count 0 + set g_mayhem_respawn_delay_large 0 + set g_mayhem_respawn_delay_large_count 0 + set g_mayhem_respawn_delay_max 0 + set g_mayhem_respawn_waves 0 + set g_mayhem_weapon_stay 0 + set g_tmayhem_respawn_delay_small 0 + set g_tmayhem_respawn_delay_small_count 0 + set g_tmayhem_respawn_delay_large 0 + set g_tmayhem_respawn_delay_large_count 0 + set g_tmayhem_respawn_delay_max 0 + set g_tmayhem_respawn_waves 0 + set g_tmayhem_weapon_stay 0 +set g_tka_respawn_delay_small 0 +set g_tka_respawn_delay_small_count 0 +set g_tka_respawn_delay_large 0 +set g_tka_respawn_delay_large_count 0 +set g_tka_respawn_delay_max 0 +set g_tka_respawn_waves 0 +set g_tka_weapon_stay 0 // ========= @@@ -585,34 -595,44 +604,76 @@@ set g_duel 0 "Duel: frag the opponent m set g_duel_with_powerups 0 "Enable powerups to spawn in the duel gamemode" set g_duel_not_dm_maps 0 "when this is set, DM maps will NOT be listed in duel" + // ============================== + // free for all and team mayhem + // ============================== + set g_mayhem 0 "Mayhem: Compete for the most damage dealt and kills in this chaotic mayhem!" + set g_tmayhem 0 "Team Mayhem: Compete with your team for the most damage dealt and kills in this chaotic mayhem!" + + set g_mayhem_scoring_upscaler 20 "upscale one frag's worth to be this amount of in score" + set g_tmayhem_scoring_upscaler 20 "upscale one frag's worth to be this amount of in score" + set g_mayhem_scoring_kill_weight 0.25 "how much is a kill worth in frags" + set g_tmayhem_scoring_kill_weight 0.25 "how much is a kill worth in frags" + set g_mayhem_scoring_damage_weight 0.75 "how much is damage equal to player's spawning health+armor worth in frags" + set g_tmayhem_scoring_damage_weight 0.75 "how much is damage equal to player's spawning health+armor worth in frags" + set g_mayhem_scoring_disable_selfdamage2score 0 "disable reducing score with self damage at the cost of full penalty for suicides regardless of how much health was lost suiciding" + set g_tmayhem_scoring_disable_selfdamage2score 0 "disable reducing score with self damage at the cost of full penalty for suicides regardless of how much health was lost suiciding" + + set g_mayhem_point_limit -1 "Mayhem score limit overriding the mapinfo specified one (use 0 to play without limit, and -1 to use the mapinfo's limit)" + set g_mayhem_point_leadlimit -1 "Mayhem score lead limit overriding the mapinfo specified one (use 0 to play without limit, and -1 to use the mapinfo's limit)" + set g_tmayhem_point_limit -1 "Team Mayhem score limit overriding the mapinfo specified one (use 0 to play without limit, and -1 to use the mapinfo's limit)" + set g_tmayhem_point_leadlimit -1 "Team Mayhem score lead limit overriding the mapinfo specified one (use 0 to play without limit, and -1 to use the mapinfo's limit)" + + set g_mayhem_weaponarena "most_available" "starting weapons - takes the same options as g_weaponarena" + set g_tmayhem_weaponarena "most_available" "starting weapons - takes the same options as g_weaponarena" + + set g_mayhem_powerups 1 "Allow powerups in mayhem. Only checked if g_powerups is -1 therefore this will be overridden by g_powerups 1 or 0" + set g_tmayhem_powerups 1 "Allow powerups in team mayhem. Only checked if g_powerups is -1 therefore this will be overridden by g_powerups 1 or 0" + set g_mayhem_pickup_items 0 "spawn pickup items in mayhem" + set g_tmayhem_pickup_items 0 "spawn pickup items in team mayhem" + set g_mayhem_pickup_items_remove_weapons_and_ammo 1 "when pickup items are enabled in mayhem still remove weapons and ammo pickups" + set g_tmayhem_pickup_items_remove_weapons_and_ammo 1 "when pickup items are enabled in team mayhem still remove weapons and ammo pickups" + + set g_mayhem_selfdamage 0 "0 = disable selfdamage in mayhem, 1 = enable selfdamage in mayhem" + set g_tmayhem_selfdamage 0 "0 = disable selfdamage in tmayhem, 1 = enable selfdamage in tmayhem" + + set g_mayhem_regenerate 0 "health and/or armor regeneration, according to g_balance_health_regen and g_balance_armor_regen" + set g_tmayhem_regenerate 0 "health and/or armor regeneration, according to g_balance_health_regen and g_balance_armor_regen" + set g_mayhem_rot 0 "health and/or armor rotting, according to g_balance_health_rot and g_balance_armor_rot" + set g_tmayhem_rot 0 "health and/or armor rotting, according to g_balance_health_rot and g_balance_armor_rot" + + set g_tmayhem_teams 2 "how many teams are in team mayhem (set by mapinfo)" + set g_tmayhem_team_spawns 0 "when 1, players spawn from the team spawnpoints of the map, if any" + set g_tmayhem_teams_override 0 "how many teams are in team mayhem" ++ +// =============== +// team keepaway +// =============== +set g_tka 0 "another game mode which focuses around a ball" +set g_tka_on_ka_maps 1 "when this is set, all KA maps automatically support TKA" +set g_tka_on_tdm_maps 0 "when this is set, all TDM maps automatically support TKA" +set g_tka_teams 2 "how many teams are in team keepaway (set by mapinfo)" +set g_tka_team_spawns 0 "when 1, players spawn from the team spawnpoints of the map, if any" +set g_tka_teams_override 0 "how many teams are in team keepaway" +set g_tka_point_limit -1 "TKA point limit overriding the mapinfo specified one (use 0 to play without limit, and -1 to use the mapinfo's limit)" +set g_tka_point_leadlimit -1 "TKA point lead limit overriding the mapinfo specified one (use 0 to play without limit, and -1 to use the mapinfo's limit)" +set g_tka_score_team 1 "allow points to be awarded to teammates for any kill when the ball is in your team's possession" +set g_tka_score_bckill 1 "points for killing the ball barrier (Ball Carrier Kill)" +set g_tka_score_killac 1 "points for kills while holding the ball (Kill As Carrier)" +set g_tka_score_timeinterval 1 "amount of time it takes between intervals for timepoints to be added to the score" +set g_tka_score_timepoints 0 "points to add to score per timeinterval, 0 for no points" +set g_tka_ballcarrier_effects 8 "Add together the numbers you want: EF_ADDITIVE (32) / EF_NODEPTHTEST (8192) / EF_DIMLIGHT (8)" +set g_tka_ballcarrier_highspeed 1 "speed multiplier done to the person holding the ball (recommended when used with some mutators)" +set g_tka_ballcarrier_damage 1 "damage multiplier while holding the ball" +set g_tka_ballcarrier_force 1 "force multiplier while holding the ball" +set g_tka_ballcarrier_selfdamage 1 "self damage multiplier while holding the ball" +set g_tka_ballcarrier_selfforce 1 "self force multiplier while holding the ball" +set g_tka_noncarrier_warn 1 "warn players when they kill without holding the ball" +set g_tka_noncarrier_damage 1 "damage done to other players if both you and they don't have the ball" +set g_tka_noncarrier_force 1 "force done to other players if both you and they don't have the ball" +set g_tka_noncarrier_selfdamage 1 "self damage if you don't have the ball" +set g_tka_noncarrier_selfforce 1 "self force if you don't have the ball" +set g_tkaball_effects 0 "Add together the numbers you want: EF_ADDITIVE (32) / EF_NODEPTHTEST (8192) / EF_DIMLIGHT (8)" +set g_tkaball_trail_color 254 "particle trail color from player/ball" +set g_tkaball_damageforcescale 3 "Scale of force which is applied to the ball by weapons/explosions/etc" +set g_tkaball_respawntime 10 "if no one picks up the ball, how long to wait until the ball respawns" diff --cc qcsrc/common/gamemodes/gamemode/_mod.inc index 922442320,1ca6b1d94..c3b9107f5 --- a/qcsrc/common/gamemodes/gamemode/_mod.inc +++ b/qcsrc/common/gamemodes/gamemode/_mod.inc @@@ -16,4 -17,4 +17,5 @@@ #include #include #include +#include + #include diff --cc qcsrc/common/gamemodes/gamemode/_mod.qh index 01224714f,ca2cffe8b..9c10f7dab --- a/qcsrc/common/gamemodes/gamemode/_mod.qh +++ b/qcsrc/common/gamemodes/gamemode/_mod.qh @@@ -16,4 -17,4 +17,5 @@@ #include #include #include +#include + #include diff --cc qcsrc/menu/xonotic/util.qc index 30b9e2d19,86b0f5e87..717865d79 --- a/qcsrc/menu/xonotic/util.qc +++ b/qcsrc/menu/xonotic/util.qc @@@ -653,8 -653,9 +653,10 @@@ float updateCompression( GAMETYPE(MAPINFO_TYPE_CTF) \ GAMETYPE(MAPINFO_TYPE_CA) \ GAMETYPE(MAPINFO_TYPE_FREEZETAG) \ + GAMETYPE(MAPINFO_TYPE_TEAM_MAYHEM) \ + GAMETYPE(MAPINFO_TYPE_MAYHEM) \ GAMETYPE(MAPINFO_TYPE_KEEPAWAY) \ + GAMETYPE(MAPINFO_TYPE_TEAM_KEEPAWAY) \ GAMETYPE(MAPINFO_TYPE_KEYHUNT) \ GAMETYPE(MAPINFO_TYPE_LMS) \ GAMETYPE(MAPINFO_TYPE_DOMINATION) \ diff --cc qcsrc/server/world.qc index 2bbe27d81,c04b188fa..46ff58061 --- a/qcsrc/server/world.qc +++ b/qcsrc/server/world.qc @@@ -298,10 -300,8 +300,12 @@@ void cvar_changes_init( BADCVAR("g_tdm"); BADCVAR("g_tdm_on_dm_maps"); BADCVAR("g_tdm_teams"); + BADCVAR("g_tka"); + BADCVAR("g_tka_on_ka_maps"); + BADCVAR("g_tka_on_tdm_maps"); + BADCVAR("g_tka_teams"); + BADCVAR("g_tmayhem"); + BADCVAR("g_tmayhem_teams"); BADCVAR("g_vip"); BADCVAR("leadlimit"); BADCVAR("nextmap");