public override void Handle(BafClient client, BafPacket packet)
        {
            IBuffer buffer     = packet.CreateBuffer();
            int     shopItemId = buffer.ReadInt32();

            Logger.Info(client, $"Purchase ShopItemId: {shopItemId}");

            ShopItem shopItem = _server.GetShopItem(shopItemId);

            if (shopItem == null)
            {
                Logger.Error(client, $"Invalid ShopItemId: {shopItemId}");
                return;
            }

            Character character = client.Character;

            if (character == null)
            {
                Logger.Error(client, $"Character is null");
                return;
            }



            IBuffer b = new StreamBuffer();

            BafPacket p = new BafPacket(PacketId.ShopBuyItemRes, b.GetAllBytes());

            client.Send(p);
        }
        public override void Handle(BafClient client, BafPacket packet)
        {
            IBuffer buffer   = packet.CreateBuffer();
            int     unk      = buffer.ReadInt32();
            string  bandName = buffer.ReadCString();
            byte    unk1     = buffer.ReadByte();

            Logger.Info(client, $"Create Band:{bandName}");

            IBuffer   b = new StreamBuffer();
            BafPacket p = new BafPacket(PacketId.CreateBandRes, b.GetAllBytes());

            client.Send(p);
        }
        public override void Handle(BafClient client, BafPacket packet)
        {
            IBuffer            buffer         = packet.CreateBuffer();
            int                songId         = buffer.ReadInt32();
            byte               difficulty     = buffer.ReadByte();
            SongDifficultyType songDifficulty = (SongDifficultyType)difficulty;

            Logger.Info(client, $"Selected Song: Id:{songId} Difficulty:{songDifficulty}");

            IBuffer b = new StreamBuffer();

            b.WriteInt32(songId);
            BafPacket p = new BafPacket(PacketId.RoomSelectSongRes, b.GetAllBytes());

            client.Send(p);
        }
        public override void Handle(BafClient client, BafPacket packet)
        {
            IBuffer buffer        = packet.CreateBuffer();
            short   channelTab    = buffer.ReadInt16();
            short   channelNumber = buffer.ReadInt16();

            Channel channel = _server.GetChannel(channelTab, channelNumber);

            client.Channel = channel;

            IBuffer b = new StreamBuffer();

            b.WriteInt32(0); // unknown
            BafPacket p = new BafPacket(PacketId.JoinChannelRes, b.GetAllBytes());

            client.Send(p);
        }
        public override void Handle(BafClient client, BafPacket packet)
        {
            IBuffer buffer  = packet.CreateBuffer();
            string  message = buffer.ReadCString();

            Logger.Info(client, $"ChannelChat Message: {message}");

            Character character = client.Character;

            if (character == null)
            {
                Logger.Error(client, "Character is null");
                return;
            }

            IBuffer b = new StreamBuffer();

            b.WriteCString(character.Name);
            b.WriteCString(message);
            BafPacket p = new BafPacket(PacketId.ChannelChatRes, b.GetAllBytes());

            client.Send(p);
        }
示例#6
0
        public override void Handle(BafClient client, BafPacket packet)
        {
            IBuffer buffer   = packet.CreateBuffer();
            string  account  = buffer.ReadCString();
            string  password = buffer.ReadCString();
            string  pin      = buffer.ReadCString();

            Logger.Debug(client, $"Login: Acc:{account} Pw:{password} Pin:{pin}");

            Character character = new Character();

            character.Name   = account;
            client.Character = character;

            IBuffer b = new StreamBuffer();

            b.WriteInt32(0);
            b.WriteInt32(0);
            b.WriteInt32(0);
            b.WriteCString("TESTA");
            b.WriteCString(character.Name);
            b.WriteByte(0);
            b.WriteByte(0);

            b.WriteInt32(0);
            b.WriteInt32(0);
            b.WriteInt32(0);
            b.WriteInt32(0);
            b.WriteInt32(0);

            b.WriteInt32(0);
            b.WriteInt32(0);
            b.WriteInt32(0);
            b.WriteInt32(0);
            b.WriteInt32(0);

            b.WriteCString("TESTC");
            b.WriteCString("TESTD");
            b.WriteCString("TESTE");
            b.WriteCString("TESTF");
            b.WriteCString("TESTG");

            b.WriteByte(0);
            b.WriteByte(0);

            b.WriteCString("TESTH");

            b.WriteByte(0);

            b.WriteInt32(0);
            b.WriteInt32(0);
            b.WriteInt32(0);
            b.WriteInt32(0);
            b.WriteInt32(0);

            b.WriteInt32(0);
            b.WriteInt32(0);
            b.WriteInt32(0);
            b.WriteInt32(0);
            b.WriteInt32(0);

            b.WriteInt32(0);
            b.WriteInt32(0);
            b.WriteInt32(0);

            b.WriteByte(0);
            b.WriteByte(0);
            b.WriteByte(0);
            b.WriteByte(0);

            b.WriteByte(0);
            b.WriteByte(0);
            b.WriteByte(0);
            b.WriteByte(0);


            b.WriteCString("TESTI");
            b.WriteCString("TESTJ");

            b.WriteInt32(0);
            b.WriteInt32(0);

            BafPacket p = new BafPacket(PacketId.LoginRes, b.GetAllBytes());

            client.Send(p);
        }
示例#7
0
        public override void Handle(BafClient client, BafPacket packet)
        {
            IBuffer buffer           = packet.CreateBuffer();
            string  name             = buffer.ReadCString();
            byte    pTeamType        = buffer.ReadByte();
            byte    pKeyType         = buffer.ReadByte();
            byte    pAllowSpectators = buffer.ReadByte();
            bool    allowSpectators  = pAllowSpectators == 1;
            byte    pHasPassword     = buffer.ReadByte();
            bool    hasPassword      = pHasPassword == 1;
            string  password         = null;

            if (hasPassword)
            {
                password = buffer.ReadCString();
            }

            uint     unk4 = buffer.ReadUInt32();
            TeamType team = (TeamType)pTeamType;
            KeyType  key  = (KeyType)pKeyType;

            Room room = client.Channel.CreateRoom(name, team, key, allowSpectators, password);

            client.Room = room;


            Logger.Debug(client,
                         $"Create Room: Name:{name} Pw:{password} Key:{key} Team:{team} Spectators:{allowSpectators} unk4:{unk4}");

            IBuffer b = new StreamBuffer();

            b.WriteInt32(room.Id);
            b.WriteCString(room.Name);
            b.WriteByte((byte)room.Team);
            b.WriteByte((byte)room.Key);
            b.WriteByte(room.HasPassword ? (byte)1 : (byte)0);
            b.WriteInt32(0);                                       // unknown
            b.WriteByte(room.AllowSpectators ? (byte)1 : (byte)0); // spectator 0=false 1 = true
            b.WriteInt32(0);                                       // battery
            b.WriteByte(0);                                        // unknown

            BafPacket p = new BafPacket(PacketId.AnnounceRoomRes, b.GetAllBytes());

            client.Send(p);


            IBuffer b1 = new StreamBuffer();

            b1.WriteInt32(0);
            b1.WriteInt32(room.Id);
            b1.WriteByte(0);
            b1.WriteByte(0);
            b1.WriteByte(0);
            b1.WriteByte(0);
            b1.WriteByte(0);
            b1.WriteInt32(0);
            b1.WriteByte(0);
            b1.WriteInt32(0);
            b1.WriteByte(0);
            BafPacket p1 = new BafPacket(PacketId.CreateRoomRes, b1.GetAllBytes());

            client.Send(p1);
        }