Forum d'entraide à la création de jeux d'aventure
 
PortailPortail  AccueilAccueil  RechercherRechercher  S'enregistrerS'enregistrer  Connexion  
Le Deal du moment : -14%
Lave-linge hublot HOOVER HWP 10 kg (Induction, 1600 ...
Voir le deal
299.99 €

 

 objet non reconnu dans le GlobalScript

Aller en bas 
3 participants
AuteurMessage
Christouf
C'est quoi la Tasse Bleue ?
C'est quoi la Tasse Bleue ?
Christouf


Nombre de messages : 2

Age : 41

Localisation : Rousset (Marseille)

Date d'inscription : 29/12/2015


objet non reconnu dans le GlobalScript Empty
MessageSujet: objet non reconnu dans le GlobalScript   objet non reconnu dans le GlobalScript EmptyJeu 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
Kitai
Délégué de la tasse bleue
Délégué de la tasse bleue
Kitai


Nombre de messages : 2907

Date d'inscription : 01/08/2006


objet non reconnu dans le GlobalScript Empty
MessageSujet: Re: objet non reconnu dans le GlobalScript   objet non reconnu dans le GlobalScript EmptyJeu 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
http://admin.no.uchi.free.fr/dokuwiki-2008-05-05/doku.php
Christouf
C'est quoi la Tasse Bleue ?
C'est quoi la Tasse Bleue ?
Christouf


Nombre de messages : 2

Age : 41

Localisation : Rousset (Marseille)

Date d'inscription : 29/12/2015


objet non reconnu dans le GlobalScript Empty
MessageSujet: Re: objet non reconnu dans le GlobalScript   objet non reconnu dans le GlobalScript EmptyVen 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
Shai-la
Ouvrière en Chef de la Grande Tasse Bleue
Ouvrière en Chef de la Grande Tasse Bleue
Shai-la


Nombre de messages : 6018

Age : 46

Localisation : Montpellier

Date d'inscription : 17/04/2006


objet non reconnu dans le GlobalScript Empty
MessageSujet: Re: objet non reconnu dans le GlobalScript   objet non reconnu dans le GlobalScript EmptyDim 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
Revenir en haut Aller en bas
http://marionpoinsot.fr/video
Kitai
Délégué de la tasse bleue
Délégué de la tasse bleue
Kitai


Nombre de messages : 2907

Date d'inscription : 01/08/2006


objet non reconnu dans le GlobalScript Empty
MessageSujet: Re: objet non reconnu dans le GlobalScript   objet non reconnu dans le GlobalScript EmptyDim 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
http://admin.no.uchi.free.fr/dokuwiki-2008-05-05/doku.php
Contenu sponsorisé





objet non reconnu dans le GlobalScript Empty
MessageSujet: Re: objet non reconnu dans le GlobalScript   objet non reconnu dans le GlobalScript Empty

Revenir en haut Aller en bas
 
objet non reconnu dans le GlobalScript
Revenir en haut 
Page 1 sur 1
 Sujets similaires
-
» [résolu]Remplacer un objet dans l'inventaire par un autre.
» Evènement dans une room déclenche une porte dans une autre room.
» Poser un objet sur un hotspot
» superposition d'objet
» jeu d'objet caché

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: