Partagez
Aller en bas
avatar
Nellousan
Membre

Nombre de messages : 16
Age : 19
Localisation : Haute-Normandie
Distinction : aucune
Date d'inscription : 04/12/2017

Résolu Script call pour Follower move route ?

le Mer 13 Déc 2017 - 18:17
yuh,

J'aimerais me familiariser avec le Javascript pour par la suite le maîtriser assez bien pour pouvoir faire un peu ce que je veux avec RPG Maker.

je ne suis pas partisant de l'apprentissage bête et méchant d'un language comme certain le ferait avec un cours d'histoire. Et je n'ai pas envie non plus de passer quelques heures a apprendre a faire des scripts(module) de test qui me serviront meme pas.

Je me suis donc dit que faire des events un peu plus sophistiqués étaient un bon moyen pour apprendre les bases de syntaxes vus que pour faire de bons events de manière approfondis on utilise beaucoup les appelle de script.

J'aimerais donc savoir comment faire pour bouger un follower indépendamment du leader via script calls puisqu'on ne peut pas le faire depuis les move route standard.
Rien qu'une piste de recherche serait la bienvenue parce que j'ai pas trouver pour l'instant
je sais qu'il y'as des scripts adapté pour ca sur internet mais je souhaiterais le faire moi même. M'imposer des contraintes et rejeter la faciliter pour apprendre vous m'voyez?

Bref Merci d'avance,
Je continus mes recherches


Dernière édition par Nellousan le Mer 13 Déc 2017 - 22:47, édité 1 fois
avatar
Zexion~
Membre

