25.02.2013, 21:11
(
Последний раз редактировалось CrossOv3r; 17.12.2013 в 21:20.
)
Creando anticheats | 2 Tipos
Bueno, para empezar un saludo a todos los que esten leyendo este tutorial, bueno hoy dнa me enseсaron como crear algunos tipos de anticheats, y bueno quiero explicar 2 de ellos, que a mi parecer es fбcil de hacer.. Espero comprensiуn, supongo que es difнcil hablar sobre esto, y puedo recibir un montуn de criticas. Ya que hay un montуn de maneras de manejar o crear un anticheat, yo solo enseсo mi manera.. Tambiйn les expreso que no postearй mucho cуdigo, la idea es aprender a hacerlo uno mismo y aprender el concepto base.
________________________________________________
Anticheat de vida/armadura
Bueno para empezar quiero recalcar que hay 2 maneras para realizar nuestros anticheats, y 2do, y creo que si estas leyendo este tutorial es por que ya saben que crear un anticheat propio es mejor que hacerlo desde un include, FS, etc.
1era Manera: Variables
їVariables?, asн es, pareciese que las variables nos acompaсaran a todas partes. Creo yo que esta manerб es bastante eficaz, al igual que la 2da manera, pero haya ustedes cual utilizarбn
їEn que consta esta manera?
Para empezar, lo que se debe hacer es almacenar en una variable de tipo Flotante (o Float), la vida de nuestro jugador.
Se debe alterar esta variable cada vez que en nuestro script aumentemos o disminuyamos la vida de nuestro jugador. Para eso podemos crear algun stock parecido a esto para ahorrarnos el trabajo.
Ademбs deberemos ajustar nuestra callback OnPlayerTakeDamage, para que cuando este recibe daсo, la vida del jugador y su variable baje de acuerdo al daсo recibido.
Ok, їCual es el propуsito de almacenar la vida de un jugador?
Es muy usual que los programas cheaters proporcione solamente vida al jugador, pero nuestras variables delatarбn al jugador.
EJ:
El jugador tiene 100 de vida
La variable de "vida" de ese jugador dice que tiene 50
Resultado = Hay una probabilidad de mas del 95% de que ese jugador sea un cheater. (El otro 5% son las personas que acudirбn pidiendo desban en tu foro )
________________________________________________
2da Manera: Lуgica
Le llamo lуgica a este mйtodo ya que su creaciуn es eso, una simple lуgica.
їEn que consta esta manera?
Bueno, algo ъtil que podemos hacer, es que nuestro jugador siempre posea una cantidad de vida(o chaleco) de 99.0, para estй mйtodo debemos estar seguros de que el jugador nunca tendrб la manera de obtener 100.0 de vida.
їEn que cosas debo tener cuidado?
# Mбquinas de comida por defecto de GTA
Fнjense siempre de que estas mбquinas sean borradas del mapa ni tampoco agregarlas en un interior o un mapa creado por ustedes, al usarlas el jugador serб capaz de obtener 100.0 de vida, y serб baneado/kickeado errуneamente.
# Comandos de administraciуn
Comandos como el /darvida , /darchaleco, si utilizan este mйtodo pуnganle una restricciуn para que los administradores puedan establecer el chaleco o vida de una persona hasta el lнmite deseado; en este caso 99.0
# El script propiamente tal
Cualquier funciуn que usйis aseguraos no sobresar la cantidad expresada (99.0)
# Menъs por defecto de GTA
Los menъ como lo son el del Ammu-Nation, o los del Cluckin Bell/Burger Shot. Si los tienen activados, estos le permitirбn al jugador tener una vida de 100.0 o un chaleco al 100.0
Resultado del anticheat
Nuestros jugadores, solo pueden tener 99.0 de vida
Un jugador dice tener 100.0 de vida
Resultado = Ese jugador tiene una probabilidad enorme de ser un cheater
________________________________________________
Paso final para los 2 mйtodos
Bueno una vez escogido uno de los mйtodos, pueden crear un timer, que cheque cada X tiempo la Armadura o Vida de nuestro jugador.
Si la vida de nuestro jugador ha pasado el lнmite entonces recibirб un Ban/Kick. EJ:
Update 1: Agregada otra condicional en el timer del "VerHack". Cuando un jugador muere, el hack puede detectar que tiene 100 de vida, y banearlo errуneamente, para esto obtenemos el "Estado" del jugador, y SI ES QUE ESTA SPAWNEADO, lo banearб.
Espero, que hayan entendido, gracias.
Bueno, para empezar un saludo a todos los que esten leyendo este tutorial, bueno hoy dнa me enseсaron como crear algunos tipos de anticheats, y bueno quiero explicar 2 de ellos, que a mi parecer es fбcil de hacer.. Espero comprensiуn, supongo que es difнcil hablar sobre esto, y puedo recibir un montуn de criticas. Ya que hay un montуn de maneras de manejar o crear un anticheat, yo solo enseсo mi manera.. Tambiйn les expreso que no postearй mucho cуdigo, la idea es aprender a hacerlo uno mismo y aprender el concepto base.
________________________________________________
Anticheat de vida/armadura
Bueno para empezar quiero recalcar que hay 2 maneras para realizar nuestros anticheats, y 2do, y creo que si estas leyendo este tutorial es por que ya saben que crear un anticheat propio es mejor que hacerlo desde un include, FS, etc.
1era Manera: Variables
їVariables?, asн es, pareciese que las variables nos acompaсaran a todas partes. Creo yo que esta manerб es bastante eficaz, al igual que la 2da manera, pero haya ustedes cual utilizarбn
їEn que consta esta manera?
Para empezar, lo que se debe hacer es almacenar en una variable de tipo Flotante (o Float), la vida de nuestro jugador.
Se debe alterar esta variable cada vez que en nuestro script aumentemos o disminuyamos la vida de nuestro jugador. Para eso podemos crear algun stock parecido a esto para ahorrarnos el trabajo.
pawn Код:
stock DarVida(playerid, vida)
{
SetPlayerHealth(playerid, vida)
InfoJugador[playerid][pVida] = vida;
}
Ok, їCual es el propуsito de almacenar la vida de un jugador?
Es muy usual que los programas cheaters proporcione solamente vida al jugador, pero nuestras variables delatarбn al jugador.
EJ:
El jugador tiene 100 de vida
La variable de "vida" de ese jugador dice que tiene 50
Resultado = Hay una probabilidad de mas del 95% de que ese jugador sea un cheater. (El otro 5% son las personas que acudirбn pidiendo desban en tu foro )
________________________________________________
2da Manera: Lуgica
Le llamo lуgica a este mйtodo ya que su creaciуn es eso, una simple lуgica.
їEn que consta esta manera?
Bueno, algo ъtil que podemos hacer, es que nuestro jugador siempre posea una cantidad de vida(o chaleco) de 99.0, para estй mйtodo debemos estar seguros de que el jugador nunca tendrб la manera de obtener 100.0 de vida.
їEn que cosas debo tener cuidado?
# Mбquinas de comida por defecto de GTA
Fнjense siempre de que estas mбquinas sean borradas del mapa ni tampoco agregarlas en un interior o un mapa creado por ustedes, al usarlas el jugador serб capaz de obtener 100.0 de vida, y serб baneado/kickeado errуneamente.
# Comandos de administraciуn
Comandos como el /darvida , /darchaleco, si utilizan este mйtodo pуnganle una restricciуn para que los administradores puedan establecer el chaleco o vida de una persona hasta el lнmite deseado; en este caso 99.0
# El script propiamente tal
Cualquier funciуn que usйis aseguraos no sobresar la cantidad expresada (99.0)
# Menъs por defecto de GTA
Los menъ como lo son el del Ammu-Nation, o los del Cluckin Bell/Burger Shot. Si los tienen activados, estos le permitirбn al jugador tener una vida de 100.0 o un chaleco al 100.0
Resultado del anticheat
Nuestros jugadores, solo pueden tener 99.0 de vida
Un jugador dice tener 100.0 de vida
Resultado = Ese jugador tiene una probabilidad enorme de ser un cheater
________________________________________________
Paso final para los 2 mйtodos
Bueno una vez escogido uno de los mйtodos, pueden crear un timer, que cheque cada X tiempo la Armadura o Vida de nuestro jugador.
Si la vida de nuestro jugador ha pasado el lнmite entonces recibirб un Ban/Kick. EJ:
pawn Код:
public OnPlayerSpawn(playerid)
{
SetPlayerHealth(playerid, 99);
TimerHack[playerid] = SetTimerEx("VerHack", 8000, true, "i", playerid);
//Recuerden detener el timer si el player se desconecta ' KillTimer(TimerHack[playerid]); '
return 1;
}
forward VerHack(playerid);
public VerHack(playerid)
{
new Float:vida;
GetPlayerHealth(playerid, vida);
new string[256];
if(vida >= 100 && GetPlayerState(playerid) == PLAYER_STATE_SPAWNED)
{
format(string, sizeof(string), "[DR.CROSSOV3R]: Ha baneado a %s | Hack de vida", PlayerName(playerid));
SendClientMessageToAll(AMARILLO, string);
Ban(playerid);
}
return 1;
}
Espero, que hayan entendido, gracias.