Рейтинг темы:
  • 0 Голос(ов) - 0 в среднем
  • 1
  • 2
  • 3
  • 4
  • 5
PROTOCOL_ROOM_GET_SLOTINFO_ACK
#1
Боты появляются и бегают но вот меня в таблице нету.
Где мб ошибка?
[Изображение: D0ZgNCZOmYQ.jpg]
Ответ
#2
Слот игрока, статус игрока проверь.
Разработка Emu: PiercingBlow 90%, APB Reloaded 100%.
Самый действенный инструмент для самообучения - грабли.
Ответ
#3
Awiion Написал:Слот игрока, статус игрока проверь.

А проверить надо в пакете PreStart или StartBattle?
Ответ
#4
Ты же статус в PROTOCOL_ROOM_GET_SLOTINFO_ACK отправляешь.
Ответ
#5
Да и вроде все правильно

Код:
writeH(0);
        writeC(16);
        for (RoomSlot slot : room.getRoomSlots())
        {
            if (slot.getPlayer() != null)
            {
                writeC(slot.getState().ordinal());
                writeC(slot.getPlayer().getRank());
                writeD(0);
                writeD(0);
                writeC(0);
                writeC(255);
                writeC(255);
                writeC(255);
                writeC(255);
                writeC(0);
                writeD(0);
                writeB(new byte[5]);
                writeB(new byte[34]);
                writeC(0);
                writeC(255);
            } else
            {
                writeC(slot.getState().ordinal());
                writeC(0);
                writeD(0);
                writeD(0);
                writeC(0);
                writeC(255);
                writeC(255);
                writeC(255);
                writeC(255);
                writeC(0);
                writeD(0);
                writeB(new byte[5]);
                writeB(new byte[34]);
                writeC(0);
                writeC(255);
            }
Ответ
#6
Уже представил Smile

[SRC="csharp"]

for (RoomSlot slot : room.getRoomSlots())
{
if (slot.getPlayer() != null)
{
writeC(slot.getState().ordinal()); //тут ты пропустил статус (ибо проверка) 100% твой статус игрока, тебя не будет на карте
} else
{
writeC(slot.getState().ordinal()); // а тут как ни в чем не бывало
}

[/SRC]
Вообще, не понимаю, для чего это все было сделано.
Дальше так же с рангом игрока,
И тд.
Разработка Emu: PiercingBlow 90%, APB Reloaded 100%.
Самый действенный инструмент для самообучения - грабли.
Ответ
#7
Awiion Написал:Уже представил Smile

[SRC="csharp"]

for (RoomSlot slot : room.getRoomSlots())
{
if (slot.getPlayer() != null)
{
writeC(slot.getState().ordinal()); //тут ты пропустил статус (ибо проверка) 100% твой статус игрока, тебя не будет на карте
} else
{
writeC(slot.getState().ordinal()); // а тут как ни в чем не бывало
}

[/SRC]
Вообще, не понимаю, для чего это все было сделано.
Дальше так же с рангом игрока,
И тд.

а как исправить?
Ответ
#8
Убрать проверку,
и все что там есть, у тебя примерно так:
[SRC="csharp"]Slot[] Room_Slot new = [16];[/SRC]
Вот у тебя 16 игроков,
Дальше есть статусы,

SlotState
Статично всегда 16 игроков,
У тебя их в данный момент не 16, ты пропустил.

Когда ты создаешь комнату,
Ты присваиваешь себе статус, остальные Empty (можно указать 4v4 8v8)
Но их так же 16. Не меньше не больше.
Так же с комнатой статусом

RoomState

Статусы меняются:
Создание комнаты режимы,
Управления слотами,
Выход из боя, инвентарь, магазин, клан и тд,
Смена команд, как хостом так и игроками.

Дальше когда зашел игрок (или хост), ты сменил статус, и когда вышел.
Разработка Emu: PiercingBlow 90%, APB Reloaded 100%.
Самый действенный инструмент для самообучения - грабли.
Ответ
#9
Awiion Написал:Убрать проверку,
и все что там есть, у тебя примерно так:
[SRC="csharp"]Slot[] Room_Slot new = [16];[/SRC]
Вот у тебя 16 игроков,
Дальше есть статусы,

SlotState
Статично всегда 16 игроков,
У тебя их в данный момент не 16, ты пропустил.

Когда ты создаешь комнату,
Ты присваиваешь себе статус, остальные Empty (можно указать 4v4 8v8)
Но их так же 16. Не меньше не больше.
Так же с комнатой статусом

RoomState

Статусы меняются:
Создание комнаты режимы,
Управления слотами,
Выход из боя, инвентарь, магазин, клан и тд,
Смена команд, как хостом так и игроками.

Дальше когда зашел игрок (или хост), ты сменил статус, и когда вышел.




Смотри я создал в классе Room
Room

PROTOCOL_ROOM_GET_SLOTINFO_ACK

Все вот так у меня должно все работать , верно?
Ответ
#10
Нет, нужно циклом отправить данные всех 16 слотов.

Проще вернуть всё как было (если ты уверен, что у тебя всегда 16 слотов) и в консоль выведи, что у тебя в slot.getState().ordinal().
Ответ


Возможно похожие темы ...
Тема Автор Ответы Просмотры Последний пост
  PROTOCOL_ROOM_GET_SLOTINFO_ACK Boris2105 23 5,084 04-15-2017, 01:14 AM
Последний пост: PROGRAMMATOR
  PROTOCOL_ROOM_GET_SLOTINFO_ACK Boris2105 29 5,502 06-13-2016, 05:16 PM
Последний пост: PROGRAMMATOR
  Структура PROTOCOL_ROOM_GET_SLOTINFO_ACK Empert 1 1,691 04-01-2016, 09:25 AM
Последний пост: PROGRAMMATOR

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


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