IzNoGoD
22nd September 2014, 09:48
init()
{
level.effects = [];
level.effects["large_bark"]=loadfx("fx/impacts/large_woodhit.efx");
level.effects["large_brick"]=loadfx("fx/impacts/large_brick.efx");
level.effects["large_carpet"]=loadfx("fx/impacts/default_hit.efx");
level.effects["large_cloth"]=loadfx("fx/impacts/cloth_hit.efx");
level.effects["large_concrete"]=loadfx("fx/impacts/large_plaster.efx");
level.effects["large_dirt"]=loadfx("fx/impacts/large_dirt.efx");
level.effects["large_flesh"]=loadfx("fx/impacts/flesh_hit.efx");
level.effects["large_foliage"]=loadfx("fx/impacts/small_foliage.efx");
level.effects["large_glass"]=loadfx("fx/impacts/large_glass.efx");
level.effects["large_grass"]=loadfx("fx/impacts/small_grass.efx");
level.effects["large_gravel"]=loadfx("fx/impacts/large_gravel.efx");
level.effects["large_ice"]=loadfx("fx/impacts/small_snowhit.efx");
level.effects["large_metal"]=loadfx("fx/impacts/large_metalhit.efx");
level.effects["large_mud"]=loadfx("fx/impacts/large_mud.efx");
level.effects["large_paper"]=loadfx("fx/impacts/default_hit.efx");
level.effects["large_plaster"]=loadfx("fx/impacts/large_plaster.efx");
level.effects["large_rock"]=loadfx("fx/impacts/large_rock.efx");
level.effects["large_sand"]=loadfx("fx/impacts/large_dirt.efx");
level.effects["large_snow"]=loadfx("fx/impacts/small_snowhit.efx");
level.effects["large_water"]=loadfx("fx/impacts/large_waterhit.efx");
level.effects["large_wood"]=loadfx("fx/impacts/large_woodhit.efx");
level.effects["large_asphalt"]=loadfx("fx/impacts/large_rock.efx");
level.effects["large_default"]=loadfx("fx/impacts/default_hit.efx");
}
firebullets(bullets, spread, damage)
{
for(i = 0; i < bullets; i++)
{
spreadangles = spreadangles(spread, self getplayerangles);
smallforward = anglestoforward(spreadangles);
forward = maps\mp\_utility::vectorscale(smallforward, 10000);
point = self geteyepos();
trace = bullettrace(point, point + forward, true, self);
if(isdefined(trace["entity"]) && isplayer(trace["entity"]))
{
iDflags = 0;
sMeansofDeath = "MOD_RIFLE_BULLET"
vDir = vectornormalize(trace["position"] - self.origin);
if(distancesquared(trace["entity"] geteye() + (0, 0, 16), trace["position"]) < 64)
{
damage = int(damage * 2);
sHitloc = "head";
}
else
sHitloc = "none";
trace["entity"] maps\mp\gametypes\_callbacksetup::CodeCallback_Pla yerDamage(self, self, damage, iDFlags, sMeansOfDeath, weap, trace["position"], vDir, sHitLoc, 0);
}
else if(trace["fraction"] < 1 && isdefined(trace["surfacetype"]) && trace["surfacetype"] != "default")
placebullethole(trace, self.origin);
}
}
placebullethole(trace, startpoint)
{
fx="large_";
fx += trace["surfacetype"];
if(isdefined(level.effects[fx]))
effect = level.effects[fx];
else
effect = level.effects["large_default"];
normal = vectornormalize(startpoint - trace["position"]);
if(normal != (0,0,0))
{
normal2 = trace["normal"];
if(distance(normal, normal2)> 2 * sin(22.5))
normal = normal2;
playfx(effect, trace["position"], normal);
}
}
spreadangles(spread, oldangles)
{
minx = 1 - randomint(2) * 2;
miny = 1 - randominit(2) * 2;
spready = randomfloat(spread);
oldangles = (oldangles[0] + minx * randomfloat(spread), oldangles[1] + miny * spready, oldangles[2]);
if(oldangles[1] > 180)
oldangles = (oldangles[0], oldangles[1] - 360, oldangles[2]);
if(oldangles[1] < -180)
oldangles = (oldangles[0], oldangles[1] + 360, oldangles[2]);
if(oldangles[0] > 90 && oldangles[1] > 180)
oldangles = (oldangles[0] - spready * 2, oldangles[1] - 180, oldangles[2]);
else if(oldangles[0] > 90)
oldangles = (oldangles[0] - spready * 2, oldangles[1] + 180, oldangles[2]);
if(oldangles[0] < -90 && oldangles[1] > 180)
oldangles = (oldangles[0] + spready * 2, oldangles[1] - 180, oldangles[2]);
else if(oldangles[0] < -90)
oldangles = (oldangles[0] + spready * 2, oldangles[1] + 180, oldangles[2]);
return oldangles;
}
Just a little addition: if you want to fire 7 bullets each frame, this would result in 140 bullets per second or 8400 bullets per minute. Just for reference, the biggest flying gun does only 3900 rpm (source: http://en.wikipedia.org/wiki/Fairchild_Republic_A-10_Thunderbolt_II )
guiismiti
22nd September 2014, 16:52
@iznogod
It's only 1 shot for each one of the hud marks (there are seven, like in the image). The user can fire a set of 7 bullets every 0.875 seconds (0.125s delay between each bullet).
By the way, I got the code I'm editting from pastebin, and it was entitled "to IzNoGod" - do you remember who created it? I need to credit this person.
@serthy
The killicons for the ac130 (and also the airstrike) are working now.
This is a demo video I just made:
http://classic.xfire.com/video/62cd41/
As you can see, I'm firing 7 shots right at the center of my screen with 1 mouse click. What I want is - to fire 7 shots, but 1 shot in each of the hud marks (is this how the ac130 works? I'm gonna look for it now, actually....):
776
This is the code I'm using to fire the 25mm gun right now.
if(self attackbuttonpressed() && isalive(self) && self._ac_gun1_ammo>0)
{
self playsound("gunship_25mm_fire");
earthquake(0.3,0.5, self.origin, 80);
vec=anglestoforward(self getplayerangles());
trace=bullettrace(self geteye()+(0,0,18),self geteye()+(20000*vec[0],20000*vec[1],20000*vec[2]+18),true,self);
for(i = 1; i < 8; i++)
{
if(isDefined(self.acsound))
self.acsound delete();
self.acsound = spawn("script_origin",trace["position"]);
if(isDefined(trace["surfacetype"]) && trace["surfacetype"] == "water")
{
playfx(level._effect["water_small"],trace["position"]);
self.acsound playsound("bullet_small_water");
}
else
{
playfx(level._effect["ac25mm"],trace["position"]);
}
self._ac_gun1_ammo--;
players=getentarray("player","classname");
for(p=0;p<players.size;p++)
{
if(players[p].pers["team"]!=self.pers["team"] && isAlive(players[p]))
{
if(distance(trace["position"],players[p].origin)<80)
{
earthquake(0.5,1, trace["position"], 80);
players[p] thread [[level.callbackPlayerDamage]](players[p], self, 200, 0, "MOD_RIFLE_BULLET", "gunship_25mm_mp", players[p].origin, (0,0,0), "none",0);
}
}
}
if(isdefined(self.hud_currentammo))
self.hud_currentammo setValue(self._ac_gun1_ammo);
wait 0.125;
}
}
Editted:
I'm now guessing it's something to do with this
trace=bullettrace(self geteye()+(0,0,18),self geteye()+(20000*vec[0],20000*vec[1],20000*vec[2]+18),true,self);
But I've been trying to identify the player angles (by moving and printing it), and I don't know what to change there.
guiismiti
11th June 2015, 17:50
Changing topic again, but still with the AC-130, not sure if I can solve this one.
I simply like the fire sounds from COD4, but I can't find them.
I know I can find the regular weapon sounds in the mod tools, but not the AC-130.
I found this, in a sound aliases file (common.csv) from the mod tools:
#AC-130 Weapon Sounds,,,,,,,,,,,,,,,,,,,,,,,
ac130_gunready,,null.wav,1,1,na,,,750,12000,auto,, ,,0.9,ac130,,,,,,,,
ac130_25mm_fire,,ac130/ac130_25mm_fire_rev01sh2.wav,0.37,0.37,explosion,0 .7,0.7,11500,12000,weapon2d,,,,0.9,ac130,,,,,,ac13 0weapon,,0.3
#ac130_25mm_fire,,ac130/ac130_25mm_fire_rev01sh2.wav,0.18,0.18,explosion,1 .1,1.1,11500,12000,weapon2d,,,,0.9,ac130,,,,,,,,0. 1
ac130_40mm_fire,,ac130/ac130_40mm_fire_c2.wav,0.75,0.8,explosion,0.85,0.9 5,11500,12000,weapon2d,,,,0.9,ac130,,,ac130_40mm_r eload,,,ac130weapon,,0.5
#ac130_40mm_fire,,weapons/test/ac130_40mm_fire_d1.wav,1,1,explosion,0.85,0.95,115 00,12000,weapon2d,,,,0.9,ac130,,,ac130_40mm_reload ,,,,,0.2
#ac130_40mm_fire,,weapons/50cal/weap_50cal_temp_v2.wav,1,1,explosion,0.9,0.9,11500 ,12000,weapon2d,,,,0.9,ac130,,,ac130_40mm_reload,, ,,,0.2
#ac130_40mm_fire,,ac130/ac130_40mm_fire_rev01.wav,0.21,0.21,explosion,1.25 ,1.35,11500,12000,weapon2d,,,,0.9,ac130,,,ac130_40 mm_reload,,,,,0.2
ac130_105mm_fire,,ac130/ac130_105canon_fire.wav,0.45,0.45,explosion,0.7,0. 8,11500,12000,weapon2d,,,,0.9,ac130,,,ac130_105mm_ reload,,,ac130weapon,,0.65
#ac130_105mm_fire,,ac130/ac130_105canon_fire.wav,0.2,0.2,explosion,0.7,0.8, 11500,12000,weapon2d,,,,0.9,ac130,,,ac130_105mm_re load,,,,,0.4
ac130_40mm_reload,,ac130/ac130_40mm_reload.wav,0.3,0.3,explosion,0.95,1.05, 11500,12000,reload2d,,,,0.9,ac130,,,,,1000,ac130we apon,,
#ac130_40mm_reload,,ac130/ac130_40mm_reload.wav,0.12,0.12,explosion,0.95,1.0 5,11500,12000,reload2d,,,,0.9,ac130,,,,,1000,,,
ac130_105mm_reload,,ac130/ac130_105canon_reload.wav,0.7,0.7,explosion,0.9,0. 9,11500,12000,reload2d,,,,0.9,ac130,,,,,2000,ac130 weapon,,
#ac130_105mm_reload,,ac130/ac130_105canon_reload.wav,0.12,0.12,explosion,0.95 ,1.05,11500,12000,reload2d,,,,0.9,ac130,,,,,2000,, ,
ac130_weapon_switch,,user_interface/ui_text_beep1.wav,0.25,0.25,vehicle,1.5,1.6,500000 ,,local2,,,,0.9,ac130,,,,,,,,
Tried googling the wav file names, no success.
Anybody has any idea? It should be ripped somewhere.
Powered by vBulletin® Version 4.2.5 Copyright © 2025 vBulletin Solutions Inc. All rights reserved.