Forum d'entraide à la création de jeux d'aventure
 
PortailAccueilFAQRechercherS'enregistrerMembresConnexion

Partagez | 
 

 objet non reconnu dans le GlobalScript

Voir le sujet précédent Voir le sujet suivant Aller en bas 
AuteurMessage
Christouf
C'est quoi la Tasse Bleue ?
C'est quoi la Tasse Bleue ?


Nombre de messages : 2

Age : 33

Localisation : Rousset (Marseille)

Date d'inscription : 29/12/2015


MessageSujet: objet non reconnu dans le GlobalScript   Jeu 25 Fév 2016 - 22:14

Bonjour à tous.
Lors de la programmation d'une série d’événements causé par une fonction "useInv", le GlobalScript ne reconnait pas un objet pourtant bien créé et orthographié dans la room concernée:

function cGDuc_UseInv()
{
if (cSimon.ActiveInventory == iChat)
{
cSimon.Walk(260, 280, eBlock, eWalkableAreas);
cSimon.FaceCharacter(cGDuc, eBlock);
cSimon.Say("Allez, le chat!");
cSimon.Say("Bon Appetit");
cChat.Walk(377, 255, eBlock, eWalkableAreas);
cGDuc.Animate(1, 3, eOnce, eNoBlock, eForwards);
cChat.ChangeView(2);
cChat.Animate(1, 3, eOnce, eBlock, eForwards);
cGDuc.ChangeRoom(0);
cChat.ChangeRoom(0);

oPlumes.visible=true;

cChat.FollowCharacter(null);
cSimon.LoseInventory(iChat);

GlobalScript.asc(590): Error (line 590): Undefined token 'oPlumes'

C'est après plus de 24h de galère sur ce merveilleux site (et d'autres) m’éclairant depuis bientôt 2 mois dans le tunnel très obscure, et très profond de la programmation de mon premier jeu, que je me permet de faire appel à votre bon coeur, votre générosité et votre patience.
Comment puis-je faire apparaitre cet objet?

Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Kitai
Délégué de la tasse bleue
Délégué de la tasse bleue


Nombre de messages : 2431

Date d'inscription : 01/08/2006


MessageSujet: Re: objet non reconnu dans le GlobalScript   Jeu 25 Fév 2016 - 23:38

Salut Christouf, et bienvenue ici. N'hésite pas à nous en dire plus sur toi et tes projets si le cœur t'en dit (pas d'obligation) clin d\\\\'oeil

Christouf a écrit:
C'est après plus de 24h de galère sur ce merveilleux site (et d'autres) m’éclairant depuis bientôt 2 mois dans le tunnel très obscure, et très profond de la programmation de mon premier jeu, que je me permet de faire appel à votre bon coeur, votre générosité et votre patience.
Comment puis-je faire apparaitre cet objet?
Je ne peux que compatir, étant moi-même passé par là. D'autant plus que j'ai la réponse à ton problème dès que je lis ton code, ce qui doit être encore plus frustrant !

Pour une raison que je ne m'explique pas tout à fait, les noms de script des objets dans AGS sont interprétés selon la pièce dans laquelle se trouve le joueur. Ça signifie que de façon générale, tu ne peux pas les utiliser dans le Global Script (car celui-ci est "au-dessus" de toute pièce). Par ailleurs la fonction ChangeRoom ne s'exécute pas instantanément et le code que tu mets juste après affecte toujours la pièce dans laquelle se trouve le joueur avant le changement de pièce.

Ce que tu dois donc faire, c'est placer ton instruction
Code:
oPlumes.visible=true;
dans le script de la pièce de destination (0 vu ton code). Mais pas n'importe où évidemment. J'imagine que c'est un objet qui n'est pas visible au début du jeu, tu ne peux donc pas simplement mettre cette instruction dans la fonction de chargement de la pièce juste comme ça. Ce que tu peux faire en revanche, c'est utiliser les variables globales, et plus précisément une variable globale booléenne qui peut donc valoir true ou false. Mettons que tu nommes cette variable plumesVisibles et que tu la règles à false par défaut dans l'éditeur de variables globales. Alors dans le code que tu as posté ici, tu peux remplacer ton instruction en rouge par l'instruction suivante :
Code:
plumesVisibles = true;
Ensuite, dans la fonction de chargement de ta pièce 0, tu peux ajouter le code suivant :
Code:
if (plumesVisibles == true) oPlumes.Visible = true;
(Remarque la majuscule à Visible)

Voilà, j'espère que tu t'en sortiras avec mes explications. Sinon, n'hésite pas à demander des clarifications !

PS : pour mettre le code en forme comme je le fais sur le forum, utilise la balise [code ]place ton code ici[/code ] (sans les espaces bien évidemment)

_________________
Ga is Ga
Vous pouvez consulter l'aide d'AGS 3.2 en français et contribuer à la traduction et à l'amélioration si le cœur vous en dit !
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://admin.no.uchi.free.fr/dokuwiki-2008-05-05/doku.php En ligne
Christouf
C'est quoi la Tasse Bleue ?
C'est quoi la Tasse Bleue ?


Nombre de messages : 2

Age : 33

Localisation : Rousset (Marseille)

Date d'inscription : 29/12/2015


MessageSujet: Re: objet non reconnu dans le GlobalScript   Ven 26 Fév 2016 - 8:27

Nom d'une bric. Me voila libéré d'un chevron dans le pied.
Je commence à y voir plus clair avec les variables.
Merci mille fois.
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Shai-la
Ouvrière en Chef de la Grande Tasse Bleue
Ouvrière en Chef de la Grande Tasse Bleue


Nombre de messages : 5376

Age : 38

Localisation : Montpellier

Date d'inscription : 17/04/2006


MessageSujet: Re: objet non reconnu dans le GlobalScript   Dim 28 Fév 2016 - 8:14

En ce qui me concerne, quand je veux appeler un objet dans le GlobalScript et pas dans le script d'une room, j'utilise

Code:
object[0].Visible = true;

en remplaçant bien sûr 0 par l'ID de ton objet plume dans la room. Cela appellera l'objet avec l'ID 0 quelle que soit la pièce dans laquelle est ton personnage principale, ici, en l'occurence, la plume sourire

_________________
Mon profil Facebook!
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Kitai
Délégué de la tasse bleue
Délégué de la tasse bleue


Nombre de messages : 2431

Date d'inscription : 01/08/2006


MessageSujet: Re: objet non reconnu dans le GlobalScript   Dim 28 Fév 2016 - 15:56

Bien vu Shai-la, le tableau object est effectivement global et est "nourri" avec les objets de la pièce en cours à chaque changement de pièce.
Dans le cas de Christouf en revanche, cette solution n'est pas adaptée, dans la mesure où le changement de pièce n'a pas encore eu lieu au moment où son script est exécuté.

_________________
Ga is Ga
Vous pouvez consulter l'aide d'AGS 3.2 en français et contribuer à la traduction et à l'amélioration si le cœur vous en dit !
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://admin.no.uchi.free.fr/dokuwiki-2008-05-05/doku.php En ligne
Contenu sponsorisé




MessageSujet: Re: objet non reconnu dans le GlobalScript   Aujourd'hui à 17:23

Revenir en haut Aller en bas
 
objet non reconnu dans le GlobalScript
Voir le sujet précédent Voir le sujet suivant Revenir en haut 
Page 1 sur 1
 Sujets similaires
-
» [RESOLU] La mine objet qui tombe dans le feu
» Problème Axis Pédale
» [Asthatoth][Gobelins][Les Grenouilles de Bénitier]
» [PC] Yume Nikki
» Destination Aventure : créer une destination.

Permission de ce forum:Vous ne pouvez pas répondre aux sujets dans ce forum
Adventure Games Studio fr :: CREATION DE JEUX :: Questions / Réponses-
Sauter vers: