Рейтинг темы:
  • 0 Голос(ов) - 0 в среднем
  • 1
  • 2
  • 3
  • 4
  • 5
PROTOCOL_ROOM_GET_SLOTINFO_ACK
#21
Ответ
#22
PROTOCOL_BATTLE_READYBATTLE_REQ приходит от клиента, после того, как он решил вступить в бой. Соответственно проставляешь клиенту статус Ready (9). Если бой уже начался или условия начала боя соблюдены (имеется необходимое количество игроков со статусом Ready) то нужно присвоить игроку\ам статус Load (10).

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

[SRC="csharp"]public void PreStartBattleRequest(Account account)
{
account.SetState(SlotState.PreStart);

if (GetAccounts(SlotState.Load).Count() < 1)
{
SetState(RoomState.PreBattle);
}
}

[/SRC]


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

При старте раунда естественно устанавливаешь статус Battle и у самого клиента. Только нужно дождаться всей очереди и запускать раунд уже всем подключившимся, а то кто-то будет раньше других появляться в бою.
Ответ
#23
PROGRAMMATOR, а сейчас в Piercing Blow магазин вообще никак не изменить или есть какие то варианты?
Моя попытка
Ответ
#24
Зачем? Он меняется всё так же пакетами. Shop.dat - это кэш магазина.
Ответ


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

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


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