Jump to content

[Ajuda] Motor Script


Recommended Posts

Posted

Boa Tarde!

O problema do meu script é que quando deixo o motor ligado, ao entrar no carro ele DESLIGA-O, e eu quero que ao entrar no carro ele o deixe ligado!

Script:

local root = getRootElement () 
local thisResourceRoot = getResourceRootElement(getThisResource()) 
  
function thisResourceStart () 
    local players = getElementsByType ( "player" ) 
    for _,this_player in ipairs(players) do 
        bindKey ( this_player, "lctrl", "down", stopEngine, "Motor on/off" ) 
    end 
end 
  
function stopEngine ( player, key, state ) 
    if getPedOccupiedVehicleSeat ( player ) == 0 then 
        local vehicle = getPedOccupiedVehicle ( player ) 
        setVehicleEngineState ( vehicle, not getVehicleEngineState ( vehicle ) ) 
    end 
end 
  
function playerJoined() 
    bindKey ( source, "lctrl", "down", stopEngine, "Motor on/off" ) 
end 
addEventHandler ("onResourceStart", getRootElement(), thisResourceStart) 
  
addEventHandler ( "onVehicleEnter", root, 
    function ( player ) 
        setVehicleEngineState ( source, getElementData ( source, "Motor on/off" ) ) 
    end 
) 
  
 addEventHandler ( "onVehicleExit", stopEngine, 
    function ( player ) 
        setVehicleEngineState ( source, getElementData ( source, "Motor on/off" ) ) 
    end 
) 

Posted
local root = getRootElement () 
local thisResourceRoot = getResourceRootElement(getThisResource()) 
  
function thisResourceStart () 
    local players = getElementsByType ( "player" ) 
    for _,this_player in ipairs(players) do 
        bindKey ( this_player, "lctrl", "down", stopEngine, "Motor on/off" ) 
    end 
end 
  
function stopEngine ( player, key, state ) 
    if getPedOccupiedVehicleSeat ( player ) == 0 then 
        local vehicle = getPedOccupiedVehicle ( player ) 
        setVehicleEngineState ( vehicle, not getVehicleEngineState ( vehicle ) ) 
    end 
end 
  
function playerJoined() 
    bindKey ( source, "lctrl", "down", stopEngine, "Motor on/off" ) 
end 
addEventHandler ("onResourceStart", getRootElement(), thisResourceStart) 
  
addEventHandler ( "onVehicleExit", stopEngine, 
    function ( player ) 
        setVehicleEngineState ( source, getElementData ( source, "Motor on/off" ) ) 
    end 
) 

Tente esse.

Community Profile MTA:SA = Click Here

Posted

acredito que esse não seja o código inteiro.

tente trocar

addEventHandler ( "onVehicleExit", stopEngine, 
    function ( player ) 
        setVehicleEngineState ( source, getElementData ( source, "Motor on/off" ) ) 
    end 
) 

para

addEventHandler ( "onVehicleExit",root, 
    function ( player ) 
        setVehicleEngineState ( source, getElementData ( source, "Motor on/off" ) ) 
    end 
) 

560x95_FFFFFF_09FF00_050505_000000.png

"Querer não é poder, mas tentar é avançar"!

Posted

O script postado é o script completo.

O problema actual é o seguinte:

- Saiu do veiculo com o motor ligado e ele desliga;

- Entro no veiculo com motor desligado e ele liga;

O que pretendo?:

- Que se sair do carro com o motor ligado ele continua sempre ligado mesmo que não entre ninguém no carro ou quando qualquer jogador entra nele;

- Quando entro no carro e o carro tiver o motor ligado continua ligado, se tiver o motor desligado ele continua desligado

Mas infelizmente não consigo fazer isso :/

Posted

Tente:

function thisResourceStart () 
    local players = getElementsByType ( "player" ) 
    for _,this_player in ipairs(players) do 
        bindKey ( this_player, "lctrl", "down", toggleEngine ) 
    end 
end 
addEventHandler ("onResourceStart", resourceRoot, thisResourceStart) 
  
function toggleEngine ( player, key, state ) 
    if getPedOccupiedVehicleSeat ( player ) == 0 then 
        local vehicle = getPedOccupiedVehicle ( player ) 
        setVehicleEngineState ( vehicle, not getVehicleEngineState ( vehicle ) ) 
    end 
end 
  
function playerJoined() 
    bindKey ( source, "lctrl", "down", toggleEngine ) 
end 
addEventHandler("onPlayerJoin", root, playerJoined) 

Please do not PM me with scripting related question nor support, use the forums instead.

Posted

@DNL291 Está correcto num ponto mas agora quando entro no veículo o motor activa novamente e só falta a parte de desactivar quando player entra no veiculo ele não active o motor automático

Posted

Se você não quer que outros jogadores controlem o veículo, você deve definir um dono, ou verificar se quem está dirigindo é o jogador que criou o veículo, com getElementSyncer.

Não tenho certeza se é isso o que você quer.

agora quando entro no veículo o motor activa novamente

Tente isto:

local engineState = {} 
function thisResourceStart () 
    local players = getElementsByType ( "player" ) 
    for _,this_player in ipairs(players) do 
        bindKey ( this_player, "lctrl", "down", toggleEngine ) 
    end 
end 
addEventHandler ("onResourceStart", resourceRoot, thisResourceStart) 
  
function toggleEngine ( player, key, state ) 
    if getPedOccupiedVehicleSeat ( player ) == 0 then 
        local vehicle = getPedOccupiedVehicle ( player ) 
        setVehicleEngineState ( vehicle, not getVehicleEngineState ( vehicle ) ) 
        engineState[vehicle] = getVehicleEngineState(vehicle) 
    end 
end 
  
function playerJoined() 
    bindKey ( source, "lctrl", "down", toggleEngine ) 
end 
addEventHandler("onPlayerJoin", root, playerJoined) 
  
addEventHandler("onVehicleEnter", root, 
function () 
    if type(engineState[source]) == "boolean" then 
        getVehicleEngineState(engineState[source]) 
    end 
end) 
addEventHandler("onElementDestroy", root, 
function () 
    if not getElementType(source) == "vehicle" then return end 
    if type(engineState[source]) == "boolean" then 
        engineState[source] = nil 
    end 
end) 

Please do not PM me with scripting related question nor support, use the forums instead.

Posted

Não é este o script que pretendo, o que pretendo é que qualquer jogador quando entra no veiculo ele continue no seu último estado, ou seja se o último estado do veículo foi desligado o jogador quando entrar o motor continua desligado, se o ultimo estado do veiculo foi ligado quando o jogador entrar o motor continua ligado

Posted

Fiz isso no meu último código, já testou ele?

Please do not PM me with scripting related question nor support, use the forums instead.

Posted

Tinha um pequeno erro.

Mude isso na linha 26:

getVehicleEngineState(engineState[source]) 

Para:

setVehicleEngineState(source, engineState[source]) 

Please do not PM me with scripting related question nor support, use the forums instead.

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