Untitled Document

Bienvenue dans le monde de RPG Maker !

Aide améliorée à partir de la traduction US de l'aide officielle.
Auteurs et participants : Calak, Trebor777, Hawke, Darth Killer, DjLeChuck, Bodom-Child, Rabbi.
La lignée des logiciels RPG Maker, depuis ses premières versions, a visé à permettre aux concepteur de jeux amateurs d'exprimer leur créativité à travers les jeux de rôle. Ce dernier volet très puissant permet de réaliser des jeux complexes plus facilement qu'auparavant.

Caractéristiques de RPG Maker XP

Améliorations graphiques

Désormais, le logiciel gère les palettes de couleurs 32 bits, le format JPG et les couches alpha (trasnparence partielle, utile aux dégradés et ombres).
De plus le jeu se lance en 640 par 480 pixels, donc une résolution 2 fois plus importante qui implique un meilleur rendu graphique.
Enfin, la touche F1 permet pendant le jeu de supprimer les alias parfois gênants.

Améliorations audios

Les fichiers MIDIs sont désormais mieux gérés et sont joués avec plus de pronfondeur, grâce à Direct Music Synthetiser qui permet par la même occasion de conserver le même rendu d'un ordinateur à l'autre. En effet, le rendu d'un fichier MIDI dépend de la carte graphique...
Par ailleurs, de nouveaux formats de sons sont désormais parfaitement gérés : MP3, OGG, ect...

Nouvelles possibilités : le scripting en RGSS !

Le RGSS, ou Ruby Game Scripting System. Le Ruby, langage de programmation orienté objet, est utilisé pour créer une base de scripts. Un nouveau projet possède automatiquement une longue série de scripts RGSS définissant quasiment tout du jeu par défaut. Il vous est possible aisément de modifier ces scripts et d'ajouter les vôtres, modifiant ainsi le jeu jusque dans ses plus pronfondes définitions !

Sommaire

  • Configuration recommandée
  • Contrôle du jeu
  • Aide Contextuelle
  • Projets
  • Cartes
  • Evènements
  • Base de Données
  • Scripting
  • Caractéristiques des Ressources
  • Formules de Combats


Untitled Document

Configuration Recommandée

Configuration minimum

Système d'exploitation | Windows 98 / 98SE / Me / 2000 / XP
Micro-processeur | Intel Pentium III 800MHz
RAM | 128 Mo
Carte vidéo | Résolution 1024×768 - Couleurs 24 bits
Carte son | Compatible DirectSound
Espace disque | 100 Mo d'espace libre

Note : Avec cette configuration, on risque d'avoir certains ralentissements si le jeu est surchargé.
De plus avec un Windows plus ancien que le XP le testeur peut ne pas fonctionner.

Configuration conseillée

Système d'exploitation | Windows XP
Micro-processeur | Intel Pentium IV 1.5GHz ou plus
RAM | 256 Mo ou plus
Carte vidéo | Résolution 1024×768 - Couleurs vraies
Carte son | Compatible DirectSound
Espace disque | 500 Mo d'espace libre ou plus


Untitled Document

Contrôle du jeu

  • Les commandes fondamentales
  • Configuration vidéo/audio et des touches pendant le jeu
  • Les commandes avancées

Les commandes fondamentales

RPG Maker XP a été prévu pour fonctionner à l'aide de 8 boutons, pour simplifier l'utilisation des manettes de jeu : A, B, C, X, Y, Z, L et R. Ce ne sont pas les touches du clavier en elles-mêmes, mais des noms que l'on leur a attribué pour simplifier les commandes d'évènements et les scripts.
Voici leurs équivalences et leurs fonctions par défaut :

Nom | Equivalent sur une manette | Equivalent sur un clavier | Fonction
A | Bouton 1 | Touche Maj, Z | -
B | Bouton 2 | Echap, Num 0, X | Annulation & Appel du menu
C | Bouton 3 | Espace, Entrée, C | Confirmation
X | Bouton 4 | A | -
Y | Bouton 5 | S | -
Z | Bouton 6 | D | -
L | Bouton 7 | Q, Page Haut | Page précédente (menus)
R | Bouton 8 | W, Page Bas | Page suivante (menus)

Bien entendu, les touches directionnelles servent à diriger le héros.

Note : Ci-dessus, certains boutons n'ont aucune fonction, mais il est possible de leur en assigner une grâce à Ruby ou aux évènements.

Configuration vidéo/audio et des touches pendant le jeu

A tout moment, pendant le jeu, il est possible de presser la touche F1 pour faire apparaître le menu de configuration.

Fluidité accrue

Le jeu tourne normalement à une vitesse de 20 images/seconde. Cependant, si vous possédez un processeur cadencé à 1,5 GHz ou plus, activer cette option vous permettra d'atteindre en moyenne 40 images/seconde.

Synchronisation verticale

Cette option, si elle est activée, permet d'éviter la "casse" de l'image pendant les déplacements. Normalement tout devrait tourner correctement avec cette option activée, mais si néanmoins vous observez des ralentissements à certains endroits, vous pouvez la désactiver très facilement.

Musiques de fond et Effets musicaux

Décochez cette option si vous ne souhaitez plus entendre les musiques pendant le jeu.

Fonds sonores et Effets sonores

Décochez cette option si vous ne souhaitez plus entendre les effets sonores pendant le jeu.

Les commandes avancées

Touche | Fonction
Alt + Entrée | Passe le jeu en plein écran. Pressez de nouveau ces touches pour revenir en mode fenêtré
Alt + F4 | Quitte le jeu
F12 | Retourne à l'écran-titre
F2 | En mode fenêtré, affiche le nombre d'images/seconde (frames par seconde) dans la barre de titre *
F9 | Permet d'afficher le mode debug qui propose de modifier plein de données sur le jeu *
Ctrl | Maintenez enfoncer cette touche pendant vos déplacements pour passer au travers de tout *

* : Ces commandes sont disponibles uniquement en mode test, c'est à dire quand vous testez votre jeu depuis RPG Maker XP.


Untitled Document

Aide Contextuelle

Avec RPG Maker XP, fini le temps où pour chercher des informations il fallait se plonger dans un fichier d'aide volumineux. Désormais, plus rien ne vient casser votre travail, grâce au système d' "aide contextuelle". Il existe deux méthodes pour appeler cette aide :

  1. Sélectionnez le contrôle sur lequel vous avez besoin d'aide puis pressez la touche F1 de votre clavier.
  2. Faites un clic-droit sur ce contrôle puis cliquez sur "Aide".
  3. L'aide concernant le contrôle apparait alors dans une info-bulle.

Note : Quand plus de détails sont nécessaires, consultez le manuel.


Untitled Document

Projets

  • Créer un nouveau projet
  • Modifier le titre d'un projet
  • Modifier ou effacer un projet
  • Distribuer un projet

Dans RPG Maker XP, tout jeu est appelé Projet. Un projet peut être assimilé au répertoire du jeu : il contiendra toutes les données nécessaires au bon fonctionnement du jeu. Les sections suivantes vous donnerons toutes les informations nécessaires pour vous familiariser avec les projets.

Créer un nouveau projet

Pour créer un nouveau projet, vous pouvez soit cliquer sur l'icône en forme de page blanche (tout à gauche), soit cliquer sur "Fichier" puis sur "Créer un nouveau projet...", soit appuyer sur Ctrl + N. Une fenêtre s'ouvre alors, dans laquelle vous pouvez entrer un nom pour votre projet, pour le dossier du projet et sélectionner le répertoire de celui-ci (par défaut "Mes documents\RPGXP\")

Dans le dossier créé, vous verrez un fichier nommé "Game.rxproj". Vous pouvez dorénavant double-cliquer sur ce fichier pour éditer directement votre jeu.

Modifier le titre d'un projet

Le titre que vous avez donné à votre jeu lors de la création du projet peut être modifié à tout moment. Pour ce faire, cliquez sur "Jeu" puis sur "Modifier le titre...". Entrez le nouveau titre puis appuyez sur "OK".

Modifier ou effacer un projet

Si vous souhaitez effacer un projet ou modifier le nom de son répertoire, quittez RPG Maker XP avant afin d'éviter tout problème. Une fois vos modifications effectuées, vous pouvez relancer RPG Maker XP, et, si vous avez modifié le nom du dossier, réouvrir votre projet, ou en créer un nouveau si vous l'avez effacé.

Il est bien entendu possible de faire des sauvegardes de votre projet, pour éviter tout problème, par exemple avant d'apporter de grandes modifications à un script. Pour cela, faites simplement une copie du répertoire de votre projet.

Distribuer un projet

Une fois votre jeu terminé, ou arrivé à un stade où vous désirez le faire partager, cliquez sur "Fichier", puis sur "Créer un installateur...". Dans la fenêtre qui s'ouvre, sélectionnez le répertoire où vous désirez que l'installateur soit créé. Si vous préférez que les joueurs n'aient pas accès aux ressources de votre jeu, cochez la case "Crypter les données du jeu".

Il n'est pas nécessaire de posséder RPG Maker XP pour jouer aux jeux créés, il faut simplement avoir:

  • Installé le RGSS (qui contient tout le nécessaire pour que les jeux fonctionnent), RGSS pour RPG Maker XP :
    http://www.enterbrain.co.jp/digifami/
  • Posséder les Fichiers RGSS100J.dll et RGSS102E.dll dans le dossier Windows/system32/

Note : Vous pouvez également créer votre propre installateur en compressant le projet du jeu avec votre programme de compression favori. Faites attention cepandant à ne pas inclure les sauvegardes qui peuvent être présente si vous avez sauvegardé pendant le test de votre jeu.


Untitled Document

Cartes

  • Les Tiles, AutoTiles et Tilesets
  • Créer une nouvelle carte
  • Les couches
  • Placer les éléments du décors sur la carte
  • Utilisation des AutoTiles

Les cartes, vous vous en doutez, sont l'un des éléments les plus importants dans la création d'un RPG !

Ce sont sur ces cartes que vous verrez votre personnage se déplacer, et évoluer dans les éléments de décors que vous aurez placé pendant la création de votre jeu. Un jeu comprends bien évidemment plusieurs cartes, reliées entre elles. Par exemple, si vous créez une carte représentant un village, il faudra ensuite créer d'autres cartes pour les intérieurs des maisons de ce village. Vous trouverez ici tout le nécessaire pour apprendre à faire des cartes irréprochables !

Les Tiles, AutoTiles et Tilesets

La carte apparaît dans le jeu comme si elle était une immense image, mais en réalité elle est composée d'une multitude de Tiles (ou carreaux). A quoi servent donc ces Tiles? Chaque Tile représente une partie du décors, par exemple un bout de mur, le pied d'un arbre, une fenêtre... Chaque carte est donc un grand puzzle composé de Tiles.

En dehors de ces Tiles, il existe aussi des Tiles spéciaux appelés AutoTiles (ou carreaux auto-liables). Ce sont en quelque sorte des Tiles "intelligents" qui, selon leur placement, changent de forme afin de donner un aspect continuel sur la carte. Cela semble compliqué, mais c'est en réalité tout simple. Imaginez une carte sur laquelle vous souhaitez mettre un plan d'eau. Et bien choisissez l'AutoTile représentant l'eau, puis appliquez le sur la carte comme si vous dessiniez avec un pinceau.

Et où trouve-t'on ces Tiles? Et bien ici arrive la notion de Tilesets. Les Tilesets sont en fait une image regroupant de nombreux Tiles, généralement en rapport avec un décors précis (Village, forêt, grotte...). Pour chaque carte, vous devez choisir un Tileset, et jusqu'à 7 AutoTiles.

Créer une nouvelle carte

Quand vous créez un nouveau projet, une nouvelle carte est déjà créée. Quand vous souhaitez en créer une autre, faites simplement un clic-droit sur le nom du projet (voir photo), puis cliquez sur "Nouvelle carte...".

Si vous souhaitez créer une sous-carte (par exemple les intérieurs d'un village), faites un clic-droit sur la carte parent (donc sur la carte du village, toujours pour le même exemple), puis cliquez sur "Nouvelle carte...".

Dans la fenêtre qui s'ouvre, donnez un nom à votre carte puis sélectionnez le chipset souhaité (les chipset sont définis dans la Base de Données, ils contiennent les Tilesets et les AutoTiles).

Vous pouvez aussi, si vous le désirez, choisir une musique et un environnement sonore pour cette carte, ainsi que des groupes de monstres, qui apparaîtront lors de combats aléatoires.

Puis cliquez sur "OK". Voilà, votre carte est créée, il ne vous reste plus qu'à la compléter.

Note : Vous pouvez mettre une carte en "sous-carte" en faisant simplement un Glisser/Déplacer vers une autre carte.

Les couches

Les cartes possèdent trois couches. Une couche correspond en quelques sortes à un "niveau", c'est à dire que la couche basse correspond au sol, la couche moyenne au objets juste au dessus du sol (une chaise par exemple) et la couche haute aux objets situés au dessus du reste (comme la cime des arbres par exemple).

La photo ci-contre montre bien l'intérêt des couches, les trois premières images correspondent respectivement aux couches basse, moyenne et haute, et la quatrième image correspond au résultat obtenu pendant le jeu.

Placer les éléments du décors sur la carte

Une fois votre carte créée, cliquez sur le Tile (à gauche sur l'écran) que vous souhaitez "dessiner" sur votre carte, puis cliquez sur votre carte pour appliquer le Tile. Si vous souhaitez placer plusieurs Tiles d'un coup (par exemple pour placer une maison), sélectionnez plusieurs Tiles puis cliquez sur la carte.

Il existe différents outils de dessin pour placer les Tiles sur vos cartes :

Pinceau
Place les Tiles là où se trouve le curseur.
Rectangle
Permet de placer les Tiles de manière rectangulaire. Cliquez, maintenez enfoncé puis dessinez le rectangle.
Ellipse
Permet de placer les Tiles de manière elliptique. Cliquez, maintenez enfoncé puis dessinez l'ellipse.
Pot de peinture
Permet de remplir une zone composée de Tiles identiques avec le Tile sélectionné
Sélection
Permet de sélectionner une zone. Vous pouvez ensuite couper, copier, coller ou supprimer la zone. Pour sélectionnez la totalité d'une carte, pressez Ctrl+A ou faites clic-droit puis cliquez sur "Sélectionner tout".

Il est aussi possible de zoomer sur la carte en cliquant sur les icônes situées à droite des outils de dessin.

Utilisation des AutoTiles (ou Carreaux auto-liables)

Pour appliquer un AutoTile, sélectionnez-le (les AutoTiles sont situés tout en haut du Chipset à gauche sur l'écran), puis appliquez le sur la carte selon votre convenance.

Il est possible de forcer un AutoTile à ne pas s'aligner avec les autre AutoTiles en maintenant la touche "Maj" enfoncée tout en appliquant l'AutoTile.

Il est aussi possible de modifier l'AutoTile en double-cliquant dessus dans le chipset.


Untitled Document

Evénements

  • Les trois types d'évènements
  • Les pages d'évènements
  • Configuration d'un évènement de carte
  • Configuration d'un évènement de combat
  • Les commandes d'évènements
  • Les options des messages

Les entités qui apparaissent dans le jeu tel que les citadins et les coffres de trésor auquels le joueur peut rechercher des objets s'appellent collectivement les évènements (des events pour les intimes).

L'avancement d'un jeu dépend presque entièrement des évènements. Par exemple quand le joueur vient à l'entrée d'une ville et est déplacé dehors à une plaine herbeuse, il est nécessaire d'avoir un évènement en place qui déclenche ceci.

Les trois types d'évènements

Il y a 3 types d'évènement : l'évènement de map, l'évènement de combat, et l'évènement commun. Quand une commande se rapporte à "cet évènement" elle signifie habituellement un évènement de map.

Evénements de maps
Ce sont les évènements qui opèrent la carte. Ils sont employés pour le mouvement de carte-à-carte, les personnes etc... Pour placer un, veillez que la couche courante étant éditée sur l'éditeur principal ou dans l'onglet [ Couches ] du menu est [ Couche d' évènements ] et double cliquez sur le carreau où vous souhaitez placer l'évènement . 100 évènements dans une carte est probablement le plus grand nombre garanti pour ne pas placer trop de contrainte là-dessus.
Evénements de combat
Ce sont les évènements qui fonctionnent pendant la bataille. Par exemple quand la HP du monstre est au-dessous d'une certaine valeur, quelque chose se produit. Ces évènements sont déterminés dans l'onglet de partie de monstre de la base de données.
Evénements communs
Ces évènements s'appellent sur la carte et en combats, et sont considérés comme des évènements tout usage. Ils sont déterminés dans l'onglet [ Evénements communs ] de la base de données.

Les pages d'évènement

Dans un évènement de carte, il est possible d'avoir des groupes multiples de commandes pour un évènement simple, appelées les pages d'évènement.

Il y a 3 types de condition qui peuvent être appliqués à une page d'évènement, qui doit être rencontrée pour permettre à la page de fonctionner : interrupteurs, variable et interrupteur local (interrupteur 2). Quand les pages multiples d'évènement ont leurs conditions rencontrées immédiatement, la page avec le nombre le plus élevé fonctionnera d'abord. (en d'autres termes, elles sont signé ordre d'inversion)

Interrupteur
Les interrupteurs peuvent être ON où OFF et maintenir leurs données dans tout le jeu jusqu'à être changé. Par exemple pour vérifier qu'un évènement "monstre" a été tué.
Variable
Les variables tiennent des valeurs de nombre entier (à un maximum de 8 chiffres) pour garder des données. Par exemple la réputation d'un joueur, des quantités d'article etc.
Interrupteur local
Ce sont des interrupteurs spéciaux qui sont uniques à l'évènement. Ceux-ci peuvent être employés dans les situations qui dépendent seulement de l'état de cet effet, par exemple pour vérifier si un coffre de trésor a été ouvert. Les évènements de bataille emploient également des pages d'évènement, mais leur installation est différente de celle des évènements de carte. Pour plus d'information voir les évènements de combats.

Il n'y a aucune page d'évènement pour des évènements communs, mais vous pouvez placer un déclenchement d'activation tel qu'un interrupteurs pour celles-ci.

Configuration d'un évènement de carte

L'option choisie dans [ Condition de déclenchement ] qui détermine comment un évènement est activé s'appelle un déclenchement.

Par la touche action
Un évènement avec ce déclenchement est commencé quand le joueur fait face à l'évènement et appuie sur la touche d'action. S'il y a un carreau avec le contre- attribut entre le joueur et l'évènement, il s'activera sans se soucier. Ceci est employé pour des choses comme parler aux citadins ou inspecter un coffre de trésor.
Au contact du héros
En plus du déclenchement en appuyant sur la touche d'action, un évènement avec ce déclenchement peut également être commencé si l'on marche dessus, que l'évènement et le joueur puissent recouvrir ou pas. C'est utile pour les évènements qui déplacent le joueur entre les cartes.
Contact Evénement/Héros
En plus du déclenchement au contact du héros, un évènement avec ce déclenchement peut également être commencé quand l'évènement se heurte au joueur. Par exemple, quand un monstre chasse vous sur la carte et une bataille est commencé si elle vous touche.
Démarrage automatique
Un évènement avec ce déclenchement commencera instantanément quand l'évènement apparaît. Puisque l'évènement répétera indéfiniment aussi longtemps que ses conditions sont réunies, il est nécessaire de le terminer à l'aide d'un interrupter ou d'un interrupteur local. C'est utile pour les évènements obligatoires qui se produisent dès que le joueur entrera dans une carte spécifique.
Processus parallèle
Un évènement avec ce déclenchement répétera indéfiniment. Il diffère du démarrage automatique parce qu'il fonctionnera en parallèle à d'autres évènements et leur permettra de continuer. C'est utile pour des choses comme les attentes, l'écran qui flash dans un orage etc...

Dans le cas des évènements communs qui n'existent pas physiquement comme des évènements de carte, il y a seulement trois déclenchements ; [ Aucun ], [ Processus parallèle ] et [ Démarrage automatique ]. S'il n'y a aucun déclenchement l'évènement sera seulement traité par appel. Pour retourner au traitement de l'évènement normal quand un évènement commun de démarrage automatique s'appelle, il est nécessaire d'employer un interrupteur de condition.

Les évènements de processus parallèles sont les plus lourds pour l'ordinateur, particulièrement quand ils emploient beaucoup de manipulation de variables/interrupteurs. On ne vous recommande de ne faire aucun processus de parallèle d'évènement à moins que cela soit nécessaire, ou de démarrer des évènements en processus parallèle quand ils ne font rien.

Configuration d'un évènement de combat

Événements qui se produisent tandis que dans le combats'appellent les évènements de combat.

Comme des évènements de maps, toutes les pages d'évènement de combat sont vérifiées constamment dans l'ordre numérique inverse. Si la fréquence de l'évènement de bataille est "Une fois/Combat", l'évènement sera seulement exécuté une fois par combat. Si la fréquence est "A chaque tour", alors l'évènement sera exécuté seulement une fois par tour.

Il y a 4 états d'évènement de bataille à choisir : les tours qui se sont écoulés, % de HP d'un monstre, % de HP d'un joueur, ou d'interrupteurs. Veuillez vous référer à "Quelle est cette aide ?" pour plus d'information.

Les commandes d'évènements

Les choses qui causent un certain genre de changement au jeu tout en jouant s'appellent l'évènement commande.

Pour définir les commandes d'évènement dans un évènement qui sont traitées réellement, il est nécessaire d'ajouter la commande à la liste. Il y a 90 commandes différentes d'évènement, comme [ Insérer un message], [ Téléporter ] et [ Démarrer un combat ].

La méthode de composition de contenu d'évènement sont commune à tous les types d'évènement. Les étapes pour ajouter une commande d'évènement sont énumérées ci-dessous.

  1. [<>] Double cliquez la ligne avec cette marque.
  2. La boîte de dialogue de [ Commande d'évènement ] est montrée. Cliquez le bouton de la commande que vous voudriez ajouter. Quand ce qui est l'aide de pour un bouton montrée, vous verrez une explication courte de la commande.
  3. Les commandes finissant dans les ellipses ont des arrangements qui doivent être déterminés afin d'ajouter la commande. Une fois que tous les arrangements sont entrés, cliquez [ Ok ].
  4. La commande d'évènement est insérée sur la ligne qui était double cliquée.

Quand vous faîtes un clique droit sur une ligne dans la table des matières des évènements, un menu automatique est montré avec de diverses options de copier/coller. Il est possible de choisir les lignes multiples en tenant la touche Shift..

Les options des messages

Des messages de jeu sont montrés en utilisant la commande d'évènement [ Afficher un message ]. C'est la commande la plus fréquemment utilisé.

Les caractères de commande suivants peuvent être employés dans la composition d'un message. Les caractères de commande sont des caractères spéciaux qui peuvent être employés pour changer l'aspect et le comportement d'un message.

\V[n]
Insère la valeur de la variable n.
\N[n]
Insère le nom du héros n.
\C[n]
Montre le texte suivant le caractère de commande en couleurs n.
0 1 2 3 4 5 6 7
\G
Ouvre une fenêtre montrant l'argent de la partie.
\\
Montre un \.

Si [ F2 ] est pressé dans la fenêtre de composition en message, une prévision de ce que ressemblera le message dans le jeu sera montrée.


Untitled Document

Base de Données

  • Contenu de la base de données
  • Edition des éléments de base de données
  • Modification du nombre maximum d'éléments

La collection de diverses données sur le jeu s'appelle la base de données.

Contenu de la base de données

Pour ouvrir la base de données, employez l'icône sur l'éditeur principal ou choisissez [ Base de Données ] dans l'onglet [ Outils ] du menu. Il est possible d'éditer les divers aspects de la base de données en changeant l'étiquette actuelle.

Héros | Les données des divers membres de partie que le joueur peut commander dans le jeu.
Classes | Les données des diverses classes qu'un héros peut être, qui déterminent quel équipement ils peuvent utiliser et quel qualifications ils apprennent.
Compétences | Les données des qualifications et de la magie, qui déterminent quels effets visuels elles emploient et combien de PM elles coûtent.
Objet | Les données des objets de non-équipement tels que la médecine de rétablissement et les articles spéciaux d'événement.
Armes | Les données des armes, qui augmentent la puissance d'attaque et les diverses autres choses. Elles sont traitées comme objets de type spécifique.
Equipement | Les données des articles qui augmentent la défense physique et magique. Ils sont traitées comme objets de type spécifique.
Monstres | Les données des monstres de la partie de combat.
Groupes de Monstres | Les données des groupes d'ennemi qui apparaissent réellement dans le jeu.
Conditions | Les données des conditions et des états physiques de statut qui sont produit par des capacités au cours de la bataille.
Animations | Les données des animations utilisées pour des effets visuels sur les armes, les qualifications, les objets etc...
Tileset | Les données qui définissent les tilesets qui peuvent être employés pour des cartes, et leurs propriétés.
Evénement communs | Les données des événements tout usage qui exécutent divers chargent dans le jeu.
Système | Les données définissant le commencement de la partie, les effets de sons, les attributs et la terminologie de divers aspects de jeu.

Les données dans la base de données ne sont jamais directement substituées. Par exemple, [ Démarrer au niveau initial ] pour un héros, et le niveau réel du héros pendant qu'il monte, sont manipulés en tant que données différentes.

Edition des éléments de base de données

Capture d'écran de la base de données

Chaque étiquette, excepté l'étiquette de système, est divisée en deux parties. Du côté gauche est l'identification de chaque élément avec son nom. Les données pour l'élément choisi sont montrées du côté droit. Pour éditer un élément le clic gauche suffit. Pour plus d'information sur chaque arrangement d'un élément référez-vous à "Quelle est cette aide ?".

Quand [ F4 ] et [ F5 ] sont pressés dans la fenêtre de base de données, vous pouvez choisir l'élément de précedente/suivant d'une étiquette. C'est utile quand il y a un grand nombre d'éléments à éditer, et peut soulever l'efficacité de travail.

Quand vous faîte un clique droit sur un élément dans la liste, une fenêtre automatique sera montrée avec de diverses fonctions de copier/coller. Quand [ Copier en masse] est choisi, une zone de dialogue incitant le nombre d'articles à copier sera montrée. L'article courant et le nombre choisi ensuite seront copiés dans un bloc, rendant facile de fusionner des données d'un autre projet ou de déplacer des groupes d'éléments autour.

Modification du nombre maximum d'éléments

Capture d'écran de la base de données

Pour changer le nombre maximum des éléments dans une liste, cliquez sur [ Nombre maximum d'éléments ]. On montrera une zone de dialogue dans laquelle vous pouvez écrire un nombre de 1 à 999.

Quand le nombre maximum est augmenté, la condition de mémoire augmente également, et la vitesse de lecture des données est plus lente. Ce n'est pas une bonne idée d'avoir l'espace vide dans une rangée de base de données.

Quand le nombre maximum est diminué, tous les articles qui excèdent la taille sont supprimés.


Untitled Document

Scripting

  • Ruby
  • Editeur de scripts
  • Opération de sections
  • Editer des scripts
  • Utiliser des scripts

Les programmes simples qui déterminent l'exécution du jeu s'appellent les scripts.

Généralement des choses comme [ Insérer un message ] s'appellent les scripts, mais avec RPG Maker XP les scripts sont beaucoup plus près de la programmation que ne le sont les commandes d'événement . Les commandes d'événement ne sont techniquement pas des scripts. Quand l'interprète vient à une commande d'événement le script qui s'est associé à la commande est exécuté.

Les scripts sont une fonction à niveau élevé pour les utilisateurs plus avançés. Vous pouvez les employer pour adapter chaque aspect du jeu, ainsi le niveau de la difficulté est tout à fait élevé. Scripter n'est pas nécessaire dans RPG Maker XP cependant, il est entièrement possible pour créer un jeu en utilisant les scripts de défaut. Si les systèmes de défaut ne sont pas à votre satisfaction, cependant, il est entièrement possible de les changer.

Ruby

Le moteur de script dans RPG Maker XP n'est pas un paquet individuel ; le language de script rubis a été adopté. La page officiel de Ruby est http://www.ruby-lang.org/

À l'origine, le Ruby est un langage open-source, offrant des possibilités suffisantes pour créer des jeux à grande échelle. Toutefois le language a été conçu pour le traitement de textes, ce qui rend le développement de jeu difficile. Par conséquent une version spécialisée pour le jeu appelé RGSS (Ruby Game Scripting System) a été développée, qui est le système utilisé dans RPG Maker XP. Pour plus d'information référez-vous à ma table des matières du RGSS.

Editeur de Scripts

Quand [ Edituer de scripts] est choisi parmi l'onglet [ Outils ] du menu, une grande zone de dialogue pour éditer des scripts est montrée.

Afin de contrôler un jeu à grande échelle tel qu'un RPG, il est nécessaire de diviser les programmes impliqués en plus petites unités. Dans RPG Maker XP, ces unités s'appellent les sections. Les sections sont énumérées du côté gauche de l'éditeur de scripts.

L'éditeur de scripts est conçu pour être semblable à la base de données; dans celle-là [ F4 ] et [ F5 ] peuvent choisir respectivement la section précedente/suivante.

Opération de section

Quand vous faîtes un clique droit sur le nom d'une section, une fenêtre automatique sera montrée. Si [ Nouveau script ] est choisi, une section blanche sera ajoutée avant celle choisie. Vous pouvez également changer l'ordre des sections en utilisant [ copier ] [ coller ] etc...

À la différence de la base de données, des sections ne sont pas définies par ID. Les définitions de classe vont de haut en bas dans la liste. L'opération réelle de jeu commence par la section "Main", ainsi mettre une nouvelle classe après "Main" serait une mauvaise idée.

Editer des scripts

Quand vous faîtes un clique droit sur le côté du script de la fenêtre, le menu automatique est montré. Les options de base des textes comme [ Couper ] et [ Coller ] et également les choses comme [ Rechercher ] et [ Remplacer] sont possibles.

Les raccourcis de clavier CTRL+F, CTRL+G etc.. sont utilisables même lorsque le foyer n'est pas l'éditeur de texte.

Si vous voudriez rechercher un mot dans toutes les sections au lieu de la section courante, choisissez [ Rechercher ] dans le menu de popup de section. Le raccourci est CTRL+SHIFT+F.

Utiliser des scripts

Il y a trois autres manières d'employer desscripts autres que la compilation directement avec l'éditeur, comme montré ci-dessous.

  1. Employez la commande d'événement [ Insérer un script ].
  2. Employez la commande d'événement [ Conditions ].
  3. Employez la commande d'événement [ Déplacer/Modifier un événement ].

Ceux-ci peuvent être employés pour ajouter des commandes d'événement que l'éditeur de scripts n'a pas d'installé au départ. Il est possible de faire énormément de choses avec des scripts !


Untitled Document

Caractéristiques des Ressources

  • Graphiques
  • Autotiles
  • Window skins
  • Audio

Avec RPG Maker XP il est entièrement possible d'employer les dossiers originaux pour toutes les ressources.

Quand [ Gestionnaire de ressources ] est choisi dans l'onglet [ Outils ] du menu, la zone de dialogue d' import/export de ressouces sera montrée. Copier des fichiers directement dans les dossiers de ressource est très bien, mais en raison des fonctions telles que des arrangements de transparence, utiliser cet option est fortement recommandé.

Graphiques

Les PNG et les JPG sont utilisables. Les fichiers en PNG approuvent pleinement la couleur de 32 bits avec des canaux d'alpha.

Personnage (Graphics/Characters)
Ce sont les fichiers utilisés pour les personnages qui apparaissent sur une carte.
Chaque fichier est un personnage, et la taille est sans restriction, mais doit être un multiple de 4. Un ensemble se compose de 16 images (vers le bas, gauche, droit, vers le haut des images de × 4). 1/4 de la taille et largeur sont employés pour déterminer la taille du personnage.
Battler (Graphics/Battlers)
Ce sont les fichiers utilisés pour les images de personnages qui sont montrées dans la bataille.
La taille est sans restriction, mais il est nécessaire de faire l'image avec la vue de la bataille 640×320 à l'esprit. En outre, si la taille de l'image est 40 Pixel ou moins, il sera difficile voir l'affichage de dommages.
Animation (Graphics/Animations)
Ce sont les fichiers utilisés pour des effets d'animation visuels, principalement pour des batailles.
Chaque cellule est 192×192 pixels, et un ensemble se compose des "blocs" de 5 cellules horizontalement. Il n'y a aucune limite à la taille verticale du dossier, mais les fichiers qui sont trop grands ne sont pas recommandés.
Tileset (Graphics/Tilesets)
Ce sont les fichiers qui contiennent les carreaux utilisées pour créer des maps.
Chaque carreau est de 32×32 pixels, et un ensemble se compose des "blocs" de 8 carreaux horizontalement. Il n'y a aucune limite à la taille verticale du dossier, mais les fichiers qui sont trop grands ne sont pas recommandés.
Autotile (Graphics/Autotiles)
Ce sont les dossiers qui contiennent les tuiles "terraforming" qui ajustent leurs frontières automatiquement.
Veuillez voir les details d'Autotile pour plus d'information.
Panorama (Graphics/Panoramas)
Ce sont les fichiers qui contiennent des images de "derrière-la-map", telles qu'une vue de la terre de loin.
Il n'y a aucune restriction de taille. C'est une bonne idée de s'assurer que les bords supérieurs, inférieurs et latéraux peuvent se relier entre eux si vous avez l'intention de mettre en rouleau le panorama dans une de ces directions.
Brouillard (Graphics/Fogs)
Ce sont les dossiers qui contiennent des images d'"au-dessus-de-la-carte", telles que des effets de brouillard.
Il n'y a aucune restriction de taille. C'est une bonne idée de s'assurer que les bords supérieurs, inférieurs et latéraux peuvent se relier entre eux si vous avez l'intention de mettre en rouleau le brouillard dans une de ces directions.
Fond de bataille (Graphics/Battlebacks)
Ce sont les fichiers qui sont montrés comme arrière plan dans la bataille.
La taille est 640×320.
Icône (Graphics/Icons)
Ce sont les fichiers qui sont montrés près des compétences/objets etc. dans le menu.
La taille est 24×24
Ecran titre (Graphics/Titles)
Ce sont les fichiers qui sont montrés comme Ecrans Ttitre lors du commencement du jeu.
La taille est 640×480
Game over (Graphics/Gameovers)
Ce sont les fichiers qui sont montrés comme écrans de Game Over lors de la fin de partie.
La taille est 640×480
Window skin (Graphics/Windowskins)
Ce sont les fichiers qui déterminent à quoi les fenêtres de jeu ressemblent.
Veuillez voir détails de Window skins pour plus d'information.
Image (Graphics/Pictures)
Ce sont les fichiers qui peuvent être montrés en tant qu'images statiques pendant le jeu.
La taille est facultative.
Transition (Graphics/Transitions)
Ce sont les fichiers employés pour déterminer comment l'écran est effacé/montré en changeant de maps ou en entrant dans un combat.
La taille est 640×480. Ce doit être un PNG à fond gris de 256 couleurs. L'écran s'effacera de la couleur la plus foncée dans la palette au plus léger.

Autotiles

Les autotiles sont composés de 12 modèles, comme montré du côté droit.

A
Modèle standard. À quoi le carreau ressemblera quand il sera placé seule ou entre d'autres careaux.
B
Modèle de parent. C'est le modèle bas employé pour déterminer comment placer le carreau.
C
Le modèle autotile avec son modèle de parent dans les quatre coins.
D
Le modèle autotile avec le modèle de parent de tous les côtés, et un modèle central sans la frontière.

Dans le cas des choses animées comme l'eau, vous peut arranger les blocs autotile l'un près de l'autre. Le nombre de modèles d'animation est facultatif.

Quand vous devez seulement animer le carreau, n'employez pas cette structure de base et n'arrangez pas simplement les carreaux de 32×32 pixels.

Window skins

Les Windows skin sont des images 192×128 pixels, comme montré du côté droit. Habituellement elles sont en PNG de couleur de 32 bits.

A
Le fond de fenêtre. C'est un modèle 128×128 qui est ajusté pendant que la fenêtre augmente/se contracte. (revenu à ceci).
B
La fenêtre et les flèches. On dessine le secteur 16×16, avec la fenêtre restante (bords) étant ajustée sur la taille de fenêtre. Les flèches déterminent le marqueur montré quand quelque chose peut être mise en rouleau dans une fenêtre.
C
Curseur de commande. Indiquaient l'objet choisi à l'intérieur de la fenêtre.
D
Signe de pause. Indiquant qu'une fenêtre de message attend l'appui sur entrer. Elle se compose d'une "animation réglée" de 4 frames de 16×16.
E
Curseur de flèche. Utilisé en choisissant un héros/ennemi dans le combat. Composé de 2 modèles 32×32. Ce ne sont pas une partie d'une fenêtre, mais sont incluses dans le fichier de Window skins pour la convenance.

Audio

5 types de dossier audio peuvent être employés ; MIDI, OGG, WMA, MP3 et WAV. (Le MIDI peut seulement être utilisé pour les BGMs et MEs)

BGM (Audio/BGM)
BGM (Musique De Fond). MIDI est employé principalement.
BGS (Audio/BGS)
BGS (Bruit De Fond). OGG est employé principalement.
ME (Audio/ME)
ME (Effet De Musique). MIDI est employé principalement.
SE (Audio/SE)
SE (Effet de Son). OGG employé principalement.

Les dispositifs de chaque format de fichier sont comme suit.

MID | Les MIDIs sont joués en utilisant le synthesiser de DirectMusic. Dans le cas des BGMs, si une commande 111 est employée le Midi répétera de ce point quand il finit.
OGG | Le format d'OGG Vorbis est supérieur dans la qualité et la compression de son. Cependant, RPG Maker XP ne soutient pas les durées trop longues d'OGGs, ainsi on ne vous recommande pas d'employer d'OGGs pour de longs airs.
WMA | La méthode de compression employée dans le Windows Media Player, joué en utilisant DirectShow. À la différence d'OGG il supporte les longues durées, rendant ce format approprié à de longs airs.
MP3 | Une méthode élevée de compression de diffusion. Les dispositifs sont identiques que le WMA.
WAV | Type de son standard de Windows. Soutient le WAV non réduit habituel, et également l'ADPCM de Microsoft.


Untitled Document

Formules de Combats

  • Premier calcul de coup
  • Coup critique
  • Calcul des dégâts
  • Second calcul de coup
  • Fuite réussie

Le système de combat par défaut de RPG Maker XP emploie les algorithmes suivants.

Le combattant qui attaque est l'objet A, le défenseur est l'objet B.

Premier calcul de coup

Attaque normale
Chance de coup = coup % de A
Competence
Quand la puissance d'attaque F est 1 ou plus (compétence physique)
Chance de coup = exactitude de compétence × rapport de coup de A ÷ 100
Quand la puissance d'attaque F est 0 (compétence non-physique)
Chance de coup = exactitude de compétence
Objet
Chance de coup = exatitude de l'objet
Quand l'état de A est normal, le taux de succès est considéré comme 100.

Coup critique

Attaque normal
Chance de coup critique = 4 × dexterité de A ÷ l'agilitée de B
Compétencel
Chance de coup critique = 0
Objet
Chance de coup critique = 0

Calcul des dégâts

Attaque normal
Puissance = puissance d'attaque de A - (la défense de B ÷ 2)
Multiplicateur = 20 + force de A
Désaccord = 15
Puissance minimum : 0
Compétence
Quand l'estimation d'effet est positive
Puissance = estimation d'effet de compétence
+ (puissance d'attaque de A × puissance d'attaque de la compétence de F ÷ 100)
- (défense phisique de B × défense physic de la compétence de F ÷ 200)
- (défense magique de B × défense magique de la compétence de F ÷ 200)
Puissance minimum : 0
Quand l'estimation d'effet est négatif
Puissance = puissance basse de la compétence
Multiplicateur = 20
+ (force de A × force de la compétence de F ÷ 100)
+ (dextérité de A × dextérité de la compétence de F ÷ 100)
+ (agilité de A × agilité de la compétence de F ÷ 100)
+ (intelligence de A × Magie F de lacompétence ÷ 100)
Désaccord = désaccord de compétence
Objet
Quand la valeur de rétablissement de HP est négative
Puissance = - valeur de rétablissement de HP
- (défense physique de B × défense physique de l'objet de F ÷ 20)
- (défense magique de B × défense magique de l'objet de F ÷ 20)
Puissance minimum : 0
Quand la valeur de rétablissement de HP est positive
Puissance = - valeur de rétablissement de HP
Multiplicateur = 20
Désaccord = désaccord de l'objet
Dégâts = puissance × multiplicateur÷ 20 × correction d'attribut × correction critique × correction de la défense (± désacord %)
  • Correction d'attribut : Attribuez la résistance de B à l'attribut de l'article.
    A:200%, B:150%, C:100%, D:50%, E:0%, F:-100%
    En outre si l'attribut de la résistance de l'armure de B est assortit à l'attribut de l'article, les dégâts sont réduits par moitié. Les exemples multiples de la défense d'attribut s'empileront, réduisant des dégâts par moitié à chaque fois.
  • Correction critique : Si un coup critique est réalisé, la correction critique est 2.
  • Correction de la défense : Si B se défend, la correction de la défense est 0.5.

Second calcul de coup

Quand les dégâts sont positifs
Quand l'état de B est normal
Chance d'évasion = 8 × agilité de B ÷ destérité de A + correction d'évasion de B
Attaque normal
Chance de coup = 100 - chance d'évasion
Compétence
Taux de succès = 100 - (chance d'évasion × évasion de la comptétence de F ÷ 100)
Objet
Taux de succès = 100
Quand l'état de B inclut "aucune évasion permise"
Taux de succès = 100
Quand les dégâts sont négatifs (rétablissement)
Taux de succès = 100

Fuite réussie

Fuite réussie = 50 × l'agilité moyenne de la partie ÷ l'agilité moyenne du monstre de la partie


Manuel de référence RGSS

Le RGSS (Ruby Game Scripting System) utilise le Ruby, langage de script, orienté objet pour développer des jeux 2D pour la plate-forme Windows®. Le RGSS vous laisse construire entièrement vos systèmes de jeu originaux beaucoup plus facilement qu'avec d'autre langage comme le C. Le Ruby est un langage simple facile d'utilisation même pour les débutants, tout en étant un outil très performant et sophistiqué.

À Propos de ce Document

Ce document présente une sélection de sections du manuel de référence du Ruby, le strict minimum nécessaire pour utiliser le RGSS. Il a aussi été édité pour inclure des explications sur les caractéristiques propres au RGSS. Destiné aux utilisateurs du RGSS, nous avons évité les parties peu importantes pour la programmation de jeu, et avons mise à jour chaque section. Cela signifie que quelques sections ne seront pas des plus précises; comme référence de Ruby, ce n'est pas plus qu'un guide vite fait mal fait et devrait être traité comme tel.

Le langage original Ruby, comme la source de ce document, peut être trouvé sur le site officiel: http://www.ruby-lang.org/. Allez voir si vous avez besoin d'informations plus détaillées.

Aide à l'utilisateur

Enterbrain ne fournira aucune aide à l'utilisateur pour la création de jeu avec l'éditeur de script et tout autres problèmes pouvant survenir lors de la création du jeu. De plus, ni Enterbrain ni Yukihiro Matsumoto assumerons la responsabilité de fournir une aide sur le Ruby. Soyez sur d'avoir une bonne compréhension des fonctions RGSS avant d'éditer un script.

Soyez un programmeur responsable--Soyez sure de lire ces pages, le site officiel du Ruby, et tout autres informations et sites d'aide, et ressources similaires, avant de contacter un administrateur de site pour de l'assistance.

Contenu

  • Caractéristiques du RGSS
  • Syntaxe du Ruby
    • La Syntaxe et les Expressions
    • Les Variables et les Constantes
    • Ecritures de Valeurs
    • Les Opérateurs
    • Les structures de Contrôle
    • Les appels de Méthode
    • Les définitions de Classe et de Méthode
  • Librairie standard
    • Fonctions Intégrées
    • Variables Intégrées
    • Classes Intégrées
    • Modules Intégrés
    • Classes d'Exceptions(Gestion des erreurs) Intégrées
  • Librairie de Jeu
    • Fonctions RGSS intégrées
    • Classes RGSS intégrées
    • Modules RGSS intégrés
    • Structure des Données avec RPGXP
  • Appendice
    • Expressions Régulières
    • Formattage de Sprintf


Caractéristiques du RGSS

  • Commencer une Partie
  • Le fichier de configuration: Game.ini
  • RGSS-RTP
    • Données d'installation
  • Archives Encryptées
  • Autre
    • Jeu de caractères
    • Mode "Fluide"
    • Propriétés

Commencer une Partie

Game folder

Normalement, vous lancez le RGSS, en double cliquant sur l'icone du fichier de jeu, Game.exe (ou Game si l'option de Windows "Cacher les extensions pour les types de fichiers connus" est activée). Le dossier qui contient ce fichier est appelé le game folder(Dossier de Jeu).

Les jeux en cours de création peuvent être démarré en seléctionnant [Tester le Projet] depuis le menu ou [Tester le Combat] depuis la base de données des groupes de monstres(troupes). Dans les 2 cas, le jeu démarrera en mode Debug, et la variable Ruby intégrée $DEBUG sera définie automatiquement. Pendant le test de combat, la variable $BTEST sera aussi définie sur TRUE(vrai).

L'opération de jeu est spécifiée dans le fichier de configuration Game.ini.

Le fichier de configuration: Game.ini

Le fichier de Game.ini est automatiquement crée et mis à jour par RPGXP. Il peut aussi être éditer manuellement avec Bloc-Note ou tout autre éditeur de texte.

Exemple:

[Game]
Library=RGSS100J.dll
Scripts=Data\Scripts.rxdata
Title=RubyQuest
RTP1=Standard
RTP2=
RTP3=
Library

Le nom du fichier de DLL de RGSS. Ce fichier est habituellement installé dans le dossier system de windows.

Si une DLL spécifiée, se trouve dans le dossier de Jeu, elle sera prioritaire aux autres.

Scripts

Le fichier de données où les scripts sont stockés, spécifié par le chemin relatif au dossier de jeu.

D'habitude les scripts Ruby prennent la forme de fichiers texte avec l'extension .rb, mais le RGSS utilise un fichier propriétaire compilé. Ce fichier ne peut pas être édité autrement qu'avec l'éditeur de script d'RPGXP. Les données sont faites de plusieurs sections et sont exécuté dans l'ordre de la liste, comme ils sont affichés.

Title

Le titre du jeu, affiché dans la barre de titre du jeu.

RTP1
RTP2
RTP3

Le titre du RTP-RGSS que le jeu utilise. Si le RTP spécifié n'est pas installé, un message d'erreur sera affiché.

Si vous placez une DLL de RGSS(spécifiée par Librairy) dans le dossier du jeu sans spécifier de RTP, vous pouvez créer un jeu qui ne nécessite pas d'avoir les RTP d'installés. Cette méthode de distribution n'est pas très recommandé, mais peut être avantageuse, quand une grande majorité des ressources sont des créations personnelles.

RGSS-RTP

RTP (Run Time Package) est un mécanisme qui réduit la taille du jeu pour la distribution. RTP contient les fichiers graphique et audio standart utilisées au travers de nombreux jeu différents. Installer ces ressources comme fichier commun avant de jouer à un jeu élimine le besoin de télécharger des fichiers identiques encore et encore.

Le fichier de configuration RTP-RGSS peut utiliser les méthode suivantes depuis la librairie de jeu intégrée, pour accéder aux fichiers tant qu'ils sont dans le dossier de Jeu. Les extensions peuvent être retirées des noms de fichiers qui sont passés comme arguments pour les méthodes ci dessous--leurs types de fichier(tel que .png ou .mid) sont identifiés automatiquement.

Bitmap.new, Audio.bgm_play, Audio.bgs_play, Audio.me_play, Audio.se_play, Graphics.transition

Données d'Installation

Le RTP par défaut de RPGXP est le seul de type "Standard", mais de manière structurelle, vous pouvez utilisez plusieurs RTP à la fois. Si vous savez comment créer un installer, suivez ces étapes pour crée un RTP unique au niveau utilisateur. Cependant, utiliser des noms communs pour les titres des RTP, comme "Extension", n'est pas recommandé; Ils pourrait entrer en conflit avec les nom d'un nouveau RTP officiel à l'avenir.

Par défaut, RTP est installé dans le dossier suivant:

[CommonFilesFolder]\Enterbrain\RGSS\[RTPName]
Ici, [CommonFilesFolder] est l'emplacement du dossier de "fichiers communs", tandis que [RTPName] est le nom du RTP. Voici un exemple:
C:\Program Files\Common Files\Enterbrain\RGSS\Standard

L'installer du RTP crée une valeur chaîne, contenant le nom du RTP dans la clé de registre "HKEY_LOCAL_MACHINE\SOFTWARE\Enterbrain\RGSS\RTP" et l'utilse pour définir le chemin. Le RGSS reconnait la chaîne spécifiée dans la clé comme étant le RTP.

Archives Encryptées

Les archives encryptées rendent difficile pour les autres l'analyse et/ou la reconstruction des contenus du jeu. Normalement tout les données et fichiers graphiques (pas les fichiers audio) sont stockés dans Game.rgssad. Vous pouvez créer une archive encryptée en cochant [Protéger les Données] quand vous compressez les données du jeu.

Les fichiers de l'archive encryptée peuvent utiliser les méthodes suivantes depuis la librairie de jeu intégrée, pour accéder aux fichiers tant qu'ils se trouvent dans le dossier du jeu:

load_data, Bitmap.new, Graphics.transition

Quand il y a une archive encryptée dans le dossier du jeu, le fichier de données de scripts (normalement Data\Scripts.rxdata) défini dans la ligne de script de Game.ini sera toujours lu depuis cette archive. C'est une limitation qui évite que les fichiers de l'archive soit lu depuis un script externe à l'archive.

Due à sa nature, le format interne des archives encryptées n'est pas, et ne sera pas divulgué au public. Merci de ne pas essayer de l'analyser.

Autre

Jeu de caractères

Le RGSS utilise le jeu de caractères UTF-8. L'UTF-8 est une méthode d'encodage Unicode, un jeu de caractère qui peut afficher toutes les lettres et caractères de toutes les langues du monde.

La variable Ruby intégrée $KCODE (non inclus dans cette référence) est défini à "UTF8" par défaut. Les données de script et toutes les autres données "chaines de caractères" sont aussi en UTF-8, donc vous n'avez pas à vous inquiétez à propos de conflits d'encodage lors de la création de votre jeu.

Cependant, pour garantir une opération propre, vous ne devriez pas créer de jeu qui inclus des caractères uniquement disponible en Unicode que Windows 98 et Windows Me ne supporte pas.

Mode "Fluide"

Les jeux RGSS tourne habituellement à 20 images par seconde, mais vous pouvez cochez [Smooth Mode] dans les propriétés du jeu pour tourner à 40 fps (images par seconde). C'est pourquoi les scripts fonctionnent à un taux interne de 40 fps, quelque soit l'option [Smooth Mode]. Soyez conscient que la plupart des valeurs, comme le temps d'attente, seront gérées comme si elles avaient été doublées.

Vous pouvez changer le taux de rafraichissement avec Graphics.frame_rate.

Propriétés

Le terme "propiété" est utilisé dans l'aperçu de la Librairie de jeu. Ce n'est pas un concept dans les caractéristiques du Ruby, mais plutot un terme propre au RGSS.

Par exemple, voici comment obtenir et définir l'abscisse d'un sprite (Sprite#x):

x = sprite1.x         # obtain
sprite2.x = x + 32    # set

Dans un souci de simplicité, les méthodes qui sont définies pour obtenir(lire) et définir(écrire) via les opérateurs d'assignement de cette manière sont appelées "propriétés".


Syntaxe Ruby

  • Syntaxe et Expressions
    • Les Identifiants
    • Les Commentaires
    • Les Mots Réservés
    • Les Expressions
  • Variables et Constantes
    • Variables Globales
    • Variables d'Instance
    • Variables Locales
    • Constantes
    • Pseudo Variables
  • Ecritures de Valeurs
    • Valeurs numériques
    • Valeurs de Chaînes
      • Notation avec Antislash
      • Substitution d'Expression
    • Expressions Régulières
    • Expressions de Tableau
    • Expressions de Listes Indexées
    • Expressions d'intervals
    • Symboles
  • Opérateurs
    • Assignement
      • Auto-assignement
      • Assignement Multiple
    • Opérateur and
    • Opérateur or
    • Opérateur not
    • Opérateurs Conditionnel
  • Structures de Contrôle
    • Branchements Conditionnels
      • if
      • Variante du if
      • unless
      • Variante du unless
      • case
    • Boucles et itérations
      • while
      • Variante du while
      • until
      • Variante du until
      • for
      • break
      • next
    • Gestion d'Exceptions
      • raise
      • begin
      • Variantes du rescue
    • Fin de Méthode
      • return
  • Appels de Méthodes
    • super
    • Iterateurs
    • yield
  • Définitions de Classes et de Méthodes
    • Définition de Classe
    • Définition de Module
    • Définition de Méthode
      • Evaluation de Méthode
    • Définition de Méthode Unique
    • Définition de Méthode de Classe
    • Contrôles de Définition
      • alias


Syntaxe et Expressions

  • Les Identifiants
  • Les Commentaires
  • Les Mots Réservés
  • Les Expressions

Ruby est un langage sensible à la casse (Sensible aux Minuscules et Majuscules). À part pour quelques identifiants et écritures, l'espace et les commentaires, peuvent être placés n'importe où si besoin est. Les sauts de ligne sont traités comme des espaces seulement quand ils sont utilisés pour montrer clairement qu'une ligne continue; sinon, ils sont traités comme des délimiteurs d'instructions.

Les Identifiants

Exemple:

foobar
le_ruby_est_simple

Un identifiant en Ruby commence avec une caractère alphabétique ou un underscore (_) et se constitue de caractères alphanumérique ou d'underscores (_). Il n'y a pas de limite de longueur.

Les Commentaires

Exemple:

# ceci est une ligne de commentaire

Les chaînes commençant avec un # sont considérés comme des commentaires.

Les Mots Réservés

Les mots réservés sont:

BEGIN    class    ensure   nil      self     when
END      def      false    not      super    while
alias    defined? for      or       then     yield
and      do       if       redo     true
begin    else     in       rescue   undef
break    elsif    module   retry    unless
case     end      next     return   until

Les mots réservés ne peuvent pas être utilisés pour des noms de classes, variables ou semblables. Cependant, les mots préfixés par $ ou @ ne sont pas considérés comme réservés. De plus, ces mots peuvent être utilisés comme des noms de méthodes après un def, après une période d'appel de méthode, et dans d'autres cas où il est clair que le mot est un nom de méthode.

Les Expressions

Exemple
true
(1+2)*3
foo()
if test then ok else ng end

Le terme "expressions" comprend tout depuis les variables et écritures, aux opérateurs et structures de contrôle.

Une suite de ces expressions crée un programme Ruby. Les expressions sont séparées les unes des autres par des points-virgule, ou des retours à la ligne. Cependant, un retour à la ligne suivant un antislash n'est pas considéré comme le début d'une nouvelle expression mais comme la suite de l'expression de la ligne précédente.

Les expressions peuvent être groupées avec des parenthèses.


Variables et Constantes

  • Variables Globales
  • Variables d'Instance
  • Variables Locales
  • Constantes
  • Pseudo Variables

Le type de variable ou de constante en Ruby--les variables globales, les variables d'instance, les variables locales, et les constantes--peut être déterminé grâce au caractère initial. Normalement, une variable a un nom alphanumérique(en dehors du premier caractère), qui peut inclure un underscore, mais quelques variables intégrées par défaut, commence avec un '$' + un caractère (voir Variables Intégrées).

Les variables et les constantes pointent vers des objets spécificiés. En assignant des objets aux variables et constantes les fait simplement pointer vers de nouveaux objets; cela ne crée pas de nouvelles copies des objets.

Variables Globales

Exemple:

$foobar

Les variables commençant par un '$' sont des variables globales et peuvent être appelées depuis n'importe où dans le programme (ce qui implique quelques précautions d'utilisation). Les variables globales n'ont pas besoin de déclarations. Quand elle est appelée, la valeur d'une variable globale non initialisée est nil.

Variables d'Instance Variables

Exemple:

@foobar

Les variables commençant par un '@' sont des variables d'instance et appartiennent à des objets spécifiques. Les variables d'instances peuvent être appelées depuis n'importe quelle méthode de leur classe ou sous classe. Quand elle est appelée, la valeur d'une variable d'instance non initialisée est nil.

Variables Locales

Exemple:

foobar

Les identifiants commençant par une minuscule ou '_' sont des variables locales ou des appels de méthodes.

Selon la portée d'une variable locale (classes, modules, définitions de méthode), l'assignement initial à un identifiant commençant avec des lettres minuscules est la déclaration de la variable locale de cette portée. Appeler des identifiants non déclarés est considéré comme un appel d'une méthode sans arguments.

Constantes

Exemple:

FOOBAR

Les identifiants commençant avec une majuscule sont des constantes. La définition d'une constante( et son initialisation) dépend de son assignement; les constantes ne peuvent pas être définies avec une méthode. Accéder à une constante indéfinie lance une exception NameError.

Selon la classe ou le module dans lequel une constante est définie, la constante peut être référencées par les classes en héritage, les classes incluant les modules, et les modules. Pour appeler les constantes extérieurement, utiliser l'opérateur '::'.

class Foo
  FOO = 'FOO'
end

class Bar < Foo
  p FOO             # => "FOO"
end

p Foo::FOO          # => "FOO"

Les nomes des classes et modules sont gérés comme des constantes.

Pseudo Variables

En dehors des variables habituelles, il y a aussi des variables spéciales connues comme pseudo variables.

self

Le constituant de l'exécution de la méthode courante.

nil

L'unique instance de la classe NilClass. Signifie NUL.

true

L'unique instance de la classe TrueClass. Signifie VRAI.

false

L'unique instance de la classe FalseClass. Signifie FAUX.

La valeur d'une pseudo variable ne peut pas être changée. Assigner des valeurs aux pseudo variable retournera une erreur de syntaxe.


Ecritures de Valeurs

  • Valeurs Numériques
  • Valeurs de Chaîne
    • Utilisation de l'Antislash
    • Substitution d'Expression
  • Expressions Régulières
  • Expressions de Tableaux
  • Expressions de Liste Indexées
  • Expressions d'intervalles
  • Symboles

Les valeurs qui peuvent directement être exprimées dans un programme Ruby, comme le nombre 1 ou la chaîne "Bonjour Monde", sont appellés literals(Valeurs / Expressions).

Valeurs Numériques

123
0d123

entier

-123

entier (signé)

123.45

Nombre à virgule flottante

Les Nombres à virgule flottante commençant par un point décimal (l'équivalent de la virgule Française), comme .1, ne sont pas autorisé. Ils doivent être écris avec un zéro (0.1).

1.2e-3

Nombre à virgule flottante

0xffff

Entier héxadécimale

0b1011

Entier binaire

0377
0o377

Entier octal

Les valeurs numériques peuvent contenir un underscore. L'interprêteur Ruby ignore simplement ces underscores et ne les interprête pas. Cela peut être utile comme séparateur de milliers, pour les grandes valeurs. Cependant, placer un underscore avant ou après une valeurs, ou connecter des valeurs avec un underscore engendrera une erreur.

1_000_000_000   # => 1000000000
0xffff_ffff     # => 0xffffffff

Valeurs de Chaîne

Exemple:

"Voici une expression de chaîne\n"
'Voici une expression de chaîne'

Les expressions de chaîne(String) commencent et finissent par des guillemets ou des apostrophes.

Les expressions avec guillemets sont sujetes à l'utilisation de l'antislash et la substitution d'expression. Les chaînes avec apostrophe ne le sont pas (sauf pour \' et \\).

Des valeurs de chaînes avec un espace entre chaque seront considérées comme une seule et même chaîne.

p "foo" "bar"   # => "foobar"

Utilisation de l'AntiSlash

\t

tabulation horizontale (0x09)

\n

Saut de ligne (0x0a)

\r

Retour à la ligne (0x0d)

\f

Saut de page(0x0c)

\s

Espace Blanc (0x20)

\nnn

Caractère à valeur octale nnn (n = 0-7)

\xnn

Caractère à valeur héxadécimale nn (n = 0-9, a-f)

Substitution d'Expression

Dans les chaînes à guillemets et les expressions régulières, la forme "#{expression}" peut être étendue à la chaîne du contenu de cette expression. Si les expressions sont des variables commençant par $ ou @, les crochets autours peuvent être omis et la variable peut être exprimées comme ceci #variable. Le caractère # est interprêté littéralement si il n'est pas suivi par les caractères {, $, ou @. Pour prévenir explicitement la substitution d'expression, placer un antislash avant le #.

$ruby = "RUBY"
p "my name is #{$ruby}"     # => "my name is RUBY"
p 'my name is #{$ruby}'     # => "my name is #{$ruby}"

Expressions Régulières

Exemple:

/^Ruby le OOPL/
/Ruby/i
/mon nom est #{monnom}/

Les chaînes délimitées par des slash sont des expressions régulières, qui sont des instances de la classe Regexp.

Voir Expressions Régulières pour plus d'informations sur quels métacaractères sont interprêtés comme expressions régulières.

Le caractère suivant immédiatement le dernier slash indique une option d'expression régulière:

i

Les occurences de l'expression régulières sont insensibles à la casse.

m

Mode Run Multiple. Les sauts de ligne sont considérés comme des caractères normaux( en correspondant avec le caractère . ).

Le Ruby gère correctement les caractères multioctets (comme en Chinois et Japonais) dans les expressions régulières.

l'utilisation de l'antislash et la substitution d'expression sont utilisables pour les expressions régulières, comme pour les chaînes.

Si une expression régulière n'inclue pas une Substitution d'expression, elle renverra le même objet de type expression régulière à chaque fois qu'elle est évaluée. Si Substitution d'expression est incluse, l'expression régulière sera compilée à chaque évaluation(basée donc sur le résultat de la substitution) et un nouvel objet de type expression régulière sera crée.

Expressions de Tableau

Exemple:

[1, 2, 3]

Syntaxe:

'[' expr ',' ... ']'

Renvoie un tableau contenant le résultat de chaque expression. Les tableaux sont des instances de la classe Array // Tableau.

Les expressions de tableau génèrent un nouvel objet de type tableau chaque fois qu'elles sont évaluées.

Expressions de liste Indexées

Exemple:

{1=>2, 2=>4, 3=>6}

Syntaxe:

'{' expr '=>' expr ',' ... '}'
'{' expr ',' expr ',' ... '}'

Renvoie une nouvelle liste qui classe chaque valeur résultat pour chaque clé. Les listes sont des instances de la classe Hash.

Une liste(hash) (aussi appelée tableau associatif, ou encore dictionnaire de données) peut associer un objet d'un certain type avec un autre(qui peut aussi être d'un type différent).

Les expressions de liste génèrent une nouvelle liste chaque fois qu'elles sont évaluées.

Expressions d'intervalles (Range)

Exemple:

1 .. 20

Syntaxe:

expr1 '..' expr2
expr1 '...' expr2

Si une expression d'intervalles apparaît n'importe où sauf dans une expression de condition, renvoie l'objet de type intervalle(Range) depuis l'expression 1 à l'expression 2. Les objets d'intervalles sont des instances de la classe Range.

Les objets d'intervalles générés par l'opérateur .. incluent la dernière expression, tandis que ceux générés par l'opérateur ... ne le font pas.

Si l'ensemble des fins d'une expressions d'intervalles sont des valeurs numériques, l'expression retournera le même objet chaque fois qu'elle est évaluée. Sinon l'expression retournera un nouvel objet d'intervalles à chaque évaluation.

Symboles

Exemple:

:class
:lvar
:méthode
:$gvar
:@ivar
:+

Syntaxe:

':' identifiant
':' nom de variable
':' opérateur

Renvoie les symboles qui ont une correspondance linéaire avec des chaînes arbitraires . Les symboles sont des instances de la classe Symbole.

Les symboles sont des objets uniques qui retourne toujours le même objet à chaque évaluation.


Expressions d'opérateur

  • Assignement
    • Auto-Assignment
    • Assignement Multiple
  • and
  • or
  • not
  • Opérateurs Conditionnels

Exemple:

1+2*3/4

Quelques appels de méthode et structures de contrôle prennent la forme d'opérateurs pour faciliter la programmation. Ruby contient les opérateurs suivants:

high   ::
       []
       **
       -(unary)  +(unary)  !  ~
       *  /  %
       +  -
       << >>
       &
       |  ^
       > >=  < <=
       <=> ==  === !=  =~  !~
       &&
       ||
       ..  ...
       ?:(opérateur conditionnel)
       =(+=, -= ... )
       not
low    and or

"High" et "low" signifie le niveau de priorité des opérateurs. Par exemple, "&&" a une plus haute priorité que "||", ainsi çà sera interprêté de la manière suivante:

a && b || c   # => (a && b) || c
a || b && c   # =>  a || (b && c)

La plupart des opérateurs sont des appels de méthode d'une forme spéciale, mais certains sont construits dans le langage et ne peuvent être redéfinis.

  • Opérateurs Redéfinissables(méthodes)

    +@ et -@ représente les opérateurs unaire + et -. Cette notation est utilisée dans la définition de méthode et similaire.

    |  ^  &  <=>  ==  ===  =~  >   >=  <   <=   <<  >>
+  -  *  /    %   **   ~   +@  -@  []  []=  `

  • Opérateurs Non-Redéfinissables(Structures de contrôle)

    Les opérateurs de combinaison(c-.à.d, opérateurs d'auto-assignement, !=, et !~) ne peuvent pas être redéfinis.

    =  ?:  ..  ...  !  not  &&  and  ||  or  ::

Assignement

Exemple:

foo = bar
foo[0] = bar
foo.bar = baz

Syntaxe:

variable '=' expr
constante '=' expr
expr '['expr..']' '=' expr
expr '.' identifiant '=' expr

Les expressions d'assignement sont utilisées pour assigner des valeurs à des variables et semblables. Les assignements peuvent aussi être utilisés comme des déclarations de variables locales ou de constantes. Le coté gauche de l'expression d'assignement doit être soit :

  • une variable

    variable '=' expr

    Si il y a une variable sur la partie gauche, la valeur de l'expression est assignée à cette variable.

  • soit une référence de tableau

    expr1 '[' expr2 ... ']' '=' exprN

    Pour l'objet obtenu par l'évaluation de expr1, cette forme est convertie en un appel de méthode []= avec expr2 par exprN comme arguments.

    class C
  def initialize
    @ary = [0,1,2,3,4,5,6,7]
  end
  def [](i)
    @ary[i * 2]
  end
  def []=( i, v )
    @ary[i * 2] = v
  end
end
c = C.new
p c[3]      # converti en  c.[]( 3 ); le résultat est 6
p c[3] = 1  # converti en c.[]=(3,1); le résultat est 1

  • soit une référence d'attribut

    expr1 '.' identifiant '=' expr2

    Pour l'objet obtenu par l'évaluation de expr1, appele la méthode identifiant= avec expr2 comme argument.

    class C
  def foo
    @foo
  end
  def foo=( v )
    @foo = v
  end
end
c = C.new
c.foo = 5   # converti en c.foo=( 5 )
p c.foo     # => 5

    Les attributs peuvent être définies avec attr_accessor de la même manière:

    class C
  attr_accessor :foo
end
c = C.new
c.foo = 5   # converti en c.foo=( 5 )
p c.foo     # => 5

Auto-Assignment

Exemple:

foo += 12       # foo = foo + 12
foo *= 3        # foo = foo * 3

Syntaxe:

expr1 op= expr2     # expr1 fait partie de l'assignement de droite

op est l'un des suivants. Il peut ne pas y avoir d'espace entre l'opérateur et =.

+, -, *, /, %, **, &, |, ^, <<, >>, &&, ||

Dans le format d'assignement, la plupart des cas sont évalués comme ceci:

expr1 = expr1 op expr2

Assignement Multiple

Exemple:

foo, bar, baz = 1, 2, 3
foo, = list()
foo, *rest = list2()

Syntaxe:

expr [',' [ expr ',' ... ] ['*' [ expr ]]] = expr [, expr ... ]['*' expr ]
'*' [ expr ] = expr [, expr ... ]['*' expr ]

L'assignement multiple effectue des assignements à partir d'expressions multiples ou de tableaux. Chaque expression du côté gauche doit être assignable. S'il y a seulement une expression du côté droit, sa valeur sera convertie en tableau dont les éléments seront assignés aux expressions du côté gauche. S'il y a plus d'éléments dans le tableau que du côté gauche, les éléments supplémentaires sont ignorés. S'il y a trop peu d'éléments dans le tableau, zéro sera assigné aux éléments supplémentaires du côté gauche.

Préfixer la dernière expression du coté gauche par * assignera tout les éléments supplémentaires de cette expression comme un tableau. Si il n'y a pas d'éléments supplémentaires, un tableau vide sera assigné.

foo, bar  = [1, 2]      # foo = 1; bar = 2
foo, bar  = 1, 2        # foo = 1; bar = 2
foo, bar  = 1           # foo = 1; bar = nil
foo, bar  = 1, 2, 3     # foo = 1; bar = 2
foo       = 1, 2, 3     # foo = [1, 2, 3]
*foo      = 1, 2, 3     # foo = [1, 2, 3]
foo, *bar = 1, 2, 3     # foo = 1; bar = [2, 3]

and

Exemple:

test && set
test and set

Syntaxe:

expr '&&' expr
expr and expr

Evalue d'abord le côté gauche; Si le résultat est true, évalue le côté droit. and est identique à &&, mais a un niveau de priorité d'opérateur inférieur.

or

Exemple:

demo || die
demo or die

Syntaxe:

expr '||' expr
expr or expr

Evalue d'abord le côté gauche; Si le résultat est false, évalue le côté droit. or est identique à ||, mais a un niveau de priorité d'opérateur inférieur.

not

Exemple:

! me
not me
i != you

Syntaxe:

'!' expr
not expr

Si la valeur de l'expression est true, renvoie FALSE; et inversement.

La notation suivante est aussi possible:

expr '!=' expr          # pareil que !(expr == expr)
expr '=~' expr          # pareil que !(expr =~ expr)

Opérateurs Conditionnels

Exemple:

obj == 1 ? foo : bar

Syntaxe:

expr1 ? expr2 : expr3

Renvoie expr2 ou expr3 selon le résultat de expr1 (renvoie expr2 si expr1 est true, et expr3 si expr1 est false). C'est identique à:

if expr1 then expr2 else expr3 end


Structures de Contrôle

  • Branchement Conditionnel
    • if
    • if variante
    • unless
    • unless variante
    • case
  • Boucle
    • while
    • while variante
    • until
    • until variante
    • for
    • break
    • next
  • Gestion d'Exception
    • raise
    • begin
    • rescue variante
  • Fin de Méthode
    • return

À la différence du C, les structures de contrôle en Ruby sont des expressions qui retournent quelques valeurs.

Ruby possède quelques structure de contrôle du C et de Perl, mais aussi but also comporte une abstraction de boucle appelée itérateurs. Les Itérateurs sont des structures de contrôle de boucle définies par l'utilisateur.

Branchement Conditionnel

if

Exemples:

if age >= 12 then
  print "tarif adulte\n"
else
  print "tarif enfant\n"
end
gender = if foo.gender == "masculin" then "masculin" else "féminin" end

Syntaxe:

if expr [then]
  expr ...
[elsif expr [then]
  expr ... ]
...
[else
  expr ... ]
end

Si une expression conditionnel est évaluée comme vraie, évalue l'expression commençant par then. Si l'expression de if est fausse, évalue la condition de elsif. Des clauses multiples de elsif peuvent être spécifiées; quand tout les expressions de if ou elsif sont fausses, l'expression else, si il y a, est évaluée.

if renvoie la valeur de la dernière expressions évaluée dans la clause d'expression conditionnel (ou la clause else). Si il n'y a pas de clause else et pas d'expressions conditionnel en effet, renvoie nil.

Les valeurs false et nil sont évaluées comme fausses; tout le reste, inclue zéro et les chaînes vides, est évalué comme vrai.

Noter que le Ruby utilise elsif après if, mais pas else if ni elif.

if variante

Exemple:

print "debug\n" if $DEBUG

Syntaxe:

expr if expr

Evalue et renvoie le résultat de l'expression sur la gauche si la condition sur la droite est remplie, si la condition n'est pas en effet, renvoie nil.

unless

Exemple:

unless bebe?
  donner_viande
else
  donner_lait
end

Syntaxe:

unless expr [then]
  expr ...
[else
  expr ... ]
end

unless(à moins que) est le contraire de if; Si la condition est fausse, évalue l'expression commençant par then. elsif ne peut pas être spécifié avec unless.

unless variante

Exemple:

print "stop\n" unless valide(mdp)

Syntaxe:

expr unless expr

Evalue et renvoie le résultat de l'expression de gauche si la condition sur la droite est fausse. Si la condition n'est pas en effet, renvoie nil.

case

Exemple:

case $age
when 0 .. 2
  "bébé"
when 3 .. 6
  "petit enfant"
when 7 .. 12
  "enfant"
when 13 .. 18
  "adolescent"
else
  "adulte"
end

Syntaxe:

case expr
[when expr [, expr] ... [then]
  expr ..]..
[else
  expr ..]
end

Les expressions de case exécute un branchement pour une seule expression grâce à une correspondance. Les comparaisons des valeurs spécifiées dans une clause when avec le résultat évalué de la première expression sont réalisées par l'opérateur ===. Quand la valeur correspond, évalue le contenu de la clause when.

case renvoie le résultat de la dernière expression évaluée dans une clause conditionnelle when (ou else). Si aucune condition n'est en effet, renvoie nil.

Boucle

while

Exemple:

ary = [0,2,4,8,16,32,64,128,256,512,1024]
i = 0
while i < ary.length
  print ary[i]
  i += 1
end

Syntaxe:

while expr [do]
   ...
end

Exécute le contenu d'une expression tant que expr reste vraie.

while renvoie nil. Alternativement, la valeur de renvoi du while peut aussi être la valeur d'un argument passé à un break.

while variante

Exemple:

sleep(60) while io_not_ready?

Syntaxe:

expr while expr

Exécute de manière répétée l'expression sur la gauche tant que l'expression sur la droite est vraie. Si l'expression sur la gauche est begin, le while l' évalue en premier avant de boucler.

La variante du while renvoie nil. Alternativement, la valeur de renvoi de la variante du while peut aussi être la valeur d'un argument passé à un break.

until

Exemple:

until f.eof?
  print f.gets
end

Syntaxe:

until expr [do]
   ...
end

Exécute de manière répétée l'expression jusqu'à ce que celle ci soit vraie.

until renvoie nil. Alternativement, la valeur de renvoi du until peut aussi être la valeur d'un argument passé à un break.

until variante

Exemple:

print(f.gets) until f.eof?

Syntaxe:

expr until expr

Exécute de manière répétée l'expression sur la gauche jusqu'à ce que l'expression sur la droite soit vraie. Si l'expression sur la gauche est begin, le until l' évalue en premier avant de boucler.

La variante du until renvoie nil. Alternativement, la valeur de renvoi de la variante du until peut aussi être la valeur d'un argument passé à un break.

for

Exemple:

for i in [1, 2, 3]
  print i*2, "\n"
end

Syntaxe:

for lhs ...  in expr [do]
  expr ..
end

Exécute de manière répétée les contenus de chaque objet évalué. Approximativement identique à :

(expr).each '{' '|' lhs..'|' expr .. '}'

Ce n'est seulement qu'approximatif car pendant que les blocs définies par do ... end ou par { } introduisent un nouveau domaine de bloc pour les variables locales, for n'a aucun effet sur le domaine des variables locales.

for renvoie la valeur de renvoi de la méthode each pour les objets spécifiés dans in.

break

Exemple:

i = 0
while i < 3
  print i, "\n"
  break
end

Syntaxe:

break [expr]

break quitte une boucle. Une "boucle" est une des suivantes:

  • while
  • until
  • for
  • un itérateur

À la différence du C, break peut seulement quitter des boucles. Il ne quitte pas un case.

for ou un itérateur qui ont été quittés par un break renvoie nil. Cependant, si un argument est spécifié, la valeur de renvoi de cette boucle deviendra cet argument.

next

Exemple:

str.each_line do |line|
  next if line.empty?
  print line
end

Syntaxe:

next [expr]

next saute à la prochaine itération d'une boucle. Dans un itérateur, next est une sortie pour un appel de yield.

Un yield qui a été quitté avec un next renvoie nil. Cependant, si un argument est spécifié, la valeur de renvoi du yield deviendra cet argument.

Gestion d'Exception

raise

Exemples:

raise
raise "tu as perdu"
raise SyntaxError.new("syntaxe invalide")
raise SyntaxError, "Syntaxe invalide"

Syntaxe:

raise
raise message
raise exception
raise error_type, message

Lance une exception. Dans le premier format, lance encore la dernière exception. Dans le deuxième format, avec une chaîne donnée en argument, lance une exception de RuntimeError avec la chaîne donnée comme message. Dans le troisième format, lance l'exception si l'argument est un objet d'exception. Dans le dernier format, lance l'exception indiquée dans le premier argument avec le message donné dans le deuxième argument.

Des exceptions jetées peuvent être emprisonnées avec une clause rescue dans begin.

raise n'est pas un mot réservé en Ruby, mais plutôt une fonction pré-intégrée.

begin

Exemple:

begin
  do_something
rescue
  recover
ensure
  must_do
end

Syntaxe:

begin
  expr ..
[rescue [error_type,..] [then]
  expr ..]..
[ensure
  expr ..]
end

Si une exception est lancée pendant qu'un begin est en train d'être exécutée, une clause rescue peut attraper l'exception; des clauses multiples peuvent être spécifiée. Si une clause rescue avec une un type d'exception correspondant existe, elle est exécutée. L'exception lancée peut être référéncée avec la variable pré-intégrée $!.

Quand error_type est omis, cela attrape toutes les exceptions des sous classes de StandardError, dont la plupart des exceptions pré-intégrées en Ruby font parti. Voir Classes d'exception Pré-Intrégrées.

Dans les clauses rescue, error_type est évalué de la même façon qu'un argument. Si aucune valeur ne correspond, la clause sera exécutée. Si la valeur de error_type n'est pas une classe ou un module, rescue lance une exception TypeError.

Si il y a une clause ensure, son contenu sera toujours évalué immédiatement avant qu'une expression begin ne quitte.

begin renvoie le résultat de l'argument final évalué dans son contenu ou dans la clause rescue.

rescue variante

Exemple:

File.open("fichier") rescue print "Impossible d'ouvrir\n"

Syntaxe:

expr1 rescue expr2

Quand une exception est lancée dans la première expression, évalue la seconde expression. Vous ne pouvez pas spécifier la(les) classes d'exception à être attrapées; en d'autres mots, vous pouvez seulement attraper les sous classes de la classe d'exception StandardError.

Les expressions associées avec la variante de rescue renvoie expr1 si aucune exception n'est lancée et expr2 si une exception est lancée.

Fin de Méthode

return

Exemple:

return
return 12
return 1,2,3

Syntaxe:

return [expr[',' expr ... ]]

Quitte la méthode avec une valeur de renvoi. Si deux expressions ou plus sont fournies, la valeur de renvoi de la méthode consistera en un tableau contenant ces valeurs. Si l'expression est omise, la valeur de renvoi sera nil.


Appels de Méthode

  • super
  • Itérateurs
  • yield

Exemple:

foo.bar()
foo.bar
bar()
print "hello world\n"
print

Syntaxe:

[expr '.'] identifiant ['(' expr ... ['*' [expr]] ')']

Les appels Méthode invoque la méthode du récevant(la valeur de l'expression à gauche du point). Si aucun recevant n'est spécifié, appelle la méthode pour lui-même.

Les noms de méthodes peuvent être des identifiants normaux ou des identifiants suivis par le caractère ? ou !. La convention veut que le ? est utilisé pour les prédicats(méthodes retournant les valeurs true/false (vrai/faux)), tandis que le ! est utilisé pour les méthodes qui sont plus "destructives" que leurs contrepartie sans ! (tr versus tr!).

Si le dernier argument est précédé par *, la valeur de cette expression est étendue aux arguments suivants:

foo(*[1,2,3])   # same as foo(1,2,3)

super

Exemple:

super
super(1,2,3)

Syntaxe:

super
super(expr , ... )

super appelle la méthode qui a été redéfinie par l'actuelle( la méthode parente donc). Si les parenthèses et les arguments sont omis, les arguments de la méthode actuelle seront passés comme si ils avaient été indiqués. Pour appeler la méthode parente sans passer aucun argument, indiquer des parenthèses vide comme ceci : super().

class Foo
  def foo(arg=nil)
    p arg
  end
end

class Bar < Foo
  def foo(arg)
    super(5)       # appelée avec 5 comme argument
    super(arg)     # appelée avec 5 comme argument
    super          # appelée avec 5 comme argument; abbréviation de super(arg)
    arg = 1
    super          # appelée avec 1 comme argument; abbreviation de super(arg)
    super()        # appelée sans argument
  end
end
Bar.new.foo 5

Itérateurs

Exemple:

[1,2,3].each do |i| print i*2, "\n" end
[1,2,3].each {|i| print i*2, "\n" }

Syntaxe:

method(arg1, arg2, ...)  do ['|' expr ... '|'] expr ... end
method(arg1, arg2, ...) '{' ['|' expr ... '|'] expr ... '}'

Les itérateurs sont des méthodes utilisées pour abstraire des structures de contrôles (en particuliers les boucles). Si vous appelez une méthode qui est suivie par un segment de code entouré par do ... end ou par { ... } (appelé un bloc), la méthode peut évaluer le bloc selon celui ci. Les méthodes qui appellent ces genres de blocs sont appelés des itérateurs. Un bloc appel depuis l'itérateur utilise the method can evaluate the block from within. Methods that call these kinds of blocks are called iterators. Les appels de bloc depuis les itérateurs utilisent yield. La valeur passée à yield est assignée à la variable entre les deux tubes(pipes)( | ).

{ ... } relie plus fortement qu'un bloc do ... end.

foobar a, b do .. end   # foobar est appelé comme étant un itérateur
foobar a, b { .. }      # b est appelé comme étant un itérateur

Les variables locales qui sont les premières assignées(déclarée) dans un bloc ne sont seulement valides que pour ce bloc.

foobar {
  i = 20                # La variable locale 'i' est déclarée
   ...
}
                        # 'i' est undéfine ici
foobar a, b do
  i = 11                # la déclaration d'une variable 'i' totalement différente
   ...
end

Comme beaucoup de méthodes, la valeur de retour d'un itérateur est nul si il a été interrompu par un break depuis un bloc. Quand break a un argument, cette valeur deviendra la valeur de retour de l'itérateur.

yield

Exemple:

yield donnée

Syntaxe:

yield '(' [ expr [',' expr ... ]] ')'
yield [ expr [',' expr ... ]]

Passe le(s) argument(s) comme argument(s) du bloc et évalue ce bloc. yield est utilisé avec La définition de Méthode pour définir des itérateurs.

def foo
  yield(1,2)
end

foo {|a,b| p [a,b]}

L'assignment des argument(s) du bloc suit les règles de Assignement multiple. Si aucun bloc n'est fourni à la méthode qui exécute le yield(c'est à dire que ce n'est pas un itérateur), lance une exception LocalJumpError.

yield renvoie le résultat de la dernière expression évaluée du bloc. Si l'exécution du bloc a été interrompue par next, renvoie nil. Quand next a un argument, cette valeur deviendra la valeur de retour du yield.


Définitions de Classe et Méthode

  • Définitions de Classe
  • Définitions de Module
  • Définitions de Méthode
    • Evaluation de Méthode
  • Définitions de Méthode Singleton
  • Définitions de Méthode de Classe
  • Opérations de Définition
    • alias

Définitions de Classe

Exemple:

class Foo < Super
  def test
     :
  end
     :
end

Syntaxe:

class identifier ['<' superclass ]
  expr ..
end

Définis une classe. Les noms de Classe sont des identifiants commençant par une majuscule.

Les définitions de classe assigne une classe à une constante spécifiée par un identifiant(en Ruby, les classes et objets ensembles sont une instance de la classe Class.)

Lorsque une classe est déjà définie, écrire une définition avec le même nom de classe ajoutera le contenu de cette définition à l'existante.

class Foo < Array
  def foo
  end
end

class Foo
  def bar
  end
end

Dans une définition de classe, self est elle-même une classe; sinon, il n'y a aucune différence avec une définition de haut niveau. Les définitions de classe peuvent obtenir arbitrairement des expressions qui seront exécutées lorsque la classe est définie.

Les définitions de classe peuvent fonctionner comme des nids. Dans l'exemple suivant, il n'y a absolument aucun rapport fonctionnel (tel que l'héritage) entre la classe externe Foo et la la classe interne Bar, autre que le fait que la constante Bar est la constante intérieure Foo::Bar de Foo. Les nids de classe groupent ensemble les classes sémantiquement reliées dans la classe ou le module externe, et peuvent être employés pour exprimer un rapport d'inclusion.

class Foo
  class Bar
  end
end

Les définitions de classe renvoient le résultat de la dernière expression évaluée. Si cette expression ne renvoie pas une valeur, la définition de classe renvoie nil.

Définitions de Module

Exemple:

module Foo
  def test
     :
  end
     :
end

Syntaxe:

module identifier
  expr ..
end

Définit un module. Les noms de module sont des identifiants commençant par une lettre majuscule.

Les définitions de module assignent un module à une constante indiquée par un identifiant. En Ruby, les classes et les objets sont ensemble une instance de la classe Class.)

Quand un module est déjà défini, l'écriture d'une définition de module avec le même nom de module s'ajoutera à la définition existante de ce module.

Les définitions de module renvoient le résultat de la dernière expression évaluée. Si cette expression ne renvoie pas une valeur, la définition de module renvoie nil.

Définitions de méthode

Exemple:

def fact(n)
  if n == 1 then
     1
  else
    n * fact(n-1)
  end
end

Syntaxe:

def methodname ['(' [arg ['=' default]] ... [',' '*' arg] ')']
  expr ..
[rescue [error_type,..] [then]
  expr ..]..
[ensure
  expr ..]
end

Définit une méthode. En d'autres termes, définit la méthode de classe ou de module si est dans la définition de cette classe ou de ce module. Si d'un niveau supérieur, définit les méthodes qui peuvent être appelée de n'importe où. Ce genre de méthode peut être employé comme des fonctions le sont dans d'autres langages de script.

Les noms de méthode peuvent être des identifiants normaux ou des opérateurs redéfinissables (==, +, -, et autres; Voir Expressions d'opérateur).

Quand une expression par défaut a été fournie à un argument factice, çà devient la valeur par défaut quand l'argument réel est omis par un appel de méthode. L'expression de défaut est évaluée au moment de l'appel et dans le contexte de la définition de méthode.

Quand le dernier argument factice a une * juste avant lui, tous les arguments réels restants sont stockés dans cet argument comme un tableau.

Exemple:

# méthode sans arguments. end omis ci dessous
def foo
end

# méthode avec arguments
def foo(arg, arg2)

# méthode avec argument par défaut
def foo(arg = nil)

# avec tout
def foo(arg, arg2, arg3 = nil, *rest)

# format opérateur
def ==(autre)
def +(autre)
def *(autre)

Pour la définition de méthode, chaque type d'argument factice peut seulement être indiqué selon l'ordre suivant. N'importe lequel de ces types d'arguments peut être omis.

  • arguments sans expressions par défaut (peut indiquer des arguments multiples)
  • arguments avec des expressions par défaut (peut indiquer des arguments multiples)
  • arguments avec * (peut indiquer seulement un)

Ces définitions de méthode ont des formats spéciaux:

# unaire plus/minus
def +@
def -@

# Subsistution d'élément
def foo=(value)             # obj.foo = value

# [] and []=
def [](key)                 # obj[key]
def []=(key, value)         # obj[key] = value
def []=(key, key2, value)   # obj[key, key2] = value

En outre, une expression begin comme aussi bien un rescue et/ou des clauses ensure peuvent être indiquées pour emprisonner des exceptions en exécutant une méthode.

La définition de méthode renvoie nil.

Evaluation de Méthode

Quand une méthode est appelée, ses expressions sont évaluées dans l'ordre suivant:

  • Expressions par défaut dans les arguments (lorsque spécifiées)
  • La méthode elle-même
  • Le rescue de la méthode ou les clauses else(lorsque spécifiées), selon si une exception a été lancée
  • La clause ensure(lorsque spécifiées)

Tout est évalué dans le contexte de la méthode, y compris l'expression par défaut de l'argument.

La valeur de retour de la méthode est la valeur passée à return. Quand le retour n' est pas appelé, renvoie la valeur de la dernière expression évaluée dans la méthode, avant qu'aucune clause ensure ne soit exécutée.

Des méthodes ne peuvent pas être appelées avant qu'elles ne soient définies. Par exemple:

foo
def foo
  print "foo\n"
end

Appeler une méthode non définie lance une exception NameError.

Définition de méthode Singleton

Exemple:

def foo.test
  print "this is foo\n"
end

Syntaxe:

def expr '.' identifier ['(' [ argument ['=' default]] ... [',' '*' argument ]')']
  expr ..
[rescue [error_type,..] [then]
  expr ..]..
[else
  expr ..]
[ensure
  expr ..]
end

Une méthode de singleton appartient à un certain objet et pas à une classe. Des définitions de méthode Singleton peuvent être nichées.

Les méthodes de singleton d'une classe se reportent à ses sous-classes. En d'autres termes, elles agissent comme les méthodes de classe dans d'autres langages orientés objet.

Les définitions de méthode Singleton renvoie nil.

Définitions de Méthode de Classe

En Ruby, les méthodes de classe sont les méthodes spécifiques à une classe. Les classes sont également des objets, ainsi ces méthodes spécifiques peuvent être définies comme des objets réguliers.

Par conséquent, quand une méthode dans un objet de classe est définie d'une manière quelconque, cet objet devient une méthode de classe. Spécifiquement, ces méthodes peuvent être définies de la façon suivante (de même pour des modules):

# méthode singleton
class Hoge
  def Hoge.foo
  end
end

# peut être utilisé en dehors de la définition de classe, aussi
def Hoge.bar
end

# même si le nom de la classe change, vous n'avez pas à changer la méthode
class Hoge
  def self.baz
  end
end

Opérations de Définition

alias

Exemple:

alias foo bar
alias :foo :bar

Syntaxe:

alias newmethod oldmethod

Assigne un nom d'emprunt à une méthode ou à une variable globale. Spécifie un identifiant ou un Symbole comme nom de méthode (des expressions comme obj.method ne sont pas autorisées). L'argument de l'alias n'exécute aucune évaluation des appels de méthode ou analogues.

Une méthode "aliasée" reporte cette définition de méthode, la maintenant même si la méthode originale est redéfinie. Ceci peut être employé quand vous voulez changer les actions d'une méthode donnée, emploiyer alors le résultat de la méthode originale dans la méthode redéfinie.

# Définition de la méthode "foo"
def foo
  "foo"
end

# Définition de l'alias (rétraction de la définition de méthode)
alias :_orig_foo :foo

# "foo" redéfinie (utilisation de l'ancienne définition)
def foo
  _orig_foo * 2
end

p foo  # => "foofoo"

alias renvoie nil.


Librairie Standard

  • Fonctions Intégrées
  • Variables Intégrées
  • Classes Intégrées
    • Object // Classe Objet
      • Array // Classe Tableau
      • Exception // Classe Exception (Gestion des erreurs)
      • FalseClass // Classe FALSE (faux)
      • Hash // Classe Liste
      • IO // Classe Input-Output (Flux d'entrée/sortie)
        • File // Classe Fichier
      • MatchData // Classe Concordance
      • Module // Classe Module
        • Class // Classe
      • NilClass // Classe Nul
      • Numeric // Classe Numérique
        • Integer // Classe Entier
          • Bignum // Classe Entier Long
          • Fixnum // Classe Entier Fixe
        • Float // Classe Flottants( à virgule flottante )
      • Proc // Classe Processus
      • Range // Classe Portée
      • Regexp // Classe Expression Régulière
      • String // Classe Chaine de caractère
      • Symbol // Classe Symbole
      • Time // Classe Temps
      • TrueClass // Classe TRUE (vrai)
  • Modules Intégrés
    • Comparable
    • Enumerable
    • Errno
    • FileTest
    • GC
    • Kernel
    • Marshal
    • Math
  • Classes d'Exception Intégrées


Fonctions Intégrées

Uniquement parlant, il n'y a pas de fonctions en Ruby, mais depuis que les méthodes définies dans le module Kernel peuvent être appellées de n'importe où, elles peuvent être utilisées comme les fonctions le sont dans d'autres langages. Considérez avec attention les répercussions de redéfinir ces méthodes.

block_given?

Renvoie true(vrai) quand la méthode a été pourvue d'un bloc; sinon, renvoie false(faux). Voir Iterator(itérateur) pour plus de détails.

catch(tag) {|tag| .... }

Exécute le bloc et retourne sa valeur. Si un throw avec le même nom que tag prend place pendant que le bloc s'éxecute, la valeur renvoyée sera le second argument de ce throw.

break ne peut pas interrompre toutes les boucles imbriquées à la fois. Utilisez catch dans ces circomstances.

catch(:loop1) {
  for i in 1..2
    for j in 1..2
      throw :loop1, j
    end
  end
}

eval(expr)

Evalue la chaine expr comme un programme Ruby et retourne son résultat.

exit

Quitte un programme Ruby en cours d'éxecution.

exit lance l'exception SystemExit pour terminer le programme, donc, cela peut être piégée par une clause rescue si nécessaire.

loop { ... }

Evalue le bloc comme une boucle infinie (jusqu'à être explicitement terminée).

open(file[, mode])
open(file[, mode]) {|io| ... }

Ouvre file et retourne un objet de type File . mode spécifie une des chaines suivantes. Quand mode est omis, la valeur par défaut est "r".

  • "r": Ouvre le fichier en mode lecture.
  • "w": Ouvre le fichier en mode écriture. Si le fichier existe déjà quand file est ouvert, le contenu précédent du fichier sera effacé.
  • "a": Ouvre le fichier en mode écriture. Le flux de sortie sera toujours ajouté à la fin du fichier.

Utiliser "+" ouvre le fichier en mode Lecture-Ecriture (RDWR):

  • "r+": Définie la position de lecture-écriture au début du fichier.
  • "w+": Identique à "r+", mais si le fichier existe déjà quand file est ouvert, le contenu précédent du fichier sera effacé.
  • "a+": Identique à "r+", mais si le fichier existe déjà quand file est ouvert, la position de lecture-écriture sera définie à la fin du fichier.

Le drapeau "b" peut aussi être ajouter à n'importe laquelles de ces options (dans le format "r+b") pour ouvrir le fichier en mode binaire.

Quand open est appelé avec un bloc, il ouvre le fichier, éxecute le bloc puis ferme le fichier quand l'éxecution est terminée. Dans ce cas, ca renvoie le résultat du bloc. Comme suit:

open(path, mode) do |f|
   ...
end

# almost identical to the above
f = open(path, mode)
begin
   ...
ensure
  f.close
end

p(obj, [obj2, ...])

Produit obj dans un format humainement lisible. Identique au code suivant (Voir Object#inspect):

print obj.inspect, "\n", obj2.inspect, "\n", ...

En Ruby, la destination de flux de sortie est habituellement la sortie standart. Cette méthode a été redéfinie dans le RGSS pour produire le flux dans une boite de message Windows.

Renvoie nil.

print(arg[, ...])

Affiche les arguments dans l'ordre. Si un bojet non-chaine est fourni comme argument, il sera converti en chaine avec to_s et affiché. Cependant, si l'argument est nul, cela affichera la chaine "nil".

En Ruby, la destination de flux de sortie est habituellement la sortie standart. Cette méthode a été redéfinie dans le RGSS pour produire le flux dans une boite de message Windows.

Renvoie nil.

raise
raise(message)
raise(exception)
raise(error_type, message)

Lance une exception. Voir raise pour les détails.

rand(max)

Créer un entier aléatoire dans la portée 0 ≤ entier< max. Appelle automatiquement srand si cela n'as pas déjà été fait.

Si max est nul ou égal à 0, on utilise Float pour retourner un nombre aléatoire dans la portée 0 ≤ nombre réel < 1.

sprintf(format[, arg[, ...]])

Interprête format de chaine commele ferait le sprintf en C, renvoyant une chaine formattée selon les arguments.

Voir Formattage de sprintf pour les détails.

srand([seed])

Définie la racine du nombre aléatoire rand et retourne l'ancienne valeur initiale. Si seed est omis,utilise le temps actuel(ou une valeur similaire) comme racine.

throw(tag[, value])

S'Echape(aux travers des méthodes) vers la fin d'un bloc catch avec la même valeur tag. Si il n'y a pas de catch avec la même valeur tag, la tache se termine avec une NameError. value sera la valeur de retour du catch.


Variables Intégrées

Les variables intégrées sont un type de variable globale, mais leurs valeurs ne sont pas seulement utilisées globalement.

Ce qui suit sont des exemples de variables intégrées séparées selon leurs portées.

Portée Locale

$~

L'information à propos de la dernière concordance dans la portée actuelle (Objet de type MatchData). Définir cette variable change les valeurs de $&, $1 ... $9, etc.

Identique à Regexp.last_match.

$&

La chaine concordant avec le dernier modèle défini dans cette portée, ou nul si la concordance du dernier modèle a échoué.

Identique à Regexp.last_match[0]

$1
$2
$3 ...

Contients les sous modèles issus des ensembles de parenthèses correspondants dans la dernière concordance de modèle réussie, ou nul si la concordance a échoué.

Identique à Regexp.last_match[1], Regexp.last_match[2], ...

Portée Globale

$!

Information sur la dernière exception. Défini avec raise.

$DEBUG

Le drapeau de mode de débuggage. Le RGSS défini ce drapeau durant les phases de test.

Il y a quelques différences de comportements des exception, etc., avec celui du Ruby, mais vous n'avez pas besoin de le savoir dans le RGSS.


Classes Intégrées

  • Object // Classe Objet
    • Array // Classe Tableau
    • Exception // Classe d'Exception(Gestion des Erreurs)
    • FalseClass // Classe FALSE(faux)
    • Hash // Classe Liste
    • IO // Classe Input-Output(Entrées-Sorties)
      • File // Classe Fichier
    • MatchData // Classe Concordance
    • Module // Classe Module
      • Class // Classe
    • NilClass // Classe NIL(nul)
    • Numeric // Classe Numérique
      • Integer // Classe Entier
        • Bignum // Classe Entier long
        • Fixnum // Classe Entier Fixe
      • Float // Classe Flottant, (virgule flottante)
    • Proc // Classe Processus
    • Range // Classe Portée. (un point à un autre)
    • Regexp // Classe Expressions Régulières
    • String // Classe Chaine de caractère
    • Symbol // Classe Symbole
    • Time // Classe Temps
    • TrueClass // Classe TRUE(vrai)


Object

La classe parente à toutes les classes. Définie le comportement général des objets.

Modules Inclus

  • Kernel

Méthodes

self == other

Vérifie si self et other sont égaux. Par défaut, à le même effet que equal?.

Cette méthode doit être redéfinie avec le respecte des propriétés de chaque classe.

self === other

Cette méthode est principalement utilisée pour la comparaison dans l'utilisation de case. Par défaut, agît comme Object#==, mais le comportement peut être redéfinie dans une sous classe pour implémenter une vérification spécifique à cette sous classe.

class

Renvoie la classe recevante.

clone
dup

Crée une copy d'un objet. clone renvoie un clone complet de l'objet original, inluant son état de gel, et ses méthodes singleton, tandis que dup duplique seulement le contenu de l'objet.

Noter que clone et dup réalise seulement une copie superficielle. Ils dupliquent l'objet lui-même, mais rien de ce qui pointe vers lui(comme les éléments d'un tableau).

Pour les objets dupliqués,

obj.equal?(obj.clone)

généralement ne bloque pas, tandis que

obj == obj.clone

est correct dans la plupart des cas.

Tenter de dupliquer true, false, nil, objets Numérique, objets Symbole, et semblables renvoie des exceptions TypeError.

equal?(other)

Quand other est self, renvoie true. Cette méthode ne doit pas être redéfinie.

freeze

Empêche le contenu de l'objet d'être modifié. Modifier un objet gelé lance une exception TypeError.

frozen?

Renvoie true quand le contenu de l'objet est protégé contre les modifications.

inspect

Renvoie l'objet dans une chaîne d'un format humainement lisible.

instance_of?(klass)

Renvoie true quand self est une instance directe de la classe klass. Lorsque obj.instance_of?(c) est true, obj.kind_of?(c) est toujours vrai.

is_a?(mod)
kind_of?(mod)

Renvoie vrai lorsque self est la classe mod (ou une de ses sous classes). ou une classe(ou une de ses sous classes) qui inclue le module mod.

module M
end
class C < Object
  include M
end
class S < C
end

obj = S.new
p obj.is_a? S       # true
p obj.is_a? M       # true
p obj.is_a? C       # true
p obj.is_a? Object  # true
p obj.is_a? Hash    # false
nil?

Vérifie si le recevant est nul.

object_id

Renvoie un entier unique pour chaque objet. Les entiers sont assignés aux objets arbitrairement.

to_ary

Appelée en interne, quand une conversion implicite d'un objet en tableau est nécessaire.

to_hash

Appelée en interne, quand une conversion implicite d'un objet en liste indexée est nécessaire.

to_int

Appelée en interne, quand une conversion implicite d'un objet en entier est nécessaire.

to_s

Renvoie la représentation en chaîne de l'objet. Cette méthode est utilisé en interne par print et sprintf.

Quand des objets non chaîne sont passés en arguments dans print et sprintf, utilise cette méthode pour convertir les objets en chaînes.

to_str

Appelée quand une conversion implicite d'un objet en chaîne est nécessaire.

Méthode Privée

initialize

La méthode d'initialisation pour les classes définies par l'utilisateur. Cette méthode est appelée lors d'un Class#new pour initialiser un objet nouvellement crée. Le comportement par défaut est de ne rien faire; est assumé le fait que cette méthode sera redéfinie dans une sous classe si besoin est. L'argument donné Class#new sera passé initialize comme tel.


Array // Tableau

La classe Tableau. Les éléments d'un tableau sont arbitrairement des objets Ruby. Voir Expressions de tableau pour plus d'informations.

Classe Parente

  • Object

Modules Inclus

  • Enumerable

Méthodes

self[nth]

Récupère l'élément nth d'un tableau. L'index commence à zéro. Si la valeur nth est négative, compte à l'envers à partir de la fin du tableau ( l'index du dernier élément est -1). Si l'élément nth n'éxiste pas dans le tableau, retourne nil.

self[start, length]

Retourne un tableau contenant length éléments depuis start. Si la valeur de start est négatice, compte à l'envers depuis la fin du tableau ( l'index du dernier élément est -1). Si length est plus long que la longueur du tableau depuis start, la longueur en surplus est ignorée. Retourne nil si la longueur est négative.

self[nth]=val

Change l'élément nth du tableau par la valeur val. Si nth est hors de la portée du tableau, le tableau sera automatiquement étendu. La région étendue sera iniatilisée comme nil.

Renvoie val.

self[start, length]=val

Remplace length éléments depuis l'index start avec le contenu de val. Si val n'est pas un tableau, les éléments seront remplacés par le contenu de val.to_ary ou [val]. Renvoie val .

ary = [0, 1, 2, 3]
ary[1, 2] = ["a", "b", "c"]
p ary                        # => [0, "a", "b", "c", 3]
ary[2, 1] = 99
p ary                        # => [0, "a", 99, "c", 3]
ary[1, 0] = ["inseré"]
p ary                        # => [0, "inseré", "a", 99, "c", 3]
self + other

Renvoie un nouveau tableau avec le contenu concaténé de self et other. Si other n'est pas un tableau, on utilise la valeur de retour de other.to_ary. Si cette valeur de retour n'est pas un array, on lance un exception TypeError.

a = [1, 2]
b = [8, 9]
p a + b     # => [1, 2, 8, 9]
p a         # => [1, 2]        (pas de changement)
p b         # => [8, 9]        (pas de changment, non plus)
self - other

L'opération de soustraction d'ensemble. Renvoie un nouveau tableau contenant self sans les éléments de other.

self & other

L'opération d'intersection d'ensemble. Renvoie un nouveau tableau contenant les éléments appartenant aux 2 tableaux. Les éléments dupliqués seront enlevés.

self | other

L'opération d'union d'ensemble. Renvoie un nouveau tableau contenant tout les éléments n'appartenant qu'aux 2 tableaux. Les éléments dupliqués seront enlevés.

self <=> other

Compare chaque élément avec <=> et renvoie 1 si self est plus grand que , 0 si égal à , ou -1 si plus petit que other. Si la fin d'un des tableaux est atteinte avec chaque élément étant égaux, le plus petit tableau sera considéré comme "le moins" des 2.

self == other

Compare chaque élément avec == et renvoie TRUE(vrai) si tout les éléments sont égaux.

clear

Efface tout les éléments d'un tableau, le rendant vide. Se renvoie lui-même.

ary = [1, 2]
ary.clear
p ary     # => []
clone
dup

Renvoie un tableau avec le contenu identique à celui ciblé. clone renvoie un clone complet du tableau original, y compris l'état de gel et les méthodes de singleton, tandis que dup duplique seulement le contenu. Ni l'une ni l'autre méthode ne copie les méthodes ou les éléments eux-mêmes.

compact
compact!

compact renvoie un nouveau tableau étant self sans aucun élément nul(nil). compact! opère une mise à jour destructive; si modification il ya , renvoie self modifié, sinon retourne nil.

ary = [1, nil, 2, nil, 3, nil]
p ary.compact   # => [1, 2, 3]
p ary           # => [1, nil, 2, nil, 3, nil]
ary.compact!
p ary           # => [1, 2, 3]
p ary.compact!  # => nil
concat(other)

Ajoute(de manière destructrice) le tableau other à la fin de self. Renvoie self.

array = [1, 2]
a     = [3, 4]
array.concat a
p array          # => [1, 2, 3, 4]
p a              # => [3, 4]       # ceci ne change pas
delete(val)
delete(val) { ... }

Efface tout les éléments égaux à val (via ==). Lorsque les élément égaux à val sont trouvés, renvoie val.

Si il n'y a pas d'éléments égaux à val, renvoie nil. Cependant; si un bloc a été spécifié, il sera éxécuté et son résultat retourné.

array = [1, 2, 3, 2, 1]
p array.delete(2)       # => 2
p array                 # => [1, 3, 1]

# Si l'argument est nul et qu'il n'y a pas de bloc, il n'y a aucun moyen
# de déterminer la valeur renvoyée si elle a été effacée.
ary = [nil,nil,nil]
p ary.delete(nil)       # => nil
p ary                   # => []
p ary.delete(nil)       # => nil
delete_at(pos)

Enlève l'élément de la position spécifié et renvoie l'élément enlevé. Si pos est hors de portée, renvoie nil.

array = [0, 1, 2, 3, 4]
array.delete_at 2
p array             # => [0, 1, 3, 4]
each {|item| .... }

Exécute un bloc pour chaque élément. Renvoie self.

# 1, 2, 3 sont affichés dans l'ordre
[1, 2, 3].each do |i|
  puts i
end
each_index {|index| .... }

Exécute un bloc pour chaque index d'élément. Identique à ce qui suit:

(0 ... ary.size).each {|index| ....  }

Renvoie self.

empty?

Renvoie TRUE (vrai) si le nombre d'éléments du tableau est zéro.

include?(val)

Renvoie TRUE (vrai) si le tableau contient un élément égal à val (en utilisant ==).

index(val)

Renvoie la position du premier élément égal à val (en utilisant ==). Si aucun élément n'est trouvé, renvoie nil.

insert(nth, [val[, val2 ...]])

Insert la valeur du second (ou plus) argument(s) immédiatement après l'élément nth. Renvoie self. Défini comme ci-dessous:

class Array
  def insert( n, *vals )
    self[n, 0] = vals
    self
  end
end

ary = ["foo", "bar", "baz"]
ary.insert 2, 'a', 'b'
p ary                  # => ["foo", "bar", "a", "b", "baz"]

Si aucun argument val n'est spécifié, rien ne se passe.

length
size

Renvoie la taille(longueur) du tableau. Si le tableau est vide, renvoie zéro.

nitems

Retourne le nombre d'éléments non nuls.

pop

Enlève le dernier élément et le renvoie. Si le tableau est vide, renvoie nil.

array = [1, [2, 3], 4]
p array.pop      # => 4
p array.pop      # => [2, 3]
p array          # => [1]

p array.pop      # => 1
p array.pop      # => nil
p array          # => []
push(obj1[, obj2 ...])

Ajoute obj1, obj2 ... à la fin du tableau de l'ordre.

Renvoie self.

array = [1, 2, 3]
array.push 4
array.push [5, 6]
array.push 7, 8
p array          # => [1, 2, 3, 4, [5, 6], 7, 8]
reverse
reverse!

reverse renvoie un nouveau tableau de tout les élément dans l'ordre inverse. reverse! met à jour destructivement les éléments dans le tableau.

reverse renvoie toujours un nouveau tableau alors que reverse! renvoie self.

shift

Enlève le premier élément du tableau et le renvoie. Les éléments restant sont déplacés pour combler le vide crée. Si le tableau est vide, renvoie nil.

sort
sort!
sort {|a, b| ... }
sort! {|a, b| ... }

Tri le contenu du tableau. Si est appellé avec un bloc, çà passe les 2 arguments au bloc, et utilise le résultat pour comparer. Sans bloc, ça compare les éléments avec l'opérateur <=>. sort! met à jour destructivement les éléments dans le tableau.

sort renvoie un nouveau tableau trié, tandis que sort! renvoie toujours self (trié ou non) .

unshift(obj1[, obj2 ...])

Insert obj1, obj2 ... au début du tableau dans l'ordre.

Renvoie self.


Exception // Classe D'Exception

La classe ancêtre à toutes les exceptions.

Se référer à Classes d'Exception intégrées pour des informations sur ses sous-classes.

Classe Parente

  • Object

Méthode de Classe

Exception.new([error_message])

Crée et renvoie un nouvel objet d'exception. Une chaine de caractère indiquant un message d'erreur peut être fournie comme argument. Ce message deviendra la valeur de l'attribut message (ci-dessous) et sera affiché par le gestionnaire d'exception par défaut.

Méthodes

exception([error_message])

Renvoie self quand aucun argument n'est spécifié. Sinon, crée une copie de lui-même avec l'attribut message comme error_message(message d'erreur) et le renvoie.

Actuellement raise appelle la méthode d'exception de l'objet de type exception.

backtrace

Renvoie les informations de traçage comme un tableau de String dans les formats suivants:

  • "#{fichier source}:#{Ligne source}:in '#{dans la méthode}'"

    (Avec les méthodes)

  • "#{fichier source}:#{Ligne source}"

    (au plus haut niveau)

message

Renvoie la chaine de message d'erreur.


FalseClass // Classe FALSE (faux)

La classe FALSE. FALSE est la seule instance de la classe FALSE. FALSE, comme nil, dénote un condition fausse(FALSE), tandis que les autres objets sont vrai(TRUE).

Classe parente

  • Object

Méthodes

self & other

Normalement retourne FALSE.

self | other
self ^ other

Si other est TRUE, renvoie TRUE. si c'est FALSE, retourne FALSE.


Hash

La classe des listes indexées. Voir Expressions de Liste Indexées Pour plus d'infos....

Superclasse

  • Object

Modules inclus

  • Enumerable

Méthodes

self[key]

Renvoie la valeur se trouvant à la clé key. Si cette valeur n'est pas définie, renvoie la valeur par défaut (ou nil si la valeur par défaut n'est pas spécifiée).

self[key]=value

Affecte la valeur value à la clé key puis la renvoie.

clear

Vide le contenu de la liste et renvoie self.

clone
dup

Renvoient une nouvelle liste avec le même contenu que la liste d'origine. Si cellle-ci est verrouillée, la nouvelle liste le sera aussi si on utilise clone, pas si on utilise dup.

Renvois value.

delete(key)
delete(key) {|key| ... }

Désaffecte la valeur liée à la clé key. Renvois la valeur supprimée, ou nil si elle n'avait pas été définie.

Quand la méthode est appliquée à un block, l'évaluation et le résultat ne seront fournis que s'il n'y a aucune valeur définie pour key.

each {|key, value| ... }
each_pair {|key, value| ... }

Evalue un block avec la clé key et la valeur value comme arguments. Renvois self

each_key {|key| ... }

Même chose, en ne prenant que la clé key comme argument.

each_value {|value| ... }

Même chose, en ne prenant que la valeur value comme argument.

empty?

Renvois TRUE si la liste est vide.

has_key?(key)
include?(key)

Renvois TRUE si key est une des clés définies de la liste.

has_value?(value)

Renvois TRUE si value est une des valeurs contenues dans la liste.

index(val)

Renvois la clé corespondant à la valeur val. Si aucun résultat, renvois nil. Si plusieurs résultats, renvois l'un d'entre eux arbitrairement.

keys

Renvois un tableau de toutes les clés.

length
size

Renvois le nombre d'élément de la liste.

values

Renvois un tableau des valeurs de la liste.


IO

La classe IO permet les fonctions d'entrées et de sorties.

Superclasse

  • Object

Modules inclus

  • Enumerable

Méthodes

binmode

Convertit le flux en mode binaire. Le seul moyen de le rétablir en mode normal est de le réouvrir.

Renvois self.

close

Ferme le port d'entrée/sortie. Une exception Errno::EXXX est affichée en cas d'échec.

Renvois nil.

each_line {|line| ... }

Lit le port d'entrée/sortie ligne par ligne

Renvois self.

each_byte {|ch| ... }

Lit de port d'entrée/sortie octet par octet.

Renvois self.

eof?

Renvois TRUE si le flux atteint la fin du fichier.

pos

Renvois la position actuelle du pointeur de fichier.

pos=n

Place le pointeur de fichier à la position indiquée.

read([length])

Lit length octets et envois une chaîne. Si length est omis, le fichier sera lu jusqu'à la fin.

Si la fin a déjà été atteinte, renvois nil.

Affiche une exception Errno::EXXX en cas d'échec de lecteure et une exception ArgumentError si length est negatif.

readlines([rs])

Lit toutes les donnes et renvois un tableau des éléments constitutifs des lignes lues. Si la fin du fichier a déjà été atteinte, renvois un tableau vide [].

Les lignes sont séparées par la chaîne indiquée en argument rs, dont la valeur par défaut est "\n".

Spécifier nil pour rs retirera la séparation des lignes. Spécifiez la chaîne vide "" et les ligne seront considérées comme des paragraphes.

write(str)

Envois str au port d'entrée/sortie. S'il ne s'agit pas d'une chaîne, essayera la convertion à l'aide de to_s.

Renvois le nombre d'octets écrits, et affiche une exception Errno::EXXX en cas d'échec.


File // Classe Fichier

La classe d'accès aux fichiers, normallement crée par open ou File.open.

Ouvrir les objets fichiers qui ne peuvent être référencés seront fermés et rejetés par la prochaine collection "d'ordure".

Classe Parente

  • IO // Classe Input-Output (entrée-sortie)

Méthodes de classe

File.mtime(filename)

Renvoie la date de la dernière modification (Objet de type Time).

Si la récupération de la date échoue, lance une exception Errno::EXXX.

File.basename(filename[, suffix])

Renvoie le composant de filename délimité par le dernier slash. Si suffix est fourni et est identique à la fin de filename, filename est renvoyé sans le suffixe.

p File.basename("ruby/ruby.c")        # => "ruby.c"
p File.basename("ruby/ruby.c", ".c")  # => "ruby"
p File.basename("ruby/ruby.c", ".*")  # => "ruby"
p File.basename("ruby/ruby.exe", ".*")  # => "ruby"

Voir aussi File.dirname et File.extname.

File.delete(filename ... )

Efface le ou les fichiers et retourne le nombre de fichiers effacés. Si la suppression échoue, lance une exception Errno::EXXX.

Cette méthode est pour la suppression de fichiers et ne peut pas effacer de dossiers.

File.dirname(filename)

Renvoie tout sauf le composant de filename délimité par le dernier slash. Renvoie "." (le dossier courant) pour un nom de fichier qui n'inclut pas de slash.

p File.dirname("dir/file.ext")    # => "dir"
p File.dirname("file.ext")        # => "."
p File.dirname("foo/bar/")        # => "foo"
p File.dirname("foo//bar")        # => "foo"

Voir aussi File.basename et File.extname.

File.expand_path(path[, default_dir])

Retourne la chaine contenant le chemin développé absolu de path . Si path est relatif , prend default_dir comme dossier de base. Si default_dir est nul ou omis, utilise le dossier courant.

p File.expand_path("..")         # => "/home/matz/work"
p File.expand_path("..", "/tmp") # => "/"

File.extname(filename)

Retourne l'extension de filename (la chaine après le point final). Les points dans les noms de répertoire ou au début des noms de fichiers ne sont pas considérés comme étant les indicateurs d'extensions. Si filename ne contient aucune extension, retourne une chaine vide.

p File.extname("foo/foo.txt")     # => ".txt"
p File.extname("foo/foo.tar.gz")  # => ".gz"
p File.extname("foo/bar")         # => ""
p File.extname("foo/.bar")        # => ""
p File.extname("foo.txt/bar")     # => ""
p File.extname(".foo")            # => ""

Voir aussi File.basename et File.dirname.

File.open(path[, mode])
File.open(path[, mode]) {|file| ... }

Ouvre le fichier spécifié par path et renvoie un objet de type fichier. Si l'ouverture du fichier échoue, lance une exception Errno::EXXX.

Les types d'argument sont identique à ceux de la fonction intégrée open.

Des blocs peuvent être adjoint à open(). Quand c'est appelé avec un bloc, éxecute le bloc avec le fichier donné. Le fichier sera automatiquement fermé après l'éxecution du bloc.

Quand un bloc est spécifié, la valeur de retour de cette méthode est le résultat de ce bloc.
File.rename(from, to)

Renomme le fichier, le déplace dans un dossier différent si nécessaire. Si un fichier existe déjà à la destination voulue, il est écrasé.

Renvoie 0 quand le déplacement de fichier est réussi: lors d'un échec, lance une exception Errno::EXXX.

Méthodes

mtime

Renvoie la date de la dernière modification (Objet de type Time).

Si la récupération de la date échoue, lance une exception Errno::EXXX.

path

Retourne le chemin du fichier ouvert.


MatchData

La classe gérant les occurences d'une expression régulière. Les instances de cette classe peuvent être obtenues via

  • Regexp.last_match,
  • Regexp#match, et
  • $~.

Classe Parente

  • Object

Méthodes

self[n]

Renvoie la n-ième sous chaîne. 0 signifie la chaine correspondante entière. Quand la valeur n est négative, elle est traitée comme un index inversé (l'élément final ayant la position -1). Quand le n-ième élément n'éxiste pas, renvoie nil.

/(foo)(bar)(BAZ)?/ =~ "foobarbaz"
p $~.to_a       # => ["foobar", "foo", "bar", nil]
p $~[0]         # => "foobar"
p $~[1]         # => "foo"
p $~[2]         # => "bar"
p $~[3]         # => nil        (ne correspond pas)
p $~[4]         # => nil        (Hors de portée)
p $~[-2]        # => "bar"

post_match

Renvoie la chaine après la portion correspondante.

pre_match

Renvoie la chaine avant la portion correspondante.

to_a

Renvoie un tableau contenant $&, $1, $2, ...

to_s

Renvoie la chaine correspondante entière.


Module

La classe des modules.

Classe Parente

  • Object

Méthode

self === obj

Cette méthode est principalement utilisée pour la comparaison avec la commande case. Renvois TRUE si obj a avec self une relation de type Object#kind_of?. En d'autre mots, la comande case peut être utilisée pour vérifier les relations de classes et de modules.

str = String.new
case str
when String     # évalue String === str
  p true        # => vrai
end

Méthodes privées

attr_accessor(name ... )

Définie les méthodes d'écriture et de lecture pour l'attribut name, où name est spécifié comme Symbol ou chaîne.

La définition des méthodes définies par attr_accessor sont les suivantes:

def name
  @name
end
def name=(val)
  @name = val
end

attr_reader(name ... )

Définie la méthode de lecture pour l'attribut name, où name est spécifié comme Symbol ou chaîne.

La définition de la méthode définie par attr_reader est la suivante:

def name
  @name
end

attr_writer(name ... )

Définie la méthode d'écriture pour l'attribut spécifié.

Définie la méthode d'écriture pour l'attribut name (name=), où name est spécifié comme Symbol ou chaîne.

La définition de la méthode définie par attr_writer est la suivante:

def name=(val)
  @name = val
end

include(module ... )

Inclue les modules spécifiés(méthodes et constantes). Renvoie self. include est utilisé pour implémenter un mélange au lieu d'un héritage multiple.

class C
  include FileTest
  include Math
end

Les possibilités d'un module sont incluses en insérant les modules dans la classe. De plus, lors de la recherche d'une méthode, les modules inclus seront prioritaires aux classes parentes.

Si le même module est inclus 2 fois ou plus, la seconde instance et suivantes seront ignorées. De même, l'exécution d'un include qui résulterait sur un héritage récurif de module lancera une exception ArgumentError.


Class // Classe

La classe des classes. Pour parler de manière plus exacte, chaque classe a sa propre "métaclasse" non-nommée, et Class est la classe de ces métaclasses. Cette relation est un peu compliqué, mais n'est pas très importante à retenir pour l'utilisation du Ruby.

Comparés aux modules, les classes

  • peuvent créer des instances et
  • ne peuvent pas réussir un mélange utilisant include

Sinon, quasiment tout les capacités découlent de Module.

Classe Parente

  • Module // Classe Module

Méthode

new( ... )

Créer une instance de classe et la renvoie. Les arguments de cette méthode, y compris les blocs d'arguments, sont passés à initialize.


NilClass

La classe nul de nil. nil est l'unique instance de cette classe, ce qui signfie que FALSE appartient à la classe False. Tout les autres objets sont true.

Classe Parente

  • Object

Méthodes

self & other

Renvoie toujours false.

self | other
self ^ other

Si other est true, renvoie true; Si false, renvoie false.

nil?

Renvoie toujours true.

to_a

Renvoie un tableau vide [].

to_f

Renvoie 0.0.

to_i

Renvoie 0.

to_s

Renvoie une chaîne vide "".


Numeric

Numeric // Numérique

Numeric est la classe abstraite pour les nombres. En Ruby, les opérations sont possibles sur différentes classes numériques.

Les opérations et les méthodes de comparaison (+, -, *, /, <=>), etc. sont définies dans une sous-classe. Pour une meilleur efficacité, les méthodes identiques aux méthodes de Numeric, peuvent aussi être redéfinies dans une sous-classe.

Classe Parente

  • Object

Modules Inclus

  • Comparable

Méthodes

+ self

Renvoie self.

- self

Renvoie self, négatif.

Cette méthode est définie par l'opérateur binaire - dans 0 - self.

abs

Renvoie la valeur absolue de self.

ceil

Renvoie le plus petit entier égal ou supérieur à self (c-.à.d, le plafond).

floor

Renvoie le plus grand entier qui ne dépasse pas self (c-.à.d, le seuil).

integer?

Renvoie true quand self est un entier.

round

Renvoie l'entier le plus proche de self.

truncate

Ignore le point décimal et tout les chiffres après celui-ci.


Integer

La class abstrète pour les entiers. Ses subclasses sont Fixnum et Bignum. Ces 2 type d'entiers sont automatiquement convertis l'un en l'autre selon leurs valeurs. On peut traiter les entier comme des chaînes de bits infinies pour les opérations bit-à-bit.

Classe Parente

  • Numeric

Méthodes

self[n]

Renvois 1 si le n-ième bit de l'entier est défini (avec LSB, ou un bit moins signifiant, à la position 0), et 0 sinon.

self[n]=bit n'est pas une méthode de Integer parce que la classe Numeric associée est inchangeable.

self + other
self - other
self * other
self / other
self % other
self ** other

Opérateurs arithmétiques. Effectuent la somme, la différence, le produit, le quotient, le module et l'exponentiel.

self <=> other

Comparaison avec other et renvois un entier positif si self est le plus grand, négatif s'il est le plus petit et 0 s'ils sont égaux.

self == other
self < other
self <= other
self > other
self >= other

Opérateurs logiques.

~ self
self | other
self & other
self ^ other

Opérateurs bit-à-bit. Effectuent la négation logique, les opérations logiques OR, AND et XOR.

self << bits
self >> bits

Opérateur de suppression de bits (à droite ou à gauche).

Le bit signé (MSB ou bit le plus significatif) obtenu avec un shift à droite (self << bits).

chr

Renvois une chaîne de 1 octet corespondant à la position numériquedans le jeu de caractères.par exemple, 65.chr renvois "A".

L'entier doit être compris entre 0 et 255. Si la méthode est appellée dans le cas contraire, le résultat sera une exception de typeRangeError.

downto(min) {|n| ... }

Itère de self à min en décrémentant de 1. Si self < min, ne fait rien. Elle équivaut donc à : step(min, -1) {|n| ... } (sauf si self < min).

Voir aussi upto, step, et times.

next
succ

Renvoie la valeur "suivante" d'un entier.

step(limit, step) {|n| ... }

Itère un block de self en incrémentant par step jusqu'à ce que la limite limit soit atteinte ou dépassée. step peut également être négatif, mais s'il vaut 0 celà produira une exception de type ArgumentError.

Renvois self.

voir aussi upto, downto, et times.

times {|n| ... }

Itère self nombre de fois de 0 à self-1, et si self est négatif ne fait rien. équivaut donc à 0.upto(self) {|n| ...}.

Renvois self.

Voir aussi upto, downto, et step.

to_f

Converti l'entier en flottant (Float).

to_s([base])

Converti en une chaîne contenant l'expression du nombre en la base indiquée (10 par défaut). base doit être compris entre 2 et 36 ou une exception de type ArgumentError sera affichée.

p 10.to_s(2)    # => "1010"
p 10.to_s(8)    # => "12"
p 10.to_s(16)   # => "a"
p 35.to_s(36)   # => "z"
upto(max) {|n| ... }

Itère de self à max en incrementant de 1. Si self > max ne fait rien. Elle équivaut donc à : step(max, 1) {|n| ... } (sauf si self > min).

Revois self.

voir aussi downto, step, et times.


Bignum // Entier Long

La classe pour les entiers longs, limités seulement par la taille de la mémoire. Le résultat d'une opération est automatiquement converi en un Fixnum (entier fixe) si sa valeur est dans sa portée; Sinon si la valeur est hors de portée d'un entier fixe, elle est étendue à un entier long. Pour les opérations sur les bits, les entiers longs peuvent être considérés à être une chaîne binaire infinie de 2 bits complémentaires. Les nombres négatifs en particulier peuvent opérer comme une chaine d'1 bit étendu sur la gauche indéfiniment. Mélanger un entier long avec un Float peut produire des erreurs d'annulation de chiffres lors de la conversion.

Classe Parente

  • Integer // Classe Entier


Fixnum // Entier Fixe

Cette classe pour les entiers de longueur fixe qui s'adapte au pointeur de la machine, qui généralement est de 31 bit de long. Si le résultat de cette opération est hors de la portée d'un Fixnum, il est automatiquement étendu à un Bignum.

Classe Parente

  • Integer // Classe Entier

Méthodes

id2name

Renvoie la chaine correspondant à l'entier Symbole (obtenu avec Symbol#to_i). Si il n'y a pas de symbole correspondant à l'entier, retourne nil ( nul).

to_sym

Renvoie l'objet de type Symbole correspondant à la valeur entière de l'objet lui-même. Si il n'y a pas de symbole correspondant à cet entier, renvoie nil (nul).


Float

La classe des nombres réels à virgule (les flottants). La gestion de ces nombres est la même qu'en langage C.

Superclasse

  • Numeric

Méthodes

self + other
self - other
self * other
self / other
self % other
self ** other

Opérateurs arithmétiques. Effectuent la somme, la différence, le produit, le quotient, le module et l'exponentiel.

self <=> other

Comparaison avec other. Renvoie un entier positif si self est le plus grand, négatif s'il est le plus petit, et 0 s'ils sont égaux.

self == other
self < other
self <= other
self > other
self >= other

Opérateurs logiques.

finite?

Renvoie TRUE si la valeur est infinie, à moins qu'elle soit aussi NaN (c'est à dire qu'elle ne soit pas un nombre).

infinite?

Renvoie 1 si la valeur est + infini, -1 si c'est -infini, et nil dans les autres cas. La division par 0 donne un résultat infini.

inf = 1.0/0
p inf
p inf.infinite?

=> Infinity
   1

inf = -1.0/0
p inf
p inf.infinite?

=> -Infinity
   -1
nan?

Renvoie TRUE si la valeur est NaN ("Not a Number" => pas un nombre). La division de 0 par 0 aboutit à une valeur NaN.

nan = 0.0/0.0
p nan
p nan.nan?

=> NaN
   true


Range // Intervalle

La classe d'objet "intervalle". Voir Expressions d'intervalles pour plus d'information.

Classe Parente

  • Object

Module Inclus

  • Enumerable

Méthodes

self === other

Cette méthode est principalement utilisée pour la comparaison dans les expressions de case. Renvoie true si other est dans l'intervalle.

begin
first

Renvoie l'élément initial.

each {|item| ... }

Itère chaque élément de l'intervalle.

end
last

Renvoie le dernier élément, ignorant si l'objet "intervalle" inclus ou non cet élément.

p (1..5).end   # => 5
p (1...5).end  # => 5
exclude_end?

Renvoie true si l'objet "intervalle" est exclusif pour le dernier élément.


Proc

Proc est un objet de procédure dans lequel l'ensemble d'un bloc et son contexte(le domaine d'une variable locale et la pile de frame) ont été encapsulés en un objet. Proc peut être utilisé comme une fonction non nommée, sauf que celà n'a pas son propre domainde de variable locale.

Nous pouvons voir que Proc retient un domaine de variable locale, cependant, en observant le fait que la variable var peut être référencée, comme dans l'exemple ci-dessous:

var = 1
$foo = Proc.new { var }
var = 2

def foo
  $foo.call
end

p foo       # => 2

Classe Parente

  • Object

Méthode de Classe

Proc.new
Proc.new { ... }

Encapsule un bloc, ainsi que son context, en un objet et retourne ce dernier.

Si aucun bloc n'est spécifié, mais que la méthode qui appelait Proc.new contient un bloc, ce bloc sera crée comme un objet de Proc, et retourné.

Méthode

call(arg ... )

Exécute un objet procédure et renvoie le résultat. Les arguments sont assignés aux paramètre du bloc comme tel (selon les régles d'assignement multiple).


Regexp

La classe d'expression régulière. Voir Expressions Régulières pour plus de détails.

Classe Parente

  • Object

Méthodes de Classe

Regexp.last_match

Renvoie l'objet MatchData pour la dernière occurence d'expression régulière dans le domaine actuel. Cette méthode est identique à une référence $~.

/(.)(.)/ =~ "ab"
p Regexp.last_match      # => #<MatchData:0x4599e58>
p Regexp.last_match[0]   # => "ab"
p Regexp.last_match[1]   # => "a"
p Regexp.last_match[2]   # => "b"
p Regexp.last_match[3]   # => nil

Regexp.last_match([nth])

Si l'entier nth est 0, renvoie la chaîne correspondante($&). Sinon, renvoie la sous chaîne correspondant au nth ensemble de parenthèses($1, $2, ...). Lorsque il n'y a pas de parenthèses correspondante, ou aucune correspondance, renvoie nil.

/(.)(.)/ =~ "ab"
p Regexp.last_match      # => #<MatchData:0x4599e58>
p Regexp.last_match(0)   # => "ab"
p Regexp.last_match(1)   # => "a"
p Regexp.last_match(2)   # => "b"
p Regexp.last_match(3)   # => nil

Parce que Regexp.last_match, sans arguments, renvoie nil quand l'expression régulière entière ne correspond pas, le format last_match[1] lancera une exception NameError. D'autre part, last_match(1) renvoie nil.

Méthodes

self =~ string
self === string

Compare une chaîne string à une expression régulière. Si l'argument n'est pas une chaîne ou ne correspond pas, renvoie false; si il y a correspondance, renvoie vrai.

Les information de correspondance peuvent être configuréées dans la variable pré-intégrée $~.

Si string n'est ni nulle ni un objet String, lance une exception TypeError.

match(str)

Identique à self=~str, à part le fait qu'il ne renvoie pas un objet MatchData. Si il n'y a aucune occurence, renvoie nil.

Quand seulement la sous chaîne correspondant à l'expression régulière est nécessaire, utiliser match(str) comme ceci:

bar = /foo(.*)baz/.match("foobarbaz").to_a[1]

_, foo, bar, baz = */(foo)(bar)(baz)/.match("foobarbaz")

to_a prend les correspondances ratées dans un compte.

to_s

Crée et renvoie une expression de chaîne, pour une expression régulière. Préserve le sens de la chaîne retournée même si la chaîne est imbriquée dans une autre expression régulière.

re = /foo|bar|baz/i
p re.to_s       # => "(?i-mx:foo|bar|baz)"
p /#{re}+/o     # => /(?i-mx:foo|bar|baz)+/

Cependant, quelques expressions régulières avec des références peuvent ne pas fonctionner comme prévu. C'est parce que les référence peuvent seulement être spécifiées par un nombre au présent.

re = /(foo|bar)\1/      # \1 is foo or bar
p /(baz)#{re}/          # \1 is baz

# => /(baz)(?-mix:(foo|bar)\1)/


String // Chaîne

La classe de chaîne. Peut gérer des séquences d'octet de longueur arbitraire. Voir Valeur de Chaîne pour les détails.

La classe de chaîne se comporte elle-même comme une séquence d'octet. Utilisez scan(/./), etc. pour extraire les caractères un à un d'une chaîne multi-octet.

Classe Parente

  • Object

Modules Inclus

  • Comparable
  • Enumérable

Méthodes

self + other

Renvoie la nouvelle chaîne concaténée.

self * times

Crée et renvoie une nouvelle chaîne consistant au contenu de la chaîne répétée times fois.

self <=> other

Compare self avec other par l'ordre ASCII; renvoie un entier positif si self est plus grand, 0 si les deux sont égales, et un entier négatif si self est plus petite.

self == other

Détermine si les chaînes sont égales.

self[nth, len]

Renvoie la sous chaîne de len-octet-de long à partir du nth octet. Quand nth est négatif, compte à partir de la fin de la chaîne.

Si nth est hors de l'intervalle, renvoie nil.

self[regexp]

Renvoie la première sous-chaîne correspondante à regexp. L'information de correspondance peut être configurée dans la variable pré-intégrée $~.

Si il n'y a aucune correspondance à regexp, renvoie nil.

p "foobar"[/bar/]   # => "bar"

self[nth, len]=val

Remplace la sous chaîne de len-octet-de long à partir du nth octet par la chaîne val. Quand nth est négatif, compte à partir de la fin de la chaîne.

Renvoie val .

self[regexp]=val

Remplace la première sous-chaîne correspondante à regexp par la chaîne val.

Si il n'y a aucune occurence à l'expression régulière, lance une exception IndexError.

Renvoie val.

clone
dup

Renvoie une nouvelle chaîne avec le même contenu que la chaîne originale. En utilisant sur une chaîne gelée renverra une chaîne gelée similaire, mais dup renvoie une chaîne non gelée avec un contenu identique.

concat(other)

Ajoute le contenu de la chaîne other à self. Renvoie self.

downcase
downcase!

Remplace toutes les majuscules par des lettre minuscules.

downcase crée et renvoie la chaîne modifiée. downcase! modifie et renvoie self, mais si il n'y a aucun caractère de remplacé, renvoie nil.

Voir aussi upcase.

each {|line| ... }
each_line {|line| ... }

Réitère chaque ligne dans la chaîne.

Renvoie self.

each_byte {|byte| ... }

Réitère chaque octet dans la chaîne. Renvoie self.

empty?

Renvoie vrai si la chaîne est vide (c-.à.dire, une chaîne de longueur zéro).

gsub(pattern) {|matched| .... }
gsub!(pattern) {|matched| .... }

Remplace toutes les sous chaîne correspondant à pattern avec les résultat de l'évaluation du bloc. La sous chaîne correspondante est passée au bloc comme un argument. La variable pré-intégrée $<chiffre> peut être référencée dans ce bloc.

p 'abcabc'.gsub(/b/) {|s| s.upcase }    # => "aBcaBc"
p 'abcabc'.gsub(/b/) { $&.upcase }      # => "aBcaBc"
p 'abbbcd'.gsub(/a(b+)/) { $1 }         # => "bbbcd"

gsub crée et retourne la chaîne après remplacement. gsub! modifie et renvoie self, mais si aucun caractère n'est remplacé, renvoie nil.

Voir aussi sub.

insert(nth, other)

Insère la chaîne other immédiatement avant le caractère de la nth position. Renvoie self.

p "foobaz".insert(3, "bar")         # => "foobarbaz"

to_sym

Renvoie la valeur du symbole (Symbole) correspondant à la chaîne.

Utilisez Symbol#id2name pour obtenir la chaîne correspondante au symbole.

p "foo".to_sym                      # => :foo
p "foo".to_sym.to_s == "foo"        # => true

length
size

Renvoie la longueur en octet de la chaîne.

scan(re)
scan(re) {|s| ... }

Scanne à plusieurs reprise self avec l'expression régulière re et renvoie un tableau des sous chaînes correspondantes.

p "foobarbazfoobarbaz".scan(/ba./)
# => ["bar", "baz", "bar", "baz"]

p "abcde".scan(/./)
# => ["a", "b", "c", "d", "e"]

Lorsque est appelé avec un bloc spécifié, les sous chaînes correspondantes deviennent les paramètres du bloc. (Si les parenthèses sont incluses, un tableau de chaînes qui correspondent aux modèles dans les parenthèses, devient le paramètre du bloc.) Si un bloc est spécifié, renvoie self.

"foobarbazfoobarbaz".scan(/ba./) {|s| p s}
# => "bar"
     "baz"
     "bar"
     "baz"

slice(nth, len)
slice(regexp)

Identique à self[].

slice!(nth, len)
slice!(regexp)

Enlève l'intervalle précisé (voir self[]) d'une chaîne et renvoie cette partie enlevée.

Si l'argument est hors de l'intervalle, renvoie nil.

sub(pattern) {|matched| ... }
sub!(pattern) {|matched| ... }

Remplace la première sous chaîne correspondante à pattern avec les résultat de l'évaluation du bloc.

sub crée et renvoie la chaîne après remplacement. sub! modifie et renvoie self, mais si aucun caractère n'est remplacé, renvoie nil.

Identique à gsub, à part que sub ne prend que la première occurence.

to_f

Interprête la chaîne comme une expression en base 10 et la convertie en un entier à virgule flottante(Float).

to_i([base])

Interprête la chaîne comme une expression numérique et la convertie en un entier.

Par défaut, la base est décimale. En spécifiant base, vous pouvez aussi bien réaliser une conversion de base 2 à 36.

upcase
upcase!

Remplace toutes les minuscules par des majuscules.

upcase crée et renvoie la chaîne modifiée. upcase! modifie et renvoie self, mais si aucun caractère n'est remplacé, renvoie nil.

Voir aussi downcase.


Symbole

Symbol

La classe exprimant les symboles. Voir Symbole pour plus d'informations.

Classe Parente

  • Object

Méthodes

id2name

Renvoie la chaîne correspondant à un symbole.

Utiliser String#to_sym pour obtenir le symbole correspondant à une chaîne.

p :foo.id2name.to_sym == :foo       # => true

to_i

Renvoie l'entier correspondant à un symbole.

Utiliser Fixnum#to_sym pour obtenir le symbole correspondant à un entier.

p :foo.to_i                         # => 8881
p :foo.to_i.to_sym                  # => :foo

En Ruby, Les mots réservés, les noms de variables, les noms de méthodes, et semblables sont controlés par ces entiers. Les entiers correspondant aux objets (obtenus via Object#object_id) et ceux correspondant aux symboles sont des éléments séparés.


Time // Temps

La classe de temps .

Classe Parente

  • Object

Module Inclus

  • Comparable

Méthode de Classe

Time.now

Renvoie l'objet de temps actuel.

Méthodes

self + other

Renvoie un temps retardé de other secondes par rapport à self.

self - other

Lorsque other est un objet de temps, renvoie la différence entre les deux temps avec Float. Si other est une numérique valeur, renvoie un temps avancé de other par rapport self.

self <=> other

Compare les temps. other doit être un objet de Temps ou une valeur numérique; Si c'est une valeur numérique, les temps sont comparés en terme de secondes depuis que l'époque à commencer (1 janvier 1970 à minuit).

strftime(format)

Renvoie le temps, converti en chaîne grâce à la chaîne format. La chaîne format peut être spécifiée avec ceci:

  • %A

    Jour de la semaine (Dimanche, Lundi ... )

  • %a

    Jour de la semaine, abbrégé (Dim, Lun ... )

  • %B

    Mois (Janvier, Février ... )

  • %b

    Mois, abbrégé (Jan, Fév ... )

  • %c

    Date et heure

  • %d

    Jour du mois (31-01)

  • %H

    Heure du jour , Format 24-heure (00-23)

  • %I

    Heure du jour , Format 12-heure (01-12)

  • %j

    Jour de l'année (001-366)

  • %M

    Minutes (00-59)

  • %m

    Mois de l'année (01-12)

  • %p

    AM ou PM

  • %S

    Secondes (00-60, 60 étant une seconde de saut)

  • %U

    Semaine de l'année, la première semaine commençant par le premier dimanche (00-53)

  • %W

    Semaine de l'année, la première semaine commençant par le premier lundi (00-53)

  • %w

    Jour de la semaine (0-6, 0 indique Dimanche)

  • %X

    Temps

  • %x

    Date

  • %Y

    Année, 4-chiffre

  • %y

    Année, 2-chiffre (00-99)

  • %Z

    Fuseau Horaire

  • %%

    Le caractère %

sec

Renvoie les seconds.

min

Renvoie les minutes.

hour

Renvoie les heures.

mday

Renvoie le jour.

mon

Renvoie le mois.

year

Renvoie l'année.

wday

Renvoie le nombre représentant le jour de la semaine.


TrueClass

La classe Vrai. true est la seule instance de la classe TrueClass. true est un objet représentatif dénotant une condition Vraie.

Classe Parente

  • Object

Méthodes

self & other

Si other est TRUE, renvoie TRUE. Si FALSE, renvoie FALSE.

self | other

Renvoie normalement TRUE.

self ^ other

Si other est TRUE, renvoie FALSE. Si FALSE, renvoie TRUE.


Modules Intégrés

  • Comparable
  • Enumerable
  • Errno
  • FileTest
  • GC
  • Kernel
  • Marshal
  • Math


Comparable

Un mélange tenant compte des opérations relationnelles. Les classes incluant ce module doivent être définir les opérateurs relationnels basiques <, =, et >. Tout les autres opérateurs relationnels peuvent être obtenus à travers l'utilisation de ces définitions.

Méthodes

self == other

Renvoie TRUE quand self et other sont égales.

Lorsque <=> renvoie nil, renvoie nil.

self > other

Renvoie TRUE quand self est supérieur à other.

Lorsque <=> renvoie nil, lance une exception ArgumentError.

self >= other

Renvoie TRUE quand self est supérieur ou égal à other.

Lorsque <=> renvoie nil, lance une exception ArgumentError.

self < other

Renvoie TRUE quand self est inférieur à other.

Lorsque <=> renvoie nil, lance une exception ArgumentError.

self <= other

Renvoie TRUE quand self est inférieur ou égal à other.

Lorsque <=> renvoie nil, lance une exception ArgumentError.

between?(min, max)

Renvoie TRUE quand self tombe dans l'interval min à max, inclus.

Quand self <=> min ou self <=> max renvoie nil, lance une exception ArgumentError.


Enumerable

Un mix pour les classes de répétition. Ces méthodes de modules sont toutes définies via each, ainsi each doit être définie dans n'importe quelle classe qui inclue ce module.

Méthode

all?
all? {|item| ... }

Renvoie TRUE quand tous les éléments sont vrais . Si n'importe quel élément est faux, renvoie immédiatement FALSE.

En utilisant un bloc, évalue le bloc contre chaque élément et renvoie TRUE si tous les résultats sont vrais. Si le bloc renvoie FALSE à tout moment, renvoie immédiatement FALSE.

p [1,2,3].all? {|v| v > 0}   # => true
p [1,2,3].all? {|v| v > 1}   # => false
any?
any? {|item| ... }

Renvoie FALSE quand tous les éléments sont vrais. Si n'importe quel élément est vrai, renvoie immédiatement TRUE.

En utilisant un bloc, évalue le bloc contre chaque élément et renvoie FALSE si tous les résultats sont faux. Si le bloc renvoie TRUE à tout moment, renvoie immédiatement TRUE.

p [1,2,3].any? {|v| v > 3}   # => false
p [1,2,3].any? {|v| v > 1}   # => true
find {|item| ... }

Renvoie le premier élément qui a été examiné comme vrai pendant l'évaluation de bloc. Si aucun élément n'était vrai, renvoie nil.

find_all {|item| ... }

Renvoie un choix de tous les éléments qui ont été examinés comme vrai pendant l'évaluation du bloc. Si aucun élément n'était vrai, renvoie un tableau vide.

include?(val)

Renvoie TRUE quand la liste inclut un élément qui satisfait le rapport val ==.

max

Renvoie le plus grand élément. Suppose que tous les éléments sont comparables par l'intermédiaire de la méthode <=>.

max {|a, b| ... }

Compare chaque élément basé sur la valeur évaluée du bloc et renvoie le plus grand élément.

Prévoit une valeur de bloc qui sera un nombre entier positif quand a>b, 0 quand a==b, un nombre entier négaitif quand a<b. Quand le bloc renvoie un nombre non entier, lance une exception TypeError.

min

Renvoie le plus petit élément. Suppose que tous les éléments sont comparables par l'intermédiaire de la méthode <=>.

min {|a, b| ... }

Compare chaque élément basé sur la valeur évaluée du bloc et renvoie le plus petit élément.

Prévoit une valeur de bloc qui sera un nombre entier positif quand a>b, 0 quand a==b, un nombre entier négaitif quand a<b. Quand le bloc renvoie un nombre non entier, lance une exception TypeError.

sort
sort {|a, b| ... }

Crée et renvoie un tableau de tous les éléments triés dans l'ordre croissant.

Lorsque n'utilise pas un bloc, appele <=> contre chaque élément et trie en se basant sur ces résultats.

Pour trier en utilisant d'autres méthodes en outre <=>, choisissez un bloc; les articles seront assortis en se basant sur l'évaluation de ce bloc. Prévoit une valeur de bloc qui sera un nombre entier positif quand a>b, 0 quand a==b, un nombre entier négaitif quand a<b. Quand le bloc renvoie un nombre non entier, lance une exception TypeError.

to_a
entries

Renvoie un tableau de tous les éléments.


Errno

Un module contenant les exceptions correspondant aux erreurs d'appel système.

Classes Incluses

Voici les classes d'exception représentatives. Beaucoup d'autres sont définies, mais vous n'avez pas besoin de les connaître.

E2BIG
La liste d'argument est trop longue.
EACCES
Les droits d'accès sont refusés.
EAGAIN
Impossible de créer d'autre processus.
EBADF
Numéro de fichier invalide.
ECHILD
Pas de processus enfant existant.
EDEADLOCK
Possibilité d'une ressource corrompue.
EDOM
La valeur de l'argument de la fonction de données numériques est en dehors du domaine de la fonction.
EEXIST
Le fichier existe déjà.
EINVAL
Argument Invalide.
EMFILE
Trop de fichiers ouverts.
ENOENT
Pas de fichier ou répertoire correspondant.
ENOEXEC
Erreur de fichier exécutable.
ENOMEM
Mémoire Insuffisante .
ENOSPC
Espace disque insuffisant sur le périphérique.
ERANGE
Les résultats sont trop large(hors de la portée définie).
EXDEV
Interconnection de matériel.


FileTest

Un module contenant les fonctions de test de fichier.

Fonctions du Module

FileTest.exist?(filename)

Renvoie TRUE (vrai) quand le fichier ou répertoire de nom filename existe.

FileTest.directory?(filename)

Renvoie TRUE (vrai) quand filename est un répertoire.

FileTest.file?(filename)

Renvoie TRUE (vrai) quand filename est un fichier ordinaire.

FileTest.size(filename)

Renvoie la taille de filename. Si filename n'existe pas, lance une exception Errno::EXXX (plus exactement Errno::ENOENT).


GC - Le Ramasse-Miette

GC

Un module qui contrôle le Garbage Collector( Le ramasse-miette )dans l'interpreteur Ruby, c'est le recyclage de la mémoire préalablement allouée puis non utilisée.

Méthode de Module

GC.disable

Arrête le Garbage Collector.

Renvoie l'état précédent l'arrêt (si arrêtée, renvoie TRUE; si le Garbage Collector était activé, renvoie FALSE).

GC.enable

Autorise le Garbage Collector.

Renvoie l'état précédent l'arrêt (si arrêtée, renvoie TRUE; si le Garbage Collector était activé, renvoie FALSE).

GC.start

Initialise le Garbage Collector.

Renvoie nil.


Kernel

Un module définissant les méthodes qui peuvent être utilisées par toutes les classes. Les classes Object sont incluses dans ce module. Les méthodes expliquées dans la page Fonctions Intégrées sont définies dans ce module.

Les méthodes de la classe Object sont définies dans ce module. Cela assure la compatibilité avec la redéfinition de méthode de niveau supérieur.


Marshal

Un module fournissant la capacité d'écrire un objet Ruby sous forme de fichier(ou un tableau de chaîne).

Fonctions du Module

Marshal.dump(obj[, port][, limit])

Ecrit récursivement obj dans un fichier.

Quelques objets peuvent ne pas être écrivable, comme dans les instances de File ou MatchData, ou avec des objets qui définissent des méthodes inhabituelles. Quand on tente d'écrire de tels objets dans un fichier, une TypeError apparaîtra.

port spécifie l'instance de IO (ou une sousclasse). Dans ce cas, renvoie port. Quand il est omis, dump renvoie l'objet sérializé en une chaîne.

Quand limit est spécifié, aucun objet lié égal ou plus profond que limit ne peut être sérializé (100 niveaux est le défaut. Quand limit est négatif, aucune vérification de profondeur n'est effectuée.

Marshal.load(port)

Lit les données marshal depuis port (ex: La chaîne de sortie depuis Marshal.dump) et crée un objet avec le même état que l'objet original. port spécifie une instance de IO (ou une sousclasse).


Math

Un module qui supporte les calculs à virgule flottante.

Fonction du Module

Math.acos(x)
Math.asin(x)
Math.atan(x)

Renvoie la valeur des inverses des fonctions trigonométriques de x en radians.

Les valeurs qui peuvent être renvoyées ont respectivement des intervalles de [0, +π], [-π/2, +π/2], et (-π/2, +π/2).

Dans acos(x), et asin(x), x doit être dans l'intervalle -1.0 <= x <= 1 (normalement renvoie NaN(Not a Number)(Pas un nombre)).

acos() et asin() lanceront une exception Errno::EDOM pour les arguments hors de l'intervalle.

Math.atan2(y, x)

Renvoie l'arctangente de y/x dans l'intervalle [-π, π].

Math.acosh(x)
Math.asinh(x)
Math.atanh(x)

Renvoie la valeur des inverses des fonctions hyperboliques de x.

asinh(x) = log(x + sqrt(x * x + 1))
acosh(x) = log(x + sqrt(x * x - 1)) [x >= 1]
atanh(x) = log((1+x)/(1-x)) / 2     [-1 < x < 1]

Dans acosh(x), x doit être >= 1 (normalement lance une exception Errno::EDOM).

Dans atanh(x), x doit être dans l'intervalle -1.0 < x < 1 (normalement lance une exception Errno::EDOM).

Math.cos(x)
Math.sin(x)
Math.tan(x)

Renvoie la valeur des fonctions trigonométriques de x en radians, dans l'intervalle [-1, 1].

Math.cosh(x)
Math.sinh(x)
Math.tanh(x)

Renvoie la valeur des fonctions hyperboliques de x.

cosh(x) = (exp(x) + exp(-x)) / 2
sinh(x) = (exp(x) - exp(-x)) / 2
tanh(x) = sinh(x) / cosh(x)
Math.erf(x)
Math.erfc(x)

Renvoie les valeurs de la fonction d'erreur (erf) et de la fonction d'erreur complémentaire (erfc) de x.

Math.exp(x)

Renvoie la valeur de la fonction exponentielle de x.

Math.frexp(x)

Renvoie l'exposant et la mantisse du nombre réel x.

Math.hypot(x, y)

Renvoie l'hypoténuse: sqrt(x*x + y*y).

Math.ldexp(x, exp)

Renvoie le nombre réel x multiplié par 2 à la puissance exp.

Math.log(x)

Renvoie le logarithme naturel de x.

x doit être une valeur positive (normalement renvoie NaN pour les valeurs négatives et -Infini pour 0).

Les arguments négatif hors intervalle lancent des exceptions Errno::EDOM , tandis qu'un 0 en argument lance une exception Errno::ERANGE.

Math.log10(x)

Renvoie le logarithme commun de x.

x doit être une valeur positive (normalement renvoie NaN pour les valeurs négatives et -Infini pour 0).

Les arguments négatif hors intervalle lancent des exceptions Errno::EDOM , tandis qu'un 0 en argument lance une exception Errno::ERANGE.

Math.sqrt(x)

Renvoie la racine carrée de x. Quand x est négatif, lance une exception ArgumentError.

Normalement, quand x est négatif, lance une exception Errno::EDOM.

Définitions

E

La base logarithmique naturelle.

p Math::E
# => 2.718281828
PI

La valeur approchée de Pi.

p Math::PI
# => 3.141592654


Classes d'Exception Intégrées

Exception
La classe mère de toutes les exceptions.
NoMemoryError
Lancée quand trop de mémoire est tentée d'être alloué à la fois.
ScriptError
Indique une erreur de script.
NotImplementedError
Lancée quand une donnée non implémentée est invoquée.
SyntaxError
Lancée par une erreur de syntaxe.
StandardError
Sans classe spécifiée, la classe de secours attrapera la sous-classe de cette classe d'exception.
ArgumentError
Lancée lorsque le nombre d'argument ne correspond pas ou lorsque les valeurs sont incorrectes.
IndexError
Lancée si l'index est hors de portée.
IOError
Lancée lorsqu'est générée une erreur d'entrée/sortie.
EOFError
Lancée lorsque l'EOF (Fin de fichier) a été atteint.
LocalJumpError
Lancée quand la destination du jump n'a pas été trouvé dans la structure de contrôle.
NameError
Lancée lorsque on accède à une variable ou constante indéfinie.
NoMethodError
Lancée lorsque on appelle une méthode indéfinie.
RangeError
Une exception de portée. Lancée lors d'une conversion d'un entier hors de portée se produit (depuis un Bignum à un Fixnum) , etc.
FloatDomainError
Lancée lors d'une tentative de conversion d'un nombre infini positif ou négatif ou PuN(Pas un Nombre) en un Bignum ou lors de la comparaison d'un nombre avec un PuN.
RegexpError
Lancée lorsque une compilation d'une expression régulière échoue.
RuntimeError
Une Exception d'éxecution. Lancée lors de l'appel d'un raise sans spécifier d'exception.
SystemCallError
Lancée lorsqu'un appel système échoue.
Errno::EXXX
Classe d'Exception pour chaque errno(numéro d'erreur). Voir le module Errno pour plus d'info sur chaque nom de classe.
SystemStackError
Lancée lorsque le niveau de la pile est trop élevé.
TypeError
Lancée quand un mauvais type est invoqué.
ZeroDivisionError
Lancée lors d'une division par zéro.
SystemExit
Termine le programme. Voir exit pour plus d'info.
fatal
Une erreur fatale(Interne). Cet objet n'est pas visible avec les méthodes normales.


Librairie Du Jeu

  • RGSS Fonctions Intégrées
  • RGSS Classes Intégrées
    • Bitmap
    • Color//Couleur
    • Font//Police
    • Plane//Plan
    • Rect//Rectangle
    • Sprite
    • Table//Tableau
    • Tilemap//Carreau de Carte
    • Tone//Ton de l'écran
    • Viewport
    • Window//Fenêtre
    • RGSSError//Erreur du RGSS
    • RPG::Sprite
    • RPG::Weather//EffetMéteo
  • RGSS Modules Intégrés
    • Audio
    • Graphics//Graphisme
    • Input//Touches
    • RPG
    • RPG::Cache//Mise en cache
  • RPGXP Structures de données
    • RPG::Map
    • RPG::MapInfo
    • RPG::Event
    • RPG::Event::Page
    • RPG::Event::Page::Condition
    • RPG::Event::Page::Graphic
    • RPG::EventCommand
    • RPG::MoveRoute
    • RPG::MoveCommand
    • RPG::Actor
    • RPG::Class
    • RPG::Class::Learning
    • RPG::Skill
    • RPG::Item
    • RPG::Weapon
    • RPG::Armor
    • RPG::Enemy
    • RPG::Enemy::Action
    • RPG::Troop
    • RPG::Troop::Member
    • RPG::Troop::Page
    • RPG::Troop::Page::Condition
    • RPG::State
    • RPG::Animation
    • RPG::Animation::Frame
    • RPG::Animation::Timing
    • RPG::Tileset
    • RPG::CommonEvent
    • RPG::System
    • RPG::System::Words
    • RPG::System::TestBattler
    • RPG::AudioFile


RGSS - Fonctions intégrées

Les fonctions intégrées suivantes sont définies dans RGSS.

load_data(nomdefichier)

Charge le fichier de données indiqué par nomdefichier et reconstitue l'objet.

$data_actors = load_data("Data/Actors.rxdata")
Cette fonction est essentiellement identique à:
File.open(filename, "rb") { |f|
  obj = Marshal.load(f)
}

Cependant, elle diffère parce qu'elle peut charger des fichiers depuis des archives encryptées.

save_data(obj, nomdefichier)

Sauve l'object obj dans le fichier de données indiqué par nomdefichier.

save_data($data_actors, "Data/Actors.rxdata")
Cette fonction est identique à:
File.open(filename, "wb") { |f|
  Marshal.dump(obj, f)
}

Il est peu probable que vous emploiyez cette fonction pendant un jeu, mais elle est définie en tant que contre-partie à load_data.

En outre, les fonctions intégrées p et print sont redéfinies pour l'usage dans une boîte de dialogue type windows.


RGSS Classes Intégrées

  • Bitmap
  • Color//Couleur
  • Font//Police
  • Plane//Plan
  • Rect//Rectanqle
  • Sprite
  • Table//Tableau
  • Tilemap//Carreau de Carte
  • Tone//Ton de l'écran
  • Viewport
  • Window//Fenêtre
  • RGSSError//Erreur du RGSS
  • RPG::Sprite
  • RPG::Weather//Effets Météo


Bitmap

La classe bitmap. Les Bitmaps sont les expressions des tant appelés graphismes.

Les sprites (Sprite) et autres objets doivent être utilisés pour afficher les bitmaps à l'écran.

Classe Parente

  • Object

Méthodes de la Classe

Bitmap.new(filename)

Charge le fichier graphique, spécifié par filename et crée l'objet bitmap.

Cherche aussi automatiquement, les fichiers inclus dans le RGSS-RTP et les archives encryptées. Les extensions de fichier peuvent être omises.

Bitmap.new(largeur, hauteur)

Crée un objet bitmap avec la taille précisée.

Méthodes

dispose

Libère le bitmap. Si le bitmap a déjà été libéré, ne fait rien.

disposed?

Renvoie TRUE si le bitmap a été libéré.

width

Récupère la largeur du bitmap.

height

Récupère la hauteur du bitmap.

rect

Récupère le rectangle du bitmap (Rect).

blt(x, y, src_bitmap, src_rect[, opacity])

Produit un transfert de bloc depuis la boite src_rect (Rect) de src_bitmap vers les coordonnées du bitmap spécifié (x, y).

opacity peut être défini de 0 à 255.

stretch_blt(dest_rect, src_bitmap, src_rect[, opacity])

Produit un transfert de bloc depuis la boite src_rect (Rect) de src_bitmap vers la boite dest_rect (Rect) du bitmap spécifié.

opacity peut être défini de 0 à 255.

fill_rect(x, y, largeur, hauteur, couleur)
fill_rect(rect, couleur)

Remplie la boite du bitmap (x, y, largeur, hauteur) ou le rectangle rect (Rect) avec la couleur couleur (Color).

clear

Vide entièrement le Bitmap.

get_pixel(x, y)

Récupère la couleur (Color) du pixel spécifié (x, y).

set_pixel(x, y, color)

Définie la couleur du pixel spécifié (x, y) à color (Color).

hue_change(hue)

Change le ton du bitmap dans un déplacement de 360 degrées

Ce processus prend du temps. De plus, due aux erreurs de conversion, les changement de ton répétés peuvent engendrer des pertes de couleurs.

draw_text(x, y, width, height, str[, align])
draw_text(rect, str[, align])

Dessine une chaine str dans la boite bitmap (x, y, width, height) ou le rectangle rect (Rect).

Si la longueur excède la largeur de la boite, la largeur du texte est automatiquement réduite de 40%.

Le texte horizontal est aligné par défaut à gauche; définissez align à 1 pour centrer le texte et à 2 pour l'aligner à droite. Le texte vertical est toujours centré.

Comme ce processus prend des ressources, redessiner le texte à chaque frame(image) n'est pas recommandé.

text_size(str)

Récupère la boite (Rect) utilisé quand est dessiné une chaine str avec la méthode draw_text. Ceci n'inclus pas les portions inclinés d'un texte en italique.

Propriété

font

La police (Font) utilisée pour dessiner la chaine avec la méthode draw_text.


Color // Classe Couleur

La classe de couleur RGBA. Chaque composant est géré avec une valeur à virgule flottante(Float).

Classe Parente

  • Object

Méthode de Classe

Color.new(red, green, blue[, alpha])

Créer un objet Couleur. Si alpha est omis, il est considéré comme égal à 255.

Méthode

set(red, green, blue[, alpha])

Définie tout les composants à la fois.

Propriétés

red

La valeur de Rouge (0-255). Les valeurs hors de portée sont automatiquement corrigées.

green

La valeur de Vert (0-255). Les valeurs hors de portée sont automatiquement corrigées.

blue

La valeur de Bleu (0-255). Les valeurs hors de portée sont automatiquement corrigées.

alpha

La valeur d'Alpha (0-255). Les valeurs hors de portée sont automatiquement corrigées.


Font // Classe Police

La classe de police de caractère. Font est une propriété de la classe Bitmap.

Classe Parente

  • Object

Méthodes de Classe

Font.new([name[, size]])

Créer un objet Font.

Font.exist?(name)

Renvoie TRUE(vrai) si la police spécifié existe dans le système.

Propriétés

name

Le nom de la police. Par défaut c'est "MS PGothic".

Inclus un tableau de chaine de caractère, pour spécifier les multiples polices pouvant être utilisés dans un ordre désiré.

font.name = ["HGPGyoshotai", "MS PGothic"]

Dans cet exemple, si la police à plus haute priorité HGPGyoshotai n'éxiste pas dans le système, le second choix MS PGothic sera utilisé à la place.

size

La taille de la police. Par défaut c'est 22 points.

bold

Le drapeau de l'option "gras". Par défaut c'est FALSE(faux).

italic

Le drapeau de l'option "italique". Par défaut c'est FALSE(faux).

color

La couleur de la police (Color). La valeur Alpha peut aussi être utilisée. Par défaut c'est (255,255,255,255).

Propriétés de Classe

default_name
default_size
default_bold
default_italic
default_color

Change la valeur par défaut pour chaque composant, pouvant s'appliquer à chaque nouvel objet Font.

Font.default_name = "MS PMincho"
Font.default_bold = true


Plane // Plan

La classe de plan. Les plans sont des sprites spécials qui couvrent les modèles de bitmap au travers tout l'écran, et sont utilisés pour afficher les panoramas et le brouillard.

Classe Parente

  • Object

Méthode de la Classe

Plane.new([viewport])

Crée un objet Plan. Spécifier un Viewport (Viewport) si nécessaire.

Méthodes

dispose

Libère le plan. Si le plan a déjà été libéré, ne fait rien.

disposed?

Renvoie TRUE si le plan a été libéré.

viewport

Récupère le Viewport (Viewport) spécifié quand le plan a été crée.

Propriétés

bitmap

Réfère au bitmap (Bitmap) utilisé dans le plan.

visible

SI le plan peut-être vu. Si TRUE(vrai), le plan est visible.

z

La coordonnée Z du plan. Plus cette valeur est élevé, plus proche du joueur le plan sera affiché. Si plusieurs objets partage la même valeur Z, l'objet crée le plus récemment sera le plus près du joueur.

ox

L'abscisse du point de départ du plan. Changez cette valeur pour faire défiler le plan.

oy

L'ordonnée du point de départ du plan. Changez cette valeur pour faire défiler le plan.

zoom_x

Le niveau de zoom en abscisse du plan. 1.0 dénote la taille de pixel normal.

zoom_y

Le niveau de zoom en ordonnée du plan. 1.0 dénote la taille de pixel normal.

opacity

L'opacité du plan (0-255). Les valeurs hors de portée sont automatiquement corrigées.

blend_type

Le mode de transparence du plan (0: normale, 1: addition, 2: soustraction).

color

La couleur (Color) à être mélangée avec le plan. Les valeurs Alpha sont utilisées pour le taux de mélange.

tone

Le ton de couleur du plan (Tone).


Rect // Classe Rectangle

La classe De rectangle .

Classe Parente

  • Object

Méthode de Classe

Rect.new(x, y, largeur, hauteur)

Créer un nouvel objet Rect.

Méthod

set(x, y, largeur, hauteur)

Définie tout les paramètres d'un coup.

Propriétés

x

L'abscisse du coin supérieur gauche du rectangle.

y

L'ordonnée du coin supérieur gauche du rectangle.

width

La largeur du rectangle.

height

La hauteur du rectangle.


Sprite

La classe de sprite. Les Sprites sont un concept basique utilisé pour afficher les personnages, etc. à l'écran.

Classe Parente

  • Object

Méthode de Classe

Sprite.new([viewport])

Crée un nouvel objet Sprite. Spécifié le viewport (Viewport) quand nécessaire.

Méthodes

dispose

Libère le sprite. Si le sprite a déjà été libéré, ne fait rien.

disposed?

Renvoie TRUE(vrai) si le sprite a été libéré.

viewport

Récupère le Viewport (Viewport) spécifié quand le sprite est crée.

flash(color, duration)

Commence à flasher le sprite. duration spécifie le nombre de frame(image) que durera le flash.

Si color est défini à nil(nul), le sprite disparaitra pendant le flash.

update

Rafraichit le flash du sprite. Selon la règle, cette méthode n'est appelée qu'une fois par frame(image).

Il n'est pas nécessaire d'appeler cette méthode si aucun effet de flash est nécessaire.

Propriétés

bitmap

Réfère au bitmap (Bitmap) utilisé comme point de départ du sprite.

src_rect

La boite (Rect) prise depuis un bitmap.

visible

La visibilité du sprite. Si TRUE(vrai), le sprite est visible.

x

L'abscisse du sprite.

y

L'ordonnée du sprite.

z

La coordonnée Z du sprite. Plus cette valeur est élevé, plus le sprite sera affiché près du joueur. Si plusieurs objets partage la même valeur Z, l'objet crée le plus récemment sera le plus près du joueur.

ox

L'abscisse du point de départ du sprite.

oy

L'abscisse du point départ du sprite.

zoom_x

Le niveau de Zoom horizontal. 1.0 dénote la taille normal de pixel.

zoom_y

Le niveau de Zoom vertical. 1.0 dénote la taille normal de pixel.

angle

L'angle de rotation du sprite. Spécifies plus de 360 degrés pour une rotation en sens anti-horaire. Cependant, dessiner un sprite tournant prend des ressources, donc éviter les abus.

mirror

Drapeau démontrant que le sprite est retourné horizontalement. Si TRUE(vrai), le sprite sera dessiné retourné.

bush_depth

La profondeur de camouflage pour ce sprite. C'est une valeur de pixel indiquant combien la partie basse du sprite sera affichée comme semi-transaparente. Une façon simple de donner un sens à des pieds d'un personnage obscurcis par le feuillage et similaire.

opacity

L'opacité du sprite (0-255). Les valeurs hors de portées sont corrigées automatiquement.

blend_type

La mode de transparence du sprite(0: normal, 1: addition, 2: soustraction).

color

La couleur (Color) à être mélangée avec le sprite pour la transparence. Les valeurs Alpha sont utilisées pour le taux de mélange.

Géré séparément de la couleur de fusion avec un effet de flash. Cependant, la couleur avec la valeur alpha la plus élevée lors de l'affichage aura la plus haute priorité lors de la fusion.

tone

Le ton de couleur du sprite (Tone).


Table // Classe Tableau Multidimensionnel

La classe des tableaux multidimensionnel. Chaque élément prends 2bit signés, allant de -32,768 à 32,767.

La classe Array(tableau) de Ruby ne marche pas très efficacement quand elle manipule de large quantité de données, d'où le rajout de cette classe.

Classe Parente

  • Object

Méthode de Classe

Table.new(xsize[, ysize[, zsize]])

Créer un objet Table. Spécifie la taille de chaque dimension de ce tableau multidimensionnel. Des tableaux à 1, 2, et 3 dimensions sont possibles. Les tableaux sans paramètres sont aussi permis.

Méthodes

resize(xsize[, ysize[, zsize]])

Change la taille du tableau. Toutes les données avant le changement de taille sont retenues.

xsize
ysize
zsize

Récupère la tailles de chacunes des dimensions du tableau.

Propriétés

self[x]
self[x, y]
self[x, y, z]

Accède aux éléments du tableau. Nécessite le même nombre d'arguments qu'il y a de dimensions dans le tableau crée.Renvoie nil si l'élément spécifié n'est pas trouvé.


Tilemap

La classe gérant les cartes de carreaux. Les cartes de carreaux sont un concept spécifique utilisé dans l'affichage de carte de jeu en 2D, crée de manière interne à partir de plusieurs sprites.

Classe Parente

  • Object

Méthode de Classe

Tilemap.new([viewport])

Crée un objet Tilemap. Spécifie un Viewport (Viewport) si nécessaire.

Méthodes

dispose

Libère le tilemap. Si le tilemap a déjà été libéré, ne fait rien.

disposed?

Renvoie TRUE(vrai) si le tilemap a été libéré.

viewport

Récupère le Viewport (Viewport) spécifié lors de la création du tilemap.

update

Mets à jour l'animation des carreaux auto-liables, etc. Selon la règle, cette méthode est appelée une fois par frame(image).

Propriétés

tileset

Réfère au bitmap (Bitmap) utilisé comme chipset.

autotiles[index]

Réfère au bitmap (Bitmap) utilisé comme carreau auto-liable avec un chiffre index allant de 0 à 6.

map_data

Réfère aux données de carte (Table). Définie un tableau à 3 dimensions mesurant [ taille horizontale * taille verticale * 3 ].

flash_data

Réfère aux données de flash (Table) utilisé lorsque on montre un ensemble de déplacement possible dans la simulation de jeux, etc. Définie un tableau à 2 dimensions mesurant [ taille horizontale* taille verticale ]. Ce tableau doit être de la même taille que les données de carte. Chaque élément utilise 4 bits pour représenter la couleur RGB de flash du carreaux; par exemple, 0xf84 flash en RGB(15,8,4).

priorities

Référence à la table de priorité (Table). Définie un tableau à 1 dimension contenant les éléments correspondant aux IDs des carreaux.

visible

La visibilité du tilemap. Si TRUE(vrai), Le tilemap est visible.

ox

L'abscisse du point de départ du tilemap. Changez cette valeur pour faire défiler le tilemap.

oy

L'ordonnée du point de départ du tilemap. Changez cette valeur pour faire défiler le tilemap.

Notes

La coordonnée Z de chaque sprite utilisés pour créer un est fixée à une valeur précise.

  1. Les carreaux ayant une priorité de 0 ont toujours une coordonnées Z de 0.
  2. Les carreaux de priorité 1 placés au plus de l'écran, ont une coordonnée Z de 64.
  3. Chaque fois qu'une priorité augmente de 1 ou que le carreau inférieur suivant est sélectionné, la coordonnée Z augmente de 32.
  4. La coordonnée Z change selon le défilement verticale du tilemap.

Souvenez vous bien de ces règles lorsque vous définissez les coordonnées Z de n'importe quel personnage de carte.


Tone // Classe de Ton

La classe de ton de couleur. Chaque composant est géré avec une valeur à virgule flottante(Float).

Classe Parente

  • Object

Méthode de Classe

Tone.new(red, green, blue[, gray])

Crée un objet Tone. Si gray est omis, il est considéré comme égal à 0.

Méthode

set(red, green, blue[, gray])

Définie tout les composants à la fois.

Propriétés

red

La valeur d'ajustement de la balance du rouge (-255 à 255). Les valeurs hors de portée sont automatiquement corrigées.

green

La valeur d'ajustement de la balance du vert (-255 à 255). Les valeurs hors de portée sont automatiquement corrigées.

blue

La valeur d'ajustement de la balance du bleu (-255 à 255). Les valeurs hors de portée sont automatiquement corrigées.

gray

La force du filtre de gris (0 à 255). Les valeurs hors de portée sont automatiquement corrigées.

Quand cette valeur n'est pas 0, le temps d'éxecution est significativement plus long que lorsqu'en utilisant seulement les valeurs d'ajustement de balance de ton.


Viewport

La classe de viewport. Utilisé pour l'affichage de sprite dans une des portions de l'écran, sans superposition avec d'autres régions.

Classe Parente

  • Object

Méthodes de Classe

Viewport.new(x, y, width, height)
Viewport.new(rect)

Créer un objet viewport.

Méthodes

dispose

Libère un viewport. Si le viewport a déjà été libéré, ne faire rien.

disposed?

Renvoie TRUE si le viewport a été libéré.

flash(color, duration)

Commence à faire flasher le viewport. duration spécifie le nombre de frames(d'image) que durera le flash.

Si color est nul, le viewport disparaitra pendand le flash.

update

Rafraichit le flash du viewport. Selon la règle, cette méthode est appelée une fois par frame(image).

Il n'est pas nécessaire d'appeller cette méthode si aucun effet de flash est nécessaire.

Propriétés

rect

La boîte (Rect) définissant le viewport.

visible

La visibilité du viewport. Si TRUE(vrai), alors le viewport est visible.

z

La coordonnée Z du viewport. Plus cette valeur est élevé, plus proche du joueur le viewport sera affiché. Si plusieurs objets partage la même valeur Z, l'objet crée le plus récemment sera le plus près du joueur.

ox

L'abscisse du point de départ du viewport. Changer cette valeur pour secouer l'écran, etc.

oy

L'ordonnée du point de départ du viewport. Changer cette valeur pour secouer l'écran, etc.

color

La couleur (Color) à mélanger avec le viewport. Les valeur Alpha sont utilisé pour le taux de mélange.

Géré séparément de la couleur mélangé d'un effet de flash.

tone

La couleur de ton du viewport (Tone).


Window // Fenêtre

La classe de fenêtre du jeu. Créée de manière interne à partir de plusieurs sprites.

Classe Parente

  • Object

Méthode de Classe

Window.new([viewport])

Crée un objet fenêtre. Spécifier le Viewport (Viewport) si nécessaire.

Méthodes

viewport

Récupère le Viewport (Viewport) spécifié quand la fenêtre fut créée.

dispose

Libère la fenêtre. Si la fenêtre a déjà été libérée, ne fait rien.

disposed?

Renvoie TRUE si la fenêtre a été libérée.

update

Rafraichit le clignotement du curseur et l'animation graphique de pause. Selon la règle, cette méthode est appelée une fois par frame(image).

Propriétés

windowskin

Fait référence au bitmap (Bitmap) utilisé comme apparence de fenêtre.

contents

Fait référence au bitmap (Bitmap) utilisé pour le contenu de la fenêtre.

stretch

La méthode d'affichage de papier peint. Si TRUE(vrai), étire l'image de papier peint; Si FALSE(faux), crée une mosaique. La valeur par défaut est TRUE(vrai).

cursor_rect

La boite de curseur (Rect). Définie le coin supérieur gauche du curseur avec des coordonnées relatives (-16, -16).

active

Etat de clignotement du curseur. Si TRUE(vrai), le curseur clignote.

visible

La visibilité de la fenêtre. Si TRUE(vrai), la fenêtre est visible.

pause

La visibilité du graphisme de pause. C'est un symbole qui apparait dans une fenêtre de message quand on attent que le joueur appuie sur une touche. Si TRUE, le graphisme est visible.

x

L'abscisse de la fenêtre.

y

L'ordonnée de la fenêtre.

width

La largeur de la fenêtre.

height

La hauteur de la fenêtre.

z

La coordonnée Z de la fenêtre. Plus cette valeur est élevé, plus la fenêtre sera affichée près du joueur. Si plusieurs objets partage la même valeur Z, l'objet crée le plus récemment sera le plus près du joueur. La coordonnée Z du contenu de la fenêtre est égal à la celle du fond de la fenêtre plus 2.

ox

L'abscisse du point de départ du contenu de la fenêtre. Changez cette valeur pour faire défiler le contenu de la fenêtre.

oy

L'ordonnée du point de départ du contenu de la fenêtre. Changez cette valeur pour faire défiler le contenu de la fenêtre.

opacity

L'opacité de la fenêtre (0-255). Les valeurs hors de portée sont automatiquement corrigées.

back_opacity

L'opacité du fond de la fenêtre (0-255). Les valeurs hors de portée sont automatiquement corrigées.

contents_opacity

L'opacité du contenu de la fenêtre (0-255). Les valeurs hors de portée sont automatiquement corrigées.


RGSSSError // Erreur du RGSS

RGSSError // Erreur du RGSS

Classe d'exception fournissant des notifications d'erreurs interne du RGSS.

Générée quand, par exemple, on essaie d'accéder à des objets de classe Bitmap ou Sprite qui ont déjà été libérés.

Classe Parente

  • StandardError // Classe d'erreur standard


RPG::Sprite

Classe pour les sprites ajoutés aux diverses manipulations d'effets utilisées dans RPGXP.

Classe Parente

  • Sprite

Méthodes

whiten

Rends le sprite blanc pour un faible effet de flash. Utilisé lorsque le "combattant" se déplace.

appear

Une Transition fluide d'un sprite de transparent à opaque. Utilisé lorsque un perso régénère et quand un ennemi apparait.

escape

Une transition fluide d'un sprite d'opaque à transparent. Utilisé lorsque un ennemi fuit.

collapse

Rougit la couleur du sprite et effectue une transition fluide vers une transparence. Utilisé quand les HO atteignent 0 et que le personnage s'effondre.

damage(valeur, critique)

Affiche la quantité de dégats ou le mots "Raté!"(Miss!) sur un pop-up devant le sprite.

Si valeur est un nombre positif, la quantité de dégats normaux sera affichée en blanc. Si c'est un nombre négatif, la quantité de récupération sera affichée en vert sans signe négatif. Si valeur est du texte, cela sera affiché en blanc.

Si critique est défini sur TRUE(VRAI), le mot "Coup Critique"(Critical) sera affiché au dessus des dégats.

Le sprite de dégats est affiché à une coordonnée Z de 3000.

animation(animation, réussite)

Joue l'animation spécifiéeanimation (RPG::Animation) sur le sprite indiqué.

Si réussite is TRUE(vrai), alors elle sera géré en tant que réussité; si c'est FALSE(faux), comme un échec. Celà est utilisé comme condition dans [ES et temps de Flash].

Le sprite d'animation est affiché à une coordonnée Z de 2000.

Si l'animation a plusieurs cibles, la méthode est appelée simplement pour chaque sprite. La classe fera automatiquement toutes les décisions de manière interne, ce qui évite toutes animations en boucles dont les positions sont définies en tant qu' [Ecran].

Le fichier de l'animation affichée est retrouvé depuis la mise en cache via le module de mise en cache(RPG::Cache) et, pour libérer de la mémoire, libéré dès que l'animation a fini d'être jouée. De plus, cette classe utilise un compteur de référence interne. Habituellement il n'y a pas besoin d'être conscient de ce fait, mais on doit y faire attention lorsque le module RPG::Cache d'animation est utilisé hors de son contexte.

Si animation est de type nil, l'animation se stoppe.

loop_animation(animation)

Joue l'animation spécifiée par animation (RPG::Animation) dans une boucle sur les sprite indiquées.

Contrairement aux animations normales, cela bouclera à la 1ère image(de l'animation) après avoir atteint la dernière, sans aucune pause. Peut-être affichée en même temps qu'une animation normale. Cette méthode est utilisée pour afficher l'animation spécifiée dans la classe d'Etats(RPG::State).

Si animation est de type nil, l'animation se stoppe.

blink_on

Active le clignotement. Fait blanchir un sprite, puis répète l'effet à un intervale défini. Utilisé sur les personnage lorsque on entre leurs commandes.

blink_off

Désactive le clignotement.

blink?

Renvoie TRUE(vrai) si le clignotement est activé.

effect?

Renvoie TRUE(vrai) quand whiten, appear, escape, collapse, damage, ou animation est actif.

Ni loop_animation ni blink n'ont d'effet.

update

Rafraichit chaque effet. Selon la règle, cette méthode est appelée une fois par image(frame).

Définition

module RPG
  class Sprite < ::Sprite
    @@_animations = []
    @@_reference_count = {}
    def initialize(viewport = nil)
      super(viewport)
      @_whiten_duration = 0
      @_appear_duration = 0
      @_escape_duration = 0
      @_collapse_duration = 0
      @_damage_duration = 0
      @_animation_duration = 0
      @_blink = false
    end
    def dispose
      dispose_damage
      dispose_animation
      dispose_loop_animation
      super
    end
    def whiten
      self.blend_type = 0
      self.color.set(255, 255, 255, 128)
      self.opacity = 255
      @_whiten_duration = 16
      @_appear_duration = 0
      @_escape_duration = 0
      @_collapse_duration = 0
    end
    def appear
      self.blend_type = 0
      self.color.set(0, 0, 0, 0)
      self.opacity = 0
      @_appear_duration = 16
      @_whiten_duration = 0
      @_escape_duration = 0
      @_collapse_duration = 0
    end
    def escape
      self.blend_type = 0
      self.color.set(0, 0, 0, 0)
      self.opacity = 255
      @_escape_duration = 32
      @_whiten_duration = 0
      @_appear_duration = 0
      @_collapse_duration = 0
    end
    def collapse
      self.blend_type = 1
      self.color.set(255, 64, 64, 255)
      self.opacity = 255
      @_collapse_duration = 48
      @_whiten_duration = 0
      @_appear_duration = 0
      @_escape_duration = 0
    end
    def damage(value, critical)
      dispose_damage
      if value.is_a?(Numeric)
        damage_string = value.abs.to_s
      else
        damage_string = value.to_s
      end
      bitmap = Bitmap.new(160, 48)
      bitmap.font.name = "Arial Black"
      bitmap.font.size = 32
      bitmap.font.color.set(0, 0, 0)
      bitmap.draw_text(-1, 12-1, 160, 36, damage_string, 1)
      bitmap.draw_text(+1, 12-1, 160, 36, damage_string, 1)
      bitmap.draw_text(-1, 12+1, 160, 36, damage_string, 1)
      bitmap.draw_text(+1, 12+1, 160, 36, damage_string, 1)
      if value.is_a?(Numeric) and value < 0
        bitmap.font.color.set(176, 255, 144)
      else
        bitmap.font.color.set(255, 255, 255)
      end
      bitmap.draw_text(0, 12, 160, 36, damage_string, 1)
      if critical
        bitmap.font.size = 20
        bitmap.font.color.set(0, 0, 0)
        bitmap.draw_text(-1, -1, 160, 20, "CRITICAL", 1)
        bitmap.draw_text(+1, -1, 160, 20, "CRITICAL", 1)
        bitmap.draw_text(-1, +1, 160, 20, "CRITICAL", 1)
        bitmap.draw_text(+1, +1, 160, 20, "CRITICAL", 1)
        bitmap.font.color.set(255, 255, 255)
        bitmap.draw_text(0, 0, 160, 20, "CRITICAL", 1)
      end
      @_damage_sprite = ::Sprite.new(self.viewport)
      @_damage_sprite.bitmap = bitmap
      @_damage_sprite.ox = 80
      @_damage_sprite.oy = 20
      @_damage_sprite.x = self.x
      @_damage_sprite.y = self.y - self.oy / 2
      @_damage_sprite.z = 3000
      @_damage_duration = 40
    end
    def animation(animation, hit)
      dispose_animation
      @_animation = animation
      return if @_animation == nil
      @_animation_hit = hit
      @_animation_duration = @_animation.frame_max
      animation_name = @_animation.animation_name
      animation_hue = @_animation.animation_hue
      bitmap = RPG::Cache.animation(animation_name, animation_hue)
      if @@_reference_count.include?(bitmap)
        @@_reference_count[bitmap] += 1
      else
        @@_reference_count[bitmap] = 1
      end
      @_animation_sprites = []
      if @_animation.position != 3 or not @@_animations.include?(animation)
        for i in 0..15
          sprite = ::Sprite.new(self.viewport)
          sprite.bitmap = bitmap
          sprite.visible = false
          @_animation_sprites.push(sprite)
        end
        unless @@_animations.include?(animation)
          @@_animations.push(animation)
        end
      end
      update_animation
    end
    def loop_animation(animation)
      return if animation == @_loop_animation
      dispose_loop_animation
      @_loop_animation = animation
      return if @_loop_animation == nil
      @_loop_animation_index = 0
      animation_name = @_loop_animation.animation_name
      animation_hue = @_loop_animation.animation_hue
      bitmap = RPG::Cache.animation(animation_name, animation_hue)
      if @@_reference_count.include?(bitmap)
        @@_reference_count[bitmap] += 1
      else
        @@_reference_count[bitmap] = 1
      end
      @_loop_animation_sprites = []
      for i in 0..15
        sprite = ::Sprite.new(self.viewport)
        sprite.bitmap = bitmap
        sprite.visible = false
        @_loop_animation_sprites.push(sprite)
      end
      update_loop_animation
    end
    def dispose_damage
      if @_damage_sprite != nil
        @_damage_sprite.bitmap.dispose
        @_damage_sprite.dispose
        @_damage_sprite = nil
        @_damage_duration = 0
      end
    end
    def dispose_animation
      if @_animation_sprites != nil
        sprite = @_animation_sprites[0]
        if sprite != nil
          @@_reference_count[sprite.bitmap] -= 1
          if @@_reference_count[sprite.bitmap] == 0
            sprite.bitmap.dispose
          end
        end
        for sprite in @_animation_sprites
          sprite.dispose
        end
        @_animation_sprites = nil
        @_animation = nil
      end
    end
    def dispose_loop_animation
      if @_loop_animation_sprites != nil
        sprite = @_loop_animation_sprites[0]
        if sprite != nil
          @@_reference_count[sprite.bitmap] -= 1
          if @@_reference_count[sprite.bitmap] == 0
            sprite.bitmap.dispose
          end
        end
        for sprite in @_loop_animation_sprites
          sprite.dispose
        end
        @_loop_animation_sprites = nil
        @_loop_animation = nil
      end
    end
    def blink_on
      unless @_blink
        @_blink = true
        @_blink_count = 0
      end
    end
    def blink_off
      if @_blink
        @_blink = false
        self.color.set(0, 0, 0, 0)
      end
    end
    def blink?
      @_blink
    end
    def effect?
      @_whiten_duration > 0 or
      @_appear_duration > 0 or
      @_escape_duration > 0 or
      @_collapse_duration > 0 or
      @_damage_duration > 0 or
      @_animation_duration > 0
    end
    def update
      super
      if @_whiten_duration > 0
        @_whiten_duration -= 1
        self.color.alpha = 128 - (16 - @_whiten_duration) * 10
      end
      if @_appear_duration > 0
        @_appear_duration -= 1
        self.opacity = (16 - @_appear_duration) * 16
      end
      if @_escape_duration > 0
        @_escape_duration -= 1
        self.opacity = 256 - (32 - @_escape_duration) * 10
      end
      if @_collapse_duration > 0
        @_collapse_duration -= 1
        self.opacity = 256 - (48 - @_collapse_duration) * 6
      end
      if @_damage_duration > 0
        @_damage_duration -= 1
        case @_damage_duration
        when 38..39
          @_damage_sprite.y -= 4
        when 36..37
          @_damage_sprite.y -= 2
        when 34..35
          @_damage_sprite.y += 2
        when 28..33
          @_damage_sprite.y += 4
        end
        @_damage_sprite.opacity = 256 - (12 - @_damage_duration) * 32
        if @_damage_duration == 0
          dispose_damage
        end
      end
      if @_animation != nil and (Graphics.frame_count % 2 == 0)
        @_animation_duration -= 1
        update_animation
      end
      if @_loop_animation != nil and (Graphics.frame_count % 2 == 0)
        update_loop_animation
        @_loop_animation_index += 1
        @_loop_animation_index %= @_loop_animation.frame_max
      end
      if @_blink
        @_blink_count = (@_blink_count + 1) % 32
        if @_blink_count < 16
          alpha = (16 - @_blink_count) * 6
        else
          alpha = (@_blink_count - 16) * 6
        end
        self.color.set(255, 255, 255, alpha)
      end
      @@_animations.clear
    end
    def update_animation
      if @_animation_duration > 0
        frame_index = @_animation.frame_max - @_animation_duration
        cell_data = @_animation.frames[frame_index].cell_data
        position = @_animation.position
        animation_set_sprites(@_animation_sprites, cell_data, position)
        for timing in @_animation.timings
          if timing.frame == frame_index
            animation_process_timing(timing, @_animation_hit)
          end
        end
      else
        dispose_animation
      end
    end
    def update_loop_animation
      frame_index = @_loop_animation_index
      cell_data = @_loop_animation.frames[frame_index].cell_data
      position = @_loop_animation.position
      animation_set_sprites(@_loop_animation_sprites, cell_data, position)
      for timing in @_loop_animation.timings
        if timing.frame == frame_index
          animation_process_timing(timing, true)
        end
      end
    end
    def animation_set_sprites(sprites, cell_data, position)
      for i in 0..15
        sprite = sprites[i]
        pattern = cell_data[i, 0]
        if sprite == nil or pattern == nil or pattern == -1
          sprite.visible = false if sprite != nil
          next
        end
        sprite.visible = true
        sprite.src_rect.set(pattern % 5 * 192, pattern / 5 * 192, 192, 192)
        if position == 3
          if self.viewport != nil
            sprite.x = self.viewport.rect.width / 2
            sprite.y = self.viewport.rect.height - 160
          else
            sprite.x = 320
            sprite.y = 240
          end
        else
          sprite.x = self.x - self.ox + self.src_rect.width / 2
          sprite.y = self.y - self.oy + self.src_rect.height / 2
          sprite.y -= self.src_rect.height / 4 if position == 0
          sprite.y += self.src_rect.height / 4 if position == 2
        end
        sprite.x += cell_data[i, 1]
        sprite.y += cell_data[i, 2]
        sprite.z = 2000
        sprite.ox = 96
        sprite.oy = 96
        sprite.zoom_x = cell_data[i, 3] / 100.0
        sprite.zoom_y = cell_data[i, 3] / 100.0
        sprite.angle = cell_data[i, 4]
        sprite.mirror = (cell_data[i, 5] == 1)
        sprite.opacity = cell_data[i, 6] * self.opacity / 255.0
        sprite.blend_type = cell_data[i, 7]
      end
    end
    def animation_process_timing(timing, hit)
      if (timing.condition == 0) or
         (timing.condition == 1 and hit == true) or
         (timing.condition == 2 and hit == false)
        if timing.se.name != ""
          se = timing.se
          Audio.se_play("Audio/SE/" + se.name, se.volume, se.pitch)
        end
        case timing.flash_scope
        when 1
          self.flash(timing.flash_color, timing.flash_duration * 2)
        when 2
          if self.viewport != nil
            self.viewport.flash(timing.flash_color, timing.flash_duration * 2)
          end
        when 3
          self.flash(nil, timing.flash_duration * 2)
        end
      end
    end
    def x=(x)
      sx = x - self.x
      if sx != 0
        if @_animation_sprites != nil
          for i in 0..15
            @_animation_sprites[i].x += sx
          end
        end
        if @_loop_animation_sprites != nil
          for i in 0..15
            @_loop_animation_sprites[i].x += sx
          end
        end
      end
      super
    end
    def y=(y)
      sy = y - self.y
      if sy != 0
        if @_animation_sprites != nil
          for i in 0..15
            @_animation_sprites[i].y += sy
          end
        end
        if @_loop_animation_sprites != nil
          for i in 0..15
            @_loop_animation_sprites[i].y += sy
          end
        end
      end
      super
    end
  end
end


RPG::Weather

Classe pour les effets météorologique (pluie, orage, neige) affichés via La commande d'évènement de RPGXP.

Classe Parente

  • Object

Méthode de Classe

RPG::Weather.new([viewport])

Crée un objet RPG::Weather. Spécifier un Viewport (Viewport) si nécessaire.

Méthodes

dispose

Libère (enlève) un effet météo.

update

Actualise l'effet météo. Selon la règle, cette méthode est appelée une fois par Image(Frame).

Propriétés

type

Type de météo (0: aucun, 1: pluie, 2:orage; 3: neige).

max

Quantité de "météo" à montrer à la fois (0..40).

ox

L'abscisse du point de départ de l'effet. En correlation avec le point de départ des carreaux de carte et du défilement.

oy

L'ordonnée du point de départ de l'effet. En correlation avec le point de départ des carreaux de carte et du défilement.

Définition

module RPG
  class Weather
    def initialize(viewport = nil)
      @type = 0
      @max = 0
      @ox = 0
      @oy = 0
      color1 = Color.new(255, 255, 255, 255)
      color2 = Color.new(255, 255, 255, 128)
      @rain_bitmap = Bitmap.new(7, 56)
      for i in 0..6
        @rain_bitmap.fill_rect(6-i, i*8, 1, 8, color1)
      end
      @storm_bitmap = Bitmap.new(34, 64)
      for i in 0..31
        @storm_bitmap.fill_rect(33-i, i*2, 1, 2, color2)
        @storm_bitmap.fill_rect(32-i, i*2, 1, 2, color1)
        @storm_bitmap.fill_rect(31-i, i*2, 1, 2, color2)
      end
      @snow_bitmap = Bitmap.new(6, 6)
      @snow_bitmap.fill_rect(0, 1, 6, 4, color2)
      @snow_bitmap.fill_rect(1, 0, 4, 6, color2)
      @snow_bitmap.fill_rect(1, 2, 4, 2, color1)
      @snow_bitmap.fill_rect(2, 1, 2, 4, color1)
      @sprites = []
      for i in 1..40
        sprite = Sprite.new(viewport)
        sprite.z = 1000
        sprite.visible = false
        sprite.opacity = 0
        @sprites.push(sprite)
      end
    end
    def dispose
      for sprite in @sprites
        sprite.dispose
      end
      @rain_bitmap.dispose
      @storm_bitmap.dispose
      @snow_bitmap.dispose
    end
    def type=(type)
      return if @type == type
      @type = type
      case @type
      when 1
        bitmap = @rain_bitmap
      when 2
        bitmap = @storm_bitmap
      when 3
        bitmap = @snow_bitmap
      else
        bitmap = nil
      end
      for i in 1..40
        sprite = @sprites[i]
        if sprite != nil
          sprite.visible = (i <= @max)
          sprite.bitmap = bitmap
        end
      end
    end
    def ox=(ox)
      return if @ox == ox;
      @ox = ox
      for sprite in @sprites
        sprite.ox = @ox
      end
    end
    def oy=(oy)
      return if @oy == oy;
      @oy = oy
      for sprite in @sprites
        sprite.oy = @oy
      end
    end
    def max=(max)
      return if @max == max;
      @max = [[max, 0].max, 40].min
      for i in 1..40
        sprite = @sprites[i]
        if sprite != nil
          sprite.visible = (i <= @max)
        end
      end
    end
    def update
      return if @type == 0
      for i in 1..@max
        sprite = @sprites[i]
        if sprite == nil
          break
        end
        if @type == 1
          sprite.x -= 2
          sprite.y += 16
          sprite.opacity -= 8
        end
        if @type == 2
          sprite.x -= 8
          sprite.y += 16
          sprite.opacity -= 12
        end
        if @type == 3
          sprite.x -= 2
          sprite.y += 8
          sprite.opacity -= 8
        end
        x = sprite.x - @ox
        y = sprite.y - @oy
        if sprite.opacity < 64 or x < -50 or x > 750 or y < -300 or y > 500
          sprite.x = rand(800) - 50 + @ox
          sprite.y = rand(800) - 200 + @oy
          sprite.opacity = 255
        end
      end
    end
    attr_reader :type
    attr_reader :max
    attr_reader :ox
    attr_reader :oy
  end
end


RGSS Modules Intégrés

  • Audio
  • Graphics//Graphismes
  • Input//Touches
  • RPG
  • RPG::Cache//Mise en Cache


Audio

Le module s'occupant des processus de musique et de son.

Méthods de Module

Audio.bgm_play(filename[, volume[, pitch]])

Commence à jouer une musique de fond(BGM). Défini le nom de fichier, le volume et le pitch.

Cherche aussi automatiquement les fichiers inclus dans le RGSS-RTP. Les extensions de fichier peuvent être omises.

Audio.bgm_stop

Arrête la lecture d'une BGM.

Audio.bgm_fade(time)

Commence un fondu de BGM. time est la longueur du fondu en millisecondes.

Audio.bgs_play(filename[, volume[, pitch]])

Commence à Jouer un bruit de fond(BGS). Défini le nom de fichier, le volume et le pitch.

Cherche aussi automatiquement les fichiers inclus dans le RGSS-RTP. Les extensions de fichier peuvent être omises.

Audio.bgs_stop

Arrête la lecture d'un BGS.

Audio.bgs_fade(time)

Commence un fondu de BGS. time est la longueur du fondu en millisecondes.

Audio.me_play(filename[, volume[, pitch]])

Commence la lecture d'un effet de musique (ME). Défini le nom de fichier, le volume et le pitch.

Cherche aussi automatiquement les fichiers inclus dans le RGSS-RTP. Les extensions de fichier peuvent être omises.

Audio.me_stop

Arrête la lecture D'un ME .

Audio.me_fade(time)

Commence un fondu de ME. time est la longueur du fondu en millisecondes.

Audio.se_play(filename[, volume[, pitch]])

Commence la lecture d'un effet sonore (SE). Défini le nom de fichier, le volume et le pitch.

Cherche aussi automatiquement les fichiers inclus dans le RGSS-RTP. Les extensions de fichier peuvent être omises.

Quand on tente de jouer le même SE plus d'une fois dans une très courte période, cela sera automatiquement filtré et éliminé pour éviter les lecture variable.

Audio.se_stop

Arrête la lecture d'un SE .


Graphics // Graphisme

Le module s'occupant des processus graphiques.

Méthodes du Module

Graphics.update

Rafraichit l'écran de jeu et avance le temps d'une frame (image). Cette méthode doit être appelée à des intervalles définis.

loop do
  Graphics.update
  Input.update
  do_something
end

Si cette méthod n'est pas appelé pendant 10 secondes ou plus, le program verra que le script est hors de contrôle et le forcera à quitter.

Graphics.freeze

Gèle l'écran actuel pour la préparation des transitions.

Les réécriture d'écran sont interdites jusqu'à ce que la méthode de transition soit appellée.

Graphics.transition([duration[, filename[, vague]]])

Crée un transition à partir d'un écran fixe(gelé) par Graphics.freeze jusqu'à l'écran actuel.

duration est le nombre de frame(image) que la transition durera. Si il est omis, cette valeur vaut 8.

filename précise le nom du fichier de transition graphique. Quand il n'est pas spécifié, un fondu standard est utilisé. Cherche aussi, automatiquement les fichiers inclus dans RGSS-RTP et les Archives Encryptées. Les extensions de fichier peuvent être omises.

vague définie l'ambiguité de la bordure entre les points de départ et de fin du graphisme. Plus la valeur est élevée, plus l'ambiguité est grande. Quand elle est omise, la valeur est défini à 40.

Graphics.frame_reset

Ré-initialise le temps de rafraichissement de l'écran. Après un processus consommeur de temps, appeller cette méthode évite les oublis extrêmes de frame(image).

Propriétés du Module

Graphics.frame_rate

En [Smooth Mode], le nombre de fois que l'écran est rafraichit par seconde. Plus la valeur est élevée, plus une puissance de CPU est requise. Normallement défini à 40. Quand le [Smooth Mode]n'est pas activé, le taux de rafraichissement est divisé par 2, et les graphismes sont dessinés dans tout autre frame(image).

Changer cette propriété n'est pas recommandé; cependant elle peut être définie n'importe où d'une valeur de 10 à 120. Les valeurs hors de portée sont corrigées automatiquement.

Graphics.frame_count

Le compteur de rafraichissement d'écran. Défini la propriété à 0 au démarrage du jeu, et le temps de jeu( en seconde) peut être calculé en divisant cette valeur par la valeur de la propriété frame_rate.


Input

Un module qui sert à gérer les données d'entrée d'une manette de jeu ou d'un clavier.

Méthode du Module

Input.update

Met à jour les données d'entrée. Selon la règle, cette méthode est appellé une fois par frame(image).

Input.press?(num)

Détermine si le bouton num est actuellement pressé.

Si le bouton est en train d'être pressé, retournera TRUE(vrai). Si non, retourne FALSE(faux).

if Input.press?(Input::C)
  faire_quelquechose
end
Input.trigger?(num)

Détermine si le bouton num a encore été pressé.

"Encore pressé" est à comprendre dans le sens qu'un temps a passé entre 2 pression du bouton, de non pressé à pressé.

Si le bouton est en train d'être pressé, retourne TRUE(vrai); sinon retourne FALSE(faux).

Input.repeat?(num)

Détermine si le bouton num est appuyé de manière répétée.

À la différence de trigger?, prend en compte la répétition de l'appui du bouton en continue.

Si le bouton est en train d'être pressé, retourne TRUE(vrai); sinon retourne FALSE(faux).

Input.dir4

Vérifie l'état des boutons directionnels, traduit les données en un format d'entrée spécialisé en 4 directions, et renvoie le numéro de touche équivalent (2, 4, 6, 8).

Si aucun boutons directionnel n'est appuyé( ou l'équivalent), renvoie 0.

Input.dir8

Vérifie l'état des boutons directionnels, traduit les données en un format d'entrée spécialisé en 8 directions, et renvoie le numéro de touche équivalent (1, 2, 3, 4, 6, 7, 8, 9).

Si aucun boutons directionnel n'est appuyé( ou l'équivalent), renvoie 0.

Constantes

DOWN LEFT RIGHT UP

Nombres correspondant aux touches down(bas), left(gauche), right(droite), et up(haut).

A B C X Y Z L R

Nombres correspondant aux diverses touches du contrôleur.

SHIFT CTRL ALT

Nombres correspondant directement aux touches SHIFT, CTRL, et ALT du clavier.

F5 F6 F7 F8 F9

Nombres correspondant aux touches fonction du clavier. Les autres touches fonction sont réservés par le système et ne peuvent pas être utilisées.


RPG

Un module contentant les structures de données d'RPGXP et plus.

Modules Intérieurs

  • RPG::Cache

Classes Intérieurs

  • RPG::Sprite
  • RPG::Weather
  • RPG::Map // Carte
  • RPG::MapInfo // InfoCarte
  • RPG::Event // Evènement
  • RPG::Event::Page // Evènement::Page
  • RPG::Event::Page::Condition // Evènement::Page::Condition(de démarrage)
  • RPG::Event::Page::Graphic // Evènement::Page::Image
  • RPG::EventCommand // Commande d'Evènement
  • RPG::MoveRoute // Chemin de déplacement
  • RPG::MoveCommand // Commande de déplacement
  • RPG::Actor // Personnage, Héros
  • RPG::Class // Classe(Métier)
  • RPG::Class::Learning // Classe::Apprentissage(des techniques)
  • RPG::Skill // Technique
  • RPG::Item // Objet
  • RPG::Weapon // Arme
  • RPG::Armor // Armure
  • RPG::Enemy // Ennemi
  • RPG::Enemy::Action // Ennemi:Action (Action de l'ennemi)
  • RPG::Troop // Troupe (Equipe pour les monstres)
  • RPG::Troop::Member // Troupe::Membre
  • RPG::Troop::Page // Troupe::Page(d'évènement)
  • RPG::Troop::Page::Condition // Troupe::Page::Condition(de démarrage)
  • RPG::State // Etat
  • RPG::Animation // Animation
  • RPG::Animation::Frame // Animation::Image
  • RPG::Animation::Timing // Animation::Temps
  • RPG::Tileset // Ensemble de carreaux, les carreaux contenant les images composant la map
  • RPG::CommonEvent // Evènement commun
  • RPG::System // Système
  • RPG::System::Words // Système::Termes
  • RPG::System::TestBattler // Système::TestCombat
  • RPG::AudioFile // FichierAudio


RPG::Cache // Mise en cache

Un module qui charge chaque formats de fichier graphique de RPGXP, crée un objet Bitmap et le retient.

Pour accélérer les temps de chargement et conserver de la mémoire, ce module conserve l'objet Bitmap crée dans une liste interne, permettant au programme de renvoyer des objets préexistant quand le même bitmap est demandé à nouveau.

Cette caractéristique signifie que vou devez faire attention à ne pas utiliser Bitmap#dispose pour libérer les bitmaps spécifiés dans les origines des autres sprites. SI ces objets ont déja été libérés quand le bitmap est demandé, les objets sont automatiquement recrées, donc il est intelligent de libérer l'objet si vous êtes certain qu'il n'est pas référencé ailleurs. Les Bitmaps consomme une grande quantité de mémoire, donc faisez une habitude de libérer les bitmaps que vous utilisez rarement.

Si le nom de fichier spécifié est une chaine vide, le module créera et renverra un bitmap de 32 x 32 pixels. Cela assure une compatibilité avec la désignation "(Aucune)" de RPGXP.

Méthodes de Module

RPG::Cache.animation(filename, hue)

Récupère un fichier d'animation. Utilisez hue pour ajuster ses valeurs de ton.

RPG::Cache.autotile(filename)

Récupère un fichier d'autotile(carreaux auto-liables).

RPG::Cache.battleback(filename)

Récupère un fichier de fond de combat.

RPG::Cache.battler(filename, hue)

Récupère un fichier de combattant. Utilisez hue pour ajuster ses valeurs de ton.

RPG::Cache.character(filename, hue)

Récupère un fichier de personnage. Utilisez hue pour ajuster ses valeurs de ton.

RPG::Cache.fog(filename, hue)

Récupère un fichier de brouillard. Utilisez hue pour ajuster ses valeurs de ton.

RPG::Cache.gameover(filename)

Récupère un fichier de Game Over.

RPG::Cache.icon(filename)

Récupère un fichier d'icône.

RPG::Cache.panorama(filename, hue)

Récupère un fichier de panorama. Utilisez hue pour ajuster ses valeurs de ton.

RPG::Cache.picture(filename)

Récupère un fichier image.

RPG::Cache.tileset(filename)

Récupère un fichier de chipset.

RPG::Cache.title(filename)

Récupère un fichier d'écran titre.

RPG::Cache.windowskin(filename)

Récupère un fichier d'apparence de fenêtre.

RPG::Cache.tile(filename, tile_id, hue)

Récupère seulement le carreau spécifié d'un chipset. Utilisez tile_id pour spécifier l'ID(l'identifiant) du carreau à récupérer et hue pour ajuster ses valeurs de ton.

Utilisé quand un carreau est spécifié dans l'apparence d'un évènement (RPG::Event::Page::Graphic).

RPG::Cache.clear

Vide le cache.

Définition

module RPG
  module Cache
    @cache = {}
    def self.load_bitmap(folder_name, filename, hue = 0)
      path = folder_name + filename
      if not @cache.include?(path) or @cache[path].disposed?
        if filename != ""
          @cache[path] = Bitmap.new(path)
        else
          @cache[path] = Bitmap.new(32, 32)
        end
      end
      if hue == 0
        @cache[path]
      else
        key = [path, hue]
        if not @cache.include?(key) or @cache[key].disposed?
          @cache[key] = @cache[path].clone
          @cache[key].hue_change(hue)
        end
        @cache[key]
      end
    end
    def self.animation(filename, hue)
      self.load_bitmap("Graphics/Animations/", filename, hue)
    end
    def self.autotile(filename)
      self.load_bitmap("Graphics/Autotiles/", filename)
    end
    def self.battleback(filename)
      self.load_bitmap("Graphics/Battlebacks/", filename)
    end
    def self.battler(filename, hue)
      self.load_bitmap("Graphics/Battlers/", filename, hue)
    end
    def self.character(filename, hue)
      self.load_bitmap("Graphics/Characters/", filename, hue)
    end
    def self.fog(filename, hue)
      self.load_bitmap("Graphics/Fogs/", filename, hue)
    end
    def self.gameover(filename)
      self.load_bitmap("Graphics/Gameovers/", filename)
    end
    def self.icon(filename)
      self.load_bitmap("Graphics/Icons/", filename)
    end
    def self.panorama(filename, hue)
      self.load_bitmap("Graphics/Panoramas/", filename, hue)
    end
    def self.picture(filename)
      self.load_bitmap("Graphics/Pictures/", filename)
    end
    def self.tileset(filename)
      self.load_bitmap("Graphics/Tilesets/", filename)
    end
    def self.title(filename)
      self.load_bitmap("Graphics/Titles/", filename)
    end
    def self.windowskin(filename)
      self.load_bitmap("Graphics/Windowskins/", filename)
    end
    def self.tile(filename, tile_id, hue)
      key = [filename, tile_id, hue]
      if not @cache.include?(key) or @cache[key].disposed?
        @cache[key] = Bitmap.new(32, 32)
        x = (tile_id - 384) % 8 * 32
        y = (tile_id - 384) / 8 * 32
        rect = Rect.new(x, y, 32, 32)
        @cache[key].blt(0, 0, self.tileset(filename), rect)
        @cache[key].hue_change(hue)
      end
      @cache[key]
    end
    def self.clear
      @cache = {}
      GC.start
    end
  end
end


RPGXP Structures des données

  • RPG::Map // Carte
  • RPG::MapInfo // InfoCarte
  • RPG::Event // Evènement
  • RPG::Event::Page // Evènement::Page
  • RPG::Event::Page::Condition // Evènement::Page::Condition(de démarrage)
  • RPG::Event::Page::Graphic // Evènement::Page::Image
  • RPG::EventCommand // Commande d'Evènement
  • RPG::MoveRoute // Chemin de déplacement
  • RPG::MoveCommand // Commande de déplacement
  • RPG::Actor // Personnage, Héros
  • RPG::Class // Classe(Métier)
  • RPG::Class::Learning // Classe::Apprentissage(des techniques)
  • RPG::Skill // Technique
  • RPG::Item // Objet
  • RPG::Weapon // Arme
  • RPG::Armor // Armure
  • RPG::Enemy // Ennemi
  • RPG::Enemy::Action // Ennemi:Action (Action de l'ennemi)
  • RPG::Troop // Troupe (Equipe pour les monstres)
  • RPG::Troop::Member // Troupe::Membre
  • RPG::Troop::Page // Troupe::Page(d'évènement)
  • RPG::Troop::Page::Condition // Troupe::Page::Condition(de démarrage)
  • RPG::State // Etat
  • RPG::Animation // Animation
  • RPG::Animation::Frame // Animation::Image
  • RPG::Animation::Timing // Animation::Temps
  • RPG::Tileset // Ensemble de carreaux, les carreaux contenant les images composant la map
  • RPG::CommonEvent // Evènement commun
  • RPG::System // Système
  • RPG::System::Words // Système::Termes
  • RPG::System::TestBattler // Système::TestCombat
  • RPG::AudioFile // FichierAudio


RPG::Map

Classe de données des cartes(MAP).

Classe Parente

  • Object

Attributs

tileset_id

L'ID de l'ensemble de carreau(chipset) utilisé pour la carte.

width

La largeur de la carte .

height

La hauteur de la carte.

autoplay_bgm

La valeur "vraie" si le bouton de musique de fond(BGM) est activé.

bgm

Si le bouton de BGM est activé, le nom de cette musique de fond (RPG::AudioFile).

autoplay_bgs

La valeur "vraie" si le bouton de bruit de fond(BGS) est activé.

bgs

Si le bouton de BGS est activé, le nom de ce bruit de fond (RPG::AudioFile).

encounter_list

La liste des monstres pouvant être rencontrés. Un tableau d'ID des troupes.

encounter_step

Le nombre de pas entre chaque rencontre.

data

Les données de la carte. Un tableau à 3 dimension contenant les IDs des carreaux (Table).

events

Les évènements de la carte. Une liste qui représente les instances de RPG::Event comme valeurs, utilisant les IDs des évènements comme clé d'index.

Définition

module RPG
  class Map
    def initialize(width, height)
      @tileset_id = 1
      @width = width
      @height = height
      @autoplay_bgm = false
      @bgm = RPG::AudioFile.new
      @autoplay_bgs = false
      @bgs = RPG::AudioFile.new("", 80)
      @encounter_list = []
      @encounter_step = 30
      @data = Table.new(width, height, 3)
      @events = {}
    end
    attr_accessor :tileset_id
    attr_accessor :width
    attr_accessor :height
    attr_accessor :autoplay_bgm
    attr_accessor :bgm
    attr_accessor :autoplay_bgs
    attr_accessor :bgs
    attr_accessor :encounter_list
    attr_accessor :encounter_step
    attr_accessor :data
    attr_accessor :events
  end
end


RPG::MapInfo

Classe de données pour les information des cartes.

Classe Parente

  • Object

Attributs

name

Le nom de la carte.

parent_id

L'ID de la carte parente .

order

L'ordre d'affichage de l'arborescence des cartes, utilisation interne.

expanded

Le drapeau d'expansion de l'arborescence des cartes, utilisation interne.

scroll_x

La postion de l'axe de défilement en abscisse, utilisation interne.

scroll_y

La postion de l'axe de défilement en ordonnée, utilisation interne.

Définition

module RPG
  class MapInfo
    def initialize
      @name = ""
      @parent_id = 0
      @order = 0
      @expanded = false
      @scroll_x = 0
      @scroll_y = 0
    end
    attr_accessor :name
    attr_accessor :parent_id
    attr_accessor :order
    attr_accessor :expanded
    attr_accessor :scroll_x
    attr_accessor :scroll_y
  end
end


RPG::Event

Classe de données pour les évènements des cartes(map).

Classe Parente

  • Object

Réferrent

  • RPG::Map

Attributs

id

L'ID de l'évènement.

name

Le nom de l'évènement.

x

L'abscisse de l'évènement sur la carte.

y

L'ordonnée de l'évènement sur la carte.

pages

Les pages d'évènements. Un tableau de type RPG::Event::Page.

Classe Intérieures

  • RPG::Event::Page

Définition

module RPG
  class Event
    def initialize(x, y)
      @id = 0
      @name = ""
      @x = x
      @y = y
      @pages = [RPG::Event::Page.new]
    end
    attr_accessor :id
    attr_accessor :name
    attr_accessor :x
    attr_accessor :y
    attr_accessor :pages
  end
end


RPG::Event::Page

Classe de données pour les page d'évènements.

Classe parente

  • Object

Réferrent

  • RPG::Event

Attributs

condition

La condition (de démarrage) de l'évènement (RPG::Event::Page::Condition).

graphic

L'image de l'évènement (RPG::Event::Page::Graphic).

move_type

Type de déplacement (0: Fixe, 1: Aléatoire, 2: Suit le héros, 3: Personnalisé).

move_speed

Vitesse de déplacement (1: Le plus lents, 2: Un peu plus lent, 3: lent, 4: rapide, 5: plus rapide, 6: Le plus rapide).

move_frequency

Fréquence de déplacement (1: la plus basse, 2: plus basse, 3: basse ,4: haute, 5: plus haute, 6: la plus haute).

move_route

Chemin de déplacement (RPG::MoveRoute). Référencé seulement si le type de déplacement est défini sur Personnalisé.

walk_anime

Valeur "vraie" de l'option [Animé lorsqu'il se déplace].

step_anime

Valeur "vraie" de l'option [Animé à l'arrêt].

direction_fix

Valeur "vraie" de l'option [Direction Fixe].

through

Valeur "vraie" de l'option [Mode Fantôme].

always_on_top

Valeur "vraie" de l'option [Au dessus de tout].

trigger

Type de déclencheur de l'évènement(0: Par la touche action, 1: Au contact du héros, 2: Au contact Evènement/Héros, 3: démarrage automatique, 4: Processus Parallèle).

list

Contenu du programme, liste des commandes d'évènements. Un tableau de type RPG::EventCommand.

Classes Intérieures

  • RPG::Event::Page::Condition
  • RPG::Event::Page::Graphic

Définition

module RPG
  class Event
    class Page
      def initialize
        @condition = RPG::Event::Page::Condition.new
        @graphic = RPG::Event::Page::Graphic.new
        @move_type = 0
        @move_speed = 3
        @move_frequency = 3
        @move_route = RPG::MoveRoute.new
        @walk_anime = true
        @step_anime = false
        @direction_fix = false
        @through = false
        @always_on_top = false
        @trigger = 0
        @list = [RPG::EventCommand.new]
      end
      attr_accessor :condition
      attr_accessor :graphic
      attr_accessor :move_type
      attr_accessor :move_speed
      attr_accessor :move_frequency
      attr_accessor :move_route
      attr_accessor :walk_anime
      attr_accessor :step_anime
      attr_accessor :direction_fix
      attr_accessor :through
      attr_accessor :always_on_top
      attr_accessor :trigger
      attr_accessor :list
    end
  end
end


RPG::Event::Page::Condition

Une base de données des conditions de page d'évènement.

Classe Parente

  • Object

Réferrent

  • RPG::Event::Page

Attributs

switch1_valid

La valeur "Vraie" si la première condition [Bouton] est vraie.

switch2_valid

La valeur "Vraie" si la deuxième condition [Bouton] est vraie.

variable_valid

La valeur "Vraie" si la condition [Variable] est vraie.

self_switch_valid

La valeur "Vraie" si la condition [Bouton Local] est vraie.

switch1_id

Si la 1ère condition [Bouton] est valide, l'ID de ce bouton.

switch2_id

Si la 2ème condition [Bouton] est valide, l'ID de ce bouton.

variable_id

Si la condition [Variable] est valide, l'ID de cette variable.

variable_value

Si la condition [Variable] est valide, la valeur standard de cette variable (x et plus grand).

self_switch_ch

Si la condition [Bouton Local] est valide, La lettre de ce bouton local ("A".."D").

Définition

module RPG
  class Event
    class Page
      class Condition
        def initialize
          @switch1_valid = false
          @switch2_valid = false
          @variable_valid = false
          @self_switch_valid = false
          @switch1_id = 1
          @switch2_id = 1
          @variable_id = 1
          @variable_value = 0
          @self_switch_ch = "A"
        end
        attr_accessor :switch1_valid
        attr_accessor :switch2_valid
        attr_accessor :variable_valid
        attr_accessor :self_switch_valid
        attr_accessor :switch1_id
        attr_accessor :switch2_id
        attr_accessor :variable_id
        attr_accessor :variable_value
        attr_accessor :self_switch_ch
      end
    end
  end
end


RPG::Event::Page::Graphic

Classe de données pour [l'apparence] d'une page d'évènement.

Classe Parente

  • Object

Réferrent

  • RPG::Event::Page

Attributs

tile_id

L'ID du "carreau". Si l'image spécifié n'est pas un "carreau", cette valeur est égale à 0.

character_name

Le nom du fichier l'image d'apparence.

character_hue

La valeur d'ajustement du ton de l'image d'apparence de l'évent (0..360).

direction

La direction vers laquelle l'évenement fait face (2: Bas, 4: Gauche, 6: Droite, 8: Haut).

pattern

Le modèle d'apparence(0..3).

opacity

L'opacité de l'apparence.

blend_type

Le mode de transparence.

Définition

module RPG
  class Event
    class Page
      class Graphic
        def initialize
          @tile_id = 0
          @character_name = ""
          @character_hue = 0
          @direction = 2
          @pattern = 0
          @opacity = 255
          @blend_type = 0
        end
        attr_accessor :tile_id
        attr_accessor :character_name
        attr_accessor :character_hue
        attr_accessor :direction
        attr_accessor :pattern
        attr_accessor :opacity
        attr_accessor :blend_type
      end
    end
  end
end


RPG::EventCommand

Classe de données pour les commandes d'évènement.

Classe Parente

  • Object

Réferrents

  • RPG::Event::Page
  • RPG::Troop::Page
  • RPG::CommonEvent

Attributs

code

Le code d'évènement.

indent

La profondeur d'indentation. Courament 0; La commande [Condition...], ainsi que d'autres, ajoute 1 à la profondeur.

parameters

Tableau contenant les arguments de commande de déplacement. Le contenu change pour chaque commande.

Définition

module RPG
  class EventCommand
    def initialize(code = 0, indent = 0, parameters = [])
      @code = code
      @indent = indent
      @parameters = parameters
    end
    attr_accessor :code
    attr_accessor :indent
    attr_accessor :parameters
  end
end


RPG::MoveRoute

Class de données pour les chemins de déplacement.

Classe Parente

  • Object

Réferrent

  • RPG::EventPage

Attributs

repeat

Valeur "vraie" de l'option [Répéter Action].

skippable

Valeur "vraie" de l'option [Ignorer commande si Impossible].

list

Contenu du parcours. Un tableau de type RPG::MoveCommand .

Définition

module RPG
  class MoveRoute
    def initialize
      @repeat = true
      @skippable = false
      @list = [RPG::MoveCommand.new]
    end
    attr_accessor :repeat
    attr_accessor :skippable
    attr_accessor :list
  end
end


RPG::MoveCommand

Classe de données pour les commandes de déplacement.

Classe Parente

  • Object

Réferrent

  • RPG::MoveRoute

Attributs

code

Le code de la commande de déplacement.

parameters

Tableau contenant les arguments des commandes de déplacment. Le contenu varie pour chaque commande.

Définition

module RPG
  class MoveCommand(code = 0, parameters = [])
    def initialize
      @code = code
      @parameters = parameters
    end
    attr_accessor :code
    attr_accessor :parameters
  end
end


RPG::Actor

Classe de données pour les personnages.

Classe parente

  • Object

Attributs

id

L'ID (identifiant) du personnage.

name

Le nom du perso.

class_id

L'ID de la classe(métier) du perso.

initial_level

Le niveau initial du perso.

final_level

Le niveau final du perso.

exp_basis

La valeur sur laquelle la courbe d'expérience est basée (10..50).

exp_inflation

La quantité d'inflation de courbe d'expérience (10..50).

character_name

Le nom de fichier pour l'image du perso.

character_hue

La valeur d'ajustement pour le ton de l'image du perso (0..360).

battler_name

Le nom de fichier pour l'image de combat du perso.

battler_hue

La valeur d'ajustement pour le ton de l'image de combat du perso (0..360).

parameters

Tableau à deux dimensions contenant des paramètres de base pour chaque niveau (Table).

Généralement prend la forme: parameters[type, niveau].

type indique le type de paramètre(0: max HP, 1: max SP, 2: force, 3: dextérité, 4: agilité, 5: intelligence).

weapon_id

ID de l'arme du perso équipée initialement.

armor1_id

ID du bouclier du perso équipé initialement.

armor2_id

ID du casque du perso équipé initialement.

armor3_id

ID de l'armure du perso équipée initialement.

armor4_id

ID de l'accessoire du perso équipé initialement.

weapon_fix

Drapeau rendant l'arme du perso impossible à enlever (principe d'arme maudite).

armor1_fix

Drapeau rendant le bouclier du perso impossible à enlever.

armor2_fix

Drapeau rendant le casque du perso impossible à enlever.

armor3_fix

Drapeau rendant l'armure du perso impossible à enlever.

armor4_fix

Drapeau rendant l'accessoire du perso impossible à enlever.

Définition

module RPG
  class Actor
    def initialize
      @id = 0
      @name = ""
      @class_id = 1
      @initial_level = 1
      @final_level = 99
      @exp_basis = 30
      @exp_inflation = 30
      @character_name = ""
      @character_hue = 0
      @battler_name = ""
      @battler_hue = 0
      @parameters = Table.new(6,100)
      for i in 1..99
        @parameters[0,i] = 500+i*50
        @parameters[1,i] = 500+i*50
        @parameters[2,i] = 50+i*5
        @parameters[3,i] = 50+i*5
        @parameters[4,i] = 50+i*5
        @parameters[5,i] = 50+i*5
      end
      @weapon_id = 0
      @armor1_id = 0
      @armor2_id = 0
      @armor3_id = 0
      @armor4_id = 0
      @weapon_fix = false
      @armor1_fix = false
      @armor2_fix = false
      @armor3_fix = false
      @armor4_fix = false
    end
    attr_accessor :id
    attr_accessor :name
    attr_accessor :class_id
    attr_accessor :initial_level
    attr_accessor :final_level
    attr_accessor :exp_basis
    attr_accessor :exp_inflation
    attr_accessor :character_name
    attr_accessor :character_hue
    attr_accessor :battler_name
    attr_accessor :battler_hue
    attr_accessor :parameters
    attr_accessor :weapon_id
    attr_accessor :armor1_id
    attr_accessor :armor2_id
    attr_accessor :armor3_id
    attr_accessor :armor4_id
    attr_accessor :weapon_fix
    attr_accessor :armor1_fix
    attr_accessor :armor2_fix
    attr_accessor :armor3_fix
    attr_accessor :armor4_fix
  end
end


RPG::Class

Classe de données pour les métiers.

Classe Parente

  • Object

Attributs

id

L'ID du métier.

name

Le nom du métier.

position

La position en combat du métier (0: En avant, 1: Milieu, 2: En arrière).

weapon_set

Tableau des ID des armes équipables.

armor_set

Tableau des ID des armures équipables.

element_ranks

Niveau d'efficacité des éléments. Tableau à 1 dimension, utilisant les ID des éléments comme indice (Table), avec 6 niveaux (0: A, 1: B, 2: C, 3: D, 4: E, 5: F).

state_ranks

Niveau d'efficacité des états. Tableau à 1 dimension, utilisant les ID des états comme indice (Table), avec 6 niveaux (0: A, 1: B, 2: C, 3: D, 4: E, 5: F).

learnings

Techniques à apprendre. Un tableau de type RPG::Class::Learning.

Classe Intérieure

  • RPG::Class::Learning

Définition

module RPG
  class Class
    def initialize
      @id = 0
      @name = ""
      @position = 0
      @weapon_set = []
      @armor_set = []
      @element_ranks = Table.new(1)
      @state_ranks = Table.new(1)
      @learnings = []
    end
    attr_accessor :id
    attr_accessor :name
    attr_accessor :position
    attr_accessor :weapon_set
    attr_accessor :armor_set
    attr_accessor :element_ranks
    attr_accessor :state_ranks
    attr_accessor :learnings
  end
end


RPG::Class::Learning

Classe de données pour les techniques du métier apprises(ou à apprendre).

Classe Parente

  • Object

Réferrent

  • RPG::Class

Attributs

level

Niveau de la technique(être de ce niveau pour apprendre la technique).

skill_id

L'ID de la technique apprise.

Définition

module RPG
  class Class
    class Learning
      def initialize
        @level = 1
        @skill_id = 1
      end
      attr_accessor :level
      attr_accessor :skill_id
    end
  end
end


RPG::Skill

Classe de données pour les techniques.

Classe Parente

  • Object

Attributs

id

L'ID de la technique.

name

Le nom de la technique.

icon_name

Le nom du fichier d'icône d'apparence de la technique.

description

La descritption de la technique.

scope

La portée des effets de la technique (0: aucun, 1: un ennemi, 2: tout les ennemis, 3: Un allié, 4: Tout les alliés, 5: 1 Un allié--HP à 0, 6: Tout les alliés--HP à 0, 7: L'utilisateur).

occasion

Quand la technique peut être utilisée (0: Toujours, 1: Seulement en combat, 2: Seulement depuis le menu, 3: Jamais).

animation1_id

L'ID de l'animation de combat, quand la technique est invoquée.(sur l'utilisateur)

animation2_id

L'ID de l'animation de combat, quand la technique a fini d'être invoquée.(sur la cible)

menu_se

ES joué quand la technique est utilisée depuis le menu (RPG::AudioFile).

common_event_id

L'ID de l'évènement commun appelé à l'utilisation de la technique.

sp_cost

Nombre de SP consommés.

power

La puissance de la technique .

atk_f

Le taux de puissance d'attaque F de la technique.

eva_f

Le taux d'évasion F de la technique.

str_f

L'influence de la force sur la technique.

dex_f

L'influence de la dextérité sur la technique.

agi_f

L'influence de l'agilité sur la technique.

int_f

L'influence de l'intelligence sur la technique.

hit

La probabilité de réussite de la technique.

pdef_f

L'influence de la défense physique sur la technique.

mdef_f

L'influence de la défense magique sur la technique.

variance

Le degré de variance de la technique.

element_set

L'ensemble des éléments de l'objet. Un tableau des IDs d'éléments cochés.

plus_state_set

Etats à ajouter. Un tableau des IDs des états cochés.

minus_state_set

Etats à enlever. Un tableau des IDs des états cochés.

Définition

module RPG
  class Skill
    def initialize
      @id = 0
      @name = ""
      @icon_name = ""
      @description = ""
      @scope = 0
      @occasion = 1
      @animation1_id = 0
      @animation2_id = 0
      @menu_se = RPG::AudioFile.new("", 80)
      @common_event_id = 0
      @sp_cost = 0
      @power = 0
      @atk_f = 0
      @eva_f = 0
      @str_f = 0
      @dex_f = 0
      @agi_f = 0
      @int_f = 100
      @hit = 100
      @pdef_f = 0
      @mdef_f = 100
      @variance = 15
      @element_set = []
      @plus_state_set = []
      @minus_state_set = []
    end
    attr_accessor :id
    attr_accessor :name
    attr_accessor :icon_name
    attr_accessor :description
    attr_accessor :scope
    attr_accessor :occasion
    attr_accessor :animation1_id
    attr_accessor :animation2_id
    attr_accessor :menu_se
    attr_accessor :common_event_id
    attr_accessor :sp_cost
    attr_accessor :power
    attr_accessor :atk_f
    attr_accessor :eva_f
    attr_accessor :str_f
    attr_accessor :dex_f
    attr_accessor :agi_f
    attr_accessor :int_f
    attr_accessor :hit
    attr_accessor :pdef_f
    attr_accessor :mdef_f
    attr_accessor :variance
    attr_accessor :element_set
    attr_accessor :plus_state_set
    attr_accessor :minus_state_set
  end
end


RPG::Item

Classe de données pour les objets.

Classe Parente

  • Object

Attributs

id

L'ID de l'objet.

name

Le nom de l'objet.

icon_name

Le nom du fichier d'icône d'apparence.

description

La description de l'objet .

scope

La portée des effets de l'objet(0: aucun, 1: un ennemi, 2: tout les ennemis, 3: Un allié, 4: Tout les alliés, 5: 1 Un allié--HP à 0, 6: Tout les alliés--HP à 0, 7: L'utilisateur).

occasion

Quand l'objet peut être utilisé (0: Toujours, 1: Seulement en combat, 2: Seulement depuis le menu, 3: Jamais).

animation1_id

L'ID de l'animation de combat, quand l'objet est utilisé.(sur l'utilisateur)

animation2_id

L'ID de l'animation de combat, quand l'objet est fini d'être utilisé.(sur la cible)

menu_se

ES joué quand l'objet est utilisé depuis le menu (RPG::AudioFile).

common_event_id

L'ID de l'évènement commun appelé à l'utilisation de l'objet.

price

Le prix de l'objet.

consumable

La valeur "vraie" si l'objet disparait après avoir été utilisé.

parameter_type

La caractéristique affectée (0: aucune, 1: les HP max, 2: Les SP max, 3: La force, 4: La dextérité, 5: L'agilité, 6: L'iintelligence).

parameter_points

La quantité dont augmente la caractéristique.

recover_hp_rate

Le taux de récupération d'HP.

recover_hp

La quantité d'HP récupéré.

recover_sp_rate

Le taux de récupération d'SP.

recover_sp

La quantité d'SP récupéré.

hit

La probabilité de réussite de l'objet.

pdef_f

Le taux de défense physique F de l'objet.

mdef_f

Le taux de défense magique F de l'objet.

variance

Le degré de variance de l'objet.

element_set

L'ensemble des éléments de l'objet. Un tableau des IDs d'éléments cochés.

plus_state_set

Etats à ajouter. Un tableau des IDs des états cochés.

minus_state_set

Etats à enlever. Un tableau des IDs des états cochés.

Définition

module RPG
  class Item
    def initialize
      @id = 0
      @name = ""
      @icon_name = ""
      @description = ""
      @scope = 0
      @occasion = 0
      @animation1_id = 0
      @animation2_id = 0
      @menu_se = RPG::AudioFile.new("", 80)
      @common_event_id = 0
      @price = 0
      @consumable = true
      @parameter_type = 0
      @parameter_points = 0
      @recover_hp_rate = 0
      @recover_hp = 0
      @recover_sp_rate = 0
      @recover_sp = 0
      @hit = 100
      @pdef_f = 0
      @mdef_f = 0
      @variance = 0
      @element_set = []
      @plus_state_set = []
      @minus_state_set = []
    end
    attr_accessor :id
    attr_accessor :name
    attr_accessor :icon_name
    attr_accessor :description
    attr_accessor :scope
    attr_accessor :occasion
    attr_accessor :animation1_id
    attr_accessor :animation2_id
    attr_accessor :menu_se
    attr_accessor :common_event_id
    attr_accessor :price
    attr_accessor :consumable
    attr_accessor :parameter_type
    attr_accessor :parameter_points
    attr_accessor :recover_hp_rate
    attr_accessor :recover_hp
    attr_accessor :recover_sp_rate
    attr_accessor :recover_sp
    attr_accessor :hit
    attr_accessor :pdef_f
    attr_accessor :mdef_f
    attr_accessor :variance
    attr_accessor :element_set
    attr_accessor :plus_state_set
    attr_accessor :minus_state_set
  end
end


RPG::Weapon

Classe de données pour les armes.

Classe Parente

  • Object

Attributs

id

L'ID de l'arme.

name

Le nom de l'arme.

icon_name

Le nom du fichier d'icône d'apparence de l'arme.

description

La description de l'arme.

animation1_id

L'animation lors de l'utilisation de l'épée.

animation2_id

L'animation de l'effet de l'arme.

price

Le prix de l'arme.

atk

La puissance d'attaque de l'arme.

pdef

Le taux de défense physique de l'arme.

mdef

Le taux de défense magique de l'arme.

str_plus

Le bonus de force de l'arme.

dex_plus

Le bonus de dextérité de l'arme.

agi_plus

Le bonus d'agilité de l'arme.

int_plus

Le bonus d'intelligence de l'arme.

element_set

L'ensemble des éléments de l'arme. Un tableau des IDs d'éléments cochés.

plus_state_set

Etats à ajouter. Un tableau des IDs des états cochés.

minus_state_set

Etats à enlever. Un tableau des IDs des états cochés.

Définition

module RPG
  class Weapon
    def initialize
      @id = 0
      @name = ""
      @icon_name = ""
      @description = ""
      @animation1_id = 0
      @animation2_id = 0
      @price = 0
      @atk = 0
      @pdef = 0
      @mdef = 0
      @str_plus = 0
      @dex_plus = 0
      @agi_plus = 0
      @int_plus = 0
      @element_set = []
      @plus_state_set = []
      @minus_state_set = []
    end
    attr_accessor :id
    attr_accessor :name
    attr_accessor :icon_name
    attr_accessor :description
    attr_accessor :animation1_id
    attr_accessor :animation2_id
    attr_accessor :price
    attr_accessor :atk
    attr_accessor :pdef
    attr_accessor :mdef
    attr_accessor :str_plus
    attr_accessor :dex_plus
    attr_accessor :agi_plus
    attr_accessor :int_plus
    attr_accessor :element_set
    attr_accessor :plus_state_set
    attr_accessor :minus_state_set
  end
end


RPG::Armor

Classe de données pour les armures.

Classe parente

  • Object

Attributs

id

L'ID de l'armure.

name

Le nom de l'armure.

icon_name

Le nom de l'image d'icône de l'armure.

description

La description de l'armure.

kind

Le type d'armure (0: bouclier, 1: casque, 2: armure, 3: accessoire).

auto_state_id

L'ID de l'état automatique infligé.

price

Le prix de l'armure .

pdef

Le taux de défense physique de l'armure.

mdef

Le taux de défense magique de l'armure.

eva

Le taux d'évasion de l'armure.

str_plus

Le bonus de force de l'armure.

dex_plus

Le bonus de dextérité de l'armure.

agi_plus

Le bonus d'agilité de l'armure.

int_plus

Le bonus d'intelligence de l'armure.

guard_element_set

L'ensemble des taux de défenses aux éléments. Un tableau contenant les ID des éléments.

guard_state_set

L'ensemble des taux de défenses aux états. Un tableau contenant les ID des états.

Définition

module RPG
  class Armor
    def initialize
      @id = 0
      @name = ""
      @icon_name = ""
      @description = ""
      @kind = 0
      @auto_state_id = 0
      @price = 0
      @pdef = 0
      @mdef = 0
      @eva = 0
      @str_plus = 0
      @dex_plus = 0
      @agi_plus = 0
      @int_plus = 0
      @guard_element_set = []
      @guard_state_set = []
    end
    attr_accessor :id
    attr_accessor :name
    attr_accessor :icon_name
    attr_accessor :description
    attr_accessor :kind
    attr_accessor :auto_state_id
    attr_accessor :price
    attr_accessor :pdef
    attr_accessor :mdef
    attr_accessor :eva
    attr_accessor :str_plus
    attr_accessor :dex_plus
    attr_accessor :agi_plus
    attr_accessor :int_plus
    attr_accessor :guard_element_set
    attr_accessor :guard_state_set
  end
end


RPG::Enemy

Classe de donnée pour les ennemis.

Classe Parente

  • Object

Attributs

id

L'ID de l'ennemi.

name

Le nom de l'ennemi.

battler_name

Le nom de fichier image de combat de l'ennemi.

battler_hue

La valeur d'ajustement du ton de l'image de combat (0..360).

maxhp

Les HP max de l'ennemi.

maxsp

Les SP max de l'ennemi.

str

La force de l'ennemi.

dex

La dextérité de l'ennemi.

agi

L'agilité de l'ennemi.

int

L'intelligence de l'ennemi.

atk

La puissance d'attaque de l'ennemi.

pdef

Le taux de défense Physique de l'ennemi.

mdef

Le taux de défense Magique de l'ennemi.

eva

Le taux d'évasion de l'ennemi.

animation1_id

L'ID de l'animation de combat.

animation2_id

L'ID de l'animation de la cible.

element_ranks

Niveau d'efficacité des éléments. Tableau à 1 dimension, utilisant les ID des éléments comme sous scripts (Table), avec 6 niveaux (0: A, 1: B, 2: C, 3: D, 4: E, 5: F).

state_ranks

Niveau d'efficacité des états. Tableau à 1 dimension, utilisant les ID des états comme sous scripts (Table), avec 6 niveaux (0: A, 1: B, 2: C, 3: D, 4: E, 5: F).

actions

Les actions possibles de l'ennemi. Un tableau de type RPG::Enemy::Action.

exp

Les points d'expérience donné par l'ennemi.

gold

L'or donné par l'ennemi.

item_id

L'ID de l'objet donné comme trésor.

weapon_id

L'ID de l'arme donné comme trésor.

armor_id

L'ID de l'armure donné comme trésor.

treasure_prob

La probabilité qu'un trésor soit obtenu.

Classe Intérieure

  • RPG::Enemy::Action

Définition

module RPG
  class Enemy
    def initialize
      @id = 0
      @name = ""
      @battler_name = ""
      @battler_hue = 0
      @maxhp = 500
      @maxsp = 500
      @str = 50
      @dex = 50
      @agi = 50
      @int = 50
      @atk = 100
      @pdef = 100
      @mdef = 100
      @eva = 0
      @animation1_id = 0
      @animation2_id = 0
      @element_ranks = Table.new(1)
      @state_ranks = Table.new(1)
      @actions = [RPG::Enemy::Action.new]
      @exp = 0
      @gold = 0
      @item_id = 0
      @weapon_id = 0
      @armor_id = 0
      @treasure_prob = 100
    end
    attr_accessor :id
    attr_accessor :name
    attr_accessor :battler_name
    attr_accessor :battler_hue
    attr_accessor :maxhp
    attr_accessor :maxsp
    attr_accessor :str
    attr_accessor :dex
    attr_accessor :agi
    attr_accessor :int
    attr_accessor :atk
    attr_accessor :pdef
    attr_accessor :mdef
    attr_accessor :eva
    attr_accessor :animation1_id
    attr_accessor :animation2_id
    attr_accessor :element_ranks
    attr_accessor :state_ranks
    attr_accessor :actions
    attr_accessor :exp
    attr_accessor :gold
    attr_accessor :item_id
    attr_accessor :weapon_id
    attr_accessor :armor_id
    attr_accessor :treasure_prob
  end
end


RPG::Enemy::Action

Data class for enemy [Actions].

Classe Parente

  • Object

Réferrent

  • RPG::Enemy

Attributs

kind

Le Type d'action (0: normale, 1: technique).

basic

Lorsque définie en tant qu'action [normale], çà complète celle-ci (0: attaque, 1: défense, 2: Fuite, 3: Ne rien Faire).

skill_id

Lorsque définie en tant que [technique], l'ID de cette technique.

condition_turn_a
condition_turn_b

Les valeurs a et b spécifiées dans les conditions [tour]. Doit être entrer dans la forme a + bx.

Quand le tour n'est pas spécifié en tant que condition, a = 0 et b = 1.

condition_hp

Pourcentage spécifié dans la condition [HP].

Quand les HP ne sont pas spécifiés en tant que condition, cette valeur est défini à 100.

condition_level

Niveau standard spécifié dans la condition [Niveau].

Quand le Niveau n'est pas spécifié en tant que condition, cette valeur est défini à 1.

condition_switch_id

L'ID du bouton spécifié dans la condition [Bouton].

Quand l'ID du bouton n'est pas spécifié en tant que condition, cette valeur est défini à 0. Par conséquent, il est essentiel de vérifier si la valeur est bien 0.

rating

La priorité de l'action (1..10).

Définition

module RPG
  class Enemy
    class Action
      def initialize
        @kind = 0
        @basic = 0
        @skill_id = 1
        @condition_turn_a = 0
        @condition_turn_b = 1
        @condition_hp = 100
        @condition_level = 1
        @condition_switch_id = 0
        @rating = 5
      end
      attr_accessor :kind
      attr_accessor :basic
      attr_accessor :skill_id
      attr_accessor :condition_turn_a
      attr_accessor :condition_turn_b
      attr_accessor :condition_hp
      attr_accessor :condition_level
      attr_accessor :condition_switch_id
      attr_accessor :rating
    end
  end
end


RPG::Troop

Classe de données des troupes(équipes d'ennemis).

Classe Parente

  • Object

Attributs

id

ID de la troupe.

name

Nom de la troupe .

members

Membre de la troupe. Un tableau de type RPG::Troop::Member .

pages

Evènements de combat. Un tableau de type RPG::Troop::Page .

Classes Intérieures

  • RPG::Troop::Member
  • RPG::Troop::Page

Définition

module RPG
  class Troop
    def initialize
      @id = 0
      @name = ""
      @members = []
      @pages = [RPG::BattleEventPage.new]
    end
    attr_accessor :id
    attr_accessor :name
    attr_accessor :members
    attr_accessor :pages
  end
end


RPG::Troop::Member

Classe de données des membres de troupes.

Classe Parente

  • Object

Réferrent

  • RPG::Troop

Attributs

enemy_id

L'ID de l'ennemi.

x

L'abscisse du membre de troupe.

y

L'ordonnée du membre de troupe.

hidden

Valeur "Vraie" si l'option [Caché] est cochée.

immortal

Valeur "Vraie" si l'option [Invincible] est cochée.

Définition

module RPG
  class Troop
    class Member
      def initialize
        @enemy_id = 1
        @x = 0
        @y = 0
        @hidden = false
        @immortal = false
      end
      attr_accessor :enemy_id
      attr_accessor :x
      attr_accessor :y
      attr_accessor :hidden
      attr_accessor :immortal
    end
  end
end


RPG::Troop::Page

Classe de données pour les évènements de combat (pages).

Classe Parente

  • Object

Réferrent

  • RPG::Troop

Attributs

condition

Conditions de déclenchement(RPG::Troop::Page::Condition).

span

Fréquence (0: tout le combat, 1: un tour, 2: instantané).

list

Contenu à exécuter. Un tableau de type RPG::EventCommand .

Classe Intérieure

  • RPG::Troop::Page::Condition

Définition

module RPG
  class Troop
    class Page
      def initialize
        @condition = RPG::Troop::Page::Condition.new
        @span = 0
        @list = [RPG::EventCommand.new]
      end
      attr_accessor :condition
      attr_accessor :span
      attr_accessor :list
    end
  end
end


RPG::Troop::Page::Condition

Une base de données des [Conditions] de déclenchement d'évènement de combat.

Classe Parente

  • Object

Réferrent

  • RPG::Troop::Page

Attributs

turn_valid

Valeur "vraie" si la condition [Tour] est valide.

enemy_valid

Valeur "vraie" si la condition [Ennemi] est valide.

actor_valid

Valeur "vraie" si la condition [Héros] est valide.

switch_valid

Valeur "vraie" si la condition [Bouton] est valide.

turn_a
turn_b

Les valeurs a et b spécifiées dans les conditions [tour]. Doit être entrer dans la forme a + bx.

enemy_index

Index du membre de la troupe spécifié dans la condition [Ennemi] (0..7).

enemy_hp

Le pourcentage d'HP spécifié dans la condition [Ennemi].

actor_id

l'ID du perso spécifié dans la condition [Héros].

actor_hp

Le pourcentage d'HP spécifié dans la condition [Héros].

switch_id

l'ID du Bouton spécifié dans la condition [Bouton].

Définition

module RPG
  class Troop
    class Page
      class Condition
        def initialize
          @turn_valid = false
          @enemy_valid = false
          @actor_valid = false
          @switch_valid = false
          @turn_a = 0
          @turn_b = 0
          @enemy_index = 0
          @enemy_hp = 50
          @actor_id = 1
          @actor_hp = 50
          @switch_id = 1
        end
        attr_accessor :turn_valid
        attr_accessor :enemy_valid
        attr_accessor :actor_valid
        attr_accessor :switch_valid
        attr_accessor :turn_a
        attr_accessor :turn_b
        attr_accessor :enemy_index
        attr_accessor :enemy_hp
        attr_accessor :actor_id
        attr_accessor :actor_hp
        attr_accessor :switch_id
      end
    end
  end
end


RPG::State

Classe de données pour les états.

Classe Parente

  • Object

Attributs

id

L'ID de l'état.

name

Le nom de l'état.

animation_id

L'animation de combats de l'état.

restriction

Défini les restrictions (0: aucune, 1: Ne peut pas utiliser de technique, 2: attaque toujours les ennemis, 3: attaque toujours les alliés, 4: Ne peut pas agir).

nonresistance

Valeur "vraie" de l'option[Ne peut pas être contré].

zero_hp

Valeur "vraie" de l'option[Fait tombé les HP à 0].

cant_get_exp

Valeur "vraie" de l'option[N'obtient pas d'EXP].

cant_evade

Valeur "vraie" de l'option[Fuite impossible].

slip_damage

Valeur "vraie" de l'option[Dégats progressifs].

rating

Priorité de l'état (0..10).

hit_rate

Pourcentage de réussite des actions.

maxhp_rate

Pourcentage des HP Max.

maxsp_rate

Pourcentage des SP Max.

str_rate

Pourcentage de la force.

dex_rate

Pourcentage de la dextérité.

agi_rate

Pourcentage de l'agilité.

int_rate

Pourcentage de l'intelligence.

atk_rate

Pourcentage de la puissance d'attaque.

pdef_rate

Pourcentage de la défense physique.

mdef_rate

Pourcentage de la défense magique.

eva

Correction du taux d'évasion.

battle_only

Valeur "vraie" si l'état disparait à la fin du combat.

hold_turn
auto_release_prob

Pourcentage de voir disparaitre l'état après un nombre de tours passés(défini par hold_turn).

shock_release_prob

Pourcentage de voir disparaitre l'état après avoir reçu des dégats physique.

guard_element_set

Défense élémentale. Un tableau des IDs des éléments.

plus_state_set

Etats à ajouter. Un tableau des IDs des états cochés.

minus_state_set

Etats à enlever. Un tableau des IDs des états cochés.

Définition

module RPG
  class State
    def initialize
      @id = 0
      @name = ""
      @animation_id = 0
      @restriction = 0
      @nonresistance = false
      @zero_hp = false
      @cant_get_exp = false
      @cant_evade = false
      @slip_damage = false
      @rating = 5
      @hit_rate = 100
      @maxhp_rate = 100
      @maxsp_rate = 100
      @str_rate = 100
      @dex_rate = 100
      @agi_rate = 100
      @int_rate = 100
      @atk_rate = 100
      @pdef_rate = 100
      @mdef_rate = 100
      @eva = 0
      @battle_only = true
      @hold_turn = 0
      @auto_release_prob = 0
      @shock_release_prob = 0
      @guard_element_set = []
      @plus_state_set = []
      @minus_state_set = []
    end
    attr_accessor :id
    attr_accessor :name
    attr_accessor :animation_id
    attr_accessor :restriction
    attr_accessor :nonresistance
    attr_accessor :zero_hp
    attr_accessor :cant_get_exp
    attr_accessor :cant_evade
    attr_accessor :slip_damage
    attr_accessor :rating
    attr_accessor :hit_rate
    attr_accessor :maxhp_rate
    attr_accessor :maxsp_rate
    attr_accessor :str_rate
    attr_accessor :dex_rate
    attr_accessor :agi_rate
    attr_accessor :int_rate
    attr_accessor :atk_rate
    attr_accessor :pdef_rate
    attr_accessor :mdef_rate
    attr_accessor :eva
    attr_accessor :battle_only
    attr_accessor :hold_turn
    attr_accessor :auto_release_prob
    attr_accessor :shock_release_prob
    attr_accessor :guard_element_set
    attr_accessor :plus_state_set
    attr_accessor :minus_state_set
  end
end


RPG::Animation

Classe de données pour les animations.

Classe Parente

  • Object

Attributs

id

L'ID de l'animation.

name

Le nom de l'animation.

animation_name

Le nom de fichier de l'animation.

animation_hue

La valeur d'ajustement du ton de l'image de l'animation(0..360).

position

La position de l'animation (0: haut, 1: milieu, 2: bas, 3: écran entier).

frame_max

Nombre d'images.

frames

Contenu des images . Un tableau de RPG::Animation::Frame.

timings

Les temps pour les ES(Effets Sonores) et les effets de flash. Un tableau de RPG::Animation::Timing.

Classes Intérieures

  • RPG::Animation::Frame
  • RPG::Animation::Timing

Définition

module RPG
  class Animation
    def initialize
      @id = 0
      @name = ""
      @animation_name = ""
      @animation_hue = 0
      @position = 1
      @frame_max = 1
      @frames = [RPG::Animation::Frame.new]
      @timings = []
    end
    attr_accessor :id
    attr_accessor :name
    attr_accessor :animation_name
    attr_accessor :animation_hue
    attr_accessor :position
    attr_accessor :frame_max
    attr_accessor :frames
    attr_accessor :timings
  end
end


RPG::Animation::Frame

Classe de données pour les images d'animation.

Classe Parente

  • Object

Réferrent

  • RPG::Animation

Attributs

cell_max

Nombre de cellules. Equivalent au plus grand nombre de cellule dans l'ensemble des images.

cell_data

Tableau à 2 dimensions contenant les cellules (Table).

Généralement prend la forme : cell_data[cell_index, data_index].

data_index va de 0 à 7 et dénote différentes information à propos de la cellule (0: modèle, 1: Coordonnée en X, 2: Coordonnée en Y, 3: Niveau de Zoom, 4: Angle de rotation, 5: Retournement horizontal, 6: opacité, 7: mode de fusion). Les modèles sont 1 de moins que le nombre affiché dans RPGXP; -1 indique que cette cellule n'est pas utilisée.

Définition

module RPG
  class Animation
    class Frame
      def initialize
        @cell_max = 0
        @cell_data = Table.new(0, 0)
      end
      attr_accessor :cell_max
      attr_accessor :cell_data
    end
  end
end


RPG::Animation::Timing

Classe de données pour les temps des ES des animations et des effets de flash.

Classe Parente

  • Object

Réferrent

  • RPG::Animation

Attributs

frame

Nombre d'image . 1 de moins que le nombre affiché dans RPGXP.

se

ES, ou effet sonore (RPG::AudioFile).

flash_scope

Zone du flash (0: aucune, 1: cible, 2: écran; 3: supprime la cible).

flash_color

Couleur du flash (Color).

flash_duration

Durée du flash.

condition

Condition de l'effet (0: aucune, 1: touché, 2: raté).

Définition

module RPG
  class Animation
    class Timing
      def initialize
        @frame = 0
        @se = RPG::AudioFile.new("", 80)
        @flash_scope = 0
        @flash_color = Color.new(255,255,255,255)
        @flash_duration = 5
        @condition = 0
      end
      attr_accessor :frame
      attr_accessor :se
      attr_accessor :flash_scope
      attr_accessor :flash_color
      attr_accessor :flash_duration
      attr_accessor :condition
    end
  end
end


RPG::Tileset

Classe de données pour les ensemble de carreaux(chipset).

Classe Parente

  • Object

Attributs

id

L'ID du chipset .

name

Le nom du chipset.

tileset_name

Le nom de fichier du chipset.

autotile_names

Le tableau des noms de fichier des autotiles ([0]..[6]).

panorama_name

Le nom de fichier du panorama.

panorama_hue

La valeur d'ajustement du ton du panorama (0..360).

fog_name

Le nom de fichier de brouillard.

fog_hue

La valeur d'ajustement du ton du brouillard (0..360).

fog_opacity

L'opacité du brouillard .

fog_blend_type

Le mode de transparence du brouillard.

fog_zoom

Le niveau de zoom du brouillard.

fog_sx

La vitesse de défilement du brouillard en abscisse (défilement automatique).

fog_sy

La vitesse de défilement du brouillard en ordonnée (défilement automatique).

battleback_name

Le nom du fichier de fond de combat.

passages

La table de Passabilité. Un tableau à 1 dimension (Table) contenant les drapeaux de passabilité, obscurcissant, et d'interactivité.

L'ID du carreau est utilisé comme indice. Chaque bit est géré comme suit:

  • 0x01: Impossible vers le bas.
  • 0x02: Impossible vers la gauche.
  • 0x04: Impossible vers la droite.
  • 0x08: Impossible vers le haut.
  • 0x40: Drapeau obscurcissant.
  • 0x80: Drapeau d'interactivité.
priorities

Table de priorité. Un tableau à 1 dimension (Table) contenant les données de priorité.

L'ID du carreau est utilisé comme indice.

terrain_tags

La table des étiquettes de terrain. Un tableau à 1 dimension (Table) contenant les données d'étiquette de terrain.

L'ID du carreau est utilisé comme indice.

Définition

module RPG
  class Tileset
    def initialize
      @id = 0
      @name = ""
      @tileset_name = ""
      @autotile_names = [""]*7
      @panorama_name = ""
      @panorama_hue = 0
      @fog_name = ""
      @fog_hue = 0
      @fog_opacity = 64
      @fog_blend_type = 0
      @fog_zoom = 200
      @fog_sx = 0
      @fog_sy = 0
      @battleback_name = ""
      @passages = Table.new(384)
      @priorities = Table.new(384)
      @priorities[0] = 5
      @terrain_tags = Table.new(384)
    end
    attr_accessor :id
    attr_accessor :name
    attr_accessor :tileset_name
    attr_accessor :autotile_names
    attr_accessor :panorama_name
    attr_accessor :panorama_hue
    attr_accessor :fog_name
    attr_accessor :fog_hue
    attr_accessor :fog_opacity
    attr_accessor :fog_blend_type
    attr_accessor :fog_zoom
    attr_accessor :fog_sx
    attr_accessor :fog_sy
    attr_accessor :battleback_name
    attr_accessor :passages
    attr_accessor :priorities
    attr_accessor :terrain_tags
  end
end


RPG::CommonEvent

Classe de données pour les évènements communs.

Classe Parente

  • Object

Attributs

id

L'ID de l'évènement .

name

Le nom de l'évènement .

trigger

Le déclencheur de l'évènement (0: aucun(sera appelé), 1: démarrage auto; 2: processus parallèle).

switch_id

L'ID du bouton conditionnel de démarrage.

list

La liste des commandes d'évènements. Un Tableau de type RPG::EventCommand.

Définition

module RPG
  class CommonEvent
    def initialize
      @id = 0
      @name = ""
      @trigger = 0
      @switch_id = 1
      @list = [RPG::EventCommand.new]
    end
    attr_accessor :id
    attr_accessor :name
    attr_accessor :trigger
    attr_accessor :switch_id
    attr_accessor :list
  end
end


RPG::System

Classe de données pour le système.

Classe Parente

  • Object

Attributs

magic_number

Nombre "magique" utilisé pour des vérifications de mise à jour. Les mises à jour ont changé les valeurs chaque fois que les données sont sauvées dans RPGXP.

party_members

L'équipe de départ. Un tableau contenant les ID's des acteurs(personnages) en question.

elements

La liste des éléments. Un tableau de texte, utilisant les IDs des éléments comme indice, celui à la position 0 étant nul.

switches

La liste des Boutons. Un tableau de texte, utilisant les IDs des boutons comme indice, celui à la position 0 étant nul.

variables

La liste des variables. Un tableau de texte, utilisant les IDs des variables comme indice, celui à la position 0 étant nul.

windowskin_name

Le nom du fichier d'apparence graphique des fenêtres (ou "windowskin").

title_name

Le nom du fichier d'écran titre.

gameover_name

Le nom du fichier d'écran de "Game Over".

battle_transition

Le nom du fichier de transition, utilisé lors d'un passage en mode combat.

title_bgm

La BGM de l'écran titre(Musique de fond)(RPG::AudioFile).

battle_bgm

La BGM des combats (RPG::AudioFile).

battle_end_me

L'EM de fin de combat (RPG::AudioFile).

gameover_me

L'EM de Game Over(RPG::AudioFile).

cursor_se

L'ES du curseur(son lorsqu'on déplace le curseur) RPG::AudioFile).

decision_se

L'ES de validation (RPG::AudioFile).

cancel_se

L'ES d'annulation (RPG::AudioFile).

buzzer_se

L'ES de Refus (RPG::AudioFile).

equip_se

L'ES d'équiper(RPG::AudioFile).

shop_se

L'ES de magasin (RPG::AudioFile).

save_se

L'ES de sauvegarde (RPG::AudioFile).

load_se

L'ES de chargement (RPG::AudioFile).

battle_start_se

L'ES de démarrage de combat (RPG::AudioFile).

escape_se

L'ES de fuite (RPG::AudioFile).

actor_collapse_se

L'ES de KO d'un personnage (RPG::AudioFile).

enemy_collapse_se

L'ES de Mort d'un ennemi (RPG::AudioFile).

words

Termes système (RPG::System::Words).

start_map_id

ID de la carte où commence le jeu.

start_x

Abscisse de la position du joueur sur la carte de départ.

start_y

Ordonné de la position du joueur sur la carte de départ.

test_battlers

Paramètres de l'équipe de test de combats. Un tableau de type RPG::System::TestBattler .

test_troop_id

L'ID de la troupe pour le test de combats.

battleback_name

Le nom de fichier du fond de combat, pour les tests de combats et l'usage interne.

battler_name

Le nom de fichier de l'apparence du combattant, pour usage interne.

battler_hue

La valeur d'ajustement du ton de l'apparence du combattant (0..360), pour usage interne.

edit_map_id

L'ID de la carte actuellement édité, pour usage interne.

Classes Intérieures

  • RPG::System::Words
  • RPG::System::TestBattler

Définition

module RPG
  class System
    def initialize
      @magic_number = 0
      @party_members = [1]
      @elements = [nil, ""]
      @switches = [nil, ""]
      @variables = [nil, ""]
      @windowskin_name = ""
      @title_name = ""
      @gameover_name = ""
      @battle_transition = ""
      @title_bgm = RPG::AudioFile.new
      @battle_bgm = RPG::AudioFile.new
      @battle_end_me = RPG::AudioFile.new
      @gameover_me = RPG::AudioFile.new
      @cursor_se = RPG::AudioFile.new("", 80)
      @decision_se = RPG::AudioFile.new("", 80)
      @cancel_se = RPG::AudioFile.new("", 80)
      @buzzer_se = RPG::AudioFile.new("", 80)
      @equip_se = RPG::AudioFile.new("", 80)
      @shop_se = RPG::AudioFile.new("", 80)
      @save_se = RPG::AudioFile.new("", 80)
      @load_se = RPG::AudioFile.new("", 80)
      @battle_start_se = RPG::AudioFile.new("", 80)
      @escape_se = RPG::AudioFile.new("", 80)
      @actor_collapse_se = RPG::AudioFile.new("", 80)
      @enemy_collapse_se = RPG::AudioFile.new("", 80)
      @words = RPG::System::Words.new
      @test_battlers = []
      @test_troop_id = 1
      @start_map_id = 1
      @start_x = 0
      @start_y = 0
      @battleback_name = ""
      @battler_name = ""
      @battler_hue = 0
      @edit_map_id = 1
    end
    attr_accessor :magic_number
    attr_accessor :party_members
    attr_accessor :elements
    attr_accessor :switches
    attr_accessor :variables
    attr_accessor :windowskin_name
    attr_accessor :title_name
    attr_accessor :gameover_name
    attr_accessor :battle_transition
    attr_accessor :title_bgm
    attr_accessor :battle_bgm
    attr_accessor :battle_end_me
    attr_accessor :gameover_me
    attr_accessor :cursor_se
    attr_accessor :decision_se
    attr_accessor :cancel_se
    attr_accessor :buzzer_se
    attr_accessor :equip_se
    attr_accessor :shop_se
    attr_accessor :save_se
    attr_accessor :load_se
    attr_accessor :battle_start_se
    attr_accessor :escape_se
    attr_accessor :actor_collapse_se
    attr_accessor :enemy_collapse_se
    attr_accessor :words
    attr_accessor :test_battlers
    attr_accessor :test_troop_id
    attr_accessor :start_map_id
    attr_accessor :start_x
    attr_accessor :start_y
    attr_accessor :battleback_name
    attr_accessor :battler_name
    attr_accessor :battler_hue
    attr_accessor :edit_map_id
  end
end


RPG::System::Words

Classe de données des terminologies.

Classe Parente

  • Object

Réferrent

  • RPG::System

Attributs

gold

Le terme"G" (L'unité de devise).

hp

Le terme "HP" (Points de Vie).

sp

Le terme "SP" (Points de technique, de magie).

str

Le terme "Force".

dex

Le terme "Dextérité".

agi

Le terme "Agilité".

int

Le terme "Intelligence".

atk

Le terme "Puissance d'attaque".

pdef

Le terme "Défense Physique".

mdef

Le terme "Défense Magique".

weapon

Le terme "Arme".

armor1

Le terme "Bouclier".

armor2

Le terme "Casque".

armor3

Le terme "Armure".

armor4

Le terme "Accessoire".

attack

Le terme "Attaque".

skill

Le terme "Technique".

guard

Le terme "Défense".

item

Le terme "Objet".

equip

Le terme "Equiper".

Définition

module RPG
  class System
    class Words
      def initialize
        @gold = ""
        @hp = ""
        @sp = ""
        @str = ""
        @dex = ""
        @agi = ""
        @int = ""
        @atk = ""
        @pdef = ""
        @mdef = ""
        @weapon = ""
        @armor1 = ""
        @armor2 = ""
        @armor3 = ""
        @armor4 = ""
        @attack = ""
        @skill = ""
        @guard = ""
        @item = ""
        @equip = ""
      end
      attr_accessor :gold
      attr_accessor :hp
      attr_accessor :sp
      attr_accessor :str
      attr_accessor :dex
      attr_accessor :agi
      attr_accessor :int
      attr_accessor :atk
      attr_accessor :pdef
      attr_accessor :mdef
      attr_accessor :weapon
      attr_accessor :armor1
      attr_accessor :armor2
      attr_accessor :armor3
      attr_accessor :armor4
      attr_accessor :attack
      attr_accessor :skill
      attr_accessor :guard
      attr_accessor :item
      attr_accessor :equip
    end
  end
end


RPG::System::TestBattler

Classe de données pour les combattants utilisés en test de combats.

Classe Parente

  • Object

Réferrent

  • RPG::System

Attributs

actor_id

L'ID du personnage.

level

Le niveau du personnage.

weapon_id

L'ID de l'arme du personnage.

armor1_id

L'ID du bouclier du personnage.

armor2_id

L'ID du casque du personnage.

armor3_id

L'ID de l'armure du personnage.

armor4_id

L'ID de l'accessoire du personnage.

Définition

module RPG
  class System
    class TestBattler
      def initialize
        @actor_id = 1
        @level = 1
        @weapon_id = 0
        @armor1_id = 0
        @armor2_id = 0
        @armor3_id = 0
        @armor4_id = 0
      end
      attr_accessor :actor_id
      attr_accessor :level
      attr_accessor :weapon_id
      attr_accessor :armor1_id
      attr_accessor :armor2_id
      attr_accessor :armor3_id
      attr_accessor :armor4_id
    end
  end
end


RPG::AudioFile

Classe de données pour les fichiers audio. Commun à tout les formats(BGM, BGS, ME, SE)(Musique de fond, Bruit de fond, Effet de Musique, Effet Sonore).

Classe parente

  • Object

Réferrents

  • RPG::Map
  • RPG::Skill
  • RPG::Item
  • RPG::Animation::Timing
  • RPG::System

Attributs

name

Le nom de fichier son.

volume

Le volume du son (0..100). Les valeur par défaut sont 100 pour les MF et EM, et 80 pour les BF et ES.

pitch

Le pitch du son (50..150). Par défaut à 100.

Définition

module RPG
  class AudioFile
    def initialize(name = "", volume = 100, pitch = 100)
      @name = name
      @volume = volume
      @pitch = pitch
    end
    attr_accessor :name
    attr_accessor :volume
    attr_accessor :pitch
  end
end


Appendice

  • Expressions Régulières
  • Formatage de Sprintf


Expression Régulière

Expressions Régulières

  • Réferences
  • Classe de caractères

Ci dessous, une liste de tous les méta-caractères que le Ruby supporte.

  • Les lettres et chiffres sans \ ne sont pas des méta-caractères.

  • Les symboles avec \ ne sont pas des méta-caractères.

…c'est la règle.

  • ^

    Début d'une ligne. Repère directement avant le premier caractère ou le retour à la ligne.

  • $

    Fin de ligne. Repère directement avant la fin d'une chaine de caractère ou le retour à la ligne.

    p "\n".gsub(/$/, "o")     # => "o\no"

  • .

    Repère n'importe quel caractère excepté celui de retour à la ligne (Lorsque on travaille avec des caractère multi-octets, cela fait référence à un seul caractère, non un octet). Avec l'option m d'Expression Régulière(mode multi-ligne. Voir Description Expression Régulière.), cela correspond avec n'importe quel caractères y compris le retour à la ligne.

  • \w

    Lettres ou chiffres. Identique à [0-9A-Za-z_]

    Correspond aux caractères japonais double-octets.

  • \W

    Caractères non alphanumériques. Tous les autres caractères au-delà de \w.

  • \s

    Caractère d'espace ou caractère vide. Identique [ \t\n\r\f].

  • \S

    Caractère vide. Tous les autres caractères au-delà de [ \t\n\r\f]

  • \d

    Chiffre. Identique à [0-9].

  • \D

    Non-chiffre.

  • \A

    Début d'une chaine de caractères. À la différence de ^, cela n'influence pas l'efficacité du retour à la ligne.

  • \Z

    Fin d'une chaîne de caractères. Repère l'avant d'un retour à la ligne si la chaîne de caractères se finit au retour à la ligne.

    p "\n".gsub(/\Z/, "o")     # => "o\no"

  • \z

    Fin d'une chaîne de caractères. À la différence de $ or \Z, cela n'influence pas l'efficacité du retour à la ligne.

  • \b

    En dehors d'une classe de caractères spécifiée c'est une "frontière de langue". (Correspondances entre \a et \W.) Dans le cas d'une classe de caractères spécifiée c'est un back space (0x08).

  • \B

    Non-frontière de langue.

  • \G

    Repère (n'as pas de largeur) la position repéré à l'appel précédent(directement après). Corresponds au 1er caractère seulement la 1ère fois. (Identique à \A)

    Peut-être utilisé avec scan ou gsub. À utiliser quand vous voulez faire une repérage après la position qui a été trouvé la fois précédente.

    #  Prends les valeurs depuis le début de la ligne 3 à la fois (aussi longtemps qu'il y a de valeurs.)
str = "123456 789"
str.scan(/\G\d\d\d/) {|m| p m }

  • [ ]

    Défini une classe de caractères. Voir classe de caractères.

  • *

    Retourne l'expression depuis directement avant 0 occurences et plus. Essayera de repérer aussi longtemps que possible.

  • *?

    Quantifiants. Retourne l'expression depuis directement avant 0 occurences et plus. (Au moins 1 occurence.)

  • +

    Quantifiants. Retourne l'expression depuis directement avant 1 occurences et plus.

  • +?

    Quantifiants. Retourne l'expression depuis directement avant 1 occurences et plus. (Au moins 1 occurence.)

  • {m}
  • {m,}

  • {m,n}

    Contrôle le retour d'un groupe défini(d'intervalles quantifiants). Retourne toutes les expressions régulières depuis directement avant :

    • m occurences
    • m occurences et plus
    • plus que m occurences et au maximum n occurences.

    Recherche pour {n} ou {,} échoueront toujours .

    str = "foofoofoo"
p str[/(foo){1}/]   # => "foo"
p str[/(foo){2,}/]  # => "foofoofoo"
p str[/(foo){1,2}/] # => "foofoo"

    Les Expressions régulières ?, *, + sont identiques à {0,1}, {0,} {1,}.

  • {m}?
  • {m,}?

  • {m,n}?

    Intervale Quantifiant. Renverra l'expression régulière de chacun avant pour

    • m occurences
    • m occurences et plus
    • plus que m occurences et au maximum n occurences.

    au moins une fois .

  • ?

    Quantifiants. Renverra la précédente expression régulière 1 ou 0 fois.

  • ??

    Quantifiants. Renverra la précédente expression régulière 1 ou 0 fois (au moins une fois).

  • |

    Alternatif.

  • ( )

    Déplacement de groupe d'expression régulière. La chaine de caractère correspondant à l'expression régulière entre parenthèses est mise en mémoire en tant que Réference.

  • \1, \2 ... \n

    Réference. Appelle une Réference.

  • (?# )

    Commentaire. Ignore toutes les chaines de caractères entre parenthèses.

  • (?: )

    Réference sans Déplacement de groupe. C'est-à-dire, utilise un déplacement flexible de groupe sans qu'il devienne les cibles \1, \2 (aussi $1, $2) etc...

    /(abc)/ =‾ "abc"
p $1
=> "abc"

/(?:abc)/ =‾ "abc"
p $1
=> nil

  • (?= )

    Recherche En devant. Définir la position selon le modèle. (n'a aucune largeur.)

    (?=re1)re2

    Cette expression est une expression régulière qui repère une occurence de re1 et de re2.

    re1(?=re2)

    Cette expression, est une expression régulière qui continue à la chaîne de caractères suivante qui correspond avec re2, appelée re1.

    p /foo(?=bar)/ =‾ "foobar"      # => 0
p $&    # => "foo"   (aucune information à propos de la section "bar")

  • (?! )

    Recherche En devant Négative. Définir la position selon la négation du modèle. (n'a aucune largeur.)

    (?!re1)re2

    Cette expression, est une expression régulière qui ne correspond pas à re1 mais correspondant à re2.

    # 000 Chiffre qui exclue 3 caractères
re = /(?!000)\d\d\d/
p re =‾ "000"   # => nil
p re =‾ "012"   # => 0
p re =‾ "123"   # => 0

#C Identifiant (commence à [A-Za-z_] et continue avec la chaine de caractère [0-9A-Za-z_] .
    /\b(?![0-9])\w+\b/

Réferences

L'expression régulière \1 \2 … \n est une réference. Cela correspond à la chaine de caractères concordant avec la n-ième parenthèse (Groupement d'Expression Régulière ( ) ).

/((foo)bar)\1\2/

est identique à :

/((foo)bar)foobarfoo/

Exemple:

re = /(foo|bar|baz)\1/
p re =‾ 'foofoo'   # => 0
p re =‾ 'barbar'   # => 0
p re =‾ 'bazbaz'   # => 0
p re =‾ 'foobar'   # => nil

Les parenthèses utilisées doivent être plus vers la gauche que la référence.

S'il y a une référence dans les parenthèses utilisées la concordance échouera. En outre, la concordance échouera quand une référence de chiffre simple n'a aucune parenthèse aussi.

p /(\1)/ =‾ "foofoofoo" # => nil
p /(foo)\2/ =‾ "foo\2"  # => nil

Tandis que l'on peut spécifier une référence plus grande que 2 chiffres, on doit faire attention à ne pas la confondre avec \nnn (caractères correspondant à l'octal nnn) de la notation backslash. Si la valeur numérique est à 1 chiffre, c'est une référence. Quand il y a plus de 2 chiffre, cela sera perçu comme un code 8-bit si les parenthèses ne sont pas utilisées.

De plus, lors d'utilisation d'expression régulière, il est nécessaire de démarrer avec un 0 (comme \01, etc.) quand on utilise un code d'1 bit sur 8 bit. (Il n'y a pas de référence \0 ce qui n'est pas très évident. )

p   /\1/ =‾ "\1"   # => nil     # Réference qui n'utilise pas de parenthèses.
p  /\01/ =‾ "\1"   # => 0       code 8 bit
p  /\11/ =‾ "\11"  # => 0       code 8 bit

# code 8 bit (Car il n'y a pas de parenthèses utilisées)
p /(.)\10/ =‾ "1\10" # => 0

# Réference (Car il y a des parenthèses utilisées)
p /((((((((((.))))))))))\10/ =‾ "aa"  # => 0

# Code 8 bit (Cependant car il n'y a pas de tel
# \08 "\0" + "8" code 8 bit)
p /(.)\08/ =‾ "1\0008" # => 0

#Si vous voulez écrire des chiffres suivant la référence
#vous devez utiliser des parenthèses pour les grouper et les départager.
p /(.)(\1)1/ =‾ "111"   # => 0

Classe de caractères

Une classe régulière [] est un ensemble de classe de caractères. Un caractère listé entre [] sera cherché.

Par exemple, pour /[abc]/ un des "a", "b" ou"c" sera cherché. Vous pouvez aussi écrire les chaines de caractères en utilisant "-" quand les caractères suivent l'ordre du code ASCII comme ceci: /[a-c]/. De plus, si le premier caractère est un ^ avant la chaine de caractères, l'opposé de cette chaine sera recherché ( exemple : [^0-9] recherchera tout ce qui n'est pas des chiffres ).

Tout ‘^' n'étant pas au début sera recherché en tant que tel au lieu d'une négation. Pareil avec tout "-" au début et en fin d'une chaine.

p /[a^]/ =‾ "^"   # => 0
p /[-a]/ =‾ "-"   # => 0
p /[a-]/ =‾ "-"   # => 0
p /[-]/ =‾ "-"   # => 0

Une classe de caractère vide renverra une erreur.

p /[]/ =‾ ""
p /[^]/ =‾ "^"
# => invalid regular expression; empty character class: /[^]/

Le "]" en début de chaine(ou directement après un NON "^") ne signifie pas que cette classe de caractère est finie mais qu'elle est juste un simple "]". Il est recommandé que ce type de "]" possède un échappement par backslash .

p /[]]/ =‾ "]"       # => 0
p /[^]]/ =‾ "]"      # => nil

"^", "-", "]" et "\\" (backslash) peuvent faire un échappement par backslash et faire une recherche avec ces caractères.

p /[\^]/ =‾ "^"   # => 0
p /[\-]/ =‾ "-"   # => 0
p /[\]]/ =‾ "]"   # => 0
p /[\\]/ =‾ "\\"  # => 0

À l'intérieur des [] vous pouvez utiliser une chaine de caractères et la même notation backslash, et aussi les expression régulières \w, \W, \s, \S, \d, \D (Ce sont des abrégés pour des classes de caractères).

S.V.P. Faites attention au fait que les classes de caractères ci dessous peuvent aussi faire une recherche avec un caractère de retour à la ligne selon la négation(La même chose est vraie avec les expressions régulières \W et \D.)

p /[^a-z]/ =‾ "\n"    # => 0


Formatage de sprintf

Le formatage de sprintf en Ruby est basiquement le même que celui du langage C. Cependant, il y a quelques différences comme, (1) il n'y a pas de modifieurs de type short ou long comme en C, (2) il y a un indicateur variable à 2bit (%b), et (3) pas tous les dialectes de sprintf (': comme le séparateurs des 3 chiffres) ne sont supportés.

Une explication complète du formatage de sprintf sous Ruby est donné ci-dessous.

Au dessous, une forme de formatage de sprintf. Les parties entre [] peuvent être omises.

%[drapeau][largeur][.précision]indicateur

Pour obtenir '%' taper '%%'.

Ci dessous l'explication de chacun de ces éléments.

Drapeau

Il y a 5 types de drapeaux: '#', '+', ' ' (espace), '-', '0'

#

Avec des indicateurs à 2, 8, et 16 bit ('b', 'o', 'x', 'X'), "0b", "0", "0x" et "0X" sont ajoutés comme préfixes.

p sprintf("%#b", 10) # => "0b1010"
p sprintf("%#o", 10) # => "012"
p sprintf("%#x", 10) # => "0xa"
p sprintf("%#X", 10) # => "0XA"

Pour des nombres à virgule flottante ('f', 'e', 'E', 'g' and 'G') toujours mettre un "." dans la sortie.

p sprintf("%.0f", 10) # => "10"
p sprintf("%#.0f", 10) # => "10."
p sprintf("%.0e", 10) # => "1e+01"
p sprintf("%#.0e", 10) # => "1.e+01"

En ajoutant 'g', 'G' à ce qui est au dessus, il y a des 0 laissés à la fin.

p sprintf("%.05g", 10) # => "10"
p sprintf("%#.05g", 10) # => "10.000"
+

Des symboles seront attachés à la chaine de caractères en sortie. Un symbole '+' sera spécialement ajouté aux nombres positifs. Cela s'applique seulement pour les indicateurs numériques suivants: 'd', 'i', 'b', 'o', 'x', 'X', 'u', 'f', 'e', 'E', 'g' et 'G'. De plus, pour 'b', 'o', 'x', 'X', et 'u', un symbole '-' sera ajouté pour les nombres négatifs.

p sprintf("%d", 1)   # => "1"
p sprintf("%+d", 1)  # => "+1"

p sprintf("%x", -1)  # => "..f"  # ".." montre que f continue indéfiniment
p sprintf("%+x", -1) # => "-1"
' ' (espace)

Même signification que le symbole '+' mais ici, un espace vide est utilisé à la place du symbole '+', signifiant positif. Cela s'applique seulement pour les indicateurs numériques suivants: 'd', 'i', 'b', 'o', 'x', 'X', 'u', 'f', 'e', 'E', 'g', 'G'.

p sprintf("%d", 1)   # => "1"
p sprintf("%+d", 1)  # => "+1"
p sprintf("% d", 1)  # => " 1"

p sprintf("%x", -1)  # => "..f"
p sprintf("% x", 1)  # => " 1"
p sprintf("% x", -1) # => "-1"
-

Le flux de sortie est justifié à gauche. Cela n'a seulement qu'une signification si "Largeur" est spécifiée.

0

Si le flux de sortie est justifié à droite, des '0' remplaceront les espace vides de la partie gauche.

Cela s'applique seulement pour les indicateurs numériques suivants: 'd', 'i', 'b', 'o', 'x', 'X', 'u', 'f', 'g', 'G' (Cela ne s'applique pas pour 'e' ou 'E').

p sprintf("%010d", 10)
# => "0000000010"

Les flux de sorties spécifiés ensemble avec '#' sont montrés ci-dessous.

p sprintf("%#010x", 10)  # => "0x0000000a"
p sprintf("%#010o", 10)  # => "0000000012"
p sprintf("%#010b", 10)  # => "0b00001010"

C'est identique à ceci.

p sprintf("%#10.8x", 10) # => "0x0000000a"
p sprintf("%#10.9o", 10) # => "0000000012"
p sprintf("%#10.8b", 10) # => "0b00001010"

L'affichage normale est affiché ci dessous.

p sprintf("%#10x", 10)   # => "       0xa"
p sprintf("%#10o", 10)   # => "       012"
p sprintf("%#10b", 10)   # => "    0b1010"

Largeur

Une chaine de chiffre, qui commence avec n'importe quel chiffre autre que 0 est la largeur spécifiée. La largeur affiche la longueur de la chaine de caractères produite. Contrairement à la valeur de"Précision", qui est mentionnée plus loin, seul la chaine de chiffre de la largeur citée, est produite.

Comme pour la spécification de la largeur, la longueur de " ", "+", "-", "0b", "0", "0x", "0X", qui sont présentés comme "Drapeau", est aussi prise en compte.

p sprintf("%#05x", 10) # => "0x00a"

La Spécification de la largeur spécifie la "largeur minimum nécessaire." Si la chaine de chiffre résultante dépasse la largeur spécifiée, la spécification de la largeur n'est plus valide.

Si la largeur est spécifiée comme '*', alors la valeur de la largeur est obtenue à partir d'un argument.

p sprintf("%10s", "foo")    # => "       foo"
p sprintf("%*s", 10, "foo") # => "       foo"

Précision

Une chaine de chiffre qui suit un "." montre la précision (Quand seul un "." est affiché, c'est pareil que ".0"). La précision signifie la longueur de la portion des chaines de valeurs numériques pour les indicateurs d'entier suivants: 'd', 'i', 'b', 'o', 'x', 'X', 'u'.

p sprintf("%10.5d", 1)  # => "     00001"
p sprintf("%#10.5x", 1) # => "   0x00001"
p sprintf("%+10.5x", 1) # => "    +00001"

Ceci signifie les positions décimales pour l'indicateur de virgule flottante 'f'.

p sprintf("%10.5f", 1)   # => "   1.00000"
p sprintf("%10.5f", 10)  # => "  10.00000"

Ceci signifie le nombre de figures significatives pour les indicateurs de virgule flottante 'e ', 'E ', 'g ', et 'G '.

p sprintf("%10.5e", 1)   # => "1.00000e+00"
p sprintf("%10.5e", 10)  # => "1.00000e+01"
p sprintf("%10.5g",  10)  # => "        10"
p sprintf("%#10.5G", 10)  # => "    10.000"

Pour des indicateurs de chaîne de caractères 's' et 'p', la partie qui excédent le nombre indiqué dans la chaîne de caractères d'argument est coupée. Si les valeurs de largeur et de précision sont identiques, seulement le flux de sortie pour cette longueur sera exécuté, quelque soit l'argument.

p sprintf("%10.2s", "foo")  # => "        fo"

p sprintf("%5.5s", "foo")     # => # => "  foo"
p sprintf("%5.5s", "foobar")  # => # => "fooba"

Si la précision est spécifiée comme '*', alors la valeur de la précision est obtenue à partir d'un argument.

p sprintf("%.5s", "foobar")    # => "fooba"
p sprintf("%.*s", 5, "foobar") # => "fooba"

Indicateurs

Les indicateurs montrent les interprétations de modèle d'argument. Ils ne peuvent pas être abrégés, et ils sont divisés en ces groupes suivants:

  • Indicateurs montrant des chaines de caractères : 'c', 's', 'p'
  • Indicateurs montrant des entiers : 'd', 'i', 'u', 'b', 'o', 'x', 'X',
  • Indicateurs montrant des virgules flottantes : 'f', 'g', 'e', 'E', 'G'

c

Les valeurs d'argument 0-255 sont identifiées avec des codes de caractères, puis le caractère correspondant est produit. La conversion d'argument est tentée avec la méthode to_int (vers entier) pour les objets autre que des valeurs numérique, des chaine, nil, true et false.

Cela s'applique seulement pour le Drapeau '-' et la spécification de la "Largeur".

s

Des Chaines de caractères sont produites.

SI l'argument n'est pas un objet de type String, la méthode to_s permet à l'objet d'être changé en une chaine de caractère afin d'être traité comme un argument.

p

Les résultats de Object#inspect sont produits.

p sprintf("%s", [1, 2, 3])      # => "123"
p sprintf("%p", [1, 2, 3])      # => "[1, 2, 3]"
d
i

La valeur numérique d'un argument est produite comme expression de nombre entier décimal.

Si l'argument n'est pas un nombre entier il sera converti en un.

u

La valeur d'argument est considérée comme nombre entier sans symbole, alors celui en sortie comme nombre entier décimal.

p sprintf("%u", -1) # => "4294967295"

renvoie p 0xffff_ffff.to_s.

'%u' considère l'argument comme la longueur fixée d'un nombre entier, et

printf("%u", n)

à la même signification que

printf("%d", n & ~(-1 << n.size*8))

pour l'entier négatif n.

b
o
x
X

Les nombres entiers sont sortis comme chaînes de caractères avec des expressions binaires, octales, hexadécimales, et hexadécimales (en lettre majuscule).

Si le drapeau '#' est indiqué, "0b", "0", "0x", "0X" sont ajoutés au début.

Si des drapeaux '+'ou ' ' ne sont pas employés, ".." (si un drapeau '#' est employé, après "0x" etc...) est ajouté à l'avant des nombres négatifs. Ceci signifie que les caractères du chiffre de plus haut rang continuent à l'infini, et des nombres négatifs sont montrés dans des nombres complémentaires de 2.

p sprintf("%#b", 10)    # => "0b1010"
p sprintf("%#o", 10)    # => "012"
p sprintf("%#x", 10)    # => "0xa"

".." est ajouté aux # nombres négatifs
p sprintf("%#b", -1)    # => "0b..1"
p sprintf("%#o", -1)    # => "0..7"
p sprintf("%#x", -1)    # => "0x..f"

p sprintf("%10x", -1)   # => "       ..f"
p sprintf("%-10x", -1)  # => "..f       "

Si # "précision" a été spécifiée, ".." n'est pas ajouté.
p sprintf("%.10x", -1)  # => "ffffffffff"
f
e
E
g
G

'f 'produit des valeurs numériques avec une expression décimale (xxx.xxx).

'e 'produit des valeurs numériques avec une notation exponentielle (x.xxxe+xx).

Quand l'exposant est plus petit que -4, ou plus grand que la précision, 'g' produit la même chose que 'e'. Dans tous autres cas, il produit la même chose que 'f'. Cependant, le 0 à l'extrémité d'une fraction décimale est omis.

Les indicateurs en majuscule 'E' et 'G' change l'alphabet de sortie en majuscules.

p sprintf("%f", 1.0) # => "1.000000"
p sprintf("%e", 1.0) # => "1.000000e+000"
p sprintf("%g", 1.0) # => "1"

p sprintf("%f", 10.1) # => "10.100000"
p sprintf("%e", 10.1) # => "1.010000e+001"
p sprintf("%g", 10.1) # => "10.1"

p sprintf("%g", 10 ** 6)  # => "1e+006"
p sprintf("%g", 10 ** -5) # => "1e-005"

La valeur par défaut de précision est 6.


RMXP SDK

Qu'est ce donc que le RMXP SDK? Tout simplement un outils crée pour améliorer la compatibilité entre les scripts réalisés par la communauté mondiale de RPG Maker XP. Ce SDK, propose plusieurs règles de programmation à respecter lors de la création de vos scripts pour leurs assurer une compatibilité maximum avec les scripts d'autres auteurs.

Comment s'en sert on? Très simplement:

  • Créez un nouveau script appelé "SDK" juste après les Scripts par défauts mais juste avant vos propres scripts.
  • Copiez le contenu encadrée ci dessous ce script.
  • Enregistrez votre projet.

Et voilà! Après il ne vous reste plus qu'à lire les règles inscrites dans ce script^^ et à utiliser les outils proposés.

Attention, la version proposée correspond à la version 1.4 traduite en Français, pensez à vérifiez les possibles mises à jour qui se feront à l'avenir. Pour obtenir plus de renseignements, consultez le forum anglais: http://www.rmxp.net et concernant la traduction de ce SDK: http://www.yumeteam.net/yt et http://trebor777.free.fr/wikini.

#==============================================================================
# ** RMXP Kit de Développement (SDK) de RMXP.net
#------------------------------------------------------------------------------
# Build Date - 2005-11-22
# Version 1.0 - Near Fantastica - 2005-11-22
# Version 1.1 - SephirothSpawn - 2005-12-18 - (Near Fantastica)
# Version 1.2 - Near Fantastica - 2005-12-18
# Version 1.3 - Wachunga - 2005-12-19
# Version 1.4 - Prexus - 2006-03-02
#------------------------------------------------------------------------------
=begin
1.0 - Contexte

Le kit standard de développement (SDK) vise à augmenter la compatibilité entre
les scripts RGSS en:

a) définissant un ensemble de normes de programmation (voir la section 3)
b) modifiant les classes et méthodes par défaut souvent utilisées (voir la section 4)
c) fournissant un module d'outils de programmation (voir la section 5)
#------------------------------------------------------------------------------
2.0 - Modifications au kit standard de développement de RMXP

Puisque l'édition du SDK peut causer des erreurs importantes, toutes
les modifications doivent d'abord être approuvées par un membre de l'équipe de RMXP SDK.

L'auteur de toutes les modifications doit être sûr de mettre à jour toute la documentation
appropriée. Ceci inclut également l'en-tête, où l'auteur doit mettre
le numéro suivant de version avec son nom et le nom du membre approbateur
(de l'équipe de SDK) sous la dernière version dans le format suivant.

Version # - Nom - Date - (Nom Du Membre D'Approbation)
#------------------------------------------------------------------------------
3.0 - Normes De Codage

Pour être conforme avec le SDK, un script doit se soumettre avec les normes
de codage suivantes:

3.1 - Commentaire
3.2 - Les Classes
3.3 - Les Variables
3.4 - Alias (Renommage)
3.5 - String (chaînes de caractères)
3.6 - Longueur De Ligne
3.7 - L'Espace Blanc
3.8 - Les Constantes
3.9 - Les Parenthèses
#------------------------------------------------------------------------------
3.1 - Commentaire

Les scripts doivent commencer par l'en-tête suivant:

#==============================================================================
# ** Nom Du script
#------------------------------------------------------------------------------
# Votre Nom
# version
# date
#==============================================================================

Toutes les classes et méthodes doivent avoir un commentaire décrivant le processus ou ce qui
a été ajouté. Tout le code ajouté aux méthodes qui ne peuvent pas être renommée doit être
composé comme suit:

#------------------------------------------------------------------------------
# Début Édition Le Nom du script
#------------------------------------------------------------------------------
[ code ]
#------------------------------------------------------------------------------
# Fin Édition Le Nom du script
#------------------------------------------------------------------------------

Les commentaires d'une ligne devraient précéder le bloc de code décrit et devraient être
indenté au même niveau. Le code non-explicite devrait être
commenté.

Cependant, les commentaires très courts peuvent apparaître sur la même ligne que le code
décrit, mais devrait être décalé assez loin pour les séparer du code.
Si plus d'un commentaire court apparaissent dans un gros morceau de code, ils devraient tous être
indenté sur le même alignement. Les déclarations d'attribut devraient toujours avoir un
commentaire acollé.
#------------------------------------------------------------------------------
3.2 - Classes

Toutes les classes doivent être appelées de la même manière que le code par défaut, à savoir:

Data - toute classe qui contient des données
Game - toute classe qui traite ces données
Sprite - toute classe qui définit un sprite
Spriteset - toute classe qui définit les sprites multiples
Window - toute classe qui définit une fenêtre
Arrow - toute classe qui définit un curseur-pointeur de sélection
Scene - toute classe qui définit une scène
#------------------------------------------------------------------------------
3.3 - Variables

Tous les noms de variables doivent être un minimum explicites. L'utilisation de variables de classe
et globales devraient être limitées. Toute variable par défaut ne peut pas voir son utilisation changer.
#------------------------------------------------------------------------------
3.4 - Alias (Renommage)

L'alias est préférable à la redéfinition; l'alias devrait être employé
autant que possible pour augmenter la compatibilité avec d'autres scripts. Tout les noms
d'alias doivent avoir le format suivant:

votrenom_nomduscript_nomdelaclasse_nomdelaméthode
#------------------------------------------------------------------------------
3.5 String (Chaînes de caractères)

Des strings devraient normalement être définies avec des guillemets simples ('exemple '); ceci
diminue la durée de traitement du moteur. Les guillemets double sont utiles quand
on emploie les dispositifs suivants:
a) substitutions, c.-à-d. séquences qui commencent par un caractère d'antislash
(par exemple \n pour le caractère de caractère NL(fin de ligne))
b) l'interpolation d'expression, c.-à-d. # { expr } est remplacée par la valeur
de expr
#------------------------------------------------------------------------------
3.6 - Longueur De Ligne

Les lignes ne devraient pas forcer l'utilisateur à faire défiler le script horizontalement pour les regarder
dans l'éditeur de script. Quand la ligne doit être cassée, elle devra suivre
 des directives, dans l'ordre préférentiel:

Coupure après une virgule.
Coupure avant un opérateur.
Préférez les coupures de plus hautes priorité aux coupures de plus basses priorité.
Alignez la nouvelle ligne avec le commencement de l'expression au même niveau
sur la ligne précédente.

Si les règles ci-dessus mènent à un code embrouillant ou à un code qui déborde
sur la marge de droite, Indentez simplement de 4 espaces à la place.
#------------------------------------------------------------------------------
3.7 - L'Espace Blanc

Une ligne blanche doit être employé dans les endroits suivants:

Entre les sections d'un fichier source
Entre la classe et les définitions de module
Entre les attributs et la définition de classe
Entre les méthodes
Entre les variables locales dans une méthode et sa première opération
Avant un bloc ou un commentaire d'une seule ligne
Entre les sections logiques à l'intérieur d'une méthode pour améliorer la lisibilité

Des espaces vides devraient être employés dans les endroits suivants:

Un mot-clé suivi d'une parenthèse, par exemple si (quelques_opérations_booléennes)
Après des virgules dans l'énuration d'arguments, par exemple la méthode de def (arg1, arg2...)
Tous les opérateurs binaires excepté '.', par exemple a + b; c = 1
#------------------------------------------------------------------------------
3.8 - Les Constantes

Les nouvelles valeurs numériques ne devraient pas être "codée brut", excepté -1, 0, et 1,
ce qui peut apparaître dans des boucles for en tant que valeurs de compteur. Au lieu de cela, ces valeurs
numériques devraient être transformées en des variables constantes et ces dernières utilisées à la place.
#------------------------------------------------------------------------------
3.9 - Les Parenthèses

C'est généralement une bonne idée d'employer des parenthèses librement dans les expressions
impliquant des opérateurs mélangés pour éviter des problèmes de priorité d'opérateur. Même si
la priorité d'opérateur semble claire pour vous, elle ne pourrait pas l'être à d'autres -vous
ne devriez pas considérer que d'autres programmeurs connaissent la priorité comme vous .
#------------------------------------------------------------------------------
4.0 - Mises à jour Du Moteur

Ce qui suit est une liste de classes et de méthodes qui ont été mises à jour par
le SDK pour aider à améliorer la compatibilité:

Game_Map - setup
Game_Map - update
Game_Character - update
Game_Event - refresh
Game_Player - update
Sprite_Battler - update
Spriteset_Map - initialize
Spriteset_Map - update
Scene_Tile - main
Scene_Map - main
Scene_Map - update
Scene_Save - write_save_data
Scene_Load - read_save_data
Scene_Menu - initialize
Scene_Menu - main
Scene_Menu - update & command input
Scene_Battle - main
Scene_Battle - update
Scene_Battle - update_phase3_basic_command
Scene_Battle - make_basic_action_result
#------------------------------------------------------------------------------
5.0 - Outils de SDK

Les outils suivants sont inclus dans le SDK pour aider à améliorer le processus de
développement:

5.1 - Identifier des scripts
5.2 - Activer/Désactiver des scripts
5.3 - Dépendances du script
5.4 - Entrée Standard De Boîte Des Textes
5.5 - Entrée Standard De Commentaire D'Événement
#------------------------------------------------------------------------------
5.1 Identifier des scripts

Tous les scripts conformes au SDK devraient être identifiés. Ceci est fait en appelant
la méthode SDK.log(script, nom, ver, date), où

script = nom du script
nom = votre nom
ver = version
date = la date de la dernière mise à jour
#------------------------------------------------------------------------------
5.2 Activer/Désactiver des scripts

Quand un script est identifié il est également activé. Un script peut être activé et
désactivé en utilisant les appels suivants:

 SDK.enable('Nom Du Script')
 SDK.disable('Nom Du Script')

Tous les scripts non-par défaut (et le code ajouté aux scripts par défaut) doivent être inclus
dans un if qui vérifie s'ils ont été activés, comme suit:

#--------------------------------------------------------------------------
# Début Vérification d'Activation par le SDK
#--------------------------------------------------------------------------
if SDK.state('Script Name') == true
  [Script ou Code]
end
#--------------------------------------------------------------------------
# Fin Vérification d'Activation par le SDK
#--------------------------------------------------------------------------

Maintenez à l'esprit que ce if ne peut pas s'appliquer à d'autres pages et
chaque page a besoin de son propre if examinant l'état du script. Comme
 chaque script devrait avoir son propre test.
#------------------------------------------------------------------------------
5.3 Dépendances du script

N'importe quel script qui exige (c.-à-d. a une dépendance envers) un autre script peut vérifier
si cette dépendance est rencontrée, à condition que le script exigé soit installé avant
le script en question. Ceci serait fait de la façon suivante:

p 'Nom_du_script non trouvé' if SDK.state('Nom_du_script') != true
Afficher 'Nom du script non trouvé' si SDK.state('Nom_du_script') est différent de vrai
#------------------------------------------------------------------------------
5.4 Entrée Standard De Boîte De Textes

N'importe quel script qui exige l'entrée d'un champ-texte d'une base de données devrait employer
la forme suivante:

SDK.text_box_input(élément, index)

là où:
élément = un objet du champ-texte
index = l'index destinataire de votre appel de script

Le champ-texte devrait être composé de la façon suivante:

"valeur par défaut|appel du script|appel du script "
#------------------------------------------------------------------------------
5.5 Entrée Standard De Commentaire D'Événement

N'importe quel script qui exige l'entrée d'un commentaire d'événement devrait employer
la forme suivante:

SDK.event_comment_input(événement, éléments, déclenchement)

où:
événement = un objet de l'événement
les éléments = le nombre d'éléments que la méthode doit traiter
déclenchement = la valeur des textes déclenchant le script pour débuter l'éxecution

ou bien

SDK.event_comment_input(page, éléments, déclenchement)

où:
page = un objet de la page d'évènement (event.page)
les éléments = le nombre d'éléments que la méthode doit traiter
déclenchement = la valeur des textes déclenchant le script pour débuter l'éxecution

La méthode renvoie zéro si le déclenchement ne peut pas être trouvé; autrement, elle
renvoie une liste des paramètres de l'événement.
#==============================================================================
=end

module SDK
@list = {}
@enabled = {}
#--------------------------------------------------------------------------
# * Identifie un script personnel
#--------------------------------------------------------------------------
def self.log(script, name, ver, date)
@list[script] = [name,ver,date]
@enabled[script] = true
end
#--------------------------------------------------------------------------
# * Renvoie une liste des scripts personnels
#--------------------------------------------------------------------------
def self.print(script = '')
if script == ''
return @list
else
return @list[script]
end
end
#--------------------------------------------------------------------------
# * Ecrit dans un fichier une liste des scripts personnels
#--------------------------------------------------------------------------
def self.write
file = File.open('Scripts List.txt', 'wb')
for key in @list.keys
file.write("#{@list[key][0]} : #{key} Version #{@list[key][1]}\n")
end
file.close
end
#--------------------------------------------------------------------------
# * Renvoie l'état d'activation du script passé en argument
#--------------------------------------------------------------------------
def self.state(script)
return @enabled[script]
end
#--------------------------------------------------------------------------
# * Active le script passé en argument
#--------------------------------------------------------------------------
def self.enable(script)
@enabled[script] = true
end
#--------------------------------------------------------------------------
# * Désactive le script passé en argument
#--------------------------------------------------------------------------
def self.disable(script)
@enabled[script] = false
end
#--------------------------------------------------------------------------
# * Evalue le texte d'une source d'entrée
#--------------------------------------------------------------------------
def self.text_box_input(element, index)
return if index == 0
commands = element.split('|')
eval(commands[index])
end
#--------------------------------------------------------------------------
# * Renvoie une liste de paramètres des commentaires d'un
# évènement
#--------------------------------------------------------------------------
def self.event_comment_input(*args)
parameters = []
list = *args[0].list
elements = *args[1]
trigger = *args[2]
return nil if list == nil
return nil unless list.is_a?(Array)
for item in list
next if item.code != 108
if item.parameters[0] == trigger
start = list.index(item) + 1
finish = start + elements
for id in start...finish
next if !list[id]
parameters.push(list[id].parameters[0])
end
return parameters
end
end
return nil
end
end
  #==============================================================================
  # ** Object
  #------------------------------------------------------------------------------
  # l'automatic_dispose s'occupe de libérer tous les fenêtres et sprites dans une scène,
  # une fois appelé.
  #==============================================================================
  class Object
  #--------------------------------------------------------------------------
  # * Libération Automatique
  #--------------------------------------------------------------------------
  def automatic_dispose
  self.instance_variables.each do |item|
  eval("#{item}.dispose if (#{item}.is_a?(Sprite) or #{item}.is_a?(Window_Base)) and (!#{item}.disposed?)")
  end
  end
  end
  #==============================================================================
  # ** Game_Map
  #------------------------------------------------------------------------------
  # Cette classe gère la carte. Cela inclus les fonctions de défilement et
  # de passabilité. Fait référence à "$game_map" pour l'instance de cette classe.
  #==============================================================================
  class Game_Map
  #--------------------------------------------------------------------------
  # * Setup
  # map_id : ID de la carte
  #--------------------------------------------------------------------------
  def setup(map_id)
  setup_map_id(map_id)
  setup_load
  setup_tileset
  setup_display
  setup_refresh
  setup_events
  setup_common_events
  setup_fog
  setup_scroll
  end
  #--------------------------------------------------------------------------
  # * Définie l'ID de la carte
  #--------------------------------------------------------------------------
  def setup_map_id(map_id)
  # Met l'ID de la carte en mémoire dans @map_id
  @map_id = map_id
  end
  #--------------------------------------------------------------------------
  # * Charge les données de la carte
  #--------------------------------------------------------------------------
  def setup_load
  # Charge la carte depuis le fichier et défini @map
  @map = load_data(sprintf("Data/Map%03d.rxdata", @map_id))
  end
  #--------------------------------------------------------------------------
  # * Setup Tileset
  #--------------------------------------------------------------------------
  def setup_tileset
  # Définie les informations de l'ensemble de carreaux en ouvrant les variables d'instance
  tileset = $data_tilesets[@map.tileset_id]
  @tileset_name = tileset.tileset_name
  @autotile_names = tileset.autotile_names
  @panorama_name = tileset.panorama_name
  @panorama_hue = tileset.panorama_hue
  @fog_name = tileset.fog_name
  @fog_hue = tileset.fog_hue
  @fog_opacity = tileset.fog_opacity
  @fog_blend_type = tileset.fog_blend_type
  @fog_zoom = tileset.fog_zoom
  @fog_sx = tileset.fog_sx
  @fog_sy = tileset.fog_sy
  @battleback_name = tileset.battleback_name
  @passages = tileset.passages
  @priorities = tileset.priorities
  @terrain_tags = tileset.terrain_tags
  end
  #--------------------------------------------------------------------------
  # * Défini l'affichage
  #--------------------------------------------------------------------------
  def setup_display
  # Initialise les coordonnées d'affichages
  @display_x = 0
  @display_y = 0
  end
  #--------------------------------------------------------------------------
  # * Défini le rafraîchissement
  #--------------------------------------------------------------------------
  def setup_refresh
  # Réinitialise le drapeau "Besoin de rafraîchir"
  @need_refresh = false
  end
  #--------------------------------------------------------------------------
  # * Définie les événements
  #--------------------------------------------------------------------------
  def setup_events
  # Définie les données des événements de la carte
  @events = {}
  for i in @map.events.keys
  @events[i] = Game_Event.new(@map_id, @map.events[i])
  end
  end
  #--------------------------------------------------------------------------
  # * Définie les événements communs
  #--------------------------------------------------------------------------
  def setup_common_events
  # Définie les données d'événement commun
  @common_events = {}
  for i in 1...$data_common_events.size
  @common_events[i] = Game_CommonEvent.new(i)
  end
  end
  #--------------------------------------------------------------------------
  # * Définie le brouillard
  #--------------------------------------------------------------------------
  def setup_fog
  # Initialise toute les informations de brouillard
  @fog_ox = 0
  @fog_oy = 0
  @fog_tone = Tone.new(0, 0, 0, 0)
  @fog_tone_target = Tone.new(0, 0, 0, 0)
  @fog_tone_duration = 0
  @fog_opacity_duration = 0
  @fog_opacity_target = 0
  end
  #--------------------------------------------------------------------------
  # * Définie le défilement
  #--------------------------------------------------------------------------
  def setup_scroll
  # Initialise les informations de défilement
  @scroll_direction = 2
  @scroll_rest = 0
  @scroll_speed = 4
  end
  #--------------------------------------------------------------------------
  # * Mise à jour de Frame(image)
  #--------------------------------------------------------------------------
  def update
  update_refresh
  update_scrolling
  update_events
  update_common_events
  update_fog_scroll
  update_fog_colour
  update_fog
  end
  #--------------------------------------------------------------------------
  # * Rafraîchit la carte de jeu
  #--------------------------------------------------------------------------
  def update_refresh
  # Rafraîchit la carte si nécessaire
  if $game_map.need_refresh
  refresh
  end
  end
  #--------------------------------------------------------------------------
  # * Met à jour le défilement
  #--------------------------------------------------------------------------
  def update_scrolling
  # Si défile
  if @scroll_rest > 0
  # Changer la vitesse de défilement en distance en coordonnées de carte
  distance = 2 ** @scroll_speed
  # Exécuter le défilement
  case @scroll_direction
  when 2 # Bas
  scroll_down(distance)
  when 4 # Gauche
  scroll_left(distance)
  when 6 # Droite
  scroll_right(distance)
  when 8 # Haut
  scroll_up(distance)
  end
  # Soustraire la distance défilée
  @scroll_rest -= distance
  end
  end
  #--------------------------------------------------------------------------
  # * Mettre à jour les événements
  #--------------------------------------------------------------------------
  def update_events
  # Mettre à jour l'événement de la carte
  for event in @events.values
  event.update
  end
  end
  #--------------------------------------------------------------------------
  # * Mettre à jour les événements communs
  #--------------------------------------------------------------------------
  def update_common_events
  # Mettre à jour l'événement commun
  for common_event in @common_events.values
  common_event.update
  end
  end
  #--------------------------------------------------------------------------
  # * Mettre à jour le défilment du brouillard
  #--------------------------------------------------------------------------
  def update_fog_scroll
  # Contrôler le défilement du brouillard
  @fog_ox -= @fog_sx / 8.0
  @fog_oy -= @fog_sy / 8.0
  end
  #--------------------------------------------------------------------------
  # * Mettre à jour la couleur du brouillard
  #--------------------------------------------------------------------------
  def update_fog_colour
  # Contrôler le changement de ton de couleur du brouillard
  if @fog_tone_duration >= 1
  d = @fog_tone_duration
  target = @fog_tone_target
  @fog_tone.red = (@fog_tone.red * (d - 1) + target.red) / d
  @fog_tone.green = (@fog_tone.green * (d - 1) + target.green) / d
  @fog_tone.blue = (@fog_tone.blue * (d - 1) + target.blue) / d
  @fog_tone.gray = (@fog_tone.gray * (d - 1) + target.gray) / d
  @fog_tone_duration -= 1
  end
  end
  #--------------------------------------------------------------------------
  # * Mettre à jour le brouillard
  #--------------------------------------------------------------------------
  def update_fog
  # Contrôler le changement de niveau d'opacité du brouillard
  if @fog_opacity_duration >= 1
  d = @fog_opacity_duration
  @fog_opacity = (@fog_opacity * (d - 1) + @fog_opacity_target) / d
  @fog_opacity_duration -= 1
  end
  end
  end
    #==============================================================================
  # ** Game_Character
  #------------------------------------------------------------------------------
  # Cette classe traite les personnages. Elle est utilisée comme Classe Parente pour
  # les classes Game_Player et Game_Event.
  #==============================================================================
    class Game_Character
  #--------------------------------------------------------------------------
  # * Mettre à jour la Frame(image)
  #--------------------------------------------------------------------------
  def update
  update_movement_type
  update_animation
  update_wait
  return if update_force? == true
  return if update_event_execution? == true
  update_movement
  end
  #--------------------------------------------------------------------------
  # * Mettre à jour le type de déplacement
  #--------------------------------------------------------------------------
  def update_movement_type
  # Déterminer si c'est un saut, un déplacement, ou un arrêt
  if jumping?
  update_jump
  elsif moving?
  update_move
  else
  update_stop
  end
  end
  #--------------------------------------------------------------------------
  # * Mettre à jour l'animation
  #--------------------------------------------------------------------------
  def update_animation
  # Si le compteur de l'animation excède la valeur maximale
  # * Maximum value is move speed * 1 taken from basic value 18
  if @anime_count > 18 - @move_speed * 2
  # Si l'animation d'arrêt est désactivé à l'arrêt
  if not @step_anime and @stop_count > 0
  # Revenir au modèle d'origine
  @pattern = @original_pattern
  # Si l'animation d'arrêt est activée lors du déplacement
  else
  # Mettre à jour le modèle
  @pattern = (@pattern + 1) % 4
  end
  # Réinitialiser le compteur de l'animation
  @anime_count = 0
  end
  end
  #--------------------------------------------------------------------------
  # * Mettre à jour l'attente
  #--------------------------------------------------------------------------
  def update_wait
  # Si attents
  if @wait_count > 0
  # Réduire de le compteur d'attente
  @wait_count -= 1
  return
  end
  end
  #--------------------------------------------------------------------------
  # * Mettre à jour l'obligation de mouvement
  #--------------------------------------------------------------------------
  def update_force?
  # Si le chemin est forcé
  if @move_route_forcing
  # Mouvement Personnalisé
  move_type_custom
  return true
  end
  return false
  end
  #--------------------------------------------------------------------------
  # * Update Event Execution
  #--------------------------------------------------------------------------
  def update_event_execution?
  # Lorsque Attente pour éxécution d'événement ou bloqué
  if @starting or lock?
  # Ne se déplace pas par lui-même
  return true
  end
  return false
  end
  #--------------------------------------------------------------------------
  # * Mettre à jour le déplacement
  #--------------------------------------------------------------------------
  def update_movement
  # Si le compteur d'arrêt excède une certaine valeur
  # (calculée à partir de la fréquence de mouvement)
  if @stop_count > (40 - @move_frequency * 2) * (6 - @move_frequency)
  # Détermine le type de déplacement
  case @move_type
  when 1 # Aléatoire
  move_type_random
  when 2 # Suit le héros
  move_type_toward_player
  when 3 # Personnalisé
  move_type_custom
  end
  end
  end
  end
    #==============================================================================
  # ** Game_Event
  #------------------------------------------------------------------------------
  # Cette classe traite des événements. Elle gère les fonctions incluant la permutation de page
  # d'événement via les déterminants de condition, et l'éxécution des événements à processus
  # parallèle. Elle est utilisée en relation avec la classe Game_Map.
  #==============================================================================
    class Game_Event < Game_Character
  #--------------------------------------------------------------------------
  # * Rafrîchir
  #--------------------------------------------------------------------------
  def refresh
  # Initialiser la variable locale: new_page(nouvelle page)
  new_page = nil
  # Si non écrasé temporairement
  unless @erased
  new_page = refresh_trigger_conditions
  end
  # Si la page d'événement est la même que la dernière fois
  if new_page == @page
  # Finir la méthode
  return
  end
  # Définir @page comme la page actuelle d'événement
  @page = new_page
  # Réinitialiser le drapeau de départ
  clear_starting
  # Si aucune page ne remplie les conditions
  if @page == nil
  # Réinitialiser les valeurs
  refresh_reset
  # Finir la méthode
  return
  end
  # Définir les variables de page
  refresh_set_page
  # Vérifier le processus parallèle
  refresh_check_process
  # Vérifier le déclencheur de démarage automatique
  check_event_trigger_auto
  end
  #--------------------------------------------------------------------------
  # * Rafraîchir les conditions de déclenchement
  #--------------------------------------------------------------------------
  def refresh_trigger_conditions
  # Vérifier dans l'ordre des pages des larges événements
  for page in @event.pages.reverse
  # Rendre une possible référence pour les conditions de l'événement avec c
  c = page.condition
  # Confirmation de la condition bouton 1
  if c.switch1_valid
  if $game_switches[c.switch1_id] == false
  next
  end
  end
  # Confirmation de la condition bouton 2
  if c.switch2_valid
  if $game_switches[c.switch2_id] == false
  next
  end
  end
  # Confirmation de la condition Variable
  if c.variable_valid
  if $game_variables[c.variable_id] < c.variable_value
  next
  end
  end
  # Confirmation de la condition bouton local
  if c.self_switch_valid
  key = [@map_id, @event.id, c.self_switch_ch]
  if $game_self_switches[key] != true
  next
  end
  end
  # Définir la variable locale: new_page (nouvelle page)
  new_page = page
  # Quitter la boucle
  break
  end
  # Renvoyer la nouvelle page
  return new_page
  end
  #--------------------------------------------------------------------------
  # * Rafraîchir la réinitialisation
  #--------------------------------------------------------------------------
  def refresh_reset
  # Définir chaque variable d'instance
  @tile_id = 0
  @character_name = ""
  @character_hue = 0
  @move_type = 0
  @through = true
  @trigger = nil
  @list = nil
  @interpreter = nil
  end
  #--------------------------------------------------------------------------
  # * Rafraîchir la définition de page
  #--------------------------------------------------------------------------
  def refresh_set_page
  # Définir chaque variable d'instance
  @tile_id = @page.graphic.tile_id
  @character_name = @page.graphic.character_name
  @character_hue = @page.graphic.character_hue
  if @original_direction != @page.graphic.direction
  @direction = @page.graphic.direction
  @original_direction = @direction
  @prelock_direction = 0
  end
  if @original_pattern != @page.graphic.pattern
  @pattern = @page.graphic.pattern
  @original_pattern = @pattern
  end
  @opacity = @page.graphic.opacity
  @blend_type = @page.graphic.blend_type
  @move_type = @page.move_type
  @move_speed = @page.move_speed
  @move_frequency = @page.move_frequency
  @move_route = @page.move_route
  @move_route_index = 0
  @move_route_forcing = false
  @walk_anime = @page.walk_anime
  @step_anime = @page.step_anime
  @direction_fix = @page.direction_fix
  @through = @page.through
  @always_on_top = @page.always_on_top
  @trigger = @page.trigger
  @list = @page.list
  @interpreter = nil
  end
  #--------------------------------------------------------------------------
  # * Rafraichir le processus de vérification
  #--------------------------------------------------------------------------
  def refresh_check_process
  # SI le déclencheur est [processus parallèle]
  if @trigger == 4
  # Créer un interpreteur de processus parallèle
  @interpreter = Interpreter.new
  end
  end
  end
    #==============================================================================
  # ** Game_Player
  #------------------------------------------------------------------------------
  # Cette Classe gère le joueur. Ces fonction incluent les déterminants de démarrage
  # d'événements et de défilement de la carte. Faire référence à "$game_player" pour l'unique
  # instance de cette classe.
  #==============================================================================
    class Game_Player < Game_Character
  #--------------------------------------------------------------------------
  # * Mise à jour de la Frame(image)
  #--------------------------------------------------------------------------
  def update
  # Retenir dans une variable locale si on se déplace ou non
  last_moving = moving?
  # Si on se déplace, ou qu'un événement s'exécute,ou qu'on force le déplacement ou que
  # l'affichage de fenêtre de message se produit
  unless moving? or $game_system.map_interpreter.running? or
  @move_route_forcing or $game_temp.message_window_showing
  update_player_movement
  end
  # Retenir dans des variables locales les coordonnées
  last_real_x = @real_x
  last_real_y = @real_y
  super
  # Défiler la map
  update_scroll_down(last_real_y)
  update_scroll_left(last_real_x)
  update_scroll_right(last_real_x)
  update_scroll_up(last_real_y)
  # Si on ne se déplace pas
  unless moving?
  # Si le joueur se déplaçait la dernière fois
  if last_moving
  update_encounter
  end
  update_action_trigger
  end
  end
  #--------------------------------------------------------------------------
  # * Mise à jour du déplacement du joueur
  #--------------------------------------------------------------------------
  def update_player_movement
  # Déplacer le joueur dans la direction du bouton directionnel pressé
  case Input.dir4
  when 2
  move_down
  when 4
  move_left
  when 6
  move_right
  when 8
  move_up
  end
  end
  #--------------------------------------------------------------------------
  # * Défiler vers le bas
  #--------------------------------------------------------------------------
  def update_scroll_down(last_real_y)
  # Si le personnage se déplace vers le bas et est placé plus bas que le centre de l'écran
  if @real_y > last_real_y and @real_y - $game_map.display_y > CENTER_Y
  # Défiler la map vers le bas
  $game_map.scroll_down(@real_y - last_real_y)
  end
  end
  #--------------------------------------------------------------------------
  # * Défiler vers la gauche
  #--------------------------------------------------------------------------
  def update_scroll_left(last_real_x)
  # Si le personnage se déplace vers la gauche et est placé plus à gauche que le centre
  # de l'écran
  if @real_x < last_real_x and @real_x - $game_map.display_x < CENTER_X
  # Défiler la map vers la gauche
  $game_map.scroll_left(last_real_x - @real_x)
  end
  end
  #--------------------------------------------------------------------------
  # * Défiler vers la droite
  #--------------------------------------------------------------------------
  def update_scroll_right(last_real_x)
  # Si le personnage se déplace vers la droite et est placé plus à droite que le centre
  # de l'écran
  if @real_x > last_real_x and @real_x - $game_map.display_x > CENTER_X
  # Défiler la map vers la droite
  $game_map.scroll_right(@real_x - last_real_x)
  end
  end
  #--------------------------------------------------------------------------
  # * Défiler vers le haut
  #--------------------------------------------------------------------------
  def update_scroll_up(last_real_y)
  # Si le personnage se déplace vers le bas et est placé plus haut que le centre de l'écran
  if @real_y < last_real_y and @real_y - $game_map.display_y < CENTER_Y
  # Défiler la map vers le haut
  $game_map.scroll_up(last_real_y - @real_y)
  end
  end
  #--------------------------------------------------------------------------
  # * Mettre à jour le déclencheur d'Action
  #--------------------------------------------------------------------------
  def update_action_trigger
  # Si le bouton C était pressé
  if Input.trigger?(Input::C)
  # Vérification de la position et du regard vers l'événement
  check_event_trigger_here([0])
  check_event_trigger_there([0,1,2])
  end
  end
  #--------------------------------------------------------------------------
  # * Défiler les contacts
  #--------------------------------------------------------------------------
  def update_encounter
  # La cause d'événement est par contact de même position d'événement
  result = check_event_trigger_here([1,2])
  # Si un événement qui aurait démarré n'existe pas
  if result == false
  # Ignore le Mode Debug et l'appuie de la touche CTRL
  unless $DEBUG and Input.press?(Input::CTRL)
  # Compte à rebours de rencontre
  if @encounter_count > 0
  @encounter_count -= 1
  end
  end
  end
  end
  end

  #==============================================================================
  # ** Sprite_Battler
  #------------------------------------------------------------------------------
  #  Ce Sprite est utilisé pour afficher le battler. En relation avec la classe Game_Character
  #  et change automatiquement les conditions du sprite.
  #==============================================================================

class Sprite_Battler
  #--------------------------------------------------------------------------
  # * Mise à jour
  #--------------------------------------------------------------------------
  def update
    super
    # Si le battler est nul
    if @battler == nil
      remove_battler
      return
    end
    # Si le nom de fichier, ou le ton sont différents des actuels.
    redraw_battler
    # Si l'ID d'animation est différent de l'actuel
    loop_anim
    # Si le héros doit être affiché
    adjust_actor_opacity
    # Clignotement
    adjust_blink
    # Si invisible
    adjust_visibility
    # Si visible
    if @battler_visible
      # Fuite
      sprite_escape
      # Flash Blanc
      sprite_white_flash
      # Animation
      sprite_animation
      # Dégâts
      sprite_damage
      # Effondrement / Mort
      sprite_collapse
    end
    # Définie les coordonnées du Sprite
    self.x = @battler.screen_x
    self.y = @battler.screen_y
    self.z = @battler.screen_z
  end
  #--------------------------------------------------------------------------
  # * Enlève le Battler
  #--------------------------------------------------------------------------
  def remove_battler
    self.bitmap = nil
    loop_animation(nil)
  end
  #--------------------------------------------------------------------------
  # * Redessine le Battler
  #--------------------------------------------------------------------------
  def redraw_battler
    if @battler.battler_name != @battler_name or
        @battler.battler_hue != @battler_hue
      # Récupère et définie le bitmap
      @battler_name = @battler.battler_name
      @battler_hue = @battler.battler_hue
      self.bitmap = RPG::Cache.battler(@battler_name, @battler_hue)
      @width = bitmap.width
      @height = bitmap.height
      self.ox = @width / 2
      self.oy = @height
      # Change le niveau d'opacité à 0 quand mort ou caché
      if @battler.dead? or @battler.hidden
        self.opacity = 0
      end
    end
  end
  #--------------------------------------------------------------------------
  # * Boucle d'animation du sprite
  #--------------------------------------------------------------------------
  def loop_anim
    if @battler.damage == nil and
        @battler.state_animation_id != @state_animation_id
      @state_animation_id = @battler.state_animation_id
      loop_animation($data_animations[@state_animation_id])
    end
  end
  #--------------------------------------------------------------------------
  # * Ajuster l'opacité d'un héros
  #--------------------------------------------------------------------------
  def adjust_actor_opacity
    if @battler.is_a?(Game_Actor) and @battler_visible
      # Diminue légèrement l'opacité quand le héros n'est pas dans la phase
      # principale.
      if $game_temp.battle_main_phase
        self.opacity += 3 if self.opacity < 255
      else
        self.opacity -= 3 if self.opacity > 207
      end
    end
  end
  #--------------------------------------------------------------------------
  # * Ajuster le clignotement
  #--------------------------------------------------------------------------
  def adjust_blink
    if @battler.blink
      blink_on
    else
      blink_off
    end
  end
  #--------------------------------------------------------------------------
  # * Ajuster la Visibilité
  #--------------------------------------------------------------------------
  def adjust_visibility
    unless @battler_visible
      # Apparaître
      if not @battler.hidden and not @battler.dead? and
         (@battler.damage == nil or @battler.damage_pop)
        appear
        @battler_visible = true
      end
    end
  end
  #--------------------------------------------------------------------------
  # * Sprite: Fuite
  #--------------------------------------------------------------------------
  def sprite_escape
    if @battler.hidden
      $game_system.se_play($data_system.escape_se)
      escape
      @battler_visible = false
    end
  end
  #--------------------------------------------------------------------------
  # * Sprite: Flash Blanc
  #--------------------------------------------------------------------------
  def sprite_white_flash
    if @battler.white_flash
      whiten
      @battler.white_flash = false
    end
  end
  #--------------------------------------------------------------------------
  # * Sprite: Animation
  #--------------------------------------------------------------------------
  def sprite_animation
    if @battler.animation_id != 0
      animation = $data_animations[@battler.animation_id]
      animation(animation, @battler.animation_hit)
      @battler.animation_id = 0
    end
  end
  #--------------------------------------------------------------------------
  # * Sprite: Dégâts
  #--------------------------------------------------------------------------
  def sprite_damage
    if @battler.damage_pop
      damage(@battler.damage, @battler.critical)
      @battler.damage = nil
      @battler.critical = false
      @battler.status = nil
      @battler.damage_pop = false
    end
  end
  #--------------------------------------------------------------------------
  # * Sprite: Effondrement/Mort
  #--------------------------------------------------------------------------
  def sprite_collapse
    if @battler.damage == nil and @battler.dead?
      if @battler.is_a?(Game_Enemy)
        $game_system.se_play($data_system.enemy_collapse_se)
      else
        $game_system.se_play($data_system.actor_collapse_se)
      end
      collapse
      @battler_visible = false
    end
  end
end

    #==============================================================================
  # ** Spriteset_Map
  #------------------------------------------------------------------------------
  # Cette Classe rassemble les sprite d'écran de carte, les tilemaps, etc.
  # Elle est utilisée en relation avec la classe Scene_Map.
  #==============================================================================
    class Spriteset_Map
  #--------------------------------------------------------------------------
  # * Initialisation d'objet
  #--------------------------------------------------------------------------
  def initialize
  init_viewports
  init_tilemap
  init_panorama
  init_fog
  init_characters
  init_player
  init_weather
  init_pictures
  init_timer
  # Mise à jour de la Frame(image)
  update
  end
  #--------------------------------------------------------------------------
  # * Initialisation des viewports
  #--------------------------------------------------------------------------
  def init_viewports
  # Créer les viewports
  @viewport1 = Viewport.new(0, 0, 640, 480)
  @viewport2 = Viewport.new(0, 0, 640, 480)
  @viewport3 = Viewport.new(0, 0, 640, 480)
  @viewport2.z = 200
  @viewport3.z = 5000
  end
  #--------------------------------------------------------------------------
  # * Initialisation du Tilemap
  #--------------------------------------------------------------------------
  def init_tilemap
  # Créer le tilemap
  @tilemap = Tilemap.new(@viewport1)
  @tilemap.tileset = RPG::Cache.tileset($game_map.tileset_name)
  for i in 0..6
  autotile_name = $game_map.autotile_names[i]
  @tilemap.autotiles[i] = RPG::Cache.autotile(autotile_name)
  end
  @tilemap.map_data = $game_map.data
  @tilemap.priorities = $game_map.priorities
  end
  #--------------------------------------------------------------------------
  # * Initialisation du panorama
  #--------------------------------------------------------------------------
  def init_panorama
  # Créer le plan de panorama
  @panorama = Plane.new(@viewport1)
  @panorama.z = -1000
  end
  #--------------------------------------------------------------------------
  # * Initialization du brouillard
  #--------------------------------------------------------------------------
  def init_fog
  # Créer le plan de brouillard
  @fog = Plane.new(@viewport1)
  @fog.z = 3000
  end
  #--------------------------------------------------------------------------
  # * Initialisation sprites de personnage
  #--------------------------------------------------------------------------
  def init_characters
  # Créer les sprites de personnage
  @character_sprites = []
  for i in $game_map.events.keys.sort
  sprite = Sprite_Character.new(@viewport1, $game_map.events[i])
  @character_sprites.push(sprite)
  end
  end
  #--------------------------------------------------------------------------
  # * Initialisation du joueur
  #--------------------------------------------------------------------------
  def init_player
  @character_sprites.push(Sprite_Character.new(@viewport1, $game_player))
  end
  #--------------------------------------------------------------------------
  # * Initialisation de la météo
  #--------------------------------------------------------------------------
  def init_weather
  # Créer la météo
  @weather = RPG::Weather.new(@viewport1)
  end
  #--------------------------------------------------------------------------
  # * Initialisation des Images
  #--------------------------------------------------------------------------
  def init_pictures
  # Créer les sprites d'images
  @picture_sprites = []
  for i in 1..50
  @picture_sprites.push(Sprite_Picture.new(@viewport2,
  $game_screen.pictures[i]))
  end
  end
  #--------------------------------------------------------------------------
  # * Initialisation du compte à rebours
  #--------------------------------------------------------------------------
  def init_timer
  # Créer un sprite de compte à rebours
  @timer_sprite = Sprite_Timer.new
  end
  #--------------------------------------------------------------------------
  # * Mise à jour de la Frame(image)
  #--------------------------------------------------------------------------
  def update
  update_panorama
  update_fog
  update_tilemap
  update_panorama_plane
  update_fog_plane
  update_character_sprites
  update_weather
  update_picture_sprites
  # Mettre à jour le sprite du compte à rebours
  @timer_sprite.update
  # Définir le ton de couleur d'écran et la position de tremblement
  @viewport1.tone = $game_screen.tone
  @viewport1.ox = $game_screen.shake
  # Définir la couleur de flash d'écran
  @viewport3.color = $game_screen.flash_color
  # Mettre à jour les viewports
  @viewport1.update
  @viewport3.update
  end
  #--------------------------------------------------------------------------
  # * Mettre à jour le panorama
  #--------------------------------------------------------------------------
  def update_panorama
  # Si le panorama est différent de l'actuel
  if @panorama_name != $game_map.panorama_name or
  @panorama_hue != $game_map.panorama_hue
  @panorama_name = $game_map.panorama_name
  @panorama_hue = $game_map.panorama_hue
  if @panorama.bitmap != nil
  @panorama.bitmap.dispose
  @panorama.bitmap = nil
  end
  if @panorama_name != ""
  @panorama.bitmap = RPG::Cache.panorama(@panorama_name, @panorama_hue)
  end
  Graphics.frame_reset
  end
  end
  #--------------------------------------------------------------------------
  # * Mettre à jour le brouillard
  #--------------------------------------------------------------------------
  def update_fog
  # Si le brouillard est différent de l'actuel
  if @fog_name != $game_map.fog_name or @fog_hue != $game_map.fog_hue
  @fog_name = $game_map.fog_name
  @fog_hue = $game_map.fog_hue
  if @fog.bitmap != nil
  @fog.bitmap.dispose
  @fog.bitmap = nil
  end
  if @fog_name != ""
  @fog.bitmap = RPG::Cache.fog(@fog_name, @fog_hue)
  end
  Graphics.frame_reset
  end
  end
  #--------------------------------------------------------------------------
  # * Mettre à jour le Tilemap
  #--------------------------------------------------------------------------
  def update_tilemap
  # Mettre à jour le Tilemap
  @tilemap.ox = $game_map.display_x / 4
  @tilemap.oy = $game_map.display_y / 4
  @tilemap.update
  end
  #--------------------------------------------------------------------------
  # * Mettre à jour le plan de panorama
  #--------------------------------------------------------------------------
  def update_panorama_plane
  # Mettre à jour le plan de panorama
  @panorama.ox = $game_map.display_x / 8
  @panorama.oy = $game_map.display_y / 8
  end
  #--------------------------------------------------------------------------
  # * Mettre à jour le plan de brouillard
  #--------------------------------------------------------------------------
  def update_fog_plane
  # Mettre à jour le plan de brouillard
  @fog.zoom_x = $game_map.fog_zoom / 100.0
  @fog.zoom_y = $game_map.fog_zoom / 100.0
  @fog.opacity = $game_map.fog_opacity
  @fog.blend_type = $game_map.fog_blend_type
  @fog.ox = $game_map.display_x / 4 + $game_map.fog_ox
  @fog.oy = $game_map.display_y / 4 + $game_map.fog_oy
  @fog.tone = $game_map.fog_tone
  end
  #--------------------------------------------------------------------------
  # * Mettre à jour les sprites de personnage
  #--------------------------------------------------------------------------
  def update_character_sprites
  # Mettre à jour les sprites de personnage
  for sprite in @character_sprites
  sprite.update
  end
  end
  #--------------------------------------------------------------------------
  # * Mettre à jour la météo
  #--------------------------------------------------------------------------
  def update_weather
  # Mettre à jour le graphisme de météo
  @weather.type = $game_screen.weather_type
  @weather.max = $game_screen.weather_max
  @weather.ox = $game_map.display_x / 4
  @weather.oy = $game_map.display_y / 4
  @weather.update
  end
  #--------------------------------------------------------------------------
  # * Mettre à jour les sprites d'image
  #--------------------------------------------------------------------------
  def update_picture_sprites
  # Mettre à jour les sprites d'image
  for sprite in @picture_sprites
  sprite.update
  end
  end
  end
    #==============================================================================
  # ** Scene_Title
  #------------------------------------------------------------------------------
  # Cette classe gère le processus d'écran titre.
  #==============================================================================
    class Scene_Title
  #--------------------------------------------------------------------------
  # * Processus principal
  #--------------------------------------------------------------------------
  def main
  return if main_battle_test?
  main_database
  main_background
  main_menu
  main_test_continue
  main_audio
  # Exécuter la transition
  Graphics.transition
  # Boucle Principale
  loop do
  main_loop
  break if main_scenechange?
  end
  # Préparer la transition
  Graphics.freeze
  main_dispose
  end
  #--------------------------------------------------------------------------
  # * Vérification du test de combat
  #--------------------------------------------------------------------------
  def main_battle_test?
  # Si test de combat
  if $BTEST
  battle_test
  return true
  end
  return false
  end
  #--------------------------------------------------------------------------
  # * Charger la base de données
  #--------------------------------------------------------------------------
  def main_database
  # Charger la base de données
  $data_actors = load_data("Data/Actors.rxdata")
  $data_classes = load_data("Data/Classes.rxdata")
  $data_skills = load_data("Data/Skills.rxdata")
  $data_items = load_data("Data/Items.rxdata")
  $data_weapons = load_data("Data/Weapons.rxdata")
  $data_armors = load_data("Data/Armors.rxdata")
  $data_enemies = load_data("Data/Enemies.rxdata")
  $data_troops = load_data("Data/Troops.rxdata")
  $data_states = load_data("Data/States.rxdata")
  $data_animations = load_data("Data/Animations.rxdata")
  $data_tilesets = load_data("Data/Tilesets.rxdata")
  $data_common_events = load_data("Data/CommonEvents.rxdata")
  $data_system = load_data("Data/System.rxdata")
  # Créer l'objet système
  $game_system = Game_System.new
  end
  #--------------------------------------------------------------------------
  # * Initialisation de l'image d'écran titre
  #--------------------------------------------------------------------------
  def main_background
  # Créer l'écran titre
  @sprite = Sprite.new
  @sprite.bitmap = RPG::Cache.title($data_system.title_name)
  end
  #--------------------------------------------------------------------------
  # * Initialisation du menu principal
  #--------------------------------------------------------------------------
  def main_menu
  # Créer la fenêtre de commande
  s1 = "New Game"
  s2 = "Continue"
  s3 = "Shutdown"
  @command_window = Window_Command.new(192, [s1, s2, s3])
  @command_window.back_opacity = 160
  @command_window.x = 320 - @command_window.width / 2
  @command_window.y = 288
  end
  #--------------------------------------------------------------------------
  # * Initialisation du test principal
  #--------------------------------------------------------------------------
  def main_test_continue
  # Déterminer activation du Continue
  # Vérifier si au moins un fichier de sauvegarde éxiste
  # Si activé, rendre @continue_enabled vrai; sinon le rendre faux
  @continue_enabled = false
  for i in 0..3
  if FileTest.exist?("Save#{i+1}.rxdata")
  @continue_enabled = true
  end
  end
  # Si continue est activé, déplacer le curseur sur "Continue"
  # Sinon, afficher "Continue" en grisé
  if @continue_enabled
  @command_window.index = 1
  else
  @command_window.disable_item(1)
  end
  end
  #--------------------------------------------------------------------------
  # * Initialisation Audio principale
  #--------------------------------------------------------------------------
  def main_audio
  # Jouer la musique de fond d'écran titre
  $game_system.bgm_play($data_system.title_bgm)
  # Arrêter les bruits de fond et les effets musicaux
  Audio.me_stop
  Audio.bgs_stop
  end
  #--------------------------------------------------------------------------
  # * Boucle principale
  #--------------------------------------------------------------------------
  def main_loop
  # Mettre à jour l'écran du jeu
  Graphics.update
  # Mettre à jour les informations d'entrée
  Input.update
  # Mise à jour de la Frame(image)
  update
  end
  #--------------------------------------------------------------------------
  # * Changement de scène principale
  #--------------------------------------------------------------------------
  def main_scenechange?
  # Quitter la boucle si l'écran est changé
  if $scene != self
  return true
  end
  return false
  end
  #--------------------------------------------------------------------------
  # * Libération principale
  #--------------------------------------------------------------------------
  def main_dispose
  automatic_dispose
  end
  end
    #==============================================================================
  # ** Scene_Map
  #------------------------------------------------------------------------------
  # Cette classe éxécute le processus sur la carte
  #==============================================================================
    class Scene_Map
  #--------------------------------------------------------------------------
  # * Processus Principal
  #--------------------------------------------------------------------------
  def main
  main_draw
  # Boucle principale
  loop do
  main_loop
  break if main_scenechange?
  end
  main_dispose
  main_tiletrigger
  end
  #--------------------------------------------------------------------------
  # * Dessin principal
  #--------------------------------------------------------------------------
  def main_draw
  # Créer l'ensemble de sprite
  @spriteset = Spriteset_Map.new
  # Créer la fenêtre de message
  @message_window = Window_Message.new
  # Exécuter la transition
  Graphics.transition
  end
  #--------------------------------------------------------------------------
  # * Boucle principale
  #--------------------------------------------------------------------------
  def main_loop
  # Mettre à jour l'écran de jeu
  Graphics.update
  # Mettre à jour les informations d'entrée
  Input.update
  # Mise à jour de la Frame(image)
  update
  end
  #--------------------------------------------------------------------------
  # * Main Scene Change
  #--------------------------------------------------------------------------
  def main_scenechange?
  # Quitter la boucle si l'écran est changé
  if $scene != self
  return true
  end
  return false
  end
  #--------------------------------------------------------------------------
  # * Libération principale
  #--------------------------------------------------------------------------
  def main_dispose
  Graphics.freeze
  @spriteset.dispose
  automatic_dispose
  end
  #--------------------------------------------------------------------------
  # * Déclencheur de carreau principal
  #--------------------------------------------------------------------------
  def main_tiletrigger
  # Si l'on permutte vers l'écran titre
  if $scene.is_a?(Scene_Title)
  # Fondu d'écran
  Graphics.transition
  Graphics.freeze
  end
  end
  #--------------------------------------------------------------------------
  # * Mise à jour de la Frame(image)
  #--------------------------------------------------------------------------
  def update
  # Boucle
  loop do
  update_systems
  # Quitter la boucle si le joueur ne change pas de lieu
  unless $game_temp.player_transferring
  break
  end
  # Exécuter le déplacement de lieu
  transfer_player
  # Quitter la boucle si processus de transition
  if $game_temp.transition_processing
  break
  end
  end
  update_graphics
  return if update_game_over? == true
  return if update_to_title? == true
  # Si processus de transition
  if $game_temp.transition_processing
  # Réinitialiser le drapeau de processus de transition
  $game_temp.transition_processing = false
  # Exécuter la transition
  if $game_temp.transition_name == ""
  Graphics.transition(20)
  else
  Graphics.transition(40, "Graphics/Transitions/" +
  $game_temp.transition_name)
  end
  end
  # Si on montre la fenêtre de message
  if $game_temp.message_window_showing
  return
  end
  # Si la liste de rencontre n'est pas vide, et que le compteur de rencontre est à 0
  if $game_player.encounter_count == 0 and $game_map.encounter_list != []
  # Si un événement est en cours ou les rencontres ne sont pas interdites
  unless $game_system.map_interpreter.running? or
  $game_system.encounter_disabled
  # Confirmer le groupe de monstres
  n = rand($game_map.encounter_list.size)
  troop_id = $game_map.encounter_list[n]
  # Si le groupe est valide
  if $data_troops[troop_id] != nil
  # Définir le drapeau d'appel de combat
  $game_temp.battle_calling = true
  $game_temp.battle_troop_id = troop_id
  $game_temp.battle_can_escape = true
  $game_temp.battle_can_lose = false
  $game_temp.battle_proc = nil
  end
  end
  end
  update_call_menu
  update_call_debug
  # Si le joueur ne bouge pas
  unless $game_player.moving?
  update_scene
  end
  end
  #--------------------------------------------------------------------------
  # * Mettre à jour les Systèmes
  #--------------------------------------------------------------------------
  def update_systems
  # Mettre à jour dans cet ordre, la carte, l'interprêteur,
  # (Cet ordre de mise à jour est important pour quand les conditions sont remplies
  # pour lancer n'importe quel événement, et que le joueur ne puisse pas
  # se déplacer en un instant)
  $game_map.update
  $game_system.map_interpreter.update
  $game_player.update
  # Mettre à jour le système(compteur), et l'écran
  $game_system.update
  $game_screen.update
  end
  #--------------------------------------------------------------------------
  # * Mettre à jour les graphismes
  #--------------------------------------------------------------------------
  def update_graphics
  # Mettre à jour l'ensemble de sprites
  @spriteset.update
  # Mettre à jour la fenêtre de message
  @message_window.update
  end
  #--------------------------------------------------------------------------
  # * Mettre à jour Game Over
  #--------------------------------------------------------------------------
  def update_game_over?
  # Si il y a game over
  if $game_temp.gameover
  # Permutter vers l'écran de game over
  $scene = Scene_Gameover.new
  return true
  end
  return false
  end
  #--------------------------------------------------------------------------
  # * Mettre à jour "vers l'écran titre"
  #--------------------------------------------------------------------------
  def update_to_title?
  # Si l'on retourne à l'écran titre
  if $game_temp.to_title
  # Changer en écran titre
  $scene = Scene_Title.new
  return true
  end
  return false
  end
  #--------------------------------------------------------------------------
  # * Mettre à jour l'appel du menu
  #--------------------------------------------------------------------------
  def update_call_menu
  # Si le bouton B est pressé
  if Input.trigger?(Input::B)
  # Si événement est en cours, ou le menu n'est pas bloqué
  unless $game_system.map_interpreter.running? or
  $game_system.menu_disabled
  # Définir le drapeau d'appel du menu et de bip
  $game_temp.menu_calling = true
  $game_temp.menu_beep = true
  end
  end
  end
  #--------------------------------------------------------------------------
  # * Mettre à jour l'appel de Debug
  #--------------------------------------------------------------------------
  def update_call_debug
  # Si le Mode de debug est actif et que F9 est appuyée
  if $DEBUG and Input.press?(Input::F9)
  # Définir le drapeau d'appel de débug
  $game_temp.debug_calling = true
  end
  end
  #--------------------------------------------------------------------------
  # * Mettre à jour la Scène
  #--------------------------------------------------------------------------
  def update_scene
  # Lancer les appels de chaque écran
  if $game_temp.battle_calling
  call_battle
  elsif $game_temp.shop_calling
  call_shop
  elsif $game_temp.name_calling
  call_name
  elsif $game_temp.menu_calling
  call_menu
  elsif $game_temp.save_calling
  call_save
  elsif $game_temp.debug_calling
  call_debug
  end
  end
  end
    #==============================================================================
  # ** Scene_Menu
  #------------------------------------------------------------------------------
  # This class performs menu screen processing.
  #==============================================================================
    class Scene_Menu
  #--------------------------------------------------------------------------
  # * Initialisation de l'objet
  # menu_index : Position initiale du curseur de commande
  #--------------------------------------------------------------------------
  def initialize(menu_index = 0)
  @menu_index = menu_index
  commands_init
  end
  #--------------------------------------------------------------------------
  # * Définir les commandes
  #--------------------------------------------------------------------------
  def commands_init
  @commands = []
  s1 = $data_system.words.item
  s2 = $data_system.words.skill
  s3 = $data_system.words.equip
  s4 = "Status"
  s5 = "Save"
  s6 = "End Game"
  @commands.push(s1, s2, s3, s4, s5, s6).flatten!
  end
  #--------------------------------------------------------------------------
  # * Processus Principal
  #--------------------------------------------------------------------------
  def main
  main_command_window
  main_windows
  # Exécuter la transition
  Graphics.transition
  # Boucle principale
  loop do
  main_loop
  break if main_scenechange?
  end
  # Rafraîchir la carte
  $game_map.refresh
  # Préparer pour la transition
  Graphics.freeze
  main_dispose
  end
  #--------------------------------------------------------------------------
  # * Fenêtre de commandes principale
  #--------------------------------------------------------------------------
  def main_command_window
  @command_window = Window_Command.new(160, @commands)
  @command_window.index = @menu_index
  @command_window.height = 224
  # Si le nombre de membre de l'équipe est 0
  if $game_party.actors.size == 0
  # Désactiver les menus d'objets, de techniques, d'équipement, et d'état
  @command_window.disable_item(0)
  @command_window.disable_item(1)
  @command_window.disable_item(2)
  @command_window.disable_item(3)
  end
  # Si la sauvegarde est interdite
  if $game_system.save_disabled
  # Désactiver le menu de sauvegarde
  @command_window.disable_item(4)
  end
  end
  #--------------------------------------------------------------------------
  # * Fenêtres principales
  #--------------------------------------------------------------------------
  def main_windows
  # Créer la fenêtre de temps de jeu
  @playtime_window = Window_PlayTime.new
  @playtime_window.x = 0
  @playtime_window.y = 224
  # Créer la fenêtre de nombre de pas
  @steps_window = Window_Steps.new
  @steps_window.x = 0
  @steps_window.y = 320
  # Créer la fenêtre de quantité d'argent
  @gold_window = Window_Gold.new
  @gold_window.x = 0
  @gold_window.y = 416
  # Créer la fenêtre d'état général
  @status_window = Window_MenuStatus.new
  @status_window.x = 160
  @status_window.y = 0
  end
  #--------------------------------------------------------------------------
  # * Boucle principale
  #--------------------------------------------------------------------------
  def main_loop
  # Mettre à jour l'écran de jeu
  Graphics.update
  # Mettre à jour les informations d'entrée
  Input.update
  # Mise à jour de la Frame(image)
  update
  end
  #--------------------------------------------------------------------------
  # * Changement de Scène
  #--------------------------------------------------------------------------
  def main_scenechange?
  # Quitter la boucle si l'écran est changé
  if $scene != self
  return true
  end
  return false
  end
  #--------------------------------------------------------------------------
  # * Libération principale
  #--------------------------------------------------------------------------
  def main_dispose
  # Libérer les fenêtres
  @command_window.dispose
  @playtime_window.dispose
  @steps_window.dispose
  @gold_window.dispose
  @status_window.dispose
  end
  #--------------------------------------------------------------------------
  # * Mise à jour de la Frame(image)
  #--------------------------------------------------------------------------
  def update
  # Mettre à jour les fenêtres
  @command_window.update
  @playtime_window.update
  @steps_window.update
  @gold_window.update
  @status_window.update
  # Si la fenêtre de commandes est active: appeler update_command
  if @command_window.active
  update_command
  return
  end
  # Si la fenêtre d'état général est active: appeler update_status
  if @status_window.active
  update_status
  return
  end
  end
  #--------------------------------------------------------------------------
  # * Mise à jour de la Frame(image)(Quand la fenêtre de commande est active)
  #--------------------------------------------------------------------------
  def update_command
  # Si le bouton B est pressé
  if Input.trigger?(Input::B)
  # Jouer le son d'annulation
  $game_system.se_play($data_system.cancel_se)
  # Permutter vers l'écran de carte
  $scene = Scene_Map.new
  return
  end
  # Si le bouton C est pressé
  if Input.trigger?(Input::C)
  update_command_check
  return
  end
  end
  #--------------------------------------------------------------------------
  # * Mise à jour de la Frame(image) (Quand la fenêtre d'état général est active)
  #--------------------------------------------------------------------------
  def update_status
  # Si le bouton B est pressé
  if Input.trigger?(Input::B)
  # Jouer le son d'annulation
  $game_system.se_play($data_system.cancel_se)
  # Rendre la fenêtre de commande active
  @command_window.active = true
  @status_window.active = false
  @status_window.index = -1
  return
  end
  # Si le bouton C est pressé
  if Input.trigger?(Input::C)
  buzzer_check
  update_status_check unless buzzer_check
  return
  end
  end
  #--------------------------------------------------------------------------
  # * Vérification du Buzzer
  #--------------------------------------------------------------------------
  def buzzer_check
  # Si une commande autre que Sauver, ou Quitter, et que le nombre de héros = 0
  if $game_party.actors.size == 0 and @command_window.index < 4
  # Jouer le son d'erreur
  $game_system.se_play($data_system.buzzer_se)
  return true
  end
  end
  #--------------------------------------------------------------------------
  # * Mettre à jour la vérification de commandes
  #--------------------------------------------------------------------------
  def update_command_check
  # Charge la commande actuelle
  command = @commands[@command_window.index]
  # Vérifie les commandes(par leurs noms)
  if command == $data_system.words.item
  command_item
  elsif command == $data_system.words.skill
  command_start_skill
  elsif command == $data_system.words.equip
  command_start_equip
  elsif command == 'Status'
  command_start_status
  elsif command == 'Save'
  command_save
  elsif command == 'End Game'
  command_endgame
  end
  end
  #--------------------------------------------------------------------------
  # * Mettre à jour la vérification de l'état
  #--------------------------------------------------------------------------
  def update_status_check
  # Charge la commande actuelle
  command = @commands[@command_window.index]
  # Vérifie la commande par son nom
  if command == $data_system.words.skill
  command_skill
  elsif command == $data_system.words.equip
  command_equip
  elsif command == 'Status'
  command_status
  end
  end
  #--------------------------------------------------------------------------
  # * La commande Objet
  #--------------------------------------------------------------------------
  def command_item
  # Jouer le son de validation
  $game_system.se_play($data_system.decision_se)
  # Permutter avec l'écran d'objets
  $scene = Scene_Item.new
  end
  #--------------------------------------------------------------------------
  # * Début Commande Technique
  #--------------------------------------------------------------------------
  def command_start_skill
  activate_status
  end
  #--------------------------------------------------------------------------
  # * Commande Technique
  #--------------------------------------------------------------------------
  def command_skill
  # Si la limite d'action du héros est 2 ou plus
  if $game_party.actors[@status_window.index].restriction >= 2
  # Jouer le son d'erreur
  $game_system.se_play($data_system.buzzer_se)
  return
  end
  # Jouer le son de validation
  $game_system.se_play($data_system.decision_se)
  # Permutter avec l'écran de techniques
  $scene = Scene_Skill.new(@status_window.index)
  end
  #--------------------------------------------------------------------------
  # * Début Command Equiper
  #--------------------------------------------------------------------------
  def command_start_equip
  activate_status
  end
  #--------------------------------------------------------------------------
  # * Commande Equiper
  #--------------------------------------------------------------------------
  def command_equip
  # Joue le son de validation
  $game_system.se_play($data_system.decision_se)
  # Permutter avec l'écran d'équipement
  $scene = Scene_Equip.new(@status_window.index)
  end
  #--------------------------------------------------------------------------
  # * Début Command Etat
  #--------------------------------------------------------------------------
  def command_start_status
  activate_status
  end
  #--------------------------------------------------------------------------
  # * Commande Etat
  #--------------------------------------------------------------------------
  def command_status
  # Joue le son de validation
  $game_system.se_play($data_system.decision_se)
  # Permutter avec l'écran d'état
  $scene = Scene_Status.new(@status_window.index)
  end
  #--------------------------------------------------------------------------
  # * Command Sauver
  #--------------------------------------------------------------------------
  def command_save
  # Si la sauvegarde est interdite
  if $game_system.save_disabled
  # Jouer le son d'erreur
  $game_system.se_play($data_system.buzzer_se)
  return
  end
  # Jouer le son de validation
  $game_system.se_play($data_system.decision_se)
  # Permutter avec l'écran de Sauvegarde
  $scene = Scene_Save.new
  end
  #--------------------------------------------------------------------------
  # * Command Quitter
  #--------------------------------------------------------------------------
  def command_endgame
  # Jouer le son de validation
  $game_system.se_play($data_system.decision_se)
  # Permutter avec l'écran de fin
  $scene = Scene_End.new
  end
  #--------------------------------------------------------------------------
  # * Activer la fenêtre d'état général
  #--------------------------------------------------------------------------
  def activate_status
  # Jouer le son de validation
  $game_system.se_play($data_system.decision_se)
  # Rendre la fenêtre d'état général active
  @command_window.active = false
  @status_window.active = true
  @status_window.index = 0
  end
  end
    #==============================================================================
  # ** Scene_Save
  #------------------------------------------------------------------------------
  # Cette classe gére le processus d'écran de sauvegarde.
  #==============================================================================
    class Scene_Save < Scene_File
  #--------------------------------------------------------------------------
  # * Ecrire les données de sauvegarde
  # file : L'objet fichier(ouvert) pour l'écriture
  #--------------------------------------------------------------------------
  def write_save_data(file)
  write_characters(file)
  write_frame(file)
  write_setup(file)
  write_data(file)
  end
  #--------------------------------------------------------------------------
  # * Créer les données de personnages
  #--------------------------------------------------------------------------
  def write_characters(file)
  # Créer les données de personnage pour l'écriture du fichier de sauvegarde
  characters = []
  for i in 0...$game_party.actors.size
  actor = $game_party.actors[i]
  characters.push([actor.character_name, actor.character_hue])
  end
  # Ecris les données de personnages dans le fichier de sauvegarde
  Marshal.dump(characters, file)
  end
  #--------------------------------------------------------------------------
  # * Ecrire le nombre de Frame écoulées(d'images)
  #--------------------------------------------------------------------------
  def write_frame(file)
  # Ecrire le nombre de frame pour mesurer le temps de jeu
  Marshal.dump(Graphics.frame_count, file)
  end
  #--------------------------------------------------------------------------
  # * Définition l'écriture
  #--------------------------------------------------------------------------
  def write_setup(file)
  # Augmenter le compteur de sauvegarde de 1
  $game_system.save_count += 1
  # Sauver le nombre magique
  # (Une valeur aléatoire qui sera écrite à chaque fois que l'on sauvegarde avec l'éditeur)
  $game_system.magic_number = $data_system.magic_number
  end
  #--------------------------------------------------------------------------
  # * Ecrire les données
  #--------------------------------------------------------------------------
  def write_data(file)
  # Ecrire chaque type d'objet du jeu
  Marshal.dump($game_system, file)
  Marshal.dump($game_switches, file)
  Marshal.dump($game_variables, file)
  Marshal.dump($game_self_switches, file)
  Marshal.dump($game_screen, file)
  Marshal.dump($game_actors, file)
  Marshal.dump($game_party, file)
  Marshal.dump($game_troop, file)
  Marshal.dump($game_map, file)
  Marshal.dump($game_player, file)
  end
  end
    #==============================================================================
  # ** Scene_Load
  #------------------------------------------------------------------------------
  # Cette classe gère le processus de l'écran de chargement.
  #==============================================================================
    class Scene_Load < Scene_File
  #--------------------------------------------------------------------------
  # * Lire les données sauvegardées
  # file : L'objet fichier(ouvert) pour la lecture
  #--------------------------------------------------------------------------
  def read_save_data(file)
  read_characters(file)
  read_frame(file)
  read_data(file)
  read_edit
  read_refresh
  end
  #--------------------------------------------------------------------------
  # * Lire les données de personnage
  #--------------------------------------------------------------------------
  def read_characters(file)
  # Lire les données de personnage depuis le fichier
  characters = Marshal.load(file)
  end
  #--------------------------------------------------------------------------
  # * Lire le compteur de frame
  #--------------------------------------------------------------------------
  def read_frame(file)
  # Lire le compteur de frame pour mesurer le temps de jeu
  Graphics.frame_count = Marshal.load(file)
  end
  #--------------------------------------------------------------------------
  # * Lire les données
  #--------------------------------------------------------------------------
  def read_data(file)
  # Lire chaque type d'objet du jeu
  $game_system = Marshal.load(file)
  $game_switches = Marshal.load(file)
  $game_variables = Marshal.load(file)
  $game_self_switches = Marshal.load(file)
  $game_screen = Marshal.load(file)
  $game_actors = Marshal.load(file)
  $game_party = Marshal.load(file)
  $game_troop = Marshal.load(file)
  $game_map = Marshal.load(file)
  $game_player = Marshal.load(file)
  end
  #--------------------------------------------------------------------------
  # * Lire l'édition
  #--------------------------------------------------------------------------
  def read_edit
  # Si le nombre Magique est différent que lors de la sauvegarde
  # (donc si des changements ont été apportés avec l'éditeur)
  if $game_system.magic_number != $data_system.magic_number
  # Charger la carte
  $game_map.setup($game_map.map_id)
  $game_player.center($game_player.x, $game_player.y)
  end
  end
  #--------------------------------------------------------------------------
  # * Rafraîchir l'équipe
  #--------------------------------------------------------------------------
  def read_refresh
  # Rafraîchit les membres de l'équipe
  $game_party.refresh
  end
  end
    #==============================================================================
  # ** Scene_Battle
  #------------------------------------------------------------------------------
  # Cette classe gère le processus d'écran de combat.
  #==============================================================================

  class Scene_Battle
  #--------------------------------------------------------------------------
  # * Initialisation de l'objet
  #--------------------------------------------------------------------------
  def initialize
  commands_init
  end
  #--------------------------------------------------------------------------
  # * Définir les commandes
  #--------------------------------------------------------------------------
  def commands_init
  @commands = []
  s1 = $data_system.words.attack
  s2 = $data_system.words.skill
  s3 = $data_system.words.guard
  s4 = $data_system.words.item
  @commands.push(s1, s2, s3, s4).flatten!
  end
  #--------------------------------------------------------------------------
  # * Processus principal
  #--------------------------------------------------------------------------
  def main
  main_temp
  main_troop
  main_command
  main_windows
  main_spriteset
  main_transition
  # Débuter la phase de pré-combat
  start_phase1
  # Exécuter la transition
  Graphics.transition
  # Boucle principale
  loop do
  main_loop
  break if main_scenechange?
  end
  # Rafraîchir la carte
  $game_map.refresh
  # Préparer la transition
  Graphics.freeze
  main_dispose
  main_end
  end
  #--------------------------------------------------------------------------
  # * Définition des variable de Game Temp
  #--------------------------------------------------------------------------
  def main_temp
  # Initialiser chaque type de données temporaires de combat
  $game_temp.in_battle = true
  $game_temp.battle_turn = 0
  $game_temp.battle_event_flags.clear
  $game_temp.battle_abort = false
  $game_temp.battle_main_phase = false
  $game_temp.battleback_name = $game_map.battleback_name
  $game_temp.forcing_battler = nil
  # Initialiser l'interprêteur d'événement de combat
  $game_system.battle_interpreter.setup(nil, 0)
  end
  #--------------------------------------------------------------------------
  # * Définition du groupe de monstre
  #--------------------------------------------------------------------------
  def main_troop
  # Préparer le groupe
  @troop_id = $game_temp.battle_troop_id
  $game_troop.setup(@troop_id)
  end
  #--------------------------------------------------------------------------
  # * Définition de la fenêtre de commande principale
  #--------------------------------------------------------------------------
  def main_command
  @actor_command_window = Window_Command.new(160, @commands)
  @actor_command_window.height = 160
  @actor_command_window.y = 160
  @actor_command_window.back_opacity = 160
  @actor_command_window.active = false
  @actor_command_window.visible = false
  end
  #--------------------------------------------------------------------------
  # * Création des autres fenêtres
  #--------------------------------------------------------------------------
  def main_windows
  # Créer les autres fenêtres
  @party_command_window = Window_PartyCommand.new
  @help_window = Window_Help.new
  @help_window.back_opacity = 160
  @help_window.visible = false
  @status_window = Window_BattleStatus.new
  @message_window = Window_Message.new
  end
  #--------------------------------------------------------------------------
  # * Définition de l'ensemble de Sprites
  #--------------------------------------------------------------------------
  def main_spriteset
  # Créer l'ensemble de sprite
  @spriteset = Spriteset_Battle.new
  # Initialiser le compteur d'attente
  @wait_count = 0
  end
  #--------------------------------------------------------------------------
  # * Transition Principale
  #--------------------------------------------------------------------------
  def main_transition
  # Exécuter la transition
  if $data_system.battle_transition == ""
  Graphics.transition(20)
  else
  Graphics.transition(40, "Graphics/Transitions/" +
  $data_system.battle_transition)
  end
  end
  #--------------------------------------------------------------------------
  # * Boucle principale
  #--------------------------------------------------------------------------
  def main_loop
  # Mettre à jour l'écran de jeu
  Graphics.update
  # Mettre à jour les informations d'entrée
  Input.update
  # Mise à jour de la Frame(image)
  update
  end
  #--------------------------------------------------------------------------
  # * Changement de Scène
  #--------------------------------------------------------------------------
  def main_scenechange?
  # Quitter la boucle si l'écran est changé
  if $scene != self
  return true
  end
  return false
  end
  #--------------------------------------------------------------------------
  # * Libération principale
  #--------------------------------------------------------------------------
  def main_dispose
  # Libérer les fenêtres
  @actor_command_window.dispose
  @party_command_window.dispose
  @help_window.dispose
  @status_window.dispose
  @message_window.dispose
  @skill_window.dispose unless @skill_window == nil
  @item_window.dispose unless @item_window == nil
  @result_window.dispose unless @result_window == nil
  # Libérer l'ensemble de sprites
  @spriteset.dispose
  end
  #--------------------------------------------------------------------------
  # * Fin principaleMain End
  #--------------------------------------------------------------------------
  def main_end
  # Si l'on permutte avec un écran titre
  if $scene.is_a?(Scene_Title)
  # Fondu d'écran
  Graphics.transition
  Graphics.freeze
  end
  # Si l'on permutte d'un test de combat à n'importe quel autre écran autre que celui de
  # game over
  if $BTEST and not $scene.is_a?(Scene_Gameover)
  $scene = nil
  end
  end
  #--------------------------------------------------------------------------
  # * Mise à jour de la Frame(image)
  #--------------------------------------------------------------------------
  def update
  update_event
  update_system
  update_objects
  update_transition
  # Si la fenêtre de message est montrée
  if $game_temp.message_window_showing
  return
  end
  # Si un effet est montré
  if @spriteset.effect?
  return
  end
  update_scene_exit
  update_abort
  update_waiting
  update_phase
  end
  #--------------------------------------------------------------------------
  # * Mise à jour de l'événement
  #--------------------------------------------------------------------------
  def update_event
  # Si l'événement de combat est en cours
  if $game_system.battle_interpreter.running?
  # Mettre à jour l'interprêteur
  $game_system.battle_interpreter.update
  # Si un combattant qui force des actions n'existe pas
  if $game_temp.forcing_battler == nil
  # Si l'événement de combat a fini de s'éxécuter
  unless $game_system.battle_interpreter.running?
  # Relancer la définition d'événement de combat si le combat continue
  unless judge
  setup_battle_event
  end
  end
  # Si pas de phase d'après combat
  if @phase != 5
  # Rafraîchir la fenêtre d'état
  @status_window.refresh
  end
  end
  end
  end
  #--------------------------------------------------------------------------
  # * Mise à jour du Système
  #--------------------------------------------------------------------------
  def update_system
  # Mettre à jour le système (Compte à rebours) et l'écran
  $game_system.update
  $game_screen.update
  # Si le compte à rebours a atteint 0
  if $game_system.timer_working and $game_system.timer == 0
  # Quitter le combat
  $game_temp.battle_abort = true
  end
  end
  #--------------------------------------------------------------------------
  # * Mise à jour des fenêtres et des sprites
  #--------------------------------------------------------------------------
  def update_objects
  # Mettre à jour les fenêtres
  @help_window.update
  @party_command_window.update
  @actor_command_window.update
  @status_window.update
  @message_window.update
  # Mettre à jour l'ensemble de sprite
  @spriteset.update
  end
  #--------------------------------------------------------------------------
  # * Mise à jour de la Transition
  #--------------------------------------------------------------------------
  def update_transition
  # Si une transition s'éxécute
  if $game_temp.transition_processing
  # Réinitialiser le drapeau d'éxécution de transition
  $game_temp.transition_processing = false
  # Exécuter la transition
  if $game_temp.transition_name == ""
  Graphics.transition(20)
  else
  Graphics.transition(40, "Graphics/Transitions/" +
  $game_temp.transition_name)
  end
  end
  end
  #--------------------------------------------------------------------------
  # * Mise à jour vers la scène de sortie
  #--------------------------------------------------------------------------
  def update_scene_exit
  # Si Game Over
  if $game_temp.gameover
  # Permutter avec l'écran de game over
  $scene = Scene_Gameover.new
  return
  end
  # Si l'on retourne à l'écran titre
  if $game_temp.to_title
  # Permutter avec l'écran titre
  $scene = Scene_Title.new
  return
  end
  end
  #--------------------------------------------------------------------------
  # * Annuler la mise à jour
  #--------------------------------------------------------------------------
  def update_abort
  # Si le combat est annulé
  if $game_temp.battle_abort
  # Revenir à la BGM utilisée avec que ne commence le combat
  $game_system.bgm_play($game_temp.map_bgm)
  # combat se finit
  battle_end(1)
  return
  end
  end
  #--------------------------------------------------------------------------
  # * Mise à jour de l'attente
  #--------------------------------------------------------------------------
  def update_waiting
  # Si attente
  if @wait_count > 0
  # Décrémenter le compteur d'attente
  @wait_count -= 1
  return
  end
  # Si un combattant forçant une action n'éxiste pas,
  # et qu'un événement de combat est en cours
  if $game_temp.forcing_battler == nil and
  $game_system.battle_interpreter.running?
  return
  end
  end
  #--------------------------------------------------------------------------
  # * Mise à jour des phases de combat
  #--------------------------------------------------------------------------
  def update_phase
  # Déterminer le type de phase
  case @phase
  when 1 # Phase préliminaire
  update_phase1
  when 2 # Phase de commande d'équipe
  update_phase2
  when 3 # Phase de commande de héros
  update_phase3
  when 4 # Phase principale
  update_phase4
  when 5 # Phase d'après combat
  update_phase5
  end
  end
  #--------------------------------------------------------------------------
  # * Mise à jour de la Frame(image)(Phase de commande de héros : Commande basique)
  #--------------------------------------------------------------------------
  def update_phase3_basic_command
  # Si le bouton B est pressé
  if Input.trigger?(Input::B)
  # Jouer le son d'annulation
  $game_system.se_play($data_system.cancel_se)
  # Aller à l'entrée de commande pour l'acteur précédent
  phase3_prior_actor
  return
  end
  # Si le bouton C est pressé
  if Input.trigger?(Input::C)
  check_commands
  return
  end
  end
  #--------------------------------------------------------------------------
  # * Vérifier les commandes
  #--------------------------------------------------------------------------
  def check_commands
  # Charge la commande actuelle
  command = @commands[@actor_command_window.index]
  # Détermine les commandes possibles(selon leurs noms)
  if command == $data_system.words.attack
  update_phase3_command_attack
  elsif command == $data_system.words.skill
  update_phase3_command_skill
  elsif command == $data_system.words.guard
  update_phase3_command_guard
  elsif command == $data_system.words.item
  update_phase3_command_item
  end
  end
  #--------------------------------------------------------------------------
  # * Commande : Attaque
  #--------------------------------------------------------------------------
  def update_phase3_command_attack
  # Joue le son de validation
  $game_system.se_play($data_system.decision_se)
  # Définir l'action
  @active_battler.current_action.kind = 0
  @active_battler.current_action.basic = 0
  # Débute le choix de l'ennemi
  start_enemy_select
  end
  #--------------------------------------------------------------------------
  # * Commande : Technique
  #--------------------------------------------------------------------------
  def update_phase3_command_skill
  # Joue le son de validation
  $game_system.se_play($data_system.decision_se)
  # Définir l'action
  @active_battler.current_action.kind = 1
  # Débute le choix de la technique
  start_skill_select
  end
  #--------------------------------------------------------------------------
  # * Commande : Garde
  #--------------------------------------------------------------------------
  def update_phase3_command_guard
  # Joue le son de validation
  $game_system.se_play($data_system.decision_se)
  # Définir l'action
  @active_battler.current_action.kind = 0
  @active_battler.current_action.basic = 1
  # Aller à l'entrée de commande pour l'acteur suivant
  phase3_next_actor
  end
  #--------------------------------------------------------------------------
  # * Commande : Objet
  #--------------------------------------------------------------------------
  def update_phase3_command_item
  # Joue le son de validation
  $game_system.se_play($data_system.decision_se)
  # Définir l'action
  @active_battler.current_action.kind = 2
  # Débute le choix de l'objet
  start_item_select
  end
  #--------------------------------------------------------------------------
  # * Créer les résultats d'actions basiques
  #--------------------------------------------------------------------------
  def make_basic_action_result
  # Si attaque
  if @active_battler.current_action.basic == 0
  make_basic_action_result_attack
  return
  end
  # Si garde
  if @active_battler.current_action.basic == 1
  make_basic_action_result_guard
  return
  end
  # Si fuite
  if @active_battler.is_a?(Game_Enemy) and
  @active_battler.current_action.basic == 2
  make_basic_action_result_escape
  return
  end
  # Si ne fait rien
  if @active_battler.current_action.basic == 3
  make_basic_action_result_nothing
  return
  end
  end
  #--------------------------------------------------------------------------
  # * Créer les résultats d'actions basiques - Attaque
  #--------------------------------------------------------------------------
  def make_basic_action_result_attack
  # Définir les ID des animations
  @animation1_id = @active_battler.animation1_id
  @animation2_id = @active_battler.animation2_id
  # Si le combattant est un ennemi
  if @active_battler.is_a?(Game_Enemy)
  if @active_battler.restriction == 3
  target = $game_troop.random_target_enemy
  elsif @active_battler.restriction == 2
  target = $game_party.random_target_actor
  else
  index = @active_battler.current_action.target_index
  target = $game_party.smooth_target_actor(index)
  end
  end
  # Si le combattant est un acteur
  if @active_battler.is_a?(Game_Actor)
  if @active_battler.restriction == 3
  target = $game_party.random_target_actor
  elsif @active_battler.restriction == 2
  target = $game_troop.random_target_enemy
  else
  index = @active_battler.current_action.target_index
  target = $game_troop.smooth_target_enemy(index)
  end
  end
  # Définir le tableau des combattants ciblés
  @target_battlers = [target]
  # Appliquer les résultats de l'attaque normale
  for target in @target_battlers
  target.attack_effect(@active_battler)
  end
  end
  #--------------------------------------------------------------------------
  # * Créer les résultats d'actions basiques - Garde
  #--------------------------------------------------------------------------
  def make_basic_action_result_guard
  # Affiche "Garde" dans la fenêtre d'aide
  @help_window.set_text($data_system.words.guard, 1)
  end
  #--------------------------------------------------------------------------
  # * Créer les résultats d'actions basiques - Fuite
  #--------------------------------------------------------------------------
  def make_basic_action_result_escape
  # Affiche "Fuite" dans la fenêtre d'aide
  @help_window.set_text("Escape", 1)
  # Fuite
  @active_battler.escape
  end
  #--------------------------------------------------------------------------
  # * Créer les résultats d'actions basiques - Rien
  #--------------------------------------------------------------------------
  def make_basic_action_result_nothing
  # Réinitialiser les combattant étant "forcés" pour une action
  $game_temp.forcing_battler = nil
  # Passer à l'étape 1
  @phase4_step = 1
  end
  end


.topic 10001
Cliquez ici pour valider vos choix
.topic 10002
Cliquez ici pour annuler les changements
.topic 10003
Cliquez ici pour appliquer les changements
.topic 10004
Cliquez ici pour avoir de l'aide
.topic 10005
Cliquez ici pour fermer la fenêtre
.topic 11001
Entrez ici le nom du répertoire ou sera enregistré votre jeu
.topic 11002
Entrez ici le titre de votre jeu
.topic 11003
Entrez ici le répertoire par défaut ou sont enregistrés vos projets
.topic 11004
Cliquez ici pour parcourir votre disque dur et sélectionner un répertoire
.topic 11101
Entrez ici le répertoire ou sera créé l'installateur
.topic 11102
Cliquez ici pour parcourir votre disque dur et sélectionner un répertoire
.topic 11103
Sélectionner cette option empêchera les joueurs d'accéder aux ressources du jeu
.topic 11201
Permet de sélectionner la couleur qui apparaît derrière vos chipsets
.topic 11202
Utilise la couleur de transparence par défaut du chipset
.topic 11203
Permet de sélectionner la couleur de votre choix
.topic 11204
Dosez ici la valeur en Rouge de la couleur
.topic 11205
Dosez ici la valeur en Vert de la couleur
.topic 11206
Dosez ici la valeur en Bleu de la couleur
.topic 11207
Aperçu de la couleur
.topic 11211
Permet d'afficher la grille
.topic 11212
Cochez cette case pour activer la grille
.topic 11213
Largeur de la grille
.topic 11214
Hauteur de la grille
.topic 11301
Entrez ici le nouveau titre du jeu
.topic 11401
Entrez ici les différentes librairies de votre jeu
.topic 11601
Sélectionnez ici le répertoire de destination des ressources importées
.topic 11602
Séléctionnez ici la ressource à exporter ou à supprimer (double clic : aperçu)
.topic 11603
Cliquez ici pour importer une nouvelle ressource dans votre jeu
.topic 11604
Cliquez ici pour exporter la ressource séléctionnée
.topic 11605
Cliquez ici pour avoir un aperçu de la ressource sélectionnée
.topic 11606
Cliquez ici pour supprimer la ressource séléctionnée
.topic 11701
Cliquez ici pour afficher l'image à sa taille réelle
.topic 11702
Cliquez ici pour afficher l'image agrandie 2 fois
.topic 11703
Cliquez ici pour afficher l'image agrandie 4 fois
.topic 11704
C'est la couleur qui apparaîtra de manière translucide
.topic 11711
Aperçu de la ressource graphique que vous allez importer
.topic 11712
C'est la couleur qui n'apparaîtra pas
.topic 11713
Cliquez ici pour qu'il n'y ait pas de couleur de transparence
.topic 11714
C'est la couleur qui apparaîtra de manière translucide
.topic 11715
Cliquez ici pour qu'il n'y ait pas de couleur translucide
.topic 11801
Aperçu de la ressource graphique
.topic 12001
Bienvenue dans le monde magique des scripts ^^!
.topic 12002
Ici se trouvent tous les scripts de votre jeu.

F4 : Script précédent

F5 : Script suivant
.topic 12003
Entrez ici le nom du script
.topic 12004
C'est ici que se trouve le codage des scripts,

mais vous vous en doutiez un peu, non?
.topic 12101
Entrez ici l'expression à rechercher
.topic 12102
Entrez ici l'expression par laquelle il faut remplacer l'expression trouvée
.topic 12103
Cochez cette case pour que les majuscules et minuscules

soient respectées dans l'expression à chercher
.topic 12104
Cochez cette case pour que l'expression recherchée

soit uniquement un mot entier et non pas une partie d'un mot
.topic 12111
Cliquez ici pour rechercher l'expression dans le texte précédant le curseur
.topic 12112
Cliquez ici pour rechercher l'expression dans le texte suivant le curseur
.topic 12113
Cliquez ici pour remplacer l'expression sélectionnée

dans le script par celle que vous avez entrée
.topic 12114
Cliquez ici pour remplacer toutes les expressions

trouvées dans le script par celle que vous avez entrée
.topic 12115
Cliquez ici pour afficher les résultats de la recherche
.topic 12201
Entrez ici le numéro de la ligne à laquelle vous souhaitez vous rendre
.topic 12301
Les résultats de la recherche sont affichés ici
.topic 12302
Cliquez ici pour atteindre l'expression sélectionnée dans le script
.topic 16001
Entrez ici le nom de la carte
.topic 16002
Sélectionnez le chipset de la carte
.topic 16003
Entrez ici la largeur de la carte (500 maximum)
.topic 16004
Entrez ici la hauteur de la carte (500 maximum)
.topic 16005
Sélectionnez ici le fond musical (BGM) de la carte
.topic 16006
Sélectionnez ici le fond musical (BGS) de la carte
.topic 16011
Permet de configurer les combats aléatoires sur cette carte
.topic 16012
Double-cliquez ici pour ajouter un groupe de monstres

rencontrable sur cette carte
.topic 16013
Entrez ici le nombre de pas moyen que le héros doit faire

pour rencontrer un des groupes de monstres
.topic 16021
Séléctionnez le groupe de monstres
.topic 16101
Sélectionnez le carreau à appliquer au lieu du carreau automatique
.topic 16201
Indiquez ici la direction dans laquelle vous souhaitez déplacer la carte
.topic 16202
Indiquez ici de combien de carreaux la carte doit être déplacée
.topic 17001
C'est le message tel qu'il apparaîtra dans le jeu
.topic 18001
Sélectionnez ici la carte où vous souhaitez téléporter l'équipe
.topic 18002
Cliquez ici pour voir la carte à sa taille réelle
.topic 18003
Cliquez ici pour voir la carte agrandie 2 fois
.topic 18004
Cliquez ici pour voir la carte agrandie 4 fois
.topic 18005
Ce sont les coordonnées de l'emplacement sélectionné
.topic 18006
Cliquez sur l'endroit où vous souhaitez téléporter votre équipe
.topic 19001
Séléctionnez ici l'élément désiré
.topic 19002
ƒLƒƒƒ‰ƒNƒ^[‚Ì‰æ‘œ‘fÞ‚Æ‚µ‚Ä“o˜^‚³‚ê‚Ä‚¢‚éƒtƒ@ƒCƒ‹‚ÌƒŠƒXƒg‚Å‚·B
.topic 19003
Séléctionnez ici le Charset désiré ou cliquez sur "(chipset)"

pour sélectionner un élément du décors
.topic 19011
Aperçu de l'élément sélectionné
.topic 19012
Séléctionnez la partie du Charset désirée
.topic 19013
Séléctionnez la partie du Charset désirée
.topic 19021
Faites glisser la barre pour modifier la couleur selon vos souhaits
.topic 19031
Configurez ici les options pour le graphisme sélectionné
.topic 19032
Opacité de l'image, de 0 (invisible) à 255 (opaque)
.topic 19033
Type de transparence du graphisme :

Normale : aucun changement

Eclaircie : Tout ce qui apparaît en transparence derrière le graphisme sera comme éclairé

Obscurcie : Tout ce qui apparaît en transparence derrière le graphisme sera comme obscurci
.topic 19041
Options d'affichage du brouillard
.topic 19042
Opacité du brouillard, de 0 (invisible) à 255 (opaque)
.topic 19043
Type de transparence du brouillard:

Normale : aucun changement

Eclaircie : Tout ce qui apparaît en transparence derrière le brouillard sera comme éclairé

Obscurcie : Tout ce qui apparaît en transparence derrière le brouillard sera comme obscurci
.topic 19044
Sélectionnez ici le coéfficient d'agrandissement de l'image (de 100% à 800%)
.topic 19045
Vitesse de défilement en X
.topic 19046
Vitesse de défilement en Y
.topic 19101
Séléctionnez ici le fichier désiré
.topic 19102
Cliquez ici pour écouter le fichier sélectionné
.topic 19103
Cliquez ici pour arrêter l'écoute
.topic 19104
Réglez ici le volume d'écoute
.topic 19105
Réglez ici le tempo (vitesse de lecture)
.topic 20001
Ici se trouvent tous les éléments de la catégorie sélectionnée.

F4 : Elément précédent

F5 : Element suivant
.topic 20002
Cliquez ici pour redéfinir le nombre maximum d'éléments dans votre liste
.topic 20011
Entrez ici le nombre maximum d'éléments pour votre liste
.topic 20021
Entrez ici le nombre d'éléments à copier après l'élément sélectionné
.topic 20101
Le saviez-vous? Bodom-Child & RaBBi sont tous les deux des Ch'tis!

Incroyable non?

Mais ferme eut' bouk', tin nez y va ker endan ^^
.topic 20102
Entrez ici le nom du héros
.topic 20103
Choisissez ici la classe du héros
.topic 20104
Entrez ici le niveau de départ du héros
.topic 20105
Entrez ici le niveau maximum que pourra atteindre le héros (99 maximum)
.topic 20106
Cliquez ici pour définir l'évolution des niveaux du héros
.topic 20107
Double-cliquez ici pour modifier l'apparence du héros
.topic 20108
Double-cliquez ici pour modifier l'apparence du héros lors des combats
.topic 20111
Spécifiez ici la manière dont augmentent les caractéristiques du héros
.topic 20112
Double-cliquez ici pour modifier l'évolution des PV
.topic 20113
Double-cliquez ici pour modifier l'évolution des PM
.topic 20114
Double-cliquez ici pour modifier l'évolution de la Force
.topic 20115
Double-cliquez ici pour modifier l'évolution de la Dextérité
.topic 20116
Double-cliquez ici pour modifier l'évolution de l'Intelligence
.topic 20117
Double-cliquez ici pour modifier l'évolution de l'Agilité
.topic 20121
Spécifiez ici l'équipement avec lequel le héros démarre
.topic 20122
Choisissez ici l'arme de départ du héros
.topic 20123
L'arme ne pourra jamais être déséquipée
.topic 20124
Choisissez ici le bouclier de départ du héros
.topic 20125
Le bouclier ne pourra jamais être déséquipé
.topic 20126
Choisissez ici le casque de départ du héros
.topic 20127
Le casque ne pourra jamais être déséquipé
.topic 20128
Choisissez ici l'armure de départ du héros
.topic 20129
L'armure ne pourra jamais être déséquipée
.topic 20130
Choisissez ici l'accessoire de départ du héros
.topic 20131
L'accessoire ne pourra jamais être déséquipé
.topic 20201
Ma blague à 2€ préférée :

- Docteur, tout le monde m'ignore...

- Suivant!
.topic 20202
Entrez ici le nom de la classe
.topic 20203
Choisissez ici le rang en combat des héros de cette classe
.topic 20211
Cochez les armes utilisables par les héros de cette classe
.topic 20212
Cochez les objets utilisables par les héros de cette classe
.topic 20221
Indiquez la résistance de cette classe à chaque attribut.

A:200% - B:150% - C:100% - D:50% - E:0% - F:-100%
.topic 20222
Indiquez la résistance de cette classe à chaque statut.

A:200% - B:150% - C:100% - D:50% - E:0% - F:-100%
.topic 20231
Double-cliquez ici pour ajouter une compétence que les héros de

cette classe apprendront une fois arrivés au niveau indiqué
.topic 20301
Vous voulez savoir ce qu'est un excellent RPG?

Jouez à Skies of Arcadia!
.topic 20302
Entrez ici le nom de la compétence
.topic 20303
Choisissez ici l'icône qui apparaîtra à côté du nom de la compétence
.topic 20304
Description de la compétence qui apparaîtra dans le menu
.topic 20311
Indiquez ici sur qui la comprétence peut être utilisée
.topic 20312
Choisissez la condition dans laquelle la compétence peut être utilisée
.topic 20313
Sélectionnez ici l'animation qui apparaîtra sur le héros qui

utilise la compétence
.topic 20314
Sélectionnez ici l'animation qui apparaîtra sur la cible de la compétence
.topic 20315
Sélectionnez l'effet sonore émis lorsque la compétence est utilisée

depuis le menu
.topic 20316
Vous pouvez choisir ici un évènement commun devant être appelé lorsque

la compétence est utilisée, si vous le désirez
.topic 20321
Entrez ici le nombre de Points de Magie (PM) consommés lorsque

la compétence est utilisée
.topic 20322
Nombre de Points de Vie (PV) :

- Retirés si le nombre est positif

- Ajoutés si le nombre est négatif
.topic 20323
Influence de la caractéristique Attaque sur le Taux d'effet.

(plus l'influence est élevée, plus le Taux d'effet sera important

selon l'Attaque de l'utilisateur)
.topic 20324
Influence de la caractéristique Esquive sur le Taux d'effet.

(plus l'influence est élevée, plus le Taux d'effet sera important

selon l'Esquive de l'utilisateur)
.topic 20325
Influence de la caractéristique Force sur le Taux d'effet.

(plus l'influence est élevée, plus le Taux d'effet sera important

selon la Force de l'utilisateur)
.topic 20326
Influence de la caractéristique Dextérité sur le Taux d'effet.

(plus l'influence est élevée, plus le Taux d'effet sera important

selon la Dextérité de l'utilisateur)
.topic 20327
Influence de la caractéristique Agilité sur le Taux d'effet.

(plus l'influence est élevée, plus le Taux d'effet sera important

selon l'Agilité de l'utilisateur)
.topic 20328
Influence de la caractéristique Intelligence sur le Taux d'effet.

(plus l'influence est élevée, plus le Taux d'effet sera important

selon l'Intelligence de l'utilisateur)
.topic 20329
Entrez ici le pourcentage de chances de réussite de la compétence
.topic 20330
Influence de la caractéristique Défense physique sur le Taux d'effet.

(plus l'influence est élevée, plus le Taux d'effet sera important

selon la Défense physique de l'utilisateur)
.topic 20331
Influence de la caractéristique Défense magique sur le Taux d'effet.

(plus l'influence est élevée, plus le Taux d'effet sera important

selon la Défense magique de l'utilisateur)
.topic 20332
Entrez ici le pourcentage de variation du Taux d'effet à chaque utilisation de la compétence
.topic 20341
Cochez ici les différents attributs de la compétence
.topic 20342
Déterminez ici les statuts infligés(+) ou retirés(-) par la compétence
.topic 20401
Le saviez-vous?

Au moment où j'écris ces lignes, je suis en train de traduire l'aide.

Nous somme le dimanche 10 octobre 2004, il est 22:57.
.topic 20402
Entrez ici le nom de l'objet
.topic 20403
Choisissez ici l'icône qui apparaîtra à côté du nom de l'icône
.topic 20404
Description de l'objet qui apparaîtra dans le menu
.topic 20411
Indiquez ici sur qui l'objet peut être utilisé
.topic 20412
Choisissez la condition dans laquelle l'objet peut être utilisé
.topic 20413
Sélectionnez ici l'animation qui apparaîtra sur le héros qui utilise l'objet
.topic 20414
Sélectionnez ici l'animation qui apparaîtra sur la cible de l'objet
.topic 20415
Sélectionnez l'effet sonore émis lorsque l'objet est utilisé depuis le menu
.topic 20416
Vous pouvez choisir ici un évènement commun devant être appelé lorsque

l'objet est utilisé, si vous le désirez
.topic 20421
Prix auquel l'objet sera vendu en magasin

- Mettez cette valeur à 0 pour que l'objet ne puisse pas être vendu

- Les objets sont revendus aux magasins à 50% de leur prix
.topic 20422
Indiquez ici si l'objet peut être utilisé
.topic 20423
Sélectionnez la caractéristique qui sera augmentée lorsque

l'objet sera utilisé
.topic 20424
Indiquez de combien la caractéristique (sélectionnée à gauche)

doit être augmentée lorsque l'objet sera utilisée
.topic 20425
Pourcentage de Points de Vie (PV) récupérés ou retirés
.topic 20426
Quantité de Points de Vie (PV) récupérés ou retirés
.topic 20427
Pourcentage de Points de Magie (PM) récupérés ou retirés
.topic 20428
Quantité de Points de Magie (PM) récupérés ou retirés
.topic 20429
Entrez ici le pourcentage de chances de réussite de l'effet de l'objet
.topic 20430
Influence de la caractéristique Défense physique des ennemis sur l'effet.

(plus l'influence est élevée, plus l'effet sera amoindri par la

Défense physique de l'ennemi)
.topic 20431
Influence de la caractéristique Défense magique des ennemis sur l'effet.

(plus l'influence est élevée, plus l'effet sera amoindri par la

Défense magique de l'ennemi)
.topic 20432
Entrez ici le pourcentage de variation de l'effet à chaque

utilisation de l'objet
.topic 20441
Cochez ici les différents attributs de l'objet
.topic 20442
Déterminez ici les statuts infligés(+) ou retirés(-) par l'objet
.topic 20501
Question :

A quoi ça sert d'avoir un 4x4 s'il est impossible de comprendre

comment on s'en sert?
.topic 20502
Entrez ici le nom de l'arme
.topic 20503
Choisissez ici l'icône qui apparaîtra à côté du nom de l'arme
.topic 20504
Description de l'arme qui apparaîtra dans le menu
.topic 20513
Sélectionnez ici l'animation qui apparaîtra sur le héros quand il

attaque avec cette arme
.topic 20514
Sélectionnez ici l'animation qui apparaîtra sur

la cible touchée par cette arme
.topic 20521
Prix auquel l'arme sera vendue en magasin

- Mettez cette valeur à 0 pour que l'arme ne puisse pas être vendue

- Les armes sont revendues aux magasins à 50% de leur prix
.topic 20522
Indiquez ici de combien l'arme augmente l'Attaque de l'utilisateur
.topic 20523
Indiquez ici de combien l'arme augmente la Défense Physique de l'utilisateur
.topic 20524
Indiquez ici de combien l'arme augmente la Défense Magique de l'utilisateur
.topic 20525
Indiquez ici de combien l'arme modifie la Force de l'utilisateur

(ce nombre peut être négatif)
.topic 20526
Indiquez ici de combien l'arme modifie la Dextérité de l'utilisateur

(ce nombre peut être négatif)
.topic 20527
Indiquez ici de combien l'arme modifie l'Agilité de l'utilisateur

(ce nombre peut être négatif)
.topic 20528
Indiquez ici de combien l'arme modifie l'Intelligence de l'utilisateur

(ce nombre peut être négatif)
.topic 20541
Cochez ici les différents attributs de l'arme
.topic 20542
Déterminez ici les statuts infligés(+) ou retirés(-) par l'arme
.topic 20601
Le saviez-vous?

J'ai repeint le plafond de ma chambre aujourd'hui.

Si si c'est véridique!
.topic 20602
Entrez ici le nom de l'armure
.topic 20603
Choisissez ici l'icône qui apparaîtra à côté du nom de l'armure
.topic 20604
Description de l'arme qui apparaîtra dans le menu
.topic 20611
Sélectionnez de quel type est l'armure
.topic 20612
Vous pouvez choisir un statut qui sera infligé à

l'utilisateur de l'armure quand il l'équipera
.topic 20621
Prix auquel l'armure sera vendue en magasin

- Mettez cette valeur à 0 pour que l'armure ne puisse pas être vendue

- Les armures sont revendues aux magasins à 50% de leur prix
.topic 20622
Indiquez ici de combien l'armure augmente la Défense Physique de l'utilisateur
.topic 20623
Indiquez ici de combien l'armure augmente la Défense Magique de l'utilisateur
.topic 20624
Indiquez ici de combien l'armure augmente l'Esquive de l'utilisateur
.topic 20625
Indiquez ici de combien l'armure modifie la Force de l'utilisateur

(ce nombre peut être négatif)
.topic 20626
Indiquez ici de combien l'armure modifie la Dextérité de l'utilisateur

(ce nombre peut être négatif)
.topic 20627
Indiquez ici de combien l'armure modifie l'Agilité de l'utilisateur

(ce nombre peut être négatif)
.topic 20628
Indiquez ici de combien l'armure modifie l'Intelligence de l'utilisateur

(ce nombre peut être négatif)
.topic 20641
Cochez ici les différentes résistances aux attributs de l'armure
.topic 20642
Cochez ici les différentes résistances aux statuts de l'armure
.topic 20701
et Cie ^^
.topic 20702
Entrez ici le nom du monstre
.topic 20703
Double-cliquez ici pour sélectionner l'apparence du monstre
.topic 20711
Entrez ici le nombre maximum de Points de Vie (PV) du monstre
.topic 20712
Entrez ici le nombre maximum de Points de Magie (PM) du monstre
.topic 20713
Indiquez ici la Force du monstre
.topic 20714
Indiquez ici la Dextérité du monstre
.topic 20715
Indiquez ici l'Agilité du monstre
.topic 20716
Indiquez ici l'Intelligence du monstre
.topic 20717
Indiquez ici l'Attaque du monstre
.topic 20718
Indiquez ici la Défense Physique du monstre
.topic 20719
Indiquez ici la Défense Magique du monstre
.topic 20720
Indiquez ici l'Esquive du monstre
.topic 20721
Sélectionnez ici l'animation qui apparaît sur le monstre quand il attaque
.topic 20722
Sélectionnez ici l'animation qui apparaît sur le héros attaqué par le monstre
.topic 20723
Indiquez la résistance de ce monstre à chaque attribut.

A:200% - B:150% - C:100% - D:50% - E:0% - F:-100%
.topic 20724
Indiquez la résistance de ce monstre à chaque statut.

A:200% - B:150% - C:100% - D:50% - E:0% - F:-100%
.topic 20725
Dans cette liste se trouvent toutes les actions que le monstre peut utiliser.

Plus la priorité d'une action est élevée, plus elle sera utilisée.

Double-cliquez dans la liste pour ajouter une action
.topic 20731
Entrez ici le nombre de points d'expérience donnés par

le monstre en fin de combat
.topic 20732
Entrez ici l'argent donné par le monstre en fin de combat
.topic 20733
Sélectionnez ici l'objet pouvant être laissé par

le monstre en fin de combat
.topic 20801
Non, Kiss n'est pas un groupe de monstres.

Ils sont juste maquillés ^^
.topic 20802
Entrez ici le nom du groupe de monstres
.topic 20803
Cliquez ici pour nommer automatiquement votre groupe de monstres,

comme si c'était de la magie.

Impressionnant non?
.topic 20804
Cliquez ici pour sélectionner l'arrière-plan que vous verrez derrière

vos p'tits monstres là, juste en dessous à gauche

Oui, à part ça ça ne sert à rien ^^
.topic 20805
Cliquez ici pour tester un combat contre le groupe de monstres sélectionné.

C'est utile pour voir si les monstres ne seront pas

trop forts par rapport au niveau supposé des héros

quand ils arriveront face à eux.
.topic 20810
Vous pouvez placer les monstres comme vous le souhaitez ici.

Faites un clic droit sur un monstre pour choisir s'il doit

être caché et/ou invincible
.topic 20812
Comme l'indique cette merveilleuse flêche "<", un clic sur

ce bouton fera apparaître à gauche le monstre sélectionné à droite.

Surprenant non?
.topic 20813
Cliquez ici pour retirer le monstre sélectionné à gauche du groupe de monstres
.topic 20814
Cliquez ici pour enlever tous les monstres sans aucune pitié
.topic 20815
Cliquez ici pour aligner automatiquement les monstres
.topic 20816
Séléctionnez ici le monstre à insérer dans le groupe de monstres.
Double-cliquez pour l'insérer rapidement
.topic 20821
Ici vous pouvez entrez des évènements qui se déclencheront

à des moments spécifiques du combat
.topic 20901
Hein, ils ont oublié le statut de la liberté!
.topic 20902
Entrez ici le nom du statut
.topic 20903
Animation qui apparaît sur celui qui est sous l'effet du statut
.topic 20904
Sélectionnez l'effet du statut dans la liste ci-dessous
.topic 20905
Ce statut sera infligé dans tous les cas, quelles que

soient les protections de la cible
.topic 20906
Ce statut provoque la mort de la cible
.topic 20907
Les héros sous l'effet de ce statut ne gagneront pas

d'expérience à la fin du combat
.topic 20908
Les héros sous l'effet de ce statut ne peuvent pas fuir
.topic 20909
Les héros sous l'effet de ce statut subiront des dégâts

à chaque tour de combat
.topic 20911
Définissez ici la priorité du statut.

Si un héros déjà atteint d'un statut est infligé d'un

statut à la priorité supérieure au statut précédent,

alors ce dernier disparaît pour laisser place à celui

qui a la priorité la plus élevée.

C'est pourquoi le statut "Mort" a une priorité de 10 : il passe au dessus de tous les autres statuts
.topic 20912
Indiquez ici le pourcentage de chances que le statut soit infligé
.topic 20913
Indiquez ici de combien le statut modifie les Points de Vie (PV)

maximum en pourcentage
.topic 20914
Indiquez ici de combien le statut modifie les Points de Magie (PM)

maximum en pourcentage
.topic 20915
Indiquez ici de combien le statut modifie la Force en pourcentage
.topic 20916
Indiquez ici de combien le statut modifie la Dextérité en pourcentage
.topic 20917
Indiquez ici de combien le statut modifie l'Agilité en pourcentage
.topic 20918
Indiquez ici de combien le statut modifie l'Intelligence en pourcentage
.topic 20919
Indiquez ici de combien le statut modifie l'Attaque en pourcentage
.topic 20920
Indiquez ici de combien le statut modifie la Défense Physique en pourcentage
.topic 20921
Indiquez ici de combien le statut modifie la Défense Magique en pourcentage
.topic 20922
Indiquez ici de combien le statut modifie l'Esquive
.topic 20931
Définissez ici de quelle manière le statut peut être retiré
.topic 20932
Cochez cette case pour que le héros ne soit plus sous l'effet

du statut une fois le combat terminé
.topic 20933
Indiquez ici le nombre de chances que le statut disparaisse

à partir d'un certain nombre de tours
.topic 20935
Indiquez ici le nombre de chances que le statut disparaisse

à chaque fois que le héros est attaqué
.topic 20941
Cochez ici les différentes résistances aux attributs

apportées par le statut
.topic 20942
Déterminez ici les statuts infligés(+) ou retirés(-) par le statut
.topic 21001
Vous vous attendiez à une remarque ou quoi que ce soit?

Et bien non
.topic 21002
Entrez ici le nom de l'animation
.topic 21003
Sélectionnez ici le fichier contenant les diverses

images qui composeront votre animation
.topic 21004
Sélectionnez où l'animation sera affichée sur la

cible (Haut, Milieu ou Bas), ou sélectionnez "Ecran"

pour que l'animation soit affichée au centre de l'écran
.topic 21005
Choisissez le nombre de séquences qui composeront votre animation
.topic 21006
Double-cliquez pour associer un effet sonore et/ou un flash à une séquence
.topic 21011
Cliquez sur ce bouton pour reculer d'une séquence
.topic 21012
Cliquez sur une séquence pour qu'elle apparaisse à droite
.topic 21013
Cliquez sur ce bouton pour avancer d'une séquence
.topic 21020
Ici se trouve le contenu de la séquence sélectionnée à gauche.

Double-cliquez sur une cellule pour accéder à ses propriétés

Faites un clic droit sur une cellule pour effectuer d'autres actions
.topic 21021
Cliquez ici pour changer la cible qui apparaît à gauche
.topic 21022
Cliquez ici pour recopier la séquence précédant la séquence

sélectionnée dans cette dernière
.topic 21023
Cliquez ici pour copier une ou un ensemble de séquences vers une séquence
.topic 21024
Cliquez ici pour supprimer une ou un ensemble de séquences
.topic 21025
Cliquez ici pour que le programme crée les séquences

intermédiaires entre deux séquences données.

Cette option très utile permet de gagner beaucoup de temps

pour les animations simples
.topic 21026
Cliquez ici pour modifier plusieurs séquences en une seule fois
.topic 21027
Cliquez ici pour déplacer les images de plusieurs séquences en une seule fois
.topic 21028
Cliquez ici pour voir l'animation lorsque la cible est touchée

(Les différences entre Touché et Manqué sont définies

dans les "Flashes et Effets Sonores" ci-dessus)
.topic 21029
Cliquez ici pour voir l'animation lorsque la cible est manquée

(Les différences entre Touché et Manqué sont définies

dans les "Flashes et Effets Sonores" ci-dessus)
.topic 21031
Sélectionnez l'image que vous désirez puis cliquez dans

la zone ci-dessus pour l'ajouter à l'animation
.topic 21101
Définition :

Les Chipsets sont de petites Chips
.topic 21102
Entrez ici le nom du Chipset
.topic 21103
Sélectionnez ici le chipset (ou TileSet)
.topic 21104
Vous pouvez agrémenter votre Chipset de 7 carreaux auto-liables

(ou AutoTiles) si vous le souhaitez.

Sélectionnez-les ici
.topic 21105
Vous pouvez choisir ici le panorama associé au Chipset

(Le panorama apparaît là ou rien n'a été placé sur la carte)
.topic 21106
Vous pouvez choisir ici le brouillard associé au Chipset
.topic 21107
Choisissez ici l'arrière-plan des combats qui interviendront sur ce Chipset
.topic 21111
Cliquez avec le bouton gauche ou droit de votre souris pour

modifier les paramètres des carreaux (Tiles)
.topic 21112
Cliquez ici pour modifier la praticabilité des carreaux (Tiles)

selon ce schéma :

Croix : Ce carreau est impraticable

Rond : Ce carreau est praticable

Carré : Carreau "Mur" : praticable verticalement mais pas horizontalement
.topic 21113
Cliquez ici pour indiquer dans quels sens peuvent être

traversés les carreaux (Tiles)
.topic 21114
Cliquez ici pour indiquer la priorité de

superposition des carreaux (Tiles) :

Rien : Ce carreau apparaîtra en dessous de tout

Etoile "N°" : Ces carreaux apparaîtront au dessus des carreaux

n'ayant aucune étoile et ayant un "N°" inférieur (par exemple un

Etoile3 apparaîtra au dessous d'un Etoile5 et au dessus d'un Etoile2)
.topic 21115
Cliquez ici pour indiquer quels carreaux (Tiles) obscurcieront

le héros de moitié quand il les traversera :

Rien : Le héros ne sera pas obscurci

Vagues : Le héros sera obscurci
.topic 21116
Cliquez ici pour définir les carreaux (Tiles) intéractifs,

c'est à dire qui permettent d'interagir avec un évènement à distance.

Par exemple un aubergiste derrière son comptoir :

indiquez que le carreau du comptoir est intéractif pour que

le héros puisse parler à l'aubergiste même si le comptoir est entre les deux.

Rien : Le carreau n'est pas intéractif

Losange : Le carreau est intéractif
.topic 21117
Cliquez ici pour spécifier un type de terrain pour chaque carreau (Tile)

Ces données sont utilisables depuis les commandes

d'évènement (Gestion des variables) et les scripts
.topic 21201
Les évènements communs sont des évènements prédéfinis

pouvant être appelés n'importe quand dans le jeu
.topic 21202
Entrez ici le nom de l'évènement commun
.topic 21203
Sélectionnez le type de déclenchement de l'évènement commun :

- Appel : appelé depuis un autre évènement

- Démarrage automatique : il se déclenchera dès que l'interrupteur

  spécifié à droite sera activé, et bloquera tous les autres évènements

  (utile pour une introduction)

- Processus parallèle : il se déclenchera dès que l'interrupteur

  spécifié à droite sera activé, et tournera en parallèle avec les

  autres évènements
.topic 21204
Sélectionnez l'interrupteur qui déclenchera l'évènement

(uniquement pour "Démarrage automatique" et "Processus parallèle")
.topic 21205
Double-cliquez ici pour ajouter une commande à l'évènement
.topic 21301
Double-cliquez ici pour ajouter ou modifier

un membre dans l'équipe de départ

(4 membres maximum)
.topic 21302
Vous pouvez modifier et/ou ajouter des attributs ici
.topic 21303
Vous pouvez modifier le nom de l'attribut sélectionné

dans la zone d'édition ci-dessous

F4 : Attribut précédent

F5 : Attribut suivant
.topic 21304
Entrez ici le nom de l'attribut sélectionné
.topic 21305
Cliquez ici pour redéfinir le nombre maximum d'attributs
.topic 21310
C'est ici que vous gérez l'apparence graphique et sonore de votre jeu
.topic 21311
Sélectionnez ici l'apparence des fenêtres

(c'est à dire pour les messages, les menus...)
.topic 21312
Sélectionnez ici l'écran qui apparaît au début du jeu
.topic 21313
Sélectionnez l'écran qui apparaît quand le jeu est terminé

ou quand l'équipe est morte
.topic 21314
Sélectionnez ici la transition vers les combats
.topic 21315
Sélectionnez ici la musique de l'écran titre
.topic 21316
Sélectionnez ici la musique des combats
.topic 21317
Sélectionnez ici la musique de victoire en fin de combat
.topic 21318
Sélectionnez ici la musique lorsque l'écran de fin du jeu s'affiche
.topic 21319
Sélectionnez ici l'effet sonore de déplacement du curseur
.topic 21320
Sélectionnez ici l'effet sonore de validation des choix avec le curseur
.topic 21321
Sélectionnez ici l'effet sonore d'annulation des choix avec le curseur
.topic 21322
Sélectionnez ici l'effet sonore émit lorsque le choix est impossible
.topic 21323
Sélectionnez ici l'effet sonore émit lorsqu'un héros s'équipe
.topic 21324
Sélectionnez ici l'effet sonore émit lorsqu'un objet est acheté ou vendu
.topic 21325
Sélectionnez ici l'effet sonore émit lors de la sauvegarde
.topic 21326
Sélectionnez ici l'effet sonore émit lors du chargement
.topic 21327
Sélectionnez ici l'effet sonore émit lorsqu'un ennemi est rencontré
.topic 21328
Sélectionnez ici l'effet sonore émit lors de la fuite des héros
.topic 21329
Sélectionnez ici l'effet sonore émit lorsqu'un héros meurt en combat
.topic 21330
Sélectionnez ici l'effet sonore émit lorsqu'un monstre est vaincu
.topic 21340
C'est ici que toutes les chaînes de caractères visibles

dans le jeu sont définies
.topic 21341
Entrez ici l'unité monétaire du jeu
.topic 21342
Entrez ici l'expression des Points de Vie
.topic 21343
Entrez ici l'expression des Points de Magie
.topic 21344
Entrez ici l'expression pour définir la Force du héros
.topic 21345
Entrez ici l'expression pour définir la Dextérité du héros
.topic 21346
Entrez ici l'expression pour définir l'Agilité du héros
.topic 21347
Entrez ici l'expression pour définir l'Intelligence du héros
.topic 21348
Entrez ici l'expression pour définir la Puissance d'Attaque du héros
.topic 21349
Entrez ici l'expression pour définir la Défense physique du héros
.topic 21350
Entrez ici l'expression pour définir la Défense magique du héros
.topic 21351
Entrez ici l'expression pour définir les Armes dans le jeu
.topic 21352
Entrez ici l'expression pour définir les Boucliers dans le jeu
.topic 21353
Entrez ici l'expression pour définir les Casques dans le jeu
.topic 21354
Entrez ici l'expression pour définir les Armures dans le jeu
.topic 21355
Entrez ici l'expression pour définir les Accessoires dans le jeu
.topic 21356
Entrez ici l'expression pour "Attaquer" lors des combats
.topic 21357
Entrez ici l'expression pour "Utiliser une compétence" lors

des combats et dans le menu principal
.topic 21358
Entrez ici l'expression pour "Se défendre" lors des combats
.topic 21359
Entrez ici l'expression pour "Utiliser un objet" lors des

combats et dans le menu principal
.topic 21360
Entrez ici l'expression pour "Equiper" dans le menu principal
.topic 22001
Cliquez ici pour définir la ou les condition(s) de déclenchement de l'évènement
.topic 22002
Sélectionnez ici la fréquence d'apparition de l'évènement :

- Une fois par combat : dès que la condition est rencontrée,

  l'évènement s'exécute au tour suivant et ne s'exécutera plus

  par la suite dans ce combat

- A chaque tour : à chaque tour, si la condition est rencontrée,

  l'évènement s'exécute

- Démarrage instantané : dès que la condition est rencontrée,

  l'évènement prend la main et s'exécute tout de suite

Note : il n'est pas obligatoire d'avoir de condition,

dans ce cas elle est supposée comme rencontrée à chaque fois
.topic 22003
Double-cliquez ici pour ajouter une commande d'évènement
.topic 22101
- Mettez la première valeur à 0 pour que la condition soit

  rencontrée au tour n°[deuxième valeur]

- Mettez la deuxième valeur à 0 pour que la condition soit

  rencontrée tous les [première valeur] tours

- Mettez les deux valeurs à 0 pour que la condition soit

  rencontrée dès le début du combat, avant l'entrée des commandes
.topic 22102
Franchement, on a tellement bien traduit que je vois pas ce que je pourrais dire de plus là-dessus ^^
.topic 22103
Franchement, on a tellement bien traduit que je vois pas ce que je pourrais dire de plus là-dessus ^^
.topic 22104
Teste si l'interrupteur est activé.

Oui je sais, je vous impressionne par ma perspicacité :)
.topic 22201
Ici se trouve l'évolution des niveaux du héros :

- En vert : nombre de points d'expérience requis pour passer

  d'un niveau à l'autre

- En rouge : nombre de de points d'expérience totaux requis pour

  atteindre un niveau
.topic 22202
Valeur de base :

Plus cette valeur est élevée, plus il faudra de points d'expérience

pour passer au niveau supérieur
.topic 22203
Pente :

Cette valeur permet d'affiner la progression de l'expérience

par rapport à la valeur de base
.topic 22301
Sélectionnez un type de courbe automatique :

De 'A' : Très bon à 'E' : Très mauvais

Par exemple, pour un barbare, mettez 'A' pour la Force

et 'D' ou 'E' pour l'Intelligence
.topic 22302
Entrez un niveau pour voir la valeur de la caractéristique associée à droite
.topic 22303
Entrez ici la valeur pour le niveau spécifié à gauche
.topic 22304
Créez votre courbe automatiquement en définissant les valeurs

pour le niveau 1 et pour le niveau 99
.topic 22305
Utilisez le clic gauche pour modifier directement la courbe,

et le clic droit pour sélectionner le niveau sans modifier la courbe,

afin de voir la valeur associée dans les cases du dessus
.topic 22311
Entrez ici la valeur de la caractéristique au niveau 1
.topic 22312
Entrez ici la valeur de la caractéristique au niveau 99
.topic 22313
Définissez ici le type de croissance de la courbe entre les

deux valeurs spécifiées au dessus
.topic 22401
Sélectionnez le niveau auquel la compétence doit être apprise
.topic 22402
Choisissez ici la compétence apprise au niveau sélectionné ci-dessus
.topic 22501
Aucun objet ne sera laissé à la fin du combat
.topic 22502
Sélectionnez l'objet laissé à la fin du combat
.topic 22503
Sélectionnez l'arme laissée à la fin du combat
.topic 22504
Sélectionnez l'armure laissée à la fin du combat
.topic 22505
Entrez ici le pourcentage de chances d'obtenir l'objet

sélectionné à la fin du combat
.topic 22601
Définissez ici les conditions nécessaires pour que le

monstre exécute l'action.

Les conditions sont bien entendu facultatives
.topic 22602
Bah c'est assez clair non?

Non? Ben allumez la lumière ^^
.topic 22603
Ma foi j'ai jamais rien vu d'aussi clair.

Je commence à me demander pourquoi je traduis cette aide de %$#!£ lol!
.topic 22604
Je suis sûr que si je cherche le mot "Clair" dans le dictionnaire,

je tomberai sur un screenshot de cette page ^^

Cette blague vient du jeu "The Secret of Monkey Island",

le jeu le plus drôle du monde!

Rendons à Guybrush ce qui appartient à Guybrush.
.topic 22605
C'est si clair qu'on voit presque à travers
.topic 22611
Définissez ici l'action que le monstre effectuera
.topic 22612
Cliquez ici pour choisir une action basique, sans aucune originalité,

le genre de truc qui fait bien rire les héros
.topic 22613
Cliquez ici pour choisir une compétence spécifique que le monstre utilisera.

Et ouais, y'a pas que les héros qui y ont droit.

Les monstres aussi sont des êtres vivants.
.topic 22621
Définissez ici la priorité de l'action.

Si le monstre possède plusieurs actions, il utilisera

plus souvent les actions ayant une priorité élevée.

Pour les actions destructrices (genre la compétence qui

tue tous les héros, efface les sauvegardes puis le

contenu du disque dur, avant d'overclocker le processeur

jusqu'à explosion du PC), mettez une priorité très basse,

afin de laisser une chance au joueur ^^
.topic 23001
Sélectionnez le numéro de la séquence à laquelle vous

souhaitez appliquer l'effet
.topic 23002
Sélectionnez l'effet sonore à jouer.

Laissez cette case vide si vous ne souhaitez pas d'effet sonore
.topic 23003
Choisissez quand l'effet doit être appliqué :

- Touché et manqué : L'effet sera appliqué dans tous les cas

- Touché : L'effet sera appliqué UNIQUEMENT si le coup est réussi

- Manqué : L'effet sera appliqué UNIQUEMENT si le coup est manqué

Note : Depuis la section Animations, vous pouvez tester

l'animation dans les deux cas
.topic 23004
Définissez ici les propriétés du flash
.topic 23005
Cliquez ici pour qu'il n'y ait aucun flash
.topic 23006
Cliquez ici pour que la cible uniquement soit flashée
.topic 23007
Cliquez ici pour que la totalité de l'écran soit flashée
.topic 23008
Cliquez ici pour faire disparaître la cible de l'attaque

(uniquement pour cette séquence)
.topic 23009
Dosez ici la valeur en Rouge de la couleur du flash
.topic 23010
Dosez ici la valeur en Vert de la couleur du flash
.topic 23011
Dosez ici la valeur en Bleu de la couleur du flash
.topic 23012
Dosez ici la Saturation de la couleur du flash
.topic 23013
Aperçu de la couleur du flash
.topic 23014
Entrez ici au bout de combien de séquences le flash se

sera totalement estompé
.topic 23031
Entrez ici le nombre de séquences que contiendra votre animation.

Bien entendu, vous pourrez par la suite augmenter ce

nombre si vous le désirez
.topic 23051
Entrez ici l'index de l'image utilisée (par rapport au fichier

d'animation sélectionné)
.topic 23052
Entrez ici la coordonnée en X de la cellule
.topic 23053
Entrez ici la coordonnée en Y de la cellule
.topic 23054
Entrez ici le coefficient d'agrandissement de l'image

utilisée (entre 20% et 800%)
.topic 23055
Entrez ici le degré de rotation de l'image utilisée (entre 0° et 360°)
.topic 23056
Choisissez ici si vous souhaitez que l'image soit inversée horizontalement

Non : Image normale

Oui : Image inversée
.topic 23057
Entrez ici l'opacité de l'image utilisée, de :

0 : Image invisible (totalement transparente)

à 255 : Image opaque (pas du tout tranparente)
.topic 23058
Sélectionnez ici le type de transparence :

Normale : Ben la transparence sera normale ^^

Eclaircie : Tout ce qui apparaît en transparence (derrière l'image) sera éclairci

Obscurcie : Tout ce qui apparaît en transparence (derrière l'image) sera obscurci
.topic 23061
Sélectionnez ici les séquences à modifier
.topic 23062
Sélectionnez ici les cellules des séquences à modifier
.topic 23071
Entrez ici les séquences à copier
.topic 23072
Entrez ici à partir de quelle séquence vous souhaitez coller

les séquences copiées
.topic 23081
Entrez ici les séquences que vous souhaitez effacer
.topic 23091
Entrez ici la séquence contenant le début de l'animation

et la séquence contenant la fin
.topic 23092
Entrez ici les cellules à traiter dans la complétion de l'animation
.topic 23093
Définissez ici les différents paramètres à conserver dans

la complétion de l'animation
.topic 23094
Cochez cette case pour conserver les images utilisées
.topic 23095
Cochez cette case pour conserver la position des cellules,

la rotation et l'agrandissement des images utilisées
.topic 23096
Cochez cette case pour conserver l'opacité et le type de

transparence des images utilisées
.topic 23101
Entrez ici les séquences que vous souhaitez déplacer
.topic 23102
Définissez ici de combien vous souhaitez déplacer les

cellules des séquences sélectionnées en X et en Y
.topic 23103
Entrez ici de combien vous souhaitez modifier la coordonnée

en X des cellules.

Ce nombre peut être négatif
.topic 23104
Entrez ici de combien vous souhaitez modifier la coordonnée

en Y des cellules.

Ce nombre peut être négatif
.topic 23201
Sélectionnez le héros à ajouter
.topic 24001
Un interrupteur sert généralement à tester si une action a été faite.

Il peut prendre 2 valeurs : Activé ou Désactivé
.topic 24002
Sélectionnez une liste d'interrupteurs afin d'en voir le contenu à droite
.topic 24003
Cliquez ici pour redéfinir le nombre maximum d'interrupteurs
.topic 24004
Sélectionnez un interrupteur pour modifier son nom

F4 : Interrupteur précédent

F5 : Interrupteur suivant
.topic 24005
Entrez ici le nom de l'interrupteur
.topic 24101
Une variable peut contenir n'importe quelle valeur numérique,

et sert généralement à stocker un nombre pour s'en servir par

la suite, par exemple :

- Un nombre d'objets spéciaux trouvés

- La coordonnée du héros, en X ou en Y

- Le nombre de combats effectués, etc...
.topic 24102
Sélectionnez une liste de variables afin d'en voir le contenu à droite
.topic 24103
Cliquez ici pour redéfinir le nombre maximum de variables
.topic 24104
Sélectionnez une variable pour modifier son nom

F4 : Variable précédente

F5 : Variable suivante
.topic 24105
Entrez ici le nom de la variable
.topic 25001
Sélectionnez ici l'un des quatre héros pouvant participer au combat
.topic 25002
Entrez ici le niveau du héros pour le test du combat
.topic 25010
Définissez ici l'équipement du héros pour le test du combat
.topic 25011
Sélectionnez ici l'Arme du héros pour le test du combat
.topic 25012
Sélectionnez ici le Bouclier du héros pour le test du combat
.topic 25013
Sélectionnez ici le Casque du héros pour le test du combat
.topic 25014
Sélectionnez ici l'Armure du héros pour le test du combat
.topic 25015
Sélectionnez ici l'Accessoire du héros pour le test du combat
.topic 25020
Aperçu des caractéristiques du héros pour le niveau sélectionné
.topic 25030
Cliquez ici pour remettre les caractéristiques du héros à

leurs valeurs de départ


.topic 28001
Entrez ici le nom de l'évènement
.topic 28011
Cliquez ici pour ajouter une nouvelle page à l'évènement
.topic 28012
Cliquez ici pour copier la page en cours vers le presse-papier
.topic 28013
Cliquez ici pour coller la page copiée
.topic 28014
Cliquez ici pour supprimer la page en cours
.topic 28015
Cliquez ici pour effacer le contenu de la page en cours
.topic 28101
Définissez ici les conditions de l'évenement,

c'est à dire les condition nécessaires à l'apparition de l'évènement.

L'évènement apparaîtra tout de suite sur la carte si vous ne cochez aucune condition, cependant,

si vous entrez des conditions, l'évènement n'apparaîtra pas tant qu'elles ne sont pas remplies.

Si vous souhaitez qu'un évènement change d'apparence et/ou de commandes lors du jeu, vous devez créer une nouvelle page

d'évènement contenant des conditions différentes, avec la nouvelle apparence de l'évènement et/ou les nouvelles commandes.

Ainsi, dès que les conditions de la deuxième page seront rencontrées, l'évènement prendra aussitôt l'apparence et les commandes de la seconde page.

Exemple simple du coffre contenant un objet :

Dans la première page d'évènement, sélectionnez comme apparence un coffre fermé, avec comme condition de déclenchement "Par la touche action".

Créez une deuxième page ayant pour apparence un coffre ouvert, et cochez comme condition L'interrupteur [...] est activé.

Double-cliquez dans la zone de l'interrupteur et créez l'interrupteur nommé par exemple "CoffreOuvert".

Dans les commandes de la première page (c'est à dire ce qu'il se passera quand le joueur entrera en intéraction avec le coffre fermé),

entrez par exemple le message "Une potion trouvée!", ajoutez une potion dans l'inventaire, et enfin activez l'interrupteur "CoffreOuvert".

Voilà, que se passera-t'il quand le joueur appuiera sur le bouton d'action près du coffre?

Le message de potion va s'afficher, une potion va s'ajouter dans son inventaire, puis, dès que l'interrupteur va s'activer,

la condition de la deuxième page est rencontrée, donc elle prend le relais sur la première page, et affiche le coffre ouvert.

Comme elle ne contient aucune commande d'évènement, il ne se passera plus rien si le joueur appuie sur le bouton d'action près du coffre.
.topic 28102
Cochez cette case pour définir un interrupteur activé comme condition
.topic 28103
Cochez cette case pour que l'évènement ce déclenche lorsque la variable

indiquée a atteint une valeur supérieure ou égale à la valeur indiquée
.topic 28104
Cochez cette case pour définir un interrupteur local activé comme condition.

Les interrupteurs locaux fonctionnent de la même manière que les

interrupteurs, à ceci près qu'ils sont spécifiques à chaque évènement.

Ainsi, l'interrupteur local A peut très bien être activé pour un coffre

d'une carte et désactivé pour un autre. Ils sont extrêmement utiles pour les

portes, les coffres, puisque de cette manière il n'y a plus besoin d'utiliser

un interrupteur par coffre du jeu.
.topic 23002
‚±‚ÌƒŠƒXƒg‚Å‘I‘ð‚³‚ê‚½”ÍˆÍ‚ÌƒXƒCƒbƒ`‚ª‰E‘¤‚É•\Ž¦‚³‚ê‚Ü‚·B
.topic 23003
ƒXƒCƒbƒ`‚Ì”‚ð•ÏX‚µ‚Ü‚·Bƒf[ƒ^‚ª‘½‚¢‚Ù‚Ç•K—v‚Èƒƒ‚ƒŠ—e—Ê‚à‘‰Á‚µ‚Ü‚·B
.topic 23004
ƒXƒCƒbƒ`‚ð‘I‘ð‚·‚éƒŠƒXƒg‚Å‚·B
.topic 23005
ƒXƒCƒbƒ`‚Ì–¼‘O‚Å‚·B‚±‚Ì–¼‘O‚ÍƒGƒfƒBƒ^ã‚Å‚Ì‚ÝŽg—p‚³‚ê‚é•Ö‹X“I‚È‚à‚Ì‚Å‚·B
.topic 23101
”CˆÓ‚Ì®” (Å‘å 8 Œ…) ‚ð•ÛŽ‚·‚éƒf[ƒ^‚Å‚·B
.topic 28111
Double-cliquez ici pour sélectionner l'apparence de l'évènement
.topic 28121
Définissez ici le mode de déplacement de l'évènement
.topic 28122
Sélectionnez ici la manière dont il se déplace :

  Ne bouge pas : L'évènement restera toujours à la même place

  Mouvements aléatoires : L'évènemment se déplacera dans des directions   praticables prises au hasard

  Suit le héros : L'évènement se déplacera vers le héros

  Parcours prédéfini : Vous permet d'éditer le parcours de l'évènement

.topic 28123
Cliquez ici pour éditer le parcours de l'évènement
.topic 28124
Sélectionnez ici la vitesse de déplacement d'une case à l'autre
.topic 28125
Sélectionnez ici la fréquence de déplacement.

Plus elle est faible, plus le temps d'arrêt entre deux déplacement est important
.topic 28131
Ici vous pouvez définir diverses options qui caractérisent l'évènement
.topic 28132
Cochez cette case pour que l'évènement soit animé lorsqu'il se déplace d'une case à l'autre
.topic 28133
Cochez cette case pour que l'évènement soit animé lorsqu'il ne se déplace plus.

Utile pour les objets fixes animés (comme les torches, les fontaines...)
.topic 28134
Cochez cette case pour que le héros fixe toujours la direction choisie pour son apparence,

quelle que soit la direction dans laquelle il se déplace
.topic 28135
Cochez cette case pour que l'évènement puisse traverser

les autres évènements, le héros et le décors

Utile pour les fantômes, esprits...
.topic 28136
Cochez cette case pour que l'évènement ne puisse jamais être caché par un autre

évènement ou par un élément du décors.

Utile pour tout ce qui est censé voler (oiseaux, vaisseaux...)
.topic 28141
Définissez ici ce qui va provoquer l'exécution des commandes entrés à droite

(si les conditions de l'évènement sont rencontrées)
.topic 28142
L'évènement se déclenchera si le joueur appuie sur la touche action (Entrée, espace)

lorsque le héros se situe à côté ou sur l'évènement
.topic 28143
L'évènement se déclenchera si le héros entre en contact avec l'évènement (si il le touche

ou si il marche dessus)
.topic 28144
L'évènement se déclenchera si l'évènement entre en contact avec le héros
.topic 28145
L'évènement se déclenchera dès que le joueur entrera dans la carte où l'évènement se situe.

Tous les autres évènements seront bloqués.

Veillez dans ce cas à bien mettre une autre page

dans cet évènement afin d'éviter qu'il ne se reproduise indéfiniment
.topic 28146
L'évènement se déclenchera dès que le joueur entrera dans la carte où l'évènement se situe,

laissant, contrairement au démarrage automatique, continuer les autres évènements
.topic 28151
Ici se trouvent toutes les commandes qui s'exécuteront lors du déclenchement de l'évènement.

  Double-cliquez pour faire apparaître la liste de commandes

  Pour éditer une commande, sélectionnez la puis appuyez sur Espace

  Pour effacer une commande, sélectionnez la puis appuyez sur Suppr

  Pour entrer plusieurs messages de suite (très utile pour les dialogues), faites un clic

  droit puis sélectionnez "Entrer plusieurs messages de suite..."
.topic 28201
Sélectionnez ici l'évènement à déplacer et/ou à modifier
.topic 28202
Ici se trouvent toutes les commandes de déplacement et de modification de l'évènement.

  Pour éditer une commande, sélectionnez la puis appuyez sur Espace

  Pour effacer une commande, sélectionnez la puis appuyez sur Suppr
.topic 28203
Définissez ici les options des commandes ci-dessus
.topic 28204
Cochez cette case pour que les commandes se répètent une fois qu'elles sont terminées
.topic 28205
Cochez cette case afin que si une commande est impossible à réaliser (traverser un

mur sans être en mode fantôme par exemple), l'évènement passe à la commande suivante.
.topic 28211
L'évènement se déplacera d'un pas vers le bas
.topic 28212
L'évènement se déplacera d'un pas vers la gauche
.topic 28213
L'évènement se déplacera d'un pas vers la droite
.topic 28214
L'évènement se déplacera d'un pas vers le haut
.topic 28215
L'évènement se déplacera en diagonale d'un pas vers le bas à gauche
.topic 28216
L'évènement se déplacera en diagonale d'un pas vers le bas à droite
.topic 28217
L'évènement se déplacera en diagonale d'un pas vers le haut à gauche
.topic 28218
L'évènement se déplacera en diagonale d'un pas vers le haut à droite
.topic 28219
L'évènement se déplacera d'un pas vers une direction sélectionnée au hasard
.topic 28220
L'évènement se déplacera d'un pas dans la direction où se trouve le héros
.topic 28221
L'évènement se déplacera d'un pas dans la direction opposée à celle où se trouve le héros
.topic 28222
L'évènement avancera d'un pas dans la direction qu'il regarde
.topic 28223
L'évènement avancera d'un pas dans la direction opposée à celle qu'il regarde
.topic 28224
L'évènement effectuera un saut dont vous définissez les coordonnées
.topic 28225
L'évènement s'arrêtera pendant le temps que vous définissez
.topic 28226
L'évènement se tournera vers le bas
.topic 28227
L'évènement se tournera vers la gauche
.topic 28228
L'évènement se tournera vers la droite
.topic 28229
L'évènement se tournera vers la haut
.topic 28230
L'évènement se tournera de 90° vers la droite
.topic 28231
L'évènement se tournera de 90° vers la gauche
.topic 28232
L'évènement fera demi-tour
.topic 28233
L'évènement se tournera de 90° vers la gauche ou vers la droite, au hasard
.topic 28234
L'évènement se tournera vers une direction sélectionnée au hasard
.topic 28235
L'évènement se tournera vers la direction où se trouve le héros
.topic 28236
L'évènement se tournera vers la direction opposée à celle où se trouve le héros
.topic 28237
Active un interrupteur (si si je vous jure!)
.topic 28238
Désactive un interrupteur
.topic 28239
Modifie la vitesse de déplacement de l'évènement
.topic 28240
Modifie la fréquence des déplacements de l'évènement
.topic 28241
Active l'animation lors des déplacement de l'évènement
.topic 28242
Désactive l'animation lors des déplacement de l'évènement
.topic 28243
Active l'animation lorsque l'évènement est arrêté
.topic 28244
Désactive l'animation lorsque l'évènement est arrêté
.topic 28245
Active la fixation de direction pour l'évènement
.topic 28246
Désactive la fixation de direction pour l'évènement
.topic 28247
L'évènement pourra passer au travers de tout
.topic 28248
L'évènement ne pourra plus passer au travers de tout
.topic 28249
L'évènement ne pourra jamais être caché par un autre

ou par un objet du décors
.topic 28250
L'évènement pourra être caché par un autre

ou par un objet du décors
.topic 28251
Modifie l'apparence de l'évènement
.topic 28252
Modifie l'opacité de l'évènement
.topic 28253
Modifie le type de tranparence du héros
.topic 28254
Joue un effet sonore
.topic 28255
Insère un script Ruby
.topic 28301
Entrez ici la distance du saut (en nombre de cases) sur le plan horizontal.

  Nombre positif : le saut se fera vers la droite

  Nombre négatif : le saut se fera vers la gauche
.topic 28302
Entrez ici la distance du saut (en nombre de cases) sur le plan vertical.

  Nombre positif : le saut se fera vers le bas

  Nombre négatif : le saut se fera vers le haut
.topic 28401
Entrez ici le temps d'attente en nombre de frames.

(Une frame représente 1/20 de seconde)
.topic 28501
Entrez ici l'opacité de l'évènement,

de 0 (invisible) à 255 (opaque)
.topic 28601
Sélectionnez ici le type de transparence de l'évènement :

Normale : aucun changement

Eclaircie : Tout ce qui apparaît en transparence derrière l'évènement sera comme éclairé

Obscurcie : Tout ce qui apparaît en transparence derrière l'évènement sera comme obscurci
.topic 28701
Tapez ici un script en Ruby qui sera inséré dans les commandes
.topic 29001
Žw’è‚µ‚½ƒAƒCƒeƒ€‚ð¤•i‚Æ‚µ‚ÄÝ’è‚µ‚Ü‚·B
.topic 29002
Žw’è‚µ‚½•Ší‚ð¤•i‚Æ‚µ‚ÄÝ’è‚µ‚Ü‚·B
.topic 29003
Žw’è‚µ‚½–h‹ï‚ð¤•i‚Æ‚µ‚ÄÝ’è‚µ‚Ü‚·B
.topic 30001
[Afficher un message]

Permet d'afficher un message de 4 lignes maximum
.topic 30002
[Proposer un choix]

Permet de proposer jusqu'à 4 choix au joueur, avec des commandes

personnalisées pour chaque choix, ainsi qu'en cas d'annulation
.topic 30003
[Entrer un nombre]

Permet de demander au joueur d'entrer un nombre, de 1 à 8 chiffres,

et le stocke dans la variable sélectionnée
.topic 30004
[Options d'affichage des messages]

Permet de définir la position des fenêtres de messages,

et si elle sont transparentes ou non
.topic 30005
[Gestion de l'appui sur une touche]

Entre le code de la prochaine touche pressée sur le clavier dans

la variable sélectionnée
.topic 30006
[Attendre]

Permet d'attendre pendant un moment défini avant

d'exécuter les commandes suivantes
.topic 30007
[Insérer un commentaire]

Permet d'entrer un commentaire afin de vous y retrouver plus

facilement dans vos commandes d'évènement
.topic 30008
[Conditions]

Permet de poser une condition et d'entrer des commandes

si elle est remplie ou non
.topic 30009
[Boucle]

Une boucle encadre des commandes d'évènement qui se répéteront

jusqu'à ce que la commande "Sortir de la boucle" (ci-dessous)

soit rencontrée
.topic 30010
[Sortir de la boucle]

Permet de sortir de la boucle commencée avec l'instruction

ci-dessus
.topic 30011
[Stopper tous les évènements]

Arrête tous les évènements en cours d'exécution
.topic 30012
[Supprimer cet évènement]

Efface l'évènement qui contient cette commande
.topic 30013
[Appeler un évènement commun]

Permet d'appeler un des évènements communs

Pour créer un évènement commun, allez dans la base de

données, dans la section "Evènements communs"
.topic 30014
[Mettre une étiquette]

Placez une étiquette dans un évènement afin de pouvoir y

revenir n'importe quand, en utilisant la commande

"Sauter vers l'étiquette" ci-dessous.

Vous pouvez placer un nombre illimité d'étiquettes,

chacune ayant un nom spécifique
.topic 30015
[Sauter vers l'étiquette]

Permet d'aller à une étiquette placée avec la commande

"Mettre une étiquette", ci-dessus
.topic 30016
[Gestion des interrupteurs]

Permet d'activer ou de désactiver un ou plusieurs interrupteurs
.topic 30017
[Gestion des variables]

Permet de modifier la valeur d'une ou plusieurs variables
.topic 30018
[Gestion des interrupteurs locaux]

Permet d'activer ou de désactiver un interrupteur local
.topic 30019
[Gestion du chronomètre]

Permet de démarrer ou d'arrêter le chronomètre
.topic 30020
[Ajouter/Retirer monnaie]

Permet de modifier la monnaie de l'équipe
.topic 30021
[Ajouter/Retirer objets]

Permet de modifier les objets possédés par l'équipe
.topic 30022
[Ajouter/Retirer armes]

Permet de modifier les armes possédées par l'équipe
.topic 30023
[Ajouter/Retirer armures]

Permet de modifier les armures possédées par l'équipe
.topic 30024
[Modifier l'équipe]

Permet d'ajouter ou de retirer un membre dans l'équipe
.topic 30025
[Changer l'apparence des fenêtres]

Permet de modifier le fichier contenant l'apparence des fenêtres
.topic 30026
[Changer la musique des combats]

Permet de modifier la musique des combats
.topic 30027
[Changer la musique de victoire]

Permet de modifier la musique de victoire
.topic 30028
[Autoriser/Interdire la sauvegarde]

Permet d'autoriser ou d'interdire au joueur de sauvegarder
.topic 30029
[Autoriser/Interdire menu principal]

Permet d'autoriser ou d'interdire au joueur d'accéder

au menu principal
.topic 30030
[Activer/Désactiver les combats]

Permet d'activer ou de désactiver les combats aléatoires
.topic 30031
[Téléporter l'équipe]

Permet de téléporter l'équipe vers l'endroit de

votre choix
.topic 30032
[Modifier la position d'un évènement]

Permet de modifier la position d'un évènement sur la carte,

ou d'échanger sa position avec un autre évènement
.topic 30033
[Faire défiler la carte]

Permet de faire défiler la carte d'un nombre défini de carreaux,

sans que le héros ne bouge, dans la direction et la vitesse désirées
.topic 30034
[Modifier les propriétés de la carte]

Permet de modifier le panorama, le brouillard et l'arrière-plan de

combat de la carte en cours
.topic 30035
[Modifier le ton du brouillard]

Permet de modifier la teinte du brouillard, en précisant le temps

de transition
.topic 30036
[Modifier l'opacité du brouillard]

Permet de modifier l'opacité du brouillard, en précisant le temps

de transition
.topic 30037
[Afficher une animation]

Permet d'afficher l'animation de votre choix sur la cible

de votre choix
.topic 30038
[Modifier la transparence du héros]

Permet de choisir si le héros doit être transparent ou opaque
.topic 30039
[Déplacer/Modifier un évènement]

Permet de déplacer un évènement en entrant des commandes de

déplacement et/ou de modifier son apparence
.topic 30040
[Tout déplacer]

Permet d'attendre la fin du déplacement (effectué avec la

commande ci-dessus) avant d'exécuter les commandes suivantes
.topic 30041
[Préparer la transition]

Permet d'arrêter les évènements et de faire le vide

avant de lancer la transition
.topic 30042
[Exécuter la transition]

Permet d'appliquer à l'écran un effet de transition

(Utile pour les changements de carte)
.topic 30043
[Modifier le ton de l'écran]

Permet de donner à l'écran une teinte que vous choisissez
.topic 30044
[Flasher l'écran]

Permet de flasher l'écran avec la teinte de votre choix pendant

un temps défini
.topic 30045
[Faire trembler l'écran]

Permet de simuler un effet de tremblement sur l'écran pendant

un temps défini
.topic 30046
[Afficher une image]

Permet d'afficher une image en définissant sa taille,

ses coordonnées et son opacité
.topic 30047
[Déplacer/Modifier une image]

Permet de déplacer une image, de modifier sa taille, et/ou de

la rendre plus ou moins opaque, en spécifiant le temps de transition
.topic 30048
[Faire tourner une image]

Permet d'appliquer un effet de rotation à une image, en spécifiant

la vitesse
.topic 30049
[Modifier le ton d'une image]

Permet de modifier la teinte d'une image, en spécifiant le temps

de transition
.topic 30050
[Effacer une image]

Permet de supprimer une image affichée
.topic 30051
[Effets météorologiques]

Permet d'appliquer diverses conditions météorologiques sur l'écran,

en spécifiant leur intensité et le temps de transition
.topic 30052
[Jouer un fond musical (BGM)]

Permet de jouer une musique de fond, autrement dit une musique qui

se répète indéfiniment
.topic 30053
["Faire disparaître" le fond musical]

Permet de baisser petit à petit le son du fond musical (BGM) jusqu'à le

faire disparaître, en spécifiant le temps de transition
.topic 30054
[Jouer un fond sonore (BGS)]

Permet de jouer un effet sonore de fond, autrement dit une musique qui

se répète indéfiniment, comme par exemple un bruit de vagues, d'oiseaux,

de pluie...
.topic 30055
["Faire disparaître" le fond sonore]

Permet de baisser petit à petit le son du fond sonore (BGS) jusqu'à le

faire disparaître, en spécifiant le temps de transition
.topic 30056
[Mémoriser fonds musical/sonore]

Permet de se souvenir du fond musical et du fond sonore afin de

pouvoir les restituer lorsque la commande ci-dessous est utilisée
.topic 30057
[Jouer fonds musical/sonore mémorisés]

Permet de jouer le fond musical et le fond sonore mémorisés grâce

à la commande ci-dessus
.topic 30058
[Jouer un effet musical (ME)]

Permet de jouer une courte musique une seule fois seulement,

par exemple une musique de victoire, d'objet trouvé...
.topic 30059
[Jouer un effet sonore (SE)]

Permet de jouer un effet sonore une seule fois seulement, par

exemple une porte qui s'ouvre, un interrupteur qui s'enclenche...
.topic 30060
[Arrêter effet musical/sonore]

Permet d'arrêter un effet musical et/ou un effet sonore

en cours de lecture
.topic 30061
[Démarrer un combat]

Permet de démarrer un combat avec le groupe de monstres

sélectionné
.topic 30062
[Appeler un magasin]

Permet d'invoquer un magasin qui vendra les éléments

sélectionnés
.topic 30063
[Entrer le nom du héros]

Permet de demander au joueur d'entrer le nom de son choix

pour un héros défini
.topic 30064
[Modifier les PV]

Permet d'augmenter ou de réduire les PV d'un héros ou de

l'équipe entière
.topic 30065
[Modifier les PM]

Permet d'augmenter ou de réduire les PM d'un héros ou de

l'équipe entière
.topic 30066
[Modifier le statut]

Permet d'infliger ou de retirer un statut à un héros ou à

l'équipe entière
.topic 30067
[Soigner complètement]

Permet de remettre les PV et PM au max et retirer tous

les statuts d'un héros ou de l'équipe entière
.topic 30068
[Ajouter/Retirer points d'expérience]

Permet d'ajouter ou de retirer des points d'expérience

à un héros ou à l'équipe entière
.topic 30069
[Modifier le niveau]

Permet d'ajouter ou de retirer un ou plusieurs niveaux

à un héros ou à l'équipe entière
.topic 30070
[Modifier caractéristique de base]

Permet d'augmenter ou de diminuer une caractéristique de base

d'un héros ou de l'équipe entière
.topic 30071
[Ajouter/Retirer une compétence]

Permet d'ajouter ou de retirer une compétence

à un héros ou à l'équipe entière
.topic 30072
[Modifier l'équipement d'un héros]

Permet de modifier une partie de l'équipement d'un héros
.topic 30073
[Modifier le nom d'un héros]

Permet de changer le nom d'un héros
.topic 30074
[Modifier la classe d'un héros]

Permet de changer la classe d'un héros
.topic 30075
[Modifier l'apparence d'un héros]

Permet de changer l'apparence d'un héros
.topic 30076
[Modifier les PV d'un monstre]

Permet d'augmenter ou de réduire les PV

d'un ou de tous les monstres
.topic 30077
[Modifier les PM d'un monstre]

Permet d'augmenter ou de réduire les PM

d'un ou de tous les monstres
.topic 30078
[Modifier le statut d'un monstre]

Permet d'infliger ou de retirer un statut

à un ou à tous les monstres
.topic 30079
[Soigner complètement un monstre]

Permet de remettre les PV et PM au max et retirer tous

les statuts d'un monstre ou de tous les monstres
.topic 30080
[Faire apparaître un monstre caché]

Permet de faire apparaître un monstre défini comme "caché"

dans la section "Groupes de monstres" de la base de données
.topic 30081
[Transformer un monstre]

Permet de transformer un monstre en un autre monstre

pendant un combat
.topic 30082
[Afficher une animation en combat]

Permet d'afficher une animation pendant un combat sur la

cible de votre choix
.topic 30083
[Blesser Equipe/Monstres]

Permet d'infliger des dégâts à la cible de votre choix

pendant un combat
.topic 30084
[Forcer Héros/Monstre à faire]

Permet de forcer un héros ou un monstre à utiliser

une compétence ou une attaque de base
.topic 30085
[Fin du combat]

Met fin instantanément au combat
.topic 30086
[Ouvrir le menu principal]

Ouvre le menu principal
.topic 30087
[Ouvrir le menu de sauvegarde]

Ouvre le menu de sauvegarde
.topic 30088
[Fin du jeu]

Met fin instantanément au jeu
.topic 30089
[Retourner à l'écran-titre]

Retourne instantanément à l'écran-titre
.topic 30090
[insérer un script]

Permet d'insérer un script en Ruby dans

vos commandes d'évènement
.topic 31001
Tapez ici le message, vous pouvez utiliser les

commandes spéciales indiquées ci-dessous.

Tapez "\\" pour afficher le caractère '\'

Ctrl+Entrée : Valider le message

.topic 31002
Limite à droite du message, en fonction de la police par défaut
.topic 31003
Vous pouvez entrer ici plusieurs messages de suite, toutes les

4 lignes, une nouvelle commande de message sera créée.
.topic 31004
Limite d'un message
.topic 31101
Entrez ici le premier choix
.topic 31102
Entrez ici le second choix
.topic 31103
Entrez ici le troisième choix
.topic 31104
Entrez ici le quatrième choix
.topic 31111
Définissez ici ce qu'il se passe si le joueur appuie sur

la touche d'annulation au lieu de faire un choix
.topic 31112
Le joueur ne peut pas annuler,

il est obligé de faire un choix
.topic 31113
Le premier choix sera sélectionné
.topic 31114
Le second choix sera sélectionné
.topic 31115
Le troisième choix sera sélectionné
.topic 31116
Le quatrième choix sera sélectionné
.topic 31117
Personnalisez les commandes en cas d'annulation
.topic 31201
Sélectionnez la variable dans laquelle sera stocké le

nombre entré par le joueur
.topic 31202
Indiquez le nombre de chiffres que doit

contenir le nombre entré par le joueur
.topic 31301
Définissez ici ou apparaîtront les fenêtres de messages
.topic 31302
Les fenêtres apparaîtront en haut de l'écran
.topic 31303
Les fenêtres apparaîtront au milieu de l'écran
.topic 31304
Les fenêtres apparaîtront en bas de l'écran
.topic 31305
Définissez ici si la fenêtre du message doit être

visible ou non
.topic 31306
La fenêtre du message sera visible
.topic 31307
Le message seul apparaîtra
.topic 31401
Sélectionnez la variable dans laquelle sera stocké le

code de la touche pressée.

Le code peut valoir :

Touche Bas : 2

Touche gauche : 4

Touche droite : 6

Touche haut : 8

Touche 'Z' ou Maj : 11

Touche 'C', Espace ou Entrée : 13

Touche 'X' ou 'A' : 14

Touche 'S' : 15

Touche 'D' : 16

Touche 'Q' ou Pg. Haut : 17

Touche 'W' ou Pg. Bas : 18
.topic 31501
Entrez ici le temps d'attente.

une frame = 1/20 de seconde
.topic 31601
Tapez ici votre commentaire.

Ctrl+Entrée : Valider le commentaire
.topic 31701
Cochez cette case pour personnaliser les commandes

au cas où la condition n'est pas rencontrée
.topic 31711
Tester l'état d'un interrupteur :

Sélectionnez l'interrupteur, puis l'état dans lequel

il doit être pour que la condition soit rencontrée
.topic 31712
Tester la valeur contenue dans une variable :

Sélectionnez la variable, puis la condition devant

être vérifiée et par rapport à quoi
.topic 31713
Tester l'état d'un interrupteur local :

Sélectionnez l'interrupteur local, puis l'état dans lequel

il doit être pour que la condition soit rencontrée
.topic 31714
Tester la position du chronomètre
.topic 31721
Sélectionnez le héros servant à tester les conditions suivantes
.topic 31722
Si le héros sélectionné est actuellement dans l'équipe,

la condition est remplie
.topic 31723
Si le héros sélectionné a pour nom le nom entré,

la condition est remplie
.topic 31724
Si le héros sélectionné peut utiliser la compétence sélectionnée,

la condition est remplie
.topic 31725
Si le héros sélectionné est actuellement équipé de l'arme sélectionnée,

la condition est remplie
.topic 31726
Si le héros sélectionné est actuellement équipé de l'armure sélectionnée,

la condition est remplie
.topic 31727
Si le héros sélectionné est actuellement sous l'effet sélectionné,

la condition est remplie
.topic 31731
Sélectionnez le monstre servant à tester les conditions suivantes
.topic 31732
Si le monstre sélectionné n'est pas encore mort,

la condition est remplie
.topic 31733
Si le monstre sélectionné est sous l'effet du statut sélectionné,

la condition est remplie
.topic 31735
Tester la direction de l'évènement sélectionné
.topic 31741
Tester l'argent possédé
.topic 31742
Tester si l'objet sélectionné est possédé
.topic 31743
Tester si l'arme sélectionnée est possédée
.topic 31744
Tester si l'armure sélectionnée est possédée
.topic 31745
Tester si une touche est actuellement pressée
.topic 31746
Tester une condition codée en Ruby
.topic 32201
Sélectionnez ici l'évènement commun à appeler
.topic 32301
Entrez ici le nom de l'étiquette à placer
.topic 32401
Entrez ici le nom de l'étiquette vers

laquelle il faut sauter
.topic 32501
Définissez ici le ou les interrupteur(s) à modifier
.topic 32502
Sélectionnez l'interrupteur seul à modifier
.topic 32503
Sélectionnez une rangée d'interrupteurs à modifier
.topic 32512
Entrez ici le nouvel état du ou des interrupteur(s) sélectionné(s)
.topic 32513
Active le ou les interrupteur(s)
.topic 32514
Désactive le ou les interrupteur(s)
.topic 32601
Définissez ici la ou les variable(s) à modifier
.topic 32602
Sélectionnez la variable seule à modifier
.topic 32603
Sélectionnez une rangée de variables à modifier
.topic 32612
Définissez ic l'opération à effectuer sur

la valeur contenue dans la variable sélectionnée
.topic 32613
La variable sélectionnée prendra la valeur de l'opérande

indiqué ci-dessous
.topic 32614
La valeur de la variable sélectionnée sera additionnée à

l'opérande indiqué ci-dessous
.topic 32615
La valeur de la variable sélectionnée sera réduite de

l'opérande indiqué ci-dessous
.topic 32616
La valeur de la variable sélectionnée sera multipliée par

l'opérande indiqué ci-dessous
.topic 32617
La valeur de la variable sélectionnée sera divisée par

l'opérande indiqué ci-dessous
.topic 32618
La variable sélectionnée contiendra le Modulo de sa valeur

par l'opérande indiqué ci-dessous
.topic 32619
Définissez ici l'opérande de l'opération

sélectionnée ci-dessus
.topic 32620
L'opérande sera la valeur entrée ici
.topic 32621
L'opérande sera la valeur contenue

dans la variable sélectionnée ici
.topic 32622
L'opérande sera une valeur prise au hasard entre

les deux valeurs entrées
.topic 32623
L'opérande sera le nombre d'objets sélectionnés possédés
.topic 32624
L'opérande sera la valeur de la caractéristique sélectionnée

du héros sélectionné
.topic 32625
L'opérande sera la valeur de la caractéristique sélectionnée

du monstre sélectionné
.topic 32626
L'opérande sera la valeur de :

  -Coordonnée X : La coordonnée en X par rapport à la carte

  -Coordonnée Y : La coordonnée en Y par rapport à la carte

  -Direction : Bas = 2; Gauche = 4; Droite = 6; Haut = 8

  -Coord. X relative à l'écran : La coordonnée en X par rapport à l'écran

  -Coord. Y relative à l'écran : La coordonnée en Y par rapport à l'écran

  -N° du type de terrain : Le numéro du terrain selon les valeurs

   définies dans la section "Gestion des chipsets" de la base de données

.topic 32627
L'opérande sera la valeur de :

  -ID de la carte : ID (Numéro) de la carte actuelle, visible dans ses propriétés

  -Nombre de membres dans l'équipe : de 1 à 4

  -Argent possédé: Montant d'argent possédé

  -Nombre de pas total : Le nombre de pas effectués visible dans le menu

  -Temps de jeu : Le temps de jeu en secondes depuis le début de la partie

  -Secondes restantes du chrono : Le nombre de secondes restantes du chronomètre

  -Nombre de sauvegardes : Le nombre de sauvegardes effectuées

.topic 32701
Sélectionnez ici l'interrupteur local à modifier
.topic 32702
Entrez ici le nouvel état de l'interrupteur local sélectionné
.topic 32703
Active l'interrupteur local sélectionné
.topic 32704
Désactive l'interrupteur local sélectionné
.topic 32801
Définissez ici l'action à effectuer sur le chronomètre
.topic 32802
Déclenche le chronomètre
.topic 32803
Arrête le chronomètre
.topic 32804
Initialisez ici le chronomètre à la valeur désirée
.topic 32901
Définissez ici l'opération à effectuer
.topic 32902
Ajoute de la monnaie
.topic 32903
Retire de la monnaie
.topic 32904
Définissez ici le montant
.topic 32905
Entrez ici le montant
.topic 32906
Sélectionnez ici la variable contenant le montant
.topic 33001
Sélectionnez ici l'objet à ajouter
.topic 33002
Définissez ici l'opération à effectuer
.topic 33003
Ajoute la quantité d'objets définie
.topic 33004
Retire la quantité d'objets définie
.topic 33005
Définissez ici la quantité d'objets
.topic 33006
Entrez ici la quantité
.topic 33007
Sélectionnez ici la variable contenant la quantité
.topic 33101
Sélectionnez ici l'arme à ajouter
.topic 33102
Définissez ici l'opération à effectuer
.topic 33103
Ajoute la quantité d'armes définie
.topic 33104
Retire la quantité d'armes définie
.topic 33105
Définissez ici la quantité d'armes
.topic 33106
Entrez ici la quantité
.topic 33107
Sélectionnez ici la variable contenant la quantité
.topic 33201
Sélectionnez ici l'armure à ajouter
.topic 33202
Définissez ici l'opération à effectuer
.topic 33203
Ajoute la quantité d'armures définie
.topic 33204
Retire la quantité d'armures définie
.topic 33205
Définissez ici la quantité d'armures
.topic 33206
Entrez ici la quantité
.topic 33207
Sélectionnez ici la variable contenant la quantité
.topic 33301
Sélectionnez ici le héros à ajouter ou retirer
.topic 33302
Définissez ici l'opération à effectuer
.topic 33303
Ajoute le héros dans l'équipe
.topic 33304
Retire le héros de l'équipe
.topic 33305
Cochez cette case pour que le héros démarre

au niveau spécifié dans la base de données.

Si cette case reste décochée, le héros ajouté

sera automatiquement au niveau moyen de l'équipe
.topic 33701
Définissez ici l'opération à effectuer
.topic 33702
Désactive la possibilité de sauvegarder
.topic 33703
Active la possibilité de sauvegarder
.topic 33801
Définissez ici l'opération à effectuer
.topic 33802
Désactive la possibilité d'accéder au menu principal
.topic 33803
Active la possibilité d'accéder au menu principal
.topic 33901
Définissez ici l'opération à effectuer
.topic 33902
Désactive les combats aléatoires
.topic 33903
Active les combats aléatoires
.topic 34001
Cliquez ici pour sélectionner la carte et

l'endroit de téléportation manuellement
.topic 34002
Double-cliquez ici pour sélectionner la carte et l'endroit de téléportation
.topic 34003
Cliquez ici pour que les valeurs contenues dans les variables

suivantes déterminent l'endroit de téléportation
.topic 34004
Cette variable doit contenir l'ID de la carte

(l'ID est visible dans les propriétés de la carte)
.topic 34005
Cette variable doit contenir la coordonnée X de téléportation,

par rapport à la carte
.topic 34006
Cette variable doit contenir la coordonnée Y de téléportation,

par rapport à la carte
.topic 34007
Sélectionez la direction du héros après la téléportation
.topic 34008
Sélectionnez si vous souhaitez ou non un fondu lors de

la téléportation
.topic 34101
Sélectionnez ici l'évènement à déplacer
.topic 34102
Cliquez ici pour sélectionner l'endroit

de téléportation manuellement
.topic 34103
Double-cliquez ici pour sélectionner l'endroit de téléportation
.topic 34104
Cliquez ici pour que les valeurs contenues dans les variables

suivantes déterminent l'endroit de téléportation
.topic 34105
Cette variable doit contenir la coordonnée X de téléportation,

par rapport à la carte
.topic 34106
Cette variable doit contenir la coordonnée Y de téléportation,

par rapport à la carte
.topic 34107
Cliquez ici pour que l'évènement sélectionné échange

sa position avec un autre évènement
.topic 34108
Sélectionnez ici l'évènement avec lequel vous

souhaitez échanger la position
.topic 34109
Sélectionez la direction de l'évènement après

le changement de position
.topic 34201
Sélectionnez la direction dans laquelle la carte doit défiler
.topic 34202
Sélectionnez de combien de carreaux (Tiles)

la carte doit défiler.

Largeur d'un écran : 20 carreaux

Hauteur d'un écran : 15 carreaux
.topic 34203
Sélectionnez ici la vitesse de défilement de la carte
.topic 34301
Sélectionnez ici le nouveau panorama de la carte
.topic 34302
Sélectionnez ici le nouveau brouillard de la carte
.topic 34303
Sélectionnez ici le nouvel arrière-plan de combat de la carte
.topic 34401
Dosez ici la valeur en Rouge de la teinte du brouillard
.topic 34402
Dosez ici la valeur en Vert de la teinte du brouillard
.topic 34403
Dosez ici la valeur en Bleu de la teinte du brouillard
.topic 34404
Dosez ici la saturation de la teinte du brouillard
.topic 34405
Aperçu de la teinte
.topic 34406
Définissez ici le temps de transition pour que le

brouillard prenne la teinte sélectionnée.

Une frame = 1/20 de seconde
.topic 34501
Entrez ici la nouvelle opacité du brouillard,

de 0 (totalement transparent) à 255 (opaque)
.topic 34502
Définissez ici le temps de transition pour que le

brouillard atteigne l'opacité sélectionnée.

Une frame = 1/20 de seconde
.topic 34601
Sélectionnez ici la cible de l'animation
.topic 34602
Sélectionnez ici l'animation à afficher
.topic 34701
Définissez ici si le héros doit apparaître transparent ou non
.topic 34702
Le héros apparaîtra transparent
.topic 34703
Le héros apparaîtra opaque
.topic 35201
Dosez ici la valeur en Rouge de la teinte de l'écran
.topic 35202
Dosez ici la valeur en Vert de la teinte de l'écran
.topic 35203
Dosez ici la valeur en Bleu de la teinte de l'écran
.topic 35204
Dosez ici la saturation de la teinte de l'écran
.topic 35205
Aperçu de la teinte
.topic 35206
Définissez ici le temps de transition pour que

l'écran prenne la teinte sélectionnée.

Une frame = 1/20 de seconde
.topic 35301
Dosez ici la valeur en Rouge de la couleur du flash
.topic 35302
Dosez ici la valeur en Vert de la couleur du flash
.topic 35303
Dosez ici la valeur en Bleu de la couleur du flash
.topic 35304
Dosez ici la saturation de la couleur du flash
.topic 35305
Aperçu de la couleur du flash
.topic 35306
Définissez ici la durée du flash.

Une frame = 1/20 de seconde
.topic 35401
Sélectionnez ici l'intensité du tremblement,

de 1 (très faible) à 10 (très fort)
.topic 35402
Sélectionnez ici la vitesse du tremblement,

de 1 (très lente) à 10 (très rapide)
.topic 35403
Définissez ici la durée du tremblement.

Une frame = 1/20 de seconde
.topic 35501
Entrez ici le numéro de l'image.

Le numéro d'une image est important car il est utilisé pour

les commandes qui manipulent les images, qui se servent de ce

numéro comme une référence à l'image
.topic 35502
Sélectionnez ici le fichier contenant l'image à afficher
.topic 35503
Définissez ici les coordonnées auxquelles sera affichée l'image
.topic 35504
Définissez ici à partir de quel pixel les coordonnées indiquées

doivent être calculées
.topic 35505
Les coordonnées seront calculées depuis le pixel

en haut à gauche de l'écran
.topic 35506
Les coordonnées seront calculées depuis le pixel

situé au centre de l'écran
.topic 35507
Cliquez ici pour entrer les coordonnées manuellement
.topic 35508
Entrez ici la coordonnée en X
.topic 35509
Entrez ici la coordonnée en Y
.topic 35510
Cliquez ici pour que les valeurs contenues

dans ces variables définissent les coordonnées
.topic 35511
Cette variable doit contenir la coordonnée en X
.topic 35512
Cette variable doit contenir la coordonnée en Y
.topic 35513
Définissez ici le coefficient d'agrandissement de l'image
.topic 35514
Entrez ici le coefficient d'agrandissement

de la longueur, de 0% à 2000%
.topic 35515
Entrez ici le coefficient d'agrandissement

de la hauteur, de 0% à 2000%
.topic 35516
Entrez ici l'opacité de l'image,

de 0 (totalement transparente) à 255 (opaque)
.topic 35517
Sélectionnez ici le type de transparence de l'image:

Normale : aucun changement

Eclaircie : Tout ce qui apparaît en transparence derrière l'image sera comme éclairé

Obscurcie : Tout ce qui apparaît en transparence derrière l'image sera comme obscurci
.topic 35601
Entrez ici le numéro de l'image à déplacer et/ou à modifier
.topic 35602
Définissez ici le durée de transition du déplacement et/ou de

la modification de l'image.

Une frame = 1/20 de seconde
.topic 35603
Définissez ici les nouvelles coordonnées de l'image
.topic 35604
Définissez ici à partir de quel pixel les nouvelles coordonnées

doivent être calculées
.topic 35605
Les nouvelles coordonnées seront calculées depuis le pixel

en haut à gauche de l'écran
.topic 35606
Les nouvelles coordonnées seront calculées depuis le pixel

situé au centre de l'écran
.topic 35607
Cliquez ici pour entrer les nouvelles coordonnées manuellement
.topic 35608
Entrez ici la nouvelle coordonnée en X
.topic 35609
Entrez ici la nouvelle coordonnée en Y
.topic 35610
Cliquez ici pour que les valeurs contenues

dans ces variables définissent les nouvelles coordonnées
.topic 35611
Cette variable doit contenir la nouvelle coordonnée en X
.topic 35612
Cette variable doit contenir la nouvelle coordonnée en Y
.topic 35613
Définissez ici le nouveau coefficient d'agrandissement de l'image
.topic 35614
Entrez ici le nouveau coefficient d'agrandissement

de la longueur, de 0% à 2000%
.topic 35615
Entrez ici le nouveau coefficient d'agrandissement

de la hauteur, de 0% à 2000%
.topic 35616
Entrez ici la nouvelle opacité de l'image,

de 0 (totalement transparente) à 255 (opaque)
.topic 35617
Sélectionnez ici le nouveau type de transparence de l'image:

Normale : aucun changement

Eclaircie : Tout ce qui apparaît en transparence derrière l'image sera comme éclairé

Obscurcie : Tout ce qui apparaît en transparence derrière l'image sera comme obscurci
.topic 35701
Entrez ici le numéro de l'image à faire tourner
.topic 35702
Entrez ici la vitesse de rotation de l'image
.topic 35801
Entrez ici le numéro de l'image à teinter
.topic 35810
Définissez ici le nouveau ton de l'image

et la durée de transition
.topic 35811
Dosez ici la valeur en Rouge de la teinte de l'image
.topic 35812
Dosez ici la valeur en Vert de la teinte de l'image
.topic 35813
Dosez ici la valeur en Bleu de la teinte de l'image
.topic 35814
Dosez ici la Saturation de la teinte de l'image
.topic 35815
Aperçu de la teinte
.topic 35816
Définissez ici la durée de transition de la teinte.

Une frame = 1/20 de seconde
.topic 35901
Entrez ici le numéro de l'image à effacer
.topic 36001
Sélectionnez ici l'effet météorologique à appliquer
.topic 36002
Aucun effet météorologique
.topic 36003
Effet de pluie
.topic 36004
Effet de tempête
.topic 36005
Effet de neige
.topic 36011
Sélectionnez l'intensité de l'effet,

de 1 (très faible) à 9 (très fort)
.topic 36012
Sélectionnez le durée de transition vers l'intensité sélectionnée.

Une frame = 1/20 de seconde
.topic 36201
Entrez le nombre de secondes que mettra

le fond musical pour disparaître
.topic 36401
Entrez le nombre de secondes que mettra

le fond sonore pour disparaître
.topic 37001
Sélectionnez le groupe de mosntres à combattre
.topic 37002
Cochez cette case pour que les héros puissent fuir le combat.

Laissez décoché pour que les héros ne puissent pas fuir

le combat (souvent nécessaire pour les combats contre un boss)
.topic 37003
Cochez cette case pour personnaliser les commandes

en cas de défaite ou de victoire
.topic 37101
Double-cliquez dans cette liste pour ajouter un objet à vendre
.topic 37201
Sélectionnez le héros dont le joueur pourra

entrer le nom
.topic 37202
Spécifiez le nombre maximum de lettres

pour le nouveau nom à entrer
.topic 37301
Sélectionnez ici la cible
.topic 37302
Définissez ici l'opération à effectuer
.topic 37303
Augmente les PV
.topic 37304
Réduit les PV
.topic 37305
Définissez ici le nombre de PV à

augmenter ou à retirer
.topic 37306
Entrez ici le nombre de PV
.topic 37307
Sélectionnez ici la variable contenant le nombre de PV
.topic 37308
Cochez cette case si vous souhaitez que la cible soit tuée

si ses PV atteignent 0 ou moins
.topic 37401
Sélectionnez ici la cible
.topic 37402
Définissez ici l'opération à effectuer
.topic 37403
Augmente les PM
.topic 37404
Réduit les PM
.topic 37405
Définissez ici le nombre de PM à

augmenter ou à retirer
.topic 37406
Entrez ici le nombre de PM
.topic 37407
Sélectionnez ici la variable contenant le nombre de PM
.topic 37501
Sélectionnez ici la cible
.topic 37502
Définissez ici l'opération à effectuer
.topic 37503
Inflige le statut
.topic 37504
Retire le statut
.topic 37505
Sélectionnez ici le statut à infliger ou à retirer
.topic 37601
Sélectionnez ici la cible
.topic 37701
Sélectionnez ici la cible
.topic 37702
Définissez ici l'opération à effectuer
.topic 37703
Ajoute des points d'expérience
.topic 37704
Retire des points d'expérience
.topic 37705
Définissez ici le nombre de points d'expérience à

ajouter ou à retirer
.topic 37706
Entrez ici le nombre de points d'expérience
.topic 37707
Sélectionnez ici la variable contenant le nombre

de points d'expérience
.topic 37801
Sélectionnez ici la cible
.topic 37802
Définissez ici l'opération à effectuer
.topic 37803
Ajoute des niveaux
.topic 37804
Retire des niveaux
.topic 37805
Définissez ici le nombre de niveaux à

ajouter ou à retirer
.topic 37806
Entrez ici le nombre de niveaux
.topic 37807
Sélectionnez ici la variable contenant

le nombre de niveaux
.topic 37901
Sélectionnez ici le héros dont il faut modifier

une caractéristique de base
.topic 37902
Sélectionnez ici la caractéristique de base à modifier
.topic 37903
Définissez ici l'opération à effectuer
.topic 37904
Augmente la caractéristique
.topic 37905
Diminue la caractéristique
.topic 37906
Définissez ici le nombre de points à

ajouter ou à retirer
.topic 37907
Entrez ici le nombre de points
.topic 37908
Sélectionnez ici la variable contenant

le nombre de points
.topic 38001
Sélectionnez ici le héros auquel il faut ajouter

ou retirer une compétence
.topic 38002
Définissez ici l'opération à effectuer
.topic 38003
Ajoute la compétence
.topic 38004
Retire la compétence
.topic 38005
Sélectionnez ici la compétence à

ajouter ou à retirer
.topic 38101
Sélectionnez ici le héros dont il

faut modifier l'équipement
.topic 38102
Définissez ici la partie de l'équipement à modifier
.topic 38103
Sélectionnez la nouvelle arme du héros sélectionné
.topic 38104
Sélectionnez le nouveau bouclier du héros sélectionné
.topic 38105
Sélectionnez le nouveau casque du héros sélectionné
.topic 38106
Sélectionnez la nouvelle armure du héros sélectionné
.topic 38107
Sélectionnez le nouvel accessoire du héros sélectionné
.topic 38201
Sélectionnez ici le héros dont il faut modifier le nom
.topic 38202
Entrez ici le nouveau nom du héros
.topic 38301
Sélectionnez ici le héros dont il faut modifier la classe
.topic 38302
Sélectionnez ici la nouvelle classe du héros
.topic 38401
Sélectionnez ici le héros dont il faut modifier l'apparence
.topic 38402
Sélectionnez ici le fichier contenant la nouvelle

apparence du héros sur la carte
.topic 38403
Sélectionnez ici le fichier contenant la nouvelle

apparence du héros en combat
.topic 38501
Sélectionnez ici la cible
.topic 38502
Définissez ici l'opération à effectuer
.topic 38503
Augmente les PV
.topic 38504
Réduit les PV
.topic 38505
Définissez ici le nombre de PV à

augmenter ou à retirer
.topic 38506
Entrez ici le nombre de PV
.topic 38507
Sélectionnez ici la variable contenant le nombre de PV
.topic 38508
Cochez cette case si vous souhaitez que la cible soit tuée

si ses PV atteignent 0 ou moins
.topic 38601
Sélectionnez ici la cible
.topic 38602
Définissez ici l'opération à effectuer
.topic 38603
Augmente les PM
.topic 38604
Réduit les PM
.topic 38605
Définissez ici le nombre de PM à

augmenter ou à retirer
.topic 38606
Entrez ici le nombre de PM
.topic 38607
Sélectionnez ici la variable contenant le nombre de PM
.topic 38701
Sélectionnez ici la cible
.topic 38702
Définissez ici l'opération à effectuer
.topic 38703
Inflige le statut sélectionné
.topic 38704
Retire le statut sélectionné
.topic 38705
Sélectionnez ici le statut à infliger ou à retirer
.topic 38801
Sélectionnez ici la cible
.topic 38901
Sélectionnez ici le monstre caché à faire apparaître
.topic 39001
Sélectionnez ici le monstre que vous

souhaitez transformer
.topic 39002
Sélectionnez ici en quoi vous souhaitez transformer

le monstre
.topic 39101
Définissez ici la cible de l'animation
.topic 39102
Sélectionnez ici la cible de l'animation

parmis les monstres
.topic 39103
Sélectionnez ici la cible de l'animation

parmis les héros
.topic 39104
Sélectionnez ici l'animation à afficher
.topic 39201
Définissez ici la cible des blessures
.topic 39202
Sélectionnez ici la cible des blessures

parmis les monstres
.topic 39203
Sélectionnez ici la cible des blessures

parmis les héros
.topic 39204
Définissez ici le montant des dégâts
.topic 39205
Entrez ici le montant des dégâts
.topic 39206
Sélectionnez ici la variable contenant

le montant des dégâts
.topic 39301
Définissez ici l'entité qu'il faut forcer à agir
.topic 39302
Sélectionnez ici l'entité parmis les monstres
.topic 39303
Sélectionnez ici l'entité parmis les héros
.topic 39304
Définissez ici l'action que l'entité sélectionnée

doit effectuer
.topic 39305
Sélectionnez ici une commande de base
.topic 39306
Sélectionnez ici une compétence
.topic 39307
Sélectionnez ici la cible de l'action à effectuer
.topic 39308
Définissez ici quand l'action doit s'exécuter
.topic 39309
Chouette© l'aide est bientôt totalement traduite! ^^
.topic 39310
L'action sera effectuée dès que cette commande sera exécutée
.topic 39901
Tapez ici un script en Ruby à insérer dans les commandes

de l'évènements.

Et vous savez quoi??? J'ai fini de traduire les info-bulles!!! :D