您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
Provides a convenient button for restocking fruit as soon as it is duplicated in Professor Jacking's laboratory, in Kingdom of Loathing.
// ==UserScript== // @name Fruit Factory // @namespace kol.interface.unfinished // @description Provides a convenient button for restocking fruit as soon as it is duplicated in Professor Jacking's laboratory, in Kingdom of Loathing. // @include http://*kingdomofloathing.com/choice.php* // @include http://127.0.0.1:*/choice.php* // @version 1.01 // @grant GM_getValue // @grant GM_setValue // @grant GM_xmlhttpRequest // ==/UserScript== // version 1.01 // - add @grant function findPwdhash() { var somef = window.parent.frames; var goo = null; for(var j=0;j<somef.length;j++) { if (somef[j].name=="charpane") { goo=somef[j]; var page = goo.document.documentElement.innerHTML; var find = 'pwdhash = '; if (page.indexOf(find) >= 0) { var i = page.indexOf(find); var j = find.length; var ps = page.substr(i+j+2); var foundit = page.substr(i+j+1,ps.indexOf('"')+1); GM_setValue('fruitpwd',foundit); return foundit; } } } return GM_getValue('fruitpwd'); } function addFruit(inum) { this.removeEventListener('click',addFruit,false); var args = 'action=addfruit&whichitem=4560&pwd='+findPwdhash()+'&whichfruit='+this.getAttribute('fruit'); doPost(args); } function fixMsg(d,msg,linktxt) { if (d.firstChild) d.replaceChild(document.createTextNode(msg),d.firstChild); else d.appendChild(document.createTextNode(msg)); if (linktxt) { var a = document.createElement('a'); a.appendChild(document.createTextNode(linktxt)); a.setAttribute('href','inv_use.php?pwd='+findPwdhash()+'&which=3&whichitem=4560'); d.appendChild(a); } } function doPost(vars) { var d = document.getElementById('fruitfactorymsg'); fixMsg(d,'Inserting fruit...'); GM_xmlhttpRequest({ method: "POST", url: "http://" + location.host + "/inv_use.php", headers: {"Content-type": "application/x-www-form-urlencoded"}, data: vars, onload: function(response){ if (response.responseText.indexOf('Please pick a fruit from the list.')>=0) fixMsg(d,'Failed---you don\'t have that fruit.'); else if (response.responseText.indexOf('disappears into the tube and begins bouncing around noisily')>=0) fixMsg(d,'Restocked.'); else if (response.responseText.indexOf('is sucked into the tube, displacing the')>=0) fixMsg(d,'Restocked again.'); else fixMsg(d,'Failed maybe; best verify with the ','map'); var b = document.getElementById('fruitfactorybutton'); if (b) b.addEventListener('click',addFruit,false); } }); } function selectFruit() { if (this.selectedIndex!=0) { var b = document.getElementById('fruitfactorybutton'); if (b) { b.setAttribute('fruit',this.options[this.selectedIndex].getAttribute('value')); b.setAttribute('value','Restock with '+this.options[this.selectedIndex].innerHTML); this.selectedIndex = 0; } } } function createSelect() { var fruits = [ {name:"banana",num:"2373"}, {name:"blackberry",num:"2063"}, {name:"bunch of square grapes",num:"2733"}, {name:"cactus fruit",num:"2579"}, {name:"cherry",num:"1006"}, {name:"cocktail onion",num:"1560"}, {name:"cranberries",num:"672"}, {name:"gr8ps",num:"358"}, {name:"grapefruit",num:"243"}, {name:"grapes",num:"244"}, {name:"jumbo olive",num:"455"}, {name:"juniper berries",num:"2726"}, {name:"kiwi",num:"1562"}, {name:"kumquat",num:"1557"}, {name:"lemon",num:"332"}, {name:"lime",num:"333"}, {name:"olive",num:"245"}, {name:"orange",num:"242"}, {name:"peach",num:"2729"}, {name:"pear",num:"2728"}, {name:"plum",num:"2727"}, {name:"raisin",num:"4565"}, {name:"raspberry",num:"1561"}, {name:"sea blueberry",num:"3691"}, {name:"sea honeydew",num:"3560"}, {name:"sea lychee",num:"3558"}, {name:"sea persimmon",num:"3692"}, {name:"sea tangelo",num:"3559"}, {name:"strawberry",num:"786"}, {name:"tangerine",num:"1558"}, {name:"tomato",num:"246"}, ]; var s = document.createElement('select'); var opt = document.createElement('option'); opt.setAttribute('value','0'); opt.appendChild(document.createTextNode("(select a fruit)")); s.appendChild(opt); for (var i=0;i<fruits.length;i++) { opt = document.createElement('option'); opt.setAttribute('value',fruits[i].num); opt.appendChild(document.createTextNode(fruits[i].name)); s.appendChild(opt); } s.addEventListener("change", selectFruit, true); return s; } if (document.evaluate('//td[contains(.,"That machine must\'ve shrunk and duplicated the fruit you put in it, somehow.")]', document, null, XPathResult.FIRST_ORDERED_NODE_TYPE, null).singleNodeValue) { var p = document.evaluate('//table[@class="item"]//td/img[@class="hand"]', document, null, XPathResult.FIRST_ORDERED_NODE_TYPE, null).singleNodeValue; var iname = p.getAttribute('alt'); while (p && p.tagName!='TABLE') { p = p.parentNode; } if (p) { var inum = p.getAttribute('rel'); if (inum) { inum = inum.match(/id=([0-9]+)/i); if (inum && inum.length>1) { inum = inum[1]; p = p.parentNode; while (p && p.tagName!='TABLE') { p = p.parentNode; } if (p) { var r = document.createElement('tr'); var d = document.createElement('td'); var c = document.createElement('center'); var b = document.createElement('input'); var div = document.createElement('div'); div.setAttribute('id','fruitfactorymsg'); b.setAttribute('type','button'); b.setAttribute('value','Restock with '+iname); b.setAttribute('fruit',inum); b.setAttribute('id','fruitfactorybutton'); b.addEventListener('click',addFruit,false); c.appendChild(createSelect()); c.appendChild(document.createTextNode('\u00A0\u00A0')); c.appendChild(b); c.appendChild(document.createElement('br')); c.appendChild(div); d.appendChild(c); r.appendChild(d); p.appendChild(r); } } } } }
QingJ © 2025
镜像随时可能失效,请加Q群300939539或关注我们的公众号极客氢云获取最新地址