Ey , I recently wrote a script that make the wheels of your car magnet that is enabled/disabled by markers. Below you will see the script I wrote.
function removeGravityFinder(veh)
removeEventHandler("onClientRender",getRootElement(),magnetWheels)
end
function magnetWheels()
local veh = getPedOccupiedVehicle(getLocalPlayer())
local x,y,z = getElementPosition(veh)
local underx,undery,underz = getPositionUnderTheElement(veh)
setVehicleGravity(veh,underx - x,undery - y,underz - z)
end
function getPositionUnderTheElement(element)
local matrix = getElementMatrix (element)
local offX = 0 * matrix[1][1] + 0 * matrix[2][1] - 1 * matrix[3][1] + matrix[4][1]
local offY = 0 * matrix[1][2] + 0 * matrix[2][2] - 1 * matrix[3][2] + matrix[4][2]
local offZ = 0 * matrix[1][3] + 0 * matrix[2][3] - 1 * matrix[3][3] + matrix[4][3]
return offX,offY,offZ
end
function stopMagnets()
removeEventHandler("onClientPlayerVehicleExit",getLocalPlayer(),removeGravityFinder)
removeEventHandler("onClientRender",getRootElement(),magnetWheels)
veh = getPedOccupiedVehicle(getLocalPlayer())
if veh then
setVehicleGravity(veh,0,0,-1)
end
end
function startMagnets()
addEventHandler("onClientPlayerVehicleExit",getLocalPlayer(),removeGravityFinder)
addEventHandler("onClientRender",getRootElement(),magnetWheels)
end
marker1 = createMarker(1931.306640625,-7655.42578125,49.669486999512,"corona",5,0,0,0,0) -- to start the magnets
marker2 = createMarker(1931.4370117188,-8029.53125,53.335014343262,"corona",5,0,0,0,0) -- to stop the magnets
addEventHandler("onClientMarkerHit", marker1, startMagnets)
addEventHandler("onClientMarkerHit", marker2, stopMagnets)
(I'm using MTA 1.1)
Well, The script switch to Magnet mode perfectly, but there is a bug. when a player hit the marker to activate Magnet, the player active for everyone else on the server, not only for him.
So I want to know if I missed some arguments or something else..
Waiting for help.. Thanks.