您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
Press (H) for the complete list of hotkeys. Adds hotkeys for rebuyable Arena Rewards, as well as (F)ight and (P)urchase keys. Also displays Win Percentages for Today and Overall. Update (8/21/11): Added Chrome compatibility
// ==UserScript== // @name BvS Arena Hotkeys // @namespace Ren Po Ken // @description Press (H) for the complete list of hotkeys. Adds hotkeys for rebuyable Arena Rewards, as well as (F)ight and (P)urchase keys. Also displays Win Percentages for Today and Overall. Update (8/21/11): Added Chrome compatibility // @include http*://*animecubed.com/billy/bvs/arena.html // @include http*://*animecubedgaming.com/billy/bvs/arena.html // @version 1.9 // @history 1.9 Added a key to buy three sets of fights at once (3) and a key to jump to the mini-coliseum (c). Also tinkered with the Today %: so that it no longer displays N/A before you do your fights (it instead displays '0%') - Ren Po Ken // @history 1.8 Added variable "precision" which sets the number of decimal places your win percentages display. Also tightened up a lot of the syntax so my editor stops yelling at me - Ren Po Ken // @history 1.7 New domain - animecubedgaming.com - Channel28 // @history 1.6 Now https compatible (Updated by Channel28) // @history 1.5 Chrome compatibility added // @history 1.2 Added new Arena Rewards to Hotkeys // @history 1.0 Initial Release // @grant none // ==/UserScript== var precision=4; //Change this to set the number of decimal places in your win percentages function megaarena() { var confirm = document.evaluate("//input [@name='megaarena']", document, null, XPathResult.UNORDERED_NODE_SNAPSHOT_TYPE, null); var toConfirm = confirm.snapshotItem(0); toConfirm.setAttribute("checked", "checked"); //check the confirm checkbox location.assign('javascript:document.forms.namedItem("arenafight").submit()'); } function megabuy() { var confirm = document.evaluate("//input [@name='buyfights']", document, null, XPathResult.UNORDERED_NODE_SNAPSHOT_TYPE, null); var toConfirm = confirm.snapshotItem(1); //There is also a hidden 'buyfights' input toConfirm.setAttribute("checked", "checked"); //check the confirm checkbox location.assign('javascript:document.forms.namedItem("buytfights").submit()'); } function process_event(event) { var rewards = document.forms.namedItem("buyreward").elements; var rewardCode = -1; switch (event.keyCode) { case 32: case 70: case 13: //Space Bar, f, Enter location.assign('javascript:document.forms.namedItem("arenafight").submit()'); break; //Attack other Ninja case 80: //p location.assign('javascript:document.forms.namedItem("buyfights").submit()'); break; //Purchase Fights case 51: //3 megabuy(); break; //Purchase 3 sets of Fights case 67: //c location.assign('javascript:document.forms.namedItem("minicoli").submit()'); break; //Enter Minicoli case 81: //q megaarena(); break; //Use all fights at once case 87: //w rewardCode = 16; break; //Warrior's High RC case 65: //a rewardCode = 17; break; //Arena Coupon RC case 84: //t rewardCode = 19; break; //Trail Mix RC case 73: //i rewardCode = 20; break; //MegaTrail Mix RC case 82: //r rewardCode = 22; break; //Roll of Tickets RC case 79: //o rewardCode = 23; break; //Monochrome Pheremone RC case 69: //e rewardCode = 24; break; //Make-Out Mood Enhancer RC case 77: //m rewardCode = 200; break; //Contract RC case 78: //n rewardCode = 201; break; //Contract x11 RC case 72: //h --- Begin Help Menu Text --- var helpMenu = "H: This Help Menu\ \nW: Warrior's High\ \nA: Arena Coupon\ \nT: Trail Mix\ \nI: MegaTrail Mix\ \nR: Roll of Tickets\ \nO: Monochrome Pheromone\ \nE: Make-Out Mood Enhancer\ \nM: Major Village Contract\ \nN: Major Village Contract (Qty: 11)\ \nP: Purchase Fights\ \n3: Purchase Fights (Qty: 3 sets)\ \nQ: Quick Attack (Uses all your arena fight at once)\ \nC: mini-Coliseum\ \n\ \nF or Space Bar or Enter: Attack other ninja\ \n\ \nThis Grease Monkey script was written by Ren Po Ken\nUpdated: 11/07/19"; alert(helpMenu); break; // --- End Help Menu Text ---*/ } if (rewardCode != -1) { for(var i=0; i<rewards.length; i++){ if(rewards[i].value==rewardCode) {rewards[i].setAttribute("checked", "checked"); break;}} if(rewards[i].disabled == false) {location.assign('javascript:document.forms.namedItem("buyreward").submit()');} } } var fightsT = document.evaluate("//td[contains (., 'Fights today:')]/b", document, null, XPathResult.UNORDERED_NODE_SNAPSHOT_TYPE, null); var fightsTN=fightsT.snapshotItem(0).innerHTML; var winsT = document.evaluate("//td[contains (., 'Wins today:')]/b", document, null, XPathResult.UNORDERED_NODE_SNAPSHOT_TYPE, null); var winsTN= winsT.snapshotItem(0).innerHTML; var winsO = document.evaluate("//tr[contains (., 'overall:')]/td[2]/b", document, null, XPathResult.UNORDERED_NODE_SNAPSHOT_TYPE, null); var winsON= winsO.snapshotItem(0).innerHTML; var fightsO = document.evaluate("//tr[contains (., 'overall:')]/td[1]/b", document, null, XPathResult.UNORDERED_NODE_SNAPSHOT_TYPE, null); var fightsON = fightsO.snapshotItem(0).innerHTML; var percentT = Math.round(winsTN/fightsTN*Math.pow(10, (precision+2)))/Math.pow(10, precision) var percentO = Math.round(winsON/fightsON*Math.pow(10, (precision+2)))/Math.pow(10, precision) if (fightsTN==0) {percentT=0;} //Avoids N/A being the Today's %: var newRow = document.createElement('tr'); //Creates the new Row var newtd1 = document.createElement('td'); //Creates the 1st new cell newtd1.innerHTML = "Today's %: <b>"+percentT+"%</b>"; var newtd2 = document.createElement('td'); //Creates the 2nd new cell newtd2.innerHTML = "Overall %: <b>"+percentO+"%</b>"; newtd2.align = "right"; //Aligns the cell Right newRow.appendChild(newtd1); //Inserts the new Cells into the new Row newRow.appendChild(newtd2); var overallRowHTML = document.evaluate("//td[contains (., 'overall:')]/b/../..", document, null, XPathResult.UNORDERED_NODE_SNAPSHOT_TYPE, null); var overallRow = overallRowHTML.snapshotItem(0); overallRow.parentNode.insertBefore(newRow, overallRow.nestSibling); window.addEventListener("keyup", process_event, false);