Jump to content

preciso de ajuda pra configurar para gangs nao entrar na policia


Recommended Posts

Tenho um script de policia publica aqui, entra no marker, aceita e vira policial. mas estou tentando configurar para gangs nao poderem entrar na policia, tentei usar if not getPlayerTeam(source) == nil then mais não deu certo.

----------Entrar na policia----------
function vdbtrabalhar()
	if isGuestAccount ( getPlayerAccount(source) ) then
		outputChatBox ("#000000[#00FF00 ERRO #000000]#FFFFFF Você precisar estar logado para trabalhar na policia!",source,255,0,0,true)
	 else
		acc = getAccountName(getPlayerAccount(source))
			if isObjectInACLGroup ("user."..acc, aclGetGroup("Policia"))  then 
				aclGroupRemoveObject (aclGetGroup("Policia"), "user."..getAccountName(getPlayerAccount(source)))
				outputChatBox ("#000000[#0000FF Policia Militar #000000]#FFFFFF Você saiu da PM",source,255,0,0,true)
				setElementData(source,"isPolice",false)
				setPlayerTeam (source, nil)	
				triggerClientEvent (source, "vdbpoliciatrabalharfecharpainel", root)
			else
				if not getPlayerTeam(source) == nil then
					outputChatBox("#000000[#0000FF Policia Militar #000000]#FFFFFF Você faz parte de uma gang ou de outra corp!", source, 255,0,0,true)	
				else	
					if getPlayerWantedLevel(source) <= 0 then	
						triggerClientEvent (source, "vdbpoliciatrabalharfecharpainel", root)
						aclGroupAddObject (aclGetGroup("Policia"), "user."..getAccountName(getPlayerAccount(source)))
						setElementData(source,"isPolice",true)
						outputChatBox("#000000[#0000FF Policia Militar #000000]#FFFFFF Parabéns você agora é Policial, e pode prender jogadores", source, 255,0,0,true)
						outputChatBox("#000000[#0000FF Policia Militar #000000]#FFFFFF Assim que você se desconectar do servidor sera removido e tera que entrar novamente", source, 255,0,0,true)
						outputChatBox("#000000[#0000FF Policia Militar #000000]#FFFFFF Aperte a tecla #FF0000I#00FF00 #FFFFFFpara abrir o painel da policia", source, 255,0,0,true)   
						outputChatBox("#000000[#0000FF Policia Militar #000000]#FFFFFF Digite /cmdpm para ver todos os comandos a tecla #FF0000I#00FF00 #FFFFFFpara abrir o painel da policia", source, 255,0,0,true)   
					else
						outputChatBox("#000000[#0000FF Policia Militar #000000]#FFFFFF Você esta com nivel de procurado e não pode entrar para Policia", source, 255,0,0,true)
				end
			end
		end
	end
end
addEvent ("vdbclicktrabalha", true)
addEventHandler ("vdbclicktrabalha", getRootElement(), vdbtrabalhar)

 

Link to comment

Você deve setar alguma coisa que diga que a pessoa é de gang ou de corp. Por exemplo:

 

------------------ENTRAR NA CORP------------------
if not getAccountData ( account, 'MembroDeGang') then
  	setAccountData ( account, 'MembroDeCorp', true) -- SEMPRE QUE ENTRAR NA CORP, SETE ISSO.
	--RESTANTE
	--DO
	--CÓDIGO
end 

------------------ENTRAR NA GANG------------------
if not getAccountData ( account, 'MembroDeCorp') then
  	setAccountData ( account, 'MembroDeGang', true) -- SEMPRE QUE ENTRAR NA GANG, SETE ISSO.
	--RESTANTE
	--DO
	--CÓDIGO
end 

E quando a pessoa sair da corp ou da gang, não esqueça de setar os mesmos atributos acima como false.

Edited by Boechat
  • Thanks 1
Link to comment
7 minutes ago, Boechat said:

Você deve setar alguma coisa que diga que a pessoa é de gang ou de corp. Por exemplo:

 


------------------ENTRAR NA CORP------------------
if not getAccountData ( account, 'MembroDeGang') then
  	setAccountData ( account, 'MembroDeCorp', true) -- SEMPRE QUE ENTRAR NA CORP, SETE ISSO.
	--RESTANTE
	--DO
	--CÓDIGO
end 

------------------ENTRAR NA GANG------------------
if not getAccountData ( account, 'MembroDeCorp') then
  	setAccountData ( account, 'MembroDeGang', true) -- SEMPRE QUE ENTRAR NA GANG, SETE ISSO.
	--RESTANTE
	--DO
	--CÓDIGO
end 

