[Scripts] Procédure de test : guetter les éventuels soucis des scripts

Vous trouverez ici les conseils indispensables pour bien modder et maîtriser les outils de modding des jeux.
Avatar du membre
Gerauld
Confrère
Messages : 2439

Procédure de test : guetter les éventuels soucis des scripts

Message par Gerauld »

Amis testeurs, bonjour.
Queslques pistes pour détecter avec le bloc-note des dangers potentiels dans les scripts et un petit mot sur les mannequins de la part de Maga83.
N'hésitez pas à poster pour compléter ou corriger ce post. ;)

Tout d'abord, si le mod est livré avec un bsa, il va falloir regarder ce qu'il y a dedans avec :
BSA BROWSER
Il suffit d'ouvrir le bsa, de sélectionner les fichiers à extraire et de cliquer sur extract dans le menu.

1er petit truc à regarder : les dangers potentiels pour les saves
S'il y a des fichiers avec comme extension *.psc dans le mod ou son bsa, il suffit d'ouvrir le fichier et de rechercher le mot exact :
registerforupdate
Si ce termes est présent dans le fichier, il y a de grandes chances que le mod laisse des traces indélébiles dans les sauvegardes.
Dans ce cas, il convient de vérifier la présence du mot suivant dans entre la ligne event onupdate() et la ligne endevent qui suit : unregisterforupdate().
S'il est absent, le script laisse des traces dans les saves. S'il est présent dans ce bloc. Il y a de grandes chances pour que le scripteur ait fait attention.

Il faut faire la même vérification avec l'instruction : registerforupdategametime. S'il est présent, rechercher entre les lignes event onupdategametime() et la ligne endevent qui suit si l'instruction unregisterforupdategametime est présente. Si elle est absente => trace dans la save à coup sûr.

On continue avec une vérification plus poussée
Ce coup-ci, on va chercher une instruction et voir comment elle est utilisée en regardant les lignes au dessus et en dessous. Cette instruction remplace de manière plus propre le très vilain registerforupdate.
Il faut chercher le mot exact : registerforsingleupdate
Il est possible qu'il apparaisse plusieurs fois dans le script. Ce n'est pas toujours le cas.

Le script est fait de blocs appelés event. Le premier registerforsingleupdate est, s'il est dans le script, souvent placé entre les lignes :
- event oninit() et la ligne endevent suivante.
- Event OnEffectStart(... et la ligne endevent suivante.
...
Celui-ci ne nous intéressera pas de toute façon. Au suivant.

Il doit y avoir dans le script une ligne event onupdate(). C'est entre cette ligne et la ligne endevent suivante qu'il faut chercher le registerforsingleupdate.
Il faut maintenant vérifier que le scripteur vérifie une condition avant de refaire un registerforsingleupdate.
Il faut donc juste vérifier si le registerforsingleupdate se trouve entre un ligne commençant par if et le 1er endif qui suit cette ligne. Si c'est le cas, c'est bon. Sinon => script suspect. Risque pour la save.

Exemple de script qui se rappelle lui-même en boucle :

Code : Tout sélectionner

event oninit()
	...
	...
	registerforsingleupdate(1)
endevent

...
...
...
event onupdate()
	...
	...
	registerforsingleupdate(1)
endevent
Exemple de script CORRECT et garanti sans risque :

Code : Tout sélectionner

event oninit()
	...
	...
	registerforsingleupdate(1)
endevent

...
...
...
event onupdate()
	...
	...
	if mavariable.getvalueint() == 1
                ...autre instructions ou pas ....
		registerforsingleupdate(1)
                ... autres instructions ou pas....
	endif
endevent
Il faut faire la même chose avec l'instruction registerforsingleupdategametime et regarder entre les lignes event onupdategametime() et le endevent qui suit si l'instruction est présente entre une ligne commençant par if et la ligne endif suivante.

A ce point, avec le bloc-notes et la fonction recherche, vous avez donc vérifié que les scripts du mod que vous testez ne comprend pas de risques au niveau des scripts qui s'appellent en boucle et polluent les saves.

Tant qu'à avoir le script ouvert, vous pouvez également vérifier que le traducteur n'a pas oublié des textes susceptibles d'apparaitre à l'écran.
Pour cela, il faut chercher tout d'abord l'instruction : notification
Si vous voyez un truc du genre :

Code : Tout sélectionner

notification("I have " + mygold + " coins and " + myducks + " ducks.")
c'est un oubli de traduction (ça nous arrive à tous donc c'est pas grave).
Il suffit de remplacer le texte entre guillemets par la version française. Ne pas toucher à ce qui n'est pas entre guillements.
Il est possible de changer l'ordre des trucs entre guillements pour les besoins de la traduction. L'exemple ne s'y prête pas mais on pourrait mettre :

Code : Tout sélectionner

notification("J'ai " + myducks + " canards et " + mygold + " pièces d'or.")
Vous recherchez ensuite les instructions messagebox. Idem, si vous voyez :messagebox("My taylor is rich"), c'est un oubli. Mêmes règles que pour les notifications.

A ce stade, le testeur a vérifié que le mod ne présentait pas une des source de dangers potentiels pour les saves et que les scripts étaient bien traduits.

Maintenant, il est temps de lancer le jeu pour voir ce que le mod a dans le ventre... Le meilleur moment.

Un truc de Maga83 : bien vérifier in-game le fonctionnement des mannequins ajoutés par le mod.
S'ils se balladent, dupliquent des objets, se retrouvent à poil dès que vous revenez de vos aventures ou s'il y a quoi que ce soit d'anormal, le signaler. Il existe un script fix pour les mannequins qui est inclus dans certains mods et qui résout ces problèmes. Il semblerait que des personnes aient eu des soucis de CTD avec l'utilisation du script fix et de Dawnguard. Il convient quand même de signaler les soucis de mannequins.

Si le mod ajoute de quoi exposer ces armes, bien tester chaque emplacement. Il arrive, lors de la duplication que l'activateur permettant de reprendre l'arme soit trop dans le mur et donc innaccessible au moment de reprendre l'arme. (Cependant, un tcl par la console devrait permettre de récupérer l'outil...). C'est presque rien à corriger mais c'est toujours embêtant.

Pour la suite, donnez vos trucs, astuces, vérifications à faire....
Modifié en dernier par Gerauld le 19 août 2012, 22:33, modifié 3 fois.
Avatar du membre
maga83
Traducteur en herbe
Traducteur en herbe
Messages : 2834

Re: Procédure de test : guetter les éventuels soucis des scr

Message par maga83 »

Bin tiens, les mannequins....

Les modders ont la sale habitude de copier/coller les scripts des mannequins du jeu vanilla qui n'est pas adapté pour les mods (les mannequins perdent leurs armures, bougent, etc...).

Et même avec le patch qui va bien, ça marche pas...

Les bons modders ont rendu les mannequins indépendants des scripts de base en les isolants, c'est à dire qu'ils sont indépendants des scripts de base du jeu.

A la sortie, il y a une centaine de mods "maisons pour joueur" avec des mannequins foireux, et une dizaine qui ont des mannequins qui ne bougent pas un cil.

Exemple :

--> http://www.confrerie-des-traducteurs.fr ... 88&t=13292

Mannequins indépendants, pas de problème.

--> http://www.confrerie-des-traducteurs.fr ... 94&t=13415

Mannequins qui bougent, perdent leurs armures.

Note : j'ai donné ces exemples car c'est les mods que je connais le mieux.
Modifié en dernier par maga83 le 14 août 2012, 06:52, modifié 1 fois.
Image
Snipass
Moddeur aspirant
Moddeur aspirant
Messages : 341

Re: Procédure de test : guetter les éventuels soucis des scr

Message par Snipass »

Moi je ne crache jamais sur la main qu'on me tend donc donne nous donc tes conseils si ça nous permet de tester les mods de façons plus approfondies cela n'en sera que meilleur pour la communauté.
Avatar du membre
Gerauld
Confrère
Messages : 2439

Re: Procédure de test : guetter les éventuels soucis des scr

Message par Gerauld »

Il faudrait creuser un peu du côté de ce que Maga83 a signalé. C'est très intéressant de pouvoir détecter facilement les soucis de mannequins vus que ceux-ci sont très répandus. Tu aurais des détails concernant les scripts et comment repérer facilement des mannequins ayant potentiellement des soucis? On ajoutera ça au premier post. Cela m'évitera de devoir télécharger les deux mods pour jouer aux jeu des septs différences si tu connais déjà la réponse. Ce serait sympa.

