Registrarse

[Tienda] Factoría de Scripts de Dani_SR_17 [1 pedido completado]

Estado
Cerrado para nuevas respuestas.

Dani_SR_17

¡Pokémon LionHeart!
[tabs][tab=Información]Bienvenidos a la tienda de scripts (para GBA) de Dani_SR_17.
Aquí podréis pedirme scripts curiosos para los hacks, como minijuegos, o también scripts más útiles como scripts auxiliares para variables.
Como pone en la sección de normas, no aceptaré todos los pedidos, al igual que el tiempo de realización de los pedidos será indefinido.

No es necesario pasarme ninguna rom, pero de pasarla mejor. Más que nada por si el script tiene setmaptiles (que yo no pondré, solo para probar) y tal, pero vaya, que con darme todos los datos que necesite no es necesario pasarme la rom.

Tengo que aclarar que no haré rutinas ASM, solo scripts. Además, si tenéis alguna rutina introducida en la rom que pueda ser útil estaría bien que me lo comentarais.

Nota: Ahora mismo no ando demasiado bien de tiempo, así que es posible que cierre la tienda, no obstante, quiero darle un tiempo de prueba a ver que tal va.[/tab]
[tab=Reglas]
  • Solo haré scripts para GBA, no aceptaré pedidos de otras plataformas.
  • No haré scripts de una simple trainerbattle o de 4 applymovements, solo haré scripts que yo considere interesantes/curiosos/minijuegos/útiles, como los de mi Recopilación.
  • No aceptaré pedidos de hacks recién empezados, solo me plantearé aceptar pedidos de hacks con una cierta caldiad y un cierto avance.
  • No aceptaré todos los pedidos, solo aquellos que considere factibles de hacer.
  • El tiempo de entrega de un pedido es indefinido.
  • Si entrego un pedido y se usa en un hack quiero créditos en dicho hack por el script.
  • Me reservo el derecho a postear el código del script, así como un vídeo o scans del mismo en el subforo de Scripts, al igual que añadirlo a mi Recopilación.
  • Los pedidos son de scripts, no de rutinas ASM
Las normas pueden cambiar con el tiempo.[/tab]
[tab=Plantilla]
Código:
Rom base: 
Hack: 
Descripción breve del script: 
Descripción detallada del script: 
Cosas útiles que peuda usar de la rom: (Rutinas y demás)
[/tab]
[tab=Muestras]





[/tab]
[tab=Encargos pendientes]Ninguno.[/tab]
[tab=Encargos completados]
Pedido de @Aster completado.

Te dejo por aquí el script para que lo descargues, y aquí va el código.
Como te he dicho esta sin testear porque no me has pasado la rom con las cosas, aunque en teoría no debería fallar.
Esta preparado para ir de izquierda a derecha y viceversa, aunque tiene un par de anotaciones de lo que hay que cambiar para que sea de arriba a abajo.

Código:
#dynamic 0x800000

'Antes de nada un par de comentarios, de lo que vas a necesitar y tal.
'Primero, vamos a necesitar 1 variable fija (no la uses en otro lado) y 2 variables dinámicas (fuera del script las puedes reutilizar).
'Después, asumo que el mini que anda por la cuerda es el normal, el que cambia es el que está en el punto de equilibrio.
'Es muy importante que a la cuerda solo se pueda acceder mirando en la dirección en la que quieras cruzar.
'Otra cosa importante es que necesitas 1 mini para el equilibrio hacia la izquierda y otro diferente hacia la derecha.



#org @Start
compare 0x(VariableCuerdaPuesta) 0x0 'Esta es la variable que le asignas a la cuerda en cuestión, además, la tienes que usar para el script de nivel de los setmaptiles, si está en 1 es que la cuerda esta puesta.
if 0x1 goto @¿TienesCuerda? 'Si no has puesto la cuerda, vamos a ver si tienes alguna.
goto @CruzarCuerda 'Si ya has puesto la cuerda.



'---------------- Esta es la parte de colocar la cuerda y tal.



#org @¿TienesCuerda?
msgbox @text¿TienesCuerda? 0x5 'Este texto es el de "¿Pongo una cuerda para cruzar el acantilado?"
compare LASTRESULT 0x1
if 0x1 goto @PonerCuerda
msgbox @textNoPongoCuerda 0x6 'No pongo la cuerda.
end



#org @PonerCuerda
checkitem 0x55 0x1
compare LASTRESULT 0x0
if 0x1 goto @NoTienesCuerda
fadescreen 0x1
removeitem 0x55 0x1
setvar 0x(VariableCuerdaPuesta) 0x1
setmaptile 0x 0x 0x 0x1
'Todos los setmaptiles que sean necesarios
special 0x8E
pause 0x20
fadescreen 0x0
msgbox @textCuerdaPuesta 0x6 'Texto de ya he colocado la cuerda
goto @CruzarCuerda



#org @NoTienesCuerda
msgbox @textNoTienesCuerda 0x6
end



'---------------- Aquí es donde empieza la movida de verdad, el hacer que se cruce la cuerda.



