Запустить, запустилось, а кто сможет показать на примере какого нить сервера, как она ваще работает
Вы не можете просматривать ссылку пожалуйста воспользуйтесь следующими ссылками Вход или Регистрация
Посмотрите видео ниже, чтобы узнать, как установить наш сайт в виде веб-приложения на главном экране.
Примечание: Эта функция может быть недоступна в некоторых браузерах.
Я знаю ты в курсе, хроники 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? Посмотрите там. Если такой класс есть?
Сборка какая?