Questions diverses sous GLULX et inform

Pour discuter des langages que nous utilisons pour réaliser nos jeux : problèmes, solutions, suggestions...

Modérateurs: Stormi, Otto Grimwald

Re: Questions diverses sous GLULX

Messagepar Yoruk le Sam Déc 15, 2007 10:22 am

Oui sur le forum... les boutons citer répondre, .... sont long à s'afficher.
Yoruk, SATOR AREPO TENET OPERA ROTAS
Avatar de l’utilisateur
Yoruk
Grand Ancien
 
Messages: 1065
Inscription: Lun Juin 11, 2007 9:50 am
Localisation: Chiddes, à 150 mètres du lavoir

Re: Questions diverses sous GLULX

Messagepar Yoruk le Sam Aoû 16, 2008 9:02 am

Est-il possible en I6 de déplacer un objet dans un container sans le prendre dans son inventaire ?

Par exemple, je souhaite que

mettre truc dans bol

fonctionne. Mon bol est container, et mon objet truc est normal. Avec la commande précédente, il me réponds:

vous devez avoir truc en main avant de pouvoir le déplacer

mais je ne ne souhaite pas que l'objet soit prenable.....

Peut-on contourner cela ?

(C'est quoi ce gag avec les smileys ? :o :o :shock: 8) )
Yoruk, SATOR AREPO TENET OPERA ROTAS
Avatar de l’utilisateur
Yoruk
Grand Ancien
 
Messages: 1065
Inscription: Lun Juin 11, 2007 9:50 am
Localisation: Chiddes, à 150 mètres du lavoir

Re: Questions diverses sous GLULX

Messagepar Akien le Sam Aoû 16, 2008 10:10 am

Je pense que tu peux le faire avec Extend sur le verbe mettre.

Un truc du style :

Code: Tout sélectionner
Extend "mettre" first
 * noun 'dans' container       -> Mettre;


Et un MettreSub qui effectue le travail voulu.

Code: Tout sélectionner
[ MettreSub;
  move noun to second;
  print "Vous déplacez ", (the) noun, " dans ", (the) second, ".";
  rtrue;
];


Bon bien sur faut développer un peu sinon tous les objets pourront aller dans un container.
Tu peux par exemple rajouter if (noun ofclass deplacable), ou un truc du style.
Avatar de l’utilisateur
Akien
Grand Ancien
 
Messages: 298
Inscription: Mer Mai 09, 2007 1:31 pm
Localisation: En Allemagne, en France ou au Danemark, ça dépend

Re: Questions diverses sous GLULX

Messagepar Otto Grimwald le Sam Aoû 16, 2008 10:29 am

oui cela parait bien comme ça.
Pour ne pas avoir de problème avec les autres objets, tu peux ajouter un attribut "transferable" ou "versable" ce qui te permettra par exemple de verser les corn flakes dans le bol, et ce type d'objets uniquement, sans que le joueur ait à les manipuler.

Pour les smileys, j'en avais fait avec une petite tête de grenouille, c'est un peu petit, mais au moins ça change.

Avatar de l’utilisateur
Otto Grimwald
Très Ancien
 
Messages: 3031
Inscription: Mar Aoû 24, 2004 12:02 pm

Re: Questions diverses sous GLULX

Messagepar Yoruk le Sam Aoû 16, 2008 3:04 pm

Merci, ça marche. :)

Je vais effectivement rajouter un test sur les attributs, sinon je risque d'avoir des surprises.

Euhhh.... Comment on rajoute un attribut ? Merci.

Tant que j'y suis, je souhaite dans un bout de code faire en sorte de déplacer un objet dans le lieu où se trouve déjà un objet. J'ai tenté :

Code: Tout sélectionner
move biduleadeplacer to machin.found_in ;


Mais ça n'a pas l'air de marcher.... :cry: j'ai fait afficher directement machin.found_in, il me renvoie 0.....

J'avais essayé avec machin.location mais ce ne doit pas être la bonne propriété.... si je ne me trompe pas, location est bien l'endroit où est le joueur ?
Yoruk, SATOR AREPO TENET OPERA ROTAS
Avatar de l’utilisateur
Yoruk
Grand Ancien
 
Messages: 1065
Inscription: Lun Juin 11, 2007 9:50 am
Localisation: Chiddes, à 150 mètres du lavoir

Re: Questions diverses sous GLULX

Messagepar Yoruk le Mar Aoû 19, 2008 5:39 pm

Avec la commande tree en mode debug, les lieux (et les objets) sont suivis d'un numéro. Dois-je utiliser cela alors ? Apparemment, tout est stocké sous forme numérique.... :?
Yoruk, SATOR AREPO TENET OPERA ROTAS
Avatar de l’utilisateur
Yoruk
Grand Ancien
 
Messages: 1065
Inscription: Lun Juin 11, 2007 9:50 am
Localisation: Chiddes, à 150 mètres du lavoir

Re: Questions diverses sous GLULX

Messagepar Otto Grimwald le Mar Aoû 19, 2008 10:06 pm

Salut,

désolé, j'avais pas les réponses sous la main quand j'ai vu ton message l'autre fois (mes connaissances en inform6 sont un peu rouillées), et j'avais oublié le message ensuite.

Pour les attributs, apparemment les infos c'est ici : http://www.inform-fiction.org/manual/html/s3.html#p68

dans ton cas cela pourrait donner ça :

Code: Tout sélectionner
Attribute transferable;

Object cafe "grains de café"
  with /.../
  has  transferable;


Et pour le bol tu fais un test genre "if bol has transferable" (je pense)

Pour le second problème, essaye plutôt :
Code: Tout sélectionner
move biduleadeplacer to parent(machin) ;


cf. http://www.inform-fiction.org/manual/html/s3.html

Avatar de l’utilisateur
Otto Grimwald
Très Ancien
 
Messages: 3031
Inscription: Mar Aoû 24, 2004 12:02 pm

Re: Questions diverses sous GLULX

Messagepar Stormi le Mar Aoû 19, 2008 10:37 pm

Yoruk a écrit:Tant que j'y suis, je souhaite dans un bout de code faire en sorte de déplacer un objet dans le lieu où se trouve déjà un objet. J'ai tenté :

Code: Tout sélectionner
move biduleadeplacer to machin.found_in ;


Mais ça n'a pas l'air de marcher.... :cry: j'ai fait afficher directement machin.found_in, il me renvoie 0.....

J'avais essayé avec machin.location mais ce ne doit pas être la bonne propriété.... si je ne me trompe pas, location est bien l'endroit où est le joueur ?

Je ne sais pas s'il existe un moyen simple de connaître le lieu dans lequel est un objet, notamment parce qu'un objet peut être à plusieurs endroits à la fois avec found_in. J'espère que tu ne déplaces pas d'objets vers des objets présents simultanément en plusieurs endroits sinon ça risque de compliquer pas mal les choses.
Ce que je ferais c'est partir du modèle objet, et chercher l'objet qui contient l'objet cible (ça peut être un lieu s'il y est directement, mais aussi un conteneur). Il existe sûrement une fonction pour obtenir le parent direct d'un objet, sinon il faut boucler sur tous les objets de type lieu, identifiés par une classe Lieu par exemple, avec objectloop(x ofclass Lieu) et tester s'ils contiennent directement ou indirectement la cible (soit avec "in", qui n'est pas récursif, soit avec IndirectlyContains qui est récursif, fonctionne donc même s'il y a imbrication)
Samuel V.
Avatar de l’utilisateur
Stormi
Grand Ancien
 
Messages: 1207
Inscription: Dim Avr 16, 2006 8:07 pm
Localisation: Lyon

Re: Questions diverses sous GLULX

Messagepar Otto Grimwald le Mar Aoû 19, 2008 11:19 pm

Code: Tout sélectionner
Il existe sûrement une fonction pour obtenir le parent direct d'un objet


voir plus haut : parent(objet)

Avatar de l’utilisateur
Otto Grimwald
Très Ancien
 
