Jump to content

don't save parametrs engine


mehmet

Recommended Posts

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

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
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
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)

 

  • Like 1
Link to comment
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
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 by Patrick2562
Link to comment
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 by mehmet
Link to comment

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 account

Sign in

Already have an account? Sign in here.

Sign In Now
  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...