Here's what works for me...
I have a while loop running in my main() function. It is waiting for the loadNewLevel global var to be set to TRUE. Here is an example...
var loadNewLevel = FALSE;
STRING* levelName = "myLevel.wmb";
main()
{
...
...
while(player) //basically loops as long as you are playing
{
if(loadNewLevel)
{
level_load(levelName); //use a global string set to the name of the level to load
wait(3); // must have for level to load properly!
loadNewLevel = FALSE; //reset our global trigger
}
else
{
wait(1); //do nothing until loadNewLevel is TRUE
}
}
}
So basically, whatever condition must be met to trigger a level load, should set the loadNewLevel var to TRUE.
Hope that helps!