25.06.2012, 17:16
Ok. When using ZCMD, you can prevent a player from using a command by returning 0 under
You can also detect when a player successfully uses a command with
If you want to limit a player to using a command once every three seconds, you'll need to use a variable to store the last time the player typed a command.
e.g.
So this system would need to look like this:
This system uses a UNIX timestamp, which is basically the number of seconds since Janurary 1st 1970.
pawn Code:
public OnPlayerCommandReceived(playerid, cmdtext[])
pawn Code:
public OnPlayerCommandPerformed(playerid, cmdtext[], success)
//success is equal to the value returned from the command.
e.g.
pawn Code:
new lastcommand[MAX_PLAYERS];
So this system would need to look like this:
pawn Code:
new lastcommand[MAX_PLAYERS];
public OnPlayerCommandReceived(playerid, cmdtext[]){
if( lastcommand[playerid]!=0 && gettime()-lastcommand[playerid]<3 ){
//This will make sure last command is not 0 (will be 0 if the player hasn't typed a command yet)
//And make sure 3 seconds have NOT passed since the player last typed a command using a UNIX timestamp- see below for details
SendClientMessage(playerid,0xFF0000FF,"You can only type ONE command every THREE seconds!");
return 0;
}
return 1;
}
public OnPlayerCommandPerformed(playerid, cmdtext[], success){
if(success){
lastcommand[playerid]=gettime();
//sets the variable to the current UNIX timestamp- see below for details
}
}
public OnPlayerDisconnect(playerid,reason){
lastcommand[playerid]=0;
//reset the variable so the next player who connects will not experience issues
return 1;
}