Page 1 sur 2

Mod qui provoque une erreur fatale au chargement

Posté : 22 mai 2025, 22:41
par lelimule
Salut,
J'ai un problème bizarre.
J'ai traduit un mod (Privileges&Services) et je l'utilise depuis longtemps (avec OpenMW, mais je suis quasiment sûr de l'avoir utilisé avec morrowind.exe).
Et maintenant je m'aperçois qu'il provoque une erreur avec morrowind.exe alors qu'il n'a pas changé (et alors qu'il fonctionne avec OpenMW). C'est une erreur qui arrive au cours du chargement d'une nouvelle partie ou d'une sauvegarde:

Code : Tout sélectionner

Expression Error Unable to find race id "chimiste de renom == 1 GABM_GlobalCell 17 - X, c [...]" in script ABM_TargetCellHlaalu
-> OK => fermeture et retour au bureau.

-> Ca n'a aucun sens car si effectivement "chimiste de renom == 1 GABM_GlobalCell 17 - X, c [...]" est un fragment (concaténé) du script indiqué (appartenant au mod), ça n'a rien à voir avec une race. D'ailleurs le mod ne touche pas aux races.
Voici l'extrait (tout à fait correct) du script:

Code : Tout sélectionner

if ( GetPCCell, "Balmora, Nalcarya de Havreblanc, alchimiste de renom" == 1 )
	set ABM_GlobalCell to 17
elseif ( GetPCCell, "Balmora, guilde de la Morag Tong" == 1 )
	set ABM_GlobalCell to 18
[...]
endif
(Pour info ce script fait 393 lignes)

En faisant un

Code : Tout sélectionner

tes3cmd dump --match "chimiste de renom" <mod.esp>
, je ne retrouve que le script, rien de bizarre.
J'ai d'ailleurs commenté la zone incriminée dans le script, pour tester => il fait maintenant une autre erreur similaire:

Code : Tout sélectionner

Expression Error Unable to find dialogue id "<fragment de code>" in <autre script du mod>
: toujours aucun sens.

Le mod m'a l'air ok, je n'y vois pas d'erreur. Et pourtant morrowind.exe fait toujours la même erreur.
Si j'enlève le mod, ça marche.

Je précise que c'est un gros mod (l'esp fait 3,3 Mo) avec certains scripts très longs.

Comment ça se fait? Comment corriger cela?

Re: Mod qui provoque une erreur fatale au chargement

Posté : 23 mai 2025, 07:39
par Redondepremière
C'est quelque chose que je regarderai à la relecture, mais pour info, il faut toujours recompiler les scripts dans le CS d'origine pour éviter des erreurs similaires (et dans quelques cas, c'est dans MWEdit qu'il faut les recompiler parce que le CS gueule).

Re: Mod qui provoque une erreur fatale au chargement

Posté : 23 mai 2025, 10:01
par lelimule
Merci pour le retour.
Alors j'ai regardé la version que j'avais uploadé sur la Confrérie: c'est une version antérieure à celle que j'utilise; pourtant ça fait la même erreur...
(Note: ce mod nécessite "Portail de Désèle" (syntaxe de la cell)...)
J'ai tenté un "Compile active scripts" avec MWEdit: le pb c'est que ce dernier sort des erreurs à cause d'exigences excessives (il demande des parenthèses pour les tests if/elseif, or il y a pleins de scripts qui n'en ont pas).
D'un autre coté le CS plante sur les scripts avec taille mémoire trop grande... (il y en a 2: ABM_TargetCellImperial et ABM_TargetCellTelvanni), donc pas de "recompile all" possible.

J'ai commencé à recompiler un par un, j'ai fait un test: toujours pareil
Je n'ai pas fini mais je ne suis même pas sûr que ce soit une solution.

Re: Mod qui provoque une erreur fatale au chargement

Posté : 23 mai 2025, 10:19
par lelimule
Bon, je viens de recompiler tous les scripts du mod: même erreur...

Re: Mod qui provoque une erreur fatale au chargement

Posté : 10 juin 2025, 17:12
par ZWolol
Le message d'erreur peut être erroné.
Je peux y jeter un coup d'œil, mais donnez-moi un lien vers le mod.

Re: Mod qui provoque une erreur fatale au chargement

Posté : 10 juin 2025, 22:13
par lelimule
Merci.
Voici un lien:
download/file.php?id=7704

Re: Mod qui provoque une erreur fatale au chargement

Posté : 11 juin 2025, 13:49
par ZWolol
Suran, Maison des Plaisirs terrestres de Désèle
In Morrowind.esm, the cell name has a line break (0Dh 0Ah) instead of a space: “de..Désèle”.

Re: Mod qui provoque une erreur fatale au chargement

Posté : 11 juin 2025, 17:18
par Redondepremière
Concernant le mod en question, je réglerai ça à la relecture comme dit précédemment, mais pour référence future : quand un mod a un script qui positioncell vers la maison des plaisirs terrestres, il faut ouvrir le mod dans le CS avec le plugin du portail de Désèle chargé avant celui-ci, s'assurer que le nom de la cellule dans le script est écrit sans retour chariot, et sauvegarder le script ainsi.
Pour les scripts avec des commandes autres que positioncell (comme getpccell), il est pertinent de créer une cellule vide nommée "Suran, maison des Plaisirs terrestres" et de faire le filtre sur celle-ci (en raison de la façon dont le jeu gère les cellules parentes, ça prendra en compte les deux versions de la cellule).

Re: Mod qui provoque une erreur fatale au chargement

Posté : 13 juin 2025, 08:07
par ZWolol
Les noms de cellules ne doivent pas commencer ou se terminer par des lettres nationales.
S'il y a une lettre nationale à l'intérieur du nom, le nom dans le script doit être entre guillemets.
Dans la version allemande, j'ai dû remplacer « Ö » par le « O » anglais (dans deux cellules).

Dans la version russe, toutes les lettres sont nationales, donc tous les noms de cellules sont anglais.
Le fichier “Morrowind.cel” est utilisé pour traduire les noms de cellules.
OpenMW prend en charge les fichiers CEL.
Ils peuvent peut-être être utilisés pour d'autres langues, pour traduire/corriger les noms sans les changer.

Les scripts comportent parfois des erreurs inexpliquées.
Par exemple :
Coeurébène, entrepôt nord de la Compagnie de l'Empire oriental
Coeurébène, entrepôt sud de la Compagnie de l'Empire oriental

Le mot « sud » ne comporte pas d'erreur et le mot « nord » en comporte une.

Si ces noms sont changés en :
Coeurébène, Compagnie de l'Empire oriental, entrepôt nord
Coeurébène, Compagnie de l'Empire oriental, entrepôt sud

ils n'obtiennent aucune erreur.

Re: Mod qui provoque une erreur fatale au chargement

Posté : 13 juin 2025, 10:12
par lelimule
Salut ZWolol,

En l'occurence, de toute évidence, mon pb ne vient pas de la Cell "Suran, Maison des plaisirs..."; j'utilise le plugin du portail de Désèle qui duplique cette Cell "sans retour chariot", et le nom de la Cell (sans retour chariot) est correctement écrit dans le seul endroit qui l'utilise (script ABM_TargetCellHlaalu).
Confirmation: si j'enlève le plugin du portail de Désèle, et toutes les références à cette cellule dans le script ABM_TargetCellHlaalu, j'ai la même erreur.