Aller au contenu

TMTCPas #1 - Les Fonctions Basiques (Sans le Return)


Messages recommandés

Posté(e)

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 :)

  • J'aime 2
  • 11 mois après...
Posté(e)

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 ? ;)

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.