#org @CruzarCuerda
msgbox @text¿TienesCuerda? 0x5 'Este texto es el de "Puedo cruzar el acantilado por la cuerda, pero podría caerme. ¿Lo cruzo?"
compare LASTRESULT 0x1
if 0x1 goto @VasACruzarLaCuerda
msgbox @textTeRajas 0x6 'Texto de "Te rajas y no cruzas."
end



#org @VasACruzarLaCuerda
compare PLAYERFACING 0x4 'Si quisieras hacerlo de arriba a abajo tienes que cambiar el 4 por un 1, y cambiar @VasACruzarLaCuerdaEstasIzq por @VasACruzarLaCuerdaEstasAr (y el otro igual pero por abajo).
if 0x1 goto @VasACruzarLaCuerdaEstasIzq
goto @VasACruzarLaCuerdaEstasDer



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



#org @VasACruzarLaCuerdaEstasIzq
applymovement 0xFF @movAndarHastaCentroI 'Desde la izquierda hasta el centro.
waitmovement 0xFF
setvar 0x4054 0x 'El mini de equilibrio mirando hacia la Derecha.
callasm 0x805BE61
msgbox @textEquilibrio 0x6 'El texto de que tienes que mantener el equilibrio, explicas que si te vas para una dirección tienes que pulsar la tecla opuesta para no caerte.
goto @MiniJuegoEquilibrio



#org @VasACruzarLaCuerdaEstasDer
applymovement 0xFF @movAndarHastaCentroD 'Desde la derecha hasta el centro.
waitmovement 0xFF
setvar 0x4054 0x 'El mini de equilibrio mirando hacia la Izquierda.
callasm 0x805BE61
msgbox @textEquilibrio 0x6 'El texto de que tienes que mantener el equilibrio, explicas que si te vas para una dirección tienes que pulsar la tecla opuesta para no caerte.
goto @MiniJuegoEquilibrio



'---------------- Vamos a hacer la mágia del minijuego.

#org @MiniJuegoEquilibrio
setvar 0x(VariableContador) 0x0 'La variable que mira el nº de veces que has mantenido el equilibrio.
pause 0x20
random 0x5 'Estas 3 lineas son por si quieres hacer que el nº de veces que tengas que mantener el equilibrio sea aleatorio, en este caso lo ha puesto entre 5 y 9.
copyvar 0x(VariableObjetivo) LASTRESULT
addvar 0x(VariableObjetivo) 0x5
goto  [MENTION=25770]Aleatorio[/MENTION]



#org  [MENTION=25770]Aleatorio[/MENTION]
comparevars 0x(VariableContador) 0x(VariableObjetivo) 'Veamos si ya has mantenido el equilibrio todas las veces necesarias.
if 0x1 goto @CruzasLaCuerda
random 0x2
compare LASTRESULT 0x0
if 0x1 goto @TeMuevesArriba
goto @TeMuevesAbajo



#org @TeMuevesArriba 'El mini se mueve hacia arriba, vas a tener que pulsar la tecla hacia abajo rapido o te caeras
applymovement 0xFF @movArr
pause 0x5
comparefarbytetobyte 0x4000130 0x7F 'Si pulsas la tecla de abajo te mantienes.
if 0x1 goto @TeMantienes
comparefarbytetobyte 0x4000130 0xBF 'Si pulsas la tecla de arriba te caes.
if 0x1 goto @TeCaesArr
pause 0x5
comparefarbytetobyte 0x4000130 0x7F
if 0x1 goto @TeMantienes
comparefarbytetobyte 0x4000130 0xBF
if 0x1 goto @TeCaesArr
pause 0x5
comparefarbytetobyte 0x4000130 0x7F
if 0x1 goto @TeMantienes
comparefarbytetobyte 0x4000130 0xBF
if 0x1 goto @TeCaesArr
pause 0x5
comparefarbytetobyte 0x4000130 0x7F
if 0x1 goto @TeMantienes
comparefarbytetobyte 0x4000130 0xBF
if 0x1 goto @TeCaesArr
pause 0x5
goto @TeCaesArr 'Si no pulsas nada, te caes

#org @TeMuevesAbajo 'El mini se mueve hacia abajo, vas a tener que pulsar la tecla hacia arriba rapido o te caeras
applymovement 0xFF @movAbj
pause 0x5
comparefarbytetobyte 0x4000130 0xBF
if 0x1 goto @TeMantienes
comparefarbytetobyte 0x4000130 0x7F
if 0x1 goto @TeCaesAbj
pause 0x5
comparefarbytetobyte 0x4000130 0xBF
if 0x1 goto @TeMantienes
comparefarbytetobyte 0x4000130 0x7F
if 0x1 goto @TeCaesAbj
pause 0x5
comparefarbytetobyte 0x4000130 0xBF
if 0x1 goto @TeMantienes
comparefarbytetobyte 0x4000130 0x7F
if 0x1 goto @TeCaesAbj
pause 0x5
comparefarbytetobyte 0x4000130 0xBF
if 0x1 goto @TeMantienes
comparefarbytetobyte 0x4000130 0x7F
if 0x1 goto @TeCaesAbj
pause 0x5
goto @TeCaesAbj


'Nota, si ves que apenas te da tiempo a pulsar la tecla simplemente agrega alguna comparación extra.

'Aquí está la parte de si pierdes.


