move object wiht command then auto move back
#6

Something like this should do the trick:
pawn Code:
new IsGateOpen, IsGateClosing, IsGateClosed;

forward CloseGate();

CMD:gate(playerid, params[])
{
    if(INI_Open(getINI(playerid))) {
        PlayerInfo[playerid][Faction] = INI_ReadInt("Faction");
        PlayerInfo[playerid][Factionrank] = INI_ReadInt("Factionrank");
    }

    if(PlayerInfo[playerid][Faction] == LSPD) {
                                                  //Any rank
        if(PlayerInfo[playerid][Factionrank] > 0) {
            if(!isnull(params)) {
                return SendClientMessage(playerid,SYellow,"Usage: /gate.");
            }
            else {

                if(IsPlayerInRangeOfPoint(playerid, 10.0, 1588.90, -1637.94, 16.00)) {
                    if(IsGateOpen == 1) return SendClientMessage(playerid,SYellow, "The Lspd Garage gate is already being opened or is open.");
                    SendClientMessage(playerid,SYellow,"The Lspd Garage gate is now closing.");
                    IsGateOpen = 1;
                    IsGateClosing = 0;
                    IsGateClosed = 0;
                    MoveObject(lspdgaragegate, 1596.90, -1637.94, 16.00, 6.0);
                }
                else {
                    return SendClientMessage(playerid,SYellow,"You must be near the gate to use this.");
                }

            }
        }
        return SendClientMessage(playerid,SYellow,"You must be atlest rank 1 LSPD to use this.");
    }                                             //RANK 1 END
    else return SendClientMessage(playerid,SYellow,"You must be LSPD to use that command.");
}

CMD:cgate(playerid, params[])
{
    if(INI_Open(getINI(playerid))) {
        PlayerInfo[playerid][Faction] = INI_ReadInt("Faction");
        PlayerInfo[playerid][Factionrank] = INI_ReadInt("Factionrank");
    }

    if(PlayerInfo[playerid][Faction] == LSPD) {
                                                  //Any rank
        if(PlayerInfo[playerid][Factionrank] > 0) {
            if(!isnull(params)) {
                return SendClientMessage(playerid,SYellow,"Usage: /cgate.");
            }
            else {

                if(IsPlayerInRangeOfPoint(playerid, 10.0, 1588.90, -1637.94, 16.00)) {
                    if(IsGateClosing == 1) return SendClientMessage(playerid,SYellow, "The Lspd Garage gate is already being closed.");
                    if(IsGateClosed == 1) return SendClientMessage(playerid,SYellow, "The Lspd Garage gate is already closed.");
                    SendClientMessage(playerid,SYellow,"The Lspd Garage gate is now closing.");
                    IsGateClosing = 1;
                    IsGateOpen = 0;
                    SetTimer("CloseGate", 10000, false);
                }
                else {
                    return SendClientMessage(playerid,SYellow,"You must be near the gate to use this.");
                }

            }
        }
        return SendClientMessage(playerid,SYellow,"You must be atlest rank 1 LSPD to use this.");
    }                                             //RANK 1 END
    else return SendClientMessage(playerid,SYellow,"You must be LSPD to use that command.");
}

public CloseGate()
{
    MoveObject(lspdgaragegate, x, y, z, 6.0); // Change x, y, z to the coordinates of the gate closed.
    IsGateClosing = 0;
    IsGateClosed = 1;
    return 1;
}
Just remember to change x, y, z in MoveObject inside public CloseGate to the coordinates of the gate when it's closed.
Note:The reason why I added the variables and extra if statements is so players can't spam your server with the timer, and therefor cause a lagg.
Reply


Messages In This Thread

Forum Jump:


Users browsing this thread: 2 Guest(s)