[Codage] Apprendre le Lua sur Gmod [Partie 4]

Arcade

Membre qui ne compte plus ses heures
Membre
22 Janvier 2011
204
0
51
Bonjour,

Titre : Les Fonctions
Difficulté : Moyenne
Temps d'étude estimé : 1 mois ( Quand vous maitriserez bien le LUA )
Commentaire : Nous y voilà donc ! J'ai donc crée ce tutoriel pour vous apprendre à programmer en Lua sur Garry's Mod. L'objectif sera donc de vous faire parvenir à créer de simples scripts à utiliser sur Garry's Mod. Le Lua est souvent utilisé par certains jeux comme World of Warcraft, Far Cry, Sim City 4 et j'en passe..

Tutoriel :



Voici une fonction mathématique :

Code:
f(x)=x²*x-x+11
Sa prend la valeur sa l'élève au carré, sa le multiple par lui même, il s'enlève le même chiffre et se rajoute 11

En informatique cela fonctionne pareil, par exemple un Tronc d'arbre

Code:
Sa prend le tronc d'arbre, sa le coupe, sa en fait 4 bout identique, sa le retransforme en une Chaise...
Voila en gros comment fonctionne une fonction
Une machine robotiser pour un exemple irl

Maintenant, les fonctions dans le lua

[large]Technique[/large]

Déclaration d'une fonction

Code:
function MaFonction ()
print("Ma première fonction")
end
Il est préférable de mettre les fonctions avant le script
Attention de na pas écrire en Français en déclarant votre fonction
function (pour le lua) fonction (en Français)


Cela ne va pas fonction, car la fonction attend que la lance en lui donnant des variables, dans se cas, il attend juste qu'on la lance

Comment, on la lance ?

C'est simple, il faut juste rajouté un mots !
Le nom de votre fonction, nous avons utilisé "MaFonction"
Donc, nous rajoutons :

Code:
MaFonction()
Sauf, que la elle ne sert pas a grand choses cette fonction !

[large]Intégrer Des Valeurs [/large]

Avant, tout il faut savoir comment intégrer une valeur externe, c'est simple :

Code:
function MaFonction(Toto(Variable)) 

print(Toto)
 end

// Il faut maintenant dire se que Toto est
MaFonction("Tu as vu toto")
Donc une fois créer la fonction, dans la suite du code
On rajoute:
MaFonction(Le contenue)
Puis dans la Variable Le contenue sera appeler Toto, et ne pourras pas etre utilisé après le end de la function !
Maintenant, pour voir rapidement si cela fonctionne
Allez dans la console et taper sa :

Code:
lua_run_cl Votre-code.lua
Image de la console:



[large]Avec Les Mathématiques[/large]

Maintenant, les mathématiques en fonction sur le lua

Maintenant, nous allons enfin pouvoir faire nos fonction mathématique en Lua !
Donc dans le code on rajoute un calcul basique :

Code:
x=x²+x-x+11
Maintenant dans la fonction :

Code:
function MaFoncMath(X)

X=X^2+X-X+11
print(X)
end
MaFoncMath(5)
La console indiquera 36
Le symbole ^2 est pour le carré

[large]Avec Les Textes[/large]

Vous pouvez le faire aussi avec des textes, dans l'exemple nous allons voir
comment faire dire Salut ect ...

donc, imaginez, un joueur entre sur le serveur puis reçois un message de salutation

C'est simple sauf que se que je vais faire ne fonctionnera pas, c'est pour vous montrez :

Code:
function Salutation(SonPseudo) 
print("Salut, "..SonPseudo.." n Quoi de beau ?n")
end 

Salutation("Arcade")
Salutation("GarryCITY")
Résultat dans la console :

Salut, Arcade
Quoi de beau ?

Salut, GarryCITY
Quoi de beau ?

[large]Plusieurs Informations Par Fonction[/large]

Oui, vous pouvez y mettre plusieurs variable dans une fonction :
Exemple
Avec des maths :

Code:
function Calcule(Moi,Ca) 
print(Moi+Ca)
end 
Calcule(694,643)
La console indiquera 1337

[large]Les Renvois De Valeur [/large]

Il y a aussi les return dans les fonctions.
Qui permet de renvoyé le résultat ou vous avez demandez votre fonction !
Hein ?
Regardez l'exemple vous allez comprendre :

Code:
function Renvoi(Valeur)
return Valeur
end
print(Renvoi(50))
Dans se cas sa nous donne 50 dans la console

Ou avec un calcule :

Code:
function Renvoi(Valeur)
Valeur=Valeur+50
return Valeur
end
print(Renvoi(50))
Le résultat sera 100.

Source : Boardlink.fr
 

ShOoT

Tester c'est douter
Membre du personnel
Administrateur
Modérateur
Equipe développement
11 Octobre 2009
1 569
450
245
Annonce les sources ;) Merci.
 

Pyroenil

Membre qui ne compte plus ses heures
Membre
3 Février 2010
508
0
51
http://boardlink.fr/bbs/showthread.php?260-TUTORIEL-LUA-Les-fonctions et apparemment tu aimes voler les scripts des autres, m'enfin. J'dis rien hein. T'aurais pu juste préciser tes sources comme l'a dit ShOoT.

"Commentaire : Nous y voilà donc ! J'ai donc crée ce tutoriel pour vous apprendre à programmer en Lua sur Garry's Mod. L'objectif sera donc de vous faire parvenir à créer de simples scripts à utiliser sur Garry's Mod. Le Lua est souvent utilisé par certains jeux comme World of Warcraft, Far Cry, Sim City 4 et j'en passe."

Je devine que c'est toi qui l'a ajouté alors qu'il n'était pas sur le tutoriel d'origine, c'est pas bien tout ça.
 

Arcade

Membre qui ne compte plus ses heures
Membre
22 Janvier 2011
204
0
51
Ok donc avant de t'arracher écoute bien je n'est en aucun préciser que ce tutoriel étais de moi d'accord ensuite pour le script tu ne connais pas l'histoire donc la prochaine fois quand tu n'a rien à faire sur un post merci de rien dire.

Ensuite pour la phrase que j'ai rajouter c'est pour qui ressemble tout simplement au tuto de base qui se trouve ici http://boardlink.fr/bbs/showthread.php?86-TUTORIEL-LUA-Le-commencement. Je t'en veux pas, mais avant de dire quelque chose vérifie, parce-que moi je le prend pas mal osef, mais certaine personne aurais pu le prendre mal.

Donc sujet clos et je met les sources focus ;)
 

Pyroenil

Membre qui ne compte plus ses heures
Membre
3 Février 2010
508
0
51
Oula mais c'est que tu t'énerves vite dis moi.

Sinon, merci pour la source, mais la mettre au début aurait évité cette p'tite histoire. :D

Donc comme tu l'as dit, sujet clos, et on en reparle plus. ;)
 

mignoti

daiveulopeur scripte feau-d'heure
Membre
10 Janvier 2011
307
38
103
Pseudo RP
Renardo Serasa
C'est un vieux tutoriel et je ne crois pas que l'auteur soit toujours actif. Si tu as besoin d'aide pour apprendre le lua ou si tu as une question précise, n'hésite pas a me contacter sur steam / par message privé ou bien a contacter magelfik / l'équipe dev.
 

Sensei

Membre qui ne compte plus ses heures
Membre
14 Avril 2015
136
45
88
Pseudo RP
Horace Tabor
Salut @Swap , aucun test n'a été effectué, et j'ai pas vraiment compris ton problème. M'enfin voici un exemple qui pourra peut être t'aider.

Code:
-- On admet que tronc est un nombre
function decoupe( tronc )

local morceau = {}

for i=1, 4 do
table.insert( morceau, tronc )
end

local chaise = 0

for k, v in pairs(morceau) do
chaise = chaise + v 
end

print( chaise )

end

Cordialement,
Sensei.