예제 #1
0
        private void SaveFacialFeature()
        {
            var player = Game.Player.Character.Handle;

            var saveFacialFeature = new FacialFeature
            {
                NoseWidth        = API.GetPedFaceFeature(player, 0),
                NosePeakHeight   = API.GetPedFaceFeature(player, 1),
                NosePeakLength   = API.GetPedFaceFeature(player, 2),
                NoseBoneHeight   = API.GetPedFaceFeature(player, 3),
                NosePeakLowering = API.GetPedFaceFeature(player, 4),
                NoseBoneTwist    = API.GetPedFaceFeature(player, 5),
                EyeBrowHeight    = API.GetPedFaceFeature(player, 6),
                EyeBrowLength    = API.GetPedFaceFeature(player, 7),
                CheekBoneHeight  = API.GetPedFaceFeature(player, 8),
                CheekBoneWidth   = API.GetPedFaceFeature(player, 9),
                CheekWidth       = API.GetPedFaceFeature(player, 10),
                EyeOpenings      = API.GetPedFaceFeature(player, 11),
                LipThickness     = API.GetPedFaceFeature(player, 12),
                JawBoneWidth     = API.GetPedFaceFeature(player, 13),
                JawBoneLength    = API.GetPedFaceFeature(player, 14),
                ChinBoneLowering = API.GetPedFaceFeature(player, 15),
                ChinBoneLength   = API.GetPedFaceFeature(player, 16),
                ChinBoneWidth    = API.GetPedFaceFeature(player, 17),
                ChinDimple       = API.GetPedFaceFeature(player, 18),
                NeckThickness    = API.GetPedFaceFeature(player, 19),
            };

            this.Rpc.Event(CharacterEvents.SaveFacialFeature).Trigger(this.activeCharacter.Id, saveFacialFeature);
        }
        private async void SaveFacialFeature(IRpcEvent e, Guid characterId, FacialFeature facialFeature)
        {
            using (var context = new StorageContext())
                using (var transaction = context.Database.BeginTransaction())
                {
                    try
                    {
                        var save = context.Characters.Include(c => c.FacialFeature).Single(c => c.Id == characterId);

                        facialFeature.Id = save.FacialFeature.Id;

                        context.Entry(save.FacialFeature).CurrentValues.SetValues(facialFeature);

                        await context.SaveChangesAsync();

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

                        transaction.Rollback();
                    }
                }
        }