Browse Source

simulate booty command work

master
FatBoy-DOTC 2 years ago
parent
commit
e483280a3c
  1. 61
      src/engine/devcmd/cmds/simulateBootyCmd.java
  2. 2
      src/engine/objects/Mob.java

61
src/engine/devcmd/cmds/simulateBootyCmd.java

@ -67,14 +67,20 @@ public class simulateBootyCmd extends AbstractDevCmd {
case Mob: case Mob:
Mob mob = (Mob) target; Mob mob = (Mob) target;
ArrayList<MobLoot> GlassItems = new ArrayList<MobLoot>(); ArrayList<Item> GlassItems = new ArrayList<Item>();
ArrayList<MobLoot> Resources = new ArrayList<MobLoot>(); ArrayList<Item> Resources = new ArrayList<Item>();
ArrayList<MobLoot> Runes = new ArrayList<MobLoot>(); ArrayList<Item> Runes = new ArrayList<Item>();
ArrayList<MobLoot> Contracts = new ArrayList<MobLoot>(); ArrayList<Item> Contracts = new ArrayList<Item>();
ArrayList<MobLoot> Offerings = new ArrayList<MobLoot>(); ArrayList<Item> Offerings = new ArrayList<Item>();
ArrayList<MobLoot> OtherDrops = new ArrayList<MobLoot>(); ArrayList<Item> OtherDrops = new ArrayList<Item>();
ArrayList<MobLoot>ReturnedBootyList = SimulateMobLoot(mob); ArrayList<Item>ReturnedBootyList = new ArrayList<Item>();
for(MobLoot ml : ReturnedBootyList){ for(int i = 0; i < 100; ++i) {
mob.loadInventory();
for(Item lootItem : mob.getCharItemManager().getInventory()){
ReturnedBootyList.add(lootItem);
}
}
for(Item ml : ReturnedBootyList){
if(ml.getItemBase().isGlass() == true){ if(ml.getItemBase().isGlass() == true){
GlassItems.add(ml); GlassItems.add(ml);
break; break;
@ -97,13 +103,13 @@ public class simulateBootyCmd extends AbstractDevCmd {
break; break;
} }
} }
output += "TOTAL ITEMS DROPPED: " + ReturnedBootyList.size(); output += "TOTAL ITEMS DROPPED: " + ReturnedBootyList.size() + newline;
output += "GLASS ITEMS DROPPED: " + GlassItems.size(); output += "GLASS ITEMS DROPPED: " + GlassItems.size() + newline;
output += "RESOURCE STACKS DROPPED: " + Resources.size(); output += "RESOURCE STACKS DROPPED: " + Resources.size() + newline;
output += "RUNES DROPPED: " + Runes.size(); output += "RUNES DROPPED: " + Runes.size() + newline;
output += "CONTRACTS DROPPED: " + Contracts.size(); output += "CONTRACTS DROPPED: " + Contracts.size() + newline;
output += "OFFERINGS DROPPED: " + Offerings.size(); output += "OFFERINGS DROPPED: " + Offerings.size() + newline;
output += "OTHERS DROPPED: " + OtherDrops.size(); output += "OTHERS DROPPED: " + OtherDrops.size() + newline;
break; break;
} }
@ -130,21 +136,16 @@ public class simulateBootyCmd extends AbstractDevCmd {
multiplier = Float.parseFloat(ConfigManager.MB_HOTZONE_DROP_RATE.getValue()); multiplier = Float.parseFloat(ConfigManager.MB_HOTZONE_DROP_RATE.getValue());
} }
//simulate loot 100 times //simulate loot 100 times
for(int i = 0; i < 100; ++i) { for(int i = 0; i < 5; ++i) {
//iterate the booty sets //iterate the booty sets
ArrayList<MobLoot> output1 = new ArrayList<>();
ArrayList<MobLoot> output2 = new ArrayList<>();
if (mob.getMobBase().bootySet != 0 && NPCManager._bootySetMap.containsKey(mob.getMobBase().bootySet)) { if (mob.getMobBase().bootySet != 0 && NPCManager._bootySetMap.containsKey(mob.getMobBase().bootySet)) {
output1 = RunBootySet(NPCManager._bootySetMap.get(mob.getMobBase().bootySet), mob, multiplier, inHotzone); try {
} ArrayList<MobLoot> testList = RunBootySet(NPCManager._bootySetMap.get(mob.getMobBase().bootySet), mob, multiplier, inHotzone);
if (mob.bootySet != 0) { for (MobLoot lootItem : testList) {
output2 = RunBootySet(NPCManager._bootySetMap.get(mob.bootySet), mob, multiplier, inHotzone); outList.add((lootItem));
} }
for (MobLoot lootItem : output1) { }catch(Exception ex){
outList.add((lootItem)); }
}
for (MobLoot lootItem : output2) {
outList.add((lootItem));
} }
} }
return outList; return outList;
@ -152,7 +153,6 @@ public class simulateBootyCmd extends AbstractDevCmd {
private static ArrayList<MobLoot> RunBootySet(ArrayList<BootySetEntry> entries, Mob mob, float multiplier, boolean inHotzone) { private static ArrayList<MobLoot> RunBootySet(ArrayList<BootySetEntry> entries, Mob mob, float multiplier, boolean inHotzone) {
ArrayList<MobLoot> outList = new ArrayList<>(); ArrayList<MobLoot> outList = new ArrayList<>();
for (BootySetEntry bse : entries) { for (BootySetEntry bse : entries) {
//check if chance roll is good
switch (bse.bootyType) { switch (bse.bootyType) {
case "GOLD": case "GOLD":
@ -177,9 +177,6 @@ public class simulateBootyCmd extends AbstractDevCmd {
} }
break; break;
case "ITEM": case "ITEM":
MobLoot disc = new MobLoot(mob, ItemBase.getItemBase(bse.itemBase), true);
if (disc != null)
//mob.getCharItemManager().addItemToInventory(disc);
break; break;
} }

2
src/engine/objects/Mob.java

@ -1360,7 +1360,7 @@ public class Mob extends AbstractIntelligenceAgent {
* Clears and sets the inventory of the Mob. Must be called every time the * Clears and sets the inventory of the Mob. Must be called every time the
* mob is spawned or respawned. * mob is spawned or respawned.
*/ */
private void loadInventory() { public void loadInventory() {
if (!MBServerStatics.ENABLE_MOB_LOOT) if (!MBServerStatics.ENABLE_MOB_LOOT)
return; return;

Loading…
Cancel
Save