Adke
weeeh
Este es el primer script que posteo en el foro así que no seáis muy duros conmigo xD (crítica constructiva o como se diga)
El script trata de jugar a los Dados y obviamente lo ideal sería que estuviera en el casino.
Tengo que dar gracias a Dani_SR_17 por su tutorial/script de sumar y multiplicar variables: http://whackahack.com/foro/t-27258/gba-scripting-sumar-multiplicar-2-variables
Y dicho esto aquí hay una demostración de como funciona el script:
Este es de la versión mejorada:
Y aquí el script como se vería en XSE:
El script es bastante simple, solo hay que comprender las variables y poco más. Si no se entiende algo no dudéis en decírmelo y edito lo que haga falta
Bueno, espero que os haya gustado y si alguien quiere usarlo adelante :blush:
PD: Los tiles de las flores y los demás minis aparte del prota tengo que cambiarlos todavía. Los pocos tiles que se ven, ¿qué os parecen?
EDIT: El script ahora tiene opción de elegir el nº y paga más o menos según el nº que hayas elegido (siempre y cuando ganes )
El script trata de jugar a los Dados y obviamente lo ideal sería que estuviera en el casino.
Tengo que dar gracias a Dani_SR_17 por su tutorial/script de sumar y multiplicar variables: http://whackahack.com/foro/t-27258/gba-scripting-sumar-multiplicar-2-variables
Y dicho esto aquí hay una demostración de como funciona el script:
Este es de la versión mejorada:
Y aquí el script como se vería en XSE:
Código:
#dynamic 0x800000
#org @start
lock
faceplayer
msgbox @yesno 0x5 'te pregunta si quieres jugar
compare LASTRESULT 0x1
if 0x0 goto @no
if 0x1 goto @yes
#org @no
hidemoney 0x0 0x0 'esconde la caja del dinero (*tiene sentido luego)
msgbox @nope 0x6
release
end
#org @nohaypasta
hidemoney 0x0 0x0 'lo mismo de antes
msgbox @pobre 0x6
release
end
#org @yes
showmoney 0x0 0x0 0x0 'muestra la caja con el dinero del jugador
msgbox @juega 0x5 'te pregunta si quieres apostar
compare LASTRESULT 0x1
if 0x1 goto @empezamos
if 0x0 goto @no '*aquí es donde entra el hidemoney, ya que ahora mismo la caja del dinero está abierta y si hubiera un simple release end quedaría raro y podría dar algún error
#org @empezamos
checkmoney 0x7D0 0x0 'comprueba si tienes el dinero suficiente, en este caso 2000 (7D0 en hexadecimal)
compare LASTRESULT 0x1
if 0x0 goto @nohaypasta 'si no tienes dinero te lleva a @nohaypasta
paymoney 0x7D0 0x0 'pagas
updatemoney 0x0 0x0 0x0 'actualiza la caja de dinero
sound 0x48
pause 0x20
hidemoney 0x0 0x0 'esconde la caja de dinero
goto @choice1 'te lleva a la selección de número
#org @choice1
multichoice 0x0 0x0 0x8 0x1 'abre la caja de multichoice (en mi caso es la 8 ya que ahí es donde puse las opciones)
compare LASTRESULT 0x0 'si eliges la primera opción te lleva a @2
if 0x1 goto @2
compare LASTRESULT 0x1 'igual que antes
if 0x1 goto @3
compare LASTRESULT 0x2
if 0x1 goto @4
compare LASTRESULT 0x3
if 0x1 goto @5
compare LASTRESULT 0x4
if 0x1 goto @6
compare LASTRESULT 0x5 'si esta opción te lleva al multichoice 2)
if 0x1 goto @choice2
#org @choice2
multichoice 0x0 0x0 0x9 0x1 'otro multichoice
compare LASTRESULT 0x0 'lo mismo de antes
if 0x1 goto @7
compare LASTRESULT 0x1
if 0x1 goto @8
compare LASTRESULT 0x2
if 0x1 goto @9
compare LASTRESULT 0x3
if 0x1 goto @10
compare LASTRESULT 0x4
if 0x1 goto @11
compare LASTRESULT 0x5
if 0x1 goto @12
compare LASTRESULT 0x6
if 0x1 goto @choice1
#org @2
setvar 0x4060 0x2 'da el valor 2 a la variable 4060 (la variable se puede cambiar y elegir la que quieras pero si cambias la 4060 cámbialo en todos los sitios que salga para que no haya errores)
buffernumber 0x0 0x4060 'copia le valor de la variable 4060 en buffer1
msgbox @tunumero 0x6
goto @dados
#org @3
setvar 0x4060 0x3
buffernumber 0x0 0x4060
msgbox @tunumero 0x6
goto @dados
#org @4
setvar 0x4060 0x4
buffernumber 0x0 0x4060
msgbox @tunumero 0x6
goto @dados
#org @5
setvar 0x4060 0x5
buffernumber 0x0 0x4060
msgbox @tunumero 0x6
goto @dados
#org @6
setvar 0x4060 0x6
buffernumber 0x0 0x4060
msgbox @tunumero 0x6
goto @dados
#org @7
setvar 0x4060 0x7
buffernumber 0x0 0x4060
msgbox @tunumero 0x6
goto @dados
#org @8
setvar 0x4060 0x8
buffernumber 0x0 0x4060
msgbox @tunumero 0x6
goto @dados
#org @9
setvar 0x4060 0x9
buffernumber 0x0 0x4060
msgbox @tunumero 0x6
goto @dados
#org @10
setvar 0x4060 0xA
buffernumber 0x0 0x4060
msgbox @tunumero 0x6
goto @dados
#org @11
setvar 0x4060 0xB
buffernumber 0x0 0x4060
msgbox @tunumero 0x6
goto @dados
#org @12
setvar 0x4060 0xC
buffernumber 0x0 0x4060
msgbox @tunumero 0x6
goto @dados
#org @dados
random 0x7 'genera un número aleatorio del 0 al 7. ¿Porqué 7 y no 6? Si en los dados no se puede sacar 7 -> **ahora se explica
copyvar 0x4061 LASTRESULT 'copia la variable LASTRESULT (en este caso el número aleatorio) en la variable 4061
compare 0x4061 0x0 'compara si el valor de la variable 4061 es 0 y si lo es te lleva otra vez a calcular un número aleatorio **aquí viene el porqué de 7, no puede darte como resultado 0 así que si da 0 te lleva otra vez a calcular el nº hasta que de un valor distinto de 0
if 0x1 goto @dados
goto @var2
#org @var2
random 0x7
copyvar 0x4062 LASTRESULT
compare 0x4062 0x0
if 0x1 goto @var2
goto @suma 'te lleva a la serie de comandos para sumar las dos variables. No lo voy a explicar porque ya está muy bien explicado en el tuto de Dani
#org @suma
compare 0x4061 0x0
if 0x1 goto @sumado2
if 0x2 goto @paso1
#org @paso1
compare 0x4062 0x0
if 0x1 goto @sumado
if 0x2 goto @sumayresta
#org @sumayresta
addvar 0x4061 0x1
subvar 0x4062 0x1
goto @paso1
#org @sumado
copyvar 0x4063 0x4061
goto [MENTION=24474]Comp[/MENTION]ara
#org @sumado2
copyvar 0x4063 0x4062
goto [MENTION=24474]Comp[/MENTION]ara
#org [MENTION=24474]Comp[/MENTION]ara
buffernumber 0x1 0x4063 'copia la variable 4063 (la suma de los números de los dados) en buffer2
special 0x140 'es imprescindible para que el showpokepic funcione bien
showpokepic 0xFC 0x14 0x24'muestra la imagen de los dados
hidebox 0x0 0x0 0x1D 0x1D
msgbox @vamosaver 0x6
hidepokepic
msgbox @resultado 0x6
comparevars 0x4060 0x4063 'compara las variables 4060 (tu número) y 4063 (el resultado)
if 0x1 goto @ganas 'si coincide te lleva al puntero @ganas
if 0x5 goto @pierdes 'si no coincide vas a @pierdes //es importante que sea if 0x5 y no 0x0 ya que para comprobar si dos variables son distintas se usa 0x5. 0x0, 0x2, 0x3 y 0x4 se usan para otras cosas como para comprobar si una es mayor o menor que la otra
#org @ganas
compare 0x4060 0x2 'compara si el valor de la variable 4060 es 2, si lo es te lleva a @pagax4
if 0x1 goto @pagax4
compare 0x4060 0x3 'igual pero con el valor 3 y el puntero @pagax25 (pone 25 pero es 2'5 xD)
if 0x1 goto @pagax25
compare 0x4060 0x4
if 0x1 goto @pagax25
compare 0x4060 0x5
if 0x1 goto @pagax2
compare 0x4060 0x6
if 0x1 goto @pagax2
compare 0x4060 0x7
if 0x1 goto @pagax15
compare 0x4060 0x8
if 0x1 goto @pagax2
compare 0x4060 0x9
if 0x1 goto @pagax2
compare 0x4060 0xA
if 0x1 goto @pagax25
compare 0x4060 0xB
if 0x1 goto @pagax25
compare 0x4060 0xC
if 0x1 goto @pagax4
msgbox @otra 0x5
compare LASTRESULT 0x1
if 0x1 goto @yes
if 0x0 goto @no
#org @pagax15
fanfare 0xE 'musiquita
showmoney 0x0 0x0 0x0
msgbox [MENTION=19146]Win[/MENTION] 0x6
givemoney 0xBB8 0x0 'te da dinero. En este caso como se paga x1'5, te da 3000 (BB8 en hexadecimal)
updatemoney 0x0 0x0 0x0
sound 0x48
pause 0x20
hidemoney 0x0 0x0
return
#org @pagax4
fanfare 0xE
showmoney 0x0 0x0 0x0
msgbox [MENTION=19146]Win[/MENTION] 0x6
givemoney 0x1F40 0x0
updatemoney 0x0 0x0 0x0
sound 0x48
pause 0x20
hidemoney 0x0 0x0
return
#org @pagax25
fanfare 0xE
showmoney 0x0 0x0 0x0
msgbox [MENTION=19146]Win[/MENTION] 0x6
givemoney 0x1388 0x0
updatemoney 0x0 0x0 0x0
sound 0x48
pause 0x20
hidemoney 0x0 0x0
return
#org @pagax2
fanfare 0xE
showmoney 0x0 0x0 0x0
msgbox [MENTION=19146]Win[/MENTION] 0x6
givemoney 0xFA0 0x0
updatemoney 0x0 0x0 0x0
sound 0x48
pause 0x20
hidemoney 0x0 0x0
return
#org @pierdes
sound 0x7 'sonidito (yo puse el de cuando te chocas con algo)
msgbox @lose 0x5
compare LASTRESULT 0x1
if 0x1 goto @yes
if 0x0 goto @no
'------------------------- los textos (en inglés porque el hack será en inglés)
#org @yesno
= Hello! Welcome to the Casino!\nDo you want to play dices?
#org @nope
= No? Okay, come soon!
#org @pobre
= I'm afraid you don't have money\nenough to play.
#org @juega
= You have to pay 2000 to play.\nIf you win you will receive the\ldouble you paid.\lDo you want to try?
#org @tunumero
= Here you are, your number is [buffer1]
#org @resultado
= The number is [buffer2] and your number\nis [buffer1]
#org [MENTION=19146]Win[/MENTION]
= Damn! He won...\nEhem, congratulations! Here is\lyour money.
#org @otra
= Do you want to try again?
#org @lose
= I'm sorry! You lost.\nDo you want to try again? Maybe\lyou are lucky this time
#org @vamosaver
= Hmm... Let's see
Bueno, espero que os haya gustado y si alguien quiere usarlo adelante :blush:
PD: Los tiles de las flores y los demás minis aparte del prota tengo que cambiarlos todavía. Los pocos tiles que se ven, ¿qué os parecen?
EDIT: El script ahora tiene opción de elegir el nº y paga más o menos según el nº que hayas elegido (siempre y cuando ganes )