Maaster Posted January 25, 2021 Share Posted January 25, 2021 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
Boechat Posted January 25, 2021 Share Posted January 25, 2021 (edited) 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 January 25, 2021 by Boechat 1 Link to comment
Maaster Posted January 25, 2021 Author Share Posted January 25, 2021 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
Boechat Posted January 25, 2021 Share Posted January 25, 2021 (edited) 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 January 25, 2021 by Boechat 1 Link to comment
Maaster Posted January 25, 2021 Author Share Posted January 25, 2021 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
Boechat Posted January 25, 2021 Share Posted January 25, 2021 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. 1 Link to comment
LucasST Posted January 26, 2021 Share Posted January 26, 2021 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
Recommended Posts
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 accountSign in
Already have an account? Sign in here.
Sign In Now