Boechat Posted June 27, 2020 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 Te ajudei? Me ajude também deixando seu Thanks! Discord: _muelzera_
Moderators Lord Henry Posted June 28, 2020 Moderators 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 Eu te ajudei ou achou meu comentário útil? Não esqueça de deixar um Thanks! Minhas contribuições para a comunidade: LordHenry - MTA Wiki Profile Inscreva-se no meu canal do YouTube: Lord Henry - Entertainment Discord Oficial do MTA: https://mtasa.com/discord Blacklist e Whitelist de Scripters: Planilha Por favor, não me envie mensagens privadas solicitando suporte. Crie um tópico no fórum em vez disso.
Sucrilhex Posted June 28, 2020 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")
Angelo Pereira Posted June 28, 2020 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 Página : MAD Scripting MTA Discord : Ângelo Pereira#4059 " Se eu te ajudei, deixe sua avaliação, obrigado ! "
Boechat Posted June 28, 2020 Author 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> Te ajudei? Me ajude também deixando seu Thanks! Discord: _muelzera_
Sucrilhex Posted June 28, 2020 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
Boechat Posted June 28, 2020 Author 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 /\ Te ajudei? Me ajude também deixando seu Thanks! Discord: _muelzera_
Angelo Pereira Posted June 28, 2020 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> Página : MAD Scripting MTA Discord : Ângelo Pereira#4059 " Se eu te ajudei, deixe sua avaliação, obrigado ! "
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