[Release] post NPC

Status
Not open for further replies.
Newbie Spellweaver
Joined
Jun 6, 2008
Messages
59
Reaction score
3
Find this NPCConversationManager.java file

add this

public boolean getConnetChar(String str) throws RemoteException {
return c.getChannelServer().getPlayerStorage().getCharacterByName(str) != null;
}

public void Chatnotice(String str, int type, String text) {

MapleCharacter chr = c.getChannelServer().getPlayerStorage().getCharacterByName(str);
chr.getClient().getSession().write(MaplePacketCreator.serverNotice(type, text));
}

public String getImageChar(byte mode, byte type, int sel) {
MapleInventory equip = c.getPlayer().getInventory(MapleInventoryType.getByType(mode));
if (equip.getItem((byte) type) != null && !(equip.getItem(type).getItemId() >= 2060000 && equip.getItem(type).getItemId() <= 2080000)) { // && equip.getItem(type).getQuantity() <= 100) {
return "#L"+sel+"##i"+equip.getItem((byte) (type)).getItemId()+"##l";
} else {
return "";
}
}

public String getImageChar(byte mode, byte type) {

MapleInventory equip = c.getPlayer().getInventory(MapleInventoryType.getByType(mode));
if (equip.getItem((byte) type) != null && !(equip.getItem(type).getItemId() >= 2060000 && equip.getItem(type).getItemId() <= 2080000)) { // && equip.getItem(type).getQuantity() <= 100) {
return "#i"+equip.getItem((byte) (type)).getItemId()+"#";
} else {
return "";
}

}

public String getQuaChar(byte mode, byte type) {

MapleInventory equip = c.getPlayer().getInventory(MapleInventoryType.getByType(mode));
if (equip.getItem((byte) type) != null && equip.getItem(type).getQuantity() <= 100) {
return equip.getItem((byte) (type)).getQuantity()+"";
} else if (equip.getItem((byte) type) != null && equip.getItem(type).getQuantity() > 100) {
return "100";
} else {
return "";
}
}

public String getInvenChar(byte mode, byte type) {
MapleInventory equip = c.getPlayer().getInventory(MapleInventoryType.getByType(mode));
if (equip.getItem((byte) type) != null) {
return equip.getItem((byte) (type)).getItemId()+"";
} else {
return "";
}
}

public void gainItem(String str, byte mode, int id, short quantity) {
MapleCharacter chr = c.getChannelServer().getPlayerStorage().getCharacterByName(str);
StringBuilder logInfo = new StringBuilder(chr.getName());
logInfo.append(" received ");
logInfo.append(quantity);
logInfo.append(" from a scripted PlayerInteraction (");
logInfo.append(this.toString());
logInfo.append(")");
MapleInventoryManipulator.addById(c, chr.getName(), id, quantity, logInfo.toString());
chr.getClient().getSession().write(MaplePacketCreator.getShowItemGain(id,quantity, true));
}

public boolean getInvenFull(String str, byte type) {
MapleCharacter chr = c.getChannelServer().getPlayerStorage().getCharacterByName(str);
return chr.getInventory(MapleInventoryType.getByType(type)).isFull();
}

public String getName() {
return getPlayer().getName();
}
Find this MapleInventoryManipulator.java file

Find this addbyId method

only replace

public static boolean addById(MapleClient c, int itemId, short quantity, String logInfo) {
return addById(c, itemId, quantity, logInfo, null);
}

public static boolean addById(MapleClient c, String str, int itemId, short quantity, String logInfo) {
return addById(c, str, itemId, quantity, logInfo, null);
}

public static boolean addById(MapleClient c, String str, int itemId, short quantity, String logInfo, String owner) {
return addById(c, str, itemId, quantity, logInfo, owner, -1);
}

public static boolean addById(MapleClient c, int itemId, short quantity, String logInfo, String owner) {
return addById(c, c.getPlayer().getName(), itemId, quantity, logInfo, owner, -1);
}

public static boolean addById(MapleClient c, int itemId, short quantity, String logInfo, String owner, int petid) {
return addById(c, c.getPlayer().getName(), itemId, quantity, logInfo, owner, -1);
}

