source
Source for my MapleSolaxiaV2 (v83 MapleStory).
This commit is contained in:
177
src/dropspider/DropEntry.java
Normal file
177
src/dropspider/DropEntry.java
Normal file
@@ -0,0 +1,177 @@
|
||||
/*
|
||||
* To change this template, choose Tools | Templates
|
||||
* and open the template in the editor.
|
||||
*/
|
||||
package dropspider;
|
||||
|
||||
import client.inventory.MapleInventoryType;
|
||||
import server.MapleItemInformationProvider;
|
||||
|
||||
/**
|
||||
*
|
||||
* @author Simon
|
||||
*/
|
||||
public class DropEntry {
|
||||
private int version;
|
||||
private int item_id;
|
||||
private int monster_id;
|
||||
private int chance;
|
||||
private int mindrop;
|
||||
private int maxdrop;
|
||||
|
||||
public DropEntry(int item_id, int monster_id, int version) {
|
||||
this.item_id = item_id;
|
||||
this.monster_id = monster_id;
|
||||
mindrop = 1;
|
||||
maxdrop = 1;
|
||||
chance = calculateChance(item_id);
|
||||
this.version = version;
|
||||
}
|
||||
|
||||
private int calculateChance(int item_id) {
|
||||
MapleInventoryType mit = MapleItemInformationProvider.getInstance().getInventoryType(item_id);
|
||||
boolean boss = DataTool.isBoss(monster_id);
|
||||
int number = (item_id / 1000) % 1000;
|
||||
switch (mit) {
|
||||
case EQUIP:
|
||||
if (boss) {
|
||||
return 40000;
|
||||
}
|
||||
return 700;
|
||||
case USE:
|
||||
if (boss) {
|
||||
mindrop = 1;
|
||||
maxdrop = 4;
|
||||
}
|
||||
switch (number) {
|
||||
case 0: // normal potions
|
||||
mindrop = 1;
|
||||
if (version > 98) {
|
||||
maxdrop = 5;
|
||||
}
|
||||
return 40000;
|
||||
case 1: // watermelons, pills, speed potions, etc
|
||||
case 2: // same thing
|
||||
return 10000;
|
||||
case 3: // advanced potions from crafting (should not drop)
|
||||
case 4: // same thing
|
||||
case 11: // poison mushroom
|
||||
case 28: // cool items
|
||||
case 30: // return scrolls
|
||||
case 46: // gallant scrolls
|
||||
return 0;
|
||||
case 10: // strange potions like apples, eggs
|
||||
case 12: // drakes blood, sap of ancient tree (rare use)
|
||||
case 20: // salad, fried chicken, dews
|
||||
case 22: // air bubbles and stuff. ALSO nependeath honey but oh well
|
||||
case 50: // antidotes and stuff
|
||||
return 3000;
|
||||
case 290: // mastery books
|
||||
if(boss)
|
||||
return 40000;
|
||||
else
|
||||
return 1000;
|
||||
case 40: // Scrolls
|
||||
case 41: // Scrolls
|
||||
case 43: // Scrolls
|
||||
case 44: // Scrolls
|
||||
case 48: // pet scrolls
|
||||
if(boss)
|
||||
return 10000;
|
||||
else
|
||||
return 750;
|
||||
case 100: // summon bags
|
||||
case 101: // summon bags
|
||||
case 102: // summon bags
|
||||
case 109: // summon bags
|
||||
case 120: // pet food
|
||||
case 211: // cliffs special potion
|
||||
case 240: // rings
|
||||
case 270: // pheromone, additional weird stuff
|
||||
case 310: // teleport rock
|
||||
case 320: // weird drops
|
||||
case 390: // weird
|
||||
case 430: // Scripted items
|
||||
case 440: // jukebox
|
||||
case 460: // magnifying glass
|
||||
case 470: // golden hammer
|
||||
case 490: // crystanol
|
||||
case 500: // sp reset
|
||||
return 0;
|
||||
case 47: // tablets from dragon rider
|
||||
return 220000;
|
||||
case 49: // clean slats, potential scroll, ees
|
||||
case 70: // throwing stars
|
||||
case 210: // rare monster piece drops
|
||||
case 330: // bullets
|
||||
if(boss)
|
||||
return 2500;
|
||||
else
|
||||
return 400;
|
||||
case 60: // bow arrows
|
||||
case 61: // crossbow arrows
|
||||
mindrop = 10;
|
||||
maxdrop = 50;
|
||||
return 10000;
|
||||
case 213: // boss transfrom
|
||||
return 100000;
|
||||
case 280: // skill books
|
||||
if(boss)
|
||||
return 20000;
|
||||
else
|
||||
return 1000;
|
||||
case 381: // monster book things
|
||||
case 382:
|
||||
case 383:
|
||||
case 384:
|
||||
case 385:
|
||||
case 386:
|
||||
case 387:
|
||||
case 388:
|
||||
return 20000;
|
||||
case 510: // recipes
|
||||
case 511:
|
||||
case 512:
|
||||
return 10000;
|
||||
default:
|
||||
return 0;
|
||||
|
||||
}
|
||||
case ETC:
|
||||
switch (number) {
|
||||
case 0: // monster pieces
|
||||
return 200000;
|
||||
case 4: // crystal ores
|
||||
case 130: // simulators
|
||||
case 131: // manuals
|
||||
return 3000;
|
||||
case 30: // game pieces
|
||||
return 10000;
|
||||
case 32: // misc items
|
||||
return 10000;
|
||||
default:
|
||||
return 7000;
|
||||
}
|
||||
default:
|
||||
return 7000;
|
||||
}
|
||||
}
|
||||
|
||||
public String getQuerySegment() {
|
||||
StringBuilder sb = new StringBuilder();
|
||||
sb.append("(");
|
||||
sb.append(monster_id);
|
||||
sb.append(", ");
|
||||
sb.append(item_id);
|
||||
sb.append(", ");
|
||||
sb.append(mindrop);//min
|
||||
sb.append(", ");
|
||||
sb.append(maxdrop);//max
|
||||
sb.append(", ");
|
||||
sb.append(0);//quest
|
||||
sb.append(", ");
|
||||
sb.append(chance);
|
||||
sb.append(")");
|
||||
return sb.toString();
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user