Besoins d'aide [ glua ]

  • Initiateur de la discussion gigi018
  • Date de début
  • Initiateur de la discussion
gigi018

gigi018

Geek suprême
Messages
105
Score réaction
7
Points
125
Bonjour,

J'aimerai savoir comment je pourrais faire pour que lorsque que l'ont clique sur un bouton, sa créer un fichier "DATA", ou il y a une valeur qui dit par exemple que la personne a déjà pris la récompense.

J'ai déjà essayer avec les :

net.send("valeurs")
net.sendtoserver()

Mais se ne marche pas.


Un solution ?
Vous pouvez mon contacter sur discord: CrazY♻#8738

Merci
 
Guthen

Guthen

è_é
Messages
233
Score réaction
84
Points
150
Il faut utiliser la librairie file, notamment file.Write pour créer et écrire dans le fichier, et file.Read pour lire le fichier.
 
  • J'aime
Réactions: Legende
  • Initiateur de la discussion
gigi018

gigi018

Geek suprême
Messages
105
Score réaction
7
Points
125
Guthen à dit:
Il faut utiliser la librairie file, notamment file.Write pour créer et écrire dans le fichier, et file.Read pour lire le fichier.
Oui, je l'ai dejà mis mais ce que je voudrait faire :

Quand on clique sur un boutton dans le DFrame, dans le fichier client, sa active le file.write dans le fichier server.
J'ai déjà essayer avec net ( net.start("") net.server() ) mais malheureusement sa ne fait rien, comme si il y avait rien.
 
Surevil

Surevil

Geek suprême
Messages
133
Score réaction
47
Points
110
Exemple de net
Net lib
 
  • Initiateur de la discussion
gigi018

gigi018

Geek suprême
Messages
105
Score réaction
7
Points
125
Déjà fait je vais vous donner les lignes de code qui pose problème:

La partie client avec le button:

if playergettimesstatus > 7200 then -- La condition pour avoir la récompense l - Pastebin.com

La partie serveur :

function Initialize() if not file.IsDir( "xdata/achievement", "DATA" ) then - Pastebin.com

Bien sur en mettant dans la partie server :

util.AddNetworkString("condition_server")
 
Surevil

Surevil

Geek suprême
Messages
133
Score réaction
47
Points
110
gigi018 à dit:
Déjà fait je vais vous donner les lignes de code qui pose problème:

La partie client avec le button:

if playergettimesstatus > 7200 then -- La condition pour avoir la récompense l - Pastebin.com

La partie serveur :

function Initialize() if not file.IsDir( "xdata/achievement", "DATA" ) then - Pastebin.com

Bien sur en mettant dans la partie server :

util.AddNetworkString("condition_server")
Quand la partie serveur reçoit le net, elle crée la fonction LoadData qui n'est jamais call, donc elle sert à rien.
D'ailleurs ça sert à rien de le formater en json si c'est juste un 1.
Tu fais aussi une variable globale "data", alors qu'elle devrait être en locale.
 
  • Initiateur de la discussion
gigi018

gigi018

Geek suprême
Messages
105
Score réaction
7
Points
125
Comme ceci ? :

function Initialize() if not file.IsDir( "xdata/achievement", "DATA" ) then - Pastebin.com
 
Shaar

Shaar

Geek suprême
Messages
151
Score réaction
24
Points
100
gigi018 à dit:
Comme ceci ? :

function Initialize() if not file.IsDir( "xdata/achievement", "DATA" ) then - Pastebin.com
ton truc il marche non ?
 
  • Initiateur de la discussion
gigi018

gigi018

Geek suprême
Messages
105
Score réaction
7
Points
125
Dernière édition:
Surevil

Surevil

Geek suprême
Messages
133
Score réaction
47
Points
110
Plutôt comme ça. Mais en vrai c'est pas ouf de faire des milliards de fichiers pour si peu d'informations, autant en faire un principal, et là tu pourras le mettre sous forme de json.
Code:
local function Initialize() if not file.IsDir( "xdata/achievement", "DATA" ) then file.CreateDir( "xdata/achievement", "DATA" ) end
end
hook.Add( "Initialize", "InitializeData", Initialize )
net.Receive("condition_server",function(len, ply) local userDataFile = "xdata/achievement/" .. ply:UniqueID() .. ".txt"
file.Write(userDataFile, "1")
end)
 
Dernière édition:
Guthen

Guthen

