C0DE Posted April 7, 2019 Share Posted April 7, 2019 Bom eu peguei um script de /algemar na internet só que o pessoal esta reclamando que os policiais estão algemando de longe então eu pensei em criar um script de algemar com cassetete alguém poderia me falar como eu posso fazer isso? Link to comment
Jonas^ Posted April 7, 2019 Share Posted April 7, 2019 Ao invés de fazer isso, não acha melhor colocar pra algemar em uma certa distância exemplo: 15 metros? Link to comment
C0DE Posted April 7, 2019 Author Share Posted April 7, 2019 2 hours ago, Jonas^ said: Ao invés de fazer isso, não acha melhor colocar pra algemar em uma certa distância exemplo: 15 metros? Como eu poderia fazer isso ? Link to comment
Blaack Posted April 7, 2019 Share Posted April 7, 2019 6 hours ago, C0DE said: Como eu poderia fazer isso ? Use: getDistanceBetweenPoints3D Ou mande seu código! Link to comment
C0DE Posted April 7, 2019 Author Share Posted April 7, 2019 9 hours ago, Sr Black said: Use: getDistanceBetweenPoints3D Ou mande seu código! ------------------------------------------------ ------ Sistema de Policia ------ ------ By:#ROBSON ------ ------------------------------------------------ ------ Colaboração: ------ ------ #DR.VOODKA ------ ------ [B]lack ------ ------ #[S]wag ------ ------ New Age ------ ------ DNL291 ------ ------------------------------------------------ function getPlayerFromPartialName(name) local name = name and name:gsub("#%x%x%x%x%x%x", ""):lower() or nil if name then for _, player in ipairs(getElementsByType("player")) do local name_ = getPlayerName(player):gsub("#%x%x%x%x%x%x", ""):lower() if name_:find(name, 1, true) then return player end end end end function revistar_jogador ( thePlayer, comando, nick ) if nick then if getPlayerFromPartialName ( nick ) then local accName = getAccountName ( getPlayerAccount ( thePlayer ) ) if isObjectInACLGroup ("user."..accName, aclGetGroup ( "Policia") ) then -- Acl Pra Quem Pode Usar o Comando local player_a_ser_revistado = getPlayerFromPartialName ( nick ) local nick_do_jogador = getPlayerName ( player_a_ser_revistado ) local nick_do_policial = getPlayerName ( thePlayer ) local estrelas_de_procurado = getPlayerWantedLevel ( player_a_ser_revistado ) local policiax, policiay, policiaz = getElementPosition ( thePlayer ) -- Encontrar posição do policial local revistadox, revistadoy, revistadoz = getElementPosition ( player_a_ser_revistado ) -- Encontrar posição de quem sera revistado local dist = getDistanceBetweenPoints3D ( policiax, policiay, policiaz, revistadox, revistadoy, revistadoz ) -- Calcular a distancia entre os dois elementos if ( dist > 335 ) then -- se a distancia for 335 executara a função a seguir outputChatBox("#000000[#ff0000POLICIA#000000] #c1c1c1Chegue Mais Perto Do Jogador Pra Executar Este Comando!", thePlayer, 255, 255, 255, true) -- Chat Box elseif ( dist < 334 )then -- Caso ao contrario a distancia for 334 executara a função a seguir setPedAnimation( thePlayer, "POLICE", "plc_drgbst_01", 3100, true, false, false, false) outputChatBox("#000000[#ff0000POLICIA#000000] #c1c1c1O #ff0000Policial #ffffff"..nick_do_policial.." #c1c1c1esta #ff0000Revistando #c1c1c1o #ff0000Suspeito "..nick_do_jogador.."", root, 255, 255, 255, true) -- Chat Box setTimer ( function() outputChatBox("#000000[#ff0000POLICIA#000000] #c1c1c1Nivel de #ff0000Procurado #c1c1c1do #ff0000Suspeito#c1c1c1:"..estrelas_de_procurado.."", thePlayer, 255, 255, 255, true) -- Nivel de procurado do jogador end, 3390, 1 ) triggerClientEvent(thePlayer, "doShowDXProgressBar", thePlayer) -- Chamar evento do client end else outputChatBox("#000000[#ff0000POLICIA#000000] #c1c1c1Você nao tem permissao a este comando!", thePlayer, 255, 255, 255, true) -- Se voce nao for da acl voce nao tera permissao a este comando end end end end addCommandHandler ( "revistar", revistar_jogador ) function algemar_jogador ( thePlayer, _, nick ) if nick then if getPlayerFromPartialName ( nick ) then local accName = getAccountName ( getPlayerAccount ( thePlayer ) ) if isObjectInACLGroup ("user."..accName, aclGetGroup ( "Policia") ) then -- Acl Pra Quem Pode Usar o Comando local player_a_ser_algemado = getPlayerFromPartialName ( nick ) local nick_do_jogador = getPlayerName ( player_a_ser_algemado ) local nick_do_policial = getPlayerName ( thePlayer ) setElementData(player_a_ser_algemado,"algemado", nick_do_jogador) -- Elemento Data setPedAnimation( player_a_ser_algemado, "GRAVEYARD", "mrnM_loop", -1, true, false, false, false) -- Animação de algemar setElementFrozen( player_a_ser_algemado, true ) -- Freezar jogador toggleControl(player_a_ser_algemado, "fire", false) -- retirar função de atirar outputChatBox("#000000[#ff0000POLICIA#000000] #c1c1c1O #ffffff"..nick_do_jogador.." #c1c1c1Foi #ff0000Algemado #c1c1c1Pelo #ff0000Policial "..nick_do_policial.."", root, 255, 255, 255, true) -- Chat Box outputChatBox("#000000[#ff0000POLICIA#000000] #ff0000Voce #c1c1c1Foi #ff0000Algemado#c1c1c1! ", player_a_ser_algemado, 255, 255, 255, true) -- Chat Box end else outputChatBox("#000000[#ff0000POLICIA#000000] #c1c1c1Você nao tem permissao a este comando!", thePlayer, 255, 255, 255, true) -- Se voce nao for da acl nao tera permissao a este comando end end end addCommandHandler("algemar", algemar_jogador) function algemar_jogador ( thePlayer, _, nick ) if nick then if getPlayerFromPartialName ( nick ) then local accName = getAccountName ( getPlayerAccount ( thePlayer ) ) if isObjectInACLGroup ("user."..accName, aclGetGroup ( "Policia") ) then local player_a_ser_desalgemado = getPlayerFromPartialName ( nick ) local nick_do_jogador = getPlayerName ( player_a_ser_desalgemado ) local nick_do_policial = getPlayerName ( thePlayer ) if getElementData (player_a_ser_desalgemado, "algemado") then -- vai verificar se o jogador estiver com os algemas setPedAnimation( player_a_ser_desalgemado ) -- desativara animaçao setElementFrozen( player_a_ser_desalgemado, false ) -- desativara o freeze toggleControl(player_a_ser_desalgemado, "fire", true ) -- ativara a função de atirar outputChatBox("#000000[#ff0000POLICIA#000000] #c1c1c1O #ffffff"..nick_do_jogador.." #c1c1c1Foi #ff0000Desalgemado #c1c1c1Pelo #ff0000Policial "..nick_do_policial.."", root, 255, 255, 255, true) -- Chat Box outputChatBox("#000000[#ff0000POLICIA#000000] #ff0000Voce #c1c1c1Foi #ff0000Desalgemado#c1c1c1! ", player_a_ser_desalgemado, 255, 255, 255, true) -- Chat Box removeElementData ( player_a_ser_desalgemado, "algemado" ) -- remover algemar else outputChatBox("#000000[#ff0000POLICIA#000000] #c1c1c1O #FF0000Suspeito #c1c1c1Nao #c1c1c1Foi #ff0000Algemado #c1c1c1Para Executar Este Comando! ",thePlayer, 255, 255, 255, true) -- chat box se o jogador nao estiver algemado end else outputChatBox("#000000[#ff0000POLICIA#000000] #c1c1c1Você nao tem permissao a este comando!", thePlayer, 255, 255, 255, true) -- Acl Pra Quem Pode Usar o Comando end end end end addCommandHandler("desalgemar", algemar_jogador) Link to comment
Other Languages Moderators Lord Henry Posted April 7, 2019 Other Languages Moderators Share Posted April 7, 2019 Já existe um parâmetro de distância, aprenda a ler códigos em vez de só copiar. Link to comment
Jonas^ Posted April 8, 2019 Share Posted April 8, 2019 (edited) 335 metros? senão 334? explica a lógica disso? function revistar_jogador (thePlayer, comando, nick) if nick then if getPlayerFromPartialName (nick) then if isObjectInACLGroup ("user."..getAccountName (getPlayerAccount (thePlayer)), aclGetGroup ("Policia")) then local player_a_ser_revistado = getPlayerFromPartialName (nick) local nick_do_jogador = getPlayerName (player_a_ser_revistado) local nick_do_policial = getPlayerName (thePlayer) local estrelas_de_procurado = getPlayerWantedLevel (player_a_ser_revistado) local policiax, policiay, policiaz = getElementPosition (thePlayer) local revistadox, revistadoy, revistadoz = getElementPosition (player_a_ser_revistado) local dist = getDistanceBetweenPoints3D (policiax, policiay, policiaz, revistadox, revistadoy, revistadoz) if (dist <= 15) then -- Se a distancia for menor ou igual a 15, então: outputChatBox ("#000000[#ff0000POLICIA#000000] #c1c1c1Chegue Mais Perto Do Jogador Pra Executar Este Comando!", thePlayer, 255, 255, 255, true) setPedAnimation( thePlayer, "POLICE", "plc_drgbst_01", 3100, true, false, false, false) outputChatBox ("#000000[#ff0000POLICIA#000000] #c1c1c1O #ff0000Policial #ffffff"..nick_do_policial.." #c1c1c1esta #ff0000Revistando #c1c1c1o #ff0000Suspeito "..nick_do_jogador.."", root, 255, 255, 255, true) setTimer ( function() outputChatBox ("#000000[#ff0000POLICIA#000000] #c1c1c1Nivel de #ff0000Procurado #c1c1c1do #ff0000Suspeito#c1c1c1:"..estrelas_de_procurado.."", thePlayer, 255, 255, 255, true) end, 3390, 1) triggerClientEvent(thePlayer, "doShowDXProgressBar", thePlayer) else -- Senão: outputChatBox ("Chegue perto do suspeito.", thePlayer, 255, 50, 50, true) end else outputChatBox("#000000[#ff0000POLICIA#000000] #c1c1c1Você nao tem permissao a este comando!", thePlayer, 255, 255, 255, true) end end end end addCommandHandler ("revistar", revistar_jogador) Edited April 8, 2019 by Jonas^ Link to comment
Other Languages Moderators Lord Henry Posted April 8, 2019 Other Languages Moderators Share Posted April 8, 2019 Pois é. A lógica está errada. Deveria ter um >= ali. Pois se a distância for exatamente 335, não vai entrar em nenhuma condição. Além disso essas distâncias estão grandes demais, dai é óbvio que o cara vai conseguir algemar players que estão longe. Link to comment
Jonas^ Posted April 9, 2019 Share Posted April 9, 2019 9 hours ago, Lord Henry said: Pois é. A lógica está errada. Deveria ter um >= ali. Pois se a distância for exatamente 335, não vai entrar em nenhuma condição. Além disso essas distâncias estão grandes demais, dai é óbvio que o cara vai conseguir algemar players que estão longe. Do jeito que fiz deve funcionar. Link to comment
gbmv33 Posted May 16, 2019 Share Posted May 16, 2019 Eu queria colocar uma distancia para prender o alvo, está prendendo de muito longe e não achei nenhuma referencia a distancia nesse código e tambem tirar ter que escrever 2 vezes algemar, pra fazer a animação de algemado ex: escrevo /algemar fulano, ele toma um freeze e fica correndo no mesmo lugar consegue mirar e tals ai quando escrevo /algemar fulano dnv ele faz a animação de estar algemado. function getPlayerFromPartialName(name) local name = name and name:gsub("#%x%x%x%x%x%x", ""):lower() or nil if name then for _, player in ipairs(getElementsByType("player")) do local name_ = getPlayerName(player):gsub("#%x%x%x%x%x%x", ""):lower() if name_:find(name, 1, true) then return player end end end end function algemar_jogador ( thePlayer, _, nick ) if nick then if getPlayerFromPartialName ( nick ) then local accName = getAccountName ( getPlayerAccount ( thePlayer ) ) if isObjectInACLGroup ("user."..accName, aclGetGroup ( "Policia") ) then -- Acl Pra Quem Pode Usar o Comando local player_a_ser_algemado = getPlayerFromPartialName ( nick ) local nick_do_jogador = getPlayerName ( player_a_ser_algemado ) local nick_do_policial = getPlayerName ( thePlayer ) setElementData(player_a_ser_algemado,"algemado", nick_do_jogador) -- Elemento Data setPedAnimation( player_a_ser_algemado, "GRAVEYARD", "mrnM_loop", -1, true, false, false, false) -- Animação de algemar setElementFrozen( player_a_ser_algemado, true ) -- Freezar jogador toggleControl(player_a_ser_algemado, "fire", false) -- retirar função de atirar outputChatBox("#000000[#ff0000POLICIA#000000] #c1c1c1O #ffffff"..nick_do_jogador.." #c1c1c1Foi #ff0000Algemado #c1c1c1Pelo #ff0000Policial "..nick_do_policial.."", root, 255, 255, 255, true) -- Chat Box outputChatBox("#000000[#ff0000POLICIA#000000] #ff0000Voce #c1c1c1Foi #ff0000Algemado#c1c1c1! ", player_a_ser_algemado, 255, 255, 255, true) -- Chat Box end else outputChatBox("#000000[#ff0000POLICIA#000000] #c1c1c1Você nao tem permissao a este comando!", thePlayer, 255, 255, 255, true) -- Se voce nao for da acl nao tera permissao a este comando end end end addCommandHandler("algemar", algemar_jogador) function algemar_jogador ( thePlayer, _, nick ) if nick then if getPlayerFromPartialName ( nick ) then local accName = getAccountName ( getPlayerAccount ( thePlayer ) ) if isObjectInACLGroup ("user."..accName, aclGetGroup ( "ComandosPolicia") ) then local player_a_ser_desalgemado = getPlayerFromPartialName ( nick ) local nick_do_jogador = getPlayerName ( player_a_ser_desalgemado ) local nick_do_policial = getPlayerName ( thePlayer ) if getElementData (player_a_ser_desalgemado, "algemado") then -- vai verificar se o jogador estiver com os algemas setPedAnimation( player_a_ser_desalgemado ) -- desativara animaçao setElementFrozen( player_a_ser_desalgemado, false ) -- desativara o freeze toggleControl(player_a_ser_desalgemado, "fire", true ) -- ativara a função de atirar outputChatBox("#000000[#ff0000POLICIA#000000] #c1c1c1O #ffffff"..nick_do_jogador.." #c1c1c1Foi #ff0000Desalgemado #c1c1c1Pelo #ff0000Policial "..nick_do_policial.."", root, 255, 255, 255, true) -- Chat Box outputChatBox("#000000[#ff0000POLICIA#000000] #ff0000Voce #c1c1c1Foi #ff0000Desalgemado#c1c1c1! ", player_a_ser_desalgemado, 255, 255, 255, true) -- Chat Box removeElementData ( player_a_ser_desalgemado, "algemado" ) -- remover algemar else outputChatBox("#000000[#ff0000POLICIA#000000] #c1c1c1O #FF0000Suspeito #c1c1c1Nao #c1c1c1Foi #ff0000Algemado #c1c1c1Para Executar Este Comando! ",thePlayer, 255, 255, 255, true) -- chat box se o jogador nao estiver algemado end else outputChatBox("#000000[#ff0000POLICIA#000000] #c1c1c1Você nao tem permissao a este comando!", thePlayer, 255, 255, 255, true) -- Acl Pra Quem Pode Usar o Comando end end end end addCommandHandler("desalgemar", algemar_jogador) Link to comment
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