g_mod_balance Overkill
// {{{ starting gear
-set g_balance_health_start 100
+set g_balance_health_start 110
set g_balance_armor_start 0
set g_start_ammo_shells 15
set g_start_ammo_nails 0
set g_balance_armor_rotstable 0
set g_balance_armor_limit 999
set g_balance_armor_blockpercent 0.7
-set g_balance_fuel_regen 0.1 "fuel regeneration (only applies if the player owns IT_FUEL_REGEN)"
-set g_balance_fuel_regenlinear 0
-set g_balance_pause_fuel_regen 2 // other than this, fuel uses the health regen counter
-set g_balance_fuel_rot 0.05
-set g_balance_fuel_rotlinear 0
+set g_balance_fuel_regen 0 "fuel regeneration (only applies if the player owns IT_FUEL_REGEN)"
+set g_balance_fuel_regenlinear 30
+set g_balance_pause_fuel_regen 1 // other than this, fuel uses the health regen counter
+set g_balance_fuel_rot 0
+set g_balance_fuel_rotlinear 10
set g_balance_pause_fuel_rot 5
set g_balance_pause_fuel_rot_spawn 10
set g_balance_fuel_regenstable 50
set g_balance_fuel_rotstable 100
-set g_balance_fuel_limit 999
+set g_balance_fuel_limit 100
// }}}
// {{{ misc
set g_jetpack_acceleration_up 600 "acceleration of the jetpack in z direction (note: you have to factor in gravity here, if antigravity is not 1)"
set g_jetpack_maxspeed_side 1200 "max speed of the jetpack in xy direction"
set g_jetpack_maxspeed_up 600 "max speed of the jetpack in z direction"
-set g_jetpack_fuel 8 "fuel per second for jetpack"
+set g_jetpack_fuel 20 "fuel per second for jetpack"
set g_jetpack_attenuation 2 "jetpack sound attenuation"
set g_grappling_hook_tarzan 2 // 2: can also pull players
--- /dev/null
+g_overkill 1
+
+g_overkill_ammo_start 50
+g_overkill_ammo_max 100
+g_overkill_ammo_regen 2.52
+g_overkill_superguns_builtin 0
+
+g_use_ammunition 1
+g_pickup_items 0
+sv_gibhealth 120
+g_spawnshieldtime 0.5
+
+g_balance_health_regen 0
+g_balance_health_regenlinear 100
+g_balance_health_rot 0
+g_balance_health_rotstable 200 // needs this too, else it rots towards 100 even with g_balance_health_rot 0
+g_balance_armor_rotstable 0
+g_balance_armor_rotlinear 1
+g_balance_armor_rot 0
+g_balance_pause_health_regen 2
+
+// g_balance_laser_primary_force_velocitybias 1.2 // sorry i realy hate this
+
+g_balance_shotgun_primary_damage 17
+g_balance_shotgun_primary_bullets 10
+g_balance_shotgun_primary_force 80
+g_balance_shotgun_primary_spread 0.07
+g_balance_shotgun_primary_animtime 0.65
+g_balance_shotgun_primary_ammo 6.25
+g_balance_shotgun_reload_ammo 50
+g_balance_shotgun_reload_time 2
+g_balance_shotgun_primary_bulletconstant 3000
+
+g_balance_uzi_mode 1
+g_balance_uzi_sustained_damage 25
+g_balance_uzi_sustained_refire 0.1
+g_balance_uzi_sustained_spread 0.01
+g_balance_uzi_sustained_force 5
+g_balance_uzi_reload_ammo 30
+g_balance_uzi_reload_time 1.5
+g_balance_uzi_spread_min 0
+g_balance_uzi_spread_add 0.0015
+g_balance_uzi_bulletconstant 500
+
+g_balance_hmg_spread_min 0.01
+g_balance_hmg_spread_max 0.06
+g_balance_hmg_spread_add 0.005
+
+g_balance_hmg_sustained_damage 30
+g_balance_hmg_sustained_headshotaddeddamage 0
+g_balance_hmg_sustained_force 10
+g_balance_hmg_sustained_spread 0.03
+g_balance_hmg_sustained_refire 0.05
+g_balance_hmg_sustained_ammo 1
+
+g_balance_hmg_speed 24000
+g_balance_hmg_bulletconstant 115 // 13.1qu
+
+g_balance_hmg_reload_ammo 100 //default: 30
+g_balance_hmg_reload_time 1
+
+g_balance_nex_primary_damage 100
+g_balance_nex_primary_force 500
+g_balance_nex_primary_refire 1
+g_balance_nex_primary_animtime 0.95
+g_balance_nex_primary_ammo 10
+g_balance_nex_primary_damagefalloff_mindist 0
+g_balance_nex_primary_damagefalloff_maxdist 0
+g_balance_nex_primary_damagefalloff_halflife 0
+g_balance_nex_primary_damagefalloff_forcehalflife 0
+
+g_balance_nex_secondary 1
+g_balance_nex_charge 0
+g_balance_nex_reload_ammo 50
+g_balance_nex_reload_time 2
+
+g_balance_rpc_ammo 10
+g_balance_rpc_animtime 1
+g_balance_rpc_damage 150
+g_balance_rpc_damage2 500
+g_balance_rpc_damageforcescale 2
+g_balance_rpc_edgedamage 50
+g_balance_rpc_force 400
+g_balance_rpc_health 25
+g_balance_rpc_lifetime 30
+g_balance_rpc_radius 300
+g_balance_rpc_refire 1
+g_balance_rpc_speed 2500
+g_balance_rpc_speedaccel 5000
+g_balance_rpc_reload_ammo 50
+g_balance_rpc_reload_time 1
+
+g_projectiles_newton_style_2_minfactor 1 // rocket will never fly below default speed, even you you move backwards
+
+g_overkill_spawnsystem 1 // Experimental spawnsystem
+g_overkill_spawnsystem_delay 2.5 // How long to wait before its OK to spawn at a player after someone just spawned at this player
+g_overkill_spawnsystem_delay_death 0 // How long to wait before its OK to spawn at a player after death
+g_overkill_spawnsystem_check_health 1 // Only allow spawn at this player if hes health is full
+g_overkill_spawnsystem_close2death 1 // Spawn as close as possible to where we died?
+g_overkill_spawnsystem_give_nade 1 // Give nade at spawn
+
+g_overkill_nade_lifetime 3.5
+g_overkill_nade_minforce 400
+g_overkill_nade_maxforce 2000
+g_overkill_nade_health 25
+g_overkill_nade_refire 10
+
+g_overkill_nade_damage 225
+g_overkill_nade_edgedamage 90
+g_overkill_nade_radius 300
+g_overkill_nade_force 650
+g_overkill_nade_newton_style 0
+
+g_pickup_healthmega_anyway 0
+g_pikup_armorsmall_max 20
+g_pickup_armorsmall_anyway 0
+g_pickup_healthmega_max 200
+g_pickup_healthmega_anyway 0
+
+g_overkill_100a_anyway 1
+g_overkill_100h_anyway 1
+g_overkill_powerups_repalce 1
+g_overkill_superguns_onemag 1
+g_overkill_superguns_respawn_time 20
+
+sv_defaultcharacter 1
+sv_defaultplayermodel "models/ok_player/okrobot1.dpm models/ok_player/okrobot2.dpm models/ok_player/okrobot3.dpm models/ok_player/okrobot4.dpm models/ok_player/okmale1.dpm models/ok_player/okmale2.dpm models/ok_player/okmale3.dpm models/ok_player/okmale4.dpm"
+sv_defaultplayermodel_red "models/ok_player/okrobot1.dpm models/ok_player/okrobot2.dpm models/ok_player/okrobot3.dpm models/ok_player/okrobot4.dpm"
+sv_defaultplayermodel_blue "models/ok_player/okmale1.dpm models/ok_player/okmale2.dpm models/ok_player/okmale3.dpm models/ok_player/okmale4.dpm"
{
self.armorvalue = CalcRotRegen(self.armorvalue, autocvar_g_balance_armor_regenstable, autocvar_g_balance_armor_regen, autocvar_g_balance_armor_regenlinear, 1 * frametime * (time > self.ok_pauseregen_finished), 0, 0, 1, 1 * frametime * (time > self.pauserotarmor_finished), autocvar_g_balance_armor_limit);
self.health = CalcRotRegen(self.health, autocvar_g_balance_health_regenstable, 0, 100, 1 * frametime * (time > self.ok_pauseregen_finished), 200, 0, autocvar_g_balance_health_rotlinear, 1 * frametime * (time > self.pauserothealth_finished), autocvar_g_balance_health_limit);
-
- float minf, maxf, limitf;
-
- maxf = autocvar_g_balance_fuel_rotstable;
- minf = autocvar_g_balance_fuel_regenstable;
- limitf = autocvar_g_balance_fuel_limit;
-
- self.ammo_fuel = CalcRotRegen(self.ammo_fuel, minf, autocvar_g_balance_fuel_regen, autocvar_g_balance_fuel_regenlinear, frametime * (time > self.pauseregen_finished) * ((self.items & IT_FUEL_REGEN) != 0), maxf, autocvar_g_balance_fuel_rot, autocvar_g_balance_fuel_rotlinear, frametime * (time > self.pauserotfuel_finished), limitf);
}
return TRUE; // return TRUE anyway, as frozen uses no regen
}
return FALSE;
}
+.float jump_btn_time;
+.float jump_btn_was_down;
+MUTATOR_HOOKFUNCTION(ok_PlayerPhysics)
+{
+ if(!self.BUTTON_JUMP)
+ {
+ float maxf = autocvar_g_balance_fuel_rotstable;
+ float minf = autocvar_g_balance_fuel_regenstable;
+ float limitf = autocvar_g_balance_fuel_limit;
+ self.ammo_fuel = CalcRotRegen(self.ammo_fuel, minf, autocvar_g_balance_fuel_regen, autocvar_g_balance_fuel_regenlinear, frametime * (time > self.pauseregen_finished) * ((self.items & IT_FUEL_REGEN) != 0), maxf, autocvar_g_balance_fuel_rot, autocvar_g_balance_fuel_rotlinear, frametime * (time > self.pauserotfuel_finished), limitf);
+
+ self.jump_btn_was_down = FALSE;
+ self.jump_btn_time = 0;
+
+ return FALSE;
+ }
+
+ if(!self.jump_btn_was_down && self.BUTTON_JUMP)
+ {
+ self.jump_btn_was_down = TRUE;
+ self.jump_btn_time = time + 0.2;
+ }
+
+ if(time > self.jump_btn_time && self.ammo_fuel > 0)
+ {
+ self.BUTTON_JETPACK = TRUE;
+ self.ammo_fuel -= autocvar_g_jetpack_fuel * frametime;
+ }
+
+ return FALSE;
+}
+
MUTATOR_HOOKFUNCTION(ok_OnEntityPreSpawn)
{
if(autocvar_g_powerups)
if((get_weaponinfo(WEP_HMG)).weaponstart > 0) { ok_start_items |= WEPSET_HMG; }
start_items |= IT_UNLIMITED_WEAPON_AMMO;
+ start_items |= IT_JETPACK;
start_weapons = warmup_start_weapons = ok_start_items;
return FALSE;
MUTATOR_HOOK(BuildMutatorsString, ok_BuildMutatorsString, CBC_ORDER_ANY);
MUTATOR_HOOK(BuildMutatorsPrettyString, ok_BuildMutatorsPrettyString, CBC_ORDER_ANY);
MUTATOR_HOOK(SetModname, ok_SetModname, CBC_ORDER_ANY);
+ MUTATOR_HOOK(PlayerPhysics, ok_PlayerPhysics, CBC_ORDER_FIRST);
MUTATOR_ONADD
{