Нет, ошибок нет, все чисто, как жму Esc вылетает ошибка, я перезахожу, сервер отлично работает, проверял пакеты, все четко.
Не чего, последнее что написал, так это поток, который следит за игровым временем, то есть там же сутки идут 4 реальных часов, вот эго написал, он отлично работает.
Потом пакет написал установки неба по игровому времени:
Java:
/**
* <b>Пакет данных</b><br><br>
* <small>Пакет предназначен для отправки клиенту.</small><br><br>
* <b>Отправляет данные:</b><br><br>
* <small>* Номер неба.</small><br><br>
*/
public class SkyInfo extends PacketWriteC {
public static final SkyInfo REGULAR_SKY = new SkyInfo(256);
public static final SkyInfo DUSK_SKY = new SkyInfo(257);
public static final SkyInfo DAWN_SKY = new SkyInfo(258);
private final int id;
/**
* @return небо относительно времени на сервере.
*/
public static SkyInfo getSky() {
final int worldTime = WorldTime.getInstance().getGameHour();
if (worldTime >= 4 && worldTime <= 5) return DAWN_SKY;
else if (worldTime > 5 && worldTime < 20) return REGULAR_SKY;
else return DUSK_SKY;
}
/**
* <b>Конструктор</b><br>
* <small>Выполняет действия при создании нового экземпляра класса.</small>
* @param id номер неба.
*/
public SkyInfo(int id) { this.id = id; }
/**
* <b>Описание</b><br>
* <small>Формирует пакет данных для отправки клиенту.</small>
*/
@Override
public void write() {
writeByte(0xf8);
writeShort(id);
}
}
И пакет с инфой о персонаже которого выбрал в окне выбора персонажа и нажал на кнопку "Играть":
Java:
/**
* <b>Пакет данных</b><br><br>
* <small>Пакет предназначен для отправки клиенту.</small><br><br>
* <b>Отправляет данные:</b><br><br>
* <small>* Разрешение на создания нового персонажа.</small><br><br>
*/
public class CharacterSelected extends PacketWriteC {
private final Player player;
private final int sessionId;
/**
* <b>Конструктор</b><br>
* <small>Выполняет действия при создании нового экземпляра класса.</small>
* @param player объект игрока (персонажа) в игре.
* @param sessionId идентификатор сессии клиента.
*/
public CharacterSelected(Player player, int sessionId) {
this.player = player;
this.sessionId = sessionId;
}
/**
* <b>Описание</b><br>
* <small>Формирует пакет данных для отправки клиенту.</small>
*/
@Override
public void write() {
writeByte(0x15);
writeString(player.getName());
writeInt(player.getId());
writeString(player.getTittle());
writeInt(sessionId);
writeInt(player.getClan());
writeInt(0x00);
writeInt(player.getSex());
writeInt(player.getRace());
writeInt(player.getActiveClass());
writeInt(0x01);
writeInt(player.getX());
writeInt(player.getY());
writeInt(player.getZ());
writeDouble(player.getCharacterStatus().getCurrentHp());
writeDouble(player.getCharacterStatus().getCurrentMp());
writeInt(player.getCharacterStatus().getSp());
writeLong(player.getCharacterStatus().getExp());
writeInt(player.getCharacterStatus().getLevel());
writeInt(0x00);
writeInt(0x00);
writeInt(player.getCharacterStatus().getsInt());
writeInt(player.getCharacterStatus().getsStr());
writeInt(player.getCharacterStatus().getsCon());
writeInt(player.getCharacterStatus().getsMen());
writeInt(player.getCharacterStatus().getsDex());
writeInt(player.getCharacterStatus().getsWit());
for (int i = 0; i < 30; i++) writeInt(0x00);
writeInt(0x00);
writeInt(0x00);
writeInt(WorldTime.getInstance().getGameTime());
writeInt(0x00);
writeInt(player.getActiveClass());
writeInt(0x00);
writeInt(0x00);
writeInt(0x00);
writeInt(0x00);
}
}
Нет, вот только сегодня дошел до этого, пакеты прописал, и вот такая штука вылетает ))