Page 1 sur 1

Changer la réponse lorsque l'on tape n'importe quoi

MessagePosté: Ven Mai 31, 2019 6:43 pm
par swiart2
Bonjour

Je sèche sur une première règle que je ne trouve pas. D autres suivront certainement...

1/ Lorsque l'on rentre n'importe quoi dans le prompt, le message standard suivant s'affiche "Je ne connais pas ce verbe"
Je souhaite changer ce message. Quel code utiliser.


J'arrive à changer les règles pour différentes choses (exemples ci-dessous) , mais là, impossible
[Agir sur un objet qui n'existe pas]
The parser error internal rule response (E) is "[one of]Je ne connais pas cet objet bizarre.[or]Je ne vois pas cet objet (et vous ?)[cycling]".

[Prendre un objet]
standard report taking rule response (A) is "O.K.".

Merci pour votre aide.

Re: Changer la réponse lorsque l'on tape n'importe quoi

MessagePosté: Dim Juin 02, 2019 10:51 pm
par Natrium
Il suffit de faire comme les autres exemples que tu as donnés et simplement changer la réponse, non ?

Code: Tout sélectionner
The parser error internal rule response (N) is "Réponse personnalisée quand le parser n'a pas compris.".


Pour les erreurs du parser, une autre façon de procéder et d'utiliser l'activité printing a parser error :

Code: Tout sélectionner
Rule for printing a parser error when the latest parser error is the didn't understand error:
    say "Réponse personnalisée quand le parser n'a pas compris." instead.


Mais changer la réponse est plus simple et efficace.

Pour trouver les réponses, il suffit de taper « responses » en jeu pour en avoir la liste, ou ouvrir l'extension française et chercher dans le fichier la réponse à modifier.

Re: Changer la réponse lorsque l'on tape n'importe quoi

MessagePosté: Mar Juin 04, 2019 6:39 pm
par swiart2
Merci pour ta réponse, cela fonctionne.

Mais je n'ai pas compris à quoi correspondent les variations de lettre entre parenthèses.
J'ai vu que l'on pouvait mettre A, B, C , D


Merci

Re: Changer la réponse lorsque l'on tape n'importe quoi

MessagePosté: Jeu Juin 06, 2019 8:11 pm
par Natrium
En fait, les réponses sont nommées selon la règle où elles apparaissent. Les lettres, c'est juste pour différencier les réponses au sein d'une même règle.

Exemple avec une règle bidon :

Code: Tout sélectionner
Instead of jumping (this is the special jump rule):
    if the location is la falaise
        say "Vous sauteriez à votre mort ici." (A);
    else:
        say "Inutile de sauter ici." (B).


Ce code crée deux réponses, la special jump rule response (A), qui est « Vous sauteriez à votre mort ici » et la special jump rule response (B), qui est « Inutile de sauter ici ».

Dans ton cas, ça signifie qu'il y a une règle nommée « parser error internal rule » quelque part dans les Standard Rules, et qu'elle contient une réponse (A), une réponse (B), une réponse (C)… jusqu'à (N) et peut-être plus. Donc au fond, les lettres n'ont pas de signification particulière, ça fait partie du nom des réponses.

Tant qu'on est là, une autre façon d'obtenir le nom des réponses :

Code: Tout sélectionner
Before issuing the response text of a response (called R): say "[R]: ".


Ce code va faire s'afficher le nom des réponses en jeu, avant d'afficher les réponses elles-mêmes.