Eder

[DUVIDA] VERIFICAÇÃO EM DUAS ACL'S

Recommended Posts

Posted (edited)

Iae rapaziada bom estou com uma duvida aqui, estou desenvolvendo um sistema de Porte e estou trabalhando com setELementData e ACL! Para garantir que não ocorra falhas...

No sistema tem dois tipos de ACL a ACL DE PORTE LEVE (Armas de pequeno calibre) e a ACL DE PORTE PESADO (Armas de grosso calibre), até ai tudo certo. Porém eu fiz um sistema para os PM's saberem se o player possui porte e qual o tipo de porte, a minha duvida é se tem como verificar duas ACL'S no mesmo IF.  O código abaixo eu tenho absoluta certeza que vai dar errado nas linhas de verificação pois, se ele tiver na acl LEVE ele recebe a data SIM, porém se ele Não tiver na PESADO ele irá receber a data NÃO. Penso que para resolver essa questão seja algo envolvendo tabelas porém eu não consigo compreender a estrutura nem a formação de tabelas (mesmo assistindo diversos vídeos). Será que tem como fazer a verificação em duas tabelas ou até mais ao mesmo tempo?

codigo:

triggerClientEvent(source, "[RDS]Painel_CopomPm", source, infos_jogador)

    local conta = getAccount(getAccountName(getPlayerAccount(infos_jogador)))
    local porte = getAccountName( getPlayerAccount(infos_jogador))

          local procurado = getPlayerWantedLevel (infos_jogador)
          setElementData(infos_jogador, "mandatos", procurado)

          local nome = getPlayerName(infos_jogador)
          setElementData(infos_jogador, "Nome_Porte", nome)

          if isObjectInACLGroup ("user."..porte, aclGetGroup(AclPorteLeve)) then
			triggerClientEvent(source, "[RDS]registroSim", source, infos_jogador)
		  elseif isObjectInACLGroup ("user."..porte, aclGetGroup(AclPortePesado)) then
			triggerClientEvent(source, "[RDS]registroSim", source, infos_jogador)
		  end

          if not isObjectInACLGroup ("user."..porte, aclGetGroup(AclPorteLeve)) then
			  triggerClientEvent(source , "[RDS]registroNao", source, infos_jogador)
		  elseif not isObjectInACLGroup ("user."..porte, aclGetGroup(AclPortePesado)) 
			  triggerClientEvent(source , "[RDS]registroNao", source, infos_jogador)
          end

 

 

Edit: Eu até tentei fazer uma verificação "dupla" no evento onPLayerLogin agora pouco, mas não tenho certeza se irá funcionar!

 

addEventHandler("onPlayerLogin",root, 
function() 
local porte = getAccountName( getPlayerAccount(source))
if isObjectInACLGroup ("user."..porte, aclGetGroup(AclPorteLeve)) then 
setElementData(source,"RdsPorteSim", porte) 
elseif isObjectInACLGroup ("user."..porte, aclGetGroup(AclPortePesado)) then
setElementData(source,"RdsPorteSim", porte) 
elseif not isObjectInACLGroup ("user."..porte, aclGetGroup(AclPortePesado) or aclGetGroup(AclPorteLeve)) then
    setElementData(source,"RdsPorteNao", porte) 
end 
end) 

 

 

Client-Side: 

function RegistradoSim()
    if getElementData(localPlayer, "RdsPorteSim") then
        dxDrawText("Porte: Porte Registrado!", x*607, y*214, x*742, y*246, tocolor(0, 0, 0, 255), 1.10, "default-bold", "left", "top", false, false, false, false, false)
    end
end
addEvent("[RDS]registroSim", true)
addEventHandler("[RDS]registroSim", root, RegistradoSim)

function RegistradoNao()
    if getElementData(localPlayer, "RdsPorteNao") then
        dxDrawText("Porte: Não Encontrado!", x*607, y*214, x*742, y*246, tocolor(0, 0, 0, 255), 1.10, "default-bold", "left", "top", false, false, false, false, false)
    end
end
addEvent("[RDS]registroNao", true)
addEventHandler("[RDS]registroNao", root, RegistradoNao)

 

Edited by Eder

Share this post


Link to post
Posted (edited)

Tem, exemplo:

addCommandHandler ("rights", function (thePlayer, cmd)
	if isObjectInACLGroup ("user."..getAccountName (getPlayerAccount (thePlayer)), aclGetGroup("x")) or isObjectInACLGroup ("user."..getAccountName (getPlayerAccount (thePlayer)), aclGetGroup("y")) then -- Se o jogador estiver na acl x, ou y tanto faz, então:
		outputChatBox ("Parabéns! Você está na acl x ou na acl y.", thePlayer, 0, 255, 0)
	else
		outputChatBox ("Erro! Você não está na acl x e nem na y!", thePlayer, 255, 30, 30)
	end
end)

 

Edited by Jonas^
Correção.
  • Thanks 1

Share this post


Link to post
6 minutes ago, Jonas^ said:

Tem, exemplo:


addCommandHandler ("rights", function (thePlayer, cmd)
	if isObjectInACLGroup ("user."..getAccountName (getPlayerAccount (thePlayer)), aclGetGroup("x")) or isObjectInACLGroup ("user."..getAccountName (getPlayerAccount (thePlayer)), aclGetGroup("y")) then -- Se o jogador estiver na acl x, ou y tanto faz, então:
		outputChatBox ("Parabéns! Você está na acl x ou na acl y.", thePlayer, 0, 255, 0)
	else
		outputChatBox ("Erro! Você não está na acl x e nem na y!", thePlayer, 255, 30, 30)
	end
end)

 

Ué, pior que eu tentei desse jeito mas não aparecia o resultado no DX. Bom devo ter errado em outra linha do código, vlw pelo esclarecimento :)

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.