Through scripting. These are the things that you will use.
http://wiki.frictionalgames.com/hpl2/amn..._functions - Look here for all of them.
https://www.youtube.com/playlist?list=PL...9BC99530C8 - This covers alot of the basics to scripting (and some mapping stuff.
void AddEntityCollideCallback(string& asParentName, string& asChildName, string& asFunction, bool abDeleteOnCollide, int alStates);
Calls a function when two entites collide.
Callback syntax: void MyFunc(string &in asParent, string &in asChild, int alState)
alState: 1 = enter, -1 = leave
asParentName - internal name of main object
asChildName - internal name of object that collides with main object (asterix (*) NOT supported!)
asFunction - function to call
abDeleteOnCollide - determines whether the callback after it was called
alStates - 1 = only enter, -1 = only leave, 0 = both
--------------------------------------------------------------------
void SetMessage(string& asTextCategory, string& asTextEntry, float afTime);
Displays a message on the screen.
asTextCategory - the category in the .lang file
asTextEntry - the entry in the .lang file
afTime - determines how long the message is displayed. If time is < =0 then the life time is calculated based on string length.
void OnStart()
{
AddEntityCollideCallback("Player", "Area", callsthis, false, 1);
}
void callsthis(string &in asParent, string &in asChild, int alState)
{
SetMessage("TextCategory", "TextEntry", 2.0f);
}