Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /*
- *
- * "VehicleSync.inc" - #1 Anti-sobiet car spawning
- * Created/Debugged most by Lorenc_
- *
- * Thanks to the members of www.irresistiblegaming.com and retards for trying me.
- *
- *
- */
- /* ** Stop Duplicating Code! ** */
- #if defined _vsync_included
- #endinput
- #endif
- #define _vsync_included
- /* ** Includes ** */
- #include < a_samp >
- #tryinclude < foreach >
- #define VEHICLE_DISTANCE (15.0)
- /* ** Variables ** */
- static stock
- Float: g_VehiclePosX [ MAX_VEHICLES ],
- Float: g_VehiclePosY [ MAX_VEHICLES ],
- Float: g_VehiclePosZ [ MAX_VEHICLES ],
- Float: LastSteepMove [ MAX_VEHICLES ],
- bool: VS_OPU,
- bool: VS_OVS,
- g_VehicleTick = -1,
- g_VehicleTickCount = 0,
- bool: g_VehicleTickBusy = false,
- Iterator:g_TotalVehicles<MAX_VEHICLES>
- ;
- /* ** Forwards ** */
- forward Vehicle_Sync( );
- /* ** Function Hooks ** */
- stock vs_AddStaticVehicle( model, Float: X, Float: Y, Float: Z, Float: Angle, color1, color2 )
- {
- new id = AddStaticVehicle( model, X, Y, Z, Angle, color1, color2 );
- if( id != INVALID_VEHICLE_ID ) {
- Iter_Add(g_TotalVehicles, id);
- g_VehiclePosX[ id ] = X;
- g_VehiclePosY[ id ] = Y;
- g_VehiclePosZ[ id ] = Z;
- }
- return id;
- }
- #define AddStaticVehicle vs_AddStaticVehicle
- stock vs_AddStaticVehicleEx( model, Float: X, Float: Y, Float: Z, Float: Angle, color1, color2, respawn_time )
- {
- new id = AddStaticVehicleEx( model, X, Y, Z, Angle, color1, color2, respawn_time );
- if( id != INVALID_VEHICLE_ID ) {
- Iter_Add(g_TotalVehicles, id);
- g_VehiclePosX[ id ] = X;
- g_VehiclePosY[ id ] = Y;
- g_VehiclePosZ[ id ] = Z;
- }
- return id;
- }
- stock vs_CreateVehicle( model, Float: X, Float: Y, Float: Z, Float: Angle, color1, color2, respawn_time )
- {
- new id = CreateVehicle( model, X, Y, Z, Angle, color1, color2, respawn_time );
- if( id != INVALID_VEHICLE_ID ) {
- Iter_Add(g_TotalVehicles, id);
- g_VehiclePosX[ id ] = X;
- g_VehiclePosY[ id ] = Y;
- g_VehiclePosZ[ id ] = Z;
- }
- return id;
- }
- stock vs_SetVehiclePos( vehicleid, Float: X, Float: Y, Float: Z )
- {
- if( vehicleid != INVALID_VEHICLE_ID )
- {
- g_VehiclePosX[ vehicleid ] = X;
- g_VehiclePosY[ vehicleid ] = Y;
- g_VehiclePosZ[ vehicleid ] = Z;
- }
- return SetVehiclePos( vehicleid, X, Y, Z );
- }
- stock vs_DestroyVehicle( vehicleid )
- {
- if( vehicleid != INVALID_VEHICLE_ID )
- Iter_Remove(g_TotalVehicles, vehicleid);
- return DestroyVehicle( vehicleid );
- }
- #define SetVehiclePos vs_SetVehiclePos
- #define AddStaticVehicleEx vs_AddStaticVehicleEx
- #define AddStaticVehicle vs_AddStaticVehicle
- #define CreateVehicle vs_CreateVehicle
- #define DestroyVehicle vs_DestroyVehicle
- /* ** Continue ** */
- public Vehicle_Sync( )
- {
- foreach(new vehicleid : g_TotalVehicles)
- {
- if( GetVehicleModel( vehicleid ) != 0 )
- {
- new Float: fDistance = GetVehicleDistanceFromPoint( vehicleid, g_VehiclePosX[ vehicleid ], g_VehiclePosY[ vehicleid ], g_VehiclePosZ[ vehicleid ] );
- new Float: weirdmovement = fDistance - LastSteepMove[ vehicleid ];
- /*new Float: X, Float: Y, Float: Z; GetVehicleVelocity( vehicleid, X, Y, Z );
- if( X != 0.0 && Y != 0.0 && Z != 0.0 && fDistance < VEHICLE_DISTANCE )
- {
- printf( "[VSDEBUG] VELOCITY DETECTED ON %d | VX %f | VY %f | VZ %f", vehicleid, X, Y, Z );
- GetVehiclePos( vehicleid, g_VehiclePosX[ vehicleid ], g_VehiclePosY[ vehicleid ], g_VehiclePosZ[ vehicleid ] );
- continue;
- }*/
- if( weirdmovement > -4.0 && weirdmovement != 0.0 && weirdmovement < 4.0 && fDistance < VEHICLE_DISTANCE ) // This should help prevent the detection from steep hills.
- {
- //printf( "[VSDEBUG] STEEP HILL/PUSH DETECTED ON %d | DIS - LAST_DIS = %f", vehicleid, weirdmovement );
- GetVehiclePos( vehicleid, g_VehiclePosX[ vehicleid ], g_VehiclePosY[ vehicleid ], g_VehiclePosZ[ vehicleid ] );
- continue;
- }
- if( fDistance >= VEHICLE_DISTANCE ) {
- if( ( gettime( ) - g_VehicleTick ) > 4 && !g_VehicleTickBusy )
- {
- if( g_VehicleTickCount++ > 5 ) {
- print( "[FUCKING CAR SPAWNER] 5 vehicles spawned thus respawning all vehicles incase of an idiot." );
- g_VehicleTickBusy = true; // Takes time to go through a whole loop... Could be removed I guess.
- for( new i; i < MAX_VEHICLES; i++ ) {
- foreach(new p : Player) {
- if( GetVehicleModel( i ) != 0 && GetPlayerVehicleID( p ) != i ) {
- SetVehicleToRespawn( i );
- }
- }
- }
- g_VehicleTickBusy = false;
- g_VehicleTickCount = 0;
- g_VehicleTick = 0;
- break;
- }
- }
- else g_VehicleTick = gettime( ), g_VehicleTickCount = 0;
- SetVehicleToRespawn( vehicleid );
- }
- LastSteepMove[ vehicleid ] = fDistance;
- }
- }
- return 1;
- }
- public OnVehicleSpawn( vehicleid )
- {
- GetVehiclePos( vehicleid, g_VehiclePosX[ vehicleid ], g_VehiclePosY[ vehicleid ], g_VehiclePosZ[ vehicleid ] );
- return ( VS_OVS ) ? CallLocalFunction( "VS_OnVehicleSpawn", "d", vehicleid ) : 1;
- }
- #if defined _ALS_OnVehicleSpawn
- #undef OnVehicleSpawn
- #else
- #define _ALS_OnVehicleSpawn
- #endif
- #define OnVehicleSpawn VS_OnVehicleSpawn
- forward VS_OnVehicleSpawn( vehicleid );
- public OnPlayerUpdate( playerid )
- {
- if( IsPlayerInAnyVehicle( playerid ) )
- {
- new vehicleid = GetPlayerVehicleID( playerid );
- GetVehiclePos( vehicleid, g_VehiclePosX[ vehicleid ], g_VehiclePosY[ vehicleid ], g_VehiclePosZ[ vehicleid ] );
- }
- return ( VS_OPU ) ? CallLocalFunction( "VS_OnPlayerUpdate", "d", playerid ) : 1;
- }
- #if defined _ALS_OnPlayerUpdate
- #undef OnPlayerUpdate
- #else
- #define _ALS_OnPlayerUpdate
- #endif
- #define OnPlayerUpdate VS_OnPlayerUpdate
- forward VS_OnPlayerUpdate( playerid );
- #if !defined FILTERSCRIPT
- public OnGameModeInit()
- {
- SetTimer( "Vehicle_Sync", 200, true );
- return ( funcidx( "VS_OnGameModeInit" ) != -1 ) ? CallLocalFunction( "VS_OnGameModeInit", "" ) : 1;
- }
- #if defined _ALS_OnGameModeInit
- #undef OnGameModeInit
- #else
- #define _ALS_OnGameModeInit
- #endif
- #define OnGameModeInit VS_OnGameModeInit
- forward VS_OnGameModeInit();
- #else
- public OnFilterScriptInit()
- {
- SetTimer( "Vehicle_Sync", 200, true );
- VS_OPU = ( funcidx( "VS_OnPlayerUpdate" ) != -1 );
- VS_OVS = ( funcidx( "VS_OnVehicleSpawn" ) != -1 );
- return ( funcidx( "VS_OnFilterScriptInit" ) != -1 ) ? CallLocalFunction( "VS_OnFilterScriptInit", "" ) : 1;
- }
- #if defined _ALS_OnFilterScriptInit
- #undef OnFilterScriptInit
- #else
- #define _ALS_OnFilterScriptInit
- #endif
- #define OnFilterScriptInit VS_OnFilterScriptInit
- forward VS_OnFilterScriptInit();
- #endif
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement