Liquidz Posted December 23, 2012 Share Posted December 23, 2012 Hello Community! I have a little problem with my Vehiclesystem... I am setting the vehicleEngine Client-side with a bindKey-function. Now i created this function server-side to do some other stuff but he always return true? function vehicleTimer() for i,v in ipairs(getElementsByType("vehicle")) do local speed = (function(velX, velY, velZ) return ((velX^2 + velY^2 + velZ^2)^(0.5)) * 180 end)(getElementVelocity(v)) local state = getVehicleEngineState(v) if state then -- state is always true end end end Although my vehicle engine is turned off he always return true... Can somebody help me please? Link to comment
manve1 Posted December 23, 2012 Share Posted December 23, 2012 tried using: return false ? Link to comment
Liquidz Posted December 23, 2012 Author Share Posted December 23, 2012 Could it be that the client-side setVehicleEngineState(vehicle) only set the Engine client-side and that server-side the same vehicle has the engine running? Link to comment
manve1 Posted December 23, 2012 Share Posted December 23, 2012 Client side will work for only one player/ped that executed the function, use server side for all of this. Edit: If you create a vehicle via Client-side, it won't work, it will be as display only Link to comment
Liquidz Posted December 23, 2012 Author Share Posted December 23, 2012 ah ok thanks^^ bindKey("m", "down", function(key, keyState) if key ~= "m" or keyState ~= "down" then return end if not isPedInVehicle(localPlayer) then return end local vehicle = getPedOccupiedVehicle(localPlayer) if localPlayer ~= getVehicleOccupant(vehicle, 0) then return end if engineStarting then return end if getVehicleEngineState(vehicle) then setVehicleEngineState(vehicle, false) else if getElementData(vehicle, "tank") > 0.0 then playSound('engine.wav') engineStarting = true setTimer(startEngine, 1500, 1, vehicle) else playSound('engineNoFuel.wav') end end end ) When i make this server-side now? How is the easiest way to play the sounds? Link to comment
manve1 Posted December 23, 2012 Share Posted December 23, 2012 use triggering from server side to client side (( if needed from server side to client and back )) Link to comment
Liquidz Posted December 23, 2012 Author Share Posted December 23, 2012 Ok thanks i will try it Thank you ^^ Link to comment
Castillo Posted December 23, 2012 Share Posted December 23, 2012 -- server side: addEventHandler ( "onPlayerJoin", root, function ( ) bindKey ( source, "M", "down", turnEngine ) end ) addEventHandler ( "onResourceStart", resourceRoot, function ( ) for _, player in ipairs ( getElementsByType ( "player" ) ) do bindKey ( player, "M", "down", turnEngine ) end end ) engineStarting = { } function turnEngine ( thePlayer, key, keyState ) if ( key ~= "m" or keyState ~= "down" ) then return end if ( not isPedInVehicle ( thePlayer ) ) then return end local vehicle = getPedOccupiedVehicle ( thePlayer ) if ( thePlayer ~= getVehicleOccupant ( vehicle, 0 ) ) then return end if ( engineStarting [ thePlayer ] ) then return end if getVehicleEngineState ( vehicle ) then setVehicleEngineState ( vehicle, false ) else if ( getElementData ( vehicle, "tank" ) > 0.0 ) then triggerClientEvent ( thePlayer, "playSound", thePlayer, 'engine.wav' ) engineStarting [ thePlayer ] = true setTimer ( startEngine, 1500, 1, vehicle ) else triggerClientEvent ( thePlayer, "playSound", thePlayer, 'engineNoFuel.wav' ) end end end -- client side: addEvent ( "playSound", true ) addEventHandler ( "playSound", root, function ( path ) playSound ( path ) end ) 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