Guest User

Untitled

a guest
Jan 23rd, 2018
88
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 5.45 KB | None | 0 0
  1. /**
  2. * Created by Nexus on 16.11.2017.
  3. */
  4. const upgradeOrder = {
  5. mainhand: [{name: "bow", level: 0},{name: "bow", level: 5}, {name: "bow", level: 6}, {name: "bow", level: 7}, {
  6. name: "bow",
  7. level: 8
  8. }, {name: "bow", level: 9},{name: "bow", level: 10}],
  9. helmet: [{name: "helmet", level: 5}, {name: "helmet", level: 6}, {name: "helmet", level: 7}, {
  10. name: "helmet",
  11. level: 8
  12. }, {name: "helmet", level: 9},{name: "helmet", level: 10}],
  13. chest: [{name: "coat", level: 5}, {name: "coat", level: 6}, {name: "coat", level: 7}, {
  14. name: "coat",
  15. level: 8
  16. }, {name: "coat", level: 9},{name: "coat", level: 10}],
  17. pants: [{name: "pants", level: 5}, {name: "pants", level: 6}, {name: "pants", level: 7}, {
  18. name: "pants",
  19. level: 8
  20. }, {name: "pants", level: 9},{name: "pants", level: 10}],
  21. gloves: [{name: "gloves", level: 5}, {name: "gloves", level: 6}, {name: "gloves", level: 7}, {
  22. name: "gloves",
  23. level: 8
  24. }, {name: "gloves", level: 9},{name: "gloves", level: 10}],
  25. shoes: [{name: "shoes", level: 5}, {name: "shoes", level: 6}, {name: "shoes", level: 7}, {
  26. name: "shoes",
  27. level: 8
  28. }, {name: "shoes", level: 9},{name: "shoes", level: 10}],
  29. };
  30.  
  31. function findAll(name) {
  32. let results = [];
  33. for (let i = 0; i < character.items.length; i++) {
  34. if (character.items[i] !== null && character.items[i].name === name) {
  35. character.items[i].slot = i;
  36. results.push(character.items[i]);
  37. }
  38. }
  39. return results;
  40. }
  41.  
  42. function findSlot(name, level) {
  43. for (let i = 0; i < character.items.length; i++) {
  44. if (character.items[i] !== null && character.items[i].name === name && character.items[i].level === level) {
  45. return i;
  46. }
  47. }
  48. return -1;
  49. }
  50.  
  51. function detectLevel() {
  52. var level = {};
  53.  
  54. for (let key in upgradeOrder) {
  55. if (character.slots[key] === null) {
  56. level[key] = 0;
  57. continue;
  58. }
  59. let found = false;
  60. for (let i = 0; i < upgradeOrder[key].length; i++) {
  61. if (character.slots[key].name === upgradeOrder[key][i].name && character.slots[key].level === upgradeOrder[key][i].level) {
  62. found = true;
  63. level[key] = i + 1;
  64. }
  65. }
  66. if (!found) {
  67. level[key] = -1;
  68. }
  69. }
  70. return level;
  71. }
  72.  
  73. function nextToUpgrade(level) {
  74. let lowest = null;
  75.  
  76. for (let key in level) {
  77. if (level[key] !== -1) {
  78. if (lowest === null || level[key] < level[lowest]) {
  79. lowest = key;
  80. }
  81. }
  82. }
  83. return lowest;
  84. }
  85.  
  86. function autoUpgrade(itemName, level) {
  87. level = level ? level : 0;
  88. return new Promise(function (resolve, reject) {
  89. let interval = 0;
  90.  
  91. function upgradeStep() {
  92. var items = findAll(itemName);
  93. if (items.length < 2) {
  94. return;
  95. }
  96.  
  97. items = items.sort(function (a, b) {
  98. return b.level - a.level;
  99. });
  100. if (items[0].level >= level) {
  101. clearInterval(interval);
  102. resolve(items[0].slot);
  103. } else {
  104. let item = items[items.length - 1];
  105. var grade = item_grade(item);
  106. let scrolls = findAll("scroll" + grade);
  107. if (scrolls.length === 0) {
  108. buy("scroll" + grade, (grade === 0) ? 20 : 1);
  109. return;
  110. } else {
  111. upgrade(item.slot, scrolls[0].slot);
  112. return;
  113. }
  114. }
  115. }
  116.  
  117. interval = setInterval(function () {
  118. let items = findAll(itemName);
  119. if (items.length < 2) {
  120. for (var i = 0; i < 2 - items.length; i++)
  121. buy(itemName, 1);
  122. }
  123. upgradeStep();
  124. }, 125);
  125. });
  126. }
  127.  
  128. async function applyStat(slotNum, stat) {
  129. console.log(item_grade(character.items[slotNum]));
  130. return new Promise(function(resolve,reject){
  131. var stats = ["int", "dex", "str"];
  132. if (stats.indexOf(stat) != -1) {
  133. let scroll = findAll(stat+"scroll")[0];
  134. console.log(scroll)
  135. let amount = Math.pow(10,item_grade(character.items[slotNum]));
  136. if(scroll && scroll.q >=amount){
  137. upgrade(slotNum,scroll.slot);
  138. setTimeout(function(){
  139. resolve();
  140. },250);
  141. } else if(scroll){
  142. buy(stat+"scroll",amount-scroll.q);
  143. setTimeout(function(){
  144. applyStat(slotNum,stat);
  145. },250);
  146. } else {
  147. buy(stat+"scroll",amount);
  148. setTimeout(function(){
  149. applyStat(slotNum,stat);
  150. },250);
  151. }
  152.  
  153. }
  154. });
  155. }
  156.  
  157. var sleep = async function(num){
  158. return new Promise(function(resolve){
  159. setTimeout(resolve,num);
  160. });
  161. };
  162.  
  163. var upgradeGear = async function() {
  164. while(character.gold > 100000) {
  165. let level = detectLevel();
  166. let next = nextToUpgrade(level);
  167. let upgradeTarget = upgradeOrder[next][level[next]];
  168. let slot = await autoUpgrade(upgradeTarget.name, upgradeTarget.level);
  169. applyStat(slot, "dex");
  170. await sleep(1000);
  171. equip(slot);
  172. await sleep(1000);
  173. }
  174. }
  175. async function main(){
  176. while(character.gold > 1000000){
  177. await upgradeGear();
  178. }
  179. }
Add Comment
Please, Sign In to add comment