27378-GBA_|_Scripting_|_El_"PokéBlackJack"
#0
Dani_SR_17 28493


PokéBlackJack

Hola a todos, os traigo mi último script, en este ya no puedo decir que es sencillo, porque el mu jodio me ha llevado su tiempo :furia:


Os explico un poco, el Script simula el BlackJack, para jugar deberás realizar una apuesta, si ganas recibes lo que has apostado mas un 50% de la misma cantidad, si empatas te devuelven tu apuesta, si pierdes, te aguantas :p


Las reglas son muy sencillas, y están explicadas en el script:
- Comienzas robando 2 cartas.
- Después puedes decidir plantarte o seguir robando.
- Cuando te plantes o te pases, comprarás tu resultado con el del Crupier (La máquina).

Los valores de las cartas son los siguientes:
- As -----> 1 u 11 (Según si te pasas con el 11 o no)
- 2-9 ----> El nº en cuestión
- Figura --> 10

Para ganar, tienes que conseguir la puntuación más alta sin pasarte de 21.


Importante, el Script requiere añadir 2 Multichoise, es muy facíl de hacer, podéis usar esta herramienta: Multichoise Manager 1.0


Bueno, después de está mini explicación, os dejo con un vídeo:

YouTube Video


Y ya para terminar, aquí podéis descargar el script y una Rom lista con el script: Script y Rom


#dynamic 0x800000

#org @Start
msgbox @Bienvenido 0x6
showmoney 0x0 0x0 0x0
multichoice 0x12 0x0 0x41 0x1
compare LASTRESULT 0x0
if 0x1 goto @LimpiadoDeVariables
compare LASTRESULT 0x1
if 0x1 goto @Instrucciones
compare LASTRESULT 0x2
if 0x1 goto @Adios

#org @Instrucciones 'Te dice muestra las instrucciones
msgbox @Instruc 0x6
msgbox @Creditos 0x6 'Los créditos, por favor, si modificais el script no quiteis esta parte
goto @Start

#org @LimpiadoDeVariables 'Aqui la lista de variables y flags, con sus respectivas funciones
setvar 0x40FF 0x0 'Esta variable es para "sacar" las cartas
setvar 0x40FE 0x0 'Esta es la variable del resultado de tu primera carta
setvar 0x40FD 0x0 'Esta es la variable del resultado de tu segunda carta
setvar 0x40FC 0x0 'Esta es la variable que va acumulando la suma que llevas
setvar 0x40FB 0x0 'Esta es la variable para la 3º carta y posteriores
clearflag 0x500 'La flag para saber si en la 1º tirada tienes un As o no
setvar 0x40F9 0x0 'La variable de la priemra carta del crupier
setvar 0x40F8 0x0 'La variable de la segunda carta del crupier
setvar 0x40F7 0x0 'La variable que va acumulando el total del crupier
setvar 0x40F6 0x0 'La variable para la 3º carta y posteriores del crupier
clearflag 0x503 'La flag para saber si en la 1º tirada tienes un As o no
setvar 0x40F2 0x0 'La var para saber si te has pasado
setvar 0x40F1 0x0 'La var para saber si el crupier se ha pasado
clearflag 0x506 'Flag de apostar 10
clearflag 0x507 'Flag de apostar 100
clearflag 0x508 'Flag de apostar 1000
goto @Apuestas 'Vamos a las apuestas

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


'Aquí van las apuestas


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

#org @Apuestas
msgbox @¿CuantoApuestas? 0x6 'Menu para seleccionar la cantidad a apostar
multichoice 0x17 0x0 0x42 0x1
compare LASTRESULT 0x0
if 0x1 goto @Apuesta10 'Apuestas 10
compare LASTRESULT 0x1
if 0x1 goto @Apuesta100 'Apuestas 100
compare LASTRESULT 0x2
if 0x1 goto @Apuesta1000 'Apuestas 1000
compare LASTRESULT 0x3
if 0x1 goto @Adios


#org @Apuesta10
checkmoney 0xA 0x0
compare LASTRESULT 0x1
if 0x0 goto @nomoney
paymoney 0xA 0x0
hidemoney 0x0 0x0
showmoney 0x0 0x0 0x0
setflag 0x506
goto [MENTION=28468]car[/MENTION]ta1Crup 'Primero va el Crupier

#org @Apuesta100
checkmoney 0x64 0x0
compare LASTRESULT 0x1
if 0x0 goto @nomoney
paymoney 0x64 0x0
hidemoney 0x0 0x0
showmoney 0x0 0x0 0x0
setflag 0x507
goto [MENTION=28468]car[/MENTION]ta1Crup 'Primero va el Crupier

