Quand on fait des crasses...
"BASE - NETTOYER UN MOD"
On les nettoie !
Quand on fait un mod et qu'on ne fait pas attention à ce qu'on fait, et que la bourde est arrivée, l'ultime solution est le nettoyage, et parfois, on s'aperçoit que certaines petites choses clochent entre ce que dis le TESC du module avant que vous ne l'ouvriez et ce qu'il dit lorsque vous l'avez ouvert...
Liens utiles :
http://forum.wiwiland.net/index.php?s=c ... opic=40212
Eviter la bourde :
Ne pas la faire ! En fait, avant d'éditer votre plugin, faites un bête copier-coller pour sauvegarder votre "bon" plugin. Il faut travailler en pensant que le plugin que vous éditez est "mauvais" et que si vous n'avez pas de "bon" plugin, vous devrez tout recommencer.
Ne cliquez jamais sur la disquette rouge dans l'éditeur de script du TESC ! Il va réenregistrez tous les scripts et croire que vous avez tout modifié. Votre plugin va gagner 2 MB d'un coup !
Si vous avez besoin de savoir dans quelle cellule mettre vos objets et que vous devez cherchez, mieux vaut chercher et notter l'ID de la bonne cellule sur un papier, ne rien enregistrer, quitter et relancer le TESC pour aller directement au bon endroit. Chaque fois que vous charger une cellule, le TESC considère cela comme une modification.
Le nettoyage :
Pour l'instant, lisez le tuto au lien renseigné, il est très bien fait.
Personnellement, j'essaye de slair mes mods le minimum possible et je fais le nettoyage en cours de développement. Par sécurité, je sors du tesc, je le relance et je sélectionne le plugin, je vais dans les détails ("Details..."), je trie par nom d'ID, et je supprime ce que je sias qui ne dois pas être là, puis je charge et je teste. Si il y a un problème, comme j'ai fait auparavant une sauvegarde du plugin, il n'y a pas de problème !
Pour les IDs inconnue, je supprime et je teste, s'il s'agit d'un dialogue il vaut mieux vérifier la quête qui le contient, s'il s'agit d'une cellule, ça peut aussi poser problème. Il vaut mieux vérifier toutes ses cellules et vérifier que le compte des objets n'a pas changé.
Par rapport aux scripts et aux objets :
Si, lorsque vous chargez un plugin, le TESC ronchonne à propos d'un script qui contient la fonction GetSelf sur un objet transportable, appuyer sur "Annuler". Pareil pour les objets dont il ne trouve pas le meshes ou l'icône, etc.
Copier une cellule ?
Il est possible de copier une cellule à l'aide d'un "Duplicate cell", mais on ne voit pas toujours très bien ce qui est copié. Le mieux, c'est de savoir ce qu'on fait :
1. Ouvrir une session du TESC
2. Charger la celllule "A" à copier
3. Créer une nouvelle cellule "B" toute propre
4. Revenir à la cellule A
5. Copier tout le contenu (sauf les ref persistente et les quest item) via la liste des références que contient la cellule
6. Coller tout ça comme ça dans la nouvelle cellule B
7. Sauver
8. Recharger mais pas en active file
9. Changer l'ID de la cellule et quand le tesc demande si on veut faire une nouvelle cellule, dire oui, sauver.
10. On a une cellule indépendante et propre au maximum. Après vous en faites ce que vous voulez (fusion, mise à jours, etc)
Exemple de nettoyage :
Pauvre Tenzaku ! Tenzaku a eu un gros problème : il a un jour ouvert le plugin sur lequel il avait passé énormément de temps, et crac ! Le TESC lui a bousillé tout ça en un claquement de doigt ! C'est pour ça que vous avez intérêt à sauver régulièrement et à ne pas charger des cellues à qui mieux mieux lorsque vous éditez votre plugins ! Tenzaku à eu un problème avec les dialogues, et on va voir, sucer le pus de la plaie, ça n'a pas fort bon goût ! "Bêêêêk ! Il est dégoûtant, beeratwork !" "Oui je sais et j'aime ça har har har !"
1. Charger l'esp à nettoyer en active file


2. Appuyer sur "Details" et cliquer sur la colonne des IDs pour trier par ID, puis sur la colonne "Type" pour trier les IDs par type. J'ai déjà repéré une ID "inconnue" nommée "DASanguineChestScript". Comment je sais que c'est une mauvaise ID ? Parceque mon pote Tenz' est un malin comme moi et pas vous, na. Meuh non ! Ne partez pas ! Sinon je ne vous expliquerai pas la suite ! Tenzaku, en créeant ses IDs, les a toutes faites commencer par "Tenz". ca lui permet de les différencier de toutes les IDs du monde. Et en plus celui qui ne me croit pas peux ouvrir Oblivion.esm et aller vérifier ce que j'affirme tout haut sans avoir besoin d'aller vérifier : c'est un script d'origine, utilisé sur un container, apparement un coffre, pour un passage relatif à la quête du sanctuaire daedra de sanguin, ou quelque chose qui a avoir avec ce daedra. Ca vous en bouche un coin ? Moi pas... snif


