Décomposer un fichier lua en plusieurs

  • Initiateur de la discussion
Peugeot203

Peugeot203

Bambi
Messages
65
Score réaction
4
Points
35
Bonjour à tous,
J'ai un très gros fichier (lua) comportant plusieurs fonctions/utilités différentes. J'aimerai alors le diviser en plusieurs fichiers spécialement dédiés à une utilité en particulier. Je sais que je dois utiliser AddCSLuaFile( string file=current file ) include( "autorun/client/cl_h.lua" ) sauf que ne sais pas quels fichiers mettre à l'intérieur:
J'ai quatre fichiers pour le moment :
Un main : cl_main.lua
Utilité 1 : cl_b.lua
Utilité 2: cl_r.lua
Utilité 33: cl_l.lua
Voici ce que j'ai essayé :
Dans le main :

AddCSLuaFile( "autorun/client/cl_h.lua" )
include( "autorun/client/cl_h.lua" )

Dans le cl_h.lua :
AddCSLuaFile( "autorun/client/cl_main.lua" )

J'appuie alors sur un boutton (dans le cl_main.lua) sensé call la fonction dans le cl_h.lua mais ça ne marche pas :

[ERROR] addons/rtvas/lua/autorun/client/cl_main.lua:737: attempt to call global 'rpart' (a nil value)
1. DoClick - addons/rtvas/lua/autorun/client/cl_main.lua:737
2. unknown - lua/vgui/dlabel.lua:234

Pourriez-vous m'aider s'il vous plait.
Cordialement,
 
Dernière édition:
  • Banni
Esteb.

Esteb.

Esteb's Sheitan
Messages
162
Score réaction
64
Points
160
Peugeot203 à dit:
Bonjour à tous,
J'ai un très gros fichier (lua) comportant plusieurs fonctions/utilités différentes. J'aimerai alors le diviser en plusieurs fichiers spécialement dédiés à une utilité en particulier. Je sais que je dois utiliser AddCSLuaFile( string file=current file ) include( "autorun/client/cl_horsing_races.lua" ) sauf que ne sais pas quels fichiers mettre à l'intérieur:
J'ai quatre fichiers pour le moment :
Un main : cl_main.lua
Utilité 1 : cl_b.lua
Utilité 2: cl_r.lua
Utilité 33: cl_l.lua
Voici ce que j'ai essayé :
Dans le main :

AddCSLuaFile( "autorun/client/cl_h.lua" )
include( "autorun/client/cl_h.lua" )

Dans le cl_h.lua :
AddCSLuaFile( "autorun/client/cl_main.lua" )

J'appuie alors sur un boutton (dans le cl_main.lua) sensé call la fonction dans le cl_h.lua mais ça ne marche pas :

[ERROR] addons/rtvas/lua/autorun/client/cl_main.lua:737: attempt to call global 'rpart' (a nil value)
1. DoClick - addons/rtvas/lua/autorun/client/cl_main.lua:737
2. unknown - lua/vgui/dlabel.lua:234

Pourriez-vous m'aider s'il vous plait.
Cordialement,
C'est une erreur de ta part il faut toujours faire plusieurs fichier dans un addons sinon pour t'y retrouver fait des commentaire à chaque partie.
 
  • Initiateur de la discussion
Peugeot203

Peugeot203

Bambi
Messages
65
Score réaction
4
Points
35
GmodEntrePrise à dit:
C'est une erreur de ta part il faut toujours faire plusieurs fichier dans un addons sinon pour t'y retrouver fait des commentaire à chaque partie.
C'e n'est pas une erreur, c'est juste plus gros à lire. Et je cherche justement à diviser mon gros fichier cl_main comportant les fonctionnalités cl_b, cl_r, cl_l afin de les intégrer dans leurs fichiers respectifs (cl_b etc.. sont vides pour le moment)
 
ALTA

ALTA

Geek suprême
Messages
449
Score réaction
212
Points
150
C'est galère à comprendre quand on commence avec ça. Moi, j'me suis fait une petite fonction qui me trie ce que je dois inclure via le prefixe du fichier (merci nutscript)

Code:
local function inc(path) if path:find("sv_") then if SERVER then include(path) print("Included serversided "..path) end elseif path:find("cl_") then if SERVER then AddCSLuaFile(path) print("Included clientsided "..path) elseif CLIENT then include(path) end elseif path:find("sh_") then if SERVER then print("Included shared "..path) AddCSLuaFile(path) end include(path) end
end
dans ton autorun, qui lui est shared, il vas trier dans le chemin via le préfixe s'il reconnait sv, sh ou cl, puis include ou addcsluafile en fonction de ce préfixe.
si c'est du sv, alors include, sinon si c'est du cl, include en client et addcsluafile côté serveur, et si c'est du shared, include et addcsluafilecôté serveur et include côté client.

En espérant t'avoir répondu
 
  • Initiateur de la discussion
Peugeot203

Peugeot203

Bambi
Messages
65
Score réaction
4
Points
35
ALTA à dit:
C'est galère à comprendre quand on commence avec ça. Moi, j'me suis fait une petite fonction qui me trie ce que je dois inclure via le prefixe du fichier (merci nutscript)

Code:
local function inc(path) if path:find("sv_") then if SERVER then include(path) print("Included serversided "..path) end elseif path:find("cl_") then if SERVER then AddCSLuaFile(path) print("Included clientsided "..path) elseif CLIENT then include(path) end elseif path:find("sh_") then if SERVER then print("Included shared "..path) AddCSLuaFile(path) end include(path) end
end
dans ton autorun, qui lui est shared, il vas trier dans le chemin via le préfixe s'il reconnait sv, sh ou cl, puis include ou addcsluafile en fonction de ce préfixe.
si c'est du sv, alors include, sinon si c'est du cl, include en client et addcsluafile côté serveur, et si c'est du shared, include et addcsluafilecôté serveur et include côté client.

En espérant t'avoir répondu
Nice merci beaucoup !
 
Discord d'entraide
Rejoignz-nous sur Discord