Renazz

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?

Share this post


Link to post

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

 

Share this post


Link to post

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)

 

Share this post


Link to post
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.

Share this post


Link to post
1 hour ago, Jonas^ said:

Output também falta um argumento.

Sim sim, tenho essa certa mania ksks como é um exemplo, eu não costumo especificar tudo ao pé da letra.

Share this post


Link to post

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

Share this post


Link to post
1 minute ago, Renazz said:

então o que uso?

Pode usar setTimer, pois é coisa de pouco tempo.

Share this post


Link to post
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

Share this post


Link to post
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'

Share this post


Link to post
Posted (edited)

Dê uma revisada na estrutura de seu código

Edited by #DeltaSCR

Share this post


Link to post
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

Share this post


Link to post

não, estou usando o alvo para quem o policial quer prender .

Share this post


Link to post

Infelizmente não posso aplicar correções no código agora, pois não estou no PC. :(

Share this post


Link to post

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

Share this post


Link to post
Posted (edited)
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.

Share this post


Link to post
Posted (edited)
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

Share this post


Link to post

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

Share this post


Link to post
Posted (edited)
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

Share this post


Link to post

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.


  • Recently Browsing   0 members

    No registered users viewing this page.