AlfaMTA Posted March 31, 2014 Share Posted March 31, 2014 Olá a todos! Gostaria que me ajudassem a usar o setAccountData e getAccountData 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? Podem me dar uns exemplos para ajudar a entender melhor ??? Agradeço mais uma vez a todos! Link to comment
manawydan Posted April 1, 2014 Share Posted April 1, 2014 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
AlfaMTA Posted April 5, 2014 Author Share Posted April 5, 2014 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
manawydan Posted April 5, 2014 Share Posted April 5, 2014 acho que voce pode usar xml ou sql pra salvar dados quando o jogador estiver ofline. xml: https://wiki.multitheftauto.com/wiki/Se ... _functions sql: https://wiki.multitheftauto.com/wiki/Se ... _functions Na minha opinião sql é melhor, entretanto um pouco mais dificil de mecher. Link to comment
AlfaMTA Posted April 5, 2014 Author Share Posted April 5, 2014 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 Link to comment
manawydan Posted April 5, 2014 Share Posted April 5, 2014 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. Link to comment
manawydan Posted April 5, 2014 Share Posted April 5, 2014 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
AlfaMTA Posted April 6, 2014 Author Share Posted April 6, 2014 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
manawydan Posted April 7, 2014 Share Posted April 7, 2014 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. Link to comment
Stanley Sathler Posted May 10, 2014 Share Posted May 10, 2014 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
Recommended Posts
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 accountSign in
Already have an account? Sign in here.
Sign In Now