promotional bannermobile promotional banner

MenaceMeter

MenaceMeter is a WoW TBC Classic 2.5.5 addon to monitor threat in real-time and better manage your aggro in combat.

File Details

MenaceMeter 3.3.0.zip

  • R
  • Dec 18, 2025
  • 43.35 KB
  • 381
  • 1.15.8
  • Classic

File Name

MenaceMeter 3.3.0.zip

Supported Versions

  • 1.15.8
### ๐ŸŽ‰ Version Majeure - Refonte Complète

Cette version représente une refonte majeure de l'addon avec des améliorations significatives en termes de fonctionnalités, de performance, de stabilité et d'architecture. L'addon a été entièrement restructuré pour offrir une expérience utilisateur optimale et une base solide pour les futures améliorations.

---

## โœจ Nouvelles Fonctionnalités Majeures

### ๐ŸŒ Support Multilingue Complet

- **Système de localisation intégré** : L'addon détecte automatiquement la langue du jeu
- **Support français (frFR)** : Interface complètement traduite en français
- **Support anglais (enUS/enGB)** : Interface complètement traduite en anglais
- **Détection automatique** : Changement de langue sans intervention de l'utilisateur
- **Fallback intelligent** : Retour automatique vers l'anglais si la langue n'est pas supportée
- **Tous les textes traduits** : Interface, tooltips, messages, options, tout est localisé

### ๐ŸŽฏ Gestion Multi-Cible Avancée

- **Surveillance simultanée de plusieurs cibles** : L'addon peut maintenant suivre la menace sur différentes cibles
- **Support de la cible principale (target)** : Suivi standard de la cible sélectionnée
- **Support de la cible focus (focus)** : Suivi automatique si aucune cible principale n'est disponible
- **Support du survol de souris (mouseover)** : Détection automatique des unités survolées
- **Priorité intelligente** : Système de priorité automatique target → focus → mouseover
- **Basculement automatique** : Changement de cible suivi sans intervention
- **Validation robuste** : Vérification de la validité des cibles avant traitement

### ๐Ÿšจ Système d'Alertes Visuelles Avancé

#### Bordure Rouge - Alerte Critique (1er joueur)
- **Apparition précoce** : Bordure visible dès 90% de menace (avant l'aggro complet)
- **Confirmation à 100%** : Reste visible à 100% pour confirmer l'aggro total
- **Design double couche** : Bordure extérieure épaisse (2px) + bordure intérieure brillante (1px)
- **Couleur optimisée** : Rouge vif pur pour une visibilité maximale
- **Effet visuel** : Bordure intérieure plus claire pour un effet de profondeur
- **Disparition automatique** : Se cache automatiquement quand les conditions ne sont plus remplies

#### Bordure Orange - Alerte Préventive (2e joueur)
- **Alerte précoce** : Apparition dès 80% de menace pour le 2e joueur
- **Design discret** : Bordure fine (1px) pour ne pas distraire
- **Couleur orange** : Visuellement distincte mais moins agressive que le rouge
- **Prévention proactive** : Permet de réagir avant que la situation ne devienne critique
- **Gestion automatique** : Disparition automatique quand la menace baisse

### ๐Ÿ”Š Contrôle Sonore Intuitif

- **Bouton dédié** : Icône de haut-parleur directement sur l'interface principale
- **Accès rapide** : Activation/désactivation en un clic sans ouvrir les options
- **Feedback visuel** :
  - Transparent (alpha 0.4) quand le son est désactivé
  - Opaque (alpha 1.0) quand le son est activé
- **Tooltip informatif** : Indication claire de l'état actuel (activé/désactivé)
- **Persistance** : L'état est sauvegardé entre les sessions de jeu
- **Synchronisation** : L'état visuel est restauré au chargement de l'addon

### ๐ŸŽฌ Système d'Animations Professionnel

#### Animations de Transition
- **Fade In** : Apparition en fondu pour les nouvelles lignes (durée 0.3s)
- **Fade Out** : Disparition en fondu pour les lignes supprimées (durée 0.2s)
- **Slide** : Animation de glissement lors des changements de position (durée 0.25s)
- **Easing** : Fonction d'accélération/décélération pour des mouvements naturels

#### Animations de Barres
- **Remplissage progressif** : Les barres se remplissent progressivement depuis 0%
- **Transitions de couleur** : Changement de couleur fluide selon le niveau de menace
  - Vert vif (0-50%)
  - Jaune brillant (50-80%)
  - Rouge vif (80-100%)
- **Lissage adaptatif** : Vitesse de transition plus rapide pour les valeurs élevées
- **Animation à 100%** : Passage immédiat au rouge à 100% d'aggro (pas de délai)

#### Performance d'Animation
- **60 FPS** : Toutes les animations tournent à 60 images par seconde
- **Optimisation CPU** : Système d'animation centralisé et efficace
- **Gestion intelligente** : Annulation automatique des animations en conflit
- **Pas de clignotement** : Prévention des animations simultanées qui causent des artefacts visuels

### ๐Ÿงช Mode Test Amélioré et Réaliste

#### Simulation de Combat Réaliste
- **Évolution progressive** : Les valeurs de menace évoluent progressivement comme dans un vrai combat
- **Système de cache** : Données mises en cache pour éviter les changements brusques
- **Évolution temporelle** : Les valeurs changent lentement vers une cible (comme un vrai combat)
- **Barres progressives** : Les barres commencent à 0% et se remplissent progressivement

#### Modes de Test Disponibles
- **Solo** : Test avec le joueur seul (et son familier si applicable)
- **Groupe** : Simulation d'un groupe de 5 joueurs avec leurs familiers
- **Raid** : Simulation d'un raid de 10 joueurs avec leurs familiers
- **Combat simulé** : Mode spécial pour simuler un combat de groupe (5 joueurs uniquement)

#### Gestion des Données
- **Isolation des modes** : Chaque mode a ses propres données (pas de contamination)
- **Nettoyage automatique** : Les données sont nettoyées lors du changement de mode
- **Structure stable** : Liste de joueurs stable avec évolution progressive des valeurs
- **Génération intelligente** : Classes et noms générés de manière réaliste

---

## ๐Ÿš€ Améliorations de Performance Majeures

### โšก Optimisation des Mises à Jour

- **Throttling adaptatif** : Fréquence de mise à jour adaptée au contexte
  - En combat : 20 mises à jour/seconde (0.05s) pour une réactivité maximale
  - En raid : ~6.7 mises à jour/seconde (0.15s) pour économiser les ressources
  - En groupe : 10 mises à jour/seconde (0.1s) pour un bon équilibre
  - Solo : 5 mises à jour/seconde (0.2s) pour économiser les ressources
- **Détection intelligente** : Mise à jour uniquement quand nécessaire
- **Gestion de la visibilité** : Arrêt automatique des mises à jour quand l'addon est caché

### ๐Ÿ’พ Système de Cache Intelligent

#### Cache Multi-Niveaux
- **ThreatCache** : Cache des données de menace avec TTL adaptatif
  - TTL en combat : 0.05s (20x/sec)
  - TTL en raid : 0.15s (économie CPU)
  - TTL solo : 0.2s (économie maximale)
- **UnitExistsCache** : Cache de l'existence des unités (TTL 0.2s)
- **ClassCache** : Cache permanent des classes (ne change pas pendant le combat)
- **Limitation de taille** : Nettoyage automatique quand le cache dépasse 100 entrées

#### Optimisations de Cache
- **Nettoyage périodique** : Suppression automatique des entrées expirées
- **Gestion mémoire** : Limitation de la taille pour éviter la surcharge
- **Nettoyage agressif** : Suppression des 20% les plus anciennes entrées si nécessaire

### ๐Ÿงน Gestion Mémoire Optimisée

- **Nettoyage automatique** : Nettoyage périodique toutes les 5 minutes
- **Limitation des données** : Limite de 50 entrées pour les valeurs de menace
- **Nettoyage agressif** : Suppression des données après 1 minute d'inactivité
- **Réduction des allocations** : Réutilisation des tables au lieu de créer de nouvelles
- **Gestion des caches** : Nettoyage automatique des caches expirés

### ๐Ÿ“Š Optimisations Spécifiques

- **Upvalues** : Localisation de toutes les fonctions globales fréquemment utilisées
  - Gain de performance : ~30% de réduction sur les lookups CPU
  - Fonctions optimisées : UnitExists, UnitName, UnitClass, UnitGUID, etc.
- **Boucles numériques** : Utilisation de boucles `for i=1, #table` au lieu de `ipairs`
- **Réduction des appels API** : Utilisation du cache pour éviter les appels répétés
- **Scan adaptatif** : Scan des nameplates uniquement en combat et hors instance

---

## ๐Ÿ›ก๏ธ Stabilité et Fiabilité Renforcées

### ๐Ÿ”’ Protection Anti-Taint Améliorée

- **SafeFrameUpdate** : Système de mise à jour sécurisée pendant le combat
- **Queue de mises à jour** : Mise en file d'attente des modifications UI pendant le combat
- **Traitement différé** : Exécution automatique après le combat
- **Protection complète** : Toutes les modifications UI sont protégées

### โœ… Validation Robuste des Données

- **Validation des types** : Vérification que toutes les données sont du bon type
- **Valeurs limites** : Clampage des valeurs dans les plages valides (0-100%)
- **Gestion des nil** : Traitement sécurisé des valeurs manquantes
- **Récupération automatique** : Fallback vers des valeurs par défaut en cas d'erreur

### ๐Ÿ› ๏ธ Gestion d'Erreurs Améliorée

- **Protection pcall** : Utilisation de `pcall` pour les appels API risqués
- **Récupération gracieuse** : L'addon continue de fonctionner même en cas d'erreur
- **Messages d'erreur** : Affichage d'informations utiles en cas de problème
- **Validation des GUIDs** : Vérification de l'existence des GUIDs avant utilisation

### ๐Ÿ”„ Compatibilité Classic Renforcée

- **Fonctions manquantes** : Implémentation de `wipe` et `IsInInstance` si absentes
- **Fallbacks intelligents** : Alternatives pour les fonctions non disponibles
- **Gestion UnitCanAttack** : Vérification alternative si la fonction n'existe pas
- **BackdropTemplate** : Support obligatoire pour Classic 1.15.8

---

## ๐ŸŽจ Améliorations de l'Interface Utilisateur

### ๐Ÿ“ Adaptation Automatique

- **Hauteur dynamique** : Le cadre s'adapte automatiquement au nombre de lignes affichées
- **Mode compact** : Hauteur réduite (60px) pour économiser l'espace écran
- **Mode étendu** : Hauteur normale (80px) pour une meilleure lisibilité
- **Calcul intelligent** : Hauteur calculée selon le nombre de lignes et le mode
- **Réinitialisation** : Retour à la hauteur minimale après le combat

### ๐ŸŽจ Indicateurs Visuels Améliorés

- **Couleurs précises** : Système de couleur amélioré pour la menace
  - Vert vif : 0-50% (sécurité)
  - Jaune brillant : 50-80% (attention)
  - Rouge vif : 80-100% (danger)
- **Transitions fluides** : Changement de couleur progressif et naturel
- **Barres progressives** : Remplissage progressif avec animation
- **Icônes de classe** : Affichage correct des icônes pour toutes les classes Classic

### ๐Ÿ”˜ Contrôles Améliorés

- **Bouton de verrouillage** : Verrouillage/déverrouillage de la position
- **Bouton mode compact** : Basculement rapide entre mode compact et étendu
- **Bouton options** : Accès rapide au panneau de configuration
- **Bouton son** : Contrôle rapide des alertes sonores
- **Tooltips informatifs** : Tous les boutons ont des tooltips explicatifs

---

## ๐Ÿ”ง Corrections de Bugs Critiques

### ๐Ÿ› Bugs Majeurs Corrigés

- **Hauteur du cadre** : Le cadre revient maintenant correctement à sa taille normale après le combat
- **Mode test** : Le mode test se désactive correctement à la fermeture du panneau d'options
- **Nettoyage des données** : Les données sont correctement nettoyées lors du changement de mode test
- **Contamination des modes** : Plus de mélange de données entre les différents modes de test
- **Clignotement** : Plus de clignotement des barres et des lignes lors des changements rapides

### ๐Ÿ› Bugs Visuels Corrigés

- **Bordures persistantes** : Les bordures (rouge et orange) disparaissent correctement après le combat
- **Bordures conditionnelles** : Les bordures se cachent quand les conditions ne sont plus remplies
- **État du bouton son** : L'état visuel est correctement sauvegardé et restauré
- **Animations conflictuelles** : Prévention des animations simultanées qui causaient des artefacts
- **Première bordure visible** : Correction de l'ordre d'affichage des bordures (intérieure/extérieure)

### ๐Ÿ› Bugs Techniques Corrigés

- **Erreur math.random** : Correction de l'erreur avec intervalle vide dans le mode test
- **Erreur math.pow** : Correction de l'appel à `math_pow` (devrait être `math.pow`)
- **HideAllThreatBars** : Correction de l'appel à une fonction non définie
- **UnitCanAttack** : Gestion correcte de l'absence de cette fonction en Classic
- **Frame height** : Correction du calcul de la hauteur en mode compact

### ๐Ÿ› Bugs de Logique Corrigés

- **Logique des bordures** : Alerte précoce pour le 1er joueur (90%) et le 2e joueur (80%)
- **Barre à 100%** : La barre passe immédiatement au rouge à 100% d'aggro
- **Animation progressive** : Les barres se remplissent progressivement même en mode test
- **Multi-cible** : Gestion correcte du changement de cible (target → focus → mouseover)
- **Nettoyage des lignes** : Les lignes en excès sont correctement cachées lors du changement de mode

---

## ๐Ÿ“ Refonte Architecturale Majeure

### ๐Ÿ—๏ธ Architecture Modulaire

L'addon a été entièrement restructuré en 3 modules distincts pour une meilleure organisation, maintenabilité et extensibilité.

#### Core.lua - Cœur de l'Addon (1897 lignes)
- **Initialisation** : Gestion du démarrage et de la configuration
- **Système de localisation** : Détection et chargement de la langue
- **DataManager** : Encapsulation et gestion des données de menace
- **Systèmes de cache** : ThreatCache, UnitExistsCache, ClassCache
- **ThreatCollector** : Collecte et traitement des données de menace
- **Gestion des événements** : Tous les événements WoW sont gérés ici
- **Commandes slash** : `/mm` et `/mmtest`
- **Système de mise à jour** : Timer adaptatif et gestion de la visibilité
- **Mode test** : Génération de données de test réalistes
- **Nettoyage mémoire** : Système de nettoyage automatique

#### UI.lua - Interface Utilisateur (1214 lignes)
- **Création de l'interface** : Frame principal et tous les éléments visuels
- **Système d'animation** : Toutes les animations (fade, slide, barres)
- **Gestion des barres** : Création, mise à jour et animation des barres de menace
- **Bordures d'alerte** : Gestion des bordures rouge et orange
- **SoundManager** : Gestion des alertes sonores
- **UpdateDisplay** : Fonction principale de mise à jour de l'affichage
- **LoadSettings/SaveSettings** : Gestion des paramètres depuis l'UI
- **UpdateCompactMode** : Gestion du mode compact

#### Options.lua - Configuration (465 lignes)
- **Panneau d'options** : Interface complète de configuration
- **Sliders** : Opacité, opacité de bordure, nombre de lignes, seuil sonore
- **Checkboxes** : Mode compact, afficher les pets, désactiver les sons
- **Mode test** : Boutons radio pour les différents modes de test
- **Boutons de contrôle** : Appliquer, Réinitialiser, Fermer
- **Gestion des paramètres** : Application et sauvegarde des modifications

### ๐Ÿ”— Système de Communication Inter-Modules

- **Exports globaux** : Tous les modules communiquent via `_G.MenaceMeter_*`
- **Dépendances claires** : Chaque module importe uniquement ce dont il a besoin
- **Ordre de chargement** : Core.lua → UI.lua → Options.lua (défini dans .toc)
- **Isolation** : Chaque module est indépendant et peut être modifié séparément

### ๐Ÿ“ฆ Avantages de la Modularisation

- **Maintenabilité** : Code organisé et facile à comprendre
- **Extensibilité** : Facile d'ajouter de nouvelles fonctionnalités
- **Débogage** : Plus facile de localiser et corriger les problèmes
- **Collaboration** : Plusieurs développeurs peuvent travailler en parallèle
- **Tests** : Chaque module peut être testé indépendamment
- **Performance** : Chargement optimisé et gestion mémoire améliorée

---

## ๐Ÿ“Š Statistiques de la Version

- **Lignes de code** : ~3576 lignes réparties sur 3 modules
- **Fonctions** : Plus de 50 fonctions organisées par module
- **Modules** : 3 modules principaux + 2 fichiers de localisation
- **Fonctionnalités majeures** : 6 nouvelles fonctionnalités principales
- **Bugs corrigés** : Plus de 15 bugs majeurs et mineurs
- **Améliorations de performance** : Optimisations significatives en raid
- **Compatibilité** : Support complet de Classic 1.15.x

---

## ๐Ÿ”„ Migration depuis la Version 3.2.0

### โœ… Compatibilité Totale

- **Aucune action requise** : Vos paramètres sont automatiquement conservés
- **Sauvegarde automatique** : Tous vos réglages sont préservés
- **Position conservée** : Votre position de fenêtre est maintenue
- **Préférences intactes** : Toutes vos options restent identiques

### ๐ŸŽฏ Nouveautés à Découvrir

1. **Multi-cible** : Testez le suivi automatique de focus et mouseover
2. **Bordures d'alerte** : Observez les bordures rouge et orange en action
3. **Animations** : Profitez des animations fluides à 60 FPS
4. **Performance** : Constatez l'amélioration en raid de 40 joueurs
5. **Mode test** : Essayez les différents modes de test améliorés

---

## ๐Ÿ“‹ Notes Techniques

### Compatibilité
- **Version WoW** : Classic 1.15.x (Client 1.15.8)
- **API** : Utilisation des API modernes avec fallbacks Classic
- **Localisation** : frFR, enUS, enGB

### Performance
- **CPU** : Réduction significative de la charge CPU en raid
- **Mémoire** : Gestion mémoire optimisée avec nettoyage automatique
- **FPS** : Impact minimal sur les FPS même avec 40 joueurs

### Architecture
- **Modularité** : Code organisé en 3 modules indépendants
- **Extensibilité** : Base solide pour les futures améliorations
- **Maintenabilité** : Code propre et bien documenté

---

## ๐Ÿ™ Remerciements

Merci d'utiliser MenaceMeter ! Cette version majeure représente des mois de développement et d'optimisation pour vous offrir la meilleure expérience possible.

Vos retours et suggestions nous aident à améliorer l'addon continuellement.