2021-04-09 22:33:19 +00:00
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
< html >
< head >
< meta http-equiv = "Content-Type" content = "text/html;charset=utf-8" >
< meta name = "robots" content = "index,nofollow" >
< title > ScriptError RunawayLoopError - Quake 4 SDK Documentation< / title >
2021-04-10 13:18:07 +00:00
< script type = "text/javascript" src = "wiki/common/js/common.js" > < / script >
2021-04-09 22:33:19 +00:00
< script type = "text/javascript" >
<!-- // common functions
// We keep here the state of the search box
searchIsDisabled = false;
function searchChange(e) {
// Update search buttons status according to search box content.
// Ignore empty or whitespace search term.
var value = e.value.replace(/\s+/, '');
if (value == '' || searchIsDisabled) {
searchSetDisabled(true);
} else {
searchSetDisabled(false);
}
}
function searchSetDisabled(flag) {
// Enable or disable search
document.getElementById('fullsearch').disabled = flag;
document.getElementById('titlesearch').disabled = flag;
}
function searchFocus(e) {
// Update search input content on focus
if (e.value == 'Search') {
e.value = '';
e.className = '';
searchIsDisabled = false;
}
}
function searchBlur(e) {
// Update search input content on blur
if (e.value == '') {
e.value = 'Search';
e.className = 'disabled';
searchIsDisabled = true;
}
}
function actionsMenuInit(title) {
// Initialize action menu
for (i = 0; i < document.forms.length ; i + + ) {
var form = document.forms[i];
if (form.className == 'actionsmenu') {
// Check if this form needs update
var div = form.getElementsByTagName('div')[0];
var label = div.getElementsByTagName('label')[0];
if (label) {
// This is the first time: remove label and do buton.
div.removeChild(label);
var dobutton = div.getElementsByTagName('input')[0];
div.removeChild(dobutton);
// and add menu title
var select = div.getElementsByTagName('select')[0];
var item = document.createElement('option');
item.appendChild(document.createTextNode(title));
item.value = 'show';
select.insertBefore(item, select.options[0]);
select.selectedIndex = 0;
}
}
}
}
//-->
< / script >
2021-04-10 13:18:07 +00:00
< link rel = "stylesheet" type = "text/css" charset = "utf-8" media = "all" href = "wiki/modern/css/common.css" >
< link rel = "stylesheet" type = "text/css" charset = "utf-8" media = "screen" href = "wiki/modern/css/screen.css" >
< link rel = "stylesheet" type = "text/css" charset = "utf-8" media = "print" href = "wiki/modern/css/print.css" >
< link rel = "stylesheet" type = "text/css" charset = "utf-8" media = "projection" href = "wiki/modern/css/projection.css" >
2021-04-09 22:33:19 +00:00
<!-- css only for MSIE browsers -->
<!-- [if IE]>
2021-04-10 13:18:07 +00:00
< link rel = "stylesheet" type = "text/css" charset = "utf-8" media = "all" href = "wiki/modern/css/msie.css" >
2021-04-09 22:33:19 +00:00
<![endif]-->
< link rel = "Start" href = "/quake4/Quake4SDK" >
< link rel = "Alternate" title = "Wiki Markup" href = "/quake4/ScriptError_RunawayLoopError?action=raw" >
< link rel = "Alternate" media = "print" title = "Print View" href = "/quake4/ScriptError_RunawayLoopError?action=print" >
< link rel = "Search" href = "/quake4/FindPage" >
< link rel = "Index" href = "/quake4/TitleIndex" >
< link rel = "Glossary" href = "/quake4/WordIndex" >
< link rel = "Help" href = "/quake4/HelpOnFormatting" >
< / head >
< body lang = "en" dir = "ltr" >
< div id = "header" >
2021-04-10 13:18:07 +00:00
< div id = "logo" > < a href = "/quake4/Quake4SDK" > < img src = "wiki/common/moinmoin.png" alt = "MoinMoin Logo" > < / a > < / div >
2021-04-09 22:33:19 +00:00
< form id = "searchform" method = "get" action = "" >
< div >
< input type = "hidden" name = "action" value = "fullsearch" >
< input type = "hidden" name = "context" value = "180" >
< label for = "searchinput" > Search:< / label >
< input id = "searchinput" type = "text" name = "value" value = "" size = "20"
onfocus="searchFocus(this)" onblur="searchBlur(this)"
onkeyup="searchChange(this)" onchange="searchChange(this)" alt="Search">
< input id = "titlesearch" name = "titlesearch" type = "submit"
value="Titles" alt="Search Titles">
< input id = "fullsearch" name = "fullsearch" type = "submit"
value="Text" alt="Search Full Text">
< / div >
< / form >
< script type = "text/javascript" >
<!-- // Initialize search form
var f = document.getElementById('searchform');
f.getElementsByTagName('label')[0].style.display = 'none';
var e = document.getElementById('searchinput');
searchChange(e);
searchBlur(e);
//-->
< / script >
< ul id = "username" > < li > < a href = "/quake4/ScriptError_RunawayLoopError?action=login" id = "login" > Login< / a > < / li > < / ul >
< div id = "locationline" >
< ul id = "pagelocation" >
< li > < a class = "backlink" title = "Click to do a full-text search for this title" href = "/quake4/ScriptError_RunawayLoopError?action=fullsearch&value=linkto%3A%22ScriptError+RunawayLoopError%22&context=180" > ScriptError RunawayLoopError< / a > < / li >
< / ul >
< / div >
< ul id = "navibar" >
< li class = "wikilink" > < a href = "/quake4/GettingStarted" > GettingStarted< / a > < / li > < li class = "wikilink" > < a href = "/quake4/ScriptFile" > ScriptFile< / a > < / li > < li class = "wikilink" > < a href = "/quake4/MakeAMod" > MakeAMod< / a > < / li > < li class = "wikilink" > < a href = "/quake4/LevelEditor" > LevelEditor< / a > < / li > < li class = "wikilink" > < a href = "/quake4/FXEditor" > FXEditor< / a > < / li > < li class = "wikilink" > < a href = "/quake4/GUIEditor" > GUIEditor< / a > < / li > < li class = "wikilink" > < a href = "/quake4/Sounds" > Sounds< / a > < / li > < li class = "wikilink" > < a href = "/quake4/Animations" > Animations< / a > < / li > < li class = "wikilink" > < a href = "/quake4/ArtReference" > ArtReference< / a > < / li > < li class = "wikilink" > < a href = "/quake4/DownloadableContent" > DownloadableContent< / a > < / li > < li class = "wikilink" > < a href = "/quake4/RecentChanges" > RecentChanges< / a > < / li > < li class = "wikilink" > < a href = "/quake4/FindPage" > FindPage< / a > < / li > < li class = "wikilink" > < a href = "/quake4/HelpContents" > HelpContents< / a > < / li > < li class = "current" > < a href = "/quake4/ScriptError_RunawayLoopError" > ScriptError...ayLoopError< / a > < / li >
< / ul >
< div id = "pageline" > < hr style = "display:none;" > < / div >
< ul class = "editbar" > < li > < span class = "disabled" > Immutable Page< / span > < / li > < li > < a href = "/quake4/ScriptError_RunawayLoopError?action=info" > Info< / a > < / li > < li > < a href = "/quake4/ScriptError_RunawayLoopError?action=AttachFile" > Attachments< / a > < / li > < li >
< form class = "actionsmenu" method = "get" action = "" >
< div >
< label > More Actions:< / label >
< select name = "action"
onchange="if ((this.selectedIndex != 0) & &
(this.options[this.selectedIndex].disabled == false)) {
this.form.submit();
}
this.selectedIndex = 0;">
< option value = "raw" > Raw Text< / option >
< option value = "print" > Print View< / option >
< option value = "RenderAsDocbook" > Render as Docbook< / option >
< option value = "refresh" > Delete Cache< / option >
< option value = "show" disabled class = "disabled" > ------------< / option >
< option value = "SpellCheck" > Check Spelling< / option >
< option value = "LikePages" > Like Pages< / option >
< option value = "LocalSiteMap" > Local Site Map< / option >
< option value = "show" disabled class = "disabled" > ------------< / option >
< option value = "RenamePage" disabled class = "disabled" > Rename Page< / option >
< option value = "DeletePage" disabled class = "disabled" > Delete Page< / option >
< option value = "show" disabled class = "disabled" > ------------< / option >
< option value = "MyPages" > My Pages< / option >
< option value = "SubscribeUser" > Subscribe User< / option >
< option value = "show" disabled class = "disabled" > ------------< / option >
< option value = "Despam" > Remove Spam< / option >
< option value = "PackagePages" > Package Pages< / option >
< / select >
< input type = "submit" value = "Do" >
< / div >
< script type = "text/javascript" >
<!-- // Init menu
actionsMenuInit('More Actions:');
//-->
< / script >
< / form >
< / li > < / ul >
< / div >
< div id = "page" lang = "en" dir = "ltr" >
< div dir = "ltr" id = "content" lang = "en" > < span class = "anchor" id = "top" > < / span >
< span class = "anchor" id = "line-1" > < / span > < p class = "line874" > A Runaway Loop Error is generated when a script thread executes a loop continuously without allowing for the rest of the game to continue. < span class = "anchor" id = "line-2" > < / span > < span class = "anchor" id = "line-3" > < / span > < p class = "line862" > Specifically, you must include a < a href = "/quake4/ScriptEvent_waitFrame" > waitFrame< / a > command in your loops to avoid this error. < span class = "anchor" id = "line-4" > < / span > < span class = "anchor" id = "line-5" > < / span > < p class = "line867" >
< h2 id = "head-e681511a1edec4816fcc3bcf0a2da50116094d9f" > Error< / h2 >
< span class = "anchor" id = "line-6" > < / span > < span class = "anchor" id = "line-7" > < / span > < p class = "line874" > ERROR: [mapname]([linenumber]): Thread 'main': runaway loop error < span class = "anchor" id = "line-8" > < / span > < span class = "anchor" id = "line-9" > < / span > < p class = "line867" > < span class = "anchor" id = "line-10" > < / span > < pre > ERROR: maps/fail.script(28): Thread 'main': runaway loop error
< span class = "anchor" id = "line-11" > < / span > < / pre > < span class = "anchor" id = "line-12" > < / span > < span class = "anchor" id = "line-13" > < / span > < p class = "line867" >
< h2 id = "head-29d8cb810eed72bf3120961db75e28ca7355a137" > Example< / h2 >
< span class = "anchor" id = "line-14" > < / span > < span class = "anchor" id = "line-15" > < / span > < p class = "line867" > < span class = "anchor" id = "line-16" > < / span > < span class = "anchor" id = "line-17" > < / span > < span class = "anchor" id = "line-18" > < / span > < span class = "anchor" id = "line-19" > < / span > < span class = "anchor" id = "line-20" > < / span > < span class = "anchor" id = "line-21" > < / span > < span class = "anchor" id = "line-22" > < / span > < span class = "anchor" id = "line-23" > < / span > < span class = "anchor" id = "line-24" > < / span > < span class = "anchor" id = "line-25" > < / span > < span class = "anchor" id = "line-26" > < / span > < span class = "anchor" id = "line-27" > < / span > < span class = "anchor" id = "line-28" > < / span > < div class = "codearea" dir = "ltr" lang = "en" >
< script type = "text/javascript" >
function isnumbered(obj) {
return obj.childNodes.length & & obj.firstChild.childNodes.length & & obj.firstChild.firstChild.className == 'LineNumber';
}
function nformat(num,chrs,add) {
var nlen = Math.max(0,chrs-(''+num).length), res = '';
while (nlen>0) { res += ' '; nlen-- }
return res+num+add;
}
function addnumber(did, nstart, nstep) {
var c = document.getElementById(did), l = c.firstChild, n = 1;
if (!isnumbered(c))
if (typeof nstart == 'undefined') nstart = 1;
if (typeof nstep == 'undefined') nstep = 1;
n = nstart;
while (l != null) {
if (l.tagName == 'SPAN') {
var s = document.createElement('SPAN');
s.className = 'LineNumber'
s.appendChild(document.createTextNode(nformat(n,4,' ')));
n += nstep;
if (l.childNodes.length)
l.insertBefore(s, l.firstChild)
else
l.appendChild(s)
}
l = l.nextSibling;
}
return false;
}
function remnumber(did) {
var c = document.getElementById(did), l = c.firstChild;
if (isnumbered(c))
while (l != null) {
if (l.tagName == 'SPAN' & & l.firstChild.className == 'LineNumber') l.removeChild(l.firstChild);
l = l.nextSibling;
}
return false;
}
function togglenumber(did, nstart, nstep) {
var c = document.getElementById(did);
if (isnumbered(c)) {
remnumber(did);
} else {
addnumber(did,nstart,nstep);
}
return false;
}
< / script >
< script type = "text/javascript" >
document.write('< a href = "#" onclick = "return togglenumber(\'CA-2dce4fc1d95e396a3d7bf920d21e2ef48d7c36bc_000\', 1, 1);" \
class="codenumbers">Toggle line numbers< \/a>');
< / script >
< pre dir = "ltr" id = "CA-2dce4fc1d95e396a3d7bf920d21e2ef48d7c36bc_000" lang = "en" > < span class = "line" > < span class = "LineNumber" > 1 < / span > < / span >
< span class = "line" > < span class = "LineNumber" > 2 < / span > < span class = "Comment" > //this is busta< / span > < / span >
< span class = "line" > < span class = "LineNumber" > 3 < / span > < span class = "ResWord" > while< / span > < span class = "SPChar" > (< / span > < span class = "ID" > x< / span > < span class = "SPChar" > < < / span > < span class = "Number" > 1< / span > < span class = "Number" > 0< / span > < span class = "Number" > 0< / span > < span class = "SPChar" > )< / span > < span class = "SPChar" > {< / span > < / span >
< span class = "line" > < span class = "LineNumber" > 4 < / span > < span class = "ID" > x< / span > < span class = "SPChar" > +< / span > < span class = "SPChar" > +< / span > < span class = "SPChar" > ;< / span > < / span >
< span class = "line" > < span class = "LineNumber" > 5 < / span > < span class = "SPChar" > }< / span > < / span >
< span class = "line" > < span class = "LineNumber" > 6 < / span > < / span >
< span class = "line" > < span class = "LineNumber" > 7 < / span > < span class = "Comment" > //this will work< / span > < / span >
< span class = "line" > < span class = "LineNumber" > 8 < / span > < span class = "ResWord" > while< / span > < span class = "SPChar" > (< / span > < span class = "ID" > x< / span > < span class = "SPChar" > < < / span > < span class = "Number" > 1< / span > < span class = "Number" > 0< / span > < span class = "Number" > 0< / span > < span class = "SPChar" > )< / span > < span class = "SPChar" > {< / span > < / span >
< span class = "line" > < span class = "LineNumber" > 9 < / span > < span class = "ID" > x< / span > < span class = "SPChar" > +< / span > < span class = "SPChar" > +< / span > < span class = "SPChar" > ;< / span > < / span >
< span class = "line" > < span class = "LineNumber" > 10 < / span > < span class = "ID" > sys< / span > < span class = "SPChar" > .< / span > < span class = "ID" > waitFrame< / span > < span class = "SPChar" > (< / span > < span class = "SPChar" > )< / span > < span class = "SPChar" > ;< / span > < / span >
< span class = "line" > < span class = "LineNumber" > 11 < / span > < span class = "SPChar" > }< / span > < / span >
< span class = "line" > < span class = "LineNumber" > 12 < / span > < / span >
< / pre > < / div > < span class = "anchor" id = "line-29" > < / span > < span class = "anchor" id = "bottom" > < / span > < / div > < p id = "pageinfo" class = "info" lang = "en" dir = "ltr" > ScriptError RunawayLoopError (last edited 2005-11-01 19:40:02 by < span title = "JimShepard @ 67.129.250.254[67.129.250.254]" > < a class = "nonexistent" href = "/quake4/JimShepard" title = "JimShepard @ 67.129.250.254[67.129.250.254]" > JimShepard< / a > < / span > )< / p >
< div id = "pagebottom" > < / div >
< / div >
< div id = "footer" >
< ul class = "editbar" > < li > < span class = "disabled" > Immutable Page< / span > < / li > < li > < a href = "/quake4/ScriptError_RunawayLoopError?action=info" > Info< / a > < / li > < li > < a href = "/quake4/ScriptError_RunawayLoopError?action=AttachFile" > Attachments< / a > < / li > < li >
< form class = "actionsmenu" method = "get" action = "" >
< div >
< label > More Actions:< / label >
< select name = "action"
onchange="if ((this.selectedIndex != 0) & &
(this.options[this.selectedIndex].disabled == false)) {
this.form.submit();
}
this.selectedIndex = 0;">
< option value = "raw" > Raw Text< / option >
< option value = "print" > Print View< / option >
< option value = "RenderAsDocbook" > Render as Docbook< / option >
< option value = "refresh" > Delete Cache< / option >
< option value = "show" disabled class = "disabled" > ------------< / option >
< option value = "SpellCheck" > Check Spelling< / option >
< option value = "LikePages" > Like Pages< / option >
< option value = "LocalSiteMap" > Local Site Map< / option >
< option value = "show" disabled class = "disabled" > ------------< / option >
< option value = "RenamePage" disabled class = "disabled" > Rename Page< / option >
< option value = "DeletePage" disabled class = "disabled" > Delete Page< / option >
< option value = "show" disabled class = "disabled" > ------------< / option >
< option value = "MyPages" > My Pages< / option >
< option value = "SubscribeUser" > Subscribe User< / option >
< option value = "show" disabled class = "disabled" > ------------< / option >
< option value = "Despam" > Remove Spam< / option >
< option value = "PackagePages" > Package Pages< / option >
< / select >
< input type = "submit" value = "Do" >
< / div >
< script type = "text/javascript" >
<!-- // Init menu
actionsMenuInit('More Actions:');
//-->
< / script >
< / form >
< / li > < / ul >
< ul id = "credits" >
< li > < a href = "http://moinmoin.wikiwikiweb.de/" > MoinMoin Powered< / a > < / li > < li > < a href = "http://www.python.org/" > Python Powered< / a > < / li > < li > < a href = "http://validator.w3.org/check?uri=referer" > Valid HTML 4.01< / a > < / li >
< / ul >
< / div >
< / body >
< / html >