08.11.2013, 01:37
(
Последний раз редактировалось Locky_; 06.01.2014 в 13:49.
Причина: Anti-Fake kill Editado.
)
Olб, venho hoje mostrando um FS bбsico, nгo tinha nada melhor pra fazer, entгo decidi criar um aqui bбsico com uns cуdigos que eu desenvolvi com o tempo (nгo foram todos, hб os crйditos de quem criou algo no FS), pois fazem sempre uns atacks б meu servidor, e vejo como e onde melhorar.
Proteзхes no FS:
Anti-Bot;
Anti-Fake Kill;
Anti-Car Spam;
Anti-Crash OnFoot;
Anti-Crash em Veнculos;
Anti-Flooder de pintura de veнculos;
Anti-Floder de Spawn's;
Anti-Armas (Opcional);
Anti-Teleport por Click no Mapa;
Anti-Nicks bugaveis (Caso use Host Windows)
Em cada parte, terб uma pequena explicaзгo por que foi feito o tal cуdigo, caso algum novato queira estudar os cуdigo.
Pequena parte.
Anti-BOT
Anti-Car Spam
Anti-Fake Kill
Adicionado 08/11
Anti-Teleport por Click ao Mapa
FS Completo: Вложение 6642
(Compilado com includes do SA-MP 0.3x) Вложение 6645
Change LOG:
Caso encontre erros/bugs, por favor, comunique.
protecoes_basicas.pwn
protecoes_basicas.amx
Proteзхes no FS:
Anti-Bot;
Anti-Fake Kill;
Anti-Car Spam;
Anti-Crash OnFoot;
Anti-Crash em Veнculos;
Anti-Flooder de pintura de veнculos;
Anti-Floder de Spawn's;
Anti-Armas (Opcional);
Anti-Teleport por Click no Mapa;
Anti-Nicks bugaveis (Caso use Host Windows)
Em cada parte, terб uma pequena explicaзгo por que foi feito o tal cуdigo, caso algum novato queira estudar os cуdigo.
Pequena parte.
Anti-BOT
pawn Код:
new Nomes[][] = {"con", "aux"}; //Vocк pode inserir novos nomes indevнduos aqui
public OnPlayerConnect(playerid) {
if(IsPlayerNPC(playerid)) return 1;
new SAMP[50], Nome[24];
GetPlayerVersion(playerid, SAMP, sizeof(SAMP));
GetPlayerName(playerid, Nome, sizeof(Nome));
for(new i; i < sizeof(Nomes); i++) {
if(!strcmp(Nome, Nomes[i], true))
return BanEx(playerid, "Nick Indevнduo!");
}
if(!strcmp(SAMP, "unknown", false)) return BanEx(playerid, "BOT");
return 1;
}
pawn Код:
public OnPlayerUpdate(playerid) {
if(GetPlayerVehicleID(playerid) != 0) {
if(GetPlayerVehicleID(playerid) != GetPVarInt(playerid, "Veiculo_Anterior")) {
if(GetPVarInt(playerid, "Troca_Veiculo") > gettime()) return BanEx(playerid, "Car Spam");
SetPVarInt(playerid, "Veiculo_Anterior", GetPlayerVehicleID(playerid));
SetPVarInt(playerid, "Troca_Veiculo", gettime() + 2);
}
}
return 1;
}
pawn Код:
//Editado: 06/01/2014
public OnPlayerDeath(playerid, killerid, reason) {
if(killerid == INVALID_PLAYER_ID) return 1;
if(GetPVarInt(playerid, "Morte") > gettime()) return BanEx(playerid, "Fake Kill"); // Caso o valor armazenado seja ainda maior que o gettime() (Tempo Atual)
if(playerid == killerid) return BanEx(playerid, "Fake Kill"); // Isso ocorre quando й usando o 'random' em alguns cheaters
if(GetPlayerTeam(playerid) != NO_TEAM) // Caso vocк use sistema de Equipes
if(GetPlayerTeam(playerid) == GetPlayerTeam(killerid))
return BanEx(playerid, "Fake Kill");
SetPVarInt(playerid, "Morte", gettime() + 2);
return 1;
}
Anti-Teleport por Click ao Mapa
pawn Код:
public OnPlayerUpdate(playerid) {
if(GetPVarInt(playerid, "ClickMapa") > gettime())
if(!IsPlayerInRangeOfPoint(playerid, 10.0, GetPVarFloat(playerid, "PX"), GetPVarFloat(playerid, "PY"), GetPVarFloat(playerid, "PZ"))) return BanEx(playerid, "Teleport");
new Float:Pos[3]; GetPlayerPos(playerid, Pos[0], Pos[1], Pos[2]);
SetPVarFloat(playerid, "PX", Pos[0]); SetPVarFloat(playerid, "PY", Pos[1]); SetPVarFloat(playerid, "PZ", Pos[2]);
return 1;
}
public OnPlayerClickMap(playerid, Float:fX, Float:fY, Float:fZ)
{
SetPVarInt(playerid, "ClickMapa", gettime() + 15);
return 1;
}
(Compilado com includes do SA-MP 0.3x) Вложение 6645
Change LOG:
Код:
07/11/2013 Lanзamento Inicial 08/11/2013 Adicionado Anti-Armas Opcional Adicionado Anti-Teleport por click no Mapa. 16/11/2013 Adicionado Anti-Nicks bugaveis (Em Windows), Opcional o uso. 06/01/2014 Anti-Fake Kill Editado.
protecoes_basicas.pwn
protecoes_basicas.amx