[Tutorial] Moving A Gate With Command - Auto Closing
#1

pawn Code:
#include <a_samp> // As usual, add this include to the top so your script will work.

new gate; // The objectid your gate will be using
new timer[MAX_PLAYERS]; // Creates your auto-closing timer
//Add these two ABOVE your OnFilterScriptInit() or OnGameModeInit()

public OnFilterScriptInit() // or OnGameModeInit() if you are using a gamemode
{
    gate = CreateObject(modelid, Float:X, Float:Y, Float:Z, Float:rX, Float:rY, Float:rZ, Float:DrawDistance);
    // Example: CreateObject(969, 155, 12.6, 10.95, 0.0, 0.0, 90.0, 20.0);
    // Place this under OnFilterScriptInit(), or OnGameModeInit() if you are using it in a gamemode.
}

public OnPlayerCommandText(playerid, cmdtext[]) // This is where we make the open command
{
    if (strcmp("/open", cmdtext, true, 10) == 0) // When a player types '/open'
    {
      if(IsPlayerInRangeOfPoint(playerid, distance, X, Y, Z)) // Will detect whether they are near the gate or not
           { // It is recommended you set the RangeOfPoint to the coordinates of your 'closed' gate
           MoveObject(gate, 520.0, -170.0, 19.0, 5.0, Float:RotX, Float:RotY, Float:RotZ); // Example: MoveObject(gate, 12,15, 10, 5.0, 120.0, 0.0, 90.0); Float:RotX, Y and Z should match your 'CreateObject' rotations
           SendClientMessage(playerid, 0xEF994300, "The gate is opening and will close in 10 seconds."); // Send the player that typed /open, this message
           timer[playerid] = SetTimerEx("gateclose",10000,false,"i",playerid); // Will activate a timer called 'gateclose' after 10 seconds, once the player has typed 'open'. Does not repeat itself.
           // If you want to change timer: 1 Second = 1000, 5 seconds = 5000, 40 seconds = 40000, 1 minute = 60000 etc.
        }
        }
    return 1;
    }
    forward gateclose(); //Defines our 'gateclose' timer when a player types /open, and what we want the gate to do
    public gateclose()
    {
    MoveObject(gate, X, Y, Z, speed, Float:RotX, Float:RotY, Float:RotZ); // This will move the gate back to the 'closed' position
    // which will be the same as the position in your FilterScriptInit()
    }
NOTE: The co-ordinates used in this example, are not recommended for use as they are random and most likely will not function the way you want them to. The co-ordinates were not taken from any script, they were generated on creating this example.
Reply


Messages In This Thread

Forum Jump:


Users browsing this thread: 5 Guest(s)