Jump to content

[Dúvida]: server-side funciona para todos os jogadores?


Recommended Posts

Estou iniciando nos scripts e tenho muitas dúvidas de um principiante: 

activated = false

function active()
  activated = true
 end
addCommandHandler("act", active, false, false)

A variável activated vai ser tornar true para todos os jogadores, ou somente para quem digitou o comando?

Link to comment
  • Other Languages Moderators

Como o título está "server-side", vou supor que esse código seja server-side. Sim. Irá estar true para todos. Caso você queira definir a variável para um elemento, será necessário utilizar uma tabela, pois tudo o que está server-side, faz parte do jogo, e tudo o que está no client-side, faz parte do computador do jogador, tendo nenhuma relação com o jogo (a não ser que você queira).

local activated = {}

function active(player)
    -- uma forma maior, usando if e else para checar
    if not activated[player] then
        activated[player] = true
    else
        activated[player] = nil
    end

    -- ou de uma forma menor, utilizando apenas uma linha
    activated[player] = not activated[player] and true or nil
end
addCommandHandler("act", active)

-- Por questões de otimização, SEMPRE adicione o evento de onPlayerQuit, quando usar esse tipo de tabela
addEventHandler("onPlayerQuit", root,
    function()
        -- Veja aqui que usei SOURCE, pois source é exatamente o elemento que salvamos, porém com outro nome (player)
        if activated[source] then
            activated[source] = nil
        end
    end
)

 

Link to comment

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