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