08.08.2017, 18:18
|
#9
|
Забанен за кидаловo/обман/развод
Регистрация: 29.08.2012
Возраст: 29
Сообщений: 538
Отблагодарили 6 раз(а)
Рейтинг мнений:
|
Re: PROTOCOL_ROOM_GET_SLOTINFO_ACK
Цитата:
Сообщение от Awiion
Убрать проверку,
и все что там есть, у тебя примерно так:
Slot[] Room_Slot new = [16];Code: C# Вот у тебя 16 игроков,
Дальше есть статусы,
Свернуть ↑
public enum SlotState : byte
{
Empty,
Close,
Shop,
Info,
Clan,
Inventory,
Gacha,
Normal,
Ready,
Load,
Rendezvous,
Prestart,
BattleReady,
Battle
}
Code: C#
Свернуть ↑Развернуть ↓
Статично всегда 16 игроков,
У тебя их в данный момент не 16, ты пропустил.
Когда ты создаешь комнату,
Ты присваиваешь себе статус, остальные Empty (можно указать 4v4 8v8)
Но их так же 16. Не меньше не больше.
Так же с комнатой статусом
Статусы меняются:
Создание комнаты режимы,
Управления слотами,
Выход из боя, инвентарь, магазин, клан и тд,
Смена команд, как хостом так и игроками.
Дальше когда зашел игрок (или хост), ты сменил статус, и когда вышел.
|
Смотри я создал в классе Room
Свернуть ↑
public class PROTOCOL_ROOM_GET_SLOTINFO_ACK extends ServerPacket
{
Room room;
RoomSlot slot;
public PROTOCOL_ROOM_GET_SLOTINFO_ACK(Room room, RoomSlot slot)
{
super(3848);
this.room = room;
this.slot = slot;
}
@Override
protected void writeImpl()
{
writeH(0);
writeC(slot.getState().ordinal());
writeC(slot.getPlayer().getRank());
writeD(0); // Clan ID TODO
writeD(0); // Clan Role TODO
writeC(0); // Clan Rank ? TODO
writeC(255); // COLORS RANK
writeC(255);
writeC(255);
writeC(255);
writeC(0); // PREMIUM USER ?
writeD(0); // CUPONS INFO
writeB(new byte[5]); // UNK
writeB(new byte[34]); // CLAN NAME
writeC(0);
writeC(225); // UNKNOW
writeC(room.getRoomSlotByPlayer(room.getLeader()).getId());
}
}
Code: C#
Свернуть ↑Развернуть ↓
Все вот так у меня должно все работать , верно?
|
|
|