#org @Apuesta1000
checkmoney 0x3E8 0x0
compare LASTRESULT 0x1
if 0x0 goto @nomoney
paymoney 0x3E8 0x0
hidemoney 0x0 0x0
showmoney 0x0 0x0 0x0
setflag 0x508
goto [MENTION=28468]car[/MENTION]ta1Crup 'Primero va el Crupier

#org @nomoney
msgbox @NoTienesPasta 0x6
goto @Apuestas

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


'Aquí esta tu turno, pero primero juega el Crupier vas despues del crupier


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

#org [MENTION=28468]car[/MENTION]ta1 'Primera carta
random 0xB 'El resultado de tu carta
addvar LASTRESULT 0x1
copyvar 0x40FF LASTRESULT
compare 0x40FF 0x1
if 0x1 goto @As1 'Si es un As
if 0x2 goto @NoAs1 'Si no es un As

#org @NoAs1
compare 0x40FF 0xA
if 0x0 goto @Numero1 'Tienes el valor de la carta
if 0x4 goto @Figura1 'Tienes una figura, luego vale 10



#org @As1 'El As en el priemr caso siempre vale 1
setvar 0x40FE 0xB
setflag 0x500
goto [MENTION=28468]car[/MENTION]ta2

#org @Figura1 'La figura vale 10
setvar 0x40FE 0xA
goto [MENTION=28468]car[/MENTION]ta2

#org @Numero1 'El valor del nº
compare 0x40FF 0x0
if 0x1 goto [MENTION=28468]car[/MENTION]ta2
if 0x2 goto @Suma1

#org @Suma1
addvar 0x40FE 0x1
subvar 0x40FF 0x1
goto @Numero1

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

#org [MENTION=28468]car[/MENTION]ta2 'Primera carta
buffernumber 0x0 0x40FE
pause 0x20
sound 0x17
msgbox @EnLa1ºTienes 0x6 'Te dice el resultado de la 1º carta
random 0xB 'El resultado de tu carta
addvar LASTRESULT 0x1
copyvar 0x40FF LASTRESULT
compare 0x40FF 0x1
if 0x1 goto @As2 'Si es un As
if 0x2 goto @NoAs2 'Si no es un As

#org @NoAs2
compare 0x40FF 0xA
if 0x0 goto @Numero2 'Tienes el valor de la carta
if 0x4 goto @Figura2 'Tienes una figura, luego vale 10



#org @As2 'Aquí si sacas un As
checkflag 0x500 'Mira si ya sacaste un As previamente
if 0x1 goto @Es1-2 'Si ya sacaste uno, este vale 1
if 0x0 goto @Es11-2 'Si no sacaste uno, este vale 11

#org @Es1-2 'El As vale 1
setvar 0x40FD 0x1
goto @DimeLa2

#org @Es11-2 'El As vale 11
setvar 0x40FD 0xB
goto @DimeLa2

#org @Figura2 'Si sale figura
setvar 0x40FD 0xA
goto @DimeLa2

#org @Numero2 'Si sale un nº
compare 0x40FF 0x0
if 0x1 goto @DimeLa2
if 0x2 goto @Suma2

#org @Suma2
addvar 0x40FD 0x1
subvar 0x40FF 0x1
goto @Numero2

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

#org @DimeLa2 'Te dice el resultado de la 2º carta
buffernumber 0x1 0x40FD
pause 0x20
sound 0x17
msgbox @EnLa2ºTienes 0x6 'Te dice el resultado de la 2º carta
goto @Suma1y2

#org @Suma1y2 'Para sumar la 1º y la 2º carta
compare 0x40FE 0x0
if 0x1 goto @SumaElTotal 'Si ya estan sumadas
if 0x2 goto @Suma1a2 'Si aun no estan sumadas

#org @Suma1a2 'Se van sumando la 1º y la 2º recursivamente
subvar 0x40FE 0x1
addvar 0x40FD 0x1
goto @Suma1y2

#org @SumaElTotal 'Sumas la suma de la 1º y la 2º al total
copyvar 0x40FC 0x40FD
goto @¿SiguesJugando?Comprobacion 'Pasas a la siguiente parte del script

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

#org @¿SiguesJugando?Comprobacion 'Comprueba si puedes seguir jugando
compare 0x40FC 0x15
if 0x0 goto @¿SiguesJugando?
if 0x1 goto @TienesBlackJack
if 0x2 goto @TeHasPasado

