Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- // ==UserScript==
- // @name Melvor Super Control Panel
- // @namespace http://tampermonkey.net/
- // @version 0.3.5
- // @description Have fun with the power of automation!
- // @author Strutty
- // @match https://*.melvoridle.com/*
- // ==/UserScript==
- //TODO:
- //1. Add in switching gloves for mining & smithing
- //2. Add level checking for mining in case ores in mineArray are unavailable
- //Important Settings
- //AutoMine
- const copper = 0;
- const tin = 1;
- const iron = 2;
- const coal = 3;
- const silver = 4;
- const gold = 5;
- const mithril = 6;
- const addy = 7;
- const runite = 8;
- const dragonite = 9;
- const runeEssence = 10;
- var mineArray = ([coal, mithril, gold, addy]);
- //AutoSellGems
- var targetStack = 20;
- var gemIdList = [128, 129, 130, 131, 132];
- //AutoSmith
- var smithIdList = [0, 12, 24, 35, 41, 53, 54, 63];
- //General Functions
- function getBankQty(id) {
- for (let i = 0; i < bank.length; i++) {
- if (bank[i].id === id) {
- return bank[i].qty;
- }
- }
- return 0;
- }
- //AutoReplant: Will harvest & replant seeds in your successful farm patches while applying compost
- var autoReplantEnabled = false;
- var updateAutoReplantButtonText = function () {
- $('#auto-replant-button-status').text((autoReplantEnabled) ? 'Enabled' : 'Disabled');
- }
- var toggleAutoReplant = function () {
- autoReplantEnabled = !autoReplantEnabled;
- updateAutoReplantButtonText();
- setTimeout(function() {
- if (!autoReplantEnabled) {
- console.log("Auto Replant Disabled!");
- }else{
- changePage(15);
- }
- }, 100);
- }
- var setupAutoReplant = function() {
- if ($("#auto-replant-button").length) return;
- var containerRef = $(".content-side ul.nav-main li.nav-main-heading:last");
- var li = $('<li class="nav-main-item"></li>');
- containerRef.before(li);
- var button = $([
- '<a id="auto-replant-button" class="nav-main-link" href="javascript:void(0);">',
- '<img class="nav-img" src="assets/media/skills/farming/farming.svg">',
- '<span class="nav-main-link-name">AutoReplant</span>',
- '<small id="auto-replant-button-status"></small>',
- '</a>'
- ].join(""));
- li.append(button);
- button.on("click", toggleAutoReplant);
- updateAutoReplantButtonText();
- }
- var autoReplant = function() {
- if (!autoReplantEnabled) {
- return;
- }
- for (let i = 0; i < farmingAreas.length; i++) {
- for (let j = 0; j < farmingAreas[i].patches.length; j++) {
- if(farmingAreas[i].patches[j].hasGrown) {
- let lastSeed = farmingAreas[i].patches[j].seedID
- let grownID = items[farmingAreas[i].patches[j].seedID].grownItemID
- harvestSeed(i,j)
- if(checkBankForItem(lastSeed)) {
- if(farmingMastery[items[lastSeed].masteryID].mastery < 50) {
- if(checkBankForItem(CONSTANTS.item.Compost)) {
- if(bank[getBankId(CONSTANTS.item.Compost)].qty < 5) {
- buyQty = 5 - bank[getBankId(CONSTANTS.item.Compost)].qty
- buyCompost()
- }
- } else {
- buyQty = 5
- buyCompost()
- }
- addCompost(i,j,5)
- }
- selectedPatch = [i,j]
- selectedSeed = lastSeed
- plantSeed()
- }
- if (equippedFood.find(food => food.itemID === grownID) && checkBankForItem(grownID))
- equipFood(getBankId(grownID),grownID,bank[getBankId(grownID)].qty)
- }
- }
- }
- }
- var autoReplantTimer = setInterval(function(){autoReplant();}, 100);
- //AutoSmith: Will smith items in order until materials are exhausted
- var autoSmithEnabled = false;
- var updateAutoSmithButtonText = function () {
- $('#auto-smith-button-status').text((autoSmithEnabled) ? 'Enabled' : 'Disabled');
- }
- var toggleAutoSmith = function () {
- if(autoMineEnabled == true){toggleAutoMine();}
- autoSmithEnabled = !autoSmithEnabled;
- updateAutoSmithButtonText();
- setTimeout(function() {
- if (!autoSmithEnabled) {
- clearTimeout(smithingTimeout);
- isSmithing = false;
- currentSmith = null;
- console.log("Auto Smith Disabled!");
- }else{
- changePage(11);
- }
- }, 100);
- }
- var setupAutoSmith = function() {
- if ($("#auto-smith-button").length) return;
- var containerRef = $(".content-side ul.nav-main li.nav-main-heading:last");
- var li = $('<li class="nav-main-item"></li>');
- containerRef.before(li);
- var button = $([
- '<a id="auto-smith-button" class="nav-main-link" href="javascript:void(0);">',
- '<img class="nav-img" src="assets/media/skills/smithing/smithing.svg">',
- '<span class="nav-main-link-name">AutoSmith</span>',
- '<small id="auto-smith-button-status"></small>',
- '</a>'
- ].join(""));
- li.append(button);
- button.on("click", toggleAutoSmith);
- updateAutoSmithButtonText();
- }
- var autoSmith = function() {
- if (!autoSmithEnabled) {
- return;
- }
- for(const smithId of smithIdList){
- var item = smithingItems[smithId].itemID;
- var itemName = smithingItems[smithId].name;
- if(isSmithing == false){
- if(checkSmithingReq(item)){
- selectSmith(smithId);
- startSmithing(true);
- }else{
- console.log("You don't have the right materials to smith "+itemName);
- }
- }
- }
- var xpLeft = exp.level_to_xp(skillLevel[5] + 1) - skillXP[5];
- var smithItemXP = items[smithingItems[selectedSmith].itemID].smithingXP;
- var itemsLeft = Math.ceil(xpLeft / smithItemXP);
- var oldText = numberWithCommas(Math.floor(skillXP[5])) + " / " + numberWithCommas(exp.level_to_xp(skillLevel[5] + 1));
- $("#skill-progress-xp-5").text(oldText + " - " + numberWithCommas(xpLeft) + " - " + numberWithCommas(itemsLeft));
- }
- var autoSmithTimer = setInterval(function(){autoSmith();}, 100);
- //AutoSellGems: Will sell gems when they reach the stack amount specified
- var autoSellGemsEnabled = true;
- var updateAutoSellGemsButtonText = function () {
- $('#auto-sellgems-button-status').text((autoSellGemsEnabled) ? 'Enabled' : 'Disabled');
- }
- var toggleAutoSellGems = function () {
- autoSellGemsEnabled = !autoSellGemsEnabled;
- updateAutoSellGemsButtonText();
- setTimeout(function() {
- if (!autoSellGemsEnabled) {
- console.log("Auto Sell Gems Disabled!");
- }
- }, 100);
- }
- var setupAutoSellGems = function() {
- if ($("#auto-sellgems-button").length) return;
- var containerRef = $(".content-side ul.nav-main li.nav-main-heading:last");
- var li = $('<li class="nav-main-item"></li>');
- containerRef.before(li);
- var button = $([
- '<a id="auto-sellgems-button" class="nav-main-link" href="javascript:void(0);">',
- '<img class="nav-img" src="assets/media/bank/diamond.svg">',
- '<span class="nav-main-link-name">AutoSell Gems</span>',
- '<small id="auto-sellgems-button-status"></small>',
- '</a>'
- ].join(""));
- li.append(button);
- button.on("click", toggleAutoSellGems);
- updateAutoSellGemsButtonText();
- }
- var autoSellGems = function() {
- if (!autoSellGemsEnabled) {
- return;
- }
- for(const gemId of gemIdList){
- const curQty = getBankQty(gemId);
- //console.log('GEM ID '+gemId+' you have '+curQty);
- if(curQty > targetStack){
- sellItem(getBankId(gemId), targetStack);
- }
- }
- }
- var autoSellGemsTimer = setInterval(function(){autoSellGems();}, 10000);
- //AutoEat: Will automatically eat food items equipped if enemy damage would kill you
- var autoEatEnabled = false
- var updateAutoEatButtonText = function () {
- $('#auto-eat-button-status').text((autoEatEnabled) ? 'Enabled' : 'Disabled');
- }
- var toggleAutoEat = function () {
- autoEatEnabled = !autoEatEnabled;
- updateAutoEatButtonText();
- setTimeout(function() {
- if (!autoEatEnabled) {
- console.log("Auto Eat Disabled!");
- }
- }, 100);
- }
- var setupAutoEat = function() {
- if ($("#auto-eat-button").length) return;
- var containerRef = $(".content-side ul.nav-main li.nav-main-heading:last");
- var li = $('<li class="nav-main-item"></li>');
- containerRef.before(li);
- var button = $([
- '<a id="auto-eat-button" class="nav-main-link" href="javascript:void(0);">',
- '<img class="nav-img" src="assets/media/skills/cooking/cooking.svg">',
- '<span class="nav-main-link-name">AutoEat</span>',
- '<small id="auto-eat-button-status"></small>',
- '</a>'
- ].join(""));
- li.append(button);
- button.on("click", toggleAutoEat);
- updateAutoEatButtonText();
- }
- var autoEat = function() {
- if (!autoEatEnabled) {
- return;
- }
- while ((isInCombat && combatData.player.hitpoints <= Math.ceil((1 - damageReduction / 100) * combatData.enemy.maximumStrengthRoll)) || (isThieving && combatData.player.hitpoints <= Math.ceil((1 - damageReduction / 100) * thievingNPC[npcID].maxHit * numberMultiplier))) {
- if(combatData.player.hitpoints == skillLevel[CONSTANTS.skill.Hitpoints] * numberMultiplier) {
- stopCombat(false, true);
- break;
- }
- if(equippedFood[currentCombatFood].qty == 0) {
- let dungeonToResume = -1
- if(isDungeon) {
- dungeonToResume = selectedDungeon
- stopCombat(false, true);
- }
- if (equippedFood.some(food=>food.qty))
- selectEquippedFood(equippedFood.findIndex(food=>food.qty));
- else {
- let found = false
- for (let i = 0; i < bank.length; i++) {
- if(typeof(items[bank[i].id].healsFor) !== "undefined") {
- equipFood(i,bank[i].id,bank[i].qty);
- selectEquippedFood(0);
- found = true
- break;
- }
- }
- if(!found) break;
- }
- if(dungeonToResume !== -1) {
- selectDungeon(dungeonToResume);
- findEnemy();
- }
- }
- eatFood();
- }
- }
- var autoEatTimer = setInterval(function(){autoEat();}, 100);
- //AutoLoot: Will automatically loot items as enemies are killed
- var autoLootEnabled = false
- var updateAutoLootButtonText = function () {
- $('#auto-loot-button-status').text((autoLootEnabled) ? 'Enabled' : 'Disabled');
- }
- var toggleAutoLoot = function () {
- autoLootEnabled = !autoLootEnabled;
- updateAutoLootButtonText();
- setTimeout(function() {
- if (!autoLootEnabled) {
- console.log("Auto Loot Disabled!");
- }
- }, 100);
- }
- var setupAutoLoot = function() {
- if ($("#auto-loot-button").length) return;
- var containerRef = $(".content-side ul.nav-main li.nav-main-heading:last");
- var li = $('<li class="nav-main-item"></li>');
- containerRef.before(li);
- var button = $([
- '<a id="auto-loot-button" class="nav-main-link" href="javascript:void(0);">',
- '<img class="nav-img" src="assets/media/bank/necklace_of_looting.svg">',
- '<span class="nav-main-link-name">AutoLoot</span>',
- '<small id="auto-loot-button-status"></small>',
- '</a>'
- ].join(""));
- li.append(button);
- button.on("click", toggleAutoLoot);
- updateAutoLootButtonText();
- }
- var autoLoot = function() {
- if (!autoLootEnabled) {
- return;
- }
- if($("#loot-0").length){
- $("#loot-0").click();
- }
- }
- var autoLootTimer = setInterval(function(){autoLoot();}, 100);
- //AutoMine: Will mine based on your or priorities set in mineArray
- var autoMineEnabled = false;
- var updateAutoMineButtonText = function () {
- $('#auto-mine-button-status').text((autoMineEnabled) ? 'Enabled' : 'Disabled');
- }
- var toggleAutoMine = function () {
- if(autoSmithEnabled == true){toggleAutoSmith();}
- autoMineEnabled = !autoMineEnabled;
- updateAutoMineButtonText();
- setTimeout(function() {
- if (!autoMineEnabled) {
- mineRock(currentRock, true);
- console.log("Auto Mine Disabled!");
- }else{
- changePage(10);
- if(!glovesTracker[CONSTANTS.shop.gloves.Mining].isActive){
- //equipItem(34, 399);
- }
- }
- }, 100);
- }
- var setupAutoMine = function() {
- if ($("#auto-mine-button").length) return;
- var containerRef = $(".content-side ul.nav-main li.nav-main-heading:last");
- var li = $('<li class="nav-main-item"></li>');
- containerRef.before(li);
- var button = $([
- '<a id="auto-mine-button" class="nav-main-link" href="javascript:void(0);">',
- '<img class="nav-img" src="assets/media/skills/mining/mining.svg">',
- '<span class="nav-main-link-name">AutoMine</span>',
- '<small id="auto-mine-button-status"></small>',
- '</a>'
- ].join(""));
- li.append(button);
- button.on("click", toggleAutoMine);
- updateAutoMineButtonText();
- }
- var autoMine = function(rocks) {
- if (!autoMineEnabled) {
- return;
- }
- for(const rock of rocks) {
- if(!rockData[rock].depleted) {
- if(currentRock !== rock) {
- mineRock(rock);
- }
- return;
- }
- }
- }
- var autoMineTimer = setInterval(function(){autoMine(mineArray);}, 100);
- //Super Control Panel Builder
- setTimeout(function() {
- setupAutoMine();
- setupAutoLoot();
- setupAutoEat();
- setupAutoSellGems();
- setupAutoSmith();
- setupAutoReplant();
- },100);
- //setTimeout(function() {
- //toggleAutoMine();
- //},500);
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement