Jump to content

Sistema Fome/Sede


Recommended Posts

Posted

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

 

  • Moderators
Posted

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

Eu te ajudei ou achou meu comentário útil? Não esqueça de deixar um Thanks! spacer.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
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.

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

  • Moderators
Posted (edited)
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

Eu te ajudei ou achou meu comentário útil? Não esqueça de deixar um Thanks! spacer.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.

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