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

Partagez | 
 

 Fonction "Say" & Fond item dans Inventaire

Voir le sujet précédent Voir le sujet suivant Aller en bas 
Aller à la page : Précédent  1, 2, 3
AuteurMessage
Kitai
Délégué de la tasse bleue
Délégué de la tasse bleue


Nombre de messages : 2505

Date d'inscription : 01/08/2006


MessageSujet: Re: Fonction "Say" & Fond item dans Inventaire   Sam 15 Nov 2008 - 22:06

Quoi donc ?

Au pire compresse le dossier du jeu et envoie-le moi (le dossier du projet, pas du jeu compilé) en me précisant sous quelle version de AGS tu tournes.
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://admin.no.uchi.free.fr/dokuwiki-2008-05-05/doku.php
mikosworld
Adepte de la Grande Tasse Bleue
Adepte de la Grande Tasse Bleue


Nombre de messages : 130

Date d'inscription : 18/06/2006


MessageSujet: Re: Fonction "Say" & Fond item dans Inventaire   Dim 16 Nov 2008 - 1:23

ok mais comme j'aimerais comprendre sourire

Est-ce que tu appelles une fonction dans la room ? autre quand dans le GlobalScript ?
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://www.nouvelle-cible.com
Kitai
Délégué de la tasse bleue
Délégué de la tasse bleue
avatar

Nombre de messages : 2505

Date d'inscription : 01/08/2006


MessageSujet: Re: Fonction "Say" & Fond item dans Inventaire   Lun 17 Nov 2008 - 21:27

non non, tout est posté ici, j'ai même mis quelques petits commentaires dans le code :clindoeil:

Telle quelle, le code fonctionne (puisque chez moi, par exemple, il fonctionne). C'est lorsqu'il y a d'autre code (SaveCursorUntilItLeaves) qu'il peut y avoir des conflits.

Une façon de s'assurer que "ChangeCurseur" ne sauvegarde pas le mode de la souris lorsque le curseur ne survole rien (à part une walkable aera), c'est de placer la commande SaveCursorUntilItLeaves dans un if (GetLocationType(mouse.x, mouse.y) == eLocationNothing).

Après je sais pas si c'est ça qui pose problème chez toi, c'est pour ça que je te proposais de m'envoyer le projet.

EDIT : Bon, le problème est en fait tout simple :dd:
Tu as créé des propriétés personnalisées pour les pièces, mais pas pour les objets et hotspots.

Des propriétés personnalisées pour chaque objet et hotspot, ça te permet de mettre "Ouvrir fenêtre" pour l'interaction avec la fenêtre et "Fouiller sac" pour l'interaction avec le sac, par exemple.

Une fois la propriété personnalisée définie pour chaque objet et hotspot, ça marche parfaitement :^^:

_________________
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
mikosworld
Adepte de la Grande Tasse Bleue
Adepte de la Grande Tasse Bleue


Nombre de messages : 130

Age : 37

Localisation : Ain - France

Date d'inscription : 18/06/2006


MessageSujet: Re: Fonction "Say" & Fond item dans Inventaire   Lun 17 Nov 2008 - 21:47

Trop fort sourire Effectivement sourire

Je souhaite coupler le résultat d'une propriété personnalisée avec @OVERHOTPSPOT@, comme ceci :
Code:
label1.text = texte + "OVERHOTPSOT";

Mais AGS me renvoie une erreur, avec l'opérateur, comment puis-je fais correctement la concaténation ?

Autre question, comment faire un retour de ligne dans un dialogue ? le "\n" n'est pas pris en compte on dirait triste
ex.:
Code:
cEgo.say("Je m'appelle Nico\net j'ai 50 ans ...");

Merci encore et encore sourire
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://www.nouvelle-cible.com
Kitai
Délégué de la tasse bleue
Délégué de la tasse bleue
avatar

Nombre de messages : 2505

Date d'inscription : 01/08/2006


MessageSujet: Re: Fonction "Say" & Fond item dans Inventaire   Lun 17 Nov 2008 - 22:11

mikosworld a écrit:
Je souhaite coupler le résultat d'une propriété personnalisée avec @OVERHOTPSPOT@, comme ceci :
Code:
label1.text = texte + "OVERHOTPSOT";
Déjà, si tu veux mettre "@OVERHOTSPOT@", oublie-pas les @ :clindoeil:
Ensuite, je ne sais pas si @OVERHOTSPOT@ détecte aussi les objets...
Enfin, pour concaténer du texte, il faut utiliser la fonction String.Append.

mikosworld a écrit:
Autre question, comment faire un retour de ligne dans un dialogue ? le "\n" n'est pas pris en compte on dirait triste
ex.:
Code:
cEgo.say("Je m'appelle Nico\net j'ai 50 ans ...");

Le retour à la ligne s'exprime avec le symbole [, depuis AGS 3.0 en tout cas (il n'existait pas sur la 2.71 à ma connaissance).

_________________
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
mikosworld
Adepte de la Grande Tasse Bleue
Adepte de la Grande Tasse Bleue


Nombre de messages : 130

Age : 37

Localisation : Ain - France

Date d'inscription : 18/06/2006


MessageSujet: Re: Fonction "Say" & Fond item dans Inventaire   Lun 17 Nov 2008 - 22:17

Ok, c'est bon pour la concaténation

Par contre dans l'aide pour la nouvelle ligne, c'est pas très clair
Ce serait genre :
Code:

Display("A normal string [with no variables.");

