[RELEASE] Choose you'r weapons !

[RELEASE] Choose you'r weapons ! v1

Aucune autorisation de téléchargement
  • Initiateur de la discussion
R

Rayteur

Geek
Messages
87
Score réaction
8
Points
90
Rayteur a posté une nouvelle ressource :

[RELEASE] Choose you'r weapons ! - Script permettant aux joueurs de pouvoir retirer des armes de leurs weapon selector

[RELEASE] Choose you'r weapons !
Cet addon est un addon permettant aux joueurs grâce à une commande "!weapon" de pouvoir enlever des armes de leurs weapon selector de façon permanante, et de pouvoir les réactivez quand ils veulent.

  • Utilisation simple
  • Pas de content
  • Pas de fichier config
  • Fonctionne en Data et non DB

/!\ Lorsqu'un joueur enlève une arme non voulu pour la récupérer il doit respawn afin...
En savoir plus sur cette ressource...
 
Frica_Off

Frica_Off

Geek suprême
Messages
247
Score réaction
37
Points
140
Bonjour, Je trouve sa cool un truc en plus mais pour moi pas très utile, mais pour d'autre oui ! alors c'est cool !
 
Wasied

Wasied

Psychopathe
Messages
909
Score réaction
394
Points
210
Salut,
Je vais te lister quelques conseils, à toi de les prendre ou non ;)

1. "Choose you'r weapons !" -> you'r ne se dit pas, c'est soit your (= tes) ou you're (= tu es)

2. Essaye de corriger les fautes d'orthographe dans ton script (menu, etc...). Cela ne fait pas très professionnel, ça donne une mauvaise impression de départ et c'est dommage alors que l'idée est super chouette !

3. Par fénéantise, on met souvent les fichiers dans le dossier autorun quand c'est un petit script.
C'est vrai que celui-ci ne dépasse pas les 180 lignes donc ce n'est pas très grave, mais à l'avenir n'hésite pas à faire des loaders personnalisés pour tes addons, ça te permet d'organiser ça de façon bien plus propre et surtout d'éviter les problèmes de compatibilité avec les autres systèmes ;-)

4. Pour tes fonctions globales (qui dans ce cas ne servent à rien parce qu'elles ne sont appelées qu'en local, donc tu pourrais les passer en local, mais soit), je te conseille des les intégrer dans une table globale (le nom de ton addon par exemple). De cette façon, le jour où un autre développeur souhaite rendre public un addon compatible avec le tien, il lui suffira juste de vérifier si la table de ton addon existe sur le serveur, et si oui récupérer la fonction qu'il désire dans ta table.
Et en plus, c'est toujours plus propre je trouve :p

Voici un exemple avec ton code :
Ton code actuel:
function commandPanelWeaponRayteur(ply, text, public) local arg = string.Explode( " ", text ) if (arg[1] == '!weapon') then local allPlayerWeaponBanned = file.Read( "rayteurweaponsremove/"..ply:SteamID64()..".txt", "DATA" ) allPlayerWeaponBanned = string.Explode(',', allPlayerWeaponBanned) local tableWeapons = {} table.insert(tableWeapons, allPlayerWeaponBanned) net.Start("openPanelWeaponRayteurRemove") net.WriteString(ply:WeaponBannedRayteur()) net.Send(ply) end
end
Le code que je te recommande:
WeaponRay = WeaponRay or {}
function WeaponRay:OpenPanel(ply, text, public) -- les espaces dans le code ça fait toujours du bien à lire :p local arg = string.Explode( " ", text ) if (arg[1] =="'!weapon") then local allPlayerWeaponBanned = file.Read( "rayteurweaponsremove/"..ply:SteamID64()..".txt", "DATA" ) allPlayerWeaponBanned = string.Explode( ",", allPlayerWeaponBanned ) local tableWeapons = {} table.insert(tableWeapons, allPlayerWeaponBanned) net.Start("openPanelWeaponRayteurRemove") net.WriteString( ply:WeaponBannedRayteur() ) net.Send(ply) end
end
5. Tu as mis ta fonction Meta dans ton fichier côté shared, porké ???
Heureusement tu ne l'utilises que côté serveur, parce que si tu l'appelais côté client, ça n'allait pas fonctionner puisque ça allait créer des fichiers dans le jeu du joueur et pas sur le serveur, et inversément si tu l'appelles depuis le serveur.

