Night.png);">
Apprendre


Vous êtes
nouveau sur
Oniromancie?

Visite guidée
du site


Découvrir
RPG Maker

RM 95
RM 2000/2003
RM XP
RM VX/VX Ace
RM MV/MZ

Apprendre
RPG Maker

Tutoriels
Guides
Making-of

Dans le
Forum

Section Entraide

News: Le samedi, c'est best of des (...) / Sorties: Tous mes Visual Novels / Jeux: Le roi démon / Sorties: Mes Fanfictions en Visuals (...) / Concours: Samedi 26 à 21H, ouverture (...) / Chat

Bienvenue
visiteur !




publicité RPG Maker!

Statistiques

Liste des
membres


Contact

Mentions légales

156 connectés actuellement

27525958 visiteurs
depuis l'ouverture

1278 visiteurs
aujourd'hui



Barre de séparation

Partenaires

Indiexpo

Akademiya RPG Maker

Hellsoft

Planète Glutko

RPG Maker - La Communauté

Alex d'Or

Lumen

Lunae - le bazar d'Emz0

Tous nos partenaires

Devenir
partenaire



Le patch Maniacs ne mord pas ! Partie 3

Dernière partie, consacrée aux nouvelles commandes.

Ecrit par Soul le 20/06/2023


❤ 2

Le patch Maniacs ne mord pas !

Partie 3 : Nouvelles fonctionnalités


image







Note : Ce tutoriel est une traduction libre, c'est-à-dire que certains éléments ont pu être volontairement omis, et d'autres ajoutés maintenant ou par le futur selon les nouveautés du patch.

Bonne lecture !

image

Au moment de la publication de cette article, 200128 était la version la plus récente du patch Maniacs. Certaines fonctionnalités ont pu être modifiées et par conséquent, certaines parties du tutoriel peuvent ne pas être totalement exactes.


Après l'article précédent qui présentait une vue technique, cette fois nous allons nous concentrer sur les commandes qui n'existaient pas avant. Grâce à elles, vous pouvez atteindre un contrôle du jeu jamais atteint jusque là. Pour certaines d'entre elles, je vais apporter quelques conseils et astuces car elles se sont avérées moins évidentes d'utilisation.

Voici la liste des nouvelles commandes :
image

Get Save Info
imageimage

Cette commander permet d'obtenir toutes les informations visibles sur le menu de chargement des sauvegardes. Vous pouvez spécifier toutes les variables dans lesquelles ces informations seront stockées. La zone Picture for Face Graphic permet d'assigner des images dans lequelles les facesets seront affichés. Bien, mais alors pourquoi dans un événement cette commande affiche le faceset en haut à gauche de l'écran ???
image

Apparemment, la commande utilise automatiquement Show Picture à la position 0,0 de l'écran. Les images sur RPG Maker 2003 étant centrées, ceci explique cela. De plus les images à l'id plus élevé recouvre celles aux id inférieurs, d'où le fait que seul le faceset du dernier membre de l'équipe apparaisse. Pour éviter de montrer ces faces, vous devez appeler Show Picture avec quatre images transparentes (ou mettre leur transparence à 100%) d'id 1, 2, 3 et 4 avant d'utiliser Get Save Info. Ou afficher ces images avant à l'endroit où vous le souhaitez.

Save...
image

Une commande simple mais puissante qui force la sauvegarde du jeu dans un emplacement choisi. On peut en option stocker dans une variable si la sauvegarde a réussi (1) ou non (0).
Note : cette commande fonctionne que Change Save Access soit activé ou non. Cette commande est invisible pour le joueur, donc vous pouvez créer un système d'autosave avec, par exemple.

Load...
image
Tout aussi simple, cette commande permet de forcer le chargement d'une sauvegarde. Elle est plutôt visible en jeu car l'écran disparaît pour un moment. Si la sauvegarde choisie n'existe pas, la commande est ignorée, à moins que l'option Disable file check soit cochée, et dans ce cas attendez vous à voir quelques comportements étranges. Mais pourquoi feriez-vous cela ? Que je sache, cela saute certaines vérifications de systèmes pour exécuter la commande plus vite, mais c'est bien plus sûr de ne pas cocher cette case.

