11.01.2012, 19:23
(
Last edited by DrTHE; 14/01/2012 at 12:26 AM.
)
Protegendo seu servidor de um ataque.
Isso ajuda a punir Hackers que puxam os carros do servidor
Bem venho olhando que os grandes servidores br nao estao protegidos contra esse tipo de ataque (de puxar carros do servidor) e isto й preucupante...
SS: eu mesmo fui ver o que dava..
nгo so esse como TSSA e BPF estao desprotegidos..
OBS: Todas prints foi eu mesmo que tirei
NWD:
Project Virtual:
TSSA:
Brasil Realidade Virtual:
BPF
NRG RPG:
BWE:
Como se proteger?
Topo do gm:
em OnPlayerUpdate:
Explicaзгo:
Com isso o GameMode verifica se o tempo do player de um carro para outro for menor que 250 ms(1000 ms = um segundo) ele chamarб a funcao OnPlayerChangeVehicle e o player serб punido (banido/kikado) do servidor. ficarб a seu gosto.
Adicione essa Funcгo abaixo para que a nгo ocorra
Caso queira utilizar como Include:
Creditos a [S]tong pela atualizaзгo
Isso ajuda a punir Hackers que puxam os carros do servidor
Quote:
Versгo atual 1.1: Correзгo de um bug em que permitia puxar veiculos dentro de um carro (o sistema so punia a players a pй) |
SS: eu mesmo fui ver o que dava..
nгo so esse como TSSA e BPF estao desprotegidos..
OBS: Todas prints foi eu mesmo que tirei
NWD:
Project Virtual:
TSSA:
Brasil Realidade Virtual:
BPF
NRG RPG:
BWE:
Como se proteger?
Topo do gm:
pawn Code:
new
vehicleTime[MAX_PLAYERS],
lastVehicle[MAX_PLAYERS]
;
pawn Code:
new vehicleID = GetPlayerVehicleID(playerid);
if(lastVehicle[playerid] != vehicleID)
{
lastVehicle[playerid] = vehicleID;
if(GetVehicleModel(vehicleID))
{
CallRemoteFunction("OnPlayerChangeVehicle","ii", playerid, vehicleID);
}
}
pawn Code:
forward OnPlayerChangeVehicle(playerid, vehicleid);
public OnPlayerChangeVehicle(playerid, vehicleid)
{
#pragma unused vehicleid
if((GetTickCount() - vehicleTime[playerid]) < 250)
{
Kick(playerid);
}
vehicleTime[playerid] = GetTickCount();
}
Com isso o GameMode verifica se o tempo do player de um carro para outro for menor que 250 ms(1000 ms = um segundo) ele chamarб a funcao OnPlayerChangeVehicle e o player serб punido (banido/kikado) do servidor. ficarб a seu gosto.
Adicione essa Funcгo abaixo para que a nгo ocorra
pawn Code:
stock S_PutPlayerInVehicle(playerid, vehicleid, seatid)
{
vehicleTime[playerid] = GetTickCount();
return PutPlayerInVehicle(playerid, vehicleid, seatid);
}
#if defined _ALS_PutPlayerInVehicle
#undef PutPlayerInVehicle
#else
#define _ALS_PutPlayerInVehicle
#endif
#define PutPlayerInVehicle S_PutPlayerInVehicle
pawn Code:
/*
* Include S_AntiSpawn v1.0
* © Copyright 2012 by [S]trong
*
* @Autor : [S]trong
* @Data : 13 de janeiro de 2012
* @Requer : Include a_samp (por SA-MP Team)
*
*
* Include desenvolvida com fim de nao permitir o hack de puxar carros
*
*
*
*/
#include <a_samp>
new
vehicleTime[MAX_PLAYERS],
lastVehicle[MAX_PLAYERS]
;
forward S_OnPlayerUpdate(playerid);
public OnPlayerUpdate(playerid)
{
new vehicleID = GetPlayerVehicleID(playerid);
if(lastVehicle[playerid] != vehicleID)
{
lastVehicle[playerid] = vehicleID;
if(GetVehicleModel(vehicleID))
{
CallRemoteFunction("OnPlayerChangeVehicle","ii", playerid, vehicleID);
}
}
return CallRemoteFunction("OnPlayerUpdate","i", playerid);
}
forward OnPlayerChangeVehicle(playerid, vehicleid);
public OnPlayerChangeVehicle(playerid, vehicleid)
{
#pragma unused vehicleid
if((GetTickCount() - vehicleTime[playerid]) < 250)
{
Kick(playerid);
}
vehicleTime[playerid] = GetTickCount();
}
stock S_PutPlayerInVehicle(playerid, vehicleid, seatid)
{
vehicleTime[playerid] = GetTickCount();
return PutPlayerInVehicle(playerid, vehicleid, seatid);
}
#if defined _ALS_PutPlayerInVehicle
#undef PutPlayerInVehicle
#else
#define _ALS_PutPlayerInVehicle
#endif
#define PutPlayerInVehicle S_PutPlayerInVehicle
#if defined _ALS_OnPlayerUpdate
#undef OnPlayerUpdate
#else
#define _ALS_OnPlayerUpdate
#endif
#define OnPlayerUpdate S_OnPlayerUpdate