Jump to content

Tempo de Prisão.


Recommended Posts

Posted

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?

Discord: Rena#5383

 

Posted

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

 

Minha resposta te ajudou? Por favor, não esqueça de avaliar - #DeltaSCR

Minha página no Facebook: Delta Scripting - MTA


"Viribus et honor"

Posted

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)

 

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

Minha resposta te ajudou? Por favor, não esqueça de avaliar - #DeltaSCR

Minha página no Facebook: Delta Scripting - MTA


"Viribus et honor"

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

Minha resposta te ajudou? Por favor, não esqueça de avaliar - #DeltaSCR

Minha página no Facebook: Delta Scripting - MTA


"Viribus et honor"

Posted
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

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

Posted
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'

Discord: Rena#5383

 

  • Moderators
Posted

Não existe aquela vírgula depois do end da linha 31.

Eu te ajudei ou achou meu comentário útil? Não esqueça de deixar um Thanksspacer.png

Minhas contribuições para a comunidade: LordHenry - MTA Wiki Profile
Inscreva-se no meu canal do YouTube: Lord Henry - Entertainment
Discord Oficial do MTA: https://mtasa.com/discord
Blacklist e Whitelist de Scripters: Planilha

Por favor, não me envie mensagens privadas solicitando suporte. Crie um tópico no fórum em vez disso.

  • Moderators
Posted
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

Eu te ajudei ou achou meu comentário útil? Não esqueça de deixar um Thanksspacer.png

Minhas contribuições para a comunidade: LordHenry - MTA Wiki Profile
Inscreva-se no meu canal do YouTube: Lord Henry - Entertainment
Discord Oficial do MTA: https://mtasa.com/discord
Blacklist e Whitelist de Scripters: Planilha

Por favor, não me envie mensagens privadas solicitando suporte. Crie um tópico no fórum em vez disso.

  • Moderators
Posted

Só substituir o hitElement por thePlayer.

Eu te ajudei ou achou meu comentário útil? Não esqueça de deixar um Thanksspacer.png

Minhas contribuições para a comunidade: LordHenry - MTA Wiki Profile
Inscreva-se no meu canal do YouTube: Lord Henry - Entertainment
Discord Oficial do MTA: https://mtasa.com/discord
Blacklist e Whitelist de Scripters: Planilha

Por favor, não me envie mensagens privadas solicitando suporte. Crie um tópico no fórum em vez disso.

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

Eu te ajudei ou achou meu comentário útil? Não esqueça de deixar um Thanksspacer.png

Minhas contribuições para a comunidade: LordHenry - MTA Wiki Profile
Inscreva-se no meu canal do YouTube: Lord Henry - Entertainment
Discord Oficial do MTA: https://mtasa.com/discord
Blacklist e Whitelist de Scripters: Planilha

Por favor, não me envie mensagens privadas solicitando suporte. Crie um tópico no fórum em vez disso.

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

Discord: Rena#5383

 

Posted

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

Discord: Rena#5383

 

  • Moderators
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

Eu te ajudei ou achou meu comentário útil? Não esqueça de deixar um Thanksspacer.png

Minhas contribuições para a comunidade: LordHenry - MTA Wiki Profile
Inscreva-se no meu canal do YouTube: Lord Henry - Entertainment
Discord Oficial do MTA: https://mtasa.com/discord
Blacklist e Whitelist de Scripters: Planilha

Por favor, não me envie mensagens privadas solicitando suporte. Crie um tópico no fórum em vez disso.

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