Registrarse

[Scripting] Textbox transparentes

Javi4315

Babyface
Miembro de honor
Autor original: PokemonMasters

Paseando por Pokecommunity me he encontrado con este tutorial. En condiciones normales no lo postearía porque no soy de traer tutoriales de otros, sino de hacer los míos propios. Pero este tutorial me ha llamado mucho la atención. Mirad el resultado:


Quiero añadir que esto no es la traducción del tutorial, sino un poco mejor explicado que como lo ponen ahí a mi manera.​

Compilando la función

Para poner transparente la caja de texto tendremos que compilar un script. Veréis. Hay que hacer unos pocos de writebytetooffsets (WBTO). Estos WBTO hay que hacerlos cada vez que queramos mostrar la caja transparente, pero eso sería consumir demasiado espacio. Entonces lo que haremos será compilarlo a parte una sola vez y simplemente llamar a esa dirección cuando queramos hacerlo, lo cuál no consumirá tantísimo espacio.

Bien, vamos a compilar esto:

#dynamic 0x800000

#org @caja
writebytetooffset 0x3F 0x4000048
writebytetooffset 0x1F 0x4000049
writebytetooffset 0x41 0x4000050
writebytetooffset 0x3F 0x4000051
writebytetooffset 0xF 0x4000052
writebytetooffset 0xA 0x4000053
writebytetooffset 0xFF 0x202F0AA
writebytetooffset 0xFF 0x202F0AB
writebytetooffset 0x0 0x202F0B8
writebytetooffset 0x0 0x202F0B9
writebytetooffset 0x0 0x202F0AC
writebytetooffset 0x0 0x202F0AD
writebytetooffset 0x0 0x202F0BE
writebytetooffset 0x0 0x202F0BF
writebytetooffset 0x0 0x202F0C0
writebytetooffset 0x0 0x202F0C1
writebytetooffset 0x0 0x202F0C2
writebytetooffset 0x0 0x202F0C3
writebytetooffset 0x0 0x202F0C4
writebytetooffset 0x0 0x202F0C5
writebytetooffset 0x0 0x202F0C6
writebytetooffset 0x0 0x202F0C7
writebytetooffset 0x0 0x202F0C8
writebytetooffset 0x0 0x202F0C9
return
Esos son todos los WBTO. Como podéis ver, al final hay un "return". Esto nos permitirá volver al script desde el que llamamos ha esta función mediante el comando "call".


Haciendo el script

Vamos a hacer un script normal en el que un mini te diga cualquier cosa. Así que hacemos el script normal pero antes del msgbox llamamos a nuestra función. La llamaremos así:

call 0x(pointer donde se compiló la función)
A mí se me compiló en el offset 0x800000, por lo que lo pondría así:

Así que esto lo vamos a implementar en nuestro script normal de toda la vida así:

#dynamic 0x800000

#org @comienzo
lock
faceplayer
call 0x800000
msgbox @1 0x6
release
end

#org @1
= Este es un ejemplo de caja de texto\ntransparente.
Ahora se lo asignamos a un mini y probamos. La caja de texto será transparente (o, mejor dicho, semitransparente xD).


Cuándo llamar a la función

Tendréis que llamar a la función siempre que se refresque el mapa mediante un script para que las cajas de texto vuelvan a verse transparentes. Recordad, tan simple como poner un call antes de que aparezca cualquier caja de texto y se verán transparentes hasta que se refresque el mapa.


Lo he probado yo mismo y puedo asegurar que funciona a la perfección. No obstante, si tenéis algún problema, decidlo.

También deberéis recordar el offset donde se compiló la función para llamarla siempre que sea necesario. Recomiendo apuntarla.
 
Última edición por un moderador:

Andrea

Usuario mítico
Con esto usted tendrá el cuadro de texto semi-trasparente pero también habrá bichos molestos que es por eso que utilizando el asm que dijo Guaiser brillante es siempre activo
El error en cuestión son las siguientes:
-Si abre el menú, habrá el cuadro de texto viejo semi-transparente de color blanco ...
-Con estos wbto no puede convertirse en texto de color
-Con estos wbto no puede convertirse en un cuadro de texto en blanco transparente
-los nombres de las ciudades y las rutas serán como el cuadro de texto antiguo, pero el color blanco como el menú transparente
-el efecto termina cuando se utiliza una urdimbre
Así que le digo a usted que si usted no sabe asm poner el tetxbox normal...
 
A comentar!

Aunque no tenga ni idea de scripts, creo que lo entiendo al menos la parte del script, no los WBTOs.

