Jump to content

[Ajuda] - O que está de errado nesse código?


Recommended Posts

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 by MatheusCalixto
Link to comment
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.

Wwm6wfI.png

Na verdade ele está me retornando isso:

cmodels/tent.dff

No print (file)

Edited by MatheusCalixto
Link to comment
1 minute ago, Lord Henry said:

Eu também.

Olha o que ele retorna:

gz7dXbQ.png

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 by MatheusCalixto
Link to comment
  • Other Languages Moderators

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

YZDtvZR.png

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 by MatheusCalixto
Link to comment

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

Z7bMllZ.png

Edited by MatheusCalixto
Link to comment

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

uHyrghQ.png

Tem todas as permissões no admin e nada.. 

Edited by MatheusCalixto
Link to comment
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
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
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 by MatheusCalixto
Link to comment
  • Other Languages Moderators

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 by Lord Henry
Link to comment
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 by MatheusCalixto
Link to comment
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 by MatheusCalixto
Link to comment
Guest
This topic is now closed to further replies.
  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...