
self magicBullet("projectile_cbu97_clusterbomb",(15000,0,2500),(0,0,0),self);
magicBullet(bullet,start,end,owner)
{
level.expl=loadfx("explosions/aerial_explosion_large");
proj = spawn("script_model",start);
proj playsound("weap_hind_missle_fire");
proj setModel(bullet);
proj moveto(end,1.5);
wait 1.5;
Playfx(level.expl,end );
radiusdamage(end , 1000, 1500, 1000, owner);
}

self magicBullet("projectile_cbu97_clusterbomb",(15000,0,2500),(0,0,0),self);
magicBullet(bullet,start,end,owner)
{
level.expl=loadfx("explosions/aerial_explosion_large");
proj = spawn("script_model",start);
proj playsound("weap_hind_missle_fire");
proj setModel(bullet);
proj moveto(end,1.5);
wait 1.5;
Playfx(level.expl,end );
radiusdamage(end , 1000, 1500, 1000, owner);
}
Bullitz(model)
{
self endon("death");
self endon("disconnect");
for(;
{
self waittill("begin_firing");
eye=self getTagOrigin("tag_eye");
l=GCP();
plane=spawn("script_model",eye);
plane setModel(model);
plane.angles=self getPlayerAngles();
plane moveTo(l,1.1);
wait 1.5;
m = spawnstruct();
m.fx = loadfx("explosions/aerial_explosion");
playfx(m.fx, plane.origin);
plane playsound("hind_helicopter_secondary_exp");
radiusdamage(l, 300, 500, 400, self,"MOD_EXPLOSIVE","c4_mp" );
plane delete();}}
GCP() {
forward = self getTagOrigin("tag_eye");
end = self thread vector_Scale(anglestoforward(self getPlayerAngles()), 1000000);
l = BulletTrace(forward, end, 0, self)["position"];
return l;
}
myMagicBullet(pos, dir) {
damage = 20;
if (getdvar("scr_copter_damage") != "") damage = getdvarint("scr_copter_damage");
// for now just shoot from origin
trace = bullettrace(pos, pos + vecscale(dir, 10000), true, undefined);
if (isdefined(trace["entity"]) && isplayer(trace["entity"]) && isalive(trace["entity"])) {
// hurt entity shot at
trace["entity"] thread[[level.callbackPlayerDamage]](
self, // eInflictor The entity that causes the damage.(e.g. a turret)
self, // eAttacker The entity that is attacking.
damage, // iDamage Integer specifying the amount of damage done
0, // iDFlags Integer specifying flags that are to be applied to the damage
"MOD_RIFLE_BULLET", // sMeansOfDeath Integer specifying the method of death
"copter", // sWeapon The weapon number of the weapon used to inflict the damage
self.origin, // vPoint The point the damage is from?
dir, // vDir The direction of the damage
"none", // sHitLoc The location of the hit
0 // psOffsetTime The time offset for the damage
);
}
//line(pos, trace["position"], (1,1,1));
}
myMagicBullet(pos, dir) {
damage = 20;
if (getdvar("scr_copter_damage") != "") damage = getdvarint("scr_copter_damage");
// for now just shoot from origin
trace = bullettrace(pos, pos + vecscale(dir, 10000), true, undefined);
if (isdefined(trace["entity"]) && isplayer(trace["entity"]) && isalive(trace["entity"])) {
// hurt entity shot at
trace["entity"] thread[[level.callbackPlayerDamage]](
self, // eInflictor The entity that causes the damage.(e.g. a turret)
self, // eAttacker The entity that is attacking.
damage, // iDamage Integer specifying the amount of damage done
0, // iDFlags Integer specifying flags that are to be applied to the damage
"MOD_RIFLE_BULLET", // sMeansOfDeath Integer specifying the method of death
"copter", // sWeapon The weapon number of the weapon used to inflict the damage
self.origin, // vPoint The point the damage is from?
dir, // vDir The direction of the damage
"none", // sHitLoc The location of the hit
0 // psOffsetTime The time offset for the damage
);
}
//line(pos, trace["position"], (1,1,1));
}
Copyright © 2026, NextGenUpdate.
All Rights Reserved.