No Recoil para juegos shooter !!

Iniciado por TrashAmbishion, 30 Diciembre 2019, 01:37 AM

0 Miembros y 1 Visitante están viendo este tema.

TrashAmbishion

Hola,

Estoy pensando en probar hacer un antirecoil para ver si funciona.... alguna sugerencia a la hora de desarrollarlo....

Estuve leyendo que de ser posible desactivar en el juego el

raw input mouse

para poder trabajar con el mouse sin problemas...

Saludos y gracias cualquier sugerencia...

PD: En teoria supongo que seria guardar la posicion del mouse cuando se presione el click y regresarla a esa posicion hasta que se suelte el click... cierto ? tengo que manejar los eventos del mouse

@XSStringManolo

Cita de: TrashAmbishion en 30 Diciembre 2019, 01:37 AM
Hola,

Estoy pensando en probar hacer un antirecoil para ver si funciona.... alguna sugerencia a la hora de desarrollarlo....

Estuve leyendo que de ser posible desactivar en el juego el

raw input mouse

para poder trabajar con el mouse sin problemas...

Saludos y gracias cualquier sugerencia...

PD: En teoria supongo que seria guardar la posicion del mouse cuando se presione el click y regresarla a esa posicion hasta que se suelte el click... cierto ? tengo que manejar los eventos del mouse
Una de las opciones es quitando el Raw en Windows, para que puedas manejar el ratón desde la api de Windows. Si le dejas raw, tienes que hacerlo con drivers.

Puedes reajustar la posición, o hacer el recoil al revés, que es lo más lógico, ya que en el primer caso es exageradamente obvio porque todos los disparos van a mismo pixel y si mueves el ratón daría un salto exagerado de reajuste hacia el centro (posición inicial).
Los recoils no son random, son siempre los mismos. Los profesionales se los aprenden y los hacen al revés mientras disparan, así está siempre en el centro.

Para ver un recoil de una arma tírale a un muro y ves la forma. La ametralladora esta que le llaman de los noobs no tiene recoil creo. El resto tienen su propio patrón cada una.

Para que no de el cante, métele un randomizador para que varie en el recoil, y hazlo con un % para que no sea obvio y parezca más real y define un curva de suavizado del movimiento para que no vaya a saltos el cursor hacia el centro. Fíjate en jugadores reales.

TrashAmbishion

Alguna idea de cómo hookear correctamente el mouse, los códigos que he encontrado no ayudan mucho..

La idea sería sino me equivoco:

- Al presionar el botón izquierdo, guardar la posición del mouse.
- Esperar 2 segundos
- Regresar el cursor a la misma posición.
- Repetir una y otra vez

Sería así la cosa ?

Ya hice la de guardar la posición, pero no logro manipular la posición correctamente me brinca un montón cuando le seteo las coordenadas.

Saludos

kub0x

El tema es que cada arma tiene su recoil. Digamos que hablas de CSGO. Tendrías que mapear en una hotkey cada recoil de cada arma, y si compras por ejemplo un AK-47, oprimir la tecla encargada del AK. Y así con todas.

Normalmente el proceder sería mientras esté el boton izq pulsado, guardar la posición de la mira, siempre es el medio de la pantalla 1/4 * width * height. Calcula cuanto son 30 balas en segundos y vuelves al origen. O incluso en 20 balas, volver al origen.

Ahora se puede dar el caso de que el propio CSGO te trolee y te mueva el cursor cada vez que llamas a esa API a una posición arbitraria. A saber, no tengo ni idea de si siquiera lo detectaría VAC como cheto. Tendría que hacer pruebas. Puedes probar a poner el código de seteo de coords en WinAPI, a ver si podemos ayudarte en algo.

Saludos.
Viejos siempre viejos,
Ellos tienen el poder,
Y la juventud,
¡En el ataúd! Criaturas Al poder.

Visita mi perfil en ResearchGate


@XSStringManolo

Cita de: TrashAmbishion en 20 Enero 2020, 09:18 AM
Alguna idea de cómo hookear correctamente el mouse, los códigos que he encontrado no ayudan mucho..

La idea sería sino me equivoco:

- Al presionar el botón izquierdo, guardar la posición del mouse.
- Esperar 2 segundos
- Regresar el cursor a la misma posición.
- Repetir una y otra vez

Sería así la cosa ?

Ya hice la de guardar la posición, pero no logro manipular la posición correctamente me brinca un montón cuando le seteo las coordenadas.

Saludos
Estas haciendo exactamente lo que te dije que no hicieras. No tienes que calcular a donde va el ratón para moverlo a la posición inicial porque te va a ir a saltos y vas a realizar un movimiento por cada desvio. Lo cual no es buena idea principalmente por el timming.

Lo que tienes que hacer es disparar a un muro, crear la patern al revés para esa arma y guardarla. Una vez tienes la patern creada y más o menos van todos los disparos al centro, debes alterar el timming, suavizar y añadir márgenes de error y probabilidades de error. También debes detectar el arma por eso de no hacer el recoil de una ak cada vez que uses el cuchillo, etc.
Normalmente se utiliza una secuencia para activar el hack con un timer o con otra secuencia para desactivarlo.

