Рейтинг темы:
  • 0 Голос(ов) - 0 в среднем
  • 1
  • 2
  • 3
  • 4
  • 5
PROTOCOL_ROOM_GET_SLOTINFO_ACK
#21
Boris2105, для батла тоже самое,
Там udp, так такового ничего там нет,
Указать порт, и слать туда все
Ответ
#22
Awiion Написал:Boris2105, для батла тоже самое,
Там udp, так такового ничего там нет,
Указать порт, и слать туда все

все понял свои ошибки , спасибо что объяснили
Ответ
#23
PROGRAMMATOR Написал:Предположу, что проставляешь Player на логин сервере, а после пытаешься юзать его на игровом.

Как сделать чтобы он и на гейм сервере был?
Ответ
#24
При переходе на игровой сервер от клиента приходит пакет PROTOCOL_BASE_USER_ENTER_REQ с логином и идентификатором аккаунта. По ним выбирай и присваивай.
Ответ
#25
PROGRAMMATOR Написал:При переходе на игровой сервер от клиента приходит пакет PROTOCOL_BASE_USER_ENTER_REQ с логином и идентификатором аккаунта. По ним выбирай и присваивай.


Вот так логин присвоил а вот как player?
Что то все мои попытки не увенчались успехом(
PROTOCOL_BASE_USER_ENTER_REQ
Ответ
#26
Так же, как присваивал на логин сервере.
Ответ
#27
PROGRAMMATOR Написал:Так же, как присваивал на логин сервере.

Вот так на логине
[SRC=CSharp]
var player = PlayerManager.Instance.GetPlayer(Client.Account.Id);
[/SRC]

Я пробовал вот так сделать , но тоже не то
[SRC=CSharp]
Player player = PlayerManager.Instance.GetPlayer(Client.Account.Id);
[/SRC]
Ответ
#28
Какие ошибки?
Ответ
#29
PROGRAMMATOR Написал:Какие ошибки?


Пишет что Rank = null

[SRC=CSharp]
class PROTOCOL_BATTLE_READYBATTLE_REQ : ClientPacket
{
Player player;
public override void ReadImpl()
{
}

public override void RunImpl()
{
//var player = PlayerManager.Instance.GetPlayer(Client.Account.Id);
Client.SendPacket(new PROTOCOL_BATTLE_START_GAME_ACK());
Client.SendPacket(new PROTOCOL_ROOM_GET_SLOTINFO_ACK(SlotState.Ready, player));
}
}
}
[/SRC]

[SRC=CSharp]
class PROTOCOL_ROOM_GET_SLOTINFO_ACK : ServerPacket
{
SlotState _state;
Player _player;

public PROTOCOL_ROOM_GET_SLOTINFO_ACK(SlotState state, Player player)
{
_state = state;
_player = player;
}
public override void WriteImpl()
{
WriteH(0); //UNK
WriteC(16); //количество слотов
for (int i = 0; i < 16; i++)
{
WriteC((byte)_state); // Статус
WriteC(_player.Rank); //Ранг
WriteD(0); // Клан Ид
WriteD(0); // Клан Роль
WriteC(0); // Клан Ранг
WriteC(255); // Клан лого 1
WriteC(255); // Клан лого 2
WriteC(255); // Клан лого 3
WriteC(255); // Клан лого 4
WriteC(0); // Премиум
WriteD(0); // Купоны
WriteB(new byte[5]); // Инк
WriteB(new byte[34]); // Имя клана
WriteC(0); // Инк
WriteC(225); // Инк
}

WriteC(0); //Главный слот игрока
}
}
}

[/SRC]
Ответ
#30
Код:
Client.SendPacket(new PROTOCOL_ROOM_GET_SLOTINFO_ACK(SlotState.Ready, Client.Player));

...

Естественно, твой Client.Player должен быть присвоен в PROTOCOL_BASE_USER_ENTER_REQ. Как-то вообще всё плохо.
Ответ


Возможно похожие темы ...
Тема Автор Ответы Просмотры Последний пост
  PROTOCOL_ROOM_GET_SLOTINFO_ACK Boris2105 15 2,743 08-10-2017, 01:29 PM
Последний пост: Awiion
  PROTOCOL_ROOM_GET_SLOTINFO_ACK Boris2105 23 4,616 04-15-2017, 01:14 AM
Последний пост: PROGRAMMATOR
  Структура PROTOCOL_ROOM_GET_SLOTINFO_ACK Empert 1 1,567 04-01-2016, 09:25 AM
Последний пост: PROGRAMMATOR

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


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