Jump to content

Quando tiro a Acl interferir o Script - Ajuda


Recommended Posts

Grupo = "Mecanico"

function Verificar_Emprego_Atual ( )
	for i, player in ipairs(getElementsByType("player")) do
		local acc = getPlayerAccount(player)
		if acc and not isGuestAccount(acc) then
			local accName = getAccountName (acc)
			if isObjectInACLGroup ("user."..accName, aclGetGroup ( Grupo ) ) then
			    if getElementData ( player, "Emprego" ) == false then
			        setElementData ( player, "Emprego", "Mecanico" )
				end
			else
			    if getElementData ( player, "Emprego" ) == "Mecanico" then
			        setElementData ( player, "Emprego", false )
				end
			end
		end
	end
end
setTimer ( Verificar_Emprego_Atual, 5000, 0 )

 

Alguem ajuda estou querendo tira acl do script mais quando eu tento tira da erro 

Link to comment

@Lord Henry Sim mais para quem pegar o emprego na agencia de emprego tendeu vou manda o Code todo para ter uma noção como e 

--[[



 ################################################
 #                                              #
 #              Script Criado Por               #
 #           FACEBOOK.COM/AIRNEWSCR             #
 #                                              #
 #                                              #
 ################################################



--]]

removeWorldModel ( 1412, 30, 207.5, -248.69999694824, 1.57813 ) -- Cercas
removeWorldModel ( 781, 3, 196.66397, -268.06937, 1.57813 ) -- Arvore
removeWorldModel ( 13437, 50, 195.24310, -236.23383, 1.36875 ) -- Arvore

MecanicoPickup = createPickup ( 196.97218, -232.41890, 1.55537, 3, 1210)
MarkerMecanico = createMarker ( 196.97218, -232.41890, 1.55537, "cylinder", 1.2, 255, 255, 255, 0 )
attachElements ( MarkerMecanico, MecanicoPickup, 0, 0, -1 )
BlipMecanico = createBlipAttachedTo ( MarkerMecanico, 42 )
setBlipVisibleDistance ( BlipMecanico, 150 )

function CancelarSumirPickup ( player )
   cancelEvent()
end
addEventHandler ( "onPickupHit", MecanicoPickup, CancelarSumirPickup )

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

ValorPorReparar = 500

LetraParaMarkers = "k"
cmd1 = "reparar" -- /Reparar nick - Para Reparar o Veiculo de um Jogador
cmd2 = "recusar" -- /Recusar - Para Recusar o Reparo do Mecanico
cmd3 = "aceitar" -- /Aceitar - Para Aceitar o Reparo do Mecanico
cmd4 = "mecanico" -- /Mecanicos - Para Chamar os Mecanicos Online do Servidor
cmd5 = "profissao" -- /Profissao - Para ver os Comandos da Profissão Atual
cmd6 = "hq" -- /HQ -- Localiza / Deslocaliza o Seu Local de Trabalho

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

local HQMecanicoBlip = createBlip ( 206.11905, -260.74591, 1.36875 )
setElementVisibleTo ( HQMecanicoBlip, root, false )

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

function VerificarBlipEmprego(player)
  if player then
  acc = getPlayerAccount ( player )
  if isGuestAccount ( acc ) then return end
  setElementVisibleTo ( HQMecanicoBlip, player, false )
  end
end

setTimer(
function()
	for i, pl in pairs(getElementsByType("player")) do
		if pl ~= (false or nil) then
		    if getElementData ( pl, "Emprego" ) == "Mecanico" then return end
			   VerificarBlipEmprego(pl)
		end
	end
end,
3000,0)

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

function ComandoHQ ( source )
    if getElementData ( source, "Emprego" ) == "Mecanico" then
	if isElementVisibleTo ( HQMecanicoBlip, source ) then
	setElementVisibleTo ( HQMecanicoBlip, source, false )
	exports.Scripts_Dxmessages:outputDx(source, "Seu Local de Trabalho foi Desmarcado do Mapa!", "info")
	else
	setElementVisibleTo ( HQMecanicoBlip, source, true )
	exports.Scripts_Dxmessages:outputDx(source, "Seu Local de Trabalho foi Marcado no Mapa!", "info")
