SkillZNT Posted January 12, 2020 Share Posted January 12, 2020 (edited) 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 January 12, 2020 by SkillZNT Link to comment
Tommy. Posted January 12, 2020 Share Posted January 12, 2020 Da uma arrumada no seu tópico e use a função "Code" para que fique mais fácil de nós entender. 1 Link to comment
Tommy. Posted January 13, 2020 Share Posted January 13, 2020 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
SkillZNT Posted January 13, 2020 Author Share Posted January 13, 2020 (edited) 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 January 13, 2020 by SkillZNT Link to comment
Tommy. Posted January 13, 2020 Share Posted January 13, 2020 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
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