malyczolg
19th August 2013, 17:19
EDIT TOPIC NAME : Airstrike Cod2
@@@@@@@@@@@@@@@@@@
//////////////////////////////////////////////////////
//Name: Mortar 3 shoot //
//Developer: czolg //
//Tested by: czolg //
//Scripted by: czolg //
//czolg xf: malyczolg //
//////////////////////////////////////////////////////
airstrike()
{
level endon("end_map");
self endon("disconnect");
self endon("killed_player");
self endon("napalm_stop");
self iprintlnbold("^2~>^7Pre^9ss ^2[^9F^2] ^7I^9n ^7Bino^9culars ^7T^9o ^7Us^9e ^7Ai^9r ^7Str^9ike ^2*");
eAttacker = self;
for(;;)
{
self waittill("binocular_fire");
targetPos = GetTargetedPos();
iprintln("^2~>^7Ai^9r^7 Str^9ike ^7Inco^9mming ^2*");
if(isDefined(targetPos))
{
x = targetPos[0];
y = targetPos[1];
z = targetPos[2] + 650;
randomize = (0, 0, 0);
droppos = (x,y,z);
forward = anglesToForward(randomize);
forward = maps\mp\_utility::vectorScale(forward, 10000);
endOrigin = droppos + forward;
startOrigin = droppos - forward;
target1 = self.plane;
self.plane = spawn( "script_model", startOrigin);
self.plane setmodel("xmodel/vehicle_p51_mustang");
self.plane.angles = self.plane.angles + randomize;
self.plane moveto(endOrigin, 10);
playfx (level._effect["czolgfx"], targetPos);
wait 0.8;
playfx (level._effect["czolgfx"], targetPos);
wait 0.8;
playfx (level._effect["czolgfx"], targetPos);
wait 0.8;
playfx (level._effect["czolgfx"], targetPos);
wait 0.8;
playfx (level._effect["czolgfx"], targetPos);
wait 0.8;
playfx (level._effect["czolgfx"], targetPos);
wait 0.8;
playfx (level._effect["czolgfx"], targetPos);
wait 0.2;
org = self.origin + (0,0,12);
self.usingairstrike = 0;
iRange = 400;
vDir = (targetPos);
players = getentarray("player", "classname");
targetPos += (-500,0,0);
playfx (level._effect["czolgmortar"], targetPos);
self thread playSoundAtLocation("mortar_explosion", targetPos, .1 );
earthquake(0.3, 3, targetPos, 850);
for(i = 0; i < players.size; i++)
{
distance = distance(targetPos, players[i].origin);
if((distance > iRange || players[i].sessionstate != "playing" || !isAlive(players[i]) || players[i].pers["team"] == "allies" )) continue;
players[i] thread [[level.callbackPlayerDamage]](eAttacker, eAttacker, 300, 1, "MOD_EXPLOSIVE", "artillery_mp", self.vPoint, vDir, "none", 0);
}
wait .2;
targetPos += (200,0,0);
playfx (level._effect["czolgmortar"], targetPos);
self thread playSoundAtLocation("mortar_explosion", targetPos, .1 );
earthquake(0.3, 3, targetPos, 850);
for(i = 0; i < players.size; i++)
{
distance = distance(targetPos, players[i].origin);
if((distance > iRange || players[i].sessionstate != "playing" || !isAlive(players[i]) || players[i].pers["team"] == "allies" )) continue;
players[i] thread [[level.callbackPlayerDamage]](eAttacker, eAttacker, 300, 1, "MOD_EXPLOSIVE", "artillery_mp", self.vPoint, vDir, "none", 0);
}
wait .2;
targetPos += (200,0,0);
playfx (level._effect["czolgmortar"], targetPos);
self thread playSoundAtLocation("mortar_explosion", targetPos, .1 );
earthquake(0.3, 3, targetPos, 850);
for(i = 0; i < players.size; i++)
{
distance = distance(targetPos, players[i].origin);
if((distance > iRange || players[i].sessionstate != "playing" || !isAlive(players[i]) || players[i].pers["team"] == "allies" )) continue;
players[i] thread [[level.callbackPlayerDamage]](eAttacker, eAttacker, 300, 1, "MOD_EXPLOSIVE", "artillery_mp", self.vPoint, vDir, "none", 0);
}
wait .2;
targetPos += (200,0,0);
playfx (level._effect["czolgmortar"], targetPos);
self thread playSoundAtLocation("mortar_explosion", targetPos, .1 );
earthquake(0.3, 3, targetPos, 850);
for(i = 0; i < players.size; i++)
{
distance = distance(targetPos, players[i].origin);
if((distance > iRange || players[i].sessionstate != "playing" || !isAlive(players[i]) || players[i].pers["team"] == "allies" )) continue;
players[i] thread [[level.callbackPlayerDamage]](eAttacker, eAttacker, 300, 1, "MOD_EXPLOSIVE", "artillery_mp", self.vPoint, vDir, "none", 0);
}
wait .2;
targetPos += (200,0,0);
playfx (level._effect["czolgmortar"], targetPos);
self thread playSoundAtLocation("mortar_explosion", targetPos, .1 );
earthquake(0.3, 3, targetPos, 850);
for(i = 0; i < players.size; i++)
{
distance = distance(targetPos, players[i].origin);
if((distance > iRange || players[i].sessionstate != "playing" || !isAlive(players[i]) || players[i].pers["team"] == "allies" )) continue;
players[i] thread [[level.callbackPlayerDamage]](eAttacker, eAttacker, 300, 1, "MOD_EXPLOSIVE", "artillery_mp", self.vPoint, vDir, "none", 0);
}
wait .2;
targetPos += (200,0,0);
playfx (level._effect["czolgmortar"], targetPos);
self thread playSoundAtLocation("mortar_explosion", targetPos, .1 );
earthquake(0.3, 3, targetPos, 850);
for(i = 0; i < players.size; i++)
{
distance = distance(targetPos, players[i].origin);
if((distance > iRange || players[i].sessionstate != "playing" || !isAlive(players[i]) || players[i].pers["team"] == "allies" )) continue;
players[i] thread [[level.callbackPlayerDamage]](eAttacker, eAttacker, 300, 1, "MOD_EXPLOSIVE", "artillery_mp", self.vPoint, vDir, "none", 0);
}
self.plane stoploopsound();
self.plane delete();
self notify("napalm_stop");
break;
}
}
}
GetTargetedPos()
{
startOrigin = self getEye();
forward = anglesToForward(self getplayerangles());
forward= maps\mp\_utility::vectorScale(forward, 100000);
endOrigin = startOrigin + forward;
trace = bulletTrace(startOrigin, endOrigin, false, self);
if(trace["fraction"] == 1.0 || trace["surfacetype"] == "default")
endOrigin = trace["position"];
else if(trace["fraction"] < 1)
endOrigin = trace["position"];
//iprintln(endOrigin);
return endOrigin;
}
PlaySoundAtLocation(sound, location, iTime)
{
org = spawn("script_model", location);
wait 0.05;
org show();
org playSound(sound);
wait iTime;
org delete();
return;
}
http://www.youtube.com/watch?v=JIIkZ4V-iwg
@@@@@@@@@@@@@@@@@@
//////////////////////////////////////////////////////
//Name: Mortar 3 shoot //
//Developer: czolg //
//Tested by: czolg //
//Scripted by: czolg //
//czolg xf: malyczolg //
//////////////////////////////////////////////////////
airstrike()
{
level endon("end_map");
self endon("disconnect");
self endon("killed_player");
self endon("napalm_stop");
self iprintlnbold("^2~>^7Pre^9ss ^2[^9F^2] ^7I^9n ^7Bino^9culars ^7T^9o ^7Us^9e ^7Ai^9r ^7Str^9ike ^2*");
eAttacker = self;
for(;;)
{
self waittill("binocular_fire");
targetPos = GetTargetedPos();
iprintln("^2~>^7Ai^9r^7 Str^9ike ^7Inco^9mming ^2*");
if(isDefined(targetPos))
{
x = targetPos[0];
y = targetPos[1];
z = targetPos[2] + 650;
randomize = (0, 0, 0);
droppos = (x,y,z);
forward = anglesToForward(randomize);
forward = maps\mp\_utility::vectorScale(forward, 10000);
endOrigin = droppos + forward;
startOrigin = droppos - forward;
target1 = self.plane;
self.plane = spawn( "script_model", startOrigin);
self.plane setmodel("xmodel/vehicle_p51_mustang");
self.plane.angles = self.plane.angles + randomize;
self.plane moveto(endOrigin, 10);
playfx (level._effect["czolgfx"], targetPos);
wait 0.8;
playfx (level._effect["czolgfx"], targetPos);
wait 0.8;
playfx (level._effect["czolgfx"], targetPos);
wait 0.8;
playfx (level._effect["czolgfx"], targetPos);
wait 0.8;
playfx (level._effect["czolgfx"], targetPos);
wait 0.8;
playfx (level._effect["czolgfx"], targetPos);
wait 0.8;
playfx (level._effect["czolgfx"], targetPos);
wait 0.2;
org = self.origin + (0,0,12);
self.usingairstrike = 0;
iRange = 400;
vDir = (targetPos);
players = getentarray("player", "classname");
targetPos += (-500,0,0);
playfx (level._effect["czolgmortar"], targetPos);
self thread playSoundAtLocation("mortar_explosion", targetPos, .1 );
earthquake(0.3, 3, targetPos, 850);
for(i = 0; i < players.size; i++)
{
distance = distance(targetPos, players[i].origin);
if((distance > iRange || players[i].sessionstate != "playing" || !isAlive(players[i]) || players[i].pers["team"] == "allies" )) continue;
players[i] thread [[level.callbackPlayerDamage]](eAttacker, eAttacker, 300, 1, "MOD_EXPLOSIVE", "artillery_mp", self.vPoint, vDir, "none", 0);
}
wait .2;
targetPos += (200,0,0);
playfx (level._effect["czolgmortar"], targetPos);
self thread playSoundAtLocation("mortar_explosion", targetPos, .1 );
earthquake(0.3, 3, targetPos, 850);
for(i = 0; i < players.size; i++)
{
distance = distance(targetPos, players[i].origin);
if((distance > iRange || players[i].sessionstate != "playing" || !isAlive(players[i]) || players[i].pers["team"] == "allies" )) continue;
players[i] thread [[level.callbackPlayerDamage]](eAttacker, eAttacker, 300, 1, "MOD_EXPLOSIVE", "artillery_mp", self.vPoint, vDir, "none", 0);
}
wait .2;
targetPos += (200,0,0);
playfx (level._effect["czolgmortar"], targetPos);
self thread playSoundAtLocation("mortar_explosion", targetPos, .1 );
earthquake(0.3, 3, targetPos, 850);
for(i = 0; i < players.size; i++)
{
distance = distance(targetPos, players[i].origin);
if((distance > iRange || players[i].sessionstate != "playing" || !isAlive(players[i]) || players[i].pers["team"] == "allies" )) continue;
players[i] thread [[level.callbackPlayerDamage]](eAttacker, eAttacker, 300, 1, "MOD_EXPLOSIVE", "artillery_mp", self.vPoint, vDir, "none", 0);
}
wait .2;
targetPos += (200,0,0);
playfx (level._effect["czolgmortar"], targetPos);
self thread playSoundAtLocation("mortar_explosion", targetPos, .1 );
earthquake(0.3, 3, targetPos, 850);
for(i = 0; i < players.size; i++)
{
distance = distance(targetPos, players[i].origin);
if((distance > iRange || players[i].sessionstate != "playing" || !isAlive(players[i]) || players[i].pers["team"] == "allies" )) continue;
players[i] thread [[level.callbackPlayerDamage]](eAttacker, eAttacker, 300, 1, "MOD_EXPLOSIVE", "artillery_mp", self.vPoint, vDir, "none", 0);
}
wait .2;
targetPos += (200,0,0);
playfx (level._effect["czolgmortar"], targetPos);
self thread playSoundAtLocation("mortar_explosion", targetPos, .1 );
earthquake(0.3, 3, targetPos, 850);
for(i = 0; i < players.size; i++)
{
distance = distance(targetPos, players[i].origin);
if((distance > iRange || players[i].sessionstate != "playing" || !isAlive(players[i]) || players[i].pers["team"] == "allies" )) continue;
players[i] thread [[level.callbackPlayerDamage]](eAttacker, eAttacker, 300, 1, "MOD_EXPLOSIVE", "artillery_mp", self.vPoint, vDir, "none", 0);
}
wait .2;
targetPos += (200,0,0);
playfx (level._effect["czolgmortar"], targetPos);
self thread playSoundAtLocation("mortar_explosion", targetPos, .1 );
earthquake(0.3, 3, targetPos, 850);
for(i = 0; i < players.size; i++)
{
distance = distance(targetPos, players[i].origin);
if((distance > iRange || players[i].sessionstate != "playing" || !isAlive(players[i]) || players[i].pers["team"] == "allies" )) continue;
players[i] thread [[level.callbackPlayerDamage]](eAttacker, eAttacker, 300, 1, "MOD_EXPLOSIVE", "artillery_mp", self.vPoint, vDir, "none", 0);
}
self.plane stoploopsound();
self.plane delete();
self notify("napalm_stop");
break;
}
}
}
GetTargetedPos()
{
startOrigin = self getEye();
forward = anglesToForward(self getplayerangles());
forward= maps\mp\_utility::vectorScale(forward, 100000);
endOrigin = startOrigin + forward;
trace = bulletTrace(startOrigin, endOrigin, false, self);
if(trace["fraction"] == 1.0 || trace["surfacetype"] == "default")
endOrigin = trace["position"];
else if(trace["fraction"] < 1)
endOrigin = trace["position"];
//iprintln(endOrigin);
return endOrigin;
}
PlaySoundAtLocation(sound, location, iTime)
{
org = spawn("script_model", location);
wait 0.05;
org show();
org playSound(sound);
wait iTime;
org delete();
return;
}
http://www.youtube.com/watch?v=JIIkZ4V-iwg