Jump to content

Problemas de grupo acl em resource


Recommended Posts

function prisao(Policial, cmd, Jogador)
    local accName = getAccountName ( getPlayerAccount ( Policial ) )
    if isObjectInACLGroup ("user."..accName, aclGetGroup ( "BOPE") ) then
        if cmd == "prender" then
            if Jogador then
                Jogador = getPlayerFromPartialName(Jogador)
                estrelasdeprocurado = getPlayerWantedLevel(Jogador)
                local jX, jY, jZ = getElementPosition (Jogador) 
                local pX, pY, pZ = getElementPosition (Policial)
                local dist = getDistanceBetweenPoints3D ( pX, pY, pZ, jX, jY, jZ)

Opa então eu aprendi algumas coisas nesse forum pois ele estâ me ajudando bastante

Então dessa vez meu problema foi diferente

eu estava tentando por grupo nesse resource de prender pessoas so que não consegui

mais no outro resource de revistar tinha funcionado sera que alguem poderia me ajudar queria deixar o /prender funcionando pra

BOPE PMRJ EB

Edited by SkillZNT
Link to comment
2 hours ago, SkillZNT said:

function prisao(Policial, cmd, Jogador)
    local accName = getAccountName ( getPlayerAccount ( Policial ) )
    if isObjectInACLGroup ("user."..accName, aclGetGroup ( "BOPE") ) then
        if cmd == "prender" then
            if Jogador then
                Jogador = getPlayerFromPartialName(Jogador)
                estrelasdeprocurado = getPlayerWantedLevel(Jogador)
                local jX, jY, jZ = getElementPosition (Jogador) 
                local pX, pY, pZ = getElementPosition (Policial)
                local dist = getDistanceBetweenPoints3D ( pX, pY, pZ, jX, jY, jZ)

Opa então eu aprendi algumas coisas nesse forum pois ele estâ me ajudando bastante

Então dessa vez meu problema foi diferente

eu estava tentando por grupo nesse resource de prender pessoas so que não consegui

mais no outro resource de revistar tinha funcionado sera que alguem poderia me ajudar queria deixar o /prender funcionando pra

BOPE PMRJ EB

No caso o script está funcionando apenas para o BOPE e você quer colocar as outras ACL? se não for isso ta dando algum erro no debugscript ?

Link to comment
8 hours ago, Tommy. said:

No caso o script está funcionando apenas para o BOPE e você quer colocar as outras ACL? se não for isso ta dando algum erro no debugscript ?

Não esse ai tipo eu tento colocar 

o     if isObjectInACLGroup ("user."..accName, aclGetGroup ( "BOPE") ) or     if isObjectInACLGroup ("user."..accName, aclGetGroup ( "PMRJ") ) then

E não vai entendeu o mod na msm hr não aceita o comando quando ligo pareçe q ele n existe agora assim

    if isObjectInACLGroup ("user."..accName, aclGetGroup ( "BOPE") ) then
o comando funciona to tentando por 2 grupos pra funcionar o comando 

 

Aqui o codigo

function getPlayerFromPartialName(name)
    local name = name and name:gsub("#%x%x%x%x%x%x", ""):lower() or nil
    if name then
        for _, player in ipairs(getElementsByType("player")) do
            local name_ = getPlayerName(player):gsub("#%x%x%x%x%x%x", ""):lower()
            if name_:find(name, 1, true) then
                return player
            end
        end
    end
end

rRoot = getResourceRootElement(getThisResource())
anims = {
    "F_smklean_loop",
    "M_smklean_loop",
    "M_smkstnd_loop",
    "M_smk_drag",
    "M_smk_in",
    "M_smk_loop",
    "M_smk_out",
    "M_smk_tap" ,
}

Cadeias = {
	{6, 264.1315612793, 78.142135620117, 1001.0390625},
	{5, 318.66549682617, 317.41366577148, 999.1484375},
	{3, 199, 161.66580200195, 1003.0299682617}	
}