end
end	
end    
addCommandHandler ( cmd6, ComandoHQ )

function RecusarEmprego01 (source)
exports.Scripts_OnMarkerMsgs_:delete(source)
unbindKey ( source, LetraParaMarkers, "down", RecusarEmprego01 )
if isElementVisibleTo ( HQMecanicoBlip, source ) then
setElementVisibleTo ( HQMecanicoBlip, source, false )
end
removeElementData ( source, "Emprego", "Mecanico" )
exports.Scripts_Dxmessages:outputDx(source, "Você se Demitiu do Emprego de Mecânico com Sucesso!", "warning")
end

function emarker(marker,md) 
	if (md) then
	  if isPedInVehicle ( source ) then return end
		if marker == MarkerMecanico then
		    if getElementData ( source, "Emprego" ) == "Mecanico" then
			exports.Scripts_OnMarkerMsgs_:create(source,"Aperte 'K' Para se Demitir do Emprego de Mecânico")
			bindKey ( source, LetraParaMarkers, "down", RecusarEmprego01 )
		    end
		end
	end	
end
addEventHandler("onPlayerMarkerHit",getRootElement(),emarker)

function lmarker(marker,md)
	if (md) then
		if marker == MarkerMecanico then
			exports.Scripts_OnMarkerMsgs_:delete(source)			
			unbindKey ( source, LetraParaMarkers, "down", RecusarEmprego01 )
		end
	end
end
addEventHandler("onPlayerMarkerLeave",getRootElement(),lmarker)

canceltimer={}
function fix(source,cmd,pname)
	if getElementData(source, "Emprego" ) == "Mecanico" then
		local cliente = getPlayerFromPartialName(pname)
		if isElement(cliente) then
			if cliente == source then exports.Scripts_Dxmessages:outputDx(source, "Você não Pode Oferecer Reparos Para Você Mesmo!", "error") return end
			if isPedInVehicle(cliente) then
				local seat = getPedOccupiedVehicleSeat(cliente)
				if seat == 0 then
					local mecanico = getElementData(cliente,"cliente:mecanico")
					if isElement(mecanico) then
					    exports.Scripts_Dxmessages:outputDx(source, "O Jogador "..getPlayerName(cliente).." Ja Esta Sendo Atendido Por um Mecanico!", "error")
					else
						local cx,cy,cz = getElementPosition(cliente)
						local x,y,z = getElementPosition(source)
						local dist = getDistanceBetweenPoints3D(x,y,z,cx,cy,cz)
						if dist <= 7 then
							local cmoney = getPlayerMoney(cliente)
							if cmoney >= ValorPorReparar then
								setElementData(cliente,"cliente:mecanico",source)
								
								exports.Scripts_Dxmessages:outputDx(source, "Você Ofereceu Serviços de Reparo para o Jogador "..getPlayerName(cliente), "warning")
								
								exports.Scripts_Dxmessages:outputDx(cliente, "O Mecanico "..getPlayerName(source).." Quer Reparar seu Veiculo Por $"..ValorPorReparar..", Digite /Aceitar ou /Recusar.", "warning")
								canceltimer[cliente] = setTimer(cancelfix,10000,1,cliente)
							else
							    exports.Scripts_Dxmessages:outputDx(source, "O Jogador "..getPlayerName(cliente).." Não tem Dinheiro Suficiente!", "error")
							end
						end
					end
				else
				    exports.Scripts_Dxmessages:outputDx(source, "O Jogador "..getPlayerName(cliente).." Não é o Motorista do Veiculo!", "error")
				end
			else
			    exports.Scripts_Dxmessages:outputDx(source, "O Jogador "..getPlayerName(cliente).." Não Esta em um Veiculo!", "error")
			end
		else
		    exports.Scripts_Dxmessages:outputDx(source, "O Jogador Não Foi Encontrado", "error")
		end
	end
end
addCommandHandler(cmd1,fix)

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

