UseCatchItemHandler.java
上传用户:gwt600
上传日期:2021-06-03
资源大小:704k
文件大小:2k
源码类别:

游戏

开发平台:

Java

  1. package net.sf.odinms.net.channel.handler;
  2. import net.sf.odinms.client.MapleCharacter;
  3. import net.sf.odinms.client.MapleClient;
  4. import net.sf.odinms.net.AbstractMaplePacketHandler;
  5. import net.sf.odinms.server.life.MapleMonster;
  6. import net.sf.odinms.tools.MaplePacketCreator;
  7. import net.sf.odinms.tools.data.input.SeekableLittleEndianAccessor;
  8. /**
  9. *
  10. * @author Pat
  11. */
  12. public class UseCatchItemHandler extends AbstractMaplePacketHandler {
  13. public UseCatchItemHandler() {
  14. }
  15. public void handlePacket(SeekableLittleEndianAccessor slea, MapleClient c) {
  16.         c.getPlayer().resetAfkTime();
  17. // 4A 00
  18. // B9 F4 8B 00 // unknown
  19. // 01 00 // success??
  20. // 32 A3 22 00 // itemid
  21. // 38 37 2B 00 // monsterid
  22. slea.readInt();
  23. slea.readShort();
  24. int itemid = slea.readInt();
  25. int monsterid = slea.readInt();
  26. MapleMonster mob = c.getPlayer().getMap().getMonsterByOid(monsterid);
  27. if (mob != null) {
  28. if (mob.getHp() <= mob.getMaxHp() / 2) {
  29. if (itemid == 2270002) {
  30. c.getPlayer().getMap().broadcastMessage(MaplePacketCreator.catchMonster(monsterid, itemid, (byte) 1));
  31. }
  32. mob.getMap().killMonster(mob, (MapleCharacter) mob.getMap().getAllPlayer().get(0), false, false, 0);
  33. c.getPlayer().setAPQScore(c.getPlayer().getAPQScore() + 1);
  34. c.getPlayer().getMap().broadcastMessage(MaplePacketCreator.updateAriantPQRanking(c.getPlayer().getName(), c.getPlayer().getAPQScore(), false));
  35. } else {
  36. c.getSession().write(MaplePacketCreator.serverNotice(5, "You cannot catch the monster as it is too strong."));
  37. }
  38. }
  39. }
  40. }