ytjuliocesar Posted June 13, 2019 Share 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 Link to comment
DNL291 Posted June 13, 2019 Share Posted June 13, 2019 O elemento-veículo deve ser armazenado na tabela Veh e não tem nenhum createVehicle nesse código. Link to comment
ytjuliocesar Posted June 14, 2019 Author Share 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. Link to comment
[M]ister Posted June 14, 2019 Share 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. Link to comment
ytjuliocesar Posted June 14, 2019 Author Share 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) Link to comment
[M]ister Posted June 14, 2019 Share 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. Link to comment
ytjuliocesar Posted June 14, 2019 Author Share 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) Link to comment
[M]ister Posted June 14, 2019 Share 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. Link to comment
ytjuliocesar Posted June 14, 2019 Author Share 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. Link to comment
[M]ister Posted June 14, 2019 Share Posted June 14, 2019 Lá na última linha tá destroyElement, troque por DestroyMarker (confundi quando reescrevi o trecho) 1 Link to comment
ytjuliocesar Posted June 14, 2019 Author Share 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. Link to comment
ytjuliocesar Posted June 14, 2019 Author Share 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. Link to comment
#DeltaSCR Posted June 14, 2019 Share 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. Link to comment
Jonas^ Posted June 14, 2019 Share 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^ 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