Registrarse

[pokeruby] Tu propio evento para dar las deportivas (tiene plot twist, leer hasta el final)

Jason

PkPower déjame poner tildes en mi nick ¬¬
Hola, hoy el título es bastante descriptivo, ¿no? Pues vamos a ello.

Este tuto desenmascara una trampa que esconde pokéruby en la que espero no ser el único que cayó o caerá, y bueno, busco evitarlo.

Lo primero que necesitamos es determinar qué FLAG habilita las deportivas al pulsar el botón B. ¿Cuando, o mejor dicho, dónde sucede esto? En Villa Raíz, tu madre te espera fuera de casa luego de que recibes la pokédex de manos del profesor Abedul.

Entonces revisemos el script que lo hace. Para ello iremos a "data/maps/LittlerootTown/scripts.inc", al mismo tiempo que con porymap abrimos el mapa en cuestión y comprobamos que el script de la madre en cuestión se llama "LittlerootTown_EventScript_14DCE2".

Con nuestro súper poder de programadores (Ctrl + F) lo buscamos en el archivo. Es este:

Código:
LittlerootTown_EventScript_14DCE2:: @ 814DCE2
	lock
	faceplayer
	checkplayergender
	compare RESULT, 0
	call_if_eq LittlerootTown_EventScript_14D926
	compare RESULT, 1
	call_if_eq LittlerootTown_EventScript_14D931
	call LittlerootTown_EventScript_14DD38
	applymovement 4, LittlerootTown_Movement_1A0841
	waitmovement 0
	opendoor VAR_SPECIAL_9, VAR_SPECIAL_A
	waitdooranim
	applymovement 4, LittlerootTown_Movement_14DCE0
	waitmovement 0
	hideobjectat 4, MAP_LITTLEROOT_TOWN
	closedoor VAR_SPECIAL_9, VAR_SPECIAL_A
	waitdooranim
	goto LittlerootTown_EventScript_14DD2B
	end
Como ven, hace un checkplayergender y salta a funciones distitas, cualquiera nos sirve. Vamos a la prmiera ("LittlerootTown_EventScript_14D926"), que es

Código:
LittlerootTown_EventScript_14D926:: @ 814D926
	setvar VAR_SPECIAL_9, 5
	setvar VAR_SPECIAL_A, 8
	return
Tal parece ser que esa no es.
Seguimos con el código y ahora vemos un call, a "LittlerootTown_EventScript_14DD38". ¿Será esa?

Código:
LittlerootTown_EventScript_14DD38:: @ 814DD38
	msgbox LittlerootTown_Text_16A8FD, 4
	playfanfare MUS_FANFA4
	message LittlerootTown_Text_16AA32
	waitfanfare
	waitmessage
	setflag FLAG_RECEIVED_RUNNING_SHOES
	msgbox LittlerootTown_Text_16AA5C, 4
	msgbox LittlerootTown_Text_16AB10, 4
	closemessage
	delay 30
	return
Estaba al final del archivo, tenemos mensajes, una fanfarra (la música de cosas buenas, ese tema corto de poco más de un segundo que amamos escuchar), más fanfarras y oh, eureka! "FLAG_RECEIVED_RUNNING_SHOES".

Bien, entonces hagamos un signal en el cuarto del prota.

Código:
LittlerootTown_EventScript_Zapatillas::
	playfanfare MUS_FANFA4
	msgbox Zapatillas, 3
	setflag FLAG_RECEIVED_RUNNING_SHOES
	waitfanfare
	end
En "data/maps/LittlerootTown/text.inc" podemos poner algo como
Código:
Zapatillas::
	.string "Has recibido unas DEPORTIVAS.$"
Ahora en porymap creamos el evento (una señal), la ponemos donde queramos en el mapa y finalmente le enlazamos el script copiando el nombre de nuestro script donde dice "script" en el pory, vamos, que no tiene ninguna complicación. Agujero cuadrado, clavija cuadrada.

