Jump to content

Script ajuda


Recommended Posts

Posted

To com esse script de algemar, ele ta por niick, porem eu tentei por, pelo id trocando o (Nick) por (ID) Não funcionou alguem pode mim ajuda?

--[[



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



--]]

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

InteriorDP = 6
DimensaoDP = 0

Cmd01 = "a" -- Algema
Cmd02 = "d" -- Desalgema
Cmd03 = "c" -- Retira Armas

Grupo = "Policial"

Distancia_Comandos = 7

Deixar_Preso = createMarker ( 1535.73486, -1672.03137, 13.38281 -1, "cylinder", 10, 255, 255, 255, 0 )

Local_Preso = createMarker ( 264.08435, 77.60955, 1001.03906 -1, "cylinder", 2.5, 255, 255, 255, 0 )
setElementInterior ( Local_Preso, InteriorDP )
setElementDimension ( Local_Preso, DimensaoDP )

function emarker ( marker, md )
	if md then
	    if marker == Deixar_Preso then
		    if getElementData ( source, "ocupacao" ) == "Policial" then
		        setElementData ( source, "AirNewSCR_PrisaoArea", "Sim" )
				exports.Scripts_OnMarkerMsgs_:create ( source, "Aviso: Aperte F9 para Abrir / Fechar o Painel de Prender do DP" )
			end
		end
    end
end
addEventHandler ( "onPlayerMarkerHit", getRootElement ( ), emarker )

function lmarker ( marker, md )
	if md then
	    if marker == Deixar_Preso then
		    setElementData ( source, "AirNewSCR_PrisaoArea", "Não" )
			exports.Scripts_OnMarkerMsgs_:delete(source)
		end
    end
end
addEventHandler ( "onPlayerMarkerLeave", getRootElement ( ), lmarker )

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	

function Algemar_Jogador ( thePlayer, _, nick )
	if nick then
		if getPlayerFromPartialName ( nick ) then
            local accName = getAccountName ( getPlayerAccount ( thePlayer ) )
            if isObjectInACLGroup ("user."..accName, aclGetGroup ( Grupo ) ) then
				local player_a_ser_algemado = getPlayerFromPartialName ( nick )
                local nick_do_jogador = getPlayerName ( player_a_ser_algemado )
				local nick_do_policial = getPlayerName ( thePlayer )
                local jX, jY, jZ = getElementPosition (player_a_ser_algemado) 
				local pX, pY, pZ = getElementPosition (thePlayer)
				local dist = getDistanceBetweenPoints3D ( pX, pY, pZ, jX, jY, jZ)
				if thePlayer == player_a_ser_algemado then
				    return exports.Scripts_Textos:createNewDxMessage ( "Erro: Você não pode algemar você mesmo!", thePlayer, 255, 255, 255 )
				end
				local Verificar = getElementData ( player_a_ser_algemado, "algemado" ) or false
				if Verificar == true then
				    exports.Scripts_Textos:createNewDxMessage ( "Erro: Esse Jogador ja Esta Algemado!", thePlayer, 255, 255, 255 )
				else				
				    if dist <= Distancia_Comandos then
				        setElementData(player_a_ser_algemado,"algemado", true )
				        setElementFrozen( player_a_ser_algemado, true )
				        toggleControl(player_a_ser_algemado, "fire", false)
				        setPedAnimation( player_a_ser_algemado, "GRAVEYARD", "mrnM_loop", -1, true, false, false, false)
				        exports.Scripts_Textos:createNewDxMessage ( "Aviso: Você foi Algemado pelo Policial "..nick_do_policial, player_a_ser_algemado, 255, 255, 255 )
				        exports.Scripts_Textos:createNewDxMessage ( "Aviso: Você algemou o Jogador "..nick_do_jogador.." com Sucesso!", thePlayer, 255, 255, 255 )
				    else
				        exports.Scripts_Textos:createNewDxMessage ( "Erro: Você esta Muito longe do Jogador! chegue mais Perto para poder Algema-lo!", thePlayer, 255, 255, 255 )
				    end
				end
			end
		end
	end
end
addCommandHandler( Cmd01, Algemar_Jogador)

function Desalgemar_Jogador ( thePlayer, _, nick )
	if nick then
		if getPlayerFromPartialName ( nick ) then
            local accName = getAccountName ( getPlayerAccount ( thePlayer ) )
            if isObjectInACLGroup ("user."..accName, aclGetGroup ( Grupo) ) then
				local player_a_ser_desalgemado = getPlayerFromPartialName ( nick )
                local nick_do_jogador = getPlayerName ( player_a_ser_desalgemado )
				local nick_do_policial = getPlayerName ( thePlayer )
				if thePlayer == player_a_ser_desalgemado then
				    return exports.Scripts_Textos:createNewDxMessage ( "Erro: Você não pode desalgemar você mesmo!", thePlayer, 255, 255, 255 )
				end
				local Verificar = getElementData ( player_a_ser_desalgemado, "algemado" ) or false
				if Verificar == false then
				    exports.Scripts_Textos:createNewDxMessage ( "Erro: Esse Jogador não esta Algemado!", thePlayer, 255, 255, 255 )
				else
				    setElementData ( player_a_ser_desalgemado, "algemado", false )
				    setPedAnimation ( player_a_ser_desalgemado )
				    setElementFrozen ( player_a_ser_desalgemado, false )
				    toggleControl ( player_a_ser_desalgemado, "fire", true )
				    exports.Scripts_Textos:createNewDxMessage ( "Aviso: Você foi Desalgemado pelo Policial "..nick_do_policial, player_a_ser_desalgemado, 255, 255, 255 )
				    exports.Scripts_Textos:createNewDxMessage ( "Aviso: Você desalgemou o Jogador "..nick_do_jogador.." com Sucesso!", thePlayer, 255, 255, 255 )
				end
			end
		end
	end
end
addCommandHandler( Cmd02, Desalgemar_Jogador)

function Retirar_Armas ( source, cmd, pname )
	if getElementData(source, "ocupacao" ) == "Policial" then
		local cliente = getPlayerFromPartialName(pname)
		if isElement(cliente) then
			if cliente == source then exports.Scripts_Dxmessages:outputDx(source, "Erro: Você não pode Retirar suas Proprias Armas!", "error") return end
			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
			    takeAllWeapons ( cliente )
				exports.Scripts_Dxmessages:outputDx(source, "Aviso: Você removeu todas as Armas do Jogador #ffffff"..getPlayerName(cliente).." #ffffffcom Sucesso!", "success")
				exports.Scripts_Dxmessages:outputDx(cliente, "Aviso: O Policial #ffffff"..getPlayerName(source).."#ffffff Confiscou todas as suas Armas!", "warning")
			end
		else
		    exports.Scripts_Dxmessages:outputDx(source, "Erro: O Jogador Não Foi Encontrado!", "error")
		end
	end
end
addCommandHandler ( Cmd03, Retirar_Armas )

function Verificar_Emprego_Atual ( )
	for i, player in ipairs(getElementsByType("player")) do
		local acc = getPlayerAccount(player)
		if acc and not isGuestAccount(acc) then
			local job = getElementData(player,'ocupacao')
			local accName = getAccountName (acc)
			if isObjectInACLGroup ("user."..accName, aclGetGroup ( Grupo ) ) then
			    setElementData ( player, "ocupacao", "Policial" )
			    setElementData ( player, "AirNewSCR_Entrada_PortaoDP", "Sim" )
				setElementData ( player, "AirNew_Perm_Prender", "Sim" )
			else
			    setElementData ( player, "ocupacao", "Criminoso" )
			    setElementData ( player, "AirNewSCR_Entrada_PortaoDP", "Não" )
				setElementData ( player, "AirNew_Perm_Prender", "Não" )
			end
		end
	end
end
setTimer ( Verificar_Emprego_Atual, 1500, 0 )

local Prisao_Blip = createBlip ( 1535.89856, -1672.66479, 13.38281 )
setElementVisibleTo ( Prisao_Blip, root, false )

function Nivel_de_Procurado ( source, int )
	if int == 0 then
		setPlayerWantedLevel ( source, int )
	else
		local wl = getPlayerWantedLevel ( source )
		if wl + int <= 6 then
			setPlayerWantedLevel ( source, wl+int )
		else
			setPlayerWantedLevel ( source, 6 )
		end
	end
end
addEvent("AirNewSCR_Nivel_de_Procurado", true)
addEventHandler("AirNewSCR_Nivel_de_Procurado", getRootElement ( ), Nivel_de_Procurado )

function Mensagens_Exports ( source, msg )
	exports.Scripts_Textos:createNewDxMessage ( msg, source, 255, 255, 255 )
end
addEvent ( "AirNewSCR_Mensagens_Exports", true)
addEventHandler ( "AirNewSCR_Mensagens_Exports", getRootElement ( ), Mensagens_Exports )

function Enviar_Prisao_Servidor ( Jogador, Numero, Formato, Motivo )
    outputChatBox ( "#58ACFAPolicia: O Policial #ffffff"..getPlayerName(source).." #58ACFAPrendeu o Jogador #ffffff"..Jogador.."!", root, 255, 255, 255, true )
    outputChatBox ( "#58ACFAPolicia: Pelo tempo de "..Numero.." "..Formato..", Motivo: "..Motivo.."!", root, 255, 255, 255, true )
    Jogador_Func = getPlayerFromName ( Jogador )
    Estrelas_Preso = getPlayerWantedLevel ( Jogador_Func )
    givePlayerMoney ( source, Estrelas_Preso*1000 )
    if Formato == "Segundo(s)" then
        Multiplicador = 1
    elseif Formato == "Minuto(s)" then
        Multiplicador = 60
    elseif Formato == "Hora(s)" then
        Multiplicador = 3600
    elseif Formato == "Dia(s)" then
        Multiplicador = 86400
    end
    TempoPrisao = Numero*Multiplicador
    setElementData ( Jogador_Func, "AirNew_Tempo_Prisao", TempoPrisao )
    setElementData ( Jogador_Func, "AirNew_Preso", "Sim" )
	setPlayerWantedLevel ( Jogador_Func, 0 )
	takeAllWeapons ( Jogador_Func )
	
	setElementData ( Jogador_Func, "Policia:Captura", false )
	setElementData ( Jogador_Func, "Player:Msg", "" )
	showCursor ( Jogador_Func, false)
	setControlState ( Jogador_Func, "sprint", false)
	setControlState ( Jogador_Func, "walk", false)
	setControlState ( Jogador_Func, "forwards", false)
	toggleAllControls ( Jogador_Func, true )
	
	triggerClientEvent ( source, "CancelTimeParaPrender:Time", source )
	
	if getElementData ( Jogador_Func, "algemado" ) == true then
		setElementData ( Jogador_Func, "algemado", false )
		setPedAnimation ( Jogador_Func )
		setElementFrozen ( Jogador_Func, false )
		toggleControl ( Jogador_Func, "fire", true )
	end
end
addEvent( "AirNew_Enviar_Prisao", true )
addEventHandler( "AirNew_Enviar_Prisao", getRootElement(), Enviar_Prisao_Servidor )

function Capturar_Jogador ( source, wantedlevel, vitima )
	local x, y, z = getElementPosition ( vitima )
	if x < -518 and y < 0 then -- SF
		time = 4
	end
	if x >= -518 and y < 510 then -- LS
		time = 2
	end
	if x >= -518 and y >= 510 then -- LV
		time = 4
	end	
	setElementData ( source, "PoliceToPrision:Time", tonumber(time*60) )	
	setTimer ( triggerClientEvent, 10000, 1, source, "ShowTimeParaPrender:Time", source )
	
	exports.Scripts_Textos:createNewDxMessage ( "Você foi Capturado pelo Policial "..getPlayerName(source), vitima, 255, 255, 255 )
	exports.Scripts_Textos:createNewDxMessage ( "Você tem "..time.." Minutos para Levar o Jogador para a Prisão!", source, 255, 255, 255 )
	
	toggleAllControls ( vitima, false )
	setElementVisibleTo ( Prisao_Blip, source, true )
end
addEvent("AirNewSCR_Capturar_Jogador", true)
addEventHandler("AirNewSCR_Capturar_Jogador", getRootElement(), Capturar_Jogador )

function Teleportar_Capturado_Veiculo ( state, player , vehicle , seat )
	if state == true then
		if seat and isElement ( vehicle ) then
		    warpPedIntoVehicle ( player, vehicle, seat )
		end
	else 
		removePedFromVehicle ( player )
	end
end
addEvent ( "AirNewSCR_TeleportarVeiculo", true )
addEventHandler ( "AirNewSCR_TeleportarVeiculo", getRootElement ( ), Teleportar_Capturado_Veiculo )

function Remover_Jogador_Veiculo ( player )
    removePedFromVehicle ( player )
end
addEvent ( "AirNewSCR_Remover_Jogador_Veiculo", true )
addEventHandler ( "AirNewSCR_Remover_Jogador_Veiculo", getRootElement ( ), Remover_Jogador_Veiculo )

function Teleportar_Capturado_Player ( source, type, value, x, y ,z)
	local Policial = getElementData ( source, "Policia:Captura" )
	if isElement ( Policial ) and not isPedInVehicle ( source ) then
		if type == "INT" then
			setElementInterior ( source, value )
		elseif type == "DIM" then
			setElementDimension ( source, value )
		end
		setElementPosition ( source, x, y ,z )
	end
end
addEvent ( "AirNewSCR_TeleportarPlayer", true )
addEventHandler ( "AirNewSCR_TeleportarPlayer", getRootElement ( ), Teleportar_Capturado_Player )

function Liberar_Capturado ( source )	
	for p, player in ipairs ( getElementsByType ( "player" ) ) do	
		job = getElementData ( player,"ocupacao" ) or "Nenhum"
		capturado = getElementData ( player, "Policia:Captura" )
		if job == "Criminoso" and isElement ( capturado ) then
			if capturado == source then
				Soltar_Fail_Captura ( source, player )
			end
		end
	end
end
addEvent ( "AirNewSCR_FalharCapturaLiberar", true )
addEventHandler ( "AirNewSCR_FalharCapturaLiberar", getRootElement ( ), Liberar_Capturado )

function Soltar_Fail_Captura ( policial, vitima )
	exports.Scripts_Textos:createNewDxMessage ( "O policial falhou e voce está solto novamnte, fuja",vitima, 255, 255, 255 )
	exports.Scripts_Textos:createNewDxMessage ( "Voce falhou e o criminoso está solto novamente",policial, 255, 255, 255 )
	setElementVisibleTo ( Prisao_Blip, policial, false )
	setElementData ( vitima, "Policia:Captura", false )
	setElementData ( vitima, "Player:Msg", "" )
	showCursor ( vitima, false )
	setControlState ( vitima, "sprint", false )
	setControlState ( vitima, "walk", false )
	setControlState ( vitima, "forwards", false )
	toggleAllControls ( vitima, true )
end

--- // Salvamento - Carregamento // ---

addEventHandler("onPlayerLogin", root,
function( _, acc )
 CarregarLoginPlay ( acc )
 end
)

function CarregarLoginPlay ( conta )
	if not isGuestAccount ( conta ) then
		if conta then	
			local source = getAccountPlayer ( conta )
			local AirNew_Tempo_Prisao = getAccountData ( conta, "AirNew_Tempo_Prisao" ) or 0
			setElementData ( source, "AirNew_Tempo_Prisao", AirNew_Tempo_Prisao )
			local AirNew_Preso = getAccountData ( conta, "AirNew_Preso" ) or "Não"
			setElementData ( source, "AirNew_Preso", AirNew_Preso )
		end
	end	
end

function ReiniciarScript ( res )
	if res == getThisResource ( ) then
		for i, player in ipairs ( getElementsByType ( "player" ) ) do
			local acc = getPlayerAccount ( player )
			if not isGuestAccount ( acc ) then
				CarregarLoginPlay ( acc )
			end
		end
	end
end
addEventHandler ( "onResourceStart", getRootElement ( ), ReiniciarScript )

--

function SalvarLoginPlay ( conta )
	if conta then
		local source = getAccountPlayer ( conta )
		local AirNew_Tempo_Prisao = getElementData ( source, "AirNew_Tempo_Prisao" ) or 0
		setAccountData ( conta, "AirNew_Tempo_Prisao", AirNew_Tempo_Prisao )
		local AirNew_Preso = getElementData ( source, "AirNew_Preso" ) or "Não"
		setAccountData ( conta, "AirNew_Preso", AirNew_Preso )
	end	
end

function DesligarScript ( res )
    if res == getThisResource ( ) then
		for i, player in ipairs ( getElementsByType ( "player" ) ) do
			local acc = getPlayerAccount ( player )
			if not isGuestAccount ( acc ) then
				SalvarLoginPlay ( acc )
			end
		end
	end
end 
addEventHandler ( "onResourceStop", getRootElement ( ), DesligarScript )

function JogadorQuit ( quitType )
	local acc = getPlayerAccount ( source )
	if not isGuestAccount ( acc ) then
		if acc then
			SalvarLoginPlay ( acc )
		end
	end
end
addEventHandler ( "onPlayerQuit", getRootElement ( ), JogadorQuit )

 

Posted

Vai depender de como funciona seu sistema de id. A função de retornar o player pelo id é só trocar pela getPlayerFromPartialName.

Please do not PM me with scripting related question nor support, use the forums instead.

Posted
12 hours ago, DNL291 said:

Vai depender de como funciona seu sistema de id. A função de retornar o player pelo id é só trocar pela getPlayerFromPartialName.

Meu sistema de id é o Dnl, Data: ID, no caso eu troco pelo getPlayerFromPartialName.

Posted
function getPlayerFromID( id )
	for _, player in next, getElementsByType("player") do
		if tonumber(id) and (getElementData(player, "ID") or -1) == tonumber(id) then
			return player
		end
	end
	return false
end

Tenta usando essa função

Please do not PM me with scripting related question nor support, use the forums instead.

Posted
3 hours ago, DNL291 said:

function getPlayerFromID( id )	for _, player in next, getElementsByType("player") do		if tonumber(id) and (getElementData(player, "ID") or -1) == tonumber(id) then			return player		end	end	return falseend

Tenta usando essa função

Tentei colocar no script, porem sem sucesso, sera a posição errada que eu coloquei? Poderia colocar pra mim? Não sei mexer muito.

Posted

Você precisa colar meu código dentro do script, fora isso é só substituir getPlayerFromPartialName por getPlayerFromID nos três addCommands. Lembre-se de remover a função do código, pois ela não será mais utilizada.

Se tiver alguma dificuldade mostre aqui seu código.

Please do not PM me with scripting related question nor support, use the forums instead.

Posted

Primeiramente Feliz Ano Novo, muitos anos de vida, eu fiz assim o Script, ta certinho? 

--[[



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



--]]

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

InteriorDP = 6
DimensaoDP = 0

Cmd01 = "a" -- Algema
Cmd02 = "d" -- Desalgema
Cmd03 = "c" -- Retira Armas

Grupo = "Policial"

Distancia_Comandos = 7

Deixar_Preso = createMarker ( 1535.73486, -1672.03137, 13.38281 -1, "cylinder", 10, 255, 255, 255, 0 )

Local_Preso = createMarker ( 264.08435, 77.60955, 1001.03906 -1, "cylinder", 2.5, 255, 255, 255, 0 )
setElementInterior ( Local_Preso, InteriorDP )
setElementDimension ( Local_Preso, DimensaoDP )

function emarker ( marker, md )
	if md then
	    if marker == Deixar_Preso then
		    if getElementData ( source, "ocupacao" ) == "Policial" then
		        setElementData ( source, "AirNewSCR_PrisaoArea", "Sim" )
				exports.Scripts_OnMarkerMsgs_:create ( source, "Aviso: Aperte F9 para Abrir / Fechar o Painel de Prender do DP" )
			end
		end
    end
end
addEventHandler ( "onPlayerMarkerHit", getRootElement ( ), emarker )

function lmarker ( marker, md )
	if md then
	    if marker == Deixar_Preso then
		    setElementData ( source, "AirNewSCR_PrisaoArea", "Não" )
			exports.Scripts_OnMarkerMsgs_:delete(source)
		end
    end
end
addEventHandler ( "onPlayerMarkerLeave", getRootElement ( ), lmarker )

function getPlayerFromID(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	

function Algemar_Jogador ( thePlayer, _, nick )
	if nick then
		if getPlayerFromID ( nick ) then
            local accName = getAccountName ( getPlayerAccount ( thePlayer ) )
            if isObjectInACLGroup ("user."..accName, aclGetGroup ( Grupo ) ) then
				local player_a_ser_algemado = getPlayerFromID ( nick )
                local nick_do_jogador = getPlayerName ( player_a_ser_algemado )
				local nick_do_policial = getPlayerName ( thePlayer )
                local jX, jY, jZ = getElementPosition (player_a_ser_algemado) 
				local pX, pY, pZ = getElementPosition (thePlayer)
				local dist = getDistanceBetweenPoints3D ( pX, pY, pZ, jX, jY, jZ)
				if thePlayer == player_a_ser_algemado then
				    return exports.Scripts_Textos:createNewDxMessage ( "Erro: Você não pode algemar você mesmo!", thePlayer, 255, 255, 255 )
				end
				local Verificar = getElementData ( player_a_ser_algemado, "algemado" ) or false
				if Verificar == true then
				    exports.Scripts_Textos:createNewDxMessage ( "Erro: Esse Jogador ja Esta Algemado!", thePlayer, 255, 255, 255 )
				else				
				    if dist <= Distancia_Comandos then
				        setElementData(player_a_ser_algemado,"algemado", true )
				        setElementFrozen( player_a_ser_algemado, true )
				        toggleControl(player_a_ser_algemado, "fire", false)
				        setPedAnimation( player_a_ser_algemado, "GRAVEYARD", "mrnM_loop", -1, true, false, false, false)
				        exports.Scripts_Textos:createNewDxMessage ( "Aviso: Você foi Algemado pelo Policial "..nick_do_policial, player_a_ser_algemado, 255, 255, 255 )
				        exports.Scripts_Textos:createNewDxMessage ( "Aviso: Você algemou o Jogador "..nick_do_jogador.." com Sucesso!", thePlayer, 255, 255, 255 )
				    else
				        exports.Scripts_Textos:createNewDxMessage ( "Erro: Você esta Muito longe do Jogador! chegue mais Perto para poder Algema-lo!", thePlayer, 255, 255, 255 )
				    end
				end
			end
		end
	end
end
addCommandHandler( Cmd01, Algemar_Jogador)

function Desalgemar_Jogador ( thePlayer, _, nick )
	if nick then
		if ggetPlayerFromID ( nick ) then
            local accName = getAccountName ( getPlayerAccount ( thePlayer ) )
            if isObjectInACLGroup ("user."..accName, aclGetGroup ( Grupo) ) then
				local player_a_ser_desalgemado = getPlayerFromID ( nick )
                local nick_do_jogador = getPlayerName ( player_a_ser_desalgemado )
				local nick_do_policial = getPlayerName ( thePlayer )
				if thePlayer == player_a_ser_desalgemado then
				    return exports.Scripts_Textos:createNewDxMessage ( "Erro: Você não pode desalgemar você mesmo!", thePlayer, 255, 255, 255 )
				end
				local Verificar = getElementData ( player_a_ser_desalgemado, "algemado" ) or false
				if Verificar == false then
				    exports.Scripts_Textos:createNewDxMessage ( "Erro: Esse Jogador não esta Algemado!", thePlayer, 255, 255, 255 )
				else
				    setElementData ( player_a_ser_desalgemado, "algemado", false )
				    setPedAnimation ( player_a_ser_desalgemado )
				    setElementFrozen ( player_a_ser_desalgemado, false )
				    toggleControl ( player_a_ser_desalgemado, "fire", true )
				    exports.Scripts_Textos:createNewDxMessage ( "Aviso: Você foi Desalgemado pelo Policial "..nick_do_policial, player_a_ser_desalgemado, 255, 255, 255 )
				    exports.Scripts_Textos:createNewDxMessage ( "Aviso: Você desalgemou o Jogador "..nick_do_jogador.." com Sucesso!", thePlayer, 255, 255, 255 )
				end
			end
		end
	end
end
addCommandHandler( Cmd02, Desalgemar_Jogador)

function Retirar_Armas ( source, cmd, pname )
	if getElementData(source, "ocupacao" ) == "Policial" then
		local cliente = getPlayerFromID(pname)
		if isElement(cliente) then
			if cliente == source then exports.Scripts_Dxmessages:outputDx(source, "Erro: Você não pode Retirar suas Proprias Armas!", "error") return end
			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
			    takeAllWeapons ( cliente )
				exports.Scripts_Dxmessages:outputDx(source, "Aviso: Você removeu todas as Armas do Jogador #ffffff"..getPlayerName(cliente).." #ffffffcom Sucesso!", "success")
				exports.Scripts_Dxmessages:outputDx(cliente, "Aviso: O Policial #ffffff"..getPlayerName(source).."#ffffff Confiscou todas as suas Armas!", "warning")
			end
		else
		    exports.Scripts_Dxmessages:outputDx(source, "Erro: O Jogador Não Foi Encontrado!", "error")
		end
	end
end
addCommandHandler ( Cmd03, Retirar_Armas )

function Verificar_Emprego_Atual ( )
	for i, player in ipairs(getElementsByType("player")) do
		local acc = getPlayerAccount(player)
		if acc and not isGuestAccount(acc) then
			local job = getElementData(player,'ocupacao')
			local accName = getAccountName (acc)
			if isObjectInACLGroup ("user."..accName, aclGetGroup ( Grupo ) ) then
			    setElementData ( player, "ocupacao", "Policial" )
			    setElementData ( player, "AirNewSCR_Entrada_PortaoDP", "Sim" )
				setElementData ( player, "AirNew_Perm_Prender", "Sim" )
			else
			    setElementData ( player, "ocupacao", "Criminoso" )
			    setElementData ( player, "AirNewSCR_Entrada_PortaoDP", "Não" )
				setElementData ( player, "AirNew_Perm_Prender", "Não" )
			end
		end
	end
end
setTimer ( Verificar_Emprego_Atual, 1500, 0 )

local Prisao_Blip = createBlip ( 1535.89856, -1672.66479, 13.38281 )
setElementVisibleTo ( Prisao_Blip, root, false )

function Nivel_de_Procurado ( source, int )
	if int == 0 then
		setPlayerWantedLevel ( source, int )
	else
		local wl = getPlayerWantedLevel ( source )
		if wl + int <= 6 then
			setPlayerWantedLevel ( source, wl+int )
		else
			setPlayerWantedLevel ( source, 6 )
		end
	end
end
addEvent("AirNewSCR_Nivel_de_Procurado", true)
addEventHandler("AirNewSCR_Nivel_de_Procurado", getRootElement ( ), Nivel_de_Procurado )

function Mensagens_Exports ( source, msg )
	exports.Scripts_Textos:createNewDxMessage ( msg, source, 255, 255, 255 )
end
addEvent ( "AirNewSCR_Mensagens_Exports", true)
addEventHandler ( "AirNewSCR_Mensagens_Exports", getRootElement ( ), Mensagens_Exports )

function Enviar_Prisao_Servidor ( Jogador, Numero, Formato, Motivo )
    outputChatBox ( "#58ACFAPolicia: O Policial #ffffff"..getPlayerName(source).." #58ACFAPrendeu o Jogador #ffffff"..Jogador.."!", root, 255, 255, 255, true )
    outputChatBox ( "#58ACFAPolicia: Pelo tempo de "..Numero.." "..Formato..", Motivo: "..Motivo.."!", root, 255, 255, 255, true )
    Jogador_Func = getPlayerFromName ( Jogador )
    Estrelas_Preso = getPlayerWantedLevel ( Jogador_Func )
    givePlayerMoney ( source, Estrelas_Preso*1000 )
    if Formato == "Segundo(s)" then
        Multiplicador = 1
    elseif Formato == "Minuto(s)" then
        Multiplicador = 60
    elseif Formato == "Hora(s)" then
        Multiplicador = 3600
    elseif Formato == "Dia(s)" then
        Multiplicador = 86400
    end
    TempoPrisao = Numero*Multiplicador
    setElementData ( Jogador_Func, "AirNew_Tempo_Prisao", TempoPrisao )
    setElementData ( Jogador_Func, "AirNew_Preso", "Sim" )
	setPlayerWantedLevel ( Jogador_Func, 0 )
	takeAllWeapons ( Jogador_Func )
	
	setElementData ( Jogador_Func, "Policia:Captura", false )
	setElementData ( Jogador_Func, "Player:Msg", "" )
	showCursor ( Jogador_Func, false)
	setControlState ( Jogador_Func, "sprint", false)
	setControlState ( Jogador_Func, "walk", false)
	setControlState ( Jogador_Func, "forwards", false)
	toggleAllControls ( Jogador_Func, true )
	
	triggerClientEvent ( source, "CancelTimeParaPrender:Time", source )
	
	if getElementData ( Jogador_Func, "algemado" ) == true then
		setElementData ( Jogador_Func, "algemado", false )
		setPedAnimation ( Jogador_Func )
		setElementFrozen ( Jogador_Func, false )
		toggleControl ( Jogador_Func, "fire", true )
	end
end
addEvent( "AirNew_Enviar_Prisao", true )
addEventHandler( "AirNew_Enviar_Prisao", getRootElement(), Enviar_Prisao_Servidor )

function Capturar_Jogador ( source, wantedlevel, vitima )
	local x, y, z = getElementPosition ( vitima )
	if x < -518 and y < 0 then -- SF
		time = 4
	end
	if x >= -518 and y < 510 then -- LS
		time = 2
	end
	if x >= -518 and y >= 510 then -- LV
		time = 4
	end	
	setElementData ( source, "PoliceToPrision:Time", tonumber(time*60) )	
	setTimer ( triggerClientEvent, 10000, 1, source, "ShowTimeParaPrender:Time", source )
	
	exports.Scripts_Textos:createNewDxMessage ( "Você foi Capturado pelo Policial "..getPlayerName(source), vitima, 255, 255, 255 )
	exports.Scripts_Textos:createNewDxMessage ( "Você tem "..time.." Minutos para Levar o Jogador para a Prisão!", source, 255, 255, 255 )
	
	toggleAllControls ( vitima, false )
	setElementVisibleTo ( Prisao_Blip, source, true )
end
addEvent("AirNewSCR_Capturar_Jogador", true)
addEventHandler("AirNewSCR_Capturar_Jogador", getRootElement(), Capturar_Jogador )

function Teleportar_Capturado_Veiculo ( state, player , vehicle , seat )
	if state == true then
		if seat and isElement ( vehicle ) then
		    warpPedIntoVehicle ( player, vehicle, seat )
		end
	else 
		removePedFromVehicle ( player )
	end
end
addEvent ( "AirNewSCR_TeleportarVeiculo", true )
addEventHandler ( "AirNewSCR_TeleportarVeiculo", getRootElement ( ), Teleportar_Capturado_Veiculo )

function Remover_Jogador_Veiculo ( player )
    removePedFromVehicle ( player )
end
addEvent ( "AirNewSCR_Remover_Jogador_Veiculo", true )
addEventHandler ( "AirNewSCR_Remover_Jogador_Veiculo", getRootElement ( ), Remover_Jogador_Veiculo )

function Teleportar_Capturado_Player ( source, type, value, x, y ,z)
	local Policial = getElementData ( source, "Policia:Captura" )
	if isElement ( Policial ) and not isPedInVehicle ( source ) then
		if type == "INT" then
			setElementInterior ( source, value )
		elseif type == "DIM" then
			setElementDimension ( source, value )
		end
		setElementPosition ( source, x, y ,z )
	end
end
addEvent ( "AirNewSCR_TeleportarPlayer", true )
addEventHandler ( "AirNewSCR_TeleportarPlayer", getRootElement ( ), Teleportar_Capturado_Player )

function Liberar_Capturado ( source )	
	for p, player in ipairs ( getElementsByType ( "player" ) ) do	
		job = getElementData ( player,"ocupacao" ) or "Nenhum"
		capturado = getElementData ( player, "Policia:Captura" )
		if job == "Criminoso" and isElement ( capturado ) then
			if capturado == source then
				Soltar_Fail_Captura ( source, player )
			end
		end
	end
end
addEvent ( "AirNewSCR_FalharCapturaLiberar", true )
addEventHandler ( "AirNewSCR_FalharCapturaLiberar", getRootElement ( ), Liberar_Capturado )

function Soltar_Fail_Captura ( policial, vitima )
	exports.Scripts_Textos:createNewDxMessage ( "O policial falhou e voce está solto novamnte, fuja",vitima, 255, 255, 255 )
	exports.Scripts_Textos:createNewDxMessage ( "Voce falhou e o criminoso está solto novamente",policial, 255, 255, 255 )
	setElementVisibleTo ( Prisao_Blip, policial, false )
	setElementData ( vitima, "Policia:Captura", false )
	setElementData ( vitima, "Player:Msg", "" )
	showCursor ( vitima, false )
	setControlState ( vitima, "sprint", false )
	setControlState ( vitima, "walk", false )
	setControlState ( vitima, "forwards", false )
	toggleAllControls ( vitima, true )
end

--- // Salvamento - Carregamento // ---

addEventHandler("onPlayerLogin", root,
function( _, acc )
 CarregarLoginPlay ( acc )
 end
)

function CarregarLoginPlay ( conta )
	if not isGuestAccount ( conta ) then
		if conta then	
			local source = getAccountPlayer ( conta )
			local AirNew_Tempo_Prisao = getAccountData ( conta, "AirNew_Tempo_Prisao" ) or 0
			setElementData ( source, "AirNew_Tempo_Prisao", AirNew_Tempo_Prisao )
			local AirNew_Preso = getAccountData ( conta, "AirNew_Preso" ) or "Não"
			setElementData ( source, "AirNew_Preso", AirNew_Preso )
		end
	end	
end

function ReiniciarScript ( res )
	if res == getThisResource ( ) then
		for i, player in ipairs ( getElementsByType ( "player" ) ) do
			local acc = getPlayerAccount ( player )
			if not isGuestAccount ( acc ) then
				CarregarLoginPlay ( acc )
			end
		end
	end
end
addEventHandler ( "onResourceStart", getRootElement ( ), ReiniciarScript )

--

function SalvarLoginPlay ( conta )
	if conta then
		local source = getAccountPlayer ( conta )
		local AirNew_Tempo_Prisao = getElementData ( source, "AirNew_Tempo_Prisao" ) or 0
		setAccountData ( conta, "AirNew_Tempo_Prisao", AirNew_Tempo_Prisao )
		local AirNew_Preso = getElementData ( source, "AirNew_Preso" ) or "Não"
		setAccountData ( conta, "AirNew_Preso", AirNew_Preso )
	end	
end

function DesligarScript ( res )
    if res == getThisResource ( ) then
		for i, player in ipairs ( getElementsByType ( "player" ) ) do
			local acc = getPlayerAccount ( player )
			if not isGuestAccount ( acc ) then
				SalvarLoginPlay ( acc )
			end
		end
	end
end 
addEventHandler ( "onResourceStop", getRootElement ( ), DesligarScript )

function JogadorQuit ( quitType )
	local acc = getPlayerAccount ( source )
	if not isGuestAccount ( acc ) then
		if acc then
			SalvarLoginPlay ( acc )
		end
	end
end
addEventHandler ( "onPlayerQuit", getRootElement ( ), JogadorQuit )

function getPlayerFromID( id )
	for _, player in next, getElementsByType("player") do
		if tonumber(id) and (getElementData(player, "ID") or -1) == tonumber(id) then
			return player
		end
	end
	return false
end

 

Posted

Tá quase, você só mudou o nome da função por getPlayerFromID, você tem que substituir ela inteira por esta:

function getPlayerFromID( id )
	for _, player in next, getElementsByType("player") do
		if tonumber(id) and (getElementData(player, "ID") or -1) == tonumber(id) then
			return player
		end
	end
	return false
end

Feliz ano novo pra você.

Please do not PM me with scripting related question nor support, use the forums instead.

Posted
12 hours ago, DNL291 said:

Tá quase, você só mudou o nome da função por getPlayerFromID, você tem que substituir ela inteira por esta:


function getPlayerFromID( id )	for _, player in next, getElementsByType("player") do		if tonumber(id) and (getElementData(player, "ID") or -1) == tonumber(id) then			return player		end	end	return falseend

Feliz ano novo pra você.

Tentei não consegui :(

Posted

Tente isto:
 


InteriorDP = 6
DimensaoDP = 0
Cmd01 = "a" -- Algema
Cmd02 = "d" -- Desalgema
Cmd03 = "c" -- Retira Armas
Grupo = "Policial"
Distancia_Comandos = 7
Deixar_Preso = createMarker ( 1535.73486, -1672.03137, 13.38281 -1, "cylinder", 10, 255, 255, 255, 0 )
Local_Preso = createMarker ( 264.08435, 77.60955, 1001.03906 -1, "cylinder", 2.5, 255, 255, 255, 0 )
setElementInterior ( Local_Preso, InteriorDP )
setElementDimension ( Local_Preso, DimensaoDP )

function emarker ( marker, md )
	if md then
	    if marker == Deixar_Preso then
		    if getElementData ( source, "ocupacao" ) == "Policial" then
		        setElementData ( source, "AirNewSCR_PrisaoArea", "Sim" )
				exports.Scripts_OnMarkerMsgs_:create ( source, "Aviso: Aperte F9 para Abrir / Fechar o Painel de Prender do DP" )
			end
		end
    end
end
addEventHandler ( "onPlayerMarkerHit", getRootElement ( ), emarker )

function lmarker ( marker, md )
	if md then
	    if marker == Deixar_Preso then
		    setElementData ( source, "AirNewSCR_PrisaoArea", "Não" )
			exports.Scripts_OnMarkerMsgs_:delete(source)
		end
    end
end
addEventHandler ( "onPlayerMarkerLeave", getRootElement ( ), lmarker )

function Algemar_Jogador ( thePlayer, _, nick )
	if nick then
		if getPlayerFromID ( nick ) then
            local accName = getAccountName ( getPlayerAccount ( thePlayer ) )
            if isObjectInACLGroup ("user."..accName, aclGetGroup ( Grupo ) ) then
				local player_a_ser_algemado = getPlayerFromID ( nick )
                local nick_do_jogador = getPlayerName ( player_a_ser_algemado )
				local nick_do_policial = getPlayerName ( thePlayer )
                local jX, jY, jZ = getElementPosition (player_a_ser_algemado) 
				local pX, pY, pZ = getElementPosition (thePlayer)
				local dist = getDistanceBetweenPoints3D ( pX, pY, pZ, jX, jY, jZ)
				if thePlayer == player_a_ser_algemado then
				    return exports.Scripts_Textos:createNewDxMessage ( "Erro: Você não pode algemar você mesmo!", thePlayer, 255, 255, 255 )
				end
				local Verificar = getElementData ( player_a_ser_algemado, "algemado" ) or false
				if Verificar == true then
				    exports.Scripts_Textos:createNewDxMessage ( "Erro: Esse Jogador ja Esta Algemado!", thePlayer, 255, 255, 255 )
				else				
				    if dist <= Distancia_Comandos then
				        setElementData(player_a_ser_algemado,"algemado", true )
				        setElementFrozen( player_a_ser_algemado, true )
				        toggleControl(player_a_ser_algemado, "fire", false)
				        setPedAnimation( player_a_ser_algemado, "GRAVEYARD", "mrnM_loop", -1, true, false, false, false)
				        exports.Scripts_Textos:createNewDxMessage ( "Aviso: Você foi Algemado pelo Policial "..nick_do_policial, player_a_ser_algemado, 255, 255, 255 )
				        exports.Scripts_Textos:createNewDxMessage ( "Aviso: Você algemou o Jogador "..nick_do_jogador.." com Sucesso!", thePlayer, 255, 255, 255 )
				    else
				        exports.Scripts_Textos:createNewDxMessage ( "Erro: Você esta Muito longe do Jogador! chegue mais Perto para poder Algema-lo!", thePlayer, 255, 255, 255 )
				    end
				end
			end
		end
	end
end
addCommandHandler( Cmd01, Algemar_Jogador)

function Desalgemar_Jogador ( thePlayer, _, nick )
	if nick then
		if getPlayerFromID ( nick ) then
            local accName = getAccountName ( getPlayerAccount ( thePlayer ) )
            if isObjectInACLGroup ("user."..accName, aclGetGroup ( Grupo) ) then
				local player_a_ser_desalgemado = getPlayerFromID ( nick )
                local nick_do_jogador = getPlayerName ( player_a_ser_desalgemado )
				local nick_do_policial = getPlayerName ( thePlayer )
				if thePlayer == player_a_ser_desalgemado then
				    return exports.Scripts_Textos:createNewDxMessage ( "Erro: Você não pode desalgemar você mesmo!", thePlayer, 255, 255, 255 )
				end
				local Verificar = getElementData ( player_a_ser_desalgemado, "algemado" ) or false
				if Verificar == false then
				    exports.Scripts_Textos:createNewDxMessage ( "Erro: Esse Jogador não esta Algemado!", thePlayer, 255, 255, 255 )
				else
				    setElementData ( player_a_ser_desalgemado, "algemado", false )
				    setPedAnimation ( player_a_ser_desalgemado )
				    setElementFrozen ( player_a_ser_desalgemado, false )
				    toggleControl ( player_a_ser_desalgemado, "fire", true )
				    exports.Scripts_Textos:createNewDxMessage ( "Aviso: Você foi Desalgemado pelo Policial "..nick_do_policial, player_a_ser_desalgemado, 255, 255, 255 )
				    exports.Scripts_Textos:createNewDxMessage ( "Aviso: Você desalgemou o Jogador "..nick_do_jogador.." com Sucesso!", thePlayer, 255, 255, 255 )
				end
			end
		end
	end
end
addCommandHandler( Cmd02, Desalgemar_Jogador)

function Retirar_Armas ( source, cmd, pname )
	if getElementData(source, "ocupacao" ) == "Policial" then
		local cliente = getPlayerFromID(pname)
		if isElement(cliente) then
			if cliente == source then exports.Scripts_Dxmessages:outputDx(source, "Erro: Você não pode Retirar suas Proprias Armas!", "error") return end
			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
			    takeAllWeapons ( cliente )
				exports.Scripts_Dxmessages:outputDx(source, "Aviso: Você removeu todas as Armas do Jogador #ffffff"..getPlayerName(cliente).." #ffffffcom Sucesso!", "success")
				exports.Scripts_Dxmessages:outputDx(cliente, "Aviso: O Policial #ffffff"..getPlayerName(source).."#ffffff Confiscou todas as suas Armas!", "warning")
			end
		else
		    exports.Scripts_Dxmessages:outputDx(source, "Erro: O Jogador Não Foi Encontrado!", "error")
		end
	end
end
addCommandHandler ( Cmd03, Retirar_Armas )

function Verificar_Emprego_Atual ( )
	for i, player in ipairs(getElementsByType("player")) do
		local acc = getPlayerAccount(player)
		if acc and not isGuestAccount(acc) then
			local job = getElementData(player,'ocupacao')
			local accName = getAccountName (acc)
			if isObjectInACLGroup ("user."..accName, aclGetGroup ( Grupo ) ) then
			    setElementData ( player, "ocupacao", "Policial" )
			    setElementData ( player, "AirNewSCR_Entrada_PortaoDP", "Sim" )
				setElementData ( player, "AirNew_Perm_Prender", "Sim" )
			else
			    setElementData ( player, "ocupacao", "Criminoso" )
			    setElementData ( player, "AirNewSCR_Entrada_PortaoDP", "Não" )
				setElementData ( player, "AirNew_Perm_Prender", "Não" )
			end
		end
	end
end
setTimer ( Verificar_Emprego_Atual, 1500, 0 )

local Prisao_Blip = createBlip ( 1535.89856, -1672.66479, 13.38281 )
setElementVisibleTo ( Prisao_Blip, root, false )

function Nivel_de_Procurado ( source, int )
	if int == 0 then
		setPlayerWantedLevel ( source, int )
	else
		local wl = getPlayerWantedLevel ( source )
		if wl + int <= 6 then
			setPlayerWantedLevel ( source, wl+int )
		else
			setPlayerWantedLevel ( source, 6 )
		end
	end
end
addEvent("AirNewSCR_Nivel_de_Procurado", true)
addEventHandler("AirNewSCR_Nivel_de_Procurado", getRootElement ( ), Nivel_de_Procurado )

function Mensagens_Exports ( source, msg )
	exports.Scripts_Textos:createNewDxMessage ( msg, source, 255, 255, 255 )
end
addEvent ( "AirNewSCR_Mensagens_Exports", true)
addEventHandler ( "AirNewSCR_Mensagens_Exports", getRootElement ( ), Mensagens_Exports )

function Enviar_Prisao_Servidor ( Jogador, Numero, Formato, Motivo )
    outputChatBox ( "#58ACFAPolicia: O Policial #ffffff"..getPlayerName(source).." #58ACFAPrendeu o Jogador #ffffff"..Jogador.."!", root, 255, 255, 255, true )
    outputChatBox ( "#58ACFAPolicia: Pelo tempo de "..Numero.." "..Formato..", Motivo: "..Motivo.."!", root, 255, 255, 255, true )
    Jogador_Func = getPlayerFromName ( Jogador )
    Estrelas_Preso = getPlayerWantedLevel ( Jogador_Func )
    givePlayerMoney ( source, Estrelas_Preso*1000 )
    if Formato == "Segundo(s)" then
        Multiplicador = 1
    elseif Formato == "Minuto(s)" then
        Multiplicador = 60
    elseif Formato == "Hora(s)" then
        Multiplicador = 3600
    elseif Formato == "Dia(s)" then
        Multiplicador = 86400
    end
    TempoPrisao = Numero*Multiplicador
    setElementData ( Jogador_Func, "AirNew_Tempo_Prisao", TempoPrisao )
    setElementData ( Jogador_Func, "AirNew_Preso", "Sim" )
	setPlayerWantedLevel ( Jogador_Func, 0 )
	takeAllWeapons ( Jogador_Func )
	
	setElementData ( Jogador_Func, "Policia:Captura", false )
	setElementData ( Jogador_Func, "Player:Msg", "" )
	showCursor ( Jogador_Func, false)
	setControlState ( Jogador_Func, "sprint", false)
	setControlState ( Jogador_Func, "walk", false)
	setControlState ( Jogador_Func, "forwards", false)
	toggleAllControls ( Jogador_Func, true )
	
	triggerClientEvent ( source, "CancelTimeParaPrender:Time", source )
	
	if getElementData ( Jogador_Func, "algemado" ) == true then
		setElementData ( Jogador_Func, "algemado", false )
		setPedAnimation ( Jogador_Func )
		setElementFrozen ( Jogador_Func, false )
		toggleControl ( Jogador_Func, "fire", true )
	end
end
addEvent( "AirNew_Enviar_Prisao", true )
addEventHandler( "AirNew_Enviar_Prisao", getRootElement(), Enviar_Prisao_Servidor )

function Capturar_Jogador ( source, wantedlevel, vitima )
	local x, y, z = getElementPosition ( vitima )
	if x < -518 and y < 0 then -- SF
		time = 4
	end
	if x >= -518 and y < 510 then -- LS
		time = 2
	end
	if x >= -518 and y >= 510 then -- LV
		time = 4
	end	
	setElementData ( source, "PoliceToPrision:Time", tonumber(time*60) )	
	setTimer ( triggerClientEvent, 10000, 1, source, "ShowTimeParaPrender:Time", source )
	
	exports.Scripts_Textos:createNewDxMessage ( "Você foi Capturado pelo Policial "..getPlayerName(source), vitima, 255, 255, 255 )
	exports.Scripts_Textos:createNewDxMessage ( "Você tem "..time.." Minutos para Levar o Jogador para a Prisão!", source, 255, 255, 255 )
	
	toggleAllControls ( vitima, false )
	setElementVisibleTo ( Prisao_Blip, source, true )
end
addEvent("AirNewSCR_Capturar_Jogador", true)
addEventHandler("AirNewSCR_Capturar_Jogador", getRootElement(), Capturar_Jogador )

function Teleportar_Capturado_Veiculo ( state, player , vehicle , seat )
	if state == true then
		if seat and isElement ( vehicle ) then
		    warpPedIntoVehicle ( player, vehicle, seat )
		end
	else 
		removePedFromVehicle ( player )
	end
end
addEvent ( "AirNewSCR_TeleportarVeiculo", true )
addEventHandler ( "AirNewSCR_TeleportarVeiculo", getRootElement ( ), Teleportar_Capturado_Veiculo )

function Remover_Jogador_Veiculo ( player )
    removePedFromVehicle ( player )
end
addEvent ( "AirNewSCR_Remover_Jogador_Veiculo", true )
addEventHandler ( "AirNewSCR_Remover_Jogador_Veiculo", getRootElement ( ), Remover_Jogador_Veiculo )

function Teleportar_Capturado_Player ( source, type, value, x, y ,z)
	local Policial = getElementData ( source, "Policia:Captura" )
	if isElement ( Policial ) and not isPedInVehicle ( source ) then
		if type == "INT" then
			setElementInterior ( source, value )
		elseif type == "DIM" then
			setElementDimension ( source, value )
		end
		setElementPosition ( source, x, y ,z )
	end
end
addEvent ( "AirNewSCR_TeleportarPlayer", true )
addEventHandler ( "AirNewSCR_TeleportarPlayer", getRootElement ( ), Teleportar_Capturado_Player )

function Liberar_Capturado ( source )	
	for p, player in ipairs ( getElementsByType ( "player" ) ) do	
		job = getElementData ( player,"ocupacao" ) or "Nenhum"
		capturado = getElementData ( player, "Policia:Captura" )
		if job == "Criminoso" and isElement ( capturado ) then
			if capturado == source then
				Soltar_Fail_Captura ( source, player )
			end
		end
	end
end
addEvent ( "AirNewSCR_FalharCapturaLiberar", true )
addEventHandler ( "AirNewSCR_FalharCapturaLiberar", getRootElement ( ), Liberar_Capturado )

function Soltar_Fail_Captura ( policial, vitima )
	exports.Scripts_Textos:createNewDxMessage ( "O policial falhou e voce está solto novamnte, fuja",vitima, 255, 255, 255 )
	exports.Scripts_Textos:createNewDxMessage ( "Voce falhou e o criminoso está solto novamente",policial, 255, 255, 255 )
	setElementVisibleTo ( Prisao_Blip, policial, false )
	setElementData ( vitima, "Policia:Captura", false )
	setElementData ( vitima, "Player:Msg", "" )
	showCursor ( vitima, false )
	setControlState ( vitima, "sprint", false )
	setControlState ( vitima, "walk", false )
	setControlState ( vitima, "forwards", false )
	toggleAllControls ( vitima, true )
end

--- // Salvamento - Carregamento // ---
addEventHandler("onPlayerLogin", root,
function( _, acc )
 CarregarLoginPlay ( acc )
 end
)

function CarregarLoginPlay ( conta )
	if not isGuestAccount ( conta ) then
		if conta then	
			local source = getAccountPlayer ( conta )
			local AirNew_Tempo_Prisao = getAccountData ( conta, "AirNew_Tempo_Prisao" ) or 0
			setElementData ( source, "AirNew_Tempo_Prisao", AirNew_Tempo_Prisao )
			local AirNew_Preso = getAccountData ( conta, "AirNew_Preso" ) or "Não"
			setElementData ( source, "AirNew_Preso", AirNew_Preso )
		end
	end	
end

function ReiniciarScript ( res )
	if res == getThisResource ( ) then
		for i, player in ipairs ( getElementsByType ( "player" ) ) do
			local acc = getPlayerAccount ( player )
			if not isGuestAccount ( acc ) then
				CarregarLoginPlay ( acc )
			end
		end
	end
end
addEventHandler ( "onResourceStart", getRootElement ( ), ReiniciarScript )
--

function SalvarLoginPlay ( conta )
	if conta then
		local source = getAccountPlayer ( conta )
		local AirNew_Tempo_Prisao = getElementData ( source, "AirNew_Tempo_Prisao" ) or 0
		setAccountData ( conta, "AirNew_Tempo_Prisao", AirNew_Tempo_Prisao )
		local AirNew_Preso = getElementData ( source, "AirNew_Preso" ) or "Não"
		setAccountData ( conta, "AirNew_Preso", AirNew_Preso )
	end	
end

function DesligarScript ( res )
    if res == getThisResource ( ) then
		for i, player in ipairs ( getElementsByType ( "player" ) ) do
			local acc = getPlayerAccount ( player )
			if not isGuestAccount ( acc ) then
				SalvarLoginPlay ( acc )
			end
		end
	end
end 
addEventHandler ( "onResourceStop", getRootElement ( ), DesligarScript )

function JogadorQuit ( quitType )
	local acc = getPlayerAccount ( source )
	if not isGuestAccount ( acc ) then
		if acc then
			SalvarLoginPlay ( acc )
		end
	end
end
addEventHandler ( "onPlayerQuit", getRootElement ( ), JogadorQuit )

function getPlayerFromID( id )
	for _, player in next, getElementsByType("player") do
		if tonumber(id) and (getElementData(player, "ID") or -1) == tonumber(id) then
			return player
		end
	end
	return false
end

Quando for testar deixe o debug ativado /debugscript 3.

Please do not PM me with scripting related question nor support, use the forums instead.

Posted
5 hours ago, DNL291 said:

Tente isto:
 


InteriorDP = 6DimensaoDP = 0Cmd01 = "a" -- AlgemaCmd02 = "d" -- DesalgemaCmd03 = "c" -- Retira ArmasGrupo = "Policial"Distancia_Comandos = 7Deixar_Preso = createMarker ( 1535.73486, -1672.03137, 13.38281 -1, "cylinder", 10, 255, 255, 255, 0 )Local_Preso = createMarker ( 264.08435, 77.60955, 1001.03906 -1, "cylinder", 2.5, 255, 255, 255, 0 )setElementInterior ( Local_Preso, InteriorDP )setElementDimension ( Local_Preso, DimensaoDP )function emarker ( marker, md )	if md then	    if marker == Deixar_Preso then		    if getElementData ( source, "ocupacao" ) == "Policial" then		        setElementData ( source, "AirNewSCR_PrisaoArea", "Sim" )				exports.Scripts_OnMarkerMsgs_:create ( source, "Aviso: Aperte F9 para Abrir / Fechar o Painel de Prender do DP" )			end		end    endendaddEventHandler ( "onPlayerMarkerHit", getRootElement ( ), emarker )function lmarker ( marker, md )	if md then	    if marker == Deixar_Preso then		    setElementData ( source, "AirNewSCR_PrisaoArea", "Não" )			exports.Scripts_OnMarkerMsgs_:delete(source)		end    endendaddEventHandler ( "onPlayerMarkerLeave", getRootElement ( ), lmarker )function Algemar_Jogador ( thePlayer, _, nick )	if nick then		if getPlayerFromID ( nick ) then            local accName = getAccountName ( getPlayerAccount ( thePlayer ) )            if isObjectInACLGroup ("user."..accName, aclGetGroup ( Grupo ) ) then				local player_a_ser_algemado = getPlayerFromID ( nick )                local nick_do_jogador = getPlayerName ( player_a_ser_algemado )				local nick_do_policial = getPlayerName ( thePlayer )                local jX, jY, jZ = getElementPosition (player_a_ser_algemado) 				local pX, pY, pZ = getElementPosition (thePlayer)				local dist = getDistanceBetweenPoints3D ( pX, pY, pZ, jX, jY, jZ)				if thePlayer == player_a_ser_algemado then				    return exports.Scripts_Textos:createNewDxMessage ( "Erro: Você não pode algemar você mesmo!", thePlayer, 255, 255, 255 )				end				local Verificar = getElementData ( player_a_ser_algemado, "algemado" ) or false				if Verificar == true then				    exports.Scripts_Textos:createNewDxMessage ( "Erro: Esse Jogador ja Esta Algemado!", thePlayer, 255, 255, 255 )				else								    if dist <= Distancia_Comandos then				        setElementData(player_a_ser_algemado,"algemado", true )				        setElementFrozen( player_a_ser_algemado, true )				        toggleControl(player_a_ser_algemado, "fire", false)				        setPedAnimation( player_a_ser_algemado, "GRAVEYARD", "mrnM_loop", -1, true, false, false, false)				        exports.Scripts_Textos:createNewDxMessage ( "Aviso: Você foi Algemado pelo Policial "..nick_do_policial, player_a_ser_algemado, 255, 255, 255 )				        exports.Scripts_Textos:createNewDxMessage ( "Aviso: Você algemou o Jogador "..nick_do_jogador.." com Sucesso!", thePlayer, 255, 255, 255 )				    else				        exports.Scripts_Textos:createNewDxMessage ( "Erro: Você esta Muito longe do Jogador! chegue mais Perto para poder Algema-lo!", thePlayer, 255, 255, 255 )				    end				end			end		end	endendaddCommandHandler( Cmd01, Algemar_Jogador)function Desalgemar_Jogador ( thePlayer, _, nick )	if nick then		if getPlayerFromID ( nick ) then            local accName = getAccountName ( getPlayerAccount ( thePlayer ) )            if isObjectInACLGroup ("user."..accName, aclGetGroup ( Grupo) ) then				local player_a_ser_desalgemado = getPlayerFromID ( nick )                local nick_do_jogador = getPlayerName ( player_a_ser_desalgemado )				local nick_do_policial = getPlayerName ( thePlayer )				if thePlayer == player_a_ser_desalgemado then				    return exports.Scripts_Textos:createNewDxMessage ( "Erro: Você não pode desalgemar você mesmo!", thePlayer, 255, 255, 255 )				end				local Verificar = getElementData ( player_a_ser_desalgemado, "algemado" ) or false				if Verificar == false then				    exports.Scripts_Textos:createNewDxMessage ( "Erro: Esse Jogador não esta Algemado!", thePlayer, 255, 255, 255 )				else				    setElementData ( player_a_ser_desalgemado, "algemado", false )				    setPedAnimation ( player_a_ser_desalgemado )				    setElementFrozen ( player_a_ser_desalgemado, false )				    toggleControl ( player_a_ser_desalgemado, "fire", true )				    exports.Scripts_Textos:createNewDxMessage ( "Aviso: Você foi Desalgemado pelo Policial "..nick_do_policial, player_a_ser_desalgemado, 255, 255, 255 )				    exports.Scripts_Textos:createNewDxMessage ( "Aviso: Você desalgemou o Jogador "..nick_do_jogador.." com Sucesso!", thePlayer, 255, 255, 255 )				end			end		end	endendaddCommandHandler( Cmd02, Desalgemar_Jogador)function Retirar_Armas ( source, cmd, pname )	if getElementData(source, "ocupacao" ) == "Policial" then		local cliente = getPlayerFromID(pname)		if isElement(cliente) then			if cliente == source then exports.Scripts_Dxmessages:outputDx(source, "Erro: Você não pode Retirar suas Proprias Armas!", "error") return end			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			    takeAllWeapons ( cliente )				exports.Scripts_Dxmessages:outputDx(source, "Aviso: Você removeu todas as Armas do Jogador #ffffff"..getPlayerName(cliente).." #ffffffcom Sucesso!", "success")				exports.Scripts_Dxmessages:outputDx(cliente, "Aviso: O Policial #ffffff"..getPlayerName(source).."#ffffff Confiscou todas as suas Armas!", "warning")			end		else		    exports.Scripts_Dxmessages:outputDx(source, "Erro: O Jogador Não Foi Encontrado!", "error")		end	endendaddCommandHandler ( Cmd03, Retirar_Armas )function Verificar_Emprego_Atual ( )	for i, player in ipairs(getElementsByType("player")) do		local acc = getPlayerAccount(player)		if acc and not isGuestAccount(acc) then			local job = getElementData(player,'ocupacao')			local accName = getAccountName (acc)			if isObjectInACLGroup ("user."..accName, aclGetGroup ( Grupo ) ) then			    setElementData ( player, "ocupacao", "Policial" )			    setElementData ( player, "AirNewSCR_Entrada_PortaoDP", "Sim" )				setElementData ( player, "AirNew_Perm_Prender", "Sim" )			else			    setElementData ( player, "ocupacao", "Criminoso" )			    setElementData ( player, "AirNewSCR_Entrada_PortaoDP", "Não" )				setElementData ( player, "AirNew_Perm_Prender", "Não" )			end		end	endendsetTimer ( Verificar_Emprego_Atual, 1500, 0 )local Prisao_Blip = createBlip ( 1535.89856, -1672.66479, 13.38281 )setElementVisibleTo ( Prisao_Blip, root, false )function Nivel_de_Procurado ( source, int )	if int == 0 then		setPlayerWantedLevel ( source, int )	else		local wl = getPlayerWantedLevel ( source )		if wl + int <= 6 then			setPlayerWantedLevel ( source, wl+int )		else			setPlayerWantedLevel ( source, 6 )		end	endendaddEvent("AirNewSCR_Nivel_de_Procurado", true)addEventHandler("AirNewSCR_Nivel_de_Procurado", getRootElement ( ), Nivel_de_Procurado )function Mensagens_Exports ( source, msg )	exports.Scripts_Textos:createNewDxMessage ( msg, source, 255, 255, 255 )endaddEvent ( "AirNewSCR_Mensagens_Exports", true)addEventHandler ( "AirNewSCR_Mensagens_Exports", getRootElement ( ), Mensagens_Exports )function Enviar_Prisao_Servidor ( Jogador, Numero, Formato, Motivo )    outputChatBox ( "#58ACFAPolicia: O Policial #ffffff"..getPlayerName(source).." #58ACFAPrendeu o Jogador #ffffff"..Jogador.."!", root, 255, 255, 255, true )    outputChatBox ( "#58ACFAPolicia: Pelo tempo de "..Numero.." "..Formato..", Motivo: "..Motivo.."!", root, 255, 255, 255, true )    Jogador_Func = getPlayerFromName ( Jogador )    Estrelas_Preso = getPlayerWantedLevel ( Jogador_Func )    givePlayerMoney ( source, Estrelas_Preso*1000 )    if Formato == "Segundo(s)" then        Multiplicador = 1    elseif Formato == "Minuto(s)" then        Multiplicador = 60    elseif Formato == "Hora(s)" then        Multiplicador = 3600    elseif Formato == "Dia(s)" then        Multiplicador = 86400    end    TempoPrisao = Numero*Multiplicador    setElementData ( Jogador_Func, "AirNew_Tempo_Prisao", TempoPrisao )    setElementData ( Jogador_Func, "AirNew_Preso", "Sim" )	setPlayerWantedLevel ( Jogador_Func, 0 )	takeAllWeapons ( Jogador_Func )		setElementData ( Jogador_Func, "Policia:Captura", false )	setElementData ( Jogador_Func, "Player:Msg", "" )	showCursor ( Jogador_Func, false)	setControlState ( Jogador_Func, "sprint", false)	setControlState ( Jogador_Func, "walk", false)	setControlState ( Jogador_Func, "forwards", false)	toggleAllControls ( Jogador_Func, true )		triggerClientEvent ( source, "CancelTimeParaPrender:Time", source )		if getElementData ( Jogador_Func, "algemado" ) == true then		setElementData ( Jogador_Func, "algemado", false )		setPedAnimation ( Jogador_Func )		setElementFrozen ( Jogador_Func, false )		toggleControl ( Jogador_Func, "fire", true )	endendaddEvent( "AirNew_Enviar_Prisao", true )addEventHandler( "AirNew_Enviar_Prisao", getRootElement(), Enviar_Prisao_Servidor )function Capturar_Jogador ( source, wantedlevel, vitima )	local x, y, z = getElementPosition ( vitima )	if x < -518 and y < 0 then -- SF		time = 4	end	if x >= -518 and y < 510 then -- LS		time = 2	end	if x >= -518 and y >= 510 then -- LV		time = 4	end		setElementData ( source, "PoliceToPrision:Time", tonumber(time*60) )		setTimer ( triggerClientEvent, 10000, 1, source, "ShowTimeParaPrender:Time", source )		exports.Scripts_Textos:createNewDxMessage ( "Você foi Capturado pelo Policial "..getPlayerName(source), vitima, 255, 255, 255 )	exports.Scripts_Textos:createNewDxMessage ( "Você tem "..time.." Minutos para Levar o Jogador para a Prisão!", source, 255, 255, 255 )		toggleAllControls ( vitima, false )	setElementVisibleTo ( Prisao_Blip, source, true )endaddEvent("AirNewSCR_Capturar_Jogador", true)addEventHandler("AirNewSCR_Capturar_Jogador", getRootElement(), Capturar_Jogador )function Teleportar_Capturado_Veiculo ( state, player , vehicle , seat )	if state == true then		if seat and isElement ( vehicle ) then		    warpPedIntoVehicle ( player, vehicle, seat )		end	else 		removePedFromVehicle ( player )	endendaddEvent ( "AirNewSCR_TeleportarVeiculo", true )addEventHandler ( "AirNewSCR_TeleportarVeiculo", getRootElement ( ), Teleportar_Capturado_Veiculo )function Remover_Jogador_Veiculo ( player )    removePedFromVehicle ( player )endaddEvent ( "AirNewSCR_Remover_Jogador_Veiculo", true )addEventHandler ( "AirNewSCR_Remover_Jogador_Veiculo", getRootElement ( ), Remover_Jogador_Veiculo )function Teleportar_Capturado_Player ( source, type, value, x, y ,z)	local Policial = getElementData ( source, "Policia:Captura" )	if isElement ( Policial ) and not isPedInVehicle ( source ) then		if type == "INT" then			setElementInterior ( source, value )		elseif type == "DIM" then			setElementDimension ( source, value )		end		setElementPosition ( source, x, y ,z )	endendaddEvent ( "AirNewSCR_TeleportarPlayer", true )addEventHandler ( "AirNewSCR_TeleportarPlayer", getRootElement ( ), Teleportar_Capturado_Player )function Liberar_Capturado ( source )		for p, player in ipairs ( getElementsByType ( "player" ) ) do			job = getElementData ( player,"ocupacao" ) or "Nenhum"		capturado = getElementData ( player, "Policia:Captura" )		if job == "Criminoso" and isElement ( capturado ) then			if capturado == source then				Soltar_Fail_Captura ( source, player )			end		end	endendaddEvent ( "AirNewSCR_FalharCapturaLiberar", true )addEventHandler ( "AirNewSCR_FalharCapturaLiberar", getRootElement ( ), Liberar_Capturado )function Soltar_Fail_Captura ( policial, vitima )	exports.Scripts_Textos:createNewDxMessage ( "O policial falhou e voce está solto novamnte, fuja",vitima, 255, 255, 255 )	exports.Scripts_Textos:createNewDxMessage ( "Voce falhou e o criminoso está solto novamente",policial, 255, 255, 255 )	setElementVisibleTo ( Prisao_Blip, policial, false )	setElementData ( vitima, "Policia:Captura", false )	setElementData ( vitima, "Player:Msg", "" )	showCursor ( vitima, false )	setControlState ( vitima, "sprint", false )	setControlState ( vitima, "walk", false )	setControlState ( vitima, "forwards", false )	toggleAllControls ( vitima, true )end--- // Salvamento - Carregamento // ---addEventHandler("onPlayerLogin", root,function( _, acc ) CarregarLoginPlay ( acc ) end)function CarregarLoginPlay ( conta )	if not isGuestAccount ( conta ) then		if conta then				local source = getAccountPlayer ( conta )			local AirNew_Tempo_Prisao = getAccountData ( conta, "AirNew_Tempo_Prisao" ) or 0			setElementData ( source, "AirNew_Tempo_Prisao", AirNew_Tempo_Prisao )			local AirNew_Preso = getAccountData ( conta, "AirNew_Preso" ) or "Não"			setElementData ( source, "AirNew_Preso", AirNew_Preso )		end	end	endfunction ReiniciarScript ( res )	if res == getThisResource ( ) then		for i, player in ipairs ( getElementsByType ( "player" ) ) do			local acc = getPlayerAccount ( player )			if not isGuestAccount ( acc ) then				CarregarLoginPlay ( acc )			end		end	endendaddEventHandler ( "onResourceStart", getRootElement ( ), ReiniciarScript )--function SalvarLoginPlay ( conta )	if conta then		local source = getAccountPlayer ( conta )		local AirNew_Tempo_Prisao = getElementData ( source, "AirNew_Tempo_Prisao" ) or 0		setAccountData ( conta, "AirNew_Tempo_Prisao", AirNew_Tempo_Prisao )		local AirNew_Preso = getElementData ( source, "AirNew_Preso" ) or "Não"		setAccountData ( conta, "AirNew_Preso", AirNew_Preso )	end	endfunction DesligarScript ( res )    if res == getThisResource ( ) then		for i, player in ipairs ( getElementsByType ( "player" ) ) do			local acc = getPlayerAccount ( player )			if not isGuestAccount ( acc ) then				SalvarLoginPlay ( acc )			end		end	endend addEventHandler ( "onResourceStop", getRootElement ( ), DesligarScript )function JogadorQuit ( quitType )	local acc = getPlayerAccount ( source )	if not isGuestAccount ( acc ) then		if acc then			SalvarLoginPlay ( acc )		end	endendaddEventHandler ( "onPlayerQuit", getRootElement ( ), JogadorQuit )function getPlayerFromID( id )	for _, player in next, getElementsByType("player") do		if tonumber(id) and (getElementData(player, "ID") or -1) == tonumber(id) then			return player		end	end	return falseend

Quando for testar deixe o debug ativado /debugscript 3.

Consegui muito obrigado. Vou tentar fazer o da samu sozinho agora pra ver se vai, te amoooo♥

5 hours ago, DNL291 said:

Tente isto:
 


InteriorDP = 6DimensaoDP = 0Cmd01 = "a" -- AlgemaCmd02 = "d" -- DesalgemaCmd03 = "c" -- Retira ArmasGrupo = "Policial"Distancia_Comandos = 7Deixar_Preso = createMarker ( 1535.73486, -1672.03137, 13.38281 -1, "cylinder", 10, 255, 255, 255, 0 )Local_Preso = createMarker ( 264.08435, 77.60955, 1001.03906 -1, "cylinder", 2.5, 255, 255, 255, 0 )setElementInterior ( Local_Preso, InteriorDP )setElementDimension ( Local_Preso, DimensaoDP )function emarker ( marker, md )	if md then	    if marker == Deixar_Preso then		    if getElementData ( source, "ocupacao" ) == "Policial" then		        setElementData ( source, "AirNewSCR_PrisaoArea", "Sim" )				exports.Scripts_OnMarkerMsgs_:create ( source, "Aviso: Aperte F9 para Abrir / Fechar o Painel de Prender do DP" )			end		end    endendaddEventHandler ( "onPlayerMarkerHit", getRootElement ( ), emarker )function lmarker ( marker, md )	if md then	    if marker == Deixar_Preso then		    setElementData ( source, "AirNewSCR_PrisaoArea", "Não" )			exports.Scripts_OnMarkerMsgs_:delete(source)		end    endendaddEventHandler ( "onPlayerMarkerLeave", getRootElement ( ), lmarker )function Algemar_Jogador ( thePlayer, _, nick )	if nick then		if getPlayerFromID ( nick ) then            local accName = getAccountName ( getPlayerAccount ( thePlayer ) )            if isObjectInACLGroup ("user."..accName, aclGetGroup ( Grupo ) ) then				local player_a_ser_algemado = getPlayerFromID ( nick )                local nick_do_jogador = getPlayerName ( player_a_ser_algemado )				local nick_do_policial = getPlayerName ( thePlayer )                local jX, jY, jZ = getElementPosition (player_a_ser_algemado) 				local pX, pY, pZ = getElementPosition (thePlayer)				local dist = getDistanceBetweenPoints3D ( pX, pY, pZ, jX, jY, jZ)				if thePlayer == player_a_ser_algemado then				    return exports.Scripts_Textos:createNewDxMessage ( "Erro: Você não pode algemar você mesmo!", thePlayer, 255, 255, 255 )				end				local Verificar = getElementData ( player_a_ser_algemado, "algemado" ) or false				if Verificar == true then				    exports.Scripts_Textos:createNewDxMessage ( "Erro: Esse Jogador ja Esta Algemado!", thePlayer, 255, 255, 255 )				else								    if dist <= Distancia_Comandos then				        setElementData(player_a_ser_algemado,"algemado", true )				        setElementFrozen( player_a_ser_algemado, true )				        toggleControl(player_a_ser_algemado, "fire", false)				        setPedAnimation( player_a_ser_algemado, "GRAVEYARD", "mrnM_loop", -1, true, false, false, false)				        exports.Scripts_Textos:createNewDxMessage ( "Aviso: Você foi Algemado pelo Policial "..nick_do_policial, player_a_ser_algemado, 255, 255, 255 )				        exports.Scripts_Textos:createNewDxMessage ( "Aviso: Você algemou o Jogador "..nick_do_jogador.." com Sucesso!", thePlayer, 255, 255, 255 )				    else				        exports.Scripts_Textos:createNewDxMessage ( "Erro: Você esta Muito longe do Jogador! chegue mais Perto para poder Algema-lo!", thePlayer, 255, 255, 255 )				    end				end			end		end	endendaddCommandHandler( Cmd01, Algemar_Jogador)function Desalgemar_Jogador ( thePlayer, _, nick )	if nick then		if getPlayerFromID ( nick ) then            local accName = getAccountName ( getPlayerAccount ( thePlayer ) )            if isObjectInACLGroup ("user."..accName, aclGetGroup ( Grupo) ) then				local player_a_ser_desalgemado = getPlayerFromID ( nick )                local nick_do_jogador = getPlayerName ( player_a_ser_desalgemado )				local nick_do_policial = getPlayerName ( thePlayer )				if thePlayer == player_a_ser_desalgemado then				    return exports.Scripts_Textos:createNewDxMessage ( "Erro: Você não pode desalgemar você mesmo!", thePlayer, 255, 255, 255 )				end				local Verificar = getElementData ( player_a_ser_desalgemado, "algemado" ) or false				if Verificar == false then				    exports.Scripts_Textos:createNewDxMessage ( "Erro: Esse Jogador não esta Algemado!", thePlayer, 255, 255, 255 )				else				    setElementData ( player_a_ser_desalgemado, "algemado", false )				    setPedAnimation ( player_a_ser_desalgemado )				    setElementFrozen ( player_a_ser_desalgemado, false )				    toggleControl ( player_a_ser_desalgemado, "fire", true )				    exports.Scripts_Textos:createNewDxMessage ( "Aviso: Você foi Desalgemado pelo Policial "..nick_do_policial, player_a_ser_desalgemado, 255, 255, 255 )				    exports.Scripts_Textos:createNewDxMessage ( "Aviso: Você desalgemou o Jogador "..nick_do_jogador.." com Sucesso!", thePlayer, 255, 255, 255 )				end			end		end	endendaddCommandHandler( Cmd02, Desalgemar_Jogador)function Retirar_Armas ( source, cmd, pname )	if getElementData(source, "ocupacao" ) == "Policial" then		local cliente = getPlayerFromID(pname)		if isElement(cliente) then			if cliente == source then exports.Scripts_Dxmessages:outputDx(source, "Erro: Você não pode Retirar suas Proprias Armas!", "error") return end			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			    takeAllWeapons ( cliente )				exports.Scripts_Dxmessages:outputDx(source, "Aviso: Você removeu todas as Armas do Jogador #ffffff"..getPlayerName(cliente).." #ffffffcom Sucesso!", "success")				exports.Scripts_Dxmessages:outputDx(cliente, "Aviso: O Policial #ffffff"..getPlayerName(source).."#ffffff Confiscou todas as suas Armas!", "warning")			end		else		    exports.Scripts_Dxmessages:outputDx(source, "Erro: O Jogador Não Foi Encontrado!", "error")		end	endendaddCommandHandler ( Cmd03, Retirar_Armas )function Verificar_Emprego_Atual ( )	for i, player in ipairs(getElementsByType("player")) do		local acc = getPlayerAccount(player)		if acc and not isGuestAccount(acc) then			local job = getElementData(player,'ocupacao')			local accName = getAccountName (acc)			if isObjectInACLGroup ("user."..accName, aclGetGroup ( Grupo ) ) then			    setElementData ( player, "ocupacao", "Policial" )			    setElementData ( player, "AirNewSCR_Entrada_PortaoDP", "Sim" )				setElementData ( player, "AirNew_Perm_Prender", "Sim" )			else			    setElementData ( player, "ocupacao", "Criminoso" )			    setElementData ( player, "AirNewSCR_Entrada_PortaoDP", "Não" )				setElementData ( player, "AirNew_Perm_Prender", "Não" )			end		end	endendsetTimer ( Verificar_Emprego_Atual, 1500, 0 )local Prisao_Blip = createBlip ( 1535.89856, -1672.66479, 13.38281 )setElementVisibleTo ( Prisao_Blip, root, false )function Nivel_de_Procurado ( source, int )	if int == 0 then		setPlayerWantedLevel ( source, int )	else		local wl = getPlayerWantedLevel ( source )		if wl + int <= 6 then			setPlayerWantedLevel ( source, wl+int )		else			setPlayerWantedLevel ( source, 6 )		end	endendaddEvent("AirNewSCR_Nivel_de_Procurado", true)addEventHandler("AirNewSCR_Nivel_de_Procurado", getRootElement ( ), Nivel_de_Procurado )function Mensagens_Exports ( source, msg )	exports.Scripts_Textos:createNewDxMessage ( msg, source, 255, 255, 255 )endaddEvent ( "AirNewSCR_Mensagens_Exports", true)addEventHandler ( "AirNewSCR_Mensagens_Exports", getRootElement ( ), Mensagens_Exports )function Enviar_Prisao_Servidor ( Jogador, Numero, Formato, Motivo )    outputChatBox ( "#58ACFAPolicia: O Policial #ffffff"..getPlayerName(source).." #58ACFAPrendeu o Jogador #ffffff"..Jogador.."!", root, 255, 255, 255, true )    outputChatBox ( "#58ACFAPolicia: Pelo tempo de "..Numero.." "..Formato..", Motivo: "..Motivo.."!", root, 255, 255, 255, true )    Jogador_Func = getPlayerFromName ( Jogador )    Estrelas_Preso = getPlayerWantedLevel ( Jogador_Func )    givePlayerMoney ( source, Estrelas_Preso*1000 )    if Formato == "Segundo(s)" then        Multiplicador = 1    elseif Formato == "Minuto(s)" then        Multiplicador = 60    elseif Formato == "Hora(s)" then        Multiplicador = 3600    elseif Formato == "Dia(s)" then        Multiplicador = 86400    end    TempoPrisao = Numero*Multiplicador    setElementData ( Jogador_Func, "AirNew_Tempo_Prisao", TempoPrisao )    setElementData ( Jogador_Func, "AirNew_Preso", "Sim" )	setPlayerWantedLevel ( Jogador_Func, 0 )	takeAllWeapons ( Jogador_Func )		setElementData ( Jogador_Func, "Policia:Captura", false )	setElementData ( Jogador_Func, "Player:Msg", "" )	showCursor ( Jogador_Func, false)	setControlState ( Jogador_Func, "sprint", false)	setControlState ( Jogador_Func, "walk", false)	setControlState ( Jogador_Func, "forwards", false)	toggleAllControls ( Jogador_Func, true )		triggerClientEvent ( source, "CancelTimeParaPrender:Time", source )		if getElementData ( Jogador_Func, "algemado" ) == true then		setElementData ( Jogador_Func, "algemado", false )		setPedAnimation ( Jogador_Func )		setElementFrozen ( Jogador_Func, false )		toggleControl ( Jogador_Func, "fire", true )	endendaddEvent( "AirNew_Enviar_Prisao", true )addEventHandler( "AirNew_Enviar_Prisao", getRootElement(), Enviar_Prisao_Servidor )function Capturar_Jogador ( source, wantedlevel, vitima )	local x, y, z = getElementPosition ( vitima )	if x < -518 and y < 0 then -- SF		time = 4	end	if x >= -518 and y < 510 then -- LS		time = 2	end	if x >= -518 and y >= 510 then -- LV		time = 4	end		setElementData ( source, "PoliceToPrision:Time", tonumber(time*60) )		setTimer ( triggerClientEvent, 10000, 1, source, "ShowTimeParaPrender:Time", source )		exports.Scripts_Textos:createNewDxMessage ( "Você foi Capturado pelo Policial "..getPlayerName(source), vitima, 255, 255, 255 )	exports.Scripts_Textos:createNewDxMessage ( "Você tem "..time.." Minutos para Levar o Jogador para a Prisão!", source, 255, 255, 255 )		toggleAllControls ( vitima, false )	setElementVisibleTo ( Prisao_Blip, source, true )endaddEvent("AirNewSCR_Capturar_Jogador", true)addEventHandler("AirNewSCR_Capturar_Jogador", getRootElement(), Capturar_Jogador )function Teleportar_Capturado_Veiculo ( state, player , vehicle , seat )	if state == true then		if seat and isElement ( vehicle ) then		    warpPedIntoVehicle ( player, vehicle, seat )		end	else 		removePedFromVehicle ( player )	endendaddEvent ( "AirNewSCR_TeleportarVeiculo", true )addEventHandler ( "AirNewSCR_TeleportarVeiculo", getRootElement ( ), Teleportar_Capturado_Veiculo )function Remover_Jogador_Veiculo ( player )    removePedFromVehicle ( player )endaddEvent ( "AirNewSCR_Remover_Jogador_Veiculo", true )addEventHandler ( "AirNewSCR_Remover_Jogador_Veiculo", getRootElement ( ), Remover_Jogador_Veiculo )function Teleportar_Capturado_Player ( source, type, value, x, y ,z)	local Policial = getElementData ( source, "Policia:Captura" )	if isElement ( Policial ) and not isPedInVehicle ( source ) then		if type == "INT" then			setElementInterior ( source, value )		elseif type == "DIM" then			setElementDimension ( source, value )		end		setElementPosition ( source, x, y ,z )	endendaddEvent ( "AirNewSCR_TeleportarPlayer", true )addEventHandler ( "AirNewSCR_TeleportarPlayer", getRootElement ( ), Teleportar_Capturado_Player )function Liberar_Capturado ( source )		for p, player in ipairs ( getElementsByType ( "player" ) ) do			job = getElementData ( player,"ocupacao" ) or "Nenhum"		capturado = getElementData ( player, "Policia:Captura" )		if job == "Criminoso" and isElement ( capturado ) then			if capturado == source then				Soltar_Fail_Captura ( source, player )			end		end	endendaddEvent ( "AirNewSCR_FalharCapturaLiberar", true )addEventHandler ( "AirNewSCR_FalharCapturaLiberar", getRootElement ( ), Liberar_Capturado )function Soltar_Fail_Captura ( policial, vitima )	exports.Scripts_Textos:createNewDxMessage ( "O policial falhou e voce está solto novamnte, fuja",vitima, 255, 255, 255 )	exports.Scripts_Textos:createNewDxMessage ( "Voce falhou e o criminoso está solto novamente",policial, 255, 255, 255 )	setElementVisibleTo ( Prisao_Blip, policial, false )	setElementData ( vitima, "Policia:Captura", false )	setElementData ( vitima, "Player:Msg", "" )	showCursor ( vitima, false )	setControlState ( vitima, "sprint", false )	setControlState ( vitima, "walk", false )	setControlState ( vitima, "forwards", false )	toggleAllControls ( vitima, true )end--- // Salvamento - Carregamento // ---addEventHandler("onPlayerLogin", root,function( _, acc ) CarregarLoginPlay ( acc ) end)function CarregarLoginPlay ( conta )	if not isGuestAccount ( conta ) then		if conta then				local source = getAccountPlayer ( conta )			local AirNew_Tempo_Prisao = getAccountData ( conta, "AirNew_Tempo_Prisao" ) or 0			setElementData ( source, "AirNew_Tempo_Prisao", AirNew_Tempo_Prisao )			local AirNew_Preso = getAccountData ( conta, "AirNew_Preso" ) or "Não"			setElementData ( source, "AirNew_Preso", AirNew_Preso )		end	end	endfunction ReiniciarScript ( res )	if res == getThisResource ( ) then		for i, player in ipairs ( getElementsByType ( "player" ) ) do			local acc = getPlayerAccount ( player )			if not isGuestAccount ( acc ) then				CarregarLoginPlay ( acc )			end		end	endendaddEventHandler ( "onResourceStart", getRootElement ( ), ReiniciarScript )--function SalvarLoginPlay ( conta )	if conta then		local source = getAccountPlayer ( conta )		local AirNew_Tempo_Prisao = getElementData ( source, "AirNew_Tempo_Prisao" ) or 0		setAccountData ( conta, "AirNew_Tempo_Prisao", AirNew_Tempo_Prisao )		local AirNew_Preso = getElementData ( source, "AirNew_Preso" ) or "Não"		setAccountData ( conta, "AirNew_Preso", AirNew_Preso )	end	endfunction DesligarScript ( res )    if res == getThisResource ( ) then		for i, player in ipairs ( getElementsByType ( "player" ) ) do			local acc = getPlayerAccount ( player )			if not isGuestAccount ( acc ) then				SalvarLoginPlay ( acc )			end		end	endend addEventHandler ( "onResourceStop", getRootElement ( ), DesligarScript )function JogadorQuit ( quitType )	local acc = getPlayerAccount ( source )	if not isGuestAccount ( acc ) then		if acc then			SalvarLoginPlay ( acc )		end	endendaddEventHandler ( "onPlayerQuit", getRootElement ( ), JogadorQuit )function getPlayerFromID( id )	for _, player in next, getElementsByType("player") do		if tonumber(id) and (getElementData(player, "ID") or -1) == tonumber(id) then			return player		end	end	return falseend

Quando for testar deixe o debug ativado /debugscript 3.

Se eu quiser mudar em outros Scripts de Nome para ID, é a mesma coisa?

Posted
3 hours ago, Niick said:

Se eu quiser mudar em outros Scripts de Nome para ID, é a mesma coisa?

Mesma lógica, troca a função de puxar pelo nick por essa de puxar pelo id.

Please do not PM me with scripting related question nor support, use the forums instead.

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