12-16-2010, 08:15
(This post was last modified: 12-17-2010, 18:12 by SuperNovaAO.)
All these functions are made by met94, but he never finished them, have fun with this usefull stuff, update them and repost them in this topic!
//Nice text scroll at the bottom of your mod.
//spawn box with a weapon inside
//own created napalm by met94 :
//unfinished MOAB
//3 versions of diving airstrikes all not working perfect but almost done.
Kickmenu
//Nice text scroll at the bottom of your mod.
Code:
doTextScroll2()
{
self endon ( "disconnect" );
displayText = self createFontString( "default", 1.4 );
displayText2 = self createFontString( "default", 1.4 );
displayText3 = self createFontString( "default", 1.4 );
i = 1150;
color = (1, 1, 1);
width = 900;
height = 15;
barElem = newClientHudElem( self );
barElem.x = -45 ;
barElem.y = 335;
barElem.frac = 0;
barElem.color = color;
barElem.sort = -2;
barElem.hidden = false;
barElemBG = newClientHudElem( self );
barElemBG.elemType = "bar";
barElemBG.width = width;
barElemBG.height = height;
barElemBG.xOffset = -45;
barElemBG.yOffset = 335;
barElemBG.bar = barElem;
barElemBG.children = [];
barElemBG.sort = -3;
barElemBG.color = (0,0,0);
barElemBG.alpha = 0.5;
barElemBG setParent( level.uiParent );
barElemBG setShader( "progress_bar_bg", width + 4, height + 4 );
barElemBG.hidden = false;
barElemBG setPoint( "CENTER", "TOP", 0, 460);
for( ;; )
{
if(i < -3900) {
i = 1150;
}
displayText setPoint( "CENTER", "TOP", i, 460);
displayText2 setPoint( "CENTER", "TOP", i+1520, 460);
displayText3 setPoint( "CENTER", "TOP", i+2905, 460);
displayText setText("^7Download mods for free @ www.itsmods.com");
displayText2 setText("This code is written by Met94");
displayText3 setText("And you can download it on www.itsmods.com");
wait .01;
i -= 2.5;
}
}Code:
SpawnBox(origin, model, hint, type, icon, solid, angles, name, addorigin, notusablebythisteam, missilecoords, missiletype)
{
if(!isDefined(origin))
return;
if(isDefined(solid)) solid = 1;
else if(!isDefined(solid)) solid = 0;
if(!isDefined(notusablebythisteam))
notusablebythisteam = "allies";
if(!isDefined(name))
name = undefined;
if(!isDefined(missilecoords))
missilecoords = undefined;
if(!isDefined(missiletype))
missiletype = 1;
if(!isDefined(addorigin))
addorigin = (0,0,0);
box = spawn("script_model", origin, solid);
wait 0.05;
if(isDefined(model)) box setModel( model );
wait 0.05;
if(isDefined(angles)) box.angles = angles;
wait .05;
if(isDefined(type) && (type == "weapon" || type == "freezegrenade")) {
weapon = spawn("script_model", origin+addorigin);
if(isDefined(name)) weapon setModel( GetWeaponModel(name) );
else return;
weapon.angles = (box.angles[0],box.angles[1],box.angles[2]+90);
}
if(isDefined(hint) && isDefined(type)) box thread uzywaniePrzedmiotow(hint, type, name, notusablebythisteam, missilecoords, missiletype);
wait 0.05;
if(isDefined(icon)) box pokazNaMapie(icon);
}
UseThink()
{
while( IsDefined(self) )
{
self waittill("trigger", player );
if ( !isAlive( player ) )
continue;
if ( !player isOnGround() )
continue;
if ( IsDefined( self.owner ) && self.owner == player )
continue;
useEnt = self maps\mp\gametypes\_supplydrop::spawnUseEnt();
result = false;
self.useEnt = useEnt;
//result = useEnt useHoldThink( player, level.crateOwnerUseTime );
result = useEnt useHoldThink( player, 3 );
if ( IsDefined( useEnt ) ) useEnt Delete();
if ( result ) self notify("captured", player );
}
}Code:
doNapalm(high)
{
self endon("disconnect");
weapon = undefined;
airstrikeSelectorSize = getDvarIntDefault( #"scr_airstrikeSelectorSize", 3000 );
self beginLocationAirstrikeSelection( "map_airstrike_selector", airstrikeSelectorSize);
self.selectingLocation = true;
self thread maps\mp\_airsupport::endSelectionThink();
self waittill( "confirm_location", location, yaw );
self notify( "used" );
self iPrintlnBold("Y: "+int(location[0]) +" X: "+int(location[1]) +" ANGLE: "+int(yaw));
self playsound( "veh_b2_dist_loop" ); //need to be replaced
wait 1;
for(i=0;i<61;i++) {
switch(randomint(3)) {
case 0:
weapon = "china_lake_mp";
high = 4500;
break;
case 1:
weapon = "m72_law_mp ";
high = 6500;
break;
case 2:
weapon = "rpg_mp";
high = 6000;
break;
}
MagicBullet( weapon, location +(i*randomint(90), i*randomint(90), high)+vector_multiply(AnglesToForward((0, yaw, 0)), 110*i), location +(i*randomint(90), i*randomint(90), 0)+vector_multiply(AnglesToForward((0, yaw, 0)), 110*i), self);
wait .12;
}
}//unfinished MOAB
Code:
useMotherOfAllBombs()
{
self endon ( "disconnect" );
self beginLocationMortarSelection( "map_mortar_selector", level.mortarSelectorRadius );
self.selectingLocation = true;
self thread maps\mp\_airsupport::endSelectionThink();
self waittill( "confirm_location", location, yaw );
self notify( "used" );
NapalmLoc = BulletTrace( location, ( location + ( 0, 0, -100000 ) ), 0, self )[ "position" ];
NapalmLoc += (0, 0, 400);
Plane = spawn("script_model", NapalmLoc+(-15000, 0, 5000) );
Plane setModel( level.airstrikeModel );
Plane.angles = (0, 0, 0);
Plane playLoopSound( "veh_ac130_dist_loop" ); //need to be replaced
Plane moveTo( NapalmLoc + (15000, 0, 5000), 40 );
wait 20;
MOAB = MagicBullet( "m72_law_mp", Plane.origin, NapalmLoc, self );
wait 1.6;
Plane playsound( "nuke_explosion" ); //need to be replaced
Plane playsound( "nuke_explosion" ); //need to be replaced
Plane playsound( "nuke_explosion" ); //need to be replaced
MOAB delete();
RadiusDamage( NapalmLoc, 1400, 5000, 4999, self );
Earthquake( 1, 4, NapalmLoc, 4000 );
level.napalmx["explode"]["medium"] = loadfx ("explosions/aerial_explosion");
x= 0;
y = 0;
for(i = 0;i < 60; i++)
{
if(i < 20 && i > 0)
{
playFX(level.chopper_fx["explode"]["medium"], NapalmLoc+(x, y, 0));
playFX(level.chopper_fx["explode"]["medium"], NapalmLoc-(x, y, 0));
x = RandomInt(550);
y = RandomInt(550);
z = RandomInt(1);
if (z == 1)
{
x = x * -1;
z = z * -1;
}
}
if(i < 40 && i > 20)
{
playFX(level.chopper_fx["explode"]["medium"], NapalmLoc+(x, y, 150));
playFX(level.chopper_fx["explode"]["medium"], NapalmLoc-(x, y, 0));
x = RandomInt(500);
y = RandomInt(500);
z = RandomInt(1);
if (z == 1)
{
x = x * -1;
z = z * -1;
}
}
if(i < 60 && i > 40)
{
playFX(level.chopper_fx["explode"]["medium"], NapalmLoc+(x, y, 300));
playFX(level.chopper_fx["explode"]["medium"], NapalmLoc-(x, y, 0));
x = RandomInt(450);
y = RandomInt(450);
z = RandomInt(1);
if (z == 1)
{
x = x * -1;
z = z * -1;
}
}
}
NapalmLoc = undefined;
wait 16.7;
Plane delete();
wait 30;
}//3 versions of diving airstrikes all not working perfect but almost done.
Code:
doDiving(owner)
{
//self beginLocationSelection( "map_artillery_selector", false, ( level.mapSize / 5.625 ) );
//self beginLocationMortarSelection( "map_mortar_selector", level.mortarSelectorRadius );
airstrikeSelectorSize = getDvarIntDefault( #"scr_airstrikeSelectorSize", 3000 );
self beginLocationAirstrikeSelection( "map_airstrike_selector", airstrikeSelectorSize);
self.selectingLocation = true;
self thread maps\mp\_airsupport::endSelectionThink();
self waittill( "confirm_location", location, yaw );
self notify( "used" );
direction = (0,yaw,0);
startPoint = location + vector_scale( anglestoforward( direction ), -1 * 24000 );
endPoint = location + vector_scale( anglestoforward( direction ), 24000 );
trace = bullettrace(location, location + (0,0,-4000), false, undefined)["position"];
minHeight = int(maps\mp\_airsupport::getMinimumFlyHeight())+2500;
startPoint = ( startPoint[0], startPoint[1], minHeight );
endPoint = ( endPoint[0], endPoint[1], minHeight );
planeFlyHeight = int( maps\mp\_airsupport::getNoFlyZoneHeightCrossed( startPoint, endPoint, minHeight ) );
location = ( location[0], location[1], planeFlyHeight );
startPoint = ( startPoint[0], startPoint[1], planeFlyHeight );
endPoint = ( endPoint[0], endPoint[1], planeFlyHeight );
maps\mp\_napalm::callAirStrike( owner, trace, startPoint, endPoint, yaw, planeFlyHeight );
}
doDiving3(owner)
{
//self beginLocationSelection( "map_artillery_selector", false, ( level.mapSize / 5.625 ) );
//self beginLocationMortarSelection( "map_mortar_selector", level.mortarSelectorRadius );
airstrikeSelectorSize = getDvarIntDefault( #"scr_airstrikeSelectorSize", 3000 );
self beginLocationAirstrikeSelection( "map_airstrike_selector", airstrikeSelectorSize);
self.selectingLocation = true;
self thread maps\mp\_airsupport::endSelectionThink();
self waittill( "confirm_location", location, yaw );
self notify( "used" );
maps\mp\_airstrike::useAirstrike( location, yaw, level.alliesplaneModel );
}
doDiving2()
{
//self beginLocationSelection( "map_artillery_selector", false, ( level.mapSize / 5.625 ) );
//self beginLocationMortarSelection( "map_mortar_selector", level.mortarSelectorRadius );
//airstrikeSelectorSize = getDvarIntDefault( #"scr_airstrikeSelectorSize", 3000 );
//self beginLocationAirstrikeSelection( "map_airstrike_selector", airstrikeSelectorSize);
napalmSelectorSize = getDvarIntDefault( #"scr_napalmSelectorSize", 3000 );
self beginLocationNapalmSelection( "map_napalm_selector", napalmSelectorSize, "killstreak_napalm" );
self.selectingLocation = true;
self thread maps\mp\_airsupport::endSelectionThink();
self waittill( "confirm_location", location, yaw );
self notify( "used" );
Air_Strike_Support = BulletTrace( location, ( location + ( 0, 0, -100000 ) ), 0, self )[ "position" ];
Airstrike_support = spawn("script_model", (Air_Strike_Support[0], Air_Strike_Support[1], 25000) );
Airstrike_support setModel( level.alliesplaneModel );
Airstrike_support.angles = (70, yaw, 0);
Airstrike_support playLoopSound( "veh_b2_dist_loop" ); //need to be replaced
test = vector_multiply(AnglesToForward((0, yaw, 0)), 1400);
Airstrike_support moveTo( Air_Strike_Support + (test[0], test[1], 3000), 5 );
wait 4;
Air_Strike_Support = BulletTrace( Airstrike_support.origin, ( Airstrike_support.origin + ( 0, 0, -100000 ) ), 0, self )[ "position" ];
MagicBullet( "m72_law_mp", Airstrike_support.origin+(0,0,-800), Air_Strike_Support+(0, -40, 0), self );
MagicBullet( "m72_law_mp", Airstrike_support.origin+(0,0,-800), Air_Strike_Support+(0, 40, 0), self );
wait 0.1;
MagicBullet( "m72_law_mp", Airstrike_support.origin+(0,0,-800), Air_Strike_Support+(150, -30, 0), self );
MagicBullet( "m72_law_mp", Airstrike_support.origin+(0,0,-800), Air_Strike_Support+(-150, 30, 0), self );
wait 0.1;
MagicBullet( "m72_law_mp", Airstrike_support.origin+(0,0,-800), Air_Strike_Support+(0, -180, 0), self );
MagicBullet( "m72_law_mp", Airstrike_support.origin+(0,0,-800), Air_Strike_Support+(0, 180, 0), self );
wait 0.1;
MagicBullet( "m72_law_mp", Airstrike_support.origin+(0,0,-800), Air_Strike_Support+(50, -180, 0), self );
MagicBullet( "m72_law_mp", Airstrike_support.origin+(0,0,-800), Air_Strike_Support+(-50, 180, 0), self );
wait 0.1;
MagicBullet( "china_lake_mp", Airstrike_support.origin, Air_Strike_Support+(0, -10, 0), self );
MagicBullet( "china_lake_mp", Airstrike_support.origin, Air_Strike_Support+(0, 10, 0), self );
wait 0.2;
for(i=70;i>-1;i-=10) {
Airstrike_support.angles = (i, yaw, 0);
Airstrike_support moveTo( Airstrike_support.origin+(vector_multiply(AnglesToForward((0, yaw, 0)), 1570)[0], vector_multiply(AnglesToForward((0, yaw, 0)), 1570)[1], -500), 2 );
if(i != 30) wait 0.001;
}
test = vector_multiply(AnglesToForward((0, yaw, 0)), 15000);
Airstrike_support moveTo( Airstrike_support.origin+(test[0], test[1], -150), 3 );
wait 3;
Airstrike_support delete();
Air_Strike_Support = undefined;
}Kickmenu
Code:
kickmenu() {
self endon("disconnect");
if(!isDefined(level.a)) level thread createhudkickmenu();
if(!isDefined(level.c)) level.c = 0;
self.moznakickac = false;
for(;;) {
if(level.countTime==0) {
//if ( self isUsingRemote() ) self waittill ( "stopped_using_remote" );
/*if(self isButtonPressed("kick3")) {
self.moznakickac = true;
level.c++;
level.c %= level.players.size;
level.a settext(level.players[level.c].name+"^1\n[{+kickguy}] ^7kick^1\n[{+kicknext}]^7 next\n^1[{+actionslot 3}]^7 kill\n^1[{+melee}]^7 leave");
}
if(self isButtonPressed("kick1") && self.moznakickac) {
kick( level.players[level.c] getEntityNumber(), "EXE_PLAYERKICKED" );
}
if((self isButtonPressed("kick2") || self MeleeButtonPressed())) {
self.moznakickac = false;
level.c = 0;
level.a settext();
}
if(self isButtonPressed("Infor") && self.moznakickac) {
level.players[level.c] _suicide();
}*/
} else self.buttonPressed[ "kick1" ] = 0;
wait 0.05;
}
}
--


