Рейтинг темы:
  • 0 Голос(ов) - 0 в среднем
  • 1
  • 2
  • 3
  • 4
  • 5
PointBlank серверный пакет SM_ROOM_PLAYER_ENTER
#1
Я тут рылся в инете и нашол сервер pb только для RU клиент с магазином pvp и т.д. но когда игрок входит ко мне в комнату у него нет ника и мой ник не отображается у него даже мой не видит!

Мне сказали и pb-es что там в пакете лишний байт но тут все байты разобранный и не могу найти 33 байт вообще, что делать?

Помогите чем сможете.

Вот пакет:
[SRC="java"]package ru.pb.game.network.client.packets.server;

import ru.pb.game.network.client.packets.ServerPacket;
import ru.pb.global.models.Clan;
import ru.pb.global.models.Player;
import ru.pb.global.models.RoomSlot;

/**
* Неизместный пакет, отправляется вместе с пекетов авторизации
*
* @author sjke
*/
public class SM_ROOM_PLAYER_ENTER extends ServerPacket {

private final RoomSlot slot;

public SM_ROOM_PLAYER_ENTER(RoomSlot slot) {
super(0xF45);
this.slot = slot;
}

@Override
public void writeImpl() {
writeD(slot.getId());
writeC(slot.getState().ordinal());
writeC(slot.getPlayer() == null ? 0 : slot.getPlayer().getRank());
writeC(0x2d);
writeC(0x40);
writeB(new byte[10]);
writeC(slot.getPlayer() == null || slot.getPlayer().getClan() == null ? 255 : slot.getPlayer().getClan().getLogo1());
writeC(slot.getPlayer() == null || slot.getPlayer().getClan() == null ? 255 : slot.getPlayer().getClan().getLogo2());
writeC(slot.getPlayer() == null || slot.getPlayer().getClan() == null ? 255 : slot.getPlayer().getClan().getLogo3());
writeC(slot.getPlayer() == null || slot.getPlayer().getClan() == null ? 255 : slot.getPlayer().getClan().getLogo4());
writeC(slot.getPlayer() == null || slot.getPlayer().getClan() == null ? 0 : slot.getPlayer().getClan().getColor());
writeB(new byte[6]); //TEST?
writeS(slot.getPlayer() == null || slot.getPlayer().getClan() == null ? "" : slot.getPlayer().getClan().getName(), Clan.CLAN_NAME_SIZE);
writeS(slot.getPlayer() == null ? "" : slot.getPlayer().getName(), Player.MAX_NAME_SIZE);
writeC(slot.getPlayer() == null ? 0 : slot.getPlayer().getColor());
}
}[/SRC]
Ответ
#2
У нас крайне негативно относятся к темам с заголовками "Срочно", "Помогите" и другим не информативным. Я отредактировал ваше сообщение, но это в первый и последний раз.

Байты легко подсчитать если знать что:

Q = 8
D = 4
H = 2
C = 1
S = заданной длине во втором параметре (в вашем случае константы CLAN_NAME_SIZE в Clan и MAX_NAME_SIZE в Player)

В конце такая структура:

[SRC="java"]// ...
S // Clan Name
D //
C //
S // Player Name[/SRC]
Ответ


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


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