Ayuda. Creación bot para juego online.

Iniciado por andresjame, 5 Enero 2015, 15:18 PM

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

andresjame

Hola muy buenas a todos y felices fiestas.
Bueno os cuento, últimamente llevo probando juegos de ruletas online y la verdad es que no me esta yendo nada mal.. el problema reside en que no tengo tiempo físico para andar todo el día jugando y tal por lo que necesito ayuda para programar un bot que juegue por mi, se que con el programa AutoIt y un conocimiento no muy avanzado de programación es posible, estudio ingeniera electrónica primer curso, tengo un mínimo conocimiento, pero respecto a esto ando más que perdido y no se por donde empezar..
Muchas gracias por la atención.

patilanz

Los juegos consisten solo en mover el ratón y dar clicks?
Si es así existen un montón de programas para esto y que no requieren conocimientos de programación. Como autohotkey , autoclick o mousecontroler...

http://www.fantastithus.com/grabar-y-repetir-movimientos-del-raton-y-sus-clics-en-windows-con-mousecontroller/

Saludos

Eleкtro

#2
En un escenario online entra en juego un factor muy importante y que casi nadie suele tener en cuenta al hablar de Bots (cuando realmente es una verdadera pesadilla), el Lag (y la posible e inesperada desconexión), por ende, si un script/macro se basa simplemente en mover el ratón y hacer clicks entonces se puede considerar ineficiente;
siempre podrías aumentar el intervalo entre movimientos para disminuir la probabilidad de quedarse "atascado" por la desincronización causada por el lag u otros factores (como el tiempo de respuesta del PC), pero eso es añadir más ineficiencia al script, es perder un preciado tiempo entre espera y espera, entre movimiento y movimiento.

Para disminuir al máximo posible el tiempo de espera entre movimientos y sacarle el máximo provecho al script/macro en otras características como por ejemplo detectar la desconexión y reconectar, o cerrar ventanas de chats que tapan parte del juego, para eso puedes recurrir al reconocimiento de imagen (image-search y/o pixel-search), hay librerías de terceros para esto desarrolladas en AutoIt,
pero mejor todavía, podrías leer las direcciones de memoria del juego en cuestión, es una metodología más eficiente y con una respuesta instantanea a diferencia de la comparación de imagenes, pero eso ya requeriría un mayor conocimiento e investigación por tu parte, tanto de los internals del juego, como de programación relacionada con la lectura de offsets.

Te recomiendo una solución basada en tu nivel de conocimientos, JitBit Macro Recorder, es un generador de Macros con un buenísimo algoritmo de reconocimiento de imagen que tiene un muy buen tiempo de respuesta, me ahorra mucho tiempo cuando no me apetece programar, aunque a esto se le podría denominar programación de algún modo muy básico, ya que tiene condicionales, e instrucciones "GoTo" + Labels:
https://www.jitbit.com/macro-recorder/



PD: En este software también puedes grabar los movimientos del ratón, pero te sugiero crear el macro instrucción por instrucción para sacarle el máximo rendimiento como dije.

Saludos








patilanz

Muy buena respuesta Eleкtro  :D
Me has intrigado y he empezado a leer todavía mas sobre ingeneria inversa pero sabes de algún buen tuto sobre los offset ?

Saludos

moikano→@

Citarúltimamente llevo probando juegos de ruletas online

En que están programados los juegos? Dependiendo de esto puede ser mas fácil o mas difícil hacer un bot.

Eleкtro

Cita de: patilanz en 18 Febrero 2015, 16:16 PM
Muy buena respuesta Eleкtro  :D
Me has intrigado y he empezado a leer todavía mas sobre ingeneria inversa pero sabes de algún buen tuto sobre los offset ?

Saludos

Los tutoriales sobre estas temáticas no abundan demasiado, aunque haberlos los hay ...pero no se en que lenguaje lo buscas, si te sirve conozco un código fuente de un Bot para Diablo III en C#, el cual se basa en leer offsets, de ahí puedes aprender muchísimo.

Saludos








patilanz

Cita de: Eleкtro en 18 Febrero 2015, 16:31 PM
Los tutoriales sobre estas temáticas no abundan demasiado, aunque haberlos los hay ...pero no se en que lenguaje lo buscas, si te sirve conozco un código fuente de un Bot para Diablo III en C#, el cual se basa en leer offsets, de ahí puedes aprender muchísimo.

Saludos

Prefiero c/c++ aunque el lenguaje no me importa mucho, lo importante es la idea. Me puedes pasar el código del bot ?

Eleкtro

#7
Cita de: patilanz en 19 Febrero 2015, 00:05 AMMe puedes pasar el código del bot ?

Me ha costado encontrarlo despues de tanto tiempo que estoy sin tocar el tema :P:
http://subversion.assembla.com/svn/enigma-d3/

Necesitas un cliente SVN para descargarlo, la solución fácil es usar esta aplicación:
http://downloadsvn.codeplex.com/

Por cierto, no era exactamente un Bot (lo siento, no lo recordé bien, hacia tiempo ya), sino una API para el posterior desarrollo de Bots basado en los offsets del proceso de ese juego, pero igualmente en el source verás muchos ejemplos de edición/manipulación de memoria con las direcciones que ya están pre-establecidas en la API, por ejemplo para obtener el nombre del area del mapa actual del juego. Aquí tienes el hilo oficial:
http://www.ownedcore.com/forums/diablo-3/diablo-3-bots-programs/diablo-3-memory-editing/469521-c-enigma-d3.html

...Y puedes encontrar sources de Bots completos tanto en C/C++ como C# y otros lenguajes (como AutoIt) usando el buscador de esa misma página (aunque no he examinado que metodologías usarán esos Bots):
http://www.ownedcore.com/forums/search.php?
(o Googleando)

Saludos








patilanz