Es un buen aporte, aunque el tutorial no sea tuyo, y se agradece. Seguro que hay gente que no se pasa por PC y que agradece igual estos aportes.

Buen aporte! Sigue así!

That's all,

Plup!
 

Javi4315

Babyface
Miembro de honor
Con esto usted tendrá el cuadro de texto semi-trasparente pero también habrá bichos molestos que es por eso que utilizando el asm que dijo Guaiser brillante es siempre activo
El error en cuestión son las siguientes:
-Si abre el menú, habrá el cuadro de texto viejo semi-transparente de color blanco ...
-Con estos wbto no puede convertirse en texto de color
-Con estos wbto no puede convertirse en un cuadro de texto en blanco transparente
-los nombres de las ciudades y las rutas serán como el cuadro de texto antiguo, pero el color blanco como el menú transparente
-el efecto termina cuando se utiliza una urdimbre
Así que le digo a usted que si usted no sabe asm poner el tetxbox normal...
¿Y? Ni que fueran cosas que no se pudieran arreglar. Quizás lo de los colores no, pero tampoco creo que se necesiten en esas circunstancias. Además, hay veces que hay que sacrificar algunas cosas para hacer otras xD
 

eing

Miembro de honor
Miembro de honor
Pero si esto ya esta inventado..
El primero en poner como hacerla transparente fui yo..
Y para ese color era logico el cambiar las letras y el textbox de color..
Igual se agradece el aporte.

Btw, el bug que dice andrea es tener dosfunciones, una normal y otra invishle para cuando acabe su uso dejarla como estaba y no sufrir cambios extraños...
 

Javi4315

Babyface
Miembro de honor
Pero si esto ya esta inventado..
El primero en poner como hacerla transparente fui yo..
Y para ese color era logico el cambiar las letras y el textbox de color..
Igual se agradece el aporte.

Btw, el bug que dice andrea es tener dosfunciones, una normal y otra invishle para cuando acabe su uso dejarla como estaba y no sufrir cambios extraños...
¿Pusiste este tutorial? Yo he buscado antes y no lo he visto xD
 

eing

Miembro de honor
Miembro de honor
Este tutorial NO, simplemente puse los wbto para poner el texto transparente.
Si no vete al tema que creo zekro, de aportes i/o & ram.
Veras algo como "efectos especiales - offset - bytes"
Y "textbox invisble - offset - bytes"
Y al poner esos bytes se te ponia el textbox semitransparente. (Pero con los colores originales de tu textbox) luego ya el ponerla negra y letras blancas es cosa del usuario..
 

Javi4315

Babyface
Miembro de honor
Este tutorial NO, simplemente puse los wbto para poner el texto transparente.
Si no vete al tema que creo zekro, de aportes i/o & ram.
Veras algo como "efectos especiales - offset - bytes"
Y "textbox invisble - offset - bytes"
Y al poner esos bytes se te ponia el textbox semitransparente. (Pero con los colores originales de tu textbox) luego ya el ponerla negra y letras blancas es cosa del usuario..
Bueno, yo eso no lo había visto. Pero en fin, también puedes reclamárselo al autor original si crees que es inapropiado.
 

Naren Jr.

Puto amo
Usuario de Platino
Respuesta: R | Scripting | Cajas de texto transparentes

Hola todo poderoso @Javi4315♪ se que este post paso hace mucho pero por este método se me hace mas fácil por ahora pero mira lo he hecho y me ha quedado así:


He hecho algo mal uwu por favor una mano con esto de las textbox transparentes
Saludos /._./
 

eing

Miembro de honor
Miembro de honor
Respuesta: R | Scripting | Cajas de texto transparentes

Hola todo poderoso @Javi4315♪ se que este post paso hace mucho pero por este método se me hace mas fácil por ahora pero mira lo he hecho y me ha quedado así:


He hecho algo mal uwu por favor una mano con esto de las textbox transparentes
Saludos /._./
No haces nada mal, salvo que si quieres tener permanentemente la tbox invisble si o si ha de ser negra o con tonos cercanos a él.
Si no no funcionará bien la semitransparencia.

Resumiendo: letra blanca y tbox negro.
 

Cheve

MoonLover~
Miembro de honor
Respuesta: R | Scripting | Cajas de texto transparentes

Pero... tambien se puede encontrar un equilibrio @eing




Asi me queda a mi usando

writebytetooffset 0xC 0x4000052
writebytetooffset 0x3 0x4000053

:p
 

CelticFrostie

Sexador de pollos
Hola todo poderoso @Javi4315♪ se que este post paso hace mucho pero por este método se me hace mas fácil por ahora pero mira lo he hecho y me ha quedado así:


