Еще раз всем привет. Подскажите, где я ошибаюсь.
PHP код:
package com.l2jserver.gameserver.network.clientpackets;
import com.l2jserver.gameserver.network.serverpackets.ExIsCharNameCreatable;
public class RequestCharacterNameCreatable extends L2GameClientPacket
{
protected String _name;
@Override
protected void readImpl()
{
_name = readS();
}
@Override
protected void runImpl()
{
sendPacket(new ExIsCharNameCreatable());
}
@Override
public String getType()
{
return "[С] D0:B0 RequestCharacterNameCreatable".intern();
}
}
PHP код:
package com.l2jserver.gameserver.network.serverpackets;
public class ExIsCharNameCreatable extends L2GameServerPacket
{
@Override
protected void writeImpl()
{
writeC(0xfe);
writeH(0x10f);
writeD(0x01);
}
@Override
public String getType()
{
return "[S] FE:10F ExIsCharNameCreatable".intern();
}
}
CharSelectionInfo
PHP код:
protected final void writeImpl()
{
writeC(0x09);
int size = (_characterPackages.length);
writeD(size);
// Can prevent players from creating new characters (if 0); (if 1, the client will ask if chars may be created (0x13) Response: (0x0D) )
writeD(0x07);
writeC(0x00);
long lastAccess = 0L;
if (_activeId == -1)
{
for (int i = 0; i < size; i++)
{
if (lastAccess < _characterPackages[i].getLastAccess())
{
lastAccess = _characterPackages[i].getLastAccess();
_activeId = i;
}
}
}
for (int i = 0; i < size; i++)
{
CharSelectInfoPackage charInfoPackage = _characterPackages[i];
writeS(charInfoPackage.getName());
writeD(charInfoPackage.getCharId());
writeS(_loginName);
writeD(_sessionId);
writeD(charInfoPackage.getClanId());
writeD(0x00); // ??
writeD(charInfoPackage.getSex());
writeD(charInfoPackage.getRace());
if (charInfoPackage.getClassId() == charInfoPackage.getBaseClassId())
writeD(charInfoPackage.getClassId());
else
writeD(charInfoPackage.getBaseClassId());
writeD(0x01); // active ??
writeD(charInfoPackage.getX()); // x
writeD(charInfoPackage.getY()); // y
writeD(charInfoPackage.getZ()); // z
writeF(charInfoPackage.getCurrentHp()); // hp cur
writeF(charInfoPackage.getCurrentMp()); // mp cur
writeD(charInfoPackage.getSp());
writeQ(charInfoPackage.getExp());
writeF((float)(charInfoPackage.getExp() - Experience.LEVEL[charInfoPackage.getLevel()]) / (Experience.LEVEL[charInfoPackage.getLevel() + 1] - Experience.LEVEL[charInfoPackage.getLevel()])); // High Five exp %
writeD(charInfoPackage.getLevel());
writeD(charInfoPackage.getKarma()); // karma
writeD(charInfoPackage.getPkKills());
writeD(charInfoPackage.getPvPKills());
writeD(0x00);
writeD(0x00);
writeD(0x00);
writeD(0x00);
writeD(0x00);
writeD(0x00);
writeD(0x00);
writeD(charInfoPackage.getPaperdollItemId(Inventory.PAPERDOLL_HAIR));
writeD(charInfoPackage.getPaperdollItemId(Inventory.PAPERDOLL_REAR));
writeD(charInfoPackage.getPaperdollItemId(Inventory.PAPERDOLL_LEAR));
writeD(charInfoPackage.getPaperdollItemId(Inventory.PAPERDOLL_NECK));
writeD(charInfoPackage.getPaperdollItemId(Inventory.PAPERDOLL_RFINGER));
writeD(charInfoPackage.getPaperdollItemId(Inventory.PAPERDOLL_LFINGER));
writeD(charInfoPackage.getPaperdollItemId(Inventory.PAPERDOLL_HEAD));
writeD(charInfoPackage.getPaperdollItemId(Inventory.PAPERDOLL_RHAND));
writeD(charInfoPackage.getPaperdollItemId(Inventory.PAPERDOLL_LHAND));
writeD(charInfoPackage.getPaperdollItemId(Inventory.PAPERDOLL_GLOVES));
writeD(charInfoPackage.getPaperdollItemId(Inventory.PAPERDOLL_CHEST));
writeD(charInfoPackage.getPaperdollItemId(Inventory.PAPERDOLL_LEGS));
writeD(charInfoPackage.getPaperdollItemId(Inventory.PAPERDOLL_FEET));
writeD(charInfoPackage.getPaperdollItemId(Inventory.PAPERDOLL_CLOAK));
writeD(charInfoPackage.getPaperdollItemId(Inventory.PAPERDOLL_RHAND));
writeD(charInfoPackage.getPaperdollItemId(Inventory.PAPERDOLL_HAIR));
writeD(charInfoPackage.getPaperdollItemId(Inventory.PAPERDOLL_HAIR2));
writeD(charInfoPackage.getPaperdollItemId(Inventory.PAPERDOLL_RBRACELET));
writeD(charInfoPackage.getPaperdollItemId(Inventory.PAPERDOLL_LBRACELET));
writeD(charInfoPackage.getPaperdollItemId(Inventory.PAPERDOLL_DECO1));
writeD(charInfoPackage.getPaperdollItemId(Inventory.PAPERDOLL_DECO2));
writeD(charInfoPackage.getPaperdollItemId(Inventory.PAPERDOLL_DECO3));
writeD(charInfoPackage.getPaperdollItemId(Inventory.PAPERDOLL_DECO4));
writeD(charInfoPackage.getPaperdollItemId(Inventory.PAPERDOLL_DECO5));
writeD(charInfoPackage.getPaperdollItemId(Inventory.PAPERDOLL_DECO6));
writeD(charInfoPackage.getPaperdollItemId(Inventory.PAPERDOLL_BELT));
writeD(charInfoPackage.getHairStyle());
writeD(charInfoPackage.getHairColor());
writeD(charInfoPackage.getFace());
writeF(charInfoPackage.getMaxHp()); // hp max
writeF(charInfoPackage.getMaxMp()); // mp max
long deleteTime = charInfoPackage.getDeleteTimer();
int deletedays = 0;
if (deleteTime > 0)
deletedays = (int)((deleteTime-System.currentTimeMillis())/1000);
writeD(deletedays); // days left before
// delete .. if != 0
// then char is inactive
writeD(charInfoPackage.getClassId());
if (i == _activeId)
writeD(0x01);
else
writeD(0x00); //c3 auto-select char
writeC(charInfoPackage.getEnchantEffect() > 127 ? 127 : charInfoPackage.getEnchantEffect());
writeH(0);
writeH(0);
//writeD(charInfoPackage.getAugmentationId());
//writeD(charInfoPackage.getTransformId()); // Used to display Transformations
writeD(0x00); // Currently on retail when you are on character select you don't see your transformation.
// Freya by Vistall:
writeD(0); // npdid - 16024 Tame Tiny Baby Kookaburra A9E89C
writeD(0); // level
writeD(0); // ?
writeD(0); // food? - 1200
writeF(0); // max Hp
writeF(0); // cur Hp
// High Five by Vistall:
writeD(charInfoPackage.getVitalityPoints()); // H5 Vitality
}
}
В L2GamePacketHandler зарегистрировал RequestCharacterNameCreatable как B0 в In_Game.
PS. завал на работе( Прихожу домой и смотрю в один и тот же код и немогу понять где ошибаюсь.