Рейтинг темы:
  • 0 Голос(ов) - 0 в среднем
  • 1
  • 2
  • 3
  • 4
  • 5
Подробная информация
#1
Подскажите как отключить, запрет на просмотр подробной информации о игроке?
Консоль GameServer не советует:"Вы настраивайте сервер уже 1 час. Советуем вам немного отдохнуть".
Ответ
#2
найти нужный клиент пакет аля CM_PLAYER_INFO и убить посылку серверного пакета
Ответ
#3
А для кого для Gm или для всех?
Ответ
#4
Для всех, ну или только для GM, но думаю будет слишком проблематично

Добавлено через 4 минуты
Код:
public class SM_PLAYER_INFO extends AionServerPacket
{

    /**
     * Visible player
     */
    private final Player    player;
    private boolean        enemy;

    /**
     * Constructs new <tt>SM_PLAYER_INFO </tt> packet
     *
     * @param player
     *            actual player.
     * @param enemy
     */
    public SM_PLAYER_INFO(Player player, boolean enemy)
    {
        this.player = player;
        this.enemy = enemy;
    }

    /**
     * {@inheritDoc}
     */
    @Override
    protected void writeImpl(AionConnection con, ByteBuffer buf)
    {
        PlayerCommonData pcd = player.getCommonData();
        
        final int raceId;

        if(player.getAdminNeutral() > 1 || con.getActivePlayer().getAdminNeutral() > 1)
            raceId = con.getActivePlayer().getCommonData().getRace().getRaceId();

        else if((player.getAdminEnmity() > 1 || con.getActivePlayer().getAdminEnmity() > 1) &&
            con.getActivePlayer().getName() != player.getName() && con.getActivePlayer().isFriend(player))
            raceId = (con.getActivePlayer().getCommonData().getRace().getRaceId() == 0 ? 1 : 0);

        else
            raceId = pcd.getRace().getRaceId();

        final int genderId = pcd.getGender().getGenderId();
        final PlayerAppearance playerAppearance = player.getPlayerAppearance();

        writeF(buf, player.getX());// x
        writeF(buf, player.getY());// y
        writeF(buf, player.getZ());// z
        writeD(buf, player.getObjectId());
        /**
         * A3 female asmodian A2 male asmodian A1 female elyos A0 male elyos
         */
        writeD(buf, pcd.getTemplateId());
        /**
         * Transformed state - send transformed model id Regular state - send player model id (from common data)
         */
        writeD(buf, player.getTransformedModelId() == 0 ? pcd.getTemplateId() : player.getTransformedModelId());
        
        writeC(buf, 0x00); // new 2.0 Packet --- probably pet info?
        writeC(buf, enemy ? 0x00 : 0x26);

        writeC(buf, raceId); // race
        writeC(buf, pcd.getPlayerClass().getClassId());
        writeC(buf, genderId); // sex
        writeH(buf, player.getState());

        byte[] unk = new byte[] { (byte) 0x00, (byte) 0x00, (byte) 0x00, (byte) 0x00, (byte) 0x00, (byte) 0x00,
            (byte) 0x00, (byte) 0x00 };
        writeB(buf, unk);

        writeC(buf, player.getHeading());

        writeS(buf, player.getName());

        writeD(buf, pcd.getTitleId());
        writeC(buf, 0x0);// if set 0x1 can't jump and fly..
        writeH(buf, player.getCastingSkillId());
        writeH(buf, player.isLegionMember() ? player
            .getLegion().getLegionId() : 0);
        writeH(buf, 0); // User Emblem related?
        writeH(buf, player.isLegionMember() ? player
            .getLegion().getLegionEmblem().getEmblemId() : 0);
        writeC(buf, 0xFF);
        writeC(buf, player.isLegionMember() ? player
            .getLegion().getLegionEmblem().getColor_r() : 0);
        writeC(buf, player.isLegionMember() ? player
            .getLegion().getLegionEmblem().getColor_g() : 0);
        writeC(buf, player.isLegionMember() ? player
            .getLegion().getLegionEmblem().getColor_b() : 0);
        writeS(buf, player.isLegionMember() ? player
            .getLegion().getLegionName() : "");

        int maxHp = player.getLifeStats().getMaxHp();
        int currHp = player.getLifeStats().getCurrentHp();
        writeC(buf, 100 * currHp / maxHp);// %hp
        writeH(buf, pcd.getDp());// current dp
        writeC(buf, 0x00);// unk (0x00)

        List<Item> items = player.getEquipment().getEquippedItemsWithoutStigma();
        short mask = 0;
        for(Item item : items)
        {
            mask |= item.getEquipmentSlot();
        }

        writeH(buf, mask);

        for(Item item : items)
        {
            if(item.getEquipmentSlot() < Short.MAX_VALUE * 2)
            {
                writeD(buf, item.getItemSkinTemplate().getTemplateId());
                GodStone godStone = item.getGodStone();
                writeD(buf, godStone != null ? godStone.getItemId() : 0);
                writeD(buf, item.getItemColor());
                writeH(buf, 0x00);// unk (0x00)
            }
        }

        writeD(buf, playerAppearance.getSkinRGB());
        writeD(buf, playerAppearance.getHairRGB());
        writeD(buf, playerAppearance.getEyeRGB());
        writeD(buf, playerAppearance.getLipRGB());
        writeC(buf, playerAppearance.getFace());
        writeC(buf, playerAppearance.getHair());
        writeC(buf, playerAppearance.getDeco());
        writeC(buf, playerAppearance.getTattoo());

        writeC(buf, 5);// always 5 o0

        writeC(buf, playerAppearance.getFaceShape());
        writeC(buf, playerAppearance.getForehead());

        writeC(buf, playerAppearance.getEyeHeight());
        writeC(buf, playerAppearance.getEyeSpace());
        writeC(buf, playerAppearance.getEyeWidth());
        writeC(buf, playerAppearance.getEyeSize());
        writeC(buf, playerAppearance.getEyeShape());
        writeC(buf, playerAppearance.getEyeAngle());

        writeC(buf, playerAppearance.getBrowHeight());
        writeC(buf, playerAppearance.getBrowAngle());
        writeC(buf, playerAppearance.getBrowShape());

        writeC(buf, playerAppearance.getNose());
        writeC(buf, playerAppearance.getNoseBridge());
        writeC(buf, playerAppearance.getNoseWidth());
        writeC(buf, playerAppearance.getNoseTip());

        writeC(buf, playerAppearance.getCheek());
        writeC(buf, playerAppearance.getLipHeight());
        writeC(buf, playerAppearance.getMouthSize());
        writeC(buf, playerAppearance.getLipSize());
        writeC(buf, playerAppearance.getSmile());
        writeC(buf, playerAppearance.getLipShape());
        writeC(buf, playerAppearance.getJawHeigh());
        writeC(buf, playerAppearance.getChinJut());
        writeC(buf, playerAppearance.getEarShape());
        writeC(buf, playerAppearance.getHeadSize());
        // 1.5.x 0x00, shoulderSize, armLength, legLength (BYTE) after HeadSize

        writeC(buf, playerAppearance.getNeck());
        writeC(buf, playerAppearance.getNeckLength());
        writeC(buf, playerAppearance.getShoulderSize());

        writeC(buf, playerAppearance.getTorso());
        writeC(buf, playerAppearance.getChest()); // only woman
        writeC(buf, playerAppearance.getWaist());

        writeC(buf, playerAppearance.getHips());
        writeC(buf, playerAppearance.getArmThickness());
        writeC(buf, playerAppearance.getHandSize());
        writeC(buf, playerAppearance.getLegThicnkess());

        writeC(buf, playerAppearance.getFootSize());
        writeC(buf, playerAppearance.getFacialRate());

        writeC(buf, 0x00); // always 0
        writeC(buf, playerAppearance.getArmLength());
        writeC(buf, playerAppearance.getLegLength());
        writeC(buf, playerAppearance.getShoulders());
        writeC(buf, 0x00); // always 0
        writeC(buf, 0x00); // 0x00

        writeC(buf, playerAppearance.getVoice());

        writeF(buf, playerAppearance.getHeight());
        writeF(buf, 0.25f); // scale
        writeF(buf, 2.0f); // gravity or slide surface o_O
        writeF(buf, player.getGameStats().getCurrentStat(StatEnum.SPEED) / 1000f); // move speed

        writeH(buf, player.getGameStats().getBaseStat(StatEnum.ATTACK_SPEED));
        writeH(buf, player.getGameStats().getCurrentStat(StatEnum.ATTACK_SPEED));
        writeC(buf, 2);

        writeS(buf, player.hasStore() ? player.getStore().getStoreMessage() : "");// private store message

        /**
         * Movement
         */
        writeF(buf, 0);
        writeF(buf, 0);
        writeF(buf, 0);

        writeF(buf, player.getX());// x
        writeF(buf, player.getY());// y
        writeF(buf, player.getZ());// z
        writeC(buf, 0x00); // move type

        if(player.isUsingFlyTeleport())
        {
            writeD(buf, player.getFlightTeleportId());
            writeD(buf, player.getFlightDistance());
        }

        writeC(buf, player.getVisualState()); // visualState
        writeS(buf, player.getCommonData().getNote()); // note show in right down windows if your target on player

        writeH(buf, player.getLevel()); // [level]
        writeH(buf, player.getPlayerSettings().getDisplay()); // unk - 0x04
        writeH(buf, player.getPlayerSettings().getDeny()); // unk - 0x00
        writeH(buf, player.getAbyssRank().getRank().getId()); // abyss rank
        writeH(buf, 0x00); // unk - 0x01
        writeD(buf, player.getTarget() == null ? 0 : player.getTarget().getObjectId());
        writeC(buf, 0); // suspect id
    }
}

Добавлено через 19 минут
Вродь, эти

writeH(buf, player.getPlayerSettings().getDisplay()); // unk - 0x04
writeH(buf, player.getPlayerSettings().getDeny()); // unk - 0x00
Консоль GameServer не советует:"Вы настраивайте сервер уже 1 час. Советуем вам немного отдохнуть".
Ответ
#5
Wolfas Написал:Для всех, ну или только для GM, но думаю будет слишком проблематично

Добавлено через 4 минуты
Код:
public class SM_PLAYER_INFO extends AionServerPacket
{

    /**
     * Visible player
     */
    private final Player    player;
    private boolean        enemy;

    /**
     * Constructs new <tt>SM_PLAYER_INFO </tt> packet
     *
     * @param player
     *            actual player.
     * @param enemy
     */
    public SM_PLAYER_INFO(Player player, boolean enemy)
    {
        this.player = player;
        this.enemy = enemy;
    }

    /**
     * {@inheritDoc}
     */
    @Override
    protected void writeImpl(AionConnection con, ByteBuffer buf)
    {
        PlayerCommonData pcd = player.getCommonData();
        
        final int raceId;

        if(player.getAdminNeutral() > 1 || con.getActivePlayer().getAdminNeutral() > 1)
            raceId = con.getActivePlayer().getCommonData().getRace().getRaceId();

        else if((player.getAdminEnmity() > 1 || con.getActivePlayer().getAdminEnmity() > 1) &&
            con.getActivePlayer().getName() != player.getName() && con.getActivePlayer().isFriend(player))
            raceId = (con.getActivePlayer().getCommonData().getRace().getRaceId() == 0 ? 1 : 0);

        else
            raceId = pcd.getRace().getRaceId();

        final int genderId = pcd.getGender().getGenderId();
        final PlayerAppearance playerAppearance = player.getPlayerAppearance();

        writeF(buf, player.getX());// x
        writeF(buf, player.getY());// y
        writeF(buf, player.getZ());// z
        writeD(buf, player.getObjectId());
        /**
         * A3 female asmodian A2 male asmodian A1 female elyos A0 male elyos
         */
        writeD(buf, pcd.getTemplateId());
        /**
         * Transformed state - send transformed model id Regular state - send player model id (from common data)
         */
        writeD(buf, player.getTransformedModelId() == 0 ? pcd.getTemplateId() : player.getTransformedModelId());
        
        writeC(buf, 0x00); // new 2.0 Packet --- probably pet info?
        writeC(buf, enemy ? 0x00 : 0x26);

        writeC(buf, raceId); // race
        writeC(buf, pcd.getPlayerClass().getClassId());
        writeC(buf, genderId); // sex
        writeH(buf, player.getState());

        byte[] unk = new byte[] { (byte) 0x00, (byte) 0x00, (byte) 0x00, (byte) 0x00, (byte) 0x00, (byte) 0x00,
            (byte) 0x00, (byte) 0x00 };
        writeB(buf, unk);

        writeC(buf, player.getHeading());

        writeS(buf, player.getName());

        writeD(buf, pcd.getTitleId());
        writeC(buf, 0x0);// if set 0x1 can't jump and fly..
        writeH(buf, player.getCastingSkillId());
        writeH(buf, player.isLegionMember() ? player
            .getLegion().getLegionId() : 0);
        writeH(buf, 0); // User Emblem related?
        writeH(buf, player.isLegionMember() ? player
            .getLegion().getLegionEmblem().getEmblemId() : 0);
        writeC(buf, 0xFF);
        writeC(buf, player.isLegionMember() ? player
            .getLegion().getLegionEmblem().getColor_r() : 0);
        writeC(buf, player.isLegionMember() ? player
            .getLegion().getLegionEmblem().getColor_g() : 0);
        writeC(buf, player.isLegionMember() ? player
            .getLegion().getLegionEmblem().getColor_b() : 0);
        writeS(buf, player.isLegionMember() ? player
            .getLegion().getLegionName() : "");

        int maxHp = player.getLifeStats().getMaxHp();
        int currHp = player.getLifeStats().getCurrentHp();
        writeC(buf, 100 * currHp / maxHp);// %hp
        writeH(buf, pcd.getDp());// current dp
        writeC(buf, 0x00);// unk (0x00)

        List<Item> items = player.getEquipment().getEquippedItemsWithoutStigma();
        short mask = 0;
        for(Item item : items)
        {
            mask |= item.getEquipmentSlot();
        }

        writeH(buf, mask);

        for(Item item : items)
        {
            if(item.getEquipmentSlot() < Short.MAX_VALUE * 2)
            {
                writeD(buf, item.getItemSkinTemplate().getTemplateId());
                GodStone godStone = item.getGodStone();
                writeD(buf, godStone != null ? godStone.getItemId() : 0);
                writeD(buf, item.getItemColor());
                writeH(buf, 0x00);// unk (0x00)
            }
        }

        writeD(buf, playerAppearance.getSkinRGB());
        writeD(buf, playerAppearance.getHairRGB());
        writeD(buf, playerAppearance.getEyeRGB());
        writeD(buf, playerAppearance.getLipRGB());
        writeC(buf, playerAppearance.getFace());
        writeC(buf, playerAppearance.getHair());
        writeC(buf, playerAppearance.getDeco());
        writeC(buf, playerAppearance.getTattoo());

        writeC(buf, 5);// always 5 o0

        writeC(buf, playerAppearance.getFaceShape());
        writeC(buf, playerAppearance.getForehead());

        writeC(buf, playerAppearance.getEyeHeight());
        writeC(buf, playerAppearance.getEyeSpace());
        writeC(buf, playerAppearance.getEyeWidth());
        writeC(buf, playerAppearance.getEyeSize());
        writeC(buf, playerAppearance.getEyeShape());
        writeC(buf, playerAppearance.getEyeAngle());

        writeC(buf, playerAppearance.getBrowHeight());
        writeC(buf, playerAppearance.getBrowAngle());
        writeC(buf, playerAppearance.getBrowShape());

        writeC(buf, playerAppearance.getNose());
        writeC(buf, playerAppearance.getNoseBridge());
        writeC(buf, playerAppearance.getNoseWidth());
        writeC(buf, playerAppearance.getNoseTip());

        writeC(buf, playerAppearance.getCheek());
        writeC(buf, playerAppearance.getLipHeight());
        writeC(buf, playerAppearance.getMouthSize());
        writeC(buf, playerAppearance.getLipSize());
        writeC(buf, playerAppearance.getSmile());
        writeC(buf, playerAppearance.getLipShape());
        writeC(buf, playerAppearance.getJawHeigh());
        writeC(buf, playerAppearance.getChinJut());
        writeC(buf, playerAppearance.getEarShape());
        writeC(buf, playerAppearance.getHeadSize());
        // 1.5.x 0x00, shoulderSize, armLength, legLength (BYTE) after HeadSize

        writeC(buf, playerAppearance.getNeck());
        writeC(buf, playerAppearance.getNeckLength());
        writeC(buf, playerAppearance.getShoulderSize());

        writeC(buf, playerAppearance.getTorso());
        writeC(buf, playerAppearance.getChest()); // only woman
        writeC(buf, playerAppearance.getWaist());

        writeC(buf, playerAppearance.getHips());
        writeC(buf, playerAppearance.getArmThickness());
        writeC(buf, playerAppearance.getHandSize());
        writeC(buf, playerAppearance.getLegThicnkess());

        writeC(buf, playerAppearance.getFootSize());
        writeC(buf, playerAppearance.getFacialRate());

        writeC(buf, 0x00); // always 0
        writeC(buf, playerAppearance.getArmLength());
        writeC(buf, playerAppearance.getLegLength());
        writeC(buf, playerAppearance.getShoulders());
        writeC(buf, 0x00); // always 0
        writeC(buf, 0x00); // 0x00

        writeC(buf, playerAppearance.getVoice());

        writeF(buf, playerAppearance.getHeight());
        writeF(buf, 0.25f); // scale
        writeF(buf, 2.0f); // gravity or slide surface o_O
        writeF(buf, player.getGameStats().getCurrentStat(StatEnum.SPEED) / 1000f); // move speed

        writeH(buf, player.getGameStats().getBaseStat(StatEnum.ATTACK_SPEED));
        writeH(buf, player.getGameStats().getCurrentStat(StatEnum.ATTACK_SPEED));
        writeC(buf, 2);

        writeS(buf, player.hasStore() ? player.getStore().getStoreMessage() : "");// private store message

        /**
         * Movement
         */
        writeF(buf, 0);
        writeF(buf, 0);
        writeF(buf, 0);

        writeF(buf, player.getX());// x
        writeF(buf, player.getY());// y
        writeF(buf, player.getZ());// z
        writeC(buf, 0x00); // move type

        if(player.isUsingFlyTeleport())
        {
            writeD(buf, player.getFlightTeleportId());
            writeD(buf, player.getFlightDistance());
        }

        writeC(buf, player.getVisualState()); // visualState
        writeS(buf, player.getCommonData().getNote()); // note show in right down windows if your target on player

        writeH(buf, player.getLevel()); // [level]
        writeH(buf, player.getPlayerSettings().getDisplay()); // unk - 0x04
        writeH(buf, player.getPlayerSettings().getDeny()); // unk - 0x00
        writeH(buf, player.getAbyssRank().getRank().getId()); // abyss rank
        writeH(buf, 0x00); // unk - 0x01
        writeD(buf, player.getTarget() == null ? 0 : player.getTarget().getObjectId());
        writeC(buf, 0); // suspect id
    }
}

Добавлено через 19 минут
Вродь, эти

writeH(buf, player.getPlayerSettings().getDisplay()); // unk - 0x04
writeH(buf, player.getPlayerSettings().getDeny()); // unk - 0x00

клиент пакет
Ответ
#6
VISTALL Написал:клиент пакет

VISTALL, объясните пожалуйста по подробнее
Консоль GameServer не советует:"Вы настраивайте сервер уже 1 час. Советуем вам немного отдохнуть".
Ответ
#7
для этого есть сканер который просматривает шмотки любого персонажа
Ответ
#8
rreanimatorr Дайте ссыль на сканер
Консоль GameServer не советует:"Вы настраивайте сервер уже 1 час. Советуем вам немного отдохнуть".
Ответ


Перейти к форуму:


Пользователи, просматривающие эту тему: 1 Гость(ей)