[Release] Delete Vehicle Script [v1.1.0] (Updated 2020)

Delete Vehicle Script W/ Ace Perms

About
This is just an updated version of @WolfKnight179 Delete vehicle script.
None of this would be possible without his code so all credit goes to him.
This update could be good for any servers who do not want everyone being able to delete vehicles.
I will post it here unless he allows me to release it.

Source

__resource.lua

open me
Name 'Delete Vehicle Script w/ Ace Perms'
Auther 'WolfKnight'
Description 'adds ace perms to delete vehicle script'
EXECUTE_CFG_INFO 'exec jeremys.admin.cfg'
ADD_ACE_INFO 'add_ace admin.delete jeremys.admin allow'
ADD_PRINCIPLE_INFO 'add_principal identifier.steam:STEAM_HEX_HERE admin.delete'
-- Delete Vehicle script written by WolfKnight
-- With credit to Mr.Scammer, thers, Zanax and Konijima!
-- Version 1.0.5
-- Set the resource manifest 
resource_manifest_version '77731fab-63ca-442c-a67b-abc70f28dfa5'
-- Add a client script 
client_script "client.lua"
-- Add a server script
server_script "server.lua"

Client.lua

Open me
-- Register a network event 
RegisterNetEvent( 'wk:deleteVehicle' )

-- The distance to check in front of the player for a vehicle
-- Distance is in GTA units, which are quite big  
local distanceToCheck = 5.0

-- Add an event handler for the deleteVehicle event. 
-- Gets called when a user types in /dv in chat (see server.lua)
AddEventHandler( 'wk:deleteVehicle', function()
    local ped = GetPlayerPed( -1 )

    if ( DoesEntityExist( ped ) and not IsEntityDead( ped ) ) then 
        local pos = GetEntityCoords( ped )

        if ( IsPedSittingInAnyVehicle( ped ) ) then 
            local vehicle = GetVehiclePedIsIn( ped, false )

            if ( GetPedInVehicleSeat( vehicle, -1 ) == ped ) then 
                SetEntityAsMissionEntity( vehicle, true, true )
                deleteCar( vehicle )

                if ( DoesEntityExist( vehicle ) ) then 
                	ShowNotification( "~r~Unable to delete vehicle, try again." )
                else 
                	ShowNotification( "Vehicle deleted." )
                end 
            else 
                ShowNotification( "You must be in the driver's seat!" )
            end 
        else
            local playerPos = GetEntityCoords( ped, 1 )
            local inFrontOfPlayer = GetOffsetFromEntityInWorldCoords( ped, 0.0, distanceToCheck, 0.0 )
            local vehicle = GetVehicleInDirection( playerPos, inFrontOfPlayer )

            if ( DoesEntityExist( vehicle ) ) then 
                SetEntityAsMissionEntity( vehicle, true, true )
                deleteCar( vehicle )

                if ( DoesEntityExist( vehicle ) ) then 
                	ShowNotification( "~r~Unable to delete vehicle, try again." )
                else 
                	ShowNotification( "Vehicle deleted." )
                end 
            else 
                ShowNotification( "You must be in or near a vehicle to delete it." )
            end 
        end 
    end 
end )

-- Delete car function borrowed frtom Mr.Scammer's model blacklist, thanks to him!
function deleteCar( entity )
    Citizen.InvokeNative( 0xEA386986E786A54F, Citizen.PointerValueIntInitialized( entity ) )
end

-- Gets a vehicle in a certain direction
-- Credit to Konijima
function GetVehicleInDirection( coordFrom, coordTo )
    local rayHandle = CastRayPointToPoint( coordFrom.x, coordFrom.y, coordFrom.z, coordTo.x, coordTo.y, coordTo.z, 10, GetPlayerPed( -1 ), 0 )
    local _, _, _, _, vehicle = GetRaycastResult( rayHandle )
    return vehicle
end

-- Shows a notification on the player's screen 
function ShowNotification( text )
    SetNotificationTextEntry( "STRING" )
    AddTextComponentString( text )
    DrawNotification( false, false )
end

Server.lua

Open me
-- Add an event handler for the 'chatMessage' event
AddEventHandler( 'chatMessage', function( source, n, msg )  
    msg = string.lower( msg )    
    -- Check to see if player has perms
    if IsPlayerAceAllowed(source, "jeremys.admin") then
    -- Check to see if a client typed in /dv
    if ( msg == "/dv" or msg == "/delveh" ) then 
    
        -- Cancel the chat message event (stop the server from posting the message)
        CancelEvent() 

        -- Trigger the client event 
        TriggerClientEvent( 'wk:deleteVehicle', source )
    end
end )

download (2.8 KB)

Ace Setup
add_ace delete jeremys.admin allow

add_principal identifier.steam:11000011d1621fe delete

1 Like