public static boolean addById(MapleClient c, String str, int itemId, short quantity, String logInfo, String owner, int petid) {
MapleCharacter chr = c.getChannelServer().getPlayerStorage().getCharacterByName(str);
MapleItemInformationProvider ii = MapleItemInformationProvider.getInstance();
MapleInventoryType type = ii.getInventoryType(itemId);
if (!type.equals(MapleInventoryType.EQUIP)) {
short slotMax = ii.getSlotMax(itemId);
List<IItem> existing = chr.getInventory(type).listById(itemId);
if (!ii.isThrowingStar(itemId) && !ii.isBullet(itemId)) {
if (existing.size() > 0) { // first update all existing slots to slotMax
Iterator<IItem> i = existing.iterator();
while (quantity > 0) {
if (i.hasNext()) {
Item eItem = (Item) i.next();
short oldQ = eItem.getQuantity();
if (oldQ < slotMax && (eItem.getOwner().equals(owner) || owner == null)) {
short newQ = (short) Math.min(oldQ + quantity, slotMax);
quantity -= (newQ - oldQ);
eItem.setQuantity(newQ);
StringBuilder logMsg = new StringBuilder("Added ");
logMsg.append(newQ - oldQ);
logMsg.append(" items to stack, new quantity is ");
logMsg.append(newQ);
logMsg.append(" (");
logMsg.append(logInfo);
logMsg.append(" )");
eItem.log(logMsg.toString(),false);
chr.getClient().getSession().write(MaplePacketCreator.updateInventorySlot(type, eItem));
}
} else
break;
}
}
}
// add new slots if there is still something left
while (quantity > 0 || ii.isThrowingStar(itemId) || ii.isBullet(itemId)) {
short newQ = (short) Math.min(quantity, slotMax);
quantity -= newQ;
Item nItem = new Item(itemId, (byte) 0, newQ, petid);
StringBuilder logMsg = new StringBuilder("Created while adding by id. Quantity ");
logMsg.append(newQ);
logMsg.append(" (");
logMsg.append(logInfo);
logMsg.append(" )");
nItem.log(logMsg.toString(),false);
byte newSlot = chr.getInventory(type).addItem(nItem);
if (newSlot == -1) {
chr.getClient().getSession().write(MaplePacketCreator.getInventoryFull());
chr.getClient().getSession().write(MaplePacketCreator.getShowInventoryFull());
return false;
}
if (owner != null) {
nItem.setOwner(owner);
}
chr.getClient().getSession().write(MaplePacketCreator.addInventorySlot(type, nItem));
if ((ii.isThrowingStar(itemId) || ii.isBullet(itemId)) && quantity == 0) break;
}
} else {
if (quantity == 1) {
IItem nEquip = ii.getEquipById(itemId);
StringBuilder logMsg = new StringBuilder("Created while adding by id. (");
logMsg.append(logInfo);
logMsg.append(" )");
nEquip.log(logMsg.toString(),false);
if (owner != null) {
nEquip.setOwner(owner);
}

byte newSlot = chr.getInventory(type).addItem(nEquip);
if (newSlot == -1) {
chr.getClient().getSession().write(MaplePacketCreator.getInventoryFull());
chr.getClient().getSession().write(MaplePacketCreator.getShowInventoryFull());
return false;
}
chr.getClient().getSession().write(MaplePacketCreator.addInventorySlot(type, nEquip));
} else {
throw new InventoryException("Trying to create equip with non-one quantity");
}
}
return true;
}
download this 9010009.js




Character Found

c92h23 - [Release] post NPC - RaGEZONE Forums


Menu

c92h23 - [Release] post NPC - RaGEZONE Forums


if Equip, or Setup, or Cash Item Send, This Screen Shot

c92h23 - [Release] post NPC - RaGEZONE Forums


c92h23 - [Release] post NPC - RaGEZONE Forums


If Use, or Etc Item Send, This Screen Shot

c92h23 - [Release] post NPC - RaGEZONE Forums


c92h23 - [Release] post NPC - RaGEZONE Forums


c92h23 - [Release] post NPC - RaGEZONE Forums


If Send to Your Character

c92h23 - [Release] post NPC - RaGEZONE Forums


Koreans excel !!

Made By ReturnSSI(c92h23)

Thanks to BlackSSI / Leaf / KiraSSI
 
Nice work. The only fault I see in this is that you can trade untradeable items which might be a problem in some servers who have character exclusive items. Once you have that fixed it should be pretty epic.
 
This can cause kipe duping of items though. But i appreciate your effort put into this.
*Edit* @Shadow26 you can fix that easily.
 
Status
Not open for further replies.
Back