KiritoAguiar Posted November 20, 2021 Share Posted November 20, 2021 Há alguma maneira de eu saber quantos arquivos há em um meta.xml? ou quantas letras tem ou quantas linhas tem? E como verifico a existencia de um arquivo .lua tipo criar um verificador pra fazer algo caso exista um arquivo .lua especifico no resource Link to comment
Other Languages Moderators androksi Posted November 20, 2021 Other Languages Moderators Share Posted November 20, 2021 Olá, @KiritoAguiar! Existe sim essa maneira. Você pode usar estas funções: xmlLoadFile, xmlNodeGetChildren, xmlNodeGetAttribute e xmlUnloadFile. Fiz um exemplo abaixo de como usá-las, já resolvendo o seu problema. Comentei as linhas para que você possa entender melhor. local validNodeNames = { ["script"] = true, ["file"] = true } function getFilesFromMeta(resourceName) local files = {} -- Uma tabela para armazenar os arquivos. local path = (":%s/meta.xml"):format(resourceName) -- Criamos o caminho para o meta.xml. if fileExists(path) then -- Checa se o caminho existe. local meta = xmlLoadFile(path) -- Carregamos o meta.xml. if not meta then -- Se não carregar corretamente, então cancelaremos a execução do código abaixo. return false end local nodes = xmlNodeGetChildren(meta) -- Obtém aquelas tags dentro do meta.xml (file, script, etc) for i, v in pairs(nodes) do -- Fazemos um loop nessas tags. local nodeName = xmlNodeGetName(v) -- Aqui, estamos obtendo o nome dessas tags. if validNodeNames[nodeName] then -- Criei uma tabela simples para filtrar o tipo de tag que eu desejo. Nesse caso, só 'script' e 'file' mesmo. local attrPath = xmlNodeGetAttribute(v, "src") -- Iremos pegar o caminho que o arquivo está, por exemplo: server/config/main.lua files[#files + 1] = { path = attrPath, type = nodeName } -- Coloca a informação de caminho e tipo do arquivo dentro da tabela. end end xmlUnloadFile(meta) -- Descarrega o meta.xml, removendo-o da memória. return files -- Retorna a tabela pronta para nós. end return false end -- Usei o # aqui para obter o total de scripts e files (juntos), dentro do resource admin. iprint(#getFilesFromMeta("admin")) Link to comment
KiritoAguiar Posted November 20, 2021 Author Share Posted November 20, 2021 Po era exatamente oq eu tava querendo saber, vlw 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