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(); } } }
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)); }