End Load Process
Ne fait rien pour le moment...

Get Mouse Position
image

Cette commande permet de simplement sauvegarder la position de la souris dans deux variables, ce qui donne un moyen très facile de créer un curseur ou même un vrai jeu en point&click.

Set Mouse Position
image
Là aussi, pas grand-chose de plus à dire. La position de la souris est déterminée à partir du coin supérieur gauche de l'écran, ce qui donne que pour avoir la souris au centre ce sera toujours 160 (x) et 120 (y)

Show String Picture
image
Un cadeau des dieux pour tous ceux qui souhaitent faire un menu custom. Si vous avez tenté d'en faire un sans le patch, vous connaissez la souffrance d'en créer avec la gestion de dizaines, voir centaines d'images à dessiner pour chaque case individuelle. Grâce à cette merveilleuse commande, ce n'est plus nécessaire : toutes les images sont générées automatiquement, vous devez juste inscrire le texte. Avec un peu de détermination, même un système de message custom à bulles au-dessus des personnages devient possible.

image
image
image
image

Get Picture Info
image
Comme le nom le suggère, sauvegarde l'info souhaitée d'une image dans une variable.

Control Battle
(A cause de la documentation inégale et des bizarreries de RM2003, utiliser cette fonctionnalité peut infliger des dommages mentaux irréversibles. Vous êtes prévenu !)
image

Cette commande altère la fluidité du combat quand utilisé. Il est recommandé de l'utiliser dans un événement commun à enclencher dans le nouveau Begin Battle.

image
Il y a cinq options possibles :

*** ATB Increment : l'événement commun sélectionné sera enclenché quand la gauge ATB d'un héros change. Informations qu'il est est possible d'obtenir :
- Unit Type (si l'entité est un ennemi ou un allié ;0 pour un héros, 1 pour un enemy)
- Unit Index (l'index de l'entité alliée ou ennemie ; en partant de 0)
- Current Gauge (valeur actuelle de la gauge ATB)
- Gauge Increase (de combien la gauge ATB a augmenté).

*** Damage Pop : événement enclenché quand des dommages sont pris par un allié ou une ennemi.
Comprend :
- Unit Type (idem qu'au-dessus)
- Unit Index (index de l'ennemi/héros blessé => attention de toujours soustraire 1 au résultat car cette valeur part de 0 et pas de 1 comme dans Troops)
image
- X, Y (les coordonnées où sont montrées les dégâts)
- Value Type (0 : attaques normales, magiques, sorts et coups critiques, 2 : attaques esquivées, 1 : inconnu)
- Value (valeur des dégâts).

*** Targetting : enclenché quand un objet est pris pour cible. Les possibilités ne seront pas toutes détaillées car trop nombreuses.
User Type et User Index renvoient à l'acteur de l'action, de même que Target Type et Target renvoient au récepteur de l'action. Action Type détermine le type de l'action (0 pour les actions basiques, 1 pour les sorts). Action Index détermine l'index du sort pour Action Type 1, et pour les actions basiques voici ce qui a pu être déduit :
- Action Index 0 : attaque normale
- Action Index 1 : double attaque
- Action Index 2 : défense
Etrangement, User Type et Target fonctionnent différemment pour cette option, c'est à dire que que 0 ne renvoie pas aux héros et 1 aux ennemis.

*** Set State : s'active quand le statut d'un héros ou d'un ennemi change. User Index et User Type font seulement référence à la cible et pas à l'unité qui a causé l'état dans ce cas. Autre chose étrange, State ID renvoie toujours à 1 (statut de mort) au lieu de renvoyer à l'id de l'état infligé.

*** MP/ATK/DEF/MND/AGI Changed : Fonctionne de manière similaire à Damage Pop, la seule différence étant qu'il s'enclenche lors d'un changement de MP ou stat au lieu des HP.

Change Battle Command Ex

image
Cette commande permet d'activer/désactiver des options spécifiques en combat. Elle ne fonctionne que pendant un combat, donc l'appeler depuis une map ne sert à rien.

image
La commande instantanée Win/Lose peut être pratique lors des tests.

Get Battle Info

image
Cette commande renvoie une array de données pour le type sélectionné lors d'un combat. Cela inclut des paramètres comme :
- des buffs/debuffs
- tous les statuts qu'un personnage a (0 ou 1 pour chaque stat de la base de données)
- les résistances aux types
- position X/Y du personnage par rapport à l'écran
- si le personnage se défend
- si le personnage peut agir
Et ainsi de suite.

Control Var Array
Pour bien utiliser cette commande, vous devez d'abord savoir ce qu'est une array dans RPG Maker :
image

Pour faire simple, une array est une rangée de variables voisines. Dans l'exemple ci-dessus, il y a une array de taille 10 indexée de 101 à 110. Les array sont très utiles quand vous souhaitez créer un ensemble de variables ayant le même type d'information. Par exemple, vous avez 10 ennemis sur la carte et l'array stockerait 10 variables pour leurs PV.
image

Utiliser Control Var Array signifie que l'opération est effectuée sur l'ensemble de l'array (ici, Copy signifie que le contenu est copié d'une array à une autre). Target 1 étant la variable de départ de l'array n°1, et de la même manière Target 2 la variable où débute la deuxième array. Size désigne simplement la taille des deux array.

image
Dans cet exemple, l'array n°1 est remplie avec des valeurs aléatoires et ces valeurs sont ensuites copiées sur l'array n°2, ce qui donnerait ceci en jeu :
image

En plus des opérations standarts, on peut aussi utiliser :
- Shuffle : mélange l'ordre des valeurs dans l'array. Peut être utile par exemple pour mélanger un deck dans un jeu de cartes.
- Enumeration : remplit l'array avec des nombres consécutifs en suivant une règle.
- Sort (Ascending/Descending) : trie les valeurs d'une array du plus petit au plus grand (ascending) ou vice versa.
- Swap : échange les valeurs entre les deux array

Key Input Processing EX

image
La fonction de base de Key Input Processing est d'attribuer le code d'une touche à une variable. Cette commande est cependant étendue à 50 valeurs, dont un bien pratique check en cas de touche pressée ou non (0 : non pressée ; 1 : pressée). Très utile pour vérifier l'appui de plusieurs touches simultané. C'est une bonne idée de nommer les 50 variables avec le code correspondant pour ne pas avoir à se reporter à cette fenêtre constamment. Pour utiliser Key Input Processing EX, vous avez juste besoin de donner la variable de départ de l'array où tous vos codes de touches vont être stockés. Comme vous pouvez le voir, cette commande prend également en charge les boutons de Joypad.

Rewrite Map

image
Vous avez déjà souhaité changer des éléments de la map en jeu ? Maintenant, vous pouvez ! Un simple appel de cette commande peut modifier seulement une couche de la map (dessus ou dessous). Les tiles montrés à droite sont numérotés selon un id unique. Tile Type spécifie les tiles à modifier. Single signignifie que la zone entière indiquée dans Position sera remplie avec un seul type de tile. Le tile peut être spécifié manuellement ou par une variable.

image
Range pointe vers une array de variables et chaque variable successble à l'intérieur pointe vers un type de tile.

image
Voici un exemple pour Range dans la première variable et position X=5, Y=5, W=2, H=2.
Le carré de 2x2 sera rempli avec les valeurs de l'array. Le coin haut gauche du carré sera rempli avec un tile dont l'id est stocké dans la variable n°1 de l'array ; le coin haut droit avec la variable n°2 ; le coin bas gauche avec la variable n°3 ; et le coin bas droit avec la variable n°4.
Un autre exemple : si on avait changé les valeurs à W=3 et H=2, on aurait eu besoin de 6 variables.

X et Y pointent dans le coin au gauche de l'aire. Il existe également une option pour désactiver les autotiles sur la partie redéssinée.

Change Picture ID

image
Habituellement, quand vous vouliez inverser l'ordre d'apparition des images (en gros, quelle image recouvrait laquelle), vous deviez utiliser deux fois la commande Show Picture pour changer les id. Mais maintenant cette commande existe, avec trois manières de procéder.

Move change simplement l'id d'une image de la cible 1 à la cible 2. Si une image existe pour la cible 2, elle est effacée et ses propriétés réécrites.
Swap échange les id de la cible 1 et 2, sans perdre de données.
Slide déplace l'id d'une image de manière positive (up) ou négative (down) et les images à travers lesquelles elle se déplace auront leur id modifié dans la position inverse par la valeur de Size. Dans le champ Size, on peut spécifier une valeur supérieure à 1, ce qui fait que ces opérations seront exécutées sur une array d'images.

Par exemple, utilisons Move avec ces paramètres :
Target 1 : 1
Target 2 : 3
Size : 2
L'image 1 aura son id déplacé à la troisième position, et l'image 2 vers la quatrième position. On peut se demander ce qu'il se passerait si Size est plus large que la différence entre la cible 1 et 2. Modifions notre exemple : supposons qu'on a un scénario similaire mais que Size soit à 3. La commande prendra trois images, c'est-à-dire les cibles 1, 1+1 et 1+2, et les déplacer vers les cibles 2, 2+1 et 2+2. Donc pas d'inquiétude sur son fonctionnement, il le fait une seule fois. S'il le faisait plusieurs fois, des choses bizarres arriveraient, comme déplacer la cible 1 à 2 qui changerait cible 2 vers cible 2+2.

La dernière option, Ignore out of range error, est utile si vous assignez accidentellement un nombre négatif à une image (ce qui fait crasher le jeu). Cette commande permet d'ignorer cette erreur en faisant disparaître les id d'images hors de portée.

Gardez à l'esprit que cette commande inverse seulement les numéro d'id et pas les images elles-mêmes. Toutes les autres informations retenues pour une image (position, transparence) sont retenues.

Set Game Option

image
Cette fenêtre permet de configurer des comportement spécifique du logiciel.
Behavior When Inactive détermine comment le jeu se comporte quand la fenêtre de jeu est inactive. Si elle est mise sur Wait, le jeu se bloque, et si elles est sur Active, le jeu continue de tourner. Cette option peut être utilisée comme une sorte d'anti triche, notamment pour les puzzles avec chronomètres.

Fatal Mix donne une limite de FPS au jeu. Vous pouvez également laisser au joueur la possibilité de passer les messages rapidement avec la touche Shift, comme en mode Test.

Maximum number of pictures change le nombre par défaut d'images affichables (1000).

Frame Skip permet d'attribuer un pourcentage de frames que le jeu devrait sauter.

Control Global Save

Il s'agit sans doute d'une des options les plus intéressantes du patch Maniacs. Elle permet de sauvegarde n'importe quel(le)s variables/interrupteurs dans un fichier et d'y accéder indépendemment du fait que le jeu ait été chargé par une sauvegarde ou nouveau jeu. Toutes ces données globales sont sauvegardées dans Save.lsd, donc si l'utilisateur décidait de le supprimer, des choses étranges pourraient apparaître. Il existe des moyens de vérifier l'existence du fichier, par exemple : avant la sortie du jeu, écrivez une variable arbitraire, enregistrez-la dans la sauvegarde générale et tentez de la lire au démarrage du jeu. Si la valeur vaut 0, le fichier aura probablement été supprimée ou modifiée.

Un exemple d'utilisation de cette fonction pourrait être un système d'achievement indépendant des sauvegardes locales. Certains développeurs pourraient même y voir un moyen de complètement se passer du système de sauvegarde habituel.

image

La commande comprend six opérations :
Open : ouvre Save.lsd.
Close : ferme Save.lsd. Cela ne supprime pas le fichier, mais retire seulement son accès par le programme. Si le fichier était lu en permanence, il finirait vraisemblablement par être corrompu.
Save : sauvegarde l'état du fichier.
Save Then Close : Fait Save puis Close.
Copy From Global Save : copie l'interrupteur/la variable/le groupe d'interrupteurs ou variables vers le jeu en cours.
Copy To Global Save : réécrit l'interrupteur/la variable/le groupe d'interrupteurs ou variables dans Save.lsd.

Type spécifie si les opérations sont faites sur les variables ou les interrupteurs.
Current Save Data indique l'interrupteur ou la variable que vous souhaitez lire/écrire.
Global Save Data indique l'emplacement dans lequel est sauvegardé Save.lsd. Chaque emplacement comprend une variable ou un interrupteur.
Size permet de gérer en une opération le changement d'un groupe de variables/interrupteurs. La logique est la même que pour Change Picture ID.

Cela étant dit, voici un exemple où l'on sauvegarde 2 variables et où on en lit deux autres.
image
Cet événement sauvegarde globalement deux variables, la 15 et la 16, que l'on paramètre à 5 et 8 respectivement.
Ensuite, on ouvre Control Global Save et on fait Open.
On réouvre la commande, cette fois avec Copy To Global Save, et on utilise la même configuration que la première image de démonstration. Enfin, on réutilise encore la commande, mais cette fois avec Save and Close.

image
Cette fois, on va lire deux variables.
On appelle Control Global Save avec Open. Ensuite, on l'ouvre avec Copy from Global Save, comme montré ci-dessous :
image

Cette fois, il n'y a pas besoin d'appeler Save then Close puisqu'aucune variable de la sauvegarde globale n'a été modifiée. On peut donc simplement choisir Close.

Maintenant, vous pouvez redémarrer votre jeu et vérifier en mode test avec F9 les valeurs des variables 15 et 16.


Conclusion

Voici pour les fonctions les plus importantes du patch Maniacs. Maintenant il ne vous reste plus qu'à les utiliser de manière créative !


image

Cet article a été traduit et publié avec l'autorisation de Michu, qui a traduit l'article du polonais en anglais.
Source : Soul, "Maniacs Patch Won't Bite You # 2 - New Control Variables", in RMteka, 3 juin 2022 [consulté le 10 mai 2023], https://www.rmteka.pl/maniacs-patch-wont-bite-you-3-new-features/.



Picot - posté le 21/06/2023 à 12:10:33 (550 messages postés) -

❤ 0

C'est pas moi, j'ai un alibi !

Bravo pour tout ce travail :)

Recueil de créations variées | RMXP : Quadrilogie "Le Tueur" | FPS : "Mr The Killer"


herringbur - posté le 25/07/2023 à 10:04:19 (2 messages postés)

❤ 0

Félicitations pour vos efforts.

Suite à de nombreux abus, le post en invités a été désactivé. Veuillez vous inscrire si vous souhaitez participer à la conversation.

Haut de page

Merci de ne pas reproduire le contenu de ce site sans autorisation.
Contacter l'équipe - Mentions légales

Plan du site

Communauté: Accueil | Forum | Chat | Commentaires | News | Flash-news | Screen de la semaine | Sorties | Tests | Gaming-Live | Interviews | Galerie | OST | Blogs | Recherche
Apprendre: Visite guidée | RPG Maker 95 | RPG Maker 2003 | RPG Maker XP | RPG Maker VX | RPG Maker MV | Tutoriels | Guides | Making-of
Télécharger: Programmes | Scripts/Plugins | Ressources graphiques / sonores | Packs de ressources | Midis | Eléments séparés | Sprites
Jeux: Au hasard | Notre sélection | Sélection des membres | Tous les jeux | Jeux complets | Le cimetière | RPG Maker 95 | RPG Maker 2000 | RPG Maker 2003 | RPG Maker XP | RPG Maker VX | RPG Maker VX Ace | RPG Maker MV | Autres | Proposer
Ressources RPG Maker 2000/2003: Chipsets | Charsets | Panoramas | Backdrops | Facesets | Battle anims | Battle charsets | Monstres | Systems | Templates
Ressources RPG Maker XP: Tilesets | Autotiles | Characters | Battlers | Window skins | Icônes | Transitions | Fogs | Templates
Ressources RPG Maker VX: Tilesets | Charsets | Facesets | Systèmes
Ressources RPG Maker MV: Tilesets | Characters | Faces | Systèmes | Title | Battlebacks | Animations | SV/Ennemis
Archives: Palmarès | L'Annuaire | Livre d'or | Le Wiki | Divers