Jump to content

file


Nerses

Recommended Posts

Hello everyone. I have a question. Is it possible to make it so that players were waiting for the end download files from the server and through the server so they played? That is, files that worked on the server, not need the players waited to finish loading.

Link to comment
Hello everyone. I have a question. Is it possible to make it so that players were waiting for the end download files from the server and through the server so they played? That is, files that worked on the server, not need the players waited to finish loading.

yes it's possible All what you need is

  
-- meta.xml 
download="false" -- Using "false" will mean files Will Not Be Downloaded on resource start. 
  
-- Function 
downloadFile() -- use it to download files when the player spawn. 
  
-- Events 
onClientPlayerSpawn 
onClientFileDownloadComplete -- This event is triggered when a file has been downloaded after downloadFile has been successfully called. 

Link to comment
Hello everyone. I have a question. Is it possible to make it so that players were waiting for the end download files from the server and through the server so they played? That is, files that worked on the server, not need the players waited to finish loading.

yes it's possible All what you need is

  
-- meta.xml 
download="false" -- Using "false" will mean files Will Not Be Downloaded on resource start. 
  
-- Function 
downloadFile() -- use it to download files when the player spawn. 
  
-- Events 
onClientPlayerSpawn 
onClientFileDownloadComplete -- This event is triggered when a file has been downloaded after downloadFile has been successfully called. 

Can provide a sample of how it will look this function for example?

Link to comment
try to do it by yourself then post your code here and i will help you.

Let it be the script of cars, like mine for example

skript

txd = engineLoadTXD ( "bmwm5.txd" ) 
engineImportTXD ( txd, 526 ) 
dff = engineLoadDFF ( "bmwm5.dff", 0 ) 
engineReplaceModel ( dff, 526 ) 
  
txd = engineLoadTXD ( "cclass.txd" ) 
engineImportTXD ( txd, 458 ) 
dff = engineLoadDFF ( "cclass.dff", 0 ) 
engineReplaceModel ( dff, 458 ) 
  
txd = engineLoadTXD ( "continental.txd" ) 
engineImportTXD ( txd, 474 ) 
dff = engineLoadDFF ( "continental.dff", 0 ) 
engineReplaceModel ( dff, 474 ) 
  
txd = engineLoadTXD ( "E63.txd" ) 
engineImportTXD ( txd, 585 ) 
dff = engineLoadDFF ( "E63.dff", 0 ) 
engineReplaceModel ( dff, 585 ) 
  
txd = engineLoadTXD ( "ford.txd" ) 
engineImportTXD ( txd, 527 ) 
dff = engineLoadDFF ( "ford.dff", 0 ) 
engineReplaceModel ( dff, 527 ) 
  
txd = engineLoadTXD ( "G65.txd" ) 
engineImportTXD ( txd, 490 ) 
dff = engineLoadDFF ( "G65.dff", 0 ) 
engineReplaceModel ( dff, 490 ) 
  
txd = engineLoadTXD ( "lamborgini.txd" ) 
engineImportTXD ( txd, 587 ) 
dff = engineLoadDFF ( "lamborgini.dff", 0 ) 
engineReplaceModel ( dff, 587 ) 
  
txd = engineLoadTXD ( "lexus.txd" ) 
engineImportTXD ( txd, 421 ) 
dff = engineLoadDFF ( "lexus.dff", 0 ) 
engineReplaceModel ( dff, 421 ) 
  
txd = engineLoadTXD ( "M3.txd" ) 
engineImportTXD ( txd, 517 ) 
dff = engineLoadDFF ( "M3.dff", 0 ) 
engineReplaceModel ( dff, 517 ) 
  
txd = engineLoadTXD ( "M5.txd" ) 
engineImportTXD ( txd, 546 ) 
dff = engineLoadDFF ( "M5.dff", 0 ) 
engineReplaceModel ( dff, 546 ) 
  
txd = engineLoadTXD ( "M6.txd" ) 
engineImportTXD ( txd, 603 ) 
dff = engineLoadDFF ( "M6.dff", 0 ) 
engineReplaceModel ( dff, 603 ) 
  
txd = engineLoadTXD ( "maserati.txd" ) 
engineImportTXD ( txd, 451 ) 
dff = engineLoadDFF ( "maserati.dff", 0 ) 
engineReplaceModel ( dff, 451 ) 
  
txd = engineLoadTXD ( "muslane.txd" ) 
engineImportTXD ( txd, 580 ) 
dff = engineLoadDFF ( "muslane.dff", 0 ) 
engineReplaceModel ( dff, 580 ) 
  
txd = engineLoadTXD ( "Porsche.txd" ) 
engineImportTXD ( txd, 400 ) 
dff = engineLoadDFF ( "Porsche.dff", 0 ) 
engineReplaceModel ( dff, 400 ) 
  
txd = engineLoadTXD ( "RRS.txd" ) 
engineImportTXD ( txd, 505 ) 
dff = engineLoadDFF ( "RRS.dff", 0 ) 
engineReplaceModel ( dff, 505 ) 
  
txd = engineLoadTXD ( "S65.txd" ) 
engineImportTXD ( txd, 560 ) 
dff = engineLoadDFF ( "S65.dff", 0 ) 
engineReplaceModel ( dff, 560 ) 
  
txd = engineLoadTXD ( "SL65.txd" ) 
engineImportTXD ( txd, 555 ) 
dff = engineLoadDFF ( "SL65.dff", 0 ) 
engineReplaceModel ( dff, 555 ) 
  
txd = engineLoadTXD ( "X5.txd" ) 
engineImportTXD ( txd, 579 ) 
dff = engineLoadDFF ( "X5.dff", 0 ) 
engineReplaceModel ( dff, 579 ) 
  
txd = engineLoadTXD ( "X6M.txd" ) 
engineImportTXD ( txd, 470 ) 
dff = engineLoadDFF ( "X6M.dff", 0 ) 
engineReplaceModel ( dff, 470 ) 
  
txd = engineLoadTXD ( "ML63.txd" ) 
engineImportTXD ( txd, 489 ) 
dff = engineLoadDFF ( "ML63.dff", 0 ) 
engineReplaceModel ( dff, 489 ) 
  
txd = engineLoadTXD ( "mclaren.txd" ) 
engineImportTXD ( txd, 506 ) 
dff = engineLoadDFF ( "mclaren.dff", 0 ) 
engineReplaceModel ( dff, 506 ) 
  
txd = engineLoadTXD ( "r352.txd" ) 
engineImportTXD ( txd, 419 ) 
dff = engineLoadDFF ( "r352.dff", 0 ) 
engineReplaceModel ( dff, 419 ) 
  
txd = engineLoadTXD ( "CAMRY.txd" ) 
engineImportTXD ( txd, 534 ) 
dff = engineLoadDFF ( "CAMRY.dff", 0 ) 
engineReplaceModel ( dff, 534 ) 
  
txd = engineLoadTXD ( "X6.txd" ) 
engineImportTXD ( txd, 599 ) 
dff = engineLoadDFF ( "X6.dff", 0 ) 
engineReplaceModel ( dff, 599 ) 
  
txd = engineLoadTXD ( "X5M.txd" ) 
engineImportTXD ( txd, 495 ) 
dff = engineLoadDFF ( "X5M.dff", 0 ) 
engineReplaceModel ( dff, 495 ) 
  
txd = engineLoadTXD ( "e63amg.txd" ) 
engineImportTXD ( txd, 480 ) 
dff = engineLoadDFF ( "e63amg.dff", 0 ) 
engineReplaceModel ( dff, 480 ) 
  
txd = engineLoadTXD ( "A7.txd" ) 
engineImportTXD ( txd, 567 ) 
dff = engineLoadDFF ( "A7.dff", 0 ) 
engineReplaceModel ( dff, 567 ) 
  
txd = engineLoadTXD ( "vogue.txd" ) 
engineImportTXD ( txd, 412 ) 
dff = engineLoadDFF ( "vogue.dff", 0 ) 
engineReplaceModel ( dff, 412 ) 
  
txd = engineLoadTXD ( "slk.txd" ) 
engineImportTXD ( txd, 558 ) 
dff = engineLoadDFF ( "slk.dff", 0 ) 
engineReplaceModel ( dff, 558 ) 
  
txd = engineLoadTXD ( "one77.txd" ) 
engineImportTXD ( txd, 576 ) 
dff = engineLoadDFF ( "one77.dff", 0 ) 
engineReplaceModel ( dff, 576 ) 
  
  
txd = engineLoadTXD ( "R8.txd" ) 
engineImportTXD ( txd, 439 ) 
dff = engineLoadDFF ( "R8.dff", 0 ) 
engineReplaceModel ( dff, 439 ) 
  

meta

