Template:ExampleCreateObjectOrBuilding

From Multi Theft Auto: Wiki
Revision as of 10:27, 14 October 2024 by Fernando187 (talk | contribs) (Created page with "<noinclude>This template is used on createBuilding and createObject pages, as a unified example. <hr> </noinclude><section name="How to automatically perform object/building creation" class="client" show="true"> This example shows you how to easily verify if any object model ID is non-dynamic, so it can be used with the createBuilding function, as long as it's outside within the map boundaries: <syntaxhighlight lang="lua"> function createObjectOrBuilding(modelID...")
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search

This template is used on createBuilding and createObject pages, as a unified example.


Click to collapse [-]
How to automatically perform object/building creation

This example shows you how to easily verify if any object model ID is non-dynamic, so it can be used with the createBuilding function, as long as it's outside within the map boundaries:

function createObjectOrBuilding(modelID, x, y, z, rx, ry, rz, interior, dimension)
    -- Dynamic object models will always have a physical properties group different than -1.
    local isNonDynamic = engineGetModelPhysicalPropertiesGroup(modelID) == -1
    -- Buildings can't be placed outside dimension 0
    local isNormalDimension = dimension == 0
    -- Buildings can't be placed outside regular map boundaries
    local isInsideMapLimits = x >= -3000 and x <= 3000 and y >= -3000 and y <= 3000

    if isNonDynamic and isNormalDimension  and isInsideMapLimits then
      createBuilding(modelID, x, y, z, rx, ry, rz, interior)
    else
      local obj = createObject(modelID, x, y, z, rx, ry, rz, false)
      setElementInterior(obj, interior)
      setElementDimension(obj, dimension)
    end
end

-- This would be your object's model ID
local modelID = 3556
-- This would be your object's position coordinates
local x, y, z = 0, 0, 69
-- This would be your object's rotation coordinates
local rx, ry, rz = 0, 0, 90
-- This would be your object's interior ID
local interior = 0
-- This would be your object's dimension ID
local dimension = 0

local element = createObjectOrBuilding(modelID, x, y, z, rx, ry, rz, interior, dimension)

-- OPTIONAL: Then you can apply additional properties, like so:
if getElementType(element) == "object" then
    setObjectScale(element, 1.69)
    setObjectBreakable(object, false)
end
setElementAlpha(element, 255)
setElementCollisionsEnabled(element, true)
setElementFrozen(element, false)