matin Posted August 28, 2019 Share Posted August 28, 2019 hi guys i want when vehicle dont have driver player's Cant push it function carfreez() setTimer ( function() for _,veh in ipairs (getElementsByType("vehicle")) do if veh then if isVehicleEmpty(veh) then local speed = ( function( x, y, z ) return math.floor( math.sqrt( x*x + y*y + z*z ) * 155 ) end )( getElementVelocity( veh ) ) if speed and speed < 2 then setElementFrozen(veh,true) end end end end end, 1000, 0 ) end carfreez() function addHelmetOnEnter ( theVehicle, seat, jacked ) setElementFrozen(theVehicle,false) end addEventHandler ( "onPlayerVehicleEnter", getRootElement(), addHelmetOnEnter ) it worked but i want when any car want push another car and car dont have driver , car move. any idea ? Link to comment
Scripting Moderators sacr1ficez Posted August 28, 2019 Scripting Moderators Share Posted August 28, 2019 59 minutes ago, matin said: hi guys i want when vehicle dont have driver player's Cant push it function carfreez() setTimer ( function() for _,veh in ipairs (getElementsByType("vehicle")) do if veh then if isVehicleEmpty(veh) then local speed = ( function( x, y, z ) return math.floor( math.sqrt( x*x + y*y + z*z ) * 155 ) end )( getElementVelocity( veh ) ) if speed and speed < 2 then setElementFrozen(veh,true) end end end end end, 1000, 0 ) end carfreez() function addHelmetOnEnter ( theVehicle, seat, jacked ) setElementFrozen(theVehicle,false) end addEventHandler ( "onPlayerVehicleEnter", getRootElement(), addHelmetOnEnter ) it worked but i want when any car want push another car and car dont have driver , car move. any idea ? Your code is badly optimized, i've fixed it. Should work, untested. -- Useful function function isVehicleEmpty(vehicle) if not isElement(vehicle) or getElementType(vehicle) ~= "vehicle" then return true end local passengers = getVehicleMaxPassengers(vehicle) if type(passengers) == "number" then for seat = 0, passengers do if getVehicleOccupant(vehicle, seat) then return false end end end return true end -- Unfroze when entering function onPlayerVehicleEnter(vehicle, seat, jacked) if isElementFrozen(vehicle) then -- don't froze if element is frozen setElementFrozen(vehicle, false) end end addEventHandler("onPlayerVehicleEnter", getRootElement(), onPlayerVehicleEnter) -- Froze on exit function onPlayerVehicleExit(vehicle, seat, jacker, forced) if not isElementFrozen(vehicle) and isVehicleEmpty(vehicle) then -- don't froze if element is frozen, and be sure that vehicle is empty setElementFrozen(vehicle, true) end end addEventHandler("onPlayerVehicleExit", getRootElement(), onPlayerVehicleExit) -- Check all vehicles on resource start function onResourceStart() local vehicles = getElementsByType("vehicle") for i = 1, #vehicles do -- no need for ipairs, int loop faster local vehicle = vehicles[i] -- get vehicle if vehicle and isVehicleEmpty(vehicle) then -- check if vehicle is empty. if not isElementFrozen(vehicle) then -- don't froze if element is frozen setElementFrozen(vehicle, true) end end end end addEventHandler("onResourceStart", resourceRoot, onResourceStart) -- Froze on vehicle spawn function onVehicleRespawn(exploded) if isVehicleEmpty(source) then -- ditto if not isElementFrozen(source) then -- ditto setElementFrozen(source, true) end end end addEventHandler("onVehicleRespawn", getRootElement(), onVehicleRespawn) --[[for all vehicles, change to resourceRoot instead of getRootElement() - if it should happen for vehicles created only by this resource]] 1 Link to comment
matin Posted August 29, 2019 Author Share Posted August 29, 2019 @majqq it work but i want when any car accident with another car when another car don't have driver it should be unfreez and move like real life Link to comment
Scripting Moderators sacr1ficez Posted August 30, 2019 Scripting Moderators Share Posted August 30, 2019 17 hours ago, matin said: @majqq it work but i want when any car accident with another car when another car don't have driver it should be unfreez and move like real life Then you should use this. https://wiki.multitheftauto.com/wiki/OnClientVehicleCollision Get theHitElement (if it exists - it's parameter from event), check element type if is equal to vehicle, check if vehicle is frozen, and use: https://wiki.multitheftauto.com/wiki/TriggerServerEvent To unfroze vehicle for everyone, good luck. You should try to do that yourself, after that, when something will not work i wil try to help you with that. Link to comment
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now