27258-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: