scripts_n_asm
Thread Id: 27258
Thread Name: GBA | Scripting | Sumar y Multiplicar 2 Variables
#0
Dani_SR_17 28493


Sumar y Multiplicar 2 Variables



Hola a todos (Otra vez), hoy traigo un sencillo (Siempre son sencillos :D ) script, que permite sumar y multiplicar 2 variables.

Algo muy básico y útil para lo que no existen comandos ¿:.

Bueno, al turrón, aquí tenéis unas ScreenShots para que veáis que no miento (Los Tiles son de Zein)





Aquí tenéis los Scripts listos para descargar:

Suma de 2 variables
Multiplicación de 2 Variables




Y aquí tenéis los Scripts:


Suma de 2 Variables

#dynamic 0x800000

#org @start
setvar 0x40FF 0x2 'Nº para sumar 1
buffernumber 0x0 0x40FF
setvar 0x40FE 0x4 'Nº para sumar 2
buffernumber 0x1 0x40FE
goto @Paso0

'-------------------------------------------------------------------

#org @Paso0 'Compruebo si la 1º var es 0.
compare 0x40FF 0x0
if 0x1 goto @Sumado2 'Es 0, luego el resultado es la 2º variable
if 0x2 goto @Paso1 'No es 0, vamos a la 2º comprobación

#org @Paso1
compare 0x40FE 0x0
if 0x1 goto @Sumado 'Es 0, luego el resultado es la 1º variable
if 0x2 goto @Suma1yResta1 'No es 0, vamos a sumar

#org @Suma1yResta1 'Suma 1 a la 1º y resta 1 a la 2º
addvar 0x40FF 0x1
subvar 0x40FE 0x1
goto @Paso1 'Vuelve a comprobar si la 2º es 0


'-------------------------------------------------------------------


#org @Sumado 'Script acabado solución en la 1º var
buffernumber 0x2 0x40FF
msgbox @LaSumaEs 0x6
end

#org @Sumado2 'Script acabado solución en la 2º var
buffernumber 0x2 0x40FE
msgbox @LaSumaEs 0x6
end


'-------------------------------------------------------------------


#org @LaSumaEs
= La suma de:\n y \les


Multiplicación de 2 Variables

#dynamic 0x800000

'Antes de nada, recuerdo que multiplicar 2 por 3, es sumar 3 veces 2.

#org @start
setvar 0x40FF 0x2 'Nº para multiplicar 1
buffernumber 0x0 0x40FF
setvar 0x40FE 0x4 'Nº para multiplicar 2
buffernumber 0x1 0x40FE
goto @AMultiplicar

'-------------------------------------------------------------------

#org @AMultiplicar
copyvar 0x40FD 0x40FF 'Copias la variable principal, luego usaras esta como "pivote"
goto @Paso0

#org @Paso0
compare 0x40FE 0x0
if 0x1 goto @EsCero
if 0x2 goto @Paso1

#org @Paso1 'Segunda comprobación
compare 0x40FE 0x1
if 0x1 goto @Fin 'Es 1, luego da lo mismo
if 0x2 goto @Paso2 'Ninguno de los casos anteriores, empieza el script

'-------------------------------------------------------------------

#org @Paso2 'El paso principal del script
copyvar 0x40FC 0x40FD 'Como vamos a modificar 40FF y otra variable más, guardamos el valor original de 40FF en 40FD y usamos 40FC
goto @Paso2-1

#org @Paso2-1
compare 0x40FC 0x0 'Vemos si 40FC es 0
if 0x1 goto @Paso2-2 'Si es 0, ya esta
if 0x2 goto @Suma1yResta1 'Si no, se suma y resta 1

#org @Suma1yResta1
addvar 0x40FF 0x1
subvar 0x40FC 0x1
goto @Paso2-1 'Volvemos al inicio

#org @Paso2-2
subvar 0x40FE 0x1 'Disminuimos en 1 la variabble 0x40FE
compare 0x40FE 0x1
if 0x1 goto @Fin 'Ya esta multiplicado
if 0x2 goto @Paso2 'Vuelve al Paso 2, pero ahora 40FE vale 1 menos


'-------------------------------------------------------------------


#org @Fin 'El resultado es el valor de la 1º variable
buffernumber 0x2 0x40FF
msgbox @LaMultiplicaciónEs 0x6
end

#org @Fin2 'El resultado es el valor de la 2º variable
buffernumber 0x2 0x40FE
msgbox @LaMultiplicaciónEs 0x6
end

#org @EsCero 'Si alguno es 0
setvar 0x40FF 0x0
buffernumber 0x2 0x40FF
msgbox @LaMultiplicaciónEs 0x6
end

'-------------------------------------------------------------------

#org @LaMultiplicaciónEs
= La multiplicación de:\n y \les



Espero que os guste y os sirva :rolleyes:


Agradecimientos a [MENTION=26309]Sayer301[/MENTION], que le doy la lata muchos días con el tema de los scripts :shy:
#1
Decidme_un_nick_4315♪Kuchiki 28197
Pero tío, de donde sacas esas cosas!!!???
Jajajajaj, es increíble, de verdad, esto ya me ha sorprendido muchísimo!!
Muchas gracias! :D
Salu2!

EDIT: Erm... lo acabo de probar y... está muy bien y tal, pero si alguien lo juega pensará que es un texto normal en el que diga eso... Y sí, he probado también con 8+5, y me ha dado 13, pero al jugarlo parece que se ha puesto un texto normal...
EDIT2XD: Aunque si lo usamos con otras cosas si que puede dar buen resultado... ^^
EDIT3XD: Retiro lo dicho, sigue pareciendo un textbox normal :/
#2
BLAx/Atlas 26580
Hmm, así que utilizando recursividad eeh?? xD

Me gusta bastante la idea y para quien no quiera utilizar el parche de JPAN es muy util. JPAN lo incluyó, además con la función de restar y dividir si no me equivoco, pero vamos, que es algo bastante eficaz.

Buen trabajo :)
#3
Brock 25910
Otro scripter brillante en formacion...

Yo la lo dije por skype, sera muy util y estas mejorando muchiiisimo, enserio, molas 1000

Y nada, esta bastante bien todo, creo que llegaras muy lejos en este mundillo
#4
RedMort 26611
Hace un tiempo puse una duda relacionada a este tema, sabía que los buffers almacenaban información, pero no sabía cómo y me daba "miedo" tocarlos.
Ahora lo he entendido, y más que un aporte de scripts me ha servido como tutorial.
Que sepas que has ayudado un montonazo a mi hack con esto, en una parte muy importante de él.

Gran trabajo, y espero que sigas así :)
#5
Dani_SR_17 28493
Iniciado por RedMort
Hace un tiempo puse una duda relacionada a este tema, sabía que los buffers almacenaban información, pero no sabía cómo y me daba "miedo" tocarlos.
Ahora lo he entendido, y más que un aporte de scripts me ha servido como tutorial.
Que sepas que has ayudado un montonazo a mi hack con esto, en una parte muy importante de él.

Gran trabajo, y espero que sigas así :)


Me alegro de que te sirva :D

Lo pongo en scripts, porque el primero lo puse en tutoriales y me lo movieron, pero vaya, que pueden servir para las dos cosas, por si te sirve en breve voy a sacar uno de restar y dividir.