Jump to content

Sobre o type="shared" e a chamada da ACL


Recommended Posts

Eu estava estudando um script aqui e vi que no arquivo Edit. lua que está na parte de compartilhamento (shared), tinha uma linha informando o seguinte:

Grupo = "Console"

e vi que no arquivo server.lua e o client.lua não havia informações mostrando que isso se refere a ACL Console (mesmo estando se referindo).
Gostaria de saber se para qualquer arquivo .lua que seja do type="shared" que eu venha a criar, para me referir a uma ACL só necessita eu colocar o NomeDaVariante = "NomeDaACL" e me referir a ela no arquivo server e client utilizando NomeDaVariente e ele já vai reconhecer que é uma ACL?
 

<script src="Edit.lua" type="shared" cache="false" />


Não sei se deu pra entender minha dúvida!!

Link to comment

você quis dizer que se caso um arquivo for do tipo "shared" algo definido nesse shared pode ser chamado no client ou no server
independente do nome de arquivo e utilizando apenas o nome definido no shared?

bem, se for isso, sim, pode, o shared foi feito exatamente para isso, é utilizado como um arquivo compartilhável(shared = compartilhável)
e não, não precisa de nenhuma informação no client ou server se referindo que o nome está em um shared, caso o nome definido no shared
seja um nome não utilizado para chamar outra coisa tá tudo certo

Link to comment
3 hours ago, Dekonpriv said:

Eu estava estudando um script aqui e vi que no arquivo Edit. lua que está na parte de compartilhamento (shared), tinha uma linha informando o seguinte:

Grupo = "Console"

e vi que no arquivo server.lua e o client.lua não havia informações mostrando que isso se refere a ACL Console (mesmo estando se referindo).
Gostaria de saber se para qualquer arquivo .lua que seja do type="shared" que eu venha a criar, para me referir a uma ACL só necessita eu colocar o NomeDaVariante = "NomeDaACL" e me referir a ela no arquivo server e client utilizando NomeDaVariente e ele já vai reconhecer que é uma ACL?
 

<script src="Edit.lua" type="shared" cache="false" />


Não sei se deu pra entender minha dúvida!!

Pelo que entendi, sim você pode chamar ela usando o nome da variável ou:

-- Shared

Config = {

    ["Acl"] = "Console",

}

-- Para puxar no client ou server = Config["Acl"]

ou

-- Shared

Grupo = "Console"

-- Para puxar no client ou server = Grupo

print(Grupo) -- Vai mostrar no config o que tiver entre as aspas do shared.

 

Link to comment
16 hours ago, SciptNovato said:

você quis dizer que se caso um arquivo for do tipo "shared" algo definido nesse shared pode ser chamado no client ou no server
independente do nome de arquivo e utilizando apenas o nome definido no shared?

bem, se for isso, sim, pode, o shared foi feito exatamente para isso, é utilizado como um arquivo compartilhável(shared = compartilhável)
e não, não precisa de nenhuma informação no client ou server se referindo que o nome está em um shared, caso o nome definido no shared
seja um nome não utilizado para chamar outra coisa tá tudo certo

Reformulando a pergunta:
É porque no client e no server não tinha nada informando que o Grupo se refere a ACL "Console", entende?
Eu quero saber se nesse caso, eu não preciso especificar que é uma ACL, se o próprio código já entende do que se trata ou não.

Porque se eu mudar:

Grupo = "Console"

para:

Grupo = "Staff"

o script vai atender só a quem está na ACL de Staff, e assim acontece o mesmo se eu mudar o Grupo, só quem consegue executar é quem tem a ACL definida em Grupo.

Link to comment

não precisa especificar, se você adiciona isso corretamente na linha de permissão de acl
funciona sim, porque no caso ele vai estar armazenando um texto então não, não precisa fazer nada para se especificar

Exemplo:
 

-- shared

MsgEACL = "PCC"

-- server
function ola(thePlayer)
    if isObjectInACLGroup("user."..getAccountName(getPlayerAccount(thePlayer)), aclGetGroup(MsgEACL)) then -- puxará o valor de Msg&ACL que é PCC
        outputChatBox("oi", thePlayer)
    end
end
addCommandHandler("ola", ola)

-- mesmo arquivo server

function PCC(thePlayer)
    outputChatBox(MsgEACL, thePlayer)
end
addCommandHandler("fac", PCC)

nesse exemplo o texto PCC será puxado tanto para fazer uma verificação de acl, tanto para ser exibido como mensagem

Link to comment
  • Other Languages Moderators

@Dekonpriv qualquer variável que você criar no arquivo shared.lua poderá ser lido tanto nos arquivos client.lua e no server.lua. Desde que você não crie a variável como local.

É como se vc estivesse criando essa variável também no client.lua e no server.lua.

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