function prisao(Policial, cmd, Jogador)
    local accName = getAccountName ( getPlayerAccount ( Policial ) )
    if isObjectInACLGroup ("user."..accName, aclGetGroup ( "BOPE") ) then
		if cmd == "prender" then
			if Jogador then
				Jogador = getPlayerFromPartialName(Jogador)
				estrelasdeprocurado = getPlayerWantedLevel(Jogador)
				local jX, jY, jZ = getElementPosition (Jogador) 
				local pX, pY, pZ = getElementPosition (Policial)
				local dist = getDistanceBetweenPoints3D ( pX, pY, pZ, jX, jY, jZ)
				if Jogador == Policial then
					return outputChatBox("#000000[#FC0303PRENDER#000000]#A09E9E Voce nao pode prender voce mesmo!", Policial, 255, 255, 255, true)
				elseif ( estrelasdeprocurado == 0 ) then
					return outputChatBox("#000000[#FC0303PRENDER#000000]#A09E9E Este jogador não possui nivel de procurado!", Policial, 255, 255, 255, true )
				elseif dist >= 3 then
					return outputChatBox("#000000[#FC0303PRENDER#000000]#A09E9E Chegue perto do Jogador para prender!", Policial, 255, 255, 255, true )
				end
			
				Prender(Jogador)
				outputChatBox("#000000[#FC0303PRENDER#000000]#A09E9E Voce ganhou #00ff00R$15,000#A09E9E por prender o jogador #ffffff"..getPlayerName(Jogador).." #c1c1c1!", Policial, 255 , 255, 255, true)
				givePlayerMoney(Policial, 15000)
			else
				outputChatBox("#000000[#FC0303PRENDER#000000]#A09E9E Digite o nome do Jogador!", Policial, 255, 255, 255, true)
			end
		elseif cmd == "liberar" then
			if Jogador then
				Jogador = getPlayerFromPartialName(Jogador)
				estrelasdeprocurado = getPlayerWantedLevel(Jogador)
				if Jogador == Policial then
					return outputChatBox("#000000[#FC0303PRENDER#000000]#A09E9E Voce nao pode liberar voce mesmo!", Policial, 255, 255, 255, true)
				elseif not getElementData(Jogador, "preso") or not getElementData(rRoot,""..getPlayerSerial(Jogador).."-j") then
					return outputChatBox("#000000[#FC0303PRENDER#000000]#A09E9E Este jogador nao esta preso!", Policial, 255, 255, 255, true )
				end
				
				Liberar(Jogador)
			else
				outputChatBox("#000000[#FC0303PRENDER#000000]#A09E9E Digite o nome do Jogador!", Policial, 255, 255, 255, true)
			end
		end
	else
		outputChatBox("#000000[#FC0303PRENDER#000000]#A09E9E Você não tem permissão para executar este comando!", Policial, 255, 255, 255, true )
	end
end
addCommandHandler("prender", prisao)
addCommandHandler("liberar", prisao)

