Jump to content

Ajuda em marker teleporte


Recommended Posts

E ai gurizada! Bom eu to fazendo marker de teleporte para as prefeituras em: LS, SF e LV, porém estou enfrentando um problema... Quando eu entro na prefeitura de LS e quero sair de dentro dela, ela me teleporta pra frente da prefeitura de SF , mesma coisa funciona para o de LV me teleporta para SF, também já mexi nos argumentos e nada,  eu fiquei em dúvida para bloquear o teleporte com o veiculo usando a função "isPedInVehicle" mas também não consegui se poder me ajudar com algum exemplo, ficarei grato.

Obs: debugscript 3 sem erros

-- Prefeitura de Los Santos
mEnCenLS = createMarker (1481.12158, -1771.80811, 17.79576, "cylinder", 1.5, 255, 0, 0)
mSaiCenLS = createMarker (390.03101, 173.79352, 1007.38281, "cylinder", 1.5, 255, 0, 0)
mEmpLS = createMarker (362.47623, 173.74311, 1007.38281, "cylinder", 1.25, 255, 255, 0) -- Marker para o painel de empregos
setElementInterior (mEmpLS, 3)
setElementDimension (mEmpLS, 1)
setElementInterior (mSaiCenLS, 3)
setElementDimension (mSaiCenLS, 1)
createBlipAttachedTo (mEnCenLS, 40, 2, 255, 0, 0, 255, 0, 2000)

function entradaCenLS (ThePlayer)
	   if source == mEnCenLS then
		fadeCamera (ThePlayer, false)
		setTimer (fadeCamera, 1000, 1, ThePlayer, true)
		setTimer (setElementInterior, 1000, 1, ThePlayer, 3)
	    setTimer (setElementDimension, 1000, 1, ThePlayer, 1)
		setTimer (setElementPosition, 1000, 1, ThePlayer, 384.808624, 173.804992, 1008.382812, true)
		setTimer (setPedRotation, 1000, 1, ThePlayer, 90)
end
       end

addEventHandler ("onMarkerHit", root, entradaCenLS)

function saidaCenLS (ThePlayer)
	   if source == mSaiCenLS then
		fadeCamera (ThePlayer, false)
		setTimer (fadeCamera, 1000, 1, ThePlayer, true)
		setTimer (setElementInterior, 1000, 1, ThePlayer, 0)
	    setTimer (setElementDimension, 1000, 1, ThePlayer, 0)
		setTimer (setElementPosition, 1000, 1, ThePlayer, 1480.92151, -1769.21472, 18.79576, true)
		setTimer (setPedRotation, 1000, 1, ThePlayer, 0)
end
       end

addEventHandler ("onMarkerHit", root, saidaCenLS)

-- Prefeitura de San Fierro
mEnCenSF = createMarker (-2765.90918, 375.61075, 5.33468, "cylinder", 1.5, 255, 0, 0)
mSaiCenSF = createMarker (390.03101, 173.79352, 1007.38281, "cylinder", 1.5, 255, 0, 0)
mEmpSF = createMarker (362.47623, 173.74311, 1007.38281, "cylinder", 1.25, 255, 255, 0) -- Marker para o painel de empregos
setElementInterior (mEmpSF, 3)
setElementDimension (mEmpSF, 2)
setElementInterior (mSaiCenSF, 3)
setElementDimension (mSaiCenSF, 2)
createBlipAttachedTo (mEnCenSF, 40, 2, 255, 0, 0, 255, 0, 2000)

function entradaCenSF (ThePlayer)
	   if source == mEnCenSF then
		fadeCamera (ThePlayer, false)
		setTimer (fadeCamera, 1000, 1, ThePlayer, true)
		setTimer (setElementInterior, 1000, 1, ThePlayer, 3)
	    setTimer (setElementDimension, 1000, 1, ThePlayer, 2)
		setTimer (setElementPosition, 1000, 1, ThePlayer, 384.808624, 173.804992, 1008.382812, true)
		setTimer (setPedRotation, 1000, 1, ThePlayer, 90)
		end
end

addEventHandler ("onMarkerHit", root, entradaCenSF)

function saidaCenSF (ThePlayer)
	   if source == mSaiCenSF then
		fadeCamera (ThePlayer, false)
		setTimer (fadeCamera, 1000, 1, ThePlayer, true)
		setTimer (setElementInterior, 1000, 1, ThePlayer, 0)
	    setTimer (setElementDimension, 1000, 1, ThePlayer, 0)
		setTimer (setElementPosition, 1000, 1, ThePlayer, -2758.36792, 375.67731, 4.33452, true)
		setTimer (setPedRotation, 1000, 1, ThePlayer, 265)
end
       end

addEventHandler ("onMarkerHit", root, saidaCenSF)

-- Prefeitura de Las Venturas
mEnCenLV = createMarker (2375.59912, 2307.55103, 7.14063, "cylinder", 1.5, 255, 0, 0)
mSaiCenLV = createMarker (390.03101, 173.79352, 1007.38281, "cylinder", 1.5, 255, 0, 0)
mEmpLV = createMarker (362.47623, 173.74311, 1007.38281, "cylinder", 1.25, 255, 255, 0) -- Marker para o painel de empregos
setElementInterior (mEmpLV, 3)
setElementDimension (mEmpLV, 3)
setElementInterior (mSaiCenLV, 3)
setElementDimension (mSaiCenLV, 3)
createBlipAttachedTo (mEnCenLV, 40, 2, 255, 0, 0, 255, 0, 2000)

function entradaCenLV (ThePlayer)
	   if source == mEnCenLV then
		fadeCamera (ThePlayer, false)
		setTimer (fadeCamera, 1000, 1, ThePlayer, true)
		setTimer (setElementInterior, 1000, 1, ThePlayer, 3)
	    setTimer (setElementDimension, 1000, 1, ThePlayer, 3)
		setTimer (setElementPosition, 1000, 1, ThePlayer, 384.808624, 173.804992, 1008.382812, true)
		setTimer (setPedRotation, 1000, 1, ThePlayer, 90)
		end
end

addEventHandler ("onMarkerHit", root, entradaCenLV)

function saidaCenLV (ThePlayer)
	   if source == mSaiCenLV then
		fadeCamera (ThePlayer, false)
		setTimer (fadeCamera, 1000, 1, ThePlayer, true)
		setTimer (setElementInterior, 1000, 1, ThePlayer, 0)
	    setTimer (setElementDimension, 1000, 1, ThePlayer, 0)
		setTimer (setElementPosition, 1000, 1, ThePlayer, 2375.73682, 2311.94019, 8.14063, true)
		setTimer (setPedRotation, 1000, 1, ThePlayer, 0)
end
       end

addEventHandler ("onMarkerHit", root, saidaCenLV)

 

Edited by #Gubiani
Obs: debuscript sem erro
Link to comment
  • Other Languages Moderators

Isso acontece pois você está usando a mesma posição para todos os markers de saída, ao colidir em um, está ativando nos demais também. Você precisa usar o parâmetro de matchingDimension para que só funcione se o jogador estiver na mesma dimensão que o marker.

Ta ae, deixei comentários pra ficar melhor de entender e algumas observações.

-- Prefeitura de Los Santos
mEnCenLS = createMarker (1481.12, -1771.81, 17.8, "cylinder", 1.5, 255, 0, 0) -- Evite posições muito decimadas. Prefira no máximo 2 casas decimais.
mSaiCenLS = createMarker (390.03, 173.8, 1007.38, "cylinder", 1.5, 255, 0, 0) -- Saiba que esse tipo de marker possui colisão igual ao de tipo checkpoint.
mEmpLS = createMarker (362.48, 173.74, 1007.38, "cylinder", 1.25, 255, 255, 0) -- Marker para o painel de empregos
setElementInterior (mEmpLS, 3)
setElementDimension (mEmpLS, 1)
setElementInterior (mSaiCenLS, 3)
setElementDimension (mSaiCenLS, 1)
createBlipAttachedTo (mEnCenLS, 40, 2, 255, 0, 0, 255, 0, 600) -- Distância não deve ser grande demais para evitar excesso de blips no radar.

-- Prefeitura de San Fierro
mEnCenSF = createMarker (-2765.90918, 375.61075, 5.33468, "cylinder", 1.5, 255, 0, 0)
mSaiCenSF = createMarker (390.03101, 173.79352, 1007.38281, "cylinder", 1.5, 255, 0, 0)
mEmpSF = createMarker (362.47623, 173.74311, 1007.38281, "cylinder", 1.25, 255, 255, 0) -- Marker para o painel de empregos
setElementInterior (mEmpSF, 3)
setElementDimension (mEmpSF, 2)
setElementInterior (mSaiCenSF, 3)
setElementDimension (mSaiCenSF, 2)
createBlipAttachedTo (mEnCenSF, 40, 2, 255, 0, 0, 255, 0, 600)

-- Prefeitura de Las Venturas
mEnCenLV = createMarker (2375.6, 2307.55, 7.14, "cylinder", 1.5, 255, 0, 0)
mSaiCenLV = createMarker (390, 173.8, 1007.38, "cylinder", 1.5, 255, 0, 0)
mEmpLV = createMarker (362.48, 173.74, 1007.38, "cylinder", 1.25, 255, 255, 0) -- Marker para o painel de empregos
setElementInterior (mEmpLV, 3)
setElementDimension (mEmpLV, 3)
setElementInterior (mSaiCenLV, 3)
setElementDimension (mSaiCenLV, 3)
createBlipAttachedTo (mEnCenLV, 40, 2, 255, 0, 0, 255, 0, 2000)

