Сообщений: 1,759
Тем: 13
Зарегистрирован: May 2011
Репутация:
3,205
05-16-2012, 09:56 PM
(Сообщение последний раз редактировалось: 05-16-2012, 11:58 PM linliss.)
LoginFail packet, в нем отправляется причина по которой нельзя залогинится.
Случайно обнаружил, что можно слать любое системное сообщение.
Как выяснить какой номер посылать?
Сообщений: 5,863
Тем: 105
Зарегистрирован: Sep 2010
Репутация:
13,014
systemmsg-e.dat же? Или это не то, о чем я думаю?
Сообщений: 445
Тем: 46
Зарегистрирован: Oct 2011
05-16-2012, 11:17 PM
(Сообщение последний раз редактировалось: 05-16-2012, 11:18 PM Darvin.)
статическое значение ставь 0х01 и тд
Добавлено через 50 секунд
Код: public final class LoginFail extends L2LoginServerPacket {
public static enum LoginFailReason {
REASON_NO_MESSAGE(0),
REASON_SYSTEM_ERROR(1), //There is a system error. Please log in again later
REASON_PASS_WRONG(2), //The password you have entered is incorrect. Confirm your ...
REASON_USER_OR_PASS_WRONG(3),
REASON_ACCESS_FAILED_TRYA1(4), //Access failed. Please try again later.
REASON_ACCOUNT_INFO_INCORR(5), //Your account information is incorrect. For more details ...
REASON_ACCESS_FAILED_TRYA2(6), //Access failed. Please try again later.
REASON_ACCOUNT_IN_USE(7), //Account is already in use. Unable to log in.
// 8 — Access failed. Please try again later. .
// 9 — Access failed. Please try again later. .
// 10 — Access failed. Please try again later. .
// 11 — Access failed. Please try again later. .
REASON_MIN_AGE(12), //Lineage II game services may be used by individuals 15 years of age or older ...
// 13 — Access failed. Please try again later. .
// 14 — Access failed. Please try again later. .
// 15 — Due to high server traffic, your login attempt has failed. Please try again soon.
REASON_SERVER_MAINTENANCE(16), //Currently undergoing game server maintenance. Please log in again later
REASON_CHANGE_TEMP_PASS(17), //Please login after changing your temporary password.
REASON_USAGE_TEMP_EXPIRED(18), //Your usage term has expired. PlayNC website ...
REASON_TIME_LEFT_EXPIRED(19), //There is no time left on this account.
REASON_SYS_ERR(20), //System Error.
REASON_ACCESS_FAILED(21), //Access Failed.
REASON_ATTEMPTED_RESTRICTED_IP(22), //Game connection attempted through a restricted IP.g.
// 23-29 unused
REASON_WEEK_USAGE_TIME_END(30), //This week's usage time has finished.
REASON_SECURITY_CARD_NUMB_I(31), //The security card number is invalid.
REASON_VERIFY_AGE(32), //Users who have not verified their age may not log in ...
REASON_CANNOT_ACC_COUPON(33), //This server cannot be accessed by the coupon you are using.
// 34 unused
REASON_DUAL_BOX(35),
REASON_ACCOUNT_INACTIVE(36), //Your account is currently inactive because you have not logged ...
REASON_USER_AGREEMENT_DIS(37), //You must accept the User Agreement before this account ...
REASON_GUARDIAN_CONSENT_REQ(38), //A guardian's consent is required before this account ...
REASON_USER_AGREEMENT_DEC(39), //This account has declined the User Agreement or is pending ...
REASON_ACCOUNT_SUSPENDED(40), //This account has been suspended ...
REASON_CHANGE_PASS_AND_QUIZ(41), //Your account can only be used after changing your password and quiz ...
REASON_LOGGED_INTO_10_ACCS(42); //You are currently logged into 10 of your accounts and can no longer ...
// 43 — The master account of your account has been restricted.
private final int _code;
LoginFailReason(int code) {
_code = code;
}
public final int getCode() {
return _code;
}
}
private int reason_code;
public LoginFail(LoginFailReason reason) {
reason_code = reason.getCode();
}
@Override
protected void writeImpl() {
writeC(0x01);
writeD(reason_code);
}
}
Сообщений: 33
Тем: 1
Зарегистрирован: Apr 2012
Репутация:
-14
RequestAuthLogin, RequestServerLogin...
Сообщений: 1,759
Тем: 13
Зарегистрирован: May 2011
Репутация:
3,205
05-16-2012, 11:50 PM
(Сообщение последний раз редактировалось: 05-17-2012, 12:19 AM linliss.)
мне нужно узнать как расчитывать значение которое нужно посылать в этом пакете чтоб в клиенте показало systemmessage например (номер 15 Вы в зоне осады)
нашару посылая значения:
id в пакете - 1809, в клиенте показывает sysmsg id: 396 Измените временный пароль на сайте и зайдите в игру.
id в пакете - 1811, в клиенте показывает sysmsg id: 458 Время игры закончилось.
id в пакете - 1811, в клиенте показывает sysmsg id: 398 Истекло оплаченное время игры на Вашем аккаунте.
Сообщений: 86
Тем: 2
Зарегистрирован: Sep 2010
Репутация:
757
05-17-2012, 12:43 AM
(Сообщение последний раз редактировалось: 05-17-2012, 01:27 AM izen.)
Или я тупой, или что-то перемудрили.
LoginFailPacket2 format:cc handler
Код: int __thiscall NConsoleWnd::RefuseLogOn(void *this, int a2)
{
void *v2; // edi@1
char *v3; // ecx@2
int v4; // ST10_4@4
int v5; // eax@4
int v6; // ST10_4@5
int v7; // eax@5
char *v8; // ecx@7
char *v9; // ecx@8
int v10; // eax@11
char *v11; // ecx@11
int v12; // ST0C_4@12
int v13; // eax@12
int *v15; // [sp-Ch] [bp-23Ch]@3
const char *v16; // [sp-8h] [bp-238h]@3
int v17; // [sp-4h] [bp-234h]@3
int v18; // [sp-4h] [bp-234h]@11
int v19; // [sp+0h] [bp-230h]@1
int v20; // [sp+Ch] [bp-224h]@3
int v21; // [sp+20Ch] [bp-24h]@58
int *v22; // [sp+220h] [bp-10h]@1
int v23; // [sp+22Ch] [bp-4h]@1
v22 = &v19;
v2 = this;
v23 = 0;
switch ( a2 )
{
case 1:
v3 = (char *)GL2GameData + 108276;
goto LABEL_3;
case 2:
case 3:
v4 = FString::operator_((char *)GL2GameData + 108460);
v5 = FString::operator_((char *)GL2GameData + 108368);
appSprintf(&v20, L"%s %s", v5, v4);
break;
case 5:
v6 = FString::operator_((char *)GL2GameData + 108828);
v7 = FString::operator_((char *)GL2GameData + 108736);
appSprintf(&v20, L"%s %s", v7, v6);
break;
case 7:
v3 = (char *)GL2GameData + 108920;
goto LABEL_3;
case 12:
v8 = (char *)GL2GameData + 109012;
goto LABEL_43;
case 16:
v9 = (char *)GL2GameData + 109104;
goto LABEL_9;
case 17:
v3 = (char *)GL2GameData + 103492;
goto LABEL_3;
case 18:
v18 = FString::operator_((char *)GL2GameData + 109380);
v10 = FString::operator_((char *)GL2GameData + 109288);
v11 = (char *)GL2GameData + 109196;
goto LABEL_12;
case 19:
v9 = (char *)GL2GameData + 103676;
goto LABEL_9;
case 20:
v3 = (char *)GL2GameData + 103768;
goto LABEL_3;
case 4:
case 6:
case 8:
case 9:
case 10:
case 11:
case 13:
case 14:
v18 = FString::operator_((char *)GL2GameData + 109656);
v10 = FString::operator_((char *)GL2GameData + 109564);
v11 = (char *)GL2GameData + 109472;
LABEL_12:
v12 = v10;
v13 = FString::operator_(v11);
appSprintf(&v20, L"%s %s %s", v13, v12, v18);
break;
case 15:
v9 = (char *)GL2GameData + 218860;
goto LABEL_9;
case 21:
v3 = (char *)GL2GameData + 109472;
goto LABEL_3;
case 22:
v8 = (char *)GL2GameData + 124192;
goto LABEL_43;
case 30:
v9 = (char *)GL2GameData + 136612;
goto LABEL_9;
case 31:
v3 = (char *)GL2GameData + 181416;
goto LABEL_3;
case 32:
v8 = (char *)GL2GameData + 181324;
goto LABEL_43;
case 33:
v9 = (char *)GL2GameData + 190340;
goto LABEL_9;
case 35:
v3 = (char *)GL2GameData + 196504;
goto LABEL_3;
case 36:
v8 = (char *)GL2GameData + 243700;
goto LABEL_43;
case 37:
v9 = (char *)GL2GameData + 255752;
goto LABEL_9;
case 38:
v3 = (char *)GL2GameData + 255844;
goto LABEL_3;
case 39:
v8 = (char *)GL2GameData + 255936;
goto LABEL_43;
case 40:
v9 = (char *)GL2GameData + 256028;
goto LABEL_9;
case 41:
v3 = (char *)GL2GameData + 259432;
goto LABEL_3;
case 42:
v8 = (char *)GL2GameData + 265136;
goto LABEL_43;
case 46:
v9 = (char *)GL2GameData + 351800;
goto LABEL_9;
case 47:
v3 = (char *)GL2GameData + 351892;
goto LABEL_3;
case 48:
v8 = (char *)GL2GameData + 351984;
goto LABEL_43;
case 49:
v9 = (char *)GL2GameData + 352076;
goto LABEL_9;
case 50:
v3 = (char *)GL2GameData + 352168;
goto LABEL_3;
case 51:
v8 = (char *)GL2GameData + 352260;
goto LABEL_43;
case 52:
v9 = (char *)GL2GameData + 352352;
goto LABEL_9;
case 53:
v3 = (char *)GL2GameData + 352444;
goto LABEL_3;
case 54:
v8 = (char *)GL2GameData + 352536;
goto LABEL_43;
case 55:
v9 = (char *)GL2GameData + 352628;
LABEL_9:
v17 = FString::operator_(v9);
v16 = L"%s";
v15 = &v20;
goto LABEL_44;
case 56:
v3 = (char *)GL2GameData + 352720;
LABEL_3:
v17 = FString::operator_(v3);
v16 = L"%s";
v15 = &v20;
goto LABEL_44;
case 43:
v8 = (char *)GL2GameData + 619980;
LABEL_43:
v17 = FString::operator_(v8);
v16 = L"%s";
v15 = &v20;
LABEL_44:
appSprintf(v15, v16, v17);
break;
default:
break;
}
if ( a2 == 46
|| a2 == 47
|| a2 == 48
|| a2 == 49
|| a2 == 50
|| a2 == 51
|| a2 == 52
|| a2 == 53
|| a2 == 54
|| a2 == 55
|| a2 == 56 )
NConsoleWnd::PlayConsoleSound((void *)0x13, (int)v2);
if ( a2 == 31 )
{
FString::FString(&v21, L"CardKeyLoginState");
LOBYTE(v23) = 1;
UIGameStateManager::SetState(&v21);
LOBYTE(v23) = 0;
FString::_FString(&v21);
}
else
{
NConsoleWnd::GotoLogin(v2);
}
(*(void (__thiscall **)(void *, int *))(*(_DWORD *)v2 + 1768))(v2, &v20);
(*(void (__thiscall **)(void *, _DWORD))(*(_DWORD *)v2 + 3188))(v2, 0);
(*(void (__thiscall **)(void *))(*(_DWORD *)v2 + 3192))(v2);
return (*(int (__thiscall **)(void *))(*(_DWORD *)v2 + 3192))(v2);
}
О каких расчетах речь? Как вы хардкод считать собрались?
Добавлено через 41 минуту
таки да, таки перемудрили. пакет cc (0x01, reason). 1811 == 0x0711. в LE представлении DWORD 11 07 00 00. пакет сс. из pBuff берется только BYTE 0x11 ==
17 - REASON_CHANGE_TEMP_PASS(17), //Please login after changing your temporary password.
:dd:
Сообщений: 33
Тем: 1
Зарегистрирован: Apr 2012
Репутация:
-14
linliss Написал:мне нужно узнать как расчитывать значение которое нужно посылать в этом пакете чтоб в клиенте показало systemmessage например (номер 15 Вы в зоне осады)
нашару посылая значения:
id в пакете - 1809, в клиенте показывает sysmsg id: 396 Измените временный пароль на сайте и зайдите в игру.
id в пакете - 1811, в клиенте показывает sysmsg id: 458 Время игры закончилось.
id в пакете - 1811, в клиенте показывает sysmsg id: 398 Истекло оплаченное время игры на Вашем аккаунте. Согласен с izen, но все же...
Попробуйте 1717, посмотрите что выдаст...
Те сообщения что вы выше написали одинаковы по смыслу, 1811 может быть и 458 и 398, но по какому принципу они выбираются это вопрос....
Сообщений: 1,759
Тем: 13
Зарегистрирован: May 2011
Репутация:
3,205
mnnm Написал:Попробуйте 1717, посмотрите что выдаст... ничего, перекидывает обратно на форму ввода логин/пароль(без сообщения)
Сообщений: 33
Тем: 1
Зарегистрирован: Apr 2012
Репутация:
-14
05-17-2012, 02:17 AM
(Сообщение последний раз редактировалось: 05-17-2012, 03:50 AM mnnm.)
linliss Написал:ничего, перекидывает обратно на форму ввода логин/пароль(без сообщения) Значит возможны сообщения только такого типа (в спойлере).
REASONS...
REASON_NO_MESSAGE(0),
REASON_SYSTEM_ERROR(1), //There is a system error. Please log in again later
REASON_PASS_WRONG(2), //The password you have entered is incorrect. Confirm your ...
REASON_USER_OR_PASS_WRONG(3),
REASON_ACCESS_FAILED_TRYA1(4), //Access failed. Please try again later.
REASON_ACCOUNT_INFO_INCORR(5), //Your account information is incorrect. For more details ...
REASON_ACCESS_FAILED_TRYA2(6), //Access failed. Please try again later.
REASON_ACCOUNT_IN_USE(7), //Account is already in use. Unable to log in.
// 8 — Access failed. Please try again later. .
// 9 — Access failed. Please try again later. .
// 10 — Access failed. Please try again later. .
// 11 — Access failed. Please try again later. .
REASON_MIN_AGE(12), //Lineage II game services may be used by individuals 15 years of age or older ...
// 13 — Access failed. Please try again later. .
// 14 — Access failed. Please try again later. .
// 15 — Due to high server traffic, your login attempt has failed. Please try again soon.
REASON_SERVER_MAINTENANCE(16), //Currently undergoing game server maintenance. Please log in again later
REASON_CHANGE_TEMP_PASS(17), //Please login after changing your temporary password.
REASON_USAGE_TEMP_EXPIRED(18), //Your usage term has expired. PlayNC website ...
REASON_TIME_LEFT_EXPIRED(19), //There is no time left on this account.
REASON_SYS_ERR(20), //System Error.
REASON_ACCESS_FAILED(21), //Access Failed.
REASON_ATTEMPTED_RESTRICTED_IP(22), //Game connection attempted through a restricted IP.g.
// 23-29 unused
REASON_WEEK_USAGE_TIME_END(30), //This week's usage time has finished.
REASON_SECURITY_CARD_NUMB_I(31), //The security card number is invalid.
REASON_VERIFY_AGE(32), //Users who have not verified their age may not log in ...
REASON_CANNOT_ACC_COUPON(33), //This server cannot be accessed by the coupon you are using.
// 34 unused
REASON_DUAL_BOX(35),
REASON_ACCOUNT_INACTIVE(36), //Your account is currently inactive because you have not logged ...
REASON_USER_AGREEMENT_DIS(37), //You must accept the User Agreement before this account ...
REASON_GUARDIAN_CONSENT_REQ(38), //A guardian's consent is required before this account ...
REASON_USER_AGREEMENT_DEC(39), //This account has declined the User Agreement or is pending ...
REASON_ACCOUNT_SUSPENDED(40), //This account has been suspended ...
REASON_CHANGE_PASS_AND_QUIZ(41), //Your account can only be used after changing your password and quiz ...
REASON_LOGGED_INTO_10_ACCS(42); //You are currently logged into 10 of your accounts and can no longer ...
// 43 — The master account of your account has been restricted.
Возможно ls виноват (может доп. прописать в ls нужно), а возможно и клиент не хочет... Можете попробывать любой другой (к примеру 1333).
Но что то мне подсказывает что используется только то что в спойлере выше... номера 1809 = 11 = 17 из спойлера (396 из SystemMsg), 1811 = 13 = 18 из спойлера(458 из SystemMsg) и 19 из спойлера (398 из SystemMsg). Вообщем как то так).
Сообщений: 1,759
Тем: 13
Зарегистрирован: May 2011
Репутация:
3,205
вообщем для сообщений о бане аккаунта нужно использовать пакет AccountKicked, но блин что ни отправь он отображает все время рандомные сообщения... я уже моск сломал...
|