Aller au contenu

AND(%conditions%) et OR(%conditions%)


Messages recommandés

Posté(e) (modifié)

Une question qui reviens parfois est : est-ce que je peux faire quelque chose comme "if player is alive && player is sneaking:" , la réponse était jusqu'à présent "NON", tu ne peux pas. A présent cela est possible et sera peut être plus tard intégré directement à SkriptLang ( je vous invite a consulter mon sujet pour en savoir plus : https://github.com/SkriptLang/Skript/issues/1468 ).

Pour le moment j'ai une solution qui nécessite l'addon skQuerry-Lime

function AND(conditions: booleans) :: boolean:
    if {_conditions::*} contains false:
        return false
    return true
    
function OR(conditions: booleans) :: boolean:
    if {_conditions::*} contains true:
        return true
    return false

Et il s'utilise de cette façon :

if AND(check [player is alive], check [player is sneaking], check [3+1 = 4]) is true:

 

Normalement les plus malins d'entre vous auront compris le potentiel de ce code, si ce n'est pas encore le cas je vais vous expliquer plus en détail le fonctionnement du code :

Un %boolean% est une valeur soit vrai ou soit fausse, https://skripthub.net/docs/?id=2135

Dans le langage Skript, toutes les conditions renvoient un boolean

exemple :
 

if 3 + 1 = 4:
    broadcast "la condition est VRAI"
else:
    broadcast "la condition est FAUSSE"

Cependant, Skript ne permet pas de faire ceci :

set {_test} to 3 + 1 = 4 #Ne fonctionne pas

Mais il existe une méthode avec l'addon skQuerry-Lime :

set {_test} to check [3 + 1 = 4] #{_test} sera égal à TRUE , l'équivalent en français de VRAI

Maintenant pour ce qui est des fonction AND() et OR() , bien que le code soit très petit, il est extrêmement pratique car c'est ce que l'on appel "une fonction logique", voici un lien Wikipédia pour savoir ce que cela signifie https://fr.wikipedia.org/wiki/Fonction_logique

 

Pour faire simple , une fonction AND ( autrement dis ET en français), renvoie la valeur TRUE uniquement si toutes les conditions sont VRAI, autrement dis il suffit qu'une seule condition soit fausse pour que AND() renvoie FALSE.

 

La fonction OR (  OU en français ) vérifie qu'au minimum 1 condition soit VRAI. Donc il peut y avoir 10 FALSE et 1 TRUE pour que la fonction renvoie TRUE !

 

Il existe d'autres fonctions logique mais ces deux là sont les plus importantes, je vous invite aussi à trouver d'autres usages a "check [%condition%]" !

Modifié par Anarchick
  • J'aime 1
Posté(e)
Le 14/08/2018 à 14:47, Anarchick a dit :

Une question qui reviens parfois est : est-ce que je peux faire quelque chose comme "if player is alive && player is sneaking:" , la réponse était jusqu'à présent "NON", tu ne peux pas. A présent cela est possible et sera peut être plus tard intégré directement à SkriptLang ( je vous invite a consulter mon sujet pour en savoir plus : https://github.com/SkriptLang/Skript/issues/1468 ).

Pour le moment j'ai une solution qui nécessite l'addon sQuerry-Lime


function AND(conditions: booleans) :: boolean:
    if {_conditions::*} contains false:
        return false
    return true
    
function OR(conditions: booleans) :: boolean:
    if {_conditions::*} contains true:
        return true
    return false

Et il s'utilise de cette façon :


if AND(check [player is alive], check [player is sneaking], check [3+1 = 4]) is true:

 

Normalement les plus malins d'entre vous auront compris le potentiel de ce code, si ce n'est pas encore le cas je vais vous expliquer plus en détail le fonctionnement du code :

Un %boolean% est une valeur soit vrai ou soit fausse, https://skripthub.net/docs/?id=2135

Dans le languague Skript, toutes les conditions renvoient un boolean

exemple :
 


if 3 + 1 = 4:
    broadcast "la condition est VRAI"
else:
    broadcast "la condition est FAUSSE"

Cependant, Skript ne permet pas de faire ceci :


set {_test} to 3 + 1 = 4 #Ne fonctionne pas

Mais il existe une méthode avec l'addon sQuerry-Lime :


set {_test} to check [3 + 1 = 4] #{_test} sera égal à TRUE , l'équivalent en français de VRAI

Maintenant pour ce qui est des fonction AND() et OR() , bien que le code soit très petit, il est extrêmement pratique car c'est ce que l'on appel "une fonction logique", voici un lien Wikipédia pour savoir ce que cela signifie https://fr.wikipedia.org/wiki/Fonction_logique

 

Pour faire simple , une fonction AND ( autrement dis ET en français), renvoie la valeur TRUE uniquement si toutes les conditions sont VRAI, autrement dis il s'uffit qu'une seule condition soit fausse pour que AND() renvoie FALSE.

 

La fonction OR ( égal OU en français ) vérifie qu'au minimum 1 condition soit VRAI. Donc il peut y avoir 10 FALSE et 1 TRUE pour que la fonction renvoie TRUE !

 

Il existe d'autres fonctions logique mais ces deux là sont les plus importantes, je vous invite aussi à trouver d'autres usages a "check [%condition%]" !

Et comme indiqué sur mon post du Github, ceci serait très intéressant a intégrer dans le vanilla.

MERCI INDEFINIMENt POUR ça ?

  • Haha 1

Créer un compte ou se connecter pour commenter

Vous devez être membre afin de pouvoir déposer un commentaire

Créer un compte

Créez un compte sur notre communauté. C’est facile !

Créer un nouveau compte

Se connecter

Vous avez déjà un compte ? Connectez-vous ici.

Connectez-vous maintenant
×
×
  • Créer...

Information importante

Nous avons placé des cookies sur votre appareil pour aider à améliorer ce site. Vous pouvez choisir d’ajuster vos paramètres de cookie, sinon nous supposerons que vous êtes d’accord pour continuer.