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

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

Ответ
Опции темы
Непрочитано 14.04.2017, 21:28   #21
Забанен за кидаловo/обман/развод

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

Цитата:
Сообщение от Awiion Посмотреть сообщение
PROTOCOL_BATTLE_READYBATTLE Ready, Normal, Load.
CM_BATTLE_PRESTARTBATTLE Prestart, BattleLoadOk
CM_BATTLE_STARTBATTLE BattleReady, Battle.
CM_ROOM_LOADING_START Rendezvous
У тебя, 16 игроков, каждый статус обновляется, когда ты делаешь какое либо действие.
Когда ты запускаешь бой, ты присваиваешь рум ид, игрока статус, потом по статусу,
фильтр делаешь, ready -> load, и тд.
А если ты тупа проставляешь статусы, ничего не выйдет, максимум против ботов поиграть.
А можешь дать пример как сделать?
Boris2105 вне форума Ответить с цитированием
Непрочитано 14.04.2017, 22:18   #22
Аватар для PROGRAMMATOR
Администратор

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

PROTOCOL_BATTLE_READYBATTLE_REQ приходит от клиента, после того, как он решил вступить в бой. Соответственно проставляешь клиенту статус Ready (9). Если бой уже начался или условия начала боя соблюдены (имеется необходимое количество игроков со статусом Ready) то нужно присвоить игроку\ам статус Load (10).

PROTOCOL_BATTLE_PRESTARTBATTLE_REQ при получении от клиента устанавливаешь ему статус PreStart (12) и как только очередь игроков со статусом Load закончится, меняешь статус комнаты на PreBattle:

public void PreStartBattleRequest(Account account)
{
	account.SetState(SlotState.PreStart);
 
	if (GetAccounts(SlotState.Load).Count() < 1)
	{
		SetState(RoomState.PreBattle);
	}
}
 
 
Code: C#

После этого от клиентов ждёшь пакет PROTOCOL_BATTLE_STARTBATTLE_REQ устанавливаешь ему статус PreBattle, а комнате Battle и можешь стартовать раунд.

При старте раунда естественно устанавливаешь статус Battle и у самого клиента. Только нужно дождаться всей очереди и запускать раунд уже всем подключившимся, а то кто-то будет раньше других появляться в бою.
__________________
composer require laravel/framework
yarn add vue
PROGRAMMATOR вне форума Отправить сообщение для PROGRAMMATOR с помощью ICQ Отправить сообщение для PROGRAMMATOR с помощью Skype™ Ответить с цитированием
Непрочитано 14.04.2017, 23:02   #23
Забанен за кидаловo/обман/развод

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

PROGRAMMATOR, а сейчас в Piercing Blow магазин вообще никак не изменить или есть какие то варианты?
Моя попытка:
Свернуть ↑Развернуть ↓
Boris2105 вне форума Ответить с цитированием
Непрочитано 15.04.2017, 01:14   #24
Аватар для PROGRAMMATOR
Администратор

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

Зачем? Он меняется всё так же пакетами. Shop.dat - это кэш магазина.
__________________
composer require laravel/framework
yarn add vue
PROGRAMMATOR вне форума Отправить сообщение для PROGRAMMATOR с помощью ICQ Отправить сообщение для PROGRAMMATOR с помощью Skype™ Ответить с цитированием
Ответ


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

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

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

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

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
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
Текущее время: 18:50. Часовой пояс GMT +3.

Вверх