EngineLoadDFF: Difference between revisions

From Multi Theft Auto: Wiki
Jump to navigation Jump to search
mNo edit summary
m (prefer normal note)
 
(9 intermediate revisions by 5 users not shown)
Line 1: Line 1:
{{Client function}}
{{Client function}}
__NOTOC__
__NOTOC__{{Note|Please note the loading order that is used in the examples as other orders can cause collisions, textures or the DFF not to load due to technical limitations.}}
{{Note box|Please note the loading order that is used in the examples as other orders can cause collisions, textures or the DFF not to load due to technical limitations}}


This function loads a RenderWare Model (DFF) file into GTA.
This function loads a RenderWare Model (DFF) file into GTA.


* To successfully load vehicle models, it is necessary to pass the vehicle model id to the function so any embedded DFF extensions (such as collisions) will be loaded correctly.
To successfully load your model with textures, be sure to use [[engineLoadTXD]] and [[engineImportTXD]] before calling this function. If some error occurs while loading the DFF, MTA will output a message - check out [[DFF error messages]] to know what they mean.
* To successfully load your model with textures, be sure to use [[engineLoadTXD]] and [[engineImportTXD]] before calling this function.


This is a client side function. Be sure to transfer your DFF file by including it in the meta file.
This is a client side function. Be sure to transfer your DFF file by including it in the meta file.
Line 14: Line 12:
==Syntax==  
==Syntax==  
<syntaxhighlight lang="lua">
<syntaxhighlight lang="lua">
dff engineLoadDFF ( string dff_file, int model_id )  
dff engineLoadDFF ( string dff_file / string raw_data )  
</syntaxhighlight>
</syntaxhighlight>
{{OOP||[[DFF|EngineDFF]]}}
{{OOP||[[DFF|EngineDFF]]}}
===Required Arguments===  
===Required Arguments===  
*'''dff_file:''' The [[filepath]] to the DFF file you want to load
*'''dff_file / raw_data:''' The [[filepath]] to the DFF file you want to load or whole data buffer of the DFF file.
*'''model_id:''' The model id that should be associated with the dff. (This value is ignored after 1.3.1 and can be set to zero for all models)
 
===Returns===
Returns a [[DFF]] element if the dff file loaded, ''false'' otherwise.


{{New feature/item|3.0150|1.4.1|7088|
==Syntax==
<syntaxhighlight lang="lua">
dff engineLoadDFF ( string dff_file / string raw_data )
</syntaxhighlight>
===Required Arguments===
*'''dff_file / raw_data:''' The [[filepath]] to the DFF file you want to load or whole data buffer of the DFF file.
===Returns===
===Returns===
Returns a [[DFF]] element if the dff file loaded, ''false'' otherwise.
Returns a [[DFF]] element if the dff file loaded, ''false'' otherwise.
}}


==Example==  
==Example==  
Line 42: Line 28:
txd = engineLoadTXD ( "data/euros.txd" )
txd = engineLoadTXD ( "data/euros.txd" )
engineImportTXD ( txd, 587 )
engineImportTXD ( txd, 587 )
dff = engineLoadDFF ( "data/euros.dff", 0 )
dff = engineLoadDFF ( "data/euros.dff" )
engineReplaceModel ( dff, 587 )
engineReplaceModel ( dff, 587 )
</syntaxhighlight>
</syntaxhighlight>


