Forum WTeam
Vous souhaitez réagir à ce message ? Créez un compte en quelques clics ou connectez-vous pour continuer.

Forum WTeam

Le site des moddeurs 100% francophone.
 
AccueilPortailGalerieRechercherDernières imagesS'enregistrerConnexion
Le deal à ne pas rater :
Cartes Pokémon 151 : où trouver le coffret Collection Alakazam-ex ?
Voir le deal

 

 La programmation: scripts et conditions

Aller en bas 
AuteurMessage
Mike89
Maître ArchipelModeur
Maître ArchipelModeur
Mike89


Masculin Nombre de messages : 3151
Age : 68
Date d'inscription : 06/03/2007

La programmation: scripts et conditions Empty
MessageSujet: La programmation: scripts et conditions   La programmation: scripts et conditions Icon_minitimeVen 16 Mar 2007, 00:46

En cours de saisie

La programmation objet
Un jeu est conçu selon les principes de la programmation orientée objet, c'est à dire formé d'objets communicant par des "messages". (facile à dire, moins facile à faire...). Je vais expliquer comment çà marche de façon pratique.

Qu'est-ce qu'un objet au sens "informatique", et dans Oblivion ?

De façon générale, les attributs d'un l'objet définissent son état. Les méthodes de l'objet définissent ses comportements possibles. L'identifiant de l'objet est un attribut spécial qui permet de s'adresser à lui dans les scripts, les conditions, la console pour exécuter une méthode (fonction ou commande).

Dans oblivion, un objet est un modèle de données et de comportement qui posssède :
    *Une identité OU IDENTIFIANT : le formId, mais également l'EditorId, utilisé dans le TESCS pour référencer les objets dans les scripts et les conditions, car plus mnémonique qu'un numéro hexadécimal. Mais le vrai identifiant, c'est le FormID. c'est le seul connu du jeu dans la console et dans les scripts compilés.

    *Un état : les valeurs à un moment donné des différents attributs, champs, données, variables que contient l'objet, par exemple son niveau, sa disposition...

    *Un comportement : les méthodes, fonctions, scripts, packages, animations que l'objet peut exécuter. Le comportement fait évoluer l'état de l'objet

Structure d'objets

Si dans une application conçue "objet" tout est objet, mais on distingue cependant des catégories d'objets particulières, ce qui permet de faire apparaître des structures d'objets.

Certains objets ou classes sont des objets particuliers qui servent de modèle commun à plusieurs autres objets, ou à d'autres types d'objets de niveau inférieur. Le niveau le plus bas d'objet s'appelle une Reference

Dans Oblivion, on peut distinguer plusieurs catégories d'objets :
    *la catégorie "World" définit les structures du monde : worldspace, region, cell. Le menu World du tescs fournit les outils permettant de créer ou tester ces objets ainsi que certains de leurs composants comme le temps météo, le climat, les path, heightmap, local map et textures de terrain.

    *la catégorie "character" définit des composants ou des caractéristiques de personnages tels les objets cheveux, yeux, races, skills, class, birthsigns et factions. Il est possible de définir des comportements de personnages grâce aux objets quêtes, dialogues, et packages.

    *la catégorie "gameplay" permet de régler le jeu, en particulier les effets magiques, settings, scripts, variables globales et animations.

    *les types d'objets définissent implicitement les attributs et les méthodes applicables aux objets de base. Chaque type d'objet possède un formulaire de saisie particulier dans le TESCS. Ce sont les types Actor, Item, Magic, Miscellaneous et WorldObject. Ces types d’objets permettent de définir les objets de base. Les types d’objets et leurs sous-types sont listés dans l’arborescence de la fenêtre « Object Windows » du TESCS2 (partie gauche). Les objets de base sont définis pour chaque type dans la partie droite.

    *La catégorie "Reference" constitue l’ensemble des instances des objets de base dans le jeu. Ce sont les "References" qui peuvent être placées dans le monde et y être représentées par des objets 3D, avec ou sans animation. Les références exécutent un script si leur objet de base porte un script d’objet. La fenêtre « Reference » du TESCS2 permet d’initialiser des attributs complémentaires pour chaque référence.

    *Enfin, il existe une catégorie particulière d’objets : les "Conditions". Ce sont des tableaux comportant des lignes de tests, reliées par les opérateurs logiques (ET, OU). Les conditions sont utilisées pour déterminer quand sont lancés les packages, les animations, les quêtes, étapes, résultats et dialogues de quête.

A quoi sert le tescs ?

Le TESCS2 est l'éditeur du jeu Oblivion. Il permet de modifier la base de donnée des objets. Il est possible de modifier les caractéristiques initiales des objets dans le jeu, de créer de nouveaux objets de base, de modifier le comportement des objets par l'ajout d'animations, de packages, de quêtes, mais également de conditions et de scripts sur ces objets.

Les modifications faites dans le TESCS sont sauvegardées dans un fichier ESP.


La programmation dans le TESCS2

Pour personnaliser le jeu des acteurs, il est nécessaire :
    *de codifier les actions particulières dans des scripts
    *de gérer les quêtes, dialogues, packages et Idle animations.


Codifier des actions particulières dans des scripts.

A cet effet, nous disposons des scripts de quête, des scripts d'objet, des scripts d'effet magique, des scripts de résultats d'étape et des scripts de résultats dialogue.

Les scripts de quête, les scripts d'objets et les scripts d'effet magiques forment l'ensemble des scripts nommés. Ils possèdent donc un nom, et sont saisissables dans une fenêtre spéciale du menu Gameplay/Edit Scripts.

Les scripts de résultats d'étape et de dialogue sont de petits scripts saisissables directement dans le champ "Result Script" des onglets Quest stage (etape) et des différents onglets de dialogue, situés dans la fenêtre du menu Character/Quests.

Les scripts sont formés d'une succession de fonctions qui permettent de connaitre les valeurs d'attributs des objets, les modifier, ou de gérer les comportements des références.

Les types de fonctions
La plupart des fonctions sont des fonctions de référence, c'est à dire qu'elle sont exécutées soit sur la référence mentionnée en préfixe (Ref.Fonction), soit par défaut sur la référence qui exécute le script. Si aucune référence n'est définie pour appeler la fonction, cela génére une erreur lors de la compilation. Exemple de référence : player.DispelAllSpells (player est la référence appelant la fonction, qui exécute la fonction).

Certaines fonctions n'admettent pas de référence. Exemple : EnableFastTravel.

Certaines fonctions nécessitent après le nom de la fonction une liste de paramètres, séparés par des virgules. Un des types de paramètre possible peut être une Référence. Cette référence est en général une cible pour la référence appelante. Exemple : player.Cast MonSort MonEnnemiRef.
Attention, cependant, au rôle joué par les références participant à la fonction et à l'ordre dans lequel elles doivent être citées. Par exemple avec la fonction Kill, c'est la référence appelante qui est tuée.

Certaines fonctions retournent une valeur dans une variable après leur exécution. C'est le cas des fonctions Get... mais également des Is... Ce peut être la valeur d'attribut de l'objet, ou la valeur logique d'un état (0-1). Quelques fonctions donnent la référence de l'objet crée ou ciblé : ce sont les fonctions de variable de référence.

Enfin d'autres fonctions modifient soit le comportement de la référence, soit une, ou des valeurs d'attribut de l'objet de base, ou de la référence. C'est le cas en particulier des fonctions Set...

Les scripts de quête.
Une quête peut porter un script. Le script s'éxécute par défaut toutes les 5 secondes, mais il est possible de modifier cette périodicité d'exécution.

Les scripts de quête sont des scripts globaux qui ne s'exécutent sur aucune référence du jeu. Toutes les fonctions de référence utilisées dans ces scripts doivent donc être appelées par une référence explicite.

Les scripts de quête peuvent servir à contrôler une quête et ses étapes, gérer des dialogues, servir de base de données pour un ensemble de références, servir à conserver des variables globales. Les scripts de quête sont en quelque sorte les "chefs d'orquestre" du jeu.

Scripts d'objet

Scripts d'effet magique

Scripts de résultat
Les scripts de résultats d'étape et de dialogue sont de petits scripts saisissables directement dans le champ "Result Script" des onglets Quest stage (etape) et des différents onglets de dialogue, situés dans la fenêtre du menu Character/Quests.

Ils s'exécutent lorsque la Condition de réalisation de l'étape ou du dialogue est réunie. Les scripts de résultat peuvent utiliser les variables créées par des scripts nommés, mais ne peuvent pas créer de variables.

Les Etapes de quêtes, dialogues, packages et Idle animations

De nouveaux comportement peuvent être définis sur les références d'objets du jeu.


Dernière édition par le Ven 16 Mar 2007, 15:36, édité 1 fois
Revenir en haut Aller en bas
 
La programmation: scripts et conditions
Revenir en haut 
Page 1 sur 1
 Sujets similaires
-
» Questions sur les scripts
» Les Conditions
» Les scripts d'effet magique expliqués en un diagramme
» Les quêtes, scripts de quête et de résulats en un diagramme
» Les diagrammes TESCS2 et scripts, dernière version

Permission de ce forum:Vous ne pouvez pas répondre aux sujets dans ce forum
Forum WTeam :: Public :: Tutos TESCS2 Oblivion :: Les scripts, dialogues et quêtes.-
Sauter vers: