Jump to content

Tempo de Prisão.


Recommended Posts

Estou criando um script de prender o player e no caso quando o player coloca o tempo /prender (id) (tempo) ,  ex : /prender 3 10 sería 10 minutos e o player no setTimer seria 10 minutos , e como faço para outros valores?

Link to comment

É só você configurar direto no parâmetros do comando, e usar esse mesmo parâmetro no setTimer.

Exemplo:

function prenderJogador(thePlayer, cmd, valTimer) --// "valTimer" é o valor de tempo inserido pelo player que está acionando o comando.
	if not valTimer then --// Se tiver faltado o parâmetro de tempo, então:
		return outputChatBox("Faltaram parâmetros") --// Retorna uma mensagem informando a ausência ao jogador.
	end
	--// Seu código
	setTimer(function()
		--// Seu código
	end, (tonumber(valTimer)) * 60000, 1) --// Tempo declarado pelo player, multiplicado por 60000; 1m = 60000ms; Usei tonumber pois provável que o valor declarado pelo player virá como string.
end
addCommandHandler("prender", prenderJogador)

 

Link to comment

seguindo o exemplo do @#DeltaSCR antes do paramento valTimer declarado na function prenderJogador deve ter um parâmetro para o jogador colocar a ID do jogador.

function prenderJogador(thePlayer, cmd, playerid, valTimer) --// playerid é o valor id inserido pelo jogador // "valTimer" é o valor de tempo inserido pelo player que está acionando o comando.
  	-- verifica se o jogador digitou o parametro playerid
  	if not playerid then --// Se tiver faltado o parâmetro de playerid, então:
		return outputChatBox("Faltar colocar o id do jogador") --// Retorna uma mensagem informando a ausência ao jogador.
	end
  
	if not valTimer then --// Se tiver faltado o parâmetro de tempo, então:
		return outputChatBox("Faltaram parâmetros") --// Retorna uma mensagem informando a ausência ao jogador.
	end
	--// Seu código
	setTimer(function()
		--// Seu código
	end, (tonumber(valTimer)) * 60000, 1) --// Tempo declarado pelo player, multiplicado por 60000; 1m = 60000ms; Usei tonumber pois provável que o valor declarado pelo player virá como string.
end
addCommandHandler("prender", prenderJogador)

 

Link to comment
Just now, OrbTanT said:

seguindo o exemplo do @#DeltaSCR antes do paramento valTimer declarado na function prenderJogador deve ter um parâmetro para o jogador colocar a ID do jogador.


function prenderJogador(thePlayer, cmd, playerid, valTimer) --// playerid é o valor id inserido pelo jogador // "valTimer" é o valor de tempo inserido pelo player que está acionando o comando.
  	-- verifica se o jogador digitou o parametro playerid
  	if not playerid then --// Se tiver faltado o parâmetro de playerid, então:
		return outputChatBox("Faltar colocar o id do jogador") --// Retorna uma mensagem informando a ausência ao jogador.
	end
  
	if not valTimer then --// Se tiver faltado o parâmetro de tempo, então:
		return outputChatBox("Faltaram parâmetros") --// Retorna uma mensagem informando a ausência ao jogador.
	end
	--// Seu código
	setTimer(function()
		--// Seu código
	end, (tonumber(valTimer)) * 60000, 1) --// Tempo declarado pelo player, multiplicado por 60000; 1m = 60000ms; Usei tonumber pois provável que o valor declarado pelo player virá como string.
end
addCommandHandler("prender", prenderJogador)

 

Sim, aliás @Renazz, vale ressaltar também que você deve especificar o que é o parâmetro ID.

Link to comment
  • Moderators
12 hours ago, brunob22 said:

minha dica e não use setTimer. porque se o servidor trava o timer tb para ^^ pode causar ate bugs

Pela lógica na verdade tudo vai travar então, já que o server travou, então o setTimer seria o de menos.

  • Haha 2
Link to comment
local DelegaciaPrender = createMarker(1535.8380126953,-1672.9124755859,13.3828125,"cylinder",1,255,255,255,50)

function prenderJogador(thePlayer, cmd, playerid, valTimer) --// playerid é o valor id inserido pelo jogador // "valTimer" é o valor de tempo inserido pelo player que está acionando o comando.
  	local alvo = exports["[LusoRP](Sistema)ID_System"]:getPlayerID(tonumber(playerid))
  	if not alvo then --// Se tiver faltado o parâmetro de playerid, então:
		return outputChatBox("Faltar colocar o id do jogador") --// Retorna uma mensagem informando a ausência ao jogador.
	end
  
	if not valTimer then --// Se tiver faltado o parâmetro de tempo, então:
		return outputChatBox("Faltaram parâmetros") --// Retorna uma mensagem informando a ausência ao jogador.
	end
		if isObjectInACLGroup ("user."..getAccountName(getPlayerAccount (hitElement)), aclGetGroup ("ComandosCorporacoes")) then
			if isElementWithinMarker(player, DelegaciaPrender) then
				outputChatBox("use /prender (id) (tempo) para prender o jogador!", player , 255, 255 ,255)
			else
				outputChatBox("Você não está no marker da delegacia!",player , 255,255,255)
			setElementData("preso", alvo)
			setElementPosition (alvo, 264.42120361328,77.57405090332,1001.0390625)
			setElementInterior (alvo, 6)
			setElementDimension (alvo, 1)
			toggleAllControls(alvo , false)
		setTimer(function(alvo)
			toggleAllControls(alvo, true)
			removeElementData (alvo, "preso", true)
			setPedAnimation(alvo, nil, nil)
			removeElementData(alvo,"Algemado")
			setElementPosition(alvo , 1542.0284423828,-1669.5544433594,13.553701400757)
			setElementDimension(alvo , 0)
			setElementInterior(alvo , 0)
			end , 
	end, (tonumber(valTimer)) * 60000, 1) --// Tempo declarado pelo player, multiplicado por 60000; 1m = 60000ms; Usei tonumber pois provável que o valor declarado pelo player virá como string.
end
addCommandHandler("prender", prenderJogador)

ficou desse jeito.

mas tá dando o erro server.lua:31: unexpected symbol near 'end'

Link to comment
  • Other Languages Moderators
local DelegaciaPrender = createMarker(1535.8380126953,-1672.9124755859,13.3828125,"cylinder",1,255,255,255,50)

function prenderJogador(thePlayer, cmd, playerid, valTimer) --// playerid é o valor id inserido pelo jogador // "valTimer" é o valor de tempo inserido pelo player que está acionando o comando.
	local alvo = exports["[LusoRP](Sistema)ID_System"]:getPlayerID(tonumber(playerid))
	if not alvo then --// Se tiver faltado o parâmetro de playerid, então:
		return outputChatBox("Faltar colocar o id do jogador") --// Retorna uma mensagem informando a ausência ao jogador.
	end
	if not valTimer then --// Se tiver faltado o parâmetro de tempo, então:
		return outputChatBox("Faltaram parâmetros") --// Retorna uma mensagem informando a ausência ao jogador.
	end
	if isObjectInACLGroup ("user."..getAccountName(getPlayerAccount (hitElement)), aclGetGroup ("ComandosCorporacoes")) then
		if isElementWithinMarker(player, DelegaciaPrender) then
			outputChatBox("use /prender (id) (tempo) para prender o jogador!", player , 255, 255 ,255)
		else
			outputChatBox("Você não está no marker da delegacia!",player , 255,255,255)
			setElementData("preso", alvo)
			setElementPosition (alvo, 264.42120361328,77.57405090332,1001.0390625)
			setElementInterior (alvo, 6)
			setElementDimension (alvo, 1)
			toggleAllControls(alvo , false)
			setTimer(function(alvo)
				toggleAllControls(alvo, true)
				removeElementData (alvo, "preso", true)
				setPedAnimation(alvo, nil, nil)
				removeElementData(alvo,"Algemado")
				setElementPosition(alvo , 1542.0284423828,-1669.5544433594,13.553701400757)
				setElementDimension(alvo , 0)
				setElementInterior(alvo , 0)
			end, (tonumber(valTimer)) * 60000, 1) --// Tempo declarado pelo player, multiplicado por 60000; 1m = 60000ms; Usei tonumber pois provável que o valor declarado pelo player virá como string.
		end
	end
end
addCommandHandler("prender", prenderJogador)

E também estava faltando end

  • Thanks 1
Link to comment
  • Other Languages Moderators
local DelegaciaPrender = createMarker(1535.8380126953,-1672.9124755859,13.3828125,"cylinder",1,255,255,255,50)

function prenderJogador(thePlayer, cmd, playerid, valTimer) --// playerid é o valor id inserido pelo jogador // "valTimer" é o valor de tempo inserido pelo player que está acionando o comando.
	local alvo = exports["[LusoRP](Sistema)ID_System"]:getPlayerID(tonumber(playerid))
	if not alvo then --// Se tiver faltado o parâmetro de playerid, então:
		return outputChatBox("Falta colocar o id do jogador", thePlayer) --// Retorna uma mensagem informando a ausência ao jogador.
	end
	if not valTimer then --// Se tiver faltado o parâmetro de tempo, então:
		return outputChatBox("Faltaram parâmetros", thePlayer) --// Retorna uma mensagem informando a ausência ao jogador.
	end
	if isObjectInACLGroup ("user."..getAccountName(getPlayerAccount (thePlayer)), aclGetGroup ("ComandosCorporacoes")) then
		if isElementWithinMarker(player, DelegaciaPrender) then
			outputChatBox("use /prender (id) (tempo) para prender o jogador!", thePlayer, 255, 255, 255)
		else
			outputChatBox("Você não está no marker da delegacia!", thePlayer, 255, 255, 255)
			setElementData("preso", alvo)
			setElementPosition (alvo, 264.42120361328, 77.57405090332, 1001.0390625)
			setElementInterior (alvo, 6)
			setElementDimension (alvo, 1)
			toggleAllControls(alvo, false)
			setTimer(function(alvo)
				toggleAllControls(alvo, true)
				removeElementData (alvo, "preso")
				setPedAnimation(alvo, nil, nil)
				removeElementData(alvo,"Algemado")
				setElementPosition(alvo, 1542.0284423828, -1669.5544433594, 13.553701400757)
				setElementDimension(alvo, 0)
				setElementInterior(alvo, 0)
			end, (tonumber(valTimer)) * 60000, 1) --// Tempo declarado pelo player, multiplicado por 60000; 1m = 60000ms; Usei tonumber pois provável que o valor declarado pelo player virá como string.
		end
	end
end
addCommandHandler("prender", prenderJogador)

Um monte de correções.

3 minutes ago, Renazz said:

agora funcionou! mas como coloco para aparecer o tempo na tela?

Pra isso será necessário passar pro client-side.

Edited by Lord Henry
Correções de novo.
Link to comment
10 minutes ago, Lord Henry said:

Pra isso será necessário passar pro client-side.

eu raramente uso o client-side. por isso não sei usar mas vou tentar aqui

 

não to conseguindo '-' | outra o tempo que eu vou colocar no /prender id tempo  é em minutos ou em milisegundos?

Edited by Renazz
Link to comment

estou testando o script com alguns players do meu servidor e quando eu prendo usando /prender 5 1  ele não sai da prisão depois de 1 minuto'-' e fica lá para sempre

e também está dando pra usar o comando fora do marker

Link to comment
  • Other Languages Moderators
local DelegaciaPrender = createMarker(1535.8380126953,-1672.9124755859,13.3828125,"cylinder",1,255,255,255,50)

function prenderJogador(thePlayer, cmd, playerid, valTimer) --// playerid é o valor id inserido pelo jogador // "valTimer" é o valor de tempo inserido pelo player que está acionando o comando.
	local alvo = exports["[LusoRP](Sistema)ID_System"]:getPlayerID(tonumber(playerid))
	if not alvo then --// Se tiver faltado o parâmetro de playerid, então:
		return outputChatBox("Falta colocar o id do jogador", thePlayer) --// Retorna uma mensagem informando a ausência ao jogador.
	end
	if not valTimer then --// Se tiver faltado o parâmetro de tempo, então:
		return outputChatBox("Faltaram parâmetros", thePlayer) --// Retorna uma mensagem informando a ausência ao jogador.
	end
	if isObjectInACLGroup ("user."..getAccountName(getPlayerAccount (thePlayer)), aclGetGroup ("ComandosCorporacoes")) then
		if isElementWithinMarker(thePlayer, DelegaciaPrender) then
			setElementData(alvo, "preso", true)
			setElementPosition (alvo, 264.42120361328, 77.57405090332, 1001.0390625)
			setElementInterior (alvo, 6)
			setElementDimension (alvo, 1)
			toggleAllControls(alvo, false)
			setTimer(function()
				toggleAllControls(alvo, true)
				removeElementData (alvo, "preso")
				setPedAnimation(alvo, nil, nil)
				removeElementData(alvo,"Algemado")
				setElementPosition(alvo, 1542.0284423828, -1669.5544433594, 13.553701400757)
				setElementDimension(alvo, 0)
				setElementInterior(alvo, 0)
			end, (tonumber(valTimer)) * 60000, 1) --// Tempo declarado pelo player, multiplicado por 60000; 1m = 60000ms; Usei tonumber pois provável que o valor declarado pelo player virá como string.
		else
			outputChatBox("Você não está no marker da delegacia!", thePlayer, 255, 255, 255)
		end
	end
end
addCommandHandler("prender", prenderJogador)

Obs: Não testado.

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