]> git.rm.cloudns.org Git - xonotic/xonotic-data.pk3dir.git/commitdiff
Begin cleaning up some mess
authorMario <mario.mario@y7mail.com>
Mon, 7 Oct 2013 16:12:36 +0000 (09:12 -0700)
committerMario <mario.mario@y7mail.com>
Mon, 7 Oct 2013 16:12:36 +0000 (09:12 -0700)
19 files changed:
balance25.cfg
balanceFruitieX.cfg
balanceXDF.cfg
balanceXPM.cfg
balanceXonotic.cfg
defaultXonotic.cfg
mutators.cfg
overkill.cfg [new file with mode: 0644]
qcsrc/client/autocvars.qh
qcsrc/client/projectile.qc
qcsrc/client/waypointsprites.qc
qcsrc/common/constants.qh
qcsrc/common/notifications.qh
qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c
qcsrc/server/autocvars.qh
qcsrc/server/miscfunctions.qc
qcsrc/server/mutators/mutators.qh
qcsrc/server/progs.src
qcsrc/server/w_all.qc

index 9451d377d99757107948b7e805e8b63c2eeacfdc..0ef9549534db56d4c63843abbf9b097c882ad1f3 100644 (file)
@@ -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
+// }}}
index f985659f9c6549ea4c337004c5804e9d7d83e38b..599c7ce14eff1b87ad5ebbb37623f11a202ee0ec 100644 (file)
@@ -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
+// }}}
index 4e0631523882e1ae1a045afef1598862eeba5ad2..591bc8d430b829db2b57710fc988a43d69fd4fa0 100644 (file)
@@ -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
+// }}}
+
index 8c171476a1e126114ea1df373d399fe125741c21..fdce03b7292bf614c55d59ba9bed4dd061f67481 100644 (file)
@@ -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
+// }}}
index cdf3f201354aaebeb4351ee1d83f4af9f6d44490..28b552b5298d56450b98eed3be1373efaeb488f1 100644 (file)
@@ -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
+// }}}
index d967d53d555dee2e8dd5f98b46f4c98f8ff1d9d1..93aff3128c02dc7f3afe8636cbd0aade4a044867 100644 (file)
@@ -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)"
index e88fbc0afcc039cb3107c73ae778fdfce08239f2..9cd318a6f54b8f8d06c8b6d752f34e77f8e9e56e 100644 (file)
@@ -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 (file)
index 0000000..1eff76a
--- /dev/null
@@ -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"
index 8175695abb0ac5ef0a4c033e671a742a907776fb..f8a00a35b1fd6d7b8079c1a5dcb230c753e72397 100644 (file)
@@ -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;
index b86c234bdbba9062e6b121cb745efc96050a6351..53890bc5c5172d498c0d89df3647a38c431bbae2 100644 (file)
@@ -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");
index a2ace4f46aa95059399d89a0667c74b44dcd8e5b..6b3c52be2ce7024df8aa997e1f146505c3f50a6a 100644 (file)
@@ -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");
index b3dafaaf7ba7293813715bb1d1ae0aa673af8f14..9d3b5325955558a329f8c118b949fd4c5c699a98 100644 (file)
@@ -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;
index 0214ec3d6122c2e596ca84b8e8b8c92f524d2f6a..e004fbbd3ceeae3025de10edd5687dc6f1490cbc 100644 (file)
@@ -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) \
index 18c376b503dda2463b9b3f776de54e66048ad2ed..c908d82d3ffd6b55f513eaf0b30863688bee04f4 100644 (file)
@@ -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'));
index 759aea6add8832d27b88c9cb413ef08f70b65ae9..c19757916a54b65dc6250dcf49750df0f4293e96 100644 (file)
@@ -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;
index 0b5b42781229f0df535621e4b373a0e36302329a..ccfc440c696d338147eda8b1c87834d144466d5c 100644 (file)
@@ -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
        
index e7a95de7ec5ba08df4a7140742035b6b4b7d1d6c..cd37a6505aa8666ffa457fb7e338c5943f59017f 100644 (file)
@@ -31,3 +31,5 @@ MUTATOR_DECLARATION(mutator_nades);
 MUTATOR_DECLARATION(mutator_campcheck);
 
 MUTATOR_DECLARATION(sandbox);
+MUTATOR_DECLARATION(mutator_overkill);
+
index e9e9a4b8c89e3fdfce2209e264df815a634b16d2..3063d8ddbd4d21408d538a55b405d9f39928caab 100644 (file)
@@ -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
index ac4ef47ed3bc74c009b3b9d79e1433975102c3c7..9f05407516d5f7076a53ca4298736b55ae0c3c28 100644 (file)
@@ -19,3 +19,6 @@
 #include "w_rifle.qc"
 #include "w_fireball.qc"
 #include "w_seeker.qc"
+#include "w_hmg.qc"
+#include "w_rpc.qc"
+