private async void SaveFacialTrait(IRpcEvent e, Guid characterId, CharacterFacialTrait facialTrait)
        {
            using (var context = new StorageContext())
                using (var transaction = context.Database.BeginTransaction())
                {
                    try
                    {
                        var save = context.Characters.Include(c => c.FacialTrait).Single(c => c.Id == characterId);

                        facialTrait.Id = save.FacialTrait.Id;

                        context.Entry(save.FacialTrait).CurrentValues.SetValues(facialTrait);

                        await context.SaveChangesAsync();

                        transaction.Commit();
                    }
                    catch (Exception ex)
                    {
                        this.Logger.Error(ex, "Character Facial Features Save");

                        transaction.Rollback();
                    }
                }
        }
Esempio n. 2
0
        private void SaveCharacter()
        {
            if (!this.isPlaying)
            {
                return;
            }

            var player = Game.PlayerPed;

            this.activeCharacter.Position = player.Position.ToVector3().ToPosition();
            this.activeCharacter.Model    = ((uint)player.Model.Hash).ToString();

            this.Rpc.Event(CharacterEvents.SaveCharacter).Trigger(this.activeCharacter);

            this.Rpc.Event(CharacterEvents.SaveStyle).Trigger(this.activeCharacter.Id, CharacterStyle.ConvertStyle(player.Style, this.activeCharacter.Id));

            // FreeMode Models only
            if (!(this.activeCharacter.ModelHash == PedHash.FreemodeMale01 ||
                  this.activeCharacter.ModelHash == PedHash.FreemodeFemale01))
            {
                return;
            }

            this.Rpc.Event(CharacterEvents.SaveFacialTrait).Trigger(this.activeCharacter.Id, CharacterFacialTrait.ConvertFacialTrait(player.Handle));
            this.Rpc.Event(CharacterEvents.SaveHeritage).Trigger(this.activeCharacter.Id, CharacterHeritage.ConvertHeritage(player.GetHeadBlendData(), this.activeCharacter.Created));
            this.Rpc.Event(CharacterEvents.SaveTrait).Trigger(this.activeCharacter.Id, CharacterTrait.ConvertTrait(player));
        }