private void changeMapInternal(final MapleMap to, final Point pos, MaplePacket warpPacket) {
        if (NPCScriptManager.getInstance().getCM(client) != null) {
            NPCScriptManager.getInstance().dispose(client);
        }
        if (eventInstance != null) {
            eventInstance.changedMap(this, to.getId());
        }
        removeClones();
        if (isChunin() && !noHide) {
            this.hide();
        }
        if (isHidden() && !noHide) {
            getClient().getSession().write(MaplePacketCreator.sendGMOperation(16, 1));
        }
        client.getSession().write(warpPacket);
        map.removePlayer(this);
        if (client.getChannelServer().getPlayerStorage().getCharacterById(getId()) != null) {
            map = to;
            setPosition(pos);
            to.addPlayer(this);
            stats.relocHeal();
        }
    }