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:
@@ -60,8 +60,8 @@ public class CreateINI {
|
||||
sb.append("mesorate").append(b).append("=").append(
|
||||
Integer.parseInt(con.readLine(" Meso rate: "))).append("\r\n");
|
||||
|
||||
sb.append("bossdroprate").append(b).append("=").append(
|
||||
Integer.parseInt(con.readLine(" Boss drop rate: "))).append("\r\n");
|
||||
sb.append("questrate").append(b).append("=").append(
|
||||
Integer.parseInt(con.readLine(" Quest rate: "))).append("\r\n");
|
||||
|
||||
System.out.println(nextline);
|
||||
sb.append("\r\n");
|
||||
|
||||
@@ -335,7 +335,7 @@ public class Server implements Runnable {
|
||||
ServerConstants.EXP_RATE,
|
||||
ServerConstants.DROP_RATE,
|
||||
ServerConstants.MESO_RATE,
|
||||
ServerConstants.BOSS_DROP_RATE);
|
||||
ServerConstants.QUEST_RATE);
|
||||
|
||||
worldRecommendedList.add(new Pair<>(i, p.getProperty("whyamirecommended" + i)));
|
||||
worlds.add(world);
|
||||
|
||||
@@ -32,7 +32,6 @@ import tools.data.input.SeekableLittleEndianAccessor;
|
||||
|
||||
|
||||
public class MoveDragonHandler extends AbstractMovementPacketHandler {
|
||||
|
||||
@Override
|
||||
public void handlePacket(SeekableLittleEndianAccessor slea, MapleClient c) {
|
||||
final MapleCharacter chr = c.getPlayer();
|
||||
|
||||
@@ -23,12 +23,12 @@ package net.server.channel.handlers;
|
||||
|
||||
import client.MapleClient;
|
||||
import java.util.List;
|
||||
import net.server.channel.handlers.AbstractMovementPacketHandler;
|
||||
import server.movement.LifeMovementFragment;
|
||||
import tools.MaplePacketCreator;
|
||||
import tools.data.input.SeekableLittleEndianAccessor;
|
||||
|
||||
public final class MovePlayerHandler extends AbstractMovementPacketHandler {
|
||||
@Override
|
||||
public final void handlePacket(SeekableLittleEndianAccessor slea, MapleClient c) {
|
||||
slea.skip(9);
|
||||
final List<LifeMovementFragment> res = parseMovement(slea);
|
||||
|
||||
@@ -21,7 +21,6 @@
|
||||
*/
|
||||
package net.server.channel.handlers;
|
||||
|
||||
import net.server.channel.handlers.AbstractMovementPacketHandler;
|
||||
import java.awt.Point;
|
||||
import java.util.Collection;
|
||||
import java.util.List;
|
||||
@@ -33,6 +32,7 @@ import tools.MaplePacketCreator;
|
||||
import tools.data.input.SeekableLittleEndianAccessor;
|
||||
|
||||
public final class MoveSummonHandler extends AbstractMovementPacketHandler {
|
||||
@Override
|
||||
public final void handlePacket(SeekableLittleEndianAccessor slea, MapleClient c) {
|
||||
int oid = slea.readInt();
|
||||
Point startPos = new Point(slea.readShort(), slea.readShort());
|
||||
|
||||
@@ -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() {
|
||||
|
||||
Reference in New Issue
Block a user