30236-GBA_|_Scripting_|_"El_Pulsatrón"
#0
Dani_SR_17 28493


El Pulsatrón


Saludos usuarios de Wah, hoy os traigo un nuevo script base con muuuchas posibilidades, podréis usarlo para simular una captura en un script, para carreras, para minijuegos y mucho más.

No voy voy a enrollarme mucho, el script es muy sencillo, os lo dejo en base, solo tenéis que modificar unos parámetros.

Que mejor manera de empezar antes de todo el rollo de lineas, que mostraros como funciona en un vídeo, pues ahí va el vídeo con un gifs para los más vagos (el gifs no se ve..).

YouTube Video





Personalización

Veamos, explicare como personalizar el script:




Dicho todo esto, debo decir que el script solo necesita 1 variable, la cual puede tener cualquier valor al comenzar el script, puesto que el valor se le da en el.

Y sin más dilación, ¡el script!


El Pulsatrón!

Script "El Pulsatrón" - Dan_SR_17

#dynamic 0x800000

' Este es un script base para todo aquel que necesite un script para capturar un Poké, hacer una carrera, un choque entre Pokémons, etc.
' La cosa es que el jugador sea rápido pulsando una tecla, aunque la dificultad será ajustable.
' Si vais a usar tiles, la parte de abajo puede ser muy variada, en mi caso, voy a ponerla para que cada 5pts cambie, es decir, si tenemos una barra de 10 bloques de largo, cada 5pts haremos que se modifique medio tile.
' Ejemplo más claro: (0 -> pts máquina, 1 -> pts player), temeos 10 bloques, cada uno formado por 2 tiles. [0,0][0,0][0,0][0,0][0,0][1,1][1,1][1,1][1,1][1,1], como veis entre los 1 y los 0, tenemos 20 espacios, luego 20*5=100.
' Pues bien, en el ejemplo, la partida iría así: Máquina -> 45-49 pts, Jugador -> 50-54 pts. Pues, ¿qué ocurre si el jugador ahora consigue lleguar a 4pts? Muy sencillo, los tiles cambian y la tabla estaría así:
' [0,0][0,0][0,0][0,0][0,1][1,1][1,1][1,1][1,1][1,1], como pode´si ver ahora el player tiene otro fragmento más.
' Por último, aquí teneís los intervalos de los pts: [0-4,5-9][10-14,15-19][20-24,25-29][30-34,35-39][40-44,45-49][50-54,55-59][60-64,65-69][70-74,75-79][80-84,85-89][90-94,95-99]
' Como realmente, solo hay un marcador, lo que haré será poner los tiles de la máquina, en todos aquellos intervalos cuyos números seán menores que el contador, es decir, que si el marcador esta en un intervalo, ese intervalo y todos los posteriores tendrán el tile del player.
' Durante el script, asignaré a cada intervalo los siguientes números: [1][2][3][4][5][6][7][8][9][10][11][12][13][14][15][16][17][18][19][20]


' ----------------------- Base del script -----------------------

#org @Start
setvar 0x(Variable Contador) 0x32 'Si llega a 0 pierdes, si llega a 64 (100) ganas. Empieza en 32 (50), pero siempre es editable.
goto @Lucha

#org @Lucha 'Aquí es donde miramos si la máquina es más rápida que el jugador, la dificultad es fácilmente editable modificando el nº de pause y chekeos que hay y el tiempo de los pause.
pause 0x5
comparefarbytetobyte 0x4000130 0xFE 'Vamos a ver si pulsas "A", aunque podéis poner otra tecla.
if 0x1 goto @Jugador+1
pause 0x5
comparefarbytetobyte 0x4000130 0xFE 'Vamos a ver si pulsas "A", aunque podéis poner otra tecla.
if 0x1 goto @Jugador+1
pause 0x5
comparefarbytetobyte 0x4000130 0xFE 'Vamos a ver si pulsas "A", aunque podéis poner otra tecla.
if 0x1 goto @Jugador+1
pause 0x5
comparefarbytetobyte 0x4000130 0xFE 'Vamos a ver si pulsas "A", aunque podéis poner otra tecla.
if 0x1 goto @Jugador+1
goto @Máquina+1 'Si no pulsas "A" rápido, la máquina se anota el tanto.

' ----------------------- Sumar pts -----------------------

#org @Jugador+1 'Vamos a subarte un tanto.
addvar 0x(Variable Contador) 0x1
compare 0x(Variable Contador) 0x64 'Si llegas al máximo, ganas.
if 0x1 goto @Ganas
goto @Anim 'Aquí cambiaremos los tiles, en caso de querer poner una barrita.

#org @Máquina+1
subvar 0x(Variable Contador) 0x1
compare 0x(Variable Contador) 0x0 'Si llegas al mínimo, pierdes.
if 0x1 goto @Pierdes
goto @Anim 'Aquí cambiaremos los tiles, en caso de querer poner una barrita.

' ----------------------- Script terminado -----------------------

#org @Ganas 'Esto a vuestro gusto.
end

#org @Pierdes 'Esto a vuestro gusto.
end

' ----------------------- Veamos por donde va la barrita -----------------------

