Les onglets sécurisés protègent FriendsFrame en permanence (avant :
dès que Blizzard_RaidUI se chargeait, au premier raid ou champ de
bataille). Ce qui le cachait ou le plaçait depuis le code de l'addon
était alors refusé en combat :
- la croix clique celle du client (action « click »), qui ferme la
fenêtre comme le client ;
- Contrôle de guilde et Recherche de raid refusent en combat avec le
message du client, au lieu d'une action bloquée ;
- la fenêtre de contrôle n'est plus cachée par notre code en combat :
le client la cache lui-même ;
- FriendsFrame ne prend plus la souris dès le chargement.
/ignore et /friends sans nom ouvrent de nouveau le bon sous-onglet, et
l'onglet Amis redemande la liste au serveur comme celui du client.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01KxRZNHkq453dyUMcWsyUf1
Nos onglets du bas appelaient le OnClick des onglets du client depuis
l'addon : PanelTemplates_Tab_OnClick écrivait FriendsFrame.selectedTab
teinté, et FriendsFrame_ShowSubFrame montre ou masque RaidFrame, protégé dès
que Blizzard_RaidUI est chargé (un raid ou un champ de bataille suffit) :
action bloquée en combat, et l'ouverture suivante de la fenêtre en combat,
qui relit l'onglet teinté, l'était aussi.
Chaque onglet est maintenant un bouton sécurisé qui clique celui du client
(action « click » de SecureTemplates) : le client fait tout comme pour son
propre onglet, son compris. Ces onglets ne sont jamais désactivés (en
combat ils ne pourraient pas l'être) : l'onglet du client, désactivé quand
il est choisi ou indisponible, ignore le clic, et seul le survol disparaît.
Leur largeur est posée hors combat. La fenêtre, protégée par eux, reste
affichée et suit FriendsFrame.
Les sous-onglets Amis / Ignorés gardent leur propre état au lieu d'écrire
FriendsTabHeader.selectedTab, que FriendsFrame_Update lit ; ils ne
rappellent plus FriendsFrame_Update depuis l'addon.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01KxRZNHkq453dyUMcWsyUf1
Traduction
- Identifiants en anglais dans tout le module : addon, ecrans d'accueil,
outils Python, banc d'essai et patcheur C#.
- Fichiers au nom francais renommes (Gabarits.lua -> Templates.lua,
Textes_*.lua -> Texts_*.lua, deployer.py -> deploy.py,
tools/patcheur -> tools/patcher, etc.).
- Commandes /fui et options de deploy.py en anglais (--check, --server,
--remove-dbc).
- Cles des variables sauvegardees et de data/dbc/statistics.json
traduites, sans reprise des anciennes cles.
- API de la micro-barre : ForeverUI.AddMicroButton(def) avec les champs
name, atlasSet, after, tooltip, onClick, ready, et
ForeverUI.UpdateMicro(name, isOpen).
- Commentaires reecrits en anglais, courts, sans dates ni historique ;
les fonctions au nom peu parlant et leurs parametres sont expliques.
Code mort
- Exports, fonctions et variables jamais lus retires.
- Retires a la demande des modules : ForeverUI.PvPJauge, les exports
FondEntete / TuilerEntete / Polices de TradeSkill, l'art legacy-up-c60,
honorfill(half)blue et inv_misc_book_09, leurs entrees d'atlas et les
parties d'outils correspondantes.
Verifications : liaisons des noms comparees avant et apres, banc vert,
chemins de textures inchanges, generateurs reproduisant les fichiers,
patcheur identique octet pour octet.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
- PNJ (NpcDialog.lua, nouveau) : dialogue et quete, livres et lettres,
petition, registre de guilde a la DA de camelot (parchemin
QuestBG-Parchment, portrait, croix, places de camelot, contours de
qualite des objets).
- Barres de defilement : chacune cachee quand rien ne defile, et sans
elle le contenu laisse a droite la marge qu'il a a gauche (courrier et
papeterie, banque de guilde, hotel des ventes, reputation, competences,
monnaies, contacts, guilde, macros, reglages, chercheur, dialogues des
PNJ) ; ecrans d'accueil : selection des personnages (cartes centrees),
royaumes, AddOns, creation.
- Chercheur de donjon : la liste des donjons reprend la liste a
categories des raids (en-tetes de la feuille, cases de camelot),
l'en-tete gardant sa case "tout cocher".
- Tabard : camera 1 et modele dans la moitie gauche de l'encadre, cadrage
independant de la race (gnome).
- Cabine : portrait a 48 (1, 1.5) ; README a jour (fenetres secondaires,
commerce).
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
- socle : Textes.lua (ForeverUI.L) et ForeverUIGlueTextes.lua (G.L) ; les
textes dans Textes_enUS / Textes_frFR (325 cles en jeu) et
ForeverUIGlueTextes_enUS / _frFR (41 cles aux ecrans d'accueil) ; une cle
absente prend l'anglais, une langue sans fichier lit l'anglais ; ajouter
une langue = un fichier de plus
- les textes que le client 3.3.5 connait se lisent dans ses globales
(GlobalStrings, GlueStrings en glue) ; les textes de secours sont retires
- tous les fichiers repris : libelles, infobulles, mode edition, messages et
aide de /fui, erreurs internes ; .toc : Notes + Notes-frFR
- selection des personnages : race et classe traduites ramenees a leur jeton
par les tables de langue (GetAvailableRaces / GetAvailableClasses font
planter le client hors de la creation)
- tools/cartes_instances.py : noms des instances dans toutes les langues de
la LibBabble-Zone de WDM (portails de la carte sur tout client)
- banc : toute cle employee existe en anglais et en francais, memes cles dans
les deux, bascule frFR / deDE essayee ; chaines 3.3.5 ajoutees au faux client
- README : etat des sections mis a jour, langues, glue, deploiement --glue
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
- Chat : cadre, barre et bouton de retour, colonne, bouton d'amis de camelot ;
au repos fond, onglets, colonne et saisie s'effacent, allumage au survol
- Barres d'ameliorations et d'affaiblissements (Buffs.lua) : grille, bordures
par type, clignotement, repli, regroupement, enchantements d'arme
- Souillure : StaticPopupDialogs n'est plus reaffectee (BindEnchant bloque) ;
menus deroulants, suivi des objectifs, choix d'icone, ajout de canal et
carte du monde n'ecrivent plus les globales du client ; menus d'unite :
lignes protegees servies par des boutons securises hors combat, grisees en
combat ; seule MAP_QUEST_DIFFICULTY reste, par decision
- Gestionnaire d'ensembles : plus d'appel GetEquipmentSetIconInfo(nil)
- Banc : garde des globales ecrites (bytecode Lua 5.1), faux client durci
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>