[Résolu] question : opérateurs, concaténation, et autres

Hep !

Bon encore un topic pour mes questions de noobs mais qui ne trouvent pas de réponses claires dans le wiki et ailleurs (malgré l’essai de plusieurs ressources qui s’en rapprochaient). Par ailleurs je pense poser mes questions de noobs par la suite sur ce même topic afin d’arrêter de les multiplier comme des instances à l’infini !

Alors question 1 : les opérateurs logiques OR AND

J’ai bien trouvé des opérateurs de comparaison (= ; != >= etc.), mais je ne trouve pas comment dans des events je peux utiliser l’opérateur “Ou” (ou “Or” si vous préférez) ; le “et” étant par défaut dans l’ajout d’events et d’actions, le “ou” doit bien exiter… Mais où ?? :open_mouth:

Question 2 : concaténation

J’ai vu un topic ou deux sur le sujet avec des usages de fonctions textes qui me paraissent bien obscures (n’étant pas familiarisé avec la syntaxe de base de ces expressions, et la documentation étant souvent très incomplète sur les paramètres possibles sur les fonctions)… Donc bref, comment qu’on concatène ?

Dans mon exemple j’ai ça : deux objets “enemy_01” et “enemy_02”, je voudrais dans une action avoir qqch comme “enemy_0”.Random(2) pour que l’action soit appliquée à l’un ou l’autre…

Ma syntaxe doit être foireuse, en plus j’imagine que le random commence à 0. Mais bref, j’ai de chose qui vont découler de concaténation comme ça par la suite avec en plus des concaténation de valeur de variables…

Help appréciée ! J’avance vitesse grand V en bidouillant sur mon concept, mais suis rebuter par des questions sans réponses… Je ne manquerai pas d’enrichir le wiki avec les réponses apportées ce qui épargnera bien des topics pour d’autres usagers !

Si tu veux faire un “OU”, tu as au choix :

-La possibilité d’utiliser deux (sous)évènements avec les conditions en question. Le risque, c’est de devoir dupliquer les actions, et la duplication c’est à éviter au maximum.
-La condition “OU” dans la catégorie Avancé : tu ajoute cette condition, puis tu pourra rajouter des “sous conditions” à celle ci. La condition OU s’appliquera sur ces sous conditions et sera valide si au moins une des sous conditions est valide.

Tout dépend de ce que tu veux faire. Si une action ou une condition attend un paramètre texte, utilise simplement + :

Faire ="Votre score est de:"+VariableString(score) au texte de l'objet Score

Tu n’a pas le droit d’utiliser des expressions à la place des noms des objets ! :slight_smile:
Tu verra que quand tu selectionne un objet, rien ne t’incite à écrire ce genre de choses. Si tu veux appliquer une action sur enemy_01 ou enemy_02, tu peux le faire suivant la valeur d’une variable :

[code]Conditions : Rien
Action : Faire =Random(1) à la valeur de la variable Choix

Conditions : La variable Choix vaut 0
Actions : Faire l’action sur Enemy_01

Conditions : La variable Choix vaut 1
Actions : Faire l’action sur Enemy_02[/code]

Ok super merci beaucoup !

En fait c’est pas sur la condition que je veux mettre un “OU” mais sur les actions.

Si tel condition est remplie, alors faire “ça” OU “ça”.

Cela n’a aucun sens. Que veut dire ton “OU” alors ? (Comment GD est-il supposé choisir entre les deux actions ?)

Dans ce cas tu tire une variable aléatoirement (tout comme avant avec mon exemple précédent) et tu fais l’action suivant la valeur de la variable :

[code]Conditions : Tes conditions
Action : Faire =Random(1) à la valeur de la variable Choix
(Eventuellement quelques actions à faire obligatoirement)

Conditions : La variable Choix vaut 0
Actions : Faire telle action

Conditions : La variable Choix vaut 1
Actions : Faire une autre action[/code]

Oki j’ai déjà procéder ainsi une fois, mais je pensais qu’il y aurait une meilleure pratique.

Comme le suggère Victor, faire un OU entre deux actions n’a pas de “sens” au sens logique du terme, d’où le fait qu’il n’y ait pas de OU entre les actions (car une action ne renvoie pas “vrai” ou “faux”).
Par contre, faire une action suivant la valeur d’une variable est un moyen de faire ce OU, et c’est même plus puissant : tu peux faire un OU entre plusieurs actions (pour en choisir une parmi 2,3,4,5…) et tu peux même tirer une grande valeure pour la variable, et suivant l’intervalle, faire telle ou telle action. Ca permet par exemple de pouvoir faire des dégats critiques à un adversaire avec 10% de chance par exemple, et le reste du temps des dégats normaux. :slight_smile: