Рейтинг темы:
  • 0 Голос(ов) - 0 в среднем
  • 1
  • 2
  • 3
  • 4
  • 5
Логика старта боя
#1
Поделитесь логикой старта боя)где какие проверки делать и что слатьSmile
Ответ
#2
Пакеты слать. kappa

Там же все просто, StartBattle() > StartRound(Все пакеты PROTOCOL_BATTLE_MISSION_ROUND_XXX_START_ACK) > EndRound() > если не один раунд, то по новой StartRound(), иначе EndBattle(расчёт заработанного опыта, кредитов, ...).

Что имеется ввиду под проверками?
Ответ
#3
PROGRAMMATOR Написал:Пакеты слать. kappa

Там же все просто, StartBattle() > StartRound(Все пакеты PROTOCOL_BATTLE_MISSION_ROUND_XXX_START_ACK) > EndRound() > если не один раунд, то по новой StartRound(), иначе EndBattle(расчёт заработанного опыта, кредитов, ...).

Что имеется ввиду под проверками?

Бой же нужно одновременно стартовать.Я имею виду где какие проверки делать что бы запустить бой одновременно мол
Код:
if(Slot.State == SlotState.READY)
//...
Ответ
#4
По вкусу, как удобно.

[SRC="csharp"]
public void SendBroadcastPacket(SendPacket packet, SlotState state)
{
foreach (var account in Accounts.Where(x => x.Slot.HasState(state)))
{
account.SendPacket(packet);
}
}
[/SRC]
Ответ
#5
PROGRAMMATOR Написал:По вкусу, как удобно.

[SRC="csharp"]
public void SendBroadcastPacket(SendPacket packet, SlotState state)
{
foreach (var account in Accounts.Where(x => x.Slot.HasState(state)))
{
account.SendPacket(packet);
}
}
[/SRC]

Вы меня кажись опять не правильно поняли(или я вас)Smile
Задам вопрос проще.Как запустить одновременно бой?Что бы у одного игрока бой не запустился раньше чем у другого
Ответ
#6
После загрузки карты клиент шлёт пакет PROTOCOL_BATTLE_PRESTARTBATTLE_REQ.
Проставляется PRESTART и сверяется, есть ли игроки с этим состоянием в каждой команде, если есть - запускается бой. Кто прогрузился позже - подключается к бою, то есть ему шлем те же пакеты на старт боя, то только уже ему одному.

Мало чем отличается от запуска боя с ботами.
Ответ


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


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