ID:155919
 
I've noticed that a lot of RPG games here on Byond use RPG speech boxes like you would see in a game of Final Fantasy when an npc is talking to you or when something is being described to you. I've been trying to replicate this effect, but unfortunately I'm only able to make a rectangle and add a little bit of text using LummoxJR's DMIFontsPlus library. I would like to know how to recreate this effect in DM, thank you for your time.

This is what I've gotten to, but I want to know how to make it move on to the rest of the text when spacebar is pressed.

Photobucket

This is what I used to get this effect:
var/dmifont/TahomaBold11pt/myFont = new

obj/Textbox
icon = 'Textbox.PNG'
screen_loc = "2,1"
layer = FLY_LAYER

proc/WriteText(txt)
var/icon/I = myFont.DrawText(txt, 15,10, width = 516, maxlines = 5,\
flags = DF_WRAP_ELLIPSIS)
src.overlays += I




mob/Login()
var/obj/Textbox/T = new
T.WriteText("Professor Carpe: Contrary to popular belief, Lorem Ipsum is not simply random text. It has roots in \
a piece of classical Latin literature from 45 BC, making it over 2000 years old. Richard \
McClintock, a Latin professor at Hampden-Sydney College in Virginia, looked up one of the \
more obscure Latin words, consectetur, from a Lorem Ipsum passage, and going through the cites \
of the word in classical literature, discovered the undoubtable source. Lorem Ipsum comes from \
sections 1.10.32 and 1.10.33 of de Finibus Bonorum et Malorum (The Extremes of Good and Evil) \
by Cicero, written in 45 BC. This book is a treatise on the theory of ethics, very popular during \
the Renaissance. The first line of Lorem Ipsum, Lorem ipsum dolor sit amet.., comes from a line in section 1.10.32."
)

client.screen += T
..()
I believe in the demo that lummox jr attached with the DmiFontsPlus library has something like this.
Possibly you could do something simple and slightly tedious, like when they click the speech box it subtracts those first 10 words and adds more words to the blank space below, because trying to do the whole thing in one peice will not work.
I think making a output window is the way to do this now...