#org @TeCaesArr 'Te caes, has perdido.
compare 0x4054 0x 'Comparas si lleva el mini de equilibrio que mira a la derecha.
if 0x1 goto @CaesArrID
goto @CaesArrDI

@CaesArrID
setvar 0x4054 0x 'Mini del prota normal.
callasm 0x805BE61
applymovement 0xFF @movCaerseArr
waitmovement 0xFF
warp 0x 0x 0xA 0x 0x 'Tienes que volver al lado izquierdo.
pause 0x40
end

@CaesArrDI
setvar 0x4054 0x 'Mini del prota normal.
callasm 0x805BE61
applymovement 0xFF @movCaerseArr
waitmovement 0xFF
warp 0x 0x 0xA 0x 0x 'Tienes que volver al lado derecho.
pause 0x40
end



#org @TeCaesAbj
compare 0x4054 0x 'Comparas si lleva el mini de equilibrio que mira a la derecha.
if 0x1 goto @CaesAbjID
goto @CaesAbjDI

@CaesAbjID
setvar 0x4054 0x 'Mini del prota normal.
callasm 0x805BE61
applymovement 0xFF @movCaerseAbj
waitmovement 0xFF
warp 0x 0x 0xA 0x 0x 'Tienes que volver al lado izquierdo.
pause 0x40
end

@CaesAbjDI
setvar 0x4054 0x 'Mini del prota normal.
callasm 0x805BE61
applymovement 0xFF @movCaerseAbj
waitmovement 0xFF
warp 0x 0x 0xA 0x 0x 'Tienes que volver al lado derecho.
pause 0x40
end


'Aquí tenemos lo que ocurre si pulsas bien.


#org @TeMantienesArr
addvar 0x(VariableObjetivo) 0x1
applymovement 0xFF @movVuelvesAlCentro
waitmovement 0xFF
pause 0x40 'Nota, en este pause se podría poner también un radom, para que el tiempo entre cada intento pueda cambiar, pero te lo dejo a ti si te gusta la idea.
goto  [MENTION=25770]Aleatorio[/MENTION]

#org @TeMantienesAbj
addvar 0x(VariableObjetivo) 0x1
applymovement 0xFF @movVuelvesAlCentro
waitmovement 0xFF
pause 0x40 'Nota, en este pause se podría poner también un radom, para que el tiempo entre cada intento pueda cambiar, pero te lo dejo a ti si te gusta la idea.
goto  [MENTION=25770]Aleatorio[/MENTION]


'Si superas la prueba.


#org @CruzasLaCuerda
compare 0x4054 0x 'Comparas si lleva el mini de equilibrio que mira a la derecha.
if 0x1 goto @CruzasID
goto @CruzasDI


#org @CruzasID
setvar 0x4054 0x 'Mini del prota normal.
callasm 0x805BE61
applymovement 0xFF @movAndarHastaDerecha
waitmovement 0xFF
msgbox @textCuerdaCruzada 0x6 'El texto de que has cruzado la cuerda.
end


#org @CruzasDI
setvar 0x4054 0x 'Mini del prota normal.
callasm 0x805BE61
applymovement 0xFF @movAndarHastaIzquierda 
waitmovement 0xFF
msgbox @textCuerdaCruzada 0x6 'El texto de que has cruzado la cuerda.
end


'---------------- Los textos.


#org @text¿TienesCuerda? 'Este texto es el de "¿Pongo una cuerda para cruzar el acantilado?"


#org @textNoPongoCuerda 'Texto de "No pongo la cuerda."


#org @textCuerdaPuesta 'Texto de "Ya he colocado la cuerda."


#org @textNoTienesCuerda 'Texto de "Vaya, parece que no tengo cuerda."


#org @text¿TienesCuerda? 'Este texto es el de "Puedo cruzar el acantilado por la cuerda, pero podría caerme. ¿Lo cruzo?"


#org @textTeRajas 'Texto de "Te rajas y no cruzas."


#org @textEquilibrio 'El texto de que tienes que mantener el equilibrio, explicas que si te vas para una dirección tienes que pulsar la tecla opuesta para no caerte.


#org @textCuerdaCruzada 'El texto de que has cruzado la cuerda.



'---------------- Los movimientos.


#org @movAndarHastaCentroI 'El movimiento que va desde la izquierda hasta el centro, es decir X pasos a la derecha. (Al final del movimiento pegaría que pusieras una "!", para el texto que viene despues.


#org @movAndarHastaCentroD 'El movimiento que va desde la derecha hasta el centro, es decir X pasos a la izquierda. (Al final del movimiento pegaría que pusieras una "!", para el texto que viene despues.


#org @movAndarHastaDerecha 'El movimiento para terminar de cruzar la cuerda de izquierda a derecha. 


#org @movAndarHastaIzquierda 'El movimiento para terminar de cruzar la cuerda de derecha a izquierda.


#org @movArr 'El movimiento de balanceo hacia arriba.


#org @movAbj 'El movimiento de balanceo hacia abajo.


#org @movCaerseArr 'El movimiento de que te caes arriba.


#org @movCaerseAbj 'El movimiento de que te caes abajo.


