tuts_gba
Thread Id: 16824
Thread Name: R | Scripting | Cajas de texto transparentes
#0
Javi4315♪ 13374
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í:

call 0x800000


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.
#1
Andrea 25004
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...
#2
Piplup-fan 17060
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!
#3
Javi4315♪ 13374
Iniciado por Andrea
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
#4
eing 12479
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...
#5
Javi4315♪ 13374
Iniciado por eing
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
#6
eing 12479
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..
#7
Javi4315♪ 13374
Iniciado por eing
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.