GauvainWizard Posté(e) le 18 septembre 2016 Posté(e) le 18 septembre 2016 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 :) 4
Skripting Posté(e) le 18 septembre 2016 Posté(e) le 18 septembre 2016 Super ! C'est toi qui m'avait appris ça en plus^^ ! 2
Joriis Posté(e) le 18 septembre 2016 Posté(e) le 18 septembre 2016 Sympa ! Tu m'apprends encore une fois une nouvelle chose :) Merci beaucoup ! 1
LavaPower Posté(e) le 19 septembre 2016 Posté(e) le 19 septembre 2016 Sympatique cet TMTCPas :) On apprend pas mal de choses 1
Blackmine57 Posté(e) le 1 novembre 2016 Posté(e) le 1 novembre 2016 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!
Gaël Erhlich Posté(e) le 1 novembre 2016 Posté(e) le 1 novembre 2016 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
Skripting Posté(e) le 1 novembre 2016 Posté(e) le 1 novembre 2016 command /calcul <text> <text>: trigger: send "%calcul(arg 1, arg 2)%" # C'est ici que la "réponse" est donné C'est /calcul <number> par <text>
Blackmine57 Posté(e) le 1 novembre 2016 Posté(e) le 1 novembre 2016 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é :'(
Gaël Erhlich Posté(e) le 1 novembre 2016 Posté(e) le 1 novembre 2016 J'ai fais un copié collé :'( Ah ui c'est @GauvainWizard qu'a mis <text> au lieu de <number> à sa commande. Du coup, c'est lui qui doit revoir les fonctions sans return. xd command /calcul <number> <number>: 1
Blackmine57 Posté(e) le 1 novembre 2016 Posté(e) le 1 novembre 2016 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
GauvainWizard Posté(e) le 1 novembre 2016 Auteur Posté(e) le 1 novembre 2016 Oui, excusez moi je suis un noob :c
Blackmine57 Posté(e) le 1 novembre 2016 Posté(e) le 1 novembre 2016 Oui, excusez moi je suis un noob :c Mais, tu m'as pas dis que tu partais une semaine ? :x 1
GauvainWizard Posté(e) le 1 novembre 2016 Auteur Posté(e) le 1 novembre 2016 Mais, tu m'as pas dis que tu partais une semaine ? :x J'ai toujours mon smartphone ^^
Blackmine57 Posté(e) le 1 novembre 2016 Posté(e) le 1 novembre 2016 A oui j'avais pas pensé à ça xD Et petite question : t'es allez ou ? x)
Izychiel Posté(e) le 2 novembre 2016 Posté(e) le 2 novembre 2016 J'adore que vous initiez les gens aux fonctions :3
Messages recommandés
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 compteSe connecter
Vous avez déjà un compte ? Connectez-vous ici.
Connectez-vous maintenant