Enfin, dans ton code, ta fonction "MouseGetsOn" y a pas moyen d'éclater de façon à séparer le GUI, les Hotspots, perso et les objets ?
Car j'aimerais désactiver mon curseur "eModeTalkto" sur tous les objets, mais pas les hotspots ...
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://www.nouvelle-cible.com
Kitai
Délégué de la tasse bleue
Délégué de la tasse bleue
avatar

Nombre de messages : 2505

Date d'inscription : 01/08/2006


MessageSujet: Re: Fonction "Say" & Fond item dans Inventaire   Lun 17 Nov 2008 - 22:38

mikosworld a écrit:
Par contre dans l'aide pour la nouvelle ligne, c'est pas très clair
Ce serait genre :
Code:

Display("A normal string [with no variables.");
Certes, on est pas au summum de la clarté, mais tu as tout de même trouvé la bonne syntaxe :clindoeil:
Et rien ne vaut l'expérimentation. :^^:

mikosworld a écrit:
Enfin, dans ton code, ta fonction "MouseGetsOn" y a pas moyen d'éclater de façon à séparer le GUI, les Hotspots, perso et les objets ?
Car j'aimerais désactiver mon curseur "eModeTalkto" sur tous les objets, mais pas les hotspots ...
À vrai dire c'est déjà le cas.
Si tu regardes bien, la fonction "MouseGetsOn" appelle la fonction "ChangeLabel" avec pour argument GetLocationType(mouse.x, mouse.y), ce qui correspond au type d'élément pointé par le curseur.

"ChangeLabel" elle va retourner le texte de la propriété personnalisée de l'objet ou du hotspot selon ce type.

Tu as donc deux endroits où désactiver ce type de curseur : dans "MouseGetsOn", dans une condition sur GameLocation(mouse.x, mouse.y) ou dans "ChangeLabel", dans une condition du même type (déjà présente pour distinguer les propriétés personnalisées des objets ou des hotspots).

Par contre la version de "MouseGetsOn" que je t'ai filée dernièrement ne prend pas en compte les GUIs (c'est la contrepartie à une économie de code), mais je pense que ça ne te gênera pas, si ?

_________________
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
mikosworld
Adepte de la Grande Tasse Bleue
Adepte de la Grande Tasse Bleue


Nombre de messages : 130

Age : 37

Localisation : Ain - France

Date d'inscription : 18/06/2006


MessageSujet: Re: Fonction "Say" & Fond item dans Inventaire   Lun 17 Nov 2008 - 22:48

Citation :

Si tu regardes bien, la fonction "MouseGetsOn" appelle la fonction "ChangeLabel" avec pour argument GetLocationType(mouse.x, mouse.y), ce qui correspond au type d'élément pointé par le curseur.

Oui, comment je fais pour dire que je suis sur un objet ou un hotspot ? faut bien que je le détecte, non ?

Dans ce genre :
Code:

// Si mon curseur est sur un hotspot, je joue le son 1, si c'est sur un objet, je joue le son 2
if (GetLocationType(mouse.x, mouse.y) == hotspot[0]) PlaySound(1);
else if (GetLocationType(mouse.x, mouse.y) == objet PlaySound(2);
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://www.nouvelle-cible.com
Kitai
Délégué de la tasse bleue
Délégué de la tasse bleue
avatar

Nombre de messages : 2505

Date d'inscription : 01/08/2006


MessageSujet: Re: Fonction "Say" & Fond item dans Inventaire   Lun 17 Nov 2008 - 23:06

mikosworld a écrit:
Oui, comment je fais pour dire que je suis sur un objet ou un hotspot ? faut bien que je le détecte, non ?
C'est ce que font ces lignes :
Code:
if (type == eLocationObject) {
  // On récupère l'objet aux coordonnées de la souris.
et
Code:
if (type == eLocationHotspot) {
  // On va faire la même chose avec le Hotspot pointé qu'on
  // fait avec l'objet pointé
dans la fonction "ChangeLabel".

La fonction "GetLocationType" retourne une valeur de type LocationType (les différents types pré-intégrés dans AGS sont disponibles ici)

Du coup tu ne peux pas passer une condition
Code:
if (GetLocationType(mouse.x, mouse.y) == hotspot[0])
puisque "GetLocationType" ne retournera jamais un hotspot, mais plutôt la valeur eLocationHotspot.

Voilà, je te laisse te débrouiller un peu pour la suite :^^:

_________________
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
mikosworld
Adepte de la Grande Tasse Bleue
Adepte de la Grande Tasse Bleue


Nombre de messages : 130

Age : 37

Localisation : Ain - France

Date d'inscription : 18/06/2006


MessageSujet: Re: Fonction "Say" & Fond item dans Inventaire   Lun 17 Nov 2008 - 23:18

Oh my GOD :ss: :dd:

Le code est en plein milieu de l'écran ! quel quiche !
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://www.nouvelle-cible.com
Contenu sponsorisé




MessageSujet: Re: Fonction "Say" & Fond item dans Inventaire   

Revenir en haut Aller en bas
 
Fonction "Say" & Fond item dans Inventaire
Voir le sujet précédent Voir le sujet suivant Revenir en haut 
Page 3 sur 3Aller à la page : Précédent  1, 2, 3
 Sujets similaires
-
» [ASTUCE] "Tester" un sticker/fond de homepage
» Peut-on le trouver dans des magasin comme "Carrefour"
» Signification des lettres "S", "U", "X" et "Z" dans MH ?
» les "packs" d'or
» Teste de la nouvelle "DashBoard" Xbox 360

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: