Explication du patch 'Custom Save Load' de Cherry permettant la création d'un Custom System Save, avec possibilité d'afficher plus d'informations que celles de base.
Voici un petit tutoriel qui vous expliquera comment créer un menu de sauvegarde full-custom pour votre projet RM03, avec la possibilité de fournir plus d’informations concernant les parties sauvegardées que ce que propose déjà le patch, comme par exemple le temps de jeu ou encore le statut complet d’un personnage.
Note : Si vous ne connaissez rien au fonctionnement des variables dans RM, je vous conseille de vous y initier via les tutoriaux d’Oniromancie, sinon vous risquez d’être un peu perdu.
I) Installation du patch :
Pour commencer, téléchargez le patch « Bettereap » de Cherry disponible sur le site, et installez-le. Si vous ignorez son fonctionnement, je vous invite à consulter le lisez-moi associé au patch.
Téléchargez ensuite le patch « Custom Save Load » du même auteur, ainsi que « Lunar IPS ».
1) Ouvrez Lunar IPS.
2) Cliquez sur « Apply IPS ».
3) Sélectionnez « RPG_RT_CustomSaveLoadPatch.ips » et cliquez sur « Open ».
4) Sélectionnez ensuite « All Files » dans les types de fichiers, cherchez votre projet et sélectionnez votre « RPG_RT.exe », puis cliquez enfin sur « Open ».
Votre jeu est patché ! Ceci dit, je vous conseille d’en faire une copie avant au cas où vous changeriez d’avis…
II) Utilisation du patch « Custom Save Load » :
Après installation du patch, des variables de votre projet ont été sélectionnées pour servir à diverses fonctions.
C’est très simple. Il suffit de donner une valeur à la variable 3351, et d’utiliser la fonction “Ouvrir menu de sauvegarde” de RM.
Exemple :
< > Variable : [3351 : Slots] = 10
< > Ouvrir menu de sauvegarde
La partie jouée en cours sera mémorisée en 10 dans la variable 3351.
2) Charger une partie :
Simple également. Donnez une valeur à la variable 3351, donnez la valeur 1 à la variable 3350, puis utilisez la fonction « Stopper cet évènement » de RM :
Cette manipulation fera charger la partie mémorisée en 10 dans la variable 3351. Si vous donnez une valeur qui n’est pas associée à une partie mémorisée, rien ne se passera.
3) Informations relatives aux parties mémorisées :
Là, ça se corse un peu, mais rien d’insurmontable !
Jetez d’abord un œil sur la manipulation suivante :
Exemple :
< > Variable : [3352 : Infos Slot] = 10
< > Si variable [3352 : Infos Slot] = 1
< > Message :
La sauvegarde 10 existe.
Niveau du héros : \v[3353]
HP du héros : \v[3354]
Nom du héros : \n[99]
Normalement, vous devez vous dire que quelque chose cloque, et vous avez raison ^^ Dans ce cas de figure (et uniquement pour cette variable !), la condition « < > Si variable [3352 : Infos Slot] = 1 » est une manipulation liée au patch pour aller chercher les informations mémorisées à l’intérieur de la variable 3352.
La valeur que vous lui donnez avant cette condition correspond à la valeur de la partie mémorisée dont vous souhaitez avoir les informations. Si la valeur attribuée ne correspond à aucune partie mémorisée, la condition indique qu’il n’y a pas d’informations stockées.
En gros, lorsque vous sauvegardez grâce à la variable 3351, la variable 3352 stocke automatiquement le niveau (en \v[3353]) du profil d’un héros de la database de RM, ses HP (\v[3354]), ainsi que son nom.
Voilà qui est déjà bien sympa, mais si comme moi vous n’utilisez rien de la database, ou que vous voulez afficher autre chose, il existe une solution !
III) La méthode « Elion »
Après avoir fait chauffer mon petit cerveau de maker torturé, j’ai trouvé comment faire.
L’astuce réside à se servir de la variable 3354, à savoir les HP d’un profil de héros présent dans la database de RM. On pourrait utiliser la variable 3353 (niveau d’un héros), mais c’est moins intéressant car les niveaux max. sont de 99, alors que les HP max. peuvent aller jusqu’à 9999.
1) Principe :
Il s’agit d’associer les HP d’un héros de la database à la variable que vous souhaitez mémoriser, et ensuite de la stocker dans la variable 3351. De ce fait, la valeur de la variable 3354 (HP du héros) deviendra une info spécifique à la partie sauvegardée.
Important : Chaque variable doit être mémorisée dans un slot différent de la variable 3351 ! Sinon, vous écrasez à chaque fois l’information automatiquement stockée dans la variable 3352.
Il vous suffira ensuite de faire appel aux informations de chaque slot.
Ce n’est pas clair, hein ? Voici un petit schéma pour éclairer votre lanterne :
Exemple :
Dans cet exemple, pour sauvegarder une partie, vous utiliserez 5 slots, chaque slot contenant une valeur de variable spécifique à ladite partie. Vous pouvez évidement utiliser autant de slot que vous voulez, selon le nombre de variables que vous voulez mémoriser.
Note : Dans ce cas de figure, pour charger la partie, vous pourrez faire appel à n’importe quel des 5 slots.
Pour résumer, voici comment ça fonctionne :
a) On donne aux HP la valeur d’une variable
b) On sauvegarde dans un slot
c) On répète les opérations a et b selon le nombre de variables à mémoriser
d) Puis on récupèrera les infos (stockées en \v[3354]) via la variable 3352 en utilisant la manipulation du patch de Cherry
2) Mémoriser les variables dans les HP d’un profil de héros :
Comme il est impossible de faire « HP héros = Variable X » via les fonctions de RM, il faut faire une petite manipulation un peu fastidieuse, mais qui fonctionne.
Choisissez un profil vide dans la liste de héros de votre database que vous appellerez « ID Slots » et montez ses HP à 9999, et ce à tous les niveaux. Cela nous permettra de jouer avec les HP comme bon nous semble, et ce sans se soucier des niveaux.
Si vous préférez, vous pouvez également créer plusieurs profils dans la database. Par exemple, profil 1 = HP héros, profil 2 = MP héros, profil 3 = Statut du héros, etc. Moi je n’en utilise qu’un parce-que… ben parce-que c’est ma façon de maker ^^
Bien ! Disons que je veux mémoriser le lieu visité (chaque valeur de la variable représentant un lieu où se trouve le joueur) :
< > Modifier HP : ID Slots : 9999 en moins
On descend les HP à 0, le hic, c’est que RM ne les descend que jusqu’à 1… Mais on va y remédier plus tard. < > Modifier HP : ID Slots : + Variable [Lieu Visité]
Les HP sont donc égaux à la variable [Lieu Visité] + 1 < > Modifier HP : ID Slots : - 1
On enlève 1 pour rectifier le fait que RM ne met pas les HP à 0, mais à 1.
Et voila ! Les HP présent dans le profil ID Slots ont désormais la valeur de la variable [Lieu Visité] !
Sauvegardez ensuite la partie dans le slot que vous souhaitez via la variable 3351 en suivant les consignes évoquées plus haut.
Il ne vous reste plus qu’à répéter cette opération en changeant la variable à mémoriser ainsi que le slot, et -si vous avez opté pour plusieurs profils de héros- en changeant également le profil.
Astuce : Sachez qu’il est possible de stocker plusieurs valeurs de variables au sein des HP afin d’économiser des slots.
Exemple :
Les milliers et centaines des HP représentent la valeur de la variable A, soit 34
Les dizaines et unités des HP représentent la valeur de la variable B, soit 97
Pour arriver à faire ceci, et pour ensuite récupérer les valeurs séparément, je vous laisse vous amuser avec les variables ^^ Ce sera le sujet d’un autre tutoriel
3) Récupérer les informations :
C’est tout simple, il vous suffit d’utiliser la manip’ de Cherry évoquée plus haut et de récupérer une à une les valeurs des variables stockées dans les slots.
Exemple (en rapport avec l’exemple de partie plus haut) :
< > Variable : [3352 : Infos Slot] = 1
< > Si variable [3352 : Infos Slot] = 1
< >\v[3354] = Nom de la partie
Benku -
posté le 04/01/2012 à 17:17:22 (2843 messages postés)
❤ 0
Benku, le prince des ténèbres !
Ah oui moi aussi je vais un save custom en ce moment, je vois que c'est possible =)
Comme tout ceux qui vivent des heures si sombres mais ce n'est pas à eux de décider, tout ce que vous avez à décider, c'est quoi faire du temps qui vous est imparti.
kilam1110 -
posté le 04/01/2012 à 20:02:31 (9159 messages postés)
klimero -
posté le 06/01/2012 à 23:25:20 (5372 messages postés)
❤ 0
Ouais, cimer pour le tuto, très utile
Some pirates achieved immortality by great deeds of cruelty or derring-do. Some achieved immortality by amassing great wealth. But the captain had long ago decided that he would, on the whole, prefer to achieve immortality by not dying.
Elion -
posté le 07/01/2012 à 12:32:24 (192 messages postés)
❤ 0
De rien !
Et remercions également Cherry pour ses excellents patchs qui nous permettent de faire des jeux vraiment personnalisés