function recusar(source)
	local mecanico = getElementData(source,"cliente:mecanico")
	if isElement(mecanico) then
	    exports.Scripts_Dxmessages:outputDx(mecanico, "O Jogador "..getPlayerName(source).." Recusou o Reparo!", "error") -- Mecanico
		exports.Scripts_Dxmessages:outputDx(source, "Você Recusou o Reparo", "success")
	end
	setElementData(source,"cliente:mecanico",nil)	
	if isTimer(canceltimer[source]) then
		killTimer(canceltimer[source])
	end
end
addCommandHandler(cmd2,recusar)

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

function aceitar(source)
	local mecanico = getElementData(source,"cliente:mecanico")
	if isElement(mecanico) then
	    
		if not isPedInVehicle(source) then
		exports.Scripts_Dxmessages:outputDx(mecanico, "O Jogador Aceitou o Reparo, Porem não Esta em um Veiculo!", "warning")
		exports.Scripts_Dxmessages:outputDx(source, "Você Não Pode Aceitar um Reparo Fora de um Veiculo!", "warning") return end
		
		--Procurado = getPlayerWantedLevel ( source )
		--if Procurado > 0 then
		--exports.Scripts_Dxmessages:outputDx(source, "Você Esta Procurado e Não Podera Aceitar o Reparo!", "warning")
		--exports.Scripts_Dxmessages:outputDx(mecanico, "O Jogador Aceitou o Reparo, Porem Estava Procurado, Reparo Cancelado!", "warning")
		--return end

		exports.Scripts_Dxmessages:outputDx(mecanico, "O Jogador "..getPlayerName(source).." Aceitou o Reparo", "success")
		local cx,cy,cz = getElementPosition(mecanico)
		local x,y,z = getElementPosition(source)
		local dist = getDistanceBetweenPoints3D(x,y,z,cx,cy,cz)
		if dist <= 7 then	
			if isPedInVehicle(source) then
				local seat = getPedOccupiedVehicleSeat(source)
				if seat == 0 then			
					local vh = getPedOccupiedVehicle(source)
					if isElement(vh) then
						setElementHealth(vh,1000)
						fixVehicle(vh)
						setVehicleEngineState(vh,true)
						if  isVehicleDamageProof(vh) then
							setVehicleDamageProof(vh,false)
						end
					end
					takePlayerMoney(source,ValorPorReparar)
					givePlayerMoney(mecanico,ValorPorReparar)
					exports.Scripts_Dxmessages:outputDx(mecanico, "Você Recebeu $"..ValorPorReparar.." Por Reparar um Veiculo!", "success")
					exports.Scripts_Dxmessages:outputDx(source, "Você Pagou $"..ValorPorReparar.." Ao Mecanico Por Reparar seu Veiculo!", "success")
					
					setElementData ( mecanico, "AirNewSCR_LiberarXP", "Sim" )
					
				end
			end	
		else
		    exports.Scripts_Dxmessages:outputDx(source, "O Mecanico Esta Muito Longe!", "error")
			exports.Scripts_Dxmessages:outputDx(mecanico, "Você Esta Muito Longe do Cliente!", "error")
		end
	end
	setElementData(source,"cliente:mecanico",nil)	
	if isTimer(canceltimer[source]) then
		killTimer(canceltimer[source])
	end
end
addCommandHandler(cmd3,aceitar)

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

function cancelfix(source)
	local mecanico = getElementData(source,"cliente:mecanico")
	if isElement(mecanico) then
		exports.Scripts_Dxmessages:outputDx(mecanico, "O Jogador "..getPlayerName(source).." Demorou Para Aceitar o Reparo!", "error")
	end
	exports.Scripts_Dxmessages:outputDx(source, "Você Demorou Demais Para Aceitar o Reparo!", "error")
	setElementData(source,"cliente:mecanico",nil)	
end

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

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

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

addEventHandler("onVehicleDamage", getRootElement(),function(loss)
	if getElementType ( source ) == "vehicle" then
		if not isVehicleDamageProof(source) then
			local HP = getElementHealth(source)-loss		
			if HP <= 350 then 
				HP = 350 
				setElementHealth(source,350)
				setVehicleEngineState(source,false)
				setVehicleDamageProof(source,true)
				if isVehicleBlown(source) then
					fixVehicle(source)	
					setElementHealth(source,350)
					setVehicleDamageProof(source,true)
				end 
			end
		end	
	end	
end)

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

function DesligarAndLigar ( playerSource )
   if math.floor ( getElementHealth( source ) + 0.5 ) > 350 then 
    setVehicleDamageProof( source, false ) -- Não Quebrado
    else 
    setVehicleEngineState( source, false ) -- Quebrado
	triggerClientEvent ( "Mecanico>Quebrado", playerSource )
    end 
end 
addEventHandler ( "onVehicleEnter", root, DesligarAndLigar )

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

function MecanicoVem(source)
for i, player in ipairs(getElementsByType("player")) do
local uj = getElementData(player, "Emprego" ) or false
--if type(uj) == "boolean" then
if uj == "Mecanico" then
exports.Scripts_Dxmessages:outputDx(player, "O Jogador "..getPlayerName(source).." Chamou Por um Mecanico! Digite /Localizar "..getPlayerName(source), "warning")
end
--end
end		
end
addCommandHandler(cmd4,MecanicoVem)

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

function ComandoMecanico ( ThePlayer )
exports.Scripts_Dxmessages:outputDx(ThePlayer, "Os Mecanicos Foram Avisados, Aguarde no Local!", "warning")
setElementData ( ThePlayer, "Chamado:Mecanico", true )
setTimer ( function() removeElementData ( ThePlayer, "Chamado:Mecanico" ) end, 60000, 1 )
end
addCommandHandler(cmd4, ComandoMecanico )

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

function ComandosProf ( ThePlayer )
if getElementData ( ThePlayer, "Emprego" ) == "Mecanico" then
playSoundFrontEnd ( ThePlayer, 43 )
outputChatBox ( "#F9A631~~~~~~~~~~~~~~~~~~~~~~~~~~~~ #F96031Profissão #F9A631~~~~~~~~~~~~~~~~~~~~~~~~~~~~", ThePlayer, 255, 255, 255, true )
outputChatBox ( "#F96031» #BEE09AComandos da Profissão de Mecânico", ThePlayer, 255, 255, 255, true )
outputChatBox ( "#F96031» #55D444/HQ #ffffff- #9ABDE0Para Marcar / Desmarcar o seu Local de Trabalho", ThePlayer, 255, 255, 255, true )
outputChatBox ( "#F96031» #55D444/Reparar Nick #ffffff- #9ABDE0Para Reparar um Veiculo de outro Jogador", ThePlayer, 255, 255, 255, true )
outputChatBox ( "#F96031» #55D444/Localizar Nick #ffffff- #9ABDE0Para Localizar um Jogador", ThePlayer, 255, 255, 255, true )
outputChatBox ( "#F96031» #55D444/Deslocalizar #ffffff- #9ABDE0Para Deslocalizar um Jogador", ThePlayer, 255, 255, 255, true )
outputChatBox ( "#F96031» #FFD700Entre no Veiculo da Profissão, Aguarde um Chamado por um Mecanico!", ThePlayer, 255, 255, 255, true )
outputChatBox ( "#F9A631~~~~~~~~~~~~~~~~~~~~~~~~~~~~ #F96031Profissão #F9A631~~~~~~~~~~~~~~~~~~~~~~~~~~~~", ThePlayer, 255, 255, 255, true )
end
end
addCommandHandler(cmd5, ComandosProf )

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

function CriarVeiculosComData ()
VeiculosComData = {
createVehicle(525, 196.30507, -252.62512, 1.3, 0, 0, 180 ),
createVehicle(525, 201.30507, -252.62512, 1.3, 0, 0, 180 ),
createVehicle(525, 206.30507, -252.62512, 1.3, 0, 0, 180 ),
createVehicle(525, 211.30507, -252.62512, 1.3, 0, 0, 180 ),
createVehicle(525, 216.30507, -252.62512, 1.3, 0, 0, 180 ),

createVehicle(525, 196.30507, -268.03806, 1.3, 0, 0, 0 ),
createVehicle(525, 201.30507, -268.03806, 1.3, 0, 0, 0 ),
createVehicle(525, 206.30507, -268.03806, 1.3, 0, 0, 0 ),
createVehicle(525, 211.30507, -268.03806, 1.3, 0, 0, 0 ),
createVehicle(525, 216.30507, -268.03806, 1.3, 0, 0, 0 ),
}

for i, veh in ipairs(VeiculosComData) do
setElementData ( veh, "Emprego", "Mecanico" )
setVehicleDamageProof(veh,true)
setVehicleColor( veh, 255, 255, 255 )
setVehiclePlateText ( veh, "RPGAMING" )
addEventHandler("onVehicleStartEnter", veh, VerificarEmprego )
--addEventHandler("onVehicleExit", veh, SairDoVeiculosComData )
local tx, ty, tz = getElementPosition(veh)
local rx, ry, rz = getElementRotation(veh)
setVehicleRespawnPosition(veh, tx, ty, tz, rx, ry, rz)
end
end
addEventHandler("onResourceStart", resourceRoot, CriarVeiculosComData )

function VerificarEmprego (thePlayer, seat)
local Jogador = getElementData(thePlayer, "Emprego" )
if seat == 0 then
    if Jogador == "Mecanico" then
	else
    cancelEvent()
    exports.Scripts_Dxmessages:outputDx(thePlayer, "Esse Veiculo é Exclusivo dos Mecânicos!", "error")
    end
  end
end

--[[function SairDoVeiculosComData ()
local veh = source
setTimer(function()
  if getVehicleOccupant(veh) == false then
respawnVehicle(veh)
end
end, 30000, 1)
end
addEventHandler ( "onPlayerQuit", getRootElement(), SairDoVeiculosComData ) --]]

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

local rElement = getRootElement() 
  
Tempo_Respawn = 5
  
function respawnVehicles(player, seconds)
	outputChatBox ( "AVISO: Respawnando Veiculos não usados Emprego de Mecanico", root, 255, 255, 255, true )
    outputChatBox ( "AVISO: Respawnando Veiculos dos Mecanicos em 10 Segundos!", root, 255, 255, 255, true )
    for i, veh in ipairs(VeiculosComData) do
        if isEmpty( veh ) then
	            setTimer ( function()
		            respawnVehicle ( veh ) 
	            end, 10000, 1 )
            end 
        end 
    end
setTimer(respawnVehicles, Tempo_Respawn * 60000,0)

function isEmpty( vehicle ) 
    local passengers = getVehicleMaxPassengers( vehicle ) 
    if type( passengers ) == 'number' then 
        for seat = 0, passengers do 
            if getVehicleOccupant( vehicle, seat ) then 
                return false 
            end 
        end 
    end 
    return true 
end

Grupo = "Mecanico"

function Verificar_Emprego_Atual ( )
	for i, player in ipairs(getElementsByType("player")) do
		local acc = getPlayerAccount(player)
		if acc and not isGuestAccount(acc) then
			local accName = getAccountName (acc)
			if isObjectInACLGroup ("user."..accName, aclGetGroup ( Grupo ) ) then
			    if getElementData ( player, "Emprego" ) == false then
			        setElementData ( player, "Emprego", "Mecanico" )
				end
			else
			    if getElementData ( player, "Emprego" ) == "Mecanico" then
			        setElementData ( player, "Emprego", false )
				end
			end
		end
	end
end
setTimer ( Verificar_Emprego_Atual, 5000, 0 )

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

 

Link to comment
  • Other Languages Moderators
function Verificar_Emprego_Atual ( )
	for i, player in ipairs(getElementsByType("player")) do
		if not getElementData ( player, "Emprego" ) then
			setElementData ( player, "Emprego", "Mecanico" )
		end
	end
end
setTimer ( Verificar_Emprego_Atual, 5000, 0 )

Não entendi a lógica do seu script. Mas removi as linhas e condições relacionadas com ACL e account do jogador.

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