Melvor MakeX

Make X Crafts

За да инсталирате този скрипт, трябва да имате инсталирано разширение като Tampermonkey, Greasemonkey или Violentmonkey.

За да инсталирате този скрипт, трябва да инсталирате разширение, като например Tampermonkey .

За да инсталирате този скрипт, трябва да имате инсталирано разширение като Tampermonkey или Violentmonkey.

За да инсталирате този скрипт, трябва да имате инсталирано разширение като Tampermonkey или Userscripts.

За да инсталирате скрипта, трябва да инсталирате разширение като Tampermonkey.

За да инсталирате този скрипт, трябва да имате инсталиран скриптов мениджър.

(Вече имам скриптов мениджър, искам да го инсталирам!)

За да инсталирате този стил, трябва да инсталирате разширение като Stylus.

За да инсталирате този стил, трябва да инсталирате разширение като Stylus.

За да инсталирате този стил, трябва да инсталирате разширение като Stylus.

За да инсталирате този стил, трябва да имате инсталиран мениджър на потребителски стилове.

За да инсталирате този стил, трябва да имате инсталиран мениджър на потребителски стилове.

За да инсталирате този стил, трябва да имате инсталиран мениджър на потребителски стилове.

(Вече имам инсталиран мениджър на стиловете, искам да го инсталирам!)

// ==UserScript==
// @name         Melvor MakeX
// @namespace    http://tampermonkey.net/
// @version      0.0.3
// @description  Make X Crafts
// @author       Breindahl#2660
// @match        https://*.melvoridle.com/*
// @grant        none
// ==/UserScript==
/* jshint esversion: 6 */

