[GLua] Fonction pour récuperer l'argent arcbank

  • Initiateur de la discussion
Wabel

Wabel

Je ne sais pas quoi mettre
Messages
2 262
Score réaction
707
Points
330
Salut,

J'aimerais savoir comment récuperer l'argent d'un compte bancaire dans un HUD
 
ZarosOVH

ZarosOVH

Modérateur
Membre du Staff
Messages
6 527
Score réaction
5 488
Points
1 295
Ta essayer de télécharger la version gratuite (dispo sur le site du créateur de mémoire) pour voir comment il fais ?
 
  • Initiateur de la discussion
Wabel

Wabel

Je ne sais pas quoi mettre
Messages
2 262
Score réaction
707
Points
330
Zaros_Live à dit:
Ta essayer de télécharger la version gratuite (dispo sur le site du créateur de mémoire) pour voir comment il fais ?
Oui mais j'ai rien trouver dedans :/
 
Darprix

Darprix

Geek suprême
Messages
248
Score réaction
49
Points
130
https://www.aritzcracker.ca/docs/arcbank/
 
  • Initiateur de la discussion
Wabel

Wabel

Je ne sais pas quoi mettre
Messages
2 262
Score réaction
707
Points
330
Darprix à dit:
https://www.aritzcracker.ca/docs/arcbank/
Ah oui merci, même si je comprend pas trop comment l'intégrer dans un HUD :/
 
Valfunde

Valfunde

Helpeur Divin
Messages
3 800
Score réaction
1 235
Points
450
WabelGame à dit:
Ah oui merci, même si je comprend pas trop comment l'intégrer dans un HUD :/
Bah tu cherches la fonction pour afficher l'argent
 
Feytone

Feytone

Chuck Norris
Messages
4 741
Score réaction
1 301
Points
600
Valfunde à dit:
Bah tu cherches la fonction pour afficher l'argent
Si tu sais utiliser le callback de cette fonction tu me dis :
ARCBank.GetBalance(authent, account, function(errorcode, money) end)

Je comprends pas l'utilisation du callback comme il m'a dit
 
  • Initiateur de la discussion
Wabel

Wabel

Je ne sais pas quoi mettre
Messages
2 262
Score réaction
707
Points
330
Feytone à dit:
Si tu sais utiliser le callback de cette fonction tu me dis :
ARCBank.GetBalance(authent, account, function(errorcode, money) end)

Je comprends pas l'utilisation du callback comme il m'a dit
Oui, je comprend pas comment intégrer cette fonction dans un hud :/
 
Dernière édition:
Feytone

Feytone

Chuck Norris
Messages
4 741
Score réaction
1 301
Points
600
Si quelqu'un s'y connait assez... J'attends encore son tweet de retour mais il met 20 ans à répondre (premier tweet que j'ai mis le 7/10)
 
  • Initiateur de la discussion
Wabel

Wabel

Je ne sais pas quoi mettre
Messages
2 262
Score réaction
707
Points
330
Feytone à dit:
Si quelqu'un s'y connait assez... J'attends encore son tweet de retour mais il met 20 ans à répondre (premier tweet que j'ai mis le 7/10)
Le tweet de qui?
 
Feytone

Feytone

Chuck Norris
Messages
4 741
Score réaction
1 301
Points
600
WabelGame à dit:
Le tweet de qui?
Aritz. Il m'a juste dit : ça return rien, il faut utiliser le callback de la fonction. J'ai demandé un exemple pour comprendre mais c'était déjà y'a 4-5 jours.
 
  • Initiateur de la discussion
Wabel

Wabel

Je ne sais pas quoi mettre
Messages
2 262
Score réaction
707
Points
330
Feytone à dit:
Aritz. Il m'a juste dit : ça return rien, il faut utiliser le callback de la fonction. J'ai demandé un exemple pour comprendre mais c'était déjà y'a 4-5 jours.
Ah :/
 
Valfunde

Valfunde

Helpeur Divin
Messages
3 800
Score réaction
1 235
Points
450
Code:
local argentBank = ARCBank.GetBalance(arguments_de_cette_fonction_de_mort)
 
Feytone

Feytone

Chuck Norris
Messages
4 741
Score réaction
1 301
Points
600
Valfunde à dit:
Code:
local argentBank = ARCBank.GetBalance(arguments_de_cette_fonction_de_mort)
Il m'a dit : "these functions don't return anything. So you can't use local balance ="

