Les variables numériques, calculs et conditions
I. Les variables numériques.
Introduction :Une variable numérique est un espace où est stocké une valeur décimal numérique qu'elle soit positive ou négative.
Il y a plusieurs types de variable numérique dans SMBX que voici.
Les variables locales :Les variables (ou bien val), sont des valeurs propres aux niveaux, ils sont accessible dans le menu View -> Variable.
Dans le script, la variable est désignée comme cela :
- Code:
-
Val(NOMDEVARIABLE)
ou
- Code:
-
V(NOMDEVARIABLE)
Les variables globales :Les variables globales (ou bien gval), sont des valeurs propres aux mondes, ces variables apparaissent des niveaux du même dossier que le monde, ils sont accessible dans l'overworld editor, dans le menu Settings -> Global Variables.
Dans le script, la variable globale est désignée comme cela :
- Code:
-
GVal(NOMDEVARIABLE)
Dans les niveaux, les variables globales ne peuvent qu'être modifiés par script.
Les variables systèmes :Les variables système (Systemvariable ou Sysval) sont des valeurs qui se rapporte aux données systèmes, certaines sysvals sont en lecture seul donc non modifiable.
Dans le script, Les variables système sont désignées comme cela :
- Code:
-
Sysval(NOMDEVARIABLE)
Voici la liste des sysvals :
NCount est le nombre d'NPC existant dans le niveau.
BCount est le nombre de bloc existant dans le niveau.
Player1scrX est le coordonné X de la caméra du joueur 1.
Player1scrY est le coordonné Y de la caméra du joueur 1.
Player2scrX est le coordonné X de la caméra du joueur 2.
Player2scrY est le coordonné Y de la caméra du joueur 2.
Playerhealth (modifiable) est le nombre de vie.
CoinCount (modifiable) est le nombre de pièce.
Score (modifiable) est le nombre de score.
StarCount (modifiable) est le nombre d'étoile de SM64.
Param1 est utilisé pour désigner les npcs liés aux scripts, pour les liées, il faut aller dans le fichier txt des npcs avec le code suivant :
- Code:
-
scripts=Lenomduscript
Param2
Je ne sais pas comment ça marche, si quelqu'un a une idée...BPlayer1Health (modifiable) est le nombre e vie du joueur 1 dans le mode battaille.
BPlayer2Health (modifiable) est le nombre e vie du joueur 1 dans le mode battaille.
enablelighting (modifiable) si ce sysval est égale à 1, il met le niveau en noir et laisse un peu de lumière au joueur.
Les variables des joueurs :Ce sont des valeurs qui se rapporte aux personnages, ils sont modifiables.
Dans le script, Les variables des joueurs sont désignées comme cela :
- Code:
-
Char(id).name
id est l'identifiant du joueur. (1 pour joueur 1, 2 pour joueur 2)
name peut correspondre à plusieurs valeur :
X (Valeur Double) désigne la position X du joueur.
Y (Valeur Double) désigne la position Y du joueur.
Status (Valeur Double) désigne l'état du joueur.
InvTime (Valeur Double) désigne le temps d'invinsibilité de l'étoile de SMB1 du joueur.
Xsp (Valeur Double) désigne la vitesse X du joueur.
Ysp (Valeur Double) désigne la vitesse Y du joueur.
ItemSlot (Valeur Double) désigne la monture du joueur.
Itemrsrv (Valeur Double) désigne l'objet dans la réserve du joueur.
brightness (Valeur Double) désigne la taille du cercle lumière autour du joueur. (Marche uniquement si enablelighting est à 1)
id (Valeur Double) désigne le personnage que le joueur incarne.
Les variables des NPCs :Ce sont des valeurs qui se rapporte aux NPCs, ils sont modifiables.
Dans le script, Les variables des NPCs sont désignées comme cela :
- Code:
-
NPC(id).name
id est l'identifiant du npc.
L'id des npc est géré en fonction de l'emplacement du dépard du NPC, le premier est le plus à gauche, mais si un NPC est au dessus de celui-ci, alors son id sera plus proche du 1.
- Exemple:
Si cette variable se situe dans les scripts où le npc est lié et que cela s'adresse à celui-ci, mettez
sysval(Param1).
name peut correspondre à plusieurs valeur :
X (Valeur Double) désigne la position X du npc.
Y (Valeur Double) désigne la position Y du npc.
Xsp (Valeur Double) désigne la vitesse X du npc.
Ysp (Valeur Double) désigne la vitesse Y du npc.
prX (Valeur Double) désigne la position X du dépard du npc.
prY (Valeur Double) désigne la position Y du dépard du npc.
ID (Valeur Double) désigne le numéro graphique du npc.
addvx (Valeur Double) désigne la vitesse X du NPC relative à la platforme.
addvy (Valeur Double) désigne la vitesse Y du NPC relative à la platforme.
facing (Valeur Double) désigne le sens du regard du NPC.
friendly (Valeur Double) désigne si le NPC ne vous fait pas mal.
NoMove (Valeur Double) désigne si le NPC ne bouge pas.
curframe (Valeur Double) désigne la frame actuelle du NPC
health (Valeur Double) désigne les points de vie du NPC
advSet (Valeur Double) désigne les fonction avancé du NPC
permID (Valeur Double+LectureSeul) désigne l'ID permanent du NPC.
alive (Valeur Double) désigne si le NPC est en vie.
Les variables des blocs :Ce sont des valeurs qui se rapporte aux blocs, ils sont modifiables.
Dans le script, Les variables des blocs sont désignées comme cela :
- Code:
-
Block(id).name
id est l'identifiant du bloc, même système que l'id du npc.
name peut correspondre à plusieurs valeur :
X (Valeur Double) désigne la position X du bloc.
Y (Valeur Double) désigne la position Y du bloc.
Xsp (Valeur Double) désigne la vitesse X du bloc.
Ysp (Valeur Double) désigne la vitesse Y du bloc.
id (Valeur Double) désigne le numéro graphique du bloc.
Les variables du timer :Ce sont des valeurs qui se rapporte au timer, ils sont modifiables.
Dans le script, Les variables des blocs sont désignées comme cela :
- Code:
-
lvlTimer(cname)
cname peut correspondre à plusieurs valeur :
X (Valeur Double) désigne la position X du timer.
Y (Valeur Double) désigne la position Y du timer.
Count(Double) désigne les secondes restantes.
Intv(Double) désigne l'intervale de l'écoulement ou de l'augmentation.
Type(Double) désigne si le timer s'écoule ou augmente.
Show(Double) désigne si le timer est montré ou non.
II. Les calcules.
Les calcules sont des outils pour apporter une modification quelconque d'un nombre.
Les symboles mathématique :[+] plus, 1+1=2
[-] moins, 2-1=1
[*]multiplication, 3*4=12
[/] division, 5/4=1.25
[\] division arrondi à l'unité le plus bas, 6\4=1
[^] puissance, 2^3=8
[mod] Le reste, 3 mod 2=1
[()] Donne une priorité au calcul, 2*(1+3)=8
[&] Symbole de liaison, 1&2=12
Les fonctions mathématique :[abs] calcule l'absolu du nombre, abs(-1) = 1 et abs(1) = 1
[atn] Calcule l’arc-tangente, 4*atn(1)=3.141592654...
[cos] Calcule le cosinus de la valeur, cos(3.1415926)=-1
[exp] A le même fonction que la puissance, exp(4) is equal to e^4
[fix] Arrondis inférieurement le nombre à l'unité, fix(4.44)=4,fix(-4.44)=-4
[int] Arrondis le nombre à l'unité, int(4.44)=4,int(-4.44)=-5
[log] Calcule le logarithme de la valeur, log(e)=1
[sgn]
Permet d'avoir le signe de la valeur, sgn(5)=1,sgn(-5)=-1
[sin] Calcule le sinus de la valeur, sin(3.1415926)=0
[sqr] Renvoie la racine carré du nombre, sqr(2) is equal to 2^0.5
[tan] Calcule la tangente de la valeur, tan(3.1415926)=0
[rnd] Donne un nombre décimal aléatoire entre 0 et 1, on peut le multiplier pour élargir le champ aléatoire, 4*rnd
Information à vérifier.III. Les conditions.
Les conditions sont des fonctions qui définit ce que fait l'ordinateur si quelque chose ou non.
Définir la condition :La première ligne de la condition commence toujours par
If (si) suivis de la condition et se termine par
Then. (alors)
En règle général, la condition sera une comparaison d'une variable (ou de string) avec un autre ou un chiffre.
- Code:
-
If "condition" Then
Les comparaisons mathématique :À utiliser entre deux variables.
= Si variable A est égale à variable B.
> Si variable A est supérieur à variable B.
< Si variable A est inférieur à variable B.
<> Si variable A n'est pas égale à variable B.
>= Si variable A est égale ou supérieur à variable B.
<= Si variable A est égale ou inférieur à variable B.
- Code:
-
If val(a) = val(b) Then
Sinon et Sinonsi :Else (Sinon) est utilisé pour exécuter une ou plusieurs actions si la condition n'est pas respecter, il n'est pas obligatoire mais n'est utilisé qu'une seule fois.
Elseif "condition"
Then (Sinonsi) est utilisé pour indiquer une deuxième condition si la première n'a pas été respecté, il n'est pas obligatoire et peut être utilisé plusieurs fois.
Fin de condition :Il se termine juste par un
End if.
C'était un tuto beaucoup plus long avec 3 parties, car le problème est que les explications divergent sur d'autres éléments HS, rendant mon tuto incomplète si j'en parle pas, là on est sûr que il manque rien, si vous avez pas compris quelque chose ou bien s'il y a une erreur ou une faute énorme, prévenez moi dans les messages !