Messages: 3031
Inscription: Mar Aoû 24, 2004 12:02 pm

Re: Questions diverses sous GLULX

Messagepar Yoruk le Mer Aoû 20, 2008 6:08 pm

J'ai pu faire marcher les attributs, merci. :)

Par contre, le coup des objets m'a l'air religieusement compliqué. Je vais faire autrement et tenter de contourner le problème.

Pour cela, j'ai juste besoin d'une précision : les conditions ifs prennent-t'elle en compte les parenthèses ? J'ai bien parcouru le DM4, mais je n'ai pas obtenu de réponse claire...

Puis-je faire un truc du genre :

si (ça ET ça ) OU (ça et ça)
Dernière édition par Yoruk le Mer Aoû 20, 2008 7:42 pm, édité 1 fois.
Yoruk, SATOR AREPO TENET OPERA ROTAS
Avatar de l’utilisateur
Yoruk
Grand Ancien
 
Messages: 1065
Inscription: Lun Juin 11, 2007 9:50 am
Localisation: Chiddes, à 150 mètres du lavoir

Re: Questions diverses sous GLULX

Messagepar Stormi le Mer Aoû 20, 2008 6:21 pm

A priori oui pour les parenthèses.
Samuel V.
Avatar de l’utilisateur
Stormi
Grand Ancien
 
Messages: 1207
Inscription: Dim Avr 16, 2006 8:07 pm
Localisation: Lyon

Re: Questions diverses sous GLULX

Messagepar Yoruk le Mer Aoû 20, 2008 7:46 pm

J'ai un lieu avec une échelle. Je souhaite que l'on puisse monter à l'échelle.

J'ai rajouté dans les propriétés de l'objet :

Code: Tout sélectionner
before[;
GoUp : print "Vous grimpez à l'échelle";move player to....;
];



Mais quand je tape "monter sur l'échelle"

Il me réponds "Vous ne pouvez pas y monter".... :(

Et est-il possible d'ajouter des synonymes à un verbe sans bricoler les biblis ? Je sais faire en I7 mais pas en I6.... merci d'avance.
Yoruk, SATOR AREPO TENET OPERA ROTAS
Avatar de l’utilisateur
Yoruk
Grand Ancien
 
Messages: 1065
Inscription: Lun Juin 11, 2007 9:50 am
Localisation: Chiddes, à 150 mètres du lavoir

Re: Questions diverses sous GLULX

Messagepar Stormi le Mer Aoû 20, 2008 9:02 pm

L'action à intercepter sur l'échelle n'est pas GoUp mais Enter (un coup d'oeil sur la définition du verbe en question dans FrenchG.h le montre).

GoUp c'est si on tape "monter" seul, sans objet.

Pour ajouter des synonymes à un verbe je ne sais pas si c'est facilement réalisable. Le plus simple est peut-être de définir le nouveau verbe avec la même grammaire que son synonyme (grammaire à copier depuis renchG.h)
Samuel V.
Avatar de l’utilisateur
Stormi
Grand Ancien
 
Messages: 1207
Inscription: Dim Avr 16, 2006 8:07 pm
Localisation: Lyon

Re: Questions diverses sous GLULX

Messagepar Otto Grimwald le Mer Aoû 20, 2008 9:16 pm

Yoruk a écrit:Par contre, le coup des objets m'a l'air religieusement compliqué. Je vais faire autrement et tenter de contourner le problème.


et pourtant avec parent(objet) c'est très facile, c'est comme si tu indiquais un lieu directement.

Avatar de l’utilisateur
Otto Grimwald
Très Ancien
 
Messages: 3031
Inscription: Mar Aoû 24, 2004 12:02 pm

Re: Questions diverses sous GLULX

Messagepar Stormi le Mer Aoû 20, 2008 9:20 pm

Otto Grimwald a écrit:
Yoruk a écrit:Par contre, le coup des objets m'a l'air religieusement compliqué. Je vais faire autrement et tenter de contourner le problème.


et pourtant avec parent(objet) c'est très facile, c'est comme si tu indiquais un lieu directement.

Sauf si l'objet est contenu dans un autre objet ;)
Mais sinon j'appuie la remarque d'Otto.
Samuel V.
Avatar de l’utilisateur
Stormi
Grand Ancien
 
Messages: 1207
Inscription: Dim Avr 16, 2006 8:07 pm
Localisation: Lyon

Re: Questions diverses sous GLULX

Messagepar Otto Grimwald le Mer Aoû 20, 2008 9:59 pm

stormi a écrit:
Otto Grimwald a écrit:

et pourtant avec parent(objet) c'est très facile, c'est comme si tu indiquais un lieu directement.

Sauf si l'objet est contenu dans un autre objet ;)
Mais sinon j'appuie la remarque d'Otto.


ah oui effectivement. Il faudrait presque tester si le parent est un container, si c'est le cas, on prend son parent, etc.
C'est plus simple dans inform 7 :) -> move player to the location of trucmuche.

Avatar de l’utilisateur
Otto Grimwald
Très Ancien
 
Messages: 3031
Inscription: Mar Aoû 24, 2004 12:02 pm

Re: Questions diverses sous GLULX

Messagepar Yoruk le Jeu Aoû 21, 2008 12:14 pm

Donc en gros j'ai juste à coder :

Code: Tout sélectionner
move bidule to parent(objetinitial) ;


Effectivement, c'est très simple :) .
Yoruk, SATOR AREPO TENET OPERA ROTAS
Avatar de l’utilisateur
Yoruk
Grand Ancien
 
Messages: 1065
Inscription: Lun Juin 11, 2007 9:50 am
Localisation: Chiddes, à 150 mètres du lavoir

Re: Questions diverses sous GLULX et inform

Messagepar Yoruk le Jeu Aoû 21, 2008 7:12 pm

Bon ça avance mais j'ai encore des problèmes... (pensez à faire des sauvegardes d'ailleurs quand vous codez !!)

Je cherche à modifier le message qui s'affiche lorsque le joueur gagne ou pert le jeu. J'ai ajouté la sub suivante, mais elle ne marche pas... ("Expected routine name but found DeathMessage"). Je l'ai prise dans le DM4.

Code: Tout sélectionner
[ DeathMessage;
      if (deadflag == 1)
          print "You have been captured";
];


Ou si vous avez une source à me conseiller.....
Yoruk, SATOR AREPO TENET OPERA ROTAS
Avatar de l’utilisateur
Yoruk
Grand Ancien
 
Messages: 1065
Inscription: Lun Juin 11, 2007 9:50 am
Localisation: Chiddes, à 150 mètres du lavoir

Re: Questions diverses sous GLULX et inform

Messagepar Stormi le Jeu Aoû 21, 2008 7:19 pm

Tu as sûrement défini DeathMessage trop tard dans ton code, après l'inclusion d'une lib qui doit le définir pour toi si tu ne l'as pas fait.
Samuel V.
Avatar de l’utilisateur
Stormi
Grand Ancien
 
Messages: 1207
Inscription: Dim Avr 16, 2006 8:07 pm
Localisation: Lyon

Re: Questions diverses sous GLULX et inform

Messagepar Yoruk le Mer Oct 29, 2008 7:54 am

Existe-il une limitation au niveau de la longueur maximale (en caractères) d'une ligne de code I6 ? J'ai en effet une ligne un peu longue qu'Inform ne veut pas compiler. Il me renvoie une erreur du type "Bare property. self.prop intented ?".... C'est juste une ligne de la forme :

print "blabla [...] fin de blabla";


Je vais tout de même revérifier les lignes d'avant, on ne sait jamais.....
Yoruk, SATOR AREPO TENET OPERA ROTAS
Avatar de l’utilisateur
Yoruk
Grand Ancien
 
Messages: 1065
Inscription: Lun Juin 11, 2007 9:50 am
Localisation: Chiddes, à 150 mètres du lavoir

PrécédenteSuivante

Retourner vers Questions techniques et aide pour votre code

Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 1 invité

cron