Jump to content

Ajuda


Recommended Posts

Posted

Eai, pessoal  poderiam me ajudar com isso 

Lado Client 

createMarkerLocations1 = {
	{231.41704, 1877.68689, 17.64063 -1, "cylinder", 4, 0 ,255 ,0, 255},
	{231.41704, 1877.68689, 17.64063 -1, "cylinder", 4, 255, 255, 0, 170 },
	{231.41704, 1877.68689, 17.64063 -1, "cylinder", 4, 255, 255, 0, 170},
	{231.41704, 1877.68689, 17.64063 -1, "cylinder", 4, 255, 255, 0, 170 },
	{231.41704, 1877.68689, 17.64063 -1, "cylinder", 4, 255, 255, 0, 170},
}

createMarkerLocations2 = {
	{231.85756, 1892.57666, 17.64063 -1, "cylinder", 4, 0 ,255 ,0, 255},
	{231.85756, 1892.57666, 17.64063 -1, "cylinder", 4, 255, 255, 0, 170 },
	{231.85756, 1892.57666, 17.64063 -1, "cylinder", 4, 255, 255, 0, 170},
	{231.85756, 1892.57666, 17.64063 -1, "cylinder", 4, 255, 255, 0, 170 },
	{231.85756, 1892.57666, 17.64063 -1, "cylinder", 4, 255, 255, 0, 170},
}


createMarkerLocations3 = {
	{229.22476, 1906.36658, 17.64063 -1, "cylinder", 4, 0 ,255 ,0, 255},
	{229.22476, 1906.36658, 17.64063 -1, "cylinder", 4, 255, 255, 0, 170 },
	{229.22476, 1906.36658, 17.64063 -1, "cylinder", 4, 255, 255, 0, 170},
	{229.22476, 1906.36658, 17.64063 -1, "cylinder", 4, 255, 255, 0, 170 },
	{229.22476, 1906.36658, 17.64063 -1, "cylinder", 4, 255, 255, 0, 170},
}


createMarkerLocations4 = {
	{212.10025, 1908.91870, 17.64063 -1, "cylinder", 4, 0 ,255 ,0, 255},
	{212.10025, 1908.91870, 17.64063 -1, "cylinder", 4, 255, 255, 0, 170 },
	{212.10025, 1908.91870, 17.64063 -1, "cylinder", 4, 255, 255, 0, 170},
	{212.10025, 1908.91870, 17.64063 -1, "cylinder", 4, 255, 255, 0, 170 },
	{212.10025, 1908.91870, 17.64063 -1, "cylinder", 4, 255, 255, 0, 170},
}


createMarkerLocations5 = {
	{192.29828, 1911.02271, 17.64063 -1, "cylinder", 4, 0 ,255 ,0, 255},
	{192.29828, 1911.02271, 17.64063 -1, "cylinder", 4, 255, 255, 0, 170 },
	{192.29828, 1911.02271, 17.64063 -1, "cylinder", 4, 255, 255, 0, 170},
	{192.29828, 1911.02271, 17.64063 -1, "cylinder", 4, 255, 255, 0, 170 },
	{192.29828, 1911.02271, 17.64063 -1, "cylinder", 4, 255, 255, 0, 170},
}


function callServerFunction()

	function createRandomMarker(table)
		local randomRow = math.random(1,#table)
		return createMarker(table[randomRow][1], table[randomRow][2], table[randomRow][3], table[randomRow][4], table[randomRow][5], table[randomRow][6], table[randomRow][7], table[randomRow][8], table[randomRow][9])
	end


	local markerElement1 = createRandomMarker(createMarkerLocations1)
	markerFim1 = createBlipAttachedTo ( markerElement1, 19 )
	local markerElement2 = createRandomMarker(createMarkerLocations2)
	markerFim2 = createBlipAttachedTo ( markerElement2, 19 )
	local markerElement3 = createRandomMarker(createMarkerLocations3)
	markerFim3 = createBlipAttachedTo ( markerElement3, 19 )	
	local markerElement4 = createRandomMarker(createMarkerLocations4)
	markerFim4 = createBlipAttachedTo ( markerElement4, 19 )
	local markerElement5 = createRandomMarker(createMarkerLocations5)
	markerFim5 = createBlipAttachedTo ( markerElement5, 19 )
	
		function partfim1 (source)
				if veh5[client] and isElement(veh5[client]) then
					cardrivepoints = cardrivepoints+1
					outputChatBox("Funcionando!",source,0,0,0,true)
					destroyElement (markerElement1)
					setElementVisibleTo ( markerFim1, root, false )
				end
				if cardrivepoints >= 5 then 
					completed(source) 	
				end	
		end
		addEventHandler("onClientMarkerHit",markerElement1 ,partfim1)

		function partfim2 (source)
				if veh5[source] and isElement(veh5[source]) then
					cardrivepoints = cardrivepoints+1
					outputChatBox("Funcionando!",source,0,0,0,true)
					destroyElement (markerElement2)
					setElementVisibleTo ( markerFim2, root, false )
				end
				if cardrivepoints >= 5 then 
					completed(source) 	
				end	
		end
		addEventHandler("onClientMarkerHit",markerElement2 ,partfim2)

		function partfim3 (source)
				if callServerFunction (server, veh5[source]) and isElement(veh5[source]) then
					cardrivepoints = cardrivepoints+1
					outputChatBox("Funcionando!",source,0,0,0,true)
					destroyElement (markerElement3)
					setElementVisibleTo ( markerFim3, root, false )
				end
				if cardrivepoints >= 5 then 
					completed(source) 	
				end	
		end
		addEventHandler("onClientMarkerHit",markerElement3 ,partfim3)

		function partfim4 (source)
				if veh5[source] and isElement(veh5[source]) then
					cardrivepoints = cardrivepoints+1
					outputChatBox("Funcionando!",source,0,0,0,true)
					destroyElement (markerElement4)
					setElementVisibleTo ( markerFim4, root, false )
				end
				if cardrivepoints >= 5 then 
					completed(source) 	
				end	
		end
		addEventHandler("onClientMarkerHit",markerElement4 ,partfim4)

		function partfim5 (source)
				if veh5[source] and isElement(veh5[source]) then
					cardrivepoints = cardrivepoints+1
					outputChatBox("Funcionando!",source,0,0,0,true)
					destroyElement (markerElement5)
					setElementVisibleTo ( markerFim5, root, false )
				end
				if cardrivepoints >= 5 then 
					completed(source) 	
				end						
		end
		addEventHandler("onClientMarkerHit",markerElement5 ,partfim5)
end
addEvent ("mission5", true)
addEventHandler ("mission5", getRootElement(), callServerFunction)

Este é o lada server bom meu problema e fazer ele detectar o veiculo que foi criado no lado server, mas " if veh5[source] and is Element (veh5[source]) then " ele não funciona no lado client o que devo fazer pra resolver isso, alguem pode me ajudar ?

--mission five--
cardrivepoints = 0
i = 1 -- contador global
veh5 = {}
 -- Recomendo que evite posi趥s decimais muito grandes. Use s?頳 casas decimais.
localitionveh55 = {
	[1] = {401, 216.82504, 1870.22961, 17.3440, 0, 0, 270},
	[2] = {401, 216.82504, 1870.22961, 17.3440, 0, 0, 270},
	[3] = {401, 216.82504, 1870.22961, 17.3440, 0, 0, 270},
	[4] = {401, 216.82504, 1870.22961, 17.3440, 0, 0, 270},
	[5] = {401, 216.82504, 1870.22961, 17.3440, 0, 0, 270},
 -- O primeiro, quinto e sexto valor das posi趥s n䯠est䯠sendo usados. Recomendo que delete-os.
}
	
function inicio5 ()
	if isElement (veh5[client]) then -- Client = localPlayer, somente neste caso.
		destroyElement (veh5[client])
		veh5[client] = nil
	end
	local vx ,vy, vz, vrot = localitionveh55[ i ][ 2 ], localitionveh55[ i ][ 3 ], localitionveh55[ i ][ 4 ], localitionveh55[ i ][ 7 ]
	i = i + 1
	if i > #localitionveh55 then -- se i > 5, ent䯺
		i = 1
	end
	Trabalho = true
	veh5[client] = createVehicle ( 401, vx, vy, vz, 0, 0, vrot )
	warpPedIntoVehicle (client, veh5[client])
	outputChatBox ("#ffff00Drive the veh5icle to the checkpoint. Note: You cannot leave the car during the mission.", client, 0, 0, 0, true)
	triggerClientEvent (client, "mission5", client)
	
	local player2 = client
	addEventHandler ( "onVehicleExplode", veh5[client], function ()
		if (veh5[player2]) and isElement(veh5[player2]) then
			destroyElement (source)
			takePlayerMoney ( player2, 5000 )
			outputChatBox("Mission failed, your veh5icle blew up.", player2 , 255, 0, 0)
		end
	end)
end
addEvent ("iniciaJob5", true) -- Cria o evento "iniciaJob e permite que ele seja chamado pelo client.
addEventHandler ("iniciaJob5", getRootElement(), inicio5) -- Executa essa fun褯 quando o evento "iniciaJob" for chamado.

 

Posted
4 hours ago, brunob22 said:

codigo incompleto.. impossivel entender alguma coisa ai pelo menos para mim

O codigo esta completo unica parte que falta e da "iniciajob5" e onde esta a GuiList, queria saber como fazer para detectar o veh5 que esta no lado serve, no lado client.

Exemplo quando passo em cima do "Marker" a função não funciona devido o veh estar no lado  server, exeste uma maneira de faze-lo detectar o veh ?

Posted
1 minute ago, kevincouto6 said:

O codigo esta completo unica parte que falta e da "iniciajob5" e onde esta a GuiList, queria saber como fazer para detectar o veh5 que esta no lado serve, no lado client.

Exemplo quando passo em cima do "Marker" a função não funciona devido o veh estar no lado  server, exeste uma maneira de faze-lo detectar o veh ?

entendi agora..

tenta isso 

troca isso 

triggerClientEvent (client, "mission5", client)

por isso 

triggerClientEvent (client, "mission5", client,veh5)

no client 

mude 

function callServerFunction()

por

function callServerFunction(veh5)

 e assim use a variavel " veh5 " em lado client

se funcionar avisa

Posted
44 minutes ago, brunob22 said:

 

Olá funcionou porem um pouco diferente, agora tenho que descobrir como usar o "setElementVisibleTo" essa função só funciona no server estao estou tentando usar triggerServerEvent Porem não consigo fazer não detecta o "CreateBlipAttachedTo" que foi criado no client tem alguma dica ou idea para eu usar ?

Posted
26 minutes ago, kevincouto6 said:

Olá funcionou porem um pouco diferente, agora tenho que descobrir como usar o "setElementVisibleTo" essa função só funciona no server estao estou tentando usar triggerServerEvent Porem não consigo fazer não detecta o "CreateBlipAttachedTo" que foi criado no client tem alguma dica ou idea para eu usar ?

não entendi

 

Posted (edited)

Alguns erros no lado client:

  • Você tá usando uma função que é server-side ("setElementVisibleTo") e além disso não é necessário fazer isso no client, visto que tudo executa só para o jogador local.
  • outputChatBox está recebendo um argumento "source" sendo que no client não é necessário; todas outputs no client funciona só para o jogador local.
  • O valor "client" é usado no lado server, isso serve para a validação do jogador local. Use localPlayer. Edit: no caso ali deve ser o parâmetro hitPlayer, que foi definido como "source"

Sobre a detecção do veículo, só fazer o que já foi dito - enviar o elemento no evento "mission5"

Edited by DNL291

Please do not PM me with scripting related question nor support, use the forums instead.

Posted
36 minutes ago, DNL291 said:

 

Assim esta o script porem agora tenho que Deletar os BLIP conforme os jogador coletar os Marker, só q para isso a função que deixa invisivel funciona apenas no lado server, e os BLIP foram criados no lado Client como fasso para deixa-los invisiveis

Client-side 

----------------------------------------------------------------------------------------

cardrivepoints = 0

local createMarkerLocations1 = {
	{231.41704, 1877.68689, 17.64063 -1, "cylinder", 4, 0 ,255 ,0, 255},
	{231.41704, 1877.68689, 17.64063 -1, "cylinder", 4, 255, 255, 0, 170 },
	{231.41704, 1877.68689, 17.64063 -1, "cylinder", 4, 255, 255, 0, 170},
	{231.41704, 1877.68689, 17.64063 -1, "cylinder", 4, 255, 255, 0, 170 },
	{231.41704, 1877.68689, 17.64063 -1, "cylinder", 4, 255, 255, 0, 170},
}

local createMarkerLocations2 = {
	{231.85756, 1892.57666, 17.64063 -1, "cylinder", 4, 0 ,255 ,0, 255},
	{231.85756, 1892.57666, 17.64063 -1, "cylinder", 4, 255, 255, 0, 170 },
	{231.85756, 1892.57666, 17.64063 -1, "cylinder", 4, 255, 255, 0, 170},
	{231.85756, 1892.57666, 17.64063 -1, "cylinder", 4, 255, 255, 0, 170 },
	{231.85756, 1892.57666, 17.64063 -1, "cylinder", 4, 255, 255, 0, 170},
}


local createMarkerLocations3 = {
	{229.22476, 1906.36658, 17.64063 -1, "cylinder", 4, 0 ,255 ,0, 255},
	{229.22476, 1906.36658, 17.64063 -1, "cylinder", 4, 255, 255, 0, 170 },
	{229.22476, 1906.36658, 17.64063 -1, "cylinder", 4, 255, 255, 0, 170},
	{229.22476, 1906.36658, 17.64063 -1, "cylinder", 4, 255, 255, 0, 170 },
	{229.22476, 1906.36658, 17.64063 -1, "cylinder", 4, 255, 255, 0, 170},
}


local createMarkerLocations4 = {
	{212.10025, 1908.91870, 17.64063 -1, "cylinder", 4, 0 ,255 ,0, 255},
	{212.10025, 1908.91870, 17.64063 -1, "cylinder", 4, 255, 255, 0, 170 },
	{212.10025, 1908.91870, 17.64063 -1, "cylinder", 4, 255, 255, 0, 170},
	{212.10025, 1908.91870, 17.64063 -1, "cylinder", 4, 255, 255, 0, 170 },
	{212.10025, 1908.91870, 17.64063 -1, "cylinder", 4, 255, 255, 0, 170},
}


local createMarkerLocations5 = {
	{192.29828, 1911.02271, 17.64063 -1, "cylinder", 4, 0 ,255 ,0, 255},
	{192.29828, 1911.02271, 17.64063 -1, "cylinder", 4, 255, 255, 0, 170 },
	{192.29828, 1911.02271, 17.64063 -1, "cylinder", 4, 255, 255, 0, 170},
	{192.29828, 1911.02271, 17.64063 -1, "cylinder", 4, 255, 255, 0, 170 },
	{192.29828, 1911.02271, 17.64063 -1, "cylinder", 4, 255, 255, 0, 170},
}


function outher ()
		function createRandomMarker(table)
		local randomRow = math.random(1,#table)
		return createMarker(table[randomRow][1], table[randomRow][2], table[randomRow][3], table[randomRow][4], table[randomRow][5], table[randomRow][6], table[randomRow][7], table[randomRow][8], table[randomRow][9])
	end
	
	 markerElement1 = createRandomMarker(createMarkerLocations1)
	markerFim1 = createBlipAttachedTo ( markerElement1, 19 )
	 markerElement2 = createRandomMarker(createMarkerLocations2)
	markerFim2 = createBlipAttachedTo ( markerElement2, 19 )
	 markerElement3 = createRandomMarker(createMarkerLocations3)
	markerFim3 = createBlipAttachedTo ( markerElement3, 19 )	
	 markerElement4 = createRandomMarker(createMarkerLocations4)
	markerFim4 = createBlipAttachedTo ( markerElement4, 19 )
	 markerElement5 = createRandomMarker(createMarkerLocations5)
	markerFim5 = createBlipAttachedTo ( markerElement5, 19 )
	

end
addEvent ("mission5", true)
addEventHandler ("mission5", getRootElement(), outher)

function callServerFunction (veh5)

		function partfim1 (source)
				if veh5[source] and isElement(veh5[source]) then
					cardrivepoints = cardrivepoints+1
					destroyElement (markerElement1)
				end
				if cardrivepoints >= 1 then 
					triggerServerEvent ("completedMissionCollect", localPlayer)	
				end	
		end
		addEventHandler("onClientMarkerHit",markerElement1 ,partfim1)

		function partfim2 (source)
				if veh5[source] and isElement(veh5[source]) then
					cardrivepoints = cardrivepoints+1
					destroyElement (markerElement2)
				end
				if cardrivepoints >= 1 then 
					triggerServerEvent ("completedMissionCollect", localPlayer)	
				end	
		end
		addEventHandler("onClientMarkerHit",markerElement2 ,partfim2)

		function partfim3 (source)
				if veh5[source] and isElement(veh5[source]) then
					cardrivepoints = cardrivepoints+1
					destroyElement (markerElement3)
				end
				if cardrivepoints >= 1 then 
					triggerServerEvent ("completedMissionCollect", localPlayer)	
				end	
		end
		addEventHandler("onClientMarkerHit",markerElement3 ,partfim3)

		function partfim4 (source)
				if veh5[source] and isElement(veh5[source]) then
					cardrivepoints = cardrivepoints+1
					destroyElement (markerElement4)
				end
				if cardrivepoints >= 1 then 
					triggerServerEvent ("completedMissionCollect", localPlayer)	
				end	
		end
		addEventHandler("onClientMarkerHit",markerElement4 ,partfim4)

		function partfim5 (source)
				if veh5[source] and isElement(veh5[source]) then
					cardrivepoints = cardrivepoints+1
					destroyElement (markerElement5)
				end
				if cardrivepoints >= 1 then 
					triggerServerEvent ("completedMissionCollect", localPlayer)	
				end						
		end
		addEventHandler("onClientMarkerHit",markerElement5 ,partfim5)
end
addEvent ("mission5", true)
addEventHandler ("mission5", getRootElement(), callServerFunction)

server-side

--mission five--

i = 1 -- contador global

veh5 = {}

 -- Recomendo que evite posi趥s decimais muito grandes. Use s?頳 casas decimais.
localitionveh55 = {
	[1] = {401, 216.82504, 1870.22961, 17.3440, 0, 0, 270},
	[2] = {401, 216.82504, 1870.22961, 17.3440, 0, 0, 270},
	[3] = {401, 216.82504, 1870.22961, 17.3440, 0, 0, 270},
	[4] = {401, 216.82504, 1870.22961, 17.3440, 0, 0, 270},
	[5] = {401, 216.82504, 1870.22961, 17.3440, 0, 0, 270},
 -- O primeiro, quinto e sexto valor das posi趥s n䯠est䯠sendo usados. Recomendo que delete-os.
}
	
function inicio5 ()
	if isElement (veh5[client]) then -- Client = localPlayer, somente neste caso.
		destroyElement (veh5[client])
		veh5[client] = nil
	end
	local vx ,vy, vz, vrot = localitionveh55[ i ][ 2 ], localitionveh55[ i ][ 3 ], localitionveh55[ i ][ 4 ], localitionveh55[ i ][ 7 ]
	i = i + 1
	if i > #localitionveh55 then -- se i > 5, ent䯺
		i = 1
	end
	Trabalho = true
	veh5[client] = createVehicle ( 401, vx, vy, vz, 0, 0, vrot )
	warpPedIntoVehicle (client, veh5[client])
	outputChatBox ("#ffff00Drive the veh5icle to the checkpoint. Note: You cannot leave the car during the mission.", client, 0, 0, 0, true)

	triggerClientEvent (client, "mission5", client,veh5)
	
	
	local player2 = client
	addEventHandler ( "onVehicleExplode", veh5[client], function ()
		if (veh5[player2]) and isElement(veh5[player2]) then
			destroyElement (source)
			takePlayerMoney ( player2, 5000 )
			outputChatBox("Mission failed, your veh5icle blew up.", player2 , 255, 0, 0)
		end
	end)
end
addEvent ("iniciaJob5", true) -- Cria o evento "iniciaJob e permite que ele seja chamado pelo client.
addEventHandler ("iniciaJob5", getRootElement(), inicio5) -- Executa essa fun褯 quando o evento "iniciaJob" for chamado.

function sair5 (source)
	if (veh5[source]) and isElement(veh5[source]) then
		destroyElement (veh5[source])
		takePlayerMoney ( source, 5000 )
		outputChatBox("#ff0000Mission failed, you have left the veh5icle.", source ,0,0,0,true)
	else
	end
end
addEventHandler ( "onVehicleExit", getRootElement(), sair5 )


function morrer5() 
	if (veh5[source]) and isElement(veh5[source]) then
		destroyElement (veh5[source])
		takePlayerMoney ( source, 5000 )
		outputChatBox("#ff0000Mission failed, you have left the veh5icle.", source ,0,0,0,true)
	else
	end
end 
addEventHandler("onPlayerWasted", root, morrer5) 

function completed(source)
	if veh5[source] and isElement(veh5[source]) then
		destroyElement (veh5[source])
		givePlayerMoney(source,20000)
		cardrivepoints = 0
		outputChatBox("#00ff00Mission passed. You successfully completed this task. You've received $10.000!",source,0,0,0,true)
	else
	end
end
addEvent ("completedMissionCollect", true)
addEventHandler ("completedMissionCollect", getRootElement(), MissionWin)

 

Posted (edited)

Eu sinceramente não entendi o porquê deixar o blip invisível, ocultar os elementos de outros jogadores não vai ser necessário, como eu já disse. É  por isso mesmo que nesses tipos de scripts você deve criar o(s) elemento(s) que devem mostrar ao jogador local no lado client.

O script tá feito de uma forma meio bagunçada, mas vamos lá: Você quer que remova o blip vinculado ao marker, basta usar destroyElement( marker ) usando a variável da marker correspondente. Exemplo:

cardrivepoints = cardrivepoints+1
destroyElement (markerElement1)
destroyElement(markerFim1)
if cardrivepoints >= 1 then 
	triggerServerEvent ("completedMissionCollect", localPlayer)	
end	

 

Edited by DNL291

Please do not PM me with scripting related question nor support, use the forums instead.

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