#org @Anim
compare 0x(Variable Contador) 0x5 'Si estas en el intervalo 0-4
if 0x0 goto @BarritaEn1
compare 0x(Variable Contador) 0xA 'Si estas en el intervalo 5-9
if 0x0 goto @BarritaEn2
compare 0x(Variable Contador) 0xF 'Si estas en el intervalo 10-14
if 0x0 goto @BarritaEn3
compare 0x(Variable Contador) 0x14 'Si estas en el intervalo 15-19
if 0x0 goto @BarritaEn4
compare 0x(Variable Contador) 0x19 'Si estas en el intervalo 20-24
if 0x0 goto @BarritaEn5
compare 0x(Variable Contador) 0x1E 'Si estas en el intervalo 25-29
if 0x0 goto @BarritaEn5
compare 0x(Variable Contador) 0x23 'Si estas en el intervalo 30-34
if 0x0 goto @BarritaEn5
compare 0x(Variable Contador) 0x28 'Si estas en el intervalo 35-39
if 0x0 goto @BarritaEn8
compare 0x(Variable Contador) 0x2D 'Si estas en el intervalo 40-44
if 0x0 goto @BarritaEn9
compare 0x(Variable Contador) 0x32 'Si estas en el intervalo 45-49
if 0x0 goto @BarritaEn10
compare 0x(Variable Contador) 0x37 'Si estas en el intervalo 50-54
if 0x0 goto @BarritaEn11
compare 0x(Variable Contador) 0x3C 'Si estas en el intervalo 55-59
if 0x0 goto @BarritaEn12
compare 0x(Variable Contador) 0x41 'Si estas en el intervalo 60-64
if 0x0 goto @BarritaEn13
compare 0x(Variable Contador) 0x46 'Si estas en el intervalo 65-69
if 0x0 goto @BarritaEn14
compare 0x(Variable Contador) 0x4B 'Si estas en el intervalo 70-74
if 0x0 goto @BarritaEn15
compare 0x(Variable Contador) 0x50 'Si estas en el intervalo 75-79
if 0x0 goto @BarritaEn16
compare 0x(Variable Contador) 0x55 'Si estas en el intervalo 80-84
if 0x0 goto @BarritaEn17
compare 0x(Variable Contador) 0x5A 'Si estas en el intervalo 85-89
if 0x0 goto @BarritaEn18
compare 0x(Variable Contador) 0x5F 'Si estas en el intervalo 90-94
if 0x0 goto @BarritaEn19
compare 0x(Variable Contador) 0x64 'Si estas en el intervalo 95-99
if 0x0 goto @BarritaEn20

' ----------------------- Vamos a cambiar los tiles -----------------------

#org @BarritaEn1
setmaptile 0x 0x 0x 0x
special 0x8E
goto @Lucha

#org @BarritaEn2
setmaptile 0x 0x 0x 0x
special 0x8E
goto @Lucha

#org @BarritaEn3
setmaptile 0x 0x 0x 0x
special 0x8E
goto @Lucha

#org @BarritaEn4
setmaptile 0x 0x 0x 0x
special 0x8E
goto @Lucha

#org @BarritaEn5
setmaptile 0x 0x 0x 0x
special 0x8E
goto @Lucha

#org @BarritaEn6
setmaptile 0x 0x 0x 0x
special 0x8E
goto @Lucha

#org @BarritaEn7
setmaptile 0x 0x 0x 0x
special 0x8E
goto @Lucha

#org @BarritaEn8
setmaptile 0x 0x 0x 0x
special 0x8E
goto @Lucha

#org @BarritaEn9
setmaptile 0x 0x 0x 0x
special 0x8E
goto @Lucha

#org @BarritaEn10
setmaptile 0x 0x 0x 0x
special 0x8E
goto @Lucha

#org @BarritaEn11
setmaptile 0x 0x 0x 0x
special 0x8E
goto @Lucha

#org @BarritaEn12
setmaptile 0x 0x 0x 0x
special 0x8E
goto @Lucha

#org @BarritaEn13
setmaptile 0x 0x 0x 0x
special 0x8E
goto @Lucha

#org @BarritaEn14
setmaptile 0x 0x 0x 0x
special 0x8E
goto @Lucha

#org @BarritaEn15
setmaptile 0x 0x 0x 0x
special 0x8E
goto @Lucha

#org @BarritaEn16
setmaptile 0x 0x 0x 0x
special 0x8E
goto @Lucha

#org @BarritaEn17
setmaptile 0x 0x 0x 0x
special 0x8E
goto @Lucha

#org @BarritaEn18
setmaptile 0x 0x 0x 0x
special 0x8E
goto @Lucha

#org @BarritaEn19
setmaptile 0x 0x 0x 0x
special 0x8E
goto @Lucha

#org @BarritaEn20
setmaptile 0x 0x 0x 0x
special 0x8E
goto @Lucha



Gracias al usuario [MENTION]cosarara97 [/MENTION] por darse cuenta de un bug del script anterior, bueno, más que un bug es un pequeño truco, pero bueno.
La cosa es que en el anterior script, si mantenéis pulsada la "A", siempre ganáis, pero bueno, aquí esta el script arreglado:

Script "El Pulsatrón" AntiTrampas - Dani_SR_17

Para no descargarlo de nuevo, si queréis podéis cambiar la parte del "@Jugador+1", por esto:

#org @Jugador+1 'Vamos a subarte un tanto.
pause 0x2
comparefarbytetobyte 0x4000130 0xFE 'Vamos a ver si haces trampas
if 0x1 goto @Máquina+1 'Si mantienes la A, le dan tu punto a la máquina.
goto @Jugador+1-2

#org @Jugador+1-2
addvar 0x(Variable Contador) 0x1
compare 0x(Variable Contador) 0x64 'Si llegas al máximo, ganas.
if 0x1 goto @Ganas
goto @Anim 'Aquí cambiaremos los tiles, en caso de querer poner una barrita.

Nota: Si veis que podéis pulsar el botón, soltarlo y volver a pulsarlo en menos de 0,1s, cambiad el pause 0x2 por un pause 0x1.






:cool: Espero que os guste y os sea útil, cualquier duda sobre el script preguntadla :cool: