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 post

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 post

# 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 post

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 post

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