AccueilAccueil  PortailPortail  FAQFAQ  RechercherRechercher  MembresMembres  GroupesGroupes  S'enregistrerS'enregistrer  ConnexionConnexion  




Partagez | 
 

 [RÉSOLU] Intégrer script dans le déplacement d'un event ?

Voir le sujet précédent Voir le sujet suivant Aller en bas 
AuteurMessage
Va-nu-pieds Lv.4
Va-nu-pieds Lv.4
avatar


Masculin Age : 24
Inscrit le : 07/11/2011
Messages : 74

MessageSujet: [RÉSOLU] Intégrer script dans le déplacement d'un event ?   Mar 16 Juil 2013 - 2:15

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 lol! )

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 Smile)


Dernière édition par Hcrana le Jeu 18 Juil 2013 - 1:19, édité 1 fois
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://www.youtube.com/nerarox
Modérateur
Modérateur
avatar


Masculin Age : 127
Inscrit le : 14/04/2009
Messages : 1321

MessageSujet: Re: [RÉSOLU] Intégrer script dans le déplacement d'un event ?   Mer 17 Juil 2013 - 19:02

Mais comme tu le dis toi-même (si j'ai correctement suivi), un processus parallèle irait très bien ... A condition de rajouter un petit bazar qui équivaudra à tes interrupteurs locaux mais manipulable "à distance". Va jeter un oeil à l'Event Extender de Grim. Tu peux définir des variables locales, c'est le même principe que des interrupteurs locaux mais sous forme de variable. Ainsi :

Si Variable[Heure] = 8
Condition : Si VariableLocale[1, évènement 1] = 0
-> Déplacer EV[1] (gauche, gauche)
-> VariableLocale[1, événement 1] = 1
Sinon :
(RIEN)

Fin condition
Condition : Si VariableLocale[1, évènement 2] = 0  
-> Déplacer EV[2] (droite, droite)
-> VariableLocale[1, événement 2] = 1
-> etc ...

Et sur la page des Event 1 et 2, avec, par exemple, "Contact avec le Héros" :

Afficher un message "Dégagez !"

Ainsi, si je ne fais pas d'erreur, le déplacement des PNJ's sera effectué en fonction de l'heure, et ce uniquement s'il n'a pas déjà été réalisé. C'est purement théorique, mais c'est censé fonctionner mon chou. Je t'invite à suivre le pdf tutoriel fourni avec l'EE pour paramétrer tes variables locales.
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Va-nu-pieds Lv.4
Va-nu-pieds Lv.4
avatar


Masculin Age : 24
Inscrit le : 07/11/2011
Messages : 74

MessageSujet: Re: [RÉSOLU] Intégrer script dans le déplacement d'un event ?   Jeu 18 Juil 2013 - 1:02

Bon en fait cest pas tout à fait ca mais le problème est résolu
(merci à Ninjah)

activation d'interrupteur local en une seule ligne de script :
$game_self_switches[[418, 52, "A"]] = true

418 = ID map
52 = #Event
A = interrupteur local à activer
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://www.youtube.com/nerarox
Contenu sponsorisé




MessageSujet: Re: [RÉSOLU] Intégrer script dans le déplacement d'un event ?   

Revenir en haut Aller en bas
 

[RÉSOLU] Intégrer script dans le déplacement d'un event ?

Voir le sujet précédent Voir le sujet suivant Revenir en haut 
Page 1 sur 1

Permission de ce forum:Vous ne pouvez pas répondre aux sujets dans ce forum
RPG Maker VX :: Entraide :: Problèmes et Solutions :: Résolu-
Créer un forum | © phpBB | Forum gratuit d'entraide | Signaler un abus | Forum gratuit