Jump to content

[AJUDA] If não funciona?


Recommended Posts

Olá, estou tendo um problema que talvez seja fácil de resolver, quebrei cabeça mas até agora nada. O problema é que mesmo eu verificando com if isPedInVehicle(source) se o jogador estiver realmente em um carro ele não será teleportado, mas parece que não está funcionando, veja:

SERVER.Lua

local markerInput = createMarker(1555.1072998047, -1675.6097412109, 16.69611, "arrow", 1, 255,255,0, 50)
local markerOutput = createMarker(1555.1072998047, -1675.6097412109, 16.69611, "arrow", 1, 255,255,0, 50)

function inputPD(source)

	local isPed = isPedInVehicle(source)

	if (isPed == false) then
		if isElementWithinMarker(source, markerInput) then

		setElementInterior(source, 6)
		setElementPosition(source, 246.6756439209,65.71768951416,1003.640625, true)
		outputChatBox("#ffffff| SS | Você entrou na #ff0000Delegacia de Polícia#ffffff.", source, 255,255,255, true)

		end
	else
		outputChatBox("#ffffff| SS | Você não pode entrar com veículo na DP.", source, 255,255,255, true)
	end
end
addEventHandler("onMarkerHit", getRootElement(), inputPD)

Obs.: A mensagem do else aquela do outputChatBox aparece, mas mesmo assim o jogador é teleportado, veja:

https://prnt.sc/plhefn

Link to comment
  • Other Languages Moderators

Já falei da outra vez e vou repetir: Não use source como parâmetro de função.

local markerInput = createMarker (1555.1072998047, -1675.6097412109, 16.69611, "arrow", 1, 255, 255, 0, 50)
local markerOutput = createMarker (1555.1072998047, -1675.6097412109, 16.69611, "arrow", 1, 255, 255, 0, 50)

function inputPD (hitElement)
	if (hitElement and getElementType (hitElement) == "player") then
		if (getPedOccupiedVehicle (hitElement)) then
			outputChatBox ("| SS | Você não pode entrar com veículo na DP.", hitElement, 255, 255, 255)
		else
			setElementInterior (hitElement, 6)
			setElementPosition (hitElement, 246.6756439209, 65.71768951416, 1003.640625, true)
			outputChatBox ("| SS | Você entrou na #ff0000Delegacia de Polícia#ffffff.", hitElement, 255, 255, 255, true)
		end
	end
end
addEventHandler ("onMarkerHit", markerInput, inputPD)

Sobre o problema da mensagem aparecer e o jogador teleportar mesmo assim, é porque sua função estava sendo executada 2x, uma pro carro que colidiu no marker e outra pro jogador que colidiu no marker.

Para corrigir esse problema, basta adicionar uma condição para que a função só funcione se o elemento que colidiu for um player.

Edited by Lord Henry
  • Thanks 1
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...