24.07.2011, 21:17
(
Last edited by Prumpuz; 24/07/2011 at 09:52 PM.
)
Something like this should do the trick:
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.
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;
}
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.