Registrarse

[Scripting] Bank System

Javi4315

Babyface
Miembro de honor
Ir a la versión 1.1
-----------------------------------------------
Quizás hayáis pensado alguna vez en crear un banco en vuestro juego. Pero claro, se necesitaría ASM. La única forma de hacerlo con scripts sería guardando el valor en una variable. Pero claro, el valor máximo de una variable es de 0xFFFF, que en decimal es 65535, ¿Un banco en el que sólo se puedan meter $65535? Podría ser, pero no quedaría bien.

Entonces, ayer estuve pensando y llegué a la conclusión de que se podía hacer perfectamente. No, no se necesita ASM. Lo haremos con variables. Pero no con una, sino con dos variables.

1. El vídeo

Es una verdadera obra de arte. Lástima que la calidad de la imagen sea tan mala, lo siento :p



Ahí se demuestra que no hay ningún tipo de erro. En principio, al menos. Es conveniente verlo para ver el funcionamiento.

2. Funcionamiento teórico (importante)

No os asustéis por el título. Sólo voy a explicar un poco cómo funciona. Es imprescindible entenderlo.

En vez de una variable, vamos a usar dos. De esta manera, podemos guardar hasta 999.999 (si queremos utilizar el punto, si no podemos utilizar hasta el 99999999, más en realidad, pero no quedaría exacto, o quizás sí, eso depende de vosotros; de todas formas, podemos usar una tercera variable si queremos poner hasta 999.999.999 con los puntos incluidos).

Lo que vamos a hacer es dividir el número en dos. Los tres primeros números los guardaremos en una variable y los tres segundos los guardaremos en otra. Por ejemplo, si escogemos las variables 0x7FF0 y 0x7FF1, sería algo así:

XXX.YYY, de manera que los números Xs se guarden en la variable 0x7FF1 y los Ys 0x7FF0. No tiene mucha ciencia, es partir el número en dos difras y guardarlos en dos variables distintas.

Luego es cuestión de separar y unir mediante script. Esto es básicamente lo que pensé anoche. Lo difícil ha venido después al hacer el script, he estado esta mañana y parte de esta tarde esccribiéndolo. De hecho, reconozco que pensé que no iba a funcionar. Creí que sería descabellado hacer esto sin ASM, sinceramente.

3. Multichoices

Se puede hacer sin ellos, por supuesto, pero vamos, yo creo que usar multichoices es lo más correcto. Si queréis editar los multichoices, podéis descargar mi magistral herramienta Multichoice Editor v2.

Bueno, como podéis copiar y pegar directamente mi script, os dejo las especificaciones de los multichoices que he usado y los textos que les he puesto.

Multichoice 6 dijo:
ADMIN. CUENTA
ABRIR CUENTA
SALIR
Multichoice 7 dijo:
DEPOSITAR
RETIRAR
SALIR
Multichoice 17 dijo:
[$]100
[$]1.000
[$]10.000
[$]100.000
SALIR

*Nota: Se debe entender que el multichoice es el número 17, pero en hex es el 0x11, no os confundáis a la hora de insertarlo.

*Nota 2: Poniendo el "[$]" en XSE y en Multichoice Editor se reemplaza en el juego por el símbolo del dinero.
Pero claro, vosotros podéis poner otra cosa o poner las opciones que queráis. Esto es por si queréis utilizar el sistema tal cual.

4. El script

Código:
#org @comienzo
lock
faceplayer
msgbox @1 0x6
multichoice 0x0 0x5 0x6 0x1     '=> Muestra el multichoice nº 6
compare LASTRESULT 0x0     '=> Estos compares determinan qué opción se ha seleccionado
if 0x1 goto @admin
compare LASTRESULT 0x1
if 0x1 goto @abrir
compare LASTRESULT 0x2
if 0x1 goto @salir1
release
end

#org @salir1     '=> Si elegimos la opción de salir, se oculta el dinero que pudiera estar mostrado y se acaba.
hidemoney 0x0 0x0
msgbox @2 0x6
release
end

#org @abrir      '=> La opción de abrir una cuenta
msgbox @4 0x6
pause 0x5
spriteface 0x4 0x4
pause 0x50
faceplayer     '=> Todos estos comandos de atrás son meramente decorativos, no tienen una función especial
compare 0x7FF1 0x1     '=> Como el mínimo que se puede tener en la cuenta es 1.000, el valor de la variable 0x7FF1 tiene que ser como mínimo 1, así que comrpueba si el valor es 1
if 0x4 goto @yatiene     '=> Si el valor es mayor o igual a 1, es que ya tienes cuenta, por lo que no te deja crearla
showmoney 0x0 0x0 0x0     '=> Muestra tu dinero
msgbox @5 0x5     '=> Te pregunta si quieres abrir la cuenta
compare LASTRESULT 0x1
if 0x0 goto @noabrir
checkmoney 0x3E8 0x0     '=> Comprueba si tenemos los 1000 necesarios para abrir la cuenta
compare LASTRESULT 0x1
if 0x0 goto @nodinero
paymoney 0x3E8 0x0     '=> Si lo tenemos, los pagamos
setvar 0x7FF1 0x1     '=> El valor de la variable 0x7FF1 cambia a 1, por lo que ahora tenemos 1 en la 0x7FF1 y 0 en la 0x7FF0, por lo que al unirlo tenemos 1.000.
sound 0x15
updatemoney 0x0 0x0 0x0     '=> Se actualiza la caja que muestra el dinero
msgbox @8 0x6
hidemoney 0x0 0x0     '=> Quita la caja del dinero
spriteface 0x4 0x4
pause 0x80
faceplayer      '=> Comandos decorativos
msgbox @9 0x5     '=> Te pregunta si quieres administrar la cuenta (no es importante)
compare LASTRESULT 0x1
if 0x1 goto @admin
msgbox @6 0x6     '=> Si decides no administrarla, se termina el script
release
end

#org @yatiene     '=> Esto sucede si le das a crear cuenta pero ya tienes
msgbox @3 0x6
multichoice 0x0 0x5 0x6 0x1     '=> Muestra el multichoice nº 6
compare LASTRESULT 0x0     '=> Comprueba la opción seleccionada
if 0x1 goto @admin
compare LASTRESULT 0x1
if 0x1 goto @abrir
compare LASTRESULT 0x3
if 0x1 goto @salir1
release
end

#org @noabrir     '=> Esto es si, cuando nos preguntó si queríamos abrir la cuenta, decimos que no
msgbox @6 0x6
hidemoney 0x0 0x0      '=> Cierra la caja del dinero
release
end

