Jump to content

Usando setAccountData...


Recommended Posts

Posted

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!

Posted

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!

Posted
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 :)

Posted

E tipo se eu usar o SQL eu tenho que ter 2 servidores rodando então?? Tipo o do MTA e o do Base de dados? Ou tem como por tudo no MTA ??

Obrigadão :D

Posted

Então, no sql vc pode tanto usa o banco de dados do mta e ir criando tabelas, colocando dados...

ou voce pode criar um banco de dados do zero e colocar no mta, não necessita ter 2 server pra isso.

Posted

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.

Posted
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!

Posted

retorna o "tamanho" de uma tabela.

ex:

local t ={"a",x,9,"foo"} 
local tamanho = #t 
print(tamanho) 

o print sera 4 porque nossa tabelas apresenta 4 valores.

  • 1 month later...
Posted

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.

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...