GauvainWizard Posté(e) le 18 septembre 2016 Posté(e) le 18 septembre 2016 Salut à tous ! Récemment, j'ai eu plusieurs demande d'aide vis à vis des fonctions et aujourd'hui j'ai décidé de lancer ma propre série de tutoriel, les TMTCPas (Toi même tu sais pas). Enfin bref, ce premier tuto sera destiné au fonction basique qui ne nécessite pas de return. Bon, dejà le principe d'une fonction (ou d'un sub), c'est de réduire la taille d'un fichier, ça tu le sais. Exemple: Imaginons que j'ai un skript qui ressemble à ça: on death: if damage was cause by explosion: add 1 to {killstreak.%attacker%} add 1 to {kill.%attacker%} add 1 to {death.%victim%} send "Tu es mort d'explosion." to victim else if damage was cause by lava: add 1 to {killstreak.%attacker%} add 1 to {kill.%attacker%} add 1 to {death.%victim%} send "Tu es mort de lave." to victim else if damage was cause by sword: add 1 to {killstreak.%attacker%} add 1 to {kill.%attacker%} add 1 to {death.%victim%} send "Tu es mort d'épée." to victim (Je sais même pas trop si on peut écrire ça comme ça mais c'est pas trop le problème ^^) Donc bon, là on a clairement un problème, vu qu'on répète à chaque fois la même ^^ Donc ! Comment régler ce problème ! On va créer une fonction ! Alors, toutes fonctions doit être créer de cette manière: function attackerVictim() # code Donc ici, ça devrait ressembler à un truc à peu près comme ça: function attackerVictim() add 1 to {killstreak.%attacker%} add 1 to {kill.%attacker%} add 1 to {death.%victim%} Donc bon, là, si on l'intègre au code comme ça, ça va pas fonctionner : on death: if damage was cause by explosion: attackerVictim() # Ici on appelle la fonction send "Tu es mort d'explosion." to victim else if damage was cause by lava: attackerVictim() send "Tu es mort de lave." to victim else if damage was cause by sword: attackerVictim() send "Tu es mort d'épée." to victim function attackerVictim() add 1 to {killstreak.%attacker%} add 1 to {kill.%attacker%} add 1 to {death.%victim%} Problème : La fonction ne va pas comprendre ce qu'est %victim% et %attacker% donc, on va passer par des "paramètres" que tu peux mettre quand tu créer une fonction, ça ressemble à ça: function attackerVictim(a: player, v: player) # Donc là j'ai crée des variables temporaires dans ma fonction, et j'ai décidé de les parse as player. D'où le "a: player". add 1 to {killstreak.%{_a}%} # Donc ici on remplace %attacker% par %{_a}% (qui représente l'attaquant) add 1 to {kill.%{_a}%} # Ici pareil add 1 to {death.%{_v}%} # Ici on met %{_v}% Sachez que l'on pourrait également mettre des paramètres de fonction de ce type : a: text # Il faudrait alors appeler la fonction dans le code comme ça : attackerVictim("attacker", victim) a: number a: block Donc notre fonction est prête ! Il ne manque plus qu'à l'appeler et on fait comme ça: on death: if damage was cause by explosion: attackerVictim(attacker, victim) # Ici on appelle la fonction, attacker ça va envoyer le pseudo de l'attaquant à la fonction attackerVictim et victim va envoyer le pseudo de la victime à ta fonction ! send "Tu es mort d'explosion." to victim else if damage was cause by lava: attackerVictim(attacker, victim) send "Tu es mort de lave." to victim else if damage was cause by sword: attackerVictim(attacker, victim) send "Tu es mort d'épée." to victim function attackerVictim(a: player, v: player) add 1 to {killstreak.%{_a}%} add 1 to {kill.%{_a}%} add 1 to {death.%{_v}%} Voilà ! Si tu n'as pas compris ce tutoriel, envoie-moi un MP qu'on règle tout ça ensemble :) 2
Joriis Posté(e) le 18 septembre 2016 Posté(e) le 18 septembre 2016 Un bon petit tutoriel :) hâte de voir la suite ^^! 1
Snowach Posté(e) le 18 septembre 2016 Posté(e) le 18 septembre 2016 PLAGIAT DU TUTORIEL QUE TU M'AS ÉCRIT (en MP) ! Ton tutoriel est GÉ-NI-AL ! 2 1
Skripting Posté(e) le 18 septembre 2016 Posté(e) le 18 septembre 2016 Méga tutoriel sympa et moins compliqué que celui de Angelus, GG ! 1
angelus76 Posté(e) le 31 août 2017 Posté(e) le 31 août 2017 Moin compliqué dans quel sens ? Car sa a l'air similaire non ? ( juste qu'ici ont fait des fonction qui ne peuvent pas faire de return) La sintaxe change pas enormement ^^ Donc se sont mes explication qui sont compliquer ? ;)
Shelk Posté(e) le 4 septembre 2017 Posté(e) le 4 septembre 2017 Jle savais un peu mais j’aime bien ce genre de tuto xD joli titre Bonne continuation
Xamez Posté(e) le 9 septembre 2017 Posté(e) le 9 septembre 2017 Très bon tuto mais la fonction se place avant le code nan ? xD 1
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