Jump to content

[Ajuda] Duvida com autostart de scripts


Recommended Posts

Olá, minha duvida e bem simples e referente ao código abaixo.

<resource src="teste" startup="1" protected="0" />

eu gostaria de saber se há alguma maneira de ao invés iniciar um por um, iniciar uma pasta inteira (cheia de scripts) que no meu caso, meu servidor possuí 200+

 

Link to comment
  • Other Languages Moderators

Crie uma pasta organizacional (com colchetes que nem a pasta [admin], [gamemodes], etc) por exemplo uma pasta chamada [autostart]. (os colchetes servem para o MTA saber que a pasta contém outros resources, sem o colchetes ele considera a pasta como um resource.

Depois de criar a pasta [autostart] (ela tem que estar na raiz da sua pasta resources, ela não pode estar dentro de outra [pasta]), crie um resource qualquer e coloque-o em qualquer lugar exceto dentro da pasta [autostart]. Eu colocaria dentro da pasta [admin] por exemplo.

Esse resource qualquer será responsável por ativar todos os resources que estiverem dentro da pasta [autostart] (por esse motivo, ele não pode estar dentro dela, pois é inútil ele tentar ativar a si mesmo). Este resource precisará de permissão admin para poder ativar os demais resources, portanto coloque-o na ACL Group Admin.

Este resource deve ter um server.Lua e um meta.xml.

No meta.xml, vc precisa declarar o server.Lua e também informar ao MTA que este resource deve ser iniciado por último. Caso contrário ele vai tentar iniciar resources que nem foram carregados ainda e dará erro.

O meta.xml deve ficar tipo assim:

<meta>
    <info author="LordHenry" version="1.0.0" name="Auto Start Resources" description="Inicia automaticamente os resources que estiverem na [pasta] definida." type="script" />
    <script src="server.Lua" type="server" />
    <download_priority_group>-2</download_priority_group>
</meta>

E o server.Lua deve ficar assim:

addEventHandler ("onResourceStart", resourceRoot, function () -- Ativa essa função quando este resource iniciar.
    for i, res in ipairs (getResources()) do -- Para cada resource do servidor, faça:
        if (getResourceOrganizationalPath (res) == "[autostart]") then -- Se o resource está dentro da pasta [autostart], então:
            startResource (res, true) -- Inicia o resource de maneira persistente (ele não vai desligar caso este resource seja desligado)
        end
    end
end)

Pronto.

Edited by Lord Henry
  • Thanks 1
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...