CreateObject: Difference between revisions

From Multi Theft Auto: Wiki
Jump to navigation Jump to search
No edit summary
No edit summary
(2 intermediate revisions by the same user not shown)
Line 1: Line 1:
__NOTOC__  
__NOTOC__  
{{Server client function}}
{{Server client function}}
Creates an object in the GTA world.
Creates an [[object]] [[element]] at a given position and rotation.
{{Note|Dynamic objects do not automatically have physics applied to them. Use setElementVelocity(object, 0, 0, 0) to fix this.}}
{{Note|Dynamic objects do not automatically have physics applied to them. Use [[setElementVelocity]](object, 0, 0, 0) to fix this.}}
{{Note|Creating objects server-side can help for syncing the objects with all clients (for example, if you create a glass object client-side, it will break only for the client that broke the glass. Server-side, it will broke for all clients.}}


==Syntax==
==Syntax==
Line 48: Line 49:
       local theObject = createObject(980, x + 2, y + 2, z, 0, 0, 0)
       local theObject = createObject(980, x + 2, y + 2, z, 0, 0, 0)
       if (theObject) then -- check if the object was created successfully
       if (theObject) then -- check if the object was created successfully
         outputConsole("Object created successfully.", thePlayer)
         outputChatBox("Object created successfully.", thePlayer)
       else
       else
         outputConsole("Failed to create the object.", thePlayer)
         outputChatBox("Failed to create the object.", thePlayer)
       end
       end
   end
   end
end
end
addCommandHandler("createObject", createObjectCommand)
addCommandHandler("createobject", createObjectCommand)
</syntaxhighlight>
</syntaxhighlight>
</section>
</section>

Revision as of 14:11, 2 February 2021

Creates an object element at a given position and rotation.

[[{{{image}}}|link=|]] Note: Dynamic objects do not automatically have physics applied to them. Use setElementVelocity(object, 0, 0, 0) to fix this.
[[{{{image}}}|link=|]] Note: Creating objects server-side can help for syncing the objects with all clients (for example, if you create a glass object client-side, it will break only for the client that broke the glass. Server-side, it will broke for all clients.

Syntax

object createObject ( int modelId, float x, float y, float z, [ float rx, float ry, float rz, bool isLowLOD = false ] )

OOP Syntax Help! I don't understand this!

Method: Object(...)


Required Arguments

  • modelId: A whole integer specifying the GTA:SA object model ID.
  • x: A floating point number representing the X coordinate on the map.
  • y: A floating point number representing the Y coordinate on the map.
  • z: A floating point number representing the Z coordinate on the map.

Optional Arguments

NOTE: When using optional arguments, you might need to supply all arguments before the one you wish to use. For more information on optional arguments, see optional arguments.

  • rx: A floating point number representing the rotation about the X axis in degrees.
  • ry: A floating point number representing the rotation about the Y axis in degrees.
  • rz: A floating point number representing the rotation about the Z axis in degrees.
  • isLowLOD: A bool value specifying if the object will be low LOD. A low LOD object has no collision and a longer draw distance.

Returns

  • Returns the object element if the creation was successful, false otherwise.

Example

Click to collapse [-]
Server-only Example 1

This example creates an object when the resource starts:

function loadMapObjects()
   -- create an object at a specified position with a specified rotation
   createObject(1337, 5540.6654, 1020.55122, 1240.545, 90, 0, 0)
end
addEventHandler("onResourceStart", resourceRoot, loadMapObjects)
Click to collapse [-]
Server-only Example 2

This example creates an object near the player who write /createObject in the chat:

-- this function is called whenever someone types 'createObject' in the console:
function createObjectCommand(thePlayer, commandName)
   if (thePlayer) then
      local x, y, z = getElementPosition(thePlayer)
      -- create a object next to the player:
      local theObject = createObject(980, x + 2, y + 2, z, 0, 0, 0)
      if (theObject) then -- check if the object was created successfully
         outputChatBox("Object created successfully.", thePlayer)
      else
         outputChatBox("Failed to create the object.", thePlayer)
      end
   end
end
addCommandHandler("createobject", createObjectCommand)

See Also