TESCS2 : Opérateurs mathématiques de test

De Wiwiki
Aller à la navigation Aller à la recherche


Les opérateurs de test sont utiles dans des expressions logiques, par exemple si on veut comparer l'intelligence du joueur à celle d'un PNJ, où si on veut vérifier qu'une quête est finie ou non, etc...

Voilà un exemple qui vérifie si la santé du joueur est au dessus de 1000 ou non :

 if ( player.GetActorValue health > 1000 )
     Message "Le joueur est très robuste !" 3
 endif

Une expression logique est généralement utilisée dans un test logique.

Dans cet exemple, l'expression logique est "player.GetActorValue health > 1000".

L'opérateur de test qui est utilisé dans cette expression logique est l'opérateur ">" (strictement supérieur).


Voilà la liste des opérateurs de test disponibles sous Oblivion :


Le test d'égalité "=="

Attention, le test d'égalité s'écrit "==" et non pas simplement "=" !!


Il permet de vérifier si deux valeurs sont strictement égales.

Attention, si vous comparez une variable de type float à un entier (short), il y a peu de chances qu'une égalité stricte soit réalisée. Supposons que vous souhaitiez vérifier s'il est 10 heures dans le jeu. Si vous utilisez le test :

 if GameHour == 10

... vous avez de grandes chances que le code contenu dans le test ne soit jamais exécuté. En effet, le temps n'évolue pas de manière continue entre 0 et 24 heures, mais par petites unités : de 0 à 0.0254 heures, puis de 0.0254 à 0.0607 heures, etc...

Il est donc très probable que la variable GameHour ne passe jamais à 10 heures exactement : elle passera plus probablement de 9.983 heures à 10.008 heures, par exemple - et il n'y aura jamais égalité stricte entre la variable et la valeur 10.


Le test de différence "!="

Ce test permet de vérifier si une valeur est différente d'une autre ou non.

Par exemple, le code :

 if ( Martin.GetVampire != 0 )

... vérifie si Martin est un vampire (la fonction GetVampire renvoit la valeur 1 s'il l'est, qui est bien différente de 0).


Le test de supériorité stricte ">"

Ce test permet de vérifier si une valeur est strictement supérieure à une autre ou non.

Par exemple, le code :

 if ( GameHour > 22 )

... vérifie s'il est plus tard que 22 heures dans le jeu.


Le test de supériorité ">="

Ce test permet de vérifier si une valeur est supérieure ou égale à une autre ou non.

Par exemple, le code :

 if ( GetDeadCount dear >= 3 )

... vérifie si trois daims (ou plus) sont morts au cours de la partie.


Le test d'infériorité stricte "<"

Ce test permet de vérifier si une valeur est strictement inférieure à une autre ou non.

Par exemple, le code :

 if ( player.GetItemCount gold_001 < 100 )

... vérifie si le joueur n'a pas assez d'argent pour payer la modique somme de 100 pièces d'or.


Le test d'infériorité "<="

Ce test permet de vérifier si une valeur est inférieure ou égale à une autre ou non.

Par exemple, le code :

 if ( Ocato.GetDistance player <= 150 )

... vérifie si Ocato est distant de 150 unités (ou moins) du joueur.