Jump to content

[AJUDA] Salvar Datas


Recommended Posts

Posted (edited)

Bem três topicos em um dia ;-; devo se burro para fica quase toda hora aqui mas vamos direto para a explicação.

Seguinte to tentando Salvar data do Item mas toda vez que eu reconnect  servidor/restart o script o valor volta padrão e não o salvo. Digamos gastei uma água ai do painel ia fica 4/5 como não salvar quando eu saio do servidor e volta para o 5/5.

Espero que tenham entendidos.
Queria pedir desculpas por fazer topicos quase toda hora
 

Server_side

Quote

function Salvar_Itens_Agua(conta)
    if conta then
        local source = getAccountPlayer(conta)
        if isElement(source) then
            local ItemAgua = getElementData(source,"Agua") or 0
            setAccountData(conta, "ItemAgua",tonumber(ItemAgua))
        end
    end 
end
function Carregar_Itens_Agua(conta)
    if not (isGuestAccount (conta)) then
        if (conta) then 
            local source = getAccountPlayer(conta)  
            if isElement(source) then
                local ItemsAgua = getAccountData(conta,"ItemsAgua")
                if type(ItemsAgua) == "boolean" or "ItemsAgua" == nil then
                    ItemsAgua = 0
                end
                setElementData(source, "Agua", tonumber(ItemsAgua))                       
            end
        end
    end 
end

addEventHandler("onPlayerLogin", root,
  function(_, acc)
    setTimer(Carregar_Itens_Agua,1000,1,acc)
  end
)

function Salvar_Itens_Script_Carregar(res)
    if res == getThisResource() then
        for i, player in ipairs(getElementsByType("player")) do
            local acc = getPlayerAccount(player)
            if not isGuestAccount(acc) then
                Carregar_Itens_Agua(acc)          
            end
        end
    end
end
addEventHandler("onResourceStart", getRootElement(), Salvar_Itens_Script_Carregar)

function Salvar_Itens_Script_Descarregar(res)
    if res == getThisResource() then
        for i, player in ipairs(getElementsByType("player")) do
            local acc = getPlayerAccount(player)
            if not isGuestAccount(acc) then
                Carregar_Itens_Agua(acc)          
            end
        end
    end
end
addEventHandler("onResourceRestart", getRootElement(), Salvar_Itens_Script_Descarregar)

function Salvar_Itens_Script_Desligar(res)
    if res == getThisResource() then
        for i, player in ipairs(getElementsByType("player")) do
            local acc = getPlayerAccount(player)
            if not isGuestAccount(acc) then
                Salvar_Itens_Agua(acc)   
            end
        end
    end
end 
addEventHandler("onResourceStop", getRootElement(), Salvar_Itens_Script_Desligar)



function Salvar_Itens_Sair(quitType)
    local acc = getPlayerAccount(source)
    if not (isGuestAccount(acc)) then
        if acc then
            Salvar_Itens_Agua(acc)
        end
    end
end
addEventHandler("onPlayerQuit", getRootElement(), Salvar_Itens_Sair)

 

 

Edited by +[T]rakin
Posted (edited)

 

function Salvar_Itens_Sair(quitType)
    local acc = getPlayerAccount(source)
    if not (isGuestAccount(acc)) then
        if acc then
            Salvar_Itens_Agua(acc)
        end
    end
end
addEventHandler("onPlayerQuit", getRootElement(), Salvar_Itens_Sair)
function Salvar_Itens_Agua(conta)
    if conta then
        local source = getAccountPlayer(conta) --< CONTA DE UM CARA QUE QUITO?
        if isElement(source) then
            local ItemAgua = getElementData(source,"Agua") or 0 ---< como ele vai pega o elemento do cara se ele quito?
            setAccountData(conta, "ItemAgua",tonumber(ItemAgua))
        end
    end 
end

so pensa comigo

como vai pega elemento? se o cara quito? so pensa um pouco

 

toda essa função se torna nula

Edited by brunob22
  • Thanks 1
  • Moderators
Posted
2 hours ago, +[T]rakin said:

Bem três topicos em um dia ;-; devo se burro para fica quase toda hora aqui mas vamos direto para a explicação.

Não há problema em criar mais de um tópico no mesmo dia. Inclusive não há nada proibindo isso nas regras. No entanto, o ideal é que você conclua um tópico primeiro para depois criar outro.

2 hours ago, +[T]rakin said:

Seguinte to tentando Salvar data do Item mas toda vez que eu reconnect  servidor/restart o script o valor volta padrão e não o salvo. Digamos gastei uma água ai do painel ia fica 4/5 como não salvar quando eu saio do servidor e volta para o 5/5.

Então mano, como vc já deve saber. Pra salvar dados entre as sessões dos jogadores, é necessário salvá-las em um banco de dados. Mas pra isso você precisa saber que tipo de dado você está salvando. Se ele é uma data de uma conta de um jogador específico, ou se é uma data de um resource. Você precisa saber a diferença, pois cada uma delas é salva em um banco de dados diferente.

A propósito. Seu código não está funcionando pois você está tentando obter um jogador que quitou. Então sempre dará erro. Além disso, se o seu servidor permitir que o jogador deslogue sem sair do servidor. Ele perderá dados, pois você não configurou pra salvar ao dar logout.

  • Like 1
  • Thanks 1

Eu te ajudei ou achou meu comentário útil? Não esqueça de deixar um Thanksspacer.png

Minhas contribuições para a comunidade: LordHenry - MTA Wiki Profile
Inscreva-se no meu canal do YouTube: Lord Henry - Entertainment
Discord Oficial do MTA: https://mtasa.com/discord
Blacklist e Whitelist de Scripters: Planilha

Por favor, não me envie mensagens privadas solicitando suporte. Crie um tópico no fórum em vez disso.

Posted

Só ressaltando, quando for mecher com datas ou algo que tenha que armazenar, tenha em mente o tipo de banco de dados que você vai usar para não ficar perdido.

Olhe também o Tópico do @Lord Henry:  

 

 

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