[Résolu] Instruction Return X, conditions et opérateurs

Le langage des scripts.
Répondre
Avatar du membre
thorel31
Moddeur aspirant
Moddeur aspirant
Messages : 220

Instruction Return X, conditions et opérateurs

Message par thorel31 »

En quoi consiste la fonction Return X (1, 2, 3, 4...etc.) ?
i7-11700F @2.5 GHz/4.9 GHz / ASUS R.S. Z590-F Gaming W. / 32 Go Kingston DDR4 3200 MHz / MSI RTX 3070 SUPRIM X 8Go GDDR6 / Samsung SSD 1To + SATA 2To / Acer 25" G-Sync. 1080p.
(Sept. 2021)
Avatar du membre
Edghar
Traducteur chevronné
Traducteur chevronné
Messages : 796

Re: Return X

Message par Edghar »

Cela met fin à la fonction dans laquelle ce Return est présent. La valeur qui l'accompagne est le résultat fourni par cette fonction.

Plus d'info : http://www.creationkit.com/Statement_Re ... _Statement
Avatar du membre
thorel31
Moddeur aspirant
Moddeur aspirant
Messages : 220

Re: Return X

Message par thorel31 »

Merci, mais j'ai un peu de mal avec l'anglais (niveau scolaire jusqu’en terminale, ça fait donc longtemps... ; bon niveau à l’époque mais plus maintenant).

Bon enfin avec ce que tu m'as dit, je vais voir si je comprends mieux un de mes scripts... ^^
i7-11700F @2.5 GHz/4.9 GHz / ASUS R.S. Z590-F Gaming W. / 32 Go Kingston DDR4 3200 MHz / MSI RTX 3070 SUPRIM X 8Go GDDR6 / Samsung SSD 1To + SATA 2To / Acer 25" G-Sync. 1080p.
(Sept. 2021)
Avatar du membre
thorel31
Moddeur aspirant
Moddeur aspirant
Messages : 220

Re: Return X

Message par thorel31 »

Si j'ai bien saisi, je vais donner cette exemple :

if <machinChose = 3
if condition machinTruc (=faux)
return 3
endif
endif

if <machinChose = 2
if condition machinTruc (=vrai)
return 2
endif
endif

if <machinChose = 1
if condition machinTruc (=vrai ou faux, peu importe à ce stade)
return 1
endif
endif

Donc là ça voudrait dire que la valeur résultat = 2
La commande "return" n’arrête pas la fonction et continue à "descendre" tant que la condition n'est pas remplie, et la fonction s'arrête quand la condition est remplie, "return" met fin alors à la fonction en attribuant la valeur de résultat de la fonction (autrement dit, return renvoie la valeur 2 pour la fonction concernée), c'est bien ça ???
i7-11700F @2.5 GHz/4.9 GHz / ASUS R.S. Z590-F Gaming W. / 32 Go Kingston DDR4 3200 MHz / MSI RTX 3070 SUPRIM X 8Go GDDR6 / Samsung SSD 1To + SATA 2To / Acer 25" G-Sync. 1080p.
(Sept. 2021)
Avatar du membre
Kesta
Maître de Forge
Maître de Forge
Messages : 1077

Re: Return X

Message par Kesta »

Il y a des balise

Code : Tout sélectionner

[code]
[/code] pour poster des snippets comme ça.

La syntaxe de tes if est fausse. Si tu veux faire des "inférieur ou égal", c'est :

Code : Tout sélectionner

if machinChose <= 2
  ;blabla
endif
Et pour ton exemple, tu peux faire un peu plus propre :

Code : Tout sélectionner

if (machinChose <= 2 && machinTruc)
  ;blabla
endif
(en admettant que "condition machinTruc" soit just un booleen)


Pour ce qui est de la valeur retournée ("résultat"), ça dépend des valeurs de machinChose et machinTruc dans ton exemple. Si machinChose vaut quelque chose en dessous de 2 et que machinTruc est true, effectivement la fonction renverra 2.