è_é
Messages
233
Score réaction
84
Points
150
Surevil à dit:
Plutôt comme ça. Mais en vrai c'est pas ouf de faire des milliards de fichiers pour si peu d'informations, autant en faire un principal, et là tu pourras le mettre sous forme de json.
Code:
function Initialize() if not file.IsDir( "xdata/achievement", "DATA" ) then file.CreateDir( "xdata/achievement", "DATA" ) end
end
hook.Add( "Initialize", "InitializeData", Initialize )
net.Receive("condition_server",function(len, ply) local userDataFile = "xdata/achievement/" .. ply:UniqueID() .. ".txt"
file.Write(userDataFile, "1")
end)
Par contre, mets la fonction Initialize en local (et faudrait changer le nom du net, parce qu'il n'est pas unique du tout).
 
  • Initiateur de la discussion
gigi018

gigi018

Geek suprême
Messages
105
Score réaction
7
Points
125
Oui c'est prévue pour le net,

Sinon pour le local je fait un truc comme sa:

local function Initialize()

Contenue


end

?
 
Guthen

Guthen

è_é
Messages
233
Score réaction
84
Points
150
gigi018 à dit:
Oui c'est prévue pour le net,

Sinon pour le local je fait un truc comme sa:

local function Initialize()

Contenue


end

?
Oui
 
  • Initiateur de la discussion
gigi018

gigi018

Geek suprême
Messages
105
Score réaction
7
Points
125
Guthen à dit:
Tu serais faire que quand on est admin on marque une commande qui ouvre un Dpanel qui affiche un tableau ( comme un scoreboard ) qui marque les valeurs est qu'on puisse les remettre a 0 ?
 
Dernière édition:
Mouloud Hooden

Mouloud Hooden

Geek suprême
Messages
143
Score réaction
60
Points
140
Aussi ton dossier xdata existe bien ?
 
Guthen

Guthen

è_é
Messages
233
Score réaction
84
Points
150
gigi018 à dit:
Tu serais faire que quand on est admin on marque une commande qui ouvre un Dpanel qui affiche un tableau ( comme un scoreboard ) qui marque les valeurs est qu'on puisse les remettre a 0 ?
Oui.
 
  • Initiateur de la discussion
gigi018

gigi018

Geek suprême
Messages
105
Score réaction
7
Points
125
Guthen

Guthen

è_é
Messages
233
Score réaction
84
Points
150
gigi018 à dit:
Pourrait tu m'expliquer comment faire ?
Tu pourrais utiliser :
GM/PlayerSay - Garry's Mod -- détecter un joueur qui écrit dans le tchat
Player/IsAdmin - Garry's Mod -- savoir s'il est admin
Category:net - Garry's Mod -- envoyer un net au client pour ouvrir le panel
Category:DFrame - Garry's Mod ou Category:DPanel - Garry's Mod -- créer ton panel
Category:DListView - Garry's Mod -- créer une liste
player.GetAll - Garry's Mod -- afficher tous les joueurs dans la liste
DermaMenu - Garry's Mod -- afficher un DermaMenu pour Reset le score en cliquant droit sur une ligne de la liste
DMenu/AddOption - Garry's Mod -- ajouter l'option "Reset" dans ton DermaMenu
Category:net - Garry's Mod -- envoyer un net au serveur pour appliquer le changement
file.Write - Garry's Mod -- sauvegarder ton changement
 
  • Initiateur de la discussion
gigi018

gigi018

Geek suprême
Messages
105
Score réaction
7
Points
125
Merci c'est super sympa, je te recontacterez si j'ai un un problème.
Mais je t'avouré que je viens de commencer dans le système d'enregistrement de fichier, c'est pour cela que j'ai besoins d'aide pour quelque truc.
En tous cas Merci de tous ton aide.
Guthen à dit:
Tu pourrais utiliser :
GM/PlayerSay - Garry's Mod -- détecter un joueur qui écrit dans le tchat
Player/IsAdmin - Garry's Mod -- savoir s'il est admin
Category:net - Garry's Mod -- envoyer un net au client pour ouvrir le panel
Category:DFrame - Garry's Mod ou Category:DPanel - Garry's Mod -- créer ton panel
Category:DListView - Garry's Mod -- créer une liste
player.GetAll - Garry's Mod -- afficher tous les joueurs dans la liste
DermaMenu - Garry's Mod -- afficher un DermaMenu pour Reset le score en cliquant droit sur une ligne de la liste
DMenu/AddOption - Garry's Mod -- ajouter l'option "Reset" dans ton DermaMenu
Category:net - Garry's Mod -- envoyer un net au serveur pour appliquer le changement
file.Write - Garry's Mod -- sauvegarder ton changement
 
  • J'aime