'''Example 2:''' This example loads a combination of custom TXD, COL and DFF files to replace an in-game model of a set of floors.
'''Example 2:''' This example replaces a standard SA skin (in this example ID '190) with a custom skin model (DFF & TXD)
<syntaxhighlight lang="lua">
addEventHandler ( "onClientResourceStart", resourceRoot,
function ()
txd = engineLoadTXD ( "skinmodel.txd" ); -- change 'skinmodel' to your mod's file name
engineImportTXD ( txd, 190 ); -- change the ID 190 into the GTA skin ID you with to replace with mod
dff = engineLoadDFF ( "skinmodel.dff" ); -- change 'skinmodel' to your mod's file name
engineReplaceModel ( dff, 190 ); -- change the ID 190 into the GTA skin ID you with to replace with mod
end
);
</syntaxhighlight>
 
'''Example 3:''' This example replaces a default weapon with a custom weapon mod (TXD & DFF)
<syntaxhighlight lang="lua">
function replaceWeapon()
txd = engineLoadTXD ( "m4.txd" )
engineImportTXD ( txd, 356)
dff = engineLoadDFF ( "m4.dff") -- use weapon model ID, not GTA weapon ID (model ID from https://wiki.multitheftauto.com/wiki/Weapons)
engineReplaceModel ( dff, 356) -- Likewise, model ID, for M4 as example it's 356
 
end
addEventHandler ( "onClientResourceStart", resourceRoot, replaceWeapon)
</syntaxhighlight>
 
'''Example 4:''' This example loads a combination of custom TXD, COL and DFF files to replace an in-game model of a set of floors.
<syntaxhighlight lang="lua">
<syntaxhighlight lang="lua">
outputChatBox ( "> loading floor objects" )
outputChatBox ( "> loading floor objects" )
Line 53: Line 63:
txd_floors = engineLoadTXD ( "models/office_floors.txd" )
txd_floors = engineLoadTXD ( "models/office_floors.txd" )
engineImportTXD ( txd_floors, 3781 )
engineImportTXD ( txd_floors, 3781 )
dff_floors = engineLoadDFF ( "models/office_floors.dff", 0 )
dff_floors = engineLoadDFF ( "models/office_floors.dff" )
engineReplaceModel ( dff_floors, 3781 )
engineReplaceModel ( dff_floors, 3781 )
</syntaxhighlight>
</syntaxhighlight>
==Changelog==
{{ChangelogHeader}}
{{ChangelogItem|1.4.1-9.07088|Added option to use raw data instead of a file name}}


==See Also==
==See Also==
{{Engine_functions}}
{{Engine_functions}}

Latest revision as of 08:35, 7 September 2019

[[{{{image}}}|link=|]] Note: Please note the loading order that is used in the examples as other orders can cause collisions, textures or the DFF not to load due to technical limitations.

This function loads a RenderWare Model (DFF) file into GTA.

To successfully load your model with textures, be sure to use engineLoadTXD and engineImportTXD before calling this function. If some error occurs while loading the DFF, MTA will output a message - check out DFF error messages to know what they mean.

This is a client side function. Be sure to transfer your DFF file by including it in the meta file.

The returned DFF element is an element in the element tree, just like vehicles and objects. When the dff is destroyed, ie on resource unload or using destroyElement, any elements that use the DFF, such as vehicles or objects will be reset.

Syntax

dff engineLoadDFF ( string dff_file / string raw_data ) 

OOP Syntax Help! I don't understand this!

Method: EngineDFF(...)


Required Arguments

  • dff_file / raw_data: The filepath to the DFF file you want to load or whole data buffer of the DFF file.

Returns

Returns a DFF element if the dff file loaded, false otherwise.

Example

Example 1: This example loads a combination of a custom DFF and TXD file to replace the Euros vehicle in-game. The collisions are embedded inside the DFF file.

outputChatBox ( "> replacing the euros vehicle" )

txd = engineLoadTXD ( "data/euros.txd" )
engineImportTXD ( txd, 587 )
dff = engineLoadDFF ( "data/euros.dff" )
engineReplaceModel ( dff, 587 )

Example 2: This example replaces a standard SA skin (in this example ID '190) with a custom skin model (DFF & TXD)

addEventHandler ( "onClientResourceStart", resourceRoot,
	function ()
		txd = engineLoadTXD ( "skinmodel.txd" ); -- change 'skinmodel' to your mod's file name
		engineImportTXD ( txd, 190 ); -- change the ID 190 into the GTA skin ID you with to replace with mod
		dff = engineLoadDFF ( "skinmodel.dff" ); -- change 'skinmodel' to your mod's file name
		engineReplaceModel ( dff, 190 ); -- change the ID 190 into the GTA skin ID you with to replace with mod
	end
);

Example 3: This example replaces a default weapon with a custom weapon mod (TXD & DFF)

function replaceWeapon() 
txd = engineLoadTXD ( "m4.txd" )
engineImportTXD ( txd, 356)
dff = engineLoadDFF ( "m4.dff") -- use weapon model ID, not GTA weapon ID (model ID from https://wiki.multitheftauto.com/wiki/Weapons)
engineReplaceModel ( dff, 356) -- Likewise, model ID, for M4 as example it's 356

end
addEventHandler ( "onClientResourceStart", resourceRoot, replaceWeapon)

Example 4: This example loads a combination of custom TXD, COL and DFF files to replace an in-game model of a set of floors.

outputChatBox ( "> loading floor objects" )
col_floors = engineLoadCOL ( "models/office_floors.col" )
engineReplaceCOL ( col_floors, 3781 )
txd_floors = engineLoadTXD ( "models/office_floors.txd" )
engineImportTXD ( txd_floors, 3781 )
dff_floors = engineLoadDFF ( "models/office_floors.dff" )
engineReplaceModel ( dff_floors, 3781 )

Changelog

Version Description
1.4.1-9.07088 Added option to use raw data instead of a file name

See Also