Advertisement
Guest User

Untitled

a guest
Aug 18th, 2017
53
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.61 KB | None | 0 0
  1. package net.sf.odinms.net.channel.handler;
  2.  
  3. import net.sf.odinms.client.MapleClient;
  4. import net.sf.odinms.client.MaplePet;
  5. import net.sf.odinms.client.anticheat.CheatingOffense;
  6. import net.sf.odinms.net.AbstractMaplePacketHandler;
  7. import net.sf.odinms.server.MapleInventoryManipulator;
  8. import net.sf.odinms.server.MapleItemInformationProvider;
  9. import net.sf.odinms.server.maps.MapleMapItem;
  10. import net.sf.odinms.server.maps.MapleMapObject;
  11. import net.sf.odinms.tools.MaplePacketCreator;
  12. import net.sf.odinms.tools.data.input.SeekableLittleEndianAccessor;
  13. import net.sf.odinms.client.MapleInventoryType;
  14.  
  15. public class PetLootHandler extends AbstractMaplePacketHandler {
  16.  
  17. @Override
  18. public void handlePacket(SeekableLittleEndianAccessor slea, MapleClient c) {
  19. MapleItemInformationProvider ii = MapleItemInformationProvider.getInstance();
  20.  
  21. if (c.getPlayer().getNoPets() == 0) {
  22. return;
  23. }
  24. MaplePet pet = c.getPlayer().getPet(c.getPlayer().getPetIndex(slea.readInt()));
  25. slea.skip(13);
  26. int oid = slea.readInt();
  27. MapleMapObject ob = c.getPlayer().getMap().getMapObject(oid);
  28. if (ob == null || pet == null) {
  29. c.getSession().write(MaplePacketCreator.getInventoryFull());
  30. return;
  31. }
  32. if (ob instanceof MapleMapItem) {
  33. MapleMapItem mapitem = (MapleMapItem) ob;
  34. synchronized (mapitem) {
  35. if (mapitem.isPickedUp()) {
  36. c.getSession().write(MaplePacketCreator.getInventoryFull());
  37. return;
  38. }
  39. double distance = pet.getPos().distanceSq(mapitem.getPosition());
  40. c.getPlayer().getCheatTracker().checkPickupAgain();
  41. if (distance > 90000.0) { // 300^2, 550 is approximatly the range of ultis
  42. c.getPlayer().getCheatTracker().registerOffense(CheatingOffense.ITEMVAC);
  43. } else if (distance > 22500.0) {
  44. c.getPlayer().getCheatTracker().registerOffense(CheatingOffense.SHORT_ITEMVAC);
  45. }
  46. if (mapitem.getMeso() > 0) {
  47. if (c.getPlayer().getInventory(MapleInventoryType.EQUIPPED).findById(1812000) != null) { //Evil hax until I find the right packet - Ramon
  48. c.getPlayer().gainMeso(mapitem.getMeso(), true, true);
  49. c.getPlayer().getMap().broadcastMessage(MaplePacketCreator.removeItemFromMap(mapitem.getObjectId(), 5, c.getPlayer().getId(), true, c.getPlayer().getPetIndex(pet)), mapitem.getPosition());
  50. c.getPlayer().getCheatTracker().pickupComplete();
  51. c.getPlayer().getMap().removeMapObject(ob);
  52. } else {
  53. c.getPlayer().getCheatTracker().pickupComplete();
  54. mapitem.setPickedUp(false);
  55. c.getSession().write(MaplePacketCreator.enableActions());
  56. return;
  57. }
  58. } else {
  59. if (ii.isPet(mapitem.getItem().getItemId())) {
  60. if (MapleInventoryManipulator.addById(c, mapitem.getItem().getItemId(), mapitem.getItem().getQuantity(), null)) {
  61. c.getPlayer().getMap().broadcastMessage(MaplePacketCreator.removeItemFromMap(mapitem.getObjectId(), 5, c.getPlayer().getId(), true, c.getPlayer().getPetIndex(pet)), mapitem.getPosition());
  62. c.getPlayer().getCheatTracker().pickupComplete();
  63. c.getPlayer().getMap().removeMapObject(ob);
  64. } else {
  65. c.getPlayer().getCheatTracker().pickupComplete();
  66. return;
  67. }
  68. } else {
  69. if (MapleInventoryManipulator.addFromDrop(c, mapitem.getItem(), true)) {
  70. c.getPlayer().getMap().broadcastMessage(MaplePacketCreator.removeItemFromMap(mapitem.getObjectId(), 5, c.getPlayer().getId(), true, c.getPlayer().getPetIndex(pet)), mapitem.getPosition());
  71. c.getPlayer().getCheatTracker().pickupComplete();
  72. c.getPlayer().getMap().removeMapObject(ob);
  73. } else {
  74. c.getPlayer().getCheatTracker().pickupComplete();
  75. return;
  76. }
  77. }
  78. }
  79. mapitem.setPickedUp(true);
  80. }
  81. }
  82. c.getSession().write(MaplePacketCreator.enableActions());
  83. }
  84. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement