DarkAnubys Posted October 9, 2021 Share Posted October 9, 2021 Boa noite, eu achei encontrei um script pra estudar, porém não estou conseguindo fazer uma coisa, que seria uma verificação pra saber se a ACL "Policia" tem no mínimo 2 pessoas para iniciar o assalto a lojinha, alguém poderia me ajudar? function Roubar_SuperMercadoLS ( thePlayer, matchingDimension ) if isElementWithinMarker ( thePlayer, Dentro_Assalto_SuperMercadoLS ) then local wl = getPlayerWantedLevel ( thePlayer ) local arma = getPedWeapon ( thePlayer ) unbindKey ( thePlayer, LetraParaMarkers, "down", Roubar_SuperMercadoLS ) -- Remover Bind do Assalto exports.Scripts_OnMarkerMsgs_:delete (thePlayer) -- Deletar Mensagem no Meio da Tela if getElementData ( thePlayer, "Policia" ) == true then return exports.Scripts_Textos:createNewDxMessage ( 'Você é um Policial e não Pode Assaltar Lojas', thePlayer, 255, 255, 255) end if arma == 0 or arma == 1 or arma == 2 or arma == 3 or arma == 4 or arma == 5 or arma == 6 or arma == 7 or arma == 8 or arma == 9 or arma == 16 or arma == 17 or arma == 18 or arma == 39 or arma == 41 or arma == 42 or arma == 43 or arma == 10 or arma == 11 or arma == 12 or arma == 14 or arma == 15 or arma == 44 or arma == 45 or arma == 46 or arma == 40 then return exports.Scripts_Textos:createNewDxMessage ( 'Você Precisa de uma Arma de Fogo para Assaltar Essa Loja!', thePlayer, 255, 255, 255) end if Roubo_Recente_SuperMercadoLS == false then setElementRotation ( thePlayer, 0, 0, Rot_z_Roubo ) setPedAnimation ( thePlayer, "SHOP", "SHP_Gun_Aim", -1, true, false, true ) -- Fazer a Animação de Assalto ( Jogador ) setPedAnimation ( Atendente_SuperMercadoLS, "SHOP", "SHP_Rob_GiveCash", -1, true, false, true ) -- Fazer a Animação de Se Render ( BOT ) setTimer(function() setPedAnimation ( thePlayer ) setPedAnimation ( Atendente_SuperMercadoLS, "SHOP", "SHP_Rob_HandsUp", -1, true, false, true ) -- Entregar o Dinheiro ( BOT ) end,40000,1,thePlayer) if wl < 6 then setPlayerWantedLevel ( thePlayer, wl+1 ) -- Setar +1 Level de Procurado ( Jogador ) end triggerClientEvent ( root, "AirNew>LigarAlarme1", root, thePlayer ) -- Disparar o Alarme exports.Scripts_Textos:createNewDxMessage ( 'Aguarde 60 Segundos & Você podera Sair da Loja. A Policia Foi Notificada Sobre o Assalto!', thePlayer, 255, 255, 255) setElementData ( thePlayer, "AirNewSCR_Roubo_SuperMercadoLS", true ) -- setElementData "RouboEmAndamento" ( Jogador ) True Roubo_Recente_SuperMercadoLS = true -- Roubo_Recente_SuperMercadoLS = true setTimer(function() setElementData ( thePlayer, "AirNewSCR_Roubo_SuperMercadoLS", false ) -- setElementData "RouboEmAndamento" ( Jogador ) False setPedAnimation ( Atendente_SuperMercadoLS ) -- Remover a Animação ( BOT ) givePlayerMoney ( thePlayer, ValorDoRoubo1 ) -- Dar Dinheiro ( Jogador ) end,TempoDoAssalto,1,thePlayer) for i, player in ipairs(getElementsByType("player")) do local uj = getElementData(player,"Policia") or false if type(uj) == "boolean" then if uj == true then NickName = string.gsub(getPlayerName(thePlayer), "#%x%x%x%x%x%x", "") exports.Scripts_Textos:createNewDxMessage ( "O Jogador "..NickName.." Esta Assaltando uma Loja em Los Santos, Siga o Icone Vermelho no Mapa", player, 255, 255, 255) setElementVisibleTo ( EmAssaltoBlip_SuperMercadoLS, player, true ) setTimer ( function() setElementVisibleTo ( EmAssaltoBlip_SuperMercadoLS, player, false ) end, 120000, 1, thePlayer ) end end end else exports.Scripts_Textos:createNewDxMessage ( 'Essa Loja ja foi Roubada Recentemente!', thePlayer, 255, 255, 255) setTimer(function() Roubo_Recente_SuperMercadoLS = false end,TempoDoAssalto+60000,1,thePlayer) end end end Link to comment
DarkAnubys Posted October 10, 2021 Author Share Posted October 10, 2021 Alguém pode me ajudar? Link to comment
Other Languages Moderators Lord Henry Posted October 10, 2021 Other Languages Moderators Share Posted October 10, 2021 Utilize aclGroupListObjects para saber quais são todos os objetos que estão na ACL Group, e então conte quantos deles são usuários. function countPlayersInACLGroup(ACLGroupName) local cops = 0 -- Variável local que irá contar quantos usuários estão na ACL Group. local group = aclGetGroup(ACLGroupName) -- Obtém a ACL Group com o nome que foi especificado em ACLGroupName. if (group) then -- Se existe a ACL Group "Policia" no servidor, então: for _, object in pairs(aclGroupListObjects(group)) do -- Para cada objeto da ACL, faça: local objType = gettok(object, 1, string.byte('.')) -- Obtém o texto que estiver antes do ponto. Podendo ser "user" ou "resource". if (objType == "user") then -- Se este objeto é um usuário, então: cops = cops + 1 -- Adiciona +1 na contagem de cops. end end end return cops -- Ao final da execução dessa função, mostra quantos usuários estão na ACL Group "Policia" end No seu script, adicione a função acima no início do seu script. Depois na função que vc quer contar se tem 2 ou mais policiais, você faz assim: if (countPlayersInACLGroup("Policia") >= 2) then -- Se tiver 2 policiais ou mais no servidor, então: OBS: Vale lembrar que isso não significa que o policial está online. 1 Link to comment
DarkAnubys Posted October 10, 2021 Author Share Posted October 10, 2021 2 hours ago, Lord Henry said: Utilize aclGroupListObjects para saber quais são todos os objetos que estão na ACL Group, e então conte quantos deles são usuários. function countPlayersInACLGroup(ACLGroupName) local cops = 0 -- Variável local que irá contar quantos usuários estão na ACL Group. local group = aclGetGroup(ACLGroupName) -- Obtém a ACL Group com o nome que foi especificado em ACLGroupName. if (group) then -- Se existe a ACL Group "Policia" no servidor, então: for _, object in pairs(aclGroupListObjects(group)) do -- Para cada objeto da ACL, faça: local objType = gettok(object, 1, string.byte('.')) -- Obtém o texto que estiver antes do ponto. Podendo ser "user" ou "resource". if (objType == "user") then -- Se este objeto é um usuário, então: cops = cops + 1 -- Adiciona +1 na contagem de cops. end end end return cops -- Ao final da execução dessa função, mostra quantos usuários estão na ACL Group "Policia" end No seu script, adicione a função acima no início do seu script. Depois na função que vc quer contar se tem 2 ou mais policiais, você faz assim: if (countPlayersInACLGroup("Policia") >= 2) then -- Se tiver 2 policiais ou mais no servidor, então: OBS: Vale lembrar que isso não significa que o policial está online. Eu estou tentando encaixar no script, porém não estou conseguindo encontrar o lugar certo. Link to comment
Other Languages Moderators Lord Henry Posted October 11, 2021 Other Languages Moderators Share Posted October 11, 2021 Essa função que eu passei vc bota antes, no início do script. Assim como vc faria com uma função útil. Link to comment
KiritoAguiar Posted November 11, 2021 Share Posted November 11, 2021 (edited) Acho que assim seria mais oq ele quer, já que ele ta procurando por algo onde os jogadores devem estar online function countPlayersInACLGroup(ACLGroupName) local cops = 0 -- Variável local que irá contar quantos usuários estão na ACL Group. local group = aclGetGroup(ACLGroupName) -- Obtém a ACL Group com o nome que foi especificado em ACLGroupName. if group then -- Se existe o grupo de Policiais, então: for i, p in pairs(getElementsByType("player")) do -- Para cada jogador online no servidor, faça: local acc = getAccountName(getPlayerAccount(p)) -- Pega a conta de cada jogador online. if isObjectInACLGroup ("user."..acc, group) then -- Se ele estiver na ACL group dos policiais, então: cops = cops + 1 -- Adiciona + 1 no contador de policiais. end end else print("ERRO: Grupo '"..tostring(ACLGroupName).."' não existe.") -- Mostra no debug que não existe o grupo indicado. end return cops -- Ao final da execução dessa função, mostra quantos policiais estão online. end Edited November 16, 2021 by Lord Henry Lógica do script corrigida. Indentação convertida de tabulação para espaços. Adicionados mais comentários no código. 1 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