U have to use the callback function.
 
  • Initiateur de la discussion
Wabel

Wabel

Je ne sais pas quoi mettre
Messages
2 262
Score réaction
707
Points
330
Feytone à dit:
Il m'a dit : "these functions don't return anything. So you can't use local balance ="

U have to use the callback function.
Effectivement sa marche pas
 
Valfunde

Valfunde

Helpeur Divin
Messages
3 800
Score réaction
1 235
Points
450
Feytone à dit:
Il m'a dit : "these functions don't return anything. So you can't use local balance ="

U have to use the callback function.
Faire une fonction "Get" qui return rien x)
 
Feytone

Feytone

Chuck Norris
Messages
4 741
Score réaction
1 301
Points
600
Valfunde à dit:
Faire une fonction "Get" qui return rien x)
C'est ce que je lui ai dis... Je trouve ça complètement con. Et comme y'a aucun exemple pour son callback function, beh je comprends pas ce que je peux faire avec.
 
While True

While True

Geek suprême
Messages
445
Score réaction
395
Points
190
Un callback, 'un appel en retour' signifie que la fonction GetBalance est construite de la sorte :
Code:
 function getblabla( steamid, callback_func ) -- peu importe ce qu'il fait local resSql = query("blablabla", steamid, peu importe) return callback_func(resSql) end
Exemple d'utilisation :
Code:
 -- je veux print le résultat : getblabla( monSteamId, print ) -- pareil que : getblabla( monSteamId, function(res) print(res) end)
Les callback sont souvent utilisés dans les systèmes asynchrones comme avec TMySQL ou MySQLOO.
La fonction envoyée en paramètre est appelée une fois les résultats recus et les données sont envoyées en paramètre de cette fonction.
 
  • J'aime
Réactions: Yoh Sambre ♪ et Valfunde
Valfunde

Valfunde

Helpeur Divin
Messages
3 800
Score réaction
1 235
Points
450
While True à dit:
Un callback, 'un appel en retour' signifie que la fonction GetBalance est construite de la sorte :
Code:
 function getblabla( steamid, callback_func ) -- peu importe ce qu'il fait local resSql = query("blablabla", steamid, peu importe) return callback_func(resSql) end
Exemple d'utilisation :
Code:
 -- je veux print le résultat : getblabla( monSteamId, print ) -- pareil que : getblabla( monSteamId, function(res) print(res) end)
Les callback sont souvent utilisés dans les systèmes asynchrones comme avec TMySQL ou MySQLOO.
La fonction envoyée en paramètre est appelée une fois les résultats recus et les données sont envoyées en paramètre de cette fonction.
Sympa pour le coup je savais pas ^^' ( j'ai pas pris la peine de chercher oui c'est vrai x))
 
While True

While True

