Advertisement
Guest User

Untitled

a guest
Nov 23rd, 2017
66
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 11.98 KB | None | 0 0
  1. public static void GeneralGraardorMinionLootbox(final Player player) {
  2. int[] ItemDrop1, ItemDrop2, ItemDropG, ItemDrop3, ItemDrop4, ItemDrop5, ItemDrop6, ItemDrop7, ItemDrop8, ItemDrop9, ItemDrop10;
  3. double[] ItemDropChances;
  4.  
  5.  
  6. int NPCID = 6261;
  7. int LootBoxID = 26055;
  8.  
  9. ItemDrop1 = DropStorage.GeneralGraardorMinionItemDrop1();
  10. ItemDrop2 = DropStorage.GeneralGraardorMinionItemDrop2();
  11. ItemDrop3 = DropStorage.GeneralGraardorMinionItemDrop3();
  12. ItemDrop4 = DropStorage.GeneralGraardorMinionItemDrop4();
  13. ItemDropG = DropStorage.GeneralGraardorMinionItemDropG();
  14. ItemDropChances = DropStorage.GeneralGraardorMinionItemDropChances();
  15.  
  16. float MaxSum;
  17. int count = 0, StopAt = 0, i = 0, j = 0, ii = 0, m = 0, n = 0, o = 0, p = 0, q = 0, NGItems = 0, GItems = 0, dropitem, LootCantGoToInv = 0, Terminate = 0, GLootCantGoToBank = 0, GLootCantGoToInv = 0, LootCantGoToBank = 0, dropitemamount, Precision = 1000000, BitLimit = 2147483647, ProblemItems = 0, ProblemGItems = 0, ProblemItemsBank = 0, ProblemGItemsBank = 0;
  18. int Freezelots = player.getInventory().getFreeSlots();
  19. final NPC npc = World.getNPCs().get(NPCID);
  20. int[] TotalDrops = new int[ItemDrop1.length + ItemDrop2.length + ItemDrop3.length + ItemDrop4.length];
  21. int[] InvSlotsReq4Loot = new int[ItemDrop1.length + ItemDrop2.length + ItemDrop3.length + ItemDrop4.length];
  22. int[] InvSlotsReq4GLoot = new int[ItemDropG.length];
  23. double[] sum = new double[ItemDropChances.length + 1];
  24. int[] ErrorItemInv = new int [TotalDrops.length/2];
  25. int[] ErrorItemBank = new int [TotalDrops.length/2];
  26. int[] ErrorGItemInv = new int [ItemDropG.length/2];
  27. int[] ErrorGItemBank = new int [ItemDropG.length/2];
  28.  
  29. sum[0] = ItemDropChances[0];
  30. for(int I = 0; I < ItemDrop1.length; I++) {TotalDrops[I] = ItemDrop1[I];}
  31. for(int I = 0; I < ItemDrop2.length; I++) {TotalDrops[I + ItemDrop1.length] = ItemDrop2[I];}
  32. for(int I = 0; I < ItemDrop3.length; I++) {TotalDrops[I + ItemDrop1.length + ItemDrop2.length] = ItemDrop3[I];}
  33. for(int I = 0; I < ItemDrop4.length; I++) {TotalDrops[I + ItemDrop1.length + ItemDrop2.length + ItemDrop3.length] = ItemDrop4[I];}
  34.  
  35.  
  36. while(n < (TotalDrops.length/2)){
  37. dropitem = TotalDrops[2*n];
  38. dropitemamount = TotalDrops[2*n+1];
  39. if( player.getInventory().containsItem(dropitem, (BitLimit - dropitemamount))){LootCantGoToInv = 5;
  40. ErrorItemInv[ProblemItems] = TotalDrops[2*n];
  41. ProblemItems++;}
  42. if(!ItemDefinitions.getItemDefinitions(dropitem).isNoted() && player.getBank().containsItem(dropitem, (BitLimit - dropitemamount))){LootCantGoToBank = 5;
  43. ErrorItemBank[ProblemItemsBank] = TotalDrops[2*n];
  44. ProblemItemsBank++;}
  45. else if ((ItemDefinitions.getItemDefinitions(dropitem).isNoted()) && player.getBank().containsItem((dropitem-1), (BitLimit - dropitemamount))){LootCantGoToBank = 5;
  46. ErrorItemBank[ProblemItemsBank] = TotalDrops[2*n];
  47. ProblemItemsBank++;}
  48. if( ((ItemDefinitions.getItemDefinitions(dropitem).isNoted()) || ItemDefinitions.getItemDefinitions(dropitem).isStackable()) && player.getInventory().containsItem(dropitem, 1) ){InvSlotsReq4Loot[n] = 0;
  49. n++;}
  50. else if ((ItemDefinitions.getItemDefinitions(dropitem).isNoted()) || (ItemDefinitions.getItemDefinitions(dropitem).isStackable())){InvSlotsReq4Loot[n] = 1;
  51. n++;}
  52. else{InvSlotsReq4Loot[n] = dropitemamount;
  53. n++;}}
  54. while(o < (ItemDropG.length/2)){
  55. dropitem = ItemDropG[2*o];
  56. dropitemamount = ItemDropG[2*o+1];
  57. if( player.getInventory().containsItem(dropitem, (BitLimit - dropitemamount))){GLootCantGoToInv = 5;
  58. ErrorGItemInv[ProblemGItems] = ItemDropG[2*o];
  59. ProblemGItems++;}
  60. if(!ItemDefinitions.getItemDefinitions(dropitem).isNoted() && player.getBank().containsItem(dropitem, (BitLimit - dropitemamount))){GLootCantGoToBank = 5;
  61. ErrorGItemBank[ProblemGItemsBank] = ItemDropG[2*o];
  62. ProblemGItemsBank++;}
  63. else if(ItemDefinitions.getItemDefinitions(dropitem).isNoted() && player.getBank().containsItem((dropitem - 1), (BitLimit - dropitemamount))){GLootCantGoToBank = 5;
  64. ErrorGItemBank[ProblemGItemsBank] = ItemDropG[2*o];
  65. ProblemGItemsBank++;}
  66. if ( ((ItemDefinitions.getItemDefinitions(dropitem).isNoted()) || (ItemDefinitions.getItemDefinitions(dropitem).isStackable())) && player.getInventory().containsItem(dropitem, 1)){InvSlotsReq4GLoot[o] = 0;
  67. o++;}
  68. else if ( (ItemDefinitions.getItemDefinitions(dropitem).isNoted()) || (ItemDefinitions.getItemDefinitions(dropitem).isStackable())){InvSlotsReq4GLoot[o] = 1;
  69. o++;}
  70. else{InvSlotsReq4GLoot[o] = dropitemamount;
  71. o++;}}
  72. for (int J = 0; J < InvSlotsReq4Loot.length; J++) { if (InvSlotsReq4Loot[J] > NGItems){NGItems = InvSlotsReq4Loot[J];}}
  73. for (int K = 0; K < InvSlotsReq4GLoot.length; K++) {GItems = GItems + InvSlotsReq4GLoot[K];}
  74.  
  75. if(!player.isgloot2bank() && GLootCantGoToInv > 2){
  76. while( p < ProblemGItems){ItemDefinitions GEII = ItemDefinitions.getItemDefinitions(ErrorGItemInv[p]);
  77. p++;
  78. player.sm("<col=FD0606>Your guaranteed loot can't go to inventory due to you having a maximum amount of " + GEII.getName() + ".");
  79. Terminate = 5;}}
  80. if(!player.isloot2bank() && LootCantGoToInv > 2){
  81. while( q < ProblemItems){ItemDefinitions EII = ItemDefinitions.getItemDefinitions(ErrorItemInv[q]);
  82. q++;
  83. player.sm("<col=FD0606>Your loot can't go to inventory due to you having a maximum amount of " + EII.getName() + ".");
  84. Terminate = 5;}}
  85. if(player.isgloot2bank() && GLootCantGoToBank > 2){
  86. while( p < ProblemGItemsBank){ItemDefinitions GEIB = ItemDefinitions.getItemDefinitions(ErrorGItemBank[p]);
  87. p++;
  88. player.sm("<col=FD0606>Your guaranteed loot can't go to bank due to you having a maximum amount of " + GEIB.getName() + ".");
  89. Terminate = 5;}}
  90. if(player.isloot2bank() && LootCantGoToBank > 2){
  91. while( q < ProblemItemsBank){ItemDefinitions EIB = ItemDefinitions.getItemDefinitions(ErrorItemBank[q]);
  92. q++;
  93. player.sm("<col=FD0606>Your loot can't go to bank due to you having a maximum amount of " + EIB.getName() + ".");
  94. Terminate = 5;}}
  95.  
  96. if (Terminate < 4){
  97. if(!player.isgloot2bank() && !player.isloot2bank() && Freezelots < (GItems + NGItems)){player.sm("There are " + (GItems + NGItems) + " free inventory slots required to open this box with your current settings. You currently have " + Freezelots + " free inventory slots.");}
  98. else if(!player.isgloot2bank() && player.isloot2bank() && Freezelots < GItems){player.sm("There are " + GItems + " free inventory slots required to open this box with your current settings. You currently have " + Freezelots + " free inventory slots.");}
  99. else if(player.isgloot2bank() && !player.isloot2bank() && Freezelots < NGItems){player.sm("There are " + NGItems + " free inventory slots required to open this box with your current settings. You currently have " + Freezelots + " free inventory slots.");}
  100. else{
  101.  
  102. while ((ii+1) < ItemDropChances.length)
  103. {sum[ii+1] = sum[ii] + ItemDropChances[ii+1];
  104. ii++;}
  105. sum[ItemDropChances.length] = 1.0;
  106. while (sum[j] * player.getLuckFactor() <= 1 && j + 1 < sum.length){StopAt++;
  107. j++; }
  108. MaxSum = (float) (1/(player.getLuckFactor()));
  109. sum[StopAt] = MaxSum;
  110. j = 0;
  111. while(j < (sum.length - (StopAt+1))){sum[StopAt + j + 1] = MaxSum;
  112. j++;}
  113.  
  114.  
  115. if (player.isgloot2bank()){while (m < (ItemDropG.length)/2){
  116. if(ItemDefinitions.getItemDefinitions(ItemDropG[2*m]).isNoted()){player.getBank().addItem((ItemDropG[2*m] - 1), ItemDropG[2*m+1], true);}
  117. else{player.getBank().addItem(ItemDropG[2*m], ItemDropG[2*m+1], true);}
  118. m++;}}
  119. else{while (m < (ItemDropG.length)/2){player.getInventory().addItem(ItemDropG[2*m], ItemDropG[2*m+1]);
  120. m++;}}
  121.  
  122. player.UnluckyPoints += (ItemDropChances[0] * player.getLuckFactor());
  123. int chance = Utils.getRandom(Precision);
  124. player.spm("Chance: " + String.valueOf(chance));
  125. if(player.UnluckyPoints > player.getMaxUnluckPoints()){chance = 1;
  126. player.sm("<col=FDC406>You have been very unlucky lately, here, have a guaranteed good drop :).");}
  127. if(chance <= sum[0] * Precision * player.getLuckFactor()){
  128. i = Utils.getRandom(((ItemDrop1.length)/2) - 1);
  129. player.UnluckyPoints = 0;
  130. if(player.isemoting()){
  131. player.setNextGraphics(new Graphics(6));
  132. WorldTasksManager.schedule(new WorldTask() {
  133. @Override
  134. public void run() {player.setNextGraphics(new Graphics(2167));}}, 2);}
  135. player.getInventory().deleteItem(LootBoxID, 1);
  136. if (player.isloot2bank()){
  137. if(ItemDefinitions.getItemDefinitions(ItemDrop1[2*i]).isNoted()){player.getBank().addItem((ItemDrop1[2*i] - 1), ItemDrop1[2*i+1], true);}
  138. else{player.getBank().addItem(ItemDrop1[2*i], ItemDrop1[2*i+1], true);}}
  139. else{player.getInventory().addItem(ItemDrop1[2*i], ItemDrop1[2*i+1]);}
  140. if(player.isgdropmsg()){
  141. ItemDefinitions def = ItemDefinitions.getItemDefinitions(ItemDrop1[2*i]);
  142. World.sm("<img=5><col=05D9D7>" + player.getDisplayName() + "<col=05D922> has just obtained a <col=05D9D7>" + def.getName() + "<col=05D922> from a <col=05D9D7>" + NPCDefinitions.getNPCDefinitions(NPCID).name + " <col=05D922> lootbox! (Droprate <col=05D9D7>" + (ItemDropChances[0] * 100) + "%<col=05D922>).");}
  143. else if(!player.isgdropmsg() && player.isdropmsg()){
  144. ItemDefinitions def = ItemDefinitions.getItemDefinitions(ItemDrop1[2*i]);
  145. player.sm("<col=05D922>Congratulations on <col=05D9D7>" + def.getName() + "<col=05D922> from <col=05D9D7>" + NPCDefinitions.getNPCDefinitions(NPCID).name + "<col=05D922> lootbox! (<col=05D9D7>" + (ItemDropChances[0] * 100) + "%<col=05D922>).");} }
  146. else if((chance > sum[0] * Precision * player.getLuckFactor()) && (chance <= sum[1] * Precision * player.getLuckFactor())){
  147. i = Utils.getRandom(((ItemDrop2.length)/2) - 1);
  148. player.getInventory().deleteItem(LootBoxID, 1);
  149. if (player.isloot2bank()){
  150. if(ItemDefinitions.getItemDefinitions(ItemDrop2[2*i]).isNoted()){player.getBank().addItem((ItemDrop2[2*i] - 1), ItemDrop2[2*i+1], true);}
  151. else{player.getBank().addItem(ItemDrop2[2*i], ItemDrop2[2*i+1], true);}}
  152. else{player.getInventory().addItem(ItemDrop2[2*i], ItemDrop2[2*i+1]);}
  153. if(player.isdropmsg()){
  154. ItemDefinitions def = ItemDefinitions.getItemDefinitions(ItemDrop2[2*i]);
  155. player.sm("<col=BD63CD>Congratulations on <col=EAE312>" + def.getName() + "<col=BD63CD> from <col=EAE312>" + NPCDefinitions.getNPCDefinitions(NPCID).name + "<col=BD63CD> lootbox! (<col=EAE312>" + (ItemDropChances[1] * 100) + "%<col=BD63CD>).");}}
  156. else if((chance > sum[1] * Precision * player.getLuckFactor()) && (chance <= sum[2] * Precision * player.getLuckFactor())){
  157. i = Utils.getRandom(((ItemDrop3.length)/2) - 1);
  158. player.getInventory().deleteItem(LootBoxID, 1);
  159. if (player.isloot2bank()){
  160. if(ItemDefinitions.getItemDefinitions(ItemDrop3[2*i]).isNoted()){player.getBank().addItem((ItemDrop3[2*i] - 1), ItemDrop3[2*i+1], true);}
  161. else{player.getBank().addItem(ItemDrop3[2*i], ItemDrop3[2*i+1], true);}}
  162. else{player.getInventory().addItem(ItemDrop3[2*i], ItemDrop3[2*i+1]);}}
  163.  
  164. else{
  165. i = Utils.getRandom(((ItemDrop4.length)/2) - 1);
  166. player.getInventory().deleteItem(LootBoxID, 1);
  167. if (player.isloot2bank()){
  168. if(ItemDefinitions.getItemDefinitions(ItemDrop4[2*i]).isNoted()){player.getBank().addItem((ItemDrop4[2*i] - 1), ItemDrop4[2*i+1], true);}
  169. else{player.getBank().addItem(ItemDrop4[2*i], ItemDrop4[2*i+1], true);}}
  170. else{player.getInventory().addItem(ItemDrop4[2*i], ItemDrop4[2*i+1]); } } } } }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement