Mounts & map boundings fix + Quest rates + MapleInvalidItemIdFetcher

Fixed a critical bug that would sometimes default the written mount data on the DB, causing data loss.
Removed all invalid itemids from the drop data.
Added quest rates. Instead of using the player's rates, quest rates stacks up with the server's exp and drop rates when giving quest rewards, making the values the same for all.
Adjusted map boundings to better suit the item drop positions inside the field.
New tool: MapleInvalidItemIdFetcher. It reads all existing itemids from the wz and reports inexistent itemids on the DB's drop data.
This commit is contained in:
ronancpl
2018-02-04 14:08:18 -02:00
parent 58dce72979
commit 3f8904ef44
29 changed files with 2291 additions and 363 deletions

View File

@@ -77,7 +77,7 @@ import tools.locks.MonitoredLockType;
*/
public class World {
private int id, flag, exprate, droprate, mesorate, bossdroprate;
private int id, flag, exprate, droprate, mesorate, questrate;
private String eventmsg;
private List<Channel> channels = new ArrayList<>();
private Map<Integer, MapleMessenger> messengers = new HashMap<>();
@@ -114,14 +114,14 @@ public class World {
private ScheduledFuture<?> charactersSchedule;
public World(int world, int flag, String eventmsg, int exprate, int droprate, int mesorate, int bossdroprate) {
public World(int world, int flag, String eventmsg, int exprate, int droprate, int mesorate, int questrate) {
this.id = world;
this.flag = flag;
this.eventmsg = eventmsg;
this.exprate = exprate;
this.droprate = droprate;
this.mesorate = mesorate;
this.bossdroprate = bossdroprate;
this.questrate = questrate;
runningPartyId.set(1);
runningMessengerId.set(1);
@@ -215,12 +215,12 @@ public class World {
}
}
public int getBossDropRate() {
return bossdroprate;
public int getQuestRate() {
return questrate;
}
public void setBossDropRate(int bossdrop) {
this.bossdroprate = bossdrop;
public void setQuestRate(int quest) {
this.questrate = quest;
}
public PlayerStorage getPlayerStorage() {