CreateColTube

From Multi Theft Auto: Wiki
Revision as of 14:06, 27 May 2017 by AlexTMjugador (talk | contribs) (Undo revision 51082 by Hakerbon (talk))
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 tube. This is a shape that has a position and a 2D (X/Y) radius and a height. See Cylinder for a definition of a tube. A tube is similar to a colcircle, except that it has a limited height, this means you can limit the distance above the position defined by (fX, fY, fZ) that the collision is detected.

[[{{{image}}}|link=|]] Tip: To visualize a colshape when writing scripts, use the client console command showcol

Syntax

colshape createColTube ( float fX, float fY, float fZ, float fRadius, float fHeight)

OOP Syntax Help! I don't understand this!

Method: ColShape.Tube(...)


Required Arguments

  • fX: The position of the base of the tube's center on the X axis
  • fY: The position of the base of the tube's center on the Y axis
  • fZ: The position of the base of the tube's center on the Z axis
  • fRadius: The collision tube's radius
  • fHeight: The collision tube'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 = createColTube ( fX, fY, fZ, 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 -- and 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