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

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

Ответ
Опции темы
Непрочитано 10.07.2016, 00:06   #11
Забанен за кидаловo/обман/развод

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

Цитата:
Сообщение от PROGRAMMATOR Посмотреть сообщение
Этот пакет пришёл от клиента, что в ответ ему отсылаешь?
Client.SendPacket(new PROTOCOL_BATTLE_PRESTARTBATTLE_ACK());
 
            WriteD(1); //unk
            WriteD(0); //slotId
            //udp server
            WriteC(2);
            WriteB(new byte[] { 0x7F, 0x00, 0x00, 0x01 }); //ip
            WriteB(new byte[] { 0x40, 0x9C }); //port
            //room info
            WriteB(new byte[] { 0x3d, 0x01, 0x00, 0x00 }); //UniqueId
            WriteB(new byte[] { 0x02, 0x58, 0x00, 0x00 }); //Seed
            WriteB(new byte[35]); //hitParts
 
Code: C#
Client.SendPacket(new PROTOCOL_ROOM_GET_SLOTINFO_ACK(SlotState.Load));
Boris2105 вне форума Ответить с цитированием
Непрочитано 10.07.2016, 00:29   #12
Аватар для PROGRAMMATOR
Администратор

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

У слота игрока получившего PROTOCOL_BATTLE_PRESTARTBATTLE_ACK уже должно быть состояние PreBattle (12) и у комнаты PreBattle (4).
__________________
composer require laravel/framework
yarn add vue
PROGRAMMATOR вне форума Отправить сообщение для PROGRAMMATOR с помощью ICQ Отправить сообщение для PROGRAMMATOR с помощью Skype™ Ответить с цитированием
Непрочитано 10.07.2016, 00:41   #13
Забанен за кидаловo/обман/развод

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

Цитата:
Сообщение от PROGRAMMATOR Посмотреть сообщение
У слота игрока получившего PROTOCOL_BATTLE_PRESTARTBATTLE_ACK уже должно быть состояние PreBattle (12) и у комнаты PreBattle (4).
То есть у комнаты?
Boris2105 вне форума Ответить с цитированием
Непрочитано 10.07.2016, 00:47   #14
Аватар для PROGRAMMATOR
Администратор

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

PROTOCOL_ROOM_CHANGE_ROOMINFO_ACK

public override void WriteImpl()
{
	Write<uint>(room.Id);
	WriteUnicode(room.Title, RoomModel.TitleLength);
	Write<StageId>(room.StageId);
	Write<bool>(room.StageSmall);
	Write<byte>(room.StageType);
	Write<RoomState>(room.State); // <-- Состояние комнаты
 
	// ...
}
 
Code: C#
__________________
composer require laravel/framework
yarn add vue
PROGRAMMATOR вне форума Отправить сообщение для PROGRAMMATOR с помощью ICQ Отправить сообщение для PROGRAMMATOR с помощью Skype™ Ответить с цитированием
Непрочитано 10.07.2016, 00:54   #15
Забанен за кидаловo/обман/развод

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

Цитата:
Сообщение от PROGRAMMATOR Посмотреть сообщение
PROTOCOL_ROOM_CHANGE_ROOMINFO_ACK

public override void WriteImpl()
{
	Write<uint>(room.Id);
	WriteUnicode(room.Title, RoomModel.TitleLength);
	Write<StageId>(room.StageId);
	Write<bool>(room.StageSmall);
	Write<byte>(room.StageType);
	Write<RoomState>(room.State); // <-- Состояние комнаты
 
	// ...
}
 
Code: C#
А ты не мог бы дать список State у комнаты?

И еще вопрос тут при вызове пакета PROTOCOL_BATTLE_STARTBATTLE_REQ
SlotState сначала 14, а потом 15.
Как это реализовать?
Boris2105 вне форума Ответить с цитированием
Непрочитано 10.07.2016, 01:11   #16
Аватар для PROGRAMMATOR
Администратор

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

namespace PiercingBlow.Common.Models.Room
{
    public enum RoomState : byte
    {
        Ready,
        Countdown,
        Loading,
        Rendezvous,
        PreBattle,
        Unknown,
        Battle,
        BattleEnd, 
        Empty
    }
}
 
Code: C#

Ну как, пришёл игроку PROTOCOL_BATTLE_STARTBATTLE_REQ, проставляешь его слоту нужный State и отправляешь PROTOCOL_ROOM_GET_SLOTINFO_ACK.
__________________
composer require laravel/framework
yarn add vue
PROGRAMMATOR вне форума Отправить сообщение для PROGRAMMATOR с помощью ICQ Отправить сообщение для PROGRAMMATOR с помощью Skype™ Ответить с цитированием
Непрочитано 10.07.2016, 01:17   #17
Забанен за кидаловo/обман/развод

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

Цитата:
Сообщение от PROGRAMMATOR Посмотреть сообщение
namespace PiercingBlow.Common.Models.Room
{
    public enum RoomState : byte
    {
        Ready,
        Countdown,
        Loading,
        Rendezvous,
        PreBattle,
        Unknown,
        Battle,
        BattleEnd, 
        Empty
    }
}
 
Code: C#

Ну как, пришёл игроку PROTOCOL_BATTLE_STARTBATTLE_REQ, проставляешь его слоту нужный State и отправляешь PROTOCOL_ROOM_GET_SLOTINFO_ACK.
Client.SendPacket(new PROTOCOL_BATTLE_STARTBATTLE_ACK());
Client.SendPacket(new PROTOCOL_BATTLE_MISSION_ROUND_PRE_START_ACK());
Client.SendPacket(new PROTOCOL_BATTLE_MISSION_ROUND_START_ACK());
Client.SendPacket(new PROTOCOL_ROOM_GET_SLOTINFO_ACK(SlotState.PreBattle ));
Client.SendPacket(new PROTOCOL_ROOM_GET_SLOTINFO_ACK(SlotState.Battle));

Так что ли?
Boris2105 вне форума Ответить с цитированием
Непрочитано 10.07.2016, 01:21   #18
Аватар для PROGRAMMATOR
Администратор

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

Конечно же нет.

PROTOCOL_ROOM_GET_SLOTINFO_ACK содержит слоты всех игроков, а статус меняется только у того, кто получил PROTOCOL_BATTLE_STARTBATTLE_REQ, другие же в этот момент могут ещё грузиться.
__________________
composer require laravel/framework
yarn add vue
PROGRAMMATOR вне форума Отправить сообщение для PROGRAMMATOR с помощью ICQ Отправить сообщение для PROGRAMMATOR с помощью Skype™ Ответить с цитированием
Ответ


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

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

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

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


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

Вверх