Jump to content

Ajuda a criar Marker de destruir Veiculo


Recommended Posts

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

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

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

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

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

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 by Jonas^
Link to comment

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