Difference between revisions of "EngineFreeModel"

From Multi Theft Auto: Wiki
(Added XNikoXD's example from engineRequestModel as it uses engineFreeModel)
 
Line 2: Line 2:
 
{{Client function}}
 
{{Client function}}
 
{{New feature/item|3.0160|1.5.7|20147|This function is used to un-assign the specified model ID from the [[engineRequestModel]] assignment.}}
 
{{New feature/item|3.0160|1.5.7|20147|This function is used to un-assign the specified model ID from the [[engineRequestModel]] assignment.}}
{{Note|
 
Needs checking / improving.}}
 
  
 
==Syntax==
 
==Syntax==
Line 16: Line 14:
  
 
==Example==
 
==Example==
{{Example}}
+
This example creates a ped and then gives you the opportunity to change its model. If the resource stops, then the IDs allocated will be deallocated. Use ''/cap'' for creating the ped and ''/sap'' to skin the ped. You will need some skins added to a folder and to the meta.xml for ''/sap'' to work.
 +
<syntaxhighlight lang="lua">
 +
local peds = {}
 +
function createAllocatedPed()
 +
    local x, y, z = getElementPosition(localPlayer)
 +
    local id = engineRequestModel("ped")
 +
    peds[id] = createPed(id, x+0.5, y, z+0.5)
 +
    outputChatBox("New ped with ID "..id.." created.")
 +
end
 +
addCommandHandler("cap", createAllocatedPed, false, false)
 +
 
 +
function skinAllocatedPeds()
 +
    local txd, dff;
 +
    for id,ped in pairs(peds) do
 +
        if fileExists("skins/" .. id .. ".txd") and fileExists("skins/" .. id .. ".dff") then
 +
            txd = engineLoadTXD("skins/" .. id .. ".txd")
 +
            engineImportTXD(txd, id)
 +
            dff = engineLoadDFF("skins/" .. id .. ".dff")
 +
            engineReplaceModel(dff, id)
 +
            outputChatBox("Model ID "..id.." changed correctly.")
 +
        else
 +
            outputChatBox("Model ID "..id.." couldn't change. REASON: skins/" .. id .. ".txd or skins/" .. id .. ".dff does not exist.")
 +
        end
 +
    end
 +
end
 +
addCommandHandler("sap", skinAllocatedPeds, false, false)
 +
 
 +
function onStop()
 +
    for id,ped in pairs(peds) do
 +
        engineFreeModel(id)
 +
    end
 +
end
 +
addEventHandler("onClientResourceStop", resourceRoot, onStop)
 +
</syntaxhighlight>
  
 
==See Also==
 
==See Also==
 
{{Engine functions}}
 
{{Engine functions}}

Latest revision as of 21:51, 10 September 2019

FROM VERSION 1.5.7 r20147 ONWARDS
This function is used to un-assign the specified model ID from the engineRequestModel assignment.

Syntax

bool engineFreeModel ( int modelID )

Required Arguments

  • modelID: the model ID you want to have un-assigned.

Returns

Returns true if the model was successfully freed, false otherwise.

Example

This example creates a ped and then gives you the opportunity to change its model. If the resource stops, then the IDs allocated will be deallocated. Use /cap for creating the ped and /sap to skin the ped. You will need some skins added to a folder and to the meta.xml for /sap to work.

local peds = {}
function createAllocatedPed()
    local x, y, z = getElementPosition(localPlayer)
    local id = engineRequestModel("ped")
    peds[id] = createPed(id, x+0.5, y, z+0.5)
    outputChatBox("New ped with ID "..id.." created.")
end
addCommandHandler("cap", createAllocatedPed, false, false)

function skinAllocatedPeds()
    local txd, dff;
    for id,ped in pairs(peds) do
        if fileExists("skins/" .. id .. ".txd") and fileExists("skins/" .. id .. ".dff") then
            txd = engineLoadTXD("skins/" .. id .. ".txd")
            engineImportTXD(txd, id)
            dff = engineLoadDFF("skins/" .. id .. ".dff")
            engineReplaceModel(dff, id)
            outputChatBox("Model ID "..id.." changed correctly.")
        else
            outputChatBox("Model ID "..id.." couldn't change. REASON: skins/" .. id .. ".txd or skins/" .. id .. ".dff does not exist.")
        end
    end
end
addCommandHandler("sap", skinAllocatedPeds, false, false)

function onStop()
    for id,ped in pairs(peds) do
        engineFreeModel(id)
    end
end
addEventHandler("onClientResourceStop", resourceRoot, onStop)

See Also

FROM VERSION 1.5.7 r19626 ONWARDS
FROM VERSION 1.5.7 r20147 ONWARDS