/// <summary> /// Refresh current overlays /// </summary> public static void RefreshCurrentOverlays() { try { API.ClearPedDecorations(Game.PlayerPed.Handle); foreach (var overlayModel in CurrentOverlays) { var overlay = OverlaysTable.GetOverlayModel(overlayModel.Id); if (overlay == null) { Log.Verbose($"Overlay is null"); return; } for (var i = 0; i < overlayModel.ApplyCount; i++) { var collection = string.Concat(overlay.Collection, "_overlays"); API.ApplyPedOverlay(Game.PlayerPed.Handle, (uint)API.GetHashKey(collection), (uint)API.GetHashKey(overlay.HashName)); } } } catch (Exception ex) { Log.Error(ex); } }
/// <summary> /// Remove tattoos from a body part zone /// </summary> /// <param name="zone">body part zone</param> public static void RemoveTattoosFromZone(OverlaysTable.OverlayZones zone) { try { var overlaysToRemove = new List <int>(); foreach (var overlayModel in CurrentOverlays) { if (!OverlaysTable.OverlayTattooTable.TryGetValue(overlayModel.Id, out _)) { continue; } var overlay = OverlaysTable.GetOverlayModel(overlayModel.Id); if (overlay.OverlayZone == zone) { overlaysToRemove.Add(overlayModel.Id); } } foreach (var overlayId in overlaysToRemove) { RemoveOverlayFromPlayer(overlayId, false); } SaveOverlays(); RefreshCurrentOverlays(); } catch (Exception ex) { Log.Error(ex); } }