function Prender(Jogador)
	if isPedInVehicle(Jogador) then
		removePedFromVehicle(Jogador)
	end
	setElementDimension(Jogador, math.random(1, 255))
	setElementInterior(Jogador, unpack(Cadeias[math.random(#Cadeias)]) )
	setElementData(Jogador, "preso", true)
	setElementData(rRoot,""..getPlayerSerial(Jogador).."-j",true)
	setPedAnimation(Jogador,"SMOKING", anims[math.random(#anims)])
	outputChatBox("#000000[#FC0303PRENDER#000000]#A09E9E Voce foi preso!", Jogador, 255, 255, 255, true)
	outputChatBox("#000000[#FC0303PRENDER#000000]#A09E9E O Jogador "..getPlayerName(Jogador).."#A09E9E foi preso!", root, 255, 255, 255, true)
end

function Liberar(Jogador)
	setElementDimension(Jogador, 0)
	setElementInterior(Jogador, 0, 1552.9320068359-math.random(3), -1676.1313476563, 16.1953125)  
	setPedAnimation(Jogador, nil, nil)
	setPlayerWantedLevel(Jogador, 0)
	outputChatBox("#000000[#FC0303PRENDER#000000]#A09E9E Voce foi solto", Jogador, 255, 255, 255, true)
	outputChatBox("#000000[#FC0303PRENDER#000000]#A09E9E O Jogador "..getPlayerName(Jogador).."#A09E9E foi liberado da cadeia!", root, 255, 255, 255, true)
	removeElementData(Jogador, "preso")
	takeAllWeapons(Jogador)
	takePlayerMoney(Jogador, 15000)
	removeElementData(rRoot,""..getPlayerSerial(Jogador).."-j")
end


function onPlayerSpawn()
	if getElementData(source, "preso") then
		setElementDimension(source, math.random(1, 255))
		setElementInterior(source, unpack(Cadeias[math.random(#Cadeias)]) )
		setPedAnimation(source,"SMOKING",anims[math.random(#anims)])
	end
end
addEventHandler("onPlayerSpawn", root, onPlayerSpawn)


function onPlayerJoin()
	if getElementData(rRoot,""..getPlayerSerial(source).."-j") then
		setElementDimension(source, math.random(1, 255))
		setElementInterior(source, unpack(Cadeias[math.random(#Cadeias)]))
		setPedAnimation(source,"SMOKING",anims[math.random(#anims)])
		setPlayerWantedLevel(source, 6)
	end
end
addEventHandler("onPlayerJoin", root, onPlayerJoin)

function onSetTime()
	for _, v in pairs(getElementsByType("player")) do
		if ( getElementData(rRoot,""..getPlayerSerial(v).."-j") or ( getElementData(v, "preso") ) ) then
			setPlayerWantedLevel(v, getPlayerWantedLevel(v)-1)
			if ( getPlayerWantedLevel(v) == 0 ) then
				Liberar(v)
			end
		end
	end
end	
setTimer(onSetTime, 60000, 0)

 

Edited by SkillZNT
Link to comment

Com o "OR" funciona, mas fiz por tabela caso queira adicionar mais Grupos futuramente.
 

Quote

@SkillZNT
E não vai entendeu o mod na msm hr não aceita o comando quando ligo pareçe q ele n existe agora assim

Os grupos estão criados na ACL? se não tiverem é normal da erro.

 


 

Grupos = {
    "BOPE",
    "PMRJ",
    "EB",
}

rRoot = getResourceRootElement(getThisResource())
anims = {
    "F_smklean_loop",
    "M_smklean_loop",
    "M_smkstnd_loop",
    "M_smk_drag",
    "M_smk_in",
    "M_smk_loop",
    "M_smk_out",
    "M_smk_tap" ,
}

Cadeias = {
	{6, 264.1315612793, 78.142135620117, 1001.0390625},
	{5, 318.66549682617, 317.41366577148, 999.1484375},
	{3, 199, 161.66580200195, 1003.0299682617}	
}

function prisao(Policial, cmd, Jogador)
    local accName = getAccountName(getPlayerAccount(Policial))

    for i = 1, #Grupos do
        if isObjectInACLGroup("user."..accName, aclGetGroup(Grupos[i])) then
            if cmd == "prender" then
                if Jogador then
                    Jogador = getPlayerFromPartialName(Jogador)
                    estrelasdeprocurado = getPlayerWantedLevel(Jogador)
                    local jX, jY, jZ = getElementPosition (Jogador) 
                    local pX, pY, pZ = getElementPosition (Policial)
                    local dist = getDistanceBetweenPoints3D ( pX, pY, pZ, jX, jY, jZ)
                    if Jogador == Policial then
                        return outputChatBox("#000000[#FC0303PRENDER#000000]#A09E9E Voce nao pode prender voce mesmo!", Policial, 255, 255, 255, true)
                    elseif ( estrelasdeprocurado == 0 ) then
                        return outputChatBox("#000000[#FC0303PRENDER#000000]#A09E9E Este jogador não possui nivel de procurado!", Policial, 255, 255, 255, true )
                    elseif dist >= 3 then
                        return outputChatBox("#000000[#FC0303PRENDER#000000]#A09E9E Chegue perto do Jogador para prender!", Policial, 255, 255, 255, true )
                    end
                
                    Prender(Jogador)
                    outputChatBox("#000000[#FC0303PRENDER#000000]#A09E9E Voce ganhou #00ff00R$15,000#A09E9E por prender o jogador #ffffff"..getPlayerName(Jogador).." #c1c1c1!", Policial, 255 , 255, 255, true)
                    givePlayerMoney(Policial, 15000)
                else
                    outputChatBox("#000000[#FC0303PRENDER#000000]#A09E9E Digite o nome do Jogador!", Policial, 255, 255, 255, true)
                end
            elseif cmd == "liberar" then
                if Jogador then
                    Jogador = getPlayerFromPartialName(Jogador)
                    estrelasdeprocurado = getPlayerWantedLevel(Jogador)
                    if Jogador == Policial then
                        return outputChatBox("#000000[#FC0303PRENDER#000000]#A09E9E Voce nao pode liberar voce mesmo!", Policial, 255, 255, 255, true)
                    elseif not getElementData(Jogador, "preso") or not getElementData(rRoot,""..getPlayerSerial(Jogador).."-j") then
                        return outputChatBox("#000000[#FC0303PRENDER#000000]#A09E9E Este jogador nao esta preso!", Policial, 255, 255, 255, true )
                    end
                    
                    Liberar(Jogador)
                else
                    outputChatBox("#000000[#FC0303PRENDER#000000]#A09E9E Digite o nome do Jogador!", Policial, 255, 255, 255, true)
                end
            end                        
        end            
    end
end
addCommandHandler("prender", prisao)
addCommandHandler("liberar", prisao)

function Prender(Jogador)
	if isPedInVehicle(Jogador) then
		removePedFromVehicle(Jogador)
	end
	setElementDimension(Jogador, math.random(1, 255))
	setElementInterior(Jogador, unpack(Cadeias[math.random(#Cadeias)]) )
	setElementData(Jogador, "preso", true)
	setElementData(rRoot,""..getPlayerSerial(Jogador).."-j",true)
	setPedAnimation(Jogador,"SMOKING", anims[math.random(#anims)])
	outputChatBox("#000000[#FC0303PRENDER#000000]#A09E9E Voce foi preso!", Jogador, 255, 255, 255, true)
	outputChatBox("#000000[#FC0303PRENDER#000000]#A09E9E O Jogador "..getPlayerName(Jogador).."#A09E9E foi preso!", root, 255, 255, 255, true)
end

function Liberar(Jogador)
	setElementDimension(Jogador, 0)
	setElementInterior(Jogador, 0, 1552.9320068359-math.random(3), -1676.1313476563, 16.1953125)  
	setPedAnimation(Jogador, nil, nil)
	setPlayerWantedLevel(Jogador, 0)
	outputChatBox("#000000[#FC0303PRENDER#000000]#A09E9E Voce foi solto", Jogador, 255, 255, 255, true)
	outputChatBox("#000000[#FC0303PRENDER#000000]#A09E9E O Jogador "..getPlayerName(Jogador).."#A09E9E foi liberado da cadeia!", root, 255, 255, 255, true)
	removeElementData(Jogador, "preso")
	takeAllWeapons(Jogador)
	takePlayerMoney(Jogador, 15000)
	removeElementData(rRoot,""..getPlayerSerial(Jogador).."-j")
end


function onPlayerSpawn()
	if getElementData(source, "preso") then
		setElementDimension(source, math.random(1, 255))
		setElementInterior(source, unpack(Cadeias[math.random(#Cadeias)]) )
		setPedAnimation(source,"SMOKING",anims[math.random(#anims)])
	end
end
addEventHandler("onPlayerSpawn", root, onPlayerSpawn)


function onPlayerJoin()
	if getElementData(rRoot,""..getPlayerSerial(source).."-j") then
		setElementDimension(source, math.random(1, 255))
		setElementInterior(source, unpack(Cadeias[math.random(#Cadeias)]))
		setPedAnimation(source,"SMOKING",anims[math.random(#anims)])
		setPlayerWantedLevel(source, 6)
	end
end
addEventHandler("onPlayerJoin", root, onPlayerJoin)

function onSetTime()
	for _, v in pairs(getElementsByType("player")) do
		if ( getElementData(rRoot,""..getPlayerSerial(v).."-j") or ( getElementData(v, "preso") ) ) then
			setPlayerWantedLevel(v, getPlayerWantedLevel(v)-1)
			if ( getPlayerWantedLevel(v) == 0 ) then
				Liberar(v)
			end
		end
	end
end	
setTimer(onSetTime, 60000, 0)

function getPlayerFromPartialName(name)
    local name = name and name:gsub("#%x%x%x%x%x%x", ""):lower() or nil
    if name then
        for _, player in ipairs(getElementsByType("player")) do
            local name_ = getPlayerName(player):gsub("#%x%x%x%x%x%x", ""):lower()
            if name_:find(name, 1, true) then
                return player
            end
        end
    end
end

EDIT: Testado.
 

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