Registrarse

[Script] GBA | Scripting | Restar y Dividir 2 Variables

Dani_SR_17

¡Pokémon LionHeart!

Restar y Dividir 2 Variables



Saludos usuarios de Wah, después de un tiempo sin hacer ningún script, traigo uno que prometí hace tiempo.
El script en cuestión es complejo, solo usa algo de bucles y poco más.

Es para algo muy básico y útil para lo que no existen comandos ¿:.
Restar y dividir variables, muchos diréis, ¿y yo para que quiero restar y dividir variables?
Pues bueno, ahí es donde la imaginación entra en juego, con eso podéis hacer minijuegos que requiera el uso de estás operaciones y tal, o algún sistema que lo requiera, etc...


Bueno, al turrón, aquí tenéis unas Scans para que veáis que no miento:




Aquí tenéis los Scripts listos para descargar:



Y aquí tenéis los Scripts:


Resta de 2 Variables

Código:
#dynamic 0x800000

#org @start
setvar 0x40FF 0x4 'Nº al que se le resta 2
buffernumber 0x0 0x40FF
setvar 0x40FE 0x2 'Nº para restar a 1
buffernumber 0x1 0x40FE
goto @Paso0

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

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

#org @Paso1
compare 0x40FE 0x0
if 0x1 goto @Restado 'Ya esta restado.
if 0x2 goto @Resta1 'No es 0, vamos a sumar

#org @Resta1 'Resta 1 a la 1º y resta 1 a la 2º
subvar 0x40FF 0x1
subvar 0x40FE 0x1
goto @Paso0 'Vuelve a comprobar


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


#org @Restado 'Script acabado solución en la 2º var
buffernumber 0x2 0x40FF
msgbox @LaRestaEs 0x6
end


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


#org @LaRestaEs
= El resultado de restarle\n[buffer2] a [buffer1]\les [buffer3]

División de 2 Variables

Código:
#dynamic 0x800000

#org @start
setvar 0x40FF 0x5 'Dividendo
buffernumber 0x0 0x40FF
setvar 0x40FE 0x2 'Divisor
buffernumber 0x1 0x40FE
setvar 0x40FD 0x0 'Cociente
setvar 0x40FC 0x0 'Resto
goto @Paso0

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

#org @Paso0 'Compruebo si el divisor es 0.
compare 0x40FE 0x0
if 0x1 goto @NoPuedoDividir 'Si el divisor es 0.
if 0x2 goto @Paso1 'No es 0, vamos a la 2º comprobación.

#org @Paso1
compare 0x40FF 0x0
if 0x1 goto @Dividido 'El resultado es 0.
if 0x2 goto @Dividamos 'No es 0, vamos a dividir

#org @Dividamos
comparevars 0x40FF 0x40FE 'Si el divisor es mas grande que el dividendo, ya está listo.
if 0x0 goto @Dividido
copyvar 0x40FB 0x40FE 'Usemos una variable para "dividir".
addvar 0x40FD 0x1 'El cociente se incrementa en 1.
goto @Dividiendo1


#org @Dividiendo0
compare 0x40FB 0x0 'Si ya he dividido 1 vez entre el nº.
if 0x1 goto @Paso1
goto @Dividiendo1

#org @Dividiendo1 'Le restamos 1 la variable dinámica para dividir, y al dividendo.
subvar 0x40FF 0x1
subvar 0x40FB 0x1
goto @Dividiendo0 'Vuelve a comprobar


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

#org @Dividido 'Script acabado
copyvar 0x40FC 0x40FF 'Este es el resto
msgbox @LaDivisionEs1 0x6
buffernumber 0x0 0x40FD
buffernumber 0x1 0x40FC
msgbox @LaDivisionEs2 0x6
end

#org @NoPuedoDividir
msgbox @NoDivisible 0x6


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

#org @NoDivisible
= No Puedes dividir por 0.

#org @LaDivisionEs1
= El resultado de dividir:\n[buffer1] entre [buffer2], es:

#org @LaDivisionEs2
= Cociente: [buffer1]\nResto: [buffer2]


Espero que os guste y os sirva :rolleyes:
 
Arriba