Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- public static void GeneralGraardorMinionLootbox(final Player player) {
- int[] ItemDrop1, ItemDrop2, ItemDropG, ItemDrop3, ItemDrop4, ItemDrop5, ItemDrop6, ItemDrop7, ItemDrop8, ItemDrop9, ItemDrop10;
- double[] ItemDropChances;
- int NPCID = 6261;
- int LootBoxID = 26055;
- ItemDrop1 = DropStorage.GeneralGraardorMinionItemDrop1();
- ItemDrop2 = DropStorage.GeneralGraardorMinionItemDrop2();
- ItemDrop3 = DropStorage.GeneralGraardorMinionItemDrop3();
- ItemDrop4 = DropStorage.GeneralGraardorMinionItemDrop4();
- ItemDropG = DropStorage.GeneralGraardorMinionItemDropG();
- ItemDropChances = DropStorage.GeneralGraardorMinionItemDropChances();
- float MaxSum;
- 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;
- int Freezelots = player.getInventory().getFreeSlots();
- final NPC npc = World.getNPCs().get(NPCID);
- int[] TotalDrops = new int[ItemDrop1.length + ItemDrop2.length + ItemDrop3.length + ItemDrop4.length];
- int[] InvSlotsReq4Loot = new int[ItemDrop1.length + ItemDrop2.length + ItemDrop3.length + ItemDrop4.length];
- int[] InvSlotsReq4GLoot = new int[ItemDropG.length];
- double[] sum = new double[ItemDropChances.length + 1];
- int[] ErrorItemInv = new int [TotalDrops.length/2];
- int[] ErrorItemBank = new int [TotalDrops.length/2];
- int[] ErrorGItemInv = new int [ItemDropG.length/2];
- int[] ErrorGItemBank = new int [ItemDropG.length/2];
- sum[0] = ItemDropChances[0];
- for(int I = 0; I < ItemDrop1.length; I++) {TotalDrops[I] = ItemDrop1[I];}
- for(int I = 0; I < ItemDrop2.length; I++) {TotalDrops[I + ItemDrop1.length] = ItemDrop2[I];}
- for(int I = 0; I < ItemDrop3.length; I++) {TotalDrops[I + ItemDrop1.length + ItemDrop2.length] = ItemDrop3[I];}
- for(int I = 0; I < ItemDrop4.length; I++) {TotalDrops[I + ItemDrop1.length + ItemDrop2.length + ItemDrop3.length] = ItemDrop4[I];}
- while(n < (TotalDrops.length/2)){
- dropitem = TotalDrops[2*n];
- dropitemamount = TotalDrops[2*n+1];
- if( player.getInventory().containsItem(dropitem, (BitLimit - dropitemamount))){LootCantGoToInv = 5;
- ErrorItemInv[ProblemItems] = TotalDrops[2*n];
- ProblemItems++;}
- if(!ItemDefinitions.getItemDefinitions(dropitem).isNoted() && player.getBank().containsItem(dropitem, (BitLimit - dropitemamount))){LootCantGoToBank = 5;
- ErrorItemBank[ProblemItemsBank] = TotalDrops[2*n];
- ProblemItemsBank++;}
- else if ((ItemDefinitions.getItemDefinitions(dropitem).isNoted()) && player.getBank().containsItem((dropitem-1), (BitLimit - dropitemamount))){LootCantGoToBank = 5;
- ErrorItemBank[ProblemItemsBank] = TotalDrops[2*n];
- ProblemItemsBank++;}
- if( ((ItemDefinitions.getItemDefinitions(dropitem).isNoted()) || ItemDefinitions.getItemDefinitions(dropitem).isStackable()) && player.getInventory().containsItem(dropitem, 1) ){InvSlotsReq4Loot[n] = 0;
- n++;}
- else if ((ItemDefinitions.getItemDefinitions(dropitem).isNoted()) || (ItemDefinitions.getItemDefinitions(dropitem).isStackable())){InvSlotsReq4Loot[n] = 1;
- n++;}
- else{InvSlotsReq4Loot[n] = dropitemamount;
- n++;}}
- while(o < (ItemDropG.length/2)){
- dropitem = ItemDropG[2*o];
- dropitemamount = ItemDropG[2*o+1];
- if( player.getInventory().containsItem(dropitem, (BitLimit - dropitemamount))){GLootCantGoToInv = 5;
- ErrorGItemInv[ProblemGItems] = ItemDropG[2*o];
- ProblemGItems++;}
- if(!ItemDefinitions.getItemDefinitions(dropitem).isNoted() && player.getBank().containsItem(dropitem, (BitLimit - dropitemamount))){GLootCantGoToBank = 5;
- ErrorGItemBank[ProblemGItemsBank] = ItemDropG[2*o];
- ProblemGItemsBank++;}
- else if(ItemDefinitions.getItemDefinitions(dropitem).isNoted() && player.getBank().containsItem((dropitem - 1), (BitLimit - dropitemamount))){GLootCantGoToBank = 5;
- ErrorGItemBank[ProblemGItemsBank] = ItemDropG[2*o];
- ProblemGItemsBank++;}
- if ( ((ItemDefinitions.getItemDefinitions(dropitem).isNoted()) || (ItemDefinitions.getItemDefinitions(dropitem).isStackable())) && player.getInventory().containsItem(dropitem, 1)){InvSlotsReq4GLoot[o] = 0;
- o++;}
- else if ( (ItemDefinitions.getItemDefinitions(dropitem).isNoted()) || (ItemDefinitions.getItemDefinitions(dropitem).isStackable())){InvSlotsReq4GLoot[o] = 1;
- o++;}
- else{InvSlotsReq4GLoot[o] = dropitemamount;
- o++;}}
- for (int J = 0; J < InvSlotsReq4Loot.length; J++) { if (InvSlotsReq4Loot[J] > NGItems){NGItems = InvSlotsReq4Loot[J];}}
- for (int K = 0; K < InvSlotsReq4GLoot.length; K++) {GItems = GItems + InvSlotsReq4GLoot[K];}
- if(!player.isgloot2bank() && GLootCantGoToInv > 2){
- while( p < ProblemGItems){ItemDefinitions GEII = ItemDefinitions.getItemDefinitions(ErrorGItemInv[p]);
- p++;
- player.sm("<col=FD0606>Your guaranteed loot can't go to inventory due to you having a maximum amount of " + GEII.getName() + ".");
- Terminate = 5;}}
- if(!player.isloot2bank() && LootCantGoToInv > 2){
- while( q < ProblemItems){ItemDefinitions EII = ItemDefinitions.getItemDefinitions(ErrorItemInv[q]);
- q++;
- player.sm("<col=FD0606>Your loot can't go to inventory due to you having a maximum amount of " + EII.getName() + ".");
- Terminate = 5;}}
- if(player.isgloot2bank() && GLootCantGoToBank > 2){
- while( p < ProblemGItemsBank){ItemDefinitions GEIB = ItemDefinitions.getItemDefinitions(ErrorGItemBank[p]);
- p++;
- player.sm("<col=FD0606>Your guaranteed loot can't go to bank due to you having a maximum amount of " + GEIB.getName() + ".");
- Terminate = 5;}}
- if(player.isloot2bank() && LootCantGoToBank > 2){
- while( q < ProblemItemsBank){ItemDefinitions EIB = ItemDefinitions.getItemDefinitions(ErrorItemBank[q]);
- q++;
- player.sm("<col=FD0606>Your loot can't go to bank due to you having a maximum amount of " + EIB.getName() + ".");
- Terminate = 5;}}
- if (Terminate < 4){
- 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.");}
- 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.");}
- 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.");}
- else{
- while ((ii+1) < ItemDropChances.length)
- {sum[ii+1] = sum[ii] + ItemDropChances[ii+1];
- ii++;}
- sum[ItemDropChances.length] = 1.0;
- while (sum[j] * player.getLuckFactor() <= 1 && j + 1 < sum.length){StopAt++;
- j++; }
- MaxSum = (float) (1/(player.getLuckFactor()));
- sum[StopAt] = MaxSum;
- j = 0;
- while(j < (sum.length - (StopAt+1))){sum[StopAt + j + 1] = MaxSum;
- j++;}
- if (player.isgloot2bank()){while (m < (ItemDropG.length)/2){
- if(ItemDefinitions.getItemDefinitions(ItemDropG[2*m]).isNoted()){player.getBank().addItem((ItemDropG[2*m] - 1), ItemDropG[2*m+1], true);}
- else{player.getBank().addItem(ItemDropG[2*m], ItemDropG[2*m+1], true);}
- m++;}}
- else{while (m < (ItemDropG.length)/2){player.getInventory().addItem(ItemDropG[2*m], ItemDropG[2*m+1]);
- m++;}}
- player.UnluckyPoints += (ItemDropChances[0] * player.getLuckFactor());
- int chance = Utils.getRandom(Precision);
- player.spm("Chance: " + String.valueOf(chance));
- if(player.UnluckyPoints > player.getMaxUnluckPoints()){chance = 1;
- player.sm("<col=FDC406>You have been very unlucky lately, here, have a guaranteed good drop :).");}
- if(chance <= sum[0] * Precision * player.getLuckFactor()){
- i = Utils.getRandom(((ItemDrop1.length)/2) - 1);
- player.UnluckyPoints = 0;
- if(player.isemoting()){
- player.setNextGraphics(new Graphics(6));
- WorldTasksManager.schedule(new WorldTask() {
- @Override
- public void run() {player.setNextGraphics(new Graphics(2167));}}, 2);}
- player.getInventory().deleteItem(LootBoxID, 1);
- if (player.isloot2bank()){
- if(ItemDefinitions.getItemDefinitions(ItemDrop1[2*i]).isNoted()){player.getBank().addItem((ItemDrop1[2*i] - 1), ItemDrop1[2*i+1], true);}
- else{player.getBank().addItem(ItemDrop1[2*i], ItemDrop1[2*i+1], true);}}
- else{player.getInventory().addItem(ItemDrop1[2*i], ItemDrop1[2*i+1]);}
- if(player.isgdropmsg()){
- ItemDefinitions def = ItemDefinitions.getItemDefinitions(ItemDrop1[2*i]);
- 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>).");}
- else if(!player.isgdropmsg() && player.isdropmsg()){
- ItemDefinitions def = ItemDefinitions.getItemDefinitions(ItemDrop1[2*i]);
- 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>).");} }
- else if((chance > sum[0] * Precision * player.getLuckFactor()) && (chance <= sum[1] * Precision * player.getLuckFactor())){
- i = Utils.getRandom(((ItemDrop2.length)/2) - 1);
- player.getInventory().deleteItem(LootBoxID, 1);
- if (player.isloot2bank()){
- if(ItemDefinitions.getItemDefinitions(ItemDrop2[2*i]).isNoted()){player.getBank().addItem((ItemDrop2[2*i] - 1), ItemDrop2[2*i+1], true);}
- else{player.getBank().addItem(ItemDrop2[2*i], ItemDrop2[2*i+1], true);}}
- else{player.getInventory().addItem(ItemDrop2[2*i], ItemDrop2[2*i+1]);}
- if(player.isdropmsg()){
- ItemDefinitions def = ItemDefinitions.getItemDefinitions(ItemDrop2[2*i]);
- 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>).");}}
- else if((chance > sum[1] * Precision * player.getLuckFactor()) && (chance <= sum[2] * Precision * player.getLuckFactor())){
- i = Utils.getRandom(((ItemDrop3.length)/2) - 1);
- player.getInventory().deleteItem(LootBoxID, 1);
- if (player.isloot2bank()){
- if(ItemDefinitions.getItemDefinitions(ItemDrop3[2*i]).isNoted()){player.getBank().addItem((ItemDrop3[2*i] - 1), ItemDrop3[2*i+1], true);}
- else{player.getBank().addItem(ItemDrop3[2*i], ItemDrop3[2*i+1], true);}}
- else{player.getInventory().addItem(ItemDrop3[2*i], ItemDrop3[2*i+1]);}}
- else{
- i = Utils.getRandom(((ItemDrop4.length)/2) - 1);
- player.getInventory().deleteItem(LootBoxID, 1);
- if (player.isloot2bank()){
- if(ItemDefinitions.getItemDefinitions(ItemDrop4[2*i]).isNoted()){player.getBank().addItem((ItemDrop4[2*i] - 1), ItemDrop4[2*i+1], true);}
- else{player.getBank().addItem(ItemDrop4[2*i], ItemDrop4[2*i+1], true);}}
- else{player.getInventory().addItem(ItemDrop4[2*i], ItemDrop4[2*i+1]); } } } } }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement