#########################################################################


    public static final int JAGUAR = 111112;
    public static final int JAGUAR_2 = 111113;
    public static final int JAGUAR_3 = 111114;
    public static final int JAGUAR_4 = 111115;
    public static final int JAGUAR_5 = 111116;
    public static final int JAGUAR_6 = 111117;
    public static final int JAGUAR_7 = 111118;


#########################################################################

            case 30001061: { //捕获
                mobID = slea.readInt();
                MapleMonster mob = chr.getMap().getMonsterByOid(mobID);
                if (mob != null) {
                    boolean success = mob.getHp() <= mob.getMobMaxHp() / 2;
                    chr.getMap().broadcastMessage(chr, MaplePacketCreator.showBuffeffect(chr.getId(), skillid, 1, chr.getLevel(), skillLevel, (byte) (success ? 1 : 0)), chr.getTruePosition());
                    if (success) {
                        if (mob.getId() >= 9304000 && mob.getId() < 9305000) {
                            chr.getQuestNAdd(MapleQuest.getInstance(111112)).setCustomData(String.valueOf((mob.getId() - 9303999) * 10));
                            final MapleQuestStatus stats = c.getPlayer().getQuestNoAdd(MapleQuest.getInstance(GameConstants.JAGUAR));
                            c.getPlayer().updateQuest(stats, true);
                        } else {
                            if (chr.getIntNoRecord(111113) == 0) {
                                chr.getQuestNAdd(MapleQuest.getInstance(GameConstants.JAGUAR_2)).setCustomData(String.valueOf(mob.getId()));
                                final MapleQuestStatus stats = c.getPlayer().getQuestNoAdd(MapleQuest.getInstance(GameConstants.JAGUAR_2));
                                c.getPlayer().updateQuest(stats, true);
                            } else if (chr.getIntNoRecord(111114) == 0) {
                                chr.getQuestNAdd(MapleQuest.getInstance(GameConstants.JAGUAR_3)).setCustomData(String.valueOf(mob.getId()));
                                final MapleQuestStatus stats = c.getPlayer().getQuestNoAdd(MapleQuest.getInstance(GameConstants.JAGUAR_3));
                                c.getPlayer().updateQuest(stats, true);
                            } else if (chr.getIntNoRecord(111115) == 0) {
                                chr.getQuestNAdd(MapleQuest.getInstance(GameConstants.JAGUAR_4)).setCustomData(String.valueOf(mob.getId()));
                                final MapleQuestStatus stats = c.getPlayer().getQuestNoAdd(MapleQuest.getInstance(GameConstants.JAGUAR_4));
                                c.getPlayer().updateQuest(stats, true);
                            } else if (chr.getIntNoRecord(111116) == 0) {
                                chr.getQuestNAdd(MapleQuest.getInstance(GameConstants.JAGUAR_5)).setCustomData(String.valueOf(mob.getId()));
                                final MapleQuestStatus stats = c.getPlayer().getQuestNoAdd(MapleQuest.getInstance(GameConstants.JAGUAR_5));
                                c.getPlayer().updateQuest(stats, true);
                            } else if (chr.getIntNoRecord(111117) == 0) {
                                chr.getQuestNAdd(MapleQuest.getInstance(GameConstants.JAGUAR_6)).setCustomData(String.valueOf(mob.getId()));
                                final MapleQuestStatus stats = c.getPlayer().getQuestNoAdd(MapleQuest.getInstance(GameConstants.JAGUAR_6));
                                c.getPlayer().updateQuest(stats, true);
                            } else {
                                chr.getQuestNAdd(MapleQuest.getInstance(GameConstants.JAGUAR_7)).setCustomData(String.valueOf(chr.getIntNoRecord(GameConstants.JAGUAR_7) + 1));
                                chr.getQuestNAdd(MapleQuest.getInstance(GameConstants.JAGUAR + (chr.getIntNoRecord(GameConstants.JAGUAR_7) % 5))).setCustomData(String.valueOf((mob.getId())));
                            }
                        }
                        chr.getMap().killMonster(mob, chr, true, false, (byte) 1);
                        c.getSession().write(MaplePacketCreator.updateJaguar(chr));
                        chr.saveToDB(false, false);
                    } else {
                        chr.dropMessage(5, "怪物体力过高，捕抓失败。");
                    }
                }
                c.getSession().write(MaplePacketCreator.enableActions());
                break;
            }
            case 30001062: { //猎人的召唤
                //for (MapleMonster m : chr.getMap().getAllMonster()) {
                //    MonsterStatusEffect mse = m.getBuff(MonsterStatus.Dazzle);
                //    if (mse!= null && mse.getX().intValue() == chr.getId()) {
                //        chr.getMap().broadcastMessage(MobPacket.killMonster(m.getObjectId(), 1));
                //        chr.getMap().removeMapObject(m);
                //    }
                //}
                MapleMonster mob;
                slea.readInt();
                Point posi = slea.readPos();
                slea.readByte();
                List<Integer> checkCaughtMob = new ArrayList<>();
                for (int i = 0; i < 4; i++) {
                    if (chr.getIntNoRecord(111113 + i) != 0) {
                        checkCaughtMob.add(chr.getIntNoRecord(111113 + i));
                    }
                }
                int dd = chr.getIntNoRecord(111113 + Randomizer.nextInt(checkCaughtMob.size()));
                mob = MapleLifeFactory.getMonster(dd);
                mob.setPosition(posi);
                mob.setStance(2);
                mob.getStats().setExp(0);
                mob.setStat(new MonsterStatusEffect(MonsterStatus.心灵控制, chr.getId(), 30001062, null, false), 40000); //官方默认20秒
                chr.getMap().spawnMonsterOnGroundBelow(mob, posi);
                c.getSession().write(MaplePacketCreator.enableActions());
                break;
            }


心灵控制(0x10000000, 1),

#########################################################################


    public void setStat(final MonsterStatusEffect status, long duration) {
        final MonsterStatus stat = status.getStati();
        status.setCancelTask(duration);
        stati.put(stat, status);
    }


#########################################################################




    /*
    更新捕获的怪物
    */
    public static void addJaguarInfo(MaplePacketLittleEndianWriter mplew, MapleCharacter chr) {
        mplew.write(chr.getIntNoRecord(111112));
        mplew.writeInt(chr.getIntNoRecord(111113)); //可以捕获的5个怪物的ID
        mplew.writeInt(chr.getIntNoRecord(111114));
        mplew.writeInt(chr.getIntNoRecord(111115));
        mplew.writeInt(chr.getIntNoRecord(111116));
        mplew.writeInt(chr.getIntNoRecord(111117));
    }

#########################################################################

    /*
    邪魔斯类型怪物受到伤害设定
    */
    public static void HypnotizeDmg(LittleEndianAccessor slea, MapleCharacter chr) {
        MapleMonster mob_from = chr.getMap().getMonsterByOid(slea.readInt());
        slea.skip(4);
        int to = slea.readInt();
        slea.skip(1);
        slea.skip(1);
        int damage = slea.readInt();

        MapleMonster mob_to = chr.getMap().getMonsterByOid(to);

        if (mob_from != null && mob_to != null/* && mob_to.getStats().isFriendly()*/) {//猎人的召唤怪物伤害
            if (damage > 30000) {
                return;
            }
            mob_to.damage(chr, damage, true);
            checkShammos(chr, mob_to, chr.getMap());
        }
    }
