EngineReplaceModel notes: Difference between revisions

From Multi Theft Auto: Wiki
Jump to navigation Jump to search
No edit summary
(replace info with template ObjectLODInfo)
 
(6 intermediate revisions by 4 users not shown)
Line 1: Line 1:
=Replacing models in the original GTA map=
=Replacing models in the original GTA map=
Replacing models in the original GTA map may not work correctly. There are two work arounds:
There are two ways to replace models in the original GTA map:


==Work around 1: Move camera away during replace process==
==Method 1: Move camera away during replace process==
''Pros: Simple''<br/>
<section name="Client" class="client" show="true">
''Cons: Looks messy during replace''<br/>
<syntaxhighlight lang="lua">
<syntaxhighlight lang="lua">
     local modelId = 12853
     local modelId = 12853
Line 19: Line 18:


     setTimer( function()
     setTimer( function()
                setCameraTarget( localPlayer ) -- Move camera back after a delay
        setCameraTarget( localPlayer ) -- Move camera back after a delay
            end
    end, 50, 1 )
            ,50,1 )
</syntaxhighlight>
</syntaxhighlight>
</section>


{{ObjectLODInfo}}


==Work around 2: Create custom object and hide original==
==Method 2: Create custom object and hide original==
''Pros: Looks ok during replace''<br/>
<section name="Client" class="client" show="true">
''Cons: You will have to handle LOD (see below)''
<syntaxhighlight lang="lua">
<syntaxhighlight lang="lua">
     local modelId = 12853
     local modelId = 12853
    local modelLODId = 13245
     local x,y,z = 661, -561, 17
     local x,y,z = 661, -561, 17


Line 44: Line 42:
     engineReplaceModel( dff, modelId )
     engineReplaceModel( dff, modelId )
</syntaxhighlight>
</syntaxhighlight>
</section>


====Additonal code if model has LOD:====
=Additonal Note=
If the model has a LOD version, that will need to be hidden:
'''Sometimes you need to replace the model far away from where the model/texture change is being made'''
<syntaxhighlight lang="lua">
so if you are in the game and you are trying to replace a model then get away from the model till it is gone from your draw distance for making sure that this problem won't happen
    local modelIdLOD = 13245
    removeWorldModel ( modelIdLOD, 100, x,y,z ) -- Hide LOD
</syntaxhighlight>
 
Optionally create a MTA LOD replacement so there is no hole in the map from a distance:
<syntaxhighlight lang="lua">
    -- This step is optional
    objLOD = createObject( modelIdLOD, x,y,z, 0, 0, 0, true )
    setLowLODElement(obj, objLOD)
</syntaxhighlight>
 
And for extra points, add a custom dff for the MTA LOD replacement:
<syntaxhighlight lang="lua">
    -- This step is optional
    txdLOD = engineLoadTXD( "garageLOD.txd" )
    dffLOD = engineLoadDFF( "garageLOD.dff", 0 )
    engineImportTXD( txdLOD, modelIdLOD )
    engineReplaceModel( dffLOD, modelIdLOD )
</syntaxhighlight>

Latest revision as of 12:40, 4 November 2024

Replacing models in the original GTA map

There are two ways to replace models in the original GTA map:

Method 1: Move camera away during replace process

Click to collapse [-]
Client
    local modelId = 12853

    setCameraMatrix( 10000, 0, 0 ) -- Move camera far away

    col = engineLoadCOL( "garage.col" )
    txd = engineLoadTXD( "garage.txd" )
    dff = engineLoadDFF( "garage.dff", 0 )
     
    engineReplaceCOL( col, modelId )
    engineImportTXD( txd, modelId )
    engineReplaceModel( dff, modelId )

    setTimer( function()
        setCameraTarget( localPlayer ) -- Move camera back after a delay
    end, 50, 1 )


Edit-delete.png This page is marked for deletion.

Reason: Template not needed
Actions: Delete (Administrators) - Discuss - What links here - Category


Method 2: Create custom object and hide original

Click to collapse [-]
Client
    local modelId = 12853
    local x,y,z = 661, -561, 17

    obj = createObject( modelId, x,y,z )
    removeWorldModel( modelId, 100, x,y,z ) -- Hide original

    col = engineLoadCOL( "garage.col" )
    txd = engineLoadTXD( "garage.txd" )
    dff = engineLoadDFF( "garage.dff", 0 )
     
    engineReplaceCOL( col, modelId )
    engineImportTXD( txd, modelId )
    engineReplaceModel( dff, modelId )

Additonal Note

Sometimes you need to replace the model far away from where the model/texture change is being made so if you are in the game and you are trying to replace a model then get away from the model till it is gone from your draw distance for making sure that this problem won't happen