CreateColCuboid

From Multi Theft Auto: Wiki
Revision as of 11:20, 9 October 2018 by Surge (talk | contribs)
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 cuboid. This is a shape that has a position, width, depth and height. See Wikipedia for a definition of a cuboid. The XYZ of the col starts at the southwest bottom corner of the shape.

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

Syntax

colshape createColCuboid ( float fX, float fY, float fZ, float fWidth, float fDepth, float fHeight )

OOP Syntax Help! I don't understand this!

Method: ColShape.Cuboid(...)


Required Arguments

  • fX: The X position of the collision cuboid's western side
  • fY: The Y position of the collision cuboid's southern side
  • fZ: The Z position of the collision cuboid's lowest side
  • fWidth: The collision cuboid's width
  • fDepth: The collision cuboid's depth
  • fHeight: The collision cuboid'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.

theZone = false

function shapeHit ( thePlayer ) 
    outputChatBox ( getPlayerName ( thePlayer ) .. " is in the zone!" )  -- display a message in everyone's chat box
end

function setZone ( playerSource, commandName, fX, fY, fZ )
    if ( fZ and fY and fX ) then                                         -- check we've got all 3 args we need
        local tempCol = createColCuboid ( fX, fY, fZ, 10.0, 10.0, 10.0 )   -- create a col
        if ( tempCol == false ) then                                     -- did the col get created successfully?
            outputConsole ( "Syntax is: set_zone <X> <Y> <Z>" )          -- inform the user what the valid syntax is
        else
            if ( theZone ~= false ) then                                 -- did we already have a zone?
                destroyElement ( theZone )                               -- if so, destroy it
            else
                addEventHandler ( "onColShapeHit", theZone, shapeHit )   -- add a handler for the onColShapeHit event
            end
            theZone = tempCol                                            -- store the new zone we've made
            outputChatBox ( "Zone has moved!" )                          -- and tell everyone
        end
    end
end
addCommandHandler ( "set_zone", setZone ) -- add a console function called set_zone that will trigger the function setZone

See Also