#org @¿SiguesJugando? 'Te va a preguntar si sigues jugando
buffernumber 0x2 0x40FC
pause 0x20
sound 0x17
msgbox @Llevas 0x5 'Te dice el total que llevas y pregunta si sigues jugando
compare LASTRESULT 0x1
if 0x1 goto [MENTION=24474]Comp[/MENTION]arar
if 0x0 goto @SiguesJugando

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

#org @SiguesJugando
random 0xB 'El resultado de tu carta
addvar LASTRESULT 0x1
copyvar 0x40FF LASTRESULT
compare 0x40FF 0x1
if 0x1 goto @As3 'Si es un As
if 0x2 goto @NoAs3 'Si no es un As

#org @NoAs3
compare 0x40FF 0xA
if 0x0 goto @Numero3 'Tienes el valor de la carta
if 0x4 goto @Figura3 'Tienes una figura, luego vale 10



#org @As3
compare 0x40FC 0xA
if 0x2 goto @Es1-3
if 0x3 goto @Es11-3

#org @Es1-3 'El As vale 1
setvar 0x40FB 0x1
goto @Suma3aTotal

#org @Es11-3 'El As vale 11
setvar 0x40FB 0xB
goto @Suma3aTotal

#org @Figura3 'Si sale figura
setvar 0x40FB 0xA
goto @Suma3aTotal

#org @Numero3 'Si sale un nº
compare 0x40FF 0x0
if 0x1 goto @Suma3aTotal
if 0x2 goto @Suma3

#org @Suma3
addvar 0x40FB 0x1
subvar 0x40FF 0x1
goto @Numero3



#org @Suma3aTotal 'Suma la 3º carta al total
compare 0x40FB 0x0
if 0x1 goto @¿SiguesJugando?Comprobacion 'Si ya estan sumadas
if 0x2 goto @Suma1aTotal 'Si aun no estan sumadas

#org @Suma1aTotal
subvar 0x40FB 0x1
addvar 0x40FC 0x1
goto @Suma3aTotal

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

#org @TienesBlackJack
msgbox @TomaBlackJack 0x6
goto [MENTION=24474]Comp[/MENTION]arar

#org @TeHasPasado
buffernumber 0x2 0x40FC
msgbox @TeHasPasadoCon 0x6
setvar 0x40F2 0x1
goto [MENTION=24474]Comp[/MENTION]arar

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


'Ahora las tiradas del Crupier, solo pondré anotaciones importantes, puesto que la mayoría de las cosas son iguales que en tu caso


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

#org [MENTION=28468]car[/MENTION]ta1Crup
random 0xB 'El resultado de tu carta
addvar LASTRESULT 0x1
copyvar 0x40FF LASTRESULT
compare 0x40FF 0x1
if 0x1 goto @As1Crup
if 0x2 goto @NoAs1Crup

#org @NoAs1Crup
compare 0x40FF 0xA
if 0x0 goto @Numero1Crup
if 0x4 goto @Figura1Crup



#org @As1Crup
setvar 0x40F9 0xB
setflag 0x503
goto [MENTION=28468]car[/MENTION]ta2Crup

#org @Figura1Crup
setvar 0x40F9 0xA
goto [MENTION=28468]car[/MENTION]ta2Crup

#org @Numero1Crup
compare 0x40FF 0x0
if 0x1 goto [MENTION=28468]car[/MENTION]ta2Crup
if 0x2 goto @Suma1Crup

#org @Suma1Crup
addvar 0x40F9 0x1
subvar 0x40FF 0x1
goto @Numero1Crup

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

#org [MENTION=28468]car[/MENTION]ta2Crup
random 0xB
addvar LASTRESULT 0x1
copyvar 0x40FF LASTRESULT
compare 0x40FF 0x1
if 0x1 goto @As2Crup
if 0x2 goto @NoAs2Crup

#org @NoAs2Crup
compare 0x40FF 0xA
if 0x0 goto @Numero2Crup
if 0x4 goto @Figura2Crup



#org @As2Crup
checkflag 0x503
if 0x1 goto @Es1-2Crup
if 0x0 goto @Es11-2Crup

#org @Es1-2Crup
setvar 0x40F8 0x1
goto @Suma1y2Crup

#org @Es11-2Crup
setvar 0x40F8 0xB
goto @Suma1y2Crup

#org @Figura2Crup
setvar 0x40F8 0xA
goto @Suma1y2Crup

#org @Numero2Crup
compare 0x40FF 0x0
if 0x1 goto @Suma1y2Crup
if 0x2 goto @Suma2Crup

#org @Suma2Crup
addvar 0x40F8 0x1
subvar 0x40FF 0x1
goto @Numero2Crup

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

#org @Suma1y2Crup
compare 0x40F9 0x0
if 0x1 goto @SumaElTotalCrup
if 0x2 goto @Suma1a2Crup

