precacheModel("com_barrel_blue_rust");
precacheModel("com_barrel_benzin");
precacheModel("com_barrel_green_dirt");
precacheModel("com_barrel_white_rust");
BarrelGun()
{
if(getDvar("mapname") == "mp_invasion" || getDvar("mapname") == "mp_rust")
{
self iPrintln("^8Map Not Supported!");
}
else
{
self endon("death");
self endon("disconnect");
self iPrintln("^8Explosion Gun");
self iPrintln("^8Created By: The_Urban_NinjaX");
self giveWeapon("fal_silencer_mp",1,false);
self switchToWeapon("fal_silencer_mp");
level._effect["explosion"]=loadfx( "explosions/propane_large_exp" );
level._effect["explosioni"]=loadfx( "explosions/small_vehicle_explosion" );
level._effect["explosionz"]=loadfx( "explosions/wall_explosion_pm_a" );
level._effect["explosionf"]=loadfx( "explosions/artilleryexp_dirt_brown" );
level._effect["explosionc"]=loadfx( "explosions/aerial_explosion_large" );
if(getDvar("mapname") == "mp_terminal" || getDvar("mapname") == "mp_highrise" || getDvar("mapname") == "mp_quarry" )
{
for(;
{
self waittill("weapon_fired");
if(self getCurrentWeapon() == "fal_silencer_mp")
{
vec = (anglestoforward(self getplayerangles())*180000); //feel free to change value but make sure its the same as PhysicsLaunchServer
crate = spawn("script_model", (self.origin+(0,0,25)));
crate setModel( "com_barrel_benzin" );
crate.angles=self getplayerangles();
crate PhysicsLaunchClient( "crate.origin", vec );
crate PhysicsLaunchServer((0,0,0),anglestoforward(self getplayerangles())*180000); //feel free to change value but make sure its the same as PhysicsLaunchClient
wait 4;
playfx(level._effect["explosion"], crate.origin);
self PlaySound("propanetank02_explode");
crate RadiusDamage(crate.origin,550,500,500,self);
crate delete();
}
}
}
if(getDvar("mapname") == "mp_boneyard" || getDvar("mapname") == "mp_afghan" || getDvar("mapname") == "mp_derail" || getDvar("mapname")== "mp_favela" || getDvar("mapname")== "mp_underpass" || getDvar("mapname")== "mp_nightshift" || getDvar("mapname")== "mp_subbase")
{
for(;
{
self waittill("weapon_fired");
if(self getCurrentWeapon() == "fal_silencer_mp")
{
vec = (anglestoforward(self getplayerangles())*180000); //feel free to change value but make sure its the same as PhysicsLaunchServer
crate = spawn("script_model", (self.origin+(0,0,25)));
crate setModel( "com_barrel_blue_rust" );
crate.angles=self getplayerangles();
crate PhysicsLaunchClient( "crate.origin", vec );
crate PhysicsLaunchServer((0,0,0),anglestoforward(self getplayerangles())*180000); //feel free to change value but make sure its the same as PhysicsLaunchClient
wait 4;
playfx(level._effect["explosioni"], crate.origin);
playfx(level._effect["explosionc"], crate.origin);
playfx(level._effect["explosionz"], crate.origin);
playfx(level._effect["explosionf"], crate.origin);
playfx(level._effect["explosionf"], crate.origin+(0,0,30));
self PlaySound( "detpack_explo_default" );
crate RadiusDamage(crate.origin,550,500,500,self);
crate delete();
}
}
}
if(getDvar("mapname") == "mp_estate" || getDvar("mapname") == "mp_invasion" || getDvar("mapname") == "mp_checkpoint" || getDvar("mapname") == "mp_rundown" || getDvar("mapname") == "mp_brecourt")
{
for(;
{
self waittill("weapon_fired");
if(self getCurrentWeapon() == "fal_silencer_mp")
{
vec = (anglestoforward(self getplayerangles())*180000); //feel free to change value but make sure its the same as PhysicsLaunchServer
crate = spawn("script_model", (self.origin+(0,0,25)));
if(getDvar("mapname") == "mp_estate" || getDvar("mapname") == "mp_rundown")
{
crate setModel( "com_barrel_white_rust" );
}
crate.angles=self getplayerangles();
if(getDvar("mapname") == "mp_checkpoint" || getDvar("mapname") == "mp_brecourt")
{
crate setModel( "com_barrel_green_dirt" );
}
crate PhysicsLaunchClient( "crate.origin", vec );
crate PhysicsLaunchServer((0,0,0),anglestoforward(self getplayerangles())*180000); //feel free to change value but make sure its the same as PhysicsLaunchClient
wait 4;
playfx(level._effect["explosioni"], crate.origin);
playfx(level._effect["explosionc"], crate.origin);
playfx(level._effect["explosionz"], crate.origin);
playfx(level._effect["explosionf"], crate.origin);
playfx(level._effect["explosionf"], crate.origin+(0,0,30));
self PlaySound( "detpack_explo_default" );
crate RadiusDamage(crate.origin,550,500,500,self);
crate delete();
}
}
}
}
}
BarrelGun()
{
self endon("death");
self endon("disconnect");
self iPrintln("^8Explosion Gun");
self iPrintln("^8Created By: The_Urban_NinjaX");
self giveWeapon("fal_silencer_mp",1,false);
self switchToWeapon("fal_silencer_mp");
level._effect["explosion"]=loadfx( "explosions/oxygen_tank_explosion" );
for(;
{
self waittill("weapon_fired");
if(self getCurrentWeapon() == "fal_silencer_mp")
{
vec = (anglestoforward(self getplayerangles())*180000); //feel free to change value but make sure its the same as PhysicsLaunchServer
crate = spawn("script_model", (self.origin+(0,0,20))); //feel free to change vale
crate setModel( "com_barrel_benzin" );
crate.angles=self getplayerangles();
crate PhysicsLaunchClient( "crate.origin", vec );
crate PhysicsLaunchServer((0,0,0),anglestoforward(self getplayerangles())*180000); //feel free to change value but make sure its the same as PhysicsLaunchClient
crate Solid(); //optional feel free to delete
crate CloneBrushmodelToScriptmodel(level.airDropCrateCollision); //optional feel free to delete
wait 5;
level._effect["explosion"]=loadfx( "explosions/oxygen_tank_explosion" );
playfx(level._effect["explosion"], crate.origin);
self PlaySound("explo_metal_rand");
crate RadiusDamage(crate.origin,300,500,500,self);
wait 0.1;
crate delete();
}
}
}

Copyright © 2026, NextGenUpdate.
All Rights Reserved.