EngineReplaceModel: Difference between revisions

From Multi Theft Auto: Wiki
Jump to navigation Jump to search
m (prefer normal note)
(34 intermediate revisions by 17 users not shown)
Line 1: Line 1:
__NOTOC__  
__NOTOC__  
{{Client function}}<!-- Change this to "Client function" or "Server function" appropriately-->
{{Client function}}
<!-- Describe in plain english what this function does. Don't go into details, just give an overview -->
{{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 replaces the given model in the given model ID with the DFF file passed. This function supports vehicles and objects at the moment.
 
This function replaces the given model ID with the model contained in a DFF file loaded by [[engineLoadDFF]]. This function supports [[vehicle|vehicles]], [[object|objects]], [[ped|peds]] and [[player|players]] but not CJ clothing and body parts.
 
{{Deprecated feature|3.0111|1.1.1|This function does not support ped and weapon models.}}
 
To replace weapon models you must use their object IDs, not weapon IDs. There is a weapon model list available at [[weapons]].
{{Note|
* Default GTA map objects behave inconsistently when using this function on them. If you want to replace models in the original GTA map, use one of the [[EngineReplaceModel notes|methods shown here]].}}


==Syntax==  
==Syntax==  
<!-- NOTE: don't use 'special' names for variable names, e.g. you shouldn't be writing things like 'player player, vehicle vehicle', instead write something like 'player thePlayer, vehicle vehicleToGetInto'. This is less confusing and prevents the syntax highlighting being odd -->
<syntaxhighlight lang="lua">
<syntaxhighlight lang="lua">
bool engineReplaceModel ( dff theModel, number modelID )
bool engineReplaceModel ( dff theModel, int modelID [, bool alphaTransparency = false ] )
</syntaxhighlight>  
</syntaxhighlight>  
 
{{OOP||[[DFF|dff]]:replace}}
===Required Arguments===  
===Required Arguments===  
<!-- List each argument one per line. This should be the argument's name as in the argument list above, NOT the argument's data type -->
*'''theModel:''' The model to replace the given model ID with
*'''theModel:''' The model to replace the given model ID with
*'''modelID:''' The model it to replace the model of
*'''modelID:''' The model it to replace the model of
===Optional Arguments===
*'''alphaTransparency:''' Set to true if model uses semi-transparent textures, e.g. windows. This will ensure other objects behind the semi-transparent textures are rendered correctly. (Can slightly impact performance, so only set when required)


===Returns===
===Returns===
<!-- Make this descriptive. Explain what cases will return false. If you're unsure, add a tag to it so we can check -->
Returns ''true'' if the model was successfully replaced, ''false'' if it failed for some reason, ie. the DFF or the model ID is not valid.
Returns ''true'' if the model was successfully replaced, ''false'' if it failed for some reason, ie. the DFF or the model ID is not valid.


==Example==  
==Example==  
This example replaces a vehicle model.
'''Example 1:'''
<section name="Client" class="client" show="true">
Client-side example for replacing vehicle model and texture with custom ones.
<syntaxhighlight lang="lua">
<syntaxhighlight lang="lua">
function ReplaceVehicle ( )
outputChatBox ( "> replacing the euros vehicle" )
outputChatBox ( "> replacing the euros vehicle" )


txd = engineLoadTXD ( "data/euros.txd" )
txd = engineLoadTXD ( "data/euros.txd" )
engineImportTXD ( txd, 587 )
engineImportTXD ( txd, 587 )
dff = engineLoadDFF ( "data/euros.dff", 587 )
dff = engineLoadDFF ( "data/euros.dff" )
engineReplaceModel ( dff, 587 )
engineReplaceModel ( dff, 587 )
end
addEvent ( "replaceVeh", true )
addEventHandler ( "replaceVeh", root, ReplaceVehicle )
</syntaxhighlight>
</section>
<section name="Server" class="server" show="true">
Server-side example function for triggering the replace.
<syntaxhighlight lang="lua">
function ReplaceCommand ( )
triggerClientEvent( "replaceVeh", root, replaceVeh )
end
addCommandHandler( "replace", ReplaceCommand )
</syntaxhighlight>
</section>
'''Example 2:'''
<section name="Client" class="client" show="true">
Client-side example for replacing weapons with custom mods.
<syntaxhighlight lang="lua">
function replaceWeapon()
txd = engineLoadTXD ( "m4.txd" )
engineImportTXD ( txd, 356)
dff = engineLoadDFF ( "m4.dff", 356) -- use weapon model ID, not 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", getResourceRootElement(getThisResource()), replaceWeapon)
</syntaxhighlight>
</section>
'''Example 3:'''
<section name="Client" class="client" show="true">
Client-Side example for replacing object collision, texture and model with custom ones.
<syntaxhighlight lang="lua">
function ReplaceObject ( )
col = engineLoadCOL( "MyModel.col" )
txd = engineLoadTXD( "MyModel.txd" )
dff = engineLoadDFF( "MyModel.dff", 0 )
engineReplaceCOL( col, 1234 )
engineImportTXD( txd, 1234 )
engineReplaceModel( dff, 1234 )-- replace the model at least
end
addEvent ( "replaceObj", true )
addEventHandler ( "replaceObj", root, ReplaceObject )
</syntaxhighlight>
</section>
<section name="Server" class="server" show="true">
Server-side example function for triggering the replace.
<syntaxhighlight lang="lua">
function ReplaceCommand ( )
triggerClientEvent( "replaceObj", root, replaceObj )
end
addCommandHandler( "replace", ReplaceCommand )
</syntaxhighlight>
</syntaxhighlight>
</section>


==See Also==
==See Also==
<!-- Change FunctionArea to the area that this function is in on the main function list page, e.g. Server, Player, Vehicle etc -->
{{Engine_functions}}
{{Engine_functions}}
[[Category:Needs_Example]] <!-- leave this until the example is completed. -->

Revision as of 08:36, 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 replaces the given model ID with the model contained in a DFF file loaded by engineLoadDFF. This function supports vehicles, objects, peds and players but not CJ clothing and body parts.

To replace weapon models you must use their object IDs, not weapon IDs. There is a weapon model list available at weapons.

[[{{{image}}}|link=|]] Note:
  • Default GTA map objects behave inconsistently when using this function on them. If you want to replace models in the original GTA map, use one of the methods shown here.

Syntax

bool engineReplaceModel ( dff theModel, int modelID [, bool alphaTransparency = false ] )

OOP Syntax Help! I don't understand this!

Method: dff:replace(...)


Required Arguments

  • theModel: The model to replace the given model ID with
  • modelID: The model it to replace the model of

Optional Arguments

  • alphaTransparency: Set to true if model uses semi-transparent textures, e.g. windows. This will ensure other objects behind the semi-transparent textures are rendered correctly. (Can slightly impact performance, so only set when required)

Returns

Returns true if the model was successfully replaced, false if it failed for some reason, ie. the DFF or the model ID is not valid.

Example

Example 1:

Click to collapse [-]
Client

Client-side example for replacing vehicle model and texture with custom ones.

function ReplaceVehicle ( )
outputChatBox ( "> replacing the euros vehicle" )

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

addEvent ( "replaceVeh", true )
addEventHandler ( "replaceVeh", root, ReplaceVehicle )
Click to collapse [-]
Server

Server-side example function for triggering the replace.

function ReplaceCommand ( )
triggerClientEvent( "replaceVeh", root, replaceVeh )
end
addCommandHandler( "replace", ReplaceCommand )

Example 2:

Click to collapse [-]
Client

Client-side example for replacing weapons with custom mods.

function replaceWeapon() 
txd = engineLoadTXD ( "m4.txd" )
engineImportTXD ( txd, 356)
dff = engineLoadDFF ( "m4.dff", 356) -- use weapon model ID, not 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", getResourceRootElement(getThisResource()), replaceWeapon)

Example 3:

Click to collapse [-]
Client

Client-Side example for replacing object collision, texture and model with custom ones.

function ReplaceObject ( )

col = engineLoadCOL( "MyModel.col" )
txd = engineLoadTXD( "MyModel.txd" )
dff = engineLoadDFF( "MyModel.dff", 0 )

engineReplaceCOL( col, 1234 )
engineImportTXD( txd, 1234 )
engineReplaceModel( dff, 1234 )-- replace the model at least

end

addEvent ( "replaceObj", true )
addEventHandler ( "replaceObj", root, ReplaceObject )
Click to collapse [-]
Server

Server-side example function for triggering the replace.

function ReplaceCommand ( )
triggerClientEvent( "replaceObj", root, replaceObj )
end
addCommandHandler( "replace", ReplaceCommand )

See Also