Rename and clean up MapleItemInformationProvider
This commit is contained in:
1 parent
8f54b3e5de
commit
9c8abf6f62
81 files changed
+533
-402
No files matched your search
@@ -69,7 +69,7 @@ function action(mode, type, selection) {
|
|||||||
//var level = cm.getPlayer().getPet(i).getLevel();
|
//var level = cm.getPlayer().getPet(i).getLevel();
|
||||||
//var closeness = cm.getPlayer().getPet(i).getCloseness();
|
//var closeness = cm.getPlayer().getPet(i).getCloseness();
|
||||||
//var fullness = cm.getPlayer().getPet(i).getFullness();
|
//var fullness = cm.getPlayer().getPet(i).getFullness();
|
||||||
//MapleItemInformationProvider ii = MapleItemInformationProvider.getInstance();
|
//ItemInformationProvider ii = ItemInformationProvider.getInstance();
|
||||||
if (id < 5000029 || id > 5000033) {
|
if (id < 5000029 || id > 5000033) {
|
||||||
cm.sendOk("Something wrong, try again.");
|
cm.sendOk("Something wrong, try again.");
|
||||||
cm.dispose();
|
cm.dispose();
|
||||||
@@ -89,8 +89,8 @@ function action(mode, type, selection) {
|
|||||||
cm.dispose();
|
cm.dispose();
|
||||||
}
|
}
|
||||||
|
|
||||||
/*if (name.equals(MapleItemInformationProvider.getInstance().getName(id))) {
|
/*if (name.equals(ItemInformationProvider.getInstance().getName(id))) {
|
||||||
name = MapleItemInformationProvider.getInstance().getName(after);
|
name = ItemInformationProvider.getInstance().getName(after);
|
||||||
}*/
|
}*/
|
||||||
|
|
||||||
cm.gainItem(5380000, -1);
|
cm.gainItem(5380000, -1);
|
||||||
|
|||||||
@@ -207,8 +207,8 @@ function getScrollSuccessTier(scrollStats) {
|
|||||||
|
|
||||||
function getAvailableScrollsPool(baseScrolls, rewardTier, successTier) {
|
function getAvailableScrollsPool(baseScrolls, rewardTier, successTier) {
|
||||||
var scrolls = [];
|
var scrolls = [];
|
||||||
const MapleItemInformationProvider = Java.type('server.MapleItemInformationProvider');
|
const ItemInformationProvider = Java.type('server.ItemInformationProvider');
|
||||||
var ii = MapleItemInformationProvider.getInstance();
|
var ii = ItemInformationProvider.getInstance();
|
||||||
|
|
||||||
for (var i = 0; i < baseScrolls.length; i++) {
|
for (var i = 0; i < baseScrolls.length; i++) {
|
||||||
for (var j = 0; j < 100; j++) {
|
for (var j = 0; j < 100; j++) {
|
||||||
@@ -245,8 +245,8 @@ function getPlayerCardTierPower() {
|
|||||||
|
|
||||||
if (ceTier >= 8) { // is special card
|
if (ceTier >= 8) { // is special card
|
||||||
const LifeFactory = Java.type('server.life.LifeFactory');
|
const LifeFactory = Java.type('server.life.LifeFactory');
|
||||||
const MapleItemInformationProvider = Java.type('server.MapleItemInformationProvider');
|
const ItemInformationProvider = Java.type('server.ItemInformationProvider');
|
||||||
var mobLevel = LifeFactory.getMonsterLevel(MapleItemInformationProvider.getInstance().getCardMobId(cardid));
|
var mobLevel = LifeFactory.getMonsterLevel(ItemInformationProvider.getInstance().getCardMobId(cardid));
|
||||||
var mobTier = getLevelTier(mobLevel) - 1;
|
var mobTier = getLevelTier(mobLevel) - 1;
|
||||||
|
|
||||||
countTier[mobTier] += (ce.getValue() * 1.2);
|
countTier[mobTier] += (ce.getValue() * 1.2);
|
||||||
|
|||||||
@@ -37,8 +37,8 @@ function raiseOpen() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (diffExp > 0) { // thanks IxianMace for noticing Mimiana egg not following progress by EXP
|
if (diffExp > 0) { // thanks IxianMace for noticing Mimiana egg not following progress by EXP
|
||||||
const MapleItemInformationProvider = Java.type('server.MapleItemInformationProvider');
|
const ItemInformationProvider = Java.type('server.ItemInformationProvider');
|
||||||
var consItem = MapleItemInformationProvider.getInstance().getQuestConsumablesInfo(4220137);
|
var consItem = ItemInformationProvider.getInstance().getQuestConsumablesInfo(4220137);
|
||||||
var exp = consItem.exp;
|
var exp = consItem.exp;
|
||||||
var grade = consItem.grade;
|
var grade = consItem.grade;
|
||||||
|
|
||||||
|
|||||||
@@ -86,8 +86,8 @@ function end(mode, type, selection) {
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* if (name.equals(MapleItemInformationProvider.getInstance().getName(id))) {
|
/* if (name.equals(ItemInformationProvider.getInstance().getName(id))) {
|
||||||
name = MapleItemInformationProvider.getInstance().getName(after);
|
name = ItemInformationProvider.getInstance().getName(after);
|
||||||
} */
|
} */
|
||||||
|
|
||||||
//qm.unequipPet(qm.getClient());
|
//qm.unequipPet(qm.getClient());
|
||||||
|
|||||||
@@ -87,8 +87,8 @@ function end(mode, type, selection) {
|
|||||||
}
|
}
|
||||||
} while (after == pet.getItemId());
|
} while (after == pet.getItemId());
|
||||||
|
|
||||||
/*if (name.equals(MapleItemInformationProvider.getInstance().getName(id))) {
|
/*if (name.equals(ItemInformationProvider.getInstance().getName(id))) {
|
||||||
name = MapleItemInformationProvider.getInstance().getName(after);
|
name = ItemInformationProvider.getInstance().getName(after);
|
||||||
} */
|
} */
|
||||||
|
|
||||||
qm.gainMeso(-10000);
|
qm.gainMeso(-10000);
|
||||||
|
|||||||
@@ -58,7 +58,7 @@ import scripting.AbstractPlayerInteraction;
|
|||||||
import scripting.event.EventInstanceManager;
|
import scripting.event.EventInstanceManager;
|
||||||
import scripting.item.ItemScriptManager;
|
import scripting.item.ItemScriptManager;
|
||||||
import server.*;
|
import server.*;
|
||||||
import server.MapleItemInformationProvider.ScriptedItem;
|
import server.ItemInformationProvider.ScriptedItem;
|
||||||
import server.events.Events;
|
import server.events.Events;
|
||||||
import server.events.RescueGaga;
|
import server.events.RescueGaga;
|
||||||
import server.events.gm.Fitness;
|
import server.events.gm.Fitness;
|
||||||
@@ -94,7 +94,7 @@ import java.util.concurrent.locks.Lock;
|
|||||||
import java.util.regex.Pattern;
|
import java.util.regex.Pattern;
|
||||||
|
|
||||||
public class Character extends AbstractCharacterObject {
|
public class Character extends AbstractCharacterObject {
|
||||||
private static final MapleItemInformationProvider ii = MapleItemInformationProvider.getInstance();
|
private static final ItemInformationProvider ii = ItemInformationProvider.getInstance();
|
||||||
private static final String LEVEL_200 = "[Congrats] %s has reached Level %d! Congratulate %s on such an amazing achievement!";
|
private static final String LEVEL_200 = "[Congrats] %s has reached Level %d! Congratulate %s on such an amazing achievement!";
|
||||||
private static final String[] BLOCKED_NAMES = {"admin", "owner", "moderator", "intern", "donor", "administrator", "FREDRICK", "help", "helper", "alert", "notice", "maplestory", "fuck", "wizet", "fucking", "negro", "fuk", "fuc", "penis", "pussy", "asshole", "gay",
|
private static final String[] BLOCKED_NAMES = {"admin", "owner", "moderator", "intern", "donor", "administrator", "FREDRICK", "help", "helper", "alert", "notice", "maplestory", "fuck", "wizet", "fucking", "negro", "fuk", "fuc", "penis", "pussy", "asshole", "gay",
|
||||||
"nigger", "homo", "suck", "cum", "shit", "shitty", "condom", "security", "official", "rape", "nigga", "sex", "tit", "boner", "orgy", "clit", "asshole", "fatass", "bitch", "support", "gamemaster", "cock", "gaay", "gm",
|
"nigger", "homo", "suck", "cum", "shit", "shitty", "condom", "security", "official", "rape", "nigga", "sex", "tit", "boner", "orgy", "clit", "asshole", "fatass", "bitch", "support", "gamemaster", "cock", "gaay", "gm",
|
||||||
@@ -902,7 +902,7 @@ public class Character extends AbstractCharacterObject {
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
MapleItemInformationProvider ii = MapleItemInformationProvider.getInstance();
|
ItemInformationProvider ii = ItemInformationProvider.getInstance();
|
||||||
for (InventoryType invType : InventoryType.values()) {
|
for (InventoryType invType : InventoryType.values()) {
|
||||||
Inventory inv = this.getInventory(invType);
|
Inventory inv = this.getInventory(invType);
|
||||||
|
|
||||||
@@ -2977,7 +2977,7 @@ public class Character extends AbstractCharacterObject {
|
|||||||
InventoryManipulator.removeFromSlot(client, inv.getType(), item.getPosition(), item.getQuantity(), true);
|
InventoryManipulator.removeFromSlot(client, inv.getType(), item.getPosition(), item.getQuantity(), true);
|
||||||
}
|
}
|
||||||
|
|
||||||
MapleItemInformationProvider ii = MapleItemInformationProvider.getInstance();
|
ItemInformationProvider ii = ItemInformationProvider.getInstance();
|
||||||
for (Item item : toberemove) {
|
for (Item item : toberemove) {
|
||||||
List<Integer> toadd = new ArrayList<>();
|
List<Integer> toadd = new ArrayList<>();
|
||||||
Pair<Integer, String> replace = ii.getReplaceOnExpire(item.getItemId());
|
Pair<Integer, String> replace = ii.getReplaceOnExpire(item.getItemId());
|
||||||
@@ -3593,7 +3593,7 @@ public class Character extends AbstractCharacterObject {
|
|||||||
|
|
||||||
System.out.println("IN ACTION:");
|
System.out.println("IN ACTION:");
|
||||||
for (Entry<BuffStat, MapleBuffStatValueHolder> bpl : effects.entrySet()) {
|
for (Entry<BuffStat, MapleBuffStatValueHolder> bpl : effects.entrySet()) {
|
||||||
System.out.println(bpl.getKey().name() + " -> " + MapleItemInformationProvider.getInstance().getName(bpl.getValue().effect.getSourceId()));
|
System.out.println(bpl.getKey().name() + " -> " + ItemInformationProvider.getInstance().getName(bpl.getValue().effect.getSourceId()));
|
||||||
}
|
}
|
||||||
} finally {
|
} finally {
|
||||||
chrLock.unlock();
|
chrLock.unlock();
|
||||||
@@ -9348,7 +9348,7 @@ public class Character extends AbstractCharacterObject {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public int sellAllItemsFromPosition(MapleItemInformationProvider ii, InventoryType type, short pos) {
|
public int sellAllItemsFromPosition(ItemInformationProvider ii, InventoryType type, short pos) {
|
||||||
int mesoGain = 0;
|
int mesoGain = 0;
|
||||||
|
|
||||||
Inventory inv = getInventory(type);
|
Inventory inv = getInventory(type);
|
||||||
@@ -9367,7 +9367,7 @@ public class Character extends AbstractCharacterObject {
|
|||||||
return (mesoGain);
|
return (mesoGain);
|
||||||
}
|
}
|
||||||
|
|
||||||
private int standaloneSell(Client c, MapleItemInformationProvider ii, InventoryType type, short slot, short quantity) {
|
private int standaloneSell(Client c, ItemInformationProvider ii, InventoryType type, short slot, short quantity) {
|
||||||
if (quantity == 0xFFFF || quantity == 0) {
|
if (quantity == 0xFFFF || quantity == 0) {
|
||||||
quantity = 1;
|
quantity = 1;
|
||||||
}
|
}
|
||||||
@@ -9506,7 +9506,7 @@ public class Character extends AbstractCharacterObject {
|
|||||||
Equip eqp = eqpUpg.getKey();
|
Equip eqp = eqpUpg.getKey();
|
||||||
setMergeFlag(eqp);
|
setMergeFlag(eqp);
|
||||||
|
|
||||||
String showStr = " '" + MapleItemInformationProvider.getInstance().getName(eqp.getItemId()) + "': ";
|
String showStr = " '" + ItemInformationProvider.getInstance().getName(eqp.getItemId()) + "': ";
|
||||||
String upgdStr = eqp.gainStats(eqpStatups).getLeft();
|
String upgdStr = eqp.gainStats(eqpStatups).getLeft();
|
||||||
|
|
||||||
this.forceUpdateItem(eqp);
|
this.forceUpdateItem(eqp);
|
||||||
|
|||||||
@@ -25,7 +25,7 @@ package client.command.commands.gm0;
|
|||||||
|
|
||||||
import client.Client;
|
import client.Client;
|
||||||
import client.command.Command;
|
import client.command.Command;
|
||||||
import server.MapleItemInformationProvider;
|
import server.ItemInformationProvider;
|
||||||
import server.gachapon.MapleGachapon;
|
import server.gachapon.MapleGachapon;
|
||||||
|
|
||||||
public class GachaCommand extends Command {
|
public class GachaCommand extends Command {
|
||||||
@@ -56,7 +56,7 @@ public class GachaCommand extends Command {
|
|||||||
String talkStr = "The #b" + gachaName + "#k Gachapon contains the following items.\r\n\r\n";
|
String talkStr = "The #b" + gachaName + "#k Gachapon contains the following items.\r\n\r\n";
|
||||||
for (int i = 0; i < 2; i++){
|
for (int i = 0; i < 2; i++){
|
||||||
for (int id : gacha.getItems(i)){
|
for (int id : gacha.getItems(i)){
|
||||||
talkStr += "-" + MapleItemInformationProvider.getInstance().getName(id) + "\r\n";
|
talkStr += "-" + ItemInformationProvider.getInstance().getName(id) + "\r\n";
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
talkStr += "\r\nPlease keep in mind that there are items that are in all gachapons and are not listed here.";
|
talkStr += "\r\nPlease keep in mind that there are items that are in all gachapons and are not listed here.";
|
||||||
|
|||||||
@@ -26,7 +26,7 @@ package client.command.commands.gm1;
|
|||||||
import client.Character;
|
import client.Character;
|
||||||
import client.Client;
|
import client.Client;
|
||||||
import client.command.Command;
|
import client.command.Command;
|
||||||
import server.MapleItemInformationProvider;
|
import server.ItemInformationProvider;
|
||||||
import server.life.MonsterDropEntry;
|
import server.life.MonsterDropEntry;
|
||||||
import server.life.MonsterInformationProvider;
|
import server.life.MonsterInformationProvider;
|
||||||
import tools.Pair;
|
import tools.Pair;
|
||||||
@@ -57,7 +57,7 @@ public class WhatDropsFromCommand extends Command {
|
|||||||
output += mobName + " drops the following items:\r\n\r\n";
|
output += mobName + " drops the following items:\r\n\r\n";
|
||||||
for (MonsterDropEntry drop : MonsterInformationProvider.getInstance().retrieveDrop(mobId)){
|
for (MonsterDropEntry drop : MonsterInformationProvider.getInstance().retrieveDrop(mobId)){
|
||||||
try {
|
try {
|
||||||
String name = MapleItemInformationProvider.getInstance().getName(drop.itemId);
|
String name = ItemInformationProvider.getInstance().getName(drop.itemId);
|
||||||
if (name == null || name.equals("null") || drop.chance == 0){
|
if (name == null || name.equals("null") || drop.chance == 0){
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -26,7 +26,7 @@ package client.command.commands.gm1;
|
|||||||
import client.Character;
|
import client.Character;
|
||||||
import client.Client;
|
import client.Client;
|
||||||
import client.command.Command;
|
import client.command.Command;
|
||||||
import server.MapleItemInformationProvider;
|
import server.ItemInformationProvider;
|
||||||
import server.life.MonsterInformationProvider;
|
import server.life.MonsterInformationProvider;
|
||||||
import tools.DatabaseConnection;
|
import tools.DatabaseConnection;
|
||||||
import tools.Pair;
|
import tools.Pair;
|
||||||
@@ -53,7 +53,7 @@ public class WhoDropsCommand extends Command {
|
|||||||
try {
|
try {
|
||||||
String searchString = player.getLastCommandMessage();
|
String searchString = player.getLastCommandMessage();
|
||||||
String output = "";
|
String output = "";
|
||||||
Iterator<Pair<Integer, String>> listIterator = MapleItemInformationProvider.getInstance().getItemDataByName(searchString).iterator();
|
Iterator<Pair<Integer, String>> listIterator = ItemInformationProvider.getInstance().getItemDataByName(searchString).iterator();
|
||||||
if (listIterator.hasNext()) {
|
if (listIterator.hasNext()) {
|
||||||
int count = 1;
|
int count = 1;
|
||||||
while (listIterator.hasNext() && count <= 3) {
|
while (listIterator.hasNext() && count <= 3) {
|
||||||
|
|||||||
@@ -30,7 +30,7 @@ import client.inventory.Pet;
|
|||||||
import client.inventory.manipulator.InventoryManipulator;
|
import client.inventory.manipulator.InventoryManipulator;
|
||||||
import config.YamlConfig;
|
import config.YamlConfig;
|
||||||
import constants.inventory.ItemConstants;
|
import constants.inventory.ItemConstants;
|
||||||
import server.MapleItemInformationProvider;
|
import server.ItemInformationProvider;
|
||||||
|
|
||||||
public class ItemCommand extends Command {
|
public class ItemCommand extends Command {
|
||||||
{
|
{
|
||||||
@@ -47,7 +47,7 @@ public class ItemCommand extends Command {
|
|||||||
}
|
}
|
||||||
|
|
||||||
int itemId = Integer.parseInt(params[0]);
|
int itemId = Integer.parseInt(params[0]);
|
||||||
MapleItemInformationProvider ii = MapleItemInformationProvider.getInstance();
|
ItemInformationProvider ii = ItemInformationProvider.getInstance();
|
||||||
|
|
||||||
if(ii.getName(itemId) == null) {
|
if(ii.getName(itemId) == null) {
|
||||||
player.yellowMessage("Item id '" + params[0] + "' does not exist.");
|
player.yellowMessage("Item id '" + params[0] + "' does not exist.");
|
||||||
|
|||||||
@@ -31,7 +31,7 @@ import client.inventory.Item;
|
|||||||
import client.inventory.Pet;
|
import client.inventory.Pet;
|
||||||
import config.YamlConfig;
|
import config.YamlConfig;
|
||||||
import constants.inventory.ItemConstants;
|
import constants.inventory.ItemConstants;
|
||||||
import server.MapleItemInformationProvider;
|
import server.ItemInformationProvider;
|
||||||
|
|
||||||
public class ItemDropCommand extends Command {
|
public class ItemDropCommand extends Command {
|
||||||
{
|
{
|
||||||
@@ -48,7 +48,7 @@ public class ItemDropCommand extends Command {
|
|||||||
}
|
}
|
||||||
|
|
||||||
int itemId = Integer.parseInt(params[0]);
|
int itemId = Integer.parseInt(params[0]);
|
||||||
MapleItemInformationProvider ii = MapleItemInformationProvider.getInstance();
|
ItemInformationProvider ii = ItemInformationProvider.getInstance();
|
||||||
|
|
||||||
if(ii.getName(itemId) == null) {
|
if(ii.getName(itemId) == null) {
|
||||||
player.yellowMessage("Item id '" + params[0] + "' does not exist.");
|
player.yellowMessage("Item id '" + params[0] + "' does not exist.");
|
||||||
|
|||||||
@@ -29,7 +29,7 @@ import client.command.Command;
|
|||||||
import client.inventory.InventoryType;
|
import client.inventory.InventoryType;
|
||||||
import client.inventory.Item;
|
import client.inventory.Item;
|
||||||
import constants.inventory.ItemConstants;
|
import constants.inventory.ItemConstants;
|
||||||
import server.MapleItemInformationProvider;
|
import server.ItemInformationProvider;
|
||||||
|
|
||||||
public class RechargeCommand extends Command {
|
public class RechargeCommand extends Command {
|
||||||
{
|
{
|
||||||
@@ -39,7 +39,7 @@ public class RechargeCommand extends Command {
|
|||||||
@Override
|
@Override
|
||||||
public void execute(Client c, String[] params) {
|
public void execute(Client c, String[] params) {
|
||||||
Character player = c.getPlayer();
|
Character player = c.getPlayer();
|
||||||
MapleItemInformationProvider ii = MapleItemInformationProvider.getInstance();
|
ItemInformationProvider ii = ItemInformationProvider.getInstance();
|
||||||
for (Item torecharge : c.getPlayer().getInventory(InventoryType.USE).list()) {
|
for (Item torecharge : c.getPlayer().getInventory(InventoryType.USE).list()) {
|
||||||
if (ItemConstants.isThrowingStar(torecharge.getItemId())){
|
if (ItemConstants.isThrowingStar(torecharge.getItemId())){
|
||||||
torecharge.setQuantity(ii.getSlotMax(c, torecharge.getItemId()));
|
torecharge.setQuantity(ii.getSlotMax(c, torecharge.getItemId()));
|
||||||
|
|||||||
@@ -31,7 +31,7 @@ import provider.DataProvider;
|
|||||||
import provider.DataProviderFactory;
|
import provider.DataProviderFactory;
|
||||||
import provider.DataTool;
|
import provider.DataTool;
|
||||||
import provider.wz.WZFiles;
|
import provider.wz.WZFiles;
|
||||||
import server.MapleItemInformationProvider;
|
import server.ItemInformationProvider;
|
||||||
import server.quest.Quest;
|
import server.quest.Quest;
|
||||||
import tools.Pair;
|
import tools.Pair;
|
||||||
|
|
||||||
@@ -117,7 +117,7 @@ public class SearchCommand extends Command {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
for (Pair<Integer, String> itemPair : MapleItemInformationProvider.getInstance().getAllItems()) {
|
for (Pair<Integer, String> itemPair : ItemInformationProvider.getInstance().getAllItems()) {
|
||||||
if (sb.length() < 32654) {//ohlol
|
if (sb.length() < 32654) {//ohlol
|
||||||
if (itemPair.getRight().toLowerCase().contains(search.toLowerCase())) {
|
if (itemPair.getRight().toLowerCase().contains(search.toLowerCase())) {
|
||||||
sb.append("#b").append(itemPair.getLeft()).append("#k - #r").append(itemPair.getRight()).append("\r\n");
|
sb.append("#b").append(itemPair.getLeft()).append("#k - #r").append(itemPair.getRight()).append("\r\n");
|
||||||
|
|||||||
@@ -28,7 +28,7 @@ import client.Client;
|
|||||||
import client.Stat;
|
import client.Stat;
|
||||||
import client.command.Command;
|
import client.command.Command;
|
||||||
import constants.inventory.ItemConstants;
|
import constants.inventory.ItemConstants;
|
||||||
import server.MapleItemInformationProvider;
|
import server.ItemInformationProvider;
|
||||||
|
|
||||||
public class FaceCommand extends Command {
|
public class FaceCommand extends Command {
|
||||||
{
|
{
|
||||||
@@ -46,7 +46,7 @@ public class FaceCommand extends Command {
|
|||||||
try {
|
try {
|
||||||
if (params.length == 1) {
|
if (params.length == 1) {
|
||||||
int itemId = Integer.parseInt(params[0]);
|
int itemId = Integer.parseInt(params[0]);
|
||||||
if (!ItemConstants.isFace(itemId) || MapleItemInformationProvider.getInstance().getName(itemId) == null) {
|
if (!ItemConstants.isFace(itemId) || ItemInformationProvider.getInstance().getName(itemId) == null) {
|
||||||
player.yellowMessage("Face id '" + params[0] + "' does not exist.");
|
player.yellowMessage("Face id '" + params[0] + "' does not exist.");
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
@@ -56,7 +56,7 @@ public class FaceCommand extends Command {
|
|||||||
player.equipChanged();
|
player.equipChanged();
|
||||||
} else {
|
} else {
|
||||||
int itemId = Integer.parseInt(params[1]);
|
int itemId = Integer.parseInt(params[1]);
|
||||||
if (!ItemConstants.isFace(itemId) || MapleItemInformationProvider.getInstance().getName(itemId) == null) {
|
if (!ItemConstants.isFace(itemId) || ItemInformationProvider.getInstance().getName(itemId) == null) {
|
||||||
player.yellowMessage("Face id '" + params[1] + "' does not exist.");
|
player.yellowMessage("Face id '" + params[1] + "' does not exist.");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -28,7 +28,7 @@ import client.Client;
|
|||||||
import client.Stat;
|
import client.Stat;
|
||||||
import client.command.Command;
|
import client.command.Command;
|
||||||
import constants.inventory.ItemConstants;
|
import constants.inventory.ItemConstants;
|
||||||
import server.MapleItemInformationProvider;
|
import server.ItemInformationProvider;
|
||||||
|
|
||||||
public class HairCommand extends Command {
|
public class HairCommand extends Command {
|
||||||
{
|
{
|
||||||
@@ -46,7 +46,7 @@ public class HairCommand extends Command {
|
|||||||
try {
|
try {
|
||||||
if (params.length == 1) {
|
if (params.length == 1) {
|
||||||
int itemId = Integer.parseInt(params[0]);
|
int itemId = Integer.parseInt(params[0]);
|
||||||
if (!ItemConstants.isHair(itemId) || MapleItemInformationProvider.getInstance().getName(itemId) == null) {
|
if (!ItemConstants.isHair(itemId) || ItemInformationProvider.getInstance().getName(itemId) == null) {
|
||||||
player.yellowMessage("Hair id '" + params[0] + "' does not exist.");
|
player.yellowMessage("Hair id '" + params[0] + "' does not exist.");
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
@@ -56,7 +56,7 @@ public class HairCommand extends Command {
|
|||||||
player.equipChanged();
|
player.equipChanged();
|
||||||
} else {
|
} else {
|
||||||
int itemId = Integer.parseInt(params[1]);
|
int itemId = Integer.parseInt(params[1]);
|
||||||
if (!ItemConstants.isHair(itemId) || MapleItemInformationProvider.getInstance().getName(itemId) == null) {
|
if (!ItemConstants.isHair(itemId) || ItemInformationProvider.getInstance().getName(itemId) == null) {
|
||||||
player.yellowMessage("Hair id '" + params[1] + "' does not exist.");
|
player.yellowMessage("Hair id '" + params[1] + "' does not exist.");
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -31,7 +31,7 @@ import client.inventory.InventoryType;
|
|||||||
import client.inventory.Item;
|
import client.inventory.Item;
|
||||||
import client.inventory.manipulator.InventoryManipulator;
|
import client.inventory.manipulator.InventoryManipulator;
|
||||||
import constants.inventory.ItemConstants;
|
import constants.inventory.ItemConstants;
|
||||||
import server.MapleItemInformationProvider;
|
import server.ItemInformationProvider;
|
||||||
|
|
||||||
public class ProItemCommand extends Command {
|
public class ProItemCommand extends Command {
|
||||||
{
|
{
|
||||||
@@ -46,7 +46,7 @@ public class ProItemCommand extends Command {
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
MapleItemInformationProvider ii = MapleItemInformationProvider.getInstance();
|
ItemInformationProvider ii = ItemInformationProvider.getInstance();
|
||||||
int itemid = Integer.parseInt(params[0]);
|
int itemid = Integer.parseInt(params[0]);
|
||||||
|
|
||||||
if(ii.getName(itemid) == null) {
|
if(ii.getName(itemid) == null) {
|
||||||
|
|||||||
@@ -27,7 +27,7 @@ import client.inventory.InventoryType;
|
|||||||
import client.inventory.Item;
|
import client.inventory.Item;
|
||||||
import config.YamlConfig;
|
import config.YamlConfig;
|
||||||
import net.server.Server;
|
import net.server.Server;
|
||||||
import server.MapleItemInformationProvider;
|
import server.ItemInformationProvider;
|
||||||
import tools.FilePrinter;
|
import tools.FilePrinter;
|
||||||
import tools.PacketCreator;
|
import tools.PacketCreator;
|
||||||
|
|
||||||
@@ -59,7 +59,7 @@ public abstract class CharacterFactory {
|
|||||||
newchar.setMapId(recipe.getMap());
|
newchar.setMapId(recipe.getMap());
|
||||||
|
|
||||||
Inventory equipped = newchar.getInventory(InventoryType.EQUIPPED);
|
Inventory equipped = newchar.getInventory(InventoryType.EQUIPPED);
|
||||||
MapleItemInformationProvider ii = MapleItemInformationProvider.getInstance();
|
ItemInformationProvider ii = ItemInformationProvider.getInstance();
|
||||||
|
|
||||||
int top = recipe.getTop(), bottom = recipe.getBottom(), shoes = recipe.getShoes(), weapon = recipe.getWeapon();
|
int top = recipe.getTop(), bottom = recipe.getBottom(), shoes = recipe.getShoes(), weapon = recipe.getWeapon();
|
||||||
|
|
||||||
|
|||||||
@@ -25,7 +25,7 @@ import client.creator.CharacterFactory;
|
|||||||
import client.creator.CharacterFactoryRecipe;
|
import client.creator.CharacterFactoryRecipe;
|
||||||
import client.inventory.InventoryType;
|
import client.inventory.InventoryType;
|
||||||
import client.inventory.Item;
|
import client.inventory.Item;
|
||||||
import server.MapleItemInformationProvider;
|
import server.ItemInformationProvider;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
*
|
*
|
||||||
@@ -38,7 +38,7 @@ public class BowmanCreator extends CharacterFactory {
|
|||||||
|
|
||||||
private static CharacterFactoryRecipe createRecipe(Job job, int level, int map, int top, int bottom, int shoes, int weapon) {
|
private static CharacterFactoryRecipe createRecipe(Job job, int level, int map, int top, int bottom, int shoes, int weapon) {
|
||||||
CharacterFactoryRecipe recipe = new CharacterFactoryRecipe(job, level, map, top, bottom, shoes, weapon);
|
CharacterFactoryRecipe recipe = new CharacterFactoryRecipe(job, level, map, top, bottom, shoes, weapon);
|
||||||
MapleItemInformationProvider ii = MapleItemInformationProvider.getInstance();
|
ItemInformationProvider ii = ItemInformationProvider.getInstance();
|
||||||
|
|
||||||
recipe.setDex(25);
|
recipe.setDex(25);
|
||||||
recipe.setRemainingAp(133);
|
recipe.setRemainingAp(133);
|
||||||
@@ -60,7 +60,7 @@ public class BowmanCreator extends CharacterFactory {
|
|||||||
return recipe;
|
return recipe;
|
||||||
}
|
}
|
||||||
|
|
||||||
private static void giveEquipment(CharacterFactoryRecipe recipe, MapleItemInformationProvider ii, int equipid) {
|
private static void giveEquipment(CharacterFactoryRecipe recipe, ItemInformationProvider ii, int equipid) {
|
||||||
Item nEquip = ii.getEquipById(equipid);
|
Item nEquip = ii.getEquipById(equipid);
|
||||||
recipe.addStartingEquipment(nEquip);
|
recipe.addStartingEquipment(nEquip);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -28,7 +28,7 @@ import client.creator.CharacterFactoryRecipe;
|
|||||||
import client.inventory.InventoryType;
|
import client.inventory.InventoryType;
|
||||||
import client.inventory.Item;
|
import client.inventory.Item;
|
||||||
import constants.skills.Magician;
|
import constants.skills.Magician;
|
||||||
import server.MapleItemInformationProvider;
|
import server.ItemInformationProvider;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
*
|
*
|
||||||
@@ -42,7 +42,7 @@ public class MagicianCreator extends CharacterFactory {
|
|||||||
|
|
||||||
private static CharacterFactoryRecipe createRecipe(Job job, int level, int map, int top, int bottom, int shoes, int weapon, int gender, int improveSp) {
|
private static CharacterFactoryRecipe createRecipe(Job job, int level, int map, int top, int bottom, int shoes, int weapon, int gender, int improveSp) {
|
||||||
CharacterFactoryRecipe recipe = new CharacterFactoryRecipe(job, level, map, top, bottom, shoes, weapon);
|
CharacterFactoryRecipe recipe = new CharacterFactoryRecipe(job, level, map, top, bottom, shoes, weapon);
|
||||||
MapleItemInformationProvider ii = MapleItemInformationProvider.getInstance();
|
ItemInformationProvider ii = ItemInformationProvider.getInstance();
|
||||||
|
|
||||||
recipe.setInt(20);
|
recipe.setInt(20);
|
||||||
recipe.setRemainingAp(138);
|
recipe.setRemainingAp(138);
|
||||||
@@ -83,7 +83,7 @@ public class MagicianCreator extends CharacterFactory {
|
|||||||
return recipe;
|
return recipe;
|
||||||
}
|
}
|
||||||
|
|
||||||
private static void giveEquipment(CharacterFactoryRecipe recipe, MapleItemInformationProvider ii, int equipid) {
|
private static void giveEquipment(CharacterFactoryRecipe recipe, ItemInformationProvider ii, int equipid) {
|
||||||
Item nEquip = ii.getEquipById(equipid);
|
Item nEquip = ii.getEquipById(equipid);
|
||||||
recipe.addStartingEquipment(nEquip);
|
recipe.addStartingEquipment(nEquip);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -25,7 +25,7 @@ import client.creator.CharacterFactory;
|
|||||||
import client.creator.CharacterFactoryRecipe;
|
import client.creator.CharacterFactoryRecipe;
|
||||||
import client.inventory.InventoryType;
|
import client.inventory.InventoryType;
|
||||||
import client.inventory.Item;
|
import client.inventory.Item;
|
||||||
import server.MapleItemInformationProvider;
|
import server.ItemInformationProvider;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
*
|
*
|
||||||
@@ -38,7 +38,7 @@ public class PirateCreator extends CharacterFactory {
|
|||||||
|
|
||||||
private static CharacterFactoryRecipe createRecipe(Job job, int level, int map, int top, int bottom, int shoes, int weapon) {
|
private static CharacterFactoryRecipe createRecipe(Job job, int level, int map, int top, int bottom, int shoes, int weapon) {
|
||||||
CharacterFactoryRecipe recipe = new CharacterFactoryRecipe(job, level, map, top, bottom, shoes, weapon);
|
CharacterFactoryRecipe recipe = new CharacterFactoryRecipe(job, level, map, top, bottom, shoes, weapon);
|
||||||
MapleItemInformationProvider ii = MapleItemInformationProvider.getInstance();
|
ItemInformationProvider ii = ItemInformationProvider.getInstance();
|
||||||
|
|
||||||
recipe.setDex(20);
|
recipe.setDex(20);
|
||||||
recipe.setRemainingAp(138);
|
recipe.setRemainingAp(138);
|
||||||
@@ -64,7 +64,7 @@ public class PirateCreator extends CharacterFactory {
|
|||||||
return recipe;
|
return recipe;
|
||||||
}
|
}
|
||||||
|
|
||||||
private static void giveEquipment(CharacterFactoryRecipe recipe, MapleItemInformationProvider ii, int equipid) {
|
private static void giveEquipment(CharacterFactoryRecipe recipe, ItemInformationProvider ii, int equipid) {
|
||||||
Item nEquip = ii.getEquipById(equipid);
|
Item nEquip = ii.getEquipById(equipid);
|
||||||
recipe.addStartingEquipment(nEquip);
|
recipe.addStartingEquipment(nEquip);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -25,7 +25,7 @@ import client.creator.CharacterFactory;
|
|||||||
import client.creator.CharacterFactoryRecipe;
|
import client.creator.CharacterFactoryRecipe;
|
||||||
import client.inventory.InventoryType;
|
import client.inventory.InventoryType;
|
||||||
import client.inventory.Item;
|
import client.inventory.Item;
|
||||||
import server.MapleItemInformationProvider;
|
import server.ItemInformationProvider;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
*
|
*
|
||||||
@@ -38,7 +38,7 @@ public class ThiefCreator extends CharacterFactory {
|
|||||||
|
|
||||||
private static CharacterFactoryRecipe createRecipe(Job job, int level, int map, int top, int bottom, int shoes, int weapon) {
|
private static CharacterFactoryRecipe createRecipe(Job job, int level, int map, int top, int bottom, int shoes, int weapon) {
|
||||||
CharacterFactoryRecipe recipe = new CharacterFactoryRecipe(job, level, map, top, bottom, shoes, weapon);
|
CharacterFactoryRecipe recipe = new CharacterFactoryRecipe(job, level, map, top, bottom, shoes, weapon);
|
||||||
MapleItemInformationProvider ii = MapleItemInformationProvider.getInstance();
|
ItemInformationProvider ii = ItemInformationProvider.getInstance();
|
||||||
|
|
||||||
recipe.setDex(25);
|
recipe.setDex(25);
|
||||||
recipe.setRemainingAp(133);
|
recipe.setRemainingAp(133);
|
||||||
@@ -62,7 +62,7 @@ public class ThiefCreator extends CharacterFactory {
|
|||||||
return recipe;
|
return recipe;
|
||||||
}
|
}
|
||||||
|
|
||||||
private static void giveEquipment(CharacterFactoryRecipe recipe, MapleItemInformationProvider ii, int equipid) {
|
private static void giveEquipment(CharacterFactoryRecipe recipe, ItemInformationProvider ii, int equipid) {
|
||||||
Item nEquip = ii.getEquipById(equipid);
|
Item nEquip = ii.getEquipById(equipid);
|
||||||
recipe.addStartingEquipment(nEquip);
|
recipe.addStartingEquipment(nEquip);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -28,7 +28,7 @@ import client.creator.CharacterFactoryRecipe;
|
|||||||
import client.inventory.InventoryType;
|
import client.inventory.InventoryType;
|
||||||
import client.inventory.Item;
|
import client.inventory.Item;
|
||||||
import constants.skills.Warrior;
|
import constants.skills.Warrior;
|
||||||
import server.MapleItemInformationProvider;
|
import server.ItemInformationProvider;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
*
|
*
|
||||||
@@ -42,7 +42,7 @@ public class WarriorCreator extends CharacterFactory {
|
|||||||
|
|
||||||
private static CharacterFactoryRecipe createRecipe(Job job, int level, int map, int top, int bottom, int shoes, int weapon, int gender, int improveSp) {
|
private static CharacterFactoryRecipe createRecipe(Job job, int level, int map, int top, int bottom, int shoes, int weapon, int gender, int improveSp) {
|
||||||
CharacterFactoryRecipe recipe = new CharacterFactoryRecipe(job, level, map, top, bottom, shoes, weapon);
|
CharacterFactoryRecipe recipe = new CharacterFactoryRecipe(job, level, map, top, bottom, shoes, weapon);
|
||||||
MapleItemInformationProvider ii = MapleItemInformationProvider.getInstance();
|
ItemInformationProvider ii = ItemInformationProvider.getInstance();
|
||||||
|
|
||||||
recipe.setStr(35);
|
recipe.setStr(35);
|
||||||
recipe.setRemainingAp(123);
|
recipe.setRemainingAp(123);
|
||||||
@@ -83,7 +83,7 @@ public class WarriorCreator extends CharacterFactory {
|
|||||||
return recipe;
|
return recipe;
|
||||||
}
|
}
|
||||||
|
|
||||||
private static void giveEquipment(CharacterFactoryRecipe recipe, MapleItemInformationProvider ii, int equipid) {
|
private static void giveEquipment(CharacterFactoryRecipe recipe, ItemInformationProvider ii, int equipid) {
|
||||||
Item nEquip = ii.getEquipById(equipid);
|
Item nEquip = ii.getEquipById(equipid);
|
||||||
recipe.addStartingEquipment(nEquip);
|
recipe.addStartingEquipment(nEquip);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -25,7 +25,7 @@ import client.Client;
|
|||||||
import config.YamlConfig;
|
import config.YamlConfig;
|
||||||
import constants.game.ExpTable;
|
import constants.game.ExpTable;
|
||||||
import constants.inventory.ItemConstants;
|
import constants.inventory.ItemConstants;
|
||||||
import server.MapleItemInformationProvider;
|
import server.ItemInformationProvider;
|
||||||
import tools.PacketCreator;
|
import tools.PacketCreator;
|
||||||
import tools.Pair;
|
import tools.Pair;
|
||||||
import tools.Randomizer;
|
import tools.Randomizer;
|
||||||
@@ -83,7 +83,7 @@ public class Equip extends Item {
|
|||||||
this.itemExp = 0;
|
this.itemExp = 0;
|
||||||
this.itemLevel = 1;
|
this.itemLevel = 1;
|
||||||
|
|
||||||
this.isElemental = (MapleItemInformationProvider.getInstance().getEquipLevel(id, false) > 1);
|
this.isElemental = (ItemInformationProvider.getInstance().getEquipLevel(id, false) > 1);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@@ -306,7 +306,7 @@ public class Equip extends Item {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private static boolean isPhysicalWeapon(int itemid) {
|
private static boolean isPhysicalWeapon(int itemid) {
|
||||||
Equip eqp = (Equip) MapleItemInformationProvider.getInstance().getEquipById(itemid);
|
Equip eqp = (Equip) ItemInformationProvider.getInstance().getEquipById(itemid);
|
||||||
return eqp.getWatk() >= eqp.getMatk();
|
return eqp.getWatk() >= eqp.getMatk();
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -476,7 +476,7 @@ public class Equip extends Item {
|
|||||||
List<Pair<StatUpgrade, Integer>> stats = new LinkedList<>();
|
List<Pair<StatUpgrade, Integer>> stats = new LinkedList<>();
|
||||||
|
|
||||||
if(isElemental) {
|
if(isElemental) {
|
||||||
List<Pair<String, Integer>> elementalStats = MapleItemInformationProvider.getInstance().getItemLevelupStats(getItemId(), itemLevel);
|
List<Pair<String, Integer>> elementalStats = ItemInformationProvider.getInstance().getItemLevelupStats(getItemId(), itemLevel);
|
||||||
|
|
||||||
for(Pair<String, Integer> p: elementalStats) {
|
for(Pair<String, Integer> p: elementalStats) {
|
||||||
if(p.getRight() > 0) stats.add(new Pair<>(StatUpgrade.valueOf(p.getLeft()), p.getRight()));
|
if(p.getRight() > 0) stats.add(new Pair<>(StatUpgrade.valueOf(p.getLeft()), p.getRight()));
|
||||||
@@ -510,8 +510,8 @@ public class Equip extends Item {
|
|||||||
|
|
||||||
itemLevel++;
|
itemLevel++;
|
||||||
|
|
||||||
String lvupStr = "'" + MapleItemInformationProvider.getInstance().getName(this.getItemId()) + "' is now level " + itemLevel + "! ";
|
String lvupStr = "'" + ItemInformationProvider.getInstance().getName(this.getItemId()) + "' is now level " + itemLevel + "! ";
|
||||||
String showStr = "#e'" + MapleItemInformationProvider.getInstance().getName(this.getItemId()) + "'#b is now #elevel #r" + itemLevel + "#k#b!";
|
String showStr = "#e'" + ItemInformationProvider.getInstance().getName(this.getItemId()) + "'#b is now #elevel #r" + itemLevel + "#k#b!";
|
||||||
|
|
||||||
Pair<String, Pair<Boolean, Boolean>> res = this.gainStats(stats);
|
Pair<String, Pair<Boolean, Boolean>> res = this.gainStats(stats);
|
||||||
lvupStr += res.getLeft();
|
lvupStr += res.getLeft();
|
||||||
@@ -519,11 +519,11 @@ public class Equip extends Item {
|
|||||||
boolean gotVicious = res.getRight().getRight();
|
boolean gotVicious = res.getRight().getRight();
|
||||||
|
|
||||||
if (gotVicious) {
|
if (gotVicious) {
|
||||||
//c.getPlayer().dropMessage(6, "A new Vicious Hammer opportunity has been found on the '" + MapleItemInformationProvider.getInstance().getName(getItemId()) + "'!");
|
//c.getPlayer().dropMessage(6, "A new Vicious Hammer opportunity has been found on the '" + ItemInformationProvider.getInstance().getName(getItemId()) + "'!");
|
||||||
lvupStr += "+VICIOUS ";
|
lvupStr += "+VICIOUS ";
|
||||||
}
|
}
|
||||||
if (gotSlot) {
|
if (gotSlot) {
|
||||||
//c.getPlayer().dropMessage(6, "A new upgrade slot has been found on the '" + MapleItemInformationProvider.getInstance().getName(getItemId()) + "'!");
|
//c.getPlayer().dropMessage(6, "A new upgrade slot has been found on the '" + ItemInformationProvider.getInstance().getName(getItemId()) + "'!");
|
||||||
lvupStr += "+UPGSLOT ";
|
lvupStr += "+UPGSLOT ";
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -559,7 +559,7 @@ public class Equip extends Item {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public synchronized void gainItemExp(Client c, int gain) { // Ronan's Equip Exp gain method
|
public synchronized void gainItemExp(Client c, int gain) { // Ronan's Equip Exp gain method
|
||||||
MapleItemInformationProvider ii = MapleItemInformationProvider.getInstance();
|
ItemInformationProvider ii = ItemInformationProvider.getInstance();
|
||||||
if(!ii.isUpgradeable(this.getItemId())) {
|
if(!ii.isUpgradeable(this.getItemId())) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
@@ -601,7 +601,7 @@ public class Equip extends Item {
|
|||||||
|
|
||||||
private boolean reachedMaxLevel() {
|
private boolean reachedMaxLevel() {
|
||||||
if (isElemental) {
|
if (isElemental) {
|
||||||
if (itemLevel < MapleItemInformationProvider.getInstance().getEquipLevel(getItemId(), true)) {
|
if (itemLevel < ItemInformationProvider.getInstance().getEquipLevel(getItemId(), true)) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -610,7 +610,7 @@ public class Equip extends Item {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public String showEquipFeatures(Client c) {
|
public String showEquipFeatures(Client c) {
|
||||||
MapleItemInformationProvider ii = MapleItemInformationProvider.getInstance();
|
ItemInformationProvider ii = ItemInformationProvider.getInstance();
|
||||||
if(!ii.isUpgradeable(this.getItemId())) return "";
|
if(!ii.isUpgradeable(this.getItemId())) return "";
|
||||||
|
|
||||||
String eqpName = ii.getName(getItemId());
|
String eqpName = ii.getName(getItemId());
|
||||||
|
|||||||
@@ -27,7 +27,7 @@ import client.inventory.manipulator.InventoryManipulator;
|
|||||||
import constants.inventory.ItemConstants;
|
import constants.inventory.ItemConstants;
|
||||||
import net.server.audit.locks.MonitoredLockType;
|
import net.server.audit.locks.MonitoredLockType;
|
||||||
import net.server.audit.locks.factory.MonitoredReentrantLockFactory;
|
import net.server.audit.locks.factory.MonitoredReentrantLockFactory;
|
||||||
import server.MapleItemInformationProvider;
|
import server.ItemInformationProvider;
|
||||||
import server.ThreadManager;
|
import server.ThreadManager;
|
||||||
import tools.FilePrinter;
|
import tools.FilePrinter;
|
||||||
import tools.Pair;
|
import tools.Pair;
|
||||||
@@ -113,7 +113,7 @@ public class Inventory implements Iterable<Item> {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public Item findByName(String name) {
|
public Item findByName(String name) {
|
||||||
MapleItemInformationProvider ii = MapleItemInformationProvider.getInstance();
|
ItemInformationProvider ii = ItemInformationProvider.getInstance();
|
||||||
for (Item item : list()) {
|
for (Item item : list()) {
|
||||||
String itemName = ii.getName(item.getItemId());
|
String itemName = ii.getName(item.getItemId());
|
||||||
if (itemName == null) {
|
if (itemName == null) {
|
||||||
@@ -421,7 +421,7 @@ public class Inventory implements Iterable<Item> {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private static boolean checkItemRestricted(List<Pair<Item, InventoryType>> items) {
|
private static boolean checkItemRestricted(List<Pair<Item, InventoryType>> items) {
|
||||||
MapleItemInformationProvider ii = MapleItemInformationProvider.getInstance();
|
ItemInformationProvider ii = ItemInformationProvider.getInstance();
|
||||||
|
|
||||||
// thanks Shavit for noticing set creation that would be only effective in rare situations
|
// thanks Shavit for noticing set creation that would be only effective in rare situations
|
||||||
for (Pair<Item, InventoryType> p : items) {
|
for (Pair<Item, InventoryType> p : items) {
|
||||||
|
|||||||
@@ -23,7 +23,7 @@ package client.inventory;
|
|||||||
|
|
||||||
import client.inventory.manipulator.KarmaManipulator;
|
import client.inventory.manipulator.KarmaManipulator;
|
||||||
import constants.inventory.ItemConstants;
|
import constants.inventory.ItemConstants;
|
||||||
import server.MapleItemInformationProvider;
|
import server.ItemInformationProvider;
|
||||||
|
|
||||||
import java.util.Collections;
|
import java.util.Collections;
|
||||||
import java.util.LinkedList;
|
import java.util.LinkedList;
|
||||||
@@ -152,7 +152,7 @@ public class Item implements Comparable<Item> {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public void setFlag(short b) {
|
public void setFlag(short b) {
|
||||||
MapleItemInformationProvider ii = MapleItemInformationProvider.getInstance();
|
ItemInformationProvider ii = ItemInformationProvider.getInstance();
|
||||||
if (ii.isAccountRestricted(id)) {
|
if (ii.isAccountRestricted(id)) {
|
||||||
b |= ItemConstants.ACCOUNT_SHARING; // thanks Shinigami15 for noticing ACCOUNT_SHARING flag not being applied properly to items server-side
|
b |= ItemConstants.ACCOUNT_SHARING; // thanks Shinigami15 for noticing ACCOUNT_SHARING flag not being applied properly to items server-side
|
||||||
}
|
}
|
||||||
@@ -189,6 +189,6 @@ public class Item implements Comparable<Item> {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public boolean isUntradeable() {
|
public boolean isUntradeable() {
|
||||||
return ((this.getFlag() & ItemConstants.UNTRADEABLE) == ItemConstants.UNTRADEABLE) || (MapleItemInformationProvider.getInstance().isDropRestricted(this.getItemId()) && !KarmaManipulator.hasKarmaFlag(this));
|
return ((this.getFlag() & ItemConstants.UNTRADEABLE) == ItemConstants.UNTRADEABLE) || (ItemInformationProvider.getInstance().isDropRestricted(this.getItemId()) && !KarmaManipulator.hasKarmaFlag(this));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -24,7 +24,7 @@ package client.inventory;
|
|||||||
import client.Character;
|
import client.Character;
|
||||||
import client.inventory.manipulator.CashIdGenerator;
|
import client.inventory.manipulator.CashIdGenerator;
|
||||||
import constants.game.ExpTable;
|
import constants.game.ExpTable;
|
||||||
import server.MapleItemInformationProvider;
|
import server.ItemInformationProvider;
|
||||||
import server.movement.AbsoluteLifeMovement;
|
import server.movement.AbsoluteLifeMovement;
|
||||||
import server.movement.LifeMovement;
|
import server.movement.LifeMovement;
|
||||||
import server.movement.LifeMovementFragment;
|
import server.movement.LifeMovementFragment;
|
||||||
@@ -130,7 +130,7 @@ public class Pet extends Item {
|
|||||||
PreparedStatement ps = con.prepareStatement("INSERT INTO pets (petid, name, level, closeness, fullness, summoned, flag) VALUES (?, ?, 1, 0, 100, 0, 0)")) {
|
PreparedStatement ps = con.prepareStatement("INSERT INTO pets (petid, name, level, closeness, fullness, summoned, flag) VALUES (?, ?, 1, 0, 100, 0, 0)")) {
|
||||||
int ret = CashIdGenerator.generateCashId();
|
int ret = CashIdGenerator.generateCashId();
|
||||||
ps.setInt(1, ret);
|
ps.setInt(1, ret);
|
||||||
ps.setString(2, MapleItemInformationProvider.getInstance().getName(itemid));
|
ps.setString(2, ItemInformationProvider.getInstance().getName(itemid));
|
||||||
ps.executeUpdate();
|
ps.executeUpdate();
|
||||||
return ret;
|
return ret;
|
||||||
} catch (SQLException e) {
|
} catch (SQLException e) {
|
||||||
@@ -144,7 +144,7 @@ public class Pet extends Item {
|
|||||||
PreparedStatement ps = con.prepareStatement("INSERT INTO pets (petid, name, level, closeness, fullness, summoned, flag) VALUES (?, ?, ?, ?, ?, 0, 0)")) {
|
PreparedStatement ps = con.prepareStatement("INSERT INTO pets (petid, name, level, closeness, fullness, summoned, flag) VALUES (?, ?, ?, ?, ?, 0, 0)")) {
|
||||||
int ret = CashIdGenerator.generateCashId();
|
int ret = CashIdGenerator.generateCashId();
|
||||||
ps.setInt(1, ret);
|
ps.setInt(1, ret);
|
||||||
ps.setString(2, MapleItemInformationProvider.getInstance().getName(itemid));
|
ps.setString(2, ItemInformationProvider.getInstance().getName(itemid));
|
||||||
ps.setByte(3, level);
|
ps.setByte(3, level);
|
||||||
ps.setInt(4, closeness);
|
ps.setInt(4, closeness);
|
||||||
ps.setInt(5, fullness);
|
ps.setInt(5, fullness);
|
||||||
@@ -307,7 +307,7 @@ public class Pet extends Item {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public Pair<Integer, Boolean> canConsume(int itemId) {
|
public Pair<Integer, Boolean> canConsume(int itemId) {
|
||||||
return MapleItemInformationProvider.getInstance().canPetConsume(this.getItemId(), itemId);
|
return ItemInformationProvider.getInstance().canPetConsume(this.getItemId(), itemId);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void updatePosition(List<LifeMovementFragment> movement) {
|
public void updatePosition(List<LifeMovementFragment> movement) {
|
||||||
|
|||||||
@@ -28,7 +28,7 @@ import client.inventory.*;
|
|||||||
import client.newyear.NewYearCardRecord;
|
import client.newyear.NewYearCardRecord;
|
||||||
import config.YamlConfig;
|
import config.YamlConfig;
|
||||||
import constants.inventory.ItemConstants;
|
import constants.inventory.ItemConstants;
|
||||||
import server.MapleItemInformationProvider;
|
import server.ItemInformationProvider;
|
||||||
import server.maps.MapleMap;
|
import server.maps.MapleMap;
|
||||||
import tools.FilePrinter;
|
import tools.FilePrinter;
|
||||||
import tools.PacketCreator;
|
import tools.PacketCreator;
|
||||||
@@ -75,7 +75,7 @@ public class InventoryManipulator {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private static boolean addByIdInternal(Client c, Character chr, InventoryType type, Inventory inv, int itemId, short quantity, String owner, int petid, short flag, long expiration) {
|
private static boolean addByIdInternal(Client c, Character chr, InventoryType type, Inventory inv, int itemId, short quantity, String owner, int petid, short flag, long expiration) {
|
||||||
MapleItemInformationProvider ii = MapleItemInformationProvider.getInstance();
|
ItemInformationProvider ii = ItemInformationProvider.getInstance();
|
||||||
if (!type.equals(InventoryType.EQUIP)) {
|
if (!type.equals(InventoryType.EQUIP)) {
|
||||||
short slotMax = ii.getSlotMax(c, itemId);
|
short slotMax = ii.getSlotMax(c, itemId);
|
||||||
List<Item> existing = inv.listById(itemId);
|
List<Item> existing = inv.listById(itemId);
|
||||||
@@ -184,7 +184,7 @@ public class InventoryManipulator {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private static boolean addFromDropInternal(Client c, Character chr, InventoryType type, Inventory inv, Item item, boolean show, int petId) {
|
private static boolean addFromDropInternal(Client c, Character chr, InventoryType type, Inventory inv, Item item, boolean show, int petId) {
|
||||||
MapleItemInformationProvider ii = MapleItemInformationProvider.getInstance();
|
ItemInformationProvider ii = ItemInformationProvider.getInstance();
|
||||||
int itemid = item.getItemId();
|
int itemid = item.getItemId();
|
||||||
if (ii.isPickupRestricted(itemid) && chr.haveItemWithId(itemid, true)) {
|
if (ii.isPickupRestricted(itemid) && chr.haveItemWithId(itemid, true)) {
|
||||||
c.sendPacket(PacketCreator.getInventoryFull());
|
c.sendPacket(PacketCreator.getInventoryFull());
|
||||||
@@ -284,7 +284,7 @@ public class InventoryManipulator {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public static boolean checkSpace(Client c, int itemid, int quantity, String owner) {
|
public static boolean checkSpace(Client c, int itemid, int quantity, String owner) {
|
||||||
MapleItemInformationProvider ii = MapleItemInformationProvider.getInstance();
|
ItemInformationProvider ii = ItemInformationProvider.getInstance();
|
||||||
InventoryType type = ItemConstants.getInventoryType(itemid);
|
InventoryType type = ItemConstants.getInventoryType(itemid);
|
||||||
Character chr = c.getPlayer();
|
Character chr = c.getPlayer();
|
||||||
Inventory inv = chr.getInventory(type);
|
Inventory inv = chr.getInventory(type);
|
||||||
@@ -339,7 +339,7 @@ public class InventoryManipulator {
|
|||||||
|
|
||||||
int returnValue;
|
int returnValue;
|
||||||
|
|
||||||
MapleItemInformationProvider ii = MapleItemInformationProvider.getInstance();
|
ItemInformationProvider ii = ItemInformationProvider.getInstance();
|
||||||
InventoryType type = !useProofInv ? ItemConstants.getInventoryType(itemid) : InventoryType.CANHOLD;
|
InventoryType type = !useProofInv ? ItemConstants.getInventoryType(itemid) : InventoryType.CANHOLD;
|
||||||
Character chr = c.getPlayer();
|
Character chr = c.getPlayer();
|
||||||
Inventory inv = chr.getInventory(type);
|
Inventory inv = chr.getInventory(type);
|
||||||
@@ -484,7 +484,7 @@ public class InventoryManipulator {
|
|||||||
if (dst > inv.getSlotLimit()) {
|
if (dst > inv.getSlotLimit()) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
MapleItemInformationProvider ii = MapleItemInformationProvider.getInstance();
|
ItemInformationProvider ii = ItemInformationProvider.getInstance();
|
||||||
Item source = inv.getItem(src);
|
Item source = inv.getItem(src);
|
||||||
Item initialTarget = inv.getItem(dst);
|
Item initialTarget = inv.getItem(dst);
|
||||||
if (source == null) {
|
if (source == null) {
|
||||||
@@ -513,7 +513,7 @@ public class InventoryManipulator {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public static void equip(Client c, short src, short dst) {
|
public static void equip(Client c, short src, short dst) {
|
||||||
MapleItemInformationProvider ii = MapleItemInformationProvider.getInstance();
|
ItemInformationProvider ii = ItemInformationProvider.getInstance();
|
||||||
|
|
||||||
Character chr = c.getPlayer();
|
Character chr = c.getPlayer();
|
||||||
Inventory eqpInv = chr.getInventory(InventoryType.EQUIP);
|
Inventory eqpInv = chr.getInventory(InventoryType.EQUIP);
|
||||||
@@ -672,7 +672,7 @@ public class InventoryManipulator {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private static boolean isDisappearingItemDrop(Item it) {
|
private static boolean isDisappearingItemDrop(Item it) {
|
||||||
MapleItemInformationProvider ii = MapleItemInformationProvider.getInstance();
|
ItemInformationProvider ii = ItemInformationProvider.getInstance();
|
||||||
if (ii.isDropRestricted(it.getItemId())) {
|
if (ii.isDropRestricted(it.getItemId())) {
|
||||||
return true;
|
return true;
|
||||||
} else if (ii.isCash(it.getItemId())) {
|
} else if (ii.isCash(it.getItemId())) {
|
||||||
|
|||||||
@@ -29,9 +29,9 @@ import config.YamlConfig;
|
|||||||
import constants.game.GameConstants;
|
import constants.game.GameConstants;
|
||||||
import constants.inventory.ItemConstants;
|
import constants.inventory.ItemConstants;
|
||||||
import net.packet.InPacket;
|
import net.packet.InPacket;
|
||||||
|
import server.ItemInformationProvider;
|
||||||
import server.MakerItemFactory;
|
import server.MakerItemFactory;
|
||||||
import server.MakerItemFactory.MakerItemCreateEntry;
|
import server.MakerItemFactory.MakerItemCreateEntry;
|
||||||
import server.MapleItemInformationProvider;
|
|
||||||
import tools.FilePrinter;
|
import tools.FilePrinter;
|
||||||
import tools.PacketCreator;
|
import tools.PacketCreator;
|
||||||
import tools.Pair;
|
import tools.Pair;
|
||||||
@@ -47,7 +47,7 @@ import java.util.Map;
|
|||||||
*/
|
*/
|
||||||
public class MakerProcessor {
|
public class MakerProcessor {
|
||||||
|
|
||||||
private static MapleItemInformationProvider ii = MapleItemInformationProvider.getInstance();
|
private static ItemInformationProvider ii = ItemInformationProvider.getInstance();
|
||||||
|
|
||||||
public static void makerAction(InPacket p, Client c) {
|
public static void makerAction(InPacket p, Client c) {
|
||||||
if (c.tryacquireClient()) {
|
if (c.tryacquireClient()) {
|
||||||
@@ -376,7 +376,7 @@ public class MakerProcessor {
|
|||||||
if(!(c.getPlayer().isGM() && YamlConfig.config.server.USE_PERFECT_GM_SCROLL)) {
|
if(!(c.getPlayer().isGM() && YamlConfig.config.server.USE_PERFECT_GM_SCROLL)) {
|
||||||
eqp.setUpgradeSlots((byte)(eqp.getUpgradeSlots() + 1));
|
eqp.setUpgradeSlots((byte)(eqp.getUpgradeSlots() + 1));
|
||||||
}
|
}
|
||||||
item = MapleItemInformationProvider.getInstance().scrollEquipWithId(eqp, 2049100, true, 2049100, c.getPlayer().isGM());
|
item = ItemInformationProvider.getInstance().scrollEquipWithId(eqp, 2049100, true, 2049100, c.getPlayer().isGM());
|
||||||
}
|
}
|
||||||
|
|
||||||
if(!reagentids.isEmpty()) {
|
if(!reagentids.isEmpty()) {
|
||||||
|
|||||||
@@ -28,7 +28,7 @@ import client.inventory.InventoryType;
|
|||||||
import client.inventory.Item;
|
import client.inventory.Item;
|
||||||
import client.inventory.manipulator.InventoryManipulator;
|
import client.inventory.manipulator.InventoryManipulator;
|
||||||
import config.YamlConfig;
|
import config.YamlConfig;
|
||||||
import server.MapleItemInformationProvider;
|
import server.ItemInformationProvider;
|
||||||
import server.MapleStatEffect;
|
import server.MapleStatEffect;
|
||||||
import tools.PacketCreator;
|
import tools.PacketCreator;
|
||||||
|
|
||||||
@@ -116,7 +116,7 @@ public class PetAutopotProcessor {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
stat = MapleItemInformationProvider.getInstance().getItemEffect(toUse.getItemId());
|
stat = ItemInformationProvider.getInstance().getItemEffect(toUse.getItemId());
|
||||||
hasHpGain = stat.getHp() > 0 || stat.getHpRate() > 0.0;
|
hasHpGain = stat.getHp() > 0 || stat.getHpRate() > 0.0;
|
||||||
hasMpGain = stat.getMp() > 0 || stat.getMpRate() > 0.0;
|
hasMpGain = stat.getMp() > 0 || stat.getMpRate() > 0.0;
|
||||||
|
|
||||||
|
|||||||
@@ -36,7 +36,7 @@ import config.YamlConfig;
|
|||||||
import constants.inventory.ItemConstants;
|
import constants.inventory.ItemConstants;
|
||||||
import net.server.channel.Channel;
|
import net.server.channel.Channel;
|
||||||
import server.DueyPackage;
|
import server.DueyPackage;
|
||||||
import server.MapleItemInformationProvider;
|
import server.ItemInformationProvider;
|
||||||
import server.MapleTrade;
|
import server.MapleTrade;
|
||||||
import tools.DatabaseConnection;
|
import tools.DatabaseConnection;
|
||||||
import tools.FilePrinter;
|
import tools.FilePrinter;
|
||||||
@@ -239,7 +239,7 @@ public class DueyProcessor {
|
|||||||
|
|
||||||
private static int addPackageItemFromInventory(int packageId, Client c, byte invTypeId, short itemPos, short amount) {
|
private static int addPackageItemFromInventory(int packageId, Client c, byte invTypeId, short itemPos, short amount) {
|
||||||
if (invTypeId > 0) {
|
if (invTypeId > 0) {
|
||||||
MapleItemInformationProvider ii = MapleItemInformationProvider.getInstance();
|
ItemInformationProvider ii = ItemInformationProvider.getInstance();
|
||||||
|
|
||||||
InventoryType invType = InventoryType.getByType(invTypeId);
|
InventoryType invType = InventoryType.getByType(invTypeId);
|
||||||
Inventory inv = c.getPlayer().getInventory(invType);
|
Inventory inv = c.getPlayer().getInventory(invType);
|
||||||
@@ -411,7 +411,7 @@ public class DueyProcessor {
|
|||||||
|
|
||||||
if (!InventoryManipulator.checkSpace(c, dpItem.getItemId(), dpItem.getQuantity(), dpItem.getOwner())) {
|
if (!InventoryManipulator.checkSpace(c, dpItem.getItemId(), dpItem.getQuantity(), dpItem.getOwner())) {
|
||||||
int itemid = dpItem.getItemId();
|
int itemid = dpItem.getItemId();
|
||||||
if (MapleItemInformationProvider.getInstance().isPickupRestricted(itemid) && c.getPlayer().getInventory(ItemConstants.getInventoryType(itemid)).findById(itemid) != null) {
|
if (ItemInformationProvider.getInstance().isPickupRestricted(itemid) && c.getPlayer().getInventory(ItemConstants.getInventoryType(itemid)).findById(itemid) != null) {
|
||||||
c.sendPacket(PacketCreator.sendDueyMSG(Actions.TOCLIENT_RECV_RECEIVER_WITH_UNIQUE.getCode()));
|
c.sendPacket(PacketCreator.sendDueyMSG(Actions.TOCLIENT_RECV_RECEIVER_WITH_UNIQUE.getCode()));
|
||||||
} else {
|
} else {
|
||||||
c.sendPacket(PacketCreator.sendDueyMSG(Actions.TOCLIENT_RECV_NO_FREE_SLOTS.getCode()));
|
c.sendPacket(PacketCreator.sendDueyMSG(Actions.TOCLIENT_RECV_NO_FREE_SLOTS.getCode()));
|
||||||
|
|||||||
@@ -32,7 +32,7 @@ import client.inventory.ItemFactory;
|
|||||||
import client.inventory.manipulator.InventoryManipulator;
|
import client.inventory.manipulator.InventoryManipulator;
|
||||||
import net.server.Server;
|
import net.server.Server;
|
||||||
import net.server.world.World;
|
import net.server.world.World;
|
||||||
import server.MapleItemInformationProvider;
|
import server.ItemInformationProvider;
|
||||||
import server.maps.HiredMerchant;
|
import server.maps.HiredMerchant;
|
||||||
import tools.DatabaseConnection;
|
import tools.DatabaseConnection;
|
||||||
import tools.FilePrinter;
|
import tools.FilePrinter;
|
||||||
@@ -290,7 +290,7 @@ public class FredrickProcessor {
|
|||||||
for (Pair<Item, InventoryType> it : items) {
|
for (Pair<Item, InventoryType> it : items) {
|
||||||
Item item = it.getLeft();
|
Item item = it.getLeft();
|
||||||
InventoryManipulator.addFromDrop(chr.getClient(), item, false);
|
InventoryManipulator.addFromDrop(chr.getClient(), item, false);
|
||||||
String itemName = MapleItemInformationProvider.getInstance().getName(item.getItemId());
|
String itemName = ItemInformationProvider.getInstance().getName(item.getItemId());
|
||||||
FilePrinter.print(FilePrinter.FREDRICK + chr.getName() + ".txt", chr.getName() + " gained " + item.getQuantity() + " " + itemName + " (" + item.getItemId() + ")");
|
FilePrinter.print(FilePrinter.FREDRICK + chr.getName() + ".txt", chr.getName() + " gained " + item.getQuantity() + " " + itemName + " (" + item.getItemId() + ")");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -32,7 +32,7 @@ import client.inventory.manipulator.KarmaManipulator;
|
|||||||
import config.YamlConfig;
|
import config.YamlConfig;
|
||||||
import constants.inventory.ItemConstants;
|
import constants.inventory.ItemConstants;
|
||||||
import net.packet.InPacket;
|
import net.packet.InPacket;
|
||||||
import server.MapleItemInformationProvider;
|
import server.ItemInformationProvider;
|
||||||
import server.MapleStorage;
|
import server.MapleStorage;
|
||||||
import tools.FilePrinter;
|
import tools.FilePrinter;
|
||||||
import tools.PacketCreator;
|
import tools.PacketCreator;
|
||||||
@@ -45,7 +45,7 @@ import tools.PacketCreator;
|
|||||||
public class StorageProcessor {
|
public class StorageProcessor {
|
||||||
|
|
||||||
public static void storageAction(InPacket p, Client c) {
|
public static void storageAction(InPacket p, Client c) {
|
||||||
MapleItemInformationProvider ii = MapleItemInformationProvider.getInstance();
|
ItemInformationProvider ii = ItemInformationProvider.getInstance();
|
||||||
Character chr = c.getPlayer();
|
Character chr = c.getPlayer();
|
||||||
MapleStorage storage = chr.getStorage();
|
MapleStorage storage = chr.getStorage();
|
||||||
byte mode = p.readByte();
|
byte mode = p.readByte();
|
||||||
|
|||||||
@@ -28,7 +28,7 @@ import client.inventory.InventoryType;
|
|||||||
import client.inventory.manipulator.InventoryManipulator;
|
import client.inventory.manipulator.InventoryManipulator;
|
||||||
import net.AbstractPacketHandler;
|
import net.AbstractPacketHandler;
|
||||||
import net.packet.InPacket;
|
import net.packet.InPacket;
|
||||||
import server.MapleItemInformationProvider;
|
import server.ItemInformationProvider;
|
||||||
import server.life.LifeFactory;
|
import server.life.LifeFactory;
|
||||||
import server.life.Monster;
|
import server.life.Monster;
|
||||||
import server.maps.MapObject;
|
import server.maps.MapObject;
|
||||||
@@ -52,7 +52,7 @@ public final class AdminCommandHandler extends AbstractPacketHandler {
|
|||||||
Character target;
|
Character target;
|
||||||
switch (mode) {
|
switch (mode) {
|
||||||
case 0x00: // Level1~Level8 & Package1~Package2
|
case 0x00: // Level1~Level8 & Package1~Package2
|
||||||
int[][] toSpawn = MapleItemInformationProvider.getInstance().getSummonMobs(p.readInt());
|
int[][] toSpawn = ItemInformationProvider.getInstance().getSummonMobs(p.readInt());
|
||||||
for (int[] toSpawnChild : toSpawn) {
|
for (int[] toSpawnChild : toSpawn) {
|
||||||
if (Randomizer.nextInt(100) < toSpawnChild[1]) {
|
if (Randomizer.nextInt(100) < toSpawnChild[1]) {
|
||||||
c.getPlayer().getMap().spawnMonsterOnGroundBelow(LifeFactory.getMonster(toSpawnChild[0]), c.getPlayer().getPosition());
|
c.getPlayer().getMap().spawnMonsterOnGroundBelow(LifeFactory.getMonster(toSpawnChild[0]), c.getPlayer().getPosition());
|
||||||
|
|||||||
@@ -24,14 +24,14 @@ package net.server.channel.handlers;
|
|||||||
import client.Client;
|
import client.Client;
|
||||||
import net.AbstractPacketHandler;
|
import net.AbstractPacketHandler;
|
||||||
import net.packet.InPacket;
|
import net.packet.InPacket;
|
||||||
import server.MapleItemInformationProvider;
|
import server.ItemInformationProvider;
|
||||||
|
|
||||||
public final class CancelItemEffectHandler extends AbstractPacketHandler {
|
public final class CancelItemEffectHandler extends AbstractPacketHandler {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public final void handlePacket(InPacket p, Client c) {
|
public final void handlePacket(InPacket p, Client c) {
|
||||||
int itemId = -p.readInt();
|
int itemId = -p.readInt();
|
||||||
if (MapleItemInformationProvider.getInstance().noCancelMouse(itemId)) {
|
if (ItemInformationProvider.getInstance().noCancelMouse(itemId)) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
c.getPlayer().cancelEffect(itemId);
|
c.getPlayer().cancelEffect(itemId);
|
||||||
|
|||||||
@@ -37,7 +37,7 @@ import net.server.Server;
|
|||||||
import server.CashShop;
|
import server.CashShop;
|
||||||
import server.CashShop.CashItem;
|
import server.CashShop.CashItem;
|
||||||
import server.CashShop.CashItemFactory;
|
import server.CashShop.CashItemFactory;
|
||||||
import server.MapleItemInformationProvider;
|
import server.ItemInformationProvider;
|
||||||
import tools.FilePrinter;
|
import tools.FilePrinter;
|
||||||
import tools.PacketCreator;
|
import tools.PacketCreator;
|
||||||
import tools.Pair;
|
import tools.Pair;
|
||||||
@@ -484,7 +484,7 @@ public final class CashOperationHandler extends AbstractPacketHandler {
|
|||||||
|
|
||||||
private static boolean canBuy(Character chr, CashItem item, int cash) {
|
private static boolean canBuy(Character chr, CashItem item, int cash) {
|
||||||
if (item != null && item.isOnSale() && item.getPrice() <= cash) {
|
if (item != null && item.isOnSale() && item.getPrice() <= cash) {
|
||||||
FilePrinter.print(FilePrinter.CASHITEM_BOUGHT, chr + " bought " + MapleItemInformationProvider.getInstance().getName(item.getItemId()) + " (SN " + item.getSN() + ") for " + item.getPrice());
|
FilePrinter.print(FilePrinter.CASHITEM_BOUGHT, chr + " bought " + ItemInformationProvider.getInstance().getName(item.getItemId()) + " (SN " + item.getSN() + ") for " + item.getPrice());
|
||||||
return true;
|
return true;
|
||||||
} else {
|
} else {
|
||||||
return false;
|
return false;
|
||||||
|
|||||||
@@ -31,7 +31,7 @@ import net.AbstractPacketHandler;
|
|||||||
import net.packet.InPacket;
|
import net.packet.InPacket;
|
||||||
import net.server.Server;
|
import net.server.Server;
|
||||||
import server.CashShop;
|
import server.CashShop;
|
||||||
import server.MapleItemInformationProvider;
|
import server.ItemInformationProvider;
|
||||||
import tools.DatabaseConnection;
|
import tools.DatabaseConnection;
|
||||||
import tools.FilePrinter;
|
import tools.FilePrinter;
|
||||||
import tools.PacketCreator;
|
import tools.PacketCreator;
|
||||||
@@ -87,7 +87,7 @@ public final class CouponCodeHandler extends AbstractPacketHandler {
|
|||||||
for (Entry<Integer, Integer> e : couponItems.entrySet()) {
|
for (Entry<Integer, Integer> e : couponItems.entrySet()) {
|
||||||
int item = e.getKey(), qty = e.getValue();
|
int item = e.getKey(), qty = e.getValue();
|
||||||
|
|
||||||
if (MapleItemInformationProvider.getInstance().getName(item) == null) {
|
if (ItemInformationProvider.getInstance().getName(item) == null) {
|
||||||
item = 4000000;
|
item = 4000000;
|
||||||
qty = 1;
|
qty = 1;
|
||||||
|
|
||||||
@@ -238,7 +238,7 @@ public final class CouponCodeHandler extends AbstractPacketHandler {
|
|||||||
qty = (short) quantity;
|
qty = (short) quantity;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (MapleItemInformationProvider.getInstance().isCash(item)) {
|
if (ItemInformationProvider.getInstance().isCash(item)) {
|
||||||
Item it = CashShop.generateCouponItem(item, qty);
|
Item it = CashShop.generateCouponItem(item, qty);
|
||||||
|
|
||||||
cs.addToInventory(it);
|
cs.addToInventory(it);
|
||||||
|
|||||||
@@ -31,7 +31,7 @@ import config.YamlConfig;
|
|||||||
import net.AbstractPacketHandler;
|
import net.AbstractPacketHandler;
|
||||||
import net.packet.InPacket;
|
import net.packet.InPacket;
|
||||||
import net.server.Server;
|
import net.server.Server;
|
||||||
import server.MapleItemInformationProvider;
|
import server.ItemInformationProvider;
|
||||||
import tools.PacketCreator;
|
import tools.PacketCreator;
|
||||||
|
|
||||||
public final class InventoryMergeHandler extends AbstractPacketHandler {
|
public final class InventoryMergeHandler extends AbstractPacketHandler {
|
||||||
@@ -59,7 +59,7 @@ public final class InventoryMergeHandler extends AbstractPacketHandler {
|
|||||||
try {
|
try {
|
||||||
//------------------- RonanLana's SLOT MERGER -----------------
|
//------------------- RonanLana's SLOT MERGER -----------------
|
||||||
|
|
||||||
MapleItemInformationProvider ii = MapleItemInformationProvider.getInstance();
|
ItemInformationProvider ii = ItemInformationProvider.getInstance();
|
||||||
Item srcItem, dstItem;
|
Item srcItem, dstItem;
|
||||||
|
|
||||||
for(short dst = 1; dst <= inventory.getSlotLimit(); dst++) {
|
for(short dst = 1; dst <= inventory.getSlotLimit(); dst++) {
|
||||||
|
|||||||
@@ -28,7 +28,7 @@ import config.YamlConfig;
|
|||||||
import net.AbstractPacketHandler;
|
import net.AbstractPacketHandler;
|
||||||
import net.packet.InPacket;
|
import net.packet.InPacket;
|
||||||
import net.server.Server;
|
import net.server.Server;
|
||||||
import server.MapleItemInformationProvider;
|
import server.ItemInformationProvider;
|
||||||
import tools.PacketCreator;
|
import tools.PacketCreator;
|
||||||
|
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
@@ -44,7 +44,7 @@ class PairedQuicksort {
|
|||||||
private int i = 0;
|
private int i = 0;
|
||||||
private int j = 0;
|
private int j = 0;
|
||||||
private final ArrayList<Integer> intersect;
|
private final ArrayList<Integer> intersect;
|
||||||
MapleItemInformationProvider ii = MapleItemInformationProvider.getInstance();
|
ItemInformationProvider ii = ItemInformationProvider.getInstance();
|
||||||
|
|
||||||
private void PartitionByItemId(int Esq, int Dir, ArrayList<Item> A) {
|
private void PartitionByItemId(int Esq, int Dir, ArrayList<Item> A) {
|
||||||
Item x, w;
|
Item x, w;
|
||||||
|
|||||||
@@ -29,8 +29,8 @@ import constants.inventory.ItemConstants;
|
|||||||
import net.AbstractPacketHandler;
|
import net.AbstractPacketHandler;
|
||||||
import net.packet.InPacket;
|
import net.packet.InPacket;
|
||||||
import net.server.Server;
|
import net.server.Server;
|
||||||
import server.MapleItemInformationProvider;
|
import server.ItemInformationProvider;
|
||||||
import server.MapleItemInformationProvider.RewardItem;
|
import server.ItemInformationProvider.RewardItem;
|
||||||
import tools.PacketCreator;
|
import tools.PacketCreator;
|
||||||
import tools.Pair;
|
import tools.Pair;
|
||||||
import tools.Randomizer;
|
import tools.Randomizer;
|
||||||
@@ -50,7 +50,7 @@ public final class ItemRewardHandler extends AbstractPacketHandler {
|
|||||||
Item it = c.getPlayer().getInventory(InventoryType.USE).getItem(slot); // null check here thanks to Thora
|
Item it = c.getPlayer().getInventory(InventoryType.USE).getItem(slot); // null check here thanks to Thora
|
||||||
if (it == null || it.getItemId() != itemId || c.getPlayer().getInventory(InventoryType.USE).countById(itemId) < 1) return;
|
if (it == null || it.getItemId() != itemId || c.getPlayer().getInventory(InventoryType.USE).countById(itemId) < 1) return;
|
||||||
|
|
||||||
MapleItemInformationProvider ii = MapleItemInformationProvider.getInstance();
|
ItemInformationProvider ii = ItemInformationProvider.getInstance();
|
||||||
Pair<Integer, List<RewardItem>> rewards = ii.getItemReward(itemId);
|
Pair<Integer, List<RewardItem>> rewards = ii.getItemReward(itemId);
|
||||||
for (RewardItem reward : rewards.getRight()) {
|
for (RewardItem reward : rewards.getRight()) {
|
||||||
if (!InventoryManipulator.checkSpace(c, reward.itemid, reward.quantity, "")) {
|
if (!InventoryManipulator.checkSpace(c, reward.itemid, reward.quantity, "")) {
|
||||||
|
|||||||
@@ -33,8 +33,8 @@ import net.packet.InPacket;
|
|||||||
import net.packet.Packet;
|
import net.packet.Packet;
|
||||||
import net.server.Server;
|
import net.server.Server;
|
||||||
import net.server.channel.Channel;
|
import net.server.channel.Channel;
|
||||||
|
import server.ItemInformationProvider;
|
||||||
import server.MTSItemInfo;
|
import server.MTSItemInfo;
|
||||||
import server.MapleItemInformationProvider;
|
|
||||||
import tools.DatabaseConnection;
|
import tools.DatabaseConnection;
|
||||||
import tools.PacketCreator;
|
import tools.PacketCreator;
|
||||||
import tools.Pair;
|
import tools.Pair;
|
||||||
@@ -809,7 +809,7 @@ public final class MTSHandler extends AbstractPacketHandler {
|
|||||||
|
|
||||||
public Packet getMTSSearch(int tab, int type, int cOi, String search, int page) {
|
public Packet getMTSSearch(int tab, int type, int cOi, String search, int page) {
|
||||||
List<MTSItemInfo> items = new ArrayList<>();
|
List<MTSItemInfo> items = new ArrayList<>();
|
||||||
MapleItemInformationProvider ii = MapleItemInformationProvider.getInstance();
|
ItemInformationProvider ii = ItemInformationProvider.getInstance();
|
||||||
String listaitems = "";
|
String listaitems = "";
|
||||||
if (cOi != 0) {
|
if (cOi != 0) {
|
||||||
List<String> retItems = new ArrayList<>();
|
List<String> retItems = new ArrayList<>();
|
||||||
|
|||||||
@@ -26,7 +26,7 @@ import client.Client;
|
|||||||
import client.processor.action.PetAutopotProcessor;
|
import client.processor.action.PetAutopotProcessor;
|
||||||
import net.AbstractPacketHandler;
|
import net.AbstractPacketHandler;
|
||||||
import net.packet.InPacket;
|
import net.packet.InPacket;
|
||||||
import server.MapleItemInformationProvider;
|
import server.ItemInformationProvider;
|
||||||
import server.MapleStatEffect;
|
import server.MapleStatEffect;
|
||||||
|
|
||||||
public final class PetAutoPotHandler extends AbstractPacketHandler {
|
public final class PetAutoPotHandler extends AbstractPacketHandler {
|
||||||
@@ -40,7 +40,7 @@ public final class PetAutoPotHandler extends AbstractPacketHandler {
|
|||||||
int itemId = p.readInt();
|
int itemId = p.readInt();
|
||||||
|
|
||||||
Character chr = c.getPlayer();
|
Character chr = c.getPlayer();
|
||||||
MapleStatEffect stat = MapleItemInformationProvider.getInstance().getItemEffect(itemId);
|
MapleStatEffect stat = ItemInformationProvider.getInstance().getItemEffect(itemId);
|
||||||
if (stat.getHp() > 0 || stat.getHpRate() > 0.0) {
|
if (stat.getHp() > 0 || stat.getHpRate() > 0.0) {
|
||||||
float estimatedHp = ((float) chr.getHp()) / chr.getMaxHp();
|
float estimatedHp = ((float) chr.getHp()) / chr.getMaxHp();
|
||||||
chr.setAutopotHpAlert(estimatedHp + 0.05f);
|
chr.setAutopotHpAlert(estimatedHp + 0.05f);
|
||||||
|
|||||||
@@ -34,7 +34,7 @@ import constants.game.GameConstants;
|
|||||||
import constants.inventory.ItemConstants;
|
import constants.inventory.ItemConstants;
|
||||||
import net.AbstractPacketHandler;
|
import net.AbstractPacketHandler;
|
||||||
import net.packet.InPacket;
|
import net.packet.InPacket;
|
||||||
import server.MapleItemInformationProvider;
|
import server.ItemInformationProvider;
|
||||||
import server.MapleTrade;
|
import server.MapleTrade;
|
||||||
import server.maps.*;
|
import server.maps.*;
|
||||||
import server.maps.MiniGame.MiniGameType;
|
import server.maps.MiniGame.MiniGameType;
|
||||||
@@ -471,7 +471,7 @@ public final class PlayerInteractionHandler extends AbstractPacketHandler {
|
|||||||
} else if (mode == Action.SET_MESO.getCode()) {
|
} else if (mode == Action.SET_MESO.getCode()) {
|
||||||
chr.getTrade().setMeso(p.readInt());
|
chr.getTrade().setMeso(p.readInt());
|
||||||
} else if (mode == Action.SET_ITEMS.getCode()) {
|
} else if (mode == Action.SET_ITEMS.getCode()) {
|
||||||
MapleItemInformationProvider ii = MapleItemInformationProvider.getInstance();
|
ItemInformationProvider ii = ItemInformationProvider.getInstance();
|
||||||
InventoryType ivType = InventoryType.getByType(p.readByte());
|
InventoryType ivType = InventoryType.getByType(p.readByte());
|
||||||
short pos = p.readShort();
|
short pos = p.readShort();
|
||||||
Item item = chr.getInventory(ivType).getItem(pos);
|
Item item = chr.getInventory(ivType).getItem(pos);
|
||||||
@@ -565,7 +565,7 @@ public final class PlayerInteractionHandler extends AbstractPacketHandler {
|
|||||||
c.sendPacket(PacketCreator.serverNotice(1, "Could not perform shop operation with that item."));
|
c.sendPacket(PacketCreator.serverNotice(1, "Could not perform shop operation with that item."));
|
||||||
c.sendPacket(PacketCreator.enableActions());
|
c.sendPacket(PacketCreator.enableActions());
|
||||||
return;
|
return;
|
||||||
} else if (MapleItemInformationProvider.getInstance().isUnmerchable(ivItem.getItemId())) {
|
} else if (ItemInformationProvider.getInstance().isUnmerchable(ivItem.getItemId())) {
|
||||||
if (ItemConstants.isPet(ivItem.getItemId())) {
|
if (ItemConstants.isPet(ivItem.getItemId())) {
|
||||||
c.sendPacket(PacketCreator.serverNotice(1, "Pets are not allowed to be sold on the Player Store."));
|
c.sendPacket(PacketCreator.serverNotice(1, "Pets are not allowed to be sold on the Player Store."));
|
||||||
} else {
|
} else {
|
||||||
|
|||||||
@@ -8,8 +8,8 @@ import client.inventory.InventoryType;
|
|||||||
import client.inventory.manipulator.InventoryManipulator;
|
import client.inventory.manipulator.InventoryManipulator;
|
||||||
import net.AbstractPacketHandler;
|
import net.AbstractPacketHandler;
|
||||||
import net.packet.InPacket;
|
import net.packet.InPacket;
|
||||||
import server.MapleItemInformationProvider;
|
import server.ItemInformationProvider;
|
||||||
import server.MapleItemInformationProvider.QuestConsItem;
|
import server.ItemInformationProvider.QuestConsItem;
|
||||||
import server.quest.Quest;
|
import server.quest.Quest;
|
||||||
import tools.PacketCreator;
|
import tools.PacketCreator;
|
||||||
|
|
||||||
@@ -30,7 +30,7 @@ public class RaiseIncExpHandler extends AbstractPacketHandler {
|
|||||||
|
|
||||||
if (c.tryacquireClient()) {
|
if (c.tryacquireClient()) {
|
||||||
try {
|
try {
|
||||||
MapleItemInformationProvider ii = MapleItemInformationProvider.getInstance();
|
ItemInformationProvider ii = ItemInformationProvider.getInstance();
|
||||||
QuestConsItem consItem = ii.getQuestConsumablesInfo(itemid);
|
QuestConsItem consItem = ii.getQuestConsumablesInfo(itemid);
|
||||||
if (consItem == null) {
|
if (consItem == null) {
|
||||||
return;
|
return;
|
||||||
|
|||||||
@@ -34,7 +34,7 @@ import constants.inventory.ItemConstants;
|
|||||||
import constants.skills.*;
|
import constants.skills.*;
|
||||||
import net.packet.InPacket;
|
import net.packet.InPacket;
|
||||||
import net.packet.Packet;
|
import net.packet.Packet;
|
||||||
import server.MapleItemInformationProvider;
|
import server.ItemInformationProvider;
|
||||||
import server.MapleStatEffect;
|
import server.MapleStatEffect;
|
||||||
import tools.PacketCreator;
|
import tools.PacketCreator;
|
||||||
import tools.Randomizer;
|
import tools.Randomizer;
|
||||||
@@ -91,7 +91,7 @@ public final class RangedAttackHandler extends AbstractDealDamageHandler {
|
|||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
Item weapon = chr.getInventory(InventoryType.EQUIPPED).getItem((short) -11);
|
Item weapon = chr.getInventory(InventoryType.EQUIPPED).getItem((short) -11);
|
||||||
WeaponType type = MapleItemInformationProvider.getInstance().getWeaponType(weapon.getItemId());
|
WeaponType type = ItemInformationProvider.getInstance().getWeaponType(weapon.getItemId());
|
||||||
if (type == WeaponType.NOT_A_WEAPON) {
|
if (type == WeaponType.NOT_A_WEAPON) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -34,7 +34,7 @@ import net.packet.InPacket;
|
|||||||
import net.server.channel.Channel;
|
import net.server.channel.Channel;
|
||||||
import net.server.world.World;
|
import net.server.world.World;
|
||||||
import scripting.event.EventInstanceManager;
|
import scripting.event.EventInstanceManager;
|
||||||
import server.MapleItemInformationProvider;
|
import server.ItemInformationProvider;
|
||||||
import tools.DatabaseConnection;
|
import tools.DatabaseConnection;
|
||||||
import tools.PacketCreator;
|
import tools.PacketCreator;
|
||||||
import tools.Pair;
|
import tools.Pair;
|
||||||
@@ -273,7 +273,7 @@ public final class RingActionHandler extends AbstractPacketHandler {
|
|||||||
|
|
||||||
public static void giveMarriageRings(Character player, Character partner, int marriageRingId) {
|
public static void giveMarriageRings(Character player, Character partner, int marriageRingId) {
|
||||||
Pair<Integer, Integer> rings = Ring.createRing(marriageRingId, player, partner);
|
Pair<Integer, Integer> rings = Ring.createRing(marriageRingId, player, partner);
|
||||||
MapleItemInformationProvider ii = MapleItemInformationProvider.getInstance();
|
ItemInformationProvider ii = ItemInformationProvider.getInstance();
|
||||||
|
|
||||||
Item ringObj = ii.getEquipById(marriageRingId);
|
Item ringObj = ii.getEquipById(marriageRingId);
|
||||||
Equip ringEqp = (Equip) ringObj;
|
Equip ringEqp = (Equip) ringObj;
|
||||||
|
|||||||
@@ -27,8 +27,8 @@ import constants.inventory.ItemConstants;
|
|||||||
import net.AbstractPacketHandler;
|
import net.AbstractPacketHandler;
|
||||||
import net.packet.InPacket;
|
import net.packet.InPacket;
|
||||||
import scripting.item.ItemScriptManager;
|
import scripting.item.ItemScriptManager;
|
||||||
import server.MapleItemInformationProvider;
|
import server.ItemInformationProvider;
|
||||||
import server.MapleItemInformationProvider.ScriptedItem;
|
import server.ItemInformationProvider.ScriptedItem;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
*
|
*
|
||||||
@@ -41,7 +41,7 @@ public final class ScriptedItemHandler extends AbstractPacketHandler {
|
|||||||
short itemSlot = p.readShort(); // item slot, thanks RMZero213
|
short itemSlot = p.readShort(); // item slot, thanks RMZero213
|
||||||
int itemId = p.readInt();
|
int itemId = p.readInt();
|
||||||
|
|
||||||
MapleItemInformationProvider ii = MapleItemInformationProvider.getInstance();
|
ItemInformationProvider ii = ItemInformationProvider.getInstance();
|
||||||
ScriptedItem info = ii.getScriptedItemInfo(itemId);
|
ScriptedItem info = ii.getScriptedItemInfo(itemId);
|
||||||
if (info == null) return;
|
if (info == null) return;
|
||||||
|
|
||||||
|
|||||||
@@ -31,7 +31,7 @@ import client.inventory.manipulator.InventoryManipulator;
|
|||||||
import constants.inventory.ItemConstants;
|
import constants.inventory.ItemConstants;
|
||||||
import net.AbstractPacketHandler;
|
import net.AbstractPacketHandler;
|
||||||
import net.packet.InPacket;
|
import net.packet.InPacket;
|
||||||
import server.MapleItemInformationProvider;
|
import server.ItemInformationProvider;
|
||||||
import tools.PacketCreator;
|
import tools.PacketCreator;
|
||||||
|
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
@@ -58,7 +58,7 @@ public final class ScrollHandler extends AbstractPacketHandler {
|
|||||||
whiteScroll = true;
|
whiteScroll = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
MapleItemInformationProvider ii = MapleItemInformationProvider.getInstance();
|
ItemInformationProvider ii = ItemInformationProvider.getInstance();
|
||||||
Character chr = c.getPlayer();
|
Character chr = c.getPlayer();
|
||||||
Equip toScroll = (Equip) chr.getInventory(InventoryType.EQUIPPED).getItem(dst);
|
Equip toScroll = (Equip) chr.getInventory(InventoryType.EQUIPPED).getItem(dst);
|
||||||
Skill LegendarySpirit = SkillFactory.getSkill(1003);
|
Skill LegendarySpirit = SkillFactory.getSkill(1003);
|
||||||
|
|||||||
@@ -31,7 +31,7 @@ import client.inventory.Item;
|
|||||||
import client.inventory.manipulator.InventoryManipulator;
|
import client.inventory.manipulator.InventoryManipulator;
|
||||||
import net.AbstractPacketHandler;
|
import net.AbstractPacketHandler;
|
||||||
import net.packet.InPacket;
|
import net.packet.InPacket;
|
||||||
import server.MapleItemInformationProvider;
|
import server.ItemInformationProvider;
|
||||||
import tools.PacketCreator;
|
import tools.PacketCreator;
|
||||||
|
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
@@ -61,7 +61,7 @@ public final class SkillBookHandler extends AbstractPacketHandler {
|
|||||||
if (toUse == null || toUse.getItemId() != itemId) {
|
if (toUse == null || toUse.getItemId() != itemId) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
Map<String, Integer> skilldata = MapleItemInformationProvider.getInstance().getSkillStats(toUse.getItemId(), c.getPlayer().getJob().getId());
|
Map<String, Integer> skilldata = ItemInformationProvider.getInstance().getSkillStats(toUse.getItemId(), c.getPlayer().getJob().getId());
|
||||||
if (skilldata == null) {
|
if (skilldata == null) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
@@ -82,7 +82,7 @@ public final class SkillBookHandler extends AbstractPacketHandler {
|
|||||||
}
|
}
|
||||||
|
|
||||||
canuse = true;
|
canuse = true;
|
||||||
if (MapleItemInformationProvider.rollSuccessChance(skilldata.get("success"))) {
|
if (ItemInformationProvider.rollSuccessChance(skilldata.get("success"))) {
|
||||||
success = true;
|
success = true;
|
||||||
player.changeSkillLevel(skill2, player.getSkillLevel(skill2), Math.max(skilldata.get("masterLevel"), player.getMasterLevel(skill2)), -1);
|
player.changeSkillLevel(skill2, player.getSkillLevel(skill2), Math.max(skilldata.get("masterLevel"), player.getMasterLevel(skill2)), -1);
|
||||||
} else {
|
} else {
|
||||||
|
|||||||
@@ -32,7 +32,7 @@ import client.inventory.WeaponType;
|
|||||||
import client.status.MonsterStatusEffect;
|
import client.status.MonsterStatusEffect;
|
||||||
import constants.skills.Outlaw;
|
import constants.skills.Outlaw;
|
||||||
import net.packet.InPacket;
|
import net.packet.InPacket;
|
||||||
import server.MapleItemInformationProvider;
|
import server.ItemInformationProvider;
|
||||||
import server.MapleStatEffect;
|
import server.MapleStatEffect;
|
||||||
import server.life.Monster;
|
import server.life.Monster;
|
||||||
import server.life.MonsterInformationProvider;
|
import server.life.MonsterInformationProvider;
|
||||||
@@ -139,7 +139,7 @@ public final class SummonDamageHandler extends AbstractDealDamageHandler {
|
|||||||
|
|
||||||
int maxBaseDmg; // thanks Conrad, Atoot for detecting some summons legitimately hitting over the calculated limit
|
int maxBaseDmg; // thanks Conrad, Atoot for detecting some summons legitimately hitting over the calculated limit
|
||||||
if (weapon_item != null) {
|
if (weapon_item != null) {
|
||||||
maxBaseDmg = player.calculateMaxBaseDamage(watk, MapleItemInformationProvider.getInstance().getWeaponType(weapon_item.getItemId()));
|
maxBaseDmg = player.calculateMaxBaseDamage(watk, ItemInformationProvider.getInstance().getWeaponType(weapon_item.getItemId()));
|
||||||
} else {
|
} else {
|
||||||
maxBaseDmg = player.calculateMaxBaseDamage(watk, WeaponType.SWORD1H);
|
maxBaseDmg = player.calculateMaxBaseDamage(watk, WeaponType.SWORD1H);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -37,7 +37,7 @@ import constants.inventory.ItemConstants;
|
|||||||
import net.AbstractPacketHandler;
|
import net.AbstractPacketHandler;
|
||||||
import net.packet.InPacket;
|
import net.packet.InPacket;
|
||||||
import net.server.Server;
|
import net.server.Server;
|
||||||
import server.MapleItemInformationProvider;
|
import server.ItemInformationProvider;
|
||||||
import server.MapleShop;
|
import server.MapleShop;
|
||||||
import server.MapleShopFactory;
|
import server.MapleShopFactory;
|
||||||
import server.TimerManager;
|
import server.TimerManager;
|
||||||
@@ -64,7 +64,7 @@ public final class UseCashItemHandler extends AbstractPacketHandler {
|
|||||||
}
|
}
|
||||||
player.setLastUsedCashItem(timeNow);
|
player.setLastUsedCashItem(timeNow);
|
||||||
|
|
||||||
MapleItemInformationProvider ii = MapleItemInformationProvider.getInstance();
|
ItemInformationProvider ii = ItemInformationProvider.getInstance();
|
||||||
short position = p.readShort();
|
short position = p.readShort();
|
||||||
int itemId = p.readInt();
|
int itemId = p.readInt();
|
||||||
int itemType = itemId / 10000;
|
int itemType = itemId / 10000;
|
||||||
|
|||||||
@@ -30,7 +30,7 @@ import constants.inventory.ItemConstants;
|
|||||||
import net.AbstractPacketHandler;
|
import net.AbstractPacketHandler;
|
||||||
import net.packet.InPacket;
|
import net.packet.InPacket;
|
||||||
import net.server.Server;
|
import net.server.Server;
|
||||||
import server.MapleItemInformationProvider;
|
import server.ItemInformationProvider;
|
||||||
import server.life.Monster;
|
import server.life.Monster;
|
||||||
import tools.PacketCreator;
|
import tools.PacketCreator;
|
||||||
|
|
||||||
@@ -189,7 +189,7 @@ public final class UseCatchItemHandler extends AbstractPacketHandler {
|
|||||||
default:
|
default:
|
||||||
// proper Fish catch, thanks to Dragohe4rt
|
// proper Fish catch, thanks to Dragohe4rt
|
||||||
|
|
||||||
MapleItemInformationProvider ii = MapleItemInformationProvider.getInstance();
|
ItemInformationProvider ii = ItemInformationProvider.getInstance();
|
||||||
int itemGanho = ii.getCreateItem(itemId);
|
int itemGanho = ii.getCreateItem(itemId);
|
||||||
int mobItem = ii.getMobItem(itemId);
|
int mobItem = ii.getMobItem(itemId);
|
||||||
|
|
||||||
|
|||||||
@@ -31,7 +31,7 @@ import config.YamlConfig;
|
|||||||
import constants.inventory.ItemConstants;
|
import constants.inventory.ItemConstants;
|
||||||
import net.AbstractPacketHandler;
|
import net.AbstractPacketHandler;
|
||||||
import net.packet.InPacket;
|
import net.packet.InPacket;
|
||||||
import server.MapleItemInformationProvider;
|
import server.ItemInformationProvider;
|
||||||
import server.MapleStatEffect;
|
import server.MapleStatEffect;
|
||||||
import tools.PacketCreator;
|
import tools.PacketCreator;
|
||||||
|
|
||||||
@@ -47,7 +47,7 @@ public final class UseItemHandler extends AbstractPacketHandler {
|
|||||||
c.sendPacket(PacketCreator.enableActions());
|
c.sendPacket(PacketCreator.enableActions());
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
MapleItemInformationProvider ii = MapleItemInformationProvider.getInstance();
|
ItemInformationProvider ii = ItemInformationProvider.getInstance();
|
||||||
p.readInt();
|
p.readInt();
|
||||||
short slot = p.readShort();
|
short slot = p.readShort();
|
||||||
int itemId = p.readInt();
|
int itemId = p.readInt();
|
||||||
|
|||||||
@@ -29,7 +29,7 @@ import client.inventory.Item;
|
|||||||
import client.inventory.manipulator.InventoryManipulator;
|
import client.inventory.manipulator.InventoryManipulator;
|
||||||
import net.AbstractPacketHandler;
|
import net.AbstractPacketHandler;
|
||||||
import net.packet.InPacket;
|
import net.packet.InPacket;
|
||||||
import server.MapleItemInformationProvider;
|
import server.ItemInformationProvider;
|
||||||
import tools.PacketCreator;
|
import tools.PacketCreator;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -45,7 +45,7 @@ public final class UseSolomonHandler extends AbstractPacketHandler {
|
|||||||
p.readInt();
|
p.readInt();
|
||||||
short slot = p.readShort();
|
short slot = p.readShort();
|
||||||
int itemId = p.readInt();
|
int itemId = p.readInt();
|
||||||
MapleItemInformationProvider ii = MapleItemInformationProvider.getInstance();
|
ItemInformationProvider ii = ItemInformationProvider.getInstance();
|
||||||
|
|
||||||
if (c.tryacquireClient()) {
|
if (c.tryacquireClient()) {
|
||||||
try {
|
try {
|
||||||
|
|||||||
@@ -27,7 +27,7 @@ import client.inventory.Item;
|
|||||||
import client.inventory.manipulator.InventoryManipulator;
|
import client.inventory.manipulator.InventoryManipulator;
|
||||||
import net.AbstractPacketHandler;
|
import net.AbstractPacketHandler;
|
||||||
import net.packet.InPacket;
|
import net.packet.InPacket;
|
||||||
import server.MapleItemInformationProvider;
|
import server.ItemInformationProvider;
|
||||||
import server.life.LifeFactory;
|
import server.life.LifeFactory;
|
||||||
import tools.PacketCreator;
|
import tools.PacketCreator;
|
||||||
import tools.Randomizer;
|
import tools.Randomizer;
|
||||||
@@ -51,7 +51,7 @@ public final class UseSummonBagHandler extends AbstractPacketHandler {
|
|||||||
Item toUse = c.getPlayer().getInventory(InventoryType.USE).getItem(slot);
|
Item toUse = c.getPlayer().getInventory(InventoryType.USE).getItem(slot);
|
||||||
if (toUse != null && toUse.getQuantity() > 0 && toUse.getItemId() == itemId) {
|
if (toUse != null && toUse.getQuantity() > 0 && toUse.getItemId() == itemId) {
|
||||||
InventoryManipulator.removeFromSlot(c, InventoryType.USE, slot, (short) 1, false);
|
InventoryManipulator.removeFromSlot(c, InventoryType.USE, slot, (short) 1, false);
|
||||||
int[][] toSpawn = MapleItemInformationProvider.getInstance().getSummonMobs(itemId);
|
int[][] toSpawn = ItemInformationProvider.getInstance().getSummonMobs(itemId);
|
||||||
for (int[] toSpawnChild : toSpawn) {
|
for (int[] toSpawnChild : toSpawn) {
|
||||||
if (Randomizer.nextInt(100) < toSpawnChild[1]) {
|
if (Randomizer.nextInt(100) < toSpawnChild[1]) {
|
||||||
c.getPlayer().getMap().spawnMonsterOnGroundBelow(LifeFactory.getMonster(toSpawnChild[0]), c.getPlayer().getPosition());
|
c.getPlayer().getMap().spawnMonsterOnGroundBelow(LifeFactory.getMonster(toSpawnChild[0]), c.getPlayer().getPosition());
|
||||||
|
|||||||
@@ -36,7 +36,7 @@ import net.server.world.PartyCharacter;
|
|||||||
import scripting.event.EventInstanceManager;
|
import scripting.event.EventInstanceManager;
|
||||||
import scripting.event.EventManager;
|
import scripting.event.EventManager;
|
||||||
import scripting.npc.NPCScriptManager;
|
import scripting.npc.NPCScriptManager;
|
||||||
import server.MapleItemInformationProvider;
|
import server.ItemInformationProvider;
|
||||||
import server.MapleMarriage;
|
import server.MapleMarriage;
|
||||||
import server.expeditions.Expedition;
|
import server.expeditions.Expedition;
|
||||||
import server.expeditions.ExpeditionBossLog;
|
import server.expeditions.ExpeditionBossLog;
|
||||||
@@ -581,7 +581,7 @@ public class AbstractPlayerInteraction {
|
|||||||
evolved.setStance(0);
|
evolved.setStance(0);
|
||||||
evolved.setSummoned(true);
|
evolved.setSummoned(true);
|
||||||
|
|
||||||
evolved.setName(from.getName().compareTo(MapleItemInformationProvider.getInstance().getName(from.getItemId())) != 0 ? from.getName() : MapleItemInformationProvider.getInstance().getName(id));
|
evolved.setName(from.getName().compareTo(ItemInformationProvider.getInstance().getName(from.getItemId())) != 0 ? from.getName() : ItemInformationProvider.getInstance().getName(id));
|
||||||
evolved.setCloseness(from.getCloseness());
|
evolved.setCloseness(from.getCloseness());
|
||||||
evolved.setFullness(from.getFullness());
|
evolved.setFullness(from.getFullness());
|
||||||
evolved.setLevel(from.getLevel());
|
evolved.setLevel(from.getLevel());
|
||||||
@@ -592,7 +592,7 @@ public class AbstractPlayerInteraction {
|
|||||||
//InventoryManipulator.addById(c, id, (short) 1, null, petId, expires == -1 ? -1 : System.currentTimeMillis() + expires);
|
//InventoryManipulator.addById(c, id, (short) 1, null, petId, expires == -1 ? -1 : System.currentTimeMillis() + expires);
|
||||||
}
|
}
|
||||||
|
|
||||||
MapleItemInformationProvider ii = MapleItemInformationProvider.getInstance();
|
ItemInformationProvider ii = ItemInformationProvider.getInstance();
|
||||||
|
|
||||||
if (ItemConstants.getInventoryType(id).equals(InventoryType.EQUIP)) {
|
if (ItemConstants.getInventoryType(id).equals(InventoryType.EQUIP)) {
|
||||||
item = ii.getEquipById(id);
|
item = ii.getEquipById(id);
|
||||||
@@ -608,7 +608,7 @@ public class AbstractPlayerInteraction {
|
|||||||
if(!(c.getPlayer().isGM() && YamlConfig.config.server.USE_PERFECT_GM_SCROLL)) {
|
if(!(c.getPlayer().isGM() && YamlConfig.config.server.USE_PERFECT_GM_SCROLL)) {
|
||||||
eqp.setUpgradeSlots((byte)(eqp.getUpgradeSlots() + 1));
|
eqp.setUpgradeSlots((byte)(eqp.getUpgradeSlots() + 1));
|
||||||
}
|
}
|
||||||
item = MapleItemInformationProvider.getInstance().scrollEquipWithId(item, 2049100, true, 2049100, c.getPlayer().isGM());
|
item = ItemInformationProvider.getInstance().scrollEquipWithId(item, 2049100, true, 2049100, c.getPlayer().isGM());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
@@ -904,12 +904,12 @@ public class AbstractPlayerInteraction {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public void useItem(int id) {
|
public void useItem(int id) {
|
||||||
MapleItemInformationProvider.getInstance().getItemEffect(id).applyTo(c.getPlayer());
|
ItemInformationProvider.getInstance().getItemEffect(id).applyTo(c.getPlayer());
|
||||||
c.sendPacket(PacketCreator.getItemMessage(id));//Useful shet :3
|
c.sendPacket(PacketCreator.getItemMessage(id));//Useful shet :3
|
||||||
}
|
}
|
||||||
|
|
||||||
public void cancelItem(final int id) {
|
public void cancelItem(final int id) {
|
||||||
getPlayer().cancelEffect(MapleItemInformationProvider.getInstance().getItemEffect(id), false, -1);
|
getPlayer().cancelEffect(ItemInformationProvider.getInstance().getItemEffect(id), false, -1);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void teachSkill(int skillid, byte level, byte masterLevel, long expiration) {
|
public void teachSkill(int skillid, byte level, byte masterLevel, long expiration) {
|
||||||
@@ -941,7 +941,7 @@ public class AbstractPlayerInteraction {
|
|||||||
if (old != null) {
|
if (old != null) {
|
||||||
InventoryManipulator.removeFromSlot(c, InventoryType.EQUIPPED, slot, old.getQuantity(), false, false);
|
InventoryManipulator.removeFromSlot(c, InventoryType.EQUIPPED, slot, old.getQuantity(), false, false);
|
||||||
}
|
}
|
||||||
final Item newItem = MapleItemInformationProvider.getInstance().getEquipById(itemid);
|
final Item newItem = ItemInformationProvider.getInstance().getEquipById(itemid);
|
||||||
newItem.setPosition(slot);
|
newItem.setPosition(slot);
|
||||||
c.getPlayer().getInventory(InventoryType.EQUIPPED).addItemFromDB(newItem);
|
c.getPlayer().getInventory(InventoryType.EQUIPPED).addItemFromDB(newItem);
|
||||||
c.sendPacket(PacketCreator.modifyInventory(false, Collections.singletonList(new ModifyInventory(0, newItem))));
|
c.sendPacket(PacketCreator.modifyInventory(false, Collections.singletonList(new ModifyInventory(0, newItem))));
|
||||||
|
|||||||
@@ -36,7 +36,7 @@ import net.server.world.Party;
|
|||||||
import net.server.world.PartyCharacter;
|
import net.server.world.PartyCharacter;
|
||||||
import scripting.AbstractPlayerInteraction;
|
import scripting.AbstractPlayerInteraction;
|
||||||
import scripting.event.scheduler.EventScriptScheduler;
|
import scripting.event.scheduler.EventScriptScheduler;
|
||||||
import server.MapleItemInformationProvider;
|
import server.ItemInformationProvider;
|
||||||
import server.MapleStatEffect;
|
import server.MapleStatEffect;
|
||||||
import server.ThreadManager;
|
import server.ThreadManager;
|
||||||
import server.TimerManager;
|
import server.TimerManager;
|
||||||
@@ -144,7 +144,7 @@ public class EventInstanceManager {
|
|||||||
|
|
||||||
public void applyEventPlayersItemBuff(int itemId) {
|
public void applyEventPlayersItemBuff(int itemId) {
|
||||||
List<Character> players = getPlayerList();
|
List<Character> players = getPlayerList();
|
||||||
MapleStatEffect mse = MapleItemInformationProvider.getInstance().getItemEffect(itemId);
|
MapleStatEffect mse = ItemInformationProvider.getInstance().getItemEffect(itemId);
|
||||||
|
|
||||||
if(mse != null) {
|
if(mse != null) {
|
||||||
for (Character player: players) {
|
for (Character player: players) {
|
||||||
|
|||||||
@@ -23,7 +23,7 @@ package scripting.item;
|
|||||||
|
|
||||||
import client.Client;
|
import client.Client;
|
||||||
import scripting.npc.NPCScriptManager;
|
import scripting.npc.NPCScriptManager;
|
||||||
import server.MapleItemInformationProvider.ScriptedItem;
|
import server.ItemInformationProvider.ScriptedItem;
|
||||||
|
|
||||||
public class ItemScriptManager {
|
public class ItemScriptManager {
|
||||||
|
|
||||||
|
|||||||
@@ -365,7 +365,7 @@ public class NPCConversationManager extends AbstractPlayerInteraction {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public MapleStatEffect getItemEffect(int itemId) {
|
public MapleStatEffect getItemEffect(int itemId) {
|
||||||
return MapleItemInformationProvider.getInstance().getItemEffect(itemId);
|
return ItemInformationProvider.getInstance().getItemEffect(itemId);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void resetStats() {
|
public void resetStats() {
|
||||||
@@ -532,7 +532,7 @@ public class NPCConversationManager extends AbstractPlayerInteraction {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public boolean itemExists(int itemid) {
|
public boolean itemExists(int itemid) {
|
||||||
return MapleItemInformationProvider.getInstance().getName(itemid) != null;
|
return ItemInformationProvider.getInstance().getName(itemid) != null;
|
||||||
}
|
}
|
||||||
|
|
||||||
public int getCosmeticItem(int itemid) {
|
public int getCosmeticItem(int itemid) {
|
||||||
@@ -567,18 +567,18 @@ public class NPCConversationManager extends AbstractPlayerInteraction {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public Object[] getAvailableMasteryBooks() {
|
public Object[] getAvailableMasteryBooks() {
|
||||||
return MapleItemInformationProvider.getInstance().usableMasteryBooks(this.getPlayer()).toArray();
|
return ItemInformationProvider.getInstance().usableMasteryBooks(this.getPlayer()).toArray();
|
||||||
}
|
}
|
||||||
|
|
||||||
public Object[] getAvailableSkillBooks() {
|
public Object[] getAvailableSkillBooks() {
|
||||||
List<Integer> ret = MapleItemInformationProvider.getInstance().usableSkillBooks(this.getPlayer());
|
List<Integer> ret = ItemInformationProvider.getInstance().usableSkillBooks(this.getPlayer());
|
||||||
ret.addAll(MapleSkillbookInformationProvider.getTeachableSkills(this.getPlayer()));
|
ret.addAll(MapleSkillbookInformationProvider.getTeachableSkills(this.getPlayer()));
|
||||||
|
|
||||||
return ret.toArray();
|
return ret.toArray();
|
||||||
}
|
}
|
||||||
|
|
||||||
public Object[] getNamesWhoDropsItem(Integer itemId) {
|
public Object[] getNamesWhoDropsItem(Integer itemId) {
|
||||||
return MapleItemInformationProvider.getInstance().getWhoDrops(itemId).toArray();
|
return ItemInformationProvider.getInstance().getWhoDrops(itemId).toArray();
|
||||||
}
|
}
|
||||||
|
|
||||||
public String getSkillBookInfo(int itemid) {
|
public String getSkillBookInfo(int itemid) {
|
||||||
|
|||||||
@@ -25,7 +25,7 @@ import client.Character;
|
|||||||
import client.Client;
|
import client.Client;
|
||||||
import net.server.world.PartyCharacter;
|
import net.server.world.PartyCharacter;
|
||||||
import scripting.AbstractScriptManager;
|
import scripting.AbstractScriptManager;
|
||||||
import server.MapleItemInformationProvider.ScriptedItem;
|
import server.ItemInformationProvider.ScriptedItem;
|
||||||
import tools.FilePrinter;
|
import tools.FilePrinter;
|
||||||
import tools.PacketCreator;
|
import tools.PacketCreator;
|
||||||
|
|
||||||
|
|||||||
@@ -23,7 +23,7 @@ package scripting.quest;
|
|||||||
|
|
||||||
import client.Client;
|
import client.Client;
|
||||||
import scripting.npc.NPCConversationManager;
|
import scripting.npc.NPCConversationManager;
|
||||||
import server.MapleItemInformationProvider;
|
import server.ItemInformationProvider;
|
||||||
import server.quest.Quest;
|
import server.quest.Quest;
|
||||||
import server.quest.actions.ExpAction;
|
import server.quest.actions.ExpAction;
|
||||||
import server.quest.actions.MesoAction;
|
import server.quest.actions.MesoAction;
|
||||||
@@ -85,6 +85,6 @@ public class QuestActionManager extends NPCConversationManager {
|
|||||||
|
|
||||||
public String getMedalName() { // usable only for medal quests (id 299XX)
|
public String getMedalName() { // usable only for medal quests (id 299XX)
|
||||||
Quest q = Quest.getInstance(quest);
|
Quest q = Quest.getInstance(quest);
|
||||||
return MapleItemInformationProvider.getInstance().getName(q.getMedalRequirement());
|
return ItemInformationProvider.getInstance().getName(q.getMedalRequirement());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -29,7 +29,7 @@ import client.inventory.Item;
|
|||||||
import config.YamlConfig;
|
import config.YamlConfig;
|
||||||
import constants.inventory.ItemConstants;
|
import constants.inventory.ItemConstants;
|
||||||
import scripting.AbstractPlayerInteraction;
|
import scripting.AbstractPlayerInteraction;
|
||||||
import server.MapleItemInformationProvider;
|
import server.ItemInformationProvider;
|
||||||
import server.TimerManager;
|
import server.TimerManager;
|
||||||
import server.life.LifeFactory;
|
import server.life.LifeFactory;
|
||||||
import server.life.Monster;
|
import server.life.Monster;
|
||||||
@@ -72,7 +72,7 @@ public class ReactorActionManager extends AbstractPlayerInteraction {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private static void sortDropEntries(List<ReactorDropEntry> from, List<ReactorDropEntry> item, List<ReactorDropEntry> visibleQuest, List<ReactorDropEntry> otherQuest, Character chr) {
|
private static void sortDropEntries(List<ReactorDropEntry> from, List<ReactorDropEntry> item, List<ReactorDropEntry> visibleQuest, List<ReactorDropEntry> otherQuest, Character chr) {
|
||||||
MapleItemInformationProvider ii = MapleItemInformationProvider.getInstance();
|
ItemInformationProvider ii = ItemInformationProvider.getInstance();
|
||||||
|
|
||||||
for(ReactorDropEntry mde : from) {
|
for(ReactorDropEntry mde : from) {
|
||||||
if(!ii.isQuestItem(mde.itemId)) {
|
if(!ii.isQuestItem(mde.itemId)) {
|
||||||
@@ -160,7 +160,7 @@ public class ReactorActionManager extends AbstractPlayerInteraction {
|
|||||||
final Point dropPos = new Point(posX, posY);
|
final Point dropPos = new Point(posX, posY);
|
||||||
|
|
||||||
if(!delayed) {
|
if(!delayed) {
|
||||||
MapleItemInformationProvider ii = MapleItemInformationProvider.getInstance();
|
ItemInformationProvider ii = ItemInformationProvider.getInstance();
|
||||||
|
|
||||||
byte p = 1;
|
byte p = 1;
|
||||||
for (ReactorDropEntry d : items) {
|
for (ReactorDropEntry d : items) {
|
||||||
@@ -209,7 +209,7 @@ public class ReactorActionManager extends AbstractPlayerInteraction {
|
|||||||
if (ItemConstants.getInventoryType(d.itemId) != InventoryType.EQUIP) {
|
if (ItemConstants.getInventoryType(d.itemId) != InventoryType.EQUIP) {
|
||||||
drop = new Item(d.itemId, (short) 0, (short) 1);
|
drop = new Item(d.itemId, (short) 0, (short) 1);
|
||||||
} else {
|
} else {
|
||||||
MapleItemInformationProvider ii = MapleItemInformationProvider.getInstance();
|
ItemInformationProvider ii = ItemInformationProvider.getInstance();
|
||||||
drop = ii.randomizeStats((Equip) ii.getEquipById(d.itemId));
|
drop = ii.randomizeStats((Equip) ii.getEquipById(d.itemId));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -91,7 +91,7 @@ public class CashShop {
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (ItemConstants.getInventoryType(itemId).equals(InventoryType.EQUIP)) {
|
if (ItemConstants.getInventoryType(itemId).equals(InventoryType.EQUIP)) {
|
||||||
item = MapleItemInformationProvider.getInstance().getEquipById(itemId);
|
item = ItemInformationProvider.getInstance().getEquipById(itemId);
|
||||||
} else {
|
} else {
|
||||||
item = new Item(itemId, (byte) 0, count, petid);
|
item = new Item(itemId, (byte) 0, count, petid);
|
||||||
}
|
}
|
||||||
|
|||||||
+304
-173
@@ -47,14 +47,12 @@ import java.util.*;
|
|||||||
import java.util.Map.Entry;
|
import java.util.Map.Entry;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
*
|
|
||||||
* @author Matze
|
* @author Matze
|
||||||
*
|
|
||||||
*/
|
*/
|
||||||
public class MapleItemInformationProvider {
|
public class ItemInformationProvider {
|
||||||
private final static MapleItemInformationProvider instance = new MapleItemInformationProvider();
|
private final static ItemInformationProvider instance = new ItemInformationProvider();
|
||||||
|
|
||||||
public static MapleItemInformationProvider getInstance() {
|
public static ItemInformationProvider getInstance() {
|
||||||
return instance;
|
return instance;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -115,7 +113,7 @@ public class MapleItemInformationProvider {
|
|||||||
protected Map<Integer, Pair<Integer, Set<Integer>>> cashPetFoodCache = new HashMap<>();
|
protected Map<Integer, Pair<Integer, Set<Integer>>> cashPetFoodCache = new HashMap<>();
|
||||||
protected Map<Integer, QuestConsItem> questItemConsCache = new HashMap<>();
|
protected Map<Integer, QuestConsItem> questItemConsCache = new HashMap<>();
|
||||||
|
|
||||||
private MapleItemInformationProvider() {
|
private ItemInformationProvider() {
|
||||||
loadCardIdData();
|
loadCardIdData();
|
||||||
itemData = DataProviderFactory.getDataProvider(WZFiles.ITEM);
|
itemData = DataProviderFactory.getDataProvider(WZFiles.ITEM);
|
||||||
equipData = DataProviderFactory.getDataProvider(WZFiles.CHARACTER);
|
equipData = DataProviderFactory.getDataProvider(WZFiles.CHARACTER);
|
||||||
@@ -270,7 +268,7 @@ public class MapleItemInformationProvider {
|
|||||||
|
|
||||||
private Data getItemData(int itemId) {
|
private Data getItemData(int itemId) {
|
||||||
Data ret = null;
|
Data ret = null;
|
||||||
String idStr = "0" + String.valueOf(itemId);
|
String idStr = "0" + itemId;
|
||||||
DataDirectoryEntry root = itemData.getRoot();
|
DataDirectoryEntry root = itemData.getRoot();
|
||||||
for (DataDirectoryEntry topDir : root.getSubdirectories()) {
|
for (DataDirectoryEntry topDir : root.getSubdirectories()) {
|
||||||
for (DataFileEntry iFile : topDir.getFiles()) {
|
for (DataFileEntry iFile : topDir.getFiles()) {
|
||||||
@@ -300,16 +298,15 @@ public class MapleItemInformationProvider {
|
|||||||
public List<Integer> getItemIdsInRange(int minId, int maxId, boolean ignoreCashItem) {
|
public List<Integer> getItemIdsInRange(int minId, int maxId, boolean ignoreCashItem) {
|
||||||
List<Integer> list = new ArrayList<>();
|
List<Integer> list = new ArrayList<>();
|
||||||
|
|
||||||
if(ignoreCashItem) {
|
if (ignoreCashItem) {
|
||||||
for(int i = minId; i <= maxId; i++) {
|
for (int i = minId; i <= maxId; i++) {
|
||||||
if(getItemData(i) != null && !isCash(i)) {
|
if (getItemData(i) != null && !isCash(i)) {
|
||||||
list.add(i);
|
list.add(i);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
} else {
|
||||||
else {
|
for (int i = minId; i <= maxId; i++) {
|
||||||
for(int i = minId; i <= maxId; i++) {
|
if (getItemData(i) != null) {
|
||||||
if(getItemData(i) != null) {
|
|
||||||
list.add(i);
|
list.add(i);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -324,7 +321,7 @@ public class MapleItemInformationProvider {
|
|||||||
|
|
||||||
// thanks GMChuck for detecting player sensitive data being cached into getSlotMax
|
// thanks GMChuck for detecting player sensitive data being cached into getSlotMax
|
||||||
if (ItemConstants.isThrowingStar(itemId)) {
|
if (ItemConstants.isThrowingStar(itemId)) {
|
||||||
if(c.getPlayer().getJob().isA(Job.NIGHTWALKER1)) {
|
if (c.getPlayer().getJob().isA(Job.NIGHTWALKER1)) {
|
||||||
ret += c.getPlayer().getSkillLevel(SkillFactory.getSkill(NightWalker.CLAW_MASTERY)) * 10;
|
ret += c.getPlayer().getSkillLevel(SkillFactory.getSkill(NightWalker.CLAW_MASTERY)) * 10;
|
||||||
} else {
|
} else {
|
||||||
ret += c.getPlayer().getSkillLevel(SkillFactory.getSkill(Assassin.CLAW_MASTERY)) * 10;
|
ret += c.getPlayer().getSkillLevel(SkillFactory.getSkill(Assassin.CLAW_MASTERY)) * 10;
|
||||||
@@ -339,7 +336,7 @@ public class MapleItemInformationProvider {
|
|||||||
public short getSlotMax(Client c, int itemId) {
|
public short getSlotMax(Client c, int itemId) {
|
||||||
Short slotMax = slotMaxCache.get(itemId);
|
Short slotMax = slotMaxCache.get(itemId);
|
||||||
if (slotMax != null) {
|
if (slotMax != null) {
|
||||||
return (short)(slotMax + getExtraSlotMaxFromPlayer(c, itemId));
|
return (short) (slotMax + getExtraSlotMaxFromPlayer(c, itemId));
|
||||||
}
|
}
|
||||||
short ret = 0;
|
short ret = 0;
|
||||||
Data item = getItemData(itemId);
|
Data item = getItemData(itemId);
|
||||||
@@ -357,7 +354,7 @@ public class MapleItemInformationProvider {
|
|||||||
}
|
}
|
||||||
|
|
||||||
slotMaxCache.put(itemId, ret);
|
slotMaxCache.put(itemId, ret);
|
||||||
return (short)(ret + getExtraSlotMaxFromPlayer(c, itemId));
|
return (short) (ret + getExtraSlotMaxFromPlayer(c, itemId));
|
||||||
}
|
}
|
||||||
|
|
||||||
public int getMeso(int itemId) {
|
public int getMeso(int itemId) {
|
||||||
@@ -381,7 +378,9 @@ public class MapleItemInformationProvider {
|
|||||||
private static double getRoundedUnitPrice(double unitPrice, int max) {
|
private static double getRoundedUnitPrice(double unitPrice, int max) {
|
||||||
double intPart = Math.floor(unitPrice);
|
double intPart = Math.floor(unitPrice);
|
||||||
double fractPart = unitPrice - intPart;
|
double fractPart = unitPrice - intPart;
|
||||||
if(fractPart == 0.0) return intPart;
|
if (fractPart == 0.0) {
|
||||||
|
return intPart;
|
||||||
|
}
|
||||||
|
|
||||||
double fractMask = 0.0;
|
double fractMask = 0.0;
|
||||||
double lastFract, curFract = 1.0;
|
double lastFract, curFract = 1.0;
|
||||||
@@ -391,22 +390,22 @@ public class MapleItemInformationProvider {
|
|||||||
lastFract = curFract;
|
lastFract = curFract;
|
||||||
curFract /= 2;
|
curFract /= 2;
|
||||||
|
|
||||||
if(fractPart == curFract) {
|
if (fractPart == curFract) {
|
||||||
break;
|
break;
|
||||||
} else if(fractPart > curFract) {
|
} else if (fractPart > curFract) {
|
||||||
fractMask += curFract;
|
fractMask += curFract;
|
||||||
fractPart -= curFract;
|
fractPart -= curFract;
|
||||||
}
|
}
|
||||||
|
|
||||||
i++;
|
i++;
|
||||||
} while(i <= max);
|
} while (i <= max);
|
||||||
|
|
||||||
if(i > max) {
|
if (i > max) {
|
||||||
lastFract = curFract;
|
lastFract = curFract;
|
||||||
curFract = 0.0;
|
curFract = 0.0;
|
||||||
}
|
}
|
||||||
|
|
||||||
if(Math.abs(fractPart - curFract) < Math.abs(fractPart - lastFract)) {
|
if (Math.abs(fractPart - curFract) < Math.abs(fractPart - lastFract)) {
|
||||||
return intPart + fractMask + curFract;
|
return intPart + fractMask + curFract;
|
||||||
} else {
|
} else {
|
||||||
return intPart + fractMask + lastFract;
|
return intPart + fractMask + lastFract;
|
||||||
@@ -433,7 +432,7 @@ public class MapleItemInformationProvider {
|
|||||||
try {
|
try {
|
||||||
fEntry = getRoundedUnitPrice(DataTool.getDouble(pData), 5);
|
fEntry = getRoundedUnitPrice(DataTool.getDouble(pData), 5);
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
fEntry = (double) DataTool.getInt(pData);
|
fEntry = DataTool.getInt(pData);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -460,11 +459,11 @@ public class MapleItemInformationProvider {
|
|||||||
|
|
||||||
public int getPrice(int itemId, int quantity) {
|
public int getPrice(int itemId, int quantity) {
|
||||||
int retPrice = getWholePrice(itemId);
|
int retPrice = getWholePrice(itemId);
|
||||||
if(retPrice == -1) {
|
if (retPrice == -1) {
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
if(!ItemConstants.isRechargeable(itemId)) {
|
if (!ItemConstants.isRechargeable(itemId)) {
|
||||||
retPrice *= quantity;
|
retPrice *= quantity;
|
||||||
} else {
|
} else {
|
||||||
retPrice += Math.ceil(quantity * getUnitPrice(itemId));
|
retPrice += Math.ceil(quantity * getUnitPrice(itemId));
|
||||||
@@ -619,74 +618,116 @@ public class MapleItemInformationProvider {
|
|||||||
// option: watk, matk, wdef, mdef, spd, jump, hp, mp
|
// option: watk, matk, wdef, mdef, spd, jump, hp, mp
|
||||||
// stat: dex, luk, str, int, avoid, acc
|
// stat: dex, luk, str, int, avoid, acc
|
||||||
|
|
||||||
if(!option) {
|
if (!option) {
|
||||||
if (nEquip.getStr() > 0) {
|
if (nEquip.getStr() > 0) {
|
||||||
if(YamlConfig.config.server.USE_ENHANCED_CHSCROLL) nEquip.setStr(getMaximumShortMaxIfOverflow(nEquip.getStr(), (nEquip.getStr() + chscrollRandomizedStat(range))));
|
if (YamlConfig.config.server.USE_ENHANCED_CHSCROLL) {
|
||||||
else nEquip.setStr(getMaximumShortMaxIfOverflow(0, (nEquip.getStr() + chscrollRandomizedStat(range))));
|
nEquip.setStr(getMaximumShortMaxIfOverflow(nEquip.getStr(), (nEquip.getStr() + chscrollRandomizedStat(range))));
|
||||||
|
} else {
|
||||||
|
nEquip.setStr(getMaximumShortMaxIfOverflow(0, (nEquip.getStr() + chscrollRandomizedStat(range))));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
if (nEquip.getDex() > 0) {
|
if (nEquip.getDex() > 0) {
|
||||||
if(YamlConfig.config.server.USE_ENHANCED_CHSCROLL) nEquip.setDex(getMaximumShortMaxIfOverflow(nEquip.getDex(), (nEquip.getDex() + chscrollRandomizedStat(range))));
|
if (YamlConfig.config.server.USE_ENHANCED_CHSCROLL) {
|
||||||
else nEquip.setDex(getMaximumShortMaxIfOverflow(0, (nEquip.getDex() + chscrollRandomizedStat(range))));
|
nEquip.setDex(getMaximumShortMaxIfOverflow(nEquip.getDex(), (nEquip.getDex() + chscrollRandomizedStat(range))));
|
||||||
|
} else {
|
||||||
|
nEquip.setDex(getMaximumShortMaxIfOverflow(0, (nEquip.getDex() + chscrollRandomizedStat(range))));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
if (nEquip.getInt() > 0) {
|
if (nEquip.getInt() > 0) {
|
||||||
if(YamlConfig.config.server.USE_ENHANCED_CHSCROLL) nEquip.setInt(getMaximumShortMaxIfOverflow(nEquip.getInt(), (nEquip.getInt() + chscrollRandomizedStat(range))));
|
if (YamlConfig.config.server.USE_ENHANCED_CHSCROLL) {
|
||||||
else nEquip.setInt(getMaximumShortMaxIfOverflow(0, (nEquip.getInt() + chscrollRandomizedStat(range))));
|
nEquip.setInt(getMaximumShortMaxIfOverflow(nEquip.getInt(), (nEquip.getInt() + chscrollRandomizedStat(range))));
|
||||||
|
} else {
|
||||||
|
nEquip.setInt(getMaximumShortMaxIfOverflow(0, (nEquip.getInt() + chscrollRandomizedStat(range))));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
if (nEquip.getLuk() > 0) {
|
if (nEquip.getLuk() > 0) {
|
||||||
if(YamlConfig.config.server.USE_ENHANCED_CHSCROLL) nEquip.setLuk(getMaximumShortMaxIfOverflow(nEquip.getLuk(), (nEquip.getLuk() + chscrollRandomizedStat(range))));
|
if (YamlConfig.config.server.USE_ENHANCED_CHSCROLL) {
|
||||||
else nEquip.setLuk(getMaximumShortMaxIfOverflow(0, (nEquip.getLuk() + chscrollRandomizedStat(range))));
|
nEquip.setLuk(getMaximumShortMaxIfOverflow(nEquip.getLuk(), (nEquip.getLuk() + chscrollRandomizedStat(range))));
|
||||||
|
} else {
|
||||||
|
nEquip.setLuk(getMaximumShortMaxIfOverflow(0, (nEquip.getLuk() + chscrollRandomizedStat(range))));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
if (nEquip.getAcc() > 0) {
|
if (nEquip.getAcc() > 0) {
|
||||||
if(YamlConfig.config.server.USE_ENHANCED_CHSCROLL) nEquip.setAcc(getMaximumShortMaxIfOverflow(nEquip.getAcc(), (nEquip.getAcc() + chscrollRandomizedStat(range))));
|
if (YamlConfig.config.server.USE_ENHANCED_CHSCROLL) {
|
||||||
else nEquip.setAcc(getMaximumShortMaxIfOverflow(0, (nEquip.getAcc() + chscrollRandomizedStat(range))));
|
nEquip.setAcc(getMaximumShortMaxIfOverflow(nEquip.getAcc(), (nEquip.getAcc() + chscrollRandomizedStat(range))));
|
||||||
|
} else {
|
||||||
|
nEquip.setAcc(getMaximumShortMaxIfOverflow(0, (nEquip.getAcc() + chscrollRandomizedStat(range))));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
if (nEquip.getAvoid() > 0) {
|
if (nEquip.getAvoid() > 0) {
|
||||||
if(YamlConfig.config.server.USE_ENHANCED_CHSCROLL) nEquip.setAvoid(getMaximumShortMaxIfOverflow(nEquip.getAvoid(), (nEquip.getAvoid() + chscrollRandomizedStat(range))));
|
if (YamlConfig.config.server.USE_ENHANCED_CHSCROLL) {
|
||||||
else nEquip.setAvoid(getMaximumShortMaxIfOverflow(0, (nEquip.getAvoid() + chscrollRandomizedStat(range))));
|
nEquip.setAvoid(getMaximumShortMaxIfOverflow(nEquip.getAvoid(), (nEquip.getAvoid() + chscrollRandomizedStat(range))));
|
||||||
|
} else {
|
||||||
|
nEquip.setAvoid(getMaximumShortMaxIfOverflow(0, (nEquip.getAvoid() + chscrollRandomizedStat(range))));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
if (nEquip.getWatk() > 0) {
|
if (nEquip.getWatk() > 0) {
|
||||||
if(YamlConfig.config.server.USE_ENHANCED_CHSCROLL) nEquip.setWatk(getMaximumShortMaxIfOverflow(nEquip.getWatk(), (nEquip.getWatk() + chscrollRandomizedStat(range))));
|
if (YamlConfig.config.server.USE_ENHANCED_CHSCROLL) {
|
||||||
else nEquip.setWatk(getMaximumShortMaxIfOverflow(0, (nEquip.getWatk() + chscrollRandomizedStat(range))));
|
nEquip.setWatk(getMaximumShortMaxIfOverflow(nEquip.getWatk(), (nEquip.getWatk() + chscrollRandomizedStat(range))));
|
||||||
|
} else {
|
||||||
|
nEquip.setWatk(getMaximumShortMaxIfOverflow(0, (nEquip.getWatk() + chscrollRandomizedStat(range))));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
if (nEquip.getWdef() > 0) {
|
if (nEquip.getWdef() > 0) {
|
||||||
if(YamlConfig.config.server.USE_ENHANCED_CHSCROLL) nEquip.setWdef(getMaximumShortMaxIfOverflow(nEquip.getWdef(), (nEquip.getWdef() + chscrollRandomizedStat(range))));
|
if (YamlConfig.config.server.USE_ENHANCED_CHSCROLL) {
|
||||||
else nEquip.setWdef(getMaximumShortMaxIfOverflow(0, (nEquip.getWdef() + chscrollRandomizedStat(range))));
|
nEquip.setWdef(getMaximumShortMaxIfOverflow(nEquip.getWdef(), (nEquip.getWdef() + chscrollRandomizedStat(range))));
|
||||||
|
} else {
|
||||||
|
nEquip.setWdef(getMaximumShortMaxIfOverflow(0, (nEquip.getWdef() + chscrollRandomizedStat(range))));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
if (nEquip.getMatk() > 0) {
|
if (nEquip.getMatk() > 0) {
|
||||||
if(YamlConfig.config.server.USE_ENHANCED_CHSCROLL) nEquip.setMatk(getMaximumShortMaxIfOverflow(nEquip.getMatk(), (nEquip.getMatk() + chscrollRandomizedStat(range))));
|
if (YamlConfig.config.server.USE_ENHANCED_CHSCROLL) {
|
||||||
else nEquip.setMatk(getMaximumShortMaxIfOverflow(0, (nEquip.getMatk() + chscrollRandomizedStat(range))));
|
nEquip.setMatk(getMaximumShortMaxIfOverflow(nEquip.getMatk(), (nEquip.getMatk() + chscrollRandomizedStat(range))));
|
||||||
|
} else {
|
||||||
|
nEquip.setMatk(getMaximumShortMaxIfOverflow(0, (nEquip.getMatk() + chscrollRandomizedStat(range))));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
if (nEquip.getMdef() > 0) {
|
if (nEquip.getMdef() > 0) {
|
||||||
if(YamlConfig.config.server.USE_ENHANCED_CHSCROLL) nEquip.setMdef(getMaximumShortMaxIfOverflow(nEquip.getMdef(), (nEquip.getMdef() + chscrollRandomizedStat(range))));
|
if (YamlConfig.config.server.USE_ENHANCED_CHSCROLL) {
|
||||||
else nEquip.setMdef(getMaximumShortMaxIfOverflow(0, (nEquip.getMdef() + chscrollRandomizedStat(range))));
|
nEquip.setMdef(getMaximumShortMaxIfOverflow(nEquip.getMdef(), (nEquip.getMdef() + chscrollRandomizedStat(range))));
|
||||||
|
} else {
|
||||||
|
nEquip.setMdef(getMaximumShortMaxIfOverflow(0, (nEquip.getMdef() + chscrollRandomizedStat(range))));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (nEquip.getSpeed() > 0) {
|
if (nEquip.getSpeed() > 0) {
|
||||||
if(YamlConfig.config.server.USE_ENHANCED_CHSCROLL) nEquip.setSpeed(getMaximumShortMaxIfOverflow(nEquip.getSpeed(), (nEquip.getSpeed() + chscrollRandomizedStat(range))));
|
if (YamlConfig.config.server.USE_ENHANCED_CHSCROLL) {
|
||||||
else nEquip.setSpeed(getMaximumShortMaxIfOverflow(0, (nEquip.getSpeed() + chscrollRandomizedStat(range))));
|
nEquip.setSpeed(getMaximumShortMaxIfOverflow(nEquip.getSpeed(), (nEquip.getSpeed() + chscrollRandomizedStat(range))));
|
||||||
|
} else {
|
||||||
|
nEquip.setSpeed(getMaximumShortMaxIfOverflow(0, (nEquip.getSpeed() + chscrollRandomizedStat(range))));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
if (nEquip.getJump() > 0) {
|
if (nEquip.getJump() > 0) {
|
||||||
if(YamlConfig.config.server.USE_ENHANCED_CHSCROLL) nEquip.setJump(getMaximumShortMaxIfOverflow(nEquip.getJump(), (nEquip.getJump() + chscrollRandomizedStat(range))));
|
if (YamlConfig.config.server.USE_ENHANCED_CHSCROLL) {
|
||||||
else nEquip.setJump(getMaximumShortMaxIfOverflow(0, (nEquip.getJump() + chscrollRandomizedStat(range))));
|
nEquip.setJump(getMaximumShortMaxIfOverflow(nEquip.getJump(), (nEquip.getJump() + chscrollRandomizedStat(range))));
|
||||||
|
} else {
|
||||||
|
nEquip.setJump(getMaximumShortMaxIfOverflow(0, (nEquip.getJump() + chscrollRandomizedStat(range))));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
if (nEquip.getHp() > 0) {
|
if (nEquip.getHp() > 0) {
|
||||||
if(YamlConfig.config.server.USE_ENHANCED_CHSCROLL) nEquip.setHp(getMaximumShortMaxIfOverflow(nEquip.getHp(), (nEquip.getHp() + chscrollRandomizedStat(range))));
|
if (YamlConfig.config.server.USE_ENHANCED_CHSCROLL) {
|
||||||
else nEquip.setHp(getMaximumShortMaxIfOverflow(0, (nEquip.getHp() + chscrollRandomizedStat(range))));
|
nEquip.setHp(getMaximumShortMaxIfOverflow(nEquip.getHp(), (nEquip.getHp() + chscrollRandomizedStat(range))));
|
||||||
|
} else {
|
||||||
|
nEquip.setHp(getMaximumShortMaxIfOverflow(0, (nEquip.getHp() + chscrollRandomizedStat(range))));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
if (nEquip.getMp() > 0) {
|
if (nEquip.getMp() > 0) {
|
||||||
if(YamlConfig.config.server.USE_ENHANCED_CHSCROLL) nEquip.setMp(getMaximumShortMaxIfOverflow(nEquip.getMp(), (nEquip.getMp() + chscrollRandomizedStat(range))));
|
if (YamlConfig.config.server.USE_ENHANCED_CHSCROLL) {
|
||||||
else nEquip.setMp(getMaximumShortMaxIfOverflow(0, (nEquip.getMp() + chscrollRandomizedStat(range))));
|
nEquip.setMp(getMaximumShortMaxIfOverflow(nEquip.getMp(), (nEquip.getMp() + chscrollRandomizedStat(range))));
|
||||||
|
} else {
|
||||||
|
nEquip.setMp(getMaximumShortMaxIfOverflow(0, (nEquip.getMp() + chscrollRandomizedStat(range))));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private void scrollEquipWithChaos(Equip nEquip, int range) {
|
private void scrollEquipWithChaos(Equip nEquip, int range) {
|
||||||
if(YamlConfig.config.server.CHSCROLL_STAT_RATE > 0) {
|
if (YamlConfig.config.server.CHSCROLL_STAT_RATE > 0) {
|
||||||
int temp;
|
int temp;
|
||||||
short curStr, curDex, curInt, curLuk, curWatk, curWdef, curMatk, curMdef, curAcc, curAvoid, curSpeed, curJump, curHp, curMp;
|
short curStr, curDex, curInt, curLuk, curWatk, curWdef, curMatk, curMdef, curAcc, curAvoid, curSpeed, curJump, curHp, curMp;
|
||||||
|
|
||||||
if(YamlConfig.config.server.USE_ENHANCED_CHSCROLL) {
|
if (YamlConfig.config.server.USE_ENHANCED_CHSCROLL) {
|
||||||
curStr = nEquip.getStr();
|
curStr = nEquip.getStr();
|
||||||
curDex = nEquip.getDex();
|
curDex = nEquip.getDex();
|
||||||
curInt = nEquip.getInt();
|
curInt = nEquip.getInt();
|
||||||
@@ -718,101 +759,143 @@ public class MapleItemInformationProvider {
|
|||||||
curMp = Short.MIN_VALUE;
|
curMp = Short.MIN_VALUE;
|
||||||
}
|
}
|
||||||
|
|
||||||
for(int i = 0; i < YamlConfig.config.server.CHSCROLL_STAT_RATE; i++) {
|
for (int i = 0; i < YamlConfig.config.server.CHSCROLL_STAT_RATE; i++) {
|
||||||
if (nEquip.getStr() > 0) {
|
if (nEquip.getStr() > 0) {
|
||||||
if(YamlConfig.config.server.USE_ENHANCED_CHSCROLL) temp = curStr + chscrollRandomizedStat(range);
|
if (YamlConfig.config.server.USE_ENHANCED_CHSCROLL) {
|
||||||
else temp = nEquip.getStr() + chscrollRandomizedStat(range);
|
temp = curStr + chscrollRandomizedStat(range);
|
||||||
|
} else {
|
||||||
|
temp = nEquip.getStr() + chscrollRandomizedStat(range);
|
||||||
|
}
|
||||||
|
|
||||||
curStr = getMaximumShortMaxIfOverflow(temp, curStr);
|
curStr = getMaximumShortMaxIfOverflow(temp, curStr);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (nEquip.getDex() > 0) {
|
if (nEquip.getDex() > 0) {
|
||||||
if(YamlConfig.config.server.USE_ENHANCED_CHSCROLL) temp = curDex + chscrollRandomizedStat(range);
|
if (YamlConfig.config.server.USE_ENHANCED_CHSCROLL) {
|
||||||
else temp = nEquip.getDex() + chscrollRandomizedStat(range);
|
temp = curDex + chscrollRandomizedStat(range);
|
||||||
|
} else {
|
||||||
|
temp = nEquip.getDex() + chscrollRandomizedStat(range);
|
||||||
|
}
|
||||||
|
|
||||||
curDex = getMaximumShortMaxIfOverflow(temp, curDex);
|
curDex = getMaximumShortMaxIfOverflow(temp, curDex);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (nEquip.getInt() > 0) {
|
if (nEquip.getInt() > 0) {
|
||||||
if(YamlConfig.config.server.USE_ENHANCED_CHSCROLL) temp = curInt + chscrollRandomizedStat(range);
|
if (YamlConfig.config.server.USE_ENHANCED_CHSCROLL) {
|
||||||
else temp = nEquip.getInt() + chscrollRandomizedStat(range);
|
temp = curInt + chscrollRandomizedStat(range);
|
||||||
|
} else {
|
||||||
|
temp = nEquip.getInt() + chscrollRandomizedStat(range);
|
||||||
|
}
|
||||||
|
|
||||||
curInt = getMaximumShortMaxIfOverflow(temp, curInt);
|
curInt = getMaximumShortMaxIfOverflow(temp, curInt);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (nEquip.getLuk() > 0) {
|
if (nEquip.getLuk() > 0) {
|
||||||
if(YamlConfig.config.server.USE_ENHANCED_CHSCROLL) temp = curLuk + chscrollRandomizedStat(range);
|
if (YamlConfig.config.server.USE_ENHANCED_CHSCROLL) {
|
||||||
else temp = nEquip.getLuk() + chscrollRandomizedStat(range);
|
temp = curLuk + chscrollRandomizedStat(range);
|
||||||
|
} else {
|
||||||
|
temp = nEquip.getLuk() + chscrollRandomizedStat(range);
|
||||||
|
}
|
||||||
|
|
||||||
curLuk = getMaximumShortMaxIfOverflow(temp, curLuk);
|
curLuk = getMaximumShortMaxIfOverflow(temp, curLuk);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (nEquip.getWatk() > 0) {
|
if (nEquip.getWatk() > 0) {
|
||||||
if(YamlConfig.config.server.USE_ENHANCED_CHSCROLL) temp = curWatk + chscrollRandomizedStat(range);
|
if (YamlConfig.config.server.USE_ENHANCED_CHSCROLL) {
|
||||||
else temp = nEquip.getWatk() + chscrollRandomizedStat(range);
|
temp = curWatk + chscrollRandomizedStat(range);
|
||||||
|
} else {
|
||||||
|
temp = nEquip.getWatk() + chscrollRandomizedStat(range);
|
||||||
|
}
|
||||||
|
|
||||||
curWatk = getMaximumShortMaxIfOverflow(temp, curWatk);
|
curWatk = getMaximumShortMaxIfOverflow(temp, curWatk);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (nEquip.getWdef() > 0) {
|
if (nEquip.getWdef() > 0) {
|
||||||
if(YamlConfig.config.server.USE_ENHANCED_CHSCROLL) temp = curWdef + chscrollRandomizedStat(range);
|
if (YamlConfig.config.server.USE_ENHANCED_CHSCROLL) {
|
||||||
else temp = nEquip.getWdef() + chscrollRandomizedStat(range);
|
temp = curWdef + chscrollRandomizedStat(range);
|
||||||
|
} else {
|
||||||
|
temp = nEquip.getWdef() + chscrollRandomizedStat(range);
|
||||||
|
}
|
||||||
|
|
||||||
curWdef = getMaximumShortMaxIfOverflow(temp, curWdef);
|
curWdef = getMaximumShortMaxIfOverflow(temp, curWdef);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (nEquip.getMatk() > 0) {
|
if (nEquip.getMatk() > 0) {
|
||||||
if(YamlConfig.config.server.USE_ENHANCED_CHSCROLL) temp = curMatk + chscrollRandomizedStat(range);
|
if (YamlConfig.config.server.USE_ENHANCED_CHSCROLL) {
|
||||||
else temp = nEquip.getMatk() + chscrollRandomizedStat(range);
|
temp = curMatk + chscrollRandomizedStat(range);
|
||||||
|
} else {
|
||||||
|
temp = nEquip.getMatk() + chscrollRandomizedStat(range);
|
||||||
|
}
|
||||||
|
|
||||||
curMatk = getMaximumShortMaxIfOverflow(temp, curMatk);
|
curMatk = getMaximumShortMaxIfOverflow(temp, curMatk);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (nEquip.getMdef() > 0) {
|
if (nEquip.getMdef() > 0) {
|
||||||
if(YamlConfig.config.server.USE_ENHANCED_CHSCROLL) temp = curMdef + chscrollRandomizedStat(range);
|
if (YamlConfig.config.server.USE_ENHANCED_CHSCROLL) {
|
||||||
else temp = nEquip.getMdef() + chscrollRandomizedStat(range);
|
temp = curMdef + chscrollRandomizedStat(range);
|
||||||
|
} else {
|
||||||
|
temp = nEquip.getMdef() + chscrollRandomizedStat(range);
|
||||||
|
}
|
||||||
|
|
||||||
curMdef = getMaximumShortMaxIfOverflow(temp, curMdef);
|
curMdef = getMaximumShortMaxIfOverflow(temp, curMdef);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (nEquip.getAcc() > 0) {
|
if (nEquip.getAcc() > 0) {
|
||||||
if(YamlConfig.config.server.USE_ENHANCED_CHSCROLL) temp = curAcc + chscrollRandomizedStat(range);
|
if (YamlConfig.config.server.USE_ENHANCED_CHSCROLL) {
|
||||||
else temp = nEquip.getAcc() + chscrollRandomizedStat(range);
|
temp = curAcc + chscrollRandomizedStat(range);
|
||||||
|
} else {
|
||||||
|
temp = nEquip.getAcc() + chscrollRandomizedStat(range);
|
||||||
|
}
|
||||||
|
|
||||||
curAcc = getMaximumShortMaxIfOverflow(temp, curAcc);
|
curAcc = getMaximumShortMaxIfOverflow(temp, curAcc);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (nEquip.getAvoid() > 0) {
|
if (nEquip.getAvoid() > 0) {
|
||||||
if(YamlConfig.config.server.USE_ENHANCED_CHSCROLL) temp = curAvoid + chscrollRandomizedStat(range);
|
if (YamlConfig.config.server.USE_ENHANCED_CHSCROLL) {
|
||||||
else temp = nEquip.getAvoid() + chscrollRandomizedStat(range);
|
temp = curAvoid + chscrollRandomizedStat(range);
|
||||||
|
} else {
|
||||||
|
temp = nEquip.getAvoid() + chscrollRandomizedStat(range);
|
||||||
|
}
|
||||||
|
|
||||||
curAvoid = getMaximumShortMaxIfOverflow(temp, curAvoid);
|
curAvoid = getMaximumShortMaxIfOverflow(temp, curAvoid);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (nEquip.getSpeed() > 0) {
|
if (nEquip.getSpeed() > 0) {
|
||||||
if(YamlConfig.config.server.USE_ENHANCED_CHSCROLL) temp = curSpeed + chscrollRandomizedStat(range);
|
if (YamlConfig.config.server.USE_ENHANCED_CHSCROLL) {
|
||||||
else temp = nEquip.getSpeed() + chscrollRandomizedStat(range);
|
temp = curSpeed + chscrollRandomizedStat(range);
|
||||||
|
} else {
|
||||||
|
temp = nEquip.getSpeed() + chscrollRandomizedStat(range);
|
||||||
|
}
|
||||||
|
|
||||||
curSpeed = getMaximumShortMaxIfOverflow(temp, curSpeed);
|
curSpeed = getMaximumShortMaxIfOverflow(temp, curSpeed);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (nEquip.getJump() > 0) {
|
if (nEquip.getJump() > 0) {
|
||||||
if(YamlConfig.config.server.USE_ENHANCED_CHSCROLL) temp = curJump + chscrollRandomizedStat(range);
|
if (YamlConfig.config.server.USE_ENHANCED_CHSCROLL) {
|
||||||
else temp = nEquip.getJump() + chscrollRandomizedStat(range);
|
temp = curJump + chscrollRandomizedStat(range);
|
||||||
|
} else {
|
||||||
|
temp = nEquip.getJump() + chscrollRandomizedStat(range);
|
||||||
|
}
|
||||||
|
|
||||||
curJump = getMaximumShortMaxIfOverflow(temp, curJump);
|
curJump = getMaximumShortMaxIfOverflow(temp, curJump);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (nEquip.getHp() > 0) {
|
if (nEquip.getHp() > 0) {
|
||||||
if(YamlConfig.config.server.USE_ENHANCED_CHSCROLL) temp = curHp + chscrollRandomizedStat(range);
|
if (YamlConfig.config.server.USE_ENHANCED_CHSCROLL) {
|
||||||
else temp = nEquip.getHp() + chscrollRandomizedStat(range);
|
temp = curHp + chscrollRandomizedStat(range);
|
||||||
|
} else {
|
||||||
|
temp = nEquip.getHp() + chscrollRandomizedStat(range);
|
||||||
|
}
|
||||||
|
|
||||||
curHp = getMaximumShortMaxIfOverflow(temp, curHp);
|
curHp = getMaximumShortMaxIfOverflow(temp, curHp);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (nEquip.getMp() > 0) {
|
if (nEquip.getMp() > 0) {
|
||||||
if(YamlConfig.config.server.USE_ENHANCED_CHSCROLL) temp = curMp + chscrollRandomizedStat(range);
|
if (YamlConfig.config.server.USE_ENHANCED_CHSCROLL) {
|
||||||
else temp = nEquip.getMp() + chscrollRandomizedStat(range);
|
temp = curMp + chscrollRandomizedStat(range);
|
||||||
|
} else {
|
||||||
|
temp = nEquip.getMp() + chscrollRandomizedStat(range);
|
||||||
|
}
|
||||||
|
|
||||||
curMp = getMaximumShortMaxIfOverflow(temp, curMp);
|
curMp = getMaximumShortMaxIfOverflow(temp, curMp);
|
||||||
}
|
}
|
||||||
@@ -832,64 +915,104 @@ public class MapleItemInformationProvider {
|
|||||||
nEquip.setJump((short) Math.max(0, curJump));
|
nEquip.setJump((short) Math.max(0, curJump));
|
||||||
nEquip.setHp((short) Math.max(0, curHp));
|
nEquip.setHp((short) Math.max(0, curHp));
|
||||||
nEquip.setMp((short) Math.max(0, curMp));
|
nEquip.setMp((short) Math.max(0, curMp));
|
||||||
}
|
} else {
|
||||||
|
|
||||||
else {
|
|
||||||
if (nEquip.getStr() > 0) {
|
if (nEquip.getStr() > 0) {
|
||||||
if(YamlConfig.config.server.USE_ENHANCED_CHSCROLL) nEquip.setStr(getMaximumShortMaxIfOverflow(nEquip.getStr(), (nEquip.getStr() + chscrollRandomizedStat(range))));
|
if (YamlConfig.config.server.USE_ENHANCED_CHSCROLL) {
|
||||||
else nEquip.setStr(getMaximumShortMaxIfOverflow(0, (nEquip.getStr() + chscrollRandomizedStat(range))));
|
nEquip.setStr(getMaximumShortMaxIfOverflow(nEquip.getStr(), (nEquip.getStr() + chscrollRandomizedStat(range))));
|
||||||
|
} else {
|
||||||
|
nEquip.setStr(getMaximumShortMaxIfOverflow(0, (nEquip.getStr() + chscrollRandomizedStat(range))));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
if (nEquip.getDex() > 0) {
|
if (nEquip.getDex() > 0) {
|
||||||
if(YamlConfig.config.server.USE_ENHANCED_CHSCROLL) nEquip.setDex(getMaximumShortMaxIfOverflow(nEquip.getDex(), (nEquip.getDex() + chscrollRandomizedStat(range))));
|
if (YamlConfig.config.server.USE_ENHANCED_CHSCROLL) {
|
||||||
else nEquip.setDex(getMaximumShortMaxIfOverflow(0, (nEquip.getDex() + chscrollRandomizedStat(range))));
|
nEquip.setDex(getMaximumShortMaxIfOverflow(nEquip.getDex(), (nEquip.getDex() + chscrollRandomizedStat(range))));
|
||||||
|
} else {
|
||||||
|
nEquip.setDex(getMaximumShortMaxIfOverflow(0, (nEquip.getDex() + chscrollRandomizedStat(range))));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
if (nEquip.getInt() > 0) {
|
if (nEquip.getInt() > 0) {
|
||||||
if(YamlConfig.config.server.USE_ENHANCED_CHSCROLL) nEquip.setInt(getMaximumShortMaxIfOverflow(nEquip.getInt(), (nEquip.getInt() + chscrollRandomizedStat(range))));
|
if (YamlConfig.config.server.USE_ENHANCED_CHSCROLL) {
|
||||||
else nEquip.setInt(getMaximumShortMaxIfOverflow(0, (nEquip.getInt() + chscrollRandomizedStat(range))));
|
nEquip.setInt(getMaximumShortMaxIfOverflow(nEquip.getInt(), (nEquip.getInt() + chscrollRandomizedStat(range))));
|
||||||
|
} else {
|
||||||
|
nEquip.setInt(getMaximumShortMaxIfOverflow(0, (nEquip.getInt() + chscrollRandomizedStat(range))));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
if (nEquip.getLuk() > 0) {
|
if (nEquip.getLuk() > 0) {
|
||||||
if(YamlConfig.config.server.USE_ENHANCED_CHSCROLL) nEquip.setLuk(getMaximumShortMaxIfOverflow(nEquip.getLuk(), (nEquip.getLuk() + chscrollRandomizedStat(range))));
|
if (YamlConfig.config.server.USE_ENHANCED_CHSCROLL) {
|
||||||
else nEquip.setLuk(getMaximumShortMaxIfOverflow(0, (nEquip.getLuk() + chscrollRandomizedStat(range))));
|
nEquip.setLuk(getMaximumShortMaxIfOverflow(nEquip.getLuk(), (nEquip.getLuk() + chscrollRandomizedStat(range))));
|
||||||
|
} else {
|
||||||
|
nEquip.setLuk(getMaximumShortMaxIfOverflow(0, (nEquip.getLuk() + chscrollRandomizedStat(range))));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
if (nEquip.getWatk() > 0) {
|
if (nEquip.getWatk() > 0) {
|
||||||
if(YamlConfig.config.server.USE_ENHANCED_CHSCROLL) nEquip.setWatk(getMaximumShortMaxIfOverflow(nEquip.getWatk(), (nEquip.getWatk() + chscrollRandomizedStat(range))));
|
if (YamlConfig.config.server.USE_ENHANCED_CHSCROLL) {
|
||||||
else nEquip.setWatk(getMaximumShortMaxIfOverflow(0, (nEquip.getWatk() + chscrollRandomizedStat(range))));
|
nEquip.setWatk(getMaximumShortMaxIfOverflow(nEquip.getWatk(), (nEquip.getWatk() + chscrollRandomizedStat(range))));
|
||||||
|
} else {
|
||||||
|
nEquip.setWatk(getMaximumShortMaxIfOverflow(0, (nEquip.getWatk() + chscrollRandomizedStat(range))));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
if (nEquip.getWdef() > 0) {
|
if (nEquip.getWdef() > 0) {
|
||||||
if(YamlConfig.config.server.USE_ENHANCED_CHSCROLL) nEquip.setWdef(getMaximumShortMaxIfOverflow(nEquip.getWdef(), (nEquip.getWdef() + chscrollRandomizedStat(range))));
|
if (YamlConfig.config.server.USE_ENHANCED_CHSCROLL) {
|
||||||
else nEquip.setWdef(getMaximumShortMaxIfOverflow(0, (nEquip.getWdef() + chscrollRandomizedStat(range))));
|
nEquip.setWdef(getMaximumShortMaxIfOverflow(nEquip.getWdef(), (nEquip.getWdef() + chscrollRandomizedStat(range))));
|
||||||
|
} else {
|
||||||
|
nEquip.setWdef(getMaximumShortMaxIfOverflow(0, (nEquip.getWdef() + chscrollRandomizedStat(range))));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
if (nEquip.getMatk() > 0) {
|
if (nEquip.getMatk() > 0) {
|
||||||
if(YamlConfig.config.server.USE_ENHANCED_CHSCROLL) nEquip.setMatk(getMaximumShortMaxIfOverflow(nEquip.getMatk(), (nEquip.getMatk() + chscrollRandomizedStat(range))));
|
if (YamlConfig.config.server.USE_ENHANCED_CHSCROLL) {
|
||||||
else nEquip.setMatk(getMaximumShortMaxIfOverflow(0, (nEquip.getMatk() + chscrollRandomizedStat(range))));
|
nEquip.setMatk(getMaximumShortMaxIfOverflow(nEquip.getMatk(), (nEquip.getMatk() + chscrollRandomizedStat(range))));
|
||||||
|
} else {
|
||||||
|
nEquip.setMatk(getMaximumShortMaxIfOverflow(0, (nEquip.getMatk() + chscrollRandomizedStat(range))));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
if (nEquip.getMdef() > 0) {
|
if (nEquip.getMdef() > 0) {
|
||||||
if(YamlConfig.config.server.USE_ENHANCED_CHSCROLL) nEquip.setMdef(getMaximumShortMaxIfOverflow(nEquip.getMdef(), (nEquip.getMdef() + chscrollRandomizedStat(range))));
|
if (YamlConfig.config.server.USE_ENHANCED_CHSCROLL) {
|
||||||
else nEquip.setMdef(getMaximumShortMaxIfOverflow(0, (nEquip.getMdef() + chscrollRandomizedStat(range))));
|
nEquip.setMdef(getMaximumShortMaxIfOverflow(nEquip.getMdef(), (nEquip.getMdef() + chscrollRandomizedStat(range))));
|
||||||
|
} else {
|
||||||
|
nEquip.setMdef(getMaximumShortMaxIfOverflow(0, (nEquip.getMdef() + chscrollRandomizedStat(range))));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
if (nEquip.getAcc() > 0) {
|
if (nEquip.getAcc() > 0) {
|
||||||
if(YamlConfig.config.server.USE_ENHANCED_CHSCROLL) nEquip.setAcc(getMaximumShortMaxIfOverflow(nEquip.getAcc(), (nEquip.getAcc() + chscrollRandomizedStat(range))));
|
if (YamlConfig.config.server.USE_ENHANCED_CHSCROLL) {
|
||||||
else nEquip.setAcc(getMaximumShortMaxIfOverflow(0, (nEquip.getAcc() + chscrollRandomizedStat(range))));
|
nEquip.setAcc(getMaximumShortMaxIfOverflow(nEquip.getAcc(), (nEquip.getAcc() + chscrollRandomizedStat(range))));
|
||||||
|
} else {
|
||||||
|
nEquip.setAcc(getMaximumShortMaxIfOverflow(0, (nEquip.getAcc() + chscrollRandomizedStat(range))));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
if (nEquip.getAvoid() > 0) {
|
if (nEquip.getAvoid() > 0) {
|
||||||
if(YamlConfig.config.server.USE_ENHANCED_CHSCROLL) nEquip.setAvoid(getMaximumShortMaxIfOverflow(nEquip.getAvoid(), (nEquip.getAvoid() + chscrollRandomizedStat(range))));
|
if (YamlConfig.config.server.USE_ENHANCED_CHSCROLL) {
|
||||||
else nEquip.setAvoid(getMaximumShortMaxIfOverflow(0, (nEquip.getAvoid() + chscrollRandomizedStat(range))));
|
nEquip.setAvoid(getMaximumShortMaxIfOverflow(nEquip.getAvoid(), (nEquip.getAvoid() + chscrollRandomizedStat(range))));
|
||||||
|
} else {
|
||||||
|
nEquip.setAvoid(getMaximumShortMaxIfOverflow(0, (nEquip.getAvoid() + chscrollRandomizedStat(range))));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
if (nEquip.getSpeed() > 0) {
|
if (nEquip.getSpeed() > 0) {
|
||||||
if(YamlConfig.config.server.USE_ENHANCED_CHSCROLL) nEquip.setSpeed(getMaximumShortMaxIfOverflow(nEquip.getSpeed(), (nEquip.getSpeed() + chscrollRandomizedStat(range))));
|
if (YamlConfig.config.server.USE_ENHANCED_CHSCROLL) {
|
||||||
else nEquip.setSpeed(getMaximumShortMaxIfOverflow(0, (nEquip.getSpeed() + chscrollRandomizedStat(range))));
|
nEquip.setSpeed(getMaximumShortMaxIfOverflow(nEquip.getSpeed(), (nEquip.getSpeed() + chscrollRandomizedStat(range))));
|
||||||
|
} else {
|
||||||
|
nEquip.setSpeed(getMaximumShortMaxIfOverflow(0, (nEquip.getSpeed() + chscrollRandomizedStat(range))));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
if (nEquip.getJump() > 0) {
|
if (nEquip.getJump() > 0) {
|
||||||
if(YamlConfig.config.server.USE_ENHANCED_CHSCROLL) nEquip.setJump(getMaximumShortMaxIfOverflow(nEquip.getJump(), (nEquip.getJump() + chscrollRandomizedStat(range))));
|
if (YamlConfig.config.server.USE_ENHANCED_CHSCROLL) {
|
||||||
else nEquip.setJump(getMaximumShortMaxIfOverflow(0, (nEquip.getJump() + chscrollRandomizedStat(range))));
|
nEquip.setJump(getMaximumShortMaxIfOverflow(nEquip.getJump(), (nEquip.getJump() + chscrollRandomizedStat(range))));
|
||||||
|
} else {
|
||||||
|
nEquip.setJump(getMaximumShortMaxIfOverflow(0, (nEquip.getJump() + chscrollRandomizedStat(range))));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
if (nEquip.getHp() > 0) {
|
if (nEquip.getHp() > 0) {
|
||||||
if(YamlConfig.config.server.USE_ENHANCED_CHSCROLL) nEquip.setHp(getMaximumShortMaxIfOverflow(nEquip.getHp(), (nEquip.getHp() + chscrollRandomizedStat(range))));
|
if (YamlConfig.config.server.USE_ENHANCED_CHSCROLL) {
|
||||||
else nEquip.setHp(getMaximumShortMaxIfOverflow(0, (nEquip.getHp() + chscrollRandomizedStat(range))));
|
nEquip.setHp(getMaximumShortMaxIfOverflow(nEquip.getHp(), (nEquip.getHp() + chscrollRandomizedStat(range))));
|
||||||
|
} else {
|
||||||
|
nEquip.setHp(getMaximumShortMaxIfOverflow(0, (nEquip.getHp() + chscrollRandomizedStat(range))));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
if (nEquip.getMp() > 0) {
|
if (nEquip.getMp() > 0) {
|
||||||
if(YamlConfig.config.server.USE_ENHANCED_CHSCROLL) nEquip.setMp(getMaximumShortMaxIfOverflow(nEquip.getMp(), (nEquip.getMp() + chscrollRandomizedStat(range))));
|
if (YamlConfig.config.server.USE_ENHANCED_CHSCROLL) {
|
||||||
else nEquip.setMp(getMaximumShortMaxIfOverflow(0, (nEquip.getMp() + chscrollRandomizedStat(range))));
|
nEquip.setMp(getMaximumShortMaxIfOverflow(nEquip.getMp(), (nEquip.getMp() + chscrollRandomizedStat(range))));
|
||||||
|
} else {
|
||||||
|
nEquip.setMp(getMaximumShortMaxIfOverflow(0, (nEquip.getMp() + chscrollRandomizedStat(range))));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -913,23 +1036,23 @@ public class MapleItemInformationProvider {
|
|||||||
if (((nEquip.getUpgradeSlots() > 0 || ItemConstants.isCleanSlate(scrollId))) || assertGM) {
|
if (((nEquip.getUpgradeSlots() > 0 || ItemConstants.isCleanSlate(scrollId))) || assertGM) {
|
||||||
double prop = (double) stats.get("success");
|
double prop = (double) stats.get("success");
|
||||||
|
|
||||||
switch(vegaItemId) {
|
switch (vegaItemId) {
|
||||||
case 5610000:
|
case 5610000:
|
||||||
if (prop == 10.0f) {
|
if (prop == 10.0f) {
|
||||||
prop = 30.0f;
|
prop = 30.0f;
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case 5610001:
|
case 5610001:
|
||||||
if (prop == 60.0f) {
|
if (prop == 60.0f) {
|
||||||
prop = 90.0f;
|
prop = 90.0f;
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case 2049100:
|
case 2049100:
|
||||||
prop = 100.0f;
|
prop = 100.0f;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
if(assertGM || rollSuccessChance(prop)) {
|
if (assertGM || rollSuccessChance(prop)) {
|
||||||
short flag = nEquip.getFlag();
|
short flag = nEquip.getFlag();
|
||||||
switch (scrollId) {
|
switch (scrollId) {
|
||||||
case 2040727:
|
case 2040727:
|
||||||
@@ -1206,7 +1329,7 @@ public class MapleItemInformationProvider {
|
|||||||
}
|
}
|
||||||
|
|
||||||
boolean bRestricted = false;
|
boolean bRestricted = false;
|
||||||
if(itemId != 0) {
|
if (itemId != 0) {
|
||||||
Data data = getItemData(itemId);
|
Data data = getItemData(itemId);
|
||||||
if (data != null) {
|
if (data != null) {
|
||||||
bRestricted = DataTool.getIntConvert("info/tradeBlock", data, 0) == 1;
|
bRestricted = DataTool.getIntConvert("info/tradeBlock", data, 0) == 1;
|
||||||
@@ -1223,7 +1346,7 @@ public class MapleItemInformationProvider {
|
|||||||
}
|
}
|
||||||
|
|
||||||
boolean bRestricted = false;
|
boolean bRestricted = false;
|
||||||
if(itemId != 0) {
|
if (itemId != 0) {
|
||||||
Data data = getItemData(itemId);
|
Data data = getItemData(itemId);
|
||||||
if (data != null) {
|
if (data != null) {
|
||||||
bRestricted = DataTool.getIntConvert("info/accountSharable", data, 0) == 1;
|
bRestricted = DataTool.getIntConvert("info/accountSharable", data, 0) == 1;
|
||||||
@@ -1240,7 +1363,7 @@ public class MapleItemInformationProvider {
|
|||||||
}
|
}
|
||||||
|
|
||||||
boolean bRestricted = false;
|
boolean bRestricted = false;
|
||||||
if(itemId != 0) {
|
if (itemId != 0) {
|
||||||
Data data = getItemData(itemId);
|
Data data = getItemData(itemId);
|
||||||
if (data != null) {
|
if (data != null) {
|
||||||
bRestricted = DataTool.getIntConvert("info/tradeBlock", data, 0) == 1;
|
bRestricted = DataTool.getIntConvert("info/tradeBlock", data, 0) == 1;
|
||||||
@@ -1264,7 +1387,7 @@ public class MapleItemInformationProvider {
|
|||||||
}
|
}
|
||||||
|
|
||||||
boolean bRestricted = false;
|
boolean bRestricted = false;
|
||||||
if(itemId != 0) {
|
if (itemId != 0) {
|
||||||
Data data = getItemData(itemId);
|
Data data = getItemData(itemId);
|
||||||
if (data != null) {
|
if (data != null) {
|
||||||
bRestricted = DataTool.getIntConvert("info/only", data, 0) == 1;
|
bRestricted = DataTool.getIntConvert("info/only", data, 0) == 1;
|
||||||
@@ -1279,7 +1402,9 @@ public class MapleItemInformationProvider {
|
|||||||
Map<String, Integer> ret = skillUpgradeCache.get(itemId);
|
Map<String, Integer> ret = skillUpgradeCache.get(itemId);
|
||||||
Data retSkill = skillUpgradeInfoCache.get(itemId);
|
Data retSkill = skillUpgradeInfoCache.get(itemId);
|
||||||
|
|
||||||
if(ret != null) return new Pair<>(ret, retSkill);
|
if (ret != null) {
|
||||||
|
return new Pair<>(ret, retSkill);
|
||||||
|
}
|
||||||
|
|
||||||
retSkill = null;
|
retSkill = null;
|
||||||
ret = new LinkedHashMap<>();
|
ret = new LinkedHashMap<>();
|
||||||
@@ -1307,7 +1432,9 @@ public class MapleItemInformationProvider {
|
|||||||
|
|
||||||
public Map<String, Integer> getSkillStats(int itemId, double playerJob) {
|
public Map<String, Integer> getSkillStats(int itemId, double playerJob) {
|
||||||
Pair<Map<String, Integer>, Data> retData = getSkillStatsInternal(itemId);
|
Pair<Map<String, Integer>, Data> retData = getSkillStatsInternal(itemId);
|
||||||
if(retData.getLeft().isEmpty()) return null;
|
if (retData.getLeft().isEmpty()) {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
Map<String, Integer> ret = new LinkedHashMap<>(retData.getLeft());
|
Map<String, Integer> ret = new LinkedHashMap<>(retData.getLeft());
|
||||||
Data skill = retData.getRight();
|
Data skill = retData.getRight();
|
||||||
@@ -1331,14 +1458,14 @@ public class MapleItemInformationProvider {
|
|||||||
public Pair<Integer, Boolean> canPetConsume(Integer petId, Integer itemId) {
|
public Pair<Integer, Boolean> canPetConsume(Integer petId, Integer itemId) {
|
||||||
Pair<Integer, Set<Integer>> foodData = cashPetFoodCache.get(itemId);
|
Pair<Integer, Set<Integer>> foodData = cashPetFoodCache.get(itemId);
|
||||||
|
|
||||||
if(foodData == null) {
|
if (foodData == null) {
|
||||||
Set<Integer> pets = new HashSet<>(4);
|
Set<Integer> pets = new HashSet<>(4);
|
||||||
int inc = 1;
|
int inc = 1;
|
||||||
|
|
||||||
Data data = getItemData(itemId);
|
Data data = getItemData(itemId);
|
||||||
if(data != null) {
|
if (data != null) {
|
||||||
Data specData = data.getChildByPath("spec");
|
Data specData = data.getChildByPath("spec");
|
||||||
for(Data specItem : specData.getChildren()) {
|
for (Data specItem : specData.getChildren()) {
|
||||||
String itemName = specItem.getName();
|
String itemName = specItem.getName();
|
||||||
|
|
||||||
try {
|
try {
|
||||||
@@ -1346,8 +1473,8 @@ public class MapleItemInformationProvider {
|
|||||||
|
|
||||||
Integer petid = DataTool.getInt(specItem, 0);
|
Integer petid = DataTool.getInt(specItem, 0);
|
||||||
pets.add(petid);
|
pets.add(petid);
|
||||||
} catch(NumberFormatException npe) {
|
} catch (NumberFormatException npe) {
|
||||||
if(itemName.contentEquals("inc")) {
|
if (itemName.contentEquals("inc")) {
|
||||||
inc = DataTool.getInt(specItem, 1);
|
inc = DataTool.getInt(specItem, 1);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -1415,8 +1542,8 @@ public class MapleItemInformationProvider {
|
|||||||
}
|
}
|
||||||
Data itemInfo = getItemData(itemId);
|
Data itemInfo = getItemData(itemId);
|
||||||
ScriptedItem script = new ScriptedItem(DataTool.getInt("spec/npc", itemInfo, 0),
|
ScriptedItem script = new ScriptedItem(DataTool.getInt("spec/npc", itemInfo, 0),
|
||||||
DataTool.getString("spec/script", itemInfo, ""),
|
DataTool.getString("spec/script", itemInfo, ""),
|
||||||
DataTool.getInt("spec/runOnPickup", itemInfo, 0) == 1);
|
DataTool.getInt("spec/runOnPickup", itemInfo, 0) == 1);
|
||||||
scriptedItemCache.put(itemId, script);
|
scriptedItemCache.put(itemId, script);
|
||||||
return scriptedItemCache.get(itemId);
|
return scriptedItemCache.get(itemId);
|
||||||
}
|
}
|
||||||
@@ -1553,8 +1680,12 @@ public class MapleItemInformationProvider {
|
|||||||
|
|
||||||
public boolean isCash(int itemId) {
|
public boolean isCash(int itemId) {
|
||||||
int itemType = itemId / 1000000;
|
int itemType = itemId / 1000000;
|
||||||
if (itemType == 5) return true;
|
if (itemType == 5) {
|
||||||
if (itemType != 1) return false;
|
return true;
|
||||||
|
}
|
||||||
|
if (itemType != 1) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
Map<String, Integer> eqpStats = getEquipStats(itemId);
|
Map<String, Integer> eqpStats = getEquipStats(itemId);
|
||||||
return eqpStats != null && eqpStats.get("cash") == 1;
|
return eqpStats != null && eqpStats.get("cash") == 1;
|
||||||
@@ -1562,7 +1693,7 @@ public class MapleItemInformationProvider {
|
|||||||
|
|
||||||
public boolean isUpgradeable(int itemId) {
|
public boolean isUpgradeable(int itemId) {
|
||||||
Item it = this.getEquipById(itemId);
|
Item it = this.getEquipById(itemId);
|
||||||
Equip eq = (Equip)it;
|
Equip eq = (Equip) it;
|
||||||
|
|
||||||
return (eq.getUpgradeSlots() > 0 || eq.getStr() > 0 || eq.getDex() > 0 || eq.getInt() > 0 || eq.getLuk() > 0 ||
|
return (eq.getUpgradeSlots() > 0 || eq.getStr() > 0 || eq.getDex() > 0 || eq.getInt() > 0 || eq.getLuk() > 0 ||
|
||||||
eq.getWatk() > 0 || eq.getMatk() > 0 || eq.getWdef() > 0 || eq.getMdef() > 0 || eq.getAcc() > 0 ||
|
eq.getWatk() > 0 || eq.getMatk() > 0 || eq.getWdef() > 0 || eq.getMdef() > 0 || eq.getAcc() > 0 ||
|
||||||
@@ -1570,15 +1701,11 @@ public class MapleItemInformationProvider {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public boolean isUnmerchable(int itemId) {
|
public boolean isUnmerchable(int itemId) {
|
||||||
if(YamlConfig.config.server.USE_ENFORCE_UNMERCHABLE_CASH && isCash(itemId)) {
|
if (YamlConfig.config.server.USE_ENFORCE_UNMERCHABLE_CASH && isCash(itemId)) {
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (YamlConfig.config.server.USE_ENFORCE_UNMERCHABLE_PET && ItemConstants.isPet(itemId)) {
|
return YamlConfig.config.server.USE_ENFORCE_UNMERCHABLE_PET && ItemConstants.isPet(itemId);
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
return false;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public Collection<Item> canWearEquipment(Character chr, Collection<Item> items) {
|
public Collection<Item> canWearEquipment(Character chr, Collection<Item> items) {
|
||||||
@@ -1660,7 +1787,7 @@ public class MapleItemInformationProvider {
|
|||||||
public boolean canWearEquipment(Character chr, Equip equip, int dst) {
|
public boolean canWearEquipment(Character chr, Equip equip, int dst) {
|
||||||
int id = equip.getItemId();
|
int id = equip.getItemId();
|
||||||
|
|
||||||
if(ItemConstants.isWeddingRing(id) && chr.hasJustMarried()) {
|
if (ItemConstants.isWeddingRing(id) && chr.hasJustMarried()) {
|
||||||
chr.dropMessage(5, "The Wedding Ring cannot be equipped on this map."); // will dc everyone due to doubled couple effect
|
chr.dropMessage(5, "The Wedding Ring cannot be equipped on this map."); // will dc everyone due to doubled couple effect
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
@@ -1668,7 +1795,7 @@ public class MapleItemInformationProvider {
|
|||||||
String islot = getEquipmentSlot(id);
|
String islot = getEquipmentSlot(id);
|
||||||
if (!EquipSlot.getFromTextSlot(islot).isAllowed(dst, isCash(id))) {
|
if (!EquipSlot.getFromTextSlot(islot).isAllowed(dst, isCash(id))) {
|
||||||
equip.wear(false);
|
equip.wear(false);
|
||||||
String itemName = MapleItemInformationProvider.getInstance().getName(equip.getItemId());
|
String itemName = ItemInformationProvider.getInstance().getName(equip.getItemId());
|
||||||
Server.getInstance().broadcastGMMessage(chr.getWorld(), PacketCreator.sendYellowTip("[Warning]: " + chr.getName() + " tried to equip " + itemName + " into slot " + dst + "."));
|
Server.getInstance().broadcastGMMessage(chr.getWorld(), PacketCreator.sendYellowTip("[Warning]: " + chr.getName() + " tried to equip " + itemName + " into slot " + dst + "."));
|
||||||
AutobanFactory.PACKET_EDIT.alert(chr, chr.getName() + " tried to forcibly equip an item.");
|
AutobanFactory.PACKET_EDIT.alert(chr, chr.getName() + " tried to forcibly equip an item.");
|
||||||
FilePrinter.printError(FilePrinter.EXPLOITS + chr.getName() + ".txt", chr.getName() + " tried to equip " + itemName + " into " + dst + " slot.");
|
FilePrinter.printError(FilePrinter.EXPLOITS + chr.getName() + ".txt", chr.getName() + " tried to equip " + itemName + " into " + dst + " slot.");
|
||||||
@@ -1729,7 +1856,7 @@ public class MapleItemInformationProvider {
|
|||||||
|
|
||||||
public ArrayList<Pair<Integer, String>> getItemDataByName(String name) {
|
public ArrayList<Pair<Integer, String>> getItemDataByName(String name) {
|
||||||
ArrayList<Pair<Integer, String>> ret = new ArrayList<>();
|
ArrayList<Pair<Integer, String>> ret = new ArrayList<>();
|
||||||
for (Pair<Integer, String> itemPair : MapleItemInformationProvider.getInstance().getAllItems()) {
|
for (Pair<Integer, String> itemPair : ItemInformationProvider.getInstance().getAllItems()) {
|
||||||
if (itemPair.getRight().toLowerCase().contains(name.toLowerCase())) {
|
if (itemPair.getRight().toLowerCase().contains(name.toLowerCase())) {
|
||||||
ret.add(itemPair);
|
ret.add(itemPair);
|
||||||
}
|
}
|
||||||
@@ -1740,7 +1867,9 @@ public class MapleItemInformationProvider {
|
|||||||
private Data getEquipLevelInfo(int itemId) {
|
private Data getEquipLevelInfo(int itemId) {
|
||||||
Data equipLevelData = equipLevelInfoCache.get(itemId);
|
Data equipLevelData = equipLevelInfoCache.get(itemId);
|
||||||
if (equipLevelData == null) {
|
if (equipLevelData == null) {
|
||||||
if (equipLevelInfoCache.containsKey(itemId)) return null;
|
if (equipLevelInfoCache.containsKey(itemId)) {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
Data iData = getItemData(itemId);
|
Data iData = getItemData(itemId);
|
||||||
if (iData != null) {
|
if (iData != null) {
|
||||||
@@ -1836,12 +1965,12 @@ public class MapleItemInformationProvider {
|
|||||||
private static int getCrystalForLevel(int level) {
|
private static int getCrystalForLevel(int level) {
|
||||||
int range = (level - 1) / 10;
|
int range = (level - 1) / 10;
|
||||||
|
|
||||||
if(range < 5) {
|
if (range < 5) {
|
||||||
return 4260000;
|
return 4260000;
|
||||||
} else if(range > 11) {
|
} else if (range > 11) {
|
||||||
return 4260008;
|
return 4260008;
|
||||||
} else {
|
} else {
|
||||||
switch(range) {
|
switch (range) {
|
||||||
case 5:
|
case 5:
|
||||||
return 4260001;
|
return 4260001;
|
||||||
|
|
||||||
@@ -1907,7 +2036,7 @@ public class MapleItemInformationProvider {
|
|||||||
itemid = -1;
|
itemid = -1;
|
||||||
|
|
||||||
try (Connection con = DatabaseConnection.getConnection();
|
try (Connection con = DatabaseConnection.getConnection();
|
||||||
PreparedStatement ps = con.prepareStatement("SELECT dropperid FROM drop_data WHERE itemid = ? ORDER BY dropperid;")) {
|
PreparedStatement ps = con.prepareStatement("SELECT dropperid FROM drop_data WHERE itemid = ? ORDER BY dropperid;")) {
|
||||||
ps.setInt(1, leftoverId);
|
ps.setInt(1, leftoverId);
|
||||||
|
|
||||||
try (ResultSet rs = ps.executeQuery()) {
|
try (ResultSet rs = ps.executeQuery()) {
|
||||||
@@ -2033,15 +2162,15 @@ public class MapleItemInformationProvider {
|
|||||||
|
|
||||||
public int getMakerStimulant(int itemId) { // thanks to Arnah
|
public int getMakerStimulant(int itemId) { // thanks to Arnah
|
||||||
Integer itemid = makerCatalystCache.get(itemId);
|
Integer itemid = makerCatalystCache.get(itemId);
|
||||||
if(itemid != null) {
|
if (itemid != null) {
|
||||||
return itemid;
|
return itemid;
|
||||||
}
|
}
|
||||||
|
|
||||||
itemid = -1;
|
itemid = -1;
|
||||||
for(Data md : etcData.getData("ItemMake.img").getChildren()) {
|
for (Data md : etcData.getData("ItemMake.img").getChildren()) {
|
||||||
Data me = md.getChildByPath(StringUtil.getLeftPaddedStr(Integer.toString(itemId), '0', 8));
|
Data me = md.getChildByPath(StringUtil.getLeftPaddedStr(Integer.toString(itemId), '0', 8));
|
||||||
|
|
||||||
if(me != null) {
|
if (me != null) {
|
||||||
itemid = DataTool.getInt(me.getChildByPath("catalyst"), -1);
|
itemid = DataTool.getInt(me.getChildByPath("catalyst"), -1);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
@@ -2074,7 +2203,9 @@ public class MapleItemInformationProvider {
|
|||||||
|
|
||||||
private boolean canUseSkillBook(Character player, Integer skillBookId) {
|
private boolean canUseSkillBook(Character player, Integer skillBookId) {
|
||||||
Map<String, Integer> skilldata = getSkillStats(skillBookId, player.getJob().getId());
|
Map<String, Integer> skilldata = getSkillStats(skillBookId, player.getJob().getId());
|
||||||
if(skilldata == null || skilldata.get("skillid") == 0) return false;
|
if (skilldata == null || skilldata.get("skillid") == 0) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
Skill skill2 = SkillFactory.getSkill(skilldata.get("skillid"));
|
Skill skill2 = SkillFactory.getSkill(skilldata.get("skillid"));
|
||||||
return (skilldata.get("skillid") != 0 && ((player.getSkillLevel(skill2) >= skilldata.get("reqSkillLevel") || skilldata.get("reqSkillLevel") == 0) && player.getMasterLevel(skill2) < skilldata.get("masterLevel")));
|
return (skilldata.get("skillid") != 0 && ((player.getSkillLevel(skill2) >= skilldata.get("reqSkillLevel") || skilldata.get("reqSkillLevel") == 0) && player.getMasterLevel(skill2) < skilldata.get("masterLevel")));
|
||||||
@@ -2082,8 +2213,8 @@ public class MapleItemInformationProvider {
|
|||||||
|
|
||||||
public List<Integer> usableMasteryBooks(Character player) {
|
public List<Integer> usableMasteryBooks(Character player) {
|
||||||
List<Integer> masterybook = new LinkedList<>();
|
List<Integer> masterybook = new LinkedList<>();
|
||||||
for(Integer i = 2290000; i <= 2290139; i++) {
|
for (Integer i = 2290000; i <= 2290139; i++) {
|
||||||
if(canUseSkillBook(player, i)) {
|
if (canUseSkillBook(player, i)) {
|
||||||
masterybook.add(i);
|
masterybook.add(i);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -2093,8 +2224,8 @@ public class MapleItemInformationProvider {
|
|||||||
|
|
||||||
public List<Integer> usableSkillBooks(Character player) {
|
public List<Integer> usableSkillBooks(Character player) {
|
||||||
List<Integer> skillbook = new LinkedList<>();
|
List<Integer> skillbook = new LinkedList<>();
|
||||||
for(Integer i = 2280000; i <= 2280019; i++) {
|
for (Integer i = 2280000; i <= 2280019; i++) {
|
||||||
if(canUseSkillBook(player, i)) {
|
if (canUseSkillBook(player, i)) {
|
||||||
skillbook.add(i);
|
skillbook.add(i);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -2135,9 +2266,9 @@ public class MapleItemInformationProvider {
|
|||||||
|
|
||||||
public class ScriptedItem {
|
public class ScriptedItem {
|
||||||
|
|
||||||
private boolean runOnPickup;
|
private final boolean runOnPickup;
|
||||||
private int npc;
|
private final int npc;
|
||||||
private String script;
|
private final String script;
|
||||||
|
|
||||||
public ScriptedItem(int npc, String script, boolean rop) {
|
public ScriptedItem(int npc, String script, boolean rop) {
|
||||||
this.npc = npc;
|
this.npc = npc;
|
||||||
@@ -35,7 +35,7 @@ import java.util.Map.Entry;
|
|||||||
* @author Jay Estrella, Ronan
|
* @author Jay Estrella, Ronan
|
||||||
*/
|
*/
|
||||||
public class MakerItemFactory {
|
public class MakerItemFactory {
|
||||||
private static MapleItemInformationProvider ii = MapleItemInformationProvider.getInstance();
|
private static ItemInformationProvider ii = ItemInformationProvider.getInstance();
|
||||||
|
|
||||||
public static MakerItemCreateEntry getItemCreateEntry(int toCreate, int stimulantid, Map<Integer, Short> reagentids) {
|
public static MakerItemCreateEntry getItemCreateEntry(int toCreate, int stimulantid, Map<Integer, Short> reagentids) {
|
||||||
MakerItemCreateEntry makerEntry = ii.getMakerItemEntry(toCreate);
|
MakerItemCreateEntry makerEntry = ii.getMakerItemEntry(toCreate);
|
||||||
|
|||||||
@@ -89,7 +89,7 @@ public class MapleShop {
|
|||||||
} else {
|
} else {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
MapleItemInformationProvider ii = MapleItemInformationProvider.getInstance();
|
ItemInformationProvider ii = ItemInformationProvider.getInstance();
|
||||||
if (item.getPrice() > 0) {
|
if (item.getPrice() > 0) {
|
||||||
int amount = (int)Math.min((float) item.getPrice() * quantity, Integer.MAX_VALUE);
|
int amount = (int)Math.min((float) item.getPrice() * quantity, Integer.MAX_VALUE);
|
||||||
if (c.getPlayer().getMeso() >= amount) {
|
if (c.getPlayer().getMeso() >= amount) {
|
||||||
@@ -198,7 +198,7 @@ public class MapleShop {
|
|||||||
quantity = getSellingQuantity(item, quantity);
|
quantity = getSellingQuantity(item, quantity);
|
||||||
InventoryManipulator.removeFromSlot(c, type, (byte) slot, quantity, false);
|
InventoryManipulator.removeFromSlot(c, type, (byte) slot, quantity, false);
|
||||||
|
|
||||||
MapleItemInformationProvider ii = MapleItemInformationProvider.getInstance();
|
ItemInformationProvider ii = ItemInformationProvider.getInstance();
|
||||||
int recvMesos = ii.getPrice(item.getItemId(), quantity);
|
int recvMesos = ii.getPrice(item.getItemId(), quantity);
|
||||||
if (recvMesos > 0) {
|
if (recvMesos > 0) {
|
||||||
c.getPlayer().gainMeso(recvMesos, false);
|
c.getPlayer().gainMeso(recvMesos, false);
|
||||||
@@ -210,7 +210,7 @@ public class MapleShop {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public void recharge(Client c, short slot) {
|
public void recharge(Client c, short slot) {
|
||||||
MapleItemInformationProvider ii = MapleItemInformationProvider.getInstance();
|
ItemInformationProvider ii = ItemInformationProvider.getInstance();
|
||||||
Item item = c.getPlayer().getInventory(InventoryType.USE).getItem(slot);
|
Item item = c.getPlayer().getInventory(InventoryType.USE).getItem(slot);
|
||||||
if (item == null || !ItemConstants.isRechargeable(item.getItemId())) {
|
if (item == null || !ItemConstants.isRechargeable(item.getItemId())) {
|
||||||
return;
|
return;
|
||||||
|
|||||||
@@ -36,7 +36,7 @@ class PairedQuicksort {
|
|||||||
private int i = 0;
|
private int i = 0;
|
||||||
private int j = 0;
|
private int j = 0;
|
||||||
private final ArrayList<Integer> intersect;
|
private final ArrayList<Integer> intersect;
|
||||||
MapleItemInformationProvider ii = MapleItemInformationProvider.getInstance();
|
ItemInformationProvider ii = ItemInformationProvider.getInstance();
|
||||||
|
|
||||||
private void PartitionByItemId(int Esq, int Dir, ArrayList<Item> A) {
|
private void PartitionByItemId(int Esq, int Dir, ArrayList<Item> A) {
|
||||||
Item x, w;
|
Item x, w;
|
||||||
@@ -224,7 +224,7 @@ public class MapleStorageInventory {
|
|||||||
source.setPosition(dSlot);
|
source.setPosition(dSlot);
|
||||||
inventory.put(dSlot, source);
|
inventory.put(dSlot, source);
|
||||||
inventory.remove(sSlot);
|
inventory.remove(sSlot);
|
||||||
} else if (target.getItemId() == source.getItemId() && !ItemConstants.isRechargeable(source.getItemId()) && !MapleItemInformationProvider.getInstance().isPickupRestricted(source.getItemId()) && isSameOwner(source, target)) {
|
} else if (target.getItemId() == source.getItemId() && !ItemConstants.isRechargeable(source.getItemId()) && !ItemInformationProvider.getInstance().isPickupRestricted(source.getItemId()) && isSameOwner(source, target)) {
|
||||||
if (isEquipOrCash(source)) {
|
if (isEquipOrCash(source)) {
|
||||||
swap(target, source);
|
swap(target, source);
|
||||||
} else if (source.getQuantity() + target.getQuantity() > slotMax) {
|
} else if (source.getQuantity() + target.getQuantity() > slotMax) {
|
||||||
@@ -252,7 +252,7 @@ public class MapleStorageInventory {
|
|||||||
if (source == null) {
|
if (source == null) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
short slotMax = MapleItemInformationProvider.getInstance().getSlotMax(c, source.getItemId());
|
short slotMax = ItemInformationProvider.getInstance().getSlotMax(c, source.getItemId());
|
||||||
this.move(src, dst, slotMax);
|
this.move(src, dst, slotMax);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -296,7 +296,7 @@ public class MapleStorageInventory {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public void mergeItems() {
|
public void mergeItems() {
|
||||||
MapleItemInformationProvider ii = MapleItemInformationProvider.getInstance();
|
ItemInformationProvider ii = ItemInformationProvider.getInstance();
|
||||||
Item srcItem, dstItem;
|
Item srcItem, dstItem;
|
||||||
|
|
||||||
for(short dst = 1; dst <= this.getSlotLimit(); dst++) {
|
for(short dst = 1; dst <= this.getSlotLimit(); dst++) {
|
||||||
|
|||||||
@@ -21,7 +21,7 @@
|
|||||||
*/
|
*/
|
||||||
package server.gachapon;
|
package server.gachapon;
|
||||||
|
|
||||||
import server.MapleItemInformationProvider;
|
import server.ItemInformationProvider;
|
||||||
import tools.Randomizer;
|
import tools.Randomizer;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -100,7 +100,7 @@ public class MapleGachapon {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public static String[] getLootInfo() {
|
public static String[] getLootInfo() {
|
||||||
MapleItemInformationProvider ii = MapleItemInformationProvider.getInstance();
|
ItemInformationProvider ii = ItemInformationProvider.getInstance();
|
||||||
|
|
||||||
String[] strList = new String[values.length + 1];
|
String[] strList = new String[values.length + 1];
|
||||||
|
|
||||||
|
|||||||
@@ -27,7 +27,7 @@ import provider.DataProvider;
|
|||||||
import provider.DataProviderFactory;
|
import provider.DataProviderFactory;
|
||||||
import provider.DataTool;
|
import provider.DataTool;
|
||||||
import provider.wz.WZFiles;
|
import provider.wz.WZFiles;
|
||||||
import server.MapleItemInformationProvider;
|
import server.ItemInformationProvider;
|
||||||
import tools.DatabaseConnection;
|
import tools.DatabaseConnection;
|
||||||
import tools.Pair;
|
import tools.Pair;
|
||||||
import tools.Randomizer;
|
import tools.Randomizer;
|
||||||
@@ -176,7 +176,7 @@ public class MonsterInformationProvider {
|
|||||||
return dropsChancePool.get(monsterId);
|
return dropsChancePool.get(monsterId);
|
||||||
}
|
}
|
||||||
|
|
||||||
MapleItemInformationProvider ii = MapleItemInformationProvider.getInstance();
|
ItemInformationProvider ii = ItemInformationProvider.getInstance();
|
||||||
|
|
||||||
List<MonsterDropEntry> dropList = retrieveDrop(monsterId);
|
List<MonsterDropEntry> dropList = retrieveDrop(monsterId);
|
||||||
List<Integer> ret = new ArrayList<>();
|
List<Integer> ret = new ArrayList<>();
|
||||||
|
|||||||
@@ -40,7 +40,7 @@ public class LootManager {
|
|||||||
qCompleteAmount = quest.getCompleteItemAmountNeeded(dropEntry.itemId);
|
qCompleteAmount = quest.getCompleteItemAmountNeeded(dropEntry.itemId);
|
||||||
}
|
}
|
||||||
|
|
||||||
//boolean restricted = MapleItemInformationProvider.getInstance().isPickupRestricted(dropEntry.itemId);
|
//boolean restricted = ItemInformationProvider.getInstance().isPickupRestricted(dropEntry.itemId);
|
||||||
for (int i = 0; i < players.size(); i++) {
|
for (int i = 0; i < players.size(); i++) {
|
||||||
LootInventory chrInv = playersInv.get(i);
|
LootInventory chrInv = playersInv.get(i);
|
||||||
|
|
||||||
|
|||||||
@@ -35,7 +35,7 @@ import net.packet.Packet;
|
|||||||
import net.server.Server;
|
import net.server.Server;
|
||||||
import net.server.audit.locks.MonitoredLockType;
|
import net.server.audit.locks.MonitoredLockType;
|
||||||
import net.server.audit.locks.factory.MonitoredReentrantLockFactory;
|
import net.server.audit.locks.factory.MonitoredReentrantLockFactory;
|
||||||
import server.MapleItemInformationProvider;
|
import server.ItemInformationProvider;
|
||||||
import server.MapleTrade;
|
import server.MapleTrade;
|
||||||
import tools.DatabaseConnection;
|
import tools.DatabaseConnection;
|
||||||
import tools.PacketCreator;
|
import tools.PacketCreator;
|
||||||
@@ -342,7 +342,7 @@ public class HiredMerchant extends AbstractMapObject {
|
|||||||
|
|
||||||
Character player = Server.getInstance().getWorld(world).getPlayerStorage().getCharacterById(ownerId);
|
Character player = Server.getInstance().getWorld(world).getPlayerStorage().getCharacterById(ownerId);
|
||||||
if (player != null && player.isLoggedinWorld()) {
|
if (player != null && player.isLoggedinWorld()) {
|
||||||
player.dropMessage(6, "[Hired Merchant] Item '" + MapleItemInformationProvider.getInstance().getName(item.getItemId()) + "'" + qtyStr + " has been sold for " + mesos + " mesos. (" + inStore + " left)");
|
player.dropMessage(6, "[Hired Merchant] Item '" + ItemInformationProvider.getInstance().getName(item.getItemId()) + "'" + qtyStr + " has been sold for " + mesos + " mesos. (" + inStore + " left)");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -53,7 +53,7 @@ import net.server.world.Party;
|
|||||||
import net.server.world.World;
|
import net.server.world.World;
|
||||||
import scripting.event.EventInstanceManager;
|
import scripting.event.EventInstanceManager;
|
||||||
import scripting.map.MapScriptManager;
|
import scripting.map.MapScriptManager;
|
||||||
import server.MapleItemInformationProvider;
|
import server.ItemInformationProvider;
|
||||||
import server.MapleStatEffect;
|
import server.MapleStatEffect;
|
||||||
import server.TimerManager;
|
import server.TimerManager;
|
||||||
import server.events.gm.*;
|
import server.events.gm.*;
|
||||||
@@ -610,7 +610,7 @@ public class MapleMap {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private static void sortDropEntries(List<MonsterDropEntry> from, List<MonsterDropEntry> item, List<MonsterDropEntry> visibleQuest, List<MonsterDropEntry> otherQuest, Character chr) {
|
private static void sortDropEntries(List<MonsterDropEntry> from, List<MonsterDropEntry> item, List<MonsterDropEntry> visibleQuest, List<MonsterDropEntry> otherQuest, Character chr) {
|
||||||
MapleItemInformationProvider ii = MapleItemInformationProvider.getInstance();
|
ItemInformationProvider ii = ItemInformationProvider.getInstance();
|
||||||
|
|
||||||
for (MonsterDropEntry mde : from) {
|
for (MonsterDropEntry mde : from) {
|
||||||
if (!ii.isQuestItem(mde.itemId)) {
|
if (!ii.isQuestItem(mde.itemId)) {
|
||||||
@@ -633,7 +633,7 @@ public class MapleMap {
|
|||||||
Collections.shuffle(dropEntry);
|
Collections.shuffle(dropEntry);
|
||||||
|
|
||||||
Item idrop;
|
Item idrop;
|
||||||
MapleItemInformationProvider ii = MapleItemInformationProvider.getInstance();
|
ItemInformationProvider ii = ItemInformationProvider.getInstance();
|
||||||
|
|
||||||
for (final MonsterDropEntry de : dropEntry) {
|
for (final MonsterDropEntry de : dropEntry) {
|
||||||
float cardRate = chr.getCardRate(de.itemId);
|
float cardRate = chr.getCardRate(de.itemId);
|
||||||
@@ -678,7 +678,7 @@ public class MapleMap {
|
|||||||
Collections.shuffle(globalEntry);
|
Collections.shuffle(globalEntry);
|
||||||
|
|
||||||
Item idrop;
|
Item idrop;
|
||||||
MapleItemInformationProvider ii = MapleItemInformationProvider.getInstance();
|
ItemInformationProvider ii = ItemInformationProvider.getInstance();
|
||||||
|
|
||||||
for (final MonsterGlobalDropEntry de : globalEntry) {
|
for (final MonsterGlobalDropEntry de : globalEntry) {
|
||||||
if (Randomizer.nextInt(999999) < de.chance) {
|
if (Randomizer.nextInt(999999) < de.chance) {
|
||||||
@@ -1397,7 +1397,7 @@ public class MapleMap {
|
|||||||
|
|
||||||
int buff = monster.getBuffToGive();
|
int buff = monster.getBuffToGive();
|
||||||
if (buff > -1) {
|
if (buff > -1) {
|
||||||
MapleItemInformationProvider mii = MapleItemInformationProvider.getInstance();
|
ItemInformationProvider mii = ItemInformationProvider.getInstance();
|
||||||
for (MapObject mmo : this.getPlayers()) {
|
for (MapObject mmo : this.getPlayers()) {
|
||||||
Character character = (Character) mmo;
|
Character character = (Character) mmo;
|
||||||
if (character.isAlive()) {
|
if (character.isAlive()) {
|
||||||
@@ -2177,7 +2177,7 @@ public class MapleMap {
|
|||||||
|
|
||||||
Collections.shuffle(list);
|
Collections.shuffle(list);
|
||||||
|
|
||||||
MapleItemInformationProvider ii = MapleItemInformationProvider.getInstance();
|
ItemInformationProvider ii = ItemInformationProvider.getInstance();
|
||||||
Random rnd = new Random();
|
Random rnd = new Random();
|
||||||
|
|
||||||
final Point dropPos = new Point(pos);
|
final Point dropPos = new Point(pos);
|
||||||
|
|||||||
@@ -24,7 +24,7 @@ package server.partyquest;
|
|||||||
|
|
||||||
import client.Character;
|
import client.Character;
|
||||||
import net.server.world.Party;
|
import net.server.world.Party;
|
||||||
import server.MapleItemInformationProvider;
|
import server.ItemInformationProvider;
|
||||||
import server.TimerManager;
|
import server.TimerManager;
|
||||||
import tools.PacketCreator;
|
import tools.PacketCreator;
|
||||||
|
|
||||||
@@ -168,14 +168,14 @@ public class Pyramid extends PartyQuest {
|
|||||||
int total = (kill + cool);
|
int total = (kill + cool);
|
||||||
if (buffcount == 0 && total >= 250) {
|
if (buffcount == 0 && total >= 250) {
|
||||||
buffcount++;
|
buffcount++;
|
||||||
MapleItemInformationProvider ii = MapleItemInformationProvider.getInstance();
|
ItemInformationProvider ii = ItemInformationProvider.getInstance();
|
||||||
for (Character chr : getParticipants())
|
for (Character chr : getParticipants())
|
||||||
ii.getItemEffect(2022585).applyTo(chr);
|
ii.getItemEffect(2022585).applyTo(chr);
|
||||||
|
|
||||||
} else if (buffcount == 1 && total >= 500) {
|
} else if (buffcount == 1 && total >= 500) {
|
||||||
buffcount++;
|
buffcount++;
|
||||||
skill++;
|
skill++;
|
||||||
MapleItemInformationProvider ii = MapleItemInformationProvider.getInstance();
|
ItemInformationProvider ii = ItemInformationProvider.getInstance();
|
||||||
for (Character chr : getParticipants()) {
|
for (Character chr : getParticipants()) {
|
||||||
chr.sendPacket(PacketCreator.getEnergy("massacre_skill", skill));
|
chr.sendPacket(PacketCreator.getEnergy("massacre_skill", skill));
|
||||||
ii.getItemEffect(2022586).applyTo(chr);
|
ii.getItemEffect(2022586).applyTo(chr);
|
||||||
@@ -183,7 +183,7 @@ public class Pyramid extends PartyQuest {
|
|||||||
} else if (buffcount == 2 && total >= 1000) {
|
} else if (buffcount == 2 && total >= 1000) {
|
||||||
buffcount++;
|
buffcount++;
|
||||||
skill++;
|
skill++;
|
||||||
MapleItemInformationProvider ii = MapleItemInformationProvider.getInstance();
|
ItemInformationProvider ii = ItemInformationProvider.getInstance();
|
||||||
for (Character chr : getParticipants()) {
|
for (Character chr : getParticipants()) {
|
||||||
chr.sendPacket(PacketCreator.getEnergy("massacre_skill", skill));
|
chr.sendPacket(PacketCreator.getEnergy("massacre_skill", skill));
|
||||||
ii.getItemEffect(2022587).applyTo(chr);
|
ii.getItemEffect(2022587).applyTo(chr);
|
||||||
@@ -194,7 +194,7 @@ public class Pyramid extends PartyQuest {
|
|||||||
} else if (buffcount == 4 && total >= 2000) {
|
} else if (buffcount == 4 && total >= 2000) {
|
||||||
buffcount++;
|
buffcount++;
|
||||||
skill++;
|
skill++;
|
||||||
MapleItemInformationProvider ii = MapleItemInformationProvider.getInstance();
|
ItemInformationProvider ii = ItemInformationProvider.getInstance();
|
||||||
for (Character chr : getParticipants()) {
|
for (Character chr : getParticipants()) {
|
||||||
chr.sendPacket(PacketCreator.getEnergy("massacre_skill", skill));
|
chr.sendPacket(PacketCreator.getEnergy("massacre_skill", skill));
|
||||||
ii.getItemEffect(2022588).applyTo(chr);
|
ii.getItemEffect(2022588).applyTo(chr);
|
||||||
|
|||||||
@@ -24,7 +24,7 @@ package server.quest.actions;
|
|||||||
import client.Character;
|
import client.Character;
|
||||||
import provider.Data;
|
import provider.Data;
|
||||||
import provider.DataTool;
|
import provider.DataTool;
|
||||||
import server.MapleItemInformationProvider;
|
import server.ItemInformationProvider;
|
||||||
import server.quest.Quest;
|
import server.quest.Quest;
|
||||||
import server.quest.QuestActionType;
|
import server.quest.QuestActionType;
|
||||||
|
|
||||||
@@ -52,6 +52,6 @@ public class BuffAction extends MapleQuestAction {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void run(Character chr, Integer extSelection) {
|
public void run(Character chr, Integer extSelection) {
|
||||||
MapleItemInformationProvider.getInstance().getItemEffect(itemEffect).applyTo(chr);
|
ItemInformationProvider.getInstance().getItemEffect(itemEffect).applyTo(chr);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -29,7 +29,7 @@ import client.inventory.manipulator.InventoryManipulator;
|
|||||||
import constants.inventory.ItemConstants;
|
import constants.inventory.ItemConstants;
|
||||||
import provider.Data;
|
import provider.Data;
|
||||||
import provider.DataTool;
|
import provider.DataTool;
|
||||||
import server.MapleItemInformationProvider;
|
import server.ItemInformationProvider;
|
||||||
import server.quest.Quest;
|
import server.quest.Quest;
|
||||||
import server.quest.QuestActionType;
|
import server.quest.QuestActionType;
|
||||||
import tools.FilePrinter;
|
import tools.FilePrinter;
|
||||||
@@ -241,7 +241,7 @@ public class ItemAction extends MapleQuestAction {
|
|||||||
|
|
||||||
private void announceInventoryLimit(List<Integer> itemids, Character chr) {
|
private void announceInventoryLimit(List<Integer> itemids, Character chr) {
|
||||||
for (Integer id : itemids) {
|
for (Integer id : itemids) {
|
||||||
if (MapleItemInformationProvider.getInstance().isPickupRestricted(id) && chr.haveItemWithId(id, true)) {
|
if (ItemInformationProvider.getInstance().isPickupRestricted(id) && chr.haveItemWithId(id, true)) {
|
||||||
chr.dropMessage(1, "Please check if you already have a similar one-of-a-kind item in your inventory.");
|
chr.dropMessage(1, "Please check if you already have a similar one-of-a-kind item in your inventory.");
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
@@ -293,7 +293,7 @@ public class ItemAction extends MapleQuestAction {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public boolean restoreLostItem(Character chr, int itemid) {
|
public boolean restoreLostItem(Character chr, int itemid) {
|
||||||
if (!MapleItemInformationProvider.getInstance().isQuestItem(itemid)) {
|
if (!ItemInformationProvider.getInstance().isQuestItem(itemid)) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -27,7 +27,7 @@ import client.inventory.Item;
|
|||||||
import constants.inventory.ItemConstants;
|
import constants.inventory.ItemConstants;
|
||||||
import provider.Data;
|
import provider.Data;
|
||||||
import provider.DataTool;
|
import provider.DataTool;
|
||||||
import server.MapleItemInformationProvider;
|
import server.ItemInformationProvider;
|
||||||
import server.quest.Quest;
|
import server.quest.Quest;
|
||||||
import server.quest.QuestRequirementType;
|
import server.quest.QuestRequirementType;
|
||||||
|
|
||||||
@@ -60,7 +60,7 @@ public class ItemRequirement extends MapleQuestRequirement {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean check(Character chr, Integer npcid) {
|
public boolean check(Character chr, Integer npcid) {
|
||||||
MapleItemInformationProvider ii = MapleItemInformationProvider.getInstance();
|
ItemInformationProvider ii = ItemInformationProvider.getInstance();
|
||||||
for(Integer itemId : items.keySet()) {
|
for(Integer itemId : items.keySet()) {
|
||||||
int countNeeded = items.get(itemId);
|
int countNeeded = items.get(itemId);
|
||||||
int count = 0;
|
int count = 0;
|
||||||
|
|||||||
@@ -4,7 +4,7 @@ import client.Character;
|
|||||||
import client.Client;
|
import client.Client;
|
||||||
import client.inventory.Item;
|
import client.inventory.Item;
|
||||||
import net.server.Server;
|
import net.server.Server;
|
||||||
import server.MapleItemInformationProvider;
|
import server.ItemInformationProvider;
|
||||||
import server.MapleTrade;
|
import server.MapleTrade;
|
||||||
import server.expeditions.Expedition;
|
import server.expeditions.Expedition;
|
||||||
|
|
||||||
@@ -21,13 +21,13 @@ public class LogHelper {
|
|||||||
//Trade 1 to trade 2
|
//Trade 1 to trade 2
|
||||||
log += trade1.getExchangeMesos() + " mesos from " + name1 + " to " + name2 + " \r\n";
|
log += trade1.getExchangeMesos() + " mesos from " + name1 + " to " + name2 + " \r\n";
|
||||||
for (Item item : trade1.getItems()){
|
for (Item item : trade1.getItems()){
|
||||||
String itemName = MapleItemInformationProvider.getInstance().getName(item.getItemId()) + "(" + item.getItemId() + ")";
|
String itemName = ItemInformationProvider.getInstance().getName(item.getItemId()) + "(" + item.getItemId() + ")";
|
||||||
log += item.getQuantity() + " " + itemName + " from " + name1 + " to " + name2 + " \r\n";
|
log += item.getQuantity() + " " + itemName + " from " + name1 + " to " + name2 + " \r\n";
|
||||||
}
|
}
|
||||||
//Trade 2 to trade 1
|
//Trade 2 to trade 1
|
||||||
log += trade2.getExchangeMesos() + " mesos from " + name2 + " to " + name1 + " \r\n";
|
log += trade2.getExchangeMesos() + " mesos from " + name2 + " to " + name1 + " \r\n";
|
||||||
for (Item item : trade2.getItems()){
|
for (Item item : trade2.getItems()){
|
||||||
String itemName = MapleItemInformationProvider.getInstance().getName(item.getItemId()) + "(" + item.getItemId() + ")";
|
String itemName = ItemInformationProvider.getInstance().getName(item.getItemId()) + "(" + item.getItemId() + ")";
|
||||||
log += item.getQuantity() + " " + itemName + " from " + name2 + " to " + name1 + " \r\n";
|
log += item.getQuantity() + " " + itemName + " from " + name2 + " to " + name1 + " \r\n";
|
||||||
}
|
}
|
||||||
log += "\r\n\r\n";
|
log += "\r\n\r\n";
|
||||||
@@ -65,7 +65,7 @@ public class LogHelper {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public static void logGacha(Character player, int itemid, String map) {
|
public static void logGacha(Character player, int itemid, String map) {
|
||||||
String itemName = MapleItemInformationProvider.getInstance().getName(itemid);
|
String itemName = ItemInformationProvider.getInstance().getName(itemid);
|
||||||
String timeStamp = new SimpleDateFormat("dd-MM-yyyy hh:mm:ss").format(new Date());
|
String timeStamp = new SimpleDateFormat("dd-MM-yyyy hh:mm:ss").format(new Date());
|
||||||
String log = player.getName() + " got a " + itemName + "(" + itemid + ") from the " + map + " gachapon. - " + timeStamp;
|
String log = player.getName() + " got a " + itemName + "(" + itemid + ") from the " + map + " gachapon. - " + timeStamp;
|
||||||
FilePrinter.print(FilePrinter.LOG_GACHAPON, log);
|
FilePrinter.print(FilePrinter.LOG_GACHAPON, log);
|
||||||
|
|||||||
@@ -248,7 +248,7 @@ public class PacketCreator {
|
|||||||
|
|
||||||
private static void addCharEquips(final OutPacket p, Character chr) {
|
private static void addCharEquips(final OutPacket p, Character chr) {
|
||||||
Inventory equip = chr.getInventory(InventoryType.EQUIPPED);
|
Inventory equip = chr.getInventory(InventoryType.EQUIPPED);
|
||||||
Collection<Item> ii = MapleItemInformationProvider.getInstance().canWearEquipment(chr, equip.list());
|
Collection<Item> ii = ItemInformationProvider.getInstance().canWearEquipment(chr, equip.list());
|
||||||
Map<Short, Integer> myEquip = new LinkedHashMap<>();
|
Map<Short, Integer> myEquip = new LinkedHashMap<>();
|
||||||
Map<Short, Integer> maskedEquip = new LinkedHashMap<>();
|
Map<Short, Integer> maskedEquip = new LinkedHashMap<>();
|
||||||
for (Item item : ii) {
|
for (Item item : ii) {
|
||||||
@@ -347,7 +347,7 @@ public class PacketCreator {
|
|||||||
}
|
}
|
||||||
|
|
||||||
protected static void addItemInfo(final OutPacket p, Item item, boolean zeroPosition) {
|
protected static void addItemInfo(final OutPacket p, Item item, boolean zeroPosition) {
|
||||||
MapleItemInformationProvider ii = MapleItemInformationProvider.getInstance();
|
ItemInformationProvider ii = ItemInformationProvider.getInstance();
|
||||||
boolean isCash = ii.isCash(item.getItemId());
|
boolean isCash = ii.isCash(item.getItemId());
|
||||||
boolean isPet = item.getPetId() > -1;
|
boolean isPet = item.getPetId() > -1;
|
||||||
boolean isRing = false;
|
boolean isRing = false;
|
||||||
@@ -2358,7 +2358,7 @@ public class PacketCreator {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public static Packet getNPCShop(Client c, int sid, List<MapleShopItem> items) {
|
public static Packet getNPCShop(Client c, int sid, List<MapleShopItem> items) {
|
||||||
MapleItemInformationProvider ii = MapleItemInformationProvider.getInstance();
|
ItemInformationProvider ii = ItemInformationProvider.getInstance();
|
||||||
final OutPacket p = OutPacket.create(SendOpcode.OPEN_NPC_SHOP);
|
final OutPacket p = OutPacket.create(SendOpcode.OPEN_NPC_SHOP);
|
||||||
p.writeInt(sid);
|
p.writeInt(sid);
|
||||||
p.writeShort(items.size()); // item count
|
p.writeShort(items.size()); // item count
|
||||||
@@ -2711,7 +2711,7 @@ public class PacketCreator {
|
|||||||
p.writeByte(0); //end of pets
|
p.writeByte(0); //end of pets
|
||||||
|
|
||||||
Item mount; //mounts can potentially crash the client if the player's level is not properly checked
|
Item mount; //mounts can potentially crash the client if the player's level is not properly checked
|
||||||
if (chr.getMount() != null && (mount = chr.getInventory(InventoryType.EQUIPPED).getItem((short) -18)) != null && MapleItemInformationProvider.getInstance().getEquipLevelReq(mount.getItemId()) <= chr.getLevel()) {
|
if (chr.getMount() != null && (mount = chr.getInventory(InventoryType.EQUIPPED).getItem((short) -18)) != null && ItemInformationProvider.getInstance().getEquipLevelReq(mount.getItemId()) <= chr.getLevel()) {
|
||||||
Mount mmount = chr.getMount();
|
Mount mmount = chr.getMount();
|
||||||
p.writeByte(mmount.getId()); //mount
|
p.writeByte(mmount.getId()); //mount
|
||||||
p.writeInt(mmount.getLevel()); //level
|
p.writeInt(mmount.getLevel()); //level
|
||||||
@@ -2730,7 +2730,7 @@ public class PacketCreator {
|
|||||||
p.writeInt(book.getNormalCard());
|
p.writeInt(book.getNormalCard());
|
||||||
p.writeInt(book.getSpecialCard());
|
p.writeInt(book.getSpecialCard());
|
||||||
p.writeInt(book.getTotalCards());
|
p.writeInt(book.getTotalCards());
|
||||||
p.writeInt(chr.getMonsterBookCover() > 0 ? MapleItemInformationProvider.getInstance().getCardMobId(chr.getMonsterBookCover()) : 0);
|
p.writeInt(chr.getMonsterBookCover() > 0 ? ItemInformationProvider.getInstance().getCardMobId(chr.getMonsterBookCover()) : 0);
|
||||||
Item medal = chr.getInventory(InventoryType.EQUIPPED).getItem((short) -49);
|
Item medal = chr.getInventory(InventoryType.EQUIPPED).getItem((short) -49);
|
||||||
if (medal != null) {
|
if (medal != null) {
|
||||||
p.writeInt(medal.getItemId());
|
p.writeInt(medal.getItemId());
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
package tools.mapletools;
|
package tools.mapletools;
|
||||||
|
|
||||||
import server.MapleItemInformationProvider;
|
import server.ItemInformationProvider;
|
||||||
import tools.DatabaseConnection;
|
import tools.DatabaseConnection;
|
||||||
|
|
||||||
import java.io.BufferedReader;
|
import java.io.BufferedReader;
|
||||||
@@ -85,7 +85,7 @@ public class CashCosmeticsFetcher {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private static void reportCosmeticCouponResults() {
|
private static void reportCosmeticCouponResults() {
|
||||||
final MapleItemInformationProvider ii = MapleItemInformationProvider.getInstance();
|
final ItemInformationProvider ii = ItemInformationProvider.getInstance();
|
||||||
for (int itemid = 5150000; itemid <= 5154000; itemid++) {
|
for (int itemid = 5150000; itemid <= 5154000; itemid++) {
|
||||||
String itemName = ii.getName(itemid);
|
String itemName = ii.getName(itemid);
|
||||||
|
|
||||||
@@ -102,7 +102,7 @@ public class CashCosmeticsFetcher {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public static void main(String[] args) {
|
public static void main(String[] args) {
|
||||||
DatabaseConnection.initializeConnectionPool(); // MapleItemInformationProvider loads unrelated stuff from the db
|
DatabaseConnection.initializeConnectionPool(); // ItemInformationProvider loads unrelated stuff from the db
|
||||||
try {
|
try {
|
||||||
loadScripts();
|
loadScripts();
|
||||||
System.out.println("Loaded scripts");
|
System.out.println("Loaded scripts");
|
||||||
|
|||||||
@@ -2,7 +2,7 @@ package tools.mapletools;
|
|||||||
|
|
||||||
import org.apache.commons.io.FileUtils;
|
import org.apache.commons.io.FileUtils;
|
||||||
import provider.wz.WZFiles;
|
import provider.wz.WZFiles;
|
||||||
import server.MapleItemInformationProvider;
|
import server.ItemInformationProvider;
|
||||||
import tools.DatabaseConnection;
|
import tools.DatabaseConnection;
|
||||||
import tools.Pair;
|
import tools.Pair;
|
||||||
|
|
||||||
@@ -38,7 +38,7 @@ public class QuestItemFetcher {
|
|||||||
private static final Map<Integer, int[]> mixedQuestidItems = new HashMap<>();
|
private static final Map<Integer, int[]> mixedQuestidItems = new HashMap<>();
|
||||||
private static final Set<Integer> limitedQuestids = new HashSet<>();
|
private static final Set<Integer> limitedQuestids = new HashSet<>();
|
||||||
|
|
||||||
private static MapleItemInformationProvider ii;
|
private static ItemInformationProvider ii;
|
||||||
private static PrintWriter printWriter = null;
|
private static PrintWriter printWriter = null;
|
||||||
private static BufferedReader bufferedReader = null;
|
private static BufferedReader bufferedReader = null;
|
||||||
private static byte status = 0;
|
private static byte status = 0;
|
||||||
@@ -520,8 +520,8 @@ public class QuestItemFetcher {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public static void main(String[] args) {
|
public static void main(String[] args) {
|
||||||
DatabaseConnection.initializeConnectionPool(); // MapleItemInformationProvider loads some unrelated db data
|
DatabaseConnection.initializeConnectionPool(); // ItemInformationProvider loads some unrelated db data
|
||||||
ii = MapleItemInformationProvider.getInstance();
|
ii = ItemInformationProvider.getInstance();
|
||||||
|
|
||||||
reportQuestItemData();
|
reportQuestItemData();
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
package tools.mapletools;
|
package tools.mapletools;
|
||||||
|
|
||||||
import provider.wz.WZFiles;
|
import provider.wz.WZFiles;
|
||||||
import server.MapleItemInformationProvider;
|
import server.ItemInformationProvider;
|
||||||
import tools.DatabaseConnection;
|
import tools.DatabaseConnection;
|
||||||
|
|
||||||
import java.io.*;
|
import java.io.*;
|
||||||
@@ -227,7 +227,7 @@ public class SkillMakerFetcher {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private static void generateUpdatedItemFee() {
|
private static void generateUpdatedItemFee() {
|
||||||
MapleItemInformationProvider ii = MapleItemInformationProvider.getInstance();
|
ItemInformationProvider ii = ItemInformationProvider.getInstance();
|
||||||
float adjPrice = reqMeso;
|
float adjPrice = reqMeso;
|
||||||
|
|
||||||
if (itemid < 2000000) {
|
if (itemid < 2000000) {
|
||||||
@@ -329,7 +329,7 @@ public class SkillMakerFetcher {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public static void main(String[] args) {
|
public static void main(String[] args) {
|
||||||
DatabaseConnection.initializeConnectionPool(); // Using MapleItemInformationProvider which loads som unrelated things from the db
|
DatabaseConnection.initializeConnectionPool(); // Using ItemInformationProvider which loads som unrelated things from the db
|
||||||
writeMakerTableData();
|
writeMakerTableData();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -23,7 +23,7 @@ import client.Character;
|
|||||||
import config.YamlConfig;
|
import config.YamlConfig;
|
||||||
import constants.game.GameConstants;
|
import constants.game.GameConstants;
|
||||||
import constants.inventory.ItemConstants;
|
import constants.inventory.ItemConstants;
|
||||||
import server.MapleItemInformationProvider;
|
import server.ItemInformationProvider;
|
||||||
import tools.PacketCreator;
|
import tools.PacketCreator;
|
||||||
|
|
||||||
import java.util.Calendar;
|
import java.util.Calendar;
|
||||||
@@ -105,12 +105,12 @@ public class Fishing {
|
|||||||
break;
|
break;
|
||||||
case 2:
|
case 2:
|
||||||
int itemid = getRandomItem();
|
int itemid = getRandomItem();
|
||||||
rewardStr = "a(n) " + MapleItemInformationProvider.getInstance().getName(itemid) + ".";
|
rewardStr = "a(n) " + ItemInformationProvider.getInstance().getName(itemid) + ".";
|
||||||
|
|
||||||
if (chr.canHold(itemid)) {
|
if (chr.canHold(itemid)) {
|
||||||
chr.getAbstractPlayerInteraction().gainItem(itemid, true);
|
chr.getAbstractPlayerInteraction().gainItem(itemid, true);
|
||||||
} else {
|
} else {
|
||||||
chr.showHint("Couldn't catch a(n) #r" + MapleItemInformationProvider.getInstance().getName(itemid) + "#k due to #e#b" + ItemConstants.getInventoryType(itemid) + "#k#n inventory limit.");
|
chr.showHint("Couldn't catch a(n) #r" + ItemInformationProvider.getInstance().getName(itemid) + "#k due to #e#b" + ItemConstants.getInventoryType(itemid) + "#k#n inventory limit.");
|
||||||
rewardStr += ".. but has goofed up due to full inventory.";
|
rewardStr += ".. but has goofed up due to full inventory.";
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
|||||||
Reference in new issue
Block a user