[Piercing Blow] PROTOCOL_ROOM_GET_SLOTINFO_ACK - Форум администраторов игровых серверов
Форум администраторов игровых серверов StormWall - Защита от DDos атак
Регистрация Мнения Справка Пользователи Календарь Все разделы прочитаны
Вернуться   Форум администраторов игровых серверов > MMO > Point Blank (Piercing Blow)

Point Blank (Piercing Blow)
Общие вопросы по написанию эмулятора. General questions on developing emulator. При поддержке: Lucera 2 - разработка Java Interlude

Ответ
Опции темы
Непрочитано 08.08.2017, 10:43   #1
Забанен за кидаловo/обман/развод

Автор темы (Топик Стартер) PROTOCOL_ROOM_GET_SLOTINFO_ACK

Боты появляются и бегают но вот меня в таблице нету.
Где мб ошибка?
Boris2105 вне форума Ответить с цитированием
Непрочитано 08.08.2017, 13:27   #2
Аватар для Awiion

По умолчанию Re: PROTOCOL_ROOM_GET_SLOTINFO_ACK

Слот игрока, статус игрока проверь.
__________________
Разработка Emu: PiercingBlow 90%, APB Reloaded 100%.
Самый действенный инструмент для самообучения - грабли.
Awiion вне форума Отправить сообщение для Awiion с помощью Skype™ Ответить с цитированием
Непрочитано 08.08.2017, 13:33   #3
Забанен за кидаловo/обман/развод

Автор темы (Топик Стартер) Re: PROTOCOL_ROOM_GET_SLOTINFO_ACK

Цитата:
Сообщение от Awiion Посмотреть сообщение
Слот игрока, статус игрока проверь.
А проверить надо в пакете PreStart или StartBattle?
Boris2105 вне форума Ответить с цитированием
Непрочитано 08.08.2017, 14:00   #4
Аватар для PROGRAMMATOR
Администратор

По умолчанию Re: PROTOCOL_ROOM_GET_SLOTINFO_ACK

Ты же статус в PROTOCOL_ROOM_GET_SLOTINFO_ACK отправляешь.
__________________
composer require laravel/framework
yarn add vue
PROGRAMMATOR вне форума Отправить сообщение для PROGRAMMATOR с помощью ICQ Отправить сообщение для PROGRAMMATOR с помощью Skype™ Ответить с цитированием
Непрочитано 08.08.2017, 14:19   #5
Забанен за кидаловo/обман/развод

Автор темы (Топик Стартер) Re: PROTOCOL_ROOM_GET_SLOTINFO_ACK

Да и вроде все правильно

Код:
        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);
            }
Boris2105 вне форума Ответить с цитированием
Непрочитано 08.08.2017, 14:24   #6
Аватар для Awiion

По умолчанию Re: PROTOCOL_ROOM_GET_SLOTINFO_ACK

Уже представил

 
 
for (RoomSlot slot : room.getRoomSlots())
        {
            if (slot.getPlayer() != null)
            {
            writeC(slot.getState().ordinal()); //тут ты пропустил статус (ибо проверка) 100% твой статус игрока, тебя не будет на карте 
            } else
            {
             writeC(slot.getState().ordinal()); // а тут как ни в чем не бывало
            }
 
 
Code: C#
Вообще, не понимаю, для чего это все было сделано.
Дальше так же с рангом игрока,
И тд.
__________________
Разработка Emu: PiercingBlow 90%, APB Reloaded 100%.
Самый действенный инструмент для самообучения - грабли.
Awiion вне форума Отправить сообщение для Awiion с помощью Skype™ Ответить с цитированием
Непрочитано 08.08.2017, 14:31   #7
Забанен за кидаловo/обман/развод

Автор темы (Топик Стартер) Re: PROTOCOL_ROOM_GET_SLOTINFO_ACK

Цитата:
Сообщение от Awiion Посмотреть сообщение
Уже представил

 
 
for (RoomSlot slot : room.getRoomSlots())
        {
            if (slot.getPlayer() != null)
            {
            writeC(slot.getState().ordinal()); //тут ты пропустил статус (ибо проверка) 100% твой статус игрока, тебя не будет на карте 
            } else
            {
             writeC(slot.getState().ordinal()); // а тут как ни в чем не бывало
            }
 
 
Code: C#
Вообще, не понимаю, для чего это все было сделано.
Дальше так же с рангом игрока,
И тд.
а как исправить?
Boris2105 вне форума Ответить с цитированием
Непрочитано 08.08.2017, 14:40   #8
Аватар для Awiion

По умолчанию Re: PROTOCOL_ROOM_GET_SLOTINFO_ACK

Убрать проверку,
и все что там есть, у тебя примерно так:
Slot[] Room_Slot new = [16];
Code: C#
Вот у тебя 16 игроков,
Дальше есть статусы,

SlotState:
Свернуть ↑Развернуть ↓

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

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

RoomState:
Свернуть ↑Развернуть ↓


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

Дальше когда зашел игрок (или хост), ты сменил статус, и когда вышел.
__________________
Разработка Emu: PiercingBlow 90%, APB Reloaded 100%.
Самый действенный инструмент для самообучения - грабли.

Последний раз редактировалось Awiion; 08.08.2017 в 15:48.
Awiion вне форума Отправить сообщение для Awiion с помощью Skype™ Ответить с цитированием
Непрочитано 08.08.2017, 18:18   #9
Забанен за кидаловo/обман/развод

Автор темы (Топик Стартер) Re: PROTOCOL_ROOM_GET_SLOTINFO_ACK

Цитата:
Сообщение от Awiion Посмотреть сообщение
Убрать проверку,
и все что там есть, у тебя примерно так:
Slot[] Room_Slot new = [16];
Code: C#
Вот у тебя 16 игроков,
Дальше есть статусы,

SlotState:
Свернуть ↑Развернуть ↓

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

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

RoomState:
Свернуть ↑Развернуть ↓


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

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



Смотри я создал в классе Room
Room:
Свернуть ↑Развернуть ↓


PROTOCOL_ROOM_GET_SLOTINFO_ACK:
Свернуть ↑Развернуть ↓


Все вот так у меня должно все работать , верно?
Boris2105 вне форума Ответить с цитированием
Непрочитано 08.08.2017, 20:24   #10
Аватар для PROGRAMMATOR
Администратор

По умолчанию Re: PROTOCOL_ROOM_GET_SLOTINFO_ACK

Нет, нужно циклом отправить данные всех 16 слотов.

Проще вернуть всё как было (если ты уверен, что у тебя всегда 16 слотов) и в консоль выведи, что у тебя в slot.getState().ordinal().
__________________
composer require laravel/framework
yarn add vue
PROGRAMMATOR вне форума Отправить сообщение для PROGRAMMATOR с помощью ICQ Отправить сообщение для PROGRAMMATOR с помощью Skype™ Ответить с цитированием
Ответ


Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 
Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
[Piercing Blow] PROTOCOL_ROOM_GET_SLOTINFO_ACK Boris2105 Point Blank (Piercing Blow) 23 15.04.2017 01:14
PROTOCOL_ROOM_GET_SLOTINFO_ACK Boris2105 Point Blank (Piercing Blow) 29 13.06.2016 17:16
Структура PROTOCOL_ROOM_GET_SLOTINFO_ACK Empert Point Blank (Piercing Blow) 1 01.04.2016 09:25


© 2007–2024 «Форум администраторов игровых серверов»
Защита сайта от DDoS атак — StormWall
Работает на Булке неизвестной версии с переводом от zCarot
Текущее время: 04:11. Часовой пояс GMT +3.

Вверх