If you haven't already, read the following page from top to bottom and you will have instantaneous knowledge of roughly 90% of all functions for this engine:
http://wiki.frictionalgames.com/hpl2/amn..._functions
The most basic way to display text is through set message, the function looks like this:
SetMessage(string& asTextCategory, string& asTextEntry, float afTime);
asTextCategory = Name of the category in the lang file
asTextEntry = Name of the entry in the lang file
afTime = float of time in seconds; if 0 is used, the game will perform an algorithm based on the number of characters and generate it's own ideal time for the message to be displayed, not particularly useful for cinematic scenes though
A crash course in the extra_english.lang:
-Use the xml language (in notepad++, I'm not sure about geany, never used it)
-Everything is organized like so Language > Category > Entry/Entry < /Category < /Language
-You should probably look at the original game's lang file to better understand the previous point
If you're feeling a little more fancy/flashy and have access to Photoshop, you can make a custom billboard, saying anything your heart desires in any font! Hell, it doesn't even have to be a font, you can hand draw it.*
Get an image of whatever it is you'd like (preferably saved in the .PNG file format), open it in Photoshop then re-size it to have dimensions that are a power of 2 (i.e. 2 to the power of 10, or 2^10 is 1024, so you could use 1024x1024), once that's done, export it as a .DDS file (the 2d texture kind). Open up an existing billboard in the HPL2 material editor, replace the texture with the one you made, and (making sure to hit "save as...') save it as whatever you want. You can now use these billboards in the level editor to create cool cinematic events.
*The following is the method I've done in the past that works, I'm sure there is more than one way to accomplish this
Hope that helped!
I rate it 3 memes.