Jump to content

Script ajuda


Recommended Posts

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 )

 

Link to comment
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.

Link to comment
  • Moderators
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

  • Thanks 1
Link to comment
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.

Link to comment
  • Moderators

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.

  • Thanks 1
Link to comment

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

 

  • Thanks 1
Link to comment
  • Moderators

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

  • Thanks 1
Link to comment
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 :(

Link to comment
  • Moderators

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.

  • Thanks 1
Link to comment
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?

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