您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
Auto-suggests "useless" cards for trading.
// ==UserScript== // @name BvS Automated Card Trade Suggestions // @namespace BvS // @description Auto-suggests "useless" cards for trading. // @version 1.2 // @history 1.2 New domain - animecubedgaming.com - Channel28 // @history 1.1 Now https compatible (Updated by Channel28) // @include http*://*animecubed.com/billy/bvs/pizzawitchgarage.html // @include http*://*animecubedgaming.com/billy/bvs/pizzawitchgarage.html // @grant none // ==/UserScript== function arrayContains(arr, obj) { var i = arr.length; while (i--) { if (arr[i] === obj) { return true; } } return false; } var labels = new Array(); var cardSets = new Array(); cardSets["Special Collection"] = 0; cardSets["Style Selection"] = 1; cardSets["Easy Street"] = 2; cardSets["Midnight Run"] = 3; cardSets["Maximum Tune"] = 4; var rarities = new Array(); rarities["Common"] = 0; rarities["Rare"] = 1; rarities["Super-Rare"] = 2; var cardTypes = new Array(); cardTypes["Ability"] = 0; cardTypes["Equip"] = 1; cardTypes["Passenger Equip"] = 2; var neededCards = new Array(); //Note that you want to have -at least- one common card from each set marked as needed. //Otherwise you'll trade everything down to tips. //Abilities that we don't want to trade neededCards.push("One Last Race"); neededCards.push("Infinite Potential"); neededCards.push("Emergency Countermeasures"); neededCards.push("Melty Cheese"); //Equipment that we don't want to trade neededCards.push("Jump Jacks"); neededCards.push("Jack Jumps"); neededCards.push("Awesomium Banding"); neededCards.push("Cobalt Supercharger"); neededCards.push("Basic Turbo"); neededCards.push("World Class Machine"); function canTrade(card) { var cardSet = card.cardSet; if(cardSet < 2) return false; //Never autotrade special or style var rarity = card.rarity; if(rarity > 1) return false; //Never autotrade super rares, which means we never trade passengers. var count = card.count; if(count < 2) return false; //Never autotrade the last of any card var name = card.name; if(arrayContains(neededCards,name)) return false; //Never autotrade the cards we need return true; } //Trade the most expensive cardsets first //Then trade the most rare cards first //Then trade the cards you have the most of first function compareCardCount(a, b) { var r = b.cardSet - a.cardSet; if(r != 0) return r; r = b.rarity - a.rarity; if(r != 0) return r; return b.count - a.count; } function decipherLabel(label) { var card = new Array(); var tempStatText; //temporary holder for stats var count,name,rarity,cardType,cardSet; tempStatText = label.children[2].innerHTML; count = label.innerHTML.substring(0,label.innerHTML.indexOf("\n")); name = label.children[0].innerHTML; //The form is //(RARITY CARDTYPE - CARDSET)<br> //We don't care about the other stats for now. //I'm too lazy to use regexes here and it's too simple a pattern. tempStatText = tempStatText.substring(1,tempStatText.indexOf(")")); var space = tempStatText.indexOf(" "); rarity = rarities[tempStatText.substring(0, space)]; tempStatText = tempStatText.substring(space+1); var dash = tempStatText.indexOf("-"); cardSet = cardSets[tempStatText.substring(dash+2)]; cardType = cardTypes[tempStatText.substring(0,dash-1)]; card["count"] = count; card["name"] = name; card["rarity"] = rarity; card["cardSet"] = cardSet; card["cardType"] = cardType; return card; } window.addEventListener('load', function () { //Rather ghetto detect-if-we're-on-the-correct-page var index = document.body.innerHTML.indexOf("Trade Cards with Cici!"); if(index < 0) { return; } var tradecards = document.getElementsByName("tradecards")[0]; var tradeText = tradecards.children[7]; var labelElements = document.getElementsByTagName("label"); for(var i in labelElements) { var label = labelElements[i]; labels[label.htmlFor] = label; } var cardRadioButtons = document.getElementsByName("cardtrades"); var cardCount = document.getElementsByName("cardcount")[0]; var cards = new Array(); var cardsById = new Array(); for(var i in cardRadioButtons) { var cardRadioButton = cardRadioButtons[i]; var label = labels[cardRadioButton.id]; var card = decipherLabel(label); card["button"] = cardRadioButton; cards.push(card); cardsById[cardRadioButton.id] = card; card.button.addEventListener("click", function() { var c = cardsById[this.id]; tradeText.textContent = c.name + " will be traded, you have " + c.count; cardCount.value = c.count - 1; //Never trade ALL of one card. }, true); } cards.sort(compareCardCount); /* for(var i in cards) { var card = cards[i]; console.log(i + " " + card.cardSet + " " + card.rarity + " " + card.count + " " + card.name); } */ for(var i in cards) { var card = cards[i]; if(canTrade(card)) { //console.log(card.count + " " + card.name + " " + card.rarity + " " + card.cardSet + " " + card.cardType); card.button.click(); break; } } }, true);
QingJ © 2025
镜像随时可能失效,请加Q群300939539或关注我们的公众号极客氢云获取最新地址