Bon voilà, je me posais cette question et j'espère que quelqu'un aura la réponse.
Dans la création d'un évenement il y a une facon de déplacer l'évent en question sans pour autant utiliser la boite de commandes de l'évenement. Ce qui nous permet en général de faire déplacer un NPC en plus de le faire parler si le joueur viens faire un appuie sur touche sur lui.
Seulement, voilà j'ai un petit soucis que je vous explique.
Disons que j'ai un NPC dans la maison et qu'il s'apprête à quitter celle-ci. Il commence donc son déplacement (gauche, gauche, bas, bas, gauche gauche etc.) Si le joueur viens lui parler il lui lancera un message bidon du genre ''dégage''.
Seulement, j'aimerais qu'à la fin du déplacement, son interrupteur local ''A'' s'active. J'ai donc tenter de faire dans la boite de déplacement ''appeler script'' à la fin pour entrer ce code :
#selfswitch shopkeeper
key = [225, 32, "A"]
$game_self_switches[key] = true
Seulement, au lieu d'avoir plusieurs lignes pour l'écrire je n'ai qu'une seule ligne ! J'ai donc premièrement tenter de mettre tout en un c'est à dire :
#selfswitch shopkeeper key = [225, 32, "A"] $game_self_switches[key] = true
Mais sans succès (sa m'aurait bien étonner aussi
)
Deuxième solution, faire 3 appels scripts :
> Appel script : #selfswitch shopkeeper
> Appel script : key = [225, 32, "A"]
> Appel script : $game_self_switches[key] = true
Mais bon je reçois le message d'erreur suivant :
NameError occurred while running script.
undefined local variable or method 'key' for
#
Si mon language de script est correct, cela signifirai que le jeu ne prend en compte que la première ligne de code (c'est à dire : #selfswitch shopkeeper) avant de planter. (Encore une fois je suis pas très surpris.)
Ce qui me laisse à donc trois solutions qui sont les trois disons, très problématique pour mon projet.
La première : mettre le pnj en processus parralèle, ce qui empêchera tout intéraction avec celui-ci, bref, sa craint, surtout si c'est un personnage de quêtes.
La deuxième : Mettre un évenement en processus parralèle qui prend en compte la position du PNJ et active l'interrupteur local à distance lorsque celui-ci à atteint la cible. Ou est le problème ? me demanderez vous ? Bah sur une carte je peux avoir environ 20 a 25 PNJ qui attendent d'avoir une coordonnée présise avant d'activer leur interrupteur local (20 à 25*2 = 40à50variable en proccessus parralèle sans compter les pnj eux meme et autre event.. bonjour le lag.)
La troisième : utiliser ''activé l'interrupteur'' dans la boite de commandes de déplacements, mais encore une fois, risque d'utiliser beaucoup trop d'interrupteurs d'ici la fin de mon projet.... (on peut en compter facilement 3 a 6 par PNJ, environs 100PNJ par continent, 4 continents, faites le calcul...
Si quelqu'un a la solution à mon problème je promet de le vénéré (no fake !)
P.S : Pour ceux qui serait intrigué à savoir pourquoi j'ai besoin de ça. (je pouvais sentir la question venir) Mon projet est un open world (pas de transitions vers la carte monde pour des déplacements) avec un système d'heures. (qui influencent sur la position des PNJ) Donc, pour rendre le tout réaliste, j'ai besoin de faire déplacer les PNJ de leurs maison jusqu'au travail (la forge par exemple), du travail jusqu'à l'auberge (pour les alcholic), puis de l'auberge jusqu'à la maison.
Pour les NPC marchand ambulant ou simple aventuriers je dois les faire traverser de ville en ville. (je vous laisse deviner le travail de fou qui m'attend )