20.07.2012, 16:55
Hello guys, again me, now i have problem with chat spammers/command spammers, i have some chat spammers and some command spammers at server and i want to stop it, how can i do it? Exist any fs or?
public OnPlayerCommandReceived(playerid, cmdtext[])
{
if((commandTime[playerid] - gettime()) > 0)
{
SendClientMessageEx(playerid, COLOR_WHITE, "You are muted from submitting commands right now.");
return 0;
}
else if(commandAttempts[playerid] >= 5)
{
commandTime[playerid] = gettime() + 10;
SendClientMessageEx(playerid, COLOR_YELLOW, "You have been muted automatically for spamming. Please wait 10 seconds and try again.");
return 0;
}
commandAttempts[playerid]++;
return 1;
}
You could always do something like this:
pawn Код:
|
new commanTime[MAX_PLAYERS], commandAttempts[MAX_PLAYERS];
//etcetra
// This command allows the player to call for assistance
COMMAND:assist(playerid, params[])
{
// Setup local variables
new bool:AssistOnline = false, Msg[128], Name[24];
// Send the command to all admins so they can see it
SendAdminText(playerid, "/assist", params);
// Check if the player has logged in
if (APlayerData[playerid][LoggedIn] == true)
{
// Get the player's name
GetPlayerName(playerid, Name, sizeof(Name));
// Preset the message that needs to be sent to assistance players
format(Msg, 128, "{00FF00}Player {FFFF00}%s{00FF00} needs assistance, go help him", Name);
// Check if there is at least one assistance player online
for (new i; i < MAX_PLAYERS; i++)
{
// Check if this player is connected
if (IsPlayerConnected(i))
{
// Check if this player is assistance class
if (APlayerData[i][PlayerClass] == ClassAssistance)
{
// Set the flag to indicate that at least one assistance player is online
AssistOnline = true;
// Send the assistance player a message to inform him who needs assistance
SendClientMessage(i, 0xFFFFFFFF, Msg);
}
}
}
// Check if there is at least one assistance player online
if (AssistOnline == true)
{
// Set yourself as "AssistanceNeeded"
APlayerData[playerid][AssistanceNeeded] = true;
// Let the player know he called for assistance
SendClientMessage(playerid, 0xFFFFFFFF, "{00FF00}You've called for assistance");
}
else // No assistance is online
{
// Check if the player is the driver of a vehicle
if (GetPlayerVehicleSeat(playerid) == 0)
{
// Fully repair the vehicle (damage value and bodywork)
RepairVehicle(GetPlayerVehicleID(playerid));
// Also re-fuel the vehicle
AVehicleData[GetPlayerVehicleID(playerid)][Fuel] = MaxFuel;
// Let the player pay for the repairs and refuel (default $2000)
RewardPlayer(playerid, -2000, 0);
// Let the player know he spent $2000 for auto-repair because there were no assistance players online
SendClientMessage(playerid, 0xFFFFFFFF, "{FF0000}Your vehicle has been auto-repaired and refuelled for $2000");
SendClientMessage(playerid, 0xFFFFFFFF, "{FF0000}because there is no assistance player online");
}
}
}
else
return 0;
// Let the server know that this was a valid command
return 1;
}