Aller au contenu

TMTCPas #1.5 - Les Fonctions "Avancées" (Avec le return)


Messages recommandés

Posté(e)

Salut à tous !

Ce tutoriel est destiné aux personnes qui savent déjà créer des fonctions "basiques" qui ne nécessitent pas de "return".

Si vous ne savez pas créer de fonctions basiques, allez vous renseigner ici >> Cliquer ici

 

Enfin bref, vous êtes ici sur le TMTCPas #1.5 Les Fonctions "Avancées" (Avec le return)

A partir de maintenant, je vais faire comme si vous connaissiez les fonctions.

 

Imaginons que nous souhaitons créer une sorte de calculatrice In-Game qui permette de faire des additions basiques. On va ici utiliser une fonction, bien que ce ne soit pas nécessaire, mais c'est pour l'exemple.

 

Voici la commande:

command /calcul <text> <text>:
   trigger:
       send "%calcul(arg 1, arg 2)%"

 

Vous voyez donc cette ligne :

send "%calcul(arg 1, arg 2)%"

 

En fait, la fonction calcul(), que nous allons créer plus bas, renvoie quelque chose, c'est à dire quel va envoyer un "message" à votre Script (ce "message" peut-être du texte, un nombre, un block, etc...)

 

Voici comment créer une fonction qui renvoie une donnée :

function calcul(first: number, second: number) :: number:
   set {_final} to {_first} + {_seconde} # Ici on fait le calcul
   return {_final} # Ici le envoie la réponse au calcul

 

Si vous êtes habituez aux fonctions basiques, vous avez sans doute remarqué le ":: number" derrière votre fonction, en effet, c'est ce bout de code qui va vous permettre de définir de quel "type" sera la donnée que vous allez renvoyer avec votre fonction.

 

En résumé :

 

function calcul(first: number, seconde: number) :: number: # ":: number" le type de donnée que va renvoyer la fonction
   set {_final} to {_first} + {_second} # Ici le calcul est effectué par la fonction
   return {_final} # Ici on "envoie" la réponse au calcul

command /calcul <number> <text>:
   trigger:
       send "%calcul(arg 1, arg 2)%" # C'est ici que la "réponse" est donné

 

Voilà ! Si tu n'as pas compris ce tutoriel, envoie-moi un MP qu'on règle tout ça ensemble :)

  • J'aime 4
  • 1 mois après...
Posté(e)

J'ai fais un copié collé du code et il y a une erreur :c

[12:09:17 INFO]: [skript] Reloading test.sk...
[12:09:17 ERROR]: The 1st argument given to the function 'calcul' is not of the required type number. Check the correct order of the arguments and put lists into parentheses if appropriate (e.g. 'give(player, (iron ore and gold ore))'). Please note that storing the value in a variable and then using that variable as parameter will suppress this error, but it still won't work. (test.sk, line 7: send "%calcul(arg 1, arg 2)%"# C'est ici que la "rÚponse" est donnÚ')
[12:09:17 INFO]: [skript] Encountered 1 error while reloading test.sk!

Posté(e)
J'ai fais un copié collé du code et il y a une erreur :c

[12:09:17 ERROR]: The 1st argument given to the function 'calcul' is not of the required type number. [...] 'give(player, (iron ore and gold ore))')

 

Le problème est écrit dans le message d'erreur (c'est la base du message d'erreur huh). Tu as mis "player" là où tu as dit que tu donnerais un nombre à ta fonction. Faut revoir les fonctions sans return là. :p

Posté(e)
Le problème est écrit dans le message d'erreur (c'est la base du message d'erreur huh). Tu as mis "player" là où tu as dit que tu donnerais un nombre à ta fonction. Faut revoir les fonctions sans return là. :p

 

C'est /calcul <number> par <text>

 

J'ai fais un copié collé :'(

Posté(e)

A oui c'est vrai qu'avec <number> sa marche mieux =)

je me disais aussi que

'give(player, (iron ore and gold ore))')

était un peu bizarre ^^

 

A je viens de voir il s'est aussi fail avec les variables (second devient seconde) xD

Créer un compte ou se connecter pour commenter

Vous devez être membre afin de pouvoir déposer un commentaire

Créer un compte

Créez un compte sur notre communauté. C’est facile !

Créer un nouveau compte

Se connecter

Vous avez déjà un compte ? Connectez-vous ici.

Connectez-vous maintenant
×
×
  • Créer...

Information importante

Nous avons placé des cookies sur votre appareil pour aider à améliorer ce site. Vous pouvez choisir d’ajuster vos paramètres de cookie, sinon nous supposerons que vous êtes d’accord pour continuer.