Donc, surtout, passe tout ça côté serveur si tu ne l'utilises que côté serveur.

6. Des fois tu utilises des " et d'autres fois tu utilises des '.
Il est important de se définir un "code" de développement que tu vas suivre, et qui va faire l'identité de ton code. Chacun le fait un peu à sa manière, mais si tu commences d'une façon il faut la suivre complètement ;)

Voilà, il y a encore d'autres petits détails mais l'idée est très chouette et j'espère que ça en aidera plus d'un !
 
  • J'aime
Réactions: Rayteur
  • Initiateur de la discussion
R

Rayteur

Geek
Messages
87
Score réaction
8
Points
90
Wasied à dit:
Salut,
Je vais te lister quelques conseils, à toi de les prendre ou non ;)

1. "Choose you'r weapons !" -> you'r ne se dit pas, c'est soit your (= tes) ou you're (= tu es)

2. Essaye de corriger les fautes d'orthographe dans ton script (menu, etc...). Cela ne fait pas très professionnel, ça donne une mauvaise impression de départ et c'est dommage alors que l'idée est super chouette !

3. Par fénéantise, on met souvent les fichiers dans le dossier autorun quand c'est un petit script.
C'est vrai que celui-ci ne dépasse pas les 180 lignes donc ce n'est pas très grave, mais à l'avenir n'hésite pas à faire des loaders personnalisés pour tes addons, ça te permet d'organiser ça de façon bien plus propre et surtout d'éviter les problèmes de compatibilité avec les autres systèmes ;-)

4. Pour tes fonctions globales (qui dans ce cas ne servent à rien parce qu'elles ne sont appelées qu'en local, donc tu pourrais les passer en local, mais soit), je te conseille des les intégrer dans une table globale (le nom de ton addon par exemple). De cette façon, le jour où un autre développeur souhaite rendre public un addon compatible avec le tien, il lui suffira juste de vérifier si la table de ton addon existe sur le serveur, et si oui récupérer la fonction qu'il désire dans ta table.
Et en plus, c'est toujours plus propre je trouve :p

Voici un exemple avec ton code :
Ton code actuel:
function commandPanelWeaponRayteur(ply, text, public) local arg = string.Explode( " ", text ) if (arg[1] == '!weapon') then local allPlayerWeaponBanned = file.Read( "rayteurweaponsremove/"..ply:SteamID64()..".txt", "DATA" ) allPlayerWeaponBanned = string.Explode(',', allPlayerWeaponBanned) local tableWeapons = {} table.insert(tableWeapons, allPlayerWeaponBanned) net.Start("openPanelWeaponRayteurRemove") net.WriteString(ply:WeaponBannedRayteur()) net.Send(ply) end
end
Le code que je te recommande:
WeaponRay = WeaponRay or {}
function WeaponRay:OpenPanel(ply, text, public) -- les espaces dans le code ça fait toujours du bien à lire :p local arg = string.Explode( " ", text ) if (arg[1] =="'!weapon") then local allPlayerWeaponBanned = file.Read( "rayteurweaponsremove/"..ply:SteamID64()..".txt", "DATA" ) allPlayerWeaponBanned = string.Explode( ",", allPlayerWeaponBanned ) local tableWeapons = {} table.insert(tableWeapons, allPlayerWeaponBanned) net.Start("openPanelWeaponRayteurRemove") net.WriteString( ply:WeaponBannedRayteur() ) net.Send(ply) end
end
5. Tu as mis ta fonction Meta dans ton fichier côté shared, porké ???
Heureusement tu ne l'utilises que côté serveur, parce que si tu l'appelais côté client, ça n'allait pas fonctionner puisque ça allait créer des fichiers dans le jeu du joueur et pas sur le serveur, et inversément si tu l'appelles depuis le serveur.

Donc, surtout, passe tout ça côté serveur si tu ne l'utilises que côté serveur.

6. Des fois tu utilises des " et d'autres fois tu utilises des '.
Il est important de se définir un "code" de développement que tu vas suivre, et qui va faire l'identité de ton code. Chacun le fait un peu à sa manière, mais si tu commences d'une façon il faut la suivre complètement ;)

Voilà, il y a encore d'autres petits détails mais l'idée est très chouette et j'espère que ça en aidera plus d'un !

Merci des conseils, je vais essayer de modifier un peux tout sa pour que ce soit plus propre comme travail :)
 
Discord d'entraide
Rejoignz-nous sur Discord