Geek suprême
Messages
445
Score réaction
395
Points
190
SUITE :
Déjà il faut apprendre à lire :
nil ARCBank.GetBalance(authent, account, function(errorcode, money) end) (Shared)
- Le nil devant le nom de la fonction signifie que la fonction renvoie nil (rien)
- authent est une entité, ici LocalPlayer() si executé coté client
- account une chaine de carac, je suppose qu'il existe des méthodes pour le trouver
- function(erroccode, money) est une fonction anonyme, qui recois deux param, code erreur et l'argent.
(voir les codes d'erreurs donnés par ARC https://www.aritzcracker.ca/docs/arcbank/errorcode.html)

Pour afficher l'argent ce serait donc un truc du genre :
Code:
 ARCBank.GetBalance( LocalPlayer(), "123456789", function( err, money ) if err == 0 then -- Code erreur 0 => par convention signifie succès de l'operation ou pas d'erreur signalée print("Argent : " .. money ) else -- Code erreur différent de 0 => une erreur est survenue ! print("Erreur : " .. ARCBANK_ERRORSTRINGS[ err ]) end end)
Il suffit de lire la doc, tout est dit, je n'ai pas eu besoin d'autre chose que la doc pour pondre çà.
 
  • J'aime
Réactions: Yoh Sambre ♪, Wabel et Valfunde
  • Initiateur de la discussion
Wabel

Wabel

Je ne sais pas quoi mettre
Messages
2 262
Score réaction
707
Points
330
While True à dit:
SUITE :
Déjà il faut apprendre à lire :

- Le nil devant le nom de la fonction signifie que la fonction renvoie nil (rien)
- authent est une entité, ici LocalPlayer() si executé coté client
- account une chaine de carac, je suppose qu'il existe des méthodes pour le trouver
- function(erroccode, money) est une fonction anonyme, qui recois deux param, code erreur et l'argent.
(voir les codes d'erreurs donnés par ARC https://www.aritzcracker.ca/docs/arcbank/errorcode.html)

Pour afficher l'argent ce serait donc un truc du genre :
Code:
 ARCBank.GetBalance( LocalPlayer(), "123456789", function( err, money ) if err == 0 then -- Code erreur 0 => par convention signifie succès de l'operation ou pas d'erreur signalée print("Argent : " .. money ) else -- Code erreur différent de 0 => une erreur est survenue ! print("Erreur : " .. ARCBANK_ERRORSTRINGS[ err ]) end end)
Il suffit de lire la doc, tout est dit, je n'ai pas eu besoin d'autre chose que la doc pour pondre çà.
Merci beaucoup pour cette explication rapide, simple, efficace. :)
 
Feytone

Feytone

Chuck Norris
Messages
4 741
Score réaction
1 301
Points
600
While True à dit:
Un callback, 'un appel en retour' signifie que la fonction GetBalance est construite de la sorte :
Code:
 function getblabla( steamid, callback_func ) -- peu importe ce qu'il fait local resSql = query("blablabla", steamid, peu importe) return callback_func(resSql) end
Exemple d'utilisation :
Code:
 -- je veux print le résultat : getblabla( monSteamId, print ) -- pareil que : getblabla( monSteamId, function(res) print(res) end)
Les callback sont souvent utilisés dans les systèmes asynchrones comme avec TMySQL ou MySQLOO.
La fonction envoyée en paramètre est appelée une fois les résultats recus et les données sont envoyées en paramètre de cette fonction.
Un peu compliqué à comprendre pour moi... Fin c'est surtout le fait que les données soit envoyées en paramètre d'une fonction elle-même en paramètre...

Par contre l'exemple :

Code:
getblabla( monSteamId, print)
Ici, print c'est quoi juste un nom de fonction ?

Mais après j'ai compris le principe donc je teste actuellement avec cette fonction par exemple puis j'en chercherais une autre pour bien cerner le truc.

AH, au fait, pour ceux qui veulent utiliser la fonction ARCBank : account = "" si vous avez déjà précisé l'authent.
 
While True

While True

Geek suprême
Messages
445
Score réaction
395
Points
190
Feytone à dit:
Code:
getblabla( monSteamId, print)
Ici, print c'est quoi juste un nom de fonction ?
print 'pointe' vers la fonction print (ici G.print). Si j'avais mis print() ca aurait envoyé une erreur car print() est le résultat de l'appel de la fonction print.
Ce que je fais c'est que j'envoie la fonction print en paramètre.

J'aurais pu faire :
Code:
local affiche = function(...) print(...)
end
getblabla( monSteamId, affiche )
 
  • J'aime
Réactions: Valfunde
Feytone

Feytone

Chuck Norris
Messages
4 741
Score réaction
1 301
Points
600
J'up car j'ai du coup tenté là de l'utiliser et bon beh je sais pas, pourtant ça me paraît good à peu près good.

Code:
function core01(len,ply) local steamid = ply:SteamID() local name = ply:Name() ARCBank.GetBalance( ply, "", function( err, money ) if err == 0 then -- Code erreur 0 => par convention signifie succès de l'operation ou pas d'erreur signalée print("Argent : " .. money ) balance = tostring(money) else -- Code erreur différent de 0 => une erreur est survenue ! print("Erreur : " .. ARCBANK_ERRORSTRINGS[ err ]) end end) if sql.TableExists("core_data_users") then return else sql.Query("CREATE TABLE core_data_users ( SteamID TEXT, Name TEXT, BalanceARC TEXT, )") end
if !sql.Query("SELECT SteamID FROM core_data_users WHERE SteamID ='" .. steamid .. "'") then sql.Query("INSERT INTO core_data_users VALUES( SteamID='" .. steamid .. "', Name='" .. name.. "', BalanceARC='" .. balance .. "' )") else sql.Query("UPDATE core_data_users SET Name='" .. name.. "', BalanceARC='" .. balance .. "' WHERE SteamID ='".. steamid .."')") end
end
En l'occurrence, c'est l'utiliser pour l'enregistrer dans une sql qui pose problème.

Et petite question comme ça : pour récupérer une valeur de la sql, faut-il utiliser le tostring ou de base le lua comprend bien qu'un TEXT est un string ?

Code:
local blabla = tostring(sql.Query("SELECT blablalol FROM core_machin WHERE SteamID = "..steamid.."") ou pas ?
 
Dernière édition:
While True

While True

Geek suprême
Messages
445
Score réaction
395
Points
190
Il faut comprendre le principe de synchrone / asynchrone :
Synchrone : Lorsqu’une instruction est exécutée de manière synchrone, il faut attendre la fin d'exécution avant de continuer .
Asynchrone : Lorsqu’une instruction est exécutée de manière asynchrone, on peut continuer sans attendre la fin d’exécution de l'instruction.

Quand tu fais une lecture en utilisant sql.Query, tu vas pouvoir faire :
Code:
 local data = sql.Query( myQueryStr ) print(data)
Le script va alors exécuter l'instruction et une fois qu'il aura une réponse, il l'enverra dans la variable data et 'presque' instantanément, le print sera exécuté.(c'est simplifié mais c'est grossièrement ce qui se passe)
C'est une exécution synchrone

Quand tu fais une lecture en utilisant MySQL OO :
Code:
 local q = db:query("SELECT money FROM table WHERE sid ='blablabla'") -- Called when the query errors, [String] err is the error and [String] sql is the SQL query that caused it. q.onError = function( queryObj , err, sql ) print("Requete : " .. sql) print("Erreur : " .. err ) end -- Called when the query is successful, [Table] data is the data the query returned. q.onSuccess = function( query, data ) ply.money = data[1].money -- colonne 'money' de la première ligne print("Requête effectuée : Le joueur ".. ply:Nick() .. " possède " .. ply.money .. " €") end q:start() print("Requête lancée, en attente de réponse")
Le script va construire une requête, demander au module MySQLOO de l’exécuter.
L’exécution continue, et on affiche "Requête lancée, en attente de réponse"
[DANS LE MEME TEMPS] MySQLOO va lancer la requête, une fois qu'il a une réponse, il va exécuter la fonction onSuccess dans laquelle il envoie les données.

Tu remarqueras qu'on a fait q:Start(); puis le print, et que le print s'affiche avant la réception de données.
C'est de l'exécution asynchrone

Pourquoi j'explique celà ?

Le data provider (fournisseur de données) de ARC Bank fonctionne de manière asynchrone, donc avec des 'Callbacks'.
Le lien avec ce que j'ai dit précédemment, c'est que les fonctions onSuccess de MySQLOO sont typiquement des CallBacks, des fonctions appelées durant/après l'opération.

Dans ton exemple, la variable 'balance' n'existe qu'une fois que le 'callback' a été lancé.
Donc c'est là que tu dois effectuer l'instruction sql.Query
 
Feytone

Feytone

Chuck Norris
Messages
4 741
Score réaction
1 301
Points
600
While True à dit:
Il faut comprendre le principe de synchrone / asynchrone :
Synchrone : Lorsqu’une instruction est exécutée de manière synchrone, il faut attendre la fin d'exécution avant de continuer .
Asynchrone : Lorsqu’une instruction est exécutée de manière asynchrone, on peut continuer sans attendre la fin d’exécution de l'instruction.

Quand tu fais une lecture en utilisant sql.Query, tu vas pouvoir faire :
Code:
 local data = sql.Query( myQueryStr ) print(data)
Le script va alors exécuter l'instruction et une fois qu'il aura une réponse, il l'enverra dans la variable data et 'presque' instantanément, le print sera exécuté.(c'est simplifié mais c'est grossièrement ce qui se passe)
C'est une exécution synchrone

Quand tu fais une lecture en utilisant MySQL OO :
Code:
 local q = db:query("SELECT money FROM table WHERE sid ='blablabla'") -- Called when the query errors, [String] err is the error and [String] sql is the SQL query that caused it. q.onError = function( queryObj , err, sql ) print("Requete : " .. sql) print("Erreur : " .. err ) end -- Called when the query is successful, [Table] data is the data the query returned. q.onSuccess = function( query, data ) ply.money = data[1].money -- colonne 'money' de la première ligne print("Requête effectuée : Le joueur ".. ply:Nick() .. " possède " .. ply.money .. " €") end q:start() print("Requête lancée, en attente de réponse")
Le script va construire une requête, demander au module MySQLOO de l’exécuter.
L’exécution continue, et on affiche "Requête lancée, en attente de réponse"
[DANS LE MEME TEMPS] MySQLOO va lancer la requête, une fois qu'il a une réponse, il va exécuter la fonction onSuccess dans laquelle il envoie les données.

Tu remarqueras qu'on a fait q:Start(); puis le print, et que le print s'affiche avant la réception de données.
C'est de l'exécution asynchrone

Pourquoi j'explique celà ?

Le data provider (fournisseur de données) de ARC Bank fonctionne de manière asynchrone, donc avec des 'Callbacks'.
Le lien avec ce que j'ai dit précédemment, c'est que les fonctions onSuccess de MySQLOO sont typiquement des CallBacks, des fonctions appelées durant/après l'opération.

Dans ton exemple, la variable 'balance' n'existe qu'une fois que le 'callback' a été lancé.
Donc c'est là que tu dois effectuer l'instruction sql.Query
Juste pour m'assurer d'avoir bien compris : ici "balance" est définie uniquement dans le callback. Je ne peux transporter cette variable autre part comme un simple return.

De plus, j'ai déjà de récupérer rien que le nom mais ça me fait une erreur:

Code:
local steamid = LocalPlayer():SteamID() if sql.TableExists("core_data_users") then local nam = sql.Query("SELECT Name FROM core_data_users WHERE SteamID ='" .. steamid .. "'") end
--et juste en dessous dans la même fonction
main.Paint = function(self,w,h) draw.SimpleText(nam.." est ton nom","onebase1",w/2*wi,h/2-70*he,Color(228,241,254,255),1,1) --(ligne 62 ici)
end
Voici l'erreur :
Code:
[ERROR] addons/fr_osone_v0.0.1/lua/autorun/client/one_derma.lua:62: attempt to concatenate global 'nam' (a nil value) 1. unknown - addons/fr_osone_v0.0.1/lua/autorun/client/one_derma.lua:62
et quand je print ma variable, et bien cela me sort false... Comme si je ne pouvais que vérifier par le SELECT si la colonne existait bien[/code]

Encore une fois, merci de m'aider, c'est super sympa :)
 
While True

While True

Geek suprême
Messages
445
Score réaction
395
Points
190
Tu devrais déjà utiliser QueryValue (te revoie directement la première valeur trouvée), Query te revoie un tableau, donc tu dois utiliser data[1].Name
Code:
local steamid = LocalPlayer():SteamID()
local nam = "" -- valable partout dans le reste de la fonction
if sql.TableExists("core_data_users") then nam = sql.QueryValue("SELECT Name FROM core_data_users WHERE SteamID ='" .. steamid .. "'")
end
--et juste en dessous dans la même fonction
main.Paint = function(self,w,h) draw.SimpleText(nam.." est ton nom","onebase1",w/2*wi,h/2-70*he,Color(228,241,254,255),1,1) --(ligne 62 ici)
end
Ici, c'est du asynchrone, donc pas de souci avec des callbacks mais juste avec nam.
Attention aux envirronements; si tu déclare une local dans une fonction ( dans le if ) tu ne peux pas l'utiliser en dehors.
 
Feytone

Feytone

Chuck Norris
Messages
4 741
Score réaction
1 301
Points
600
While True à dit:
Tu devrais déjà utiliser QueryValue (te revoie directement la première valeur trouvée), Query te revoie un tableau, donc tu dois utiliser data[1].Name
Code:
local steamid = LocalPlayer():SteamID()
local nam = "" -- valable partout dans le reste de la fonction
if sql.TableExists("core_data_users") then nam = sql.QueryValue("SELECT Name FROM core_data_users WHERE SteamID ='" .. steamid .. "'")
end
--et juste en dessous dans la même fonction
main.Paint = function(self,w,h) draw.SimpleText(nam.." est ton nom","onebase1",w/2*wi,h/2-70*he,Color(228,241,254,255),1,1) --(ligne 62 ici)
end
Ici, c'est du asynchrone, donc pas de souci avec des callbacks mais juste avec nam.
Attention aux envirronements; si tu déclare une local dans une fonction ( dans le if ) tu ne peux pas l'utiliser en dehors.
Je comprends pas comment utiliser le data[1].Name -> je le mets où ça ?
 
While True

While True

Geek suprême
Messages
445
Score réaction
395
Points
190
Cherche par toi même, autant je peux t'expliquer des concepts, autant tu devrais faire un effort de ton coté.
https://wiki.garrysmod.com/page/sql/Query
https://wiki.garrysmod.com/page/sql/QueryValue
 
  • J'aime
Réactions: slownls
Feytone

Feytone

Chuck Norris
Messages
4 741
Score réaction
1 301
Points
600
While True à dit:
Cherche par toi même, autant je peux t'expliquer des concepts, autant tu devrais faire un effort de ton coté.
https://wiki.garrysmod.com/page/sql/Query
https://wiki.garrysmod.com/page/sql/QueryValue
J'ai essayé ça :

Code:
money = sql.QueryValue("SELECT Name FROM core_data_users WHERE SteamID ='" .. steamid .. "'")[1].Name -- fait pas gaffe au changement de nom
mais toujours rien...
Je comprends pas comment sortir la valeur 1 de la colonne Name du tableau "Name" (du même nom mais c'est bien la sql dont je parle) car je comprends pas le use de data[1].Name dans le type de code que j'ai fais...
 
Feytone

Feytone

Chuck Norris
Messages
4 741
Score réaction
1 301
Points
600
While True à dit:
Cherche par toi même, autant je peux t'expliquer des concepts, autant tu devrais faire un effort de ton coté.
https://wiki.garrysmod.com/page/sql/Query
https://wiki.garrysmod.com/page/sql/QueryValue
Ok pardon... J'avais vraiment mal lu et j'étais un peu fatigué :/
Ok donc j'ai compris qu'il valait mieux utiliser QueryValue et que pour sortir la valeur de la table que me sort sql.Query, il faudra que j'utilise ce type de code : data.[ligne][colonne]
Par contre je ne sais pas à quoi fait référence data -> Est-ce que c'est le tableau que je dois référencer par là (auquel cas il me suffira de SELECT ce dernier via un sql.Query) ou pas ?

Donc j'utilise bien QueryValue mais je remarque que toujours pas, Name ne sort pas.

Je viens donc de vérifier la db (j'ai c/c sv.db sur mon pc et je l'ai ouvert avec DataBase 4) et je n'ai rien. J'ai bien mon core_data_users, j'ai bien les différentes colonnes voulues mais rien dans ces dernières. Voici donc mon code une fois que j'ai appuyé sur le bouton de mon derma (message net au serveur et création de la table serverside) :

Code:
function core01(len,ply) local steamid = ply:SteamID() local name = ply:Name() if !sql.TableExists("core_data_users") then sql.Query("CREATE TABLE core_data_users ( SteamID TEXT, Name TEXT, BalanceARC TEXT )") end ARCBank.GetBalance( ply, "", function( err, money ) if !sql.Query("SELECT SteamID FROM core_data_users WHERE SteamID ='" .. steamid .. "'") then if err == 0 then sql.Query("INSERT INTO core_data_users VALUES( SteamID='" .. steamid .. "', Name='" .. name.. "', BalanceARC='" .. money .. "' )") else print("Erreur enregistrement DB Core : " .. ARCBANK_ERRORSTRINGS[ err ]) sql.Query("INSERT INTO core_data_users VALUES( SteamID='" .. steamid .. "', Name='" .. name.. "')") end else if err == 0 then sql.Query("UPDATE core_data_users SET Name='" .. name.. "', BalanceARC='" .. balance .. "' WHERE SteamID ='".. steamid .."')") else print("Erreur : " .. ARCBANK_ERRORSTRINGS[ err ]) sql.Query("UPDATE core_data_users SET Name='" .. name.. "' WHERE SteamID ='".. steamid .."')") end end end) print("L'argent de "..name.." : "..sql.Query("SELECT BalanceARC FROM core_data_users WHERE SteamID ='"..steamid.."'"))
end
Je présume que c'est donc l'insertion des données qui est foireuse mais pourtant ça me paraît juste, en tout cas, dans la logique...

P.S. : J'ai aussi un nil (j'ai vérifié à quoi ça correspondait dans un Query) quand j'essaie de récupérer dans le print la balance enregistrée. Pourtant pas d'erreurs par le callback quand je souhaite enregistrer tout ça...
 
Feytone

Feytone

Chuck Norris
Messages
4 741
Score réaction
1 301
Points
600
Coucou, j'up car... Beh je comprends pas le délire de ce truc.

Bon normalement j'ai bien compris le principe de l'asynchrone. Je souhaite simplement utiliser l'argument money dans un derma :

Code:
script.Paint = function(self,w,h) -- Informations draw.RoundedBox(4,620*wi,100*he,580*wi,475*he,Color(50,50,50,150)) draw.SimpleText("Les informations sur votre compte","onebase3",910*wi,120*he,Color(255,255,255),1,1) draw.SimpleText("Bank Of America","onebase3",910*wi,135*he,Color(255,255,255),1,1) draw.SimpleText("Titulaire du compte : "..LocalPlayer():Name(),"onebase2",630*wi,170*he,Color(255,255,255),0,0) ARCBank.GetBalance(LocalPlayer(),"",function(errorcode,money) draw.SimpleText("Votre Solde : ","onebase2",630*wi,200*he,Color(255,255,255),0,0) draw.SimpleText(money.."$","onebase2",700*wi,200*he,Color(255,255,255),0,0) end) end
Si vous avez une idée de pourquoi ça ne s'affiche et pourtant sans erreur. Fin des fois ça s'affiche mais genre d'anciennes "sauvegardes" du fichier (genre j'ai mis plus d'espace entre solde et money et à un moment ça s'est affiché les 2 textes mais sans l'espace modifié pourtant).
Je comprends pas le délire.
 
Yoh Sambre ♪

Yoh Sambre ♪

Shaman Fou
Messages
16 289
Score réaction
9 688
Points
1 845
@Makss

MAKE GOOD INDICATION PLS
 
Makss

Makss

Psychopathe
Messages
830
Score réaction
990
Points
310
Feytone à dit:
Coucou, j'up car... Beh je comprends pas le délire de ce truc.

Bon normalement j'ai bien compris le principe de l'asynchrone. Je souhaite simplement utiliser l'argument money dans un derma :

Code:
script.Paint = function(self,w,h) -- Informations draw.RoundedBox(4,620*wi,100*he,580*wi,475*he,Color(50,50,50,150)) draw.SimpleText("Les informations sur votre compte","onebase3",910*wi,120*he,Color(255,255,255),1,1) draw.SimpleText("Bank Of America","onebase3",910*wi,135*he,Color(255,255,255),1,1) draw.SimpleText("Titulaire du compte : "..LocalPlayer():Name(),"onebase2",630*wi,170*he,Color(255,255,255),0,0) ARCBank.GetBalance(LocalPlayer(),"",function(errorcode,money) draw.SimpleText("Votre Solde : ","onebase2",630*wi,200*he,Color(255,255,255),0,0) draw.SimpleText(money.."$","onebase2",700*wi,200*he,Color(255,255,255),0,0) end) end
Si vous avez une idée de pourquoi ça ne s'affiche et pourtant sans erreur. Fin des fois ça s'affiche mais genre d'anciennes "sauvegardes" du fichier (genre j'ai mis plus d'espace entre solde et money et à un moment ça s'est affiché les 2 textes mais sans l'espace modifié pourtant).
Je comprends pas le délire.
C'est peut-être pas une bonne idée de lancer la fonction ARCBank.GetBalance à chaque Paint ?
 
Feytone

Feytone

Chuck Norris
Messages
4 741
Score réaction
1 301
Points
600
Makss à dit:
C'est peut-être pas une bonne idée de lancer la fonction ARCBank.GetBalance à chaque Paint ?
Je me suis dis ça.
Du coup j'ai testé de créer dans la fonction directement un DPanel mais bop, rien de plus non plus. Mais avant ça marchait... Je comprends pas.
 
Discord d'entraide
Rejoignz-nous sur Discord