function fadeMe (thePlayer)
	fadeCamera (thePlayer, false)
	setTimer (fadeCamera, 2000, 1, thePlayer, true) -- Optei por demorar mais pra voltar a câmera para não pegar o interior sendo carregado.
end

function telesPref (hitElement, matchingDimension) -- Função de todos os markers. Pois vc colocou root no addEventHandler.
	if source == mEnCenLS then -- Entrada da Prefeitura de LS.
		if matchingDimension then -- Se o elemento que colidiu está na mesma dimensão do marker, então:
			if hitElement and getElementType (hitElement) == "player" then -- Se o elemento que colidiu for um player, então:
				if not getPedOccupiedVehicle (hitElement) then -- Se o jogador que colidiu não estiver em um veículo, então:
					fadeMe (hitElement) -- Escurece a câmera do player e volta ao normal depois de 2 segundos.
					setTimer (setElementInterior, 1000, 1, hitElement, 3) -- Depois de escurecer, seta o jogador no interior 3.
					setTimer (setElementDimension, 1000, 1, hitElement, 1) -- Depois de escurecer, seta o jogador na dimensão 1.
					setTimer (setElementPosition, 1000, 1, hitElement, 384.8, 173.8, 1008.38, true) -- Depois de escurecer, seta o jogador na posição de dentro.
					setTimer (setPedRotation, 1000, 1, hitElement, 90) -- Depois de escurecer, aponta o jogador para oeste.
					-- 1 segundo depois, volta a câmera ao normal.
				end
			end
		end
	elseif source == mSaiCenLS then -- Saída da Prefeitura de LS.
		if matchingDimension then
			if hitElement and getElementType (hitElement) == "player" then
				if not getPedOccupiedVehicle (hitElement) then
					fadeMe (hitElement)
					setTimer (setElementInterior, 1000, 1, hitElement, 0)
					setTimer (setElementDimension, 1000, 1, hitElement, 0)
					setTimer (setElementPosition, 1000, 1, hitElement, 1480.92, -1769.21, 18.79, true)
					setTimer (setPedRotation, 1000, 1, hitElement, 0) -- Aponta o jogador para o norte.
				end
			end
		end
	elseif source == mEnCenSF then -- Entrada da Prefeitura de SF.
		if matchingDimension then
			if hitElement and getElementType (hitElement) == "player" then
				if not getPedOccupiedVehicle (hitElement) then
					fadeMe (hitElement)
					setTimer (setElementInterior, 1000, 1, hitElement, 3)
					setTimer (setElementDimension, 1000, 1, hitElement, 2)
					setTimer (setElementPosition, 1000, 1, hitElement, 384.8, 173.8, 1008.38, true)
					setTimer (setPedRotation, 1000, 1, hitElement, 90)
				end
			end
		end
	elseif source == mSaiCenSF then -- Saída da Prefeitura de SF.
		if matchingDimension then
			if hitElement and getElementType (hitElement) == "player" then
				if not getPedOccupiedVehicle (hitElement) then
					fadeMe (hitElement)
					setTimer (setElementInterior, 1000, 1, hitElement, 0)
					setTimer (setElementDimension, 1000, 1, hitElement, 0)
					setTimer (setElementPosition, 1000, 1, hitElement, -2758.37, 375.68, 4.33, true)
					setTimer (setPedRotation, 1000, 1, hitElement, 270)
				end
			end
		end
	elseif source == mEnCenLV then -- Entrada da Prefeitura de LV.
		if matchingDimension then
			if hitElement and getElementType (hitElement) == "player" then
				if not getPedOccupiedVehicle (hitElement) then
					fadeMe (hitElement)
					setTimer (setElementInterior, 1000, 1, hitElement, 3)
					setTimer (setElementDimension, 1000, 1, hitElement, 3)
					setTimer (setElementPosition, 1000, 1, hitElement, 384.8, 173.8, 1008.38, true)
					setTimer (setPedRotation, 1000, 1, hitElement, 90)
				end
			end
		end
	elseif source == mSaiCenLV then -- Saída da Prefeitura de LV.
		if matchingDimension then
			if hitElement and getElementType (hitElement) == "player" then
				if not getPedOccupiedVehicle (hitElement) then
					fadeMe (hitElement)
					setTimer (setElementInterior, 1000, 1, hitElement, 0)
					setTimer (setElementDimension, 1000, 1, hitElement, 0)
					setTimer (setElementPosition, 1000, 1, hitElement, 2375.74, 2311.94, 8.14, true)
					setTimer (setPedRotation, 1000, 1, hitElement, 0)
				end
			end
		end
	end
end
addEventHandler ("onMarkerHit", root, telesPref) -- Executa essa função ao colidir com qualquer marker.

 

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