Ya te lo expliqué, asique intentaré ser más visual.



Imagínate que la ametralladora barrel (nombre hipotético) dispara en forma de símbolo }
Esto quiere decir, que si tu no tocas el ratón y disparas, las balas de la ametralladora van a dibujar un corchete } en el muro.

Lo que tienes que hacer es hacer el patrón al revés moviendo el cursor. Es decir, cuando se haga click, mueve el ratón haciendo esta forma {
Con esto lo que consigues es que todas las balas vayan siempre al centro moviendo la cámara. Si el patrón hace siempre lo mismo es muy obvio. Esto lo puedes resolver de varias formas. Puedes añadir un par de patrones opuestos similares. Por ejemplo ( y |. Tiras un randomizador por cada click y añades un % de la antipattern real según el número aleatorio. Debes ajustar el umbral para por ejemplo solo obtener números entre 25% y 80%.
Reusas la función para generar otras patterns.
Generas otro número aletorio para decidir que otra pattern añadir a tu antipattern para suavizarla.
Generas otro para el timmer.

Te hice una imagen de ejemplo.

Las lineas finas rojas dentro de la cabeza es la mirilla.
El corchete verde es la dirección/recoil en la que la arma se mueve automáticamente al disparar.
Los ***** rosas dentro del corchete son los puntos de impacto de cada bala.
El corchete azúl es la pattern al revés, es decir, lo que tu tienes que crear.
Los puntos rojos son en que posición de la patern has movido tu el cursor.
Las lineas amarillas son el punto medio entre cada bala y cada posición opuesta creada por ti. Es decir, todas las balas van a impactar siempre en el centro de la mirilla si haces la antipattern perfecta.
Siguiente la flecha verde tienes la unión de tres patterns distintas pero similares.
Lo puntos rojos dentro de esas patterns son todas las posibles posiciones a donde debes mover el cursor.
Siguiendo la otra flecha verde ves que esa pattern se creo usando los 3 símbolos.

A la derecha de todo entre azúl tienes lo que debes crear. Un cúmulo de posibilidades y posiciones con distintas variaciones de tiempo que estadísticamente aumente tus posibilidades de acertar en el blanco.

Suavizas haciendo una media entre el corchete con la antipattern perfecta y el cúmulo. Y las posiciones reales apegándolas al centro de la media de puntos.

Así te queda un patrón así al que le puedes pasar una seed distinta entre cada click para alterarlo.


Para evitar los saltos tienes que tener precalculada la pattern para ir moviendo el cursor de forma continua trazando un linea curva en este caso pasando por cada punto generado para ese intervalo del punto sin alejarse un tanto % de punto medio. En resumen. Matemáticas xD

La circunferencia azúl define el límite y la dirección de la pattern, el cuadrilátero formado por la unión de los cuatro puntos define la forma de la pattern. La circunferncia gorda cian define el centro de la pattern. Los puntos naranjas definen la pattern final creada, que se obtienen haciendo la media entre la circunferencia y el cuadrilátero. Para no realizar siempre exactamente la misma pattern, metes un randomizador para alterar la curva generada(circunferencia naranja).

Y falta algo más que es importante. El timer. Si siempre tras pulsar el ratón "tienes el mismo tiempo de reacción"... xD Blanco y en botella. Con usar la función Sleep() y meterle algo de latencia, listo.

Esto todo tienes que sumarlo a la posición actual, nada de "al centro". Porque como lo pongas para el centro y tu muevas manualmente el ratón, te va a hacer media con la pattern y darte un salto de media pantalla xD.

De todas formas si eres manco como yo en esos shooter, te renta más el hack del gps. Capturas el tráfico con un Smartphone lees directamente de la memoria y le pones un text to speach que te indique la posición. Enemigo más cercano a las 6.
Si usas un wallhack es demasiado obvio y los fails puede ser muy grandes. Tipo que hay 2 muros en medio, el enemigo cruza uno y le pegas un tiro al miro de delante a la cabeza del jugador y pega la bala en el muro xDDD
En competitivo se ven muchos fails de esto xD

TrashAmbishion

Hola,

Wow interesante análisis xD

Ya tengo el pattern de un arma y con ella voy hacer las pruebas.

Sobre la parte de como hacer el Hook al mouse tienes algo en Vb.Net

Te publico en un rato lo que encontre.

Saludos

@XSStringManolo


TrashAmbishion

Hola,

Bueno ya tengo un codigo que me Hookea el Mouse perfectamente y detecta sus coordinadas, cuando hago click o doubleclick, el problema es que cuando entro al juego no funciona, alguna idea de que puede ser...

Cuando minimizo el juego vuelve a funcionar de nuevo..

Saludos y gracias cualquier sugerencia

PD: En el juego desactive el Mouse Raw, para poder manipular externamente el mouse sin problemas

@XSStringManolo

Te funciona en todas las ventanas? Solo en la foreground o solo en la ventana del código?

Tienes burradas de ejemplos por ahí con aproachs muy distintos. https://github.com/topics/aimbot

TrashAmbishion

Hola,

En todas las ventanas menos la del juego, cunado estoy dentro del juego y clickeo no hace nada.

Quieres el codigo ?

Saludos