16824-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.