#org @Suma1a2Crup
subvar 0x40F9 0x1
addvar 0x40F8 0x1
goto @Suma1y2Crup

#org @SumaElTotalCrup
copyvar 0x40F7 0x40F8
goto @¿SiguesJugando?ComprobacionCrup

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

#org @¿SiguesJugando?ComprobacionCrup 'En este caso, compara primero con 17, si es mayor o igual va a otra comparación
compare 0x40F7 0x11
if 0x0 goto @SiguesJugandoCrup
if 0x4 goto @¿SiguesJugando?Crup

#org @¿SiguesJugando?Crup
compare 0x40F7 0x15
if 0x2 goto @TeHasPasadoCrup 'Si se ha pasado
if 0x3 goto [MENTION=28468]car[/MENTION]ta1 'Pasa a tu turno

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

#org @SiguesJugandoCrup
random 0xB
addvar LASTRESULT 0x1
copyvar 0x40FF LASTRESULT
compare 0x40FF 0x1
if 0x1 goto @As3Crup
if 0x2 goto @NoAs3Crup

#org @NoAs3Crup
compare 0x40FF 0xA
if 0x0 goto @Numero3Crup
if 0x4 goto @Figura3Crup



#org @As3Crup
compare 0x40F6 0xA
if 0x2 goto @Es1-3Crup
if 0x3 goto @Es11-3Crup

#org @Es1-3Crup
setvar 0x40F6 0x1
goto @Suma3aTotalCrup

#org @Es11-3Crup
setvar 0x40F6 0xB
goto @Suma3aTotalCrup

#org @Figura3Crup
setvar 0x40F6 0xA
goto @Suma3aTotalCrup

#org @Numero3Crup
compare 0x40FF 0x0
if 0x1 goto @Suma3aTotalCrup
if 0x2 goto @Suma3Crup

#org @Suma3Crup
addvar 0x40F6 0x1
subvar 0x40FF 0x1
goto @Numero3Crup



#org @Suma3aTotalCrup
compare 0x40F6 0x0
if 0x1 goto @¿SiguesJugando?ComprobacionCrup
if 0x2 goto @Suma1aTotalCrup

#org @Suma1aTotalCrup
subvar 0x40F6 0x1
addvar 0x40F7 0x1
goto @Suma3aTotalCrup

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

#org @TeHasPasadoCrup
setvar 0x40F1 0x1
goto [MENTION=28468]car[/MENTION]ta1

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


'Ahora toca comparar resultados


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

#org [MENTION=24474]Comp[/MENTION]arar
sound 0x19
buffernumber 0x0 0x40F7
msgbox @ElCrupierTiene 0x6
compare 0x40F2 0x1 'Mira si te has pasado o no
if 0x0 goto [MENTION=24474]Comp[/MENTION]arar2
if 0x1 goto @¿CrupierSeHaPasado?

#org [MENTION=24474]Comp[/MENTION]arar2
compare 0x40F1 0x1
if 0x0 goto [MENTION=24474]Comp[/MENTION]araSumaTotal 'Si no se cumple ninguno de los casos anteriores
if 0x1 goto @Ganas


#org @¿CrupierSeHaPasado?
compare 0x40F1 0x1
if 0x0 goto @Pierdes
if 0x1 goto @Empate


#org [MENTION=24474]Comp[/MENTION]araSumaTotal 'Compara las variables con la acumulación de ambos
comparevars 0x40FC 0x40F7
if 0x0 goto @Pierdes
goto [MENTION=24474]Comp[/MENTION]araSumaTotal2

#org [MENTION=24474]Comp[/MENTION]araSumaTotal2 'Compara las variables con la acumulación de ambos
comparevars 0x40FC 0x40F7
if 0x1 goto @Empate
if 0x2 goto @Ganas

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


'Si ganas, empatas o pierdes


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

#org @Ganas
sound 0xE
msgbox @HasGanado 0x6
applymovement 0xFF @Feliz
goto @GanasDinero

#org @Empate
msgbox @HasEmpatado 0x6
goto @Reembolso

#org @Pierdes
sound 0x16
msgbox @HasPerdido 0x6
msgbox @¿Otra? 0x5
compare LASTRESULT 0x1
if 0x1 goto @Start
if 0x0 goto @Adios

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


'MensageBox y demas


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

#org @GanasDinero
checkflag 0x506
if 0x1 goto @Ganas15
checkflag 0x507
if 0x1 goto @Ganas150
checkflag 0x508
if 0x1 goto @Ganas1500