Pour ma part, je prépare une bafouille courte et compréhensible sur certaines instructions qui laissent des traces dans les saves. Pas besoin de s'y connaître, il suffit de repérer le ou les mot(s) indésirable(s) dans le fichier texte pour que le script devienne suspect...et en cas de doute le présenter dans un sujet de la salle de recherche pour qu'un scripteur y jette éventuellement un coup d’œil pour confirmer. Pas besoin de savoir comment le script fonctionne.
Si ça permet par la suite de faire retour des informations à l'auteur du mod pour qu'il corrige, ce sera bien.

Si, à l'instar de Maga83, certains ont des idées de trucs qui seront mis dans le premier post, n'hésitez pas à partager vos expériences lors des tests ou autres. Si on arrive à se faire une petite check-list facile à suivre ce serait bien.
Snipass
Moddeur aspirant
Moddeur aspirant
Messages : 341

Re: Procédure de test : guetter les éventuels soucis des scr

Message par Snipass »

Le problème avec les mannequins je l'ai connu avec la dovakhin hideout, mannequins volants, qui changent de pièce, j'en avais même qui changeaient de postures, comme s'ils avaient été des PNJ normaux mais mis sur pause à mon entrée dans la maison xD
Avatar du membre
maga83
Traducteur en herbe
Traducteur en herbe
Messages : 2834

Re: Procédure de test : guetter les éventuels soucis des scr

Message par maga83 »

Gerauld a écrit : Tu aurais des détails concernant les scripts et comment repérer facilement des mannequins ayant potentiellement des soucis?
Il me semble, d'après les modders qui expliquent tout dans le readme (rare), qu'ils intègrent directement ce patch :

--> http://skyrim.nexusmods.com/mods/10652

Mais pas comme un autre mod mais comme un script unique accroché à leur ESM, je sais, c'est confus mais je ne suis pas modder donc te donner une réponse claire va être dur pour moi.

Pour le repérage des mods avec mannequins, c'est à l'utilisation "in game" que tu vois si il est bien fait ou pas.
Image
Avatar du membre
Gerauld
Confrère
Messages : 2439

Re: Procédure de test : guetter les éventuels soucis des scr

Message par Gerauld »

Je viens de regarder le mod dont tu as donné le lien, à savoir le script fix pour mannequin. Il semble, d'après les commentaires, causer des soucis à certains avec Dawnguard. Une affaire à suivre de près cependant tant ce fix est nécessaire.

EDIT : premier post édité avec quelques petits trucs. Si certains désirent des scripts avec des instructions à chercher et s'exercer à trouver les soucis potentiels, je peux poster des exemples complets sans donner la solution.
Avatar du membre
Gerauld
Confrère
Messages : 2439

Re: Procédure de test : guetter les éventuels soucis des scr

Message par Gerauld »

En mélangeant le principe d'une check-list et celui du modèle de rapport de test dispo sur la Conf', on pourrait proposer à nos admins une fiche de rapport de test Skyrim comme suit :
► Afficher le texte
Il ne manque plus que vos avis/idées/modifications/griefs/chèques, pour faire un truc pratique, efficace, pouvant être proposé à nos excellentissimes gardiens du temple...et permettant de ne rien oublier dans le test...N'étant pas testeur, je ne peux que proposer une ébauche.
Avatar du membre
anumar
Moddeur aspirant
Moddeur aspirant
Messages : 38

Re: Procédure de test : guetter les éventuels soucis des scr

Message par anumar »

J'avais pas vue le poste aaaaah merci tout plein pour les bon conseils.
Avatar du membre
Tsukasa31
Traductrice en herbe
Traductrice en herbe
Messages : 200
Contact :

Re: Procédure de test : guetter les éventuels soucis des scr

Message par Tsukasa31 »

Il est toujours d'actualité ? o.o
Fais du bien à un cochon, et il viendra chier sur ton perron!

Trad: Skyrim Romance Réalisée


Test en Cours//Test Fini:
Empire Immobilier/Extension Lakeview/ Fairies//Sea Point Settlement/Beiing F/Morskam/Skyrim Romance
Répondre

Retourner vers « Tutoriels et conseils de réalisation »