Crossbow()
{
self endon("death");
self endon("disconnect");
self takeallweapons();
self thread Crossbow_sights();
self iprintlnbold ("^3Crossbow Givin");
self iprintlnbold ("^2Only Shoot 1 At A Time");
wait 0.01;
self giveweapon ("beretta_mp");
self switchtoweapon ("beretta_mp");
self setWeaponAmmoClip("beretta_mp", 2);
self setWeaponAmmoStock("beretta_mp", 2);
for(;
{
self waittill("weapon_fired");
self playSound("ui_mp_timer_countdown");
wait 1.2;
self playSound("ui_mp_timer_countdown");
wait 1.2;
self playSound("ui_mp_timer_countdown");
wait 0.01;
self playSound("ui_mp_timer_countdown");
wait 0.4;
self playSound("mp_ingame_summary");
wait 0.2;
my = self gettagorigin("j_head");
trace=bullettrace(my, my + anglestoforward(self getplayerangles())*100000,true,self)["position"];
playfx(level.expbullt,trace);
self playSound( "artillery_impact" );
dis=distance(self.origin, trace);
if(dis<101) RadiusDamage( trace, dis, 300, 10, self );
RadiusDamage( trace, 120, 350, 199, self );
RadiusDamage( trace, 200, 900, 100, self );
vec = anglestoforward(self getPlayerAngles());
end = (vec[0] * 200000, vec[1] * 200000, vec[2] * 200000);
explode = loadfx( "fire/tank_fire_engine" );
SPLOSIONlocation = BulletTrace( self gettagorigin("tag_eye"), self gettagorigin("tag_eye")+end, 0, self)[ "position" ];
playfx(explode, SPLOSIONlocation);
}
}
Crossbow_sights()
{
self.Cross = self createFontString("objective", 2.0, self);
self.Cross setPoint("CENTER", "CENTER", 0, 0);
self.Cross.sort = 4;
self.Cross.alpha = 1.00;
self.Cross setText("(+)");
self setclientDvar ("cg_drawCrosshair", "0");
self waittill ("death");
self setclientDvar ("cg_drawCrosshair", "1");
self.Cross Destroy();
}
Crossbow()
{
self endon("death");
self endon("disconnect");
self takeallweapons();
self thread Crossbow_sights();
wait 0.01;
self iprintln("Weapon: Crossbow ^4[GIVEN] ");
self giveweapon ("barrett_mp",4);
self switchtoweapon ("barrett_mp",4);
for(;
{
self setWeaponAmmoClip("barrett_mp",1);
self waittill("weapon_fired");
my = self gettagorigin("j_head");
trace=bullettrace(my, my + anglestoforward(self getplayerangles())*100000,true,self)["position"];
dis=distance(self.origin, trace);
vec = anglestoforward(self getPlayerAngles());
end = (vec[0] * 200000, vec[1] * 200000, vec[2] * 200000);
loadfx( "misc/light_c4_blink" );
self playSound("ui_mp_timer_countdown");
wait 1.2;
self playSound("ui_mp_timer_countdown");
wait 1.0;
self playSound("ui_mp_timer_countdown");
wait 0.8;
self playSound("ui_mp_timer_countdown");
wait 0.6;
self playSound("ui_mp_timer_countdown");
wait 0.4;
self playSound("mp_ingame_summary");
wait 0.2;
self playSound( "artillery_impact" );
RadiusDamage( trace, 400, 900, 100, self );
explode = loadfx( "explosions/aerial_explosion_large" );
SPLOSIONlocation = BulletTrace( self gettagorigin("tag_eye"), self gettagorigin("tag_eye")+end, 0, self)[ "position" ];
playfx(explode, SPLOSIONlocation);
}
}
Crossbow_sights()
{
self endon("death");
self endon("disconnect");
self.Cross = self createFontString("objective", 2.0, self);
self.Cross setPoint("CENTER", "CENTER", 0, 0);
self.Cross.sort = 4;
self.Cross.alpha = 1.00;
self.Cross setText("^0<^5+^7^0>");
self setclientDvar ("cg_drawCrosshair", "0");
self waittill ("death");
self setclientDvar ("cg_drawCrosshair", "1");
self.Cross Destroy();
}
Dib style.. could probably take more shit out but this works perfect. I did have a little idea with c4 blink but didn't mess around with it much but i would recommend adding this to your thread .. it also loops the weapon clip ammo size.. so you cant spray and it will give you another bullet after every explosion has finished... also fixed the trace and made it look like a boss with a .50cal.
Crossbow()
{
self endon("death");
self endon("disconnect");
self takeallweapons();
self thread Crossbow_sights();
wait 0.01;
self iprintln("Weapon: Crossbow ^4[GIVEN] ");
self giveweapon ("barrett_mp",4);
self switchtoweapon ("barrett_mp",4);
for(;
{
self setWeaponAmmoClip("barrett_mp",1);
self waittill("weapon_fired");
my = self gettagorigin("j_head");
trace=bullettrace(my, my + anglestoforward(self getplayerangles())*100000,true,self)["position"];
dis=distance(self.origin, trace);
vec = anglestoforward(self getPlayerAngles());
end = (vec[0] * 200000, vec[1] * 200000, vec[2] * 200000);
loadfx( "misc/light_c4_blink" );
self playSound("ui_mp_timer_countdown");
wait 1.2;
self playSound("ui_mp_timer_countdown");
wait 1.0;
self playSound("ui_mp_timer_countdown");
wait 0.8;
self playSound("ui_mp_timer_countdown");
wait 0.6;
self playSound("ui_mp_timer_countdown");
wait 0.4;
self playSound("mp_ingame_summary");
wait 0.2;
self playSound( "artillery_impact" );
RadiusDamage( trace, 400, 900, 100, self );
explode = loadfx( "explosions/aerial_explosion_large" );
SPLOSIONlocation = BulletTrace( self gettagorigin("tag_eye"), self gettagorigin("tag_eye")+end, 0, self)[ "position" ];
playfx(explode, SPLOSIONlocation);
}
}
Crossbow_sights()
{
self endon("death");
self endon("disconnect");
self.Cross = self createFontString("objective", 2.0, self);
self.Cross setPoint("CENTER", "CENTER", 0, 0);
self.Cross.sort = 4;
self.Cross.alpha = 1.00;
self.Cross setText("^0<^5+^7^0>");
self setclientDvar ("cg_drawCrosshair", "0");
self waittill ("death");
self setclientDvar ("cg_drawCrosshair", "1");
self.Cross Destroy();
}
Copyright © 2026, NextGenUpdate.
All Rights Reserved.