#org @Reembolso
checkflag 0x506
if 0x1 goto @Ganas10
checkflag 0x507
if 0x1 goto @Ganas100
checkflag 0x508
if 0x1 goto @Ganas1000


#org @Ganas10
givemoney 0xA 0x0
hidemoney 0x0 0x0
showmoney 0x0 0x0 0x0
msgbox @¿Otra? 0x5
compare LASTRESULT 0x1
if 0x1 goto @Start
if 0x0 goto @Adios

#org @Ganas100
givemoney 0x64 0x0
hidemoney 0x0 0x0
showmoney 0x0 0x0 0x0
msgbox @¿Otra? 0x5
compare LASTRESULT 0x1
if 0x1 goto @Start
if 0x0 goto @Adios

#org @Ganas1000
givemoney 0x3E8 0x0
hidemoney 0x0 0x0
showmoney 0x0 0x0 0x0
msgbox @¿Otra? 0x5
compare LASTRESULT 0x1
if 0x1 goto @Start
if 0x0 goto @Adios

#org @Ganas15
givemoney 0xF 0x0
hidemoney 0x0 0x0
showmoney 0x0 0x0 0x0
msgbox @¿Otra? 0x5
compare LASTRESULT 0x1
if 0x1 goto @Start
if 0x0 goto @Adios

#org @Ganas150
givemoney 0x96 0x0
hidemoney 0x0 0x0
showmoney 0x0 0x0 0x0
msgbox @¿Otra? 0x5
compare LASTRESULT 0x1
if 0x1 goto @Start
if 0x0 goto @Adios

#org @Ganas1500
givemoney 0x5DC 0x0
hidemoney 0x0 0x0
showmoney 0x0 0x0 0x0
msgbox @¿Otra? 0x5
compare LASTRESULT 0x1
if 0x1 goto @Start
if 0x0 goto @Adios




#org @Adios
hidemoney 0x0 0x0
msgbox @VuelveCuandoQuieras 0x6
end



#org @HasGanado
= Has ganado, enhorabuena.

#org @HasEmpatado
= Habeis empatado, buena partida.

#org @HasPerdido
= Vaya, parece que has perdido,\nsuerte en la próxima partida.

#org @¿Otra?
= ¿Otra partida?

#org @VuelveCuandoQuieras
= Vuelve cuando quieras.

#org @Bienvenido
= Bienvenido al PokéBlackJack,\n¿Quieres jugar una partida?

#org @EnLa1ºTienes
= En la 1º carta tienes

#org @EnLa2ºTienes
= En la 2º carta tienes

#org @Llevas
= Llevas ¿Te plantas?

#org @TomaBlackJack
= ¡Tienes BlackJack!

#org @Pipiolo...
= Te has pasado....

#org @ElCrupierTiene
= El Crupier tiene

#org @TeHasPasadoCon
= Te has pasado con

#org @Instruc
= Bienvenido a las instrucciones\ndel PokéBlackJack, las reglas son\lmuy sencillas.\lAntes de empezar, deberas apostar\luna de las cantidades que verás,\lsi ganas te devolverán tu apuesta\ljunto a un 50% de lo apostado.\lComienzas robando 2 cartas según\lla carta obtenida, suman las\lsiguientes cantidades: As = 1 u\l11, Figuras = 10, de 2 a 9 =\lvalor de la carta.\lPuedes robar después tantas veces\lcomo quieras, pero si te pasas de\l21 pierdes (o empatas) y si\ltienes justo 21 ganas (o empatas).\lEl Crupier (tu contrincante), por\lel contrario robará cartas hasta\lque sumen 17 o más.\lUna vez se pare de robar cartas,\lse compararán los resultados.\lSi teneis el mismo valor, o\lteneis los dos BlackJack o los\ldos os pasais, empatais.\lEn caso de que no ocurra nada de\llo anterior, el que tenga el\lmejor resultado gana. Siguiendo\leste esquema:\lPasarse < Tener un valor entre 1\ly 20 < Tener BlackJack\pEsto es todo, espero que te\ndiviertas y gracias por jugar al\lPokéBlackJack.

#org @¿CuantoApuestas?
= ¿Qué cantidad deseas apostar?

#org @NoTienesPasta
= No tienes suficiente dinero.

#org @Feliz
#raw 0x66 'Feliz (^_^)
#raw 0xFE 'Finalizar Movimientos

#org @Creditos
= Creador del script: Dani_SR_17.\nGracias a Gut_Bro por su\lherramienta y a Sayer por ayudarme\la plantear el script.



No suelo pedirlo, pero en este caso si se utiliza pido por favor créditos, porque me ha llevado su tiempo y sus dolores de cabeza.