Ted's Diamond Hunt 2 custom market user interface
当前为
// ==UserScript==
// @name Ted's market UI
// @namespace Ted's market UI
// @version 1.21
// @description Ted's Diamond Hunt 2 custom market user interface
// @author ted120
// @match http://*.diamondhunt.co/game.php
// @match https://*.diamondhunt.co/game.php
// @run-at document-idle
// @grant none
// ==/UserScript==
$(document).ready(function () {
var hideItemList = ["Raw Shark","Stinger","Wheat","Bear Fur","Stone","Bones","Ashes","Snake Skin","Bat Skin","Raw Shrimp","Shrimp"];
//alter hideItemList as necessary, use marketstyle name caps, "Bat Skin" and not "batSkin" etc
var notEnoughCoinsOpacity = true, showMaxCanBuy = true;
var debugToConsole = false;
var arrMarketItems = [];
var arrMarketSlots = [[0, 0]]; //updateMarketSlots()
var marketInterval;
var marketOn = true;
var zMarket = document.createElement ("div");
function drawButtons() {
zMarket = document.createElement ("div");
zMarket.innerHTML = "<button id='marketButton' type='button'>Ted's market UI = "+marketOn+"</button>";
document.body.appendChild(zMarket);
document.getElementById ("marketButton").addEventListener (
"click", marketButtonClickAction, false
);
}
function removeButtons() {
document.body.removeChild(zMarket);
}
function buttonMain() {
removeButtons();
drawButtons();
}
function isInArray(array, search)
{
return array.indexOf(search) >= 0;
}
function getMarketItems() {
var currentItemId, itemName, itemId, itemPrice, itemAmount, itemMarketId, uniqueMarketItems = 0;
arrMarketItems = [];
for (var i = 1; i < document.getElementById("market-table").rows.length; i++) {
if (typeof(document.getElementById("market-table").rows[i].childNodes[0]) != "undefined" && document.getElementById("market-table").rows[i].childNodes[0] !== null) {
itemName = document.getElementById("market-table").rows[i].childNodes[0];
itemId = document.getElementById("market-table").rows[i].getAttribute("data-market-itemid");
itemPrice = document.getElementById("market-table").rows[i].getAttribute("data-market-price");
itemAmount = document.getElementById("market-table").rows[i].getAttribute("data-market-amount");
itemMarketId = document.getElementById("market-table").rows[i].getAttribute("data-market-marketid");
if (itemId != currentItemId) {
currentItemId = itemId;
uniqueMarketItems++;
arrMarketItems.push([document.getElementById("market-table").rows[i].childNodes[0].innerHTML, itemId]);
}
arrMarketItems[uniqueMarketItems-1].push([itemPrice, itemAmount, itemMarketId, i]);
}
}
}
function alterMarketTable() {
var i, a, s, maxCanBuy;
document.getElementById("market-table").rows[0].style.backgroundColor = "gold";
if (debugToConsole) { console.log(arrMarketItems); }
for (i = 0; i < arrMarketItems.length; i++) {
for (a = 2; a < arrMarketItems[i].length; a++) {
maxCanBuy = Math.floor(coins / arrMarketItems[i][a][0]);
if (showMaxCanBuy) {
if (maxCanBuy > arrMarketItems[i][a][1]) { maxCanBuy = arrMarketItems[i][a][1]; }
document.getElementById("market-table").rows[arrMarketItems[i][a][3]].cells[3].append(" (x"+maxCanBuy+")");
}
if (notEnoughCoinsOpacity && maxCanBuy == 0) {
document.getElementById("market-table").rows[arrMarketItems[i][a][3]].style.opacity = "0.3";
}
if (document.getElementById("market-table").rows.length < 13) {
if (arrMarketItems[i].length >= 4) {
if (arrMarketItems[i][2][0] < Math.ceil(arrMarketItems[i][3][0] * 0.86) && arrMarketItems[i][2][0]) {
document.getElementById("market-table").rows[arrMarketItems[i][2][3]].style.backgroundColor = "#90ee90"; //lightgreen
document.getElementById("market-table").rows[arrMarketItems[i][2][3]].style.display = "";
document.getElementById("market-table").rows[arrMarketItems[i][2][3]].style.fontWeight = 700;
document.getElementById("market-table").rows[arrMarketItems[i][3][3]].style.backgroundColor = "#ffcc66"; //lightorange
document.getElementById("market-table").rows[arrMarketItems[i][3][3]].style.display = "";
}
}
for (s = 0; s < arrMarketSlots.length; s++) {
if (arrMarketSlots[s][1] === false) {
if (arrMarketItems[i][a][2] == arrMarketSlots[s][0]) {
if (a == 2) {
document.getElementById("market-table").rows[arrMarketItems[i][a][3]].style.display = "";
document.getElementById("market-table").rows[arrMarketItems[i][a][3]].style.backgroundColor = "#bffffd"; //lightblue
} else if (a > 2) {
document.getElementById("market-table").rows[arrMarketItems[i][a][3]].style.backgroundColor = "#ff7878"; //lightred
document.getElementById("market-table").rows[arrMarketItems[i][a][3]].style.display = "";
document.getElementById("market-table").rows[arrMarketItems[i][2][3]].style.backgroundColor = "#ffcccc"; //lighterred
document.getElementById("market-table").rows[arrMarketItems[i][2][3]].style.display = "";
} else console.log("for (a... error");
}
}
}
} else if (document.getElementById("market-table").rows.length > 12) {
document.getElementById("market-table").rows[arrMarketItems[i][a][3]].style.backgroundColor = "red";
document.getElementById("market-table").rows[arrMarketItems[i][a][3]].style.display = "none";
for (s = 0; s < arrMarketSlots.length; s++) {
if (arrMarketSlots[s][1] === false) {
if (arrMarketItems[i][a][2] == arrMarketSlots[s][0]) {
if (a == 2) {
document.getElementById("market-table").rows[arrMarketItems[i][a][3]].style.display = "";
document.getElementById("market-table").rows[arrMarketItems[i][a][3]].style.backgroundColor = "#bffffd"; //lightblue
} else if (a > 2) {
document.getElementById("market-table").rows[arrMarketItems[i][a][3]].style.backgroundColor = "#ff7878"; //lightred
document.getElementById("market-table").rows[arrMarketItems[i][a][3]].style.display = "";
document.getElementById("market-table").rows[arrMarketItems[i][2][3]].style.backgroundColor = "#ffcccc"; //lighterred
document.getElementById("market-table").rows[arrMarketItems[i][2][3]].style.display = "";
} else console.log("for (a... error");
}
}
}
if (arrMarketItems[i].length == 3 && (!isInArray(hideItemList,arrMarketItems[i][0]))) {
document.getElementById("market-table").rows[arrMarketItems[i][2][3]].style.backgroundColor = "#ffff66"; //lightyellow
document.getElementById("market-table").rows[arrMarketItems[i][2][3]].style.display = "";
} else if (arrMarketItems[i].length >= 4 && (!isInArray(hideItemList,arrMarketItems[i][0]))) {
if (arrMarketItems[i][2][0] < Math.ceil(arrMarketItems[i][3][0] * 0.86) && arrMarketItems[i][2][0]) {
document.getElementById("market-table").rows[arrMarketItems[i][2][3]].style.backgroundColor = "#90ee90"; //lightgreen
document.getElementById("market-table").rows[arrMarketItems[i][2][3]].style.display = "";
document.getElementById("market-table").rows[arrMarketItems[i][2][3]].style.fontWeight = 700;
document.getElementById("market-table").rows[arrMarketItems[i][3][3]].style.backgroundColor = "#ffcc66"; //lightorange
document.getElementById("market-table").rows[arrMarketItems[i][3][3]].style.display = "";
}
}
}
}
}
}
function updateMarketSlots() {
arrMarketSlots = [[marketSlot1, false]];
for (var i = 0; i < arrMarketSlots.length; i++) {
if (document.getElementById("market-slot-"+(i + 1)+"-free").style.display === "") {
arrMarketSlots[i][1] = true;
}
}
}
function marketReloaded() {
if (typeof(document.getElementById("market-table").rows[0]) != "undefined" && document.getElementById("market-table").rows[0] !== null) {
// exists
if (document.getElementById("market-table").rows[0].style.backgroundColor == "silver") {
updateMarketSlots();
getMarketItems();
alterMarketTable();
return true;
} else return false;
}
}
function marketMain() {
if (marketOn === true) {
marketInterval = setInterval(marketReloaded, 0);
}
}
function marketButtonClickAction (zEvent) {
if (marketOn === true) {
marketOn = false;
clearInterval(marketInterval);
buttonMain();
} else if (marketOn === false) {
marketOn = true;
marketMain();
buttonMain();
}
}
drawButtons();
marketMain();
});