From: z411 Date: Sat, 27 Aug 2022 00:40:15 +0000 (-0400) Subject: Merge branch 'Mario/survival' into z411/bai-server X-Git-Url: https://git.rm.cloudns.org/?a=commitdiff_plain;h=21d3cea7dc72c7983f9d2fc5a9f1af8ee638cd5a;p=xonotic%2Fxonotic-data.pk3dir.git Merge branch 'Mario/survival' into z411/bai-server --- 21d3cea7dc72c7983f9d2fc5a9f1af8ee638cd5a diff --cc gamemodes-client.cfg index 259c2c31d,1bc0853c6..6960fe2dc --- a/gamemodes-client.cfg +++ b/gamemodes-client.cfg @@@ -32,8 -32,7 +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_sv alias cl_hook_gameend alias cl_hook_shutdown alias cl_hook_activeweapon diff --cc gamemodes-server.cfg index ce97ce92f,297659090..e78789ea9 --- a/gamemodes-server.cfg +++ b/gamemodes-server.cfg @@@ -29,8 -29,7 +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_sv // 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 @@@ -60,8 -59,7 +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_sv // 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. @@@ -212,20 -210,13 +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_sv_respawn_delay_small 0 + set g_sv_respawn_delay_small_count 0 + set g_sv_respawn_delay_large 0 + set g_sv_respawn_delay_large_count 0 + set g_sv_respawn_delay_max 0 + set g_sv_respawn_waves 0 + set g_sv_weapon_stay 0 // ========= @@@ -593,47 -570,13 +602,58 @@@ 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 frags in this chaotic mayhem!" +set g_tmayhem 0 "Team Mayhem: Compete with your team for the most damage dealt and frags in this chaotic mayhem!" + +set g_mayhem_scoringmethod 1 "1: By default 25% of the score is based on kills and 75% of it is based on damage. 2: 100% frags. 3: 100% damage." +set g_tmayhem_scoringmethod 1 "1: By default 25% of the score is based on kills and 75% of it is based on damage. 2: 100% frags. 3: 100% damage." +set g_mayhem_scoringmethod_1_damage_weight 0.75 "for the first scoring method how much is damage equal to player's spawning health worth in score" +set g_tmayhem_scoringmethod_1_damage_weight 0.75 "for the first scoring method how much is damage equal to player's spawning health worth in score" +set g_mayhem_scoringmethod_1_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_scoringmethod_1_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_scoringmethod_1_frag_weight 0.25 "for the first scoring method how much is a frag worth in score" +set g_tmayhem_scoringmethod_1_frag_weight 0.25 "for the first scoring method how much is a frag worth in score" + +set g_mayhem_fraglimit 30 "Team Mayhem basis for how many frags until the match ends, edit this over point_limit preferably" +set g_tmayhem_fraglimit 50 "Team Mayhem basis for how many frags until the match ends, edit this over point_limit preferably" + +set g_mayhem_visual_score_limit 1000 "Mayhem visual score limit overriding the mapinfo specified one" +set g_tmayhem_visual_score_limit 1000 "Team Mayhem visual score limit overriding the mapinfo specified one" + +set g_tmayhem_score_leadlimit -1 "Team Mayhem score lead limit(based on tmayhem_visual_score_limit, not tmayhem_fraglimit) 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" ++ + // ========== + // survival + // ========== + set g_survival 0 "Survival: identify and eliminate all the hunters before all your allies are gone" + set g_survival_not_lms_maps 0 "when this is set, LMS maps will NOT be listed in survival" + set g_survival_hunter_count 0.25 "number of players who will become hunters, set between 0 and 0.9 to use a multiplier of the current players, or 1 and above to specify an exact number of players" + set g_survival_punish_teamkill 1 "kill the player when they kill an ally" + set g_survival_reward_survival 1 "give a point to all surviving players if the round timelimit is reached, in addition to the points given for kills" + set g_survival_warmup 10 "how long the players will have time to run around the map before the round starts" + set g_survival_round_timelimit 180 "round time limit in seconds" diff --cc qcsrc/common/ent_cs.qc index c7b79a045,9ec68acb8..de25214f4 --- a/qcsrc/common/ent_cs.qc +++ b/qcsrc/common/ent_cs.qc @@@ -165,11 -157,11 +165,16 @@@ ENTCS_PROP(SOLID, true, sv_solid, solid { WriteByte(chan, ent.sv_solid); }, { ent.sv_solid = ReadByte(); }) +// z411 weapon +ENTCS_PROP(ACTIVEWEPID, false, activewepid, activewepid, ENTCS_SET_NORMAL, + { WriteByte(chan, ent.activewepid); }, + { ent.activewepid = ReadByte(); }) + + // gamemode specific player survival status (independent of score and frags) + ENTCS_PROP(SURVIVAL_STATUS, true, survival_status, survival_status, ENTCS_SET_NORMAL, + { WriteShort(chan, ent.survival_status); }, + { ent.survival_status = ReadShort(); }) + #ifdef SVQC int ENTCS_PUBLICMASK = 0, ENTCS_PRIVATEMASK = 0; diff --cc qcsrc/common/gamemodes/gamemode/_mod.inc index 1ca6b1d94,e261fa7b9..12a5510c3 --- a/qcsrc/common/gamemodes/gamemode/_mod.inc +++ b/qcsrc/common/gamemodes/gamemode/_mod.inc @@@ -16,5 -15,5 +16,6 @@@ #include #include #include + #include #include +#include diff --cc qcsrc/common/gamemodes/gamemode/_mod.qh index ca2cffe8b,928bd44cb..a3208d4a6 --- a/qcsrc/common/gamemodes/gamemode/_mod.qh +++ b/qcsrc/common/gamemodes/gamemode/_mod.qh @@@ -16,5 -15,5 +16,6 @@@ #include #include #include + #include #include +#include diff --cc qcsrc/common/scores.qh index f570e2cac,9e570e30e..0b132a6b0 --- a/qcsrc/common/scores.qh +++ b/qcsrc/common/scores.qh @@@ -89,27 -88,8 +89,30 @@@ REGISTER_SP(NEXBALL_FAULTS) REGISTER_SP(ONS_TAKES); REGISTER_SP(ONS_CAPS); +REGISTER_SP(MEDAL_AIRSHOT); +REGISTER_SP(MEDAL_DAMAGE); +REGISTER_SP(MEDAL_ELECTROBITCH); +REGISTER_SP(MEDAL_EXCELLENT); +REGISTER_SP(MEDAL_FIRSTBLOOD); +REGISTER_SP(MEDAL_HEADSHOT); +REGISTER_SP(MEDAL_HUMILIATION); +REGISTER_SP(MEDAL_IMPRESSIVE); +REGISTER_SP(MEDAL_YODA); +REGISTER_SP(MEDAL_TELEFRAG); + +REGISTER_SP(MEDAL_ACCURACY); +REGISTER_SP(MEDAL_ASSIST); +REGISTER_SP(MEDAL_CAPTURE); +REGISTER_SP(MEDAL_DEFENSE); +REGISTER_SP(MEDAL_PERFECT); + +REGISTER_SP(MEDAL_KILLSTREAK_03); +REGISTER_SP(MEDAL_KILLSTREAK_05); +REGISTER_SP(MEDAL_KILLSTREAK_10); +REGISTER_SP(MEDAL_KILLSTREAK_15); ++ + REGISTER_SP(SV_SURVIVALS); + REGISTER_SP(SV_HUNTS); #endif