Ejemplo n.º 1
0
        public static async void OnCreateCharacter(WorldClient client, IPacketStream packet)
        {
            var createCharacterPacket = new CreateCharacterPacket(packet);

            using var database = DependencyContainer.Instance.Resolve <IDatabase>();

            // Get number of user characters.
            var count = (byte)database.Charaters.Count(x => x.UserId == client.UserID);

            if (count == Constants.MaxCharacters - 1)
            {
                // Max number is reached.
                WorldPacketFactory.SendCreatedCharacter(client, false);
            }

            DbCharacter character = new DbCharacter()
            {
                Name   = createCharacterPacket.CharacterName,
                Race   = createCharacterPacket.Race,
                Mode   = createCharacterPacket.Mode,
                Hair   = createCharacterPacket.Hair,
                Face   = createCharacterPacket.Face,
                Height = createCharacterPacket.Height,
                Class  = createCharacterPacket.Class,
                Gender = createCharacterPacket.Gender,
                Level  = 1,
                Slot   = count,
                UserId = client.UserID
            };

            await database.Charaters.CreateAsync(character);

            await database.CompleteAsync();

            WorldPacketFactory.SendCreatedCharacter(client, true);
        }