#org @nodinero     '=> Esto pasa si no tenemos dinero para abrir la cuenta, nos dice que no tenemos suficiente y se acaba el script
msgbox @7 0x6
hidemoney 0x0 0x0
release
end


#org @admin      '=> Esta es la opción de administrar la cuenta
msgbox @4 0x6
pause 0x5
spriteface 0x4 0x4
pause 0x50
faceplayer     '=> Comandos decorativos
compare 0x7FF1 0x0     '=> Comprueba si el valor de 0x7FF1 es 0, si lo es, se entiende que no hay cuenta creada porque el mínimo en la cuenta es 1000.
if 0x1 goto @nocuenta      '=> Si no hay cuenta sigue este puntero
msgbox @10 0x6
multichoice 0x0 0x5 0x7 0x1      '=> Muestra el multichoice nº 7
compare LASTRESULT 0x0
if 0x1 goto @depositar
compare LASTRESULT 0x1
if 0x1 goto @retirar
compare LASTRESULT 0x2
if 0x1 goto @salir1
release
end

#org @nocuenta      '=> Esto es si le damos a administrar y no tenemos cuenta
msgbox @17 0x6
multichoice 0x0 0x5 0x6 0x1      '=> Muestra el multichoice nº 6
compare LASTRESULT 0x0
if 0x1 goto @admin
compare LASTRESULT 0x1
if 0x1 goto @abrir
compare LASTRESULT 0x3
if 0x1 goto @salir1
release
end

#org @depositar     '=> Esta es la opción de depositar dinero
showmoney 0x0 0x0 0x0      '=> Muestra el dinero que tenemos
compare 0x7FF0 0x0      '=> Comprueba si la segunda mitad del dinero es 0, si lo es, va a otra opción para depositar ("depositar2")*
if 0x1 goto @depositar2
buffernumber 0x0 0x7FF1     '=> Se guarda la primera mitad del número en buffer1
buffernumber 0x1 0x7FF0     '=> Se guarda la segunda mitad del número en buffer2
msgbox @11 0x6
multichoice 0x0 0x5 0x11 0x1     '=> Se muestra el multichoice nº 17 (11 en hexadecimal)
compare LASTRESULT 0x0
if 0x1 goto @100
compare LASTRESULT 0x1
if 0x1 goto @1000
compare LASTRESULT 0x2
if 0x1 goto @10000
compare LASTRESULT 0x3
if 0x1 goto @100000
compare LASTRESULT 0x4
if 0x1 goto @admin
release
end

#org @depositar2      '=> La segunda opción de depositar
buffernumber 0x0 0x7FF1      '=> Guarda la primera mitad en la variable, pero la segunda ya va en el texto como "000"
msgbox @18 0x6
multichoice 0x0 0x5 0x11 0x1     '=> Muestra el multichoice nº 17 (11 en hex)
compare LASTRESULT 0x0
if 0x1 goto @100
compare LASTRESULT 0x1
if 0x1 goto @1000
compare LASTRESULT 0x2
if 0x1 goto @10000
compare LASTRESULT 0x3
if 0x1 goto @100000
compare LASTRESULT 0x4
if 0x1 goto @admin
release
end

#org @100000      '=> Esto es si elegimos depositar 100.000
compare 0x7FF1 0x384     '=> comprueba si la primera mitad del número es 900
if 0x4 goto @cuentallena     '=> Si es mayor , no te deja meterlo porque se sobrepasarían los 999.999
checkmoney 0x186A0 0x0     '=> Comrpueba si tienes suficiente dinero
compare LASTRESULT 0x1
if 0x0 goto @nodinero2
paymoney 0x186A0 0x0      '=> Si tienes suficiente, los paga
sound 0x15
updatemoney 0x0 0x0 0x0
addvar 0x7FF1 0x64     '=> Se suman 100 (que es 64 en hex) a la variable, para sumar los 100.000 (recordemos que va partido en dos variables)
goto @depositar      '=> Vuelve al pointer de @depositar
release
end

#org @10000      '=> Depositar 10.000
compare 0x7FF1 0x3DE     '=> Lo mismo que en el anterior caso pero con 10.000
if 0x4 goto @cuentallena
checkmoney 0x2710 0x0
compare LASTRESULT 0x1
if 0x0 goto @nodinero2
paymoney 0x2710 0x0
sound 0x15
updatemoney 0x0 0x0 0x0
addvar 0x7FF1 0xA
goto @depositar
release
end

#org @1000     '=> Si eliges depositar 1.000
compare 0x7FF1 0x3E7     '=> Lo mismo que en el anterior caso pero con 1.000
if 0x1 goto @cuentallena
checkmoney 0x3E8 0x0
compare LASTRESULT 0x1
if 0x0 goto @nodinero2
paymoney 0x3E8 0x0
sound 0x15
updatemoney 0x0 0x0 0x0
addvar 0x7FF1 0x1
goto @depositar
release
end

#org @100     '=> Si eliges depositar 100
compare 0x7FF0 0x384      '=> Comprueba si podemos depositar los 100 sin exceder el máximo
if 0x4 call @ Comp1      '=> Esto es también la comprobación. Pero comprueba la otra variable (juntar con la @ porque si no, me menciona a un usuario)
checkmoney 0x64 0x0      '=> Comprueba si tenemos el dinero
compare LASTRESULT 0x1
if 0x0 goto @nodinero2
paymoney 0x64 0x0      '=> Si lo tenemos, lo paga
sound 0x15
updatemoney 0x0 0x0 0x0
addvar 0x7FF0 0x64      '=> Añade los 100 a la variable de la segunda mitad
compare 0x7FF0 0x3E7      '=> Comrpueba si excede los 1000
if 0x3 goto @depositar      '=> Si no los excede, vuelve a @depositar
subvar 0x7FF0 0x3E8      '=> Si excede los 1000, los resta de la variable
addvar 0x7FF1 0x1      '=> Restados los 1000, le añade uno a la primera mitad para conformar los miles (recordar lo de que está partido en 2 variables)
goto @depositar      '=> Salta a @depositar
release
end

#org @ Comp1      '=> La comprobación de la segunda variable, como dijimos antes (juntar con la @ porque si no, me menciona a un usuario)
compare 0x7FF1 0x3E7
if 0x1 goto @cuentallena
return

#org @cuentallena      '=> Esto sucede si la cuenta no admite el dinero porque excedería el máximo
msgbox @13 0x6
hidemoney 0x0 0x0
goto @depositar
end

#org @nodinero2       '=> Esto pasa si no tienes dinero
msgbox @12 0x6
goto @depositar
end

#org @retirar      '=> Esto es la opción de retirar dinero
showmoney 0x0 0x0 0x0
compare 0x7FF0 0x0      '=> Esto es igual que en @depositar, es la forma alternativa de retirar si el valor de la segunda parte es 0.
if 0x1 goto @retirar2
buffernumber 0x0 0x7FF1       '=> Se guardan los valores en los buffers
buffernumber 0x1 0x7FF0
msgbox @14 0x6
multichoice 0x0 0x5 0x11 0x1       '=> Se muestra el multichoice nº 17 (11 en hex)
compare LASTRESULT 0x0
if 0x1 goto @101
compare LASTRESULT 0x1
if 0x1 goto @1001
compare LASTRESULT 0x2
if 0x1 goto @10001
compare LASTRESULT 0x3
if 0x1 goto @100001
compare LASTRESULT 0x4
if 0x1 goto @admin
release
end

#org @retirar2      '=> La forma alternativa de retirar. Igual que la otra, no hace falta que la explique
buffernumber 0x0 0x7FF1
msgbox @19 0x6
multichoice 0x0 0x5 0x11 0x1
compare LASTRESULT 0x0
if 0x1 goto @101
compare LASTRESULT 0x1
if 0x1 goto @1001
compare LASTRESULT 0x2
if 0x1 goto @10001
compare LASTRESULT 0x3
if 0x1 goto @100001
compare LASTRESULT 0x4
if 0x1 goto @admin
release
end

#org @100001      '=> Esto es para retirar 100.000, se llama "100001" porque si no coincide el pointer con el de depositar
compare 0x7FF1 0x64      '=> Todo esto funciona igual que en depositar, comprueba si tenemos dinero en la cuenta suficiente y si tenemos espacio en nuestro dinero
if 0x3 goto @cuentavacia
checkmoney 0xDBB9F 0x0
compare LASTRESULT 0x1
if 0x4 goto @muchodinero
givemoney 0x186A0 0x0
sound 0x15
updatemoney 0x0 0x0 0x0
subvar 0x7FF1 0x64
goto @retirar
release
end

#org @10001      '=> Lo mismo que en el anterior pero con 10.000
compare 0x7FF1 0xA
if 0x3 goto @cuentavacia
checkmoney 0xF1B2F 0x0
compare LASTRESULT 0x1
if 0x4 goto @muchodinero
givemoney 0x2710 0x0
sound 0x15
updatemoney 0x0 0x0 0x0
subvar 0x7FF1 0xA
goto @retirar
release
end

#org @1001       '=> Lo mismo pero con 1.000
compare 0x7FF1 0x1
if 0x3 goto @cuentavacia
checkmoney 0xF3E57 0x0
compare LASTRESULT 0x1
if 0x4 goto @muchodinero
givemoney 0x3E8 0x0
sound 0x15
updatemoney 0x0 0x0 0x0
subvar 0x7FF1 0x1
goto @retirar
release
end

#org @101      '=> Esto es si elegimos 100
compare 0x7FF0 0x63      '=> Igual que cuando depositamos 100, pero para quitarlos, funciona igual en esencia
if 0x3 call @ Comp2      '=> (juntar con la @ porque si no, me menciona a un usuario)
checkmoney 0xF41Db 0x0
compare LASTRESULT 0x1
if 0x4 goto @muchodinero
givemoney 0x64 0x0
sound 0x15
updatemoney 0x0 0x0 0x0
compare 0x7FF0 0x63
if 0x3 goto @1012
subvar 0x7FF0 0x64
goto @retirar
release
end

#org @1012      '=> Esto es por si baja de 0, entonces pasa a ser 900 y se resta 1 a la primera mitad
addvar 0x7FF0 0x384
subvar 0x7FF1 0x1
goto @retirar
release
end

#org @ Comp2      '=> Comprueba si hay algo en la primera mitad, en caso de no haber nada en la segunda, es decir, si hay dinero para retirar 100 (juntar con la @ porque si no, me menciona a un usuario)
compare 0x7FF1 0x1
if 0x1 goto @cuentavacia
return

#org @cuentavacia      '=> Esto sucede si no podemos retirar la cantidad seleccionada porque en la cuenta quedarían menos de 1.000
msgbox @15 0x6
hidemoney 0x0 0x0
goto @retirar
end

#org @muchodinero      '=> Esto es si tienes tanto dinero "en mano" que no puedes retirarlo del banco porque excederías los 999.999
msgbox @16 0x6
goto @retirar
end

#org @1
= Buenos días, señor.\nBienvenido al Banco de Kanto.\p¿Qué desea hacer?

#org @2
= Vuelva siempre que quiera.\p¡Que tenga un buen día!

#org @3
= Lo siento mucho, señor, pero usted\nya tiene una cuenta.\lNo puede abrir más.\p¿Desea hacer algo?

#org @4
= Muy bien. Espere un momento.

#org @5
= Bien, para abrir una cuenta debe\ningresar una cantidad inicial de\l[$]1.000 ¿Está de acuerdo?

#org @6
= Como desee. Vuelva siempre que\nquiera.\p¡Que tenga un buen día!

#org @7
= Lo siento, señor, pero no tiene\nsuficiente dunero para abrir una\lcuenta.\p¡Que tenga un buen día!

#org @8
= Muy bien, abriremos su cuenta.\nEspere un momento.

#org @9
= Felicidades, señor, ya posee usted\nuna cuenta en nuestro banco.\p¿Desea administrarla?

#org @10
= ¿Qué movimiento desea realizar?

#org @11
= Su saldo es de [$][buffer1].[buffer2].\n¿Desea depositar algo?

#org @12
= No tiene suficiente dinero.

#org @13
= No hay espacio en la cuenta para\ndepositar esa cantidad.\pEl máximo para este tipo de\ncuentas es de [$]999.999.

#org @14
= Su saldo es de [$][buffer1].[buffer2].\n¿Desea retirar algo?

#org @15
= No puede quedar la cuenta con\nmenos de [$]1.000.

#org @16
= No puede retirar esa cantidad.\nLlevaría demasiado dinero encima.

#org @17
= No tienes una cuenta abierta, no\npuedes administrarla.\p¿Desea hacer algo?

#org @18
= Su saldo es de [$][buffer1].000.\n¿Desea depositar algo?

#org @19
= Su saldo es de [$][buffer1].000.\n¿Desea retirar algo?
*Esto es necesario explicarlo. Si el número es 1.100, al mostrar el valor de las variables saldrá bien. Pero si es 0, se mostrará "0", no "000", por lo que se mostraría como "1.0". Por eso va a otro sitio y se corrige ese supuesto.

El script se puede compilar tal cuál y funciona utilizando las variables 0x7FF0 y 0x7FF1, que es lo único que hay que tener en cuenta. Si no se sabe comprender el script totalmente es mejor no cambiar nada. A parte, para sumar valores menores a 1.000, es importante que sólo sean 100 si no se sabe programar correctamente otra cantidad.

Si se inserta con los comentarios, al llevar el apóstrofo ('), en principio XSE los debería tomar como comentarios y no influir en la inserción. Así que en teoría no es necesario quitarlos para compilar.

5. ¿Algo más?

Pues no, aunque estoy pensando en ampliar el sistema en algunos puntos, ya veremos si sale. De momento eso es todo lo que hay que hacer. Si el script es largo pero sencillo, en realidad.

6. Créditos

Pues siempre se piden créditos por los tiles, minis... Gráficos en general, ¿Pero por qué no por un script? Pues yo no es que quiera para nada los créditos, pero os aguantáis (?), créditos necesarios.
 

Juanjo

Hacker del pasado... Compilador del presente
Miembro insignia
Respuesta: Bank System Script by Javi4315

Una genial solución para un toque bastante estilizado y no muy poco genial. Suena genial tener un banco y sería mucho mejor que pudieras de acuerdo al día tus ahorros se valoricen o se bajen. ¡Me encanta!

Pues gracias por el tuto y sigue investigando :p
 

Calzifer

Soy la furia en persona.
Respuesta: Bank System Script by Javi4315

Está chevere, sería interesante que en algunos locales de los centro comerciales te pidan números de la cuenta y eso, para pagar por medio de tarjeta ( el número podría ser la id de usuario)
Pero bueno, yo no sé casi nada de scritp o ASM, o mejor dicho "programación" así que no creo poder dar una opinión concreta.
A mí, pregúntenme si las paletas del mapa son armónicas o si está bueno el mapa. (?)
 

Ryuzaki-sama

Te voy a comer >:D
Respuesta: Bank System Script by Javi4315

Esto sí añade un toque más de realismo al juego.
Y cuando no tengas dinero al perder con un entrenador pagas con trajeta de crédito
Cuando no tengamos dinero en efectivo no podremos pagar a los entrenadores...
Ha sido muy buena idea.
Se puede usar en nuestros hacks desde que te demos créditos,no?
Salu2.:cool:
 

Javi4315

Babyface
Miembro de honor
Respuesta: Bank System Script by Javi4315

Una genial solución para un toque bastante estilizado y no muy poco genial. Suena genial tener un banco y sería mucho mejor que pudieras de acuerdo al día tus ahorros se valoricen o se bajen. ¡Me encanta!

Pues gracias por el tuto y sigue investigando :p
Creo que no he entendido lo que está en negrita xD

Está chevere, sería interesante que en algunos locales de los centro comerciales te pidan números de la cuenta y eso, para pagar por medio de tarjeta ( el número podría ser la id de usuario)
Pero bueno, yo no sé casi nada de scritp o ASM, o mejor dicho "programación" así que no creo poder dar una opinión concreta.
A mí, pregúntenme si las paletas del mapa son armónicas o si está bueno el mapa. (?)
Pues es buena idea, lo que pasa es que no podría funcionar en ventas normales, es decir, si te sale la caja de las tiendas, cuando la compras se resta directamente el dinero, es decir, no lo puedes restar de una variable. O al menos no de forma sencilla.

No obstante, es buena idea para compras directas o para algún tipo de cosa por la que hubiera que pagar.

Esto sí añade un toque más de realismo al juego.
Y cuando no tengas dinero al perder con un entrenador pagas con trajeta de crédito
Cuando no tengamos dinero en efectivo no podremos pagar a los entrenadores...
Ha sido muy buena idea.
Se puede usar en nuestros hacks desde que te demos créditos,no?
Salu2.:cool:
Sí, lo puedes utilizar si quieres. El script tal como está o editando lo que quieras. Bueno, es un tutorial para aprender a hacerlo, pero es cierto que para la gente que no tenga muchos conocimientos en scripts puede resultar complicado. Entonces se puede poner el original sin problemas.
 

BLAx501!

A veces comento en temas :3
Miembro de honor
Usuario de Platino
Respuesta: Bank System Script by Javi4315

Hmm, genial aporte, lo usaré seguro en mi hack, con créditos, por supuesto.

Creo recordar haber visto algo parecido en Pokecommunity, con ASM, como bien has dicho. Si lo encuentro lo pondré aquí para que lo veáis si queréis :)
 

Sayer301!

UnityLord!
Miembro de honor
Respuesta: Bank System Script by Javi4315

Que canteo, hace mucho que pense lo del banco y tambien lo de que el maximo seria FFFF, una gran solucion por tu parte, ten por seguro que lo utilizaré en mi hack, eres un grande tio. Sigue así!
 

Javi4315

Babyface
Miembro de honor
Respuesta: Bank System Script by Javi4315

Bank System script v1.1

Vídeo



¿Qué tiene de nuevo?

El usuario @BLAx me ha propuesto insertar la rutina de DavidJCobb para añadir una caja como la del dinero, pero con los valores que tú quieras. Esos valores que queremos, son, por supuesto, el dinero que tenemos en el banco. Si véis el vídeo, veréis que aparece una caja con el dinero del banco y debajo la del dinero que tenemos nosotros. Además, los multichoices han sido llevados a la derecha de la pantalla.

La rutina

La rutina es la siguiente:

Código:
.align 2
.thumb

SHOWCOINS:
push {lr}
push {r0-r7}
mov r5, #0x0
mov r4, #0x0
ldr r0, UNKNOWN_DATA_0
ldr r1, SHOWCOINS_UNK_1
bl CALL_R1
lsl r0, r0, #0x10
lsr r0, r0, #0x10
cmp r0, #0x1
beq SHOWCOINS_RETURN
mov r1, r5
mov r2, r4
bl SECONDARY
b SHOWCOINS_RETURN

SHOWCOINS_RETURN:
pop {r0-r7}
pop {pc}



