Jump to content

Usando setAccountData...


Recommended Posts

Olá a todos! :D

Gostaria que me ajudassem a usar o setAccountData e getAccountData :shock:

string getAccountData ( account theAccount, string key ) 

setAccountData ( account theAccount, string key, string value ) 

O string key é oque? Para que serve? Tenho que criar? Como eu criou? :|:roll:

Podem me dar uns exemplos para ajudar a entender melhor :) ???

Agradeço mais uma vez a todos!

Link to comment

um exemplo que fiz(n tenho certeza se vai funfa).

  
addEventHandler("onPlayerQuit",root, 
function() 
local conta = getPlayerAccount(source) 
if (conta) then 
local vida = getElementHealth(source) 
setAccountData(conta,"vida",vida) 
end 
 end) 
  
 addEventHandler("onPlayerLogin",root, 
function() 
local conta = getPlayerAccount(source) 
if (conta) then 
local Valor = getAccountData (conta,"vida") 
if (Valor) then 
setElementHealth(source,tonumber(Valor)) 
end 
 end 
  end) 

Quando o jogador sair do server, se ele tiver uma conta vamos pegar a vida dele e salva na sua conta, com a string "vida".

Entao quando este logar vai receber a vida de acordo com o numero que foi salvo quando ele saiu. È quase a mesma coisa q set/get ElementData.

Espero ter ajudado!

Link to comment
um exemplo que fiz(n tenho certeza se vai funfa).
  
addEventHandler("onPlayerQuit",root, 
function() 
local conta = getPlayerAccount(source) 
if (conta) then 
local vida = getElementHealth(source) 
setAccountData(conta,"vida",vida) 
end 
 end) 
  
 addEventHandler("onPlayerLogin",root, 
function() 
local conta = getPlayerAccount(source) 
if (conta) then 
local Valor = getAccountData (conta,"vida") 
if (Valor) then 
setElementHealth(source,tonumber(Valor)) 
end 
 end 
  end) 

Quando o jogador sair do server, se ele tiver uma conta vamos pegar a vida dele e salva na sua conta, com a string "vida".

Entao quando este logar vai receber a vida de acordo com o numero que foi salvo quando ele saiu. È quase a mesma coisa q set/get ElementData.

Espero ter ajudado!

Muito interessante, ajudou bastante e já fiz vários testes com essa função!

Gostaria também se tem como eu buscar os valores via getAccountData quando o jogar estiver "Offline" e gostaria de pedir uma mãozinha ;)

Eu estou querendo criar um sistema de gang e queria saber se é possível usar o getAccountData e o setAccountData para fazer esse sistema ou se eu preciso usar XML para salvar a lista das gangs e no caso do XML , se puder, me recomendar algum tutorial ou tópico que me possa ajudar a entender como trabalhar com o XML no lua do MTA

Fico muito! Mas muito grato a você!

Valeu :)

Link to comment

eu fiz esse mod pra salvar item do inventario do meu server:

executeSQLQuery( 'CREATE TABLE IF NOT EXISTS ItensInventarioChao ( model,x,y,z,itemid,id)' ) 
  
addCommandHandler("item", 
function(p,cm,model,itemid) 
local acc = getPlayerAccount(p) 
if isObjectInACLGroup( 'user.'..getAccountName(acc), aclGetGroup ( 'Admin' ) ) then 
local x,y,z = getElementPosition(p) 
--local rx,ry,rz = getElementRotation(p) 
z =z-0.8 
local allLo = executeSQLQuery( "SELECT * FROM ItensInventarioChao" ) 
id = #allLo+ 1 
executeSQLQuery( "INSERT INTO ItensInventarioChao ( model,x,y,z,itemid,id ) VALUES ( "..model..","..x..", "..y..", "..z..", "..itemid..", "..id..")" ) 
print("Criando") 
end 
end) 
  
addCommandHandler("criar", 
function(p) 
local acc = getPlayerAccount(p) 
if isObjectInACLGroup( 'user.'..getAccountName(acc), aclGetGroup ( 'Admin' ) ) then 
local GetAllLom = executeSQLQuery( "SELECT * FROM ItensInventarioChao" ) 
    if ( type ( GetAllLom ) == "table" and #GetAllLom > 0 ) then 
        for i = 1, #GetAllLom do 
            local n = {GetAllLom[i]["model"],GetAllLom[i]["x"], GetAllLom[i]["y"], GetAllLom[i]["z"], GetAllLom[i]["itemid"]} 
            for ii = 1, #n do n[ ii ] = tonumber( n[ ii ] ) end          
            local item = createInventoryObject(n[1],n[2],n[3],n[4],n[5]) 
end 
end 
end 
end) 

a função createInventoryObject é uma funcao que fiz q cria o objeto nas cordenadas e adiciona data a ele.

Com esse script eu n precisei criar nenhum banco de dados nem nada apenas fiz as coisas por script.No caso esses dados sql ficam salvos no mta.

Link to comment
eu fiz esse mod pra salvar item do inventario do meu server:
executeSQLQuery( 'CREATE TABLE IF NOT EXISTS ItensInventarioChao ( model,x,y,z,itemid,id)' ) 
  
addCommandHandler("item", 
function(p,cm,model,itemid) 
local acc = getPlayerAccount(p) 
if isObjectInACLGroup( 'user.'..getAccountName(acc), aclGetGroup ( 'Admin' ) ) then 
local x,y,z = getElementPosition(p) 
--local rx,ry,rz = getElementRotation(p) 
z =z-0.8 
local allLo = executeSQLQuery( "SELECT * FROM ItensInventarioChao" ) 
id = #allLo+ 1 
executeSQLQuery( "INSERT INTO ItensInventarioChao ( model,x,y,z,itemid,id ) VALUES ( "..model..","..x..", "..y..", "..z..", "..itemid..", "..id..")" ) 
print("Criando") 
end 
end) 
  
addCommandHandler("criar", 
function(p) 
local acc = getPlayerAccount(p) 
if isObjectInACLGroup( 'user.'..getAccountName(acc), aclGetGroup ( 'Admin' ) ) then 
local GetAllLom = executeSQLQuery( "SELECT * FROM ItensInventarioChao" ) 
    if ( type ( GetAllLom ) == "table" and #GetAllLom > 0 ) then 
        for i = 1, #GetAllLom do 
            local n = {GetAllLom[i]["model"],GetAllLom[i]["x"], GetAllLom[i]["y"], GetAllLom[i]["z"], GetAllLom[i]["itemid"]} 
            for ii = 1, #n do n[ ii ] = tonumber( n[ ii ] ) end          
            local item = createInventoryObject(n[1],n[2],n[3],n[4],n[5]) 
end 
end 
end 
end) 

a função createInventoryObject é uma funcao que fiz q cria o objeto nas cordenadas e adiciona data a ele.

Com esse script eu n precisei criar nenhum banco de dados nem nada apenas fiz as coisas por script.No caso esses dados sql ficam salvos no mta.

Nossa brigadão mesmo!

Só tenho uma duvida

  
id = #allLo+ 1 
  

Esse # faz oque??

Valeu pela força!

Link to comment
  • 1 month later...

O primeiro argumento da função getAccountData() é a conta do jogador. A conta se obtém por getPlayerAccount() e, para uso desta última, o jogador precisa estar online. Logo, acredito que o getAccountData() também só possa ser usado dessa maneira. Essa função utiliza a base de dados SQLite, nativa do Multi Theft Auto.

Link to comment

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...