Renaz Posted May 12, 2019 Posted May 12, 2019 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
#DeltaSCR Posted May 13, 2019 Posted May 13, 2019 É 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"
OrbTanT Posted May 13, 2019 Posted May 13, 2019 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)
#DeltaSCR Posted May 13, 2019 Posted May 13, 2019 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"
#DeltaSCR Posted May 14, 2019 Posted May 14, 2019 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"
brunob22 Posted May 14, 2019 Posted May 14, 2019 minha dica e não use setTimer. porque se o servidor trava o timer tb para ^^ pode causar ate bugs
#DeltaSCR Posted May 14, 2019 Posted May 14, 2019 1 minute ago, Renazz said: então o que uso? Pode usar setTimer, pois é coisa de pouco tempo. Minha resposta te ajudou? Por favor, não esqueça de avaliar - #DeltaSCR Minha página no Facebook: Delta Scripting - MTA "Viribus et honor"
DNL291 Posted May 14, 2019 Posted May 14, 2019 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. 2 Please do not PM me with scripting related question nor support, use the forums instead.
Renaz Posted May 14, 2019 Author Posted May 14, 2019 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
#DeltaSCR Posted May 14, 2019 Posted May 14, 2019 (edited) Dê uma revisada na estrutura de seu código Edited May 14, 2019 by #DeltaSCR Minha resposta te ajudou? Por favor, não esqueça de avaliar - #DeltaSCR Minha página no Facebook: Delta Scripting - MTA "Viribus et honor"
Moderators Lord Henry Posted May 14, 2019 Moderators Posted May 14, 2019 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 Thanks! 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.
Renaz Posted May 14, 2019 Author Posted May 14, 2019 ficou dando erro na mesma . só que agora na 32 Discord: Rena#5383
#DeltaSCR Posted May 14, 2019 Posted May 14, 2019 @Renazz você também está usando alguns elementos errados Minha resposta te ajudou? Por favor, não esqueça de avaliar - #DeltaSCR Minha página no Facebook: Delta Scripting - MTA "Viribus et honor"
Moderators Lord Henry Posted May 14, 2019 Moderators Posted May 14, 2019 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 1 Eu te ajudei ou achou meu comentário útil? Não esqueça de deixar um Thanks! 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.
Renaz Posted May 14, 2019 Author Posted May 14, 2019 não, estou usando o alvo para quem o policial quer prender . Discord: Rena#5383
#DeltaSCR Posted May 14, 2019 Posted May 14, 2019 @Lord Henry Tem erro em alguns elementos na verificação de ACL Minha resposta te ajudou? Por favor, não esqueça de avaliar - #DeltaSCR Minha página no Facebook: Delta Scripting - MTA "Viribus et honor"
Moderators Lord Henry Posted May 14, 2019 Moderators Posted May 14, 2019 Só substituir o hitElement por thePlayer. Eu te ajudei ou achou meu comentário útil? Não esqueça de deixar um Thanks! 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.
#DeltaSCR Posted May 14, 2019 Posted May 14, 2019 Infelizmente não posso aplicar correções no código agora, pois não estou no PC. Minha resposta te ajudou? Por favor, não esqueça de avaliar - #DeltaSCR Minha página no Facebook: Delta Scripting - MTA "Viribus et honor"
Renaz Posted May 14, 2019 Author Posted May 14, 2019 agora funcionou! mas como coloco para aparecer o tempo na tela? Discord: Rena#5383
Moderators Lord Henry Posted May 14, 2019 Moderators Posted May 14, 2019 (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 May 14, 2019 by Lord Henry Correções de novo. Eu te ajudei ou achou meu comentário útil? Não esqueça de deixar um Thanks! 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.
Renaz Posted May 14, 2019 Author Posted May 14, 2019 (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 May 14, 2019 by Renazz Discord: Rena#5383
Renaz Posted May 14, 2019 Author Posted May 14, 2019 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 Lord Henry Posted May 14, 2019 Moderators Posted May 14, 2019 (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 May 14, 2019 by Lord Henry 1 Eu te ajudei ou achou meu comentário útil? Não esqueça de deixar um Thanks! 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.
Recommended Posts
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 accountSign in
Already have an account? Sign in here.
Sign In Now