#org @movVuelvesAlCentro 'Vuelve a estar en la posición de equilibrio el mini.

Cualquier duda o error avísame y lo reviso, disfruta del script y cuando puedas grabarlo avísame, y subo el vídeo a mi canal y lo pongo en mi recopilación de scripts ;)
[/tab][/tabs]
 
Última edición:

Taro

Believe.
Respuesta: [Tienda] Factoría de Scripts de Dani_SR_17

Rom base: Fire Red
Hack: Pokemon Kiba´s Legend
Descripción breve del script: Sistema de Excavación
Descripción detallada del script: Necesito Un Script en donde pase lo siguiente:Es un buen lugar para excavar ,Quieres Excavar Con Los Guantes de Excavación? En caso de no:Supongo que despues En caso de Si:¡¡Veamos que encontramos!! Luego aparece el mini bajo tierra y hay que presionar el boton A Para excavar,de esta manera se pueden encontrar objetos utiles. (si he escrito algo mal o no has entendido solo avisame)
Cosas útiles que pueda usar de la rom:.........
 

Dani_SR_17

¡Pokémon LionHeart!
Respuesta: [Tienda] Factoría de Scripts de Dani_SR_17

Rom base: Fire Red
Hack: Pokemon Kiba´s Legend
Descripción breve del script: Sistema de Excavación
Descripción detallada del script: Necesito Un Script en donde pase lo siguiente:Es un buen lugar para excavar ,Quieres Excavar Con Los Guantes de Excavación? En caso de no:Supongo que despues En caso de Si:¡¡Veamos que encontramos!! Luego aparece el mini bajo tierra y hay que presionar el boton A Para excavar,de esta manera se pueden encontrar objetos utiles. (si he escrito algo mal o no has entendido solo avisame)
Cosas útiles que pueda usar de la rom:.........
He hecho una excepción por ser el primer pedido y me he olvidado de la norma: "No aceptaré pedidos de hacks recién empezados, solo me plantearé aceptar pedidos de hacks con una cierta caldiad y un cierto avance."
Pero si ni tu tienes claro lo que quieres y piensas que los scripts hacen magia no te puedo ayudar. Si no me dices que items exactos de tu lista quieres que salgan (con su nº en HEX de la rom), te tengo que prácticamente dar yo las ideas de que sean aleatorios y de que tengas Xporcentaje y tal...
Te dejo lo que he hecho del script, debería funcionar si rellenas las zonas vacías con comentarios.
Código:
#dynamic 0x800000

#org @Start
setvar 0x(VariableContador) 0x0
goto @Excavar

#org @Excavar
compare 0x(VariableContador) 0x15
if 0x1 goto @Acabas
pause 0x5
comparefarbytetobyte 0x4000130 0xFE 'Vamos a ver si pulsas "A"
if 0x1 call @JugadorExcava
pause 0x5
comparefarbytetobyte 0x4000130 0xFE
if 0x1 call @JugadorExcava
pause 0x5
comparefarbytetobyte 0x4000130 0xFE
if 0x1 call @JugadorExcava
pause 0x5
comparefarbytetobyte 0x4000130 0xFE
if 0x1 call @JugadorExcava
addvar 0x(VariableContador) 0x1 'Ha pasado un segundo(mas o menos)
goto @Excavar


#org @JugadorExcava
pause 0x2
comparefarbytetobyte 0x4000130 0xFE 'Vamos a ver si haces trampas
if 0x5 call @Excavas
return 'Si mantienes la A, no te cuenta.

#org @Excavas
getplayerpos 0x(VariablePosicionX) 0x(VariablePosicionY)
addvar 0x(VariablePosicionY) 0x1
setmaptile 0x(VariablePosicionX)  0x(VariablePosicionY) 0x 0x0
'Los setmaptile que necesites para excavar
special 0x8E
applymovement 0xFF @movExcavar
waitmovement 0xFF
call [MENTION=25770]Aleatorio[/MENTION]
return

#org @movExcavar
#raw 0x10
#raw 0xFE

#org [MENTION=25770]Aleatorio[/MENTION]
random 0xA
compare LASTRESULT 0x0
if 0x1 call [MENTION=12697]premi[/MENTION]o
return

#org [MENTION=12697]premi[/MENTION]o
random 0x
'Aquí con aleatorios metes que item te dará
msgbox @text 0x6
return

#org @text
'Has encontrado algo


#org @Acaba
'Script terminado.
end
Si tu hack llegará a avanzar lo suficiente y vienes con las ideas más claras te podría terminar el pedido, pero así no.
 

Nachoius

Caminante del cielo
Respuesta: [Tienda] Factoría de Scripts de Dani_SR_17

Rom base: FR

Hack: Pkm Ancient

Descripción breve del script: un acantilado, y una cuerda para cruzar, el prota debe cruzar al cuerda floja sin caerse, si se cae debe comenzar de nuevo.