SECONDARY:
push {lr}
push {r0-r7}
add sp, #-0x20
mov r6, r0
mov r4, r1
mov r3, r2
lsl r4, r4, #0x18
lsl r3, r3, #0x18
mov r0, #0x80
lsl r0, r0, #0x11
add r4, r4, r0
lsr r4, r4, #0x18
add r3, r3, r0
lsr r3, r3, #0x18
mov r0, #0x8
str r0, [sp]
mov r0, #0x3
str r0, [sp, #0x4]
mov r0, #0xF
str r0, [sp, #0x8]
mov r0, #0x20
str r0, [sp, #0xC]
add r0, sp, #0x10
mov r1, #0x0
mov r2, r4
ldr r4, UNKNOWN_FUNCTION_0
bl CALL_R4
ldr r0, [sp, #0x10]
ldr r1, [sp, #0x14]
str r0, [sp, #0x18]
str r1, [sp, #0x1C]
ldr r4, UNKNOWN_DATA_1
add r0, sp, #0x18
ldr r5, UNKNOWN_FUNCTION_1
bl CALL_R5
strb r0, [r4]
ldrb r0, [r4]
mov r1, #0x0
ldr r2, UNKNOWN_FUNCTION_2
bl CALL_R2
ldrb r0, [r4]
ldr r5, UNKNOWN_FUNCTION_3
bl CALL_R5
ldrb r0, [r4]
ldr r5, UNKNOWN_DATA_2
mov r1, r5
mov r2, #0xD0
ldr r3, UNKNOWN_FUNCTION_4
bl CALL_R3
ldrb r0, [r4]
mov r1, #0x0
mov r2, r5
mov r3, #0xD
ldr r6, UNKNOWN_FUNCTION_5
bl CALL_R6
ldrb r0, [r4]
ldr r2, SCRIPT_BANK_0
ldr r2, [r2]
mov r3, #0x0
str r3, [sp]
mov r1, #0xFF
str r1, [sp, #0x4]
str r3, [sp, #0x8]
mov r1, #0x2
ldr r7, UNKNOWN_FUNCTION_6
bl CALL_R7
mov r0, r6
bl SECONDARY_LOAD_BODY
add sp, #0x20
pop {r0-r7}
pop {pc}



SECONDARY_LOAD_BODY:
push {lr}
push {r0-r7}
add sp, #-0xC
mov r1, r0
ldr r0, BUFFER_RAM_OFFSET
mov r2, #0x1
mov r3, #0x4
ldr r6, UNKNOWN_FUNCTION_7
bl CALL_R6
ldr r4, STRING_RAM_OFFSET
ldr r1, SCRIPT_BANK_1
ldr r1, [r1]
mov r0, r4
ldr r6, BODY_STRING_LOADER
bl CALL_R6
mov r0, #0x0
mov r1, r4
mov r2, #0x0
ldr r6, UNKNOWN_FUNCTION_8
bl CALL_R6
ldr r1, UNKNOWN_DATA_1
ldrb r1, [r1]
mov r3, #0x40
sub r3, r3, r0
lsl r3, r3, #0x18
lsr r3, r3, #0x18
mov r0, #0xC
str r0, [sp]
mov r0, #0x0
str r0, [sp, #0x4]
str r0, [sp, #0x8]
mov r0, r1
mov r1, #0x0
mov r2, r4
ldr r6, UNKNOWN_FUNCTION_6
bl CALL_R6
add sp, #0xC
pop {r0-r7}
pop {pc}

CALL_R1:
bx r1
bx lr

CALL_R2:
bx r2
bx lr

CALL_R3:
bx r3
bx lr

CALL_R4:
bx r4
bx lr

CALL_R5:
bx r5
bx lr

CALL_R6:
bx r6
bx lr

CALL_R7:
bx r7
bx lr

.align 2
SCRIPT_BANK_0:
.word 0x03000F14

SCRIPT_BANK_1:
.word 0x03000F18

UNKNOWN_DATA_0:
.word 0x0809D6D5

UNKNOWN_DATA_1:
.word 0x02039A28

UNKNOWN_DATA_2:
.word 0x0000021D

SHOWCOINS_UNK_1:
.word 0x081119D5

UNKNOWN_FUNCTION_0:
.word 0x0810FE51

UNKNOWN_FUNCTION_1:
.word 0x08003CE5

UNKNOWN_FUNCTION_2:
.word 0x0800445D

UNKNOWN_FUNCTION_3:
.word 0x08003FA1

UNKNOWN_FUNCTION_4:
.word 0x0814FF2D

UNKNOWN_FUNCTION_5:
.word 0x0810F2E9

UNKNOWN_FUNCTION_6:
.word 0x08002C49

UNKNOWN_FUNCTION_7:
.word 0x08008E79

UNKNOWN_FUNCTION_8:
.word 0x08005ED5

BUFFER_RAM_OFFSET:
.word 0x02021CD0

STRING_RAM_OFFSET:
.word 0x02021D18

BODY_STRING_LOADER:
.word 0x08008FCD
Aquí la tenéis directamente en hex para pegarla en el editor hexadecimal sin mayor problema:

Código:
00 B5 FF B4 00 25 00 24 4D 48 50 49 00 F0 85 F8 00 04 00 0C 01 28 04 D0 29 1C 22 1C 00 F0 03 F8 FF E7 FF BC 00 BD 00 B5 FF B4 88 B0 06 1C 0C 1C 13 1C 24 06 1B 06 80 20 40 04 24 18 24 0E 1B 18 1B 0E 08 20 00 90 03 20 01 90 0F 20 02 90 20 20 03 90 04 A8 00 21 22 1C 3D 4C 00 F0 64 F8 04 98 05 99 06 90 07 91 37 4C 06 A8 3A 4D 00 F0 5D F8 20 70 20 78 00 21 38 4A 00 F0 51 F8 20 78 37 4D 00 F0 53 F8 20 78 30 4D 29 1C D0 22 34 4B 00 F0 48 F8 20 78 00 21 2A 1C 0D 23 32 4E 00 F0 47 F8 20 78 25 4A 12 68 00 23 00 93 FF 21 01 91 02 93 02 21 2D 4F 00 F0 3D F8 30 1C 00 F0 03 F8 08 B0 FF BC 00 BD 00 B5 FF B4 83 B0 01 1C 29 48 01 22 04 23 26 4E 00 F0 2B F8 27 4C 18 49 09 68 20 1C 26 4E 00 F0 24 F8 00 20 21 1C 00 22 20 4E 00 F0 1E F8 14 49 09 78 40 23 1B 1A 1B 06 1B 0E 0C 20 00 90 00 20 01 90 02 90 08 1C 00 21 22 1C 16 4E 00 F0 0D F8 03 B0 FF BC 00 BD 08 47 70 47 10 47 70 47 18 47 70 47 20 47 70 47 28 47 70 47 30 47 70 47 38 47 70 47 C0 46 14 0F 00 03 18 0F 00 03 D5 D6 09 08 28 9A 03 02 1D 02 00 00 D5 19 11 08 51 FE 10 08 E5 3C 00 08 5D 44 00 08 A1 3F 00 08 2D FF 14 08 E9 F2 10 08 49 2C 00 08 79 8E 00 08 D5 5E 00 08 D0 1C 02 02 18 1D 02 02 CD 8F 00 08
Yo la he puesto en el 0x920000. Podéis cambiar la dirección, pero si vais a usar el script tal como está, es mejor que la peguéis en el mismo sitio para ahorrarse modificarlo. Pero como queráis.

De nuevo, créditos a DavidJCobb por la rutina.

El script

El script es casi el mismo que antes, pero se han implementado la caja para el banco y se ha quitado la cantidad que se mostraba en el textbox. A parte de añadir un par de cosas porque con la rutina daba error, pero está completamente adaptado.

Aquí tenéis el script:

Código:
#dynamic 0x800000

#org @comienzo
lock
faceplayer
msgbox @1 0x6
multichoice 0x11 0x0 0x6 0x1
compare LASTRESULT 0x0
if 0x1 goto @admin
compare LASTRESULT 0x1
if 0x1 goto @abrir
compare LASTRESULT 0x2
if 0x1 goto @salir2
release
end

#org @salir1
msgbox @2 0x6
hidecoins 0x0 0x0
hidemoney 0x0 0x5
release
end

#org @salir2
msgbox @2 0x6
release
end

#org @abrir
msgbox @4 0x6
pause 0x5
spriteface 0x4 0x4
pause 0x50
faceplayer
compare 0x7FF1 0x1
if 0x4 goto @yatiene
showmoney 0x0 0x0 0x0
msgbox @5 0x5
compare LASTRESULT 0x1
if 0x0 goto @noabrir
checkmoney 0x3E8 0x0
compare LASTRESULT 0x1
if 0x0 goto @nodinero
paymoney 0x3E8 0x0
setvar 0x7FF1 0x1
sound 0x15
updatemoney 0x0 0x0 0x0
msgbox @8 0x6
hidemoney 0x0 0x0
spriteface 0x4 0x4
pause 0x80
faceplayer
msgbox @9 0x5
compare LASTRESULT 0x1
if 0x1 goto @admin
msgbox @6 0x6
release
end

#org @yatiene
msgbox @3 0x6
multichoice 0x11 0x0 0x6 0x1
compare LASTRESULT 0x0
if 0x1 goto @admin
compare LASTRESULT 0x1
if 0x1 goto @abrir
compare LASTRESULT 0x3
if 0x1 goto @salir1
release
end

#org @noabrir
msgbox @6 0x6
hidemoney 0x0 0x0
release
end

#org @nodinero
msgbox @7 0x6
hidemoney 0x0 0x0
release
end


#org @admin
msgbox @4 0x6
pause 0x5
spriteface 0x4 0x4
pause 0x50
faceplayer
compare 0x7FF1 0x0
if 0x1 goto @nocuenta
compare 0x7FF0 0x0
if 0x1 goto @admin2
buffernumber 0x1 0x7FF1
buffernumber 0x2 0x7FF0
loadpointer 0x0 @head '"HEAD"
loadpointer 0x1 @body
callasm 0x8920001
msgbox @10 0x6
multichoice 0x14 0x0 0x7 0x1
compare LASTRESULT 0x0
if 0x1 goto @depositar
compare LASTRESULT 0x1
if 0x1 goto @retirar
compare LASTRESULT 0x2
if 0x1 goto @salir1
release
end

#org @admin2
buffernumber 0x1 0x7FF1
loadpointer 0x0 @head '"HEAD"
loadpointer 0x1 @body2
callasm 0x8920001
msgbox @10 0x6
multichoice 0x14 0x0 0x7 0x1
compare LASTRESULT 0x0
if 0x1 goto @depositar
compare LASTRESULT 0x1
if 0x1 goto @retirar
compare LASTRESULT 0x2
if 0x1 goto @salir1
release
end

#org @nocuenta
msgbox @17 0x6
multichoice 0x11 0x0 0x6 0x1
compare LASTRESULT 0x0
if 0x1 goto @admin
compare LASTRESULT 0x1
if 0x1 goto @abrir
compare LASTRESULT 0x3
if 0x1 goto @salir1
release
end

#org @depositar
showmoney 0x0 0x5 0x0
compare 0x7FF0 0x0
if 0x1 goto @depositar2
buffernumber 0x1 0x7FF1
buffernumber 0x2 0x7FF0
loadpointer 0x0 @head '"HEAD"
loadpointer 0x1 @body
callasm 0x8920001
msgbox @11 0x6
multichoice 0x14 0x0 0x11 0x1
compare LASTRESULT 0x0
if 0x1 goto @100
compare LASTRESULT 0x1
if 0x1 goto @1000
compare LASTRESULT 0x2
if 0x1 goto @10000
compare LASTRESULT 0x3
if 0x1 goto @100000
compare LASTRESULT 0x4
if 0x1 goto @admin
release
end

#org @depositar2
buffernumber 0x1 0x7FF1
loadpointer 0x0 @head '"HEAD"
loadpointer 0x1 @body2
callasm 0x8920001
msgbox @18 0x6
multichoice 0x14 0x0 0x11 0x1
compare LASTRESULT 0x0
if 0x1 goto @100
compare LASTRESULT 0x1
if 0x1 goto @1000
compare LASTRESULT 0x2
if 0x1 goto @10000
compare LASTRESULT 0x3
if 0x1 goto @100000
compare LASTRESULT 0x4
if 0x1 goto @admin
release
end

#org @100000
compare 0x7FF1 0x384
if 0x4 goto @cuentallena
checkmoney 0x186A0 0x0
compare LASTRESULT 0x1
if 0x0 goto @nodinero2
paymoney 0x186A0 0x0
sound 0x15
updatemoney 0x0 0x5 0x0
addvar 0x7FF1 0x64
goto @depositar
release
end

#org @10000
compare 0x7FF1 0x3DE
if 0x4 goto @cuentallena
checkmoney 0x2710 0x0
compare LASTRESULT 0x1
if 0x0 goto @nodinero2
paymoney 0x2710 0x0
sound 0x15
updatemoney 0x0 0x5 0x0
addvar 0x7FF1 0xA
goto @depositar
release
end

#org @1000
compare 0x7FF1 0x3E7
if 0x1 goto @cuentallena
checkmoney 0x3E8 0x0
compare LASTRESULT 0x1
if 0x0 goto @nodinero2
paymoney 0x3E8 0x0
sound 0x15
updatemoney 0x0 0x5 0x0
addvar 0x7FF1 0x1
goto @depositar
release
end

#org @100
compare 0x7FF0 0x384
if 0x4 call [MENTION=24474]Comp[/MENTION]1
checkmoney 0x64 0x0
compare LASTRESULT 0x1
if 0x0 goto @nodinero2
paymoney 0x64 0x0
sound 0x15
updatemoney 0x0 0x5 0x0
addvar 0x7FF0 0x64
compare 0x7FF0 0x3E7
if 0x3 goto @depositar
subvar 0x7FF0 0x3E8
addvar 0x7FF1 0x1
goto @depositar
release
end

#org [MENTION=24474]Comp[/MENTION]1
compare 0x7FF1 0x3E7
if 0x1 goto @cuentallena
return

#org @cuentallena
msgbox @13 0x6
hidemoney 0x0 0x5
goto @depositar
end

#org @nodinero2
msgbox @12 0x6
goto @depositar
end



#org @retirar
showmoney 0x0 0x5 0x0
compare 0x7FF0 0x0
if 0x1 goto @retirar2
buffernumber 0x1 0x7FF1
buffernumber 0x2 0x7FF0
loadpointer 0x0 @head '"HEAD"
loadpointer 0x1 @body
callasm 0x8920001
msgbox @14 0x6
multichoice 0x14 0x0 0x11 0x1
compare LASTRESULT 0x0
if 0x1 goto @101
compare LASTRESULT 0x1
if 0x1 goto @1001
compare LASTRESULT 0x2
if 0x1 goto @10001
compare LASTRESULT 0x3
if 0x1 goto @100001
compare LASTRESULT 0x4
if 0x1 goto @admin
release
end

#org @retirar2
buffernumber 0x1 0x7FF1
loadpointer 0x0 @head '"HEAD"
loadpointer 0x1 @body2
callasm 0x8920001
msgbox @19 0x6
multichoice 0x14 0x0 0x11 0x1
compare LASTRESULT 0x0
if 0x1 goto @101
compare LASTRESULT 0x1
if 0x1 goto @1001
compare LASTRESULT 0x2
if 0x1 goto @10001
compare LASTRESULT 0x3
if 0x1 goto @100001
compare LASTRESULT 0x4
if 0x1 goto @admin
release
end

#org @100001
compare 0x7FF1 0x64
if 0x3 goto @cuentavacia
checkmoney 0xDBB9F 0x0
compare LASTRESULT 0x1
if 0x4 goto @muchodinero
givemoney 0x186A0 0x0
sound 0x15
updatemoney 0x0 0x5 0x0
subvar 0x7FF1 0x64
goto @retirar
release
end

#org @10001
compare 0x7FF1 0xA
if 0x3 goto @cuentavacia
checkmoney 0xF1B2F 0x0
compare LASTRESULT 0x1
if 0x4 goto @muchodinero
givemoney 0x2710 0x0
sound 0x15
updatemoney 0x0 0x5 0x0
subvar 0x7FF1 0xA
goto @retirar
release
end

#org @1001
compare 0x7FF1 0x1
if 0x3 goto @cuentavacia
checkmoney 0xF3E57 0x0
compare LASTRESULT 0x1
if 0x4 goto @muchodinero
givemoney 0x3E8 0x0
sound 0x15
updatemoney 0x0 0x5 0x0
subvar 0x7FF1 0x1
goto @retirar
release
end

#org @101
compare 0x7FF0 0x63
if 0x3 call [MENTION=24474]Comp[/MENTION]2
checkmoney 0xF41Db 0x0
compare LASTRESULT 0x1
if 0x4 goto @muchodinero
givemoney 0x64 0x0
sound 0x15
updatemoney 0x0 0x5 0x0

compare 0x7FF0 0x63
if 0x3 goto @1012
subvar 0x7FF0 0x64
goto @retirar
release
end

#org @1012
addvar 0x7FF0 0x384
subvar 0x7FF1 0x1
goto @retirar
release
end

#org [MENTION=24474]Comp[/MENTION]2
compare 0x7FF1 0x1
if 0x1 goto @cuentavacia
return

#org @cuentavacia
msgbox @15 0x6
hidemoney 0x0 0x5
goto @retirar
end

#org @muchodinero
msgbox @16 0x6
goto @retirar
end

#org @1
= Buenos días, señor.\nBienvenido al Banco de Kanto.\p¿Qué desea hacer?

#org @2
= Vuelva siempre que quiera.\p¡Que tenga un buen día!

#org @3
= Lo siento mucho, señor, pero usted\nya tiene una cuenta.\lNo puede abrir más.\p¿Desea hacer algo?

#org @4
= Muy bien. Espere un momento.

#org @5
= Bien, para abrir una cuenta debe\ningresar una cantidad inicial de\l[$]1.000 ¿Está de acuerdo?

#org @6
= Como desee. Vuelva siempre que\nquiera.\p¡Que tenga un buen día!

#org @7
= Lo siento, señor, pero no tiene\nsuficiente dunero para abrir una\lcuenta.\p¡Que tenga un buen día!

#org @8
= Muy bien, abriremos su cuenta.\nEspere un momento.

#org @9
= Felicidades, señor, ya posee usted\nuna cuenta en nuestro banco.\p¿Desea administrarla?

#org @10
= ¿Qué movimiento desea realizar?

#org @11
= ¿Desea depositar algo?

#org @12
= No tiene suficiente dinero.

#org @13
= No hay espacio en la cuenta para\ndepositar esa cantidad.\pEl máximo para este tipo de\ncuentas es de [$]999.999.

#org @14
= ¿Desea retirar algo?

#org @15
= No puede quedar la cuenta con\nmenos de [$]1.000.

#org @16
= No puede retirar esa cantidad.\nLlevaría demasiado dinero encima.

#org @17
= No tienes una cuenta abierta, no\npuedes administrarla.\p¿Desea hacer algo?

#org @18
= ¿Desea depositar algo?

#org @19
= ¿Desea retirar algo?

#org @head
= BANK

#org @body
= [$][buffer2][buffer3]

#org @body2
= [$][buffer2]000
Pues nada, eso es todo. Cualquier sugerencia estaré encantado de escucharla.
 

BLAx501!

A veces comento en temas :3
Miembro de honor
Usuario de Platino
Respuesta: Bank System Script by Javi4315

Ha quedado genial, justo como me imaginaba :)
 

Sayer301!

UnityLord!
Miembro de honor
Respuesta: Bank System Script by Javi4315

Si, la verdad es que ha quedado completamente genial.

Lo único que no me convence del todo, es que la gracia del asunto es que era sin usar ASM, usando los recursos existentes y con mucho flow XD, pero el asunto en general me mola, he de agradecerte que la rutina este en hex, no estoy muy seguro de si se compilar una estructura de ASM XDDD. Bueno, nada mas que eres un genius y que ojala sigas pensando mas cosas como esta o como el otro nuevo tuto que voy a comentar ahora mismo! Un saludo!

PD: Te añado una sugerencia, que no se si se podrá hacer o como, pero ahi te la dejo.

Molaría mucho meterle un tipo de interés o algo así que te diese beneficios, como que aumente un 1% cada hora de juego que pase y tengas dinero en esa cuenta, no se como explicartelo pero me imagino que me entiendes, asi que eso XDD
 

Javi4315

Babyface
Miembro de honor
Respuesta: Bank System Script by Javi4315

Si, la verdad es que ha quedado completamente genial.

Lo único que no me convence del todo, es que la gracia del asunto es que era sin usar ASM, usando los recursos existentes y con mucho flow XD, pero el asunto en general me mola, he de agradecerte que la rutina este en hex, no estoy muy seguro de si se compilar una estructura de ASM XDDD. Bueno, nada mas que eres un genius y que ojala sigas pensando mas cosas como esta o como el otro nuevo tuto que voy a comentar ahora mismo! Un saludo!

PD: Te añado una sugerencia, que no se si se podrá hacer o como, pero ahi te la dejo.

Molaría mucho meterle un tipo de interés o algo así que te diese beneficios, como que aumente un 1% cada hora de juego que pase y tengas dinero en esa cuenta, no se como explicartelo pero me imagino que me entiendes, asi que eso XDD
Bueno, el script en sí es sin ASM. La versión 1.0 es sólo con scripts. Lo de la versión 1.1 con la rutina es sólo para añadir la caja si alguien quiere que quede más profesional. Pero lo que es el banco en sí, se hace completamente sin ASM.

Sobre la sugerencia. Se puede hacer, de hecho lo pensé y tengo el script completamente ideado. Sería un simple script de nivel del tipo 03 en el banco (bueno, simple en cierto modo xD). En Ruby sería muy fácil hacerlo, la verdad, pero en fire red, el offset donde se guarda el tiempo jugado en la ram es dinámico, es decir, cambia constantemente, por lo que es difícil leer esa información. O al menos eso creo. Pero seguiré mirándolo.
 

H.B.P

Emperador Kaktiácero
Miembro de honor
Respuesta: Bank System Script by Javi4315

Un +Gracias por esta fenomenal aportación, además con dos opciones a elegir: ASM o no-ASM.
 

legario

Leyenda de WaH
Respuesta: GBA | Scripting | Bank System Script by Javi4315

Cuando pago para abrir una cuenta y quiero administrarla me dice que no tengo cuenta creada, pero se ha comido mi dinero.
 

Javi4315

Babyface
Miembro de honor
Respuesta: GBA | Scripting | Bank System Script by Javi4315

Cuando pago para abrir una cuenta y quiero administrarla me dice que no tengo cuenta creada, pero se ha comido mi dinero.
¿Has puesto el script tal cuál está o lo has cambiado? Si le has cambiado algo, ponlo a ver.
 

legario

Leyenda de WaH
Respuesta: GBA | Scripting | Bank System Script by Javi4315

Javi4315♪;245569 dijo:
¿Has puesto el script tal cuál está o lo has cambiado? Si le has cambiado algo, ponlo a ver.
En el primero me dice que no encuentra las direcciones #org/#seek (modificando en lo que sería poniéndole el Dynamic). También quitando los '=> me dice el mismo error.
Y en el 1.1 modifico los @Comp1 porque salen en mención y entra bien. Pero cuando hablo con el mini que tiene el evento, me sale todo en ingles pero supongo que sera porque necesito configurar con tu programa y cuando le doy a Pack Up que sería crear cuenta, me cobra los 1.000, pero cuando me pregunta ¿quieres administrar la cuenta?, le doy a si y me dice que no tengo cuenta creada. Si le doy a no y luego en el menú del evento le doy a administrar me dice lo mismo. También sale la opción de registre pero cuando el doy no pasa nada y se cierra el evento.
 

Dani_SR_17

¡Pokémon LionHeart!
Respuesta: GBA | Scripting | Bank System Script by Javi4315

No entiendo como no he comentado aquí antes. Un gran script, la verdad, ingenioso y útil a su vez. Combinado con sencillez, simplemente inmejorable.

El extra ese del ASM genial la verdad, se hacen cosas increíbles con ASM o_O
 

Saisar

Hago lo que puedo para ayudar a los demás ;)
Respuesta: GBA | Scripting | Bank System Script by Javi4315

Porque me sale en seleccionar movimiento y que quiero hacer me dice HALL OF FAME Y EGG
 

JorgeLaxe

Noob del ROMhacking y aficionado al RPGMaking
Respuesta: GBA | Scripting | Bank System Script by Javi4315

Funciona genial y es muy útil para hacer un hackrom con entrenadores muy fuertes :0
 

Omega Zero

ahora si le di a guardar contraseña
Respuesta: GBA | Scripting | Bank System Script by Javi4315

Wow! Tremendo script, lo voy a usar en mi hack. Claro dandote créditos.11/10
 

MichaKing

Grafista avanzado
Respuesta: GBA | Scripting | Bank System Script by Javi4315

¿Como es posible que no había visto esto? El script esta sencillamente genial, si lo llego a agregar (Que es BASTANTE probable) me aseguraré de que cumpla una función importante. Se agradecen este tipo de aportes, y más si tenemos para elegir entre Rutina y Script; es bastante curiosa la función que hace, porque sencillamente queda genial para implementar en cualquier hack.

-¡Muchisimas Gracias Bro! :D
 
Arriba