Vous n'êtes pas identifié(e). Pour pouvoir écrire ou répondre à un message, vous devez vous connecter ou vous créer un compte sur JAWA.
Pages : 1
Bonjour,
Je cherche à prendre une lettre au hasard dans une chaîne de caractère.
J'ai pensé faire
[_CHAR:MACHAINE:[_RAND:1:10]]
mais ça plante.
J'utilise donc une solution avec une variable intermédiaire et ça fonctionne
variable:TEMP:[_RAND:1:10]
[_CHAR:MACHAINE:{{TEMP}}]
Quelqu'un à un idée de la raison du plantage?
Merci.
Hors ligne
Les effets avant et après la ligne [b][_CHAR:MACHAINE:[_RAND:1:10]][/b] sont exécutés mais pas cette ligne là.
Il y a le halo noir autour de la scène et il ne se passe rien
Il faut que je clique quelque part sur la scène pour débloquer le script.
Pour résumer:
- les effets avant la ligne sont exécutés
- le script bloque sur la ligne
- je clique
- les effets après la ligne sont exécutés
Dernière modification par qc2m (17-09-2020 14:21:53)
Hors ligne
Bonjour,
Pour que [_CHAR:MACHAINE:{{TEMP}}] prenne une lettre de MACHAINE, il faut que MACHAINE soit une variable, sinon ça va extraire le M ou le A ou le C, etc...
Ensuite, la syntaxe correcte donnée par le manuel dans l'exemple est:
variable:TRUC:[_CHAR:Salut:4]
Donc, dans votre cas, il faut écrire:
variable:TRUC:[_CHAR:{{MACHAINE}}:{{TEMP}}]
Mes essais chez moi dans ce sens ont fonctionné, j'espère qu'il en sera de même chez vous.
Hors ligne
Oups! J'ai bien mis {{MACHAINE}} dans mon script. C'est une erreur en recopiant.
Je confirme que ça fonctionne avec la variable TEMP mais pas avec [b][_CHAR:{{MACHAINE}}:[_RAND:1:10]][/b]
Hors ligne
D'après ce que dit qc2m, oui, Marie.
qc2m, je n'avais pas compris que ce que vous retranscriviez n'était pas la totalité de votre code. Donc si vous avez utilisé la bonne syntaxe, c'est que tout simplement on ne peut pas imbriquer 2 fonctions en Jawascript, tout au moins dans ce cas. J'ai essayé en enlevant les crochets, en mettant des parenthèses, rien à faire.
Mais c'est possible en utilisant du javascript à la place de la fonction random. Après une petite recherche sur le net:
[_CHAR:{{MACHAINE}}:Math.random()* (10 - 1) + 1] fonctionne.
Je sais que (10-1) + 1 égale 10 :P mais c'était pour reprendre les valeurs de votre fourchette.
Hors ligne
En fait, c'est même plutôt:
[_CHAR:{{MACHAINE}}:(Math.random()* (10 - 1)) + 1] :rolleyes:
Hors ligne
Alors on arrive à la même conclusion, les deux fonctions ne peuvent pas être imbriquées (au moins dans ce cas). Peut-être dans une évolution de Jawa?
Je n'avais pas pensé à utiliser le javascript. Mais je ne sais pas si je vais opter pour cette solution parce que ça perd un peu en clarté.
En tout cas merci à touTEs les deux d'après pris un peu de temps pour vous penchez sur mon problème.
Dernière modification par qc2m (17-09-2020 15:45:17)
Hors ligne
C'était avec plaisir. C'est bien les petites énigmes en milieu d'après-midi.
Et avec Marie, nous sommes deux passionnéEs.
Hors ligne
Alors merci à touTEs les deux ;)
Hors ligne
Bonjour,
En effet il n'est pas possible d'imbriquer des fonctions jawa [_XXX] les unes dans les autres.
IL faut procéder en 2 étapes /2 lignes (une première pour randomiser le n° de caractère, une seconde pour l'extraire)
Et en effet tout ce qu'on met entre [] peut être évalué comme du JS donc offre plein de possibilités en terme de dev, néanmoins si ça fonctionne bien pendant la partie, cela pourra entraîner une désynchro serveur qui n'utilise pas le même langage (persistance de la partie). En revanche sur un standalone pas de souci.
Z
Merci pour ces explications.
Hors ligne
Pages : 1