Descripción detallada del script:
-checkitem, cuerda huida si la tienes puedes usarla para cruzar el acantilado atando la cuerda al otro extremo para cruzar, si no la tienes simplemente no puedes.
- al comienzo tiene un cambio de mini para los frames del prota caminado por la cuerda floja (los frames se están spriteando aun)
- en la mitad del camino hay un sistema para hacer que el player haga equilibrio:
1) puede ser repetir el orden de las flechas "ejemplo: "manten el equilibrio" y debas apretar flechas "arriba abajo derecha izquierda."
2) u otro que tu estimes conveniente para emular hacer equilibrio
- si logras mantener el equilibrio puedes seguir avanzando. Si no, caes y vuelves a empezar.
- la idea es gastar una cuerda huida (setmaptile hace aparecer la cuerda que une los extremos) y que esta quede permanentemente en el mapa(los tiles de cuerda), también por consecuencia pierdes una cuerda huida de tu BAG al poner la cuerda en el acantilado.
-Que funcione de ida y de vuelta, una vez que pasas al otro lado, e intentas devolverte también tendrás que volver a hacer equillibrio o si no vuelves al punto inicial.
- en otras palabras si estás del lado izquierdo y caes, vuelves a empezar del lado que partiste, si partes del otro extremo y haces equilibrio y caes, reinicias de ese lado.



Cosas útiles que pueda usar de la rom: Rutina Cambio de Mini

slds dani! ^^ espero que se entienda.

PD: creo que se van a necesitar 3 scritps de gatillo
- 1 para el equilibrio
- 2 para cambio de mini al modo prota normal/prota equilibrandose, además de al principio hacer check "cuerda huida" la primera vez del script, luego por razones obvias no pedirá la cuerda, ya que estará en el acantilado.
 
Última edición:

Dani_SR_17

¡Pokémon LionHeart!
Respuesta: [Tienda] Factoría de Scripts de Dani_SR_17 [1 pedido en proceso]

Pedido de @Aster completado.

Te dejo por aquí el script para que lo descargues, y aquí va el código.
Como te he dicho esta sin testear porque no me has pasado la rom con las cosas, aunque en teoría no debería fallar.
Esta preparado para ir de izquierda a derecha y viceversa, aunque tiene un par de anotaciones de lo que hay que cambiar para que sea de arriba a abajo.

Código:
#dynamic 0x800000

'Antes de nada un par de comentarios, de lo que vas a necesitar y tal.
'Primero, vamos a necesitar 1 variable fija (no la uses en otro lado) y 2 variables dinámicas (fuera del script las puedes reutilizar).
'Después, asumo que el mini que anda por la cuerda es el normal, el que cambia es el que está en el punto de equilibrio.
'Es muy importante que a la cuerda solo se pueda acceder mirando en la dirección en la que quieras cruzar.
'Otra cosa importante es que necesitas 1 mini para el equilibrio hacia la izquierda y otro diferente hacia la derecha.



#org @Start
compare 0x(VariableCuerdaPuesta) 0x0 'Esta es la variable que le asignas a la cuerda en cuestión, además, la tienes que usar para el script de nivel de los setmaptiles, si está en 1 es que la cuerda esta puesta.
if 0x1 goto @¿TienesCuerda? 'Si no has puesto la cuerda, vamos a ver si tienes alguna.
goto @CruzarCuerda 'Si ya has puesto la cuerda.



'---------------- Esta es la parte de colocar la cuerda y tal.



#org @¿TienesCuerda?
msgbox @text¿TienesCuerda? 0x5 'Este texto es el de "¿Pongo una cuerda para cruzar el acantilado?"
compare LASTRESULT 0x1
if 0x1 goto @PonerCuerda
msgbox @textNoPongoCuerda 0x6 'No pongo la cuerda.
end



#org @PonerCuerda
checkitem 0x55 0x1
compare LASTRESULT 0x0
if 0x1 goto @NoTienesCuerda
fadescreen 0x1
removeitem 0x55 0x1
setvar 0x(VariableCuerdaPuesta) 0x1
setmaptile 0x 0x 0x 0x1
'Todos los setmaptiles que sean necesarios
special 0x8E
pause 0x20
fadescreen 0x0
msgbox @textCuerdaPuesta 0x6 'Texto de ya he colocado la cuerda
goto @CruzarCuerda



#org @NoTienesCuerda
msgbox @textNoTienesCuerda 0x6
end



'---------------- Aquí es donde empieza la movida de verdad, el hacer que se cruce la cuerda.



#org @CruzarCuerda
msgbox @text¿TienesCuerda? 0x5 'Este texto es el de "Puedo cruzar el acantilado por la cuerda, pero podría caerme. ¿Lo cruzo?"
compare LASTRESULT 0x1
if 0x1 goto @VasACruzarLaCuerda
msgbox @textTeRajas 0x6 'Texto de "Te rajas y no cruzas."
end



#org @VasACruzarLaCuerda
compare PLAYERFACING 0x4 'Si quisieras hacerlo de arriba a abajo tienes que cambiar el 4 por un 1, y cambiar @VasACruzarLaCuerdaEstasIzq por @VasACruzarLaCuerdaEstasAr (y el otro igual pero por abajo).
if 0x1 goto @VasACruzarLaCuerdaEstasIzq
goto @VasACruzarLaCuerdaEstasDer



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



