From 5fd740c8af8d516339caa0797f51165d211d056d Mon Sep 17 00:00:00 2001 From: Mario Date: Mon, 7 Oct 2013 09:12:36 -0700 Subject: [PATCH] Begin cleaning up some mess --- balance25.cfg | 39 ++++++ balanceFruitieX.cfg | 39 ++++++ balanceXDF.cfg | 37 +++++ balanceXPM.cfg | 38 ++++++ balanceXonotic.cfg | 42 ++++++ defaultXonotic.cfg | 2 + mutators.cfg | 17 +++ overkill.cfg | 129 ++++++++++++++++++ qcsrc/client/autocvars.qh | 10 ++ qcsrc/client/projectile.qc | 15 +- qcsrc/client/waypointsprites.qc | 2 + qcsrc/common/constants.qh | 2 + qcsrc/common/notifications.qh | 14 +- .../dialog_multiplayer_create_mutators.c | 7 +- qcsrc/server/autocvars.qh | 28 ++++ qcsrc/server/miscfunctions.qc | 1 + qcsrc/server/mutators/mutators.qh | 2 + qcsrc/server/progs.src | 2 + qcsrc/server/w_all.qc | 3 + 19 files changed, 415 insertions(+), 14 deletions(-) create mode 100644 overkill.cfg diff --git a/balance25.cfg b/balance25.cfg index 9451d377d..0ef954953 100644 --- a/balance25.cfg +++ b/balance25.cfg @@ -705,3 +705,42 @@ set g_balance_fireball_secondary_spread 0 set g_balance_fireball_switchdelay_drop 0.15 set g_balance_fireball_switchdelay_raise 0.15 // }}} + + +// {{{ heavy machine gun +set g_balance_hmg_spread_min 0.02 +set g_balance_hmg_spread_max 0.05 +set g_balance_hmg_spread_add 0.01 + +set g_balance_hmg_sustained_damage 10 // 200 dps +set g_balance_hmg_sustained_headshotaddeddamage 0 +set g_balance_hmg_sustained_force 5 +set g_balance_hmg_sustained_spread 0.03 +set g_balance_hmg_sustained_refire 0.05 +set g_balance_hmg_sustained_ammo 1 + +set g_balance_hmg_speed 24000 +set g_balance_hmg_bulletconstant 115 // 13.1qu + +set g_balance_hmg_reload_ammo 120 //default: 30 +set g_balance_hmg_reload_time 1 +// }}} + +// {{{ RPC +set g_balance_rpc_ammo 10 +set g_balance_rpc_animtime 1 +set g_balance_rpc_damage 150 +set g_balance_rpc_damage2 500 +set g_balance_rpc_damageforcescale 2 +set g_balance_rpc_edgedamage 50 +set g_balance_rpc_force 400 +set g_balance_rpc_health 25 +set g_balance_rpc_lifetime 30 +set g_balance_rpc_radius 300 +set g_balance_rpc_refire 1 +set g_balance_rpc_speed 1250 +set g_balance_rpc_speedaccel 0 +set g_balance_rpc_speedstart 1250 +set g_balance_rpc_reload_ammo 10 +set g_balance_rpc_reload_time 1 +// }}} diff --git a/balanceFruitieX.cfg b/balanceFruitieX.cfg index f985659f9..599c7ce14 100644 --- a/balanceFruitieX.cfg +++ b/balanceFruitieX.cfg @@ -705,3 +705,42 @@ set g_balance_fireball_secondary_spread 0 set g_balance_fireball_switchdelay_drop 0.15 set g_balance_fireball_switchdelay_raise 0.15 // }}} + + +// {{{ heavy machine gun +set g_balance_hmg_spread_min 0.02 +set g_balance_hmg_spread_max 0.05 +set g_balance_hmg_spread_add 0.01 + +set g_balance_hmg_sustained_damage 10 // 200 dps +set g_balance_hmg_sustained_headshotaddeddamage 0 +set g_balance_hmg_sustained_force 5 +set g_balance_hmg_sustained_spread 0.03 +set g_balance_hmg_sustained_refire 0.05 +set g_balance_hmg_sustained_ammo 1 + +set g_balance_hmg_speed 24000 +set g_balance_hmg_bulletconstant 115 // 13.1qu + +set g_balance_hmg_reload_ammo 120 //default: 30 +set g_balance_hmg_reload_time 1 +// }}} + +// {{{ RPC +set g_balance_rpc_ammo 10 +set g_balance_rpc_animtime 1 +set g_balance_rpc_damage 150 +set g_balance_rpc_damage2 500 +set g_balance_rpc_damageforcescale 2 +set g_balance_rpc_edgedamage 50 +set g_balance_rpc_force 400 +set g_balance_rpc_health 25 +set g_balance_rpc_lifetime 30 +set g_balance_rpc_radius 300 +set g_balance_rpc_refire 1 +set g_balance_rpc_speed 1250 +set g_balance_rpc_speedaccel 0 +set g_balance_rpc_speedstart 1250 +set g_balance_rpc_reload_ammo 10 +set g_balance_rpc_reload_time 1 +// }}} diff --git a/balanceXDF.cfg b/balanceXDF.cfg index 4e0631523..591bc8d43 100644 --- a/balanceXDF.cfg +++ b/balanceXDF.cfg @@ -705,3 +705,40 @@ set g_balance_fireball_secondary_spread 0 set g_balance_fireball_switchdelay_drop 0 set g_balance_fireball_switchdelay_raise 0 // }}} +// {{{ heavy machine gun +set g_balance_hmg_spread_min 0.02 +set g_balance_hmg_spread_max 0.05 +set g_balance_hmg_spread_add 0.01 + +set g_balance_hmg_sustained_damage 10 // 200 dps +set g_balance_hmg_sustained_headshotaddeddamage 0 +set g_balance_hmg_sustained_force 5 +set g_balance_hmg_sustained_spread 0.03 +set g_balance_hmg_sustained_refire 0.05 +set g_balance_hmg_sustained_ammo 1 + +set g_balance_hmg_speed 24000 +set g_balance_hmg_bulletconstant 115 // 13.1qu + +set g_balance_hmg_reload_ammo 120 //default: 30 +set g_balance_hmg_reload_time 1 +// }}} +// {{{ RPC +set g_balance_rpc_ammo 10 +set g_balance_rpc_animtime 1 +set g_balance_rpc_damage 150 +set g_balance_rpc_damage2 500 +set g_balance_rpc_damageforcescale 2 +set g_balance_rpc_edgedamage 50 +set g_balance_rpc_force 400 +set g_balance_rpc_health 25 +set g_balance_rpc_lifetime 30 +set g_balance_rpc_radius 300 +set g_balance_rpc_refire 1 +set g_balance_rpc_speed 1250 +set g_balance_rpc_speedaccel 0 +set g_balance_rpc_speedstart 1250 +set g_balance_rpc_reload_ammo 10 +set g_balance_rpc_reload_time 1 +// }}} + diff --git a/balanceXPM.cfg b/balanceXPM.cfg index 8c171476a..fdce03b72 100644 --- a/balanceXPM.cfg +++ b/balanceXPM.cfg @@ -705,3 +705,41 @@ set g_balance_fireball_secondary_spread 0 set g_balance_fireball_switchdelay_drop 0.2 set g_balance_fireball_switchdelay_raise 0.2 // }}} + +// {{{ heavy machine gun +set g_balance_hmg_spread_min 0.02 +set g_balance_hmg_spread_max 0.05 +set g_balance_hmg_spread_add 0.01 + +set g_balance_hmg_sustained_damage 10 // 200 dps +set g_balance_hmg_sustained_headshotaddeddamage 0 +set g_balance_hmg_sustained_force 5 +set g_balance_hmg_sustained_spread 0.03 +set g_balance_hmg_sustained_refire 0.05 +set g_balance_hmg_sustained_ammo 1 + +set g_balance_hmg_speed 24000 +set g_balance_hmg_bulletconstant 115 // 13.1qu + +set g_balance_hmg_reload_ammo 120 //default: 30 +set g_balance_hmg_reload_time 1 +// }}} + +// {{{ RPC +set g_balance_rpc_ammo 10 +set g_balance_rpc_animtime 1 +set g_balance_rpc_damage 150 +set g_balance_rpc_damage2 500 +set g_balance_rpc_damageforcescale 2 +set g_balance_rpc_edgedamage 50 +set g_balance_rpc_force 400 +set g_balance_rpc_health 25 +set g_balance_rpc_lifetime 30 +set g_balance_rpc_radius 300 +set g_balance_rpc_refire 1 +set g_balance_rpc_speed 1250 +set g_balance_rpc_speedaccel 0 +set g_balance_rpc_speedstart 1250 +set g_balance_rpc_reload_ammo 10 +set g_balance_rpc_reload_time 1 +// }}} diff --git a/balanceXonotic.cfg b/balanceXonotic.cfg index cdf3f2013..28b552b52 100644 --- a/balanceXonotic.cfg +++ b/balanceXonotic.cfg @@ -705,3 +705,45 @@ set g_balance_fireball_secondary_spread 0 set g_balance_fireball_switchdelay_drop 0.2 set g_balance_fireball_switchdelay_raise 0.2 // }}} + +// {{{ heavy machine gun +set g_balance_hmg_spread_min 0.02 +set g_balance_hmg_spread_max 0.05 +set g_balance_hmg_spread_add 0.01 + +set g_balance_hmg_sustained_damage 10 // 200 dps +set g_balance_hmg_sustained_headshotaddeddamage 0 +set g_balance_hmg_sustained_force 5 +set g_balance_hmg_sustained_spread 0.03 +set g_balance_hmg_sustained_refire 0.05 +set g_balance_hmg_sustained_ammo 1 + +set g_balance_hmg_speed 24000 +set g_balance_hmg_bulletconstant 115 // 13.1qu + +set g_balance_hmg_reload_ammo 120 //default: 30 +set g_balance_hmg_reload_time 1 +set g_balance_hmg_switchdelay_drop 0.2 +set g_balance_hmg_switchdelay_raise 0.2 +// }}} + +// {{{ RPC +set g_balance_rpc_ammo 10 +set g_balance_rpc_animtime 1 +set g_balance_rpc_damage 150 +set g_balance_rpc_damage2 500 +set g_balance_rpc_damageforcescale 2 +set g_balance_rpc_edgedamage 50 +set g_balance_rpc_force 400 +set g_balance_rpc_health 25 +set g_balance_rpc_lifetime 30 +set g_balance_rpc_radius 300 +set g_balance_rpc_refire 1 +set g_balance_rpc_speed 1250 +set g_balance_rpc_speedaccel 0 +set g_balance_rpc_speedstart 1250 +set g_balance_rpc_reload_ammo 10 +set g_balance_rpc_reload_time 1 +set g_balance_rpc_switchdelay_drop 0.2 +set g_balance_rpc_switchdelay_raise 0.2 +// }}} diff --git a/defaultXonotic.cfg b/defaultXonotic.cfg index d967d53d5..93aff3128 100644 --- a/defaultXonotic.cfg +++ b/defaultXonotic.cfg @@ -1377,6 +1377,8 @@ set g_weaponreplace_minstanex "" set g_weaponreplace_hook "" set g_weaponreplace_tuba "" set g_weaponreplace_fireball "" +set g_weaponreplace_hmg "" +set g_weaponreplace_rpc "" set sv_q3acompat_machineshotgunswap 0 "shorthand for swapping uzi and shotgun (for Q3A map compatibility in mapinfo files)" set g_movement_highspeed 1 "movement speed modification factor (only changes movement when above maxspeed)" diff --git a/mutators.cfg b/mutators.cfg index e88fbc0af..9cd318a6f 100644 --- a/mutators.cfg +++ b/mutators.cfg @@ -33,6 +33,23 @@ set g_minstagib_invis_alpha 0.15 set g_minstagib_speed_highspeed 1.5 "speed-multiplier that applies while you carry the invincibility powerup" +// ========== +// overkill +// ========== +set g_overkill 0 "enable overkill" +set g_overkill_spawnsystem 1 "experimental spawnsystem" +set g_overkill_spawnsystem_delay 2.5 "how long to wait before its OK to spawn at a player after someone just spawned at this player" +set g_overkill_spawnsystem_delay_death 0 "how long to wait before its OK to spawn at a player after death " +set g_overkill_spawnsystem_check_health 1 "only allow spawn at this player if hes health is full" +set g_overkill_spawnsystem_close2death 1 "spawn as close as possible to where we died" + +set g_overkill_100a_anyway 1 +set g_overkill_100h_anyway 1 +set g_overkill_powerups_replace 1 +set g_overkill_superguns_onemag 1 +set g_overkill_superguns_respawn_time 20 + + // ========= // vampire // ========= diff --git a/overkill.cfg b/overkill.cfg new file mode 100644 index 000000000..1eff76a4a --- /dev/null +++ b/overkill.cfg @@ -0,0 +1,129 @@ +g_overkill 1 + +g_overkill_ammo_start 50 +g_overkill_ammo_max 100 +g_overkill_ammo_regen 2.52 +g_overkill_superguns_builtin 0 + +g_use_ammunition 1 +g_pickup_items 0 +sv_gibhealth 120 +g_spawnshieldtime 0.5 + +g_balance_health_regen 0 +g_balance_health_regenlinear 100 +g_balance_health_rot 0 +g_balance_health_rotstable 200 // needs this too, else it rots towards 100 even with g_balance_health_rot 0 +g_balance_armor_rotstable 0 +g_balance_armor_rotlinear 1 +g_balance_armor_rot 0 +g_balance_pause_health_regen 2 + +// g_balance_laser_primary_force_velocitybias 1.2 // sorry i realy hate this + +g_balance_shotgun_primary_damage 17 +g_balance_shotgun_primary_bullets 10 +g_balance_shotgun_primary_force 80 +g_balance_shotgun_primary_spread 0.07 +g_balance_shotgun_primary_animtime 0.65 +g_balance_shotgun_primary_ammo 6.25 +g_balance_shotgun_reload_ammo 50 +g_balance_shotgun_reload_time 2 +g_balance_shotgun_primary_bulletconstant 3000 + +g_balance_uzi_mode 1 +g_balance_uzi_sustained_damage 25 +g_balance_uzi_sustained_refire 0.1 +g_balance_uzi_sustained_spread 0.01 +g_balance_uzi_sustained_force 5 +g_balance_uzi_reload_ammo 30 +g_balance_uzi_reload_time 1.5 +g_balance_uzi_spread_min 0 +g_balance_uzi_spread_add 0.0015 +g_balance_uzi_bulletconstant 500 + +g_balance_hmg_spread_min 0.01 +g_balance_hmg_spread_max 0.06 +g_balance_hmg_spread_add 0.005 + +g_balance_hmg_sustained_damage 30 +g_balance_hmg_sustained_headshotaddeddamage 0 +g_balance_hmg_sustained_force 10 +g_balance_hmg_sustained_spread 0.03 +g_balance_hmg_sustained_refire 0.05 +g_balance_hmg_sustained_ammo 1 + +g_balance_hmg_speed 24000 +g_balance_hmg_bulletconstant 115 // 13.1qu + +g_balance_hmg_reload_ammo 100 //default: 30 +g_balance_hmg_reload_time 1 + +g_balance_nex_primary_damage 100 +g_balance_nex_primary_force 500 +g_balance_nex_primary_refire 1 +g_balance_nex_primary_animtime 0.95 +g_balance_nex_primary_ammo 10 +g_balance_nex_primary_damagefalloff_mindist 0 +g_balance_nex_primary_damagefalloff_maxdist 0 +g_balance_nex_primary_damagefalloff_halflife 0 +g_balance_nex_primary_damagefalloff_forcehalflife 0 + +g_balance_nex_secondary 1 +g_balance_nex_charge 0 +g_balance_nex_reload_ammo 50 +g_balance_nex_reload_time 2 + +g_balance_rpc_ammo 10 +g_balance_rpc_animtime 1 +g_balance_rpc_damage 150 +g_balance_rpc_damage2 500 +g_balance_rpc_damageforcescale 2 +g_balance_rpc_edgedamage 50 +g_balance_rpc_force 400 +g_balance_rpc_health 25 +g_balance_rpc_lifetime 30 +g_balance_rpc_radius 300 +g_balance_rpc_refire 1 +g_balance_rpc_speed 2500 +g_balance_rpc_speedaccel 5000 +g_balance_rpc_reload_ammo 50 +g_balance_rpc_reload_time 1 + +g_projectiles_newton_style_2_minfactor 1 // rocket will never fly below default speed, even you you move backwards + +g_overkill_spawnsystem 1 // Experimental spawnsystem +g_overkill_spawnsystem_delay 2.5 // How long to wait before its OK to spawn at a player after someone just spawned at this player +g_overkill_spawnsystem_delay_death 0 // How long to wait before its OK to spawn at a player after death +g_overkill_spawnsystem_check_health 1 // Only allow spawn at this player if hes health is full +g_overkill_spawnsystem_close2death 1 // Spawn as close as possible to where we died? +g_overkill_spawnsystem_give_nade 1 // Give nade at spawn + +g_overkill_nade_lifetime 3.5 +g_overkill_nade_minforce 400 +g_overkill_nade_maxforce 2000 +g_overkill_nade_health 25 +g_overkill_nade_refire 10 + +g_overkill_nade_damage 225 +g_overkill_nade_edgedamage 90 +g_overkill_nade_radius 300 +g_overkill_nade_force 650 +g_overkill_nade_newton_style 0 + +g_pickup_healthmega_anyway 0 +g_pikup_armorsmall_max 20 +g_pickup_armorsmall_anyway 0 +g_pickup_healthmega_max 200 +g_pickup_healthmega_anyway 0 + +g_overkill_100a_anyway 1 +g_overkill_100h_anyway 1 +g_overkill_powerups_repalce 1 +g_overkill_superguns_onemag 1 +g_overkill_superguns_respawn_time 20 + +sv_defaultcharacter 1 +sv_defaultplayermodel "models/ok_player/okrobot1.dpm models/ok_player/okrobot2.dpm models/ok_player/okrobot3.dpm models/ok_player/okrobot4.dpm models/ok_player/okmale1.dpm models/ok_player/okmale2.dpm models/ok_player/okmale3.dpm models/ok_player/okmale4.dpm" +sv_defaultplayermodel_red "models/ok_player/okrobot1.dpm models/ok_player/okrobot2.dpm models/ok_player/okrobot3.dpm models/ok_player/okrobot4.dpm" +sv_defaultplayermodel_blue "models/ok_player/okmale1.dpm models/ok_player/okmale2.dpm models/ok_player/okmale3.dpm models/ok_player/okmale4.dpm" diff --git a/qcsrc/client/autocvars.qh b/qcsrc/client/autocvars.qh index 8175695ab..f8a00a35b 100644 --- a/qcsrc/client/autocvars.qh +++ b/qcsrc/client/autocvars.qh @@ -427,3 +427,13 @@ string autocvar__cl_playermodel; float autocvar_cl_deathglow; float autocvar_developer_csqcentities; float autocvar_g_jetpack_attenuation; + +// OK Crosshair +var string autocvar_crosshair_hmg = ""; +var vector autocvar_crosshair_hmg_color = '0.2 1.0 0.2'; +var float autocvar_crosshair_hmg_alpha = 1; +var float autocvar_crosshair_hmg_size = 1; +var string autocvar_crosshair_rpc = ""; +var vector autocvar_crosshair_rpc_color = '0.2 1.0 0.2'; +var float autocvar_crosshair_rpc_alpha = 1; +var float autocvar_crosshair_rpc_size = 1; diff --git a/qcsrc/client/projectile.qc b/qcsrc/client/projectile.qc index b86c234bd..53890bc5c 100644 --- a/qcsrc/client/projectile.qc +++ b/qcsrc/client/projectile.qc @@ -335,6 +335,8 @@ void Ent_Projectile() case PROJECTILE_NADE_PINK_BURN: setmodel(self, "models/weapons/v_ok_grenade.md3");self.traileffect = particleeffectnum("nade_pink_burn"); break; case PROJECTILE_NADE: setmodel(self, "models/weapons/v_ok_grenade.md3");self.traileffect = particleeffectnum("nade"); break; case PROJECTILE_NADE_BURN: setmodel(self, "models/weapons/v_ok_grenade.md3");self.traileffect = particleeffectnum("nade_burn"); break; + + case PROJECTILE_RPC: setmodel(self, "models/weapons/ok_rocket.md3");self.traileffect = particleeffectnum("TR_ROCKET"); break; default: error("Received invalid CSQC projectile, can't work with this!"); @@ -360,6 +362,7 @@ void Ent_Projectile() self.move_bounce_factor = g_balance_electro_secondary_bouncefactor; self.move_bounce_stopspeed = g_balance_electro_secondary_bouncestop; break; + case PROJECTILE_RPC: case PROJECTILE_ROCKET: loopsound(self, CH_SHOTS_SINGLE, "weapons/rocket_fly.wav", VOL_BASE, ATTEN_NORM); self.mins = '-3 -3 -3'; @@ -369,17 +372,6 @@ void Ent_Projectile() self.mins = '-3 -3 -3'; self.maxs = '3 3 3'; break; - case PROJECTILE_NADE_RED_BURN: - case PROJECTILE_NADE_RED: - case PROJECTILE_NADE_BLUE_BURN: - case PROJECTILE_NADE_BLUE: - self.mins = '-3 -3 -3'; - self.maxs = '3 3 3'; - self.move_movetype = MOVETYPE_BOUNCE; - self.move_touch = func_null; - self.scale = 1.5; - self.avelocity = randomvec() * 720; - break; case PROJECTILE_GRENADE_BOUNCING: self.mins = '-3 -3 -3'; self.maxs = '3 3 3'; @@ -525,6 +517,7 @@ void Projectile_Precache() precache_model("models/tracer.mdl"); precache_model("models/weapons/v_ok_grenade.md3"); + precache_model("models/weapons/ok_rocket.md3"); precache_sound("weapons/electro_fly.wav"); precache_sound("weapons/rocket_fly.wav"); diff --git a/qcsrc/client/waypointsprites.qc b/qcsrc/client/waypointsprites.qc index a2ace4f46..6b3c52be2 100644 --- a/qcsrc/client/waypointsprites.qc +++ b/qcsrc/client/waypointsprites.qc @@ -304,6 +304,8 @@ string spritelookuptext(string s) case "wpn-hlac": return _("HLAC"); case "wpn-campingrifle": return _("Rifle"); case "wpn-minelayer": return _("Mine Layer"); + case "wpn-hmg": return _("Heavy Machine Gun"); + case "wpn-rpc": return _("Rocket-Propelled Chainsaw"); case "dom-neut": return _("Control point"); case "dom-red": return _("Control point"); case "dom-blue": return _("Control point"); diff --git a/qcsrc/common/constants.qh b/qcsrc/common/constants.qh index b3dafaaf7..9d3b53259 100644 --- a/qcsrc/common/constants.qh +++ b/qcsrc/common/constants.qh @@ -369,6 +369,8 @@ const float PROJECTILE_NADE_PINK_BURN = 57; const float PROJECTILE_NADE = 58; const float PROJECTILE_NADE_BURN = 59; +const float PROJECTILE_RPC = 60; + const float SPECIES_HUMAN = 0; const float SPECIES_ROBOT_SOLID = 1; const float SPECIES_ALIEN = 2; diff --git a/qcsrc/common/notifications.qh b/qcsrc/common/notifications.qh index 0214ec3d6..e004fbbd3 100644 --- a/qcsrc/common/notifications.qh +++ b/qcsrc/common/notifications.qh @@ -515,7 +515,12 @@ void Send_Notification_WOCOVA( MSG_INFO_NOTIF(1, INFO_WEAPON_TUBA_MURDER, 3, 2, "spree_inf s1 s2 s3loc spree_end", "s2 s1", "weapontuba", _("^BG%s%s^K1 died of ^BG%s^K1's great playing on the @!#%%'n Tuba%s%s"), "") \ MSG_INFO_NOTIF(1, INFO_WEAPON_TUBA_SUICIDE, 2, 1, "s1 s2loc spree_lost", "s1", "weapontuba", _("^BG%s^K1 hurt their own ears with the @!#%%'n Tuba%s%s"), "") \ MSG_INFO_NOTIF(1, INFO_WEAPON_UZI_MURDER_SNIPE, 3, 2, "spree_inf s1 s2 s3loc spree_end", "s2 s1", "weaponuzi", _("^BG%s%s^K1 was sniped by ^BG%s^K1's Machine Gun%s%s"), "") \ - MSG_INFO_NOTIF(1, INFO_WEAPON_UZI_MURDER_SPRAY, 3, 2, "spree_inf s1 s2 s3loc spree_end", "s2 s1", "weaponuzi", _("^BG%s%s^K1 was riddled full of holes by ^BG%s^K1's Machine Gun%s%s"), "") + MSG_INFO_NOTIF(1, INFO_WEAPON_UZI_MURDER_SPRAY, 3, 2, "spree_inf s1 s2 s3loc spree_end", "s2 s1", "weaponuzi", _("^BG%s%s^K1 was riddled full of holes by ^BG%s^K1's Machine Gun%s%s"), "") \ + MSG_INFO_NOTIF(1, INFO_WEAPON_HMG_MURDER_SNIPE, 3, 2, "spree_inf s1 s2 s3loc spree_end", "s2 s1", "weaponhmg", _("^BG%s%s^K1 was sniped by ^BG%s^K1's Heavy Machine Gun%s%s"), "") \ + MSG_INFO_NOTIF(1, INFO_WEAPON_HMG_MURDER_SPRAY, 3, 2, "spree_inf s1 s2 s3loc spree_end", "s2 s1", "weaponhmg", _("^BG%s%s^K1 was torn to bits by ^BG%s^K1's Heavy Machine Gun%s%s"), "") \ + MSG_INFO_NOTIF(1, INFO_WEAPON_RPC_MURDER_DIRECT, 3, 2, "spree_inf s1 s2 s3loc spree_end", "s2 s1", "weaponrpc", _("^BG%s%s^K1 got sawn in half by ^BG%s^K1's Rocket Propelled Chainsaw%s%s"), "") \ + MSG_INFO_NOTIF(1, INFO_WEAPON_RPC_MURDER_SPLASH, 3, 2, "spree_inf s1 s2 s3loc spree_end", "s2 s1", "weaponrpc", _("^BG%s%s^K1 almost dodged ^BG%s^K1's Rocket Propelled Chainsaw%s%s"), "") \ + MSG_INFO_NOTIF(1, INFO_WEAPON_RPC_SUICIDE, 2, 1, "s1 s2loc spree_lost", "s1", "weaponrpc", _("^BG%s^K1 blew themself up with their Rocket Propelled Chainsaw%s%s"), "") #define MULTITEAM_CENTER2(default,prefix,strnum,flnum,args,cpid,durcnt,normal,gentle) \ MSG_CENTER_NOTIF(default, prefix##RED, strnum, flnum, args, cpid, durcnt, TCR(normal, COL_TEAM_1, strtoupper(NAME_TEAM_1)), TCR(gentle, COL_TEAM_1, strtoupper(NAME_TEAM_1))) \ @@ -798,7 +803,12 @@ void Send_Notification_WOCOVA( MSG_MULTI_NOTIF(1, WEAPON_TUBA_MURDER, NO_MSG, INFO_WEAPON_TUBA_MURDER, NO_MSG) \ MSG_MULTI_NOTIF(1, WEAPON_TUBA_SUICIDE, NO_MSG, INFO_WEAPON_TUBA_SUICIDE, CENTER_DEATH_SELF_GENERIC) \ MSG_MULTI_NOTIF(1, WEAPON_UZI_MURDER_SNIPE, NO_MSG, INFO_WEAPON_UZI_MURDER_SNIPE, NO_MSG) \ - MSG_MULTI_NOTIF(1, WEAPON_UZI_MURDER_SPRAY, NO_MSG, INFO_WEAPON_UZI_MURDER_SPRAY, NO_MSG) + MSG_MULTI_NOTIF(1, WEAPON_UZI_MURDER_SPRAY, NO_MSG, INFO_WEAPON_UZI_MURDER_SPRAY, NO_MSG) \ + MSG_MULTI_NOTIF(1, WEAPON_HMG_MURDER_SNIPE, NO_MSG, INFO_WEAPON_HMG_MURDER_SNIPE, NO_MSG) \ + MSG_MULTI_NOTIF(1, WEAPON_HMG_MURDER_SPRAY, NO_MSG, INFO_WEAPON_HMG_MURDER_SPRAY, NO_MSG) \ + MSG_MULTI_NOTIF(1, WEAPON_RPC_MURDER_DIRECT, NO_MSG, INFO_WEAPON_RPC_MURDER_DIRECT, NO_MSG) \ + MSG_MULTI_NOTIF(1, WEAPON_RPC_MURDER_SPLASH, NO_MSG, INFO_WEAPON_RPC_MURDER_SPLASH, NO_MSG) \ + MSG_MULTI_NOTIF(1, WEAPON_RPC_SUICIDE, NO_MSG, INFO_WEAPON_RPC_SUICIDE, NO_MSG) #define MULTITEAM_CHOICE2(default,challow,prefix,chtype,optiona,optionb) \ MSG_CHOICE_NOTIF(default, challow, prefix##RED, chtype, optiona##RED, optionb##RED) \ diff --git a/qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c b/qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c index 18c376b50..c908d82d3 100644 --- a/qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c +++ b/qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c @@ -98,6 +98,8 @@ string XonoticMutatorsDialog_toString(entity me) s = strcat(s, ", ", _("Blood loss")); if(cvar("g_jetpack")) s = strcat(s, ", ", _("Jet pack")); + if(cvar("g_overkill")) + s = strcat(s, ", ", _("Overkill")); if(cvar("g_powerups") == 0) s = strcat(s, ", ", _("No powerups")); if(cvar("g_powerups") > 0) @@ -253,6 +255,9 @@ void XonoticMutatorsDialog_fill(entity me) me.TDempty(me, 0.2); me.TD(me, 1, 1.8, e = makeXonoticRadioButton(1, "g_minstagib", "1", _("MinstaGib"))); e.cvarOffValue = "0"; + me.TR(me); + me.TDempty(me, 0.2); + me.TD(me, 1, 2, e = makeXonoticRadioButton(1, "g_overkill", "1", _("Overkill"))); me.TR(me); me.TDempty(me, 0.2); me.TD(me, 1, 1.8, e = makeXonoticRadioButton(1, "g_nix", "1", _("NIX"))); @@ -265,7 +270,7 @@ void XonoticMutatorsDialog_fill(entity me) me.TDempty(me, 0.2); me.TD(me, 1, 1.8, e = makeXonoticRadioButton(1, "g_start_weapon_laser", "0", _("No start weapons"))); e.cvarOffValue = "-1"; - makeMulti(e, "g_start_weapon_shotgun g_start_weapon_uzi g_start_weapon_grenadelauncher g_start_weapon_minelayer g_start_weapon_electro g_start_weapon_crylink g_start_weapon_nex g_start_weapon_hagar g_start_weapon_rocketlauncher g_start_weapon_porto g_start_weapon_minstanex g_start_weapon_hook g_start_weapon_hlac g_start_weapon_rifle g_start_weapon_fireball g_start_weapon_seeker g_start_weapon_tuba"); + makeMulti(e, "g_start_weapon_shotgun g_start_weapon_uzi g_start_weapon_grenadelauncher g_start_weapon_minelayer g_start_weapon_electro g_start_weapon_crylink g_start_weapon_nex g_start_weapon_hagar g_start_weapon_rocketlauncher g_start_weapon_porto g_start_weapon_minstanex g_start_weapon_hook g_start_weapon_hlac g_start_weapon_rifle g_start_weapon_fireball g_start_weapon_seeker g_start_weapon_tuba g_overkill"); me.gotoRC(me, me.rows - 1, 0); me.TD(me, 1, me.columns, e = makeXonoticButton(_("OK"), '0 0 0')); diff --git a/qcsrc/server/autocvars.qh b/qcsrc/server/autocvars.qh index 759aea6ad..c19757916 100644 --- a/qcsrc/server/autocvars.qh +++ b/qcsrc/server/autocvars.qh @@ -1207,6 +1207,34 @@ float autocvar_waypoint_benchmark; float autocvar_sv_gameplayfix_gravityunaffectedbyticrate; float autocvar_g_trueaim_minrange; float autocvar_g_debug_defaultsounds; +float autocvar_g_balance_hmg_bulletconstant; +float autocvar_g_balance_hmg_speed; +float autocvar_g_balance_hmg_spread_add; +float autocvar_g_balance_hmg_spread_max; +float autocvar_g_balance_hmg_spread_min; +float autocvar_g_balance_hmg_sustained_ammo; +float autocvar_g_balance_hmg_sustained_damage; +//float autocvar_g_balance_hmg_sustained_headshotaddeddamage; +float autocvar_g_balance_hmg_sustained_force; +float autocvar_g_balance_hmg_sustained_refire; +//float autocvar_g_balance_hmg_sustained_spread; +float autocvar_g_balance_hmg_reload_ammo; +float autocvar_g_balance_hmg_reload_time; +float autocvar_g_balance_rpc_ammo; +float autocvar_g_balance_rpc_animtime; +float autocvar_g_balance_rpc_damage; +float autocvar_g_balance_rpc_damage2; +float autocvar_g_balance_rpc_damageforcescale; +float autocvar_g_balance_rpc_edgedamage; +float autocvar_g_balance_rpc_force; +float autocvar_g_balance_rpc_health; +float autocvar_g_balance_rpc_lifetime; +float autocvar_g_balance_rpc_radius; +float autocvar_g_balance_rpc_refire; +float autocvar_g_balance_rpc_speed; +float autocvar_g_balance_rpc_speedaccel; +float autocvar_g_balance_rpc_reload_ammo; +float autocvar_g_balance_rpc_reload_time; float autocvar_g_grab_range; float autocvar_g_sandbox_info; float autocvar_g_sandbox_readonly; diff --git a/qcsrc/server/miscfunctions.qc b/qcsrc/server/miscfunctions.qc index 0b5b42781..ccfc440c6 100644 --- a/qcsrc/server/miscfunctions.qc +++ b/qcsrc/server/miscfunctions.qc @@ -924,6 +924,7 @@ void readlevelcvars(void) CHECK_MUTATOR_ADD("g_nades", mutator_nades, 1); CHECK_MUTATOR_ADD("g_sandbox", sandbox, 1); CHECK_MUTATOR_ADD("g_campcheck", mutator_campcheck, 1); + CHECK_MUTATOR_ADD("g_overkill", mutator_overkill, !cvar("g_minstagib")); #undef CHECK_MUTATOR_ADD diff --git a/qcsrc/server/mutators/mutators.qh b/qcsrc/server/mutators/mutators.qh index e7a95de7e..cd37a6505 100644 --- a/qcsrc/server/mutators/mutators.qh +++ b/qcsrc/server/mutators/mutators.qh @@ -31,3 +31,5 @@ MUTATOR_DECLARATION(mutator_nades); MUTATOR_DECLARATION(mutator_campcheck); MUTATOR_DECLARATION(sandbox); +MUTATOR_DECLARATION(mutator_overkill); + diff --git a/qcsrc/server/progs.src b/qcsrc/server/progs.src index e9e9a4b8c..3063d8ddb 100644 --- a/qcsrc/server/progs.src +++ b/qcsrc/server/progs.src @@ -47,6 +47,7 @@ mutators/gamemode_nexball.qh mutators/gamemode_lms.qh mutators/mutator_dodging.qh mutators/mutator_nades.qh +mutators/mutator_overkill.qh //// tZork Turrets //// tturrets/include/turrets_early.qh @@ -244,6 +245,7 @@ mutators/mutator_nix.qc mutators/mutator_dodging.qc mutators/mutator_rocketflying.qc mutators/mutator_vampire.qc +mutators/mutator_overkill.qc mutators/mutator_spawn_near_teammate.qc mutators/mutator_physical_items.qc mutators/sandbox.qc diff --git a/qcsrc/server/w_all.qc b/qcsrc/server/w_all.qc index ac4ef47ed..9f0540751 100644 --- a/qcsrc/server/w_all.qc +++ b/qcsrc/server/w_all.qc @@ -19,3 +19,6 @@ #include "w_rifle.qc" #include "w_fireball.qc" #include "w_seeker.qc" +#include "w_hmg.qc" +#include "w_rpc.qc" + -- 2.39.2