CreateColCuboid: Difference between revisions

From Multi Theft Auto: Wiki
Jump to navigation Jump to search
No edit summary
No edit summary
Line 1: Line 1:
__NOTOC__  
__NOTOC__  
{{Server client function}}
{{Server client function}}
This function creates a collision cuboid. This is a shape that has a position, width, depth and height. See [http://en.wikipedia.org/wiki/Cuboid Wikipedia] for a definition of a cuboid. The XYZ of the col starts at the southwest bottom corner of the shape.
This function creates a collision polygon. See [http://en.wikipedia.org/wiki/Polygon Wikipedia] for a definition of a polygon. The first set of X Y of this shape is not part of the colshape bounds, so can set anywhere in the game world, however for performance, place it somewhere within the polygon. It should be noted this shape is '''2D'''. You should be at least 3+ bound points set.  


==Syntax==  
==Syntax==  
<syntaxhighlight lang="lua">
<syntaxhighlight lang="lua">
colshape createColCuboid ( float fX, float fY, float fZ, float fWidth, float fDepth, float fHeight )
colshape createColPolygon ( float fX, float fY, float fX1, float fX2, float fX3, ... )
</syntaxhighlight>  
</syntaxhighlight>  


===Required Arguments===  
===Required Arguments===  
*'''fX:''' The X position of the collision cuboid's western side
*'''fX:''' The X position of the collision polygon's dummy point
*'''fY:''' The Y position of the collision cuboid's southern side
*'''fY:''' The Y position of the collision polygon's dummy point
*'''fZ:''' The Z position of the collision cuboid's lowest side
*'''fX1:''' The 1st position of the collision polygon's bound point
*'''fWidth:''' The collision cuboid's width
*'''fX2:''' The 2st position of the collision polygon's bound point
*'''fDepth:''' The collision cuboid's depth
*'''fX3:''' The 3st position of the collision polygon's bound point
*'''fHeight:''' The collision cuboid's height


===Returns===
===Returns===
Line 21: Line 20:
==Example==  
==Example==  
<section name="Server" class="server" show="true">
<section name="Server" class="server" show="true">
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''.
To Do.
<syntaxhighlight lang="lua">
theZone = false
 
function shapeHit ( thePlayer )
    outputChatBox ( getClientName ( 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
</syntaxhighlight>
</section>
</section>


==See Also==
==See Also==
{{Collision shape functions}}
{{Collision shape functions}}

Revision as of 18:03, 29 December 2008

This function creates a collision polygon. See Wikipedia for a definition of a polygon. The first set of X Y of this shape is not part of the colshape bounds, so can set anywhere in the game world, however for performance, place it somewhere within the polygon. It should be noted this shape is 2D. You should be at least 3+ bound points set.

Syntax

colshape createColPolygon ( float fX, float fY, float fX1, float fX2, float fX3, ... )

Required Arguments

  • fX: The X position of the collision polygon's dummy point
  • fY: The Y position of the collision polygon's dummy point
  • fX1: The 1st position of the collision polygon's bound point
  • fX2: The 2st position of the collision polygon's bound point
  • fX3: The 3st position of the collision polygon's bound point

Returns

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

Example

Click to collapse [-]
Server

To Do.

See Also