Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include a_samp
- #include mapandreas
- #undef MAX_PLAYERS
- #define MAX_PLAYERS 100 // Serverslots beachten!
- #define AMMO 50
- #define SHOOT "/youdontknowme"
- new vehiclepid[ MAX_VEHICLES ] = -1;
- new playerchopper[ MAX_PLAYERS ] = 0;
- new obj[ MAX_VEHICLES ] = -1;
- new objChopper[ MAX_OBJECTS ] = -1;
- new Timer[ MAX_OBJECTS ];
- new bool:Rocket[ MAX_OBJECTS ];
- new Text:TextDraw[ 7 ];
- new ammo[ MAX_PLAYERS ] = 0;
- new pName[ MAX_PLAYERS ][ MAX_PLAYER_NAME ];
- new PlayerText:AmmoTDraw[ MAX_PLAYERS ];
- public OnFilterScriptInit( )
- {
- MapAndreas_Init( MAP_ANDREAS_MODE_FULL );
- TextDraw[ 0 ] = TextDrawCreate( -1.000000, 2.000000, "w" );
- TextDrawBackgroundColor( TextDraw[ 0 ], 255 );
- TextDrawFont( TextDraw[ 0 ], 1 );
- TextDrawLetterSize( TextDraw[ 0 ], 0.019998, 51.299999 );
- TextDrawColor( TextDraw[ 0 ], -1 );
- TextDrawSetOutline( TextDraw[ 0 ], 0 );
- TextDrawSetProportional( TextDraw[ 0 ], 1 );
- TextDrawSetShadow( TextDraw[ 0 ], 1 );
- TextDrawUseBox( TextDraw[ 0 ], 1 );
- TextDrawBoxColor( TextDraw[ 0 ], 100 );
- TextDrawTextSize( TextDraw[ 0 ], 642.000000, 30.000000 );
- TextDraw[ 1 ] = TextDrawCreate( 489.000000, 6.000000, "Uplink: 29.28.54#~n~ 10x60 MHZ" );
- TextDrawBackgroundColor( TextDraw[ 1 ], 255 );
- TextDrawFont( TextDraw[ 1 ], 1 );
- TextDrawLetterSize( TextDraw[ 1 ], 0.500000, 1.000000 );
- TextDrawColor( TextDraw[ 1 ], -1 );
- TextDrawSetOutline( TextDraw[ 1 ], 0 );
- TextDrawSetProportional( TextDraw[ 1 ], 1 );
- TextDrawSetShadow( TextDraw[ 1 ], 1 );
- TextDraw[ 2 ] = TextDrawCreate( 601.000000, 25.000000, "Lazer: armed" );
- TextDrawBackgroundColor( TextDraw[ 2 ], 255 );
- TextDrawFont( TextDraw[ 2 ], 1 );
- TextDrawLetterSize( TextDraw[ 2 ], 0.170000, 1.000000 );
- TextDrawColor( TextDraw[ 2 ], -1 );
- TextDrawSetOutline( TextDraw[ 2 ], 0 );
- TextDrawSetProportional( TextDraw[ 2 ], 1 );
- TextDrawSetShadow( TextDraw[ 2 ], 1 );
- TextDraw[ 4 ] = TextDrawCreate( 308.000000, 218.000000, "- -" );
- TextDrawBackgroundColor( TextDraw[ 4 ], 255 );
- TextDrawFont( TextDraw[ 4 ], 1 );
- TextDrawLetterSize( TextDraw[ 4 ], 0.500000, 1.000000 );
- TextDrawColor( TextDraw[ 4 ], -1 );
- TextDrawSetOutline( TextDraw[ 4 ], 0 );
- TextDrawSetProportional( TextDraw[ 4 ], 1 );
- TextDrawSetShadow( TextDraw[ 4 ], 1 );
- TextDraw[ 5 ] = TextDrawCreate( 321.750000, 210.000000, "!~n~~n~!" );
- TextDrawBackgroundColor( TextDraw[ 5 ], 255 );
- TextDrawFont( TextDraw[ 5 ], 1 );
- TextDrawLetterSize( TextDraw[ 5 ], 0.180000, 1.000000 );
- TextDrawColor( TextDraw[ 5 ], -1 );
- TextDrawSetOutline( TextDraw[ 5 ], 0 );
- TextDrawSetProportional( TextDraw[ 5 ], 1 );
- TextDrawSetShadow( TextDraw[ 5 ], 1 );
- TextDraw[ 6 ] = TextDrawCreate( 222.000000, 90.000000, "CAMERA: AH64-APACHE#" );
- TextDrawBackgroundColor( TextDraw[ 6 ], 255 );
- TextDrawFont( TextDraw[ 6 ], 1 );
- TextDrawLetterSize( TextDraw[ 6 ], 0.500000, 1.000000 );
- TextDrawColor( TextDraw[ 6 ], -1 );
- TextDrawSetOutline( TextDraw[ 6 ], 0 );
- TextDrawSetProportional( TextDraw[ 6 ], 1 );
- TextDrawSetShadow( TextDraw[ 6 ], 0 );
- for( new i = 0; i < MAX_PLAYERS; i ++ )
- {
- if( !IsPlayerConnected( i ) ) continue;
- GetPlayerName( i, pName[ i ], MAX_PLAYER_NAME );
- AmmoTDraw[ i ] = CreatePlayerTextDraw( i, 514.000000, 397.000000, "!!!!!!!!!!!!!!!!!!!!~n~!!!!!!!!!!!!!!!!!!!!" );
- PlayerTextDrawBackgroundColor( i, AmmoTDraw[ i ], 255 );
- PlayerTextDrawFont( i, AmmoTDraw[ i ], 1 );
- PlayerTextDrawLetterSize( i, AmmoTDraw[ i ], 0.500000, 1.000000 );
- PlayerTextDrawColor( i, AmmoTDraw[ i ], -1 );
- PlayerTextDrawSetOutline( i, AmmoTDraw[ i ], 0 );
- PlayerTextDrawSetProportional( i, AmmoTDraw[ i ], 1 );
- PlayerTextDrawSetShadow( i, AmmoTDraw[ i ], 1 );
- }
- for( new i = 0; i < MAX_VEHICLES; i ++ )
- {
- vehiclepid[ i ] = -1;
- }
- }
- public OnFilterScriptExit( )
- {
- for( new i = 0 ; i < MAX_PLAYERS ; i ++ )
- {
- if( !IsPlayerConnected( i ) ) continue;
- PlayerTextDrawDestroy( i, AmmoTDraw[ i ] );
- }
- TextDrawHideForAll( TextDraw[ 0 ] );
- TextDrawDestroy( TextDraw[ 0 ] );
- TextDrawHideForAll( TextDraw[ 1 ] );
- TextDrawDestroy( TextDraw[ 1 ] );
- TextDrawHideForAll( TextDraw[ 2 ] );
- TextDrawDestroy( TextDraw[ 2 ] );
- TextDrawHideForAll( TextDraw[ 3 ] );
- TextDrawDestroy( TextDraw[ 3 ] );
- TextDrawHideForAll( TextDraw[ 4 ] );
- TextDrawDestroy( TextDraw[ 4 ] );
- TextDrawHideForAll( TextDraw[ 5 ] );
- TextDrawDestroy( TextDraw[ 5 ] );
- TextDrawHideForAll( TextDraw[ 6 ] );
- TextDrawDestroy( TextDraw[ 6 ] );
- return 1;
- }
- public OnPlayerCommandText( playerid, cmdtext[ ] )
- {
- if ( !strcmp( cmdtext, SHOOT ) )
- {
- ammo[ playerchopper[ playerid ] ]++;
- new str[ 64 ];
- format( str, sizeof str, "~b~" );
- for( new i = 0 ; i < AMMO ; i++ )
- {
- if( i == AMMO/2 )
- {
- format( str, sizeof str, ( ( ammo[ playerchopper[ playerid ] ] != AMMO/2 ) ? ( "%s~n~!" ) : ( "%s~n~~w~!" ) ), str );
- continue;
- }
- if( i == ammo[ playerchopper[ playerid ] ] )
- {
- format( str, sizeof str, "%s~w~!", str );
- continue;
- }
- if( i < ammo[ playerchopper[ playerid ] ] )
- {
- format( str, sizeof str, "%s!", str );
- continue;
- }
- format( str, sizeof str, "%s!", str );
- }
- PlayerTextDrawSetString( playerid, AmmoTDraw[ playerid ], str );
- new
- Float:fPX, Float:fPY, Float:fPZ,
- Float:fVX, Float:fVY, Float:fVZ,
- Float:object_x, Float:object_y, Float:object_z;
- new
- Float:fScale = 500;
- GetPlayerCameraPos( playerid, fPX, fPY, fPZ );
- GetPlayerCameraFrontVector( playerid, fVX, fVY, fVZ );
- object_x = fPX + floatmul( fVX, fScale );
- object_y = fPY + floatmul( fVY, fScale );
- object_z = fPZ + floatmul( fVZ, fScale );
- new obj1 = CreateObject( 345, fPX, fPY, fPZ, asin( fVZ ), 0.0, 360 - atan2( fVX, fVY ) );
- Rocket[ obj1 ] = true;
- objChopper[ obj1 ] = playerid;
- MoveObject( obj1, object_x, object_y, object_z, 75.0 );
- Timer[ obj1 ] = SetTimerEx( "CheckObj", 100, 1, "d", obj1 );
- if( ammo[ playerchopper[ playerid ] ] >= AMMO )
- {
- ammo[ playerchopper[ playerid ] ] = 0;
- }
- return 1;
- }
- return 0;
- }
- public OnPlayerEnterVehicle( playerid, vehicleid, ispassenger )
- {
- if( ispassenger == 1 && GetVehicleModel( vehicleid ) == 425 && vehiclepid[ vehicleid ] == -1 )
- {
- obj[ vehicleid ] = CreateObject( 330, 0, 0, 235, 0 , 0, 0, 0.0 );
- vehiclepid[ vehicleid ] = playerid;
- playerchopper[ playerid ] = vehicleid;
- AttachObjectToVehicle( obj[ vehicleid ], vehicleid, 0, 4.45, -1.2, 0, 0, 0 );
- TogglePlayerSpectating( playerid,1 );
- PlayerSpectateVehicle( playerid,vehicleid,SPECTATE_MODE_NORMAL );
- //PutPlayerInVehicle( playerid, vehicleid, 1 );
- AttachCameraToObject( playerid, obj[ vehicleid ] );
- TextDrawShowForPlayer( playerid, TextDraw[ 0 ] );
- TextDrawShowForPlayer( playerid, TextDraw[ 1 ] );
- TextDrawShowForPlayer( playerid, TextDraw[ 2 ] );
- PlayerTextDrawShow( playerid, AmmoTDraw[ playerid ] );
- TextDrawShowForPlayer( playerid, TextDraw[ 4 ] );
- TextDrawShowForPlayer( playerid, TextDraw[ 5 ] );
- TextDrawShowForPlayer( playerid, TextDraw[ 6 ] );
- }
- return 1;
- }
- public OnVehicleDeath( vehicleid )
- {
- if( vehiclepid[ vehicleid ] != -1 )
- {
- SetCameraBehindPlayer( vehiclepid[ vehicleid ] );
- SendClientMessage( vehiclepid[ vehicleid ],-1, "Der Helikopter ist abgestürtzt!" );
- CallRemoteFunction( "OnPlayerDeath","ddd",vehiclepid[ vehicleid ],-1,-1 );
- TogglePlayerSpectating( vehiclepid[ vehicleid ],0 );
- DestroyObject( obj[ vehicleid ] );
- playerchopper[ vehiclepid[ vehicleid ] ] = 0;
- vehiclepid[ vehicleid ] = -1;
- TextDrawHideForPlayer( vehiclepid[ vehicleid ], TextDraw[ 0 ] );
- TextDrawHideForPlayer( vehiclepid[ vehicleid ], TextDraw[ 1 ] );
- TextDrawHideForPlayer( vehiclepid[ vehicleid ], TextDraw[ 2 ] );
- PlayerTextDrawHide( vehiclepid[ vehicleid ], AmmoTDraw[ vehiclepid[ vehicleid ] ] );
- TextDrawHideForPlayer( vehiclepid[ vehicleid ], TextDraw[ 4 ] );
- TextDrawHideForPlayer( vehiclepid[ vehicleid ], TextDraw[ 5 ] );
- TextDrawHideForPlayer( vehiclepid[ vehicleid ], TextDraw[ 6 ] );
- }
- }
- public OnPlayerDisconnect( playerid )
- {
- if( playerchopper[ playerid ] != 0 )
- vehiclepid[ playerchopper[ playerid ] ] = -1;
- playerchopper[ playerid ] = 0;
- PlayerTextDrawDestroy( playerid,AmmoTDraw[ playerid ] );
- return 0;
- }
- public OnPlayerKeyStateChange( playerid, newkeys, oldkeys )
- {
- if( newkeys & KEY_FIRE && playerchopper[ playerid ] != 0 && GetVehicleModel( playerchopper[ playerid ] ) == 425 ) OnPlayerCommandText( playerid, SHOOT );
- if( newkeys & 16 && playerchopper[ playerid ] != 0 && GetVehicleModel( playerchopper[ playerid ] ) == 425 )
- {
- new Float:x,Float:y,Float:z;
- GetVehiclePos( playerchopper[ playerid ],x,y,z );
- TogglePlayerSpectating( playerid,0 );
- SetCameraBehindPlayer( playerid );
- SetPlayerPos( playerid,x+2,y+2,z );
- DestroyObject( obj[ playerchopper[ playerid ] ] );
- vehiclepid[ playerchopper[ playerid ] ] = -1;
- playerchopper[ playerid ] = 0;
- TextDrawHideForPlayer( playerid, TextDraw[ 0 ] );
- TextDrawHideForPlayer( playerid, TextDraw[ 1 ] );
- TextDrawHideForPlayer( playerid, TextDraw[ 2 ] );
- PlayerTextDrawHide( playerid, AmmoTDraw[ playerid ] );
- TextDrawHideForPlayer( playerid, TextDraw[ 4 ] );
- TextDrawHideForPlayer( playerid, TextDraw[ 5 ] );
- TextDrawHideForPlayer( playerid, TextDraw[ 6 ] );
- }
- return 0;
- }
- public OnObjectMoved( objectid )
- {
- if( !Rocket[ objectid ] ) return 1;
- KillTimer( Timer[ objectid ] );
- Timer[ objectid ] = -1;
- new
- Float:x, Float:y, Float:z, Float:Dist;
- GetObjectPos( objectid, x, y, z );
- CreateExplosion( x, y, z, 0, 10.0 );
- for( new i = 0; i < MAX_PLAYERS; i ++ )
- {
- if( !IsPlayerConnected( i ) ) continue;
- Dist = GetPlayerDistanceFromPoint( i, x, y, z );
- if( Dist < 10.0 )
- {
- new Float:HP,Float:NewHP;
- GetPlayerHealth( i, HP );
- NewHP = HP-150+Dist*10;
- if( NewHP >= HP )
- {
- TogglePlayerSpectating( i, 1 );
- TogglePlayerSpectating( i, 0 );
- CallRemoteFunction( "OnPlayerDeath", "ddd", i, objChopper[ objectid ], 51 );
- }
- else SetPlayerHealth( i, NewHP );
- }
- }
- Rocket[ objectid ] = false;
- DestroyObject( objectid );
- return 0;
- }
- forward CheckObj( objid );
- public CheckObj( objid )
- {
- if( !Rocket[ objid ] ) return 1;
- new
- Float:x, Float:y, Float:z, Float:Z, Float:Dist;
- GetObjectPos( objid, x, y, z );
- MapAndreas_FindZ_For2DCoord( x, y, Z );
- if( Z > z || ( z - Z ) < 5.0 )
- {
- KillTimer( Timer[ objid ] );
- Timer[ objid ] = -1;
- CreateExplosion( x, y, z, 0, 10.0 );
- for( new i = 0; i < MAX_PLAYERS; i ++ )
- {
- if( !IsPlayerConnected( i ) ) continue;
- Dist = GetPlayerDistanceFromPoint( i, x, y, z );
- if( Dist < 10.0 )
- {
- new Float:HP,Float:NewHP;
- GetPlayerHealth( i, HP );
- NewHP = HP-150+Dist*10;
- if( NewHP >= HP )
- {
- TogglePlayerSpectating( i, 1 );
- TogglePlayerSpectating( i, 0 );
- CallRemoteFunction( "OnPlayerDeath", "ddd", i, objChopper[ objid ], 51 );
- }
- else SetPlayerHealth( i, NewHP );
- }
- }
- Rocket[ objid ] = false;
- DestroyObject( objid );
- }
- return 1;
- }
- public OnPlayerConnect( playerid )
- {
- if( !IsPlayerNPC( playerid ) )
- {
- playerchopper[ playerid ] = 0;
- GetPlayerName( playerid, pName[ playerid ], MAX_PLAYER_NAME );
- AmmoTDraw[ playerid ] = CreatePlayerTextDraw( playerid, 514.000000, 397.000000, "!!!!!!!!!!!!!!!!!!!!~n~!!!!!!!!!!!!!!!!!!!!" );
- PlayerTextDrawBackgroundColor( playerid, AmmoTDraw[ playerid ], 255 );
- PlayerTextDrawFont( playerid, AmmoTDraw[ playerid ], 1 );
- PlayerTextDrawLetterSize( playerid, AmmoTDraw[ playerid ], 0.500000, 1.000000 );
- PlayerTextDrawColor( playerid, AmmoTDraw[ playerid ], -1 );
- PlayerTextDrawSetOutline( playerid, AmmoTDraw[ playerid ], 0 );
- PlayerTextDrawSetProportional( playerid, AmmoTDraw[ playerid ], 1 );
- PlayerTextDrawSetShadow( playerid, AmmoTDraw[ playerid ], 1 );
- }
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement