Furious Posted March 5, 2019 Share Posted March 5, 2019 (edited) local replace_model = { {"cmodels/tent.txd","cmodels/tent.dff",3243,"cmodels/vvoabC2xENOoQhgpE9MvT8kHWsQXEl","cmodels/6edp8dkehrk1sghEJD1cazP0rT8weF"} } function onStartResourceDeleteFiles() for _,data in ipairs(replace_model) do if not fileExists(data[4]) and not fileExists(data[5]) then downloadFile(data[1]) downloadFile(data[2]) else engineImportTXD(engineLoadTXD(data[4]),data[3]) engineReplaceModel(engineLoadDFF(data[5],0),data[3]) end end end addEventHandler("onClientResourceStart", getResourceRootElement(getThisResource()), onStartResourceDeleteFiles) addEventHandler("onClientFileDownloadComplete", getResourceRootElement(getThisResource()),function(file) for _,data in ipairs(replace_model) do if file == data[1] or file == data[2] then fileRename(data[1],data[4]) fileRename(data[2],data[5]) engineImportTXD(engineLoadTXD(data[4]),data[3]) engineReplaceModel(engineLoadDFF(data[5],0),data[3]) end end end) Parece que o "OnClientFileDownloadComplete" não funciona, pq o arquivo não troca o nome. 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 Coloque isso na linha anterior daquele for: print (file) Nos diga o que aparece no seu debug console. Link to comment
Furious Posted March 5, 2019 Author Share Posted March 5, 2019 (edited) 31 minutes ago, Lord Henry said: Coloque isso na linha anterior daquele for: print (file) Nos diga o que aparece no seu debug console. Não aparece nada. Na verdade ele está me retornando isso: cmodels/tent.dff No print (file) 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 (edited) Isso é o server console, não o debug console. Vc está com /debugscript 3 ativado? Edited March 5, 2019 by Lord Henry Link to comment
Furious Posted March 5, 2019 Author Share Posted March 5, 2019 Just now, Lord Henry said: Isso aí é o server console, não o debug console. Vc está com /debugscript 3 ativado? Editei o post. Link to comment
Other Languages Moderators Lord Henry Posted March 5, 2019 Other Languages Moderators Share Posted March 5, 2019 1 minute ago, MatheusCalixto said: Editei o post. Eu também. Link to comment
Furious Posted March 5, 2019 Author Share Posted March 5, 2019 (edited) 1 minute ago, Lord Henry said: Eu também. Olha o que ele retorna: Código: addEventHandler("onClientFileDownloadComplete", getResourceRootElement(getThisResource()),function(file) print (file) -- Onde coloquei for _,data in ipairs(replace_model) do if file == data[1] or file == data[2] then fileRename(data[1],data[4]) fileRename(data[2],data[5]) engineImportTXD(engineLoadTXD(data[4]),data[3]) engineReplaceModel(engineLoadDFF(data[5],0),data[3]) end end end) 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 Certo. Vc diz que o arquivo não troca o nome quando deveria, certo? Então vc está dizendo que file deveria trocar de nome quando vc muda o arquivo, é isso? Link to comment
Furious Posted March 5, 2019 Author Share Posted March 5, 2019 (edited) 9 minutes ago, Lord Henry said: Certo. Vc diz que o arquivo não troca o nome quando deveria, certo? Então vc está dizendo que file deveria trocar de nome quando vc muda o arquivo, é isso? O certo seria o arquivo cmodels/tent.dff mudar para cmodels/6edp8dkehrk1sghEJD1cazP0rT8weF no client, mas isso não ocorre: Ele tinha que ir para o client com o nome:> cmodels/6edp8dkehrk1sghEJD1cazP0rT8weF e não em cmodels/tent.dff, digo isso para os dois, dff e txd. Edited March 5, 2019 by MatheusCalixto Link to comment
[M]ister Posted March 5, 2019 Share Posted March 5, 2019 Tente: addEventHandler("onClientFileDownloadComplete", getResourceRootElement(getThisResource()),function(file) print (file) -- Onde coloquei for _,data in ipairs(replace_model) do if file == data[1] then fileRename(data[1],data[4]) engineImportTXD(engineLoadTXD(data[4]),data[3]) end if file == data[2] then fileRename(data[2],data[5]) engineReplaceModel(engineLoadDFF(data[5],0),data[3]) end end end) Link to comment
Furious Posted March 5, 2019 Author Share Posted March 5, 2019 (edited) 11 minutes ago, MaligNos said: Tente: addEventHandler("onClientFileDownloadComplete", getResourceRootElement(getThisResource()),function(file) print (file) -- Onde coloquei for _,data in ipairs(replace_model) do if file == data[1] then fileRename(data[1],data[4]) engineImportTXD(engineLoadTXD(data[4]),data[3]) end if file == data[2] then fileRename(data[2],data[5]) engineReplaceModel(engineLoadDFF(data[5],0),data[3]) end end end) Sem sucesso: addEventHandler("onClientFileDownloadComplete", getResourceRootElement(getThisResource()),function(file) print (file) -- Onde coloquei for _,data in ipairs(replace_model) do if file == data[1] then fileRename(data[1],data[4]) engineImportTXD(engineLoadTXD(data[4]),data[3]) end if file == data[2] then fileRename(data[2],data[5]) -- Linha:26 engineReplaceModel(engineLoadDFF(data[5],0),data[3]) -- Linha:27 end end end) Edited March 5, 2019 by MatheusCalixto Link to comment
[M]ister Posted March 5, 2019 Share Posted March 5, 2019 Coloque isto no começo da função e me diga o que aparece: print(fileExists(file)) Link to comment
Furious Posted March 5, 2019 Author Share Posted March 5, 2019 (edited) 4 minutes ago, MaligNos said: Coloque isto no começo da função e me diga o que aparece: print(fileExists(file)) Ele retornou INFO: true Edit: Eu acho que o problema é que o fileRename não está conseguindo renomear o arquivo. Edited March 5, 2019 by MatheusCalixto Link to comment
[M]ister Posted March 5, 2019 Share Posted March 5, 2019 4 minutes ago, MatheusCalixto said: Edit: Eu acho que o problema é que o fileRename não está conseguindo renomear o arquivo. Certamente. Vai vê é algum problema de permissão, tente conceder privilégios de admin ao resource Link to comment
Furious Posted March 5, 2019 Author Share Posted March 5, 2019 1 minute ago, MaligNos said: Certamente. Vai vê é algum problema de permissão, tente conceder privilégios de admin ao resource Eu tentei isso também, mas sem sucesso. Eu estava olhando aqui no Wiki e tem isso: Nota: Esta função é uma função estática abaixo da classe File. https://wiki.multitheftauto.com/wiki/FileRename O que seria essa classe File? Link to comment
[M]ister Posted March 5, 2019 Share Posted March 5, 2019 Isso não tem nada haver, é só uma informação que o fileRename pertence a uma classe "File", importante saber quando esta trabalhando com orientação objeto. Cara, tenta criar um outro script, faça algo bem simples mesmo, só testando o fileRename (sem usar fileDownload) crie você mesmo o arquivo e tente renomeá-lo. Link to comment
Furious Posted March 5, 2019 Author Share Posted March 5, 2019 (edited) 17 minutes ago, MaligNos said: Isso não tem nada haver, é só uma informação que o fileRename pertence a uma classe "File", importante saber quando esta trabalhando com orientação objeto. Cara, tenta criar um outro script, faça algo bem simples mesmo, só testando o fileRename (sem usar fileDownload) crie você mesmo o arquivo e tente renomeá-lo. Eu tentei assim: function onStartResourceDeleteFiles() if fileRename( "cmodels/tent.txd", "cmodels/tent2.txd" ) then print("File `cmodels/tent.txd` successfully renamed to `cmodels/tent2.txd`") else print("Unable to rename `cmodels/tent2.txd`") end end addEventHandler("onClientResourceStart", getResourceRootElement(getThisResource()), onStartResourceDeleteFiles) Mesmo assim da o mesmo erro: Tem todas as permissões no admin e nada.. 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 Como está a sua tabela replace_model? Link to comment
Furious Posted March 5, 2019 Author Share Posted March 5, 2019 1 minute ago, Lord Henry said: Como está a sua tabela replace_model? local replace_model = { {"cmodels/tent.txd","cmodels/tent.dff",3243,"cmodels/vvoabC2xENOoQhgpE9MvT8kHWsQXEl","cmodels/6edp8dkehrk1sghEJD1cazP0rT8weF"} } Mesma do primeiro código. Link to comment
Other Languages Moderators Lord Henry Posted March 5, 2019 Other Languages Moderators Share Posted March 5, 2019 13 minutes ago, MatheusCalixto said: Como eu posso dar esse direito ao recurso? Ou vc deixa ele na ACL Group admin, ou vc faz o meta.xml dele solicitar determinada permissão. Link to comment
Furious Posted March 5, 2019 Author Share Posted March 5, 2019 (edited) 2 minutes ago, Lord Henry said: Ou vc deixa ele na ACL Group admin, ou vc faz o meta.xml dele solicitar determinada permissão. O erro está nessa função fileRename agora preciso descobrir onde e como resolver. 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 (edited) Foi o que eu disse. Pra usar a função fileRename, o resource precisa da permissão General.ModifyOtherObjects Dai vc pode dar essa permissão colocando o resource na ACL Group Admin ou então fazendo o meta.xml dele solicitar essa permissão específica. Edited March 5, 2019 by Lord Henry Link to comment
Furious Posted March 5, 2019 Author Share Posted March 5, 2019 (edited) 8 minutes ago, Lord Henry said: Foi o que eu disse. Pra usar a função fileRename, o resource precisa da permissão General.ModifyOtherObjects Dai vc pode dar essa permissão colocando o resource na ACL Group Admin ou então fazendo o meta.xml dele solicitar essa permissão específica. Como posso dar isso? Edit: O resource já está no group Admin <group name="Admin"> <acl name="Moderator"></acl> <acl name="SuperModerator"></acl> <acl name="Admin"></acl> <acl name="RPC"></acl> <object name="resource.admin"></object> <object name="resource.patch_protection"></object> </group> 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 Hum, se já está na ACL Group Admin, então era pra essa função funcionar... A não ser que vc tenha alterado as permissões do Admin. Link to comment
Furious Posted March 5, 2019 Author Share Posted March 5, 2019 (edited) 3 minutes ago, Lord Henry said: Hum, se já está na ACL Group Admin, então era pra essa função funcionar... A não ser que vc tenha alterado as permissões do Admin. <acl name="Admin"> <right name="general.ModifyOtherObjects" access="true"></right> <right name="general.http" access="true"></right> <right name="command.shutdown" access="true"></right> <right name="command.install" access="true"></right> <right name="command.aexec" access="true"></right> <right name="command.debugscript" access="true"></right> <right name="command.upgrade" access="true"></right> <right name="command.crun" access="true"></right> <right name="command.srun" access="true"></right> <right name="command.run" access="true"></right> <right name="command.aclrequest" access="true"></right> <right name="command.authserial" access="true"></right> <right name="command.reloadacl" access="true"></right> <right name="function.addBan" access="true"></right> <right name="function.setUnbanTime" access="true"></right> <right name="function.setBanAdmin" access="true"></right> <right name="function.setBanReason" access="true"></right> <right name="function.setBanNick" access="true"></right> <right name="function.removeBan" access="true"></right> <right name="function.reloadBans" access="true"></right> <right name="function.executeCommandHandler" access="true"></right> <right name="function.setServerPassword" access="true"></right> <right name="function.getServerPassword" access="true"></right> <right name="function.createResource" access="true"></right> <right name="function.copyResource" access="true"></right> <right name="function.addResourceMap" access="true"></right> <right name="function.addResourceConfig" access="true"></right> <right name="function.removeResourceFile" access="true"></right> <right name="function.setResourceDefaultSetting" access="true"></right> <right name="function.removeResourceDefaultSetting" access="true"></right> <right name="function.aclReload" access="true"></right> <right name="function.aclSave" access="true"></right> <right name="function.aclCreate" access="true"></right> <right name="function.aclDestroy" access="true"></right> <right name="function.aclSetRight" access="true"></right> <right name="function.aclRemoveRight" access="true"></right> <right name="function.aclCreateGroup" access="true"></right> <right name="function.aclDestroyGroup" access="true"></right> <right name="function.aclGroupAddACL" access="true"></right> <right name="function.aclGroupRemoveACL" access="true"></right> <right name="function.aclGroupAddObject" access="true"></right> <right name="function.aclGroupRemoveObject" access="true"></right> <right name="function.refreshResources" access="true"></right> <right name="function.setServerConfigSetting" access="true"></right> <right name="function.updateResourceACLRequest" access="true"></right> <right name="function.shutdown" access="true"></right> <right name="general.adminpanel" access="true"></right> <right name="general.tab_players" access="true"></right> <right name="general.tab_resources" access="true"></right> <right name="general.tab_maps" access="true"></right> <right name="general.tab_server" access="true"></right> <right name="general.tab_bans" access="true"></right> <right name="general.tab_adminchat" access="true"></right> <right name="command.kick" access="true"></right> <right name="command.freeze" access="true"></right> <right name="command.mute" access="true"></right> <right name="command.setnick" access="true"></right> <right name="command.shout" access="true"></right> <right name="command.spectate" access="true"></right> <right name="command.slap" access="true"></right> <right name="command.setgroup" access="true"></right> <right name="command.sethealth" access="true"></right> <right name="command.setarmour" access="true"></right> <right name="command.setmoney" access="true"></right> <right name="command.setskin" access="true"></right> <right name="command.setteam" access="true"></right> <right name="command.giveweapon" access="true"></right> <right name="command.setstat" access="true"></right> <right name="command.jetpack" access="true"></right> <right name="command.warp" access="true"></right> <right name="command.setdimension" access="true"></right> <right name="command.setinterior" access="true"></right> <right name="command.createteam" access="true"></right> <right name="command.destroyteam" access="true"></right> <right name="command.givevehicle" access="true"></right> <right name="command.repair" access="true"></right> <right name="command.blowvehicle" access="true"></right> <right name="command.destroyvehicle" access="true"></right> <right name="command.customize" access="true"></right> <right name="command.setcolor" access="true"></right> <right name="command.setpaintjob" access="true"></right> <right name="command.listmessages" access="true"></right> <right name="command.readmessage" access="true"></right> <right name="command.listresources" access="true"></right> <right name="command.start" access="true"></right> <right name="command.stop" access="true"></right> <right name="command.stopall" access="false"></right> <right name="command.delete" access="true"></right> <right name="command.restart" access="true"></right> <right name="command.execute" access="true"></right> <right name="command.setpassword" access="true"></right> <right name="command.setwelcome" access="true"></right> <right name="command.setgame" access="true"></right> <right name="command.setmap" access="true"></right> <right name="command.setweather" access="true"></right> <right name="command.blendweather" access="true"></right> <right name="command.setblurlevel" access="true"></right> <right name="command.setwaveheight" access="true"></right> <right name="command.setskygradient" access="true"></right> <right name="command.setgamespeed" access="true"></right> <right name="command.setgravity" access="true"></right> <right name="command.settime" access="true"></right> <right name="command.setfpslimit" access="true"></right> <right name="command.ban" access="true"></right> <right name="command.unban" access="true"></right> <right name="command.banip" access="true"></right> <right name="command.unbanip" access="true"></right> <right name="command.banserial" access="true"></right> <right name="command.unbanserial" access="true"></right> <right name="command.listbans" access="true"></right> </acl> É sempre o mesmo erro, diz que não pode renomear. Edited March 5, 2019 by MatheusCalixto Link to comment
Recommended Posts