Novedades

Guia Tutorial: Aimbot y sus cálculos matemáticos



chiteroman

Moderador
Desde
24 Abr 2020
Mensajes
9
Buenas a todos, en este post voy a explicar cómo funciona un aimbot de forma matemática para los más interesados. Todo lo de este post lo he sacado de aquí: Tutorial - Aimbot Math Explained | Guided Hacking , así que vamos a ello.

Lo primero y más importante, ¿qué es un aimbot?

Un aimbot es un programa que apunta de la forma más precisa posible a una entidad del juego (como un jugador, un zombie, etc). Existen variantes de este como el aimassist, que, como su nombre indica, nos ayuda a mejorar la precisión del disparo sin que se note tanto.
Esto lo podemos programar de distintas formas, ya bien sea interno o externo. Pero eso ahora no nos interesa, lo que verdaderamente importa es cómo hacemos funcionar esto en un juego, pues aunque parezca algo difícil la verdad es que no lo es tanto.

------------------------------------------------------------------

1635007763776.png

Esto de aquí es la representación de un eje de coordenadas cartesianas en 3 dimensiones (altura, anchura y profundidad), que se representan como un vector con tres variables (x, y, z). Estas variables dependerán de la posición de las entidades (en este caso; jugadores) y son las que nos van a ayudar a programar un aimbot.


Muy bien, ahora que sabemos esto tenemos que encontrar la manera de saber la distancia a la que se encuentra nuestro objetivo, y para ello vamos a usar la trigonometría.
1635008037759.png

Esto de aquí es un triángulo rectángulo y va a ser el que nos va a ayudar a lograr nuestro cometido. ¿Cómo? Pues muy simple, necesitamos saber los ángulos para apuntar a nuestro enemigo. En este triángulo tenemos:

- Tres lados representados por las letras a, b y c, donde a y b son los catetos y c es la hipotenusa.
- Tres ángulos representados por A, B y C, donde A y B desconocemos su valor (sin tener en cuenta los valores de la primera imagen) y C que sabemos que siempre son 90 grados.


1635008279231.png

En esta imagen podemos observar nuestro triángulo rectángulo hecho de tal manera que sepamos varias cosas:

- La hipotenusa ("c"), es la distancia que hay entre el enemigo y nosotros.
- El ángulo A, es el que nos va a permitir saber la dirección a la que el aimbot debe apuntar.

--------------------------
Comienza lo chungo.

1635008476995.png

En esta imagen observamos que nosotros ahora vamos a ser el sistema de referencia. Pero claro, si nosotros alteramos nuestra posición, la del rival también debemos actualizarla. Por lo tanto tenemos que usar nuestro cerebro (o calculadora) para operar.

Para calcular los valores tenemos que usar la siguiente fórmula: (posición del enemigo) - (posición aliada), a excepción de la altura porque estábamos más abajo, recordad que estamos en 3D.

En el eje X: -200 - 500 = -700.
En el eje Y: 500 + 240 = 740. (Aquí se suma porque el enemigo está por encima de nosotros).
En el eje Z: 50 - 50 = 0.

Por lo que ahora sabemos lo siguiente:

1635008916855.png

Tenemos el valor de los dos catetos pero desconocemos el valor de la hipotenusa que es clave para calcular el ángulo, por lo que aquí entran la magia de las mates. Vamos a usar el teorema de Pitágoras para calcular el valor de la hipotenusa.

El teorema de Pitágoras nos dice que el valor de la superficie de la hipotenusa es igual a la suma de las superficies de los catetos. Es decir; c^2 = (a^2 + b^2).

De tal modo que; 740^2 + (-700)^2 = 1037600. Por lo que c = (raíz cuadrada de)1037600 [para los programadores sqrt(1037600)]. Y esto nos da un resultado de: 1018,63 (el resultado está redondeado pero en el programa es mejor dejarlo con los mayores decimales posibles para una mayor precisión).

-----------

1635009257400.png

Así ha quedado nuestro triángulo tridimensional transespacial positrónico heteropatriarcal XD. Ahora solo nos falta conocer el ángulo A, y para ello vamos a usar las operaciones del seno, coseno y tangente (y sus derivadas).



La mejor operación que podemos usar para esto es... pues cualquiera, da igual porque sabemos el valor de todos los lados del triángulo por lo que con esto nos quedaría:

senA = 740/1018,63

cosA = (-700)/1018,63

tagA = 740/(-700)


Ahora tenemos que saber el pitch y yaw de nuestro jugador:

Pitch = eje X (arriba y abajo).

Yaw = eje Y (izquierda y derecha).

Ya se que esto os puede parecer extraño porque el eje X suele corresponderse con lo otro pero en este ejemplo está hecho así xD.

El pitch va desde los -180º hasta los 180º, y el yaw desde los -89º hasta los 89º.

Pues bien ahora que lo sabemos todo, podemos usar la operación de la arcotangente para calcular tanto el pitch como el yaw.


Yaw: arctan(740/-700) = -46,59 -> Es el resultado de dividir b (que es la y) y a (que es la x). Más luego hacer la arcotangente.

Pitch: -arctan(0/1018,63) = 0 -> Es el resultado de dividir su coordenada z (la del enemigo) entre la c (que es la hipotenusa).



¿Y ahora?

Pues muy simple, ahora tenemos que escribir estos valores en los correspondientes pointers del pitch y el yaw. Pero eso ya es trabajo vuestro. Espero que os haya servido y gracias a "neonplanet" de GuidedHacking por este tutorial.
 
Atrás
Arriba