function noloopcheck function_name ( parameters ... ) {
The noloopcheck keyword disables the script loop checking for the current function.
Normally, if a while loop runs for more than 150,000
loops, AGS will assume that the script has hung and abort the game. This is to assist
scripting since otherwise the game would lock up if you scripted a loop wrongly.
However, there are some rare situations in which you need a loop to run several thousand
times (for example, when initialising a very large array). In this case, the noloopcheck
keyword can be used to stop AGS aborting your script.
NOTE: The noloopcheck keyword must be placed between "function" and the function's name.
If you import the function into the script header, you do not include the "noloopcheck" keyword
in the import declaration -- it is only included in the actual function body.
NOTE: If AGS gives you a script iterations error, DO NOT just automatically
add this keyword as a way to fix the problem -- more often than not, it is a fault in
your scripting and using this keyword will mean that the game will hang rather than abort.
For example:
function noloopcheck initialize_array() {
char bigarray[200000];
int a = 0;
while (a < 200000) {
bigarray[a] = 1;
a++;
}
}
without the "noloopcheck" keyword here, AGS would abort that script.
|