Demande d'aide pour la création d'un addon

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

Snox

Geek suprême
Messages
79
Score réaction
50
Points
110
Salut ca fait un moment que j'essaye de faire un truc mais j'y arrive pas donc je viens vous demandez votre aide :)

Le principe c'est que quand je clic sur un bouton (dans un menu) ca ajoute ca au joueur qui clic " LocalPlayer():SetNWInt('MaisonPoud', 2) "
le problème c'est que ca ne s'enregistre pas donc si j'essaye de l'appeler avec ca "print(LocalPlayer():GetNWInt('MaisonPoud'))" ca me donne 0 au lieu de 2

donc j'ai essayer de faire un truc comme ca
Code:
function DarkRPInit() MySQLite.query([[CREATE TABLE IF NOT EXISTS poudrp_maison( uid VARCHAR(32) NOT NULL, maisonpoud int NOT NULL, UNIQUE(uid) ); ]])
end
hook.Add("DarkRPDBInitialized", "EpiMaisonPoudlardrp", DarkRPInit)
function DarkRP.retrievePlayermaisonpoud(ply, callback) MySQLite.query("SELECT maisonpoud FROM poudrp_maison WHERE uid = ".. MySQLite.SQLStr(ply:UniqueID())..";", function(r)callback(r)end)
end
function DarkRP.createPlayermaisonpoudData(ply) MySQLite.query([[REPLACE INTO poudrp_maison VALUES(]]..MySQLite.SQLStr(ply:UniqueID()) .. [[,'1','0')]])
end
function DarkRP.retrievePlayermaisonpoudData(ply) DarkRP.retrievePlayermaisonpoud(ply,function(data) if not IsValid(ply) then return end local info = data and data[1] or {} info.maisonpoud = (info.maisonpoud or 0) ply:SetNWInt('maisonpoud', tonumber(info.maisonpoud)) if not data then DarkRP.createPlayermaisonpoudData(ply) end end)
end
function DarkRP.storemaisonpoudData(ply, maisonpoud) maisonpoud = math.max(maisonpoud,0) MySQLite.query("UPDATE poudrp_maison SET maisonpoud = " ..MySQLite.SQLStr(maisonpoud) .." WHERE uid = "..MySQLite.SQLStr(ply:UniqueID()))
end
mais ca change rien pouvez vous m'aidé ?
 
thepsyca

thepsyca

Psychopathe
Messages
2 164
Score réaction
648
Points
365
- uid est sous la forme varchar dans ta table or la fonction UniqueID renvoie un entier.

- Il est recommandé d'utiliser des fonctions comme AccountID, SteamID, SteamID64 au lieu de UniqueID.

- Tu n'as pas besoin d'utiliser SQLStr dans tes clauses "WHERE" de requête

- Pour insérer un tuple ( champ ) dans la DB utilise "insert into".

- Dans ton "REPLACE" tu fais référence à trois colonnes or tu n'en as que deux.

- Tu ferais mieux de mettre tes vérifications au début de tes codes c'est plus logique.

- N'hésite pas à mettre certaines de tes fonctions en local ( DarkRPInit ).
 
Discord d'entraide
Rejoignz-nous sur Discord