Сообщений: 320
Тем: 37
Зарегистрирован: Aug 2010
Репутация:
76
Подскажите как отключить, запрет на просмотр подробной информации о игроке?
Консоль GameServer не советует:"Вы настраивайте сервер уже 1 час. Советуем вам немного отдохнуть".
Сообщений: 1,912
Тем: 56
Зарегистрирован: Jan 2009
Репутация:
12,921
найти нужный клиент пакет аля CM_PLAYER_INFO и убить посылку серверного пакета
Сообщений: 2,124
Тем: 84
Зарегистрирован: Jul 2010
Репутация:
3,419
А для кого для Gm или для всех?
Сообщений: 320
Тем: 37
Зарегистрирован: Aug 2010
Репутация:
76
11-14-2010, 12:18 AM
(Сообщение последний раз редактировалось: 11-14-2010, 12:38 AM 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
Консоль GameServer не советует:"Вы настраивайте сервер уже 1 час. Советуем вам немного отдохнуть".
Сообщений: 1,912
Тем: 56
Зарегистрирован: Jan 2009
Репутация:
12,921
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
клиент пакет
Сообщений: 320
Тем: 37
Зарегистрирован: Aug 2010
Репутация:
76
11-14-2010, 01:32 AM
(Сообщение последний раз редактировалось: 11-14-2010, 05:21 PM Wolfas.)
VISTALL Написал:клиент пакет
VISTALL, объясните пожалуйста по подробнее
Консоль GameServer не советует:"Вы настраивайте сервер уже 1 час. Советуем вам немного отдохнуть".
Сообщений: 36
Тем: 11
Зарегистрирован: Jul 2010
Репутация:
11
для этого есть сканер который просматривает шмотки любого персонажа
Сообщений: 320
Тем: 37
Зарегистрирован: Aug 2010
Репутация:
76
rreanimatorr Дайте ссыль на сканер
Консоль GameServer не советует:"Вы настраивайте сервер уже 1 час. Советуем вам немного отдохнуть".
|