Lots of "Bad RCON logins" and fake kills. -
I already have it scripted that if players fail to get the rcon login correct the first time, then they're automatically kicked.
Re: Lots of "Bad RCON logins" and fake kills. -
pawn Код:
public OnPlayerDeath(playerid, killerid, reason)
{
HackTest[playerid] = 0;
// == VICTIM ==
new Float:XYZ[3], deathtext[64];
GetPlayerPos(playerid, XYZ[0], XYZ[1], XYZ[2]);
GameTextForPlayer(playerid, "~r~ You have been killed!", 3000, 3);
PlayerInfo[playerid][pDeaths] ++;
PlayerInfo[playerid][pKillingspree] = 0;
DonorHeal[playerid] = 1;
UpdateStatsTextdraw(playerid);
TextDrawHideForPlayer(playerid, RankStars);
new rand = random(1000-500)+500;
format(deathtext, sizeof(deathtext), "You have died! You now lost {FFFFFF}-$%d{FF0000} as a result.", rand);
SendClientMessage(playerid, C_RED, deathtext);
GivePlayerMoney(playerid, -rand);
SendDeathMessage(killerid, playerid, reason);
/*if(killerid != INVALID_PLAYER_ID)
{
TogglePlayerSpectating(playerid, 1);
if(IsPlayerInAnyVehicle(killerid))
{
new vehicleid = GetPlayerVehicleID(killerid);
PlayerSpectateVehicle(playerid, vehicleid);
}
else
{
PlayerSpectatePlayer(playerid, killerid);
}
SetTimerEx("DeathCameraStop", 1000*6, false, "i", playerid);
}*/
//====================================================
// == KILLER ==
if(killerid != INVALID_PLAYER_ID)
{
SendClientMessage(killerid, C_VIOLET, "You killed a player. You earned $1500 and +3 score!");
GameTextForPlayer(killerid, "~r~An enemy killed\n~g~+3 score and $1500", 3000, 3);
SetPlayerScore(killerid, GetPlayerScore(killerid) +3);
GivePlayerMoney(killerid, 1500);
RoundInfo[killerid][Kills] ++;
PlayerInfo[killerid][pKills] ++;
PlayerInfo[killerid][pKillingspree] ++;
UpdateStatsTextdraw(killerid);
}
// == KILLING SPREE ==
new text[128];
if(PlayerInfo[killerid][pKillingspree] == 3)
{
format(text, sizeof(text), "** %s is on a killing spree of 3 kills!!", Name(killerid));
SendClientMessageToAll(C_CYAN, text);
SendClientMessage(killerid, C_LBLUE, "You are awarded $1500 and +2 score for you 3 kill spree!");
GivePlayerMoney(playerid, 1500);
GivePlayerScore(playerid, 2);
}
else if(PlayerInfo[killerid][pKillingspree] == 5)
{
format(text, sizeof(text), "** %s is on a killing spree of 5 kills!", Name(killerid));
SendClientMessageToAll(C_CYAN, text);
SendClientMessage(killerid, C_LBLUE, "You get $2500 and +3 score! (killing spree bonus)");
GivePlayerMoney(playerid, 2500);
GivePlayerScore(playerid, 3);
}
else if(PlayerInfo[killerid][pKillingspree] == 10)
{
format(text, sizeof(text), "** %s is on a killing spree of 10 kills!", Name(killerid));
SendClientMessageToAll(C_CYAN, text);
SendClientMessage(killerid, C_LBLUE, "You get $5000 and +4 score! (killing spree bonus)");
GivePlayerMoney(playerid, 5000);
GivePlayerScore(playerid, 4);
}
else if(PlayerInfo[killerid][pKillingspree] == 15)
{
format(text, sizeof(text), "** %s is on a killing spree of 15 kills!", Name(killerid));
SendClientMessageToAll(C_CYAN, text);
SendClientMessage(killerid, C_LBLUE, "You get $7 500 and +6 score! (killing spree bonus)");
GivePlayerMoney(playerid, 7500);
GivePlayerScore(playerid, 6);
}
else if(PlayerInfo[killerid][pKillingspree] == 20)
{
format(text, sizeof(text), "** %s is on a killing spree of 20 kills!", Name(killerid));
SendClientMessageToAll(C_CYAN, text);
SendClientMessage(killerid, C_LBLUE, "You get $12 500 and +10 score! (killing spree bonus)");
GivePlayerMoney(playerid, 12500);
GivePlayerScore(playerid, 10);
}
else if(PlayerInfo[killerid][pKillingspree] == 25)
{
format(text, sizeof(text), "** %s is on a killing spree of 25 kills!", Name(killerid));
SendClientMessageToAll(C_CYAN, text);
SendClientMessage(killerid, C_LBLUE, "You get $20 000 and +15 score! (killing spree bonus)");
GivePlayerMoney(playerid, 20000);
GivePlayerScore(playerid, 15);
}
//====================================================
return 1;
}
Re: Lots of "Bad RCON logins" and fake kills. -
Well, for the Fake Killing Flood, i've created a small script for my Server a few months ago, that Ban those cheaters.
pawn Код:
//==============================================================================
// => MaxXx Anti Fake Kills Flood - Created in December 2012
//==============================================================================
#include < a_samp >
//------------------------------------------------------------------------------
// -> Others...
//------------------------------------------------------------------------------
forward OnDelayedBan(playerid);
enum Data { pDeaths, pDTime };
new pInfo[MAX_PLAYERS][Data];
//------------------------------------------------------------------------------
// -> Script Loading/Unloading
//------------------------------------------------------------------------------
public OnFilterScriptInit()
{
//--------------------------------------------------------------------------
print(" ");
print("+++++++++++++++++++++++++++++++++++++++++++");
print("+ >>> MaxXx Anti Fake Kill Flood <<< +");
print("+++++++++++++++++++++++++++++++++++++++++++");
print(" ");
//--------------------------------------------------------------------------
return 1;
}
//++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
public OnFilterScriptExit() return 1;
//------------------------------------------------------------------------------
// -> On Connect
//------------------------------------------------------------------------------
public OnPlayerConnect(playerid)
{
//--------------------------------------------------------------------------
pInfo[playerid][pDeaths] = 0, pInfo[playerid][pDTime] = 0;
//--------------------------------------------------------------------------
return 1;
}
//------------------------------------------------------------------------------
// -> Main and Most important parts
//------------------------------------------------------------------------------
public OnPlayerDeath(playerid, killerid, reason)
{
if(pInfo[playerid][pDeaths] == 0) pInfo[playerid][pDTime] = gettime();
//--------------------------------------------------------------------------
pInfo[playerid][pDeaths]++;
//--------------------------------------------------------------------------
if(pInfo[playerid][pDeaths] > 5)
{
if((gettime() - pInfo[playerid][pDTime]) < 6)
{
//------------------------------------------------------------------
SendClientMessage(playerid, 0xFF0000FF, "[Info]: {00CEFC}You have been {FF0000}Banned{00CEFC} for Fake Killing Flood!");
//------------------------------------------------------------------
SetTimerEx("OnDelayedBan", 200, false, "d", playerid);
}
else if((gettime() - pInfo[playerid][pDTime]) >= 6) pInfo[playerid][pDeaths] = 0;
}
return 1;
}
//------------------------------------------------------------------------------
// -> Banning the Idiot...
//------------------------------------------------------------------------------
public OnDelayedBan(playerid) return BanEx(playerid, "[Fake Kill Flood]");
//==============================================================================
// => Script End
//==============================================================================