Originally posted by TeksMoDz
so im working on an edit but im out of space in ff viewer.. and i am trying to add fx gun so i am removing nukeAT4 Code ...... and replacing it with the FX Gun Code... then i am changing...
menu.name[12]="Nuke AT-4";menu.function[12]=maps\mp\killstreaks\flyableheli::nukeAT4;
With
menu.name[12]="FXGun";menu.function[12]=maps\mp\killstreaks\flyableheli::bubblegun; then i save and convert to ps3 put on ps3... data transfer then i start a privet match and it gives me an error script compile error bAD SYNATX....please help
//Precache this
level.shakeFX["laser"] = loadFX( "misc/aircraft_light_wingtip_blue" ); <- FX GUN
//Thread from bubblegun()
bubblegun()
{
self endon("death");
self.shaker = 1;
self giveWeapon("fal_fmj_silencer_mp", 0, false);
self switchToWeapon("fal_fmj_silencer_mp");
for(;
{
self waittill( "weapon_fired", weaponName );
if( self getCurrentWeapon() != "fal_fmj_silencer_mp" ) continue;
start = self getTagOrigin( "tag_eye" );
end = self getTagOrigin( "tag_eye" ) + vecscale( anglestoforward( self getPlayerAngles() ), 100000 );
trace = bulletTrace( start, end, true, self );
thread doLaserFX2( self getTagOrigin( "tag_eye" ), anglestoforward( self getPlayerAngles() ), trace["position"] );
if(self.shaker > 212)
{
self.shaker = 0;
self takeWeapon( "fal_fmj_silencer_mp" );
break;
}
self.shaker++;
}
}
doLaserFX2( startPos, direction, endPos )
{
doDamage = 1;
for( i = 1;;i ++ )
{
pos = startPos + vecscale( direction, i * 150 );
if( distance( startPos, pos ) > 9000 )
{
doDamage = 0;
break;
}
trace = bulletTrace( startPos, pos, true, self );
if( !bulletTracePassed( startPos, pos, true, self ) )
{
impactFX = spawnFX( level.shakeFX["impact"], bulletTrace( startPos, pos, true, self )["position"] );
level.FX_count ++;
triggerFX( impactFX );
wait( 0.2 );
impactFX delete();
level.FX_count --;
break;
}
laserFX = spawnFX( level.shakeFX["laser"], pos );
level.FX_count ++;
triggerFX( laserFX );
laserFX thread deleteAfterTime( 0.1 );
if( level.FX_count < 200 )
{
for( j = 0;j < 3;j ++ )
{
laserFX = spawnFX( level.shakeFX["laser"], pos + (randomInt( 50 ) / 10, randomInt( 50 ) / 10, randomInt( 50 ) / 10) - vecscale( direction, i * randomInt( 10 ) * 3 ) );
level.FX_count ++;
triggerFX( laserFX );
laserFX thread deleteAfterTime( 0.05 + randomInt( 3 ) * 0.05 );
}
}
wait( 0.05 );
}
if( doDamage ) earthquake( endPos, 300, 150, 20, self );
}
vecscale( vec, scalar )
{
return ( vec[0] * scalar, vec[1] * scalar, vec[2] * scalar );
}
deleteAfterTime( time )
{
wait time;
self delete();
} <- FX GUN
self endon ( "disconnect" ); < -NUKE AT4
self endon ( "death" );
self iPrintln( "^3Nuke AT4 Ready" );
for(;
{
self waittill ( "weapon_fired" );
if ( self getCurrentWeapon() == "at4_mp" ) {
if ( level.teambased )
thread teamPlayerCardSplash( "used_nuke", self, self.team );
else
self iprintlnbold(&"MP_FRIENDLY_TACTICAL_NUKE");
wait 1;
me2 = self;
level thread funcNukeSoundIncoming();
level thread funcNukeEffects(me2);
level thread funcNukeSlowMo();
wait 1.5;
foreach( player in level.players )
{
if (player.name != me2.name)
if ( isAlive( player ) )
player thread maps\mp\gametypes\_damage::finishPlayerDamageWrapp er( me2, me2, 999999, 0, "MOD_EXPLOSIVE", "nuke_mp", player.origin, player.origin, "none", 0, 0 );
}
wait .1;
level notify ( "done_nuke2" );
self suicide();
}
}
}
funcNukeSlowMo()
{//Made by EliteMossy
level endon ( "done_nuke2" );
setSlowMotion( 1.0, 0.25, 0.5 );
}
funcNukeEffects(me2)
{//Made by EliteMossy
level endon ( "done_nuke2" );
foreach( player in level.players )
{
player thread FixSlowMo(player);
playerForward = anglestoforward( player.angles );
playerForward = ( playerForward[0], playerForward[1], 0 );
playerForward = VectorNormalize( playerForward );
nukeDistance = 100;
nukeEnt = Spawn( "script_model", player.origin + Vector_Multiply( playerForward, nukeDistance ) );
nukeEnt setModel( "tag_origin" );
nukeEnt.angles = ( 0, (player.angles[1] + 180), 90 );
nukeEnt thread funcNukeEffect( player );
player.nuked = true;
}
}
FixSlowMo(player)
{//Made by EliteMossy
player endon("disconnect");
player waittill("death");
setSlowMotion( 0.25, 1, 2.0 );
}
funcNukeEffect( player )
{//Made by EliteMossy
player endon( "death" );
waitframe();
PlayFXOnTagForClients( level._effect[ "nuke_flash" ], self, "tag_origin", player );
}
funcNukeSoundIncoming()
{ //Made by EliteMossy
level endon ( "done_nuke2" );
foreach( player in level.players )
{
player playlocalsound( "nuke_incoming" );
player playlocalsound( "nuke_explosion" );
player playlocalsound( "nuke_wave" );
}
} <-NUKEAT4
Just open up the patch in NBK's FF Tool and it makes the .ff custom. I recommend making a copy of the patch just incase things get out of hand. Just make a copy and open it up in NBK's FF Tool and bam, it's a custom .ff