Brendo

Sistema Fome/Sede

Recommended Posts

Outra dúvida klkkk mds eu sou mt burro, Enfim to com um sistema de fome e sede, e eu fiz uma gambiarra meio loka (peguei código de um mod e taquei em outro) que salvava a fome e sede do player ao deslogar e quando ele logasse voltava doque tava e a princípio funcionou (n sei como mais funcionou, me senti o fodao) porém agora parou de funcionar e a fome e sede reseta quando o player reloga (volta pra 100) vcs podem me ajudar?

Oque aparece no console é isso: T7oLa_6JSQ2QDajlJ8GRCg.png

Código: 

 

addEventHandler ("onPlayerLogin",root,function(_,Acc)
local FomeAcc2 = getAccountData (Acc,"AtualHunger") 
local SedeAcc2 = getAccountData (Acc,"AtualSede")
        if FomeAcc2 == false then
        setElementData (source,"hunger",100)
        else
        setElementData (source,"hunger",FomeAcc2)
        end
            if SedeAcc2 == false then 
            setElementData (source,"sede",100)
            else
            setElementData (source,"sede",SedeAcc2)
            end 
end)

function saveAccountData ( account )
    if isGuestAccount ( account ) then
        return false
    end
    Player = getAccountPlayer (account)
Fomes = getElementData (Player,"hunger")
Sedes = getElementData (Player,"sede")
setAccountData (account,"AtualHunger",Fomes)
setAccountData (account,"AtualSede",Sedes)
end

addEventHandler ( 'onPlayerQuit', root, function ( )
    local acc = getPlayerAccount ( source )
    saveAccountData ( acc )
end )


addEventHandler( "onResourceStart", getResourceRootElement( getThisResource() ), function( )        
 for _, plr in pairs( getElementsByType( "player" ) ) do 
 local Acc = getPlayerAccount (plr)
    if not isGuestAccount (Acc) then
    local FomeAcc = getAccountData (Acc,"AtualHunger") 
    local SedeAcc = getAccountData (Acc,"AtualSede")
        if FomeAcc == false then
        setElementData (plr,"hunger",100)
        else
        setElementData (plr,"hunger",FomeAcc)
        end
            if SedeAcc == false then
            setElementData (plr,"sede",100) 
            else
            setElementData (plr,"sede",SedeAcc)
            end 
    end    
 end
 end)
 
 
 addEventHandler ("onResourceStop",getResourceRootElement( getThisResource()),function()
for index,players in ipairs(getElementsByType("player")) do 
 local acc = getPlayerAccount ( players )
 saveAccountData ( acc )
end
end)

function saveHungerData(player, account)
    if account then
        local account = player:getAccount() -- @Obtém a conta do jogador
        if player:getData("hunger") then -- @Verifica se o elemento possui a data "fome"
            account:setData("hunger", player:getData("hunger")) -- @Transfere a data do elemento, para a conta
        else
            account:setData("hunger", 100)
        end
    end
end
-- @Salva a fome

function loadHungerData(player, account)
    if account then
        local account = player:getAccount() -- @Obtém a conta do jogador
        if account:getData("hunger") then -- @Verifica se a data existe na conta
            player:setData("hunger", account:getData("hunger")) -- @Transfere a data da conta, para o elemento
        else
            player:setData("hunger", 100) 
        end
    end
end
-- @Carrega a fome

function saveHunger()
    for index, p in ipairs(getElementsByType("player")) do
        local acc = p:getAccount()
        if acc then
            saveHungerData(p, acc)
        end
    end
end
addEventHandler("onPlayerQuit", root, saveHunger)
addEventHandler("onResourceStop", resourceRoot, saveHunger)
-- @Salva a fome quando o recurso da stop, ou o jogador sai

function loadHunger()
    for index, p in ipairs(getElementsByType("player")) do -- @Loop para obter jogadores
        local acc = p:getAccount() -- @Obtém a conta do jogador
        if acc then -- @Verifica se a conta existe
            loadHungerData(p, acc) -- @Executa a função de carregar os dados
        else
            p:setData("hunger", 100) -- @Caso não esteja logado, irá definir a fome para 100
        end
    end
end
addEventHandler("onResourceStart", resourceRoot, loadHunger)
addEventHandler("onPlayerLogin", root, loadHunger)
addEventHandler("onPlayerJoin", root, loadHunger)
-- @Carrega a fome quando o jogador loga/entra, ou o resource inicia

 

Share this post


Link to post

Evite flood de tópicos. Aguarde seu outro tópico ser resolvido antes de criar outro.

  • Thanks 1

Share this post


Link to post
11 minutes ago, Lord Henry said:

Evite flood de tópicos. Aguarde seu outro tópico ser resolvido antes de criar outro.

Foi mal, achei que não teria problema.

Share this post


Link to post

Apareceu algum erro no debugscript 3? A sua imagem não está funcionando.

  • Thanks 1

Share this post


Link to post
5 hours ago, #DaNiLiN said:

Apareceu algum erro no debugscript 3? A sua imagem não está funcionando.

SourceS.Lua:99 attemp to index local 'p' (a user data value)

Share this post


Link to post
37 minutes ago, Brendo said:

SourceS.Lua:99 attemp to index local 'p' (a user data value)

GetAccount não funciona a partir de um playerElement. Somente a partir de uma string de accountName.

Substitua por getPlayerAccount.

Edited by Lord Henry
  • Thanks 1

Share this post


Link to post

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.