Nombre de messages : 149
Age : 26
Localisation : France
Distinction : Gourou de la Secte des Endives [Yama']
Date d'inscription : 12/06/2017
http://www.lepalaiscreatif.net/

Résolu Re: Script call pour Follower move route ?

le Mer 13 Déc 2017 - 18:37
Au contraire. En terme d'apprentissage c'est pas un peu la facilité de venir réclamer la commande dont tu as besoin sur un forum plutôt que de décortiquer des plugins pour comprendre comment ça marche et trouver toi-même la commande dont tu as besoin ? Neutral
avatar
Nellousan
Membre

Nombre de messages : 16
Age : 19
Localisation : Haute-Normandie
Distinction : aucune
Date d'inscription : 04/12/2017

Résolu Re: Script call pour Follower move route ?

le Mer 13 Déc 2017 - 18:41
Je cherche juste a m'approprier les events je vois pas le rapport. Mais si je demande c'est que j'ai déjà chercher. Y compris dans les plugins core de RPG Maker (rpg_scenes.js, rpg_objects.js etc.). je suis peut-être passer devant mais je suis un peu perdu c'est la première fois que je dois utiliser des ressources plutot que de les faire moi même.

EDIT: Ca m'as quand même fait penser a check les plugins existant merci quand même
avatar
Mist'
Staffeux retraité

Nombre de messages : 3311
Age : 25
Localisation : France // Auvergne // Cantal
Distinction : Ours Barbu é_è [/Shamu']
Artiste de talent [Yama']
Date d'inscription : 22/12/2007
http://www.rpgmakervx-fr.com

Résolu Re: Script call pour Follower move route ?

le Mer 13 Déc 2017 - 19:31
De mon point de vue, je pense qu'il n'y a pas de mal à poser la question, et demander à être orienté dans une recherche par des personnes maîtrisant un minimum le JS de MV est une bonne initiative. Certes, ce ne sera pas du tout cuit, mais ça aidera à l'apprentissage.
M'enfin, ce n'est pas le sujet.

Je n'utilise que très rarement MV, cependant, il reproduit plus ou moins dans les grandes lignes la structure de VX Ace en ce qui concerne les plugins. Sauf que là, c'est du JS orienté prototype, que je ne suis pas réellement intéressé, ni véritablement à mon aise avec cette façon de coder.

Cependant, je peux essayer de t'expliquer vulgairement, dans les grandes lignes, le fonctionnement de ce que tu cherches à comprendre, en espèrant, bien entendu que la structure de Ace soit vraiment similaire à MV, et que tu arrives à comprendre, auquel cas j'essaierai de te pondre quelque chose de mieux :

Pour commencer, les followers dans RPG Maker sont "stockés" dans une classe : Game_Followers.
Bon, ça nous avance pas trop, mais ça permet d'avoir une vision un peu plus claire de là où il faut chercher.

Posons-nous donc la question suivante : Que représente la classe Game_Followers?
En fouillant un peu, on remarque qu'elle se comporte comme une "collection" d'objets. Ces objets sont de type Game_Follower (sans le "s"). On en déduit donc que cette classe sert à priori à gérer le comportement des followers qui la compose, de les ordonner pour que ce ne soit pas le bazar sur la map, et donc, de les faire suivre le héros.

Maintenant qu'on sait que Game_Followers est une "collection" d'objets Game_Follower (sans le "s", toujours), qu'est-ce qu'un objet Game_Follower?

Pour le comprendre, il faut voir dans sa déclaration que cette classe est une "classe fille" de Game_Character. Elle hérite donc de ses propriétés, et des fonctionnalités qu'elle propose, ainsi que de ses propres fonctionnalités.

Game_Character est la classe qui va gérer tout ce qui implique les "characters" du jeu, leur déplacement, etc.  : Le Joueur (Game_Player), les Véhicules (Game_Vehicle), les Events (Game_Event), et les Followers (Game_Follower sans le "s"). Chaque classe "fille" citée juste avant va hériter des propriétés/fonctionnalités de la classe mère. Ca va permettre de pouvoir utiliser les fonctionnalités de la classe Game_Character dans chacune des classes qui en héritent, dont celle qui nous intéresse : le déplacement!

Maintenant que j'ai posé le décor, on va attaquer ce qui nous intéresse : l'accès au données d'un follower, et l'exécution des mouvements prévus par la classe Game_Character.

Pour accéder aux followers, on passe par l'objet Game_Player du jeu (soit la variable globale $game_player sous Ace), représentant le héros.
Dans Game_Player, on remarque la présence d'une variable "followers", qui contient... Un objet Game_Followers (qui contient une "collection" d'objets Game_Follower, mais ça on le sait déjà x))!

Du coup, pour accéder à mon follower et lui faire exécuter une fonction de Game_Character, sous Ace, on se retrouvera avec ça :

Code:
$game_party.followers[ID_FOLLOWER].ma_methode_de_Game_Character
# Sous Ace et pas sous MV, mais l'idée est plus ou moins la même, la syntaxe et le paradigme étant différents

Bon, après, c'est pas digeste, y'a du blabla, et je suis pas le genre de personne qui sait expliquer, même en faisant de mon mieux. J'ai légèrement bâclé la fin pour laisser place à l'exploration (et parce que mine de rien, ça fait long comme réponse).
Cela dit, je pense t'avoir donné quelques pistes pour mieux cibler et approfondir tes recherches, bien qu'étant un utilisateur de VX Ace.

N'hésite pas si on doit revenir sur quelques points, j'y ai été plutôt vulgairement à mon goût, et tout n'est pas exact à la virgule près pour ne pas te bourrer le crâne, mais c'est à peu près le fonctionnement.

_________________
avatar
Nellousan
Membre

Nombre de messages : 16
Age : 19
Localisation : Haute-Normandie
Distinction : aucune
Date d'inscription : 04/12/2017

Résolu Re: Script call pour Follower move route ?

le Mer 13 Déc 2017 - 20:06
Ok les class sont donc des familles de fonctions hiérachisées ?
Où bien juste des paramètres ? (Où les deux?)

Lorsque je vois ca dans rpg_objects.js
Code:
Game_Character.prototype.initialize = function() {
    Game_CharacterBase.prototype.initialize.call(this);
je pense avoir ma réponse mais je préfère être sûr ^^

devrais-je donc utiliser quelque chose qui ressemble à ça?:

Code:
$gameParty.members()[1].setMoveRoute(x)

ou bien

Code:
$gameCharacter.followers()[1].setMoveRoute(x)

X étant le type de move route que j'ai trouver dans la class Game_Character

Cependant je ne comprends pas une chose, et je pense que le morceau de script ne fonctionnera pas parce que:

setMoveRoute est une fonction Fille de Game_Party et non Game_Character comme j'ai pus le deviner en recherchant dans rpg_objects.js

D'autre part, il ne semble pas y avoir de fonction comme setMoveRoute dans la class Game_Character,
Donc c'est la que je me suis perdu dans mon raisonnement.
(corrige moi si j'ai dis des choses fausses)

En tout cas tes explications sont très clair, ca m'as permis de comprendre comment tout ceci etait structuré, Merci beaucoup.

EDIT: setMoveRoute se situe également dans Game_Character en plus de Game_Party, my bad.
avatar
Mist'
Staffeux retraité

Nombre de messages : 3311
Age : 25
Localisation : France // Auvergne // Cantal
Distinction : Ours Barbu é_è [/Shamu']
Artiste de talent [Yama']
Date d'inscription : 22/12/2007
http://www.rpgmakervx-fr.com

Résolu Re: Script call pour Follower move route ?

le Mer 13 Déc 2017 - 20:41
Les classes peuvent être considérées comme un ensemble de fonctions, oui... M'enfin, faudrait partir un peu plus loin que ça pour vraiment expliquer ce que c'est, ce n'est pas juste ça.
Dans l'idéal, il te faudrait une explication sur ce que représente une classe en Programmation Orienté Protoype en JS. Essaie de checker sur Google, ça m'évitera de dire des conneries, comme je l'ai dit, la PoP c'est pas mon fort.

Une classe peut être un paramètre passé à une fonction, effectivement. En fait,ici,  lorsqu'on passe la classe en paramètre (donc le "this" de ton code pour parler de l'exemple), ce n'est pas la classe que tu passes, mais son instance, qui est déjà construite (les classes sont instanciées via leur(s) constructeur(s), au passage), avec ses propres attributs.

Effectivement pour ton bout de code, je me suis trompé, j'ai mis "party" au lieu de "player" dans ma balise code (en plus j'en parle au dessus, quel con), et ça fausse tout.

Désolé.

M'enfin, t'as trouvé la solution, il faut aller chercher ce qu'on veut dans Game_Player, c'est à dire l'instance de Game_Followers à l'endroit "ID". Pour faire simple, c'est possible d'accéder à un endroit de la collection :

Code:
$game_player.followers[ID].ta_fonction(paramA, paramB)

A partir de là, je pense que tu t'en sortiras mieux. Wink


Dernière édition par Mist' le Mer 13 Déc 2017 - 21:50, édité 1 fois

_________________
avatar
Nellousan
Membre

Nombre de messages : 16
Age : 19
Localisation : Haute-Normandie
Distinction : aucune
Date d'inscription : 04/12/2017

Résolu Re: Script call pour Follower move route ?

le Mer 13 Déc 2017 - 21:00
Hum ca me heurte à un problème,

Code:
$gamePlayer.followers[1].setMoveRoute(3)

Erreur: "TypeError: Cannot read property 'setMoveRoute' of undefined"

De ce que j'ai cru comprendre cet erreur signifie que j'essais d'appeller la fonction d'un objet inconnu.
La classe Game_Player n'est pas censé heriter de setMoveRoute depuis Game_Character ?
Ca m'a un peu paumé
avatar
Mist'
Staffeux retraité

Nombre de messages : 3311
Age : 25
Localisation : France // Auvergne // Cantal
Distinction : Ours Barbu é_è [/Shamu']
Artiste de talent [Yama']
Date d'inscription : 22/12/2007
http://www.rpgmakervx-fr.com

Résolu Re: Script call pour Follower move route ?

le Mer 13 Déc 2017 - 21:57
L'accès à un follower en JS est peut-être différent, j'ai chopé une partie du rpg_objects.js sur le net :

Code:
$gamePlayer.followers.follower(X).setMoveRoute(3);

Ce que je pense qu'il faut faire :

Dans Game_Player, j'appelle la fonction qui renvoie un objet Game_Followers, duquel j'appelle la fonction qui renvoie l'objet Game_Follower à l'id X de la collection => On a notre objet Game_Character, duquel on appelle la fonction setMoveRoute

Normalement, ça doit être un truc comme ça. Après, je vais être à la limite de l'aide que je peux t'apporter au niveau JS, une chance que la structure soit plus ou moins la même que VX Ace pour le coup. x)

_________________
avatar
Nellousan
Membre

Nombre de messages : 16
Age : 19
Localisation : Haute-Normandie
Distinction : aucune
Date d'inscription : 04/12/2017

Résolu Re: Script call pour Follower move route ?

le Mer 13 Déc 2017 - 22:47
Ca fonctionne pas non plus j'ai essayer ca. ^^
Quand je regarde les plugin qui traînent sur internet l'astuce dans le code semble de remplacer le follower par le player pour les bouger puis de remplacer encore pour revenir a l'etat initial.
Si les scripter utilise une méthode aussi tordu c'est probablement parce qu'il n'y as pas d'autre moyen de faire.
En soi,je pense qu'il faudrait faire une manip' tellement longue sur chaque script que au final autant utiliser un module pour en appeler une fonction.

Enfin bref, un grand merci à toi quand même c'as pas été inutile j'ai appris plein de truc c:

Sur ce, sujet clos
Contenu sponsorisé

Résolu Re: Script call pour Follower move route ?

Revenir en haut
Permission de ce forum:
Vous ne pouvez pas répondre aux sujets dans ce forum