Jump to content

Verificar ACL(Grupo), resource


Recommended Posts

Essa função que você mencionou pode ser usada também para pegar o nome do resource e colocar como parâmetro da função isObjectInACLGroup.

Vejamos, o 1° parâmetro do isObjectInACLGroup é o Objeto(string) que ficará à disposição do grupo da ACL, tendo como exemplos: "user.Jim"; "resource.ctf".
Usando o objeto resourcevocê deverá usar o nome do resource para usar como objeto, e vai conseguir isso usando as funções: getResourceName e getThisResource. Lembrando que usando o getThisResource vai pegar o resource onde foi executada a função, para pegar qualquer outro resource use getResourceFromName.


Após compreendido o uso do 1° argumento do isObjectInACLGroup, a hipótese poderá ficar da seguinte forma:

local este_resource = getResourceName(getThisResource())

if (isObjectInACLGroup("resource."..este_resource, aclGetGroup("GrupoACL"))) then
  --
else
  --
end


Este exemplo é bem parecido com uns que são frequentemente usados, veja só:

local account_name = getAccountName(getPlayerAccount(thePlayer))

if (isObjectInACLGroup('user.'..account_name, aclGetGroup("GrupoACL"))) then
  --
else
  --
end

 

Qualquer dúvida sobre esta resposta, só marcar :D 

  • Thanks 1
Link to comment
8 minutes ago, KronoS Lettify said:

Essa função que você mencionou pode ser usada também para pegar o nome do resource e colocar como parâmetro da função isObjectInACLGroup.

Vejamos, o 1° parâmetro do isObjectInACLGroup é o Objeto(string) que ficará à disposição do grupo da ACL, tendo como exemplos: "user.Jim"; "resource.ctf".
Usando o objeto resourcevocê deverá usar o nome do resource para usar como objeto, e vai conseguir isso usando as funções: getResourceName e getThisResource. Lembrando que usando o getThisResource vai pegar o resource onde foi executada a função, para pegar qualquer outro resource use getResourceFromName.


Após compreendido o uso do 1° argumento do isObjectInACLGroup, a hipótese poderá ficar da seguinte forma:


local este_resource = getResourceName(getThisResource())

if (isObjectInACLGroup("resource."..este_resource, aclGetGroup("GrupoACL"))) then
  --
else
  --
end


Este exemplo é bem parecido com uns que são frequentemente usados, veja só:


local account_name = getAccountName(getPlayerAccount(thePlayer))

if (isObjectInACLGroup('user.'..account_name, aclGetGroup("GrupoACL"))) then
  --
else
  --
end

 

Qualquer dúvida sobre esta resposta, só marcar :D 

Obrigado entendi eu estava usando if  isObjectInACLGroup ( "resource."..resourceName, aclGetGroup("Admin")) then

Link to comment

Aqui está o código

function verificarACL(playerSource)
local thisResource = getThisResource()
local resourceName = getResourceName(thisResource)
if not isObjectInACLGroup ( "resource."..resourceName, aclGetGroup("Admin")) then
stopResource(resourceName)
outputChatBox ("Adicione o script na admin", playerSource, 255, 255, 255, true)
end
end

 

Link to comment

Então no caso ficaria assim mas ainda continua do mesmo jeito

function verificarACL(playerSource)
local thisResource = getThisResource()
local resourceName = getResourceName(thisResource)
if not isObjectInACLGroup ( "resource." ..resourceName, aclGetGroup("Admin")) then
outputChatBox ("Adicione o script na admin", playerSource, 255, 255, 255, true)
stopResource(thisResource)
end
end

 

  • Like 1
Link to comment
4 minutes ago, Instity said:

Então no caso ficaria assim mas ainda continua do mesmo jeito


function verificarACL(playerSource)
local thisResource = getThisResource()
local resourceName = getResourceName(thisResource)
if not isObjectInACLGroup ( "resource." ..resourceName, aclGetGroup("Admin")) then
outputChatBox ("Adicione o script na admin", playerSource, 255, 255, 255, true)
stopResource(thisResource)
end
end

 

Talvez não funcione ainda pq (como o Lord Henry falou na resposta acima) não criou o evento pra chamar a função.

Link to comment
  • Other Languages Moderators

Tente isso:

function verificarACL ()
	local resourceName = getResourceName (resource) -- resource é uma variável predefinida pelo MTA, ela é = getThisResource()
	if not isObjectInACLGroup ("resource."..resourceName, aclGetGroup("Admin")) then
		outputDebugString (resourceName..": Adicione este resource na ACL Group 'Admin'")
		cancelEvent ()
	end
end
addEventHandler ("onResourceStart", resourceRoot, verificarACL) -- Ativa essa função quando este resource for iniciado.
-- resourceRoot também é predefinida pelo MTA, ela é = getResourceRootElement(getThisResource())

Predefined_variables_list

Obs: É necessário estar com /debugscript 3 ativado para ver a mensagem.

Edited by Lord Henry
  • Thanks 1
Link to comment
17 hours ago, Lord Henry said:

Tente isso:


function verificarACL ()
	local resourceName = getResourceName (resource) -- resource é uma variável predefinida pelo MTA, ela é = getThisResource()
	if not isObjectInACLGroup ("resource."..resourceName, aclGetGroup("Admin")) then
		outputDebugString (resourceName..": Adicione este resource na ACL Group 'Admin'")
		cancelEvent ()
	end
end
addEventHandler ("onResourceStart", resourceRoot, verificarACL) -- Ativa essa função quando este resource for iniciado.
-- resourceRoot também é predefinida pelo MTA, ela é = getResourceRootElement(getThisResource())

Predefined_variables_list

Obs: É necessário estar com /debugscript 3 ativado para ver a mensagem.

Entendi a mensagem apareceu normalmente eo script não foi inicado, obrigado!

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