GTAOnline.net
Multi Theft Auto (mta) => Scripting MTA [Lua Center] => Discussion démarrée par: ~CG~FatalTerror le 08 Avril 2011, 21:22:02
-
Bonjours les amis ! :D
Voila, j'ai un nouveau problème :wall.
Tout a l'heure je fesait mes petits scripts pour mon serveur RPG.
C'est une barre d'information sur l'etat du joueur faites avec des images et des labels :-* ( Trop beau )
(http://nsa26.casimages.com/img/2011/04/08/110408094639960597.jpg)
Dont j'ai reussi a la faire fonctionner, le script récupere bien les informations du joueur sur le mode RPG :laugh
Mais j'ai eu la merveilleuse idée de mettre ce script aussi sur mon serveur Race :angelnot .
Donc tout marche SAUF l'argent :blink
J'utilise une base de donnée SQL pour stocker l'argent du joueur, donc je doit récupérer l'argent comme sa:
...
local serial = getPlayerSerial(source)
local nick = getPlayerName(source)
local Money = executeSQLSelect ( "MoneyB", "Money","serial = '" .. serial .. "'")
guiSetText ( labelcash ,tonumber(Money[1]["Money"]).."$" )
...
Mais j'ai vu sur wiki.mtasa.com que executeSQLSelect etait du coté serveur seulement :blink
Mon panel et les guiSetText sont du coté client, dont je me demande bien comment je vais faire pour monter l'argent :bangin
Si je met
local serial = getPlayerSerial(source)
local nick = getPlayerName(source)
local Money = executeSQLSelect ( "MoneyB", "Money","serial = '" .. serial .. "'")
guiSetText ( labelcash ,tonumber(Money[1]["Money"]).."$" )du coté serveur sa va pas aller car (je crois) guiSetText ne fonctionne que en client :boulet
Alors sil vous plait aidez moi :wall
Merci, FatalTerror
-
Tu peut envoyer la valeur de l'argent avec un TriggerEvent ^^
-
Salut FatalTerror,
Alors voici comment tu peux faire:
Server:
addEvent("sendMoneyData", true )
function sendMoneyData()
local serial = getPlayerSerial(source)
local nick = getPlayerName(source)
local Money = executeSQLSelect ( "MoneyB", "Money","serial = '" .. serial .. "'")
triggerClientEvent( source, "changeMoneyLabel", getRootElement(), Money[1]["Money"] )
end
addEventHandler("sendMoneyData", getRootElement(), sendMoneyData )
Client:
function recupTheMoney() -- appelle cette fonction n'importe où dans la partie client pour rafraîchir l'argent ( a condition que le label soit déjà créé )
triggerServerEvent("sendMoneyData", getLocalPlayer() )
end
addEvent("changeMoneyLabel", true )
function changeMoneyLabel(Money)
guiSetText ( labelcash ,tostring(Money).."$" )
end
addEventHandler("changeMoneyLabel", getLocalPlayer(), changeMoneyLabel )
Voilà je pense que sa fonctionne.
-
Grand merci les dieux du LUA :-*