ytjuliocesar Posted June 13, 2019 Posted June 13, 2019 Estou querendo criar um Marker de destruir Veiculo, quando o Jogador chegar em cima da Marcação e digitar /destruir o Veiculo é destruído. Mas só que tem algo de errado nesse Script que Eu fiz, Porque quando Eu vou em cima do Marker e digito /destruir o Veiculo não é destruído. No Debugscript 3 não aparece nenhum error. destroyM = createMarker(-2411.3820800781,-626.55090332031,132.38656616211,"cylinder", 1.5,255,255,255,50) function Aviso( player ) if isElementWithinMarker(player, destroyM) then outputChatBox("#ff0000Digite /destruir para destruir o Veiculo", player, 255,255,255,true) end end addEventHandler("onMarkerHit", destroyM, Aviso) veh = {} function DestroyMarker(source) if isElementWithinMarker(source, destroyM) then if veh[source] and isElement( veh[source] ) then destroyElement(veh[source]) Veh[source] = nil end end end addCommandHandler("destruir", DestroyMarker) Agradecemos desde já: Servidor MIX Brasil RPG
DNL291 Posted June 13, 2019 Posted June 13, 2019 O elemento-veículo deve ser armazenado na tabela Veh e não tem nenhum createVehicle nesse código. Please do not PM me with scripting related question nor support, use the forums instead.
ytjuliocesar Posted June 14, 2019 Author Posted June 14, 2019 7 hours ago, DNL291 said: O elemento-veículo deve ser armazenado na tabela Veh e não tem nenhum createVehicle nesse código. Desculpa não entendi poderia fazer uma demonstração acrescentando as coisas que falta nesse Script pra Eu ver como que é que funciona, porque Eu vendo acho que aprendo melhor.
[M]ister Posted June 14, 2019 Posted June 14, 2019 2 hours ago, ytjuliocesar said: Desculpa não entendi poderia fazer uma demonstração acrescentando as coisas que falta nesse Script pra Eu ver como que é que funciona, porque Eu vendo acho que aprendo melhor. Na realidade o ponto chave de aprender é tentar! function DestroyMarker(source) if isElementWithinMarker(source, destroyM) then local veiculo = getPedOccupiedVehicle (source) if (veiculo) then destroyElement(veiculo) end end end addCommandHandler("destruir", DestroyMarker) Não entendi o que tú quer fazer com aquela tabela veh, então deixei de acordo com o que foi descrito no tópico.
ytjuliocesar Posted June 14, 2019 Author Posted June 14, 2019 4 minutes ago, MaligNos said: Na realidade o ponto chave de aprender é tentar! function DestroyMarker(source) if isElementWithinMarker(source, destroyM) then local veiculo = getPedOccupiedVehicle (source) if (veiculo) then destroyElement(veiculo) end end end addCommandHandler("destruir", DestroyMarker) Não entendi o que tú quer fazer com aquela tabela veh, então deixei de acordo com o que foi descrito no tópico. Na verdade Eu criei o veh achando que Ela que seria responsável por destruir meu veiculo, mas sei que tem nada a ver, então já excluir Ela, agradeço por tá tentando me ajudar, mas agora Tá dando error na linha 18, unexpected symbol near. destroyM = createMarker(-2411.3820800781,-626.55090332031,132.38656616211,"cylinder", 1.5,255,255,255,50) function Aviso( player ) if isElementWithinMarker(player, destroyM) then outputChatBox("#ff0000Digite /destruir para destruir o Veiculo", player, 255,255,255,true) end end addEventHandler("onMarkerHit", destroyM, Aviso) function DestroyMarker(source) if isElementWithinMarker(source, destroyM) then local veiculo = getPedOccupiedVehicle (source) if (veiculo) then destroyElement(veiculo) end end end addCommandHandler("destruir", DestroyMarker)
[M]ister Posted June 14, 2019 Posted June 14, 2019 Já ouvi comentários de um tal bug quando copia e cola o código, tente ao invés de copiar, reescrever o código como está aqui.
ytjuliocesar Posted June 14, 2019 Author Posted June 14, 2019 Just now, MaligNos said: Já ouvi comentários de um tal bug quando copia e cola o código, tente ao invés de copiar, reescrever o código como está aqui. Então Eu fiz do mesmo jeito que Você me envio o código mas mesmo assim tá dando Error na linha 18. destroyM = createMarker(-2411.3820800781,-626.55090332031,132.38656616211,"cylinder", 1.5,255,255,255,50) function Aviso( player ) if isElementWithinMarker(player, destroyM) then outputChatBox("#ff0000Digite /destruir para destruir o Veiculo", player, 255,255,255,true) end end addEventHandler("onMarkerHit", destroyM, Aviso) function DestroyMarker(source) if isElementWithinMarker(source, destroyM) then local veiculo = getPedOccupiedVehicle (source) if (veiculo) then destroyElement(veiculo) end end end addCommandHandler("destruir", DestroyMarker)
[M]ister Posted June 14, 2019 Posted June 14, 2019 Tente usar esse: function DestroyMarker(source) if isElementWithinMarker(source, destroyM) then local veiculo = getPedOccupiedVehicle (source) if (veiculo) then destroyElement(veiculo) end end end addCommandHandler("destruir", destroyElement) Se não der, apague o arquivo, crie um novo e tente reescrever de novo, pois o código em si está ok.
ytjuliocesar Posted June 14, 2019 Author Posted June 14, 2019 Eu quero que quando alguém digitar /destruir em cima da marcação, qualquer carro que Ela tiver usando seja destruido. 1 minute ago, MaligNos said: Tente usar esse: function DestroyMarker(source) if isElementWithinMarker(source, destroyM) then local veiculo = getPedOccupiedVehicle (source) if (veiculo) then destroyElement(veiculo) end end end addCommandHandler("destruir", destroyElement) Se não der, apague o arquivo, crie um novo e tente reescrever de novo, pois o código em si está ok. Tipo agora não tá dando nenhum error no Debugscript 3, mas só o Carro não tá sendo destruído. Irmão Você tá quase resolvendo meu problema, agora quero sair porque não destrói quando digito /destruir com certeza tem algo de errado.
[M]ister Posted June 14, 2019 Posted June 14, 2019 Lá na última linha tá destroyElement, troque por DestroyMarker (confundi quando reescrevi o trecho) 1
ytjuliocesar Posted June 14, 2019 Author Posted June 14, 2019 1 minute ago, MaligNos said: Lá na última linha tá destroyElement, troque por DestroyMarker (confundi quando reescrevi o trecho) Agora sim Mano deu certo!! Muito obrigado mesmo agora vou ficar aqui estudando o Código e vendo no que errei para Eu aprender mais e mais.
ytjuliocesar Posted June 14, 2019 Author Posted June 14, 2019 Eu prometo pedir a ultima ajuda antes de encerar o Tópico. O que Eu tenho que fazer se Eu for querer colocar uma mensagem de error usando o outputChatBox para aparecer na tela da pessoa, se Ela digitar qualquer a palavra /destruir errada em cima da Marcação. Eu sei que a função responsável é else, mas não sei onde encaixar Ela no código.
#DeltaSCR Posted June 14, 2019 Posted June 14, 2019 Pelo o que eu entendi, você quer quando ele esteja no marker, se o player der o comando que não seja "destruir", então envia uma mensgaem de erro ao mesmo, portanto, façamos assim: function destroyMarker(thePlayer, cmd) if isElementWithinMarker(thePlayer, destroyM) then if (cmd == "destruir") then local veiculo = getPedOccupiedVehicle(thePlayer) if (veiculo) then destroyElement(veiculo) end else outputChatBox("Comando errado", thePlayer, 255, 255, 255) end end end addCommandHandler("destruir", destroyMarker) OBS: Ao meu ver, acho desnecessária essa verificação se é aquele comando, pois o restante do código só funcionará com o comando especificado, no caso "destruir"... Então se o player der outro comando, nada acontece. Minha resposta te ajudou? Por favor, não esqueça de avaliar - #DeltaSCR Minha página no Facebook: Delta Scripting - MTA "Viribus et honor"
Jonas^ Posted June 14, 2019 Posted June 14, 2019 (edited) Não faz sentido seu código, não vai funcionar a verificação de comando errado, é a mesma coisa que isto versão um pouco melhorada xD: local destroyM = createMarker (-2411.38, -626.55, 132.38, "cylinder", 1.5, 255, 255, 255, 50) addEventHandler ("onMarkerHit", destroyM, function (hitElement, matchingDimension) if isElementWithinMarker (hitElement, destroyM) then outputChatBox ("Digite /destruir para destruir o veículo!", hitElement, 255, 0, 0) end end) addCommandHandler ("destruir", function (thePlayer, cmd) if isElementWithinMarker (thePlayer, destroyM) then local veiculo = getPedOccupiedVehicle (thePlayer) if (veiculo) then destroyElement (veiculo) outputChatBox ("Você removeu o veículo!", thePlayer, 0, 255, 0) else outputChatBox ("Você não esta em um veículo!", thePlayer, 255, 0, 0) end end end) Só pra ressaltar, isso ira remover todos veículos que o cara passar pelo marker, portanto não é nada viável, pois qualquer veículo irá poder ser deletado, então é melhor fazer da forma que já foi dito por tabela, basta ele adicionar os veículos na tabela quando for criado e o código dele ira funcionar, mas se quiser usar esse, o servidor é dele ele que sabe. Edited June 14, 2019 by Jonas^
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