Advertisement
Guest User

Untitled

a guest
May 24th, 2019
80
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 47.18 KB | None | 0 0
  1. public static void BossDropChances(boolean print, int Mode) {
  2. NpcDatabaseBook[] BookArray;
  3.  
  4. BookArray = new NpcDatabaseBook[]{NpcDatabaseBookDatabase.StarterBosses(), NpcDatabaseBookDatabase.EasyBosses(),
  5. NpcDatabaseBookDatabase.MediumBosses(), NpcDatabaseBookDatabase.EndGameBosses()};
  6. if (Mode >= 0 && Mode <= 3) {
  7. BookArray = new NpcDatabaseBook[]{BookArray[Mode]};
  8. }
  9.  
  10. for (NpcDatabaseBook Book : BookArray){
  11. for (int K = 0; K < 5; K++) {
  12. double[] NpcKills = {1, 1};
  13. double NpcKillTime;
  14. double NpcKillTimeMelee;
  15. double NpcKillTimeRange;
  16. double NpcKillTimeRangeFast;
  17. double NpcKillTimeMage;
  18. int NpcId = 2028;
  19. BonusesOfPlayer[] Players = AllPlayers[K];
  20. String[] StyleNames = Styles[K];
  21. int[] StarterMoneys = new int[Players.length];
  22. int[] StarterFogs = new int[Players.length];
  23. int[] NpcIds = new int[]{2028, 2025, 2026, 2025};
  24. int[] Money = new int[Players.length];
  25. int[] FogTokens = new int[Players.length];
  26. boolean respawn = true;
  27. switch (NpcId) {
  28. case 2025: //Barrows brothers
  29. case 2026:
  30. case 2027:
  31. case 2028:
  32. case 2029:
  33. case 2030:
  34. respawn = false;
  35. break;
  36. case 3375:
  37. respawn = false;
  38. break;
  39. default:
  40. respawn = true;
  41. break;
  42. }
  43. for (int j = 0; j < Players.length; j++) {
  44. NpcId = NpcIds[j];
  45. for (int i = 0; i < Players.length; i++) {
  46. NpcKills = getDNpcKillsPerHour(Players[i], NpcId, false);
  47. Money[i] = (int) Math.round(respawn ? NpcKills[0] * CalculateLootboxValue(Players[i].Luckfactor, NpcId, false)[0] : NpcKills[1] * CalculateLootboxValue(Players[i].Luckfactor, NpcId, false)[0]);
  48. FogTokens[i] = (int) Math.round(respawn ? NpcKills[0] * CalculateLootboxValue(Players[i].Luckfactor, NpcId, false)[1] : NpcKills[1] * CalculateLootboxValue(Players[i].Luckfactor, NpcId, false)[1]);
  49. if (StyleNames[i].toLowerCase().contains("mage")) {
  50. Money[i] -= 2500000;
  51. }
  52. }
  53. StarterMoneys[j] = GerbenCombat.GetMaxValue(Money);
  54. StarterFogs[j] = GerbenCombat.GetMaxValue(FogTokens);
  55. }
  56. int AverageMoney = 0;
  57. for (int i = 0; i < StarterMoneys.length; i++) {
  58. AverageMoney += StarterMoneys[i];
  59. }
  60. /* for(int i = 0; i < Money.length; i++){
  61. System.out.println(i+". "+StyleNames[i] + " : "+Commands.LongToNiceString(StarterMoneys[i]));
  62. } */
  63. AverageMoney = (int) Math.round(AverageMoney / ((double) StarterMoneys.length));
  64. AverageMoney += SUPPLIES[K];
  65. if (MoneyCount.get(3141) == null) {
  66. MoneyCount.put(3141, new double[]{AverageMoney});
  67. } else if (MoneyCount.get(3141).length < 5) {
  68. double[] NewArray = new double[MoneyCount.get(3141).length + 1];
  69. for (int i = 0; i < NewArray.length - 1; i++) {
  70. NewArray[i] = MoneyCount.get(3141)[i];
  71. }
  72. NewArray[NewArray.length - 1] = AverageMoney;
  73. MoneyCount.put(3141, NewArray);
  74. }
  75.  
  76. int AverageFogs = 0;
  77. for (int i = 0; i < StarterFogs.length; i++) {
  78. AverageFogs += StarterFogs[i];
  79. }
  80. AverageFogs = (int) Math.round(AverageFogs / ((double) StarterFogs.length));
  81. if (FogCount.get(3141) == null) {
  82. FogCount.put(3141, new double[]{AverageFogs});
  83. } else if (FogCount.get(3141).length < 5) {
  84. double[] NewArray = new double[FogCount.get(3141).length + 1];
  85. for (int i = 0; i < NewArray.length - 1; i++) {
  86. NewArray[i] = FogCount.get(3141)[i];
  87. }
  88. NewArray[NewArray.length - 1] = AverageFogs;
  89. FogCount.put(3141, NewArray);
  90. }
  91. int StarterMoney = AverageMoney;
  92. int StarterFog = AverageFogs;
  93. if (print) {
  94. System.out.println("===============================");
  95. System.out.println("Starter money: " + Commands.LongToNiceString(StarterMoney) + " Starter fogs: " + Commands.LongToNiceString(StarterFog));
  96. }
  97. int npc = 0;
  98. final ArrayList<String> Arraylist = new ArrayList<String>();
  99. int WhatDropsToAdjust = 1;
  100. for (int j = 0; j < Book.getAllPages().length; j++) {
  101. npc = Book.getAllPages()[j].getNpcId();
  102. switch (npc) {
  103. case 6358:
  104. WhatDropsToAdjust = 3;
  105. break;
  106. case 2883:
  107. case 2882:
  108. case 2881:
  109. WhatDropsToAdjust = 2;
  110. break;
  111. case 2025: //Barrows brothers
  112. case 2026:
  113. case 2027:
  114. case 2028:
  115. case 2029:
  116. case 2030:
  117. continue;
  118. case 18660:
  119. case 18661:
  120. continue;
  121. case 18648:
  122. case 18649:
  123. continue;
  124. case 2745:
  125. continue;
  126. //Easy bosses:
  127. case 6261:
  128. case 6263:
  129. case 6265:
  130. case 6204:
  131. case 6206:
  132. case 6208:
  133. case 6223:
  134. case 6225:
  135. case 6227:
  136. case 6248:
  137. case 6250:
  138. case 6252: //GWD minions
  139. continue;
  140. case 1160: //Kalphite queen 2
  141. continue;
  142. case 14817: //Char 2
  143. continue;
  144. case 17177: //Pker
  145. case 17178: //Pker
  146. continue;
  147. case 6260: //GWD
  148. case 6203:
  149. case 6222:
  150. case 6247:
  151. WhatDropsToAdjust = 2;
  152. break;
  153. case 50: //KBD
  154. WhatDropsToAdjust = 2;
  155. break;
  156. case 8549: //Phoenix
  157. WhatDropsToAdjust = 2;
  158. break;
  159. case 5364: //Confused barb
  160. WhatDropsToAdjust = 2;
  161. break;
  162. case 8528: //Nomad
  163. WhatDropsToAdjust = 2;
  164. break;
  165. case 8349: //Tormented demons
  166. WhatDropsToAdjust = 2;
  167. break;
  168. case 5666: //Barrelchest
  169. WhatDropsToAdjust = 2;
  170. break;
  171. //Medium bosses:
  172. case 15506:
  173. case 15454:
  174. continue;
  175. case 8133:
  176. WhatDropsToAdjust = 4;
  177. break;
  178. case 14994:
  179. WhatDropsToAdjust = 4;
  180. break;
  181. case 15222:
  182. WhatDropsToAdjust = 3;
  183. break;
  184. case 12878:
  185. WhatDropsToAdjust = 2;
  186. break;
  187. case 4509:
  188. WhatDropsToAdjust = 2;
  189. break;
  190. case 7133:
  191. WhatDropsToAdjust = 2;
  192. break;
  193. case 10140:
  194. WhatDropsToAdjust = 2;
  195. break;
  196. case 3067:
  197. WhatDropsToAdjust = 2;
  198. break;
  199. case 12900:
  200. WhatDropsToAdjust = 2;
  201. break;
  202. case 18642:
  203. case 18643:
  204. WhatDropsToAdjust = 2;
  205. break;
  206. case 15507:
  207. WhatDropsToAdjust = 2;
  208. break;
  209. case 3200:
  210. WhatDropsToAdjust = 2;
  211. break;
  212. //Endgame bosses
  213.  
  214. case 18647: //Demon hunter
  215. case 17158: //Poanizer
  216. case 18668: //Hunter
  217. case 18667:
  218. case 15202: //Obsidian
  219. case 15203:
  220. case 15204:
  221. continue;
  222. case 18646:
  223. WhatDropsToAdjust = 2;
  224. break;
  225. case 17154:
  226. WhatDropsToAdjust = 2;
  227. break;
  228. case 18500:
  229. WhatDropsToAdjust = 2;
  230. break;
  231. case 18520:
  232. WhatDropsToAdjust = 2;
  233. break;
  234. case 18570:
  235. WhatDropsToAdjust = 2;
  236. break;
  237. case 18666:
  238. WhatDropsToAdjust = 3;
  239. break;
  240. case 8122:
  241. WhatDropsToAdjust = 2;
  242. break;
  243. case 14256:
  244. WhatDropsToAdjust = 2;
  245. break;
  246. case 17181:
  247. WhatDropsToAdjust = 2;
  248. break;
  249. default:
  250. WhatDropsToAdjust = 1;
  251. }
  252. switch (npc) {
  253. case 2025: //Barrows brothers
  254. case 2026:
  255. case 2027:
  256. case 2028:
  257. case 2029:
  258. case 2030:
  259. respawn = false;
  260. break;
  261. case 3375:
  262. respawn = false;
  263. break;
  264. case 8349:
  265. respawn = false;
  266. break;
  267. default:
  268. respawn = true;
  269. break;
  270. }
  271. if (print) {
  272. System.out.println("===============================");
  273. }
  274. for (int i = 0; i < Players.length; i++) {
  275. switch (npc) {
  276. case 6260:
  277. case 6203:
  278. case 6247:
  279. case 6222:
  280. NpcKills = getDNpcKillsPerHour(Players[i], npc, false);
  281. if (npc == 6222 && !StyleNames[i].toLowerCase().contains("range")) {
  282. NpcKills = new double[]{1.0, 1.0};
  283. }
  284. Money[i] = (int) Math.round(NpcKills[0] *
  285. (CalculateLootboxValue(Players[i].Luckfactor, npc, false)[0] + 3 * CalculateLootboxValue(Players[i].Luckfactor, npc + 1, false)[0]));
  286. FogTokens[i] = (int) Math.round(NpcKills[0] *
  287. (CalculateLootboxValue(Players[i].Luckfactor, npc, false)[1] + 3 * CalculateLootboxValue(Players[i].Luckfactor, npc + 1, false)[1]));
  288. if (StyleNames[i].toLowerCase().contains("mage")) { //You need runes to sustain the magic thing
  289. Money[i] -= 2500000;
  290. }
  291. break;
  292. case 1158:
  293. if (StyleNames[i].toLowerCase().contains("melee")) {
  294. Money[i] = 1;
  295. FogTokens[i] = 1;
  296. } else if (StyleNames[i].toLowerCase().contains("range")) {
  297. NpcKillTime = getNpcKillTime(Players[i], 1160, false)[0] + getNpcKillTime(Players[0], npc, false)[1] + 2.0;
  298. NpcKills[0] = 3600.0 / NpcKillTime;
  299. Money[i] = (int) Math.round(respawn ? NpcKills[0] * CalculateLootboxValue(Players[i].Luckfactor, npc, false)[0] : NpcKills[1] * CalculateLootboxValue(Players[i].Luckfactor, npc, false)[0]);
  300. FogTokens[i] = (int) Math.round(respawn ? NpcKills[0] * CalculateLootboxValue(Players[i].Luckfactor, npc, false)[1] : NpcKills[1] * CalculateLootboxValue(Players[i].Luckfactor, npc, false)[1]);
  301. } else if (StyleNames[i].toLowerCase().contains("mage")) {
  302. NpcKillTime = getNpcKillTime(Players[i], 1160, false)[0] + getNpcKillTime(Players[0], npc, false)[1] + 2.0;
  303. NpcKills[0] = 3600.0 / NpcKillTime;
  304.  
  305. Money[i] = (int) Math.round(respawn ? NpcKills[0] * CalculateLootboxValue(Players[i].Luckfactor, npc, false)[0] : NpcKills[1] * CalculateLootboxValue(Players[i].Luckfactor, npc, false)[0]);
  306. FogTokens[i] = (int) Math.round(respawn ? NpcKills[0] * CalculateLootboxValue(Players[i].Luckfactor, npc, false)[1] : NpcKills[1] * CalculateLootboxValue(Players[i].Luckfactor, npc, false)[1]);
  307. Money[i] -= 1250000;
  308. }
  309. break;
  310. case 14816:
  311. if (StyleNames[i].toLowerCase().contains("melee")) {
  312. Money[i] = 1;
  313. FogTokens[i] = 1;
  314. } else {
  315. double OPChar = 3800 / (Npcnerfs.GetHealthNerf(npc) * NPCCombatDefinitionsL.getNPCCombatDefinitions(npc).getHitpoints());
  316. double REGChar = 1 - OPChar;
  317. NpcKillTime = REGChar * getNpcKillTime(Players[i], 14816, false)[0] + OPChar * getNpcKillTime(Players[0], 14817, false)[0];
  318. NpcKills[0] = 3600.0 / NpcKillTime;
  319.  
  320. Money[i] = (int) Math.round(respawn ? NpcKills[0] * CalculateLootboxValue(Players[i].Luckfactor, npc, false)[0] : NpcKills[1] * CalculateLootboxValue(Players[i].Luckfactor, npc, false)[0]);
  321. FogTokens[i] = (int) Math.round(respawn ? NpcKills[0] * CalculateLootboxValue(Players[i].Luckfactor, npc, false)[1] : NpcKills[1] * CalculateLootboxValue(Players[i].Luckfactor, npc, false)[1]);
  322. if (StyleNames[i].toLowerCase().contains("mage")) { //You need runes to sustain the magic thing
  323. Money[i] -= 2500000;
  324. }
  325. }
  326. break;
  327. case 8349:
  328. if (StyleNames[i].toLowerCase().contains("melee")) {
  329. NpcKillTime = (getNpcKillTime(Players[0], 8349, false)[0] + getNpcKillTime(Players[1], 8349, false)[0]) / 2.0;
  330. NpcKills[0] = 3600.0 / NpcKillTime;
  331. NpcKillTime = (getNpcKillTime(Players[0], 8349, false)[1] + getNpcKillTime(Players[1], 8349, false)[1]) / 2.0;
  332. NpcKills[1] = (int) Math.round(3600.0 / NpcKillTime);
  333. } else if (StyleNames[i].toLowerCase().contains("range")) {
  334. NpcKillTime = (getNpcKillTime(Players[1], 8349, false)[0] + getNpcKillTime(Players[2], 8349, false)[0]) / 2.0;
  335. NpcKills[0] = 3600.0 / NpcKillTime;
  336. NpcKillTime = (getNpcKillTime(Players[1], 8349, false)[1] + getNpcKillTime(Players[2], 8349, false)[1]) / 2.0;
  337. NpcKills[1] = (int) Math.round(3600.0 / NpcKillTime);
  338. } else if (StyleNames[i].toLowerCase().contains("mage")) {
  339. NpcKillTime = (getNpcKillTime(Players[0], 8349, false)[0] + getNpcKillTime(Players[2], 8349, false)[0]) / 2.0;
  340. NpcKills[0] = 3600.0 / NpcKillTime;
  341. NpcKillTime = (getNpcKillTime(Players[0], 8349, false)[1] + getNpcKillTime(Players[2], 8349, false)[1]) / 2.0;
  342. NpcKills[1] = (int) Math.round(3600.0 / NpcKillTime);
  343. }
  344. Money[i] = (int) Math.round(respawn ? NpcKills[0] * CalculateLootboxValue(Players[i].Luckfactor, npc, false)[0] : NpcKills[1] * CalculateLootboxValue(Players[i].Luckfactor, npc, false)[0]);
  345. FogTokens[i] = (int) Math.round(respawn ? NpcKills[0] * CalculateLootboxValue(Players[i].Luckfactor, npc, false)[1] : NpcKills[1] * CalculateLootboxValue(Players[i].Luckfactor, npc, false)[1]);
  346. if (!StyleNames[i].toLowerCase().contains("melee")) {
  347. Money[i] -= 1250000;
  348. }
  349. break;
  350. //Medium bosses
  351. case 18643:
  352. NpcKillTime = getNpcKillTime(Players[i], 18642, false)[0] * 0.5 +
  353. getNpcKillTime(Players[i], 18643, false)[0] * 0.5;
  354. NpcKills[0] = 3600.0 / NpcKillTime;
  355. Money[i] = (int) Math.round(respawn ? NpcKills[0] * CalculateLootboxValue(Players[i].Luckfactor, npc, false)[0] : NpcKills[1] * CalculateLootboxValue(Players[i].Luckfactor, npc, false)[0]);
  356. FogTokens[i] = (int) Math.round(respawn ? NpcKills[0] * CalculateLootboxValue(Players[i].Luckfactor, npc, false)[1] : NpcKills[1] * CalculateLootboxValue(Players[i].Luckfactor, npc, false)[1]);
  357. if (StyleNames[i].toLowerCase().contains("mage")) { //You need runes to sustain the magic thing
  358. Money[i] -= 2500000;
  359. }
  360. break;
  361. case 15507:
  362. NpcKillTime = getNpcKillTime(Players[i], 15506, false)[0] * 0.3333 +
  363. getNpcKillTime(Players[i], 15507, false)[0] * 0.3333 +
  364. getNpcKillTime(Players[i], 15454, false)[0] * 0.3334;
  365. NpcKills[0] = 3600.0 / NpcKillTime;
  366. Money[i] = (int) Math.round(respawn ? NpcKills[0] * CalculateLootboxValue(Players[i].Luckfactor, npc, false)[0] : NpcKills[1] * CalculateLootboxValue(Players[i].Luckfactor, npc, false)[0]);
  367. FogTokens[i] = (int) Math.round(respawn ? NpcKills[0] * CalculateLootboxValue(Players[i].Luckfactor, npc, false)[1] : NpcKills[1] * CalculateLootboxValue(Players[i].Luckfactor, npc, false)[1]);
  368. if (StyleNames[i].toLowerCase().contains("mage")) { //You need runes to sustain the magic thing
  369. Money[i] -= 2500000;
  370. }
  371. if (StyleNames[i].toLowerCase().contains("melee")) {
  372. Money[i] = 1;
  373. FogTokens[i] = 1;
  374. }
  375. break;
  376. //End game bosses
  377. case 18646:
  378. NpcKillTime = getNpcKillTime(Players[i], 18646, false)[0] * 0.5 +
  379. getNpcKillTime(Players[i], 18647, false)[0] * 0.5 +
  380. getNpcKillTime(Players[i], 82, false)[1] +
  381. getNpcKillTime(Players[i], 83, false)[1] +
  382. getNpcKillTime(Players[i], 84, false)[1];
  383. NpcKills[0] = 3600.0 / NpcKillTime;
  384. Money[i] = (int) Math.round(respawn ? NpcKills[0] * CalculateLootboxValue(Players[i].Luckfactor, npc, false)[0] : NpcKills[1] * CalculateLootboxValue(Players[i].Luckfactor, npc, false)[0]);
  385. FogTokens[i] = (int) Math.round(respawn ? NpcKills[0] * CalculateLootboxValue(Players[i].Luckfactor, npc, false)[1] : NpcKills[1] * CalculateLootboxValue(Players[i].Luckfactor, npc, false)[1]);
  386. if (StyleNames[i].toLowerCase().contains("mage")) { //You need runes to sustain the magic thing
  387. Money[i] -= 2500000;
  388. }
  389. if (StyleNames[i].toLowerCase().contains("melee")) {
  390. Money[i] = 1;
  391. FogTokens[i] = 1;
  392. }
  393. break;
  394. case 19000:
  395. NpcKillTime = getNpcKillTime(Players[i], 19000, false)[0] +
  396. getNpcKillTime(Players[i], 8779, false)[1] * 15;
  397. NpcKills[0] = 3600.0 / NpcKillTime;
  398. Money[i] = (int) Math.round(respawn ? NpcKills[0] * CalculateLootboxValue(Players[i].Luckfactor, npc, false)[0] : NpcKills[1] * CalculateLootboxValue(Players[i].Luckfactor, npc, false)[0]);
  399. FogTokens[i] = (int) Math.round(respawn ? NpcKills[0] * CalculateLootboxValue(Players[i].Luckfactor, npc, false)[1] : NpcKills[1] * CalculateLootboxValue(Players[i].Luckfactor, npc, false)[1]);
  400. if (StyleNames[i].toLowerCase().contains("mage")) { //You need runes to sustain the magic thing
  401. Money[i] -= 2500000;
  402. }
  403. if (StyleNames[i].toLowerCase().contains("melee")) {
  404. Money[i] = 1;
  405. FogTokens[i] = 1;
  406. }
  407. break;
  408. case 17154:
  409. double RegPo = 990 / (Npcnerfs.GetHealthNerf(npc) * NPCCombatDefinitionsL.getNPCCombatDefinitions(npc).getHitpoints());
  410. NpcKillTime = RegPo * getNpcKillTime(Players[i], 17154, false)[1] +
  411. getNpcKillTime(Players[i], 17158, false)[0];
  412. NpcKills[0] = 3600.0 / NpcKillTime;
  413. Money[i] = (int) Math.round(respawn ? NpcKills[0] * CalculateLootboxValue(Players[i].Luckfactor, npc, false)[0] : NpcKills[1] * CalculateLootboxValue(Players[i].Luckfactor, npc, false)[0]);
  414. FogTokens[i] = (int) Math.round(respawn ? NpcKills[0] * CalculateLootboxValue(Players[i].Luckfactor, npc, false)[1] : NpcKills[1] * CalculateLootboxValue(Players[i].Luckfactor, npc, false)[1]);
  415. if (StyleNames[i].toLowerCase().contains("mage")) { //You need runes to sustain the magic thing
  416. Money[i] -= 2500000;
  417. }
  418. break;
  419. case 18500:
  420. case 18520:
  421. case 18570:
  422. NpcKillTimeMage = getNpcKillTime(Players[2], 18500, false)[0];
  423. NpcKillTimeMelee = getNpcKillTime(Players[0], 18570, false)[0];
  424. NpcKillTimeRange = getNpcKillTime(Players[1], 18520, false)[0];
  425. if(Players.length > 3){
  426. NpcKillTimeRangeFast = getNpcKillTime(Players[3], 18520, false)[0];
  427. NpcKillTimeRange = NpcKillTimeRangeFast > NpcKillTimeRange ? NpcKillTimeRangeFast : NpcKillTimeRange;}
  428. NpcKillTime = 0.3333 * NpcKillTimeMage + 0.3333 * NpcKillTimeMelee + 0.3334 * NpcKillTimeRange + 20.0;
  429. NpcKills[0] = 3600.0 / NpcKillTime;
  430. Money[i] = (int) Math.round(respawn ? NpcKills[0] * CalculateLootboxValue(Players[i].Luckfactor, npc, false)[0] : NpcKills[1] * CalculateLootboxValue(Players[i].Luckfactor, npc, false)[0]);
  431. FogTokens[i] = (int) Math.round(respawn ? NpcKills[0] * CalculateLootboxValue(Players[i].Luckfactor, npc, false)[1] : NpcKills[1] * CalculateLootboxValue(Players[i].Luckfactor, npc, false)[1]);
  432. if (StyleNames[i].toLowerCase().contains("mage")) { //You need runes to sustain the magic thing
  433. Money[i] -= 2500000;
  434. }
  435. break;
  436. case 18666:
  437. double HunterValue = (5500.0 / 60000.0);
  438. double RestValue = 1.0 - HunterValue;
  439. NpcKillTimeMage = getNpcKillTime(Players[2], 18667, false)[0];
  440. NpcKillTimeMelee = getNpcKillTime(Players[0], 18668, false)[0];
  441. NpcKillTimeRange = getNpcKillTime(Players[1], 18666, false)[0];
  442. if(Players.length > 3){
  443. NpcKillTimeRangeFast = getNpcKillTime(Players[3], 18666, false)[0];
  444. NpcKillTimeRange = NpcKillTimeRangeFast > NpcKillTimeRange ? NpcKillTimeRangeFast : NpcKillTimeRange;}
  445. NpcKillTime = (RestValue / 3.0) * NpcKillTimeMage + (RestValue / 3.0) * NpcKillTimeMelee + (RestValue / 3.0) * NpcKillTimeRange;
  446. NpcKillTimeMage = getNpcKillTime(Players[2], 18702, false)[0];
  447. NpcKillTimeMelee = getNpcKillTime(Players[0], 18702, false)[0];
  448. NpcKillTimeRange = getNpcKillTime(Players[1], 18702, false)[0];
  449. if(Players.length > 3){
  450. NpcKillTimeRangeFast = getNpcKillTime(Players[3], 18702, false)[0];
  451. NpcKillTimeRange = NpcKillTimeRangeFast > NpcKillTimeRange ? NpcKillTimeRangeFast : NpcKillTimeRange;}
  452. NpcKillTime += RestValue * GerbenCombat.GetMinValue((int) Math.round(NpcKillTimeMage), (int) Math.round(NpcKillTimeMelee), (int) Math.round(NpcKillTimeRange));
  453.  
  454. NpcKills[0] = 3600.0 / NpcKillTime;
  455. Money[i] = (int) Math.round(respawn ? NpcKills[0] * CalculateLootboxValue(Players[i].Luckfactor, npc, false)[0] : NpcKills[1] * CalculateLootboxValue(Players[i].Luckfactor, npc, false)[0]);
  456. FogTokens[i] = (int) Math.round(respawn ? NpcKills[0] * CalculateLootboxValue(Players[i].Luckfactor, npc, false)[1] : NpcKills[1] * CalculateLootboxValue(Players[i].Luckfactor, npc, false)[1]);
  457. if (StyleNames[i].toLowerCase().contains("mage")) { //You need runes to sustain the magic thing
  458. Money[i] -= 2500000;
  459. }
  460. break;
  461. case 13447:
  462. NpcKillTime = getNpcKillTime(Players[i], 13447, false)[0] + 4 * getNpcKillTime(Players[i], 13451, false)[1];
  463. NpcKills[0] = 3600.0 / NpcKillTime;
  464. Money[i] = (int) Math.round(respawn ? NpcKills[0] * CalculateLootboxValue(Players[i].Luckfactor, npc, false)[0] : NpcKills[1] * CalculateLootboxValue(Players[i].Luckfactor, npc, false)[0]);
  465. FogTokens[i] = (int) Math.round(respawn ? NpcKills[0] * CalculateLootboxValue(Players[i].Luckfactor, npc, false)[1] : NpcKills[1] * CalculateLootboxValue(Players[i].Luckfactor, npc, false)[1]);
  466. if (StyleNames[i].toLowerCase().contains("mage")) { //You need runes to sustain the magic thing
  467. Money[i] -= 2500000;
  468. }
  469. break;
  470. case 15205:
  471. NpcKillTimeMage = getNpcKillTime(Players[2], 15204, false)[0];
  472. NpcKillTimeMelee = getNpcKillTime(Players[0], 15202, false)[0];
  473. NpcKillTimeRange = getNpcKillTime(Players[1], 15203, false)[0];
  474. if(Players.length > 3){
  475. NpcKillTimeRangeFast = getNpcKillTime(Players[3], 15203, false)[0];
  476. NpcKillTimeRange = NpcKillTimeRangeFast > NpcKillTimeRange ? NpcKillTimeRangeFast : NpcKillTimeRange;}
  477. NpcKillTime = 0.25 * getNpcKillTime(Players[i], 15205, false)[0];
  478. NpcKillTime += (0.25 * NpcKillTimeMage + 0.25 * NpcKillTimeMelee + 0.25 * NpcKillTimeRange);
  479. NpcKills[0] = 3600.0 / NpcKillTime;
  480. Money[i] = (int) Math.round(respawn ? NpcKills[0] * CalculateLootboxValue(Players[i].Luckfactor, npc, false)[0] : NpcKills[1] * CalculateLootboxValue(Players[i].Luckfactor, npc, false)[0]);
  481. FogTokens[i] = (int) Math.round(respawn ? NpcKills[0] * CalculateLootboxValue(Players[i].Luckfactor, npc, false)[1] : NpcKills[1] * CalculateLootboxValue(Players[i].Luckfactor, npc, false)[1]);
  482. if (StyleNames[i].toLowerCase().contains("mage")) { //You need runes to sustain the magic thing
  483. Money[i] -= 2500000;
  484. }
  485. break;
  486. case 17181:
  487. NpcKills = getDNpcKillsPerHour(Players[i], npc, false);
  488. Money[i] = (int) Math.round(respawn ? NpcKills[0] * CalculateLootboxValue(Players[i].Luckfactor, npc, false)[0] : NpcKills[1] * CalculateLootboxValue(Players[i].Luckfactor, npc, false)[0]);
  489. FogTokens[i] = (int) Math.round(respawn ? NpcKills[0] * CalculateLootboxValue(Players[i].Luckfactor, npc, false)[1] : NpcKills[1] * CalculateLootboxValue(Players[i].Luckfactor, npc, false)[1]);
  490. if (StyleNames[i].toLowerCase().contains("mage")) { //You need runes to sustain the magic thing
  491. Money[i] -= 2500000;
  492. }
  493. if (StyleNames[i].toLowerCase().contains("mage")) {
  494. Money[i] = 1;
  495. FogTokens[i] = 1;
  496. }
  497. break;
  498.  
  499. default:
  500. NpcKills = getDNpcKillsPerHour(Players[i], npc, false);
  501. Money[i] = (int) Math.round(respawn ? NpcKills[0] * CalculateLootboxValue(Players[i].Luckfactor, npc, false)[0] : NpcKills[1] * CalculateLootboxValue(Players[i].Luckfactor, npc, false)[0]);
  502. //System.out.println(StyleNames[i] + " :" + (Commands.LongToNiceString((long) CalculateLootboxValue(Players[i].Luckfactor, npc, false)[0])) + " * " + (respawn ? NpcKills[0] : NpcKills[1]));
  503. FogTokens[i] = (int) Math.round(respawn ? NpcKills[0] * CalculateLootboxValue(Players[i].Luckfactor, npc, false)[1] : NpcKills[1] * CalculateLootboxValue(Players[i].Luckfactor, npc, false)[1]);
  504. if (StyleNames[i].toLowerCase().contains("mage")) { //You need runes to sustain the magic thing
  505. Money[i] -= 2500000;
  506. }
  507. }
  508. }
  509. int Max = Money[0];
  510. int MaxArray = 0;
  511. for (int i = 0; i < Players.length - 1; i++) {
  512. if (Money[i + 1] > Max) {
  513. Max = Money[i + 1];
  514. MaxArray = i + 1;
  515. }
  516. }
  517. if (npc == 1158) {
  518. switch (MaxArray) {
  519. case 0:
  520. break;
  521. case 1:
  522. NpcKillTime = getNpcKillTime(Players[MaxArray], 1160, false)[0] + getNpcKillTime(Players[0], npc, false)[1] + 2.0;
  523. NpcKills[0] = 3600.0 / NpcKillTime;
  524. break;
  525. case 2:
  526. NpcKillTime = getNpcKillTime(Players[MaxArray], 1160, false)[0] + getNpcKillTime(Players[0], npc, false)[1] + 2.0;
  527. NpcKills[0] = 3600.0 / NpcKillTime;
  528. break;
  529. }
  530. } else if (npc == 14816) {
  531. double OPChar = 3800 / (Npcnerfs.GetHealthNerf(npc) * NPCCombatDefinitionsL.getNPCCombatDefinitions(npc).getHitpoints());
  532. double REGChar = 1 - OPChar;
  533. switch (MaxArray) {
  534. case 0:
  535. break;
  536. case 1:
  537. NpcKillTime = REGChar * getNpcKillTime(Players[MaxArray], 14816, false)[0] + OPChar * getNpcKillTime(Players[0], 14817, false)[0];
  538. NpcKills[0] = 3600.0 / NpcKillTime;
  539. break;
  540. case 2:
  541. NpcKillTime = REGChar * getNpcKillTime(Players[MaxArray], 14816, false)[0] + OPChar * getNpcKillTime(Players[0], 14817, false)[0];
  542. NpcKills[0] = 3600.0 / NpcKillTime;
  543. break;
  544. }
  545. } else if (npc == 8349) {
  546. switch (MaxArray) {
  547. case 0:
  548. NpcKillTime = (getNpcKillTime(Players[0], 8349, false)[0] + getNpcKillTime(Players[1], 8349, false)[0]) / 2.0;
  549. NpcKills[0] = 3600.0 / NpcKillTime;
  550. NpcKillTime = (getNpcKillTime(Players[0], 8349, false)[1] + getNpcKillTime(Players[1], 8349, false)[1]) / 2.0;
  551. NpcKills[1] = (int) Math.round(3600.0 / NpcKillTime);
  552. break;
  553. case 1:
  554. NpcKillTime = (getNpcKillTime(Players[1], 8349, false)[0] + getNpcKillTime(Players[2], 8349, false)[0]) / 2.0;
  555. NpcKills[0] = 3600.0 / NpcKillTime;
  556. NpcKillTime = (getNpcKillTime(Players[1], 8349, false)[1] + getNpcKillTime(Players[2], 8349, false)[1]) / 2.0;
  557. NpcKills[1] = (int) Math.round(3600.0 / NpcKillTime);
  558. break;
  559. case 2:
  560. NpcKillTime = (getNpcKillTime(Players[0], 8349, false)[0] + getNpcKillTime(Players[2], 8349, false)[0]) / 2.0;
  561. NpcKills[0] = 3600.0 / NpcKillTime;
  562. NpcKillTime = (getNpcKillTime(Players[0], 8349, false)[1] + getNpcKillTime(Players[2], 8349, false)[1]) / 2.0;
  563. NpcKills[1] = (int) Math.round(3600.0 / NpcKillTime);
  564. break;
  565. }
  566. } else if (npc == 15507) {
  567. NpcKillTime = getNpcKillTime(Players[MaxArray], 15506, false)[0] * 0.3333 +
  568. getNpcKillTime(Players[MaxArray], 15507, false)[0] * 0.3333 +
  569. getNpcKillTime(Players[MaxArray], 15454, false)[0] * 0.3334;
  570. NpcKills[0] = 3600.0 / NpcKillTime;
  571. } else if (npc == 18643) {
  572. NpcKillTime = getNpcKillTime(Players[MaxArray], 18642, false)[0] * 0.5 +
  573. getNpcKillTime(Players[MaxArray], 18643, false)[0] * 0.5;
  574. NpcKills[0] = 3600.0 / NpcKillTime;
  575. } else if (npc == 18646) {
  576. NpcKillTime = getNpcKillTime(Players[MaxArray], 18646, false)[0] * 0.5 +
  577. getNpcKillTime(Players[MaxArray], 18647, false)[0] * 0.5 +
  578. getNpcKillTime(Players[MaxArray], 82, false)[1] +
  579. getNpcKillTime(Players[MaxArray], 83, false)[1] +
  580. getNpcKillTime(Players[MaxArray], 84, false)[1];
  581. NpcKills[0] = 3600.0 / NpcKillTime;
  582. } else if (npc == 19000) {
  583. NpcKillTime = getNpcKillTime(Players[MaxArray], 19000, false)[0] +
  584. getNpcKillTime(Players[MaxArray], 8779, false)[1] * 15;
  585. NpcKills[0] = 3600.0 / NpcKillTime;
  586. } else if (npc == 17154) {
  587. double RegPo = 990 / (Npcnerfs.GetHealthNerf(npc) * NPCCombatDefinitionsL.getNPCCombatDefinitions(npc).getHitpoints());
  588. NpcKillTime = RegPo * getNpcKillTime(Players[MaxArray], 17154, false)[1] +
  589. getNpcKillTime(Players[MaxArray], 17158, false)[0];
  590. NpcKills[0] = 3600.0 / NpcKillTime;
  591. } else if (npc == 18500 || npc == 18520 || npc == 18570) {
  592. NpcKillTimeMage = getNpcKillTime(Players[2], 18500, false)[0];
  593. NpcKillTimeMelee = getNpcKillTime(Players[0], 18570, false)[0];
  594. NpcKillTimeRange = getNpcKillTime(Players[1], 18520, false)[0];
  595. if(Players.length > 3){
  596. NpcKillTimeRangeFast = getNpcKillTime(Players[3], 18520, false)[0];
  597. NpcKillTimeRange = NpcKillTimeRangeFast > NpcKillTimeRange ? NpcKillTimeRangeFast : NpcKillTimeRange;}
  598. NpcKillTime = 0.3333 * NpcKillTimeMage + 0.3333 * NpcKillTimeMelee + 0.3334 * NpcKillTimeRange + 20.0;
  599. NpcKills[0] = 3600.0 / NpcKillTime;
  600. } else if (npc == 18666) {
  601. double HunterValue = (5500.0 / 60000.0);
  602. double RestValue = 1.0 - HunterValue;
  603. NpcKillTimeMage = getNpcKillTime(Players[2], 18667, false)[0];
  604. NpcKillTimeMelee = getNpcKillTime(Players[0], 18668, false)[0];
  605. NpcKillTimeRange = getNpcKillTime(Players[1], 18666, false)[0];
  606. if(Players.length > 3){
  607. NpcKillTimeRangeFast = getNpcKillTime(Players[3], 18666, false)[0];
  608. NpcKillTimeRange = NpcKillTimeRangeFast > NpcKillTimeRange ? NpcKillTimeRangeFast : NpcKillTimeRange;}
  609. NpcKillTime = (RestValue / 3.0) * NpcKillTimeMage + (RestValue / 3.0) * NpcKillTimeMelee + (RestValue / 3.0) * NpcKillTimeRange;
  610. NpcKillTimeMage = getNpcKillTime(Players[2], 18702, false)[0];
  611. NpcKillTimeMelee = getNpcKillTime(Players[0], 18702, false)[0];
  612. NpcKillTimeRange = getNpcKillTime(Players[1], 18702, false)[0];
  613. if(Players.length > 3){
  614. NpcKillTimeRangeFast = getNpcKillTime(Players[3], 18702, false)[0];
  615. NpcKillTimeRange = NpcKillTimeRangeFast > NpcKillTimeRange ? NpcKillTimeRangeFast : NpcKillTimeRange;}
  616. NpcKillTime += RestValue * GerbenCombat.GetMinValue((int) Math.round(NpcKillTimeMage), (int) Math.round(NpcKillTimeMelee), (int) Math.round(NpcKillTimeRange));
  617.  
  618. NpcKills[0] = 3600.0 / NpcKillTime;
  619. } else if (npc == 13447) {
  620. NpcKillTime = getNpcKillTime(Players[MaxArray], 13447, false)[0] + 4 * getNpcKillTime(Players[MaxArray], 13451, false)[1];
  621. NpcKills[0] = 3600.0 / NpcKillTime;
  622. } else if (npc == 15205) {
  623. NpcKillTimeMage = getNpcKillTime(Players[2], 15204, false)[0];
  624. NpcKillTimeMelee = getNpcKillTime(Players[0], 15202, false)[0];
  625. NpcKillTimeRange = getNpcKillTime(Players[1], 15203, false)[0];
  626. if(Players.length > 3){
  627. NpcKillTimeRangeFast = getNpcKillTime(Players[3], 15203, false)[0];
  628. NpcKillTimeRange = NpcKillTimeRangeFast > NpcKillTimeRange ? NpcKillTimeRangeFast : NpcKillTimeRange;}
  629. NpcKillTime = 0.25 * getNpcKillTime(Players[MaxArray], 15205, false)[0];
  630. NpcKillTime += (0.25 * NpcKillTimeMage + 0.25 * NpcKillTimeMelee + 0.25 * NpcKillTimeRange);
  631. NpcKills[0] = 3600.0 / NpcKillTime;
  632. } else {
  633. NpcKills = getDNpcKillsPerHour(Players[MaxArray], npc, false);
  634. }
  635.  
  636. if (print) {
  637. System.out.println("[" + NPCDefinitions.getNPCDefinitions(npc).getName() + "]" + Settings.ANSI_RESET);
  638. System.out.println("[---------------------------------------------------------------------------]");
  639. System.out.println("kills per hour: " + (respawn ? NpcKills[0] : NpcKills[1]) + " using " + StyleNames[MaxArray]);
  640. int MoneyValue = FindNewItemDropChancesPrintMoney(Players[MaxArray], npc, StarterMoney, WhatDropsToAdjust, respawn ? NpcKills[0] : NpcKills[1]);
  641. String Colorcode = Math.abs(Money[MaxArray] - StarterMoney) / (double) StarterMoney > 0.025 ? Settings.ANSI_RED : Settings.ANSI_GREEN;
  642. System.out.println(Colorcode + "Current Money: " + Commands.LongToNiceString(Money[MaxArray]) + Settings.ANSI_RESET);
  643. int FogValue = (int) Math.round(FogTokens[MaxArray] / (respawn ? NpcKills[0] : NpcKills[1]));
  644. int NewFogValue = (respawn ? (int) (5 * Math.floor(((((double) AverageFogs) / NpcKills[0]) / 5.0))) : (int) (5 * Math.floor(((((double) AverageFogs) / NpcKills[1]) / 5.0))));
  645. Colorcode = FogValue != NewFogValue ? Settings.ANSI_RED : Settings.ANSI_GREEN;
  646. System.out.println("New fogs per kill = " + (respawn ? (int) (5 * Math.floor(((((double) AverageFogs) / NpcKills[0]) / 5.0))) : (int) (5 * Math.floor(((((double) AverageFogs) / NpcKills[1]) / 5.0)))) + " New fogs per hour = " + (respawn ? NpcKills[0] * (int) (5 * Math.floor(((((double) AverageFogs) / NpcKills[0]) / 5.0))) : NpcKills[1] * (int) (5 * Math.floor(((((double) AverageFogs) / NpcKills[1]) / 5.0)))));
  647. System.out.println(Colorcode + "Current Fogs per kill = " + FogValue + " Rounded to low 5: " + ((int) Math.round(Math.floor(FogValue / 5.0) * 5.0)) + Settings.ANSI_RESET);
  648. }
  649. if (bossesKillCount.get(npc) == null) {
  650. bossesKillCount.put(npc, new double[]{(respawn ? NpcKills[0] : NpcKills[1])});
  651. } else if (bossesKillCount.get(npc).length < 5) {
  652. double[] NewArray = new double[bossesKillCount.get(npc).length + 1];
  653. for (int i = 0; i < NewArray.length - 1; i++) {
  654. NewArray[i] = bossesKillCount.get(npc)[i];
  655. }
  656. NewArray[NewArray.length - 1] = (respawn ? NpcKills[0] : NpcKills[1]);
  657. bossesKillCount.put(npc, NewArray);
  658. }
  659. if (MoneyCount.get(npc) == null) {
  660. MoneyCount.put(npc, new double[]{Money[MaxArray]});
  661. } else if (MoneyCount.get(npc).length < 5) {
  662. double[] NewArray = new double[MoneyCount.get(npc).length + 1];
  663. for (int i = 0; i < NewArray.length - 1; i++) {
  664. NewArray[i] = MoneyCount.get(npc)[i];
  665. }
  666. NewArray[NewArray.length - 1] = Money[MaxArray];
  667. MoneyCount.put(npc, NewArray);
  668. }
  669. if (FogCount.get(npc) == null) {
  670. FogCount.put(npc, new double[]{FogTokens[MaxArray]});
  671. } else if (FogCount.get(npc).length < 5) {
  672. double[] NewArray = new double[FogCount.get(npc).length + 1];
  673. for (int i = 0; i < NewArray.length - 1; i++) {
  674. NewArray[i] = FogCount.get(npc)[i];
  675. }
  676. NewArray[NewArray.length - 1] = FogTokens[MaxArray];
  677. FogCount.put(npc, NewArray);
  678. }
  679. }
  680. if (print) {
  681. System.out.println("===============================");
  682. }
  683. }
  684. }
  685. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement