Рейтинг темы:
  • 0 Голос(ов) - 0 в среднем
  • 1
  • 2
  • 3
  • 4
  • 5
PROTOCOL_LOGIN_ACK
#61
Дополнил пост, думаю поможет.
Ответ
#62
PROGRAMMATOR Написал:Дополнил пост, думаю поможет.

я пропустил 4 байта , только это не помогло.
[Изображение: v9howqpk2iI.jpg]
[SRC=Csharp]
ReadInt();
byte[] Unk = ReadBytes(100);
PasswordLength = ReadByte();
Password = ReadString(ReadByte()).Trim();
LoginLength = ReadByte();
Login = ReadString(ReadByte()).Trim();
//Login = ReadString(ReadByte()).Trim();
Log.Info("Password{0} Login {1} ", Password, Login);

[/SRC]
Ответ
#63
Прикалываешься? Сделай так, как я написал, а потом оставь только вот это:

[SRC="csharp"]Skip(100);

Password = ReadString();
Login = ReadString();

Log.Info($"Login {Login} Password {Password}");
[/SRC]
Ответ
#64
PROGRAMMATOR Написал:Прикалываешься? Сделай так, как я написал, а потом оставь только вот это:

[SRC="csharp"]Skip(100);

Password = ReadString();
Login = ReadString();

Log.Info($"Login {Login} Password {Password}");
[/SRC]

Как видимо он отправляет null
[Изображение: 8utmdtn3Qeo.jpg]
[SRC=Csharp]
class PROTOCOL_LOGIN_ACK : ServerPacket
{
Account account;
LoginState state;

public PROTOCOL_LOGIN_ACK(LoginState state, Account account)
{
}
public override void WriteImpl()
{
Logger.Instance.Info("Status = {0}", state);
WriteB(new byte[15]);
string id = account.Id.ToString();
WriteC(0);
WriteS(id, id.Length);
WriteC(0);
WriteC(account.Login.Length);
WriteS(account.Login);
WriteQ(account.Id);
WriteD((int)state);
}
}
}

[/SRC]
Ответ
#65
Are You Serious?

Может начнёшь с того, что присвоишь account и state переданные данные?
Ответ
#66
PROGRAMMATOR Написал:Are You Serious?

Может начнёшь с того, что присвоишь account и state переданные данные?

Ошибка в том что приходит null.
Нужно сделать так чтобы он находил имя по id-аккаунта.
Но как это сделать хз.

Packet
[Изображение: F72pingmT_U.jpg]
Ответ
#67
В ClientConnection добавь свойство:

[SRC="csharp"]public Account Account { get; set; }
[/SRC]


При авторизации проставляй аккаунт и всё. Никаких Player в этой игре нет, есть аккаунт и персонаж.
Ответ
#68
PROGRAMMATOR Написал:В ClientConnection добавь свойство:

[SRC="csharp"]public Account Account { get; set; }
[/SRC]


При авторизации проставляй аккаунт и всё. Никаких Player в этой игре нет, есть аккаунт и персонаж.

Это свойство есть.
Так у меня же есть PlayerManager, в котором есть, как понимаю мне его и надо вызвать.
У меня в бд данных есть Player в котором идет , Имя , ранг , гп и т.д.
[SRC=Csharp]
public Player GetPlayer(int accountId)
{
return _service.GetPlayer(accountId);
}
[/SRC]
Ответ
#69
Поинты, ранг и т.д. у аккаунта.
Ответ
#70
PROGRAMMATOR Написал:Поинты, ранг и т.д. у аккаунта.

то есть зря я создал отдельно Player, это все надо в Accоunt ?
[SRC=Csharp]
public class Player
{
public int Id { get; set; }

public string Name { get; set; }

public int Rank { get; set; }

public int Points { get; set; }

public int Cash { get; set; }
}
[/SRC]
Ответ


Возможно похожие темы ...
Тема Автор Ответы Просмотры Последний пост
  Структура PROTOCOL_LOGIN_ACK Sojang 15 4,025 01-20-2016, 01:02 AM
Последний пост: PROGRAMMATOR

Перейти к форуму:


Пользователи, просматривающие эту тему: 7 Гость(ей)