Jump to content

duplicando comando com tabela de acl


Recommended Posts

opa oi pessoal então queria uma ajuda de como resolver esse probleminha de duplicar comando quando coloco a pessoa em mais de uma acl da tabela

por exemplo se eu tiver só na acl Console ele conta como se eu tivesse digitado 1 vez mas se eu tiver na acl Console e Admin ele conta como se eu tivesse digitado 2 vezes e assim vai indo

settudo = "settudo"
settudoacl = {"Console","Admin","Supervisor","Moderador","Ajudante"}

--------------------------------------------------------------------------------------------------------

function getPlayerID(id)
	v = false
	for i, player in ipairs (getElementsByType("player")) do
		if getElementData(player, "ID") == id then
			v = player
			break
		end
	end
	return v
end

--------------------------------------------------------------------------------------------------------

function setTUDO (source,commandName,id,SetFomeSede)
	for _, group in ipairs(settudoacl) do
	if not isObjectInACLGroup("user."..getAccountName(getPlayerAccount(source)), aclGetGroup(group)) then exports["Script_Dxinfo"]:addBox(source, "error", "#ffffffPermissão Negada !") return end
    if(id) then
	    if tonumber(SetFomeSede) then
        local playerID = tonumber(id)
		if(playerID) then
				local targetPlayer, targetPlayerName = getPlayerID(playerID)
				local fomesede = tonumber(SetFomeSede)
				if targetPlayer then
				if (commandName == settudo) then end
				     --exports["Script_Dxinfo"]:addBox(source, "success", "#ffffffFome e Sede de #25C740"..getPlayerName(targetPlayer).." #ffffffsetado para #25C740"..fomesede.."%")
					 exports["Script_Dxinfo"]:addBox(targetPlayer, "info", "#ffffffO STAFF #25C740"..getPlayerName(source).." #ffffffalterou sua Fome e Sede para #25C740"..fomesede.."%")
					 setElementData(targetPlayer, "hunger", fomesede)
					 setElementData(targetPlayer, "sede", fomesede)
				else
                    exports["Script_Dxinfo"]:addBox(source, "error", "#ffffffO jogador não foi encontrado !")
				end
			else
			    exports["Script_Dxinfo"]:addBox(source, "error", "#ffffffUtilize : #ff0000/"..commandName.." #ffffff[ID] [Quantidade]")
			end
		else
		    exports["Script_Dxinfo"]:addBox(source, "error", "#ffffffUtilize : #ff0000/"..commandName.." #ffffff[ID] [Quantidade]")
		end
	else
	    exports["Script_Dxinfo"]:addBox(source, "error", "#ffffffUtilize : #ff0000/"..commandName.." #ffffff[ID] [Quantidade]")
	end
end
end
addCommandHandler(settudo, setTUDO)

 

Link to comment
  • Other Languages Moderators

Assim que um grupo for aceito, use return para não verificar outros grupos, evitando spam.

function setarTUDO (thePlayer, commandName, id, SetFomeSede)
    for _, group in ipairs(settudoacl) do
        if (isObjectInACLGroup("user."..getAccountName(getPlayerAccount(thePlayer)), aclGetGroup(group))) then
            if (id) then
                if (tonumber(SetFomeSede)) then
                    local playerID = tonumber(id)
                    if (playerID) then
                        local targetPlayer, targetPlayerName = getPlayerID(playerID)
                        local fomesede = tonumber(SetFomeSede)
                        if (targetPlayer) then
                            if (commandName == settudo) then end
                            -- exports["Script_Dxinfo"]:addBox(thePlayer, "success", "#ffffffFome e Sede de #25C740"..getPlayerName(targetPlayer).." #ffffffsetado para #25C740"..fomesede.."%")
                            exports["Script_Dxinfo"]:addBox(targetPlayer, "info", "#ffffffO STAFF #25C740"..getPlayerName(thePlayer).." #ffffffalterou sua Fome e Sede para #25C740"..fomesede.."%")
                            setElementData(targetPlayer, "hunger", fomesede)
                            setElementData(targetPlayer, "sede", fomesede)
                            return
                        else
                            exports["Script_Dxinfo"]:addBox(thePlayer, "error", "#ffffffO jogador não foi encontrado!")
                            return
                        end
                    else
                        exports["Script_Dxinfo"]:addBox(thePlayer, "error", "#ffffffUtilize : #ff0000/"..commandName.." #ffffff[ID] [Quantidade]")
                        return
                    end
                else
                    exports["Script_Dxinfo"]:addBox(thePlayer, "error", "#ffffffUtilize : #ff0000/"..commandName.." #ffffff[ID] [Quantidade]")
                    return
                end
            else
                exports["Script_Dxinfo"]:addBox(thePlayer, "error", "#ffffffUtilize : #ff0000/"..commandName.." #ffffff[ID] [Quantidade]")
                return
            end
        end
    end
    exports["Script_Dxinfo"]:addBox(thePlayer, "error", "#ffffffPermissão Negada!")
end
addCommandHandler(settudo, setarTUDO)

 

Edited by Lord Henry
  • Thanks 1
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...