Super Mario Bros. X City

Bienvenue sur la communauté francophone de SMBX ! SMBX est un fangame regroupant les éléments de SMB, SMB2, SMB3, SMW, SM et LoZ permettant de créer ses propres jeux
 
AccueilAccueil  PortailPortail  PublicationsPublications  FAQFAQ  RechercherRechercher  GroupesGroupes  S'enregistrerS'enregistrer  ConnexionConnexion  
Visitez nos partenaires :
Si vous ne possédez pas SMBX ou que vous l'avez perdu, vous pouvez le télécharger ici. Wink
Lisez le panneau d'affichage pour être au courant des dernières infos !
Envie de participer à un jeu interactif avec les autres membres ? SMBX City's RPG : NFC Copyright Quest est fait pour vous !
La ChatBox ne sera plus accessible à partir du 18 juin 2017. Cliquez ici pour plus d'infos.

Partagez | 
 

 Les variables numériques, calculs et conditions

Voir le sujet précédent Voir le sujet suivant Aller en bas 
AuteurMessage
catskart
Toad
Toad
avatar

Messages 611
Date d'inscription 10/10/2010

MessageSujet: Les variables numériques, calculs et conditions   Mer 25 Mai - 17:16

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 !

_________________

by zero wing


Dernière édition par catskart le Dim 9 Oct - 15:53, édité 6 fois
Revenir en haut Aller en bas
JDM
Paffeur
Paffeur
avatar

Messages 378
Date d'inscription 04/09/2012

Fiche personnage RPG
Nom: Wii Fit Trainer
Points Coeur (PC) Points Coeur (PC):
25/25  (25/25)
Points Fleur (PF) Points Fleur (PF):
20/20  (20/20)

MessageSujet: Re: Les variables numériques, calculs et conditions   Mer 25 Mai - 20:56

Quelques réflexions sur :
ABS : calcule l'absolu du nombre, càd abs(-1) = 1 et abs(1) = 1
Quelques problèmes de formulation d'après les exemples que tu donnes :
FIX s'occupe plutôt de virer la partie décimale ; parce que fix(-4.44)=-4 or -4.44 < -4
INT s'occupe d'approximer par défaut (arrondi à l'inférieur) ; parce que l'arrondi de -4.44 est -4

Une question aussi : rnd s'utilise tel quel, on utilise pas des () comme il est d'accoutumée dans les fonctions ? (du style rnd()*4 ?). Et que donne sgn(0) ?

J'ai du mal à voir ce à quoi correspond l'ID des blocs et des ennemis, est-il possible d'avoir un exemple avec un screen sur lesquels sont indiqués les ID ou en tout cas des explications plus détaillées ?

Sinon c'est globalement du bon boulot, merci de nous proposer des références pour scripter ! Bon travail, continue comme ça Wink

_________________

I'm an idiot ^^

Cette signature a été oppotunisée par Opportunix.

Spoiler:
 

Revenir en haut Aller en bas
catskart
Toad
Toad
avatar

Messages 611
Date d'inscription 10/10/2010

MessageSujet: Re: Les variables numériques, calculs et conditions   Mer 25 Mai - 21:45

JDM a écrit:
Quelques réflexions sur :
ABS : calcule l'absolu du nombre, càd abs(-1) = 1 et abs(1) = 1
Quelques problèmes de formulation d'après les exemples que tu donnes :
FIX s'occupe plutôt de virer la partie décimale ; parce que fix(-4.44)=-4 or -4.44 < -4
INT s'occupe d'approximer par défaut (arrondi à l'inférieur) ; parce que l'arrondi de -4.44 est -4

Une question aussi : rnd s'utilise tel quel, on utilise pas des () comme il est d'accoutumée dans les fonctions ? (du style rnd()*4 ?). Et que donne sgn(0) ?

J'ai du mal à voir ce à quoi correspond l'ID des blocs et des ennemis, est-il possible d'avoir un exemple avec un screen sur lesquels sont indiqués les ID ou en tout cas des explications plus détaillées ?

Sinon c'est globalement du bon boulot, merci de nous proposer des références pour scripter ! Bon travail, continue comme ça Wink

Merci de tes remarques, par contre INT n'arrondis pas à l'intérieur je crois, le script help a fait une petite erreur alors. Smile

En fait, rnd est une valeur comme 9 ou 4 mais celui-ci fait un nombre décimal aléatoire entre 0 et 1 (Exemple : 0,57493749...), le fait de le multiplier par 4 augmente le nombre et par conséquente repousser le maximum de l'aléatoire, si tu vois ce que je veux dire.
Donc rnd s'écrit tout seul.
Revenir en haut Aller en bas
JDM
Paffeur
Paffeur
avatar

Messages 378
Date d'inscription 04/09/2012

Fiche personnage RPG
Nom: Wii Fit Trainer
Points Coeur (PC) Points Coeur (PC):
25/25  (25/25)
Points Fleur (PF) Points Fleur (PF):
20/20  (20/20)

MessageSujet: Re: Les variables numériques, calculs et conditions   Jeu 7 Juil - 11:43

sysval(Param2) retourne la manière dont a été activé le script. De ce que j'ai observé :
sysval(Param2) retourne 0 quand il est activé par un event du type Level Start, ou P-Switch ON/OFF, ou un event qui lui même a été activé par un autre event via "trigger".
sysval(Param2) retourne 3 quand il est activé par un event activé lui-même par un NPC (talk, death, active ...)
Je n'en sais pas plus !

_________________

I'm an idiot ^^

Cette signature a été oppotunisée par Opportunix.

Spoiler:
 

Revenir en haut Aller en bas
Contenu sponsorisé




MessageSujet: Re: Les variables numériques, calculs et conditions   

Revenir en haut Aller en bas
 
Les variables numériques, calculs et conditions
Voir le sujet précédent Voir le sujet suivant Revenir en haut 
Page 1 sur 1
 Sujets similaires
-
» enigme
» CABAL + News (saison 9)
» Version Numériques
» Numéro SMS
» Parodies de génériques

Permission de ce forum:Vous ne pouvez pas répondre aux sujets dans ce forum
Super Mario Bros. X City :: SMBX :: Bibliotutos SMBX :: Scripts & LunaDLL-
Sauter vers: