Boechat Posted June 27, 2020 Share Posted June 27, 2020 (edited) Estou começando a programar em Lua e no MTA agora, estou fazendo meu primeiro mod e não sei o que está errado. É um mod muito simples, só de ligar e desligar o motor do carro com a letra K e desligar quando entra e sai do veículo. function desligarMotor (source) local veiculo if ( getElementType(source) == "vehicle" ) then veiculo = source end if ( getElementType(source) == "player" ) then veiculo = getElementData ( source, "cl_ownedvehicle" ) end if ( getVehicleEngineState ( veiculo ) == true ) then setVehicleEngineState (veiculo, false) end end function mudarMotor() local veiculo if ( getElementType(source) == "vehicle" ) then veiculo = source end if ( getElementType(source) == "player" ) then veiculo = getElementData ( source, "cl_ownedvehicle" ) end local estado = getVehicleEngineState (veiculo) if estado == false then setVehicleEngineState (veiculo, true) end else setVehicleEngineState (veiculo, false) end end bindKey ( source, "k", "down", mudarMotor ) addEventHandler ( "onPlayerVehicleEnter", getRootElement(), desligarMotor ) addEventHandler ( "onPlayerVehicleExit", getRootElement(), desligarMotor ) Edited June 27, 2020 by Boechat Link to comment
Other Languages Moderators Lord Henry Posted June 28, 2020 Other Languages Moderators Share Posted June 28, 2020 (edited) Comece vendo as regras do fórum para saber a formatação adequada dos tópicos: Edited June 28, 2020 by Lord Henry Link to comment
Sucrilhex Posted June 28, 2020 Share Posted June 28, 2020 7 hours ago, Boechat said: Previous Page Next Page Estou começando a programar em Lua e no MTA agora, estou fazendo meu primeiro mod e não sei o que está errado. É um mod muito simples, só de ligar e desligar o motor do carro com a letra K e desligar quando entra e sai do veículo. function desligarMotor (source) local veiculo if ( getElementType(source) == "vehicle" ) then veiculo = source end if ( getElementType(source) == "player" ) then veiculo = getElementData ( source, "cl_ownedvehicle" ) end if ( getVehicleEngineState ( veiculo ) == true ) then setVehicleEngineState (veiculo, false) end end function mudarMotor() local veiculo if ( getElementType(source) == "vehicle" ) then veiculo = source end if ( getElementType(source) == "player" ) then veiculo = getElementData ( source, "cl_ownedvehicle" ) end local estado = getVehicleEngineState (veiculo) if estado == false then setVehicleEngineState (veiculo, true) end else setVehicleEngineState (veiculo, false) end end bindKey ( source, "k", "down", mudarMotor ) addEventHandler ( "onPlayerVehicleEnter", getRootElement(), desligarMotor ) addEventHandler ( "onPlayerVehicleExit", getRootElement(), desligarMotor ) Previous Page Next Page me fale para qual propósito você está usando "local veiculo", geralmente deve usar um getElementData ou algo parecido depois do local veiculo, exemplo local veiculo = getElementData(veh,"status:motor") Link to comment
Angelo Pereira Posted June 28, 2020 Share Posted June 28, 2020 Teste : -- #1, Lado Server-Side, você precisa registrar a Key para o Jogador. addEventHandler("onPlayerLogin", root, function () bindKey ( source, "k", "down", ligar_desligar_motor ) end) addEventHandler("onResourceStart", resourceRoot, function () for i, player in ipairs( getElementsByType("player") ) do bindKey ( player, "k", "down", ligar_desligar_motor ) end end) addEventHandler("onResourceStop", resourceRoot, function () for i, player in ipairs( getElementsByType("player") ) do unbindKey ( player, "k", "down", ligar_desligar_motor ) end end) -- #2, funções. function ligar_desligar_motor ( player ) local veh = getPedOccupiedVehicle ( player ) if veh then if ( getVehicleEngineState (veh) == false ) then setVehicleEngineState (veh, true) else setVehicleEngineState (veh, false) end end end -- #3, eventos. addEventHandler ( "onPlayerVehicleEnter", root, function ( theVehicle, seat ) if seat == 0 then if ( getVehicleEngineState (theVehicle) == false ) then setVehicleEngineState (theVehicle, true) end end end) addEventHandler ( "onPlayerVehicleExit", root, function ( theVehicle, seat ) if seat == 0 then if ( getVehicleEngineState (theVehicle) == true ) then setVehicleEngineState (theVehicle, false) end end end) -- # Dica, se você quer aprender, basta, cada função/evento pesquisar no wiki do MTA. -- https://wiki.multitheftauto.com/wiki/BindKey -- https://wiki.multitheftauto.com/wiki/GetPedOccupiedVehicle -- https://wiki.multitheftauto.com/wiki/OnPlayerVehicleEnter -- https://wiki.multitheftauto.com/wiki/OnPlayerVehicleExit Link to comment
Boechat Posted June 28, 2020 Author Share Posted June 28, 2020 9 hours ago, Sucrilhex said: me fale para qual propósito você está usando "local veiculo", geralmente deve usar um getElementData ou algo parecido depois do local veiculo, exemplo local veiculo = getElementData(veh,"status:motor") Como eu disse, eu estou começando, não sei direito quem ativaria e seria o source. Na real, nem sei muito bem o que é source kkk é quem ativa a função? imagino que sim. Se o source fosse um veiculo, a local veiculo = source, se fosse um player, a local veiculo seria o veiculo que o player é dono. local veiculo if ( getElementType(source) == "vehicle" ) then veiculo = source end if ( getElementType(source) == "player" ) then veiculo = getElementData ( source, "cl_ownedvehicle" ) end 3 hours ago, Angelo Pereira said: Teste : -- #1, Lado Server-Side, você precisa registrar a Key para o Jogador. addEventHandler("onPlayerLogin", root, function () bindKey ( source, "k", "down", ligar_desligar_motor ) end) addEventHandler("onResourceStart", resourceRoot, function () for i, player in ipairs( getElementsByType("player") ) do bindKey ( player, "k", "down", ligar_desligar_motor ) end end) addEventHandler("onResourceStop", resourceRoot, function () for i, player in ipairs( getElementsByType("player") ) do unbindKey ( player, "k", "down", ligar_desligar_motor ) end end) -- #2, funções. function ligar_desligar_motor ( player ) local veh = getPedOccupiedVehicle ( player ) if veh then if ( getVehicleEngineState (veh) == false ) then setVehicleEngineState (veh, true) else setVehicleEngineState (veh, false) end end end -- #3, eventos. addEventHandler ( "onPlayerVehicleEnter", root, function ( theVehicle, seat ) if seat == 0 then if ( getVehicleEngineState (theVehicle) == false ) then setVehicleEngineState (theVehicle, true) end end end) addEventHandler ( "onPlayerVehicleExit", root, function ( theVehicle, seat ) if seat == 0 then if ( getVehicleEngineState (theVehicle) == true ) then setVehicleEngineState (theVehicle, false) end end end) -- # Dica, se você quer aprender, basta, cada função/evento pesquisar no wiki do MTA. -- https://wiki.multitheftauto.com/wiki/BindKey -- https://wiki.multitheftauto.com/wiki/GetPedOccupiedVehicle -- https://wiki.multitheftauto.com/wiki/OnPlayerVehicleEnter -- https://wiki.multitheftauto.com/wiki/OnPlayerVehicleExit Comoçou a dar um erro ERROR: Problem with resource: LigarMotor; Couldn't parse meta file for resource 'LigarMotor' [Line 3: Error reading Attributes.] Minha meta.xml: <meta> <info author="Samuel Boechat" description="Motor do carro" version="1.0" type="misc" /> <script src="server.Lua" type="server"" /> <config src="help.xml" type="client" /> </meta> Link to comment
Sucrilhex Posted June 28, 2020 Share Posted June 28, 2020 1 hour ago, Boechat said: Como eu disse, eu estou começando, não sei direito quem ativaria e seria o source. Na real, nem sei muito bem o que é source kkk é quem ativa a função? imagino que sim. Se o source fosse um veiculo, a local veiculo = source, se fosse um player, a local veiculo seria o veiculo que o player é dono. local veiculo if ( getElementType(source) == "vehicle" ) then veiculo = source end if ( getElementType(source) == "player" ) then veiculo = getElementData ( source, "cl_ownedvehicle" ) end Comoçou a dar um erro ERROR: Problem with resource: LigarMotor; Couldn't parse meta file for resource 'LigarMotor' [Line 3: Error reading Attributes.] Minha meta.xml: <meta> <info author="Samuel Boechat" description="Motor do carro" version="1.0" type="misc" /> <script src="server.Lua" type="server"" /> <config src="help.xml" type="client" /> </meta> realmente existe o arquivo help.xml na pasta do script? se não existir apague essa parte do meta Link to comment
Boechat Posted June 28, 2020 Author Share Posted June 28, 2020 1 hour ago, Sucrilhex said: realmente existe o arquivo help.xml na pasta do script? se não existir apague essa parte do meta <help popup="no"> AJUDA..... </help> Existe sim /\ Link to comment
Angelo Pereira Posted June 28, 2020 Share Posted June 28, 2020 Bom, o erro em si, é na linha 3 do meta, está contendo duas aspas, precisa remover uma das aspas : ( marcado em vermelho ) <script src="server.Lua" type="server"" /> Também lembrando : O nome que você denominou no seu script lá dentro da pasta do seu resource, você precisa coloca o mesmo nome no meta. Exemplo : Tenho um script chamado : LigarMotor.Lua Então no meta será : <meta> <info author="Samuel Boechat" description="Motor do carro" version="1.0" type="misc" /> <script src="LigarMotor.Lua" type="server" /> </meta> 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