Demander une biere au barman, en Glulx

Salut,

Je vous présente Bob le barman :

Object barman "barman" bar
  with name "barman" "homme" "homme au bar" "serveur",
  description [;Affiche(111);print "^Le barman m'a l'air d'un dur à cuire. ^";],
     life [w;
         Tell,Ask,Answer : Affiche(111);
         if (barman.stop==0) {
                 wn=consult_from; 
	 w=NextWord();
        switch(w) {
            'special', 'spécial' : print "^Je me penche vers le barman et lui déclare : ^^~On m'a recommandé
            votre Spécial. ~^^Le barman regarde de tous cotés et répond sans croiser mon regard :^^~Un Spécial, hein ?
            Ce n'est pas donné à tout le monde, vous avez de quoi payer ?~^";barman.stop=1;return 2;
            'boire','whisky','biere','vodka' : print "^Non, j'ai la gorge sèche, mais aucune envie de boire. ^";return 2;
            default : print "^Le barman ne me laisse pas finir ma question maladroitement posée en anglais.^^~Je ne
            sers pas de cela ici, vous voulez quoi ?~^";return 2;
            }
            
         } 
         else {print "^Le barman ne dessere pas les dents. ^";return 2;}
     Kiss : print "^Garde la tête froide, Gilbert. ^";return 2;
     Attack : print "^Je casserai les tables un peu plus tard. ^";return 2;
     Show,Give : if (noun==billets) {
     if (barman.stop==1) {print "^Je lui montre ma petite liasse de grosses coupures en dollars et la range
     bien vite dans ma veste.^^~Ca ira ?~^^~Ca ira.~^^Il fait un signe au videur qui vient ouvrir une porte 
     au fond de la pièce, tout au nord, puis réintégre sa place.^^";barman.stop=2;return 2;}
     else {print "^Je ne vais pas montrer tout ce tas d'argent sans bonne raison. ^";return 2;}
     }
          ],      
        each_turn [v;
        if (barman.stop~=1) {
v = random(10); switch(v) {
1: print "^Le barman prend une commande. ^"; 
2: print "^Le barman remplit consciencieusement deux grands verres de bière avant de les donner à une serveuse. ^";
3: print "^Le barman essuie un verre en me lançant un regard en coin. ^";
4: print "^Le barman sert un coktail à un client. ^";
}}
else {print "^Le barman ne vous lache pas des yeux, attendant quelque chose. ^";}],                
          stop 0,
has animate scenery;

Si je fais : dire biere au barman, ca marche.

Par contre, si je fais :

Demander biere au barman j’ai :

[** Programming error: tried to find the "." of <illegal object number 389312> **]

[** Programming error: (object number 389312)  has no property life to send message **]
Pas de réaction.

Dans les bibliothèques françaises, j’ai remarqué que l’on avait annulé la définition de ‹ demander › dans le sens ‹ d’exiger › mais activé dans le sens de ‹ demander à bobby à propos de la voiture ›.

Néanmoins, en activant cette dernière définition et en neutralisant l’autre, l’erreur persiste.

Y a t il un moyen de corriger cela ?

Merci de votre aide.

JB

j’ai toujours des problèmes pour faire parler le joueur avec les PNJ…
A l’occasion je vais essayer de regarder ton problème…

Après de LONGUES HEURES a essayer de comprendre le problème, j’ai enfin trouvé la solution : la commande ASK (##ASK dans le compilateur) ne fonctionne absolument pas et aboutit sur des erreurs.

La parade consiste a mettre « demander » a coté de « dire » dans les définitions de verbe et de rajouter une syntaxe qui est proche.

Chez moi :

Verb ‹ repondre › ‹ dire › ‹ crier › ‹ demander ›
* creature → Answer ! « dis-lui »
* creature topic → Answer
* ‹ a ›/‹ au ›/‹ aux › creature → Answer
* topic ‹ a ›/‹ au ›/‹ aux › creature → Answer;

JB