05-01-2012, 10:08 AM
sendPacket(new ExShowScreenMessage("TEXT",5000));
Вот строка, делал через
ExShowScreenMessage text1 = new ExShowScreenMessage("TEXT", 5000);
sendPacket(text);
Такая же канитель...
Использую в L2PcInstance
Вот получившийся класс:
Вот строка, делал через
ExShowScreenMessage text1 = new ExShowScreenMessage("TEXT", 5000);
sendPacket(text);
Такая же канитель...
Использую в L2PcInstance
Вот получившийся класс:
Код:
package net.sf.l2j.gameserver.network.serverpackets;
public class ExShowScreenMessage extends L2GameServerPacket
{
private String _text;
private int _time;
private ScreenMessageAlign _position;
private boolean _sizeBig;
private boolean _effect;
private int _type;
private int _sysMessageId;
public static enum ScreenMessageAlign
{
TOP_LEFT,
TOP_CENTER,
TOP_RIGHT,
MIDDLE_LEFT,
MIDDLE_CENTER,
MIDDLE_RIGHT,
BOTTOM_CENTER,
BOTTOM_RIGHT,
}
public ExShowScreenMessage(String text, int time)
{
this(text, time, ScreenMessageAlign.TOP_CENTER, true);
}
public ExShowScreenMessage(String text, int time, ScreenMessageAlign pos, boolean sizeBig)
{
this(text, time, pos, sizeBig, false);
}
public ExShowScreenMessage(String text, int time, ScreenMessageAlign pos, boolean sizeBig, boolean effect)
{
_text = text;
_time = time;
_position = pos;
_sizeBig = sizeBig;
_effect = effect;
_type = 1;
_sysMessageId = -1;
}
@Override
public String getType()
{
return "ExShowScreenMessage";
}
@Override
protected void writeImpl()
{
writeC(0xFE);
writeH(0x38);
writeD(_type); // 0 - system messages, 1 - your defined text
writeD(_sysMessageId); // system message id (_type must be 0 otherwise no effect)
writeD(_position.ordinal() + 1); // размещение текста
writeD(0x00);
writeD(_sizeBig ? 1 : 0); // размер текста (0 или 1)
writeD(0x00);
writeD(0x00);
writeD(!_effect ? 0 : 1); // Медленное исчезновение
writeD(_time); // время отображения сообщения в милисекундах
writeD(0x01);
writeS(_text);
}
}
Mike-S.ru