<meta> 
<info author="fsdf" description="dwadwa" version="1.0" type="script" /> 
<include resource="freeroam"/> 
<script src="script.lua" type="client"/> 
<file src="bmwm5.txd" type="client"/> 
<file src="bmwm5.dff" type="client"/> 
<file src="cclass.txd" type="client"/> 
<file src="cclass.dff" type="client"/> 
<file src="continental.txd" type="client"/> 
<file src="continental.dff" type="client"/> 
<file src="E63.txd" type="client"/> 
<file src="E63.dff" type="client"/> 
<file src="ford.txd" type="client"/> 
<file src="ford.dff" type="client"/> 
<file src="G65.txd" type="client"/> 
<file src="G65.dff" type="client"/> 
<file src="lamborgini.txd" type="client"/> 
<file src="lamborgini.dff" type="client"/> 
<file src="lexus.txd" type="client"/> 
<file src="lexus.dff" type="client"/> 
<file src="M3.txd" type="client"/> 
<file src="M3.dff" type="client"/> 
<file src="M5.txd" type="client"/> 
<file src="M5.dff" type="client"/> 
<file src="M6.txd" type="client"/> 
<file src="M6.dff" type="client"/> 
<file src="maserati.txd" type="client"/> 
<file src="maserati.dff" type="client"/> 
<file src="muslane.txd" type="client"/> 
<file src="muslane.dff" type="client"/> 
<file src="Porsche.txd" type="client"/> 
<file src="Porsche.dff" type="client"/> 
<file src="RRS.txd" type="client"/> 
<file src="RRS.dff" type="client"/> 
<file src="S65.txd" type="client"/> 
<file src="S65.dff" type="client"/> 
<file src="SL65.txd" type="client"/> 
<file src="SL65.dff" type="client"/> 
<file src="X5.txd" type="client"/> 
<file src="X5.dff" type="client"/> 
<file src="X6M.txd" type="client"/> 
<file src="X6M.dff" type="client"/> 
<file src="ML63.txd" type="client"/> 
<file src="ML63.dff" type="client"/> 
<file src="mclaren.txd" type="client"/> 
<file src="mclaren.dff" type="client"/> 
<file src="r352.txd" type="client"/> 
<file src="r352.dff" type="client"/> 
<file src="CAMRY.txd" type="client"/> 
<file src="CAMRY.dff" type="client"/> 
<file src="X6.txd" type="client"/> 
<file src="X6.dff" type="client"/> 
<file src="X5M.txd" type="client"/> 
<file src="X5M.dff" type="client"/> 
<file src="e63amg.txd" type="client"/> 
<file src="e63amg.dff" type="client"/> 
<file src="A7.txd" type="client"/> 
<file src="A7.dff" type="client"/> 
<file src="vogue.txd" type="client"/> 
<file src="vogue.dff" type="client"/> 
<file src="slk.txd" type="client"/> 
<file src="slk.dff" type="client"/> 
<file src="one77.txd" type="client"/> 
<file src="one77.dff" type="client"/> 
<file src="R8.txd" type="client"/> 
<file src="R8.dff" type="client"/> 
</meta>  

Link to comment

In order for this to work, the files should also be included in meta.xml with the download attribute set to "false". Then you can simply download the files you wish using downloadFile and then executing any necessary code attached to onClientFileDownloadComplete.

  
local files = {} 
files.textures = {infernus = {status = {txd = false, dff = false}, "infernus.txd", "infernus.dff"}} 
files.images = {"something.png"} 
  
function files:download () 
    for key, value in pairs(self) do 
        if type(value) == "table" then 
            for key, value in pairs(value) do 
                if type(value) == "table" then -- textures (as it contains sub-tables) 
                    for index, file in ipairs(value) do -- status will be ignored as it's not a numerical index 
                        downloadFile(value) -- infernus.txd / infernus.dff / ... 
                    end 
                else 
                    downloadFile(value) -- something.png / ... 
                end 
            end 
        end 
    end 
end 
  
addEventHandler("onClientFileDownloadComplete", root, 
    function(name, success) 
        if not success then return end 
        -- Example 
        if name == "infernus.txd" then 
            files.textures.infernus.status.txd = true 
        elseif name == "infernus.dff" then 
            files.textures.infernus.status.dff = true 
        end 
        -- 
        if files.textures.infernus.status.txd and files.textures.infernus.status.dff then -- both files are downloaded 
            engineImportTXD(engineLoadTXD("infernus.txd"), 425) 
            engineReplaceModel(engineLoadDFF("infernus.dff", 0), 425) 
        end 
    end 
) 
  

Just for you to get an idea about what you would need, though does not mean the upper way is the unique functional nor the most efficient.

What I did above is downloading both texture files (infernus.txd and infernus.dff) and checking whether both files are downloaded before replacing a model with them, using a couple of booleans named there as 'status'.

Link to comment

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