Bruno R dos Santos Posted May 11, 2020 Share Posted May 11, 2020 (edited) To desenvolvendo um sistema de gangue, onde todas as gangues tem que ter um painel de roubo (o script do roubo está feito, o problema é que não da para adicionar todos os grupos da ACL nele, só um) Tem alguma forma disso acontecer? Todas as gangues do meu servidor ter acesso ao script? Lembrando que: Não posso deixar todas as gangues na mesma ACL, as gangues tem que ter ACL diferentes. Edited May 11, 2020 by Bruno R dos Santos Link to comment
Other Languages Moderators Lord Henry Posted May 11, 2020 Other Languages Moderators Share Posted May 11, 2020 Na próxima vez, poste na seção de Programação em Lua. Veja as regras aqui: Link to comment
Bruno R dos Santos Posted May 11, 2020 Author Share Posted May 11, 2020 44 minutes ago, Lord Henry said: Ok, desculpe... pode apagar o post, vou postar lá Link to comment
Other Languages Moderators Lord Henry Posted May 11, 2020 Other Languages Moderators Share Posted May 11, 2020 Não precisa, já movi este tópico pra lá. Link to comment
Bruno R dos Santos Posted May 11, 2020 Author Share Posted May 11, 2020 2 minutes ago, Lord Henry said: Não precisa, já movi este tópico pra lá. ah agora vou ter que te pedir desculpas, pois não vi que você moveu e criei outro topico '-', se puder apagar um... pensei que vc ia apenas excluir esse Link to comment
Other Languages Moderators Lord Henry Posted May 12, 2020 Other Languages Moderators Share Posted May 12, 2020 Sim, já excluí o outro tópico. Vc precisa prestar mais atenção antes de postar, cara. Até pra evitar de postar dúvidas que outros membros acabaram de postar. Isso consta naquele vídeo das regras que mandei anteriormente. Link to comment
DNL291 Posted May 12, 2020 Share Posted May 12, 2020 Basta dar acesso via elementData ao jogador. Jogador loga e está no grupo > setElementData. Desloga > removeElementData. Edit: ou até mesmo se seu sistema de gangue tiver elementData registrando qual ele está, por exemplo. Com base nessa elementData ele já terá o acesso ao outro script. Link to comment
Other Languages Moderators Lord Henry Posted May 12, 2020 Other Languages Moderators Share Posted May 12, 2020 (edited) Voltando ao seu tópico. Você pode criar uma table com todos os nomes de ACL Groups que vc quer verificar. No caso as ACL Groups das gangues. Depois vc passa um loop for por todas elas, verificando se o jogador está em pelo menos uma delas. Se estiver, permite que ele abra o painel de gangues, caso contrário, proíbe o acesso dele ao painel. Exemplo maroto: (server-side) local acls = {"PCC", "CV", "MAFIA"} -- Lista de ACL Groups, pode adicionar quantas quiser, separando por vírgula e sempre dentro de aspas duplas. function abrirPainel (thePlayer, cmd) for i, name in ipairs (acls) do -- Para cada item da table acls, faça: if (isObjectInACLGroup ("user."..getAccountName(getPlayerAccount(thePlayer), aclGetGroup (name)) do -- Se o jogador está em alguma ACL Group da lista, então: outputChatBox ("Acesso permitido.", thePlayer, 0, 255, 0) -- Aqui normalmente teria um triggerClientEvent para mostrar o painel no client. return end end outputChatBox ("Acesso negado. Você precisa ser criminoso para usar este painel.", thePlayer, 255, 0, 0) end addCommandHandler ("gang", abrirPainel) -- Comando para abrir o painel, só por exemplo. Edited May 12, 2020 by Lord Henry Link to comment
Bruno R dos Santos Posted May 12, 2020 Author Share Posted May 12, 2020 (edited) 34 minutes ago, Lord Henry said: Voltando ao seu tópico. Você pode criar uma table com todos os nomes de ACL Groups que vc quer verificar. No caso as ACL Groups das gangues. Depois vc passa um loop for por todas elas, verificando se o jogador está em pelo menos uma delas. Se estiver, permite que ele abra o painel de gangues, caso contrário, proíbe o acesso dele ao painel. Exemplo maroto: (server-side) local acls = {"PCC", "CV", "MAFIA"} -- Lista de ACL Groups, pode adicionar quantas quiser, separando por vírgula e sempre dentro de aspas duplas. function abrirPainel (thePlayer, cmd) for i, name in ipairs (acls) do -- Para cada item da table acls, faça: if (isObjectInACLGroup ("user."..getAccountName(getPlayerAccount(thePlayer), aclGetGroup (name)) do -- Se o jogador está em alguma ACL Group da lista, então: outputChatBox ("Acesso permitido.", thePlayer, 0, 255, 0) -- Aqui normalmente teria um triggerClientEvent para mostrar o painel no client. return end end outputChatBox ("Acesso negado. Você precisa ser criminoso para usar este painel.", thePlayer, 255, 0, 0) end addCommandHandler ("gang", abrirPainel) -- Comando para abrir o painel, só por exemplo. Não consegui fazer dar certo, acho que coloquei na linha errada. function Roubar_Player ( Player ) local acls = {"Gangue01", "Gangue02", "Gangue03"} local cx, cy, cz = getElementPosition ( Player ) local px, py, pz = getElementPosition ( source ) local distance = getDistanceBetweenPoints3D ( cx, cy, cz, px, py, pz ) if ( distance <= 5 ) then for i, name in ipairs (acls) do -- Para cada item da table acls, faça: if (isObjectInACLGroup ("user."..getAccountName(getPlayerAccount(thePlayer), aclGetGroup (name)) do if not getPedOccupiedVehicle(source) then if not getPedOccupiedVehicle(Player) then if getPlayerMoney(Player) >= 100 then if getElementData(source, "DNL:Roubando") == false then if getElementData(Player, "DNL:Sendo_Roubado") == false then if getElementData(source, "DNL:Roubou_Recentemente") == false then if getElementData(Player, "DNL:Roubado_Recentemente") == false then if Player == source then return end Player_Roubado = Player Player_Ladrao = source setPedAnimation( source, "BOMBER", "BOM_Plant_Loop", -1, true, false, false, false) setPedAnimation( Player, "CRACK", "crckidle1", -1, true, false, false, false) setElementData ( Player, "DNL:Sendo_Roubado", true) setElementData ( source, "DNL:Roubando", true) setElementData ( source, "Dinheiro_Ladrao", tonumber(math.floor(getPlayerMoney(Player))/4)) setElementData ( source, "Dinheiro", tonumber(math.floor(getPlayerMoney(Player))/4)) triggerClientEvent (Player, "DNL:Abrir_Roubo_Player", Player, Player_Roubado, Player_Ladrao) triggerClientEvent (source, "DNL:Abrir_Roubo_Ladrao", source) triggerClientEvent(source, "addNotification", root, "#00ff00✘#ffffffINFO#00ff00✘➺ #ffffffVocê está roubando o jogador "..getPlayerName(Player).."") triggerClientEvent(Player, "addNotification", root, "#00ff00✘#ffffffINFO#00ff00✘➺ #ffffffVocê está sendo roubado pelo jogador "..getPlayerName(source).."") Tempo_Roubo[source] = setTimer(function(source) local Dinheiro_Ladrao = tonumber(getElementData(source, "Dinheiro_Ladrao")) or 0 local Dinheiro_Dx = tonumber(getElementData(source, "Dinheiro_Dx")) or 0 givePlayerMoney(source, 100) takePlayerMoney(Player, 100) playSoundFrontEnd (source, 12) playSoundFrontEnd (Player, 12) setElementData ( source, "Dinheiro_Ladrao", Dinheiro_Ladrao -500) setElementData ( source, "Dinheiro_Dx", Dinheiro_Dx +500) local Dinheiro_Ladrao_ = tonumber(getElementData(source, "Dinheiro_Ladrao")) or 0 if Dinheiro_Ladrao_ <= 0 then local Dinheiro = tonumber(getElementData(source, "Dinheiro")) or 0 killTimer(Tempo_Roubo[source]) setElementData ( source, "Dinheiro_Ladrao", 0) setElementData ( source, "Dinheiro_Dx", 0) setElementData ( source, "Dinheiro", 0) setElementData ( source, "DNL:Roubando", false) setElementData ( Player, "DNL:Sendo_Roubado", false) setPedAnimation(source) setPedAnimation(Player) setElementData ( Player, "DNL:Roubado_Recentemente", true) setElementData ( source, "DNL:Roubou_Recentemente", true) triggerClientEvent (source, "DNL:Fechar_Roubo_Ladrao", source) triggerClientEvent (Player, "DNL:Fechar_Roubo_Player", Player) Desativar_Roubo_Ladrao[source] = setTimer(function(source) setElementData ( source, "DNL:Roubou_Recentemente", false) triggerClientEvent(source, "addNotification", root, "#00ff00✘#ffffffINFO#00ff00✘➺ #ffffffVocê já pode efetuar roubos") end, 30000, 1, source) Desativar_Roubo_Player[Player] = setTimer(function(Player) setElementData ( Player, "DNL:Roubado_Recentemente", false) triggerClientEvent(source, "addNotification", root, "#00ff00✘#ffffffINFO#00ff00✘➺ #ffffffVocê já pode ser roubado novamente, Tome cuidado") end, 60000, 1, Player) triggerClientEvent(source, "addNotification", root, "#00ff00✘#ffffffINFO#00ff00✘➺ #ffffffVocê Conseguiu Roubar #00FF00R$ #FFFFFF"..tonumber(math.floor(Dinheiro)).." do Jogador #00ff00"..getPlayerName(Player).."") triggerClientEvent(Player, "addNotification", root, "#00ff00✘#ffffffINFO#00ff00✘➺ #ffffffFoi roubado de você #00FF00R$ #FFFFFF"..tonumber(math.floor(Dinheiro)).." pelo Jogador #00ff00"..getPlayerName(source).."") end end, 1000, 0, source) else triggerClientEvent(source, "addNotification", root, "#00ff00✘#ffffffINFO#00ff00✘➺ #ffffffEsse jogador já foi roubado recentemente") end else triggerClientEvent(source, "addNotification", root, "#00ff00✘#ffffffINFO#00ff00✘➺ #ffffffVocê efetuou um roubo recentemente") end else triggerClientEvent(source, "addNotification", root, "#00ff00✘#ffffffINFO#00ff00✘➺ #ffffffEsse Jogador já está sendo roubado") end else triggerClientEvent(source, "addNotification", root, "#00ff00✘#ffffffINFO#00ff00✘➺ #ffffffVocê já está efetuando algum roubo") end else triggerClientEvent(source, "addNotification", root, "#00ff00✘#ffffffINFO#00ff00✘➺ #ffffffEsse jogador não tem dinheiro para que possa ser roubado") end else triggerClientEvent(source, "addNotification", root, "#00ff00✘#ffffffINFO#00ff00✘➺ #ffffffO Jogador que você deseja roubar deve está fora do veículo") end else triggerClientEvent(source, "addNotification", root, "#00ff00✘#ffffffINFO#00ff00✘➺ #ffffffVocê deve sair do veículo para efetuar o roubo") end end end end addEvent ( "DNL:Roubar_Player", true ) addEventHandler ( "DNL:Roubar_Player", root, Roubar_Player) Edited May 12, 2020 by Bruno R dos Santos Link to comment
Other Languages Moderators Lord Henry Posted May 12, 2020 Other Languages Moderators Share Posted May 12, 2020 Errou na indentação e faltou a table acls 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