E quando a pessoa sair da corp ou da gang, não esqueça de setar os mesmos atributos acima como false.

quando o jogador entrar em uma gang deixar

setAccountData ( account, 'MembroDeGang', true)

ao sair da gang

setAccountData ( account, 'MembroDeGang', false)

ai quando alguem tentar entrar na policia

if getAccountData( account, 'MembroDeGang' == true then
outputChatBox("#000000[#0000FF Policia Militar #000000]#FFFFFF Você faz parte de uma gang ou de outra corp!", source, 255,0,0,true)

ta certo?

Link to comment
14 minutes ago, Maaster342 said:

quando o jogador entrar em uma gang deixar



setAccountData ( account, 'MembroDeGang', true)

ao sair da gang

setAccountData ( account, 'MembroDeGang', false)

ai quando alguem tentar entrar na policia



if getAccountData( account, 'MembroDeGang' == true then


outputChatBox("#000000[#0000FF Policia Militar #000000]#FFFFFF Você faz parte de uma gang ou de outra corp!", source, 255,0,0,true)

ta certo?

Quase. Quando alguém tentar entrar na polícia ela NÃO pode ser de gang, certo? Então deve ser:

 

if not getAccountData( account, 'MembroDeGang')  then 
  
  --OU--
  
if getAccountData( account, 'MembroDeGang') == false  then 

--As duas condições são a mesma coisa.

 

Fugindo um pouco do assunto só pra te explicar uma coisa:

O not "inverte" a condição. Se a condição der true (ou seja, o player é membro de gang) ele inverte pra false e não executa o código dentro da condição. É semelhante a um == false.

Se a condição der false (ou seja, o player NÃO é membro de gang) ele inverte pra true e executa a condição. É semelhante a um == true.

No fim das contas uma condição pra executar deve ser if TRUE then.

 

Edited by Boechat
  • Thanks 1
Link to comment
7 minutes ago, Boechat said:

Quase. Quando alguém tentar entrar na polícia ela NÃO pode ser de gang, certo? Então deve ser:


if not getAccountData( account, 'MembroDeGang')  then 

 

Fugindo um pouco do assunto só pra te explicar uma coisa:

O not "inverte" a condição. Se a condição der true (ou seja, o player é membro de gang) ele inverte pra false e não executa o código dentro da condição. É semelhante a um == false.

Se a condição der false (ou seja, o player NÃO é membro de gang) ele inverte pra true e executa a condição. É semelhante a um == true.

No fim das contas uma condição pra executar deve ser if TRUE then.

 

Olhando no script percebi que quando alguem estava na gang, ficava com o ElementData "gangue", ai usei 

if getElementData(source,"gangue") then

e deu certo.

sobre o "not" então caso eu deixa-se if not getElementData(source,"gangue") then, seria se o jogador não estiver com o ElementData "gangue" entao?

Link to comment
4 minutes ago, Maaster342 said:

Olhando no script percebi que quando alguem estava na gang, ficava com o ElementData "gangue", ai usei 


if getElementData(source,"gangue") then

e deu certo.

sobre o "not" então caso eu deixa-se if not getElementData(source,"gangue") then, seria se o jogador não estiver com o ElementData "gangue" entao?

Isso mesmo!!

Só tome cuidado com o element data pois quando o player desloga, esse dado se perde. Verifique se em alguma parte do código está salvando esse "gangue" pra conta com o setAccountData, e carregando novamente pro elemento quando o player logar.

  • Thanks 1
Link to comment
On 25/01/2021 at 10:49, Maaster342 said:

Tenho um script de policia publica aqui, entra no marker, aceita e vira policial. mas estou tentando configurar para gangs nao poderem entrar na policia, tentei usar if not getPlayerTeam(source) == nil then mais não deu certo.


----------Entrar na policia----------
function vdbtrabalhar()
	if isGuestAccount ( getPlayerAccount(source) ) then
		outputChatBox ("#000000[#00FF00 ERRO #000000]#FFFFFF Você precisar estar logado para trabalhar na policia!",source,255,0,0,true)
	 else
		acc = getAccountName(getPlayerAccount(source))
			if isObjectInACLGroup ("user."..acc, aclGetGroup("Policia"))  then 
				aclGroupRemoveObject (aclGetGroup("Policia"), "user."..getAccountName(getPlayerAccount(source)))
				outputChatBox ("#000000[#0000FF Policia Militar #000000]#FFFFFF Você saiu da PM",source,255,0,0,true)
				setElementData(source,"isPolice",false)
				setPlayerTeam (source, nil)	
				triggerClientEvent (source, "vdbpoliciatrabalharfecharpainel", root)
			else
				if not getPlayerTeam(source) == nil then
					outputChatBox("#000000[#0000FF Policia Militar #000000]#FFFFFF Você faz parte de uma gang ou de outra corp!", source, 255,0,0,true)	
				else	
					if getPlayerWantedLevel(source) <= 0 then	
						triggerClientEvent (source, "vdbpoliciatrabalharfecharpainel", root)
						aclGroupAddObject (aclGetGroup("Policia"), "user."..getAccountName(getPlayerAccount(source)))
						setElementData(source,"isPolice",true)
						outputChatBox("#000000[#0000FF Policia Militar #000000]#FFFFFF Parabéns você agora é Policial, e pode prender jogadores", source, 255,0,0,true)
						outputChatBox("#000000[#0000FF Policia Militar #000000]#FFFFFF Assim que você se desconectar do servidor sera removido e tera que entrar novamente", source, 255,0,0,true)
						outputChatBox("#000000[#0000FF Policia Militar #000000]#FFFFFF Aperte a tecla #FF0000I#00FF00 #FFFFFFpara abrir o painel da policia", source, 255,0,0,true)   
						outputChatBox("#000000[#0000FF Policia Militar #000000]#FFFFFF Digite /cmdpm para ver todos os comandos a tecla #FF0000I#00FF00 #FFFFFFpara abrir o painel da policia", source, 255,0,0,true)   
					else
						outputChatBox("#000000[#0000FF Policia Militar #000000]#FFFFFF Você esta com nivel de procurado e não pode entrar para Policia", source, 255,0,0,true)
				end
			end
		end
	end
end
addEvent ("vdbclicktrabalha", true)
addEventHandler ("vdbclicktrabalha", getRootElement(), vdbtrabalhar)

 

AclsGang = {"Gang"}

function vdbtrabalhar()
    if isGuestAccount ( getPlayerAccount(source) ) then
        outputChatBox ("#000000[#00FF00 ERRO #000000]#FFFFFF Você precisar estar logado para trabalhar na policia!",source,255,0,0,true)
        return
    end
    local acc = getAccountName(getPlayerAccount(source))
    if verifyGang(source) then
        if isObjectInACLGroup ("user."..acc, aclGetGroup("Policia"))  then 
            aclGroupRemoveObject (aclGetGroup("Policia"), "user."..getAccountName(getPlayerAccount(source)))
            outputChatBox ("#000000[#0000FF Policia Militar #000000]#FFFFFF Você saiu da PM",source,255,0,0,true)
            setElementData(source,"isPolice",false)
            triggerClientEvent (source, "vdbpoliciatrabalharfecharpainel", root)
        else
            if getPlayerWantedLevel(source) <= 0 then	
                triggerClientEvent (source, "vdbpoliciatrabalharfecharpainel", root)
                aclGroupAddObject (aclGetGroup("Policia"), "user."..getAccountName(getPlayerAccount(source)))
                setElementData(source,"isPolice",true)
                outputChatBox("#000000[#0000FF Policia Militar #000000]#FFFFFF Parabéns você agora é Policial, e pode prender jogadores", source, 255,0,0,true)
                outputChatBox("#000000[#0000FF Policia Militar #000000]#FFFFFF Assim que você se desconectar do servidor sera removido e tera que entrar novamente", source, 255,0,0,true)
                outputChatBox("#000000[#0000FF Policia Militar #000000]#FFFFFF Aperte a tecla #FF0000I#00FF00 #FFFFFFpara abrir o painel da policia", source, 255,0,0,true)   
                outputChatBox("#000000[#0000FF Policia Militar #000000]#FFFFFF Digite /cmdpm para ver todos os comandos a tecla #FF0000I#00FF00 #FFFFFFpara abrir o painel da policia", source, 255,0,0,true)   
            else
                outputChatBox("#000000[#0000FF Policia Militar #000000]#FFFFFF Você esta com nivel de procurado e não pode entrar para Policia", source, 255,0,0,true)
            end
         end
    else
        outputChatBox("#000000[#0000FF Policia Militar #000000]#FFFFFF Você Não Ser de Gang.", source, 255,0,0,true)
    end
end
addEvent ("vdbclicktrabalha", true)
addEventHandler ("vdbclicktrabalha", getRootElement(), vdbtrabalhar)

function verifyGang(thePlayer)
    k = true
    for i,v in ipairs(AclsGang) do
        if aclGetGroup(v) then
            local accName = getAccountName ( getPlayerAccount ( thePlayer ) ) 
            if isObjectInACLGroup ("user."..accName, aclGetGroup ( v ) ) then 
                k = false
                break
            end
        end
    end
    return k
end

 

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