Posts: 24
Threads: 9
Joined: Jun 2014
Reputation:
0
Hola a todos, he creado un anticheat simple la verdad de vida, funciona todo bien, pero cuando caigo desde una altura me kickea el anticheat, alguna soluciуn? gracias
Posts: 415
Threads: 1
Joined: Sep 2012
Reputation:
0
Somos adivinos, tenemos el cуdigo en nuestra mente para analizarlo...
Posts: 24
Threads: 9
Joined: Jun 2014
Reputation:
0
for(new i; i < MAX_PLAYERS; i++)
{
new Float:vida;
GetPlayerHealth(i,vida);
if(vida != Jugador[i][Salud])
{
SetTimerEx("KickBan",1000,false,"d",i);
}
}
Perdуn, soy nuevo en el foro. Bueno lo que puse es simple, un callback llamado Detector que se detecta cada 2 segundos, podran ver que el anticheat es muy basico, solo detecta la vida y si es diferente a la de la variable lo kickea
Posts: 137
Threads: 0
Joined: Oct 2014
Reputation:
0
Te kickea porque estбs comparando si la vida actual no es igual a la de la variable, vida != Jugador[i][Salud], es decir, si te haces cualquier tipo de daсo te darб kick ya que tu vida actual no es la misma que la de la variable. Debes actualizar la vida cada vez que te hagan daсo, y en vez de comparar variable verifica si la cantidad es mayor, vida > Jugador[i][Salud].
Posts: 24
Threads: 9
Joined: Jun 2014
Reputation:
0
Hice lo que me dijiste y me funciono, pero trate de actualizar la variable al recibir daсo en el callback TakeDamage pero cuando recibo daсo me fijo en la base de datos y sigue igual, mira asi lo puse
if(issuerid == INVALID_PLAYER_ID || issuerid != INVALID_PLAYER_ID)
{
new Float:vida;
GetPlayerHealth(playerid, vida);
Jugador[playerid][Salud] = vida;
}
Alguna solucion? Gracias
Posts: 24
Threads: 9
Joined: Jun 2014
Reputation:
0
Claro, pero el problema es que si me sacan vida en el juego, la variable sigue estando en 100, por lo tanto si me aumento la vida con un cheat no detecta nada, pero hare un actualizador de las variables que las actualize cada 2 segundos.
Una cosa, el codigo que me pasaste de que es? al antichea yo lo hice con un callback llamado Detector que se repite cada 5 segundos, pero el problema es que no se como hacer que se actualize a la hora de recibir daсo
Posts: 137
Threads: 0
Joined: Oct 2014
Reputation:
0
Amigo, cada vez que asignas la vida a la variable se actualiza el dato, o sea, se almacena en el servidor. Luego, al desconectarte reciйn se guarda esa variable en tu base de datos pero mientras tanto estarб almacenada en el enum del jugador.
En cuanto al callback OnPlayerTakeDamage serб para actualizar la variable cada vez que te hagas daсo.