Y si siguen el tutorial de cómo correr en interiores de @Laquin , entonces basta con compilar, iniciar una nueva partida y hablarle a la señal.

Probamos y... no funciona :mad: . ¿Por qué? Porque dije que tenía trampa, ¡y la tiene! El plot twist es que la flag FLAG_RECEIVED_RUNNING_SHOES lo que hace es esconder a la madre del mapa, nada más! ¿Entonces cómo hacemos para correr? ¿No se puede?
Por supuesto que se puede, volvamos a nuestro amado script "LittlerootTown_EventScript_14DCE2" y nos fijamos en algo: al final tiene un "goto", y la nueva sospechosa de esconder la verdad es "LittlerootTown_EventScript_14DD2B"!!!
La buscamos.
Es la que está justo arriba:
Código:
LittlerootTown_EventScript_14DD2B:: @ 814DD2B
	removeobject 4
	setflag FLAG_SYS_B_DASH
	setvar VAR_LITTLEROOT_STATE, 4
	release
	end
Sí, queridos lectores, la flag que permite correr es FLAG_SYS_B_DASH. Basta con reemplazarla en nuestro script por la falsa, compilamos y... ¡listo! Ya podemos correr cuando queramos, sin depender de esa malvada mujer que nos echa de casa (referencia XD).

En fin, no pongo vídeo ni gif porque sería hacer spoilers del Pokémon Uncolored, que por cierto pueden ver en este tema ;)

Les dejo de tarea hacer el gif y publicarlo como respuesta a este tutorial.
 

PkPower

Webmaster
Miembro del equipo
Webmaster
Respuesta: [pokéruby] Tu propio evento para dar las deportivas (tiene plot twist, leer hasta el final)

Hacía bastante que no veía un tutorial de PokeRuby. Felicidades Jasón por hacer un tutorial tan explicativo y entretenido de leer (además de útil).
 

kakarotto

Leyenda de WaH
Respuesta: [pokéruby] Tu propio evento para dar las deportivas (tiene plot twist, leer hasta el final)

No es por nada Jason, pero el nombre de la flag no quiere decir nada nunca. Está bien nombrarlo pero debes de saber que los nombres de las flags siempre son ambiguos. En cualquier caso no está nada mal. Estos son los aportes que hay que hacer

Saludos
 

Katherine

Omnipresente
Miembro de honor
Respuesta: [pokéruby] Tu propio evento para dar las deportivas (tiene plot twist, leer hasta el final)

Buen tutorial, sin duda. Aunque podría verse la posibilidad de activar las zapatillas sin necesariamente utilizar un script para hacer el setflag. En el RH binario es bien fácil hacerlo y solo es cambiar un byte, así que seguramente será posible hacerlo sin ningún script de por medio.

No es por nada Jason, pero el nombre de la flag no quiere decir nada nunca. Está bien nombrarlo pero debes de saber que los nombres de las flags siempre son ambiguos. En cualquier caso no está nada mal. Estos son los aportes que hay que hacer

Saludos
En realidad sí que los nombres describen lo que hacen. Sean flags (o variables booleanas, cómo quieras decirle), funciones, etc. Y no hacerlo es una muy mala práctica que puede llevar a confusiones. Solo hay que comprobar el código fuente de cualquier cosa y te darás cuenta de que siempre son lo más descriptibles posibles, sin alargarse demasiado, por supuesto.

En este caso, la flag indica cuando hay que activarla y no exactamente lo qué hace. Es la flag que se activa después de recibir las zapatillas. La flag no es FLAG_RECEIVE_RUNNING_SHOES sino FLAG_RECEIVED_RUNNING_SHOES así que es un poco confuso pero sí te da una buena idea de cuándo se utiliza (recuerdo que los minis solo se pueden hacer desaparecer de forma permanente activando la flag que tienen asignada).

¡Nos vemos! Miau revoir~.
 
Arriba