createBlip ( -1657.838, 1210.947, 6.5, 55, 2, 0, 0, 0, 255, 0, 99999.0, getRootElement( ) )
local vehDB = dbConnect( 'sqlite', 'Vehicles System - Database.db' )
dbExec( vehDB, ' CREATE TABLE IF NOT EXISTS `VehiclesSystem_Players` (pSerial, vehID, vehName, vehPrice, Subscription) ' )
--dbExec( vehDB, ' DROP TABLE `VehiclesSystem_Players` ' )
vehPers = { };
vehview = { };
function refreshMyList( )
local check = dbQuery( vehDB, ' SELECT * FROM `VehiclesSystem_Players` WHERE pSerial=?',tostring(getPlayerSerial(source)) );
local results = dbPoll( check, -1 )
if ( type( results ) == 'table' and #results == 0 or not results ) then triggerClientEvent( root, 'VehiclesSystem;emptyMyList', root ) return end
triggerClientEvent( root, 'VehiclesSystem;putMyVehicles', root, results )
end
addEvent( 'refreshMyListS', true ) addEventHandler( 'refreshMyListS', root, refreshMyList )
function viewVehiclex( ID, x, y, z, state )
if ( state == 'close' ) then
if ( isElement( vehview[source] ) ) then destroyElement( vehview[source] ) end
elseif ( state == 'view' ) then
if ( isElement( vehview[source] ) ) then if ( getElementModel( vehview[source] ) ) == ID then return end destroyElement( vehview[source] ) end
vehview[source] = createVehicle( ID, x, y, z + 0.2, 0, 0, 10 )
setElementDimension( vehview[source], getElementData( root, 'vehiclesSystem;dimension' ) or 1 )
setElementDimension( source, getElementData( root, 'vehiclesSystem;dimension' ) or 1 )
setElementData( root, 'vehiclesSystem;dimension', getElementData( root, 'vehiclesSystem;dimension' ) + 1 or 1 )
end
end
addEvent( 'VehiclesSystem;createViewVehicle', true )
addEventHandler( 'VehiclesSystem;createViewVehicle', root, viewVehiclex )
addEvent( 'VehiclesSystem;destroyPersonalVehicle', true )
addEventHandler( 'VehiclesSystem;destroyPersonalVehicle', root,
function( )
if ( isElement( vehPers[source] ) ) then destroyElement( vehPers[source] ) end
end )
addEvent( 'VehiclesSystem;createRentVehicle', true )
addEventHandler( 'VehiclesSystem;createRentVehicle', root,
function( ID, vehName )
if ( isElement( vehPers[source] ) ) then destroyElement( vehPers[source] ) end
vehPers[source] = createVehicle( ID, -1633.87439, 1208.09277, 7.03906 + 1, -0, 0, 224.5189666748 )
fadeCamera( source, false )
setTimer( fadeCamera, 1500, 1, source, true )
takePlayerMoney( source, 10000 )
setElementDimension( vehPers[source], 0 )
setElementDimension( source, 0 )
setTimer( warpPedIntoVehicle, 1500, 1, source, vehPers[source] )
setTimer( destroyElement, 300000, 1, vehPers[source] )
setTimer( function( )
outputChatBox( '#FFFFFFWarning, Your subscription has been ended #FF0000!', source, 255, 255, 255, true )
end, 300000, 1 )
triggerClientEvent( source, 'VehiclesSystem;gridListAddRent', source, ID, vehName )
end )
addEvent( 'VehiclesSystem;lock/unlockPersonalVehicle', true )
addEventHandler( 'VehiclesSystem;lock/unlockPersonalVehicle', root,
function( )
if ( not isElement( vehPers[source] ) ) then outputChatBox( '#FFFFFFError, You don\'t have vehicle #FF0000!', source, 255, 255, 255, true ) return end
if ( isVehicleLocked( vehPers[source] ) == true ) then
setVehicleLocked( vehPers[source], false ) outputChatBox( '#FFFFFFSuccess, Your vehicle has been unlocked #2BFF00!', source, 255, 255, 255, true )
else
setVehicleLocked( vehPers[source], true ) outputChatBox( '#FFFFFFSuccess, Your vehicle has been locked #2BFF00!', source, 255, 255, 255, true )
end
end )
addEvent( 'VehiclesSystem;off/onPersonalVehicle', true )
addEventHandler( 'VehiclesSystem;off/onPersonalVehicle', root,
function( )
if ( not isElement( vehPers[source] ) ) then outputChatBox( '#FFFFFFError, You don\'t have vehicle #FF0000!', source, 255, 255, 255, true ) return end
if ( getVehicleEngineState( vehPers[source] ) == true ) then
setVehicleEngineState( vehPers[source], false ) outputChatBox( '#FFFFFFSuccess, Your vehicle has been turned off #2BFF00!', source, 255, 255, 255, true )
else
setVehicleEngineState( vehPers[source], true ) outputChatBox( '#FFFFFFSuccess, Your vehicle has been turned on #2BFF00!', source, 255, 255, 255, true )
end
end )
addEvent( 'VehiclesSystem;off/onLightsPersonalVehicle', true )
addEventHandler( 'VehiclesSystem;off/onLightsPersonalVehicle', root,
function( )
if ( not isElement( vehPers[source] ) ) then outputChatBox( '#FFFFFFError, You don\'t have vehicle #FF0000!', source, 255, 255, 255, true ) return end
if ( getVehicleLightState( vehPers[source], 0 ) == 0 and getVehicleLightState( vehPers[source], 1 ) == 0 ) then
setVehicleLightState( vehPers[source], 0, 1 ) setVehicleLightState( vehPers[source], 1, 1 ) setVehicleLightState( vehPers[source], 2, 1 ) setVehicleLightState( vehPers[source], 3, 1 ) outputChatBox( '#2BFF00*#FFFF00 Vehicles System #2BFF00 : #FFFFFFSuccess, Your vehicle lights turned off #2BFF00!', source, 255, 255, 255, true )
else
setVehicleLightState( vehPers[source], 0, 0 ) setVehicleLightState( vehPers[source], 1, 0 ) setVehicleLightState( vehPers[source], 2, 0 ) setVehicleLightState( vehPers[source], 3, 0 ) outputChatBox( '#2BFF00*#FFFF00 Vehicles System #2BFF00 : #FFFFFFSuccess, Your vehicle lights turned on #2BFF00!', source, 255, 255, 255, true )
end
end )
addEvent( 'VehiclesSystem;sellMyPersonalVehicle', true )
addEventHandler( 'VehiclesSystem;sellMyPersonalVehicle', root,
function( ID, price )
local check = dbQuery( vehDB, ' SELECT * FROM `VehiclesSystem_Players` WHERE pSerial = ? AND vehID = ? ', getPlayerSerial( source ), ID )
local results = dbPoll( check, -1 )
if ( type( results ) == 'table' and #results == 0 or not results ) then outputChatBox( '#FFFFFFError, This vehicle is not permanently for you, You cannot sell it #FF0000!', source, 255, 255, 255, true ) return end
if ( isElement( vehPers[source] ) ) then destroyElement( vehPers[source] ) end
dbExec( vehDB, ' DELETE FROM `VehiclesSystem_Players` WHERE pSerial = ? AND vehID = ? ', getPlayerSerial( source ), ID )
refreshMyList( )
givePlayerMoney( source, price )
outputChatBox( '#FFFFFFSuccess, Your vehicle has been sold successfully #2BFF00!', source, 255, 255, 255, true )
end )
addEvent( 'VehiclesSystem;createPersonalVehicle', true )
addEventHandler( 'VehiclesSystem;createPersonalVehicle', root,
function( ID )
local x, y, z = getElementPosition( source )
if ( isElement( vehPers[source] ) ) then destroyElement( vehPers[source] ) end
vehPers[source] = createVehicle( ID, x + 2, y + 2, z + 1 )
if ( getElementData( source, 'VehiclesSystem;WarpToVehicle' ) == 'Enabled' ) then
warpPedIntoVehicle( source, vehPers[source] )
setElementData( vehPers[source], 'myPersVehicle', getPlayerName( source ) )
end
end )
addEvent( 'VehiclesSystem;buyCurrentCar', true )
addEventHandler( 'VehiclesSystem;buyCurrentCar', root,
function( ID, Name, Price )
local check = dbQuery( vehDB, ' SELECT * FROM `VehiclesSystem_Players` WHERE pSerial = ? AND vehID = ? ', getPlayerSerial( source ), ID )
local results = dbPoll( check, -1 )
if ( type( results ) == 'table' and #results == 0 or not results ) then
dbExec( vehDB, ' INSERT INTO `VehiclesSystem_Players` VALUES(?,?,?,?,?) ', getPlayerSerial( source ), tonumber(ID), Name, Price, 'Permanent Subscription' )
vehPers[source] = createVehicle( ID, -1633.87439, 1208.09277, 7.03906 + 1, -0, 0, 224.5189666748 )
warpPedIntoVehicle( source, vehPers[source] )
takePlayerMoney( source, Price )
setTimer(setCameraTarget, 1500, 1, source )
setElementDimension( vehPers[source], 0 )
setElementDimension( source, 0 )
fadeCamera( source, false )
setTimer( fadeCamera, 1500, 1, source, true )
triggerClientEvent( source, 'VehiclesSystem;hideBuyWindow', source )
viewVehiclex( nil, nil, nil, nil, 'close' )
refreshMyList( )
else outputChatBox( '#FFFFFFError, This vehicle is already exists in your list #FF0000!', source, 255, 255, 255, true ) return end
end )
------------------------
--vehicle controls serverside--
function openDoor(door, position)
local vehicle = getPedOccupiedVehicle(source)
if getPedOccupiedVehicleSeat(source) == 0 then
if door == 0 then
if position==0 then
setVehicleDoorOpenRatio(vehicle, 0, 0, 0.5)
end
if position==100 then
setVehicleDoorOpenRatio(vehicle, 0, 1, 0.5)
end
if position>0 and position<100 then
setVehicleDoorOpenRatio(vehicle, 0, position/100, 0.5)
end
end
if door == 1 then
if position==0 then
setVehicleDoorOpenRatio(vehicle, 1, 0, 0.5)
end
if position==100 then
setVehicleDoorOpenRatio(vehicle, 1, 1, 0.5)
end
if position>0 and position<100 then
setVehicleDoorOpenRatio(vehicle, 1, position/100, 0.5)
end
end
if door == 2 then
if position==0 then
setVehicleDoorOpenRatio(vehicle, 2, 0, 0.5)
end
if position==100 then
setVehicleDoorOpenRatio(vehicle, 2, 1, 0.5)
end
if position>0 and position<100 then
setVehicleDoorOpenRatio(vehicle, 2, position/100, 0.5)
end
end
if door == 3 then
if position==0 then
setVehicleDoorOpenRatio(vehicle, 3, 0, 0.5)
end
if position==100 then
setVehicleDoorOpenRatio(vehicle, 3, 1, 0.5)
end
if position>0 and position<100 then
setVehicleDoorOpenRatio(vehicle, 3, position/100, 0.5)
end
end
if door == 4 then
if position==0 then
setVehicleDoorOpenRatio(vehicle, 4, 0, 0.5)
end
if position==100 then
setVehicleDoorOpenRatio(vehicle, 4, 1, 0.5)
end
if position>0 and position<100 then
setVehicleDoorOpenRatio(vehicle, 4, position/100, 0.5)
end
end
if door == 5 then
if position==0 then
setVehicleDoorOpenRatio(vehicle, 5, 0, 0.5)
end
if position==100 then
setVehicleDoorOpenRatio(vehicle, 5, 1, 0.5)
end
if position>0 and position<100 then
setVehicleDoorOpenRatio(vehicle, 5, position/100, 0.5)
end
end
end
end
addEvent("moveThis:~", true)
addEventHandler("moveThis:~", getRootElement(), openDoor)
Server side