CreateColRectangle

From Multi Theft Auto: Wiki
Jump to navigation Jump to search
The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.

This function creates a collision rectangle. This is a shape that has a position and a width and a depth. See Rectangle for a definition of a rectangle. XY marks on the south west corner of the colshape.

[[{{{image}}}|link=|]] Tip: To visualize a colshape when writing scripts, use the client console command showcol
[[{{{image}}}|link=|]] Note: Attaching a rectangle colshape to another element may give unexpected results as the origin is not at the rectangle centre. Try using a collision circle for attaching instead

Syntax

colshape createColRectangle ( float fX, float fY, float fWidth, float fHeight )

OOP Syntax Help! I don't understand this!

Method: ColShape.Rectangle(...)


Required Arguments

  • fX: The X position of the collision rectangle's west side.
  • fY: The Y position of the collision rectangle's south side.
  • fWidth: The collision rectangle's width.
  • fHeight: The collision rectangle's height.

Returns

Returns a colshape element if successful, false if invalid arguments were passed to the function.

Example

Click to collapse [-]
Server

This example displays a chat message when a player enters the colshape and allows the colshape to be created using a console function set_zone.

local theZone

function shapeHit(thePlayer)
    outputChatBox(getPlayerName(thePlayer).. " is in the zone!")
end

function setZone(playerSource, commandName, fX, fY, fWidth, fHeight)
    local fX, fY, fWidth, fHeight = tonumber(fX), tonumber(fY), tonumber(fWidth), tonumber(fHeight)
    if (not fX) or (not fY) or (not fWidth) or (not fHeight) then
        outputChatBox("Syntax: /"..commandName.." [X] [Y] [Width] [Height]", playerSource)
    else
        if (theZone ~= nil) then
            destroyElement(theZone)
        end
        local tempCol = createColRectangle(fX, fY, fWidth, fHeight)
        addEventHandler("onColShapeHit", tempCol, shapeHit)
        outputChatBox("Zone has "..(theZone ~= nil and "moved" or "created").."!", playerSource)
        theZone = tempCol
    end
end
addCommandHandler("set_zone", setZone, false, false)

See Also