J'ai une très mauvaise nouvelle. Il y a queslques temps, je me posais des questions au sujet du couple PlaceAtMe / Disable, cf ce topic.
Aujourd'hui, j'ai effectué des tests, et je n'ai plus de doutes.
A chaque fois que vous utilisez le couple PlaceAtMe / Disable, vous ajoutez des références au monde du jeu, qui encombrent définitivement les sauvegardes. La possibilité de décharger les références désactivées de la mémoire, qui était présente dans Morrowind, a disparu dans Oblivion...
Le sort de test que j'avais fait pour l'occasion, qui l'utilise 500 fois, a augmenté la taille de ma sauvegarde de 76 Ko. Ce chiffre est rapidement atteint avec certains sorts. Il est évident que cette obésité des sauvegardes augmente dramatiquement le risque de se retrouver avec des sauvegardes corrompues après de nombreuses heures de jeu... d'autant plus que les scripts tournent toujours sur des objets désactivés...
Il y a toujours moyen d'éviter PlaceAtMe, même si cela demande un peu plus d'efforts. Créez des références persistantes dans un coin, et faites-en ce que vous voulez avec MoveTo.
Ce qui me chiffonne, est que plusieurs mods disponibles sur Wiwiland utilisent PlaceAtMe / Disable sans remords. Entre autres les mods Marque / Rappel (simple et multiples), ce qui est d'autant plus dommage qu'il est aussi simple d'employer MoveTo pour ce faire. Voir le mod Forum's Travelogue pour une alternative avec MoveTo (a des bugs inexpliquables, mais certainement pas liés à MoveTo) ou la version Alpha de mon mod de Gamagie (simplifié, pas enregistré en extérieur ; facile (mais fastidieux) à étendre aux extérieurs).
En conclusion, je propose que l'emploi abusif de PlaceAtMe / Disable soit un critère pour refuser un mod sur Wiwiland.
J'attends les réactions des moddeurs, testeurs et admins. Vous pouvez facilement refaire les tests que j'ai faits avec un sort du type
scn DemoScript long compteur Begin ScriptEffectUpdate player.placeatme peuimporte set compteur to compteur+1 End Begin ScriptEffectFinish Message "nombre : %.0f", compteur" Endà faire tourner sur soi pendant 30 secondes par exemple. Sauvegardez avant, après, et regardez la différence de taille... le déchargement de la zone ne change rien, je précise. J'ai testé aussi en extérieur (j'avais un doute sur la sauvegardes des disabled en extérieur), ils sont sauvegardés aussi.
(edit : ) Même en supprimant le mod contenant la classe des références crées, la sauvegarde n'est pas nettoyée... ça aurait pu résoudre des problèmes de corruption a posteriori, mais non, ça ne marche pas...
Modifié par Gamall, 03 août 2007 - 06:19.