Results 1 to 8 of 8

Thread: infinite loop encounter in skeleton store

  1. #1
    Senior Member
    Join Date
    Oct 2017
    Posts
    345

    Default infinite loop encounter in skeleton store

    using mafia automation in the skeleton store will cause infinite loop after you have already killed the skeleton store owner.
    choice adventure is set to "fight former owner of the skeleton store, with office key"

    Code:
    [1200] The Skeleton Store
    Encounter: Temporarily Out of Skeletons
    Encounter:     Temporarily Out of Skeletons
    Encounter: Temporarily Out of Skeletons
    Encounter:     Temporarily Out of Skeletons
    Encounter: Temporarily Out of Skeletons
    it keeps repeating this

    aborting the above and manually clicking the option mafia is trying to use gives
    Code:
    You've already dealt with the manager.
    debug log snippet
    Code:
    <html><head><script language=Javascript><!--if (parent.frames.length == 0) location.href="game.php";top.charpane.location.href="charpane.php";//--></script><script language=Javascript src="https://s3.amazonaws.com/images.kingdomofloathing.com/scripts/jquery-1.5.1.js"></script><script language=Javascript src="https://s3.amazonaws.com/images.kingdomofloathing.com/scripts/keybinds.min.2.js"></script><script language=Javascript src="https://s3.amazonaws.com/images.kingdomofloathing.com/scripts/window.20111231.js"></script><script language="javascript">function chatFocus(){if(top.chatpane.document.chatform.graf) top.chatpane.document.chatform.graf.focus();}if (typeof defaultBind != 'undefined') { defaultBind(47, 2, chatFocus); defaultBind(190, 2, chatFocus);defaultBind(191, 2, chatFocus); defaultBind(47, 8, chatFocus);defaultBind(190, 8, chatFocus); defaultBind(191, 8, chatFocus); }</script><script>function switchFocus(){if (top.chatpane.document.chatform.graf.focus)top.chatpane.document.chatform.graf.focus();return false;}function repeat(){var linx = document.getElementsByTagName("A");for (var i = 0; i < linx.length; i++){if (typeof timersfunc != 'undefined') {if (!timersfunc()) {return;}timersfunc = null;}var link = linx[i];if (link.innerHTML.match(/Adventure Again/) || link.innerHTML.match(/Do it again/))location.href = link.href;}}defaultBind(47, CTRL, switchFocus);defaultBind(191, CTRL, switchFocus);defaultBind(47, META, switchFocus);defaultBind(191, META, switchFocus);defaultBind(192, NONE, repeat);defaultBind(220, NONE, repeat);</script><script language="javascript">function updateParseItem(iid, field, info) {var tbl = $('#ic'+iid);var data = parseItem(tbl);if (!data) return;data[field] = info;var out = [];for (i in data) {if (!data.hasOwnProperty(i)) continue;out.push(i+'='+data[i]);}tbl.attr('rel', out.join('&'));}function parseItem(tbl) {tbl = $(tbl);var rel = tbl.attr('rel');var data = {};if (!rel) return data;var parts = rel.split('&');for (i in parts) {if (!parts.hasOwnProperty(i)) continue;var kv = parts[i].split('=');tbl.data(kv[0], kv[1]);data[kv[0]] = kv[1];}return data;}</script><script type="text/javascript" src="https://s3.amazonaws.com/images.kingdomofloathing.com/scripts/pop_query.20130705.js"></script><script type="text/javascript" src="https://s3.amazonaws.com/images.kingdomofloathing.com/scripts/ircm.20161111.js"></script><script type="text/javascript">var tp = top;function pop_ircm_contents(i, some) {var contents = '',shown = 0,da = '&nbsp;<a href="#" rel="?" class="small dojaxy">[some]</a>&nbsp;<a href="#" rel="',db = '" class="small dojaxy">[all]</a>',dc = '<div style="width:100%; padding-bottom: 3px;" rel="',dd = '<a href="#" rel="1" class="small dojaxy">[';one = 'one'; ss=some;if (i.d==1 && i.s>0) { shown++;contents += dc + 'sellstuff.php?action=sell&ajax=1&type=quant&whichitem%5B%5D=IID&howmany=NUM&pwd=c9f11fd972c32f87db1e5ec7f18bb843" id="pircm_'+i.id+'"><b>Auto-Sell ('+i.s+' meat):</b> '+dd+one+']</a>';if (ss) { contents += da + i.n + db;}contents += '</div>';}one = 'one'; ss=some;if (i.q==0) { shown++;contents += dc + 'managecollection.php?action=put&ajax=1&whichitem1=IID&howmany1=NUM&pwd=c9f11fd972c32f87db1e5ec7f18bb843" id="pircm_'+i.id+'"><b>Add to Display Case:</b> '+dd+one+']</a>';if (ss) { contents += da + i.n + db;}contents += '</div>';}one = 'one'; ss=some;if (i.u && i.u != "." && !i.ac) { shown++;contents += dc + 'inv_'+(i.u=="a"?"redir":(lab=(i.u=="u"?"use":(i.u=="e"?"eat":(i.u=="b"?"booze":(i.u=="s"?"spleen":"equip"))))))+'.php?ajax=1&whichitem=IID&itemquantity=NUM&quantity=NUM'+(i.u=="q"?"&action=equip":"")+'&pwd=c9f11fd972c32f87db1e5ec7f18bb843" id="pircm_'+i.id+'"><b>'+ucfirst(unescape(i.ou ? i.ou.replace(/\+/g," ") : (lab=="booze"?"drink":lab)))+':</b> '+dd+one+']</a>';if (ss && i.u != 'q' && !(i.u=='u' && i.m==0)) { contents += da + i.n + db;}contents += '</div>';}one = 'one'; ss=some;if (i.u && i.u != "." && i.ac) { shown++;contents += dc + 'inv_equip.php?slot=1&ajax=1&whichitem=IID&action=equip&pwd=c9f11fd972c32f87db1e5ec7f18bb843" id="pircm_'+i.id+'"><b>Equip (slot 1):</b> '+dd+one+']</a>';if (ss && i.u != 'q' && !(i.u=='u' && i.m==0)) { contents += da + i.n + db;}contents += '</div>';}one = 'one'; ss=some;if (i.u && i.u != "." && i.ac) { shown++;contents += dc + 'inv_equip.php?slot=2&ajax=1&whichitem=IID&action=equip&pwd=c9f11fd972c32f87db1e5ec7f18bb843" id="pircm_'+i.id+'"><b>Equip (slot 2):</b> '+dd+one+']</a>';if (ss && i.u != 'q' && !(i.u=='u' && i.m==0)) { contents += da + i.n + db;}contents += '</div>';}one = 'one'; ss=some;if (i.u && i.u != "." && i.ac) { shown++;contents += dc + 'inv_equip.php?slot=3&ajax=1&whichitem=IID&action=equip&pwd=c9f11fd972c32f87db1e5ec7f18bb843" id="pircm_'+i.id+'"><b>Equip (slot 3):</b> '+dd+one+']</a>';if (ss && i.u != 'q' && !(i.u=='u' && i.m==0)) { contents += da + i.n + db;}contents += '</div>';}return [contents, shown];}tp=topvar todo = [];function nextAction() {var next_todo = todo.shift();if (next_todo) {eval(next_todo);}}function dojax(dourl, afterFunc, hoverCaller, failureFunc, method, params) {$.ajax({type: method || 'GET', url: dourl, cache: false,data: params || null,global: false,success: function (out) {nextAction();if (out.match(/no\|/)) {var parts = out.split(/\|/);if (failureFunc) failureFunc(parts[1]);else if (window.dojaxFailure) window.dojaxFailure(parts[1]);else if (tp.chatpane.handleMessage) tp.chatpane.handleMessage({type: 'event', msg: 'Oops!  Sorry, Dave, you appear to be ' + parts[1]});else  $('#ChatWindow').append('<font color="green">Oops!  Sorry, Dave, you appear to be ' + parts[1] + '.</font><br />' + "\n");return;}if (hoverCaller)  {float_results(hoverCaller, out);if (afterFunc) { afterFunc(out); }return;}$(tp.mainpane.document).find("#effdiv").remove(); if(!window.dontscroll || (window.dontscroll && dontscroll==0)) { window.scroll(0,0);}var $eff = $(tp.mainpane.document).find('#effdiv');if ($eff.length == 0) {var d = tp.mainpane.document.createElement('DIV');d.id = 'effdiv';var b = tp.mainpane.document.body;if ($('#content_').length > 0) {b = $('#content_ div:first')[0];}b.insertBefore(d, b.firstChild);$eff = $(d);}$eff.find('a[name="effdivtop"]').remove().end().prepend('<a name="effdivtop"></a><center>' + out + '</center>').css('display','block');if (!window.dontscroll || (window.dontscroll && dontscroll==0)) {tp.mainpane.document.location = tp.mainpane.document.location + "#effdivtop";}if (afterFunc) { afterFunc(out); }}});}</script><script>var currentkey = 49;$(document).ready(function () {$('form').each(function () {var form = this;defaultBind(currentkey++, NONE, function () { form.submit(); });return currentkey < 58;});});</script>	<link rel="stylesheet" type="text/css" href="https://s3.amazonaws.com/images.kingdomofloathing.com/styles.20151006.css"><style type='text/css'>.faded {zoom: 1;filter: alpha(opacity=35);opacity: 0.35;-khtml-opacity: 0.35;-moz-opacity: 0.35;}</style></head><body><Center><div id="results"><!--faaaaaaart--><table  width=95%  cellspacing=0 cellpadding=0><tr><td style="color: white;" align=center bgcolor=blue><b>Results:</b></td></tr><tr><td style="padding: 5px; border: 1px solid blue;"><center><table><tr><td><span class='guts'>You've already dealt with the manager.</span></td></tr></table></center></td></tr><tr><td height=4></td></tr></table></div><centeR><table  width=95%  cellspacing=0 cellpadding=0><tr><td style="color: white;" align=center bgcolor=blue><b>Temporarily Out of Skeletons</b></td></tr><tr><td style="padding: 5px; border: 1px solid blue;"><center><table><tr><td><center><img src="https://s3.amazonaws.com/images.kingdomofloathing.com/adventureimages/skeletonstore.gif" width=100 height=100></center><p>You find a rare moment's peace in the skeleton store, and pause to catch your breath.  As you're catching your breath, several things catch your eye.<p>There's a cash register (made of bones) on the counter, a treasure chest (made of bones) on a nearby shelf, and a pile of bones (made of cheese<super>*</super>) on the floor.<p>You could also check out the manager's office, now that you've got the key to it.<p><super>*</super>Not really.  The pile of bones is obviously made of bones.<center><form style='margin: 0px 0px 0px 0px;' name=choiceform1 action=choice.php method=post><input type=hidden name=pwd value='c9f11fd972c32f87db1e5ec7f18bb843'><input type=hidden name=whichchoice value=1060><input type=hidden name=option value=1><input  class=button type=submit value="Check out the cash register"></form><p><form style='margin: 0px 0px 0px 0px;' name=choiceform2 action=choice.php method=post><input type=hidden name=pwd value='c9f11fd972c32f87db1e5ec7f18bb843'><input type=hidden name=whichchoice value=1060><input type=hidden name=option value=2><input  class=button type=submit value="Open the chest"></form><p><form style='margin: 0px 0px 0px 0px;' name=choiceform3 action=choice.php method=post><input type=hidden name=pwd value='c9f11fd972c32f87db1e5ec7f18bb843'><input type=hidden name=whichchoice value=1060><input type=hidden name=option value=3><input  class=button type=submit value="Break the bones"></form><p><form style='margin: 0px 0px 0px 0px;' name=choiceform4 action=choice.php method=post><input type=hidden name=pwd value='c9f11fd972c32f87db1e5ec7f18bb843'><input type=hidden name=whichchoice value=1060><input type=hidden name=option value=4><input  class=button type=submit value="Head into the manager's office"></form><p></center></td></tr></table></center></td></tr><tr><td height=4></td></tr></table></center><!--faaaaaaart--><script>top.charpane.location.href="charpane.php";</script></body></html>

  2. #2
    Senior Member
    Join Date
    Oct 2017
    Posts
    345

    Default

    Note, the above occurs after killing him, then NOT going to finish the quest by reporting to the meatsmith, then encountering the skeleton store noncombat a second time.

    If you go to the meatsmith to report killing the skeleton store owner, then the option to fight the owner will not show up again in the NC.

  3. #3
    Developer Veracity's Avatar
    Join Date
    Mar 2006
    Location
    The Unseelie Court
    Posts
    11,515

    Default

    Don't do that.

  4. #4
    Senior Member
    Join Date
    Oct 2017
    Posts
    345

    Default

    Don't do that.
    Originally Posted by Veracity View Post
    Ok, that is a funny joke.

    Unless you were serious? in that case I would like to point out it can happen by accident if you just tell mafia to auto adventure in skeleton store, for example to get filthy lucre.

  5. #5
    Developer
    Join Date
    Apr 2010
    Posts
    4,932

    Default

    What is the value of "questM23Meatsmith" when this happens?

    Perhaps issue is that it isn't setting to step 1 when you get the check, as it looks like the code to protect if step 1 or finished is present:

    Code:
    		case 1060:
    			// Temporarily Out of Skeletons
    			if ( decision.equals( "4" ) && QuestDatabase.isQuestLaterThan( Quest.ARMORER, QuestDatabase.STARTED ) )
    			{
    				// Can only fight owner til defeated
    				return "0";
    			}
    			return decision;

  6. #6
    Developer
    Join Date
    Apr 2010
    Posts
    4,932

    Default

    No, it isn't, that's the wrong quest to check!

  7. #7
    Developer
    Join Date
    Apr 2010
    Posts
    4,932

    Default

    r18994 - untested

  8. #8
    Senior Member
    Join Date
    Oct 2017
    Posts
    345

    Default

    r18994 - untested
    Originally Posted by Darzil View Post
    tested, it works. thank you

    From gCLI (I also have a full debug log... but since it works I imagine it is unneeded)
    Code:
    [276] The Skeleton Store
    Encounter: Temporarily Out of Skeletons
    Encounter:     the former owner of the Skeleton Store
    Round 0: taltamir wins     initiative!
    Round 1: taltamir executes a macro!
    Round 1: taltamir     casts MICROMETEORITE!
    Round 2: the former owner of the Skeleton Store     drops 2 attack power.
    Round 2: the former owner of the Skeleton Store     drops 2 defense.
    Round 2: taltamir casts SAUCESTORM!
    Round 3: the     former owner of the Skeleton Store takes 151 damage.
    Round 3: the     former owner of the Skeleton Store takes 302 damage.
    Round 3: taltamir     wins the fight!
    between those 2 snippets there were 4 regular combat encounters
    Code:
    Request 7 of 8 (Town: The Skeleton Store) in progress...
    
    [280] The     Skeleton Store
    Encounter: Temporarily Out of Skeletons
    Manual     control requested for choice #1060
    choice 1: Check out     the cash register (gain office key, then ~35 meat)
    choice 2:     Open the chest (gain ring of telling skeletons what to do, then 300 meat,     with skeleton key)
    choice 3: Break the bones (gain muscle stats)
    choice     4: Head into the manager's office (fight former owner of the Skeleton     Store, with office key)
    Click     here to continue in the relay browser.
    well, it works if I win the fight. No idea what happens if I lose the fight the first time I encounter the skeleton store owner. Does it check for killing him or encountering him? either way, it won't get stuck in an infinite loop anymore.
    Last edited by taltamir; 11-16-2018 at 06:41 AM.

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •