您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
Autofill Buy/Sell Market with shortcuts for setting target price
// ==UserScript== // @name Autofill Buy/Sell with Shortcuts // @version 1.8 // @description Autofill Buy/Sell Market with shortcuts for setting target price // @include https://*/game.php*screen=market&mode=exchange* // @grant none // @namespace https://greasyfork.org/users/1388863 // ==/UserScript== (function() { 'use strict'; const coefStock = 0.0041; const coefCapacity = -0.0037; const intercept = 411.86; // Create a popup for autofill options const popup = document.createElement('div'); popup.style.position = 'fixed'; popup.style.bottom = '20px'; popup.style.left = '20px'; popup.style.backgroundColor = '#f9f9f9'; popup.style.padding = '20px'; popup.style.border = '1px solid #ddd'; popup.style.borderRadius = '8px'; popup.style.boxShadow = '0 0 10px rgba(0, 0, 0, 0.1)'; popup.style.zIndex = '10000'; popup.innerHTML = '<label>Target Buy:</label><br>' + '<input type="number" id="targetPrice" />' + '<button id="shortcut490Btn">500</button>' + '<button id="shortcut545Btn">550</button>' + '<button id="shortcut580Btn">625</button>' + '<button id="shortcut635Btn">700</button><br><br>' + '<button id="saveBtn">Save</button>' + '<button id="autoFillWoodBtn" style="background-color: brown; color: white;">Wood</button>' + '<button id="autoFillStoneBtn" style="background-color: orange; color: white;">Clay</button>' + '<button id="autoFillIronBtn" style="background-color: gray; color: white;">Iron</button>' + '<button id="buyBtn">Offer</button>' + '<button id="resetBtn">Reset</button>' + '<div id="results"></div>'; document.body.appendChild(popup); // Set default target price or load from localStorage const defaultTargetPrice = 300; const savedTargetPrice = localStorage.getItem('targetPrice'); document.getElementById('targetPrice').value = savedTargetPrice !== null ? savedTargetPrice : defaultTargetPrice; // Save target price to localStorage document.getElementById('targetPrice').addEventListener('change', function() { localStorage.setItem('targetPrice', this.value); }); // Function for shortcut buttons function setTargetPrice(price) { const targetPriceInput = document.getElementById('targetPrice'); targetPriceInput.value = price; localStorage.setItem('targetPrice', price); } // Helper function to get stock and capacity function getStockAndCapacity(idStock, idCapacity) { const stock = parseFloat(document.getElementById(idStock).innerText); const capacity = parseFloat(document.getElementById(idCapacity).innerText); return { stock, capacity }; } // Auto Fill function for materials function autoFillMaterial(stockId, capacityId, buyInputName, sellInputName) { const targetPrice = parseFloat(document.getElementById('targetPrice').value); if (isNaN(targetPrice)) { alert("Harap masukkan harga target yang valid."); return; } const { stock, capacity } = getStockAndCapacity(stockId, capacityId); const requiredStock = (targetPrice - intercept - coefCapacity * capacity) / coefStock; const stockDifference = stock - requiredStock; if (stockDifference > 0) { document.getElementsByName(buyInputName)[0].value = Math.abs(Math.round(stockDifference)); document.getElementsByName(sellInputName)[0].value = ""; } else { document.getElementsByName(sellInputName)[0].value = Math.abs(Math.round(stockDifference)); document.getElementsByName(buyInputName)[0].value = ""; } } // Reset all inputs function resetInputs() { const inputs = ['buy_wood', 'sell_wood', 'buy_stone', 'sell_stone', 'buy_iron', 'sell_iron']; inputs.forEach(name => { document.getElementsByName(name)[0].value = ""; }); } // Event listeners for buttons // Event listener for the "Save" button without alert document.getElementById('saveBtn').addEventListener('click', () => { const targetPriceInput = document.getElementById('targetPrice'); localStorage.setItem('targetPrice', targetPriceInput.value);}); document.getElementById('shortcut490Btn').addEventListener('click', () => setTargetPrice(435)); document.getElementById('shortcut545Btn').addEventListener('click', () => setTargetPrice(465)); document.getElementById('shortcut580Btn').addEventListener('click', () => setTargetPrice(510)); document.getElementById('shortcut635Btn').addEventListener('click', () => setTargetPrice(535)); document.getElementById('autoFillWoodBtn').addEventListener('click', () => autoFillMaterial( "premium_exchange_stock_wood", "premium_exchange_capacity_wood", "buy_wood", "sell_wood" )); document.getElementById('autoFillStoneBtn').addEventListener('click', () => autoFillMaterial( "premium_exchange_stock_stone", "premium_exchange_capacity_stone", "buy_stone", "sell_stone" )); document.getElementById('autoFillIronBtn').addEventListener('click', () => autoFillMaterial( "premium_exchange_stock_iron", "premium_exchange_capacity_iron", "buy_iron", "sell_iron" )); function buyMaterials() { const buyButton = document.querySelector('input[type="submit"][class="btn float_right btn-premium-exchange-buy"]'); if (buyButton) { buyButton.click(); // Klik tombol Buy } else { alert("Tombol Buy tidak ditemukan."); } } // Fungsi untuk mereset input function resetInputs() { document.getElementsByName("buy_wood")[0].value = ""; document.getElementsByName("sell_wood")[0].value = ""; document.getElementsByName("buy_stone")[0].value = ""; document.getElementsByName("sell_stone")[0].value = ""; document.getElementsByName("buy_iron")[0].value = ""; document.getElementsByName("sell_iron")[0].value = ""; } // Event listeners for buttons document.getElementById('buyBtn').addEventListener('click', buyMaterials); document.getElementById('resetBtn').addEventListener('click', resetInputs); })();