Posts: 873
Threads: 5
Joined: Apr 2012
Reputation:
0
Congratulations! (Posts: 197 Reputation: 17) And you still don't know to use rcon.
Posts: 1,498
Threads: 110
Joined: Aug 2013
Code:
OnRconLoginAttempt(ip[], password[], success) {
#pragma unused password
if (!success) {
new hasplayers = 0;
new pip[16];
for (new PlayerID=0; PlayerID < MAX_PLAYERS; PlayerID++) {
if (!IsPlayerConnected(PlayerID))
continue;
GetPlayerIp(PlayerID, pip, sizeof(pip));
if (!strcmp(ip, pip, true)) {
hasplayers++;
// protect nubs against their stupidity.
new timex = TimeSincePvar(PlayerID, "last_rcon_attempt");
if (timex > 1000) {
SendPlayerMessage(PlayerID, COLOR_RED, "Do not abuse the rcon system, you will be banned if you fail to login again.");
}
SetPVarInt(PlayerID, "last_rcon_attempt", TickCount());
new rla;
rla = GetPVarInt(PlayerID, "rcon_login_attempts");
rla = rla + 1;
if (rla > 3) {
// ban the ip via rcon
makestrf(banipstr, 64, "banip %s", ip);
SendRconCommand(banipstr);
}
SetPVarInt(PlayerID, "rcon_login_attempts", rla);
}
} // loop
if (hasplayers == 0) {
// ban the ip via rcon
makestrf(banipstr, 64, "banip %s", ip);
SendRconCommand(banipstr);
}
}
return PCOR_CONTINUE;
}