Jump to content

[Ajuda] Duvida com autostart de scripts


Recommended Posts

Posted

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+

 

  • Moderators
Posted

Sim, existe essa maneira.

 

Eu te ajudei ou achou meu comentário útil? Não esqueça de deixar um Thanksspacer.png

Minhas contribuições para a comunidade: LordHenry - MTA Wiki Profile
Inscreva-se no meu canal do YouTube: Lord Henry - Entertainment
Discord Oficial do MTA: https://mtasa.com/discord
Blacklist e Whitelist de Scripters: Planilha

Por favor, não me envie mensagens privadas solicitando suporte. Crie um tópico no fórum em vez disso.

  • Moderators
Posted (edited)

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

Eu te ajudei ou achou meu comentário útil? Não esqueça de deixar um Thanksspacer.png

Minhas contribuições para a comunidade: LordHenry - MTA Wiki Profile
Inscreva-se no meu canal do YouTube: Lord Henry - Entertainment
Discord Oficial do MTA: https://mtasa.com/discord
Blacklist e Whitelist de Scripters: Planilha

Por favor, não me envie mensagens privadas solicitando suporte. Crie um tópico no fórum em vez disso.

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