#org @VasACruzarLaCuerdaEstasIzq
applymovement 0xFF @movAndarHastaCentroI 'Desde la izquierda hasta el centro.
waitmovement 0xFF
setvar 0x4054 0x 'El mini de equilibrio mirando hacia la Derecha.
callasm 0x805BE61
msgbox @textEquilibrio 0x6 'El texto de que tienes que mantener el equilibrio, explicas que si te vas para una dirección tienes que pulsar la tecla opuesta para no caerte.
goto @MiniJuegoEquilibrio



#org @VasACruzarLaCuerdaEstasDer
applymovement 0xFF @movAndarHastaCentroD 'Desde la derecha hasta el centro.
waitmovement 0xFF
setvar 0x4054 0x 'El mini de equilibrio mirando hacia la Izquierda.
callasm 0x805BE61
msgbox @textEquilibrio 0x6 'El texto de que tienes que mantener el equilibrio, explicas que si te vas para una dirección tienes que pulsar la tecla opuesta para no caerte.
goto @MiniJuegoEquilibrio



'---------------- Vamos a hacer la mágia del minijuego.

#org @MiniJuegoEquilibrio
setvar 0x(VariableContador) 0x0 'La variable que mira el nº de veces que has mantenido el equilibrio.
pause 0x20
random 0x5 'Estas 3 lineas son por si quieres hacer que el nº de veces que tengas que mantener el equilibrio sea aleatorio, en este caso lo ha puesto entre 5 y 9.
copyvar 0x(VariableObjetivo) LASTRESULT
addvar 0x(VariableObjetivo) 0x5
goto [MENTION=25770]Aleatorio[/MENTION]



#org [MENTION=25770]Aleatorio[/MENTION]
comparevars 0x(VariableContador) 0x(VariableObjetivo) 'Veamos si ya has mantenido el equilibrio todas las veces necesarias.
if 0x1 goto @CruzasLaCuerda
random 0x2
compare LASTRESULT 0x0
if 0x1 goto @TeMuevesArriba
goto @TeMuevesAbajo



#org @TeMuevesArriba 'El mini se mueve hacia arriba, vas a tener que pulsar la tecla hacia abajo rapido o te caeras
applymovement 0xFF @movArr
pause 0x5
comparefarbytetobyte 0x4000130 0x7F 'Si pulsas la tecla de abajo te mantienes.
if 0x1 goto @TeMantienes
comparefarbytetobyte 0x4000130 0xBF 'Si pulsas la tecla de arriba te caes.
if 0x1 goto @TeCaesArr
pause 0x5
comparefarbytetobyte 0x4000130 0x7F
if 0x1 goto @TeMantienes
comparefarbytetobyte 0x4000130 0xBF
if 0x1 goto @TeCaesArr
pause 0x5
comparefarbytetobyte 0x4000130 0x7F
if 0x1 goto @TeMantienes
comparefarbytetobyte 0x4000130 0xBF
if 0x1 goto @TeCaesArr
pause 0x5
comparefarbytetobyte 0x4000130 0x7F
if 0x1 goto @TeMantienes
comparefarbytetobyte 0x4000130 0xBF
if 0x1 goto @TeCaesArr
pause 0x5
goto @TeCaesArr 'Si no pulsas nada, te caes

#org @TeMuevesAbajo 'El mini se mueve hacia abajo, vas a tener que pulsar la tecla hacia arriba rapido o te caeras
applymovement 0xFF @movAbj
pause 0x5
comparefarbytetobyte 0x4000130 0xBF
if 0x1 goto @TeMantienes
comparefarbytetobyte 0x4000130 0x7F
if 0x1 goto @TeCaesAbj
pause 0x5
comparefarbytetobyte 0x4000130 0xBF
if 0x1 goto @TeMantienes
comparefarbytetobyte 0x4000130 0x7F
if 0x1 goto @TeCaesAbj
pause 0x5
comparefarbytetobyte 0x4000130 0xBF
if 0x1 goto @TeMantienes
comparefarbytetobyte 0x4000130 0x7F
if 0x1 goto @TeCaesAbj
pause 0x5
comparefarbytetobyte 0x4000130 0xBF
if 0x1 goto @TeMantienes
comparefarbytetobyte 0x4000130 0x7F
if 0x1 goto @TeCaesAbj
pause 0x5
goto @TeCaesAbj


'Nota, si ves que apenas te da tiempo a pulsar la tecla simplemente agrega alguna comparación extra.

'Aquí está la parte de si pierdes.


#org @TeCaesArr 'Te caes, has perdido.
compare 0x4054 0x 'Comparas si lleva el mini de equilibrio que mira a la derecha.
if 0x1 goto @CaesArrID
goto @CaesArrDI

@CaesArrID
setvar 0x4054 0x 'Mini del prota normal.
callasm 0x805BE61
applymovement 0xFF @movCaerseArr
waitmovement 0xFF
warp 0x 0x 0xA 0x 0x 'Tienes que volver al lado izquierdo.
pause 0x40
end

@CaesArrDI
setvar 0x4054 0x 'Mini del prota normal.
callasm 0x805BE61
applymovement 0xFF @movCaerseArr
waitmovement 0xFF
warp 0x 0x 0xA 0x 0x 'Tienes que volver al lado derecho.
pause 0x40
end



