Bienvenue visiteur !
|
Statistiques
Liste des membres
Contact
Mentions légales
302 connectés actuellement
30729805 visiteurs depuis l'ouverture
3422 visiteurs aujourd'hui
Partenaires
Tous nos partenaires
Devenir partenaire
|
CanardPruneau -
posté le 18/09/2023 à 15:43:35 (29 messages postés)
| | Domaine concerné: Menu
Logiciel utilisé: RM MV
Bonjour à tous.
J'aimerai ajouter un nouvel onglet dans le menu du jeu, cet onglet s'appellera Arbre d'aptitudes, je voudrais l'insérer entre compétences et équipement.En ouvrant cet onglet, le personnage serai téléporté sur une map qui représente un arbre d'aptitudes qui permettrai au joueurs de débloquer de nouveaux sorts, classes ou aptitudes.
J'ignore si c'est faisable, j'ai rien trouvé dessus pour l'instant en faisant des recherches, et si possible j'aimerai pouvoir le faire sans recourir à un plugin, merci.
|
| Chanter l'hyperchleuasme | C'est forcément un plugin, parce qu'il faut trifouiller le javascript pour modifier le menu. Et si tu ne trouves pas de plugin d'arbre de compétences satisfaisant, tu devras sûrement le faire toi-même
Un mec appelé Felski a fait un plugin d'arbre de compétences :
https://forums.rpgmakerweb.com/index.php?threads/felskis-skilltree-plugin.100473/
Il y a aussi un mec appelé SomeFire qui a faire un plugin :
https://github.com/SomeFire/RPG-Maker-MV-Skill-Trees-System
|
Es-tu une star ? | Kujira no Hara | Muma|Rope | Polaris 03 | La 7e porte |
CanardPruneau -
posté le 18/09/2023 à 15:52:25 (29 messages postés)
| | Je compte créer une map avec le personnage qui se déplace vers les aptitudes que le joueur veut débloquer.
Mais je souhaite que le joueur puisse accéder en permanence à cet arbre d'aptitudes au cours du jeu.
|
| Chanter l'hyperchleuasme | Alors tu peux accéder à l'arbre de compétences via :
- un objet de ton inventaire, dont l'effet est de te téléporter sur la fameuse map.
- un évènement récurrent dans le jeu, genre, une plaque d'égouts, que tu copies-colles partout
Pourquoi veux-tu absolument une map où le héros se promène, alors qu'un menu fait très bien l'affaire ? C'est sain de se poser la question. Il ne faut pas rester coincé dans une projection mentale sans raisons solides derrière. "Je veux absolument ça parce que je l'ai imaginé comme ça", c'est un état d'esprit dangereux. Il faut identifier le besoin et le dégraisser de tout ce qui est superflu. Sacrifier tout le superflu au nom de l'ergonomie, et surtout de ce qui est réellement possible.
|
Es-tu une star ? | Kujira no Hara | Muma|Rope | Polaris 03 | La 7e porte |
CanardPruneau -
posté le 18/09/2023 à 16:17:51 (29 messages postés)
| | Alors déjà si je veux créer mon propre arbre, c'est juste que j'ai pas envie de passer du temps à comprendre le fonctionnement d'un plugin alors que je maîtrise parfaitement le mapping sur RPG maker et puis je peux plus facilement modifier l'apparence de mon arbre de cette manière.Alors que modifier le menu, ça pourra me servir plus tard si je veux rajouter des nouvelles fonctionnalités à mon jeu, je trouve ça plus simple de tout regrouper dans le menu, ça évite au joueur de fouiller son inventaire et de chercher le bon objet qui va lui permettre d’accéder à tel menu.
|
| Chanter l'hyperchleuasme | Citation: j'ai pas envie de passer du temps à comprendre le fonctionnement d'un plugin alors que je maîtrise parfaitement le mapping sur RPG maker et puis je peux plus facilement modifier l'apparence de mon arbre de cette manière. |
Je comprends cet état d'esprit. Souvent on hésite entre faire soi-même et passer du temps à comprendre comme un plugin fonctionne, lire sa documentation, c'est fastidieux, souvent en plus elle est incomplète, mal expliquée, il faut expérimenter avec le plugin...
Mais tout vouloir refaire soi-même en jeu-vidéo (voire en informatique plus généralement) c'est considéré comme mal, dans la mesure où tu vas refaire en moins un bien un truc qui existe déjà. Ça s'appelle "réinventer la roue", et certains parodient même le truc en "réinventer la roue carrée". La bonne façon de faire, c'est la voie pénible : lire les documentations nulles du plugin. La paresse de lire les documentations d'un outil existant, c'est un vice qu'il faut combattre. Je ne dis pas que c'est facile.
Cela dit, je pense que ce que tu demandes n''est pas très difficile. Si ta question avait été pour RPG Maker XP, je t'aurais répondu immédiatement quelle ligne de quel script modifier. Je n'ai pas RPG Maker MV, et je n'ai pas son code javascript, donc je ne peux pas t'aider. Il faudrait vraiment que je mette la main sur le code javascript de MV parce qu'on a de plus en plus de question là-dessus...
Bref sache que ça n'est pas forcément difficile. Il suffit de trouver là où les choix du menu principal sont listés (à coups de CTRL+F ça va vite), et ajouter la commande de téléportation (dont tu peux copier le code depuis l'interpréteur = transcription en javascript de toutes les commandes évènementielles). Il ne faudra pas oublier de mémoriser la position actuelle du héros (x, y, map) dans des variables pour le renvoyer là-bas quand il quittera l'arbre de compétences.
Je t'encourage vraiment à te plonger dans le code javascript si tu es quelqu'un qui as souvent envie de personnaliser les systèmes de base du logiciel pour aller au delà. En bidouillant, petit à petit, tu seras de plus en plus à l'aise avec le javascript de RPG Maker MV. Jusqu'à faire tes propres plugins un jour.
|
Es-tu une star ? | Kujira no Hara | Muma|Rope | Polaris 03 | La 7e porte |
| Chanter l'hyperchleuasme | J'ai trouvé ça, je ne sais pas si c'est exactement le code officiel de RPG Maker MV, mais ça y ressemble
https://github.com/bsides/rpgmakermv-modernjs/blob/master/js/rpg_scenes.js
à la ligne 982 on peut voir la liste des éléments du menu :
1
2
3
4
5
6
7
8
9
10
11
12
13
| Scene_Menu.prototype.createCommandWindow = function() {
this._commandWindow = new Window_MenuCommand(0, 0);
this._commandWindow.setHandler('item', this.commandItem.bind(this));
this._commandWindow.setHandler('skill', this.commandPersonal.bind(this));
this._commandWindow.setHandler('equip', this.commandPersonal.bind(this));
this._commandWindow.setHandler('status', this.commandPersonal.bind(this));
this._commandWindow.setHandler('formation', this.commandFormation.bind(this));
this._commandWindow.setHandler('options', this.commandOptions.bind(this));
this._commandWindow.setHandler('save', this.commandSave.bind(this));
this._commandWindow.setHandler('gameEnd', this.commandGameEnd.bind(this));
this._commandWindow.setHandler('cancel', this.popScene.bind(this));
this.addWindow(this._commandWindow);
}; |
Typiquement, c'est là où tu dois rajouter ta commande.
1
| this._commandWindow.setHandler('skilltree', this.commandPersonal.bind(this)); |
C'est bien un commandPersonnal qu'il faut, puisque le skillTree dépend du héros sélectionné.
Puis tu remarques que 'skill' est utilisé ailleurs :
1
2
3
4
5
6
7
8
9
10
11
12
13
| Scene_Menu.prototype.onPersonalOk = function() {
switch (this._commandWindow.currentSymbol()) {
case 'skill':
SceneManager.push(Scene_Skill);
break;
case 'equip':
SceneManager.push(Scene_Equip);
break;
case 'status':
SceneManager.push(Scene_Status);
break;
}
}; |
Typiquement ici il faudra rajouter un "case 'skilltree':" mais au lieu d'avoir un SceneManager.push(Scene_SkillTree); comme les autres, il faudra mettre la téléportation ici, puisque tu as dit ne pas vouloir d'un menu mais d'une map.
D'après ce forum ( https://forums.rpgmakerweb.com/index.php?threads/transfer-to-different-map-from-main-menu.131228/ ) tu peux téléporter le héros sur une map depuis le menu avec l'astuce suivante :
1
2
3
| $gameTemp.reserveCommonEvent(42);
SceneManager.goto(Scene_Map);
break; |
L'astuce est d'opérer le transfert dans l'évènement commun n°42.
C'est ça qu'il faudra mettre dans ton "case 'skilltree':".
Un détail important, c'est quel héros a été sélectionné pour l'arbre de compétences. Il te faudra préparer cette information dans une variable n°112 pour pouvoir la manipuler sur ta map ou dans ton évènement commun. Naïvement je ferais comme ça, mais je ne sais pas si c'est la syntaxe :
1
| $gameVariables.setValue(112, this.actor().actorId() ); |
À mettre dans le "case" aussi.
Je crois qu'on a là le strict minimum pour faire ton truc, les briques de base.
Dans ton évènement commun n°42, tu écris :
1
2
3
4
5
6
7
| si variable 112 = 1 alors
changer apparence du héros : Robert
téléporter vers la map 087_arbre_de_competence_Robert
sinon si variable 112 = 2 alors
changer apparence du héros : Roselyne
téléporter vers la map 088_arbre_de_compétence_Roselyne
sinon ... |
Et il y aura aussi un petit travail de mémorisation de là d'où tu viens (et de quelle apparence tu avais) pour t'y renvoyer après.
|
Es-tu une star ? | Kujira no Hara | Muma|Rope | Polaris 03 | La 7e porte |
CanardPruneau -
posté le 18/09/2023 à 18:39:15 (29 messages postés)
| | Il manque pas plus de chose à rentrer tu es sûr, je dois pas modifier la taille des fenêtres et indiquer les coordonnées de l'onglet qui va être affiché dans le menu, il y a seulement besoin de rajouter 2 portions de codes pour que ça fonctionne?
|
| Chanter l'hyperchleuasme | Je ne suis pas du tout scripteur MV, moi je ne connais que RPG Maker XP, mais je commencerais par faire tout ça, et peut-être qu'il reste encore deux-trois trous à boucher par-ci par-là pour que ça marche. C'est un travail d'enquête et de tâtonnement.
Notamment pour l'affichage : à quel moment il traduit l'étiquette 'skills' du code en un beau "Compétences" majuscule sur ton screenshot ? Il doit y avoir un endroit où cette info est marquée. Là il faudra associer "Arbre de compétences" à l'étiquette 'skilltree' que tu as inventée.
Quand ça fonctionnera, si tu veux masquer l'ancien menu "Compétences", je pense qu'il te faudra supprimer la ligne
1
| this._commandWindow.setHandler('skill', this.commandPersonal.bind(this)); |
de la liste mentionnée dans mon message précédent.
|
Es-tu une star ? | Kujira no Hara | Muma|Rope | Polaris 03 | La 7e porte | Index du forum > Entraide > [RM MV] Ajouter un onglet dans le menu de jeu
|
|
|