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!

- C#|VB|Pascal Programmer

- Lua Script Beginner

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!

560x95_FFFFFF_09FF00_050505_000000.png

"Querer não é poder, mas tentar é avançar"!

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

- C#|VB|Pascal Programmer

- Lua Script Beginner

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

- C#|VB|Pascal Programmer

- Lua Script Beginner

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.

560x95_FFFFFF_09FF00_050505_000000.png

"Querer não é poder, mas tentar é avançar"!

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.

560x95_FFFFFF_09FF00_050505_000000.png

"Querer não é poder, mas tentar é avançar"!

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!

- C#|VB|Pascal Programmer

- Lua Script Beginner

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.

560x95_FFFFFF_09FF00_050505_000000.png

"Querer não é poder, mas tentar é avançar"!

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

Software Engineer & Entrepreneur Running Lustrel and VilarikA • Highly engaged on open source community

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