#org @TeCaesAbj
compare 0x4054 0x 'Comparas si lleva el mini de equilibrio que mira a la derecha.
if 0x1 goto @CaesAbjID
goto @CaesAbjDI

@CaesAbjID
setvar 0x4054 0x 'Mini del prota normal.
callasm 0x805BE61
applymovement 0xFF @movCaerseAbj
waitmovement 0xFF
warp 0x 0x 0xA 0x 0x 'Tienes que volver al lado izquierdo.
pause 0x40
end

@CaesAbjDI
setvar 0x4054 0x 'Mini del prota normal.
callasm 0x805BE61
applymovement 0xFF @movCaerseAbj
waitmovement 0xFF
warp 0x 0x 0xA 0x 0x 'Tienes que volver al lado derecho.
pause 0x40
end


'Aquí tenemos lo que ocurre si pulsas bien.


#org @TeMantienesArr
addvar 0x(VariableObjetivo) 0x1
applymovement 0xFF @movVuelvesAlCentro
waitmovement 0xFF
pause 0x40 'Nota, en este pause se podría poner también un radom, para que el tiempo entre cada intento pueda cambiar, pero te lo dejo a ti si te gusta la idea.
goto [MENTION=25770]Aleatorio[/MENTION]

#org @TeMantienesAbj
addvar 0x(VariableObjetivo) 0x1
applymovement 0xFF @movVuelvesAlCentro
waitmovement 0xFF
pause 0x40 'Nota, en este pause se podría poner también un radom, para que el tiempo entre cada intento pueda cambiar, pero te lo dejo a ti si te gusta la idea.
goto [MENTION=25770]Aleatorio[/MENTION]


'Si superas la prueba.


#org @CruzasLaCuerda
compare 0x4054 0x 'Comparas si lleva el mini de equilibrio que mira a la derecha.
if 0x1 goto @CruzasID
goto @CruzasDI


#org @CruzasID
setvar 0x4054 0x 'Mini del prota normal.
callasm 0x805BE61
applymovement 0xFF @movAndarHastaDerecha
waitmovement 0xFF
msgbox @textCuerdaCruzada 0x6 'El texto de que has cruzado la cuerda.
end


#org @CruzasDI
setvar 0x4054 0x 'Mini del prota normal.
callasm 0x805BE61
applymovement 0xFF @movAndarHastaIzquierda 
waitmovement 0xFF
msgbox @textCuerdaCruzada 0x6 'El texto de que has cruzado la cuerda.
end


'---------------- Los textos.


#org @text¿TienesCuerda? 'Este texto es el de "¿Pongo una cuerda para cruzar el acantilado?"


#org @textNoPongoCuerda 'Texto de "No pongo la cuerda."


#org @textCuerdaPuesta 'Texto de "Ya he colocado la cuerda."


#org @textNoTienesCuerda 'Texto de "Vaya, parece que no tengo cuerda."


#org @text¿TienesCuerda? 'Este texto es el de "Puedo cruzar el acantilado por la cuerda, pero podría caerme. ¿Lo cruzo?"


#org @textTeRajas 'Texto de "Te rajas y no cruzas."


#org @textEquilibrio 'El texto de que tienes que mantener el equilibrio, explicas que si te vas para una dirección tienes que pulsar la tecla opuesta para no caerte.


#org @textCuerdaCruzada 'El texto de que has cruzado la cuerda.



'---------------- Los movimientos.


#org @movAndarHastaCentroI 'El movimiento que va desde la izquierda hasta el centro, es decir X pasos a la derecha. (Al final del movimiento pegaría que pusieras una "!", para el texto que viene despues.


#org @movAndarHastaCentroD 'El movimiento que va desde la derecha hasta el centro, es decir X pasos a la izquierda. (Al final del movimiento pegaría que pusieras una "!", para el texto que viene despues.


#org @movAndarHastaDerecha 'El movimiento para terminar de cruzar la cuerda de izquierda a derecha. 


#org @movAndarHastaIzquierda 'El movimiento para terminar de cruzar la cuerda de derecha a izquierda.


#org @movArr 'El movimiento de balanceo hacia arriba.


#org @movAbj 'El movimiento de balanceo hacia abajo.


#org @movCaerseArr 'El movimiento de que te caes arriba.


#org @movCaerseAbj 'El movimiento de que te caes abajo.


#org @movVuelvesAlCentro 'Vuelve a estar en la posición de equilibrio el mini.

Cualquier duda o error avísame y lo reviso, disfruta del script y cuando puedas grabarlo avísame, y subo el vídeo a mi canal y lo pongo en mi recopilación de scripts ;)
 

~Zane~

Let's Roll Arceus
Rom base: FR USA 1.0
Hack: Pokémon Eternal Galaxy
Descripción breve del script: Un script para poder usar el PC
Descripción detallada del script: El script me servira para eliminar las pc del Centro pokemon y poner el script en un objeto para tener la PC en la mochila lo cual se me hara mas facil y podre poner la tienda unida con el centro pokemon
Cosas útiles que pueda usar de la rom: mega evolucion (de touched pero con particulas cambiadas)

He tratado de usar muchos pero se reinicia el juego o si no se pone la pantalla negra pero si sale el sonido de la PC :/ espero me lo puedas hacer

Gracias y Salu2 :cool:
 

L!no

GBA Developer
@Dani_SR_17
Rom base: pokemon fire red USA
Hack: pokemon sunred
Descripción breve :una batalla de entrenamiento
Descripción detallada: una batalla programada con un objeto, que tu elijes un pokemon que ayas visto o capturado y el nivel en el que está, pero no puedes capturarlo, y al terminar la batalla tus pokemon se.recuperan.además, quiero que el objeto te lo den en el último gimnasio.
Cosasutiles de la Rom:no lo sé, mapas, sprites de todas las gen, etc.
 
Última edición:

Juan Kio

Aprendiendo decomp...
Rom base: pokemon fire red USA
Hack: pokemon legend XYZ
Descripción breve :Una tienda para comprar pokemons
Descripción detallada:Bueno la tienda funcionaria de la miama manera que la del casino donde puedes cambiar coins por pokemons pero yo quisiera que se pudiera comprar con dinero asi es mas facil de obtener

Desde ya gracias :D.
 

Dani_SR_17

¡Pokémon LionHeart!
Rom base: FR USA 1.0
Hack: Pokémon Eternal Galaxy
Descripción breve del script: Un script para poder usar el PC
Descripción detallada del script: El script me servira para eliminar las pc del Centro pokemon y poner el script en un objeto para tener la PC en la mochila lo cual se me hara mas facil y podre poner la tienda unida con el centro pokemon
Cosas útiles que pueda usar de la rom: mega evolucion (de touched pero con particulas cambiadas)

He tratado de usar muchos pero se reinicia el juego o si no se pone la pantalla negra pero si sale el sonido de la PC :/ espero me lo puedas hacer

Gracias y Salu2 :cool:
Lo que comentas no tiene complicación alguna, creo que deberías ser capaz de hacerlo tu solo, solo has de usar:
special 0x3C
waitstate
Para abrir el PC y ya esta, asignarle el script a un item y listo.
No obstante me parece una mala idea hacer eso, ya que si tienes el PC siempre contigo podrás curar a los Pokémon en cualquier momento y lugar usándolo.

@Dani_SR_17
Rom base: pokemon fire red USA
Hack: pokemon sunred
Descripción breve :una batalla de entrenamiento
Descripción detallada: una batalla programada con un objeto, que tu elijes un pokemon que ayas visto o capturado y el nivel en el que está, pero no puedes capturarlo, y al terminar la batalla tus pokemon se.recuperan.además, quiero que el objeto te lo den en el último gimnasio.
Cosasutiles de la Rom:no lo sé, mapas, sprites de todas las gen, etc.
Este script más que difícil es engorroso (además, ya dije que exijo un mínimo nivel para hacer pedidos y con "quiero que el objeto te lo den en el último gimnasio" me demuestras que acabas de empezar), pero te diré que si quieres hacerlo bien tendrías que meter la rutina para introducir un nº que hay en Pokéco y usarla para pedir el nivel y la especie. (La forma cutre es hacerlo con multichoice).
Los almacenas en variables y luego pones esas variables en el wildbattle, sobre el como hacer que no sea capturable hay una rutina en Pokeco.
Lo complicado sería saber si lo has visto o no, se que hay cosas investigadas del asunto, pero no se si se podrá saber si un determinado Pokémon lo has visto o no, sería cuestión de que te informaras por Pokeco.

Rom base: pokemon fire red USA
Hack: pokemon legend XYZ
Descripción breve :Una tienda para comprar pokemons
Descripción detallada:Bueno la tienda funcionaria de la miama manera que la del casino donde puedes cambiar coins por pokemons pero yo quisiera que se pudiera comprar con dinero asi es mas facil de obtener

Desde ya gracias :D.
Mirate algún tutorial de los comandos de XSE para cobrar dinero, con eso no deberías tener problemas
 

KrenoZ

Pulling off deep emotions
Rom base Pokémon FireRed
Hack: Pokémon La Resurección de Krenoz
Descripción breve: Si se acaba el tiempo,pierdes el juego
Descripción detallada: Que a partir de determinada parte se tengan qué cumplir los objetivos del hack en menos de un tiempo determinado y que durante la aventura en una esquina aparezca un reloj marcando el tiempo que queda,si no se cumple con el objetivo en ese tiempo aparezca una pantalla de Game Over o algo parecido.

No se si pueda en un script,pero si se puede te agradecería mucho.

Saludos.
 

Dani_SR_17

¡Pokémon LionHeart!
Rom base Pokémon FireRed
Hack: Pokémon La Resurección de Krenoz
Descripción breve: Si se acaba el tiempo,pierdes el juego
Descripción detallada: Que a partir de determinada parte se tengan qué cumplir los objetivos del hack en menos de un tiempo determinado y que durante la aventura en una esquina aparezca un reloj marcando el tiempo que queda,si no se cumple con el objetivo en ese tiempo aparezca una pantalla de Game Over o algo parecido.

No se si pueda en un script,pero si se puede te agradecería mucho.

Saludos.
Eso habría que hacerlo con ASM, es algo que se escapa a lo que puedo hacer, pregunta en Pokéco o pon un post por el foro.
 
Estado
Cerrado para nuevas respuestas.
Arriba