(main => {
    var script = document.createElement('script');
    script.textContent = `try {(${main})();} catch (e) {console.log(e);}`;
    document.body.appendChild(script).parentNode.removeChild(script);
})(() => {

// Note that this script is made for MelvorIdle version 0.16.3

// Loading script
console.log('Melvor MakeX Loaded');

// Function to send notifications
function notify(msg) {
	One.helpers('notify', {
		type: 'dark',
		from: 'bottom',
		align: 'center',
		message: msg
	});
}

// Funtion to check if task is complete
function taskComplete() {
    if (window.makeLeft === 0) {
        notify("Task Done");
        console.log('task done');
        let ding = new Audio("https://www.myinstants.com/media/sounds/ding-sound-effect.mp3");
        ding.volume=0.1;
        ding.play();
	window.makeLeft = Infinity;
	}
}

const skillVerbs = [
  // {name: 'Woodcutting', verb: 'Cut', selected: 'Log'},
  // {name: 'Fishing', verb: 'Fish', selected: 'Fish'},
  // {name: 'Cooking', verb: 'Cook', selected: 'Food'},
  // {name: 'Mining', verb: 'Mine', selected: 'Food'},
  {name: 'Smithing', verb: 'Smith', selected: 'Smith'},
  // {name: 'Thieving', verb: 'Thieve', selected: 'Thieve'},
  {name: 'Fletching', verb: 'Fletch', selected: 'Fletch'},
  {name: 'Crafting', verb: 'Craft', selected: 'Craft'},
  {name: 'Runecrafting', verb: 'Create', selected: 'Runecraft'},
  {name: 'Magic', verb: 'Cast', selected: 'AltMagic'},
  {name: 'Herblore', verb: 'Brew', selected: 'Herblore'}
];


let TempContainerMakeX = ['<small class="mr-2" id="','"><button type="button" class="btn btn-warning m-3" onclick="setMakeX(',');">','</button></small>'];
$("#craft-item-have").parent().parent().parent().children().last().children().first().children().first().after(TempContainerMakeX[0]+"CraftX"+TempContainerMakeX[1]+"'Crafting'"+TempContainerMakeX[2]+"Craft X"+TempContainerMakeX[3]);
$("#smith-item-have").parent().parent().parent().children().last().children().first().children().first().after(TempContainerMakeX[0]+"SmithX"+TempContainerMakeX[1]+"'Smithing'"+TempContainerMakeX[2]+"Smith X"+TempContainerMakeX[3]);
$("#fletch-item-have").parent().parent().parent().children().last().children().first().children().first().after(TempContainerMakeX[0]+"FletchX"+TempContainerMakeX[1]+"'Fletching'"+TempContainerMakeX[2]+"Fletch X"+TempContainerMakeX[3]);
$("#runecraft-item-have").parent().parent().parent().children().last().children().first().children().first().after(TempContainerMakeX[0]+"CreateX"+TempContainerMakeX[1]+"'Runecrafting'"+TempContainerMakeX[2]+"Create X"+TempContainerMakeX[3]);
$("#herblore-item-have").parent().parent().parent().children().last().children().first().children().first().after(TempContainerMakeX[0]+"BrewX"+TempContainerMakeX[1]+"'Herblore'"+TempContainerMakeX[2]+"Brew X"+TempContainerMakeX[3]);
$("#magic-item-have").parent().parent().parent().children().last().children().first().children().first().after(TempContainerMakeX[0]+"CastX"+TempContainerMakeX[1]+"'Magic'"+TempContainerMakeX[2]+"Cast X"+TempContainerMakeX[3]);
// $("#skill-cooking-food-selected-qty").after(TempContainer[0] + "timeLeftCooking" + TempContainer[1]);
// $("#skill-fm-logs-selected-qty").after(TempContainer[0] + "timeLeftFiremaking" + TempContainer[1]);



window.makeLeft = Infinity;

function makeX(clicked,currentSkill) {
	let verb = skillVerbs.find( ({ name }) => name === currentSkill ).verb;
	if (eval("!is"+currentSkill) && clicked) {
		window.makeLeft = Infinity;
		$("#"+verb+"X").children().first().html(verb + " X");
	}
	if(makeLeft != Infinity && !clicked) {
		window.makeLeft -= 1;
		$("#"+verb+"X").children().first().html(makeLeft + " left");
	}
	console.log('makeLeft: '+ makeLeft);
	if (window.makeLeft === 0) {
		taskComplete();
		if(currentSkill==="Magic") {
			castMagicRef2(true);
		}
		else {
			eval("start"+currentSkill+"Ref2(true);");
		}
		$("#"+verb+"X").children().first().html(verb + " X");
	}
	
}

window.setMakeX = function(currentSkill) {
	let verb = skillVerbs.find( ({ name }) => name === currentSkill ).verb;
	let selected = skillVerbs.find( ({ name }) => name === currentSkill ).selected;
	if (eval("selected"+selected) !== undefined) {
		if (makeLeft===Infinity) {
			let SetMakeX = prompt('How many would you like to make?');
			if (SetMakeX !== null) {
				window.makeLeft = SetMakeX;
				$("#"+verb+"X").children().first().html(makeLeft + " left");
				console.log('makeLeft: '+ makeLeft);
			}
		}
		else{
			window.makeLeft = Infinity;
			$("#"+verb+"X").children().first().html(verb+" X");
		}
		if(currentSkill==="Magic") {
			castMagic(true);
		}
		else {
			eval("start"+currentSkill+"(true);");
		}	
	}
};

// ## CRAFTING ##
var startCraftingRef2 = startCrafting;
window.startCrafting = function(...args) {
	startCraftingRef2(...args);
	makeX(arguments[0],"Crafting");
};

// ## SMITHING ##
var startSmithingRef2 = startSmithing;
window.startSmithing = function(...args) {
	startSmithingRef2(...args);
	makeX(arguments[0],"Smithing");
};

// ## RUNECRAFTING ##
var startRunecraftingRef2 = startRunecrafting;
window.startRunecrafting = function(...args) {
	startRunecraftingRef2(...args);
	makeX(arguments[0],"Runecrafting");
};

// ## FLETCHING ##
var startFletchingRef2 = startFletching;
window.startFletching = function(...args) {
	startFletchingRef2(...args);
	makeX(arguments[0],"Fletching");
};

// ## HERBLORE ##
var startHerbloreRef2 = startHerblore;
window.startHerblore = function(...args) {
	startHerbloreRef2(...args);
	makeX(arguments[0],"Herblore");
};

// ## MAGIC ##
var castMagicRef2 = castMagic;
window.castMagic = function(...args) {
	castMagicRef2(...args);
	makeX(arguments[0],"Magic");
};

});