3. Appuyez sur la touche [Delete], ma touche préférée. Quand je joue et que je vois un monstre, j'appuie toujours sur [Delete], mais ça ne fait rien...


4. Oh ! Méchant ! Vous enquiquinez le TESC avec vos bêtises ! Vous avez vu ? Une alerte ! Pin pon pin pon... On s'en fou c'est naturel pour les systèmes informatiques de chialer à qui mieux mieux... On répond [Oui] car on veut effectivement supprimer ça de la liste. Un petit "I" s'affiche pour signaler que l'ID va partir à la prochaine édition.


5. On descend l'ascenseur et qu'est ce que c'est que ce truc affreux ? Si vous êtes assez avancé pour faire du multi-session avec le TESC, vous ne vous en priverez pas. Vous n'avez pas encore remarqué toutes les instances que j'ouvre ? C'est pour voir à quoi correspondent les dialogues surlignés ici. Deux fois le même, mais avec une lettre qui change...


6. Il faut aller vérifier. La quête de Tenzaku commençant par "Tenz", je la repère avant que la mouche ne pète et je clique sur "topic" pour essayer d'écraser cette sale bestiole.


7. Comme elle a eu peur du pointeur, je peux vous affirmez de façon radicalement intransigente que le topic avec le A majuscule est mauvais et que les autres le sont aussi. Poubelle. On les sélectionne et [Delete]


8. Et tous ces truc hideux, là, c'est quoi ? Tenzaku m'a affirmé ne pas y avoir touché...Poubeeelleeee ! Yaaaahhhh ! Trancher le lard du cochon ! Ouaaaiiiis !



9. Yeepee ! Le cochon est mort ! I'm a killer ! Kiiilller ! Yeah ! Allez un CD de Michael pour fêter ça ! On clique [OK] partout en on charge ce sale fichier !


10. Burps ! Et je ne m'excuse pas ! Regarder moi ce tas de cochonceté, mes seigneurs ! Faites ailleurs, que l'ennemi nous fuie ! C'est pas grave, on clique sur [Annuler], le bouton magique n°2. Sur tout système tournant avec Windows, [Annuler] et [Supprimer] sont les fonctions les plus utilisée, après [Shut down].


11. Ah ! Le TESC nous a fait une petite indigestion odorante ! Mettez-lui de l'ouate dans sa bouche que ça ne sente pas trop. On va l'étouffer un coup : Comme vous êtes malin et que vous avez retenu tout le travail que vous avez fait, ou bien si vous êtes bête comme moi et que vous faites du super-multi-session-puissance-max-au-carré-de-l'exponentielle-de-l'infini, à coup de mémoire ou de copier-coller, vous reconstruirez les topics démoli et supprimerez les deux machins superflus que le TESC nous a pondu. Je nomme : "Vous ne devriez pas mentir" et il s'agit "De votre mort tout simplement". Moi pendant ce temps je donne un chocolat Galère à St Pierre.


12. Une fois que vous aurez fini de faire des galipettes sous la table, les yeux gonflé comme des melons trop mûrs qui suintent, vous pourrez faire [OK] oui merci amen.


L'exemple vous a plus ? Eh bien pas moi ! Ah non ! J'ai mal au doigts, je me suis cassé deux ongles transversalement et il y en a un bout qui a volé dans mon sourci, heureusement, il me reste assez de chair vive au bout pour cliquer sur "Envoyer" la sauce !
Nettoyage avec TES4Gecko
Allez faire un tour sur le tuto de TES4Gecko si vous ne l'avez pas encore lu !
Pour nettoyer votre plugin, vous pouvez d'abord utiliser "Clean Plugin" si vous n'avez pas modifié des cellules du jeu. Sinon, vous devrez utiliser "Display/Copy" et sélectionner les enregistrement inutile, appuyer sur "Toggle Ignore" et terminer par "Save Plugin". Si, dans une cellule du jeu vous utilisiez une des IDs maintenant supprimée, mais que vous n'avez pas ignorer la cellule, le plugin considère toujours qu'il doit la modifier : un "Clean Plugin" ou un nouveau "Toggle Ignore" corrige ça.