the 0 is the part determining if the function will be called when entering the script area, or when exiting it.
1 = enter
-1 = leave
0 = both.
Here take a look at this :
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 <=== THERE YOU GO
That's directly from this page
http://wiki.frictionalgames.com/hpl2/amn..._functions. It holds a very detailed explanation of how every function work ^^.