La fonction ne s'arrête pas quand la condition est remplie, mais quand elle rencontre le mot clé return. Ce qui en pratique dans ton exemple revient au même, mais juste que ce soit clair. (le dernier bloc ne sera pas lu/éxécuté du tout).
Faites un feu à un homme, il aura chaud un jour.
Mettez le feu à un homme, il aura chaud jusqu'à la fin de sa vie.

Terry Pratchett
Avatar du membre
thorel31
Moddeur aspirant
Moddeur aspirant
Messages : 220

Re: Return X

Message par thorel31 »

Script complet :
► Afficher le texte
Voici mon script. Tu as confirmé ce que je pensais.
Je veux bien un complément d'informations si t'y vois un intérêt quelconque ou un défaut...

La partie qui m'intéresse notamment c'est la partie "Heal" / Restoration.

Partie heal qui m'intéresse :

► Afficher le texte
Ah et une autre petite question :
A quoi correspondent ces signes ?
Un des 2 premiers c'est probablement un "Différent" mais je sais pas lequel :
  • * !=
    * /=
    * || (J'imagine un "OU" mais j'en suis pas sûr.)
Je connais ces signes ">=" , "<=" , "==" , "&&", mais pas les autres (ci-dessus).
Modifié en dernier par thorel31 le 16 janv. 2016, 16:03, modifié 3 fois.
i7-11700F @2.5 GHz/4.9 GHz / ASUS R.S. Z590-F Gaming W. / 32 Go Kingston DDR4 3200 MHz / MSI RTX 3070 SUPRIM X 8Go GDDR6 / Samsung SSD 1To + SATA 2To / Acer 25" G-Sync. 1080p.
(Sept. 2021)
Avatar du membre
Edghar
Traducteur chevronné
Traducteur chevronné
Messages : 796

Re: Return X

Message par Edghar »

Pour les signes, ce sont des opérateurs.

Plus d'info : https://www.creationkit.com/index.php?t ... _Reference
Traduction Google (toute moche) : https://translate.google.fr/translate?s ... t=&act=url
Avatar du membre
thorel31
Moddeur aspirant
Moddeur aspirant
Messages : 220

Re: Return X

Message par thorel31 »

Ah ok merci ! :)

Le signe "/=", c'est une affectation ou assignation d'une valeur, c'est ça ?
i7-11700F @2.5 GHz/4.9 GHz / ASUS R.S. Z590-F Gaming W. / 32 Go Kingston DDR4 3200 MHz / MSI RTX 3070 SUPRIM X 8Go GDDR6 / Samsung SSD 1To + SATA 2To / Acer 25" G-Sync. 1080p.
(Sept. 2021)
Avatar du membre
Edghar
Traducteur chevronné
Traducteur chevronné
Messages : 796

Re: Return X

Message par Edghar »

Yep. Jamais testé, mais je pense que cela affecte en divisant, tout comme += affecte en ajoutant.

Code : Tout sélectionner

int MonNombre
MonNombre = 4
MonNombre /= 2
Au final, MonNombre est égal à 2 .
Si je commence avec une valeur de 7 au lieu de 4, le résultat serait 3.

Dans tous les cas, le plus simple serait de faire l'essai. ;)
Avatar du membre
thorel31
Moddeur aspirant
Moddeur aspirant
Messages : 220

Re: Return X

Message par thorel31 »

OK merci. J'apprends peu à peu mais c'est pas évident quand on n'a pas reçu une formation de programmation informatique. J'ai été autodidacte en d'autres domaines (y compris en informatique en général) mais pas en langage pour script (d'ailleurs, j'ai lu quelque part que le langage Papyrus utilisé pour les scripts est unique et a été créé par Bethesda).

Et c'est encore moins facile lorsque la plupart des wiki et tutos sont anglais. Et c'est pas ma formation scolaire d'anglais jusqu'en terminale qui peut beaucoup m'aider aujourd'hui...lol
i7-11700F @2.5 GHz/4.9 GHz / ASUS R.S. Z590-F Gaming W. / 32 Go Kingston DDR4 3200 MHz / MSI RTX 3070 SUPRIM X 8Go GDDR6 / Samsung SSD 1To + SATA 2To / Acer 25" G-Sync. 1080p.
(Sept. 2021)
Répondre

Retourner vers « Entraide sur les scripts »