He hecho algo mal uwu por favor una mano con esto de las textbox transparentes
Saludos /._./
A ver, ni idea de si va en las 3 bases igual, pero esto es un tuto para Ruby y yo en FR la tengo con una rutina ASM, de hecho sólo he visto tutos para meterla en Ruby mediante el WBTO y en FR mediante ASM... Pero no sé xD
 

Naren Jr.

Puto amo
Usuario de Platino
Respuesta: R | Scripting | Cajas de texto transparentes

A ver, ni idea de si va en las 3 bases igual, pero esto es un tuto para Ruby y yo en FR la tengo con una rutina ASM, de hecho sólo he visto tutos para meterla en Ruby mediante el WBTO y en FR mediante ASM... Pero no sé xD
xDDD quizás por que he usado como basé FR pero bueno me tocará con la rutina ASM que no entiendo nada pero ya saldrá muchas gracias!!!
 

Cheve

MoonLover~
Miembro de honor
Respuesta: R | Scripting | Cajas de texto transparentes

Chicos, si es lo mismo, para cualquier ROM de GBA, lo que se hace acá es trabajar con el sistema de I/O (Imput . Output (Entrada Salida) ) de la pantalla y con bits que la configuran para que funcione de ésta manera.

La rutina de FireRed hace lo mismo pero con ASM :p

Saludetes!
 

Naren Jr.

Puto amo
Usuario de Platino
Respuesta: R | Scripting | Cajas de texto transparentes

Bueno >:C quien me enseña a hacer el ASM bien? lo había hecho pero me jodio la paleta de los tiles de los arboles no se que hice mal, @Cheve_X te he escrito al skype si quieres me respondes y me aclaras con ASM bien si?
 

CelticFrostie

Sexador de pollos
xDDD quizás por que he usado como basé FR pero bueno me tocará con la rutina ASM que no entiendo nada pero ya saldrá muchas gracias!!!
Es más fácil de lo que parece. Lo difícil que tiene ASM es hacer las rutinas y aprenderlo, esto es simplemente insertar una que es puro manejo de hex, no tienes que popear ni pushear nada, te viene todo hechito xd

http://whackahack.com/foro/t-28239/fr-asm-msgbox-transparentes

Recuerda: Inserta las rutinas en los offsets dados cuando sea necesario, y cuando te lo pida, permuta el offset (por ejemplo si es 12 34 56 permutado queda 56 34 12, es decir, los bytes (esos grupos de dos en dos que ves ahí), inviertes su posición, ej el primero es el tercero, el tercero el primero y el segundo queda donde está.
Te recomiendo usar HxD para esto ya que no me he metido con otro editor hex y a este ya lo tengo pillado. Siempre que se pida, pega ESCRIBIENDO (Ctrl+B), nunca expandiendo, de lo contrario expanderás la ROM, moverás los bytes posteriores de sus offsets originales y pum, todo a la mierda xD

Y siempre, siempre que quieras usarla, usa el callasm en el script con el offset correspondiente (no te olvides de cerrarlo, esto es como si en un MOVECAMERA te olvidas del special 0x114 jajaja)
Otra cosa más personale es que no recomiendo usarla para todo, sólo para carteles o así xD.

Ahí tienes todo especificadito sin que pueda haber lugar a dudas.
Saludos y espero haber ayudado ^^
 

MegaSceptile9

Usuario mítico
Respuesta: R | Scripting | Cajas de texto transparentes

Pero... tambien se puede encontrar un equilibrio @eing




Asi me queda a mi usando

writebytetooffset 0xC 0x4000052
writebytetooffset 0x3 0x4000053

:p
Espera Chevex, solo poniendo esos dos WBTO optienes la semi transparencia?
Y como le hago para que sea negra?
 

eing

Miembro de honor
Miembro de honor
Respuesta: R | Scripting | Cajas de texto transparentes

Espera Chevex, solo poniendo esos dos WBTO optienes la semi transparencia?
Y como le hago para que sea negra?
writebytetooffset 0x3F 0x4000048
writebytetooffset 0x1F 0x4000049
writebytetooffset 0x41 0x4000050
writebytetooffset 0x3F 0x4000051
writebytetooffset 0xF 0x4000052
writebytetooffset 0xA 0x4000053

Eso = configuración de la pantalla de la gba. Activación de efectos en capas, a que capas afectan y grado de alpha blending.

Lo demás wbto que hay son para poner la textbox negra xd
 

Tsuna-Sawada

Décimo jefe Vongola
Respuesta: R | Scripting | Cajas de texto transparentes

@eing hay algun metodo para poder utilizar esto, pero en FR? que no sea vía ASM.
 
Arriba