Сообщений: 538
Тем: 76
Зарегистрирован: Aug 2012
Репутация:
7
Awiion Написал:Boris2105,
Возможно статус комнаты не тот, в бою статус должен быть 15.
Вообще, ты должен все статусы пройти,
Ready -> x x x x x
[SRC="csharp"]
public enum SlotState : byte
{
Empty,
Close,
Shop,
Info,
Clan,
Inventory,
Gacha,
GiftShop,
Normal,
Ready,
Load,
Rendezvous,
Prestart,
BattleLoadOk,
BattleReady,
Battle
}
[/SRC]
У меня вот так выходит:
PROTOCOL_BATTLE_READYBATTLE_REQ = SlotState.Load
PROTOCOL_BATTLE_PRESTARTBATTLE_REQ = SlotState.Prestart
PROTOCOL_BATTLE_STARTBATTLE_REQ = SlotState.BattleReady
PROTOCOL_BATTLE_RESPAWN_REQ = SlotState.Battle
А вот где должен быть Rendezvous и BattleLoadOk?
Сообщений: 322
Тем: 6
Зарегистрирован: Nov 2015
Репутация:
505
Boris2105,
Не смешно, покажи, формулу запуска боя.
Разработка Emu: PiercingBlow 90%, APB Reloaded 100%.
Самый действенный инструмент для самообучения - грабли.
Сообщений: 538
Тем: 76
Зарегистрирован: Aug 2012
Репутация:
7
Awiion Написал:Boris2105,
Не смешно, покажи, формулу запуска боя.
формулу?
Сообщений: 322
Тем: 6
Зарегистрирован: Nov 2015
Репутация:
505
Boris2105,
PROTOCOL_BATTLE_READYBATTLE Ready, Normal, Load.
CM_BATTLE_PRESTARTBATTLE Prestart, BattleLoadOk
CM_BATTLE_STARTBATTLE BattleReady, Battle.
CM_ROOM_LOADING_START Rendezvous
У тебя, 16 игроков, каждый статус обновляется, когда ты делаешь какое либо действие.
Когда ты запускаешь бой, ты присваиваешь рум ид, игрока статус, потом по статусу,
фильтр делаешь, ready -> load, и тд.
А если ты тупа проставляешь статусы, ничего не выйдет, максимум против ботов поиграть.
CM_BATTLE_STARTBATTLE BattleReady, Battle.
Когда уже баттл 14~15.
SM_BATTLE_MISSION_ROUND_PRE_START
SM_BATTLE_MISSION_ROUND_START
Определенному игроку шлешь, или хосту кто создал.
SM_ROOM_CHANGE_ROOMINFO
Статус комнаты, ты проставляешь с того момента как создал, дальше все зависит от игрока статуса, будешь менять статус комнаты.
Разработка Emu: PiercingBlow 90%, APB Reloaded 100%.
Самый действенный инструмент для самообучения - грабли.
Сообщений: 538
Тем: 76
Зарегистрирован: Aug 2012
Репутация:
7
Awiion Написал:Boris2105,
PROTOCOL_BATTLE_READYBATTLE Ready, Normal, Load.
CM_BATTLE_PRESTARTBATTLE Prestart, BattleLoadOk
CM_BATTLE_STARTBATTLE BattleReady, Battle.
CM_ROOM_LOADING_START Rendezvous
У тебя, 16 игроков, каждый статус обновляется, когда ты делаешь какое либо действие.
Когда ты запускаешь бой, ты присваиваешь рум ид, игрока статус, потом по статусу,
фильтр делаешь, ready -> load, и тд.
А если ты тупа проставляешь статусы, ничего не выйдет, максимум против ботов поиграть.
CM_BATTLE_STARTBATTLE BattleReady, Battle.
Когда уже баттл 15.
SM_BATTLE_MISSION_ROUND_PRE_START
SM_BATTLE_MISSION_ROUND_START
Определенному игроку шлешь, или хосту кто создал.
SM_ROOM_CHANGE_ROOMINFO
Статус комнаты, ты проставляешь с того момента как создал, дальше все зависит от игрока статуса, будешь менять статус комнаты.
А ясно, а я тупо подставляю.
PROTOCOL_BATTLE_READYBATTLE_REQ
Client.SendPacket(new PROTOCOL_ROOM_GET_SLOTINFO_ACK(SlotState.Load, Client.Player, room, clan));
PROTOCOL_BATTLE_PRESTARTBATTLE_REQ
Client.SendPacket(new PROTOCOL_ROOM_GET_SLOTINFO_ACK(SlotState.Prestart, Client.Player, room, clan));
Но так даже боты не запускаются
А где сейчас можно ловить пакеты для этого клиента или уже все перешли на версию 3.11?
Сообщений: 322
Тем: 6
Зарегистрирован: Nov 2015
Репутация:
505
Boris2105,
Клац
Singapore
Разработка Emu: PiercingBlow 90%, APB Reloaded 100%.
Самый действенный инструмент для самообучения - грабли.
Сообщений: 6,450
Тем: 262
Зарегистрирован: Nov 2007
Репутация:
44,165
Boris2105, почему ты ссылку на объект Room не хранишь у клиента?
Easy
Клиент:
[SRC="csharp"]public class GameClient
{
public Room Room { get; set; }
}
[/SRC]
Комната:
[SRC="csharp"]public class Room
{
public GameClient Owner { get; set; }
public Room(GameClient owner)
{
Owner = owner;
Owner.Room = this;
}
}
[/SRC]
В пакете создания комнаты:
[SRC="csharp"]// ...
private Room room => new Room(Client);
public override void ReadImpl()
{
// ...
room.Title = Read<string>();
// ...
}
public override void RunImpl()
{
RoomManager.Store(room);
}
// ...
[/SRC]
Всё, у текущего клиента есть доступ к Room.
Сообщений: 538
Тем: 76
Зарегистрирован: Aug 2012
Репутация:
7
PROGRAMMATOR Написал:Boris2105, почему ты ссылку на объект Room не хранишь у клиента?
Easy
Клиент:
[SRC="csharp"]public class GameClient
{
public Room Room { get; set; }
}
[/SRC]
Комната:
[SRC="csharp"]public class Room
{
public GameClient Owner { get; set; }
public Room(GameClient owner)
{
Owner = owner;
Owner.Room = this;
}
}
[/SRC]
В пакете создания комнаты:
[SRC="csharp"]// ...
private Room room => new Room(Client);
public override void ReadImpl()
{
// ...
room.Title = Read<string>();
// ...
}
public override void RunImpl()
{
RoomManager.Store(room);
}
// ...
[/SRC]
Всё, у текущего клиента есть доступ к Room.
Ну потому что не знал что так можно сделать.
Только вот для чего это используется?
room.Title = Read<string>();
RoomManager.Store(room);
Сообщений: 357
Тем: 58
Зарегистрирован: Jan 2016
Репутация:
116
Boris2105 Написал:Ну потому что не знал что так можно сделать.
Только вот для чего это используется?
room.Title = Read<string>();
RoomManager.Store(room);
Первое присваивает комнате название. Второе судя по всем добавляет комнату в какое то хранилище.
Лучше взять и изобрести завтрашний день, чем переживать о том, что вчерашний был так себе.
Сообщений: 538
Тем: 76
Зарегистрирован: Aug 2012
Репутация:
7
Sojang Написал:Первое присваивает комнате название. Второе судя по всем добавляет комнату в какое то хранилище.
ясно, но пока все равно сложно сделать так
|