-Thu Oct 10 07:24:38 CEST 2019
+Sat Dec 28 07:24:50 CET 2019
// {{{ #1: Blaster
-set g_balance_blaster_primary_animtime 0.2
+set g_balance_blaster_primary_animtime 0.1
set g_balance_blaster_primary_damage 20
set g_balance_blaster_primary_delay 0
set g_balance_blaster_primary_edgedamage 10
set g_balance_blaster_secondary_shotangle 0
set g_balance_blaster_secondary_speed 6000
set g_balance_blaster_secondary_spread 0
-set g_balance_blaster_switchdelay_drop 0.2
-set g_balance_blaster_switchdelay_raise 0.2
+set g_balance_blaster_switchdelay_drop 0.1
+set g_balance_blaster_switchdelay_raise 0.1
set g_balance_blaster_weaponreplace ""
set g_balance_blaster_weaponstart 1
set g_balance_blaster_weaponstartoverride -1
set g_balance_machinegun_mode 1
set g_balance_machinegun_reload_ammo 60
set g_balance_machinegun_reload_time 2
-set g_balance_machinegun_solidpenetration 63
+set g_balance_machinegun_solidpenetration 13.1
set g_balance_machinegun_spread_add 0.012
set g_balance_machinegun_spread_max 0.05
set g_balance_machinegun_spread_min 0.02
+++ /dev/null
-// {{{ #1: Blaster
-set g_balance_blaster_primary_animtime 0.2
-set g_balance_blaster_primary_damage 20
-set g_balance_blaster_primary_delay 0
-set g_balance_blaster_primary_edgedamage 10
-set g_balance_blaster_primary_force 375
-set g_balance_blaster_primary_force_zscale 1
-set g_balance_blaster_primary_lifetime 5
-set g_balance_blaster_primary_radius 60
-set g_balance_blaster_primary_refire 0.7
-set g_balance_blaster_primary_shotangle 0
-set g_balance_blaster_primary_speed 6000
-set g_balance_blaster_primary_spread 0
-set g_balance_blaster_secondary 0
-set g_balance_blaster_secondary_animtime 0.2
-set g_balance_blaster_secondary_damage 25
-set g_balance_blaster_secondary_delay 0
-set g_balance_blaster_secondary_edgedamage 12.5
-set g_balance_blaster_secondary_force 360
-set g_balance_blaster_secondary_force_zscale 1
-set g_balance_blaster_secondary_lifetime 5
-set g_balance_blaster_secondary_radius 70
-set g_balance_blaster_secondary_refire 0.7
-set g_balance_blaster_secondary_shotangle 0
-set g_balance_blaster_secondary_speed 6000
-set g_balance_blaster_secondary_spread 0
-set g_balance_blaster_switchdelay_drop 0.2
-set g_balance_blaster_switchdelay_raise 0.2
-set g_balance_blaster_weaponreplace ""
-set g_balance_blaster_weaponstart 1
-set g_balance_blaster_weaponstartoverride -1
-set g_balance_blaster_weaponthrowable 0
-// }}}
-// {{{ #2: Shotgun
-set g_balance_shotgun_primary_ammo 1
-set g_balance_shotgun_primary_animtime 0.2
-set g_balance_shotgun_primary_bullets 12
-set g_balance_shotgun_primary_damage 4
-set g_balance_shotgun_primary_force 15
-set g_balance_shotgun_primary_refire 0.75
-set g_balance_shotgun_primary_solidpenetration 3.8
-set g_balance_shotgun_primary_spread 0.12
-set g_balance_shotgun_reload_ammo 0
-set g_balance_shotgun_reload_time 2
-set g_balance_shotgun_secondary 1
-set g_balance_shotgun_secondary_alt_animtime 0.2
-set g_balance_shotgun_secondary_alt_refire 1.2
-set g_balance_shotgun_secondary_animtime 1.15
-set g_balance_shotgun_secondary_damage 70
-set g_balance_shotgun_secondary_force 200
-set g_balance_shotgun_secondary_melee_delay 0.25
-set g_balance_shotgun_secondary_melee_multihit 1
-set g_balance_shotgun_secondary_melee_no_doubleslap 1
-set g_balance_shotgun_secondary_melee_nonplayerdamage 40
-set g_balance_shotgun_secondary_melee_range 120
-set g_balance_shotgun_secondary_melee_swing_side 120
-set g_balance_shotgun_secondary_melee_swing_up 30
-set g_balance_shotgun_secondary_melee_time 0.15
-set g_balance_shotgun_secondary_melee_traces 10
-set g_balance_shotgun_secondary_refire 1.25
-set g_balance_shotgun_switchdelay_drop 0.2
-set g_balance_shotgun_switchdelay_raise 0.2
-set g_balance_shotgun_weaponreplace ""
-set g_balance_shotgun_weaponstart 1
-set g_balance_shotgun_weaponstartoverride -1
-set g_balance_shotgun_weaponthrowable 1
-// }}}
-// {{{ #3: MachineGun
-set g_balance_machinegun_burst 3
-set g_balance_machinegun_burst_ammo 3
-set g_balance_machinegun_burst_animtime 0.3
-set g_balance_machinegun_burst_refire 0.06
-set g_balance_machinegun_burst_refire2 0.45
-set g_balance_machinegun_burst_spread 0
-set g_balance_machinegun_first 1
-set g_balance_machinegun_first_ammo 1
-set g_balance_machinegun_first_damage 14
-set g_balance_machinegun_first_force 3
-set g_balance_machinegun_first_refire 0.125
-set g_balance_machinegun_first_spread 0.03
-set g_balance_machinegun_mode 1
-set g_balance_machinegun_reload_ammo 60
-set g_balance_machinegun_reload_time 2
-set g_balance_machinegun_solidpenetration 63
-set g_balance_machinegun_spread_add 0.012
-set g_balance_machinegun_spread_max 0.05
-set g_balance_machinegun_spread_min 0.02
-set g_balance_machinegun_sustained_ammo 1
-set g_balance_machinegun_sustained_damage 10
-set g_balance_machinegun_sustained_force 3
-set g_balance_machinegun_sustained_refire 0.1
-set g_balance_machinegun_sustained_spread 0.03
-set g_balance_machinegun_switchdelay_drop 0.2
-set g_balance_machinegun_switchdelay_raise 0.2
-set g_balance_machinegun_weaponreplace ""
-set g_balance_machinegun_weaponstart 0
-set g_balance_machinegun_weaponstartoverride -1
-set g_balance_machinegun_weaponthrowable 1
-// }}}
-// {{{ #4: Mortar
-set g_balance_mortar_bouncefactor 0.5
-set g_balance_mortar_bouncestop 0.075
-set g_balance_mortar_primary_ammo 2
-set g_balance_mortar_primary_animtime 0.3
-set g_balance_mortar_primary_damage 55
-set g_balance_mortar_primary_damageforcescale 0
-set g_balance_mortar_primary_edgedamage 25
-set g_balance_mortar_primary_force 250
-set g_balance_mortar_primary_health 15
-set g_balance_mortar_primary_lifetime 5
-set g_balance_mortar_primary_lifetime_stick 0
-set g_balance_mortar_primary_radius 120
-set g_balance_mortar_primary_refire 0.8
-set g_balance_mortar_primary_remote_minbouncecnt 0
-set g_balance_mortar_primary_speed 1900
-set g_balance_mortar_primary_speed_up 225
-set g_balance_mortar_primary_speed_z 0
-set g_balance_mortar_primary_spread 0
-set g_balance_mortar_primary_type 0
-set g_balance_mortar_reload_ammo 0
-set g_balance_mortar_reload_time 2
-set g_balance_mortar_secondary_ammo 2
-set g_balance_mortar_secondary_animtime 0.3
-set g_balance_mortar_secondary_damage 55
-set g_balance_mortar_secondary_damageforcescale 4
-set g_balance_mortar_secondary_edgedamage 30
-set g_balance_mortar_secondary_force 250
-set g_balance_mortar_secondary_health 30
-set g_balance_mortar_secondary_lifetime 5
-set g_balance_mortar_secondary_lifetime_bounce 0.5
-set g_balance_mortar_secondary_lifetime_stick 0
-set g_balance_mortar_secondary_radius 120
-set g_balance_mortar_secondary_refire 0.7
-set g_balance_mortar_secondary_remote_detonateprimary 0
-set g_balance_mortar_secondary_speed 1400
-set g_balance_mortar_secondary_speed_up 150
-set g_balance_mortar_secondary_speed_z 0
-set g_balance_mortar_secondary_spread 0
-set g_balance_mortar_secondary_type 1
-set g_balance_mortar_switchdelay_drop 0.2
-set g_balance_mortar_switchdelay_raise 0.2
-set g_balance_mortar_weaponreplace ""
-set g_balance_mortar_weaponstart 0
-set g_balance_mortar_weaponstartoverride -1
-set g_balance_mortar_weaponthrowable 1
-// }}}
-// {{{ #5: Mine Layer (MUTATOR WEAPON)
-set g_balance_minelayer_ammo 4
-set g_balance_minelayer_animtime 0.4
-set g_balance_minelayer_damage 40
-set g_balance_minelayer_damageforcescale 0
-set g_balance_minelayer_detonatedelay -1
-set g_balance_minelayer_edgedamage 20
-set g_balance_minelayer_force 250
-set g_balance_minelayer_health 15
-set g_balance_minelayer_lifetime 10
-set g_balance_minelayer_lifetime_countdown 0.5
-set g_balance_minelayer_limit 3
-set g_balance_minelayer_protection 0
-set g_balance_minelayer_proximityradius 150
-set g_balance_minelayer_radius 175
-set g_balance_minelayer_refire 1.5
-set g_balance_minelayer_reload_ammo 0
-set g_balance_minelayer_reload_time 2
-set g_balance_minelayer_remote_damage 45
-set g_balance_minelayer_remote_edgedamage 40
-set g_balance_minelayer_remote_force 300
-set g_balance_minelayer_remote_radius 200
-set g_balance_minelayer_speed 1000
-set g_balance_minelayer_switchdelay_drop 0.2
-set g_balance_minelayer_switchdelay_raise 0.2
-set g_balance_minelayer_time 0.5
-set g_balance_minelayer_weaponreplace ""
-set g_balance_minelayer_weaponstart 0
-set g_balance_minelayer_weaponstartoverride -1
-set g_balance_minelayer_weaponthrowable 1
-// }}}
-// {{{ #6: Electro
-set g_balance_electro_combo_comboradius 300
-set g_balance_electro_combo_comboradius_thruwall 200
-set g_balance_electro_combo_damage 50
-set g_balance_electro_combo_edgedamage 25
-set g_balance_electro_combo_force 120
-set g_balance_electro_combo_radius 150
-set g_balance_electro_combo_safeammocheck 1
-set g_balance_electro_combo_speed 2000
-set g_balance_electro_primary_ammo 4
-set g_balance_electro_primary_animtime 0.3
-set g_balance_electro_primary_comboradius 300
-set g_balance_electro_primary_damage 40
-set g_balance_electro_primary_edgedamage 20
-set g_balance_electro_primary_force 200
-set g_balance_electro_primary_lifetime 5
-set g_balance_electro_primary_midaircombo_explode 1
-set g_balance_electro_primary_midaircombo_interval 0.1
-set g_balance_electro_primary_midaircombo_radius 0
-set g_balance_electro_primary_radius 100
-set g_balance_electro_primary_refire 0.6
-set g_balance_electro_primary_speed 2500
-set g_balance_electro_primary_spread 0
-set g_balance_electro_reload_ammo 0
-set g_balance_electro_reload_time 2
-set g_balance_electro_secondary_ammo 2
-set g_balance_electro_secondary_animtime 0.2
-set g_balance_electro_secondary_bouncefactor 0.3
-set g_balance_electro_secondary_bouncestop 0.05
-set g_balance_electro_secondary_count 3
-set g_balance_electro_secondary_damage 30
-set g_balance_electro_secondary_damagedbycontents 1
-set g_balance_electro_secondary_damageforcescale 4
-set g_balance_electro_secondary_edgedamage 15
-set g_balance_electro_secondary_force 50
-set g_balance_electro_secondary_health 5
-set g_balance_electro_secondary_lifetime 4
-set g_balance_electro_secondary_radius 150
-set g_balance_electro_secondary_refire 0.2
-set g_balance_electro_secondary_refire2 1.6
-set g_balance_electro_secondary_speed 1000
-set g_balance_electro_secondary_speed_up 200
-set g_balance_electro_secondary_speed_z 0
-set g_balance_electro_secondary_spread 0
-set g_balance_electro_secondary_stick 0
-set g_balance_electro_secondary_touchexplode 1
-set g_balance_electro_switchdelay_drop 0.2
-set g_balance_electro_switchdelay_raise 0.2
-set g_balance_electro_weaponreplace ""
-set g_balance_electro_weaponstart 0
-set g_balance_electro_weaponstartoverride -1
-set g_balance_electro_weaponthrowable 1
-// }}}
-// {{{ #7: Crylink
-set g_balance_crylink_primary_ammo 3
-set g_balance_crylink_primary_animtime 0.3
-set g_balance_crylink_primary_bouncedamagefactor 0.5
-set g_balance_crylink_primary_bounces 1
-set g_balance_crylink_primary_damage 10
-set g_balance_crylink_primary_edgedamage 5
-set g_balance_crylink_primary_force -50
-set g_balance_crylink_primary_joindelay 0.1
-set g_balance_crylink_primary_joinexplode 1
-set g_balance_crylink_primary_joinexplode_damage 0
-set g_balance_crylink_primary_joinexplode_edgedamage 0
-set g_balance_crylink_primary_joinexplode_force 0
-set g_balance_crylink_primary_joinexplode_radius 0
-set g_balance_crylink_primary_joinspread 0.2
-set g_balance_crylink_primary_linkexplode 1
-set g_balance_crylink_primary_middle_fadetime 5
-set g_balance_crylink_primary_middle_lifetime 5
-set g_balance_crylink_primary_other_fadetime 5
-set g_balance_crylink_primary_other_lifetime 5
-set g_balance_crylink_primary_radius 80
-set g_balance_crylink_primary_refire 0.7
-set g_balance_crylink_primary_shots 6
-set g_balance_crylink_primary_speed 2000
-set g_balance_crylink_primary_spread 0.08
-set g_balance_crylink_reload_ammo 0
-set g_balance_crylink_reload_time 2
-set g_balance_crylink_secondary 1
-set g_balance_crylink_secondary_ammo 3
-set g_balance_crylink_secondary_animtime 0.2
-set g_balance_crylink_secondary_bouncedamagefactor 0.5
-set g_balance_crylink_secondary_bounces 0
-set g_balance_crylink_secondary_damage 8
-set g_balance_crylink_secondary_edgedamage 4
-set g_balance_crylink_secondary_force -200
-set g_balance_crylink_secondary_joindelay 0
-set g_balance_crylink_secondary_joinexplode 0
-set g_balance_crylink_secondary_joinexplode_damage 0
-set g_balance_crylink_secondary_joinexplode_edgedamage 0
-set g_balance_crylink_secondary_joinexplode_force 0
-set g_balance_crylink_secondary_joinexplode_radius 0
-set g_balance_crylink_secondary_joinspread 0
-set g_balance_crylink_secondary_linkexplode 0
-set g_balance_crylink_secondary_middle_fadetime 5
-set g_balance_crylink_secondary_middle_lifetime 5
-set g_balance_crylink_secondary_other_fadetime 2
-set g_balance_crylink_secondary_other_lifetime 2
-set g_balance_crylink_secondary_radius 100
-set g_balance_crylink_secondary_refire 0.7
-set g_balance_crylink_secondary_shots 5
-set g_balance_crylink_secondary_speed 4000
-set g_balance_crylink_secondary_spread 0.08
-set g_balance_crylink_secondary_spreadtype 0
-set g_balance_crylink_switchdelay_drop 0.2
-set g_balance_crylink_switchdelay_raise 0.2
-set g_balance_crylink_weaponreplace ""
-set g_balance_crylink_weaponstart 0
-set g_balance_crylink_weaponstartoverride -1
-set g_balance_crylink_weaponthrowable 1
-// }}}
-// {{{ #8: Vortex
-set g_balance_vortex_charge 0
-set g_balance_vortex_charge_always 0
-set g_balance_vortex_charge_animlimit 0.5
-set g_balance_vortex_charge_limit 1
-set g_balance_vortex_charge_maxspeed 800
-set g_balance_vortex_charge_mindmg 40
-set g_balance_vortex_charge_minspeed 400
-set g_balance_vortex_charge_rate 0.6
-set g_balance_vortex_charge_rot_pause 0
-set g_balance_vortex_charge_rot_rate 0
-set g_balance_vortex_charge_shot_multiplier 0
-set g_balance_vortex_charge_start 0.5
-set g_balance_vortex_charge_velocity_rate 0
-set g_balance_vortex_primary_ammo 6
-set g_balance_vortex_primary_animtime 0.4
-set g_balance_vortex_primary_armorpierce 0
-set g_balance_vortex_primary_damage 65
-set g_balance_vortex_primary_damagefalloff_forcehalflife 0
-set g_balance_vortex_primary_damagefalloff_halflife 0
-set g_balance_vortex_primary_damagefalloff_maxdist 0
-set g_balance_vortex_primary_damagefalloff_mindist 0
-set g_balance_vortex_primary_force 400
-set g_balance_vortex_primary_refire 1.5
-set g_balance_vortex_reload_ammo 0
-set g_balance_vortex_reload_time 2
-set g_balance_vortex_secondary 0
-set g_balance_vortex_secondary_ammo 2
-set g_balance_vortex_secondary_animtime 0
-set g_balance_vortex_secondary_armorpierce 0
-set g_balance_vortex_secondary_chargepool 0
-set g_balance_vortex_secondary_chargepool_pause_regen 1
-set g_balance_vortex_secondary_chargepool_regen 0.15
-set g_balance_vortex_secondary_damage 0
-set g_balance_vortex_secondary_damagefalloff_forcehalflife 0
-set g_balance_vortex_secondary_damagefalloff_halflife 0
-set g_balance_vortex_secondary_damagefalloff_maxdist 0
-set g_balance_vortex_secondary_damagefalloff_mindist 0
-set g_balance_vortex_secondary_force 0
-set g_balance_vortex_secondary_refire 0
-set g_balance_vortex_switchdelay_drop 0.2
-set g_balance_vortex_switchdelay_raise 0.2
-set g_balance_vortex_weaponreplace ""
-set g_balance_vortex_weaponstart 0
-set g_balance_vortex_weaponstartoverride -1
-set g_balance_vortex_weaponthrowable 1
-// }}}
-// {{{ #9: Hagar
-set g_balance_hagar_primary_ammo 1
-set g_balance_hagar_primary_damage 25
-set g_balance_hagar_primary_damageforcescale 0
-set g_balance_hagar_primary_edgedamage 12.5
-set g_balance_hagar_primary_force 100
-set g_balance_hagar_primary_health 15
-set g_balance_hagar_primary_lifetime 5
-set g_balance_hagar_primary_radius 65
-set g_balance_hagar_primary_refire 0.16667
-set g_balance_hagar_primary_speed 2200
-set g_balance_hagar_primary_spread 0
-set g_balance_hagar_reload_ammo 0
-set g_balance_hagar_reload_time 2
-set g_balance_hagar_secondary 1
-set g_balance_hagar_secondary_ammo 1
-set g_balance_hagar_secondary_damage 35
-set g_balance_hagar_secondary_damageforcescale 0
-set g_balance_hagar_secondary_edgedamage 17.5
-set g_balance_hagar_secondary_force 75
-set g_balance_hagar_secondary_health 15
-set g_balance_hagar_secondary_lifetime_min 10
-set g_balance_hagar_secondary_lifetime_rand 0
-set g_balance_hagar_secondary_load 1
-set g_balance_hagar_secondary_load_abort 1
-set g_balance_hagar_secondary_load_animtime 0.2
-set g_balance_hagar_secondary_load_hold 4
-set g_balance_hagar_secondary_load_linkexplode 0
-set g_balance_hagar_secondary_load_max 4
-set g_balance_hagar_secondary_load_releasedeath 0
-set g_balance_hagar_secondary_load_speed 0.5
-set g_balance_hagar_secondary_load_spread 0.075
-set g_balance_hagar_secondary_load_spread_bias 0.5
-set g_balance_hagar_secondary_radius 80
-set g_balance_hagar_secondary_refire 0.5
-set g_balance_hagar_secondary_speed 2000
-set g_balance_hagar_secondary_spread 0
-set g_balance_hagar_switchdelay_drop 0.2
-set g_balance_hagar_switchdelay_raise 0.2
-set g_balance_hagar_weaponreplace ""
-set g_balance_hagar_weaponstart 0
-set g_balance_hagar_weaponstartoverride -1
-set g_balance_hagar_weaponthrowable 1
-// }}}
-// {{{ #10: Devastator
-set g_balance_devastator_ammo 4
-set g_balance_devastator_animtime 0.4
-set g_balance_devastator_damage 80
-set g_balance_devastator_damageforcescale 1
-set g_balance_devastator_detonatedelay 0.02
-set g_balance_devastator_edgedamage 40
-set g_balance_devastator_force 400
-set g_balance_devastator_guidedelay 0.2
-set g_balance_devastator_guidegoal 512
-set g_balance_devastator_guiderate 90
-set g_balance_devastator_guideratedelay 0.01
-set g_balance_devastator_guidestop 0
-set g_balance_devastator_health 30
-set g_balance_devastator_lifetime 10
-set g_balance_devastator_radius 110
-set g_balance_devastator_refire 1.1
-set g_balance_devastator_reload_ammo 0
-set g_balance_devastator_reload_time 2
-set g_balance_devastator_remote_damage 70
-set g_balance_devastator_remote_edgedamage 35
-set g_balance_devastator_remote_force 300
-set g_balance_devastator_remote_jump 1
-set g_balance_devastator_remote_jump_damage 70
-set g_balance_devastator_remote_jump_force 450
-set g_balance_devastator_remote_jump_radius 100
-set g_balance_devastator_remote_jump_velocity_z_add 0
-set g_balance_devastator_remote_jump_velocity_z_max 1500
-set g_balance_devastator_remote_jump_velocity_z_min 400
-set g_balance_devastator_remote_radius 110
-set g_balance_devastator_speed 1300
-set g_balance_devastator_speedaccel 1300
-set g_balance_devastator_speedstart 1000
-set g_balance_devastator_switchdelay_drop 0.2
-set g_balance_devastator_switchdelay_raise 0.2
-set g_balance_devastator_weaponreplace ""
-set g_balance_devastator_weaponstart 0
-set g_balance_devastator_weaponstartoverride -1
-set g_balance_devastator_weaponthrowable 1
-// }}}
-// {{{ #11: Port-O-Launch
-set g_balance_porto_primary_animtime 0.3
-set g_balance_porto_primary_lifetime 5
-set g_balance_porto_primary_refire 1.5
-set g_balance_porto_primary_speed 1000
-set g_balance_porto_secondary 1
-set g_balance_porto_secondary_animtime 0.3
-set g_balance_porto_secondary_lifetime 5
-set g_balance_porto_secondary_refire 1.5
-set g_balance_porto_secondary_speed 1000
-set g_balance_porto_switchdelay_drop 0.2
-set g_balance_porto_switchdelay_raise 0.2
-set g_balance_porto_weaponreplace ""
-set g_balance_porto_weaponstart 0
-set g_balance_porto_weaponstartoverride -1
-set g_balance_porto_weaponthrowable 1
-// }}}
-// {{{ #12: Vaporizer
-set g_balance_vaporizer_primary_ammo 10
-set g_balance_vaporizer_primary_animtime 0.3
-set g_balance_vaporizer_primary_damage 150
-set g_balance_vaporizer_primary_force 800
-set g_balance_vaporizer_primary_refire 1
-set g_balance_vaporizer_reload_ammo 0
-set g_balance_vaporizer_reload_time 0
-set g_balance_vaporizer_secondary_ammo 0
-set g_balance_vaporizer_secondary_animtime 0.2
-set g_balance_vaporizer_secondary_damage 25
-set g_balance_vaporizer_secondary_delay 0
-set g_balance_vaporizer_secondary_edgedamage 12.5
-set g_balance_vaporizer_secondary_force 480
-set g_balance_vaporizer_secondary_force_zscale 1
-set g_balance_vaporizer_secondary_lifetime 5
-set g_balance_vaporizer_secondary_radius 70
-set g_balance_vaporizer_secondary_refire 0.7
-set g_balance_vaporizer_secondary_shotangle 0
-set g_balance_vaporizer_secondary_speed 6000
-set g_balance_vaporizer_secondary_spread 0
-set g_balance_vaporizer_switchdelay_drop 0.2
-set g_balance_vaporizer_switchdelay_raise 0.2
-set g_balance_vaporizer_weaponreplace ""
-set g_balance_vaporizer_weaponstart 0
-set g_balance_vaporizer_weaponstartoverride -1
-set g_balance_vaporizer_weaponthrowable 1
-// }}}
-// {{{ #13: Grappling Hook
-set g_balance_hook_primary_ammo 5
-set g_balance_hook_primary_animtime 0.3
-set g_balance_hook_primary_hooked_ammo 5
-set g_balance_hook_primary_hooked_time_free 2
-set g_balance_hook_primary_hooked_time_max 0
-set g_balance_hook_primary_refire 0.2
-set g_balance_hook_secondary_animtime 0.3
-set g_balance_hook_secondary_damage 25
-set g_balance_hook_secondary_damageforcescale 0
-set g_balance_hook_secondary_duration 1.5
-set g_balance_hook_secondary_edgedamage 5
-set g_balance_hook_secondary_force -2000
-set g_balance_hook_secondary_gravity 5
-set g_balance_hook_secondary_health 15
-set g_balance_hook_secondary_lifetime 5
-set g_balance_hook_secondary_power 3
-set g_balance_hook_secondary_radius 500
-set g_balance_hook_secondary_refire 3
-set g_balance_hook_secondary_speed 0
-set g_balance_hook_switchdelay_drop 0.2
-set g_balance_hook_switchdelay_raise 0.2
-set g_balance_hook_weaponreplace ""
-set g_balance_hook_weaponstart 0
-set g_balance_hook_weaponstartoverride -1
-set g_balance_hook_weaponthrowable 1
-// }}}
-// {{{ #14: Heavy Laser Assault Cannon (MUTATOR WEAPON)
-set g_balance_hlac_primary_ammo 1
-set g_balance_hlac_primary_animtime 0.4
-set g_balance_hlac_primary_damage 18
-set g_balance_hlac_primary_edgedamage 9
-set g_balance_hlac_primary_force 90
-set g_balance_hlac_primary_lifetime 5
-set g_balance_hlac_primary_radius 70
-set g_balance_hlac_primary_refire 0.15
-set g_balance_hlac_primary_speed 9000
-set g_balance_hlac_primary_spread_add 0.0045
-set g_balance_hlac_primary_spread_crouchmod 0.25
-set g_balance_hlac_primary_spread_max 0.25
-set g_balance_hlac_primary_spread_min 0.01
-set g_balance_hlac_reload_ammo 0
-set g_balance_hlac_reload_time 2
-set g_balance_hlac_secondary 1
-set g_balance_hlac_secondary_ammo 10
-set g_balance_hlac_secondary_animtime 0.3
-set g_balance_hlac_secondary_damage 15
-set g_balance_hlac_secondary_edgedamage 7.5
-set g_balance_hlac_secondary_force 90
-set g_balance_hlac_secondary_lifetime 5
-set g_balance_hlac_secondary_radius 70
-set g_balance_hlac_secondary_refire 1
-set g_balance_hlac_secondary_shots 6
-set g_balance_hlac_secondary_speed 9000
-set g_balance_hlac_secondary_spread 0.15
-set g_balance_hlac_secondary_spread_crouchmod 0.5
-set g_balance_hlac_switchdelay_drop 0.2
-set g_balance_hlac_switchdelay_raise 0.2
-set g_balance_hlac_weaponreplace ""
-set g_balance_hlac_weaponstart 0
-set g_balance_hlac_weaponstartoverride -1
-set g_balance_hlac_weaponthrowable 1
-// }}}
-// {{{ #15: @!#%'n Tuba
-set g_balance_tuba_animtime 0.05
-set g_balance_tuba_attenuation 0.5
-set g_balance_tuba_damage 5
-set g_balance_tuba_edgedamage 0
-set g_balance_tuba_fadetime 0.25
-set g_balance_tuba_force 40
-set g_balance_tuba_pitchstep 6
-set g_balance_tuba_radius 200
-set g_balance_tuba_refire 0.05
-set g_balance_tuba_switchdelay_drop 0.2
-set g_balance_tuba_switchdelay_raise 0.2
-set g_balance_tuba_volume 1
-set g_balance_tuba_weaponreplace ""
-set g_balance_tuba_weaponstart 0
-set g_balance_tuba_weaponstartoverride -1
-set g_balance_tuba_weaponthrowable 1
-// }}}
-// {{{ #16: Rifle (MUTATOR WEAPON)
-set g_balance_rifle_bursttime 0
-set g_balance_rifle_primary_ammo 10
-set g_balance_rifle_primary_animtime 0.4
-set g_balance_rifle_primary_bullethail 0
-set g_balance_rifle_primary_burstcost 0
-set g_balance_rifle_primary_damage 80
-set g_balance_rifle_primary_force 100
-set g_balance_rifle_primary_refire 1.2
-set g_balance_rifle_primary_shots 1
-set g_balance_rifle_primary_solidpenetration 62.2
-set g_balance_rifle_primary_spread 0
-set g_balance_rifle_primary_tracer 1
-set g_balance_rifle_reload_ammo 80
-set g_balance_rifle_reload_time 2
-set g_balance_rifle_secondary 1
-set g_balance_rifle_secondary_ammo 10
-set g_balance_rifle_secondary_animtime 0.3
-set g_balance_rifle_secondary_bullethail 0
-set g_balance_rifle_secondary_burstcost 0
-set g_balance_rifle_secondary_damage 20
-set g_balance_rifle_secondary_force 50
-set g_balance_rifle_secondary_refire 0.9
-set g_balance_rifle_secondary_reload 0
-set g_balance_rifle_secondary_shots 4
-set g_balance_rifle_secondary_solidpenetration 15.5
-set g_balance_rifle_secondary_spread 0.04
-set g_balance_rifle_secondary_tracer 0
-set g_balance_rifle_switchdelay_drop 0.2
-set g_balance_rifle_switchdelay_raise 0.2
-set g_balance_rifle_weaponreplace ""
-set g_balance_rifle_weaponstart 0
-set g_balance_rifle_weaponstartoverride -1
-set g_balance_rifle_weaponthrowable 1
-// }}}
-// {{{ #17: Fireball
-set g_balance_fireball_primary_animtime 0.4
-set g_balance_fireball_primary_bfgdamage 100
-set g_balance_fireball_primary_bfgforce 0
-set g_balance_fireball_primary_bfgradius 1000
-set g_balance_fireball_primary_damage 200
-set g_balance_fireball_primary_damageforcescale 0
-set g_balance_fireball_primary_edgedamage 50
-set g_balance_fireball_primary_force 600
-set g_balance_fireball_primary_health 0
-set g_balance_fireball_primary_laserburntime 0.5
-set g_balance_fireball_primary_laserdamage 80
-set g_balance_fireball_primary_laseredgedamage 20
-set g_balance_fireball_primary_laserradius 256
-set g_balance_fireball_primary_lifetime 15
-set g_balance_fireball_primary_radius 200
-set g_balance_fireball_primary_refire 2
-set g_balance_fireball_primary_refire2 0
-set g_balance_fireball_primary_speed 1200
-set g_balance_fireball_primary_spread 0
-set g_balance_fireball_secondary_animtime 0.3
-set g_balance_fireball_secondary_damage 40
-set g_balance_fireball_secondary_damageforcescale 4
-set g_balance_fireball_secondary_damagetime 5
-set g_balance_fireball_secondary_laserburntime 0.5
-set g_balance_fireball_secondary_laserdamage 50
-set g_balance_fireball_secondary_laseredgedamage 20
-set g_balance_fireball_secondary_laserradius 110
-set g_balance_fireball_secondary_lifetime 7
-set g_balance_fireball_secondary_refire 1.5
-set g_balance_fireball_secondary_speed 900
-set g_balance_fireball_secondary_speed_up 100
-set g_balance_fireball_secondary_speed_z 0
-set g_balance_fireball_secondary_spread 0
-set g_balance_fireball_switchdelay_drop 0.2
-set g_balance_fireball_switchdelay_raise 0.2
-set g_balance_fireball_weaponreplace ""
-set g_balance_fireball_weaponstart 0
-set g_balance_fireball_weaponstartoverride -1
-set g_balance_fireball_weaponthrowable 0
-// }}}
-// {{{ #18: T.A.G. Seeker (MUTATOR WEAPON)
-set g_balance_seeker_flac_ammo 1
-set g_balance_seeker_flac_animtime 0.1
-set g_balance_seeker_flac_damage 15
-set g_balance_seeker_flac_edgedamage 10
-set g_balance_seeker_flac_force 50
-set g_balance_seeker_flac_lifetime 0.1
-set g_balance_seeker_flac_lifetime_rand 0.05
-set g_balance_seeker_flac_radius 100
-set g_balance_seeker_flac_refire 0.1
-set g_balance_seeker_flac_speed 3000
-set g_balance_seeker_flac_speed_up 1000
-set g_balance_seeker_flac_speed_z 0
-set g_balance_seeker_flac_spread 0.4
-set g_balance_seeker_missile_accel 1400
-set g_balance_seeker_missile_ammo 2
-set g_balance_seeker_missile_animtime 0.2
-set g_balance_seeker_missile_count 3
-set g_balance_seeker_missile_damage 30
-set g_balance_seeker_missile_damageforcescale 4
-set g_balance_seeker_missile_decel 1400
-set g_balance_seeker_missile_delay 0.25
-set g_balance_seeker_missile_edgedamage 10
-set g_balance_seeker_missile_force 150
-set g_balance_seeker_missile_health 5
-set g_balance_seeker_missile_lifetime 15
-set g_balance_seeker_missile_proxy 0
-set g_balance_seeker_missile_proxy_delay 0.2
-set g_balance_seeker_missile_proxy_maxrange 45
-set g_balance_seeker_missile_radius 80
-set g_balance_seeker_missile_refire 0.5
-set g_balance_seeker_missile_smart 1
-set g_balance_seeker_missile_smart_mindist 800
-set g_balance_seeker_missile_smart_trace_max 2500
-set g_balance_seeker_missile_smart_trace_min 1000
-set g_balance_seeker_missile_speed 700
-set g_balance_seeker_missile_speed_max 1300
-set g_balance_seeker_missile_speed_up 300
-set g_balance_seeker_missile_speed_z 0
-set g_balance_seeker_missile_spread 0
-set g_balance_seeker_missile_turnrate 0.65
-set g_balance_seeker_reload_ammo 0
-set g_balance_seeker_reload_time 2
-set g_balance_seeker_switchdelay_drop 0.2
-set g_balance_seeker_switchdelay_raise 0.2
-set g_balance_seeker_tag_ammo 1
-set g_balance_seeker_tag_animtime 0.2
-set g_balance_seeker_tag_damageforcescale 4
-set g_balance_seeker_tag_health 5
-set g_balance_seeker_tag_lifetime 15
-set g_balance_seeker_tag_refire 0.75
-set g_balance_seeker_tag_speed 5000
-set g_balance_seeker_tag_spread 0
-set g_balance_seeker_tag_tracker_lifetime 10
-set g_balance_seeker_type 0
-set g_balance_seeker_weaponreplace ""
-set g_balance_seeker_weaponstart 0
-set g_balance_seeker_weaponstartoverride -1
-set g_balance_seeker_weaponthrowable 1
-// }}}
-// {{{ #19: Shockwave
-set g_balance_shockwave_blast_animtime 0.3
-set g_balance_shockwave_blast_damage 40
-set g_balance_shockwave_blast_distance 1000
-set g_balance_shockwave_blast_edgedamage 0
-set g_balance_shockwave_blast_force 15
-set g_balance_shockwave_blast_force_forwardbias 50
-set g_balance_shockwave_blast_force_zscale 1
-set g_balance_shockwave_blast_jump_damage 20
-set g_balance_shockwave_blast_jump_edgedamage 0
-set g_balance_shockwave_blast_jump_force 100
-set g_balance_shockwave_blast_jump_force_velocitybias 1
-set g_balance_shockwave_blast_jump_force_zscale 1
-set g_balance_shockwave_blast_jump_multiplier_accuracy 0.5
-set g_balance_shockwave_blast_jump_multiplier_distance 0.5
-set g_balance_shockwave_blast_jump_multiplier_min 0
-set g_balance_shockwave_blast_jump_radius 150
-set g_balance_shockwave_blast_multiplier_accuracy 0.45
-set g_balance_shockwave_blast_multiplier_distance 0.2
-set g_balance_shockwave_blast_multiplier_min 0
-set g_balance_shockwave_blast_refire 0.75
-set g_balance_shockwave_blast_splash_damage 15
-set g_balance_shockwave_blast_splash_edgedamage 0
-set g_balance_shockwave_blast_splash_force 100
-set g_balance_shockwave_blast_splash_force_forwardbias 50
-set g_balance_shockwave_blast_splash_multiplier_accuracy 0.5
-set g_balance_shockwave_blast_splash_multiplier_distance 0.5
-set g_balance_shockwave_blast_splash_multiplier_min 0
-set g_balance_shockwave_blast_splash_radius 70
-set g_balance_shockwave_blast_spread_max 120
-set g_balance_shockwave_blast_spread_min 25
-set g_balance_shockwave_melee_animtime 1.3
-set g_balance_shockwave_melee_damage 80
-set g_balance_shockwave_melee_delay 0.25
-set g_balance_shockwave_melee_force 200
-set g_balance_shockwave_melee_multihit 1
-set g_balance_shockwave_melee_no_doubleslap 1
-set g_balance_shockwave_melee_nonplayerdamage 40
-set g_balance_shockwave_melee_range 120
-set g_balance_shockwave_melee_refire 1.25
-set g_balance_shockwave_melee_swing_side 120
-set g_balance_shockwave_melee_swing_up 30
-set g_balance_shockwave_melee_time 0.15
-set g_balance_shockwave_melee_traces 10
-set g_balance_shockwave_switchdelay_drop 0.2
-set g_balance_shockwave_switchdelay_raise 0.2
-set g_balance_shockwave_weaponreplace ""
-set g_balance_shockwave_weaponstart 0
-set g_balance_shockwave_weaponstartoverride -1
-set g_balance_shockwave_weaponthrowable 0
-// }}}
-// {{{ #20: Arc
-set g_balance_arc_beam_ammo 6
-set g_balance_arc_beam_animtime 0.1
-set g_balance_arc_beam_botaimlifetime 0
-set g_balance_arc_beam_botaimspeed 0
-set g_balance_arc_beam_damage 100
-set g_balance_arc_beam_degreespersegment 1
-set g_balance_arc_beam_distancepersegment 0
-set g_balance_arc_beam_falloff_halflifedist 0
-set g_balance_arc_beam_falloff_maxdist 0
-set g_balance_arc_beam_falloff_mindist 0
-set g_balance_arc_beam_force 600
-set g_balance_arc_beam_healing_amax 0
-set g_balance_arc_beam_healing_aps 50
-set g_balance_arc_beam_healing_hmax 150
-set g_balance_arc_beam_healing_hps 50
-set g_balance_arc_beam_heat 0
-set g_balance_arc_beam_maxangle 10
-set g_balance_arc_beam_nonplayerdamage 80
-set g_balance_arc_beam_range 1000
-set g_balance_arc_beam_refire 0.25
-set g_balance_arc_beam_returnspeed 8
-set g_balance_arc_beam_tightness 0.5
-set g_balance_arc_bolt 0
-set g_balance_arc_bolt_ammo 1
-set g_balance_arc_bolt_damage 25
-set g_balance_arc_bolt_damageforcescale 0
-set g_balance_arc_bolt_edgedamage 12.5
-set g_balance_arc_bolt_force 120
-set g_balance_arc_bolt_health 15
-set g_balance_arc_bolt_lifetime 5
-set g_balance_arc_bolt_radius 65
-set g_balance_arc_bolt_refire 0.16667
-set g_balance_arc_bolt_speed 2300
-set g_balance_arc_bolt_spread 0
-set g_balance_arc_burst_ammo 15
-set g_balance_arc_burst_damage 250
-set g_balance_arc_burst_healing_aps 100
-set g_balance_arc_burst_healing_hps 100
-set g_balance_arc_burst_heat 5
-set g_balance_arc_cooldown 2.5
-set g_balance_arc_cooldown_release 0
-set g_balance_arc_overheat_max 5
-set g_balance_arc_overheat_min 3
-set g_balance_arc_switchdelay_drop 0.2
-set g_balance_arc_switchdelay_raise 0.2
-set g_balance_arc_weaponreplace ""
-set g_balance_arc_weaponstart 0
-set g_balance_arc_weaponstartoverride -1
-set g_balance_arc_weaponthrowable 1
-// }}}
-// {{{ #21: Overkill Heavy Machine Gun (MUTATOR WEAPON)
-set g_balance_okhmg_primary_ammo 1
-set g_balance_okhmg_primary_damage 30
-set g_balance_okhmg_primary_force 10
-set g_balance_okhmg_primary_refire 0.05
-set g_balance_okhmg_primary_solidpenetration 127
-set g_balance_okhmg_primary_spread_add 0.005
-set g_balance_okhmg_primary_spread_max 0.06
-set g_balance_okhmg_primary_spread_min 0.01
-set g_balance_okhmg_reload_ammo 120
-set g_balance_okhmg_reload_time 1
-set g_balance_okhmg_secondary_ammo 0
-set g_balance_okhmg_secondary_animtime 0.2
-set g_balance_okhmg_secondary_damage 25
-set g_balance_okhmg_secondary_delay 0
-set g_balance_okhmg_secondary_edgedamage 12.5
-set g_balance_okhmg_secondary_force 360
-set g_balance_okhmg_secondary_force_zscale 1
-set g_balance_okhmg_secondary_lifetime 5
-set g_balance_okhmg_secondary_radius 70
-set g_balance_okhmg_secondary_refire 0.7
-set g_balance_okhmg_secondary_refire_type 1
-set g_balance_okhmg_secondary_shotangle 0
-set g_balance_okhmg_secondary_speed 6000
-set g_balance_okhmg_secondary_spread 0
-set g_balance_okhmg_switchdelay_drop 0.2
-set g_balance_okhmg_switchdelay_raise 0.2
-set g_balance_okhmg_weaponreplace ""
-set g_balance_okhmg_weaponstart 0
-set g_balance_okhmg_weaponstartoverride 0
-set g_balance_okhmg_weaponthrowable 0
-// }}}
-// {{{ #22: Overkill MachineGun (MUTATOR WEAPON)
-set g_balance_okmachinegun_primary_ammo 1
-set g_balance_okmachinegun_primary_damage 25
-set g_balance_okmachinegun_primary_force 5
-set g_balance_okmachinegun_primary_refire 0.1
-set g_balance_okmachinegun_primary_solidpenetration 100
-set g_balance_okmachinegun_primary_spread_add 0.012
-set g_balance_okmachinegun_primary_spread_max 0.05
-set g_balance_okmachinegun_primary_spread_min 0
-set g_balance_okmachinegun_reload_ammo 30
-set g_balance_okmachinegun_reload_time 1.5
-set g_balance_okmachinegun_secondary_animtime 0.2
-set g_balance_okmachinegun_secondary_damage 25
-set g_balance_okmachinegun_secondary_delay 0
-set g_balance_okmachinegun_secondary_edgedamage 12.5
-set g_balance_okmachinegun_secondary_force 360
-set g_balance_okmachinegun_secondary_force_zscale 1
-set g_balance_okmachinegun_secondary_lifetime 5
-set g_balance_okmachinegun_secondary_radius 70
-set g_balance_okmachinegun_secondary_refire 0.7
-set g_balance_okmachinegun_secondary_refire_type 1
-set g_balance_okmachinegun_secondary_shotangle 0
-set g_balance_okmachinegun_secondary_speed 6000
-set g_balance_okmachinegun_secondary_spread 0
-set g_balance_okmachinegun_switchdelay_drop 0.2
-set g_balance_okmachinegun_switchdelay_raise 0.2
-set g_balance_okmachinegun_weaponreplace ""
-set g_balance_okmachinegun_weaponstart 0
-set g_balance_okmachinegun_weaponstartoverride -1
-set g_balance_okmachinegun_weaponthrowable 1
-// }}}
-// {{{ #23: Overkill Nex (MUTATOR WEAPON)
-set g_balance_oknex_charge 0
-set g_balance_oknex_charge_animlimit 0.5
-set g_balance_oknex_charge_limit 1
-set g_balance_oknex_charge_maxspeed 800
-set g_balance_oknex_charge_mindmg 40
-set g_balance_oknex_charge_minspeed 400
-set g_balance_oknex_charge_rate 0.6
-set g_balance_oknex_charge_rot_pause 0
-set g_balance_oknex_charge_rot_rate 0
-set g_balance_oknex_charge_shot_multiplier 0
-set g_balance_oknex_charge_start 0.5
-set g_balance_oknex_charge_velocity_rate 0
-set g_balance_oknex_primary_ammo 10
-set g_balance_oknex_primary_animtime 0.65
-set g_balance_oknex_primary_damage 100
-set g_balance_oknex_primary_damagefalloff_forcehalflife 0
-set g_balance_oknex_primary_damagefalloff_halflife 0
-set g_balance_oknex_primary_damagefalloff_maxdist 0
-set g_balance_oknex_primary_damagefalloff_mindist 0
-set g_balance_oknex_primary_force 500
-set g_balance_oknex_primary_refire 1
-set g_balance_oknex_reload_ammo 50
-set g_balance_oknex_reload_time 2
-set g_balance_oknex_secondary 2
-set g_balance_oknex_secondary_ammo 0
-set g_balance_oknex_secondary_animtime 0.2
-set g_balance_oknex_secondary_chargepool 0
-set g_balance_oknex_secondary_chargepool_pause_regen 1
-set g_balance_oknex_secondary_chargepool_regen 0.15
-set g_balance_oknex_secondary_damage 25
-set g_balance_oknex_secondary_damagefalloff_forcehalflife 0
-set g_balance_oknex_secondary_damagefalloff_halflife 0
-set g_balance_oknex_secondary_damagefalloff_maxdist 0
-set g_balance_oknex_secondary_damagefalloff_mindist 0
-set g_balance_oknex_secondary_delay 0
-set g_balance_oknex_secondary_edgedamage 12.5
-set g_balance_oknex_secondary_force 360
-set g_balance_oknex_secondary_force_zscale 1
-set g_balance_oknex_secondary_lifetime 5
-set g_balance_oknex_secondary_radius 70
-set g_balance_oknex_secondary_refire 0.7
-set g_balance_oknex_secondary_refire_type 1
-set g_balance_oknex_secondary_shotangle 0
-set g_balance_oknex_secondary_speed 6000
-set g_balance_oknex_secondary_spread 0
-set g_balance_oknex_switchdelay_drop 0.2
-set g_balance_oknex_switchdelay_raise 0.2
-set g_balance_oknex_weaponreplace ""
-set g_balance_oknex_weaponstart 0
-set g_balance_oknex_weaponstartoverride -1
-set g_balance_oknex_weaponthrowable 1
-// }}}
-// {{{ #24: Overkill Rocket Propelled Chainsaw (MUTATOR WEAPON)
-set g_balance_okrpc_primary_ammo 10
-set g_balance_okrpc_primary_animtime 1
-set g_balance_okrpc_primary_damage 150
-set g_balance_okrpc_primary_damage2 500
-set g_balance_okrpc_primary_damageforcescale 2
-set g_balance_okrpc_primary_edgedamage 50
-set g_balance_okrpc_primary_force 400
-set g_balance_okrpc_primary_health 25
-set g_balance_okrpc_primary_lifetime 30
-set g_balance_okrpc_primary_radius 300
-set g_balance_okrpc_primary_refire 1
-set g_balance_okrpc_primary_speed 2500
-set g_balance_okrpc_primary_speedaccel 5000
-set g_balance_okrpc_reload_ammo 10
-set g_balance_okrpc_reload_time 1
-set g_balance_okrpc_secondary_ammo 0
-set g_balance_okrpc_secondary_animtime 0.2
-set g_balance_okrpc_secondary_damage 25
-set g_balance_okrpc_secondary_delay 0
-set g_balance_okrpc_secondary_edgedamage 12.5
-set g_balance_okrpc_secondary_force 360
-set g_balance_okrpc_secondary_force_zscale 1
-set g_balance_okrpc_secondary_lifetime 5
-set g_balance_okrpc_secondary_radius 70
-set g_balance_okrpc_secondary_refire 0.7
-set g_balance_okrpc_secondary_refire_type 1
-set g_balance_okrpc_secondary_shotangle 0
-set g_balance_okrpc_secondary_speed 6000
-set g_balance_okrpc_secondary_spread 0
-set g_balance_okrpc_switchdelay_drop 0.2
-set g_balance_okrpc_switchdelay_raise 0.2
-set g_balance_okrpc_weaponreplace ""
-set g_balance_okrpc_weaponstart 0
-set g_balance_okrpc_weaponstartoverride 0
-set g_balance_okrpc_weaponthrowable 0
-// }}}
-// {{{ #25: Overkill Shotgun (MUTATOR WEAPON)
-set g_balance_okshotgun_primary_ammo 3
-set g_balance_okshotgun_primary_animtime 0.65
-set g_balance_okshotgun_primary_bot_range 512
-set g_balance_okshotgun_primary_bullets 10
-set g_balance_okshotgun_primary_damage 17
-set g_balance_okshotgun_primary_force 80
-set g_balance_okshotgun_primary_refire 0.75
-set g_balance_okshotgun_primary_solidpenetration 3.8
-set g_balance_okshotgun_primary_spread 0.07
-set g_balance_okshotgun_reload_ammo 24
-set g_balance_okshotgun_reload_time 2
-set g_balance_okshotgun_secondary_animtime 0.2
-set g_balance_okshotgun_secondary_damage 25
-set g_balance_okshotgun_secondary_delay 0
-set g_balance_okshotgun_secondary_edgedamage 12.5
-set g_balance_okshotgun_secondary_force 360
-set g_balance_okshotgun_secondary_force_zscale 1
-set g_balance_okshotgun_secondary_lifetime 5
-set g_balance_okshotgun_secondary_radius 70
-set g_balance_okshotgun_secondary_refire 0.7
-set g_balance_okshotgun_secondary_refire_type 1
-set g_balance_okshotgun_secondary_shotangle 0
-set g_balance_okshotgun_secondary_speed 6000
-set g_balance_okshotgun_secondary_spread 0
-set g_balance_okshotgun_switchdelay_drop 0.2
-set g_balance_okshotgun_switchdelay_raise 0.2
-set g_balance_okshotgun_weaponreplace ""
-set g_balance_okshotgun_weaponstart 0
-set g_balance_okshotgun_weaponstartoverride -1
-set g_balance_okshotgun_weaponthrowable 1
-// }}}
+++ /dev/null
-// {{{ #1: Blaster
-set g_balance_blaster_primary_animtime 0.2
-set g_balance_blaster_primary_damage 20
-set g_balance_blaster_primary_delay 0
-set g_balance_blaster_primary_edgedamage 10
-set g_balance_blaster_primary_force 375
-set g_balance_blaster_primary_force_zscale 1
-set g_balance_blaster_primary_lifetime 5
-set g_balance_blaster_primary_radius 60
-set g_balance_blaster_primary_refire 0.7
-set g_balance_blaster_primary_shotangle 0
-set g_balance_blaster_primary_speed 6000
-set g_balance_blaster_primary_spread 0
-set g_balance_blaster_secondary 0
-set g_balance_blaster_secondary_animtime 0.2
-set g_balance_blaster_secondary_damage 25
-set g_balance_blaster_secondary_delay 0
-set g_balance_blaster_secondary_edgedamage 12.5
-set g_balance_blaster_secondary_force 360
-set g_balance_blaster_secondary_force_zscale 1
-set g_balance_blaster_secondary_lifetime 5
-set g_balance_blaster_secondary_radius 70
-set g_balance_blaster_secondary_refire 0.7
-set g_balance_blaster_secondary_shotangle 0
-set g_balance_blaster_secondary_speed 6000
-set g_balance_blaster_secondary_spread 0
-set g_balance_blaster_switchdelay_drop 0.2
-set g_balance_blaster_switchdelay_raise 0.2
-set g_balance_blaster_weaponreplace ""
-set g_balance_blaster_weaponstart 1
-set g_balance_blaster_weaponstartoverride -1
-set g_balance_blaster_weaponthrowable 0
-// }}}
-// {{{ #2: Shotgun
-set g_balance_shotgun_primary_ammo 1
-set g_balance_shotgun_primary_animtime 0.2
-set g_balance_shotgun_primary_bullets 12
-set g_balance_shotgun_primary_damage 4
-set g_balance_shotgun_primary_force 15
-set g_balance_shotgun_primary_refire 0.75
-set g_balance_shotgun_primary_solidpenetration 3.8
-set g_balance_shotgun_primary_spread 0.12
-set g_balance_shotgun_reload_ammo 0
-set g_balance_shotgun_reload_time 2
-set g_balance_shotgun_secondary 1
-set g_balance_shotgun_secondary_alt_animtime 0.2
-set g_balance_shotgun_secondary_alt_refire 1.2
-set g_balance_shotgun_secondary_animtime 1.15
-set g_balance_shotgun_secondary_damage 70
-set g_balance_shotgun_secondary_force 200
-set g_balance_shotgun_secondary_melee_delay 0.25
-set g_balance_shotgun_secondary_melee_multihit 1
-set g_balance_shotgun_secondary_melee_no_doubleslap 1
-set g_balance_shotgun_secondary_melee_nonplayerdamage 40
-set g_balance_shotgun_secondary_melee_range 120
-set g_balance_shotgun_secondary_melee_swing_side 120
-set g_balance_shotgun_secondary_melee_swing_up 30
-set g_balance_shotgun_secondary_melee_time 0.15
-set g_balance_shotgun_secondary_melee_traces 10
-set g_balance_shotgun_secondary_refire 1.25
-set g_balance_shotgun_switchdelay_drop 0.2
-set g_balance_shotgun_switchdelay_raise 0.2
-set g_balance_shotgun_weaponreplace ""
-set g_balance_shotgun_weaponstart 1
-set g_balance_shotgun_weaponstartoverride -1
-set g_balance_shotgun_weaponthrowable 1
-// }}}
-// {{{ #3: MachineGun
-set g_balance_machinegun_burst 3
-set g_balance_machinegun_burst_ammo 3
-set g_balance_machinegun_burst_animtime 0.3
-set g_balance_machinegun_burst_refire 0.06
-set g_balance_machinegun_burst_refire2 0.45
-set g_balance_machinegun_burst_spread 0
-set g_balance_machinegun_first 1
-set g_balance_machinegun_first_ammo 1
-set g_balance_machinegun_first_damage 14
-set g_balance_machinegun_first_force 3
-set g_balance_machinegun_first_refire 0.125
-set g_balance_machinegun_first_spread 0.03
-set g_balance_machinegun_mode 1
-set g_balance_machinegun_reload_ammo 60
-set g_balance_machinegun_reload_time 2
-set g_balance_machinegun_solidpenetration 13.1
-set g_balance_machinegun_spread_add 0.012
-set g_balance_machinegun_spread_max 0.05
-set g_balance_machinegun_spread_min 0.02
-set g_balance_machinegun_sustained_ammo 1
-set g_balance_machinegun_sustained_damage 10
-set g_balance_machinegun_sustained_force 3
-set g_balance_machinegun_sustained_refire 0.1
-set g_balance_machinegun_sustained_spread 0.03
-set g_balance_machinegun_switchdelay_drop 0.2
-set g_balance_machinegun_switchdelay_raise 0.2
-set g_balance_machinegun_weaponreplace ""
-set g_balance_machinegun_weaponstart 0
-set g_balance_machinegun_weaponstartoverride -1
-set g_balance_machinegun_weaponthrowable 1
-// }}}
-// {{{ #4: Mortar
-set g_balance_mortar_bouncefactor 0.5
-set g_balance_mortar_bouncestop 0.075
-set g_balance_mortar_primary_ammo 2
-set g_balance_mortar_primary_animtime 0.3
-set g_balance_mortar_primary_damage 55
-set g_balance_mortar_primary_damageforcescale 0
-set g_balance_mortar_primary_edgedamage 25
-set g_balance_mortar_primary_force 250
-set g_balance_mortar_primary_health 15
-set g_balance_mortar_primary_lifetime 5
-set g_balance_mortar_primary_lifetime_stick 0
-set g_balance_mortar_primary_radius 120
-set g_balance_mortar_primary_refire 0.8
-set g_balance_mortar_primary_remote_minbouncecnt 0
-set g_balance_mortar_primary_speed 1900
-set g_balance_mortar_primary_speed_up 225
-set g_balance_mortar_primary_speed_z 0
-set g_balance_mortar_primary_spread 0
-set g_balance_mortar_primary_type 0
-set g_balance_mortar_reload_ammo 0
-set g_balance_mortar_reload_time 2
-set g_balance_mortar_secondary_ammo 2
-set g_balance_mortar_secondary_animtime 0.3
-set g_balance_mortar_secondary_damage 55
-set g_balance_mortar_secondary_damageforcescale 4
-set g_balance_mortar_secondary_edgedamage 30
-set g_balance_mortar_secondary_force 250
-set g_balance_mortar_secondary_health 30
-set g_balance_mortar_secondary_lifetime 5
-set g_balance_mortar_secondary_lifetime_bounce 0.5
-set g_balance_mortar_secondary_lifetime_stick 0
-set g_balance_mortar_secondary_radius 120
-set g_balance_mortar_secondary_refire 0.7
-set g_balance_mortar_secondary_remote_detonateprimary 0
-set g_balance_mortar_secondary_speed 1400
-set g_balance_mortar_secondary_speed_up 150
-set g_balance_mortar_secondary_speed_z 0
-set g_balance_mortar_secondary_spread 0
-set g_balance_mortar_secondary_type 1
-set g_balance_mortar_switchdelay_drop 0.2
-set g_balance_mortar_switchdelay_raise 0.2
-set g_balance_mortar_weaponreplace ""
-set g_balance_mortar_weaponstart 0
-set g_balance_mortar_weaponstartoverride -1
-set g_balance_mortar_weaponthrowable 1
-// }}}
-// {{{ #5: Mine Layer (MUTATOR WEAPON)
-set g_balance_minelayer_ammo 4
-set g_balance_minelayer_animtime 0.4
-set g_balance_minelayer_damage 40
-set g_balance_minelayer_damageforcescale 0
-set g_balance_minelayer_detonatedelay -1
-set g_balance_minelayer_edgedamage 20
-set g_balance_minelayer_force 250
-set g_balance_minelayer_health 15
-set g_balance_minelayer_lifetime 10
-set g_balance_minelayer_lifetime_countdown 0.5
-set g_balance_minelayer_limit 3
-set g_balance_minelayer_protection 0
-set g_balance_minelayer_proximityradius 150
-set g_balance_minelayer_radius 175
-set g_balance_minelayer_refire 1.5
-set g_balance_minelayer_reload_ammo 0
-set g_balance_minelayer_reload_time 2
-set g_balance_minelayer_remote_damage 45
-set g_balance_minelayer_remote_edgedamage 40
-set g_balance_minelayer_remote_force 300
-set g_balance_minelayer_remote_radius 200
-set g_balance_minelayer_speed 1000
-set g_balance_minelayer_switchdelay_drop 0.2
-set g_balance_minelayer_switchdelay_raise 0.2
-set g_balance_minelayer_time 0.5
-set g_balance_minelayer_weaponreplace ""
-set g_balance_minelayer_weaponstart 0
-set g_balance_minelayer_weaponstartoverride -1
-set g_balance_minelayer_weaponthrowable 1
-// }}}
-// {{{ #6: Electro
-set g_balance_electro_combo_comboradius 300
-set g_balance_electro_combo_comboradius_thruwall 200
-set g_balance_electro_combo_damage 50
-set g_balance_electro_combo_edgedamage 25
-set g_balance_electro_combo_force 120
-set g_balance_electro_combo_radius 150
-set g_balance_electro_combo_safeammocheck 1
-set g_balance_electro_combo_speed 2000
-set g_balance_electro_primary_ammo 4
-set g_balance_electro_primary_animtime 0.3
-set g_balance_electro_primary_comboradius 300
-set g_balance_electro_primary_damage 40
-set g_balance_electro_primary_edgedamage 20
-set g_balance_electro_primary_force 200
-set g_balance_electro_primary_lifetime 5
-set g_balance_electro_primary_midaircombo_explode 1
-set g_balance_electro_primary_midaircombo_interval 0.1
-set g_balance_electro_primary_midaircombo_radius 0
-set g_balance_electro_primary_radius 100
-set g_balance_electro_primary_refire 0.6
-set g_balance_electro_primary_speed 2500
-set g_balance_electro_primary_spread 0
-set g_balance_electro_reload_ammo 0
-set g_balance_electro_reload_time 2
-set g_balance_electro_secondary_ammo 2
-set g_balance_electro_secondary_animtime 0.2
-set g_balance_electro_secondary_bouncefactor 0.3
-set g_balance_electro_secondary_bouncestop 0.05
-set g_balance_electro_secondary_count 3
-set g_balance_electro_secondary_damage 30
-set g_balance_electro_secondary_damagedbycontents 1
-set g_balance_electro_secondary_damageforcescale 4
-set g_balance_electro_secondary_edgedamage 15
-set g_balance_electro_secondary_force 50
-set g_balance_electro_secondary_health 5
-set g_balance_electro_secondary_lifetime 4
-set g_balance_electro_secondary_radius 150
-set g_balance_electro_secondary_refire 0.2
-set g_balance_electro_secondary_refire2 1.6
-set g_balance_electro_secondary_speed 1000
-set g_balance_electro_secondary_speed_up 200
-set g_balance_electro_secondary_speed_z 0
-set g_balance_electro_secondary_spread 0
-set g_balance_electro_secondary_stick 0
-set g_balance_electro_secondary_touchexplode 1
-set g_balance_electro_switchdelay_drop 0.2
-set g_balance_electro_switchdelay_raise 0.2
-set g_balance_electro_weaponreplace ""
-set g_balance_electro_weaponstart 0
-set g_balance_electro_weaponstartoverride -1
-set g_balance_electro_weaponthrowable 1
-// }}}
-// {{{ #7: Crylink
-set g_balance_crylink_primary_ammo 3
-set g_balance_crylink_primary_animtime 0.3
-set g_balance_crylink_primary_bouncedamagefactor 0.5
-set g_balance_crylink_primary_bounces 1
-set g_balance_crylink_primary_damage 10
-set g_balance_crylink_primary_edgedamage 5
-set g_balance_crylink_primary_force -50
-set g_balance_crylink_primary_joindelay 0.1
-set g_balance_crylink_primary_joinexplode 1
-set g_balance_crylink_primary_joinexplode_damage 0
-set g_balance_crylink_primary_joinexplode_edgedamage 0
-set g_balance_crylink_primary_joinexplode_force 0
-set g_balance_crylink_primary_joinexplode_radius 0
-set g_balance_crylink_primary_joinspread 0.2
-set g_balance_crylink_primary_linkexplode 0
-set g_balance_crylink_primary_middle_fadetime 5
-set g_balance_crylink_primary_middle_lifetime 5
-set g_balance_crylink_primary_other_fadetime 5
-set g_balance_crylink_primary_other_lifetime 5
-set g_balance_crylink_primary_radius 80
-set g_balance_crylink_primary_refire 0.7
-set g_balance_crylink_primary_shots 6
-set g_balance_crylink_primary_speed 2000
-set g_balance_crylink_primary_spread 0.08
-set g_balance_crylink_reload_ammo 0
-set g_balance_crylink_reload_time 2
-set g_balance_crylink_secondary 1
-set g_balance_crylink_secondary_ammo 3
-set g_balance_crylink_secondary_animtime 0.2
-set g_balance_crylink_secondary_bouncedamagefactor 0.5
-set g_balance_crylink_secondary_bounces 0
-set g_balance_crylink_secondary_damage 8
-set g_balance_crylink_secondary_edgedamage 4
-set g_balance_crylink_secondary_force -200
-set g_balance_crylink_secondary_joindelay 0
-set g_balance_crylink_secondary_joinexplode 0
-set g_balance_crylink_secondary_joinexplode_damage 0
-set g_balance_crylink_secondary_joinexplode_edgedamage 0
-set g_balance_crylink_secondary_joinexplode_force 0
-set g_balance_crylink_secondary_joinexplode_radius 0
-set g_balance_crylink_secondary_joinspread 0
-set g_balance_crylink_secondary_linkexplode 1
-set g_balance_crylink_secondary_middle_fadetime 5
-set g_balance_crylink_secondary_middle_lifetime 5
-set g_balance_crylink_secondary_other_fadetime 5
-set g_balance_crylink_secondary_other_lifetime 5
-set g_balance_crylink_secondary_radius 100
-set g_balance_crylink_secondary_refire 0.7
-set g_balance_crylink_secondary_shots 5
-set g_balance_crylink_secondary_speed 3000
-set g_balance_crylink_secondary_spread 0.01
-set g_balance_crylink_secondary_spreadtype 1
-set g_balance_crylink_switchdelay_drop 0.2
-set g_balance_crylink_switchdelay_raise 0.2
-set g_balance_crylink_weaponreplace ""
-set g_balance_crylink_weaponstart 0
-set g_balance_crylink_weaponstartoverride -1
-set g_balance_crylink_weaponthrowable 1
-// }}}
-// {{{ #8: Vortex
-set g_balance_vortex_charge 1
-set g_balance_vortex_charge_always 0
-set g_balance_vortex_charge_animlimit 0.5
-set g_balance_vortex_charge_limit 1
-set g_balance_vortex_charge_maxspeed 800
-set g_balance_vortex_charge_mindmg 40
-set g_balance_vortex_charge_minspeed 400
-set g_balance_vortex_charge_rate 0.6
-set g_balance_vortex_charge_rot_pause 0
-set g_balance_vortex_charge_rot_rate 0
-set g_balance_vortex_charge_shot_multiplier 0
-set g_balance_vortex_charge_start 0.5
-set g_balance_vortex_charge_velocity_rate 0
-set g_balance_vortex_primary_ammo 6
-set g_balance_vortex_primary_animtime 0.4
-set g_balance_vortex_primary_armorpierce 0
-set g_balance_vortex_primary_damage 80
-set g_balance_vortex_primary_damagefalloff_forcehalflife 0
-set g_balance_vortex_primary_damagefalloff_halflife 0
-set g_balance_vortex_primary_damagefalloff_maxdist 0
-set g_balance_vortex_primary_damagefalloff_mindist 0
-set g_balance_vortex_primary_force 400
-set g_balance_vortex_primary_refire 1.5
-set g_balance_vortex_reload_ammo 0
-set g_balance_vortex_reload_time 2
-set g_balance_vortex_secondary 0
-set g_balance_vortex_secondary_ammo 2
-set g_balance_vortex_secondary_animtime 0
-set g_balance_vortex_secondary_armorpierce 0
-set g_balance_vortex_secondary_chargepool 0
-set g_balance_vortex_secondary_chargepool_pause_regen 1
-set g_balance_vortex_secondary_chargepool_regen 0.15
-set g_balance_vortex_secondary_damage 0
-set g_balance_vortex_secondary_damagefalloff_forcehalflife 0
-set g_balance_vortex_secondary_damagefalloff_halflife 0
-set g_balance_vortex_secondary_damagefalloff_maxdist 0
-set g_balance_vortex_secondary_damagefalloff_mindist 0
-set g_balance_vortex_secondary_force 0
-set g_balance_vortex_secondary_refire 0
-set g_balance_vortex_switchdelay_drop 0.2
-set g_balance_vortex_switchdelay_raise 0.2
-set g_balance_vortex_weaponreplace ""
-set g_balance_vortex_weaponstart 0
-set g_balance_vortex_weaponstartoverride -1
-set g_balance_vortex_weaponthrowable 1
-// }}}
-// {{{ #9: Hagar
-set g_balance_hagar_primary_ammo 1
-set g_balance_hagar_primary_damage 25
-set g_balance_hagar_primary_damageforcescale 0
-set g_balance_hagar_primary_edgedamage 12.5
-set g_balance_hagar_primary_force 100
-set g_balance_hagar_primary_health 15
-set g_balance_hagar_primary_lifetime 5
-set g_balance_hagar_primary_radius 65
-set g_balance_hagar_primary_refire 0.16667
-set g_balance_hagar_primary_speed 2200
-set g_balance_hagar_primary_spread 0
-set g_balance_hagar_reload_ammo 0
-set g_balance_hagar_reload_time 2
-set g_balance_hagar_secondary 1
-set g_balance_hagar_secondary_ammo 1
-set g_balance_hagar_secondary_damage 35
-set g_balance_hagar_secondary_damageforcescale 0
-set g_balance_hagar_secondary_edgedamage 17.5
-set g_balance_hagar_secondary_force 75
-set g_balance_hagar_secondary_health 15
-set g_balance_hagar_secondary_lifetime_min 10
-set g_balance_hagar_secondary_lifetime_rand 0
-set g_balance_hagar_secondary_load 1
-set g_balance_hagar_secondary_load_abort 1
-set g_balance_hagar_secondary_load_animtime 0.2
-set g_balance_hagar_secondary_load_hold 4
-set g_balance_hagar_secondary_load_linkexplode 0
-set g_balance_hagar_secondary_load_max 4
-set g_balance_hagar_secondary_load_releasedeath 0
-set g_balance_hagar_secondary_load_speed 0.5
-set g_balance_hagar_secondary_load_spread 0.075
-set g_balance_hagar_secondary_load_spread_bias 0.5
-set g_balance_hagar_secondary_radius 80
-set g_balance_hagar_secondary_refire 0.5
-set g_balance_hagar_secondary_speed 2000
-set g_balance_hagar_secondary_spread 0
-set g_balance_hagar_switchdelay_drop 0.2
-set g_balance_hagar_switchdelay_raise 0.2
-set g_balance_hagar_weaponreplace ""
-set g_balance_hagar_weaponstart 0
-set g_balance_hagar_weaponstartoverride -1
-set g_balance_hagar_weaponthrowable 1
-// }}}
-// {{{ #10: Devastator
-set g_balance_devastator_ammo 4
-set g_balance_devastator_animtime 0.4
-set g_balance_devastator_damage 80
-set g_balance_devastator_damageforcescale 1
-set g_balance_devastator_detonatedelay 0.02
-set g_balance_devastator_edgedamage 40
-set g_balance_devastator_force 400
-set g_balance_devastator_guidedelay 0.2
-set g_balance_devastator_guidegoal 512
-set g_balance_devastator_guiderate 90
-set g_balance_devastator_guideratedelay 0.01
-set g_balance_devastator_guidestop 0
-set g_balance_devastator_health 30
-set g_balance_devastator_lifetime 10
-set g_balance_devastator_radius 110
-set g_balance_devastator_refire 1.1
-set g_balance_devastator_reload_ammo 0
-set g_balance_devastator_reload_time 2
-set g_balance_devastator_remote_damage 70
-set g_balance_devastator_remote_edgedamage 35
-set g_balance_devastator_remote_force 300
-set g_balance_devastator_remote_jump 0
-set g_balance_devastator_remote_jump_damage 70
-set g_balance_devastator_remote_jump_force 450
-set g_balance_devastator_remote_jump_radius 100
-set g_balance_devastator_remote_jump_velocity_z_add 0
-set g_balance_devastator_remote_jump_velocity_z_max 1500
-set g_balance_devastator_remote_jump_velocity_z_min 400
-set g_balance_devastator_remote_radius 110
-set g_balance_devastator_speed 1300
-set g_balance_devastator_speedaccel 1300
-set g_balance_devastator_speedstart 1000
-set g_balance_devastator_switchdelay_drop 0.2
-set g_balance_devastator_switchdelay_raise 0.2
-set g_balance_devastator_weaponreplace ""
-set g_balance_devastator_weaponstart 0
-set g_balance_devastator_weaponstartoverride -1
-set g_balance_devastator_weaponthrowable 1
-// }}}
-// {{{ #11: Port-O-Launch
-set g_balance_porto_primary_animtime 0.3
-set g_balance_porto_primary_lifetime 5
-set g_balance_porto_primary_refire 1.5
-set g_balance_porto_primary_speed 1000
-set g_balance_porto_secondary 1
-set g_balance_porto_secondary_animtime 0.3
-set g_balance_porto_secondary_lifetime 5
-set g_balance_porto_secondary_refire 1.5
-set g_balance_porto_secondary_speed 1000
-set g_balance_porto_switchdelay_drop 0.2
-set g_balance_porto_switchdelay_raise 0.2
-set g_balance_porto_weaponreplace ""
-set g_balance_porto_weaponstart 0
-set g_balance_porto_weaponstartoverride -1
-set g_balance_porto_weaponthrowable 1
-// }}}
-// {{{ #12: Vaporizer
-set g_balance_vaporizer_primary_ammo 10
-set g_balance_vaporizer_primary_animtime 0.3
-set g_balance_vaporizer_primary_damage 150
-set g_balance_vaporizer_primary_force 800
-set g_balance_vaporizer_primary_refire 1
-set g_balance_vaporizer_reload_ammo 0
-set g_balance_vaporizer_reload_time 0
-set g_balance_vaporizer_secondary_ammo 0
-set g_balance_vaporizer_secondary_animtime 0.2
-set g_balance_vaporizer_secondary_damage 25
-set g_balance_vaporizer_secondary_delay 0
-set g_balance_vaporizer_secondary_edgedamage 12.5
-set g_balance_vaporizer_secondary_force 480
-set g_balance_vaporizer_secondary_force_zscale 1
-set g_balance_vaporizer_secondary_lifetime 5
-set g_balance_vaporizer_secondary_radius 70
-set g_balance_vaporizer_secondary_refire 0.7
-set g_balance_vaporizer_secondary_shotangle 0
-set g_balance_vaporizer_secondary_speed 6000
-set g_balance_vaporizer_secondary_spread 0
-set g_balance_vaporizer_switchdelay_drop 0.2
-set g_balance_vaporizer_switchdelay_raise 0.2
-set g_balance_vaporizer_weaponreplace ""
-set g_balance_vaporizer_weaponstart 0
-set g_balance_vaporizer_weaponstartoverride -1
-set g_balance_vaporizer_weaponthrowable 1
-// }}}
-// {{{ #13: Grappling Hook
-set g_balance_hook_primary_ammo 5
-set g_balance_hook_primary_animtime 0.3
-set g_balance_hook_primary_hooked_ammo 5
-set g_balance_hook_primary_hooked_time_free 2
-set g_balance_hook_primary_hooked_time_max 0
-set g_balance_hook_primary_refire 0.2
-set g_balance_hook_secondary_animtime 0.3
-set g_balance_hook_secondary_damage 25
-set g_balance_hook_secondary_damageforcescale 0
-set g_balance_hook_secondary_duration 1.5
-set g_balance_hook_secondary_edgedamage 5
-set g_balance_hook_secondary_force -2000
-set g_balance_hook_secondary_gravity 5
-set g_balance_hook_secondary_health 15
-set g_balance_hook_secondary_lifetime 5
-set g_balance_hook_secondary_power 3
-set g_balance_hook_secondary_radius 500
-set g_balance_hook_secondary_refire 3
-set g_balance_hook_secondary_speed 0
-set g_balance_hook_switchdelay_drop 0.2
-set g_balance_hook_switchdelay_raise 0.2
-set g_balance_hook_weaponreplace ""
-set g_balance_hook_weaponstart 0
-set g_balance_hook_weaponstartoverride -1
-set g_balance_hook_weaponthrowable 1
-// }}}
-// {{{ #14: Heavy Laser Assault Cannon (MUTATOR WEAPON)
-set g_balance_hlac_primary_ammo 1
-set g_balance_hlac_primary_animtime 0.4
-set g_balance_hlac_primary_damage 18
-set g_balance_hlac_primary_edgedamage 9
-set g_balance_hlac_primary_force 90
-set g_balance_hlac_primary_lifetime 5
-set g_balance_hlac_primary_radius 70
-set g_balance_hlac_primary_refire 0.15
-set g_balance_hlac_primary_speed 9000
-set g_balance_hlac_primary_spread_add 0.0045
-set g_balance_hlac_primary_spread_crouchmod 0.25
-set g_balance_hlac_primary_spread_max 0.25
-set g_balance_hlac_primary_spread_min 0.01
-set g_balance_hlac_reload_ammo 0
-set g_balance_hlac_reload_time 2
-set g_balance_hlac_secondary 1
-set g_balance_hlac_secondary_ammo 10
-set g_balance_hlac_secondary_animtime 0.3
-set g_balance_hlac_secondary_damage 15
-set g_balance_hlac_secondary_edgedamage 7.5
-set g_balance_hlac_secondary_force 90
-set g_balance_hlac_secondary_lifetime 5
-set g_balance_hlac_secondary_radius 70
-set g_balance_hlac_secondary_refire 1
-set g_balance_hlac_secondary_shots 6
-set g_balance_hlac_secondary_speed 9000
-set g_balance_hlac_secondary_spread 0.15
-set g_balance_hlac_secondary_spread_crouchmod 0.5
-set g_balance_hlac_switchdelay_drop 0.2
-set g_balance_hlac_switchdelay_raise 0.2
-set g_balance_hlac_weaponreplace ""
-set g_balance_hlac_weaponstart 0
-set g_balance_hlac_weaponstartoverride -1
-set g_balance_hlac_weaponthrowable 1
-// }}}
-// {{{ #15: @!#%'n Tuba
-set g_balance_tuba_animtime 0.05
-set g_balance_tuba_attenuation 0.5
-set g_balance_tuba_damage 5
-set g_balance_tuba_edgedamage 0
-set g_balance_tuba_fadetime 0.25
-set g_balance_tuba_force 40
-set g_balance_tuba_pitchstep 6
-set g_balance_tuba_radius 200
-set g_balance_tuba_refire 0.05
-set g_balance_tuba_switchdelay_drop 0.2
-set g_balance_tuba_switchdelay_raise 0.2
-set g_balance_tuba_volume 1
-set g_balance_tuba_weaponreplace ""
-set g_balance_tuba_weaponstart 0
-set g_balance_tuba_weaponstartoverride -1
-set g_balance_tuba_weaponthrowable 1
-// }}}
-// {{{ #16: Rifle (MUTATOR WEAPON)
-set g_balance_rifle_bursttime 0
-set g_balance_rifle_primary_ammo 10
-set g_balance_rifle_primary_animtime 0.4
-set g_balance_rifle_primary_bullethail 0
-set g_balance_rifle_primary_burstcost 0
-set g_balance_rifle_primary_damage 80
-set g_balance_rifle_primary_force 100
-set g_balance_rifle_primary_refire 1.2
-set g_balance_rifle_primary_shots 1
-set g_balance_rifle_primary_solidpenetration 62.2
-set g_balance_rifle_primary_spread 0
-set g_balance_rifle_primary_tracer 1
-set g_balance_rifle_reload_ammo 80
-set g_balance_rifle_reload_time 2
-set g_balance_rifle_secondary 1
-set g_balance_rifle_secondary_ammo 10
-set g_balance_rifle_secondary_animtime 0.3
-set g_balance_rifle_secondary_bullethail 0
-set g_balance_rifle_secondary_burstcost 0
-set g_balance_rifle_secondary_damage 20
-set g_balance_rifle_secondary_force 50
-set g_balance_rifle_secondary_refire 0.9
-set g_balance_rifle_secondary_reload 0
-set g_balance_rifle_secondary_shots 4
-set g_balance_rifle_secondary_solidpenetration 15.5
-set g_balance_rifle_secondary_spread 0.04
-set g_balance_rifle_secondary_tracer 0
-set g_balance_rifle_switchdelay_drop 0.2
-set g_balance_rifle_switchdelay_raise 0.2
-set g_balance_rifle_weaponreplace ""
-set g_balance_rifle_weaponstart 0
-set g_balance_rifle_weaponstartoverride -1
-set g_balance_rifle_weaponthrowable 1
-// }}}
-// {{{ #17: Fireball
-set g_balance_fireball_primary_animtime 0.4
-set g_balance_fireball_primary_bfgdamage 100
-set g_balance_fireball_primary_bfgforce 0
-set g_balance_fireball_primary_bfgradius 1000
-set g_balance_fireball_primary_damage 200
-set g_balance_fireball_primary_damageforcescale 0
-set g_balance_fireball_primary_edgedamage 50
-set g_balance_fireball_primary_force 600
-set g_balance_fireball_primary_health 0
-set g_balance_fireball_primary_laserburntime 0.5
-set g_balance_fireball_primary_laserdamage 80
-set g_balance_fireball_primary_laseredgedamage 20
-set g_balance_fireball_primary_laserradius 256
-set g_balance_fireball_primary_lifetime 15
-set g_balance_fireball_primary_radius 200
-set g_balance_fireball_primary_refire 2
-set g_balance_fireball_primary_refire2 0
-set g_balance_fireball_primary_speed 1200
-set g_balance_fireball_primary_spread 0
-set g_balance_fireball_secondary_animtime 0.3
-set g_balance_fireball_secondary_damage 40
-set g_balance_fireball_secondary_damageforcescale 4
-set g_balance_fireball_secondary_damagetime 5
-set g_balance_fireball_secondary_laserburntime 0.5
-set g_balance_fireball_secondary_laserdamage 50
-set g_balance_fireball_secondary_laseredgedamage 20
-set g_balance_fireball_secondary_laserradius 110
-set g_balance_fireball_secondary_lifetime 7
-set g_balance_fireball_secondary_refire 1.5
-set g_balance_fireball_secondary_speed 900
-set g_balance_fireball_secondary_speed_up 100
-set g_balance_fireball_secondary_speed_z 0
-set g_balance_fireball_secondary_spread 0
-set g_balance_fireball_switchdelay_drop 0.2
-set g_balance_fireball_switchdelay_raise 0.2
-set g_balance_fireball_weaponreplace ""
-set g_balance_fireball_weaponstart 0
-set g_balance_fireball_weaponstartoverride -1
-set g_balance_fireball_weaponthrowable 0
-// }}}
-// {{{ #18: T.A.G. Seeker (MUTATOR WEAPON)
-set g_balance_seeker_flac_ammo 1
-set g_balance_seeker_flac_animtime 0.1
-set g_balance_seeker_flac_damage 15
-set g_balance_seeker_flac_edgedamage 10
-set g_balance_seeker_flac_force 50
-set g_balance_seeker_flac_lifetime 0.1
-set g_balance_seeker_flac_lifetime_rand 0.05
-set g_balance_seeker_flac_radius 100
-set g_balance_seeker_flac_refire 0.1
-set g_balance_seeker_flac_speed 3000
-set g_balance_seeker_flac_speed_up 1000
-set g_balance_seeker_flac_speed_z 0
-set g_balance_seeker_flac_spread 0.4
-set g_balance_seeker_missile_accel 1400
-set g_balance_seeker_missile_ammo 2
-set g_balance_seeker_missile_animtime 0.2
-set g_balance_seeker_missile_count 3
-set g_balance_seeker_missile_damage 30
-set g_balance_seeker_missile_damageforcescale 4
-set g_balance_seeker_missile_decel 1400
-set g_balance_seeker_missile_delay 0.25
-set g_balance_seeker_missile_edgedamage 10
-set g_balance_seeker_missile_force 150
-set g_balance_seeker_missile_health 5
-set g_balance_seeker_missile_lifetime 15
-set g_balance_seeker_missile_proxy 0
-set g_balance_seeker_missile_proxy_delay 0.2
-set g_balance_seeker_missile_proxy_maxrange 45
-set g_balance_seeker_missile_radius 80
-set g_balance_seeker_missile_refire 0.5
-set g_balance_seeker_missile_smart 1
-set g_balance_seeker_missile_smart_mindist 800
-set g_balance_seeker_missile_smart_trace_max 2500
-set g_balance_seeker_missile_smart_trace_min 1000
-set g_balance_seeker_missile_speed 700
-set g_balance_seeker_missile_speed_max 1300
-set g_balance_seeker_missile_speed_up 300
-set g_balance_seeker_missile_speed_z 0
-set g_balance_seeker_missile_spread 0
-set g_balance_seeker_missile_turnrate 0.65
-set g_balance_seeker_reload_ammo 0
-set g_balance_seeker_reload_time 2
-set g_balance_seeker_switchdelay_drop 0.2
-set g_balance_seeker_switchdelay_raise 0.2
-set g_balance_seeker_tag_ammo 1
-set g_balance_seeker_tag_animtime 0.2
-set g_balance_seeker_tag_damageforcescale 4
-set g_balance_seeker_tag_health 5
-set g_balance_seeker_tag_lifetime 15
-set g_balance_seeker_tag_refire 0.75
-set g_balance_seeker_tag_speed 5000
-set g_balance_seeker_tag_spread 0
-set g_balance_seeker_tag_tracker_lifetime 10
-set g_balance_seeker_type 0
-set g_balance_seeker_weaponreplace ""
-set g_balance_seeker_weaponstart 0
-set g_balance_seeker_weaponstartoverride -1
-set g_balance_seeker_weaponthrowable 1
-// }}}
-// {{{ #19: Shockwave
-set g_balance_shockwave_blast_animtime 0.3
-set g_balance_shockwave_blast_damage 40
-set g_balance_shockwave_blast_distance 1000
-set g_balance_shockwave_blast_edgedamage 0
-set g_balance_shockwave_blast_force 15
-set g_balance_shockwave_blast_force_forwardbias 50
-set g_balance_shockwave_blast_force_zscale 1
-set g_balance_shockwave_blast_jump_damage 20
-set g_balance_shockwave_blast_jump_edgedamage 0
-set g_balance_shockwave_blast_jump_force 100
-set g_balance_shockwave_blast_jump_force_velocitybias 1
-set g_balance_shockwave_blast_jump_force_zscale 1
-set g_balance_shockwave_blast_jump_multiplier_accuracy 0.5
-set g_balance_shockwave_blast_jump_multiplier_distance 0.5
-set g_balance_shockwave_blast_jump_multiplier_min 0
-set g_balance_shockwave_blast_jump_radius 150
-set g_balance_shockwave_blast_multiplier_accuracy 0.45
-set g_balance_shockwave_blast_multiplier_distance 0.2
-set g_balance_shockwave_blast_multiplier_min 0
-set g_balance_shockwave_blast_refire 0.75
-set g_balance_shockwave_blast_splash_damage 15
-set g_balance_shockwave_blast_splash_edgedamage 0
-set g_balance_shockwave_blast_splash_force 100
-set g_balance_shockwave_blast_splash_force_forwardbias 50
-set g_balance_shockwave_blast_splash_multiplier_accuracy 0.5
-set g_balance_shockwave_blast_splash_multiplier_distance 0.5
-set g_balance_shockwave_blast_splash_multiplier_min 0
-set g_balance_shockwave_blast_splash_radius 70
-set g_balance_shockwave_blast_spread_max 120
-set g_balance_shockwave_blast_spread_min 25
-set g_balance_shockwave_melee_animtime 1.3
-set g_balance_shockwave_melee_damage 80
-set g_balance_shockwave_melee_delay 0.25
-set g_balance_shockwave_melee_force 200
-set g_balance_shockwave_melee_multihit 1
-set g_balance_shockwave_melee_no_doubleslap 1
-set g_balance_shockwave_melee_nonplayerdamage 40
-set g_balance_shockwave_melee_range 120
-set g_balance_shockwave_melee_refire 1.25
-set g_balance_shockwave_melee_swing_side 120
-set g_balance_shockwave_melee_swing_up 30
-set g_balance_shockwave_melee_time 0.15
-set g_balance_shockwave_melee_traces 10
-set g_balance_shockwave_switchdelay_drop 0.2
-set g_balance_shockwave_switchdelay_raise 0.2
-set g_balance_shockwave_weaponreplace ""
-set g_balance_shockwave_weaponstart 0
-set g_balance_shockwave_weaponstartoverride -1
-set g_balance_shockwave_weaponthrowable 0
-// }}}
-// {{{ #20: Arc
-set g_balance_arc_beam_ammo 6
-set g_balance_arc_beam_animtime 0.1
-set g_balance_arc_beam_botaimlifetime 0
-set g_balance_arc_beam_botaimspeed 0
-set g_balance_arc_beam_damage 100
-set g_balance_arc_beam_degreespersegment 1
-set g_balance_arc_beam_distancepersegment 0
-set g_balance_arc_beam_falloff_halflifedist 0
-set g_balance_arc_beam_falloff_maxdist 0
-set g_balance_arc_beam_falloff_mindist 0
-set g_balance_arc_beam_force 600
-set g_balance_arc_beam_healing_amax 0
-set g_balance_arc_beam_healing_aps 50
-set g_balance_arc_beam_healing_hmax 150
-set g_balance_arc_beam_healing_hps 50
-set g_balance_arc_beam_heat 0
-set g_balance_arc_beam_maxangle 10
-set g_balance_arc_beam_nonplayerdamage 80
-set g_balance_arc_beam_range 1000
-set g_balance_arc_beam_refire 0.25
-set g_balance_arc_beam_returnspeed 8
-set g_balance_arc_beam_tightness 0.5
-set g_balance_arc_bolt 0
-set g_balance_arc_bolt_ammo 1
-set g_balance_arc_bolt_damage 25
-set g_balance_arc_bolt_damageforcescale 0
-set g_balance_arc_bolt_edgedamage 12.5
-set g_balance_arc_bolt_force 120
-set g_balance_arc_bolt_health 15
-set g_balance_arc_bolt_lifetime 5
-set g_balance_arc_bolt_radius 65
-set g_balance_arc_bolt_refire 0.16667
-set g_balance_arc_bolt_speed 2300
-set g_balance_arc_bolt_spread 0
-set g_balance_arc_burst_ammo 15
-set g_balance_arc_burst_damage 250
-set g_balance_arc_burst_healing_aps 100
-set g_balance_arc_burst_healing_hps 100
-set g_balance_arc_burst_heat 5
-set g_balance_arc_cooldown 2.5
-set g_balance_arc_cooldown_release 0
-set g_balance_arc_overheat_max 5
-set g_balance_arc_overheat_min 3
-set g_balance_arc_switchdelay_drop 0.2
-set g_balance_arc_switchdelay_raise 0.2
-set g_balance_arc_weaponreplace ""
-set g_balance_arc_weaponstart 0
-set g_balance_arc_weaponstartoverride -1
-set g_balance_arc_weaponthrowable 1
-// }}}
-// {{{ #21: Overkill Heavy Machine Gun (MUTATOR WEAPON)
-set g_balance_okhmg_primary_ammo 1
-set g_balance_okhmg_primary_damage 30
-set g_balance_okhmg_primary_force 10
-set g_balance_okhmg_primary_refire 0.05
-set g_balance_okhmg_primary_solidpenetration 127
-set g_balance_okhmg_primary_spread_add 0.005
-set g_balance_okhmg_primary_spread_max 0.06
-set g_balance_okhmg_primary_spread_min 0.01
-set g_balance_okhmg_reload_ammo 120
-set g_balance_okhmg_reload_time 1
-set g_balance_okhmg_secondary_ammo 0
-set g_balance_okhmg_secondary_animtime 0.2
-set g_balance_okhmg_secondary_damage 25
-set g_balance_okhmg_secondary_delay 0
-set g_balance_okhmg_secondary_edgedamage 12.5
-set g_balance_okhmg_secondary_force 360
-set g_balance_okhmg_secondary_force_zscale 1
-set g_balance_okhmg_secondary_lifetime 5
-set g_balance_okhmg_secondary_radius 70
-set g_balance_okhmg_secondary_refire 0.7
-set g_balance_okhmg_secondary_refire_type 1
-set g_balance_okhmg_secondary_shotangle 0
-set g_balance_okhmg_secondary_speed 6000
-set g_balance_okhmg_secondary_spread 0
-set g_balance_okhmg_switchdelay_drop 0.2
-set g_balance_okhmg_switchdelay_raise 0.2
-set g_balance_okhmg_weaponreplace ""
-set g_balance_okhmg_weaponstart 0
-set g_balance_okhmg_weaponstartoverride 0
-set g_balance_okhmg_weaponthrowable 0
-// }}}
-// {{{ #22: Overkill MachineGun (MUTATOR WEAPON)
-set g_balance_okmachinegun_primary_ammo 1
-set g_balance_okmachinegun_primary_damage 25
-set g_balance_okmachinegun_primary_force 5
-set g_balance_okmachinegun_primary_refire 0.1
-set g_balance_okmachinegun_primary_solidpenetration 100
-set g_balance_okmachinegun_primary_spread_add 0.012
-set g_balance_okmachinegun_primary_spread_max 0.05
-set g_balance_okmachinegun_primary_spread_min 0
-set g_balance_okmachinegun_reload_ammo 30
-set g_balance_okmachinegun_reload_time 1.5
-set g_balance_okmachinegun_secondary_animtime 0.2
-set g_balance_okmachinegun_secondary_damage 25
-set g_balance_okmachinegun_secondary_delay 0
-set g_balance_okmachinegun_secondary_edgedamage 12.5
-set g_balance_okmachinegun_secondary_force 360
-set g_balance_okmachinegun_secondary_force_zscale 1
-set g_balance_okmachinegun_secondary_lifetime 5
-set g_balance_okmachinegun_secondary_radius 70
-set g_balance_okmachinegun_secondary_refire 0.7
-set g_balance_okmachinegun_secondary_refire_type 1
-set g_balance_okmachinegun_secondary_shotangle 0
-set g_balance_okmachinegun_secondary_speed 6000
-set g_balance_okmachinegun_secondary_spread 0
-set g_balance_okmachinegun_switchdelay_drop 0.2
-set g_balance_okmachinegun_switchdelay_raise 0.2
-set g_balance_okmachinegun_weaponreplace ""
-set g_balance_okmachinegun_weaponstart 0
-set g_balance_okmachinegun_weaponstartoverride -1
-set g_balance_okmachinegun_weaponthrowable 1
-// }}}
-// {{{ #23: Overkill Nex (MUTATOR WEAPON)
-set g_balance_oknex_charge 0
-set g_balance_oknex_charge_animlimit 0.5
-set g_balance_oknex_charge_limit 1
-set g_balance_oknex_charge_maxspeed 800
-set g_balance_oknex_charge_mindmg 40
-set g_balance_oknex_charge_minspeed 400
-set g_balance_oknex_charge_rate 0.6
-set g_balance_oknex_charge_rot_pause 0
-set g_balance_oknex_charge_rot_rate 0
-set g_balance_oknex_charge_shot_multiplier 0
-set g_balance_oknex_charge_start 0.5
-set g_balance_oknex_charge_velocity_rate 0
-set g_balance_oknex_primary_ammo 10
-set g_balance_oknex_primary_animtime 0.65
-set g_balance_oknex_primary_damage 100
-set g_balance_oknex_primary_damagefalloff_forcehalflife 0
-set g_balance_oknex_primary_damagefalloff_halflife 0
-set g_balance_oknex_primary_damagefalloff_maxdist 0
-set g_balance_oknex_primary_damagefalloff_mindist 0
-set g_balance_oknex_primary_force 500
-set g_balance_oknex_primary_refire 1
-set g_balance_oknex_reload_ammo 50
-set g_balance_oknex_reload_time 2
-set g_balance_oknex_secondary 2
-set g_balance_oknex_secondary_ammo 0
-set g_balance_oknex_secondary_animtime 0.2
-set g_balance_oknex_secondary_chargepool 0
-set g_balance_oknex_secondary_chargepool_pause_regen 1
-set g_balance_oknex_secondary_chargepool_regen 0.15
-set g_balance_oknex_secondary_damage 25
-set g_balance_oknex_secondary_damagefalloff_forcehalflife 0
-set g_balance_oknex_secondary_damagefalloff_halflife 0
-set g_balance_oknex_secondary_damagefalloff_maxdist 0
-set g_balance_oknex_secondary_damagefalloff_mindist 0
-set g_balance_oknex_secondary_delay 0
-set g_balance_oknex_secondary_edgedamage 12.5
-set g_balance_oknex_secondary_force 360
-set g_balance_oknex_secondary_force_zscale 1
-set g_balance_oknex_secondary_lifetime 5
-set g_balance_oknex_secondary_radius 70
-set g_balance_oknex_secondary_refire 0.7
-set g_balance_oknex_secondary_refire_type 1
-set g_balance_oknex_secondary_shotangle 0
-set g_balance_oknex_secondary_speed 6000
-set g_balance_oknex_secondary_spread 0
-set g_balance_oknex_switchdelay_drop 0.2
-set g_balance_oknex_switchdelay_raise 0.2
-set g_balance_oknex_weaponreplace ""
-set g_balance_oknex_weaponstart 0
-set g_balance_oknex_weaponstartoverride -1
-set g_balance_oknex_weaponthrowable 1
-// }}}
-// {{{ #24: Overkill Rocket Propelled Chainsaw (MUTATOR WEAPON)
-set g_balance_okrpc_primary_ammo 10
-set g_balance_okrpc_primary_animtime 1
-set g_balance_okrpc_primary_damage 150
-set g_balance_okrpc_primary_damage2 500
-set g_balance_okrpc_primary_damageforcescale 2
-set g_balance_okrpc_primary_edgedamage 50
-set g_balance_okrpc_primary_force 400
-set g_balance_okrpc_primary_health 25
-set g_balance_okrpc_primary_lifetime 30
-set g_balance_okrpc_primary_radius 300
-set g_balance_okrpc_primary_refire 1
-set g_balance_okrpc_primary_speed 2500
-set g_balance_okrpc_primary_speedaccel 5000
-set g_balance_okrpc_reload_ammo 10
-set g_balance_okrpc_reload_time 1
-set g_balance_okrpc_secondary_ammo 0
-set g_balance_okrpc_secondary_animtime 0.2
-set g_balance_okrpc_secondary_damage 25
-set g_balance_okrpc_secondary_delay 0
-set g_balance_okrpc_secondary_edgedamage 12.5
-set g_balance_okrpc_secondary_force 360
-set g_balance_okrpc_secondary_force_zscale 1
-set g_balance_okrpc_secondary_lifetime 5
-set g_balance_okrpc_secondary_radius 70
-set g_balance_okrpc_secondary_refire 0.7
-set g_balance_okrpc_secondary_refire_type 1
-set g_balance_okrpc_secondary_shotangle 0
-set g_balance_okrpc_secondary_speed 6000
-set g_balance_okrpc_secondary_spread 0
-set g_balance_okrpc_switchdelay_drop 0.2
-set g_balance_okrpc_switchdelay_raise 0.2
-set g_balance_okrpc_weaponreplace ""
-set g_balance_okrpc_weaponstart 0
-set g_balance_okrpc_weaponstartoverride 0
-set g_balance_okrpc_weaponthrowable 0
-// }}}
-// {{{ #25: Overkill Shotgun (MUTATOR WEAPON)
-set g_balance_okshotgun_primary_ammo 3
-set g_balance_okshotgun_primary_animtime 0.65
-set g_balance_okshotgun_primary_bot_range 512
-set g_balance_okshotgun_primary_bullets 10
-set g_balance_okshotgun_primary_damage 17
-set g_balance_okshotgun_primary_force 80
-set g_balance_okshotgun_primary_refire 0.75
-set g_balance_okshotgun_primary_solidpenetration 3.8
-set g_balance_okshotgun_primary_spread 0.07
-set g_balance_okshotgun_reload_ammo 24
-set g_balance_okshotgun_reload_time 2
-set g_balance_okshotgun_secondary_animtime 0.2
-set g_balance_okshotgun_secondary_damage 25
-set g_balance_okshotgun_secondary_delay 0
-set g_balance_okshotgun_secondary_edgedamage 12.5
-set g_balance_okshotgun_secondary_force 360
-set g_balance_okshotgun_secondary_force_zscale 1
-set g_balance_okshotgun_secondary_lifetime 5
-set g_balance_okshotgun_secondary_radius 70
-set g_balance_okshotgun_secondary_refire 0.7
-set g_balance_okshotgun_secondary_refire_type 1
-set g_balance_okshotgun_secondary_shotangle 0
-set g_balance_okshotgun_secondary_speed 6000
-set g_balance_okshotgun_secondary_spread 0
-set g_balance_okshotgun_switchdelay_drop 0.2
-set g_balance_okshotgun_switchdelay_raise 0.2
-set g_balance_okshotgun_weaponreplace ""
-set g_balance_okshotgun_weaponstart 0
-set g_balance_okshotgun_weaponstartoverride -1
-set g_balance_okshotgun_weaponthrowable 1
-// }}}
set g_balance_portal_lifetime 15 // these get recharged whenever the portal is used
// }}}
-exec bal-wep-testingxpm.cfg
+exec bal-wep-testing.cfg
set g_balance_portal_lifetime 15 // these get recharged whenever the portal is used
// }}}
-exec bal-wep-xpm.cfg
+exec bal-wep-xonotic.cfg
bind F3 spec
// usercommands. These can be edited and bound by the menu.
-seta "userbind1_press" "say_team quad soon"; seta "userbind1_release" ""; seta "userbind1_description" "team: quad soon"
+seta "userbind1_press" "say_team strength soon"; seta "userbind1_release" ""; seta "userbind1_description" "team: strength soon"
seta "userbind2_press" "say_team free item %x^7 (l:%y^7); g_waypointsprite_team_here_p"; seta "userbind2_release" ""; seta "userbind2_description" "team: free item, icon"
seta "userbind3_press" "say_team took item (l:%l^7); g_waypointsprite_team_here"; seta "userbind3_release" ""; seta "userbind3_description" "team: took item, icon"
seta "userbind4_press" "say_team negative"; seta "userbind4_release" ""; seta "userbind4_description" "team: negative"
alias g_maplist_add "qc_cmd_svmenu maplist add ${* ?}"
alias g_maplist_remove "qc_cmd_svmenu maplist remove ${* ?}"
-alias g_maplist_putfirst "qc_cmd_svmenu maplist remove ${* ?} ; qc_cmd maplist add ${* ?}"
+alias g_maplist_putfirst "qc_cmd_svmenu maplist remove ${* ?} ; qc_cmd_svmenu maplist add ${* ?}"
alias g_maplist_shufflenow "qc_cmd_svmenu maplist shuffle"
alias g_maplist_cleanup "qc_cmd_svmenu maplist cleanup" // removes maps that don't exist from the map list
#
# Translators:
# Martin Taibr <taibr.martin@gmail.com>, 2017
+# GamingasCZ <gamingforyou875@gmail.com>, 2019
+# Jan Kocka <kockahonza@gmail.com>, 2019
# Martin Taibr <taibr.martin@gmail.com>, 2017
# NONE <nechtom@gmail.com>, 2015
# Tomáš Volavka <czheron@gmail.com>, 2015,2018
"Project-Id-Version: Xonotic\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2019-05-19 07:23+0200\n"
-"PO-Revision-Date: 2019-05-19 05:23+0000\n"
-"Last-Translator: divVerent <divVerent@xonotic.org>\n"
+"PO-Revision-Date: 2019-12-11 18:36+0000\n"
+"Last-Translator: GamingasCZ <gamingforyou875@gmail.com>\n"
"Language-Team: Czech (http://www.transifex.com/team-xonotic/xonotic/language/"
"cs/)\n"
"Language: cs\n"
#: qcsrc/client/hud/hud_config.qc:243
#, c-format
msgid "^2Successfully exported to %s! (Note: It's saved in data/data/)"
-msgstr ""
+msgstr "^2Úspěšně exportováno do %s! (Poznámka: Uloženo v data/data/)"
#: qcsrc/client/hud/hud_config.qc:247
#, c-format
msgid "^1Couldn't write to %s"
-msgstr ""
+msgstr "^1Nešlo zapsat do 1%s"
#: qcsrc/client/hud/panel/centerprint.qc:140
#, c-format
"^1Multiline message at time %s that\n"
"^1lasts longer than normal"
msgstr ""
+"^1Víceřádková zpráva v čase %s že\n"
+"^1trvá déle než normálně"
#: qcsrc/client/hud/panel/centerprint.qc:144
#, c-format
msgid "Message at time %s"
-msgstr ""
+msgstr "Zpráva v čase %s"
#: qcsrc/client/hud/panel/centerprint.qc:149
msgid "Generic message"
-msgstr ""
+msgstr "Obecná zpráva"
#: qcsrc/client/hud/panel/chat.qc:84
msgid "^3Player^7: This is the chat area."
#: qcsrc/client/hud/panel/infomessages.qc:113
#: qcsrc/menu/xonotic/keybinder.qc:105
msgid "server info"
-msgstr ""
+msgstr "info o serveru"
#: qcsrc/client/hud/panel/infomessages.qc:126
msgid "^1Match has already begun"
#: qcsrc/client/hud/panel/infomessages.qc:147
msgid "^2Currently in ^1warmup^2 stage!"
-msgstr ""
+msgstr "^2Momentálně v ^1zahřívací^2 fázi!"
#: qcsrc/client/hud/panel/infomessages.qc:162
#, c-format
msgid "%sPress ^3%s%s to end warmup"
-msgstr ""
+msgstr "%sZmáčkni ^3%s%s pro ukončení zahřívací fáze"
#: qcsrc/client/hud/panel/infomessages.qc:162
#: qcsrc/client/hud/panel/infomessages.qc:164
#: qcsrc/client/hud/panel/infomessages.qc:177
#: qcsrc/menu/xonotic/keybinder.qc:101
msgid "ready"
-msgstr ""
+msgstr "připraven"
#: qcsrc/client/hud/panel/infomessages.qc:164
#, c-format
msgid "%sPress ^3%s%s once you are ready"
-msgstr ""
+msgstr "%sZmáčkni ^3%s%s až budeš připravený"
#: qcsrc/client/hud/panel/infomessages.qc:169
msgid "^2Waiting for others to ready up to end warmup..."
-msgstr ""
+msgstr "^2Čeká se než ostatní hráči ukončí zahřívací fázi..."
#: qcsrc/client/hud/panel/infomessages.qc:171
msgid "^2Waiting for others to ready up..."
-msgstr ""
+msgstr "^2Čeká se než budou ostatní hráči připraveni..."
#: qcsrc/client/hud/panel/infomessages.qc:177
#, c-format
msgid "^2Press ^3%s^2 to end warmup"
-msgstr ""
+msgstr "^2Zmáčkni ^3%s^2 pro ukončení zahřívací fáze"
#: qcsrc/client/hud/panel/infomessages.qc:198
msgid "Teamnumbers are unbalanced!"
#: qcsrc/client/hud/panel/infomessages.qc:201
#, c-format
msgid " Press ^3%s%s to adjust"
-msgstr ""
+msgstr " Zmáčkni ^3%s%s pro upravení"
#: qcsrc/client/hud/panel/infomessages.qc:201
#: qcsrc/menu/xonotic/keybinder.qc:117
msgid "team menu"
-msgstr ""
+msgstr "týmové menu"
#: qcsrc/client/hud/panel/infomessages.qc:211
msgid "^1Spectating this player:"
-msgstr ""
+msgstr "^1Sleduješ tohoto hráče:"
#: qcsrc/client/hud/panel/infomessages.qc:211
msgid "^1Spectating you:"
-msgstr ""
+msgstr "^1Sledují tě:"
#: qcsrc/client/hud/panel/infomessages.qc:227
msgid "^7Press ^3ESC ^7to show HUD options."
-msgstr ""
+msgstr "^7Zmáčkni ^3ESC ^7pro zobrazení nastavení HUD."
#: qcsrc/client/hud/panel/infomessages.qc:228
msgid "^3Doubleclick ^7a panel for panel-specific options."
#: qcsrc/client/hud/panel/quickmenu.qc:598
#, c-format
msgid "Command%d"
-msgstr ""
+msgstr "Příkaz%d"
#: qcsrc/client/hud/panel/quickmenu.qc:624
msgid "Continue..."
-msgstr ""
+msgstr "Pokračovat..."
#: qcsrc/client/hud/panel/quickmenu.qc:781
#: qcsrc/client/hud/panel/quickmenu.qc:788
msgid "Chat"
-msgstr ""
+msgstr "Chat"
#: qcsrc/client/hud/panel/quickmenu.qc:782
msgid "QMCMD^Send public message to"
-msgstr ""
+msgstr "QMCMD^Poslat veřejnou zprávu do"
#: qcsrc/client/hud/panel/quickmenu.qc:783
msgid "QMCMD^:-) / nice one"
-msgstr ""
+msgstr "QMCMD^:-) / hezký"
#: qcsrc/client/hud/panel/quickmenu.qc:783
msgid "QMCMD^nice one"
-msgstr ""
+msgstr "QMCMD^hezký"
#: qcsrc/client/hud/panel/quickmenu.qc:784
msgid "QMCMD^good game"
-msgstr ""
+msgstr "QMCMD^dobrá hra"
#: qcsrc/client/hud/panel/quickmenu.qc:785
msgid "QMCMD^hi / good luck"
-msgstr ""
+msgstr "QMCMD^ahoj/hodně štěstí"
#: qcsrc/client/hud/panel/quickmenu.qc:785
msgid "QMCMD^hi / good luck and have fun"
-msgstr ""
+msgstr "QMCMD^ahoj/hodně štěstí a užijte si hru"
#: qcsrc/client/hud/panel/quickmenu.qc:787
msgid "QMCMD^Send in English"
-msgstr ""
+msgstr "QMCMD^Pošli v angličtině"
#: qcsrc/client/hud/panel/quickmenu.qc:792
#: qcsrc/client/hud/panel/quickmenu.qc:808
msgid "QMCMD^Team chat"
-msgstr ""
+msgstr "QMCMD^Týmový chat"
#: qcsrc/client/hud/panel/quickmenu.qc:793
msgid "QMCMD^quad soon"
#: qcsrc/client/hud/panel/quickmenu.qc:796
msgid "QMCMD^negative"
-msgstr ""
+msgstr "QMCMD^negativní"
#: qcsrc/client/hud/panel/quickmenu.qc:797
msgid "QMCMD^positive"
-msgstr ""
+msgstr "QMCMD^pozitivní"
#: qcsrc/client/hud/panel/quickmenu.qc:798
msgid "QMCMD^need help (l:%l^7) (h:%h^7 a:%a^7 w:%w^7)"
#: qcsrc/client/hud/panel/quickmenu.qc:819
msgid "QMCMD^FPS"
-msgstr ""
+msgstr "QMCMD^FPS"
#: qcsrc/client/hud/panel/quickmenu.qc:820
msgid "QMCMD^Net graph"
#: qcsrc/client/hud/panel/quickmenu.qc:823
#: qcsrc/client/hud/panel/quickmenu.qc:826
msgid "QMCMD^Sound settings"
-msgstr ""
+msgstr "QMCMD^Nastavení zvuku"
#: qcsrc/client/hud/panel/quickmenu.qc:824
msgid "QMCMD^Hit sound"
-msgstr ""
+msgstr "QMCMD^Zvuk zásahu"
#: qcsrc/client/hud/panel/quickmenu.qc:825
msgid "QMCMD^Chat sound"
-msgstr ""
+msgstr "QMCMD^Zvuk chatu"
#: qcsrc/client/hud/panel/quickmenu.qc:830
#: qcsrc/client/hud/panel/quickmenu.qc:834
#: qcsrc/client/hud/panel/scoreboard.qc:91
msgid "Number of deaths"
-msgstr ""
+msgstr "Počet smrtí"
#: qcsrc/client/hud/panel/scoreboard.qc:91
msgid "SCO^deaths"
#: qcsrc/client/hud/panel/scoreboard.qc:92
msgid "SCO^destroyed"
-msgstr ""
+msgstr "SCO^zničen"
#: qcsrc/client/hud/panel/scoreboard.qc:93
msgid "SCO^damage"
#: qcsrc/client/hud/panel/scoreboard.qc:93
msgid "The total damage done"
-msgstr ""
+msgstr "Celkový udělený damage"
#: qcsrc/client/hud/panel/scoreboard.qc:94
msgid "SCO^dmgtaken"
#: qcsrc/client/hud/panel/scoreboard.qc:97
msgid "SCO^fastest"
-msgstr ""
+msgstr "SCO^nejrychlejší"
#: qcsrc/client/hud/panel/scoreboard.qc:97
msgid "Time of fastest lap (Race/CTS)"
#: qcsrc/client/hud/panel/scoreboard.qc:100
msgid "FPS"
-msgstr ""
+msgstr "FPS"
#: qcsrc/client/hud/panel/scoreboard.qc:100
msgid "SCO^fps"
-msgstr ""
+msgstr "SCO^fps"
#: qcsrc/client/hud/panel/scoreboard.qc:101
msgid "Number of kills minus suicides"
#: qcsrc/client/hud/panel/scoreboard.qc:108
msgid "SCO^laps"
-msgstr ""
+msgstr "SCO^kola"
#: qcsrc/client/hud/panel/scoreboard.qc:109
msgid "Number of lives (LMS)"
-msgstr ""
+msgstr "Počet životů (LMS)"
#: qcsrc/client/hud/panel/scoreboard.qc:109
msgid "SCO^lives"
-msgstr ""
+msgstr "SCO^životy"
#: qcsrc/client/hud/panel/scoreboard.qc:110
msgid "Number of times a key was lost"
-msgstr ""
+msgstr "Kolikrát byl ztracen klíč"
#: qcsrc/client/hud/panel/scoreboard.qc:110
msgid "SCO^losses"
-msgstr ""
+msgstr "SCO^prohry"
#: qcsrc/client/hud/panel/scoreboard.qc:111
#: qcsrc/client/hud/panel/scoreboard.qc:112
msgid "Player name"
-msgstr ""
+msgstr "Jméno hráče"
#: qcsrc/client/hud/panel/scoreboard.qc:111
msgid "SCO^name"
-msgstr ""
+msgstr "SCO^jméno"
#: qcsrc/client/hud/panel/scoreboard.qc:112
msgid "SCO^nick"
-msgstr ""
+msgstr "SCO^přezdívka"
#: qcsrc/client/hud/panel/scoreboard.qc:113
msgid "Number of objectives destroyed"
#: qcsrc/client/hud/panel/scoreboard.qc:115
msgid "Ping time"
-msgstr ""
+msgstr "Čas pingu"
#: qcsrc/client/hud/panel/scoreboard.qc:115
msgid "SCO^ping"
-msgstr ""
+msgstr "SCO^ping"
#: qcsrc/client/hud/panel/scoreboard.qc:116
msgid "Packet loss"
#: qcsrc/client/hud/panel/scoreboard.qc:121
msgid "Number of rounds won"
-msgstr ""
+msgstr "Počet vyhraných kol"
#: qcsrc/client/hud/panel/scoreboard.qc:121
msgid "SCO^rounds won"
-msgstr ""
+msgstr "SCO^vyhraných kol"
#: qcsrc/client/hud/panel/scoreboard.qc:122
msgid "SCO^score"
-msgstr ""
+msgstr "SCO^skóre"
#: qcsrc/client/hud/panel/scoreboard.qc:122
msgid "Total score"
-msgstr ""
+msgstr "Celkové skóre"
#: qcsrc/client/hud/panel/scoreboard.qc:123
msgid "Number of suicides"
-msgstr ""
+msgstr "Počet sebevražd"
#: qcsrc/client/hud/panel/scoreboard.qc:123
msgid "SCO^suicides"
-msgstr ""
+msgstr "SCO^sebevraždy"
#: qcsrc/client/hud/panel/scoreboard.qc:124
msgid "Number of kills minus deaths"
#: qcsrc/client/hud/panel/scoreboard.qc:124
msgid "SCO^sum"
-msgstr ""
+msgstr "SCO^součet"
#: qcsrc/client/hud/panel/scoreboard.qc:125
msgid "Number of domination points taken (Domination)"
#: qcsrc/client/hud/panel/scoreboard.qc:128
msgid "SCO^time"
-msgstr ""
+msgstr "SCO^čas"
#: qcsrc/client/hud/panel/scoreboard.qc:128
msgid "Total time raced (Race/CTS)"
#: qcsrc/client/hud/panel/scoreboard.qc:313
msgid "Usage:"
-msgstr ""
+msgstr "Použití:"
#: qcsrc/client/hud/panel/scoreboard.qc:315
msgid "^2scoreboard_columns_set ^3field1 field2 ..."
#: qcsrc/client/hud/panel/scoreboard.qc:1336
msgid "Map stats:"
-msgstr ""
+msgstr "Statistiky mapy:"
#: qcsrc/client/hud/panel/scoreboard.qc:1366
msgid "Monsters killed:"
-msgstr ""
+msgstr "Zabitých monster:"
#: qcsrc/client/hud/panel/scoreboard.qc:1373
msgid "Secrets found:"
#: qcsrc/client/hud/panel/scoreboard.qc:1613
#, c-format
msgid "^3%1.0f minutes"
-msgstr ""
+msgstr "^3%1.0f minuty"
#: qcsrc/client/hud/panel/scoreboard.qc:1622
#: qcsrc/client/hud/panel/scoreboard.qc:1629
#, c-format
msgid "^5%s %s"
-msgstr ""
+msgstr "^5%s %s"
#: qcsrc/client/hud/panel/scoreboard.qc:1623
#: qcsrc/client/hud/panel/scoreboard.qc:1630
#: qcsrc/client/hud/panel/scoreboard.qc:1642
#: qcsrc/client/hud/panel/scoreboard.qc:1649
msgid "SCO^points"
-msgstr ""
+msgstr "SCO^body"
#: qcsrc/client/hud/panel/scoreboard.qc:1624
#: qcsrc/client/hud/panel/scoreboard.qc:1631
#: qcsrc/client/hud/panel/scoreboard.qc:1643
#: qcsrc/client/hud/panel/scoreboard.qc:1650
msgid "SCO^is beaten"
-msgstr ""
+msgstr "SCO^je poražen"
#: qcsrc/client/hud/panel/scoreboard.qc:1641
#: qcsrc/client/hud/panel/scoreboard.qc:1648
#, c-format
msgid "^2+%s %s"
-msgstr ""
+msgstr "^2+%s %s"
#: qcsrc/client/hud/panel/scoreboard.qc:1659
#, c-format
msgid "^7Map: ^2%s"
-msgstr ""
+msgstr "^7Mapa: ^2%s"
#: qcsrc/client/hud/panel/scoreboard.qc:1798
#, c-format
#: qcsrc/client/hud/panel/scoreboard.qc:1864
#, c-format
msgid "You are dead, press ^2%s^7 to respawn"
-msgstr ""
+msgstr "Jsi mrtvý, zmáčkni ^2%s^7 pro respawnutí"
#: qcsrc/client/hud/panel/timer.qc:67
msgid "WARMUP"
#: qcsrc/menu/xonotic/dialog_settings_misc_reset.qc:16
#: qcsrc/menu/xonotic/dialog_uid2name.qc:15
msgid "Yes"
-msgstr ""
+msgstr "Ano"
#: qcsrc/client/hud/panel/vote.qc:128 qcsrc/menu/xonotic/dialog_firstrun.qc:83
#: qcsrc/menu/xonotic/dialog_multiplayer_media_demo_startconfirm.qc:21
#: qcsrc/menu/xonotic/dialog_settings_misc_reset.qc:17
#: qcsrc/menu/xonotic/dialog_uid2name.qc:17
msgid "No"
-msgstr ""
+msgstr "Ne"
#: qcsrc/client/hud/panel/weapons.qc:546
msgid "Out of ammo"
#: qcsrc/client/main.qc:1029
msgid " m/s"
-msgstr ""
+msgstr " m/s"
#: qcsrc/client/main.qc:1031
msgid " km/h"
-msgstr ""
+msgstr " km/h"
#: qcsrc/client/main.qc:1033
msgid " mph"
-msgstr ""
+msgstr " mph"
#: qcsrc/client/main.qc:1035
msgid " knots"
#: qcsrc/client/mapvoting.qc:52
msgid " (1 vote)"
-msgstr ""
+msgstr "(1 hlas)"
#: qcsrc/client/mapvoting.qc:54
#, c-format
msgid " (%d votes)"
-msgstr ""
+msgstr " (%d hlasů)"
#: qcsrc/client/mapvoting.qc:274
msgid "Don't care"
#: qcsrc/client/mapvoting.qc:375
msgid "Vote for a map"
-msgstr ""
+msgstr "Hlasovat pro mapu"
#: qcsrc/client/mapvoting.qc:392
#, c-format
msgid "%d seconds left"
-msgstr ""
+msgstr "zbývá%d sekund"
#: qcsrc/client/mapvoting.qc:505
msgid "mv_mapdownload: ^3You're not supposed to use this command on your own!"
#: qcsrc/common/items/item/ammo.qh:66
msgid "bullets"
-msgstr ""
+msgstr "náboje"
#: qcsrc/common/items/item/ammo.qh:96
msgid "cells"
#: qcsrc/common/items/item/ammo.qh:126
msgid "plasma"
-msgstr ""
+msgstr "plazma"
#: qcsrc/common/items/item/ammo.qh:156
msgid "rockets"
-msgstr ""
+msgstr "rakety"
#: qcsrc/common/items/item/ammo.qh:190
msgid "shells"
#: qcsrc/common/items/item/armor.qh:42
msgid "Small armor"
-msgstr ""
+msgstr "malé brnění"
#: qcsrc/common/items/item/armor.qh:80
msgid "Medium armor"
#: qcsrc/common/util.qc:1584
#, c-format
msgid "UP"
-msgstr ""
+msgstr "NAHORU"
#: qcsrc/common/util.qc:1585
#, c-format
msgid "DOWN"
-msgstr ""
+msgstr "DOLŮ"
#: qcsrc/common/util.qc:1586
#, c-format
msgid "LEFT"
-msgstr ""
+msgstr "DOLEVA"
#: qcsrc/common/util.qc:1587
#, c-format
msgid "RIGHT"
-msgstr ""
+msgstr "DOPRAVA"
#: qcsrc/common/util.qc:1593
#, c-format
msgid "MIDINOTE%d"
-msgstr ""
+msgstr "MIDI NOTA%d"
#: qcsrc/common/vehicles/cl_vehicles.qc:190
#, c-format
msgid "Press %s"
-msgstr ""
+msgstr "Zmáčkni %s"
#: qcsrc/common/vehicles/vehicle/bumblebee.qc:947
msgid "No right gunner!"
#: qcsrc/common/weapons/weapon/fireball.qh:18
msgid "Fireball"
-msgstr ""
+msgstr "Ohnivá koule"
#: qcsrc/common/weapons/weapon/hagar.qh:18
msgid "Hagar"
-msgstr ""
+msgstr "Hagar"
#: qcsrc/common/weapons/weapon/hlac.qh:18
msgid "Heavy Laser Assault Cannon"
#: qcsrc/lib/counting.qh:79
#, c-format
msgid "%dst"
-msgstr ""
+msgstr "%d."
#: qcsrc/lib/counting.qh:80
#, c-format
msgid "%dnd"
-msgstr ""
+msgstr "%d."
#: qcsrc/lib/counting.qh:81
#, c-format
msgid "%drd"
-msgstr ""
+msgstr "%d."
#: qcsrc/lib/counting.qh:82 qcsrc/lib/counting.qh:85
#, c-format
msgid "%dth"
-msgstr ""
+msgstr "%d."
#: qcsrc/lib/oo.qh:330
msgid "No description"
-msgstr ""
+msgstr "Bez popisu"
#: qcsrc/lib/spawnfunc.qh:240
#, c-format
#: qcsrc/menu/command/menu_cmd.qc:81
msgid "Available options:"
-msgstr ""
+msgstr "Dostupné možnosti:"
#: qcsrc/menu/command/menu_cmd.qc:130
msgid "Invalid command. For a list of supported commands, try menu_cmd help."
#: qcsrc/menu/item/listbox.qc:413
#, c-format
msgid "Item %d"
-msgstr ""
+msgstr "Item %d"
#: qcsrc/menu/item/textslider.qc:11 qcsrc/menu/item/textslider.qc:12
#: qcsrc/menu/xonotic/dialog_settings_game_crosshair.qc:37
#: qcsrc/menu/xonotic/dialog_settings_game_crosshair.qc:68
#: qcsrc/menu/xonotic/dialog_settings_game_crosshair.qc:115
msgid "Custom"
-msgstr ""
+msgstr "Vlastní"
#: qcsrc/menu/xonotic/campaign.qc:235
#, c-format
msgid "Level %d: %s"
-msgstr ""
+msgstr "Level %d: %s"
#: qcsrc/menu/xonotic/credits.qc:4
msgid "Core Team"
#: qcsrc/menu/xonotic/credits.qc:48
msgid "Website"
-msgstr ""
+msgstr "Stránka"
#: qcsrc/menu/xonotic/credits.qc:53
msgid "Stats"
-msgstr ""
+msgstr "Statistiky"
#: qcsrc/menu/xonotic/credits.qc:57
msgid "Art"
#: qcsrc/menu/xonotic/credits.qc:65
msgid "Animation"
-msgstr ""
+msgstr "Animace"
#: qcsrc/menu/xonotic/credits.qc:69
msgid "Level Design"
-msgstr ""
+msgstr "Design levelů"
#: qcsrc/menu/xonotic/credits.qc:92
msgid "Music / Sound FX"
-msgstr ""
+msgstr "Hudba / Zvuky FX"
#: qcsrc/menu/xonotic/credits.qc:108
msgid "Game Code"
-msgstr ""
+msgstr "Kód hry"
#: qcsrc/menu/xonotic/credits.qc:116
msgid "Marketing / PR"
#: qcsrc/menu/xonotic/cvarlist.qc:79 qcsrc/menu/xonotic/cvarlist.qc:89
msgid "will not be saved"
-msgstr ""
+msgstr "nebude uloženo"
#: qcsrc/menu/xonotic/cvarlist.qc:84
msgid "will be saved to config.cfg"
-msgstr ""
+msgstr "bude uloženo do config.cfg"
#: qcsrc/menu/xonotic/cvarlist.qc:93
msgid "private"
-msgstr ""
+msgstr "soukromé"
#: qcsrc/menu/xonotic/cvarlist.qc:95
msgid "engine setting"
-msgstr ""
+msgstr "nastavení enginu"
#: qcsrc/menu/xonotic/cvarlist.qc:97
msgid "read only"
-msgstr ""
+msgstr "jen ke čtení"
#: qcsrc/menu/xonotic/dialog_credits.qc:13
#: qcsrc/menu/xonotic/dialog_monstertools.qc:38
#: qcsrc/menu/xonotic/dialog_settings_misc_cvars.qc:75
#: qcsrc/menu/xonotic/dialog_singleplayer_winner.qc:14
msgid "OK"
-msgstr ""
+msgstr "OK"
#: qcsrc/menu/xonotic/dialog_credits.qh:7
msgid "Credits"
"player name to get started. You can change these options later through the "
"menu system."
msgstr ""
+"Vítej v Xonotic, abys mohl začít, vyber si prosím svůj jazyk a zvol si "
+"jméno. Tyto možnosti si potom můžeš změnit v nastavení."
#: qcsrc/menu/xonotic/dialog_firstrun.qc:45
#: qcsrc/menu/xonotic/dialog_settings_input_userbind.qc:28
msgid "Name:"
-msgstr ""
+msgstr "Jméno:"
#: qcsrc/menu/xonotic/dialog_firstrun.qc:53
#: qcsrc/menu/xonotic/dialog_multiplayer_profile.qc:64
msgid "Name under which you will appear in the game"
-msgstr ""
+msgstr "Jméno pod kterým budeš vystupovat ve hře"
#: qcsrc/menu/xonotic/dialog_firstrun.qc:69
msgid "Text language:"
-msgstr ""
+msgstr "Jazyk textu:"
#: qcsrc/menu/xonotic/dialog_firstrun.qc:78
msgid "Allow player statistics to use your nickname at stats.xonotic.org?"
#: qcsrc/menu/xonotic/dialog_firstrun.qc:84
msgid "Undecided"
-msgstr ""
+msgstr "Nerozhodnutý"
#: qcsrc/menu/xonotic/dialog_firstrun.qc:88
msgid "Save settings"
-msgstr ""
+msgstr "Uložit nastavení"
#: qcsrc/menu/xonotic/dialog_firstrun.qh:6
msgid "Welcome"
-msgstr ""
+msgstr "Vítej"
#: qcsrc/menu/xonotic/dialog_hudpanel_ammo.qc:18
msgid "Ammunition display:"
#: qcsrc/menu/xonotic/dialog_hudpanel_quickmenu.qc:21
#: qcsrc/menu/xonotic/dialog_settings_game_hud.qc:57
msgid "Left"
-msgstr ""
+msgstr "Levý"
#: qcsrc/menu/xonotic/dialog_hudpanel_ammo.qc:34
#: qcsrc/menu/xonotic/dialog_hudpanel_centerprint.qc:34
#: qcsrc/menu/xonotic/dialog_hudpanel_quickmenu.qc:23
#: qcsrc/menu/xonotic/dialog_settings_game_hud.qc:59
msgid "Right"
-msgstr ""
+msgstr "Pravý"
#: qcsrc/menu/xonotic/dialog_hudpanel_ammo.qh:6
msgid "Ammo Panel"
#: qcsrc/menu/xonotic/dialog_hudpanel_quickmenu.qc:22
#: qcsrc/menu/xonotic/dialog_settings_game_weapons.qc:71
msgid "Center"
-msgstr ""
+msgstr "Střed"
#: qcsrc/menu/xonotic/dialog_hudpanel_centerprint.qc:37
msgid "Font scale:"
-msgstr ""
+msgstr "Škála písma"
#: qcsrc/menu/xonotic/dialog_hudpanel_centerprint.qh:6
msgid "Centerprint Panel"
#: qcsrc/menu/xonotic/dialog_hudpanel_chat.qc:20
msgid "Chat size:"
-msgstr ""
+msgstr "Velikost chatu:"
#: qcsrc/menu/xonotic/dialog_hudpanel_chat.qc:24
msgid "Chat lifetime:"
-msgstr ""
+msgstr "Životnost chatu:"
#: qcsrc/menu/xonotic/dialog_hudpanel_chat.qc:28
msgid "Chat beep sound"
-msgstr ""
+msgstr "Zvuk pípnutí chatu"
#: qcsrc/menu/xonotic/dialog_hudpanel_chat.qh:6
msgid "Chat Panel"
-msgstr ""
+msgstr "Panel chatu"
#: qcsrc/menu/xonotic/dialog_hudpanel_engineinfo.qc:16
msgid "Engine info:"
-msgstr ""
+msgstr "Info o enginu:"
#: qcsrc/menu/xonotic/dialog_hudpanel_engineinfo.qc:19
msgid "Use an averaging algorithm for fps"
#: qcsrc/menu/xonotic/dialog_hudpanel_healtharmor.qc:17
msgid "Combine health and armor"
-msgstr ""
+msgstr "Kombinovat životy a brnění"
#: qcsrc/menu/xonotic/dialog_hudpanel_healtharmor.qc:19
#: qcsrc/menu/xonotic/dialog_hudpanel_itemstime.qc:28
#: qcsrc/menu/xonotic/util.qc:778 qcsrc/menu/xonotic/util.qc:794
#: qcsrc/menu/xonotic/util.qc:811
msgid "Disable"
-msgstr ""
+msgstr "Zákázat"
#: qcsrc/menu/xonotic/dialog_hudpanel_itemstime.qc:17
#: qcsrc/menu/xonotic/dialog_hudpanel_pressedkeys.qc:15
#: qcsrc/menu/xonotic/dialog_hudpanel_itemstime.qc:32
msgid "Text/icon ratio:"
-msgstr ""
+msgstr "Poměr textu/ikon:"
#: qcsrc/menu/xonotic/dialog_hudpanel_itemstime.qc:35
msgid "Hide spawned items"
#: qcsrc/menu/xonotic/dialog_hudpanel_itemstime.qc:39
msgid "Dynamic size"
-msgstr ""
+msgstr "Dynamická velikost"
#: qcsrc/menu/xonotic/dialog_hudpanel_itemstime.qh:6
msgid "Items Time Panel"
#: qcsrc/menu/xonotic/dialog_hudpanel_notification.qc:17
msgid "Notifications:"
-msgstr ""
+msgstr "Notifikace:"
#: qcsrc/menu/xonotic/dialog_hudpanel_notification.qc:20
msgid "Also print notifications to the console"
#: qcsrc/menu/xonotic/dialog_hudpanel_notification.qh:6
msgid "Notification Panel"
-msgstr ""
+msgstr "Panel notifikací"
#: qcsrc/menu/xonotic/dialog_hudpanel_physics.qc:16
#: qcsrc/menu/xonotic/util.qc:766
msgid "Enable"
-msgstr ""
+msgstr "Povolit"
#: qcsrc/menu/xonotic/dialog_hudpanel_physics.qc:17
msgid "Enable even observing"
#: qcsrc/menu/xonotic/dialog_hudpanel_physics.qc:37
msgid "Speed:"
-msgstr ""
+msgstr "Rychlost:"
#: qcsrc/menu/xonotic/dialog_hudpanel_physics.qc:38
msgid "Include vertical speed"
#: qcsrc/menu/xonotic/dialog_hudpanel_physics.qc:51
msgid "qu/s"
-msgstr ""
+msgstr "qu/s"
#: qcsrc/menu/xonotic/dialog_hudpanel_physics.qc:52
msgid "m/s"
-msgstr ""
+msgstr "m/s"
#: qcsrc/menu/xonotic/dialog_hudpanel_physics.qc:53
msgid "km/h"
-msgstr ""
+msgstr "km/h"
#: qcsrc/menu/xonotic/dialog_hudpanel_physics.qc:54
msgid "mph"
-msgstr ""
+msgstr "mph"
#: qcsrc/menu/xonotic/dialog_hudpanel_physics.qc:55
msgid "knots"
#: qcsrc/menu/xonotic/dialog_hudpanel_physics.qc:57
msgid "Show"
-msgstr ""
+msgstr "Ukázat"
#: qcsrc/menu/xonotic/dialog_hudpanel_physics.qc:60
msgid "Top speed"
-msgstr ""
+msgstr "Nejvyšší rychlost"
#: qcsrc/menu/xonotic/dialog_hudpanel_physics.qc:66
msgid "Acceleration:"
-msgstr ""
+msgstr "Zrychlování:"
#: qcsrc/menu/xonotic/dialog_hudpanel_physics.qc:67
msgid "Include vertical acceleration"
#: qcsrc/menu/xonotic/dialog_hudpanel_physics.qh:6
msgid "Physics Panel"
-msgstr ""
+msgstr "Panel fyziky"
#: qcsrc/menu/xonotic/dialog_hudpanel_powerups.qh:6
msgid "Powerups Panel"
#: qcsrc/menu/xonotic/dialog_hudpanel_pressedkeys.qc:16
#: qcsrc/menu/xonotic/dialog_hudpanel_radar.qc:17
msgid "Always enable"
-msgstr ""
+msgstr "Vždy povolit"
#: qcsrc/menu/xonotic/dialog_hudpanel_pressedkeys.qc:23
msgid "Forced aspect:"
#: qcsrc/menu/xonotic/dialog_hudpanel_radar.qc:23
msgid "Radar:"
-msgstr ""
+msgstr "Radar:"
#: qcsrc/menu/xonotic/dialog_hudpanel_radar.qc:26
#: qcsrc/menu/xonotic/dialog_hudsetup_exit.qc:68
#: qcsrc/menu/xonotic/dialog_hudpanel_radar.qc:32
msgid "Forward"
-msgstr ""
+msgstr "Vpřed"
#: qcsrc/menu/xonotic/dialog_hudpanel_radar.qc:33
msgid "West"
-msgstr ""
+msgstr "Západ"
#: qcsrc/menu/xonotic/dialog_hudpanel_radar.qc:34
msgid "South"
-msgstr ""
+msgstr "Jih"
#: qcsrc/menu/xonotic/dialog_hudpanel_radar.qc:35
msgid "East"
-msgstr ""
+msgstr "Východ"
#: qcsrc/menu/xonotic/dialog_hudpanel_radar.qc:36
msgid "North"
-msgstr ""
+msgstr "Sever"
#: qcsrc/menu/xonotic/dialog_hudpanel_radar.qc:40
msgid "Scale:"
-msgstr ""
+msgstr "Škála:"
#: qcsrc/menu/xonotic/dialog_hudpanel_radar.qc:44
msgid "Zoom mode:"
-msgstr ""
+msgstr "Režim přibližování:"
#: qcsrc/menu/xonotic/dialog_hudpanel_radar.qc:46
msgid "Zoomed in"
-msgstr ""
+msgstr "Přiblížen"
#: qcsrc/menu/xonotic/dialog_hudpanel_radar.qc:47
msgid "Zoomed out"
-msgstr ""
+msgstr "Oddálený"
#: qcsrc/menu/xonotic/dialog_hudpanel_radar.qc:48
msgid "Always zoomed"
#: qcsrc/menu/xonotic/dialog_settings_game_weapons.qc:40
msgid "Up"
-msgstr ""
+msgstr "Nahoru"
#: qcsrc/menu/xonotic/dialog_settings_game_weapons.qc:44
msgid "Down"
-msgstr ""
+msgstr "Dolů"
#: qcsrc/menu/xonotic/dialog_settings_game_weapons.qc:50
msgid "Use priority list for weapon cycling"
#: qcsrc/menu/xonotic/dialog_settings_game_weapons.qc:53
msgid "Cycle through only usable weapon selections"
-msgstr ""
+msgstr "Cyklovat jen mezi použitelnými výběry zbraní"
#: qcsrc/menu/xonotic/dialog_settings_game_weapons.qc:57
msgid "Auto switch weapons on pickup"
-msgstr ""
+msgstr "Automaticky měnit zbraň po sebrání"
#: qcsrc/menu/xonotic/dialog_settings_game_weapons.qc:58
msgid ""
"Automatically switch to newly picked up weapons if they are better than what "
"you are carrying"
msgstr ""
+"Automaticky změnit na právě sebranou zbraň, jestli je novější lepší než "
+"starší"
#: qcsrc/menu/xonotic/dialog_settings_game_weapons.qc:61
msgid "Release attack buttons when you switch weapons"
#: qcsrc/menu/xonotic/dialog_settings_input.qc:34
msgid "Key Bindings"
-msgstr ""
+msgstr "Klávesové zkratky"
#: qcsrc/menu/xonotic/dialog_settings_input.qc:38
msgid "Change key..."
-msgstr ""
+msgstr "Změnit klávesu"
#: qcsrc/menu/xonotic/dialog_settings_input.qc:42
msgid "Edit..."
-msgstr ""
+msgstr "Upravit"
#: qcsrc/menu/xonotic/dialog_settings_input.qc:48
msgid "Clear"
-msgstr ""
+msgstr "Vymazat"
#: qcsrc/menu/xonotic/dialog_settings_input.qc:53
msgid "Reset all"
-msgstr ""
+msgstr "Resetovat vše"
#: qcsrc/menu/xonotic/dialog_settings_input.qc:58
msgid "Mouse"
-msgstr ""
+msgstr "Myš"
#: qcsrc/menu/xonotic/dialog_settings_input.qc:60
msgid "Sensitivity:"
-msgstr ""
+msgstr "Sensitivita:"
#: qcsrc/menu/xonotic/dialog_settings_input.qc:62
msgid "Mouse speed multiplier"
-msgstr ""
+msgstr "Násobič rychlosti myši"
#: qcsrc/menu/xonotic/dialog_settings_input.qc:64
msgid "Smooth aiming"
-msgstr ""
+msgstr "Jemné míření"
#: qcsrc/menu/xonotic/dialog_settings_input.qc:65
msgid "Smoothes the mouse movement, but makes aiming slightly less responsive"
#: qcsrc/menu/xonotic/dialog_settings_input.qc:67
msgid "Invert aiming"
-msgstr ""
+msgstr "Invertovat míření"
#: qcsrc/menu/xonotic/dialog_settings_input.qc:68
msgid "Invert mouse movement on the Y-axis"
#: qcsrc/menu/xonotic/dialog_settings_input.qc:75
msgid "Enable built in mouse acceleration"
-msgstr ""
+msgstr "Použít zabudované zrychlení myši"
#: qcsrc/menu/xonotic/dialog_settings_input.qc:79
#: qcsrc/menu/xonotic/dialog_settings_input.qc:83
#: qcsrc/menu/xonotic/dialog_settings_input.qc:86
msgid "Disable system mouse acceleration"
-msgstr ""
+msgstr "Zakázat systémové zrychlení myši"
#: qcsrc/menu/xonotic/dialog_settings_input.qc:80
msgid "Make use of DGA mouse input"
#: qcsrc/menu/xonotic/dialog_settings_input.qc:103
msgid "Air only"
-msgstr ""
+msgstr "Jen vzduch"
#: qcsrc/menu/xonotic/dialog_settings_input.qc:104
msgid "JPJUMP^All"
#: qcsrc/menu/xonotic/dialog_settings_input.qc:115
#: qcsrc/menu/xonotic/dialog_settings_input.qc:120
msgid "Use joystick input"
-msgstr ""
+msgstr "Použít vstup joysticku"
#: qcsrc/menu/xonotic/dialog_settings_input_userbind.qc:31
msgid "Command when pressed:"
#: qcsrc/menu/xonotic/dialog_settings_input_userbind.qc:40
msgid "Cancel"
-msgstr ""
+msgstr "Zrušit"
#: qcsrc/menu/xonotic/dialog_settings_input_userbind.qh:7
msgid "User defined key bind"
-msgstr ""
+msgstr "Uživatelem definovaná kláv. zkratka"
#: qcsrc/menu/xonotic/dialog_settings_misc.qc:11
#, c-format
msgid "%d fps"
-msgstr ""
+msgstr "%d fps"
#: qcsrc/menu/xonotic/dialog_settings_misc.qc:12
#, c-format
msgid "%d KB/s"
-msgstr ""
+msgstr "%d KB/s"
#: qcsrc/menu/xonotic/dialog_settings_misc.qc:13
#, c-format
msgid "%d MB/s"
-msgstr ""
+msgstr "%d MB/s"
#: qcsrc/menu/xonotic/dialog_settings_misc.qc:27
msgid "Network"
-msgstr ""
+msgstr "Síť"
#: qcsrc/menu/xonotic/dialog_settings_misc.qc:29
msgid "Client UDP port:"
#: qcsrc/menu/xonotic/dialog_settings_misc.qc:36
msgid "Specify your network speed"
-msgstr ""
+msgstr "Upřesní svou rychlost internetu"
#: qcsrc/menu/xonotic/dialog_settings_misc.qc:37
msgid "56k"
#: qcsrc/menu/xonotic/dialog_settings_misc.qc:38
msgid "ISDN"
-msgstr ""
+msgstr "ISDN"
#: qcsrc/menu/xonotic/dialog_settings_misc.qc:39
msgid "Slow ADSL"
-msgstr ""
+msgstr "Pomalé ADSL"
#: qcsrc/menu/xonotic/dialog_settings_misc.qc:40
msgid "Fast ADSL"
-msgstr ""
+msgstr "Rychlé ADSL"
#: qcsrc/menu/xonotic/dialog_settings_misc.qc:41
msgid "Broadband"
#: qcsrc/menu/xonotic/dialog_settings_misc.qc:52
msgid "Downloads:"
-msgstr ""
+msgstr "Stahování:"
#: qcsrc/menu/xonotic/dialog_settings_misc.qc:54
msgid "Maximum number of concurrent HTTP/FTP downloads"
#: qcsrc/menu/xonotic/dialog_settings_misc.qc:56
msgid "Download speed:"
-msgstr ""
+msgstr "Rychlost stahování:"
#: qcsrc/menu/xonotic/dialog_settings_misc.qc:69
msgid "Local latency:"
#: qcsrc/menu/xonotic/dialog_settings_misc.qc:87
msgid "Maximum:"
-msgstr ""
+msgstr "Maximum:"
#: qcsrc/menu/xonotic/dialog_settings_misc.qc:99
msgid "MAXFPS^Unlimited"
#: qcsrc/menu/xonotic/dialog_settings_misc.qc:102
msgid "Target:"
-msgstr ""
+msgstr "Cíl:"
#: qcsrc/menu/xonotic/dialog_settings_misc.qc:104
msgid "TRGT^Disabled"
#: qcsrc/menu/xonotic/dialog_settings_misc.qc:129
msgid "Show frames per second"
-msgstr ""
+msgstr "Ukázat snímky za sekundu"
#: qcsrc/menu/xonotic/dialog_settings_misc.qc:130
msgid "Show your rendered frames per second"
-msgstr ""
+msgstr "Ukáže tvé vyrenderované snímky za sekundu"
#: qcsrc/menu/xonotic/dialog_settings_misc.qc:135
msgid "Menu tooltips:"
#: qcsrc/menu/xonotic/dialog_settings_misc.qc:143
msgid "Show current date and time"
-msgstr ""
+msgstr "Ukázat aktuální datum a čas"
#: qcsrc/menu/xonotic/dialog_settings_misc.qc:144
msgid "Show current date and time of day, useful on screenshots"
-msgstr ""
+msgstr "Ukázat aktuální datum a čas, užitečné na snímcích obrazovky"
#: qcsrc/menu/xonotic/dialog_settings_misc.qc:147
msgid "Enable developer mode"
-msgstr ""
+msgstr "Povolit vývojářský režim"
#: qcsrc/menu/xonotic/dialog_settings_misc.qc:151
msgid "Advanced settings..."
-msgstr ""
+msgstr "Pokročilé nastavení..."
#: qcsrc/menu/xonotic/dialog_settings_misc.qc:152
msgid "Advanced settings where you can tweak every single variable of the game"
-msgstr ""
+msgstr "Pokročilé nastavení, kde můžeš měnit každou proměnou ve hře"
#: qcsrc/menu/xonotic/dialog_settings_misc.qc:157
#: qcsrc/menu/xonotic/dialog_settings_misc_reset.qh:6
#: qcsrc/menu/xonotic/dialog_settings_misc_cvars.qc:31
msgid "Cvar filter:"
-msgstr ""
+msgstr "Filtr cvar:"
#: qcsrc/menu/xonotic/dialog_settings_misc_cvars.qc:38
msgid "Modified cvars only"
-msgstr ""
+msgstr "Jen modifikované cvary"
#: qcsrc/menu/xonotic/dialog_settings_misc_cvars.qc:45
msgid "Setting:"
-msgstr ""
+msgstr "Nastavení:"
#: qcsrc/menu/xonotic/dialog_settings_misc_cvars.qc:49
msgid "Type:"
-msgstr ""
+msgstr "Typ:"
#: qcsrc/menu/xonotic/dialog_settings_misc_cvars.qc:53
msgid "Value:"
-msgstr ""
+msgstr "Hodnota:"
#: qcsrc/menu/xonotic/dialog_settings_misc_cvars.qc:70
msgid "Description:"
-msgstr ""
+msgstr "Popis:"
#: qcsrc/menu/xonotic/dialog_settings_misc_cvars.qh:7
msgid "Advanced settings"
-msgstr ""
+msgstr "Pokročilé nastavení"
#: qcsrc/menu/xonotic/dialog_settings_misc_reset.qc:11
msgid "Are you sure you want to reset all settings?"
-msgstr ""
+msgstr "Jsi si jistý, že chceš resetovat všechna nastavení?"
#: qcsrc/menu/xonotic/dialog_settings_misc_reset.qc:13
msgid "This will create a backup config in your data directory"
-msgstr ""
+msgstr "Tohle vytvoří zálohu configu v tvé data složce"
#: qcsrc/menu/xonotic/dialog_settings_user.qc:25
msgid "Menu Skins"
-msgstr ""
+msgstr "Skiny menu"
#: qcsrc/menu/xonotic/dialog_settings_user.qc:64
msgid "Text Language"
#: qcsrc/menu/xonotic/dialog_settings_user.qc:69
msgid "Set language"
-msgstr ""
+msgstr "Nastavit jazyk"
#: qcsrc/menu/xonotic/dialog_settings_user.qc:74
msgid "Disable gore effects and harsh language"
-msgstr ""
+msgstr "Zakázat násilí a sprostý jazyk"
#: qcsrc/menu/xonotic/dialog_settings_user.qc:75
msgid "Replace blood and gibs with content that does not have any gore effects"
#: qcsrc/menu/xonotic/dialog_settings_user_languagewarning.qc:16
msgid "Disconnect now"
-msgstr ""
+msgstr "Odpojit teď"
#: qcsrc/menu/xonotic/dialog_settings_user_languagewarning.qc:17
msgid "Switch language"
-msgstr ""
+msgstr "Změnit jazyk"
#: qcsrc/menu/xonotic/dialog_settings_user_languagewarning.qh:6
msgid "Warning"
-msgstr ""
+msgstr "Varování"
#: qcsrc/menu/xonotic/dialog_settings_video.qc:33
msgid "Resolution:"
-msgstr ""
+msgstr "Rozlišení:"
#: qcsrc/menu/xonotic/dialog_settings_video.qc:37
msgid "Font/UI size:"
-msgstr ""
+msgstr "Velikost písma/UI"
#: qcsrc/menu/xonotic/dialog_settings_video.qc:39
msgid "SZ^Unreadable"
#: qcsrc/menu/xonotic/dialog_settings_video.qc:51
msgid "Color depth:"
-msgstr ""
+msgstr "Hloubka barev:"
#: qcsrc/menu/xonotic/dialog_settings_video.qc:53
msgid "How many bits per pixel (BPP) to render at, 32 is recommended"
#: qcsrc/menu/xonotic/dialog_settings_video.qc:54
msgid "16bit"
-msgstr ""
+msgstr "16bitový"
#: qcsrc/menu/xonotic/dialog_settings_video.qc:55
msgid "32bit"
-msgstr ""
+msgstr "32bitový"
#: qcsrc/menu/xonotic/dialog_settings_video.qc:59
msgid "Full screen"
-msgstr ""
+msgstr "Celá obrazovka"
#: qcsrc/menu/xonotic/dialog_settings_video.qc:61
msgid "Vertical Synchronization"
-msgstr ""
+msgstr "Vertikální synchronizace"
#: qcsrc/menu/xonotic/dialog_settings_video.qc:62
msgid ""
#: qcsrc/menu/xonotic/dialog_settings_video.qc:73
msgid "Anisotropic filtering quality"
-msgstr ""
+msgstr "Kvalita anizotropního filtrování"
#: qcsrc/menu/xonotic/dialog_settings_video.qc:74
msgid "ANISO^Disabled"
#: qcsrc/menu/xonotic/dialog_settings_video.qc:75
#: qcsrc/menu/xonotic/dialog_settings_video.qc:86
msgid "2x"
-msgstr ""
+msgstr "2x"
#: qcsrc/menu/xonotic/dialog_settings_video.qc:76
#: qcsrc/menu/xonotic/dialog_settings_video.qc:87
msgid "4x"
-msgstr ""
+msgstr "4x"
#: qcsrc/menu/xonotic/dialog_settings_video.qc:77
msgid "8x"
-msgstr ""
+msgstr "8x"
#: qcsrc/menu/xonotic/dialog_settings_video.qc:78
msgid "16x"
-msgstr ""
+msgstr "16x"
#: qcsrc/menu/xonotic/dialog_settings_video.qc:81
msgid "Antialiasing:"
#: qcsrc/menu/xonotic/dialog_settings_video.qc:97
msgid "Depth first:"
-msgstr ""
+msgstr "Hloubka prvně:"
#: qcsrc/menu/xonotic/dialog_settings_video.qc:99
msgid ""
#: qcsrc/menu/xonotic/dialog_settings_video.qc:119
msgid "Brightness:"
-msgstr ""
+msgstr "Jas:"
#: qcsrc/menu/xonotic/dialog_settings_video.qc:121
msgid "Brightness of black"
-msgstr ""
+msgstr "Jas černé"
#: qcsrc/menu/xonotic/dialog_settings_video.qc:123
msgid "Contrast:"
-msgstr ""
+msgstr "Kontrast:"
#: qcsrc/menu/xonotic/dialog_settings_video.qc:125
msgid "Brightness of white"
-msgstr ""
+msgstr "Jas bílé"
#: qcsrc/menu/xonotic/dialog_settings_video.qc:127
msgid "Gamma:"
-msgstr ""
+msgstr "Gamma:"
#: qcsrc/menu/xonotic/dialog_settings_video.qc:130
msgid ""
#: qcsrc/menu/xonotic/dialog_settings_video.qc:136
msgid "By how much to multiply the contrast in dark areas"
-msgstr ""
+msgstr "Kolikati násobit kontrast v tmavých oblastech"
#: qcsrc/menu/xonotic/dialog_settings_video.qc:139
msgid "Saturation:"
-msgstr ""
+msgstr "Sytost:"
#: qcsrc/menu/xonotic/dialog_settings_video.qc:142
msgid ""
"Saturation adjustment (0 = grayscale, 1 = normal, 2 = oversaturated), "
"requires GLSL color control"
msgstr ""
+"Upravení sytosti (0 = černobílé, 1 = normální, 2 = přesycené), potřebuje "
+"kontrolování barev GLSL "
#: qcsrc/menu/xonotic/dialog_settings_video.qc:146
msgid "LIT^Ambient:"
#: qcsrc/menu/xonotic/dialog_settings_video.qc:150
msgid "Intensity:"
-msgstr ""
+msgstr "Intenzita:"
#: qcsrc/menu/xonotic/dialog_settings_video.qc:152
msgid "Global rendering brightness"
-msgstr ""
+msgstr "Globální jas renderování"
#: qcsrc/menu/xonotic/dialog_settings_video.qc:155
msgid "Wait for GPU to finish each frame"
-msgstr ""
+msgstr "Počkat než GPU dokončí každý snímek"
#: qcsrc/menu/xonotic/dialog_settings_video.qc:156
msgid ""
#: qcsrc/menu/xonotic/dialog_settings_video.qc:158
msgid "Use OpenGL 2.0 shaders (GLSL)"
-msgstr ""
+msgstr "Použít OpenGL 2.0 shadery (GLSL)"
#: qcsrc/menu/xonotic/dialog_settings_video.qc:162
msgid "Use GLSL to handle color control"
#: qcsrc/menu/xonotic/dialog_singleplayer.qc:110
msgid "Instant action! (random map with bots)"
-msgstr ""
+msgstr "Instantní akce! (náhodná mapa s boty)"
#: qcsrc/menu/xonotic/dialog_singleplayer.qc:117
msgid "???"
#: qcsrc/menu/xonotic/dialog_singleplayer.qc:135
msgid "Start Singleplayer!"
-msgstr ""
+msgstr "Začít hru jednoho hráče"
#: qcsrc/menu/xonotic/dialog_singleplayer.qh:6
msgid "Singleplayer"
-msgstr ""
+msgstr "Hra jednoho hráče"
#: qcsrc/menu/xonotic/dialog_singleplayer.qh:7
msgid "Play the singleplayer campaign or instant action matches against bots"
#: qcsrc/menu/xonotic/dialog_singleplayer_winner.qh:7
msgid "Winner"
-msgstr ""
+msgstr "Vítěz"
#: qcsrc/menu/xonotic/dialog_teamselect.qc:32
msgid "join 'best' team (auto-select)"
-msgstr ""
+msgstr "připojit se k 'nejlepšímu' týmu (automatický výběr)"
#: qcsrc/menu/xonotic/dialog_teamselect.qc:33
msgid "Autoselect team (recommended)"
-msgstr ""
+msgstr "Automaticky vybrat tým (doporučeno)"
#: qcsrc/menu/xonotic/dialog_teamselect.qc:37
msgid "red"
-msgstr ""
+msgstr "červená"
#: qcsrc/menu/xonotic/dialog_teamselect.qc:38
msgid "blue"
-msgstr ""
+msgstr "modrá"
#: qcsrc/menu/xonotic/dialog_teamselect.qc:39
msgid "yellow"
-msgstr ""
+msgstr "žlutá"
#: qcsrc/menu/xonotic/dialog_teamselect.qc:40
msgid "pink"
-msgstr ""
+msgstr "růžová"
#: qcsrc/menu/xonotic/dialog_teamselect.qc:43
msgid "spectate"
#: qcsrc/menu/xonotic/dialog_teamselect.qh:7
msgid "Team Selection"
-msgstr ""
+msgstr "Vybírání týmů"
#: qcsrc/menu/xonotic/dialog_uid2name.qc:10
msgid "Allow player statistics to use your nickname?"
-msgstr ""
+msgstr "Povolit používání Vaší přezdívky v hráčské statistice?"
#: qcsrc/menu/xonotic/dialog_uid2name.qc:12
msgid "Answering \"No\" you will appear as \"Anonymous player\""
-msgstr ""
+msgstr "Pokud odpovíš \"ne\", objevíš se jako \"Anonymní hráč\""
#: qcsrc/menu/xonotic/gametypelist.qc:87
msgid "teamplay"
#: qcsrc/menu/xonotic/keybinder.qc:36
msgid "forward"
-msgstr ""
+msgstr "dopředu"
#: qcsrc/menu/xonotic/keybinder.qc:37
msgid "backpedal"
#: qcsrc/menu/xonotic/keybinder.qc:43
msgid "jetpack"
-msgstr ""
+msgstr "jetpack"
#: qcsrc/menu/xonotic/keybinder.qc:46
msgid "Attacking"
-msgstr ""
+msgstr "Útočení"
#: qcsrc/menu/xonotic/keybinder.qc:52
msgid "WEAPON^previous"
#: qcsrc/menu/xonotic/keybinder.qc:88
msgid "show scores"
-msgstr ""
+msgstr "ukázat skóre"
#: qcsrc/menu/xonotic/keybinder.qc:89
msgid "screen shot"
-msgstr ""
+msgstr "snímek obrazovky"
#: qcsrc/menu/xonotic/keybinder.qc:90
msgid "maximize radar"
-msgstr ""
+msgstr "maximalizovat radar"
#: qcsrc/menu/xonotic/keybinder.qc:91
msgid "3rd person view"
-msgstr ""
+msgstr "pohled 3. osoby"
#: qcsrc/menu/xonotic/keybinder.qc:92
msgid "enter spectator mode"
#: qcsrc/menu/xonotic/keybinder.qc:95
msgid "Communicate"
-msgstr ""
+msgstr "Komunikovat"
#: qcsrc/menu/xonotic/keybinder.qc:96
msgid "public chat"
-msgstr ""
+msgstr "veřejný chat"
#: qcsrc/menu/xonotic/keybinder.qc:97 qcsrc/menu/xonotic/keybinder.qc:115
msgid "team chat"
-msgstr ""
+msgstr "týmový chat"
#: qcsrc/menu/xonotic/keybinder.qc:98
msgid "show chat history"
-msgstr ""
+msgstr "ukázat historii chatu"
#: qcsrc/menu/xonotic/keybinder.qc:99
msgid "vote YES"
-msgstr ""
+msgstr "volit ANO"
#: qcsrc/menu/xonotic/keybinder.qc:100
msgid "vote NO"
-msgstr ""
+msgstr "volit NE"
#: qcsrc/menu/xonotic/keybinder.qc:104
msgid "Client"
-msgstr ""
+msgstr "Klient"
#: qcsrc/menu/xonotic/keybinder.qc:108
msgid "enter console"
-msgstr ""
+msgstr "vstoupit do konzole"
#: qcsrc/menu/xonotic/keybinder.qc:110
msgid "disconnect"
-msgstr ""
+msgstr "odpojit"
#: qcsrc/menu/xonotic/keybinder.qc:111
msgid "quit"
-msgstr ""
+msgstr "opustit"
#: qcsrc/menu/xonotic/keybinder.qc:116
msgid "auto-join team"
#: qcsrc/menu/xonotic/mainwindow.qc:65 qcsrc/menu/xonotic/mainwindow.qc:68
msgid "Do not press this button again!"
-msgstr ""
+msgstr "Neklikej znova na tohle tlačítko!"
#: qcsrc/menu/xonotic/maplist.qc:288
msgid ""
#: qcsrc/menu/xonotic/playermodel.qc:161
msgid "<no model found>"
-msgstr ""
+msgstr "<no model found>"
#: qcsrc/menu/xonotic/serverlist.qc:267
msgid "Favorite"
-msgstr ""
+msgstr "Oblíbené"
#: qcsrc/menu/xonotic/serverlist.qc:268
msgid ""
"Bookmark the currently highlighted server so that it's faster to find in the "
"future"
msgstr ""
+"Přidat označený server do záložek, aby byl jednodušší najít v budoucnosti."
#: qcsrc/menu/xonotic/serverlist.qc:747
msgid "Ping"
-msgstr ""
+msgstr "Odezva"
#: qcsrc/menu/xonotic/serverlist.qc:748
msgid "Hostname"
#: qcsrc/menu/xonotic/serverlist.qc:749
msgid "Map"
-msgstr ""
+msgstr "Mapa"
#: qcsrc/menu/xonotic/serverlist.qc:750
msgid "Type"
-msgstr ""
+msgstr "Typ"
#: qcsrc/menu/xonotic/serverlist.qc:1043
#, c-format
#: qcsrc/menu/xonotic/serverlist.qc:1043
msgid "encryption:"
-msgstr ""
+msgstr "šifrování:"
#: qcsrc/menu/xonotic/serverlist.qc:1044
#, c-format
#: qcsrc/menu/xonotic/serverlist.qc:1046
#, c-format
msgid "modified settings"
-msgstr ""
+msgstr "modifikované nastavení"
#: qcsrc/menu/xonotic/serverlist.qc:1046
#, c-format
msgid "official settings"
-msgstr ""
+msgstr "oficiální nastavení"
#: qcsrc/menu/xonotic/serverlist.qc:1048
msgid "stats disabled"
-msgstr ""
+msgstr "statistiky zakázány"
#: qcsrc/menu/xonotic/serverlist.qc:1048
msgid "stats enabled"
-msgstr ""
+msgstr "statistiky povoleny"
#: qcsrc/menu/xonotic/serverlist.qh:152
msgid "SLCAT^Favorites"
#: qcsrc/menu/xonotic/skinlist.qc:70
msgid "<TITLE>"
-msgstr ""
+msgstr "<TITLE>"
#: qcsrc/menu/xonotic/skinlist.qc:71
msgid "<AUTHOR>"
-msgstr ""
+msgstr "<AUTHOR>"
#: qcsrc/menu/xonotic/slider_decibels.qc:72
msgid "VOL^MAX"
#: qcsrc/menu/xonotic/slider_decibels.qc:82
#, c-format
msgid "%s dB"
-msgstr ""
+msgstr "%s db"
#: qcsrc/menu/xonotic/slider_particles.qc:14
msgid "PART^OMG"
#: qcsrc/menu/xonotic/slider_resolution.qc:115
msgid "Screen resolution"
-msgstr ""
+msgstr "Rozlišení obrazovky"
#: qcsrc/menu/xonotic/slider_sbfadetime.qc:13
msgid "PART^Slow"
#: qcsrc/menu/xonotic/statslist.qc:29
msgid "January"
-msgstr ""
+msgstr "Leden"
#: qcsrc/menu/xonotic/statslist.qc:30
msgid "February"
-msgstr ""
+msgstr "Únor"
#: qcsrc/menu/xonotic/statslist.qc:31
msgid "March"
-msgstr ""
+msgstr "Březen"
#: qcsrc/menu/xonotic/statslist.qc:32
msgid "April"
-msgstr ""
+msgstr "Duben"
#: qcsrc/menu/xonotic/statslist.qc:33
msgid "May"
-msgstr ""
+msgstr "Květen"
#: qcsrc/menu/xonotic/statslist.qc:34
msgid "June"
-msgstr ""
+msgstr "Červen"
#: qcsrc/menu/xonotic/statslist.qc:35
msgid "July"
-msgstr ""
+msgstr "Červenec"
#: qcsrc/menu/xonotic/statslist.qc:36
msgid "August"
-msgstr ""
+msgstr "Srpen"
#: qcsrc/menu/xonotic/statslist.qc:37
msgid "September"
-msgstr ""
+msgstr "Září"
#: qcsrc/menu/xonotic/statslist.qc:38
msgid "October"
-msgstr ""
+msgstr "Říjen"
#: qcsrc/menu/xonotic/statslist.qc:39
msgid "November"
-msgstr ""
+msgstr "Listopad"
#: qcsrc/menu/xonotic/statslist.qc:40
msgid "December"
-msgstr ""
+msgstr "Prosinec"
#: qcsrc/menu/xonotic/statslist.qc:96
msgid "Joined:"
#: qcsrc/menu/xonotic/statslist.qc:103
msgid "Last match:"
-msgstr ""
+msgstr "Poslední zápas:"
#: qcsrc/menu/xonotic/statslist.qc:110
msgid "Time played:"
-msgstr ""
+msgstr "Odehraný čas:"
#: qcsrc/menu/xonotic/statslist.qc:117 qcsrc/menu/xonotic/statslist.qc:230
msgid "Favorite map:"
-msgstr ""
+msgstr "Oblíbená mapa:"
#: qcsrc/menu/xonotic/statslist.qc:149 qcsrc/menu/xonotic/statslist.qc:201
#: qcsrc/menu/xonotic/statslist.qc:244
#, c-format
msgid "Matches:"
-msgstr ""
+msgstr "Zápasy:"
#: qcsrc/menu/xonotic/statslist.qc:154
#, c-format
msgid "Wins/Losses:"
-msgstr ""
+msgstr "Výhry/Prohry:"
#: qcsrc/menu/xonotic/statslist.qc:155
#, c-format
#: qcsrc/menu/xonotic/util.qc:417
msgid "Update can be downloaded at:"
-msgstr ""
+msgstr "Update je ke stažení na:"
#: qcsrc/menu/xonotic/util.qc:525
msgid "Autogenerating mapinfo for newly added maps..."
#: qcsrc/menu/xonotic/util.qc:574
#, c-format
msgid "Update to %s now!"
-msgstr ""
+msgstr "Updatuj na 1%s teď!"
#: qcsrc/menu/xonotic/util.qc:658
msgid ""
#: qcsrc/menu/xonotic/util.qc:788
msgid "Use default"
-msgstr ""
+msgstr "Použít výchozí"
#: qcsrc/menu/xonotic/util.qc:808
msgid "Team Color:"
-msgstr ""
+msgstr "Barva týmu:"
# Translators:
# afba88cf42cbdff57149d4a6d53a94f9, 2018
# Wuzzy <almikes@aol.com>, 2016-2018
-# Brot Brot <noah.schluessel@gmail.com>, 2015
+# TheTrueBrot <noah.schluessel@gmail.com>, 2015
# cvcxc <hans.andersen72@yahoo.com>, 2013
# divVerent <divVerent@xonotic.org>, 2011,2013
# divVerent <divVerent@xonotic.org>, 2013-2015
# divVerent <divVerent@xonotic.org>, 2011
# Sless <sless@gmx.net>, 2014
# Sless <sless@gmx.net>, 2014
+# TheTrueBrot <noah.schluessel@gmail.com>, 2015
# Wuzzy <almikes@aol.com>, 2016
# Yepoleb <huberg18@gmail.com>, 2013
msgid ""
"Project-Id-Version: Xonotic\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2019-05-19 07:23+0200\n"
-"PO-Revision-Date: 2019-10-06 00:10+0000\n"
+"PO-Revision-Date: 2019-11-09 23:02+0000\n"
"Last-Translator: Wuzzy <almikes@aol.com>\n"
"Language-Team: German (http://www.transifex.com/team-xonotic/xonotic/"
"language/de/)\n"
#: qcsrc/client/hud/panel/infomessages.qc:229
msgid "^3CTRL ^7to disable collision testing, ^3SHIFT ^7and"
-msgstr "^3CTRL^7, um Kollisionstests zu deaktivieren, ^3SHIFT ^7und"
+msgstr "^3STRG^7, um Kollisionstests zu deaktivieren, ^3UMSCHALT ^7und"
#: qcsrc/client/hud/panel/infomessages.qc:230
msgid "^3ALT ^7+ ^3ARROW KEYS ^7for fine adjustments."
#: qcsrc/common/mutators/mutator/buffs/all.inc:43
msgid "Medic"
-msgstr "Medizin"
+msgstr "Sanitäter"
#: qcsrc/common/mutators/mutator/buffs/all.inc:54
msgid "Bash"
#: qcsrc/common/mutators/mutator/nades/nades.inc:50
msgid "Heal grenade"
-msgstr "Heilgranate"
+msgstr "Medizingranate"
#: qcsrc/common/mutators/mutator/nades/nades.inc:58
msgid "Monster grenade"
#: qcsrc/common/notifications/all.inc:274
#, c-format
msgid "^BG%s%s^K1 was killed by ^BG%s^K1's ^BG%s^K1 buff ^K1%s%s"
-msgstr "^BG%s%s^K1 wurde durch ^BG%s^K1s ^BG%s^K1 Bonus getötet ^K1%s%s"
+msgstr "^BG%s%s^K1 wurde durch ^BG%s^K1s ^BG%s^K1-Bonus getötet ^K1%s%s"
#: qcsrc/common/notifications/all.inc:274
#, c-format
msgid "^BG%s%s^K1 was scored against by ^BG%s^K1's ^BG%s^K1 buff ^K1%s%s"
msgstr ""
-"^BG%s%s^K1 wurde durch ^BG%s^K1s ^BG%s^K1 Bonus zu Punkten verarbeitet ^K1%s"
+"^BG%s%s^K1 wurde durch ^BG%s^K1s ^BG%s^K1-Bonus zu Punkten verarbeitet ^K1%s"
"%s"
#: qcsrc/common/notifications/all.inc:275
#: qcsrc/common/notifications/all.inc:282
#, c-format
msgid "^BG%s%s^K1 got too close to a napalm explosion%s%s"
-msgstr "^BG%s%s^K1 trat einer Napalm-Explosion ein wenig zu nahe%s%s"
+msgstr "^BG%s%s^K1 trat einer Napalmexplosion ein wenig zu nahe%s%s"
#: qcsrc/common/notifications/all.inc:282
#, c-format
msgid "^BG%s%s^K1 was burned to death by ^BG%s^K1's Napalm Nade%s%s"
-msgstr "^BG%s%s^K1 wurde von ^BG%s^K1s Napalm-Granate abgefackelt%s%s"
+msgstr "^BG%s%s^K1 wurde von ^BG%s^K1s Napalmgranate abgefackelt%s%s"
#: qcsrc/common/notifications/all.inc:283
#, c-format
#, c-format
msgid ""
"^BG%s^K1 decided to take a look at the results of their napalm explosion%s%s"
-msgstr "^BG%s^K1 wollte sich so eine Napalm-Explosion mal genauer ansehen%s%s"
+msgstr "^BG%s^K1 wollte sich so eine Napalmexplosion mal genauer ansehen%s%s"
#: qcsrc/common/notifications/all.inc:324
#, c-format
msgid "^BG%s^K1 was burned to death by their own Napalm Nade%s%s"
-msgstr "^BG%s^K1 wurde von der eigenen Napalm-Granate verbrannt%s%s"
+msgstr "^BG%s^K1 wurde von der eigenen Napalmgranate verbrannt%s%s"
#: qcsrc/common/notifications/all.inc:326
#, c-format
#: qcsrc/common/notifications/all.inc:327
#, c-format
msgid "^BG%s^K1's Healing Nade didn't quite heal them%s%s"
-msgstr "^BG%s^K1s Medizin-Granate war nicht sehr heilsam%s%s"
+msgstr "^BG%s^K1s Medizingranate war nicht sehr heilsam%s%s"
#: qcsrc/common/notifications/all.inc:328
#, c-format
#: qcsrc/common/notifications/all.inc:359
#, c-format
msgid "^BG%s^K1 was betrayed by ^BG%s^K1%s%s"
-msgstr "^BG%s^K1 wurde von ^BG%s^K1 betrogen%s%s"
+msgstr "^BG%s^K1 wurde von ^BG%s^K1 verraten%s%s"
#: qcsrc/common/notifications/all.inc:361
#, c-format
#: qcsrc/common/notifications/all.inc:363
#, c-format
msgid "^BG%s^K1 was frozen by ^BG%s"
-msgstr "^BG%s^K1 wurde von ^BG vereist%s"
+msgstr "^BG%s^K1 wurde von ^BG%s^K1 vereist"
#: qcsrc/common/notifications/all.inc:364
#, c-format
msgid "^BG%s^K3 was revived by ^BG%s"
-msgstr "^BG%s^K3 wurde von ^BG wiederbelebt%s"
+msgstr "^BG%s^K3 wurde von ^BG%s^K3 wiederbelebt"
#: qcsrc/common/notifications/all.inc:365
#, c-format
#: qcsrc/common/notifications/all.inc:563
msgid "^BGYou captured the flag!"
-msgstr "^BGDu hast die Flagge erobert"
+msgstr "^BGDu hast die Flagge erobert!"
#: qcsrc/common/notifications/all.inc:564
#, c-format
#: qcsrc/common/notifications/all.inc:581
#, c-format
msgid "^BGThe %senemy^BG got their flag! Retrieve it!"
-msgstr "^BGDer %sFeind^BG hat seine Flagge! Hole sie!"
+msgstr "^BGDer %sFeind^BG hat seine Flagge! Hol sie!"
#: qcsrc/common/notifications/all.inc:582
#, c-format
msgid "^BGThe %senemy (^BG%s%s)^BG got their flag! Retrieve it!"
-msgstr "^BGDer %sFeind (^BG%s%s)^BG hat seine Flagge! Hole sie!"
+msgstr "^BGDer %sFeind (^BG%s%s)^BG hat seine Flagge! Hol sie!"
#: qcsrc/common/notifications/all.inc:583
#, c-format
#: qcsrc/common/notifications/all.inc:645
msgid "^K1Hanging around a napalm explosion is bad!"
-msgstr "^K1Bei einer Napalm-Explosion herumzuhängen ist schlecht!"
+msgstr "^K1Es ist schlecht, bei einer Napalmexplosion herumzuhängen!"
#: qcsrc/common/notifications/all.inc:646
msgid "^K1You felt a little chilly!"
#: qcsrc/common/notifications/all.inc:647
msgid "^K1Your Healing Nade is a bit defective"
-msgstr "^K1Deine Medizin-Granate ist ein wenig defekt"
+msgstr "^K1Deine Medizingranate ist ein wenig defekt"
#: qcsrc/common/notifications/all.inc:648
msgid "^K1You are respawning for running out of ammo..."
#: qcsrc/common/notifications/all.inc:649
msgid "^K1You grew too old without taking your medicine"
-msgstr "^K1Du wurdest zu alt, und hast deine Medizin nicht genommen"
+msgstr "^K1Du wurdest zu alt, denn du hast deine Medizin nicht genommen"
#: qcsrc/common/notifications/all.inc:649
msgid "^K1You need to preserve your health"
#: qcsrc/common/notifications/all.inc:728
msgid "^F4^COUNT^BG left to find some ammo!"
-msgstr "^F4^COUNT^BG verbleiben, um etwas Munition zu finden!"
+msgstr "^BGNoch ^F4^COUNT^BG, um etwas Munition zu finden!"
#: qcsrc/common/notifications/all.inc:729
msgid "^BGGet some ammo or you'll be dead in ^F4^COUNT^BG!"
-msgstr "^BGHole dir etwas Munition oder du stirbst in ^F4^COUNT^BG!"
+msgstr "^BGHol dir etwas Munition oder du stirbst in ^F4^COUNT^BG!"
#: qcsrc/common/notifications/all.inc:729
msgid "^BGGet some ammo! ^F4^COUNT^BG left!"
-msgstr "^BGHole dir etwas Munition! ^F4^COUNT^BG übrig!"
+msgstr "^BGHol dir etwas Munition! Noch ^F4^COUNT^BG!"
#: qcsrc/common/notifications/all.inc:730
#, c-format
#: qcsrc/common/notifications/all.qh:507
#, c-format
msgid "%d frag spree! "
-msgstr "%d Kills in Folge!"
+msgstr "%d Kills in Folge! "
#: qcsrc/common/notifications/all.qh:520
msgid "First blood! "
#: qcsrc/menu/xonotic/dialog_firstrun.qc:69
msgid "Text language:"
-msgstr "Sprache:"
+msgstr "Textsprache:"
#: qcsrc/menu/xonotic/dialog_firstrun.qc:78
msgid "Allow player statistics to use your nickname at stats.xonotic.org?"
#: qcsrc/menu/xonotic/dialog_hudpanel_score.qh:6
msgid "Score Panel"
-msgstr "Punktetafel"
+msgstr "Punkte-Panel"
#: qcsrc/menu/xonotic/dialog_hudpanel_timer.qc:16
msgid "Timer:"
#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.qc:67
#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.qc:217
msgid "Invincible Projectiles"
-msgstr "Unzerstörbare Schüsse"
+msgstr "Unzerstörbare Projektile"
#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.qc:71
#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.qc:293
#: qcsrc/menu/xonotic/dialog_settings_misc.qc:116
msgid "Idle limit:"
-msgstr "wenn inaktiv:"
+msgstr "Wenn inaktiv:"
#: qcsrc/menu/xonotic/dialog_settings_misc.qc:122
msgid "IDLFPS^Unlimited"
#: qcsrc/menu/xonotic/dialog_settings_user_languagewarning.qc:12
msgid "full language changes will take effect starting from the next game"
-msgstr "volle Sprachänderungen finden erst nach dem Neustart des Spiels statt."
+msgstr "volle Sprachänderungen finden erst nach dem Neustart des Spiels statt"
#: qcsrc/menu/xonotic/dialog_settings_user_languagewarning.qc:16
msgid "Disconnect now"
# Translators:
# afba88cf42cbdff57149d4a6d53a94f9, 2018
# Wuzzy <almikes@aol.com>, 2016-2018
-# Brot Brot <noah.schluessel@gmail.com>, 2015
+# TheTrueBrot <noah.schluessel@gmail.com>, 2015
# cvcxc <hans.andersen72@yahoo.com>, 2013
# divVerent <divVerent@xonotic.org>, 2011,2013
# divVerent <divVerent@xonotic.org>, 2013-2015
# divVerent <divVerent@xonotic.org>, 2011
# Sless <sless@gmx.net>, 2014
# Sless <sless@gmx.net>, 2014
+# TheTrueBrot <noah.schluessel@gmail.com>, 2015
# Wuzzy <almikes@aol.com>, 2016
# Yepoleb <huberg18@gmail.com>, 2013
msgid ""
"Project-Id-Version: Xonotic\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2019-05-19 07:23+0200\n"
-"PO-Revision-Date: 2019-10-06 00:10+0000\n"
+"PO-Revision-Date: 2019-11-09 23:02+0000\n"
"Last-Translator: Wuzzy <almikes@aol.com>\n"
"Language-Team: German (http://www.transifex.com/team-xonotic/xonotic/"
"language/de/)\n"
#: qcsrc/client/hud/panel/infomessages.qc:229
msgid "^3CTRL ^7to disable collision testing, ^3SHIFT ^7and"
-msgstr "^3CTRL^7, um Kollisionstests zu deaktivieren, ^3SHIFT ^7und"
+msgstr "^3STRG^7, um Kollisionstests zu deaktivieren, ^3UMSCHALT ^7und"
#: qcsrc/client/hud/panel/infomessages.qc:230
msgid "^3ALT ^7+ ^3ARROW KEYS ^7for fine adjustments."
#: qcsrc/common/mutators/mutator/buffs/all.inc:43
msgid "Medic"
-msgstr "Medizin"
+msgstr "Sanitäter"
#: qcsrc/common/mutators/mutator/buffs/all.inc:54
msgid "Bash"
#: qcsrc/common/mutators/mutator/nades/nades.inc:50
msgid "Heal grenade"
-msgstr "Heilgranate"
+msgstr "Medizingranate"
#: qcsrc/common/mutators/mutator/nades/nades.inc:58
msgid "Monster grenade"
#: qcsrc/common/notifications/all.inc:274
#, c-format
msgid "^BG%s%s^K1 was killed by ^BG%s^K1's ^BG%s^K1 buff ^K1%s%s"
-msgstr "^BG%s%s^K1 wurde durch ^BG%s^K1s ^BG%s^K1 Bonus getötet ^K1%s%s"
+msgstr "^BG%s%s^K1 wurde durch ^BG%s^K1s ^BG%s^K1-Bonus getötet ^K1%s%s"
#: qcsrc/common/notifications/all.inc:274
#, c-format
msgid "^BG%s%s^K1 was scored against by ^BG%s^K1's ^BG%s^K1 buff ^K1%s%s"
msgstr ""
-"^BG%s%s^K1 wurde durch ^BG%s^K1s ^BG%s^K1 Bonus zu Punkten verarbeitet ^K1%s"
+"^BG%s%s^K1 wurde durch ^BG%s^K1s ^BG%s^K1-Bonus zu Punkten verarbeitet ^K1%s"
"%s"
#: qcsrc/common/notifications/all.inc:275
#: qcsrc/common/notifications/all.inc:282
#, c-format
msgid "^BG%s%s^K1 got too close to a napalm explosion%s%s"
-msgstr "^BG%s%s^K1 trat einer Napalm-Explosion ein wenig zu nahe%s%s"
+msgstr "^BG%s%s^K1 trat einer Napalmexplosion ein wenig zu nahe%s%s"
#: qcsrc/common/notifications/all.inc:282
#, c-format
msgid "^BG%s%s^K1 was burned to death by ^BG%s^K1's Napalm Nade%s%s"
-msgstr "^BG%s%s^K1 wurde von ^BG%s^K1s Napalm-Granate abgefackelt%s%s"
+msgstr "^BG%s%s^K1 wurde von ^BG%s^K1s Napalmgranate abgefackelt%s%s"
#: qcsrc/common/notifications/all.inc:283
#, c-format
#, c-format
msgid ""
"^BG%s^K1 decided to take a look at the results of their napalm explosion%s%s"
-msgstr "^BG%s^K1 wollte sich so eine Napalm-Explosion mal genauer ansehen%s%s"
+msgstr "^BG%s^K1 wollte sich so eine Napalmexplosion mal genauer ansehen%s%s"
#: qcsrc/common/notifications/all.inc:324
#, c-format
msgid "^BG%s^K1 was burned to death by their own Napalm Nade%s%s"
-msgstr "^BG%s^K1 wurde von der eigenen Napalm-Granate verbrannt%s%s"
+msgstr "^BG%s^K1 wurde von der eigenen Napalmgranate verbrannt%s%s"
#: qcsrc/common/notifications/all.inc:326
#, c-format
#: qcsrc/common/notifications/all.inc:327
#, c-format
msgid "^BG%s^K1's Healing Nade didn't quite heal them%s%s"
-msgstr "^BG%s^K1s Medizin-Granate war nicht sehr heilsam%s%s"
+msgstr "^BG%s^K1s Medizingranate war nicht sehr heilsam%s%s"
#: qcsrc/common/notifications/all.inc:328
#, c-format
#: qcsrc/common/notifications/all.inc:359
#, c-format
msgid "^BG%s^K1 was betrayed by ^BG%s^K1%s%s"
-msgstr "^BG%s^K1 wurde von ^BG%s^K1 betrogen%s%s"
+msgstr "^BG%s^K1 wurde von ^BG%s^K1 verraten%s%s"
#: qcsrc/common/notifications/all.inc:361
#, c-format
#: qcsrc/common/notifications/all.inc:363
#, c-format
msgid "^BG%s^K1 was frozen by ^BG%s"
-msgstr "^BG%s^K1 wurde von ^BG vereist%s"
+msgstr "^BG%s^K1 wurde von ^BG%s^K1 vereist"
#: qcsrc/common/notifications/all.inc:364
#, c-format
msgid "^BG%s^K3 was revived by ^BG%s"
-msgstr "^BG%s^K3 wurde von ^BG wiederbelebt%s"
+msgstr "^BG%s^K3 wurde von ^BG%s^K3 wiederbelebt"
#: qcsrc/common/notifications/all.inc:365
#, c-format
#: qcsrc/common/notifications/all.inc:563
msgid "^BGYou captured the flag!"
-msgstr "^BGDu hast die Flagge erobert"
+msgstr "^BGDu hast die Flagge erobert!"
#: qcsrc/common/notifications/all.inc:564
#, c-format
#: qcsrc/common/notifications/all.inc:581
#, c-format
msgid "^BGThe %senemy^BG got their flag! Retrieve it!"
-msgstr "^BGDer %sFeind^BG hat seine Flagge! Hole sie!"
+msgstr "^BGDer %sFeind^BG hat seine Flagge! Hol sie!"
#: qcsrc/common/notifications/all.inc:582
#, c-format
msgid "^BGThe %senemy (^BG%s%s)^BG got their flag! Retrieve it!"
-msgstr "^BGDer %sFeind (^BG%s%s)^BG hat seine Flagge! Hole sie!"
+msgstr "^BGDer %sFeind (^BG%s%s)^BG hat seine Flagge! Hol sie!"
#: qcsrc/common/notifications/all.inc:583
#, c-format
#: qcsrc/common/notifications/all.inc:645
msgid "^K1Hanging around a napalm explosion is bad!"
-msgstr "^K1Bei einer Napalm-Explosion herumzuhängen ist schlecht!"
+msgstr "^K1Es ist schlecht, bei einer Napalmexplosion herumzuhängen!"
#: qcsrc/common/notifications/all.inc:646
msgid "^K1You felt a little chilly!"
#: qcsrc/common/notifications/all.inc:647
msgid "^K1Your Healing Nade is a bit defective"
-msgstr "^K1Deine Medizin-Granate ist ein wenig defekt"
+msgstr "^K1Deine Medizingranate ist ein wenig defekt"
#: qcsrc/common/notifications/all.inc:648
msgid "^K1You are respawning for running out of ammo..."
#: qcsrc/common/notifications/all.inc:649
msgid "^K1You grew too old without taking your medicine"
-msgstr "^K1Du wurdest zu alt, und hast deine Medizin nicht genommen"
+msgstr "^K1Du wurdest zu alt, denn du hast deine Medizin nicht genommen"
#: qcsrc/common/notifications/all.inc:649
msgid "^K1You need to preserve your health"
#: qcsrc/common/notifications/all.inc:728
msgid "^F4^COUNT^BG left to find some ammo!"
-msgstr "^F4^COUNT^BG verbleiben, um etwas Munition zu finden!"
+msgstr "^BGNoch ^F4^COUNT^BG, um etwas Munition zu finden!"
#: qcsrc/common/notifications/all.inc:729
msgid "^BGGet some ammo or you'll be dead in ^F4^COUNT^BG!"
-msgstr "^BGHole dir etwas Munition oder du stirbst in ^F4^COUNT^BG!"
+msgstr "^BGHol dir etwas Munition oder du stirbst in ^F4^COUNT^BG!"
#: qcsrc/common/notifications/all.inc:729
msgid "^BGGet some ammo! ^F4^COUNT^BG left!"
-msgstr "^BGHole dir etwas Munition! ^F4^COUNT^BG übrig!"
+msgstr "^BGHol dir etwas Munition! Noch ^F4^COUNT^BG!"
#: qcsrc/common/notifications/all.inc:730
#, c-format
#: qcsrc/common/notifications/all.qh:507
#, c-format
msgid "%d frag spree! "
-msgstr "%d Kills in Folge!"
+msgstr "%d Kills in Folge! "
#: qcsrc/common/notifications/all.qh:520
msgid "First blood! "
#: qcsrc/menu/xonotic/dialog_firstrun.qc:69
msgid "Text language:"
-msgstr "Sprache:"
+msgstr "Textsprache:"
#: qcsrc/menu/xonotic/dialog_firstrun.qc:78
msgid "Allow player statistics to use your nickname at stats.xonotic.org?"
#: qcsrc/menu/xonotic/dialog_hudpanel_score.qh:6
msgid "Score Panel"
-msgstr "Punktetafel"
+msgstr "Punkte-Panel"
#: qcsrc/menu/xonotic/dialog_hudpanel_timer.qc:16
msgid "Timer:"
#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.qc:67
#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.qc:217
msgid "Invincible Projectiles"
-msgstr "Unzerstörbare Schüsse"
+msgstr "Unzerstörbare Projektile"
#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.qc:71
#: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.qc:293
#: qcsrc/menu/xonotic/dialog_settings_misc.qc:116
msgid "Idle limit:"
-msgstr "wenn inaktiv:"
+msgstr "Wenn inaktiv:"
#: qcsrc/menu/xonotic/dialog_settings_misc.qc:122
msgid "IDLFPS^Unlimited"
#: qcsrc/menu/xonotic/dialog_settings_user_languagewarning.qc:12
msgid "full language changes will take effect starting from the next game"
-msgstr "volle Sprachänderungen finden erst nach dem Neustart des Spiels statt."
+msgstr "volle Sprachänderungen finden erst nach dem Neustart des Spiels statt"
#: qcsrc/menu/xonotic/dialog_settings_user_languagewarning.qc:16
msgid "Disconnect now"
# MasterWord, 2016
# Mensious Mensious <ektoras@tutanota.com>, 2018-2019
# Vindex <kon14.inside@gmail.com>, 2014
-# Γιάννης Ανθυμίδης, 2011-2012
+# Yannis Anthymidis, 2011-2012
msgid ""
msgstr ""
"Project-Id-Version: Xonotic\n"
"Project-Id-Version: Xonotic\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2019-05-19 07:23+0200\n"
-"PO-Revision-Date: 2019-06-24 06:22+0000\n"
+"PO-Revision-Date: 2019-11-21 19:30+0000\n"
"Last-Translator: Andrei Stepanov <adem4ik@gmail.com>\n"
"Language-Team: Russian (http://www.transifex.com/team-xonotic/xonotic/"
"language/ru/)\n"
#: qcsrc/client/hud/panel/racetimer.qc:151
#, c-format
msgid "Intermediate %d"
-msgstr "Ð\9fÑ\80омежÑ\83Ñ\82оÑ\87ное %d"
+msgstr "УÑ\87аÑ\81Ñ\82ок %d"
#: qcsrc/client/hud/panel/racetimer.qc:154
#: qcsrc/client/hud/panel/racetimer.qc:201
#: qcsrc/client/hud/panel/scoreboard.qc:1613
#, c-format
msgid "^3%1.0f minutes"
-msgstr "^3%1.0f минуты"
+msgstr "^3%1.0f минут(ы)"
#: qcsrc/client/hud/panel/scoreboard.qc:1622
#: qcsrc/client/hud/panel/scoreboard.qc:1629
#: qcsrc/client/main.qc:1027
msgid " qu/s"
-msgstr "юнит/с"
+msgstr " юнит/с"
#: qcsrc/client/main.qc:1029
msgid " m/s"
#: qcsrc/common/mapinfo.qc:626
#, no-c-format
msgid "@!#%'n Tuba Throwing"
-msgstr "@!#%'n ШвÑ\8bÑ\80Ñ\8fние ТÑ\80Ñ\83бой"
+msgstr "@!#%'n Швыряние Тубой"
#: qcsrc/common/mapinfo.qh:72 qcsrc/common/mapinfo.qh:333
#: qcsrc/common/mapinfo.qh:528
#: qcsrc/common/notifications/all.inc:428
#, c-format
msgid "^BG%s^BG couldn't break their %s%s^BG place record of %s%s %s"
-msgstr "^BG%s^BG не смог побить рекорд %s%s^BG места со временем %s%s %s"
+msgstr "^BG%s^BG не Ñ\81мог побиÑ\82Ñ\8c Ñ\81вой Ñ\80екоÑ\80д %s%s^BG меÑ\81Ñ\82а Ñ\81о вÑ\80еменем %s%s %s"
#: qcsrc/common/notifications/all.inc:429
#, c-format
#: qcsrc/common/notifications/all.inc:667
msgid "^K1Watch your step!"
-msgstr "^K1Смотри под ноги!"
+msgstr "^K1Смотрите под ноги!"
#: qcsrc/common/notifications/all.inc:669
#, c-format
"Need active players for: %s"
msgstr ""
"^BGОжидание игроков...\n"
-"Активные игроки необходимы для: %s"
+"%s нуждается в активных игроках"
#: qcsrc/common/notifications/all.inc:725
#, c-format
#: qcsrc/common/teams.qh:31
msgid "TEAM^Red"
-msgstr "TEAM^Красные"
+msgstr "TEAM^Красная"
#: qcsrc/common/teams.qh:32
msgid "TEAM^Blue"
-msgstr "TEAM^Синие"
+msgstr "TEAM^Синяя"
#: qcsrc/common/teams.qh:33
msgid "TEAM^Yellow"
-msgstr "TEAM^Жёлтые"
+msgstr "TEAM^Жёлтая"
#: qcsrc/common/teams.qh:34
msgid "TEAM^Pink"
-msgstr "TEAM^Розовые"
+msgstr "TEAM^Розовая"
#: qcsrc/common/teams.qh:35
msgid "Team"
#: qcsrc/common/weapons/weapon/tuba.qh:18
#, no-c-format
msgid "@!#%'n Tuba"
-msgstr "@!#%'n ТÑ\80Ñ\83ба"
+msgstr "@!#%'n Туба"
#: qcsrc/common/weapons/weapon/vaporizer.qh:19
msgid "Vaporizer"
#: qcsrc/lib/counting.qh:46
#, c-format
msgid "CI_DEC^%s minutes"
-msgstr "%s минут"
+msgstr "%s минут(ы)"
#: qcsrc/lib/counting.qh:49
#, c-format
msgid "CI_ZER^%d minutes"
-msgstr "%d минут"
+msgstr "%d минут(ы)"
#: qcsrc/lib/counting.qh:50
#, c-format
#: qcsrc/lib/counting.qh:51
#, c-format
msgid "CI_SEC^%d minutes"
-msgstr "%d минуты"
+msgstr "%d минут(ы)"
#: qcsrc/lib/counting.qh:52
#, c-format
msgid "CI_THI^%d minutes"
-msgstr "%d минуты"
+msgstr "%d минут(ы)"
#: qcsrc/lib/counting.qh:53
#, c-format
msgid "CI_MUL^%d minutes"
-msgstr "%d минут"
+msgstr "%d минут(ы)"
#: qcsrc/lib/counting.qh:55
#, c-format
#: qcsrc/menu/xonotic/dialog_multiplayer_create.qc:82
#, c-format
msgid "%d minutes"
-msgstr "%d минуты"
+msgstr "%d минут(ы)"
#: qcsrc/menu/xonotic/dialog_multiplayer_create.qc:83
msgid "TIMLIM^Default"
#: qcsrc/menu/xonotic/keybinder.qc:40
msgid "jump / swim"
-msgstr "прыжок / плыть"
+msgstr "пÑ\80Ñ\8bжок / вÑ\81плÑ\8bÑ\82Ñ\8c"
#: qcsrc/menu/xonotic/keybinder.qc:41
msgid "crouch / sink"
#: qcsrc/menu/xonotic/keybinder.qc:57
msgid "drop weapon / throw nade"
-msgstr "бÑ\80оÑ\81иÑ\82Ñ\8c оÑ\80Ñ\83жие / кинÑ\83Ñ\82Ñ\8c гÑ\80анаÑ\82Ñ\83"
+msgstr "бросить оружие / гранату"
#: qcsrc/menu/xonotic/keybinder.qc:86
msgid "hold zoom"
#: qcsrc/menu/xonotic/keybinder.qc:118
msgid "drop key / drop flag"
-msgstr "бросить ключ или флаг"
+msgstr "бросить ключ / флаг"
#: qcsrc/menu/xonotic/keybinder.qc:122
msgid "respawn"
# This file is distributed under the same license as the PACKAGE package.
#
# Translators:
+# Abdurrahman AKKUŞ <a.rahmanakkus@hotmail.com>, 2019
# Çağlar Turalı <caglarturali@gmail.com>, 2018
# Demiray Muhterem <mdemiray@msn.com>, 2018
# ibra kap <ibrakap@gmail.com>, 2019
"Project-Id-Version: Xonotic\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2019-05-19 07:23+0200\n"
-"PO-Revision-Date: 2019-09-11 17:17+0000\n"
-"Last-Translator: ibra kap <ibrakap@gmail.com>\n"
+"PO-Revision-Date: 2019-12-18 07:52+0000\n"
+"Last-Translator: Abdurrahman AKKUŞ <a.rahmanakkus@hotmail.com>\n"
"Language-Team: Turkish (http://www.transifex.com/team-xonotic/xonotic/"
"language/tr/)\n"
"Language: tr\n"
#: qcsrc/client/hud/hud_config.qc:243
#, c-format
msgid "^2Successfully exported to %s! (Note: It's saved in data/data/)"
-msgstr ""
+msgstr "^2Başarıyla %s'e aktarıldı! (Dikkat: data/data/'ya kaydedildi)"
#: qcsrc/client/hud/hud_config.qc:247
#, c-format
msgid "^1Couldn't write to %s"
-msgstr ""
+msgstr "^1 %s'e yazılamadı"
#: qcsrc/client/hud/panel/centerprint.qc:140
#, c-format
r_shadow_shadowmapping 0
r_shadow_usenormalmap 1
r_showsurfaces 0
+r_sky 1
r_subdivisions_tolerance 3
r_texture_dds_load 1
r_water 1
r_shadow_shadowmapping 0
r_shadow_usenormalmap 0
r_showsurfaces 0
+r_sky 1
r_subdivisions_tolerance 8
r_texture_dds_load 1
r_water 0
r_shadow_shadowmapping 0
r_shadow_usenormalmap 0
r_showsurfaces 0
+r_sky 1
r_subdivisions_tolerance 4
r_texture_dds_load 1
r_water 0
r_shadow_shadowmapping 0
r_shadow_usenormalmap 1
r_showsurfaces 0
+r_sky 1
r_subdivisions_tolerance 3
r_texture_dds_load 1
r_water 0
r_shadow_shadowmapping 0
r_shadow_usenormalmap 0
r_showsurfaces 3
+r_sky 0
r_subdivisions_tolerance 16
r_texture_dds_load 1
r_water 0
alias sv_hook_gamestart_ft
alias sv_hook_gamestart_inv
alias sv_hook_gamestart_duel
-alias sv_hook_gamerestart
+// 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
alias sv_hook_gameend
seta notification_ANNCE_VOTE_CALL "2" "0 = disabled, 1 = enabled if gentle mode is off, 2 = always enabled"
seta notification_ANNCE_VOTE_FAIL "2" "0 = disabled, 1 = enabled if gentle mode is off, 2 = always enabled"
-// MSG_INFO notifications (count = 329):
+// MSG_INFO notifications (count = 334):
seta notification_INFO_CA_JOIN_LATE "1" "0 = off, 1 = print to console, 2 = print to console and chatbox (if notification_allow_chatboxprint is enabled)"
seta notification_INFO_CA_LEAVE "1" "0 = off, 1 = print to console, 2 = print to console and chatbox (if notification_allow_chatboxprint is enabled)"
seta notification_INFO_CHAT_NOSPECTATORS "2" "0 = off, 1 = print to console, 2 = print to console and chatbox (if notification_allow_chatboxprint is enabled)"
seta notification_INFO_MONSTERS_DISABLED "1" "0 = off, 1 = print to console, 2 = print to console and chatbox (if notification_allow_chatboxprint is enabled)"
seta notification_INFO_NEXBALL_RETURN_HELD "1" "0 = off, 1 = print to console, 2 = print to console and chatbox (if notification_allow_chatboxprint is enabled)"
seta notification_INFO_ONSLAUGHT_CAPTURE "1" "0 = off, 1 = print to console, 2 = print to console and chatbox (if notification_allow_chatboxprint is enabled)"
+seta notification_INFO_ONSLAUGHT_CAPTURE_NONAME "1" "0 = off, 1 = print to console, 2 = print to console and chatbox (if notification_allow_chatboxprint is enabled)"
+seta notification_INFO_ONSLAUGHT_CPDESTROYED_NONAME "1" "0 = off, 1 = print to console, 2 = print to console and chatbox (if notification_allow_chatboxprint is enabled)"
seta notification_INFO_ONSLAUGHT_CPDESTROYED "1" "0 = off, 1 = print to console, 2 = print to console and chatbox (if notification_allow_chatboxprint is enabled)"
seta notification_INFO_ONSLAUGHT_GENDESTROYED_OVERTIME "1" "0 = off, 1 = print to console, 2 = print to console and chatbox (if notification_allow_chatboxprint is enabled)"
seta notification_INFO_ONSLAUGHT_GENDESTROYED "1" "0 = off, 1 = print to console, 2 = print to console and chatbox (if notification_allow_chatboxprint is enabled)"
seta notification_INFO_WEAPON_VAPORIZER_MURDER "1" "0 = off, 1 = print to console, 2 = print to console and chatbox (if notification_allow_chatboxprint is enabled)"
seta notification_INFO_WEAPON_VORTEX_MURDER "1" "0 = off, 1 = print to console, 2 = print to console and chatbox (if notification_allow_chatboxprint is enabled)"
-// MSG_CENTER notifications (count = 235):
+// MSG_CENTER notifications (count = 239):
seta notification_CENTER_ALONE "1" "0 = off, 1 = centerprint"
seta notification_CENTER_ASSAULT_ATTACKING "1" "0 = off, 1 = centerprint"
seta notification_CENTER_ASSAULT_DEFENDING "1" "0 = off, 1 = centerprint"
seta notification_CENTER_NIX_COUNTDOWN "1" "0 = off, 1 = centerprint"
seta notification_CENTER_NIX_NEWWEAPON "1" "0 = off, 1 = centerprint"
seta notification_CENTER_ONS_CAPTURE "1" "0 = off, 1 = centerprint"
+seta notification_CENTER_ONS_CAPTURE_NONAME "1" "0 = off, 1 = centerprint"
+seta notification_CENTER_ONS_CAPTURE_TEAM_NONAME "1" "0 = off, 1 = centerprint"
seta notification_CENTER_ONS_CAPTURE_TEAM "1" "0 = off, 1 = centerprint"
seta notification_CENTER_ONS_CONTROLPOINT_SHIELDED "1" "0 = off, 1 = centerprint"
seta notification_CENTER_ONS_GENERATOR_SHIELDED "1" "0 = off, 1 = centerprint"
seta notification_CENTER_ROUND_TEAM_LOSS "1" "0 = off, 1 = centerprint"
seta notification_CENTER_ROUND_TEAM_WIN "1" "0 = off, 1 = centerprint"
seta notification_CENTER_ROUND_TIED "1" "0 = off, 1 = centerprint"
-seta notification_CENTER_SECONDARY_NODAMAGE "1" "0 = off, 1 = centerprint"
seta notification_CENTER_SEQUENCE_COMPLETED "1" "0 = off, 1 = centerprint"
seta notification_CENTER_SEQUENCE_COUNTER "1" "0 = off, 1 = centerprint"
seta notification_CENTER_SEQUENCE_COUNTER_FEWMORE "1" "0 = off, 1 = centerprint"
seta notification_show_sprees_info_newline "1" "Show attacker spree information for MSG_INFO messages on a separate line than the death notification itself"
seta notification_show_sprees_info_specialonly "1" "Don't show attacker spree information in MSG_INFO messages if it isn't an achievement"
-// Notification counts (total = 837): MSG_ANNCE = 89, MSG_INFO = 329, MSG_CENTER = 235, MSG_MULTI = 156, MSG_CHOICE = 28
+// Notification counts (total = 846): MSG_ANNCE = 89, MSG_INFO = 334, MSG_CENTER = 239, MSG_MULTI = 156, MSG_CHOICE = 28
bool autocvar_cl_spawn_event_sound = 1;
// float autocvar_cl_spawn_point_model;
bool autocvar_cl_spawn_point_particles;
-float autocvar_cl_spawn_point_dist_min = 1200;
-float autocvar_cl_spawn_point_dist_max = 1600;
+float autocvar_cl_spawn_point_dist_min = 800;
+float autocvar_cl_spawn_point_dist_max = 1200;
bool autocvar_cl_spawnzoom = 1;
float autocvar_cl_spawnzoom_speed = 1;
float autocvar_cl_spawnzoom_factor = 2;
if(teamplay)
{
QUICKMENU_SMENU(CTX(_("QMCMD^Team chat")), "Team chat")
- QUICKMENU_ENTRY_TC(CTX(_("QMCMD^quad soon")), "say_team %s", "quad soon", CTX(_("QMCMD^quad soon")))
+ QUICKMENU_ENTRY_TC(CTX(_("QMCMD^strength soon")), "say_team %s", "strength soon", CTX(_("QMCMD^strength soon")))
QUICKMENU_ENTRY_TC(CTX(_("QMCMD^free item, icon")), "say_team %s; g_waypointsprite_team_here_p", "free item %x^7 (l:%y^7)", CTX(_("QMCMD^free item %x^7 (l:%y^7)")))
QUICKMENU_ENTRY_TC(CTX(_("QMCMD^took item, icon")), "say_team %s; g_waypointsprite_team_here", "took item (l:%l^7)", CTX(_("QMCMD^took item (l:%l^7)")))
QUICKMENU_ENTRY_TC(CTX(_("QMCMD^negative")), "say_team %s", "negative", CTX(_("QMCMD^negative")))
if(spectatee_status > 0)
{
- QUICKMENU_SMENU(CTX(_("QMCMD^Spectator camera")), "Spectator camera")
- QUICKMENU_ENTRY(CTX(_("QMCMD^1st person")), "chase_active 0; -use")
- QUICKMENU_ENTRY(CTX(_("QMCMD^3rd person around player")), "chase_active 1; +use")
- QUICKMENU_ENTRY(CTX(_("QMCMD^3rd person behind")), "chase_active 1; -use")
- QUICKMENU_SMENU(CTX(_("QMCMD^Spectator camera")), "Spectator camera")
+ QUICKMENU_ENTRY(CTX(_("QMCMD^Change spectator camera")), "dropweapon")
}
if(spectatee_status == -1)
bool SetTeam(entity o, int Team)
{
TC(int, Team);
- devassert_once(Team);
+ //devassert_once(Team);
entity tm;
if(teamplay)
{
traceline(traceorigin, traceorigin + view_forward * max_shot_distance, mv, ta);
trueaimpoint = trace_endpos;
+ // move trueaimpoint a little bit forward to make the final tracebox reliable
+ // since it sometimes doesn't reach a teammate by a hair
+ trueaimpoint += view_forward;
if(vdist((trueaimpoint - traceorigin), <, g_trueaim_minrange))
trueaimpoint = traceorigin + view_forward * g_trueaim_minrange;
if (damage_dealt_time != damage_dealt_time_prev)
{
unaccounted_damage += unaccounted_damage_new;
- LOG_TRACE("dmg total: ", ftos(unaccounted_damage), " (+", ftos(unaccounted_damage_new), ")");
+ //LOG_TRACE("dmg total: ", ftos(unaccounted_damage), " (+", ftos(unaccounted_damage_new), ")");
}
damage_dealt_time_prev = damage_dealt_time;
pitch_shift = mirror_value + (mirror_value - pitch_shift);
}
- LOG_TRACE("dmg total (dmg): ", ftos(unaccounted_damage), " , pitch shift: ", ftos(pitch_shift));
+ //LOG_TRACE("dmg total (dmg): ", ftos(unaccounted_damage), " , pitch shift: ", ftos(pitch_shift));
// todo: avoid very long and very short sounds from wave stretching using different sound files? seems unnecessary
// todo: normalize sound pressure levels? seems unnecessary
wcross_alpha_goal_prev = wcross_alpha;
wcross_color_goal_prev = wcross_color;
- if(spectatee_status == -1 && shottype == SHOTTYPE_HITTEAM || (shottype == SHOTTYPE_HITOBSTRUCTION && autocvar_crosshair_hittest_blur && !autocvar_chase_active))
+ if(spectatee_status == 0 && (shottype == SHOTTYPE_HITTEAM || (shottype == SHOTTYPE_HITOBSTRUCTION && autocvar_crosshair_hittest_blur && !autocvar_chase_active)))
{
wcross_blur = 1;
wcross_alpha *= 0.75;
}
}
-GENERIC_COMMAND(dumpcommands, "Dump all commands on the program to <program>_cmd_dump.txt")
+GENERIC_COMMAND(dumpcommands, "Dump all commands on the program to <program>_cmd_dump.txt", false)
{
switch(request)
{
*/
// Do not hard code aliases for these, instead create them in commands.cfg... also: keep in alphabetical order, please ;)
-GENERIC_COMMAND(addtolist, "Add a string to a cvar") { GenericCommand_addtolist(request, arguments); }
-GENERIC_COMMAND(maplist, "Automatic control of maplist") { GenericCommand_maplist(request, arguments); }
-GENERIC_COMMAND(nextframe, "Execute the given command next frame of this VM") { GenericCommand_nextframe(request, command); }
-GENERIC_COMMAND(qc_curl, "Queries a URL") { GenericCommand_qc_curl(request, arguments); }
-GENERIC_COMMAND(removefromlist, "Remove a string from a cvar") { GenericCommand_removefromlist(request, arguments); }
-GENERIC_COMMAND(restartnotifs, "Re-initialize all notifications") { GenericCommand_restartnotifs(request); }
-GENERIC_COMMAND(rpn, "RPN calculator") { GenericCommand_rpn(request, arguments, command); }
-GENERIC_COMMAND(settemp, "Temporarily set a value to a cvar which is restored later") { GenericCommand_settemp(request, arguments); }
-GENERIC_COMMAND(settemp_restore, "Restore all cvars set by settemp command") { GenericCommand_settemp_restore(request); }
-GENERIC_COMMAND(runtest, "Run unit tests") { GenericCommand_runtest(request, arguments); }
+GENERIC_COMMAND(addtolist, "Add a string to a cvar", true) { GenericCommand_addtolist(request, arguments); }
+GENERIC_COMMAND(maplist, "Automatic control of maplist", true) { GenericCommand_maplist(request, arguments); }
+GENERIC_COMMAND(nextframe, "Execute the given command next frame of this VM", true) { GenericCommand_nextframe(request, command); }
+GENERIC_COMMAND(qc_curl, "Queries a URL", true) { GenericCommand_qc_curl(request, arguments); }
+GENERIC_COMMAND(removefromlist, "Remove a string from a cvar", true) { GenericCommand_removefromlist(request, arguments); }
+GENERIC_COMMAND(restartnotifs, "Re-initialize all notifications", false) { GenericCommand_restartnotifs(request); }
+GENERIC_COMMAND(rpn, "RPN calculator", true) { GenericCommand_rpn(request, arguments, command); }
+GENERIC_COMMAND(settemp, "Temporarily set a value to a cvar which is restored later", false) { GenericCommand_settemp(request, arguments); }
+GENERIC_COMMAND(settemp_restore, "Restore all cvars set by settemp command", false) { GenericCommand_settemp_restore(request); }
+GENERIC_COMMAND(runtest, "Run unit tests", false) { GenericCommand_runtest(request, arguments); }
void GenericCommand_macro_help()
{
REGISTER_REGISTRY(GENERIC_COMMANDS)
REGISTRY_SORT(GENERIC_COMMANDS)
-#define GENERIC_COMMAND(id, description) \
+.bool m_menubased; // switch to tell whether this alias should be registered as a menu or client based command
+
+#define GENERIC_COMMAND(id, description, menubased) \
CLASS(genericcommand_##id, Command) \
ATTRIB(genericcommand_##id, m_name, string, #id); \
ATTRIB(genericcommand_##id, m_description, string, description); \
+ ATTRIB(genericcommand_##id, m_menubased, bool, menubased); \
ENDCLASS(genericcommand_##id) \
REGISTER(GENERIC_COMMANDS, CMD_G, id, m_id, NEW(genericcommand_##id)); \
METHOD(genericcommand_##id, m_invokecmd, void(genericcommand_##id this, int request, entity caller, int arguments, string command))
STATIC_INIT(GENERIC_COMMANDS_aliases) {
- FOREACH(GENERIC_COMMANDS, true, localcmd(sprintf("alias %1$s \"%2$s %1$s ${* ?}\"\n", it.m_name, "qc_cmd_svmenu")));
+ FOREACH(GENERIC_COMMANDS, true, localcmd(sprintf("alias %1$s \"%2$s %1$s ${* ?}\"\n", it.m_name, ((it.m_menubased) ? "qc_cmd_svmenu" : "qc_cmd_svcl"))));
}
void rpn_pushf(float f) { return rpn_push(sprintf("%.9g", f)); }
void rpn_setf(float f) { return rpn_set(sprintf("%.9g", f)); }
+SHUTDOWN(_rpndb)
+{
+ if(rpn_db)
+ db_close(rpn_db);
+}
+
void GenericCommand_rpn(int request, int argc, string command)
{
switch(request)
#endif
-GENERIC_COMMAND(bufstr_get, "Examine a string buffer object")
+GENERIC_COMMAND(bufstr_get, "Examine a string buffer object", false)
{
switch (request)
{
}
-GENERIC_COMMAND(version, "Print the current version")
+GENERIC_COMMAND(version, "Print the current version", false)
{
switch (request)
{
#ifdef CSQC
void(float bufhandle, string pattern, string antipattern) buf_cvarlist = #517;
#endif
-GENERIC_COMMAND(cvar_localchanges, "Print locally changed cvars")
+GENERIC_COMMAND(cvar_localchanges, "Print locally changed cvars", false)
{
switch (request)
{
#endif
-GENERIC_COMMAND(find, "Search through entities for matching classname")
+GENERIC_COMMAND(find, "Search through entities for matching classname", false)
{
switch (request)
{
}
-GENERIC_COMMAND(findat, "Search through entities for matching origin")
+GENERIC_COMMAND(findat, "Search through entities for matching origin", false)
{
switch (request)
{
#undef WRITE
}
-GENERIC_COMMAND(dumpeffectinfo, "Dump all effectinfo to effectinfo_dump.txt")
+GENERIC_COMMAND(dumpeffectinfo, "Dump all effectinfo to effectinfo_dump.txt", false)
{
switch (request) {
case CMD_REQUEST_COMMAND: {
if (GetPlayerSoundSampleField_notFound) field = GetVoiceMessageSampleField(key);
if (GetPlayerSoundSampleField_notFound)
{
- LOG_TRACEF("Invalid sound info field: %s", key);
+ LOG_TRACEF("Invalid sound info field in player sound file '%s': %s", f, key);
continue;
}
string file = argv(1);
.bool instanceOfVoiceMessage;
.int m_playersoundvt;
-#define REGISTER_VOICEMSG(id, vt) \
+#define REGISTER_VOICEMSG(id, vt, listed) \
.string _playersound_##id; \
REGISTER(PlayerSounds, playersound, id, m_id, new_pure(VoiceMessage)) \
{ \
- this.instanceOfVoiceMessage = true; \
+ this.instanceOfVoiceMessage = listed; \
this.m_playersoundstr = #id; \
this.m_playersoundfld = _playersound_##id; \
this.m_playersoundvt = vt; \
const int VOICETYPE_AUTOTAUNT = 14;
const int VOICETYPE_TAUNT = 15;
-REGISTER_VOICEMSG(attack, VOICETYPE_TEAMRADIO)
-REGISTER_VOICEMSG(attackinfive, VOICETYPE_TEAMRADIO)
-REGISTER_VOICEMSG(coverme, VOICETYPE_TEAMRADIO)
-REGISTER_VOICEMSG(defend, VOICETYPE_TEAMRADIO)
-REGISTER_VOICEMSG(freelance, VOICETYPE_TEAMRADIO)
-REGISTER_VOICEMSG(incoming, VOICETYPE_TEAMRADIO)
-REGISTER_VOICEMSG(meet, VOICETYPE_TEAMRADIO)
-REGISTER_VOICEMSG(needhelp, VOICETYPE_TEAMRADIO)
-REGISTER_VOICEMSG(seenflag, VOICETYPE_TEAMRADIO)
-REGISTER_VOICEMSG(taunt, VOICETYPE_TAUNT)
-REGISTER_VOICEMSG(teamshoot, VOICETYPE_LASTATTACKER)
-
-// reserved sound names for the future (some models lack sounds for them):
-// _VOICEMSG(flagcarriertakingdamage)
-// _VOICEMSG(getflag)
-// reserved sound names for the future (ALL models lack sounds for them):
-// _VOICEMSG(affirmative)
-// _VOICEMSG(attacking)
-// _VOICEMSG(defending)
-// _VOICEMSG(roaming)
-// _VOICEMSG(onmyway)
-// _VOICEMSG(droppedflag)
-// _VOICEMSG(negative)
-// _VOICEMSG(seenenemy)
+REGISTER_VOICEMSG(attack, VOICETYPE_TEAMRADIO, true)
+REGISTER_VOICEMSG(attackinfive, VOICETYPE_TEAMRADIO, true)
+REGISTER_VOICEMSG(coverme, VOICETYPE_TEAMRADIO, true)
+REGISTER_VOICEMSG(defend, VOICETYPE_TEAMRADIO, true)
+REGISTER_VOICEMSG(freelance, VOICETYPE_TEAMRADIO, true)
+REGISTER_VOICEMSG(incoming, VOICETYPE_TEAMRADIO, true)
+REGISTER_VOICEMSG(meet, VOICETYPE_TEAMRADIO, true)
+REGISTER_VOICEMSG(needhelp, VOICETYPE_TEAMRADIO, true)
+REGISTER_VOICEMSG(seenflag, VOICETYPE_TEAMRADIO, true)
+REGISTER_VOICEMSG(taunt, VOICETYPE_TAUNT, true)
+REGISTER_VOICEMSG(teamshoot, VOICETYPE_LASTATTACKER, true)
+
+//NOTE: some models lack sounds for these:
+REGISTER_VOICEMSG(flagcarriertakingdamage, VOICETYPE_TEAMRADIO, false)
+REGISTER_VOICEMSG(getflag, VOICETYPE_TEAMRADIO, false)
+//NOTE: ALL models lack sounds for these (only available in default sounds currently):
+REGISTER_VOICEMSG(affirmative, VOICETYPE_TEAMRADIO, false)
+REGISTER_VOICEMSG(attacking, VOICETYPE_TEAMRADIO, false)
+REGISTER_VOICEMSG(defending, VOICETYPE_TEAMRADIO, false)
+REGISTER_VOICEMSG(roaming, VOICETYPE_TEAMRADIO, false)
+REGISTER_VOICEMSG(onmyway, VOICETYPE_TEAMRADIO, false)
+REGISTER_VOICEMSG(droppedflag, VOICETYPE_TEAMRADIO, false)
+REGISTER_VOICEMSG(negative, VOICETYPE_TEAMRADIO, false)
+REGISTER_VOICEMSG(seenenemy, VOICETYPE_TEAMRADIO, false)
.string m_globalsoundstr;
REGISTRY(GlobalSounds, BITS(8) - 1)
.bool pushable;
-void ctf_FlagSetup(int teamnumber, entity flag) // called when spawning a flag entity on the map as a spawnfunc
+void ctf_FlagSetup(int teamnum, entity flag) // called when spawning a flag entity on the map as a spawnfunc
{
// main setup
flag.ctf_worldflagnext = ctf_worldflaglist; // link flag into ctf_worldflaglist
setattachment(flag, NULL, "");
- flag.netname = strzone(sprintf("%s%s^7 flag", Team_ColorCode(teamnumber), Team_ColorName_Upper(teamnumber)));
- flag.team = teamnumber;
+ flag.netname = strzone(sprintf("%s%s^7 flag", Team_ColorCode(teamnum), Team_ColorName_Upper(teamnum)));
+ flag.team = teamnum;
flag.classname = "item_flag_team";
flag.target = "###item###"; // for finding the nearest item using findnearest
flag.flags = FL_ITEM | FL_NOTARGET;
if(autocvar_g_ctf_score_ignore_fields)
flag.cnt = flag.score_assist = flag.score_team_capture = flag.score_capture = flag.score_drop = flag.score_pickup = flag.score_return = 0;
- string teamname = Static_Team_ColorName_Lower(teamnumber);
+ string teamname = Static_Team_ColorName_Lower(teamnum);
// appearence
if(!flag.scale) { flag.scale = FLAG_SCALE; }
if(flag.skin == 0) { flag.skin = cvar(sprintf("g_ctf_flag_%s_skin", teamname)); }
if(flag.model == "") { flag.model = cvar_string(sprintf("g_ctf_flag_%s_model", teamname)); }
- if (flag.toucheffect == "") { flag.toucheffect = EFFECT_FLAG_TOUCH(teamnumber).eent_eff_name; }
- if (flag.passeffect == "") { flag.passeffect = EFFECT_PASS(teamnumber).eent_eff_name; }
- if (flag.capeffect == "") { flag.capeffect = EFFECT_CAP(teamnumber).eent_eff_name; }
+ if (flag.toucheffect == "") { flag.toucheffect = EFFECT_FLAG_TOUCH(teamnum).eent_eff_name; }
+ if (flag.passeffect == "") { flag.passeffect = EFFECT_PASS(teamnum).eent_eff_name; }
+ if (flag.capeffect == "") { flag.capeffect = EFFECT_CAP(teamnum).eent_eff_name; }
// sounds
#define X(s,b) \
if(flag.s == "") flag.s = b; \
precache_sound(flag.s);
- X(snd_flag_taken, strzone(SND(CTF_TAKEN(teamnumber))))
- X(snd_flag_returned, strzone(SND(CTF_RETURNED(teamnumber))))
- X(snd_flag_capture, strzone(SND(CTF_CAPTURE(teamnumber))))
- X(snd_flag_dropped, strzone(SND(CTF_DROPPED(teamnumber))))
+ X(snd_flag_taken, strzone(SND(CTF_TAKEN(teamnum))))
+ X(snd_flag_returned, strzone(SND(CTF_RETURNED(teamnum))))
+ X(snd_flag_capture, strzone(SND(CTF_CAPTURE(teamnum))))
+ X(snd_flag_dropped, strzone(SND(CTF_DROPPED(teamnum))))
X(snd_flag_respawn, strzone(SND(CTF_RESPAWN)))
X(snd_flag_touch, strzone(SND(CTF_TOUCH)))
X(snd_flag_pass, strzone(SND(CTF_PASS)))
if(autocvar_g_ctf_flag_glowtrails)
{
- switch(teamnumber)
+ switch(teamnum)
{
case NUM_TEAM_1: flag.glow_color = 251; break;
case NUM_TEAM_2: flag.glow_color = 210; break;
if(autocvar_g_ctf_fullbrightflags) { flag.effects |= EF_FULLBRIGHT; }
if(autocvar_g_ctf_dynamiclights)
{
- switch(teamnumber)
+ switch(teamnum)
{
case NUM_TEAM_1: flag.effects |= EF_RED; break;
case NUM_TEAM_2: flag.effects |= EF_BLUE; break;
// for symmetrical editing of waypoints
entity f1 = ctf_worldflaglist;
entity f2 = f1.ctf_worldflagnext;
- float m = -(f1.origin.y - f2.origin.y) / (f1.origin.x - f2.origin.x);
+ float m = -(f1.origin.y - f2.origin.y) / (max(f1.origin.x - f2.origin.x, FLOAT_EPSILON));
float q = havocbot_middlepoint.y - m * havocbot_middlepoint.x;
havocbot_symmetry_axis_m = m;
havocbot_symmetry_axis_q = q;
return true; // you deceptive little bugger ;3 This needs to be true in order for this function to even count.
}
+MUTATOR_HOOKFUNCTION(ka, Scores_CountFragsRemaining)
+{
+ // announce remaining frags, but only when timed scoring is off
+ return !autocvar_g_keepaway_score_timepoints;
+}
+
MUTATOR_HOOKFUNCTION(ka, PlayerPreThink)
{
entity player = M_ARGV(0, entity);
navigation_routerating(this, head.owner, ratingscale_enemy * 10000, 100000);
}
- havocbot_goalrating_items(this, 1, this.origin, 10000);
+ havocbot_goalrating_items(this, 80000, this.origin, 10000);
}
void havocbot_role_kh_carrier(entity this)
if(item.itemdef == ITEM_ExtraLife)
{
- Send_Notification(NOTIF_ONE, toucher, MSG_CENTER, CENTER_EXTRALIVES);
+ Send_Notification(NOTIF_ONE, toucher, MSG_CENTER, CENTER_EXTRALIVES, autocvar_g_lms_extra_lives);
GameRules_scoring_add(toucher, LMS_LIVES, autocvar_g_lms_extra_lives);
return MUT_ITEMTOUCH_PICKUP;
}
// Main Control Point Functions
// =============================
-int ons_ControlPoint_CanBeLinked(entity cp, int teamnumber)
+int ons_ControlPoint_CanBeLinked(entity cp, int teamnum)
{
- if(cp.aregensneighbor & BIT(teamnumber)) return 2;
- if(cp.arecpsneighbor & BIT(teamnumber)) return 1;
+ if(cp.aregensneighbor & BIT(teamnum)) return 2;
+ if(cp.arecpsneighbor & BIT(teamnum)) return 1;
return 0;
}
-int ons_ControlPoint_Attackable(entity cp, int teamnumber)
+int ons_ControlPoint_Attackable(entity cp, int teamnum)
// -2: SAME TEAM, attackable by enemy!
// -1: SAME TEAM!
// 0: off limits
else if(cp.goalentity)
{
// if there's already an icon built, nothing happens
- if(cp.team == teamnumber)
+ if(cp.team == teamnum)
{
- a = ons_ControlPoint_CanBeLinked(cp, teamnumber);
+ a = ons_ControlPoint_CanBeLinked(cp, teamnum);
if(a) // attackable by enemy?
return -2; // EMERGENCY!
return -1;
}
// we know it can be linked, so no need to check
// but...
- a = ons_ControlPoint_CanBeLinked(cp, teamnumber);
+ a = ons_ControlPoint_CanBeLinked(cp, teamnum);
if(a == 2) // near our generator?
return 3; // EMERGENCY!
return 1;
else
{
// free point
- if(ons_ControlPoint_CanBeLinked(cp, teamnumber))
+ if(ons_ControlPoint_CanBeLinked(cp, teamnum))
{
- a = ons_ControlPoint_CanBeLinked(cp, teamnumber); // why was this here NUM_TEAM_1 + NUM_TEAM_2 - t
+ a = ons_ControlPoint_CanBeLinked(cp, teamnum); // why was this here NUM_TEAM_1 + NUM_TEAM_2 - t
if(a == 2)
return 4; // GET THIS ONE NOW!
else
{
sound(this, CH_TRIGGER, SND_GRENADE_IMPACT, VOL_BASE, ATTEN_NORM);
pointparticles(EFFECT_ROCKET_EXPLODE, this.origin, '0 0 0', 1);
- Send_Notification(NOTIF_ALL, NULL, MSG_INFO, APP_TEAM_NUM(this.team, INFO_ONSLAUGHT_CPDESTROYED), this.owner.message, attacker.netname);
+ if (this.owner.message != "")
+ Send_Notification(NOTIF_ALL, NULL, MSG_INFO, APP_TEAM_NUM(this.team, INFO_ONSLAUGHT_CPDESTROYED), this.owner.message, attacker.netname);
+ else
+ Send_Notification(NOTIF_ALL, NULL, MSG_INFO, APP_TEAM_NUM(this.team, INFO_ONSLAUGHT_CPDESTROYED_NONAME), attacker.netname);
GameRules_scoring_add(attacker, ONS_TAKES, 1);
GameRules_scoring_add(attacker, SCORE, 10);
if(IS_PLAYER(this.owner.ons_toucher))
{
- Send_Notification(NOTIF_ALL, NULL, MSG_INFO, INFO_ONSLAUGHT_CAPTURE, this.owner.ons_toucher.netname, this.owner.message);
- Send_Notification(NOTIF_ALL_EXCEPT, this.owner.ons_toucher, MSG_CENTER, APP_TEAM_NUM(this.owner.ons_toucher.team, CENTER_ONS_CAPTURE_TEAM), this.owner.message);
- Send_Notification(NOTIF_ONE, this.owner.ons_toucher, MSG_CENTER, CENTER_ONS_CAPTURE, this.owner.message);
+ if(this.owner.message != "")
+ {
+ Send_Notification(NOTIF_ALL, NULL, MSG_INFO, INFO_ONSLAUGHT_CAPTURE, this.owner.ons_toucher.netname, this.owner.message);
+ Send_Notification(NOTIF_ALL_EXCEPT, this.owner.ons_toucher, MSG_CENTER, APP_TEAM_NUM(this.owner.ons_toucher.team, CENTER_ONS_CAPTURE_TEAM), this.owner.message);
+ Send_Notification(NOTIF_ONE, this.owner.ons_toucher, MSG_CENTER, CENTER_ONS_CAPTURE, this.owner.message);
+ }
+ else
+ {
+ Send_Notification(NOTIF_ALL, NULL, MSG_INFO, INFO_ONSLAUGHT_CAPTURE_NONAME, this.owner.ons_toucher.netname);
+ Send_Notification(NOTIF_ALL_EXCEPT, this.owner.ons_toucher, MSG_CENTER, APP_TEAM_NUM(this.owner.ons_toucher.team, CENTER_ONS_CAPTURE_TEAM_NONAME));
+ Send_Notification(NOTIF_ONE, this.owner.ons_toucher, MSG_CENTER, CENTER_ONS_CAPTURE_NONAME);
+ }
GameRules_scoring_add(this.owner.ons_toucher, ONS_CAPS, 1);
GameRules_scoring_add_team(this.owner.ons_toucher, SCORE, 10);
}
cp.islinked = false;
cp.isshielded = true;
- if(cp.message == "") { cp.message = "a"; }
-
// appearence
setmodel(cp, MDL_ONS_CP_PAD1);
void ons_GeneratorSetup(entity gen) // called when spawning a generator entity on the map as a spawnfunc
{
// declarations
- int teamnumber = gen.team;
+ int teamnum = gen.team;
// main setup
gen.ons_worldgeneratornext = ons_worldgeneratorlist; // link generator into ons_worldgeneratorlist
ons_worldgeneratorlist = gen;
- gen.netname = sprintf("%s generator", Team_ColoredFullName(teamnumber));
+ gen.netname = sprintf("%s generator", Team_ColoredFullName(teamnum));
gen.classname = "onslaught_generator";
gen.solid = SOLID_BBOX;
- gen.team_saved = teamnumber;
+ gen.team_saved = teamnum;
IL_PUSH(g_saved_team, gen);
set_movetype(gen, MOVETYPE_NONE);
gen.lasthealth = gen.max_health = autocvar_g_onslaught_gen_health;
// model handled by CSQC
setsize(gen, GENERATOR_MIN, GENERATOR_MAX);
setorigin(gen, (gen.origin + CPGEN_SPAWN_OFFSET));
- gen.colormap = 1024 + (teamnumber - 1) * 17;
+ gen.colormap = 1024 + (teamnum - 1) * 17;
// generator placement
droptofloor(gen);
// declarations for functions used outside gamemode_onslaught.qc
void ons_Generator_UpdateSprite(entity e);
void ons_ControlPoint_UpdateSprite(entity e);
-bool ons_ControlPoint_Attackable(entity cp, int teamnumber);
+bool ons_ControlPoint_Attackable(entity cp, int teamnum);
// CaptureShield: Prevent capturing or destroying control point/generator if it is not available yet
float ons_captureshield_force; // push force of the shield
void Dump_Items();
-GENERIC_COMMAND(dumpitems, "Dump all items to the console") {
+GENERIC_COMMAND(dumpitems, "Dump all items to the console", false) {
switch (request) {
case CMD_REQUEST_COMMAND: {
Dump_Items();
.int fld = inv_items[it.m_id];
int prev = this.(fld);
int next = this.(fld) = ReadByte();
- LOG_TRACEF("%s: %.0f -> %.0f", it.m_name, prev, next);
+ LOG_DEBUGF("%s: %.0f -> %.0f", it.m_name, prev, next);
}
}
return true;
#include <common/monsters/_mod.qh>
#endif
-bool autocvar_g_mapinfo_ignore_warnings;
#ifdef MENUQC
-#define WARN_COND (!autocvar_g_mapinfo_ignore_warnings)
+#define WARN_COND false
#else
+bool autocvar_g_mapinfo_ignore_warnings;
#define WARN_COND (!autocvar_g_mapinfo_ignore_warnings && MapInfo_Map_bspname == mi_shortname)
#endif
this.dmg_force = 200;
this.mdl = this.model;
- SetBrushEntityModel(this);
+ SetBrushEntityModel(this, true);
if(this.spawnflags & BREAKABLE_NODAMAGE)
this.use = func_breakable_destroy;
if (!this.lip)
this.lip = 4;
+ if(this.wait == -1 && autocvar_sv_vq3compat)
+ this.wait = 0.1; // compatibility for q3df: "instant" return
+
if(this.noise != "")
precache_sound(this.noise);
this.angles = '0 0 0';
set_movetype(this, MOVETYPE_NONE);
this.solid = SOLID_NOT;
- SetBrushEntityModel(this);
+ SetBrushEntityModel(this, true);
if (!this.cnt)
{
this.cnt = 12;
this.angles = '0 0 0';
set_movetype(this, MOVETYPE_NONE);
this.solid = SOLID_NOT;
- SetBrushEntityModel(this);
+ SetBrushEntityModel(this, true);
if (!this.cnt)
{
this.cnt = 12;
#define G_MODEL_INIT(ent,sol) \
if(ent.geomtype && autocvar_physics_ode && checkextension("DP_PHYSICS_ODE")) set_movetype(ent, MOVETYPE_PHYSICS); \
if(!ent.scale) ent.scale = ent.modelscale; \
- SetBrushEntityModel(ent); \
+ SetBrushEntityModel(ent,true); \
ent.use = g_model_setcolormaptoactivator; \
InitializeEntity(ent, g_model_dropbyspawnflags, INITPRIO_DROPTOFLOOR); \
if(!ent.solid) ent.solid = (sol); \
#define G_CLIENTMODEL_INIT(ent,sol) \
if(ent.geomtype && autocvar_physics_ode && checkextension("DP_PHYSICS_ODE")) set_movetype(ent, MOVETYPE_PHYSICS); \
if(!ent.scale) ent.scale = ent.modelscale; \
- SetBrushEntityModel(ent); \
+ SetBrushEntityModel(ent,true); \
ent.use = g_clientmodel_use; \
InitializeEntity(ent, g_clientmodel_dropbyspawnflags, INITPRIO_DROPTOFLOOR); \
if(!ent.solid) ent.solid = (sol); \
setsize(e, e.mins, e.maxs);
}
-void SetBrushEntityModel(entity this)
+void SetBrushEntityModel(entity this, bool with_lod)
{
if(this.model != "")
{
}
else
_setmodel(this, this.model); // no precision needed
- InitializeEntity(this, LODmodel_attach, INITPRIO_FINDTARGET);
- }
- setorigin(this, this.origin);
- ApplyMinMaxScaleAngles(this);
-}
+ if(with_lod)
+ InitializeEntity(this, LODmodel_attach, INITPRIO_FINDTARGET);
-void SetBrushEntityModelNoLOD(entity this)
-{
- if(this.model != "")
- {
- precache_model(this.model);
- if(this.mins != '0 0 0' || this.maxs != '0 0 0')
- {
- vector mi = this.mins;
- vector ma = this.maxs;
- _setmodel(this, this.model); // no precision needed
- setsize(this, mi, ma);
- }
- else
- _setmodel(this, this.model); // no precision needed
+ if(endsWith(this.model, ".obj")) // WORKAROUND: darkplaces currently rotates .obj models on entities incorrectly, we need to add 180 degrees to the Y axis
+ this.angles_y = anglemods(this.angles_y - 180);
}
setorigin(this, this.origin);
ApplyMinMaxScaleAngles(this);
// to mean no restrictions, so use a yaw of 360 instead.
SetMovedir(this);
this.solid = SOLID_TRIGGER;
- SetBrushEntityModelNoLOD(this);
+ SetBrushEntityModel(this, false);
set_movetype(this, MOVETYPE_NONE);
this.modelindex = 0;
this.model = "";
// to mean no restrictions, so use a yaw of 360 instead.
SetMovedir(this);
this.solid = SOLID_BSP;
- SetBrushEntityModelNoLOD(this);
+ SetBrushEntityModel(this, false);
set_movetype(this, MOVETYPE_NONE); // why was this PUSH? -div0
// this.modelindex = 0;
this.model = "";
// trigger angles are used for one-way touches. An angle of 0 is assumed
// to mean no restrictions, so use a yaw of 360 instead.
this.solid = SOLID_BSP;
- SetBrushEntityModel(this);
+ SetBrushEntityModel(this, true);
set_movetype(this, MOVETYPE_PUSH);
if(this.modelindex == 0)
{
#ifdef SVQC
void ApplyMinMaxScaleAngles(entity e);
-void SetBrushEntityModel(entity this);
-
-void SetBrushEntityModelNoLOD(entity this);
+void SetBrushEntityModel(entity this, bool with_lod);
int autocvar_loddebug;
.string lodtarget1;
torg = tgt.origin + (tgt.mins + tgt.maxs) * 0.5;
grav = PHYS_GRAVITY(NULL);
- if(pushed_entity && PHYS_ENTGRAVITY(pushed_entity))
- grav *= PHYS_ENTGRAVITY(pushed_entity);
+ if(pushed_entity && pushed_entity.gravity)
+ grav *= pushed_entity.gravity;
zdist = torg.z - org.z;
sdist = vlen(torg - org - zdist * '0 0 1');
this.wait = 0;
this.use = multi_use;
+ if(this.wait == -1 && autocvar_sv_vq3compat)
+ this.wait = 0.1; // compatibility for q3df: "instant" return
+
EXACTTRIGGER_INIT;
this.team_saved = this.team;
if (!IS_PLAYER(actor) || weapon_prepareattack(thiswep, actor, weaponentity, false, 0.2)) {
if (!actor.target_range) actor.target_range = autocvar_g_monsters_target_range;
actor.enemy = Monster_FindTarget(actor);
+ monster_makevectors(actor, actor.enemy);
W_SetupShot_Dir(actor, weaponentity, v_forward, false, 0, SND_MageSpike_FIRE, CH_WEAPON_B, 0, DEATH_MONSTER_MAGE.m_id);
if (!IS_PLAYER(actor)) w_shotdir = normalize((actor.enemy.origin + '0 0 10') - actor.origin);
M_Mage_Attack_Spike(actor, w_shotdir);
void M_Shambler_Attack_Lightning(entity this)
{
- monster_makevectors(this, this.enemy);
-
entity gren = new(grenade);
gren.owner = gren.realowner = this;
gren.bot_dodge = true;
actor.anim_finished = time + 1;
}
if (isPlayer) actor.enemy = Monster_FindTarget(actor);
+ monster_makevectors(actor, actor.enemy);
W_SetupShot_Dir(actor, weaponentity, v_forward, false, 0, SND_SpiderAttack_FIRE, CH_WEAPON_B, 0, DEATH_MONSTER_SPIDER.m_id);
if (!isPlayer) w_shotdir = normalize((actor.enemy.origin + '0 0 10') - actor.origin);
M_Spider_Attack_Web(actor);
void M_Spider_Attack_Web(entity this)
{
- monster_makevectors(this, this.enemy);
-
sound(this, CH_SHOTS, SND_ELECTRO_FIRE2, VOL_BASE, ATTEN_NORM);
entity proj = new(plasma);
TC(WyvernAttack, thiswep);
if (fire & 1)
if (time > actor.attack_finished_single[0] || weapon_prepareattack(thiswep, actor, weaponentity, false, 1.2)) {
+ monster_makevectors(actor, actor.enemy);
if (IS_PLAYER(actor)) W_SetupShot_Dir(actor, weaponentity, v_forward, false, 0, SND_WyvernAttack_FIRE, CH_WEAPON_B, 0, DEATH_MONSTER_WYVERN.m_id);
if (IS_MONSTER(actor)) {
actor.attack_finished_single[0] = time + 1.2;
actor.anim_finished = time + 1.2;
- monster_makevectors(actor, actor.enemy);
}
entity missile = spawn();
.void(entity) monster_delayedfunc;
void Monster_Delay_Action(entity this)
{
- if(Monster_ValidTarget(this.owner, this.owner.enemy)) { this.monster_delayedfunc(this.owner); }
+ if(Monster_ValidTarget(this.owner, this.owner.enemy))
+ {
+ monster_makevectors(this.owner, this.owner.enemy);
+ this.monster_delayedfunc(this.owner);
+ }
if(this.cnt > 1)
{
else
this.attack_finished_single[0] = this.anim_finished = time + animtime;
- monster_makevectors(this, targ);
-
traceline(this.origin + this.view_ofs, this.origin + v_forward * er, 0, this);
if(trace_ent.takedamage)
if(vdist(targ.origin - this.origin, <=, this.attack_range))
{
+ monster_makevectors(this, targ);
int attack_success = this.monster_attackfunc(MONSTER_ATTACK_MELEE, this, targ, weaponentity);
if(attack_success == 1)
Monster_Sound(this, monstersound_melee, 0, false, CH_VOICE);
if(vdist(targ.origin - this.origin, >, this.attack_range))
{
+ monster_makevectors(this, targ);
int attack_success = this.monster_attackfunc(MONSTER_ATTACK_RANGED, this, targ, weaponentity);
if(attack_success == 1)
Monster_Sound(this, monstersound_melee, 0, false, CH_VOICE);
this.m_color = '1 0.39 0';
}
BUFF_SPAWNFUNCS(bash, BUFF_BASH)
+BUFF_SPAWNFUNC_Q3TA_COMPAT(doubler, BUFF_BASH)
REGISTER_BUFF(VAMPIRE) {
this.m_name = _("Vampire");
FOREACH(Buffs, buff_Available(it),
{
// if it's already been chosen, give it a lower priority
- RandomSelection_AddEnt(it, max(0.2, 1 / it.buff_seencount), 1);
+ float myseencount = (it.buff_seencount > 0) ? it.buff_seencount : 1; // no division by zero please!
+ RandomSelection_AddEnt(it, max(0.2, 1 / myseencount), 1);
});
entity newbuff = RandomSelection_chosen_ent;
newbuff.buff_seencount += 1; // lower chances of seeing this buff again soon
if(frag_target != frag_attacker)
{
- if(frag_damage <= 0 && GetResource(frag_target, RES_HEALTH) > 0) { Send_Notification(NOTIF_ONE, frag_attacker, MSG_CENTER, CENTER_SECONDARY_NODAMAGE); }
if(!autocvar_g_instagib_blaster_keepforce)
frag_force = '0 0 0';
}
M_ARGV(6, vector) = frag_force;
}
-MUTATOR_HOOKFUNCTION(mutator_instagib, SetStartItems)
+MUTATOR_HOOKFUNCTION(mutator_instagib, SetStartItems, CBC_ORDER_LAST)
{
start_health = warmup_start_health = 100;
start_armorvalue = warmup_start_armorvalue = 0;
if(item.itemdef == ITEM_ExtraLife)
{
GiveResource(toucher, RES_ARMOR, autocvar_g_instagib_extralives);
- Send_Notification(NOTIF_ONE, toucher, MSG_CENTER, CENTER_EXTRALIVES);
+ Send_Notification(NOTIF_ONE, toucher, MSG_CENTER, CENTER_EXTRALIVES, autocvar_g_instagib_extralives);
return MUT_ITEMTOUCH_PICKUP;
}
this.nade_altbutton = true;
if(time > this.nade_refire)
{
- Send_Notification(NOTIF_ONE, this, MSG_CENTER, CENTER_NADE_THROW);
nade_prime(this);
this.nade_refire = time + autocvar_g_nades_nade_refire;
}
held_nade.angles_y = player.angles.y;
if (time + 0.1 >= held_nade.wait)
+ {
toss_nade(player, false, '0 0 0', time + 0.05);
+ Send_Notification(NOTIF_ONE, player, MSG_CENTER, CENTER_NADE_THROW);
+ }
}
if(IS_PLAYER(player))
{
float killcount_bonus = ((CS(frag_attacker).killcount >= 1) ? bound(0, autocvar_g_nades_bonus_score_minor * CS(frag_attacker).killcount, autocvar_g_nades_bonus_score_medium)
: autocvar_g_nades_bonus_score_minor);
-
if (SAME_TEAM(frag_attacker, frag_target) || frag_attacker == frag_target)
nades_RemoveBonus(frag_attacker);
else if(GameRules_scoring_is_vip(frag_target))
if(!STAT(FROZEN, frag_target))
if(!IS_DEAD(frag_target))
{
- Send_Notification(NOTIF_ONE, frag_attacker, MSG_CENTER, CENTER_SECONDARY_NODAMAGE);
M_ARGV(6, vector) = '0 0 0'; // force
}
float dist = 10, max_normal = 0.2, scaler = 100;
vector start = this.origin;
- TRACE(start + v_forward * scaler)
- TRACE(start - v_forward * scaler)
- TRACE(start + v_right * scaler)
- TRACE(start - v_right * scaler)
+ vector forward, right, _up;
+ MAKE_VECTORS(this.angles, forward, right, _up);
+ TRACE(start + forward * scaler)
+ TRACE(start - forward * scaler)
+ TRACE(start + right * scaler)
+ TRACE(start - right * scaler)
#undef TRACE
return '0 0 0';
}
MULTITEAM_INFO(NEXBALL_RETURN_HELD, N_CONSOLE, 0, 0, "", "", "", _("^BGThe ^TC^TT^BG team held the ball for too long"), "", NAME)
MSG_INFO_NOTIF(ONSLAUGHT_CAPTURE, N_CONSOLE, 2, 0, "s1 s2", "", "", _("^BG%s^BG captured %s^BG control point"), "")
+ MSG_INFO_NOTIF(ONSLAUGHT_CAPTURE_NONAME, N_CONSOLE, 1, 0, "s1", "", "", _("^BG%s^BG captured a control point"), "")
MULTITEAM_INFO(ONSLAUGHT_CPDESTROYED, N_CONSOLE, 2, 0, "s1 s2", "", "", _("^TC^TT^BG team %s^BG control point has been destroyed by %s"), "", NAME)
+ MULTITEAM_INFO(ONSLAUGHT_CPDESTROYED_NONAME, N_CONSOLE, 1, 0, "s1", "", "", _("^TC^TT^BG team control point has been destroyed by %s"), "", NAME)
MULTITEAM_INFO(ONSLAUGHT_GENDESTROYED, N_CONSOLE, 0, 0, "", "", "", _("^TC^TT^BG generator has been destroyed"), "", GENERATOR)
MULTITEAM_INFO(ONSLAUGHT_GENDESTROYED_OVERTIME, N_CONSOLE, 0, 0, "", "", "", _("^TC^TT^BG generator spontaneously combusted due to overtime!"), "", GENERATOR)
MSG_CENTER_NOTIF(DOOR_LOCKED_ALSONEED, N_ENABLE, 1, 0, "s1", CPID_Null, "0 0", _("^BGYou also need %s^BG!"), "")
MSG_CENTER_NOTIF(DOOR_UNLOCKED, N_ENABLE, 0, 0, "", CPID_Null, "0 0", _("^BGDoor unlocked!"), "")
- MSG_CENTER_NOTIF(EXTRALIVES, N_ENABLE, 0, 0, "", CPID_Null, "0 0", _("^F2You picked up some extra lives"), "")
+ MSG_CENTER_NOTIF(EXTRALIVES, N_ENABLE, 0, 1, "f1", CPID_Null, "0 0", _("^F2Extra lives taken: ^K1%s"), "")
MSG_CENTER_NOTIF(FREEZETAG_REVIVE, N_ENABLE, 1, 0, "s1", CPID_Null, "0 0", _("^K3You revived ^BG%s"), "")
MSG_CENTER_NOTIF(FREEZETAG_REVIVE_SELF, N_ENABLE, 0, 0, "", CPID_Null, "0 0", _("^K3You revived yourself"), "")
MSG_CENTER_NOTIF(NIX_NEWWEAPON, N_ENABLE, 0, 1, "item_wepname", CPID_NIX, "0 0", _("^F2Active weapon: ^F1%s"), "")
MSG_CENTER_NOTIF(ONS_CAPTURE, N_ENABLE, 1, 0, "s1", CPID_ONSLAUGHT, "0 0", _("^BGYou captured %s^BG control point"), "")
+ MSG_CENTER_NOTIF(ONS_CAPTURE_NONAME, N_ENABLE, 0, 0, "", CPID_ONSLAUGHT, "0 0", _("^BGYou captured a control point"), "")
MULTITEAM_CENTER(ONS_CAPTURE_TEAM, N_ENABLE, 1, 0, "s1", CPID_ONSLAUGHT, "0 0", _("^TC^TT^BG team captured %s^BG control point"), "", NAME)
+ MULTITEAM_CENTER(ONS_CAPTURE_TEAM_NONAME, N_ENABLE, 0, 0, "", CPID_ONSLAUGHT, "0 0", _("^TC^TT^BG team captured a control point"), "", NAME)
MSG_CENTER_NOTIF(ONS_CONTROLPOINT_SHIELDED, N_ENABLE, 0, 0, "", CPID_ONS_CAPSHIELD, "0 0", _("^BGThis control point currently cannot be captured"), "")
MSG_CENTER_NOTIF(ONS_GENERATOR_SHIELDED, N_ENABLE, 0, 0, "", CPID_ONS_CAPSHIELD, "0 0", _("^BGThe enemy generator cannot be destroyed yet\n^F2Capture some control points to unshield it"), "")
MULTITEAM_CENTER(ONS_NOTSHIELDED, N_ENABLE, 0, 0, "", CPID_ONSLAUGHT, "0 0", _("^BGThe ^TCenemy^BG generator is no longer shielded!"), "", NAME)
MSG_CENTER_NOTIF(RACE_FINISHLAP, N_ENABLE, 0, 0, "", CPID_RACE_FINISHLAP, "0 0", _("^F2The race is over, finish your lap!"), "")
- MSG_CENTER_NOTIF(SECONDARY_NODAMAGE, N_ENABLE, 0, 0, "", CPID_Null, "0 0", _("^BGSecondary fire inflicts no damage!"), "")
-
MSG_CENTER_NOTIF(SEQUENCE_COMPLETED, N_ENABLE, 0, 0, "", CPID_Null, "0 0", _("^BGSequence completed!"), "")
MSG_CENTER_NOTIF(SEQUENCE_COUNTER, N_ENABLE, 0, 0, "", CPID_Null, "0 0", _("^BGThere are more to go..."), "")
MSG_CENTER_NOTIF(SEQUENCE_COUNTER_FEWMORE, N_ENABLE, 0, 1, "f1", CPID_Null, "0 0", _("^BGOnly %s^BG more to go..."), "")
void Dump_Notifications(int fh, bool alsoprint);
-GENERIC_COMMAND(dumpnotifs, "Dump all notifications into notifications_dump.txt")
+GENERIC_COMMAND(dumpnotifs, "Dump all notifications into notifications_dump.txt", false)
{
switch (request)
{
void ReplicateVars(bool would_destroy)
{
if (!would_destroy)
- FOREACH(Notifications, it.nent_type == MSG_CHOICE, {
- string cvarname = sprintf("notification_%s", Get_Notif_CvarName(it));
+ FOREACH(Notifications, it.nent_type == MSG_CHOICE && (!it.nent_teamnum || it.nent_teamnum == NUM_TEAM_1), {
+ string cvarname = strcat("notification_", Get_Notif_CvarName(it));
// NOTE: REPLICATE_SIMPLE can return;
REPLICATE_SIMPLE(it.cvar_value, cvarname);
});
if(applygravity)
{
this.move_didgravity = 1;
- grav = dt * (PHYS_ENTGRAVITY(this) ? PHYS_ENTGRAVITY(this) : 1) * PHYS_GRAVITY(this);
+ grav = dt * (this.gravity ? this.gravity : 1) * PHYS_GRAVITY(this);
if(!GAMEPLAYFIX_NOGRAVITYONGROUND || !IS_ONGROUND(this))
{
void _Movetype_Impact(entity this, entity oth) // SV_Impact
{
- if(gettouch(this))
+ if(!this && !oth)
+ return;
+
+ if(this.solid != SOLID_NOT && gettouch(this))
gettouch(this)(this, oth);
- if(gettouch(oth))
+ if(oth.solid != SOLID_NOT && gettouch(oth))
+ {
+ trace_endpos = oth.origin;
+ trace_plane_normal = -trace_plane_normal;
+ trace_plane_dist = -trace_plane_dist;
+ trace_ent = this;
+ trace_dpstartcontents = 0;
+ trace_dphitcontents = 0;
+ trace_dphitq3surfaceflags = 0;
+ trace_dphittexturename = string_null;
gettouch(oth)(oth, this);
+ }
}
void _Movetype_LinkEdict_TouchAreaGrid(entity this) // SV_LinkEdict_TouchAreaGrid
vector last_origin = this.origin;
- if(dolink)
- _Movetype_LinkEdict(this, true);
+ _Movetype_LinkEdict(this, dolink);
- if(trace_fraction < 1)
- if(this.solid >= SOLID_TRIGGER && trace_ent && (!IS_ONGROUND(this) || (this.groundentity != trace_ent)))
- _Movetype_Impact(this, trace_ent);
+ if((this.solid >= SOLID_TRIGGER && trace_fraction < 1 && (!IS_ONGROUND(this) || this.groundentity != trace_ent)))
+ _Movetype_Impact(this, trace_ent);
return (this.origin == last_origin); // false if teleported by touch
}
Movetype_Physics_MatchTicrate(this, TICRATE, sloppy);
}
+// saved .move_*
.vector tic_origin;
.vector tic_velocity;
.int tic_flags;
.vector tic_avelocity;
.vector tic_angles;
+// saved .*
.vector tic_saved_origin;
.vector tic_saved_velocity;
.int tic_saved_flags;
.vector tic_saved_angles;
void Movetype_Physics_MatchTicrate(entity this, float tr, bool sloppy) // SV_Physics_Entity
{
+ // this hack exists to contain the physics feature
+ // (so entities can place themselves in the world and not need to update .tic_* themselves)
#define X(s) \
if(this.(s) != this.tic_saved_##s) \
this.tic_##s = this.(s)
X(angles);
#undef X
+ this.flags = this.tic_flags;
+ this.velocity = this.tic_velocity;
+ setorigin(this, this.tic_origin);
+ this.avelocity = this.tic_avelocity;
+ this.angles = this.tic_angles;
+
if(tr <= 0)
{
- this.flags = this.tic_flags;
- this.velocity = this.tic_velocity;
- this.origin = this.tic_origin;
- this.avelocity = this.tic_avelocity;
- this.angles = this.tic_angles;
Movetype_Physics_NoMatchServer(this);
- this.tic_origin = this.origin;
- this.tic_velocity = this.velocity;
- this.tic_avelocity = this.avelocity;
- this.tic_angles = this.angles;
- this.tic_flags = this.flags;
this.tic_saved_flags = this.flags;
this.tic_saved_velocity = this.velocity;
if(!this.move_didgravity)
this.move_didgravity = ((this.move_movetype == MOVETYPE_BOUNCE || this.move_movetype == MOVETYPE_TOSS) && !(this.tic_flags & FL_ONGROUND));
- for (int i = 0; i < n; ++i)
+ for (int j = 0; j < n; ++j)
{
- this.flags = this.tic_flags;
- this.velocity = this.tic_velocity;
- setorigin(this, this.tic_origin);
- this.avelocity = this.tic_avelocity;
- this.angles = this.tic_angles;
_Movetype_Physics_Frame(this, tr);
- this.tic_origin = this.origin;
- this.tic_velocity = this.velocity;
- this.tic_avelocity = this.avelocity;
- this.tic_angles = this.angles;
- this.tic_flags = this.flags;
if(wasfreed(this))
return;
}
+ // update the physics fields
+ this.tic_origin = this.origin;
+ this.tic_velocity = this.velocity;
+ this.tic_avelocity = this.avelocity;
+ this.tic_angles = this.angles;
+ this.tic_flags = this.flags;
+
+ // restore their actual values
+ this.flags = this.tic_saved_flags;
+ this.velocity = this.tic_saved_velocity;
+ setorigin(this, this.tic_saved_origin);
+ //this.avelocity = this.tic_saved_avelocity;
+ this.angles = this.tic_saved_angles;
+
this.avelocity = this.tic_avelocity;
if(dt > 0 && this.move_movetype != MOVETYPE_NONE && !(this.tic_flags & FL_ONGROUND))
{
this.velocity_z -= (GAMEPLAYFIX_GRAVITYUNAFFECTEDBYTICRATE ? 0.5 : 1)
* dt
- * (this.gravity ? this.gravity : 1)
+ * ((this.gravity) ? this.gravity : 1)
* PHYS_GRAVITY(this);
}
}
else
{
- vector oldorg = this.origin;
- this.origin = this.tic_origin;
+ setorigin(this, this.tic_origin);
_Movetype_PushEntityTrace(this, dt * this.velocity);
- this.origin = oldorg;
if(!trace_startsolid)
setorigin(this, trace_endpos);
+ else
+ setorigin(this, this.tic_saved_origin);
}
if(this.move_didgravity > 0 && GAMEPLAYFIX_GRAVITYUNAFFECTEDBYTICRATE)
- this.velocity_z -= 0.5 * dt * (this.gravity ? this.gravity : 1) * PHYS_GRAVITY(this);
+ this.velocity_z -= 0.5 * dt * ((this.gravity) ? this.gravity : 1) * PHYS_GRAVITY(this);
}
else
{
setorigin(this, this.tic_origin);
}
+ this.flags = this.tic_flags;
+
this.tic_saved_flags = this.flags;
this.tic_saved_velocity = this.velocity;
this.tic_saved_origin = this.origin;
#define GAMEPLAYFIX_STEPMULTIPLETIMES(s) STAT(GAMEPLAYFIX_STEPMULTIPLETIMES)
#define GAMEPLAYFIX_UNSTICKPLAYERS(s) STAT(GAMEPLAYFIX_UNSTICKPLAYERS)
#define GAMEPLAYFIX_WATERTRANSITION(s) STAT(GAMEPLAYFIX_WATERTRANSITION)
+#define GAMEPLAYFIX_SLIDEMOVEPROJECTILES(s) STAT(GAMEPLAYFIX_SLIDEMOVEPROJECTILES)
+#define GAMEPLAYFIX_GRENADEBOUNCESLOPES(s) STAT(GAMEPLAYFIX_GRENADEBOUNCESLOPES)
+#define GAMEPLAYFIX_NOAIRBORNCORPSE(s) STAT(GAMEPLAYFIX_NOAIRBORNCORPSE)
+#define NOAIRBORNCORPSE_ALLOWSUSPENDED(s) STAT(NOAIRBORNCORPSE_ALLOWSUSPENDED)
#define UPWARD_VELOCITY_CLEARS_ONGROUND(s) STAT(GAMEPLAYFIX_UPVELOCITYCLEARSONGROUND)
+
#define PHYS_STEPHEIGHT(s) STAT(MOVEVARS_STEPHEIGHT)
#define PHYS_NOSTEP(s) STAT(NOSTEP)
#define PHYS_JUMPSTEP(s) STAT(MOVEVARS_JUMPSTEP)
void _Movetype_Physics_Toss(entity this, float dt) // SV_Physics_Toss
{
- if (IS_ONGROUND(this))
+ if(IS_ONGROUND(this))
{
- if (this.velocity.z >= 1 / 32 && UPWARD_VELOCITY_CLEARS_ONGROUND(this))
+ if(this.velocity.z >= (1 / 32) && UPWARD_VELOCITY_CLEARS_ONGROUND(this))
{
+ // don't stick to ground if onground and moving upward
UNSET_ONGROUND(this);
}
- else if (!this.groundentity)
+ else if(!this.groundentity || !GAMEPLAYFIX_NOAIRBORNCORPSE(this))
{
return;
}
- else if (this.move_suspendedinair && wasfreed(this.groundentity))
+ else if(this.move_suspendedinair && wasfreed(this.groundentity))
{
this.groundentity = NULL;
+ if(NOAIRBORNCORPSE_ALLOWSUSPENDED(this))
+ return;
+ }
+ else if(boxesoverlap(this.absmin, this.absmax, this.groundentity.absmin, this.groundentity.absmax))
+ {
+ // don't slide if still touching the groundentity
return;
}
}
_Movetype_CheckVelocity(this);
- /*if (this.move_movetype == MOVETYPE_BOUNCE || this.move_movetype == MOVETYPE_TOSS)
+ if(this.move_movetype == MOVETYPE_BOUNCE || this.move_movetype == MOVETYPE_TOSS)
{
- this.move_didgravity = 1;
+ this.move_didgravity = true;
this.velocity_z -= (GAMEPLAYFIX_GRAVITYUNAFFECTEDBYTICRATE ? 0.5 : 1)
* dt
- * (this.gravity ? this.gravity : 1)
+ * ((this.gravity) ? this.gravity : 1)
* PHYS_GRAVITY(this);
- }*/
+ }
- if (this.move_movetype == MOVETYPE_BOUNCE || this.move_movetype == MOVETYPE_TOSS)
+ /*if (this.move_movetype == MOVETYPE_BOUNCE || this.move_movetype == MOVETYPE_TOSS)
{
this.move_didgravity = true;
this.velocity_z -= (((this.gravity) ? this.gravity : 1) * PHYS_GRAVITY(this) * dt);
- }
+ }*/
this.angles = this.angles + this.avelocity * dt;
float movetime = dt;
- for (int bump = 0; bump < MAX_CLIP_PLANES && movetime > 0; ++bump)
+ for (int bump = 0; bump < MAX_CLIP_PLANES && movetime > 0; bump++)
{
vector move = this.velocity * movetime;
- _Movetype_PushEntity(this, move, true, false);
+ if(!_Movetype_PushEntity(this, move, true, true))
+ return;
if (wasfreed(this))
return;
if (trace_startsolid)
{
_Movetype_UnstickEntity(this);
- _Movetype_PushEntity(this, move, false, false);
+ if(!_Movetype_PushEntity(this, move, true, true))
+ return;
if (wasfreed(this))
return;
}
if (this.move_movetype == MOVETYPE_BOUNCEMISSILE)
{
- this.velocity = _Movetype_ClipVelocity(this.velocity, trace_plane_normal, 2.0);
+ float bouncefac = (!this.bouncefactor) ? 1.0 : this.bouncefactor;
+ this.velocity = _Movetype_ClipVelocity(this.velocity, trace_plane_normal, 1 + bouncefac);
UNSET_ONGROUND(this);
+ if(!GAMEPLAYFIX_SLIDEMOVEPROJECTILES(this))
+ movetime = 0;
}
else if (this.move_movetype == MOVETYPE_BOUNCE)
{
- float bouncefac = this.bouncefactor; if (!bouncefac) bouncefac = 0.5;
- float bstop = this.bouncestop; if (!bstop) bstop = 60 / 800;
- bstop *= (this.gravity ? this.gravity : 1) * PHYS_GRAVITY(this);
+ float bouncefac = (!this.bouncefactor) ? 0.5 : this.bouncefactor;
+ float bstop = (!this.bouncestop) ? (60 / 800) : this.bouncestop;
+ float grav = ((this.gravity) ? this.gravity : 1);
this.velocity = _Movetype_ClipVelocity(this.velocity, trace_plane_normal, 1 + bouncefac);
float d = trace_plane_normal * this.velocity;
- if (trace_plane_normal.z > 0.7 && d < bstop && d > -bstop)
+ if(!GAMEPLAYFIX_GRENADEBOUNCESLOPES(this))
+ d = this.velocity.z;
+ if (trace_plane_normal.z > 0.7 && d < PHYS_GRAVITY(this) * bstop * grav)
{
SET_ONGROUND(this);
this.groundentity = trace_ent;
this.velocity = '0 0 0';
this.avelocity = '0 0 0';
+ movetime = 0;
}
else
{
UNSET_ONGROUND(this);
+ if(!GAMEPLAYFIX_SLIDEMOVEPROJECTILES(this))
+ movetime = 0;
}
}
else
this.move_suspendedinair = true;
this.velocity = '0 0 0';
this.avelocity = '0 0 0';
+ movetime = 0;
}
else
{
UNSET_ONGROUND(this);
+ if(!GAMEPLAYFIX_SLIDEMOVEPROJECTILES(this))
+ movetime = 0;
}
}
// DP revision 8905 (just, WHY...)
- if (this.move_movetype == MOVETYPE_BOUNCEMISSILE)
- break;
+ //if (this.move_movetype == MOVETYPE_BOUNCEMISSILE)
+ //break;
// DP revision 8918 (WHY...)
- if (IS_ONGROUND(this))
- break;
+ //if (IS_ONGROUND(this))
+ //break;
}
- //if (GAMEPLAYFIX_GRAVITYUNAFFECTEDBYTICRATE && this.move_didgravity > 0 && !IS_ONGROUND(this))
- // this.velocity_z -= 0.5 * dt * (this.gravity ? this.gravity : 1) * PHYS_GRAVITY(this);
+ if (GAMEPLAYFIX_GRAVITYUNAFFECTEDBYTICRATE && this.move_didgravity > 0 && !IS_ONGROUND(this))
+ this.velocity_z -= 0.5 * dt * ((this.gravity) ? this.gravity : 1) * PHYS_GRAVITY(this);
_Movetype_CheckWaterTransition(this);
}
}
}
+SHUTDOWN(PlayerStats_PlayerBasic_Shutdown)
+{
+ if(PS_B_IN_DB >= 0)
+ {
+ db_close(PS_B_IN_DB);
+ PS_B_IN_DB = -1;
+ }
+
+ if(PS_GR_OUT_DB >= 0)
+ {
+ db_close(PS_GR_OUT_DB);
+ PS_GR_OUT_DB = -1;
+ }
+}
+
void PlayerStats_PlayerBasic_CheckUpdate(entity joiningplayer)
{
// determine whether we should retrieve playerbasic information again
//float PS_PM_IN_DB = -1; // playerstats_prematch_in_db // db for info COLLECTED at the beginning of a match
int PS_GR_OUT_DB = -1; // playerstats_gamereport_out_db // db of info SENT at the end of a match
//float PS_GR_IN_DB = -1; // playerstats_gamereport_in_db // db for info COLLECTED at the end of a match
-int PS_B_IN_DB = -1; // playerstats_playerbasic_in_db // db for info COLLECTED for basic player info (ELO)
+float PS_B_IN_DB = -1; // playerstats_playerbasic_in_db // db for info COLLECTED for basic player info (ELO)
#endif
#ifdef MENUQC
int autocvar_sv_gameplayfix_stepmultipletimes = 1;
int autocvar_sv_gameplayfix_unstickplayers = 1;
int autocvar_sv_gameplayfix_fixedcheckwatertransition = 1;
+int autocvar_sv_gameplayfix_slidemoveprojectiles = 1;
+int autocvar_sv_gameplayfix_grenadebouncedownslopes = 1;
+int autocvar_sv_gameplayfix_noairborncorpse = 1;
+int autocvar_sv_gameplayfix_noairborncorpse_allowsuspendeditems = 1;
#endif
REGISTER_STAT(GAMEPLAYFIX_DOWNTRACEONGROUND, int, autocvar_sv_gameplayfix_downtracesupportsongroundflag)
REGISTER_STAT(GAMEPLAYFIX_EASIERWATERJUMP, int, autocvar_sv_gameplayfix_easierwaterjump)
REGISTER_STAT(GAMEPLAYFIX_UNSTICKPLAYERS, int, autocvar_sv_gameplayfix_unstickplayers)
REGISTER_STAT(GAMEPLAYFIX_UPVELOCITYCLEARSONGROUND, int, autocvar_sv_gameplayfix_upwardvelocityclearsongroundflag)
REGISTER_STAT(GAMEPLAYFIX_WATERTRANSITION, int, autocvar_sv_gameplayfix_fixedcheckwatertransition)
+REGISTER_STAT(GAMEPLAYFIX_SLIDEMOVEPROJECTILES, int, autocvar_sv_gameplayfix_slidemoveprojectiles)
+REGISTER_STAT(GAMEPLAYFIX_GRENADEBOUNCESLOPES, int, autocvar_sv_gameplayfix_grenadebouncedownslopes)
+REGISTER_STAT(GAMEPLAYFIX_NOAIRBORNCORPSE, int, autocvar_sv_gameplayfix_noairborncorpse)
+REGISTER_STAT(NOAIRBORNCORPSE_ALLOWSUSPENDED, int, autocvar_sv_gameplayfix_noairborncorpse_allowsuspendeditems)
REGISTER_STAT(MOVEVARS_JUMPSTEP, int, cvar("sv_jumpstep"))
REGISTER_STAT(NOSTEP, int, cvar("sv_nostep"))
this.onground_time = time + 0.5;
}
}
- else if (autocvar_cl_animate_items)
+ else if (autocvar_cl_animate_items && !this.item_simple) // no bobbing applied to simple items, for consistency's sake (no visual difference between ammo and weapons)
{
if(this.ItemStatus & ITS_ANIMATE1)
{
- if(!this.item_simple)
- this.angles += this.avelocity * frametime;
+ this.angles += this.avelocity * frametime;
float fade_in = bound(0, time - this.onground_time, 1);
setorigin(this, this.oldorigin + fade_in * ('0 0 10' + '0 0 8' * sin((time - this.onground_time) * 2)));
}
if(this.ItemStatus & ITS_ANIMATE2)
{
- if(!this.item_simple)
- this.angles += this.avelocity * frametime;
+ this.angles += this.avelocity * frametime;
float fade_in = bound(0, time - this.onground_time, 1);
setorigin(this, this.oldorigin + fade_in * ('0 0 8' + '0 0 4' * sin((time - this.onground_time) * 3)));
}
Item_SetAlpha(this);
- if(autocvar_cl_fullbright_items)
- if(this.ItemStatus & ITS_ALLOWFB)
- this.effects |= EF_FULLBRIGHT;
+ if(this.ItemStatus & ITS_ALLOWFB)
+ this.effects |= EF_FULLBRIGHT;
if(this.ItemStatus & ITS_GLOW)
{
float autocvar_cl_animate_items = 1;
float autocvar_cl_ghost_items = 0.45;
vector autocvar_cl_ghost_items_color = '-1 -1 -1';
-float autocvar_cl_fullbright_items = 0;
vector autocvar_cl_weapon_stay_color = '2 0.5 0.5';
float autocvar_cl_weapon_stay_alpha = 0.75;
float autocvar_cl_simple_items = 0;
#define TR_CONFIG_END()
#endif
-GENERIC_COMMAND(dumpturrets, "Dump all turrets into turrets_dump.txt")
+GENERIC_COMMAND(dumpturrets, "Dump all turrets into turrets_dump.txt", false)
{
switch(request)
{
if((pValue == 0) && (pFlags & (SFL_HIDE_ZERO | SFL_RANK | SFL_TIME)))
valstr = "";
else if(pFlags & SFL_RANK)
- {
- valstr = ftos(pValue);
- l = strlen(valstr);
- if((l >= 2) && (substring(valstr, l - 2, 1) == "1"))
- valstr = strcat(valstr, "th");
- else if(substring(valstr, l - 1, 1) == "1")
- valstr = strcat(valstr, "st");
- else if(substring(valstr, l - 1, 1) == "2")
- valstr = strcat(valstr, "nd");
- else if(substring(valstr, l - 1, 1) == "3")
- valstr = strcat(valstr, "rd");
- else
- valstr = strcat(valstr, "th");
- }
+ valstr = count_ordinal(pValue);
else if(pFlags & SFL_TIME)
valstr = TIME_ENCODED_TOSTRING(pValue);
else
l *= f;
}
- if(cvar("developer"))
+ if(cvar("developer") > 0)
{
LOG_TRACE("Verifying vector compression table...");
for(i = 0x0F00; i < 0xFFFF; ++i)
#define WepSet_FromWeapon(it) ((it).m_wepset)
WepSet _WepSet_FromWeapon(int i);
-GENERIC_COMMAND(dumpweapons, "Dump all weapons into weapons_dump.txt") // WEAPONTODO: make this work with other progs than just server
+GENERIC_COMMAND(dumpweapons, "Dump all weapons into weapons_dump.txt", false) // WEAPONTODO: make this work with other progs than just server
{
switch(request)
{
dir = reflect(dir, trace_plane_normal);
pos = trace_endpos;
wepent.polyline[++idx] = pos;
- if (trace_dphitq3surfaceflags & Q3SURFACEFLAG_SLICK || trace_dphitcontents & DPCONTENTS_PLAYERCLIP)
+ if ((trace_dphitq3surfaceflags & Q3SURFACEFLAG_SLICK) || (trace_dphitcontents & DPCONTENTS_PLAYERCLIP))
{
n += 1;
continue;
void print_assertfailed_fatal(string expr);
#define assert(expr, ...) _assert(print_assertfailed_severe, expr, __VA_ARGS__)
-#define devassert(...) MACRO_BEGIN if (autocvar_developer) assert(__VA_ARGS__); MACRO_END
+#define devassert(...) MACRO_BEGIN if (autocvar_developer > 0) assert(__VA_ARGS__); MACRO_END
#define assert_once(expr, ...) \
MACRO_BEGIN \
__once = true; \
} \
MACRO_END
-#define devassert_once(...) MACRO_BEGIN if (autocvar_developer) assert_once(__VA_ARGS__); MACRO_END
+#define devassert_once(...) MACRO_BEGIN if (autocvar_developer > 0) assert_once(__VA_ARGS__); MACRO_END
#define demand(expr, ...) _assert(print_assertfailed_fatal, expr, __VA_ARGS__)
-#define devdemand(...) MACRO_BEGIN if (autocvar_developer) demand(__VA_ARGS__); MACRO_END
+#define devdemand(...) MACRO_BEGIN if (autocvar_developer > 0) demand(__VA_ARGS__); MACRO_END
#define _assert(f, expr, then) \
MACRO_BEGIN \
#include <common/command/_mod.qh>
-GENERIC_COMMAND(mx, "Send a matrix command") {
+GENERIC_COMMAND(mx, "Send a matrix command", false) {
switch (argv(1)) {
case "user":
strcpy(matrix_user, substring(command, argv_start_index(2), -1));
{
TC(Object, this);
string s = _("No description");
- if (cvar("developer"))
+ if (cvar("developer") > 0)
{
for (int i = 0, n = numentityfields(); i < n; ++i)
{
}
#define REPLICATE_SIMPLE(field, cvarname) MACRO_BEGIN \
- if (ReplicateVars_NOT_SENDING() && field != cvar(cvarname)) \
+ if (ReplicateVars_NOT_SENDING()) \
{ \
- localcmd(strcat("cl_cmd sendcvar ", cvarname, "\n")); \
- ReplicateVars_DELAY_1FRAME(); \
- field = cvar(cvarname); \
- return; \
+ float thecvar = cvar(cvarname); \
+ if(field != thecvar) \
+ { \
+ localcmd(strcat("cl_cmd sendcvar ", cvarname, "\n")); \
+ ReplicateVars_DELAY_1FRAME(); \
+ field = thecvar; \
+ return; \
+ } \
} \
MACRO_END
#endif
}
#define _STATIC_INIT(func, where) \
- ACCUMULATE void _static_##func##profile() { profile(#func); } \
- ACCUMULATE_FUNCTION(where, _static_##func##profile) \
+ /* ACCUMULATE void _static_##func##profile() { profile(#func); } */ \
+ /* ACCUMULATE_FUNCTION(where, _static_##func##profile) */ \
ACCUMULATE void _static_##func(); \
ACCUMULATE_FUNCTION(where, _static_##func) \
void _static_##func()
gamestatus = 0;
if (isserver()) gamestatus |= GAME_ISSERVER;
if (clientstate() == CS_CONNECTED || isdemo()) gamestatus |= GAME_CONNECTED;
- if (cvar("developer")) gamestatus |= GAME_DEVELOPER;
+ if (cvar("developer") > 0) gamestatus |= GAME_DEVELOPER;
}
void m_init()
#endif
// list all game dirs (TEST)
- if (cvar("developer"))
+ if (cvar("developer") > 0)
{
for (int i = 0; ; ++i)
{
me.TD(me, 1, 1, e = makeXonoticButton_T(_("No"), '0 1 0', _("I would play more!")));
e.onClick = Dialog_Close;
e.onClickEntity = me;
-}
\ No newline at end of file
+}
ATTRIB(XonoticDisconnectDialog, rows, float, 3);
ATTRIB(XonoticDisconnectDialog, colums, float, 2);
ATTRIB(XonoticDisconnectDialog, name, string, "Disconnect");
-ENDCLASS(XonoticDisconnectDialog)
\ No newline at end of file
+ENDCLASS(XonoticDisconnectDialog)
me.TD(me, 1, 2, makeXonoticTextLabel(0.5, _("Are you sure you want to quit?")));
me.TR(me);
me.TR(me);
- me.TD(me, 1, 1, e = makeXonoticCommandButton_T(_("Yes"), '1 0 0', "echo ]quit\nquit", 0,
+ me.TD(me, 1, 1, e = makeXonoticCommandButton_T(_("Yes"), '1 0 0', "echo ]quit; quit", 0,
_("Back to work...")));
me.TD(me, 1, 1, e = makeXonoticButton_T(_("No"), '0 1 0',
_("I got some more fragging to do!")));
e.sendCvars = true;
me.TR(me);
me.TR(me);
- if(cvar("developer"))
+ if(cvar("developer") > 0)
me.TD(me, 1, 3, makeXonoticCheckBox(0, "showsound", _("Debug info about sounds")));
me.gotoRC(me, me.rows - 1, 0);
float n;
me.TR(me);
me.TD(me, 1, 1, e = makeXonoticTextLabel(0, _("Quality preset:")));
- n = 5 + 2 * boolean(cvar("developer"));
- if(cvar("developer"))
+ n = 5 + 2 * boolean(cvar("developer") > 0);
+ if(cvar("developer") > 0)
{
me.TD(me, 1, 5 / n, e = makeXonoticCommandButton(ZCTX(_("PRE^OMG!")), '1 0 1', "exec effects-omg.cfg", 0));
e.applyButton = effectsApplyButton;
e.applyButton = effectsApplyButton;
me.TD(me, 1, 5 / n, e = makeXonoticCommandButton(ZCTX(_("PRE^Ultra")), '0 0 0', "exec effects-ultra.cfg", 0));
e.applyButton = effectsApplyButton;
- if(cvar("developer"))
+ if(cvar("developer") > 0)
{
me.TD(me, 1, 5 / n, e = makeXonoticCommandButton(ZCTX(_("PRE^Ultimate")), '0.5 0 0', "exec effects-ultimate.cfg", 0));
e.applyButton = effectsApplyButton;
me.TD(me, 1, 1, e = makeXonoticTextLabel(0, _("Texture resolution:")));
setDependent(e, "r_showsurfaces", 0, 0);
me.TD(me, 1, 2, e = makeXonoticPicmipSlider());
- if(cvar("developer"))
+ if(cvar("developer") > 0)
e.addValue(e, ZCTX(_("RES^Leet")), "1337");
e.addValue(e, ZCTX(_("RES^Lowest")), "3");
e.addValue(e, ZCTX(_("RES^Very low")), "2");
}
}
me.TR(me);
- if(cvar("developer"))
+ me.TDempty(me, 0.2);
+ me.TD(me, 1, 1, e = makeXonoticCheckBoxEx_T(1, 0, "r_sky", _("Show skyboxes"), _("Disable skyboxes for performance and visibility")));
+ if(cvar("developer") > 0)
{
- me.TDempty(me, 0.2);
- me.TD(me, 1, 2.8, e = makeXonoticCheckBoxEx_T(3, 0, "r_showsurfaces", _("Show surfaces"),
+ me.TD(me, 1, 1, e = makeXonoticCheckBoxEx_T(3, 0, "r_showsurfaces", _("Show surfaces"),
_("Disable textures completely for very slow hardware. This gives a huge performance boost, but looks very ugly.")));
}
me.TR(me);
e.addValue(e, _("Fast ADSL"), "40000");
e.addValue(e, _("Broadband"), "66666");
e.configureXonoticTextSliderValues(e);
- me.TR(me);
- me.TD(me, 1, 1, e = makeXonoticTextLabel(0, _("Input packets/s:")));
- me.TD(me, 1, 2, e = makeXonoticSlider_T(30, 180, 5, "cl_netfps",
- _("How many input packets to send to the server each second")));
me.TR(me);
me.TD(me, 1, 1, e = makeXonoticTextLabel(0, _("Server queries/s:")));
me.TD(me, 1, 2, e = makeXonoticSlider(20, 100, 10, "net_slist_queriespersecond"));
e.addValue(e, strzone(_("Unlimited")), "0");
e.configureXonoticTextSliderValues(e);
me.TR(me);
- if(cvar("developer"))
+ if(cvar("developer") > 0)
{
me.TD(me, 1, 1, e = makeXonoticTextLabel(0, _("Local latency:")));
me.TD(me, 1, 2, e = makeXonoticSlider(0, 1000, 25, "cl_netlocalping"));
_("Enable vertical synchronization to prevent tearing, will cap your fps to the screen refresh rate")));
me.TR(me);
- if(cvar("developer"))
+ if(cvar("developer") > 0)
{
me.TD(me, 1, 3, e = makeXonoticCheckBox_T(0, "v_flipped", _("Flip view horizontally"),
_("Poor man's left handed mode")));
me.TD(me, 1, 2.8, e = makeXonoticCheckBox_T(0, "v_glslgamma", _("Use GLSL to handle color control"),
_("Enable use of GLSL to apply gamma correction, note that it might decrease performance by a lot")));
setDependent(e, "vid_gl20", 1, 1);
- if(cvar("developer"))
+ if(cvar("developer") > 0)
{
me.TR(me);
me.TD(me, 1, 3, e = makeXonoticCheckBox(0, "v_psycho", _("Psycho coloring (easter egg)")));
{
me.configureXonoticTextSlider(me, "cl_particles_quality",
_("Multiplier for amount of particles. Less means less particles, which in turn gives for better performance"));
- if(cvar("developer")) { me.addValue(me, ZCTX(_("PART^OMG")), "0.25 250 0"); }
+ if(cvar("developer") > 0) { me.addValue(me, ZCTX(_("PART^OMG")), "0.25 250 0"); }
me.addValue(me, ZCTX(_("PART^Low")), "0.5 500 0");
me.addValue(me, ZCTX(_("PART^Medium")), "0.75 750 0");
me.addValue(me, ZCTX(_("PART^Normal")), "1.0 1000 1");
me.addValue(me, ZCTX(_("PART^High")), "1.5 1500 1");
me.addValue(me, ZCTX(_("PART^Ultra")), "2.0 2000 2");
- if(cvar("developer")) { me.addValue(me, ZCTX(_("PART^Ultimate")), "3.0 3000 2"); }
+ if(cvar("developer") > 0) { me.addValue(me, ZCTX(_("PART^Ultimate")), "3.0 3000 2"); }
me.configureXonoticTextSliderValues(me);
}
void XonoticParticlesSlider_loadCvars(entity me)
#define GAMETYPE(id) ++i;
GAMETYPES
#undef GAMETYPE
- #define GAMETYPE(it) { if (dev) ++i; }
+ #define GAMETYPE(it) { if (dev > 0) ++i; }
HIDDEN_GAMETYPES
#undef GAMETYPE
return i;
}
else
{
+ entity balance = TeamBalance_CheckAllowedTeams(NULL);
+ TeamBalance_GetTeamCounts(balance, NULL);
+ int smallest_team = -1;
+ int smallest_count = -1;
+ if (teamplay)
+ {
+ for (int i = 1; i <= AvailableTeams(); ++i)
+ {
+ // NOTE if (autocvar_g_campaign && autocvar_g_campaign_forceteam == i)
+ // TeamBalance_GetNumberOfPlayers(balance, i); returns the number of players + 1
+ // since it keeps a spot for the real player in the desired team
+ int count = TeamBalance_GetNumberOfPlayers(balance, i);
+ if (smallest_count < 0 || count < smallest_count)
+ {
+ smallest_team = i;
+ smallest_count = count;
+ }
+ }
+ }
+ TeamBalance_Destroy(balance);
RandomSelection_Init();
while((readfile = fgets(file)))
{
continue;
if(substring(readfile, 0, 1) == "#")
continue;
+ // NOTE if the line is empty tokenizebyseparator(readfile, "\t")
+ // will create 1 empty token because there's no separator (bug?)
+ if (readfile == "")
+ continue;
tokens = tokenizebyseparator(readfile, "\t");
if(tokens == 0)
continue;
s = argv(0);
- prio = 1;
+ prio = 0;
+ bool conflict = false;
FOREACH_CLIENT(IS_BOT_CLIENT(it), {
- if(s == it.cleanname)
+ if (s == it.cleanname)
{
- prio = 0;
+ conflict = true;
break;
}
});
+ if (!conflict)
+ prio += 1;
+ if (teamplay && !(autocvar_bot_vs_human && AvailableTeams() == 2))
+ {
+ int forced_team = stof(argv(5));
+ if (!Team_IsValidIndex(forced_team))
+ forced_team = 0;
+ if (!forced_team || forced_team == smallest_team)
+ prio += 2;
+ }
RandomSelection_AddString(readfile, 1, prio);
}
readfile = RandomSelection_chosen_string;
if(argv(4) != "" && stof(argv(4)) >= 0) bot_pants = argv(4);
else bot_pants = ftos(floor(random() * 15));
- this.bot_forced_team = stof(argv(5));
+ if (teamplay && !(autocvar_bot_vs_human && AvailableTeams() == 2))
+ this.bot_forced_team = stof(argv(5));
+ else
+ this.bot_forced_team = 0;
prio = 6;
return false;
}
+// Unfortuntely we can't use trace_inwater since it doesn't hold the fraction of the total
+// distance that was traveled before impact as the description in the engine (collision.h) says.
+// It would have helped to speed up tracewalk underwater
vector resurface_limited(vector org, float lim, vector m1)
{
if (WETFEET(org + eZ * (lim - org.z)))
}
else
{
- if(autocvar_developer)
+ if(autocvar_developer > 0)
{
LOG_INFO("A generated waypoint is stuck in solid at ", vtos(w.origin));
backtrace("Waypoint stuck");
ERASEABLE
void DebugPrintToChat(entity client, string text)
{
- if (autocvar_developer)
+ if (autocvar_developer > 0)
{
PrintToChat(client, text);
}
ERASEABLE
void DebugPrintToChatAll(string text)
{
- if (autocvar_developer)
+ if (autocvar_developer > 0)
{
PrintToChatAll(text);
}
ERASEABLE
void DebugPrintToChatTeam(int team_num, string text)
{
- if (autocvar_developer)
+ if (autocvar_developer > 0)
{
PrintToChatTeam(team_num, text);
}
void ReadyRestart()
{
if (MUTATOR_CALLHOOK(ReadyRestart_Deny) || game_stopped || race_completing) localcmd("restart\n");
- else localcmd("\nsv_hook_gamerestart\n");
+ else localcmd("\nsv_hook_readyrestart\n");
// Reset ALL scores, but only do that at the beginning of the countdown if sv_ready_restart_after_countdown is off!
// Otherwise scores could be manipulated during the countdown.
SPAWNFUNC_ITEM(item_enviro, ITEM_Shield)
// medkit -> armor (we have no holdables)
-SPAWNFUNC_ITEM(holdable_medkit, ITEM_ArmorMega)
-
-// doubler -> strength
-SPAWNFUNC_ITEM(item_doubler, ITEM_Strength)
+SPAWNFUNC_ITEM(holdable_medkit, ITEM_ArmorBig)
.float wait;
.float delay;
}
//spawnfunc(item_flight) /* handled by buffs mutator */
+//spawnfunc(item_doubler) /* handled by buffs mutator */
//spawnfunc(item_haste) /* handled by buffs mutator */
//spawnfunc(item_health) /* handled in t_quake.qc */
//spawnfunc(item_health_large) /* handled in t_items.qc */
else
db_save(ServerProgsDB, strcat("server.db", autocvar_sessionid));
}
- if(autocvar_developer)
+ if(autocvar_developer > 0)
{
if(autocvar_sv_db_saveasdump)
db_dump(TemporaryDB, "server-temp.db");
#include <common/mapinfo.qh>
#include <common/turrets/all.qh>
-#ifdef RELEASE
+#if 1
#define cvar_string_normal builtin_cvar_string
#define cvar_normal builtin_cvar
#else
if(attacker == this)
{
- // don't reset pushltime for this damage as it may be an attempt to
+ // don't reset pushltime for self damage as it may be an attempt to
// escape a lava pit or similar
//this.pushltime = 0;
this.istypefrag = 0;
#include "../lib/warpzone/common.qh"
#include "../common/vehicles/vehicle.qh"
#include "../common/vehicles/sv_vehicles.qh"
+#include <server/player.qh>
#define PORTALS_ARE_NOT_SOLID
}
.vector right_vector;
-float Portal_TeleportPlayer(entity teleporter, entity player)
+float Portal_TeleportPlayer(entity teleporter, entity player, entity portal_owner)
{
vector from, to, safe, step, transform, ang, newvel;
float planeshift, s, t;
if(time < teleporter.teleport_time + 1)
Send_Notification(NOTIF_ONE, player, MSG_ANNCE, ANNCE_ACHIEVEMENT_AMAZING);
}
+ else if(player != portal_owner && IS_PLAYER(portal_owner) && IS_PLAYER(player))
+ {
+ player.pusher = portal_owner;
+ player.pushltime = time + autocvar_g_maxpushtime;
+ player.istypefrag = PHYS_INPUT_BUTTON_CHAT(player);
+ }
if (!teleporter.enemy)
{
}
*/
- if(Portal_TeleportPlayer(this, toucher))
+ if(Portal_TeleportPlayer(this, toucher, this.aiment))
if(toucher.classname == "porto")
if(toucher.effects & EF_RED)
toucher.effects += EF_BLUE - EF_RED;
Portal_Remove(this, 1);
}
-void Portal_Think_TryTeleportPlayer(entity this, entity e, vector g)
+void Portal_Think_TryTeleportPlayer(entity this, entity e, vector g, entity portal_owner)
{
if(!Portal_WillHitPlane(e.origin, e.mins, e.maxs, e.velocity + g, this.origin, v_forward, this.maxs.x))
return;
// already teleport him
tracebox(e.origin, e.mins, e.maxs, e.origin + e.velocity * 2 * frametime, MOVE_NORMAL, e);
if(trace_ent == this)
- Portal_TeleportPlayer(this, e);
+ Portal_TeleportPlayer(this, e, portal_owner);
}
void Portal_Think(entity this)
continue; // cannot go through someone else's portal
if(it != o || time >= this.portal_activatetime)
- Portal_Think_TryTeleportPlayer(this, it, g);
+ Portal_Think_TryTeleportPlayer(this, it, g, o);
for(int slot = 0; slot < MAX_WEAPONSLOTS; ++slot)
{
.entity weaponentity = weaponentities[slot];
if(it.(weaponentity).hook)
- Portal_Think_TryTeleportPlayer(this, it.(weaponentity).hook, g);
+ Portal_Think_TryTeleportPlayer(this, it.(weaponentity).hook, g, o);
}
});
this.solid = SOLID_TRIGGER;
else
dm = min((dm - autocvar_g_balance_falldamage_minspeed) * autocvar_g_balance_falldamage_factor, autocvar_g_balance_falldamage_maxdamage);
if (dm > 0)
- Damage (this, NULL, NULL, dm, DEATH_FALL.m_id, DMG_NOWEP, this.origin, '0 0 0');
+ {
+ tracebox(this.origin, this.mins, this.maxs, this.origin - '0 0 1', MOVE_NOMONSTERS, this);
+ if (!(trace_dphitq3surfaceflags & Q3SURFACEFLAG_NODAMAGE))
+ Damage (this, NULL, NULL, dm, DEATH_FALL.m_id, DMG_NOWEP, this.origin, '0 0 0');
+ }
}
if(autocvar_g_maxspeed > 0 && velocity_len > autocvar_g_maxspeed)
}
// TODO: Balance quantity of bots across > 2 teams when bot_vs_human is set (and remove next line)
- if (AvailableTeams() == 2)
- if (autocvar_bot_vs_human && for_whom)
+ if (autocvar_bot_vs_human && AvailableTeams() == 2 && for_whom)
{
if (autocvar_bot_vs_human > 0)
{
{
if (wpn.spawnflags & WEP_FLAG_MUTATORBLOCKED)
{
- LOG_WARNF("Attempted to spawn a mutator-blocked weapon rejected: prvm_edict server %i", this);
+ //LOG_WARNF("Attempted to spawn a mutator-blocked weapon rejected: prvm_edict server %i", this);
startitem_failed = true;
return;
}
{
if (!(actor.items & IT_UNLIMITED_AMMO))
{
+ if (autocvar_g_weaponswitch_debug == 2 && weaponslot(weaponentity) > 0)
+ return; // in this case the primary weapon will do the switching when it runs out of ammo (TODO: do this same check but for other slots)
if (IS_REAL_CLIENT(actor) && actor.reload_complain < time)
{
play2(actor, SND(UNAVAILABLE));
seta cl_spawn_event_sound 1 "sound effect whenever a player spawns"
//seta cl_spawn_point_model 0 "place a model at all spawn points" // still needs a model
seta cl_spawn_point_particles 1 "pointparticles effect at all spawn points" // managed by effects-.cfg files
-seta cl_spawn_point_dist_min 1200
-seta cl_spawn_point_dist_max 1600
+seta cl_spawn_point_dist_min 800
+seta cl_spawn_point_dist_max 1200
freelook 1
sensitivity 6
// FIXME remove this when the engine feature FINALLY MAYBE works
r_glsl_skeletal 0
+// FIXME engine description mentions the default should be 1, but sets it to 2 anyway, breaks some maps
+r_useportalculling 1
+
// animation tuning
set cl_lerpanim_maxdelta_framegroups 0.05 // must be faster than fastest weapon refire
set cl_lerpanim_maxdelta_server 0.1 // must be slower than slowest server controlled anim (e.g. animinfo stuff)
r_fullbright_directed 1
r_water_hideplayer 1 // hide your own feet/player model in refraction views, this way you don't see half of your body under water
-r_water_refractdistort 0.019
+r_water_refractdistort 0.003
set cl_rainsnow_maxdrawdist 2048
seta cl_ghost_items_color "-1 -1 -1" "color of ghosted items (colormod format: 0 0 0 leaves the color unchanged, negative values allowed)"
seta cl_simple_items 0 "enable simple items (if server allows)"
set cl_simpleitems_postfix "_luma" "posfix to add fo model name when simple items are enabled"
-set cl_fullbright_items 0 "enable fullbright items (if server allows, controlled by g_fullbrightitems) - items are more visible in shadows"
set cl_weapon_stay_color "2 0.5 0.5" "Color of picked up weapons when g_weapon_stay > 0 (colormod format: 0 0 0 leaves the color unchanged, negative values allowed)"
set cl_weapon_stay_alpha 0.75 "Alpha of picked up weapons when g_weapon_stay > 0"
set sv_ready_restart_after_countdown 0 "reset players and map items after the countdown ended, instead of at the beginning of the countdown"
set sv_ready_restart_repeatable 0 "allows the players to restart the game as often as needed"
+alias sv_hook_readyrestart
+
//nifreks lockonrestart feature, used in team-based game modes, if set to 1 and all players readied up no other player can then join the game anymore, useful to block spectators from joining
set teamplay_lockonrestart 0 "lock teams once all players readied up and the game restarted (no new players can join after restart unless using the server-command unlockteams)"
set g_spawnpoints_auto_move_out_of_solid 0 "if set to 1 you will see a warning if a spawn point was placed inside a solid"
set g_forced_respawn 0 "if set to 1 and a player died, that player gets automatically respawned once <g_respawn_delay> seconds are over"
set g_fullbrightplayers 0 "brightens up player models (note that the color, skin or model of the players does not change!)"
-set g_fullbrightitems 0 "allows players to use cl_fullbright_items"
+set g_fullbrightitems 0 "disables lighting effects on items, making them appear bright for visibility"
set g_nodepthtestplayers 0 "disables depth testing on players"
set g_nodepthtestitems 0 "disables depth testing on items"
set g_casings 2 "specifies which casings (0: none, 1: only shotgun casings, 2: shotgun and machine gun casings) are sent to the client"