您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
Opens x amount of bait at once and collates the loot
- // ==UserScript==
- // @name IdlePixel Bait Thrower
- // @namespace lbtechnology.info
- // @version 1.0.5
- // @description Opens x amount of bait at once and collates the loot
- // @author Lux-Ferre
- // @license MIT
- // @match *://idle-pixel.com/login/play*
- // @grant none
- // @require https://greasyfork.org/scripts/441206-idlepixel/code/IdlePixel+.js?anticache=20220905
- // ==/UserScript==
- (function() {
- 'use strict';
- class BaitPlugin extends IdlePixelPlusPlugin {
- constructor() {
- super("baitplugin", {
- about: {
- name: GM_info.script.name,
- version: GM_info.script.version,
- author: GM_info.script.author,
- description: GM_info.script.description
- },
- });
- this.tracking_bait = false
- this.total_bait_loots = 0
- this.bait_counter = 0
- this.bait_loot = {}
- }
- onLogin(){
- $(`itembox[data-item="bait"]`).attr("onClick", "IdlePixelPlus.plugins.baitplugin.open_input_dialogue('BAIT')")
- $(`itembox[data-item="super_bait"]`).attr("onClick", "IdlePixelPlus.plugins.baitplugin.open_input_dialogue('SUPER_BAIT')")
- $(`itembox[data-item="mega_bait"]`).attr("onClick", "IdlePixelPlus.plugins.baitplugin.open_input_dialogue('MEGA_BAIT')")
- }
- onMessageReceived(data){
- if(this.tracking_bait && data.startsWith("OPEN_LOOT_DIALOGUE")){
- const values = data.split("=")[1]
- const values_array = values.split("~")
- const items = this.parseItemData(values_array)
- this.bait_loot = this.addToLoot(this.bait_loot, items)
- this.bait_counter++;
- if (this.bait_counter>=this.total_bait_loots){
- this.tracking_bait = false
- this.createLootPopup()
- }
- }
- }
- open_input_dialogue(bait_type){
- const prettyBaitName = bait_type.toLowerCase().split('_').map(word => word.charAt(0).toUpperCase() + word.slice(1)).join(' ');
- document.getElementById("modal-input-image").src = get_image(`images/${bait_type.toLowerCase()}.png`);
- document.getElementById("modal-input-description").innerHTML = `How many ${prettyBaitName} do you want to throw?`;
- document.getElementById("modal-input-text").value = 0;
- document.getElementById("modal-input-button-text").innerHTML = "Throw!";
- document.getElementById("modal-input-button").onclick = function()
- {
- IdlePixelPlus.plugins.baitplugin.throwBait(bait_type, parseInt(document.getElementById("modal-input-text").value));
- }
- Modals.toggle("modal-item-input");
- }
- throwBait(bait_type, num){
- this.bait_counter = 0;
- this.bait_loot = {}
- this.tracking_bait = true
- const currentBait = window[`var_${bait_type.toLowerCase()}`]
- if(num > currentBait){
- this.total_bait_loots = currentBait
- } else {
- this.total_bait_loots = num
- }
- for (let i = 0; i < this.total_bait_loots; i++) {
- websocket.send(`THROW_${bait_type}`);
- }
- }
- addToLoot(totalLoot, newLoot){
- for (let [itemName, value] of Object.entries(newLoot)) {
- if (totalLoot.hasOwnProperty(itemName)){
- totalLoot[itemName].number = totalLoot[itemName].number + value.number
- } else {
- totalLoot[itemName] = value
- }
- }
- return totalLoot
- }
- parseItemData(values_array){
- const items = {}
- let background = ""
- for(let i = 2; i < values_array.length; i+=0){
- const image = values_array[i];
- i++;
- let [number, ...label] = values_array[i].split(" ");
- number = parseInt(number)
- label = label.join(" ")
- i++;
- background = values_array[i];
- i++;
- items[image] = {
- number: number,
- label: label,
- background: background
- }
- }
- return items
- }
- createLootPopup(){
- const images = [];
- const labels = [];
- const background = [];
- for (let [itemName, value] of Object.entries(this.bait_loot)){
- images.push(itemName);
- const newLabel = `${value.number} ${value.label}`
- labels.push(newLabel);
- background.push(value.background);
- }
- this.open_loot_dialogue(images, labels, background);
- }
- open_loot_dialogue(loot_images_array, loot_labels_array, loot_background_color_array){
- const loot_body = document.getElementById("modal-loot-body");
- let html = "";
- for(let i = 0; i < loot_images_array.length; i++)
- {
- let image = loot_images_array[i];
- let label = loot_labels_array[i];
- let background_color = loot_background_color_array[i];
- if(!isNaN(label))
- label = "+" + format_number(label);
- if(label.endsWith("(NEW)"))
- {
- label = label.substring(0, label.length-5);
- label += " <img class='blink' src='https://idlepixel.s3.us-east-2.amazonaws.com/images/new.png' />"
- }
- if(label.endsWith("(UNIQUE)"))
- {
- label = label.substring(0, label.length-8);
- label += " <img class='blink' src='https://idlepixel.s3.us-east-2.amazonaws.com/images/unique.png' />"
- }
- html += "<div class='loot' style='background-color:"+background_color+"'>";
- html += "<img src='https://idlepixel.s3.us-east-2.amazonaws.com/"+image+"' class='w50 me-3' />";
- html += label;
- html += "</div>";
- }
- loot_body.innerHTML = html;
- if($('#modal-loot:visible').length == 0){
- Modals.toggle("modal-loot");
- }
- }
- }
- const plugin = new BaitPlugin();
- IdlePixelPlus.registerPlugin(plugin);
- })();