27.01.2010, 15:02
Bueno, esta vez les traigo una funciуn de anticheat.
_________________________________________________їCуmo y para quй funciona?
_________________________________________________Quote:
Evitar que spawneen vehiculos (y los usen) con un cheat |
En la parte superior del GM aderimos:
pawn Код:
#define MAX_AC_VEHICLES CantidadDeVehiculosEnTuServer
_________________________________________________
Luego agregamos:
pawn Код:
new Vehiculo[MAX_AC_VEHICLES];
Agregamos otro nuevo codigo:
pawn Код:
new CuentaVehiculos = 0;
_________________________________________________
Ahora agregaremos una funciуn:
pawn Код:
stock AddAntiCheatVehicle(modelid, Float:X, Float:Y, Float:Z, Float:A, Color1, Color2)
{
CuentaVehiculos ++;
Vehiculo[CuentaVehiculos] = AddStaticVehicle(modelid, X, Y, Z, A, Color1, Color2);
}
_________________________________________________
Ahora agregaremos el siguiente cуdigo en OnPlayerUpdate:[/center]
pawn Код:
if(IsPlayerInAnyVehicle(playerid))
{
for(new v; v < MAX_AC_VEHICLES; v ++)
{
if(GetPlayerVehicleID(playerid) != Vehiculo[v])
{
SendClientMessage(playerid, 0xFFFFFFFF, "Estas usando un vehiculo ilegal. Se han tomado medidas");
DestroyVehicle(GetPlayerVehicleID(playerid)); // Destruimos el vehiculo ilegal
Kick(playerid);
}
}
}
Pero con esto el jugador podrнa spawnear uno y no usarlo, y otro player agarrarlo y recibнr el kick el, bueno aquн la soluciуn:
Agregamos un forward en la parte de arriba del script:
pawn Код:
forward ACUpdate();
_________________________________________________
En OnGameModeInit agregaremos un timer:
pawn Код:
SetTimer("ACUpdate", 500, true);
_________________________________________________
Y ahora la funciуn:
pawn Код:
public ACUpdate()
{
for(new v = 0; v < MAX_AC_VEHICLES + 50; v ++)
{
for(new v2 = 0; v2 < MAX_AC_VEHICLES; v ++)
{
if(v != Vehiculos[v2]
{
DestroyVehicle(v);
}
}
}
}
_________________________________________________
Bueno eso fue todo. Pero el ъnico problema, si tenemos algun fs o comando del server para spawnear vehнculos no servira. Luego pondrй un comando para agregarlo
_________________________________________________
Dudas problemas y/o bugs avisenme