mehmet Posted January 16, 2019 Share Posted January 16, 2019 Hello guys, Don't save parametrs engine. And you can use elementData here? is that correct? function enterVehicle ( player ) local car = getPedOccupiedVehicle( player ) if (getElementData(car, "engine") == 0 ) then setVehicleEngineState ( car , false ) else setVehicleEngineState ( car , true ) end end addEventHandler ( "onVehicleEnter", getRootElement(), enterVehicle ) function engine() bindKey (source,"1","down", function(player,key) local car = getPedOccupiedVehicle(player) if(car and getVehicleController(car) == player) then setVehicleEngineState(car,(not getVehicleEngineState(car))) end end ) end addEventHandler ("onPlayerVehicleEnter",getRootElement(), engine) Link to comment
Moderators Patrick Posted January 17, 2019 Moderators Share Posted January 17, 2019 Try this: function switchEngineState(player) local vehicle = getPedOccupiedVehicle(player) if isElement(vehicle) then setVehicleEngineState(vehicle, (not getVehicleEngineState(vehicle))) end end addEventHandler("onPlayerVehicleEnter", getRootElement(), function(vehicle, seat) if seat == 0 then bindKey(source, "1", "down", switchEngineState) end end) addEventHandler("onPlayerVehicleExit", getRootElement(), function(vehicle, seat) if seat == 0 then unbindKey(source, "1", "down", switchEngineState) end end) Link to comment
mehmet Posted January 17, 2019 Author Share Posted January 17, 2019 1 hour ago, Patrick2562 said: Try this: function switchEngineState(player) local vehicle = getPedOccupiedVehicle(player) if isElement(vehicle) then setVehicleEngineState(vehicle, (not getVehicleEngineState(vehicle))) end end addEventHandler("onPlayerVehicleEnter", getRootElement(), function(vehicle, seat) if seat == 0 then bindKey(source, "1", "down", switchEngineState) end end) addEventHandler("onPlayerVehicleExit", getRootElement(), function(vehicle, seat) if seat == 0 then unbindKey(source, "1", "down", switchEngineState) end end) When you get in the car, it starts automatically. I need to start the car myself. (bindkey 1 and the car start) Link to comment
Moderators Patrick Posted January 17, 2019 Moderators Share Posted January 17, 2019 function switchEngineState(player) local vehicle = getPedOccupiedVehicle(player) if isElement(vehicle) then local currentState = getElementData(vehicle, "engineState") or false if currentState then setVehicleEngineState(vehicle, false) setElementData(vehicle, "engineState", false) else setVehicleEngineState(vehicle, true) setElementData(vehicle, "engineState", true) end end end addEventHandler("onPlayerVehicleEnter", getRootElement(), function(vehicle, seat) if seat == 0 then local currentState = getElementData(vehicle, "engineState") or false if currentState then setVehicleEngineState(vehicle, true) else setVehicleEngineState(vehicle, false) end bindKey(source, "1", "down", switchEngineState) end end) addEventHandler("onPlayerVehicleExit", getRootElement(), function(vehicle, seat) if seat == 0 then unbindKey(source, "1", "down", switchEngineState) end end) 1 Link to comment
mehmet Posted January 18, 2019 Author Share Posted January 18, 2019 10 hours ago, Patrick2562 said: function switchEngineState(player) local vehicle = getPedOccupiedVehicle(player) if isElement(vehicle) then local currentState = getElementData(vehicle, "engineState") or false if currentState then setVehicleEngineState(vehicle, false) setElementData(vehicle, "engineState", false) else setVehicleEngineState(vehicle, true) setElementData(vehicle, "engineState", true) end end end addEventHandler("onPlayerVehicleEnter", getRootElement(), function(vehicle, seat) if seat == 0 then local currentState = getElementData(vehicle, "engineState") or false if currentState then setVehicleEngineState(vehicle, true) else setVehicleEngineState(vehicle, false) end bindKey(source, "1", "down", switchEngineState) end end) addEventHandler("onPlayerVehicleExit", getRootElement(), function(vehicle, seat) if seat == 0 then unbindKey(source, "1", "down", switchEngineState) end end) thx Patrick2562. but is this way better? without ElementData. EngineTable = {} function enterVehicle () setVehicleEngineState(source, EngineTable[source] or false) EngineTable[source] = nil end addEventHandler ( "onVehicleEnter", root, enterVehicle) function exitVehicle () EngineTable[source] = getVehicleEngineState(source) end addEventHandler ( "onVehicleExit", root, exitVehicle) function setEngine() setVehicleEngineState(getPedOccupiedVehicle(player),not getPedOccupiedVehicle(player)) end addCommandHandler("engine",setEngine) Link to comment
Moderators Patrick Posted January 18, 2019 Moderators Share Posted January 18, 2019 (edited) 2 hours ago, mehmet said: thx Patrick2562. but is this way better? without ElementData. EngineTable = {} function enterVehicle () setVehicleEngineState(source, EngineTable[source] or false) EngineTable[source] = nil end addEventHandler ( "onVehicleEnter", root, enterVehicle) function exitVehicle () EngineTable[source] = getVehicleEngineState(source) end addEventHandler ( "onVehicleExit", root, exitVehicle) function setEngine() setVehicleEngineState(getPedOccupiedVehicle(player),not getPedOccupiedVehicle(player)) end addCommandHandler("engine",setEngine) Yes, better. Here it is: local startedEngines = {} function switchEngineState(player) local vehicle = getPedOccupiedVehicle(player) if isElement(vehicle) then local currentState = startedEngines[vehicle] or false if currentState then setVehicleEngineState(vehicle, false) startedEngines[vehicle] = nil removeEventHandler("onVehicleExplode", vehicle, onVehicleExplode) else setVehicleEngineState(vehicle, true) startedEngines[vehicle] = true addEventHandler("onVehicleExplode", vehicle, onVehicleExplode) end end end addEventHandler("onPlayerVehicleEnter", getRootElement(), function(vehicle, seat) if seat == 0 then setVehicleEngineState(vehicle, startedEngines[vehicle] or false) bindKey(source, "1", "down", switchEngineState) end end) addEventHandler("onPlayerVehicleExit", getRootElement(), function(vehicle, seat) if seat == 0 then unbindKey(source, "1", "down", switchEngineState) end end) function onVehicleExplode() startedEngines[source] = nil end Edited January 18, 2019 by Patrick2562 Link to comment
mehmet Posted January 18, 2019 Author Share Posted January 18, 2019 (edited) 6 hours ago, Patrick2562 said: Yes, better. Here it is: local startedEngines = {} function switchEngineState(player) local vehicle = getPedOccupiedVehicle(player) if isElement(vehicle) then local currentState = startedEngines[vehicle] or false if currentState then setVehicleEngineState(vehicle, false) startedEngines[vehicle] = nil removeEventHandler("onVehicleExplode", vehicle, onVehicleExplode) else setVehicleEngineState(vehicle, true) startedEngines[vehicle] = true addEventHandler("onVehicleExplode", vehicle, onVehicleExplode) end end end addEventHandler("onPlayerVehicleEnter", getRootElement(), function(vehicle, seat) if seat == 0 then setVehicleEngineState(vehicle, startedEngines[vehicle] or false) bindKey(source, "1", "down", switchEngineState) end end) addEventHandler("onPlayerVehicleExit", getRootElement(), function(vehicle, seat) if seat == 0 then unbindKey(source, "1", "down", switchEngineState) end end) function onVehicleExplode() startedEngines[source] = nil end Thx)) isElement this is the same getElementData? (isElement = getElementData?) Edited January 18, 2019 by mehmet Link to comment
Moderators Patrick Posted January 19, 2019 Moderators Share Posted January 19, 2019 19 hours ago, mehmet said: Thx)) isElement this is the same getElementData? (isElement = getElementData?) This function checks if a value is an element or not. 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