Other Languages Moderators androksi Posted March 5, 2019 Other Languages Moderators Share Posted March 5, 2019 3 minutes ago, MaligNos said: Não é via de regra possuir extensão, o exemplo que pedi para ele testar também possui e não funciona para ele, deve ser algum problema especifico no servidor dele. Hmmm, que estranho. O engraçado é que eu testei com uma txd e dff inválida (não sei se influencia em algo). Criei um arquivo de texto, coloquei um "a" e salvei o arquivo como txd e dff. . Mesmo assim funcionou perfeitamente. Link to comment
[M]ister Posted March 5, 2019 Share Posted March 5, 2019 8 minutes ago, asrzk said: Hmmm, que estranho. O engraçado é que eu testei com uma txd e dff inválida (não sei se influencia em algo). Criei um arquivo de texto, coloquei um "a" e salvei o arquivo como txd e dff. . Mesmo assim funcionou perfeitamente. Sim, o sistema de arquivos não é tão avançado assim para conseguir identificar a validade do dado com a extensão (só mexe com o nome mesmo kk). 10 minutes ago, DNL291 said: Testei com um arquivo sem extensão e funciona também. O problema é com o diretório e extensão errados. O fileExist dele retorna true: https://forum.multitheftauto.com/topic/115189-ajuda-o-que-está-de-errado-nesse-código/?do=findComment&comment=946407 Link to comment
DNL291 Posted March 5, 2019 Share Posted March 5, 2019 (edited) 12 minutes ago, MaligNos said: O fileExist dele retorna true: https://forum.multitheftauto.com/topic/115189-ajuda-o-que-está-de-errado-nesse-código/?do=findComment&comment=946407 Eu falei sobre o comentário do asrzk, só dá problema se tiver com a extensão / local incorretos, pode ser um arquivo sem extensão que funciona. Minha colocação deu a entender que foi o que aconteceu com o autor do tópico, fica aí a correção. Edited March 5, 2019 by DNL291 Link to comment
Furious Posted March 5, 2019 Author Share Posted March 5, 2019 27 minutes ago, asrzk said: Hmmm, que estranho. O engraçado é que eu testei com uma txd e dff inválida (não sei se influencia em algo). Criei um arquivo de texto, coloquei um "a" e salvei o arquivo como txd e dff. . Mesmo assim funcionou perfeitamente. 6 minutes ago, DNL291 said: Eu falei sobre o comentário do asrzk, só dá problema se tiver com a extensão / local incorretos, pode ser um arquivo sem extensão que funciona. Minha colocação deu a entender que foi o que aconteceu com o autor do tópico, fica aí a correção. 19 minutes ago, MaligNos said: Sim, o sistema de arquivos não é tão avançado assim para conseguir identificar a validade do dado com a extensão (só mexe com o nome mesmo kk). O fileExist dele retorna true: https://forum.multitheftauto.com/topic/115189-ajuda-o-que-está-de-errado-nesse-código/?do=findComment&comment=946407 2 hours ago, Lord Henry said: Então ele tem permissão sim a esta função. Bom depois de tudo, removi o MTA, limpei os arquivos e o arquivo ainda não renomeia. não sei mais o que fazer, a função não funciona. Link to comment
[M]ister Posted March 5, 2019 Share Posted March 5, 2019 15 minutes ago, MatheusCalixto said: Bom depois de tudo, removi o MTA, limpei os arquivos e o arquivo ainda não renomeia. não sei mais o que fazer, a função não funciona. Lembro que tú tava com uma pasta do servidor e outra do cliente, você reinstalou qual ? deve ser a do cliente (ou ambas). 1 Link to comment
Other Languages Moderators Lord Henry Posted March 5, 2019 Other Languages Moderators Share Posted March 5, 2019 O ideal é reinstalar tudo. Só fazer backup dos mods que tinha no servidor e pronto. Link to comment
Furious Posted March 5, 2019 Author Share Posted March 5, 2019 (edited) 32 minutes ago, MaligNos said: Lembro que tú tava com uma pasta do servidor e outra do cliente, você reinstalou qual ? deve ser a do cliente (ou ambas). 31 minutes ago, Lord Henry said: O ideal é reinstalar tudo. Só fazer backup dos mods que tinha no servidor e pronto. Não pessoal, eu reinstalei todo mta de novo, a pasta do serve é outra coisa, fiz backup de uma pasta server da instalação e deixei em um arquivo zip qdo eue precisar. Eu mexi aqui é descobri que o fileRename funciona no server-side, mas não funciona no lado client-side e eu não sei pq não funciona Edited March 5, 2019 by MatheusCalixto Link to comment
Other Languages Moderators Lord Henry Posted March 5, 2019 Other Languages Moderators Share Posted March 5, 2019 Ué. Mas de acordo com a Wiki essa função é both-side. Link to comment
Furious Posted March 5, 2019 Author Share Posted March 5, 2019 1 minute ago, Lord Henry said: Ué. Mas de acordo com a Wiki essa função é both-side. Eu troquei no script.lua o type="client" para "server" só pra testar e funcionou normal, mas qdo eu coloco "client" da aquele erro. Link to comment
Furious Posted March 5, 2019 Author Share Posted March 5, 2019 Será que os gringos não sabe kk? Link to comment
DNL291 Posted March 5, 2019 Share Posted March 5, 2019 (edited) funciona no lado cliente também. Se você quiser pode upar o resource que está testando em algum site e veremos se há algo errado; senão tiver, o problema só pode ser outro. Edited March 5, 2019 by DNL291 Link to comment
Furious Posted March 5, 2019 Author Share Posted March 5, 2019 32 minutes ago, DNL291 said: funciona no lado cliente também. Se você quiser pode upar o resource que está testando em algum site e veremos se há algo errado; senão tiver, o problema só pode ser outro. O resource já foi postado aqui. Link to comment
Furious Posted March 6, 2019 Author Share Posted March 6, 2019 @asrzk @DNL291 @Lord Henry Pessoal testa o código em algum server aí, e me diz a versão do seu MTA, quero ver se é a minha versão que está com problemas. 4 hours ago, asrzk said: O arquivo que será renomeado, deve ter uma extensão. Testei aqui e funcionou. Adicionei a extensão .yuv local replace_model = { { "cmodels/tent.txd", "cmodels/tent.dff", 3243, "cmodels/vvoabC2xENOoQhgpE9MvT8kHWsQXEl.yuv", "cmodels/6edp8dkehrk1sghEJD1cazP0rT8weF.yuv" } }; Me diz qual é a versão do seu MTA do server que você utilizou. Link to comment
Other Languages Moderators Lord Henry Posted March 6, 2019 Other Languages Moderators Share Posted March 6, 2019 Manda o link do resource que eu testo. Se não quiser publicar, manda por privado então. Link to comment
Furious Posted March 6, 2019 Author Share Posted March 6, 2019 1 minute ago, Lord Henry said: Manda o link do resource que eu testo. Se não quiser publicar, manda por privado então. Mano não tem resource, o código é esse desdo início do tópico. Link to comment
Other Languages Moderators androksi Posted March 6, 2019 Other Languages Moderators Share Posted March 6, 2019 54 minutes ago, MatheusCalixto said: Me diz qual é a versão do seu MTA do server que você utilizou. É a versão do nightly MTA, que foi lançada há 11 horas atrás. 1 Link to comment
Other Languages Moderators Lord Henry Posted March 6, 2019 Other Languages Moderators Share Posted March 6, 2019 (edited) 7 hours ago, MatheusCalixto said: meta.xml - protectionserver <meta> <script src="p_client.lua" type="client" cache="false"/> <file src="p_moldes/tent.txd" type="client" download="false"/> <file src="p_moldes/tent.dff" type="client" download="false"/> </meta> Seu meta.xml ainda está assim? Ou está diferente? Edited March 6, 2019 by Lord Henry Link to comment
Other Languages Moderators Lord Henry Posted March 6, 2019 Other Languages Moderators Share Posted March 6, 2019 Teste executado. Resultados: Detectei alguns problemas relacionados ao seu loop. Fiz algumas alterações e deixei comentários pelo código. Assim está funcionando perfeitamente: client.lua local replace_model = { -- Cada arquivo deve estar separado em linha diferente por causa da dupla verificação causada pelos loops. {"cmodels/tent.txd", "cmodels/6edp8dkehrk1sghEJD1cazP0rT8weF.txd", 3243}, {"cmodels/tent.dff", "cmodels/vvoabC2xENOoQhgpE9MvT8kHWsQXEl.dff", 3243} } function onStartResourceDeleteFiles() for _,data in ipairs(replace_model) do if not fileExists(data[2]) then -- Se não existe o arquivo renomeado, então: downloadFile(data[1]) -- Baixa o arquivo original do servidor. (pois lá ele não foi renomeado) elseif string.find (data[1], ".txd") then -- Senão se o arquivo renomeado é um TXD, então: engineImportTXD(engineLoadTXD(data[2]), data[3]) elseif string.find (data[1], ".dff") then -- Senão se o arquivo renomeado é um DFF, então: engineReplaceModel(engineLoadDFF(data[2]), data[3]) end end end addEventHandler("onClientResourceStart", getResourceRootElement(getThisResource()), onStartResourceDeleteFiles) addEventHandler("onClientFileDownloadComplete", getResourceRootElement(getThisResource()), function(file) -- Esta função é executada a cada arquivo baixado, no caso 2x for _, data in ipairs(replace_model) do if file == data[1] then -- Se o arquivo que acabou de ser baixado é o que está na data[1], então: fileRename(data[1], data[2]) -- Renomeia ele para o que está na data[2]. if string.find (data[2], ".txd") then -- Se o arquivo renomeado é um TXD, então: engineImportTXD(engineLoadTXD(data[2]), data[3]) -- Importa a textura no objeto cujo ID está no data[3] elseif string.find (data[2], ".dff") then -- Se o arquivo renomeado é um DFF, então: engineReplaceModel(engineLoadDFF(data[2]), data[3]) -- Aplica o modelo no objeto cujo ID está no data[3] end end end end) meta.xml <meta> <file src="cmodels/tent.txd" type="client" download="false"/> <file src="cmodels/tent.dff" type="client" download="false"/> <script src="client.lua" type="client" /> </meta> Arquivos após a execução: Spoiler 1 Link to comment
Furious Posted March 6, 2019 Author Share Posted March 6, 2019 9 hours ago, Lord Henry said: Teste executado. Resultados: Detectei alguns problemas relacionados ao seu loop. Fiz algumas alterações e deixei comentários pelo código. Assim está funcionando perfeitamente: client.lua local replace_model = { -- Cada arquivo deve estar separado em linha diferente por causa da dupla verificação causada pelos loops. {"cmodels/tent.txd", "cmodels/6edp8dkehrk1sghEJD1cazP0rT8weF.txd", 3243}, {"cmodels/tent.dff", "cmodels/vvoabC2xENOoQhgpE9MvT8kHWsQXEl.dff", 3243} } function onStartResourceDeleteFiles() for _,data in ipairs(replace_model) do if not fileExists(data[2]) then -- Se não existe o arquivo renomeado, então: downloadFile(data[1]) -- Baixa o arquivo original do servidor. (pois lá ele não foi renomeado) elseif string.find (data[1], ".txd") then -- Senão se o arquivo renomeado é um TXD, então: engineImportTXD(engineLoadTXD(data[2]), data[3]) elseif string.find (data[1], ".dff") then -- Senão se o arquivo renomeado é um DFF, então: engineReplaceModel(engineLoadDFF(data[2]), data[3]) end end end addEventHandler("onClientResourceStart", getResourceRootElement(getThisResource()), onStartResourceDeleteFiles) addEventHandler("onClientFileDownloadComplete", getResourceRootElement(getThisResource()), function(file) -- Esta função é executada a cada arquivo baixado, no caso 2x for _, data in ipairs(replace_model) do if file == data[1] then -- Se o arquivo que acabou de ser baixado é o que está na data[1], então: fileRename(data[1], data[2]) -- Renomeia ele para o que está na data[2]. if string.find (data[2], ".txd") then -- Se o arquivo renomeado é um TXD, então: engineImportTXD(engineLoadTXD(data[2]), data[3]) -- Importa a textura no objeto cujo ID está no data[3] elseif string.find (data[2], ".dff") then -- Se o arquivo renomeado é um DFF, então: engineReplaceModel(engineLoadDFF(data[2]), data[3]) -- Aplica o modelo no objeto cujo ID está no data[3] end end end end) meta.xml <meta> <file src="cmodels/tent.txd" type="client" download="false"/> <file src="cmodels/tent.dff" type="client" download="false"/> <script src="client.lua" type="client" /> </meta> Arquivos após a execução: Reveal hidden contents Amigo, eu preciso saber qual a versão do MTA você utilizou, pq aqui continua com um erro que não renomeia o arquivo, então eu queria testar outra versão para ver se é isso. Eu removi o MTA por completo do computador, instalei a última versão do nightly MTA e o errou continuou, o código está correto mas não renomeia pra mim, da sempre aquele erro. Link to comment
DNL291 Posted March 6, 2019 Share Posted March 6, 2019 Já tentou com um arquivo diferente ou fora de qualquer pasta ou deletando os arquivos do cache do cliente (MTA San Andreas 1.5\mods\deathmatch\resources)? A versão do MTA com certeza não tem relação com esse problema. Link to comment
Furious Posted March 6, 2019 Author Share Posted March 6, 2019 (edited) 7 minutes ago, DNL291 said: Já tentou com um arquivo diferente ou fora de qualquer pasta ou deletando os arquivos do cache do cliente (MTA San Andreas 1.5\mods\deathmatch\resources)? A versão do MTA com certeza não tem relação com esse problema. Já tentei de tudo, mais parece que algumas funções "FILE" não funciona no lado do cliente pra mim. Eu tentei utilizar esse, apenas para teste: https://wiki.multitheftauto.com/wiki/FileCopy E deu um problema parecido. Edited March 6, 2019 by MatheusCalixto Link to comment
Other Languages Moderators Lord Henry Posted March 6, 2019 Other Languages Moderators Share Posted March 6, 2019 1 hour ago, MatheusCalixto said: Amigo, eu preciso saber qual a versão do MTA você utilizou MTA:SA Server v.1.5.6-release-16557 Link to comment
Furious Posted March 6, 2019 Author Share Posted March 6, 2019 O engraçado é que tem um servidor que utiliza fileRename nos arquivos dele e funciona normalmente pra mim: 14 minutes ago, Lord Henry said: MTA:SA Server v.1.5.6-release-16557 Você pode zipar a pasta do server que você usou e mandar pra mim? Link to comment
DNL291 Posted March 6, 2019 Share Posted March 6, 2019 (edited) Bom, agora tenho certeza que só pode ser um problema diferente, talvez com o servidor/sistema do PC. Até por que o mesmo erro ocorreu com o resource do Malignos e pelo que me lembro em nenhum momento a função funcionou pra você. Se quiser, você pode deixar aqui o log do MTADiag, baixe-o, execute ele e cole aqui o link salvo no clipboard (Ctrl+c) : Baixar MTADiag Edit: Use a função fileRename no lado server que deve funcionar. Edited March 6, 2019 by DNL291 Link to comment
Recommended Posts