Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /**
- * Created by Nexus on 16.11.2017.
- */
- const upgradeOrder = {
- mainhand: [{name: "bow", level: 0},{name: "bow", level: 5}, {name: "bow", level: 6}, {name: "bow", level: 7}, {
- name: "bow",
- level: 8
- }, {name: "bow", level: 9},{name: "bow", level: 10}],
- helmet: [{name: "helmet", level: 5}, {name: "helmet", level: 6}, {name: "helmet", level: 7}, {
- name: "helmet",
- level: 8
- }, {name: "helmet", level: 9},{name: "helmet", level: 10}],
- chest: [{name: "coat", level: 5}, {name: "coat", level: 6}, {name: "coat", level: 7}, {
- name: "coat",
- level: 8
- }, {name: "coat", level: 9},{name: "coat", level: 10}],
- pants: [{name: "pants", level: 5}, {name: "pants", level: 6}, {name: "pants", level: 7}, {
- name: "pants",
- level: 8
- }, {name: "pants", level: 9},{name: "pants", level: 10}],
- gloves: [{name: "gloves", level: 5}, {name: "gloves", level: 6}, {name: "gloves", level: 7}, {
- name: "gloves",
- level: 8
- }, {name: "gloves", level: 9},{name: "gloves", level: 10}],
- shoes: [{name: "shoes", level: 5}, {name: "shoes", level: 6}, {name: "shoes", level: 7}, {
- name: "shoes",
- level: 8
- }, {name: "shoes", level: 9},{name: "shoes", level: 10}],
- };
- function findAll(name) {
- let results = [];
- for (let i = 0; i < character.items.length; i++) {
- if (character.items[i] !== null && character.items[i].name === name) {
- character.items[i].slot = i;
- results.push(character.items[i]);
- }
- }
- return results;
- }
- function findSlot(name, level) {
- for (let i = 0; i < character.items.length; i++) {
- if (character.items[i] !== null && character.items[i].name === name && character.items[i].level === level) {
- return i;
- }
- }
- return -1;
- }
- function detectLevel() {
- var level = {};
- for (let key in upgradeOrder) {
- if (character.slots[key] === null) {
- level[key] = 0;
- continue;
- }
- let found = false;
- for (let i = 0; i < upgradeOrder[key].length; i++) {
- if (character.slots[key].name === upgradeOrder[key][i].name && character.slots[key].level === upgradeOrder[key][i].level) {
- found = true;
- level[key] = i + 1;
- }
- }
- if (!found) {
- level[key] = -1;
- }
- }
- return level;
- }
- function nextToUpgrade(level) {
- let lowest = null;
- for (let key in level) {
- if (level[key] !== -1) {
- if (lowest === null || level[key] < level[lowest]) {
- lowest = key;
- }
- }
- }
- return lowest;
- }
- function autoUpgrade(itemName, level) {
- level = level ? level : 0;
- return new Promise(function (resolve, reject) {
- let interval = 0;
- function upgradeStep() {
- var items = findAll(itemName);
- if (items.length < 2) {
- return;
- }
- items = items.sort(function (a, b) {
- return b.level - a.level;
- });
- if (items[0].level >= level) {
- clearInterval(interval);
- resolve(items[0].slot);
- } else {
- let item = items[items.length - 1];
- var grade = item_grade(item);
- let scrolls = findAll("scroll" + grade);
- if (scrolls.length === 0) {
- buy("scroll" + grade, (grade === 0) ? 20 : 1);
- return;
- } else {
- upgrade(item.slot, scrolls[0].slot);
- return;
- }
- }
- }
- interval = setInterval(function () {
- let items = findAll(itemName);
- if (items.length < 2) {
- for (var i = 0; i < 2 - items.length; i++)
- buy(itemName, 1);
- }
- upgradeStep();
- }, 125);
- });
- }
- async function applyStat(slotNum, stat) {
- console.log(item_grade(character.items[slotNum]));
- return new Promise(function(resolve,reject){
- var stats = ["int", "dex", "str"];
- if (stats.indexOf(stat) != -1) {
- let scroll = findAll(stat+"scroll")[0];
- console.log(scroll)
- let amount = Math.pow(10,item_grade(character.items[slotNum]));
- if(scroll && scroll.q >=amount){
- upgrade(slotNum,scroll.slot);
- setTimeout(function(){
- resolve();
- },250);
- } else if(scroll){
- buy(stat+"scroll",amount-scroll.q);
- setTimeout(function(){
- applyStat(slotNum,stat);
- },250);
- } else {
- buy(stat+"scroll",amount);
- setTimeout(function(){
- applyStat(slotNum,stat);
- },250);
- }
- }
- });
- }
- var sleep = async function(num){
- return new Promise(function(resolve){
- setTimeout(resolve,num);
- });
- };
- var upgradeGear = async function() {
- while(character.gold > 100000) {
- let level = detectLevel();
- let next = nextToUpgrade(level);
- let upgradeTarget = upgradeOrder[next][level[next]];
- let slot = await autoUpgrade(upgradeTarget.name, upgradeTarget.level);
- applyStat(slot, "dex");
- await sleep(1000);
- equip(slot);
- await sleep(1000);
- }
- }
- async function main(){
- while(character.gold > 1000000){
- await upgradeGear();
- }
- }
Add Comment
Please, Sign In to add comment