Opérateurs Logiques

 

Un opérateur est un dérivé direct des mathématiques, il permet de faire des opérations logiques entre Données. Les opérateurs admissibles par le langage sont énumérés dans le tableau ci-dessous:

 

Opérateur Variante Donnée de retour Action
||
Or
Booleen
Ou logique entre deux Booleen
&&
And
Boolean
Et logique entre deux Booleen
!
Not
Boolean
Négation [invertion] de la Donnée
!=
Booleen
Différence entre deux objets
-
Nombre
Oposé du Nombre d'origine
+
Array
Copie un à un instant T du script
=
Rien
Assigne un état à une variable
==
Boolean
Egalité entre deux objets
>
Boolean
Comparaison [inférieur à]
>
Boolean
Comparaison [supérieur à]
<=
Boolean
Compraison [inférieur ou égal à]
>=
Boolean
Comparaison [supérieur ou égal à]
+
De même type
Addition [Nombre, String ou Array]
-
De même type
Soustraction [Nombre ou Array]
*
Nombre
Multiplication
/
Nombre
Division
%
Mod
Nombre
Reste de division entière
Atan2
Nombre
Arc Tangente seconde méthode
Abs
Nombre
La valeur absolue (sans le signe)
Exp
Nombre
Exposant
Ln
Nombre
Logarithme népérien
Log
Nombre
Logarithme base 10
Rad
Nombre
Conversion en Radian de l'angle en Degrès
Deg
Nombre
Conversion en Degrès de l'angle en Radian
Atan
Atg
Nombre
Arc tangeant
Cos
Nombre
Cosinus
Sin
Nombre
Sinus
Tan
Tg
Nombre
Tangeante
Acos
Nombre
Arc cosinus
Asin
Nombre
Arc sinus
Pi
Nombre
Nombre Pi
Nil
Nombre
Valeur vide
Random
Nombre
Nombre aléatoire de 0 à Nombre

 

a =
b =
a && b
a || b
false
false
false
false
true
false
false
true
false
true
false
true
true
true
true
true

 

Quatre opérateurs complémentaires ne peuvent être utilisés mais que dans des scripts externes:

Opérateur
Action
@Boolean Attente que la condition 'Boolean' soit vraie [bloque l'exécutioin du script]
~Nombre Attente que Nombre secondes soient écoulées [bloque l'exécutioin du script]
?Boolean:  Action Test Boolean et si Boolean est vraie alors exécute Action
#Boucle
GoTo  "Boucle"
Ces deux-là sont plus ou moins indissociables. le GoTo permet de faire sauter l'exécution du script à la ligne identifiée par #Boucle [que Boucle soit eu dessus de GoTo ou en dessous]

 

Exemples:

@(Not Alive TheShilka) // aura pour effet de bloquer l'exécution du script jusqu'à ce que l'unité nommée 'TheShilka' soit détruit, @ testera à chaque frame du jeu si la condition est validée.

~12.5 // aura pour effet de bloquer l'exécution du script pendant 12 secondes et demi.

~1/10 // aura pour effet de bloquer l'exécution du script pendant 1 dixième de seconde.

?(Not Alive TheShilka): Hint "Shilka détruit" // aura pour effet d'afficher le texte "Shilka détruit"; si l'unité nommée TheShilka est détruite au moment du test.

 

GoTo "TheEnd"

Action1
Action2

#TheEnd

Dans cet exemple les actions Action1 et Action2 ne seront jamais exécutées, car le GoTo fait sauter l'exécution du script à la ligne identifiée par #TheEnd.

 

#ShilkaVivant

Action2

?(Not Alive TheShilka): GoTo "ShilkaMort"

GoTo "ShilkaVivant"

#ShilkaMort

Action1

Ici le script rentre en #ShilkaVivant puis execute Action2, lit la suite, vois le ? et demande de vérifier la condition (Not Alive TheShilka) elle est fausse donc il passe à la ligne suivante GoTo "ShilkaVivant" là il rechercher la ligne #ShilkaVivant, et lit la suite [Durant ce temps TheShilka est mort], execute Action2 demande à vérifier la condition (Not Alive TheShilka) est vraie, le TheShilka est bien mort donc il execute ce qu'il y a après les : et cherche la ligne #ShilkaMort, execute Action1 et passe à la suite du script.

 

Astuce:

Le Random est une commande bien utile quand l'on veux dynamiser les choses, or cette commande ne marche que dans une partie des Nombres. Cette partie s'étale de Zéro à L'infini positif.

Pour faire le Random d'un nombre négatil il faut ruser, exemple je veux un Random allant de -125 à 145.

Tout d'abord je calcule l'écart entre ses deux nombres: 125+145= 270

Ensuite je fais un Random entre 0 et 270

Enfin je soustrais à se nombre 125

Ainsi mon Random ira bien de -125 à 145

En formule Script sa donnerait:

_minimum < Random < _maximum

_a = ((Abs _minimum) + (Abs _maximum))
_b = (Random _a)
_result = _b - (Abs _minimum)

J'ai bien _result qui sera un Random compri entre _minimum et _maximum

Cette technique marche que _maximum soit positif ou négatif

Page d'Acceuil
Edition
Commandes
Page Script
Aides
Pages Missions
Page Campagne
Page Lien