Cours de Scripts pour les Quiches. Leçon Six.
Introduction
Le but de cette série de leçons, est d'apprendre a se servir des scripts a n'importe qui.
Les Sources.
Je reçois de plus en plus de demandes d'aide ces temps ci. Lorsque j'ai le temps d'aider, je ne demande pas mieux, mais je ne peux pas toujours me permettre le luxe d'expliquer en détail et de commenter chacune de mes réponses comme je le voudrais. Je me propose donc d'investir ici un peu de temps pour vous montrer comment trouver les réponses par vous même. Honnêtement, je n'ai pas la science infuse, et je ne connais pas toutes les fonctions par cœur. De plus, la plupart du temps, les réponses aux questions posées existent déjà ailleurs. Dites vous bien que malgré votre géni, si vous osez poser une question, il y en a douze qui se posent la même et un ou deux qui ont la réponse.
Il y a quatre endroits ou vous devez tout d'abord chercher les réponses, et dans cet ordre.
* Les " sticky topics " de ce forum.
* Les différents posts de ce forum.
* La campagne officielle.
* Le Toolset en lui même.
Je ne parle volontairement pas des ressources dans la langue de Shakespeare
Détaillons un peu.
La FAQ.
Pour rappel, cela veut dire "frequently asked questions" et ce n'est pas pour rien. Les discussions qui ont été compilées regroupent les questions les plus fréquemment posées. Il est généralement utile d'y jeter un coup d'œil. Il n'y a pas forcément la réponse a votre question, mais peut être quelque chose qui s'en rapproche de très près. De plus, même si cela ne répond pas a votre question, cela peut vous donner des idées pour contourner le problème.
Le Forum.
Tout le monde y pose ses questions, et certains se spécialisent dans les réponses. Encore une fois, il est de bon ton de faire une petite recherche avant de reposer sa question pour la dixième fois. Le forum est équipé d'outils de recherche perfectionné, n'hésitez pas a en user et en abuser. Lorsque je ne trouve pas ce que je veux par la recherche, je regarde quand même les derniers entêtes de discussions, des fois que ma question ait été posée récemment.
Si je ne trouve rien se rapportant a mon problème alors seulement je fait un nouveau post pour demander de l'aide. Sachez quand même, que plus vous vous investissez sur votre problème, plus les gens auront envie de vous aider.
Prenons un exemple. ( Toute ressemblance avec un ou plusieurs fils de discussion est voulue ! Par contre, il n'est nullement dans mon intention de tourner les auteurs de ces demandes en ridicule, d'une quelconque manière que ce soit ).
Un nouveau message, et une seule question. " Comment faire un levier qui ferme une porte ? "
Une autre poste le même genre de question mais explique de façon détaillée son script, les tags qu'elle utilise et pourquoi. Elle explique qu'elle a cherché a attacher le script sur le " OnActivate " de levier, explique les variables locales qu'elle utilise...
Je ne sais pas pour vous, mais pour ma part, j'ai beaucoup plus envie de répondre a la seconde personne et de lui montrer la ou elle a pu faire une erreur. Je ne parle même pas ici de ma répulsion vis a vis des orthographes approximatives. Mais on sent au moins que cette personne s'est investie dans son script, peut être qu'elle a déjà passé des dizaines de minutes a essayer de la faire fonctionner. Alors que je ressent la première question comme : " J'ai pas envie de faire des efforts, pouvez vous en faire pour moi ? ".
Et, encore autre chose au sujet de l'aide apportée sur les forums, il est poli, même si cela n'est pas strictement nécessaire, de remercier les gens qui nous ont aidé pour un script. Juste un petit quelque chose comme ça :
// OnUserDefined Script : tm_garde_ud
// Fait en sorte que le garde grogne s'il voit quelqu'un avec une arme sortie.
// Dernière mise a jour le 11/07/02
// Ecris par Gatsby le magnifique.
// avec l'aide de Celowin.
// Traduis par Amaranthe.
Les gens qui joueront votre module ne verrons jamais ces remerciements, mais ceux qui " piquerons " votre code, oui.
Même si vous ne connaissez pas le nom de la personne, son pseudonyme fera l'affaire.
La campagne officielle.
Je vais le dire et le redire, mais cela m'énerve de voir des gens poser cette question : " Comment je fais pour faire ceci ou cela comme dans la campagne a tel endroit ? "
* Dans le répertoire NeverWinter Nights, il y a un sous répertoire nommé " nwn ". Vous trouverez dans ce sous répertoire les modules de la campagne officielle.
* Copiez les fichiers qui vous intéressent dans le répertoire " modules ".
* Changez leur extension, de " .nwn " en " .mod ".
* Click droit, propriétés, enlevez le " Read Only ".
* Maintenant ce fichier peut être ouvert dans le Toolset.
Vous pouvez apprendre énormément, en regardant comme Bioware a codé telle ou telle chose.
Vous cherchez a savoir comment un Npc peut commencer une conversation ? Regardez le script de Pavel dans le prélude !
Vous voulez savoir comment conjurer des créatures qui attaquent les pcs ? Regardez le script de conversation d'Aribeth dans le prélude !
Vous voulez un npc qui vous suive jusqu'à ce qu'il rencontre un autre npc, puis s'en aille ? Regardez donc dans le chapitre 1...
Il y a plein de petits trucs dans la campagne... apprenez a vous en servir.
Bien sur, des fois, le code est un peu ardu a lire, surtout pour les choses compliquées, mais vous commencez a vous débrouiller en script non ? Sinon, c'est peut être que vous vous attaquez a un trop gros morceau.
Ce qui m'amène a un point que je voulais aborder depuis longtemps. Il est normal quand on veut faire un module, d'essayer de suite de scripter le truc particulier qui va faire de son module, celui dont on sera fier. Hors, au début, c'est souvent une mauvaise idée. Commencez a vous faire la main sur de petits scripts, qui prêtent moins a conséquence, et qui vous découragerons moins vite surtout. Vous devez apprendre a marcher avant de courir.
Le Toolset.
Ne soyez pas étonnés, il y a beaucoup a apprendre du Toolset. C'est la dedans que j'ai appris la plupart de ce que je sais. Une fois que vous connaissez les bases de script, et vous les connaissez n'est ce pas ?, il y a beaucoup a apprendre de la documentation du Toolset, aussi minimale soit elle.
Vous avez sans doutes noté que quand vous éditez un script, toutes les fonctions étaient regroupées dans une fenêtre a votre droite. Vous pouvez cliquer sur chacune d'elle et avoir quelques informations dans l'écran du bas.
De plus le nom des fonctions est souvent assez explicite, utilisez donc la recherche et regardez ce que chaque fonction fait. Vous ne devriez pas tarder a trouver celle qu'il vous faut.
Prenons donc un exemple qui concerne le script écrit plus bas. Je souhaites téléporter un pc d'un endroit a un autre. Je ne sais pas comment faire, donc je commence a regarder les fonctions. Il semblerait que la fonction " ActionMoveToLocation " corresponde plutôt bien. Cependant, j'ai déjà utiliser les commandes " Move " et je sais que cela veut dire marcher. Je continue ma rechercher et je vous " ActionJumpToLocation ". Voyons donc ça de plus près. Je clique dessus et cela me dit.