Importando Conocimientos III: "Cajas de Texto Semi-Transparentes"

Por Fran Agustín el 17/11/2013

IMPORTANDO CONOCIMIENTOS: “CAJAS DE TEXTO SEMI-TRANSPARENTES”





Hola a todos. En esta edición de “Importando Conocimientos” les enseñaré cómo poner una caja de texto semi-transparente, sin ninguna clase de errores. Incluso, con un poco de conocimientos extra (quizás en la próxima entrega muestre cómo, pero no prometo nada), se pueden crear más de una caja de texto personalizada y utilizarlas para distintos mensajes, para el menú y demás.
Todo lo que se requiere para seguir el tutorial son conocimientos básicos de scripting y, quizás, algo de edición hexadecimal.


Herramientas





También necesitaremos dos fragmentos de código ASM (estos no me pertenecen, son de “ep!c”, usuario de PokéCommunity). Tenemos dos versiones, la compilada (que nos da la ventaja de no tener que compilarlo nosotros mismos, lo que hace esto más fácil para los que, como yo, no tenemos conocimientos de ASM) y la descompilada (las ventajas son que puedes usar tus propios offsets y que puedes probarlo completamente por tu cuenta).






Insertando los códigos ASM en el ROM



Abran los dos archivos que descargaron (activate.bin y deactivate.bin) y el ROM en un editor hexadecimal.


Copien todo el contenido del “actívate.bin” y vayan al offset 750020.


Empiezan a seleccionar desde ahí hasta donde ven el 750130, el dígito número 16 (como se muestra en la imagen).


Y pegan el código copiado.
Una vez hecho eso copian todo lo que ven en el “deactivate.bin” y, en el rom, seleccionan desde el dígito siguiente al que termina el código anterior y hasta el 16 del 750230 (como se muestra en la imagen)


Lo pegan.

Ahora, debemos editar las paletas, ya que nuestro código carga la paleta que hay en el 0x750000; sin embargo, si navegan hasta allí, notarán que solo hay puros “FF”.
Así que deben llenar esas dos líneas (32 bytes, que conforman las paletas) con los colores que usaremos.
ep!c nos deja una paleta con tonos negros para la textbox y letras blancas:


2E530000FF7F0000FF7F0000FF7F0000FF7F0000000000000000000000000000


Copian eso, seleccionan dos líneas (la del 750000 y la del 750010, como pueden ver en la imagen)…


Y lo pegan.
Ahora denle a “Archivo”-->”Guardar”

Para cambiar los colores, abrimos el APE y abrimos el rom. A la derecha veremos un cuadro para insertar números (marcado con rojo en la imagen), los reemplazamos por la dirección de la paleta 750000 y le damos a “Cargar”.


img


En donde dice “Paleta Cambiada” podemos ingresar los nuevos colores. Yo usaré un azul para el fondo de la textbox y el mismo blanco para las letras.


img


Le damos a “Guardar”.


Creando un script de texto con esta caja semi-transparente



Ahora hay que armar el script para que salga la textbox. Abrimos el XSE y cargamos el rom.
El script debe tener, antes del msgbox, un “callasm”. Lo que hace es ejecutar una rutina ASM que se ubica en un offset determinado, ese offset es el que se pone luego, la estructura sería:


callasm 0xoffset


En este caso, el script quedaría así:

quote:


#dynamic 0x800000
#org @inicio
lock
faceplayer
callasm 0x750021 (el offset siguiente al que empezamos a pegar el contenido del “actívate.bin”)
msgbox @mensaje 0x6
callasm 0x750139 (el offset siguiente al que empezamos a pegar el contenido del “deactivate.bin”)
end

#org @mensaje
= Probando la textbox\nsemi-transparente.


Cabe destacar que los offsets varían según dónde tienes la rutina, que el “lock” y el “faceplayer” no son estrictamente necesarios y que el mensaje puede cambiarse.

Una vez terminado, le damos al icono de las tuerquitas, es decir lo compilamos.


img


Copiamos el offset que nos dé, creamos un mini en el advance-map y se lo ponemos. Guardamos.


Ahora solo falta probar nuestro script. Mi resultado (con los colores que le puse) es el siguiente:


img



Si no hubiera cambiado los colores, se vería así:


img




Principales Ventajas ante las textboxes con I/O



Algunos harán esto con los WBTO en un script, pero eso tiene algunos errores que con esto no suceden.



  • El menú se verá normal, no semi-transparente.
  • Puedes usar texto de color.
  • Los nombres de ciudades y rutas aparecerán normalmente, no semi-transparentes.
  • El efecto no termina al refrescar la pantalla.




Links Útiles







Con esto me despido, mucha suerte a todos, espero que el tutorial les resulte fácil y que todos puedan agregar sus cajas de texto transparentes. Cualquier duda no tengan miedo y anímense a preguntar.

Comentarios

  • BLAx 19/11/2013 20:03
    Pues me parece un tuto fenomenal, enhorabuena por el palizón que te habrá llevado esto, Franco. De todos modos creo que sería mejor si se recortase la entrada, y que se continuara leyendo en el espacio reservado para esta entrada, que si no queda muy gigante la página, y con el 3G me ha tardado un buen rato en cargarla.
  • FullbusterCS 19/11/2013 06:21
    ¡Muy bien hecho Franco! Me servirá de mucho, está perfecto c:
  • Serg!o 18/11/2013 11:51
    Genial

    muchas gracias franco!