Réactions: Guthen
  • Initiateur de la discussion
gigi018

gigi018

Geek suprême
Messages
105
Score réaction
7
Points
125
Pour le coup du coup, je ne dois plus utiliser la fonction ply:UniqueID() dans :

local userDataFile = "xdata/achievement/" .. ply:UniqueID() .. ".txt"

reward = 1


file.Write( userDataFile, reward )
Ou sinon quel est la fonction pour récupérer le ply:UniqueID() du joueur.

Guthen à dit:
Tu pourrais utiliser :
GM/PlayerSay - Garry's Mod -- détecter un joueur qui écrit dans le tchat
Player/IsAdmin - Garry's Mod -- savoir s'il est admin
Category:net - Garry's Mod -- envoyer un net au client pour ouvrir le panel
Category:DFrame - Garry's Mod ou Category:DPanel - Garry's Mod -- créer ton panel
Category:DListView - Garry's Mod -- créer une liste
player.GetAll - Garry's Mod -- afficher tous les joueurs dans la liste
DermaMenu - Garry's Mod -- afficher un DermaMenu pour Reset le score en cliquant droit sur une ligne de la liste
DMenu/AddOption - Garry's Mod -- ajouter l'option "Reset" dans ton DermaMenu
Category:net - Garry's Mod -- envoyer un net au serveur pour appliquer le changement
file.Write - Garry's Mod -- sauvegarder ton changement
 
Surevil

Surevil

Geek suprême
Messages
133
Score réaction
47
Points
110
gigi018 à dit:
Pour le coup du coup, je ne dois plus utiliser la fonction ply:UniqueID() dans :



Ou sinon quel est la fonction pour récupérer le ply:UniqueID() du joueur.
En général j'aime bien aider les gens, mais si tu comptes vraiment apprendre à dev, ça sert à rien de laisser les gens faire ton truc, surtout qu'il est simple. Tu vas jamais apprendre comme ça.
 
  • Initiateur de la discussion
gigi018

gigi018

Geek suprême
Messages
105
Score réaction
7
Points
125
Surevil à dit:
En général j'aime bien aider les gens, mais si tu comptes vraiment apprendre à dev, ça sert à rien de laisser les gens faire ton truc, surtout qu'il est simple. Tu vas jamais apprendre comme ça.
J'ai fait tous le débuts tous seul, mais c'est juste que y'a des choses que j'ai du mal a comprendre, surtout dans comment on prends un données a un joueur, je sais pas si il faut faire ply:GetUniqueID() . Voila c'est pour cela que je pose les question, de plus vue que le forum facepunch a fermer, sa m'aide pas trop des masse car ce forum avec plein de réponse a mes question.

Voilà je pense que se sera la dernière question après je peut me débrouiller tout seul
 
Guthen

Guthen

è_é
Messages
233
Score réaction
84
Points
150
gigi018 à dit:
Pour le coup du coup, je ne dois plus utiliser la fonction ply:UniqueID() dans :



Ou sinon quel est la fonction pour récupérer le ply:UniqueID() du joueur.
Pas compris o_O
 
Shaar

Shaar

Geek suprême
Messages
151
Score réaction
24
Points
100
gigi018 à dit:
Pour le coup du coup, je ne dois plus utiliser la fonction ply:UniqueID() dans :



Ou sinon quel est la fonction pour récupérer le ply:UniqueID() du joueur.
Player/UniqueID - Garry's Mod

je comprend pas :?
 
  • Initiateur de la discussion
gigi018

gigi018

Geek suprême
Messages
105
Score réaction
7
Points
125
Shaar à dit:
Player/UniqueID - Garry's Mod

je comprend pas :?
Guthen à dit:
En gros j'aimerais que sa affiche le temps de jeux dans un dlistview est que l'on puisse remettre a 0 le temps.

Pour l'instant j'ai fait cela mais sa ne marche pas : concommand.Add( "xdata_admin", function( ply, cmd, args ) local adm - Pastebin.com
Ce qui ne marche est le faites que sa affiche comme temps 0 alors que se n'est pas la vraie valeurs.

Si vous avez un solution n'hésitez pas merci.
 
Discord d'entraide
Rejoignz-nous sur Discord