Juegos

Escribimos ASI de simple plugin para GTA San Andreas

En seguida les advierto que será difícil, pero no todo es tan terrible como parece.
Vamos a escribir un plugin simple, cuya función será: en la pulsación de la tecla, damos a nuestros jugadores un montón de dólares, para un rico y feliz de la vida! <!--smile:smile-->smile<!--/smile-->
Artículo para principiantes, avanzados codificadores primerizos será inútil.

Vaya al grano! Para empezar, descargue un entorno integrado para el desarrollo, y con palabras sencillas - programa, en el que los programadores hacen sus milagros. Elegí gratis y es bastante cómodo, y lo más importante, simple - Dev C 5.11.
Se puede descargar de aquí
Usted puede elegir cualquier cosa, por ejemplo Code Blocks, o Visual Studio C , cuestión de gustos, te recomiendo Code Blocks.


De antemano advierto, si usted no puede instalar este programa, descargar, entonces no vale la pena leer este artículo.

Ejecute el programa, hacemos clic en el menú - nuevo ---> proyecto y seleccionamos el archivo DLL.
Пишем простой ASI плагин


Guardamos nuestro proyecto en cualquiera de antemano a la carpeta que creó, bajo el nombre de AsiPlugin.
Ante nosotros se abre el código fuente del proyecto, no se tocan, todo lo que necesita ahora es una función bajo el nombre de DllMain.
Пишем простой ASI плагин


¿Qué es DllMain? Es una característica que puede deberse a un juego en el inicio y en consecuencia, todo lo que desea se realizará en esta parte del código. Para nuestro pequeño experimento necesitaremos el siguiente pedazo de código:


case DLL_PROCESS_ATTACH:
{
// aquí escribimos nuestra acción y se ejecutará.
break;
}



Lo que necesitamos para añadir fondos a su cuenta de jugador? Correctamente, el primero en saber cuando se hace clic en la tecla!
Yo te daré la plantilla de esta función y se les puede utilizar en el futuro.


void OnTimer(HWND hwnd, UINT msg, UINT idTimer, DWORD dwTime)
{
if (GetAsyncKeyState(0x47) & 0x8000) // si hace clic en el G, 0x47 - código de tecla
{
// aquí cumplimos con nuestro código
}
}


Los códigos de teclado se puede encontrar aquí.
Esta porción de código, constantemente se repite y cada vez que se comprobará el estado de la tecla G.

En adelante, el más difícil. Necesitamos la dirección de la variable que almacena una gran cantidad de dinero del jugador. Con la ayuda de esta dirección creemos dinero en nuestra variable y escribir una nueva cantidad.
Pasamos aquí (aquí usted encontrará la dirección principal de перменных juego)

Vemos a nuestra dirección: 0xB7CE50 - [dword] el Dinero.
Como usarlo usted pide? Hola a todos!

Que leer la cantidad de dinero en una variable, es necesario declarar una variable y hacer el siguiente enfoque con el puntero en esta dirección:

DWORD Many = *(DWORD*)0xB7CE50; // obtenemos el dinero.
*(DWORD*)0xB7CE50 = 1000000; // damos el dinero a los jugadores

Finalmente obtenemos el siguiente código:


DWORD Many = *(DWORD*)0xB7CE50; // la cantidad de dinero que el jugador?

if(Many<99999999) // si es menor 99999999
{
*(DWORD*)0xB7CE50 = 99999999; // tomamos el mismo dineral
}



Luego se debe iniciar el temporizador que va a cumplir nuestra función, y cada vez que preguntar: si hemos pulsado la tecla?
Esto se hace así - SetTimer(0, 0, 200, (TIMERPROC)OnTimer); // 200 intervalo, en milisegundos

Finalmente obtenemos el siguiente código:


void OnTimer(HWND hwnd, UINT msg, UINT idTimer, DWORD dwTime)
{
if (GetAsyncKeyState(0x47) & 0x8000) // si se ha pulsado G
{

DWORD Many = *(DWORD*)0xB7CE50; // obtenemos количетсво dinero

if(Many<99999999) // si la cantidad de dinero menos 99999999
{
*(DWORD*)0xB7CE50 = 99999999; // recogemos un montón de dinero
}
}
}



BOOL WINAPI DllMain(HINSTANCE hinstDLL,DWORD fdwReason,LPVOID lpvReserved)
{

switch(fdwReason)
{
case DLL_PROCESS_ATTACH:
{
SetTimer(0, 0, 200, (TIMERPROC)OnTimer); // iniciamos nuestro temporizador
break;
}
case DLL_PROCESS_DETACH:
{
break;
}
case DLL_THREAD_ATTACH:
{
break;
}
case DLL_THREAD_DETACH:
{
break;
}
}

return TRUE;
}


Ahora nos queda compilar nuestro programa y probarlo en el juego. Sólo quiero llamar la atención. Seleccione 32 bits compilador Dev C , de lo contrario, nuestro plugin no funcionará.
Ver la foto de cómo hacerlo y de que haga clic en para la compilación.
Пишем простой ASI плагин


Salió sin errores? Si sí, entonces vamos a la carpeta de nuestro proyecto y encontramos un archivo DLL, el cual nos ha resultado. A renombrar la extensión en el ASI y la lanza en la carpeta con el juego. Importante! No se olvide de instalar AsiLoader o CLEO 4.
Y eso es todo. Inicia el juego y pisa G. funciona? Bien hecho, enhorabuena!
Pregunte ¿y qué más? Respondo: estudia la programación, puede ser debido a que usted obtiene el gurú de modding, y puede ser más pronunciada. <!--smile:smile-->smile<!--/smile-->
Aquellos a quien no se pudo, les paso el plugin AsiPlugin.rar y el codigo fuente del proyecto lesson.rar.

Enlaces útiles:
Libros de programación se puede descargar de aquí.
la Dirección y las funciones de Gta San Andreas, allí se puede encontrar la base para la IDA, en el que un montón de cosas interesantes. Cómo usar la IDA temo necesita un artículo independiente.


Gracias por la atención, espero que hayan gustado! Buena suerte a todos!
p.s: Si el artículo despertará el interés, en el siguiente artículo les enseñaré a utilizar las funciones de GTA, por ejemplo спавнить de la máquina.

Artículo эксклюзивна para el sitio Gamemodding.net al copiar el material, debe especificar un enlace al sitio.
373
0
31
Me gusta:  31
smalloff
smalloff

Publicado en 13 mayo 2016

Añadir a favoritos
Compartir
Compartir:
Información
No hay comentarios todavía. Su comentario será primero.
Información
Para dejar comentarios a esta publicación deberá registrarse .

Reglas del sitio web и política de privacidad

© 2012-2024 GameModding.com Todos los derechos reservados.