StopObject: Difference between revisions

From Multi Theft Auto: Wiki
Jump to navigation Jump to search
No edit summary
mNo edit summary
(20 intermediate revisions by 4 users not shown)
Line 1: Line 1:
__NOTOC__  
__NOTOC__
<!-- Describe in plain english what this function does. Don't go into details, just give an overview -->
{{Server client function}}
This will allow you to stop an object that is currently moving.
This will allow you to stop an object that is currently moving.


==Syntax==  
==Syntax==  
<!-- NOTE: don't use 'special' names for variable names, e.g. you shouldn't be writing things like 'player player, vehicle vehicle', instead write something like 'player thePlayer, vehicle vehicleToGetInto'. This is less confusing and prevents the syntax highlighting being odd -->
<syntaxhighlight lang="lua">
<syntaxhighlight lang="lua">
bool stopObject ( element object )
bool stopObject ( object theobject )
</syntaxhighlight>  
</syntaxhighlight>  
 
{{OOP||[[object]]:stop||}}
===Required Arguments===  
===Required Arguments===  
<!-- List each argument one per line. This should be the argument's name as in the argument list above, NOT the argument's data type -->
*'''theobject:''' the [[object]] whose movement you wish to stop
*'''theobject:''' This is the object whose movement you wish to stop


===Returns===
===Returns===
<!-- Make this descriptive. Explain what cases will return false. If you're unsure, add a tag to it so we can check -->
* ''true'' if successful.
Returns ''true'' if successful, ''false'' otherwise.
* ''false'' otherwise.


==Example==  
==Example==  
<!-- Explain what the example is in a single sentance -->
This will allow you to toggle the random movement of a staircase object model using a ''randomObjectMovement'' function and stop it immediately with the stopObject command. This is achieved by using a "toggleobjectmove" command with a "on" or "off" parameter.
This will allow you to toggle the random movement of a staircase object model and stop it immediately with the stopObject command.
<!-- Add the code below, an emphasis should be on making it clear, not optimized. You could provide two versions if you wish, one clear and well commented, the other optimized -->
<syntaxhighlight lang="lua">
<syntaxhighlight lang="lua">
addCommandHandler ( "toggleobjectmove", "objectMoveControl" )
function objectMoveControl ( thePlayer, commandName, state )
function objectMoveControl ( player, commandName, state )
    -- On "toggleobjectmove" in console, activate this command, which also asks the player to define the value for the varible 'state'.
--This command handler activate on text "toggleobjectmove" in
    if state == "on" then
--the console. It also asks that the player define the varible
        outputChatBox ( "Moving object randomly" )
--'state' after the commandname
        mytimer = setTimer ( randomObjectMovement, 2250, 0 )
if state == "on" then
        -- if the player types "on" for the state variable, turn on the timer, which triggers a function
outputChatBox ( "Moving object randomly" )
        -- called randomObjectMovement that moves the object whenever it is called (not included for
mytimer = setTimer ( "randomObjectMovement", 2250, 0 )
        -- this example). The timer runs every 2 1/4 seconds for 0 times, which means it runs infinitely.
--if player type "on" for state, then we turn on the timer that
    elseif state == "off" then
--triggers the function randomObjectMovement. It triggers the
        outputChatBox ( "Stopping object movement" )
--function every 2 1/4 seconds for an infinite amount of times,
        killTimer ( mytimer )
--since times is defined as 0.
        stopObject ( myobject )
elseif state == "off" then
        -- if the player typed "off" for state, stop the object movement immediately and kill the
outputChatBox ( "Stopping object movement" )
        -- randomObjectMovement timer
killTimer ( mytimer )
    else
stopObject ( myobject )
        outputChatBox ( "must define object state as 'on' or 'off'" )
--If player typed "off" for state, then stop the object movement
        -- if the player typed something besides "on" or "off" for state, do nothing
--immediately and kill the random object movement timer, which
    end
--triggers the randomObjectMovement function
else
    outputChatBox ( "must define object state as 'on' or 'off'" )
    --If player said something besides "on" or "off" for state, do nothing
end
end
 
function randomObjectMovement ()
curx, cury, curz = getElementPosition ( myobject )
--Get the xyz position of myobject
xmath = randInt(1,2)
if xmath == 1 then
newx = curx + randInt(1,3)
else
newx = curx - randInt(1,3)
end
ymath = randInt(1,2)
if ymath == 1 then
newy = cury + randInt(1,3)
else
newy = cury - randInt(1,3)
end
zmath = randInt(1,2)
if zmath == 1 then
  newz = curz + randInt(1,3)
else
newz = curz - randInt(1,3)
end
--Decide randomly whether to add or subtract from the coordinates,
--and randomly add or subtract 1, 2, or 3
moveObject ( myobject, 2000, newx, newy, newz )
--Tell the object to move to our new coordinates in 2 seconds time
end
end
addCommandHandler ( "toggleobjectmove", objectMoveControl )
</syntaxhighlight>
</syntaxhighlight>


==See Also==
==See Also==
<!-- Change FunctionArea to the area that this function is in on the main function list page, e.g. Server, Player, Vehicle etc -->
{{Object_functions}}
{{Element_functions}}
[[Category:Incomplete]] -- leave this unless you complete the function

Revision as of 22:48, 4 October 2014

This will allow you to stop an object that is currently moving.

Syntax

bool stopObject ( object theobject )

OOP Syntax Help! I don't understand this!

Method: object:stop(...)


Required Arguments

  • theobject: the object whose movement you wish to stop

Returns

  • true if successful.
  • false otherwise.

Example

This will allow you to toggle the random movement of a staircase object model using a randomObjectMovement function and stop it immediately with the stopObject command. This is achieved by using a "toggleobjectmove" command with a "on" or "off" parameter.

function objectMoveControl ( thePlayer, commandName, state )
    -- On "toggleobjectmove" in console, activate this command, which also asks the player to define the value for the varible 'state'. 
    if state == "on" then
        outputChatBox ( "Moving object randomly" )
        mytimer = setTimer ( randomObjectMovement, 2250, 0 )
        -- if the player types "on" for the state variable, turn on the timer, which triggers a function
        -- called randomObjectMovement that moves the object whenever it is called (not included for
        -- this example). The timer runs every 2 1/4 seconds for 0 times, which means it runs infinitely.
    elseif state == "off" then
        outputChatBox ( "Stopping object movement" )
        killTimer ( mytimer )
        stopObject ( myobject )
        -- if the player typed "off" for state, stop the object movement immediately and kill the
        -- randomObjectMovement timer
    else
        outputChatBox ( "must define object state as 'on' or 'off'" )
        -- if the player typed something besides "on" or "off" for state, do nothing
    end
end
addCommandHandler ( "toggleobjectmove", objectMoveControl )

See Also