Jump to content

[Ajuda] restartResource


Recommended Posts

Olá, Bom (a) [Dia / Tarde / Noite].

Estou Desenvolvendo um Painel "admin" , e nele quero implementar uma função de "Reiniciar" todas bases do Servidor utilizando " restartResource ".
Gostaria saber se tem como "reiniciar" todas as bases usando a mesma função, sem ter que criar várias funções de acordo com cada bases. Exemplo:  restartResource (res) + (outroResource) + (outroResource)

O recurso até o momento; 

function ReiniciarBases()
    local allResources = getResources()
    for index, res in ipairs(allResources) do,
        if getResourceState(res) == "running" then
            restartResource(res)
        end
    end
end

Outra duvida sobre o tempo -> Em que parte eu poderia definir um "temporizador" para reutilizar essa função novamente?
Outra duvida sobre Grupos -> Como fazer para ativar a permissão por ACL nesse script? É possível adicionar mais de uma ACL?

Edited by Lucas Pane
Link to comment

Sobre a ACL, se eu colocar isso, vai funcionar?

Acl = "Console"
Comando = "adm"

function abrirPainel (source,command)
 local acc = getAccountName(getPlayerAccount(source))
      if isObjectInACLGroup("user."..acc, aclGetGroup (Acl)) then
   end
end
addCommandHandler (Comando, abrirPainel)

Sobre varias ACL´s, posso usar isso? 

if isObjectInACLGroup("user."..acc, aclGetGroup (Acl)) or isObjectInACLGroup("user."..acc, aclGetGroup (Acl)) then

 

Edited by Lucas Pane
Link to comment

# 1º Dúvida, Faça : (Verificar Resource)

function ReiniciarBases()
   local allResources = getResources()
   for index, res in ipairs(allResources) do
      if getResourceState(res) == "running" then
         if getResourceName(res) == "nome_do_resource_1" or getResourceName(res) == "nome_do_resource_2" then --/> Adicione + RESOURCE 
            restartResource(res)
         end
      end
   end
end

#2º Dúvida, Faça : (Temporizador na função).

local temporizador = false
local tempo = 60000*10 --/> 10 Minutos.

function ReiniciarBases()
   if temporizador == true then return end --/> Caso verificar em true, então retornará.
   temporizador = true 
   setTimer ( function () temporizador = false end, tempo, 1)
   local allResources = getResources()
   for index, res in ipairs(allResources) do
      if getResourceState(res) == "running" then
         if getResourceName(res) == "[BASE]1" or getResourceName(res) == "[BASE]2" then --/> Adicione + RESOURCE 
            restartResource(res)
         end
      end
   end
end

#3º Dúvida (Várias ACL) + (Ativar Função : ReiniciarBases() )

acl1 = "Console"
acl2 = "Admin"
Comando = "adm"

function abrirPainel ( source )
   local acc = getAccountName(getPlayerAccount(source))
   if isObjectInACLGroup("user."..acc, aclGetGroup (acl1)) or isObjectInACLGroup("user."..acc, aclGetGroup (acl2)) then
      ReiniciarBases() --/> Exemplo [APENAS, Caso queira executa essa função por Comando).
   end
end
addCommandHandler (Comando, abrirPainel)

 

Edited by Angelo Pereira
Link to comment
  • Other Languages Moderators

Para obter somente os resources que são bases, primeiramente todos eles devem ter seu type declarado no meta.xml como map em vez de script.

Depois use getResourceInfo e obtenha o type de cada resource. Os que forem == "map" são os resources de base.

No exemplo da wiki ele está verificando o author, troque pra type.

Link to comment

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