Я знаю ты в курсе, хроники Helios, запустил сервер, ввожу логин\пароль все ок, далее выбор сервера, выбираю и он обратно меня выкидывает на ввод логина\пароль, какой пакет за это отвечает?а нечем, там только база, сегодня начну пилить парсеры.
По идее у пакетника io и helios небольшая разница, он должен хотябы до выбора перса заходить с клиента Helios, но у меня почему то обратно выкидывает на окно логинаLoginfail или новое его название Loginresult. Он изменялся в хелиосе.
client.sendPacket(LoginResultPacket.SUCCESS);
public class LoginResultPacket extends L2GameServerPacket
{
public static L2GameServerPacket SUCCESS = new LoginResultPacket(0xFFFFFFFF, 0);
public static L2GameServerPacket SYSTEM_ERROR_LOGIN_LATER = new LoginResultPacket(0, 1);
public static L2GameServerPacket PASSWORD_DOES_NOT_MATCH_THIS_ACCOUNT = new LoginResultPacket(0, 2);
public static L2GameServerPacket PASSWORD_DOES_NOT_MATCH_THIS_ACCOUNT2 = new LoginResultPacket(0, 3);
public static L2GameServerPacket ACCESS_FAILED_TRY_LATER = new LoginResultPacket(0, 4);
public static L2GameServerPacket INCORRECT_ACCOUNT_INFO_CONTACT_CUSTOMER_SUPPORT = new LoginResultPacket(0, 5);
public static L2GameServerPacket ACCESS_FAILED_TRY_LATER2 = new LoginResultPacket(0, 6);
public static L2GameServerPacket ACOUNT_ALREADY_IN_USE = new LoginResultPacket(0, 7);
public static L2GameServerPacket ACCESS_FAILED_TRY_LATER3 = new LoginResultPacket(0, 8);
public static L2GameServerPacket ACCESS_FAILED_TRY_LATER4 = new LoginResultPacket(0, 9);
public static L2GameServerPacket ACCESS_FAILED_TRY_LATER5 = new LoginResultPacket(0, 10);
private final int _reason1;
private final int _reason2;
public LoginResultPacket(int reason1, int reason2)
{
_reason1 = reason1;
_reason2 = reason2;
}
@Override
protected final void writeImpl()
{
writeD(_reason1);
writeD(_reason2);
}
}
Получаеться раньше Fail был, а щас result?Этот пакет не давал войти с 64 протокола. Там изменилась структура+ нужно теперь послать о успешном входе в другом пакете.
UPD: ПОКА ОТВЕЧАЛ ОТВЕТИЛИ) ВЫШЕ
И про опкод не задудьте, в пакете выше от вынесен.
да, название можно не менять. Главное структуру новую.Получаеться раньше Fail был, а щас result?
В пакете PlayerAuthResponse.java, передВ пакете PlayerAuthResponse необходимо добавить
Код:client.sendPacket(LoginResultPacket.SUCCESS);
перед отправкой CharacterSelectionInfoPacket
Структуру пакета где то выкладывали:
Код:public class LoginResultPacket extends L2GameServerPacket { public static L2GameServerPacket SUCCESS = new LoginResultPacket(0xFFFFFFFF, 0); public static L2GameServerPacket SYSTEM_ERROR_LOGIN_LATER = new LoginResultPacket(0, 1); public static L2GameServerPacket PASSWORD_DOES_NOT_MATCH_THIS_ACCOUNT = new LoginResultPacket(0, 2); public static L2GameServerPacket PASSWORD_DOES_NOT_MATCH_THIS_ACCOUNT2 = new LoginResultPacket(0, 3); public static L2GameServerPacket ACCESS_FAILED_TRY_LATER = new LoginResultPacket(0, 4); public static L2GameServerPacket INCORRECT_ACCOUNT_INFO_CONTACT_CUSTOMER_SUPPORT = new LoginResultPacket(0, 5); public static L2GameServerPacket ACCESS_FAILED_TRY_LATER2 = new LoginResultPacket(0, 6); public static L2GameServerPacket ACOUNT_ALREADY_IN_USE = new LoginResultPacket(0, 7); public static L2GameServerPacket ACCESS_FAILED_TRY_LATER3 = new LoginResultPacket(0, 8); public static L2GameServerPacket ACCESS_FAILED_TRY_LATER4 = new LoginResultPacket(0, 9); public static L2GameServerPacket ACCESS_FAILED_TRY_LATER5 = new LoginResultPacket(0, 10); private final int _reason1; private final int _reason2; public LoginResultPacket(int reason1, int reason2) { _reason1 = reason1; _reason2 = reason2; } @Override protected final void writeImpl() { writeD(_reason1); writeD(_reason2); } }
CharacterSelectionInfoPacket csi = new CharacterSelectionInfoPacket(client.getLogin(), client.getSessionKey().playOkID1);
client.sendPacket(LoginFail.SUCCESS);
client.close(new LoginFail(LoginFail.ACCESS_FAILED_TRY_LATER));
client.close(null);
Поменять
client.close(new LoginFail(LoginFail.ACCESS_FAILED_TRY_LATER));
на
client.close(LoginFail.ACCESS_FAILED_TRY_LATER);
начет опкода накосячили гдето
public class LoginFail extends L2GameServerPacket
{
public static L2GameServerPacket SUCCESS = new LoginFail(0xFFFFFFFF, 0);
public static L2GameServerPacket SYSTEM_ERROR_LOGIN_LATER = new LoginFail(0, 1);
public static L2GameServerPacket PASSWORD_DOES_NOT_MATCH_THIS_ACCOUNT = new LoginFail(0, 2);
public static L2GameServerPacket PASSWORD_DOES_NOT_MATCH_THIS_ACCOUNT2 = new LoginFail(0, 3);
public static L2GameServerPacket ACCESS_FAILED_TRY_LATER = new LoginFail(0, 4);
public static L2GameServerPacket INCORRECT_ACCOUNT_INFO_CONTACT_CUSTOMER_SUPPORT = new LoginFail(0, 5);
public static L2GameServerPacket ACCESS_FAILED_TRY_LATER2 = new LoginFail(0, 6);
public static L2GameServerPacket ACOUNT_ALREADY_IN_USE = new LoginFail(0, 7);
public static L2GameServerPacket ACCESS_FAILED_TRY_LATER3 = new LoginFail(0, 8);
public static L2GameServerPacket ACCESS_FAILED_TRY_LATER4 = new LoginFail(0, 9);
public static L2GameServerPacket ACCESS_FAILED_TRY_LATER5 = new LoginFail(0, 10);
private final int _reason1;
private final int _reason2;
public LoginFail(int reason1, int reason2)
{
_reason1 = reason1;
_reason2 = reason2;
}
@Override
protected final void writeImpl()
{
writeD(_reason1);
writeD(_reason2);
}
}
Не все равно на опкод ругаетьсяЕсли у вас не l2scripts-подобная сборка добавьте опкод
public class LoginFail extends L2GameServerPacket
{
public static L2GameServerPacket SUCCESS = new LoginFail(0xFFFFFFFF, 0);
public static L2GameServerPacket SYSTEM_ERROR_LOGIN_LATER = new LoginFail(0, 1);
public static L2GameServerPacket PASSWORD_DOES_NOT_MATCH_THIS_ACCOUNT = new LoginFail(0, 2);
public static L2GameServerPacket PASSWORD_DOES_NOT_MATCH_THIS_ACCOUNT2 = new LoginFail(0, 3);
public static L2GameServerPacket ACCESS_FAILED_TRY_LATER = new LoginFail(0, 4);
public static L2GameServerPacket INCORRECT_ACCOUNT_INFO_CONTACT_CUSTOMER_SUPPORT = new LoginFail(0, 5);
public static L2GameServerPacket ACCESS_FAILED_TRY_LATER2 = new LoginFail(0, 6);
public static L2GameServerPacket ACOUNT_ALREADY_IN_USE = new LoginFail(0, 7);
public static L2GameServerPacket ACCESS_FAILED_TRY_LATER3 = new LoginFail(0, 8);
public static L2GameServerPacket ACCESS_FAILED_TRY_LATER4 = new LoginFail(0, 9);
public static L2GameServerPacket ACCESS_FAILED_TRY_LATER5 = new LoginFail(0, 10);
private final int _reason1;
private final int _reason2;
public LoginFail(int reason1, int reason2)
{
_reason1 = reason1;
_reason2 = reason2;
}
@Override
protected final void writeImpl()
{
writeC(0x0a);
writeD(_reason1);
writeD(_reason2);
}
}
/*0x0A*/ LoginFailPacket,А у вас есть такой класс?
ServerPacketOpcodes.java? Посмотрите там. Если такой класс есть?
Сборка какая?
We use cookies and similar technologies for the following purposes:
Do you accept cookies and these technologies?
We use cookies and similar technologies for the following purposes:
Do you accept cookies and these technologies?