diff --git a/Source/server/cstrike/defs.h b/Source/server/cstrike/defs.h index e2def3e7..a97d8930 100755 --- a/Source/server/cstrike/defs.h +++ b/Source/server/cstrike/defs.h @@ -24,15 +24,16 @@ var int autocvar_mp_friendlyfire = FALSE; // New, FreeCS exclusive variables var int autocvar_fcs_voxannounce = FALSE; -var int autocvar_fcs_knifeonly = FALSE; // Disallows buying and spawning with weps -var int autocvar_fcs_swapteams = FALSE; // Swaps spawnpoints -var int autocvar_fcs_nopickups = FALSE; // Disable weapon items +var int autocvar_fcs_knifeonly = FALSE; /* Disallows buying and spawning with weps */ +var int autocvar_fcs_swapteams = FALSE; /* Swaps spawnpoints */ +var int autocvar_fcs_nopickups = FALSE; /* Disable weapon items */ var int autocvar_fcs_reward_kill = 300; var int autocvar_fcs_penalty_pain = -150; var int autocvar_fcs_penalty_kill = -1500; var int autocvar_fcs_maxmoney = 16000; -var int autocvar_fcs_fillweapons = FALSE; // This will automatically get ammo for the weapon you buy -var int autocvar_fcs_fix_bombtimer = FALSE; +var int autocvar_fcs_fillweapons = FALSE; /* This will automatically get ammo for the weapon you buy */ +var int autocvar_fcs_fix_bombtimer = FALSE; /* If true, the bomb-timer will dictate the round-end */ +var int autocvar_fcs_bombaltthrow = FALSE; /* Randomize the bomb-throw every time ever so slightly */ // Mapcycle features var string autocvar_mapcyclefile = "mapcycle.txt"; diff --git a/Source/shared/cstrike/weapons.c b/Source/shared/cstrike/weapons.c index a0f8e12d..32627f1c 100755 --- a/Source/shared/cstrike/weapons.c +++ b/Source/shared/cstrike/weapons.c @@ -501,9 +501,16 @@ void Weapon_DropWeapon( int iSlot ) { eDrop.nextthink = time + 1.0f; eDrop.health = self.(wptTable[ fWeapon ].iMagfld); setsize( eDrop, '-16 -16 0', '16 16 16' ); - + makevectors( self.v_angle ); - eDrop.velocity = aim( self, 10000 ) * 256; + + if (fWeapon == WEAPON_C4BOMB && autocvar_fcs_bombaltthrow) { + eDrop.velocity = v_forward * random(32, 96); + eDrop.velocity += v_right * random(-64, 64); + eDrop.velocity[2] = 0; + } else { + eDrop.velocity = self.velocity + v_forward * 256; + } self.weapon = 0; Weapon_SwitchBest(); diff --git a/cstrike/data.pk3dir/csprogs.dat b/cstrike/data.pk3dir/csprogs.dat index 3c0b9b40..8781be0d 100644 Binary files a/cstrike/data.pk3dir/csprogs.dat and b/cstrike/data.pk3dir/csprogs.dat differ diff --git a/cstrike/data.pk3dir/progs.dat b/cstrike/data.pk3dir/progs.dat index 1e2505f5..a0e67871 100644 Binary files a/cstrike/data.pk3dir/progs.dat and b/cstrike/data.pk3dir/progs.dat differ diff --git a/rewolf/data.pk3dir/csprogs.dat b/rewolf/data.pk3dir/csprogs.dat index 9d82e599..509266ac 100644 Binary files a/rewolf/data.pk3dir/csprogs.dat and b/rewolf/data.pk3dir/csprogs.dat differ diff --git a/scihunt/data.pk3dir/csprogs.dat b/scihunt/data.pk3dir/csprogs.dat index 6ce16716..a4c4752a 100644 Binary files a/scihunt/data.pk3dir/csprogs.dat and b/scihunt/data.pk3dir/csprogs.dat differ diff --git a/valve/data.pk3dir/csprogs.dat b/valve/data.pk3dir/csprogs.dat index a0d1a38a..801521dd 100644 Binary files a/valve/data.pk3dir/csprogs.dat and b/valve/data.pk3dir/csprogs.dat differ diff --git a/valve/data.pk3dir/menu.dat b/valve/data.pk3dir/menu.dat index b971b091..2930c9c0 100644 Binary files a/valve/data.pk3dir/menu.dat and b/valve/data.pk3dir/menu.dat differ