Prophétesse
|
Par Celowin mailto:james.foxglove@verizon.net
traduit par Amaranthe mailto:amaranthe Introduction Le but de cette série de leçons, est d'apprendre a se servir des scripts a n'importe qui. Cette deuxième leçon porte sur les variables. Il est toujours possible de trouver la première leçon <a href = «https://forums.jeuxonline.info/showthread.php?t=101346 »>ici</a> Cette leçon risque d’être un peu plus longue que la précédente. Les concepts abordés sont également un peu plus complexes. Si ma manière de présenter les choses n’est pas assez claire, n’hésitez pas a posez des questions. Partez toujours du principe que pour une personne qui pose la question, il y en a cinq qui attendent la réponse. Modifions donc notre module de test. Ouvrez le dans l’éditeur. Cliquez droit sur le npc que nous avions crée. Choisissez propriétés et allez dans l’onglet des scripts. Nous allons cette fois ci écrire deux petits scripts. Le premier va dans le « OnSpawn » Code PHP:
Bien, même si ce script ne fait qu’une seule ligne, il est du genre a faire fuir la plupart des gens qui n’ont pas l’expérience de la programmation. Essayons donc d’expliquer un peu avant de s’attaquer au script réel. Premièrement, remarquez que ce script est placé dans le « OnSpawn ». Ce qui signifie qu’il ne sera exécuté qu’une seule fois, lorsque le npc apparaît pour la première fois dans le jeu. C’est donc l’endroit idéal pour initialiser des choses, et c’est justement ce que nous cherchons a faire. Cette ligne définit une variable. Souvenez vous de vos cours de math, qu’est ce qu’une variable ? Une lettre qui représente un nombre. C’est a peu près la même chose ici, mis a part qu’au lieu d’utiliser une simple lettre, nous lui donnons un nom. La commande SetLocalInt est une fonction que sert a définir une variable. Elle nécessite trois paramètres, séparés par des virgules. - Le premier est ce a quoi la variable va être attachée. - Le second est le nom que nous voulons donner a la variable. - Le troisième est la valeur que nous voulons mettre dans la variable. J’espère que vous avez compris que nous voulions créer une variable, nommée CHANTEUR_COUNT et que nous voulions lui donner la valeur 0. Le premier paramètre nécessite un peu plus d’explications. Tout ou presque dans un module, est un objet ( object ). Les npcs sont des objets, les Placeables sont des objets. Même les pcs eux mêmes sont des objets. Avec tant et tant d’objets dans un module, il est vital de savoir s’y retrouver et de toujours savoir duquel on parle. OBJECT_SELF est un des moyens les plus pratique de se référer a un objet. Comme vous pouvez le deviner, il fait référence a l’objet qui l’appelle. Dans notre cas, notre script est attaché a un npc, donc OBJECT_SELF est ce npc. Aussi simple que cela. Nous avons donc, par le truchement de cette simple ligne, définis une variable nommée CHANTEUR_COUNT, qui a pour valeur 0. Cette variable étant attachée au npc CHANTEUR. Il est intéressant aussi de noter que le Int de SetLocalInt est pour « Integer » ce qui veut dire Entier. C’est a dire un nombre entier. Nous aurions pu mettre 2, 15 et même –7 mais pas 3,8 par exemple. Le deuxième script maintenant. Nous allons écraser le « OnHeartbeat » de notre première leçon. Code PHP:
Avant que j’explique, regardez donc ce que fait ce script. Fermez la fenêtre de script. Cliquez sur Ok pour le npc, et sauvegardez le module. Lancez le module de test et regardez comment se comporte votre chanteur. C’est votre premier script avec quelque chose d’écrit avant le void main() et cela mérite donc d’être signalé. Ceci est appelé la phase d’Initialisation du script. Nous parlons ici des choses auxquelles le script va se référer. Contrairement a la variable locale que nous avons défini précédemment, ce nCount n’aura d’existence que le temps que ce script tourne. Des que ce script sera terminé, nCount n’existera plus. C’est pour cette raison que ces variables sont nommées « Temporaires ». Remarquez combien de fois nous utilisons nCount dans notre fonction, et imaginez combien cela serait long et déroutant si nous devions a chaque fois réécrire a la place quelque chose comme GetLocalInt(OBJECT_SELF, "CHANTEUR_COUNT"). Pour ce qui est du nCount. A chaque fois que vous déclarez une variable temporaire, la première lettre est un tag qui sert a déterminer le type de valeur que cette variable peut prendre. Ce n’est nullement obligatoire, c’est simplement une convention. N est ici mis pour Integer. Quelque soit le nom que vous donnez a votre variable, vous savez qu’elle va contenir un Integer. Les « int » signifie donc que nous définissons une variable de type integer, le « = » signifie que nous allons lui donner une valeur et le GetLocalInt récupère la valeur de la variable CHANTEUR_COUNT. Notez au passage la similarité entre les fonctions SetLocalInt et GetLocalInt. Cette première ligne crée donc une variable temporaire nCount, que notre script va pouvoir utiliser, et lui assigne la valeur de CHANTEUR_COUNT stockée au niveau de notre npc. Donc la première fois que le script est appelé, nCount vaut 0. Puisque c’est ce que nous avons initialisé dans notre script « OnSpawn ». Je sais que cela fait beaucoup d’explication pour une simple ligne de code. Et je me doute que beaucoup ne comprendrons pas du premier coup. Relisez et si cela n’est toujours pas clair, attendez de l’avoir utilisé deux ou trois fois et vous verrez alors… Voyons maintenant le corps du script et décortiquons le. nCount = nCount+1; Cela ne fait que prendre notre variable temporaire et lui ajouter 1. Il suffit de lire : Affectez a la variable nCount le contenu de la variable nCount + 1. Si nCount vaut 9, alors après cette ligne, elle vaudra 10. ( Il est également possible d’écrire cela : nCount++ ; le ++ est l’incrément de 1. C’est parfait une fois que l’on y est habitué, mais au début c’est généralement assez déroutant. ) La deuxième ligne est une commande connue : ActionSpeakString. Par contre le paramètre demande peut être explication. Il est composé de trois parties, séparées par des +. Lorsqu’on l’applique a des chaînes de caractères ( String ) le + sert a la concaténation. Par exemple : « Ceci est une String » est équivalent à : « Ceci est » + « une String ». Cela n’a que peu d’intérêt écrit comme cela, mais prends tout son sens quand on regarde la partie du milieu de l’expression : IntToString(nCount). Ce qui fait exactement ce que ça veut dire. nCount est un integer, et cela transforme sa valeur en une chaîne de caractère de façon a ce qu’elle puisse être concaténée et utilisée par la commande ActionSpeakString. Vous devriez maintenant facilement comprendre la dernière ligne. Cela ne fait que stocker la nouvelle valeur de nCount dans notre variable locale. Si nous voulons que cette variable soit réutilisée, il faut stocker sa valeur. Rappelez vous que nCount n’existera plus une fois que vous serez sortis de la fonction. Amaranthe. |
05/07/2002, 13h03 |
|
Aller à la page... |
Cours de Scripts pour les Quiches. Leçon Deux.
Suivre Répondre |
|
Partager | Rechercher |
|
... ...
Whôa ! Merci Neko |
05/07/2002, 14h19 |
|
Neko - BlueFrog |
Voir le profil public |
Trouver plus de messages par Neko - BlueFrog |
|
merci pour les belles leçons
mais maudit que je hais coder avec du "case sensitive" je suis habituer a Visual Basic |
05/07/2002, 14h51 |
|
|
merci beaucoup encore pour tout ce boulot
c bien qu il y ai des gens comme toi ca prouve que la communauté fr bougent et tente d 'avancer encore bon boulot |
05/07/2002, 17h15 |
|
#17073
Invité
|
Tres bien faits ces tuts!!
Je suppose que c'est donc avec cette meme technique que l'on peut implémenter le nom du joueur dans la conversation! |
06/07/2002, 15h01 |
|
#17073 |
|
Merci, une fois de plus j'ai oublie de reflechir.... pourtant j'avais bien cru avoir refléchi avant d'écrire, mais en fait non
zetes bien patient :-) |
15/07/2002, 18h31 |
|
|
Bé non, tu récupère une variable avec GetLocalInt, donc ça peut marcher (tu lies de cette manière des scripts différents...).
|
12/03/2003, 22h45 |
|
Suivre Répondre |
Connectés sur ce fil1 connecté (0 membre et 1 invité)
Afficher la liste détaillée des connectés
|