Dani_SR_17
¡Pokémon LionHeart!
Sumar y Multiplicar 2 Variables
Hola a todos (Otra vez), hoy traigo un sencillo (Siempre son sencillos ) 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:
Y aquí tenéis los Scripts:
Suma de 2 Variables
Código:
#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[buffer1] y [buffer2]\les [buffer3]
Multiplicación de 2 Variables
Código:
#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[buffer1] y [buffer2]\les [buffer3]
Espero que os guste y os sirva
Agradecimientos a @Sayer301, que le doy la lata muchos días con el tema de los scripts :shy: