Jump to content

Ajuda


Recommended Posts

Ola Tenho Um Script De Prender Que Quando Digita Isso Ele Vai Para A "Porta" De Tras Do Carro e queria saber se quando quem deu esse comando que estaria na ACL ---> ComandosPolicia , E Queria Saber Quem Recebeu Esse Comando Quando Quem Estiver Dirigindo Fosse Em Um Marker E Quem Recebeu O Comando Fosse Teleportado Para Um Lugar Especifio!

Server.lua

--DELEGACIAS
local marker = {}
local Positions = {
	{1536 , -1675.5 ,12},

	{-1606.509, 723.207, 12.15},
	{2290.18 , 2420.7 ,10}

local delegaciaLS = createMarker(1536 , -1675.5 ,12 -1, 'cylinder', 1.2, 20, 70, 230, 95 )
local delegaciaLV = createMarker(2290.379, 2419.726, 10.82 -1, 'cylinder', 1.2, 20, 70, 230, 95 )
local delegaciaSF = createMarker(-1606.509, 723.207, 12.15 -1, 'cylinder', 1.2, 20, 70, 230, 95 )

createBlip(1536 , -1675.5 ,12, 33)
createBlip(2290.379, 2419.726, 10.82, 33)
createBlip(-1606.509, 723.207, 12.15, 33)

}

function onCommand(command)
	if (command ~= 'say' )  then
		cancelEvent()	
	end
end

carros = {}
function salvacarro (vei, assento, vitima)
	carros[source] = vei
end
addEventHandler ('onPlayerVehicleEnter', root, salvacarro)

function onResourceStart()
	for k=1, #Positions do
		marker[k] = createMarker(Positions[k][1],Positions[k][2],Positions[k][3], 'cylinder', 3.0, 10,10,10, 255)
		createBlipAttachedTo(marker[k],30)
		addEventHandler ('onMarkerHit', marker[k], delegacia)
	end
end

function getPlayerFromPartialName(name)
    local name = name and name:gsub("#%x%x%x%x%x%x", ""):lower() or nil
    if name then
        for _, player in ipairs(getElementsByType("player")) do
            local name_ = getPlayerName(player):gsub("#%x%x%x%x%x%x", ""):lower()
            if name_:find(name, 1, true) then
                return player
            end
        end
    end
end

tx = 0
dx = 4.7
function encarcerar (preso)
	removeElementData (preso, 'navtr')
	setElementData (preso, 'naprisao', true)

	setElementInterior (preso, 6)
	setElementDimension (preso, 200)

	setElementFrozen (preso, false)
	setPedAnimation (preso)
	toggleAllControls (preso, true)
	toggleControl (preso, 'fire', false)	

	if ( tx<6.1*dx ) then
		setElementPosition (preso, 1544.27+tx, -1637.42, -83.36+2)
		setPedRotation (preso, 0)	
		tx = tx + dx
	elseif ( tx>5.9*dx and tx<13.9*dx ) then
		setElementPosition (preso, 1511.08+tx, -1616.37, -83.36)
		setPedRotation (preso, 180)
		tx = tx + dx
	elseif ( tx>13.9*dx and tx<17.1*dx) then
		setElementPosition (preso, 1483.31+tx, -1616.37, -89.5)
		setPedRotation (preso, 180)
		tx = tx + dx
	elseif ( tx>16.9*dx and tx<20.1*dx) then
		setElementPosition (preso, 1464.32+tx, -1637.42, -89.5)
		setPedRotation (preso, 0)
		tx = tx + dx
	elseif ( tx>19.9*dx ) then
		tx = 0
		setElementPosition (preso, 1544.27+tx, -1637.42, -83.36)
		setPedRotation (preso, 0)	
		tx = dx
	end
	
end

function delegacia (source)
	if getElementData (source, 'compreso') then	
		local pregados = getAttachedElements(source)
		for _,preso in ipairs (pregados) do	
			if  (   getElementData (preso, 'navtr')   ) then
				detachElements (preso, source)
				encarcerar(preso)
				local police = getVehicleOccupant (source, 0)
				local niv = getPlayerWantedLevel (preso)
				local premio = 5000*niv
				setPlayerMoney (police, getPlayerMoney(police)+ premio )
				outputChatBox('#bebebeVocê prendeu um procurado nível #00ffff'..niv..'#bebebe e ganhou #00ffffR$ '..premio..'#bebebe de prêmio!' , police, 255, 255, 255, true)							
			end			
		end
	end
end

function colocanavtr (police, _, name)
	if hasObjectPermissionTo(police, "function.Prender") then
		local preso = getPlayerFromPartialName(name)
		local px, py, pz = getElementPosition (police)
		local bx, by, bz = getElementPosition (preso)
		local dist = getDistanceBetweenPoints3D (px, py, pz, bx, by, bz)
		if not preso then
			return outputChatBox('#bebebe Jogador invalido.', police, 255, 255, 255, true)
		end
		if preso == police then
			return outputChatBox('#bebebe Você não pode prender a si mesmo.', police, 255, 255, 255, true)
		end
		if getPlayerWantedLevel(preso) == 0 then
			return outputChatBox('#bebebe Este jogador não está sendo procurado.', police, 255, 255, 255, true)
		end
		if getPedOccupiedVehicle(police) then
			return outputChatBox('#bebebe Você não pode prender de dentro da viatura.', police, 255, 255, 255, true)
		end
		if getPedOccupiedVehicle(preso) then
			return outputChatBox('#bebebe Você não pode prender um bandido enquanto ele estiver dentro de um veículo.', police, 255, 255, 255, true)
		end
		if dist >= 2 then
			return outputChatBox('#bebebe Você precisa chegar mais perto para prender.', police, 255, 255, 255, true)
		end
		setElementData (preso, 'navtr', true)		                     
		addEventHandler('onPlayerCommand', preso, onCommand)              
		local vtr = carros[police]
		setElementData (vtr, 'compreso', true)		
		attachElements (preso, vtr, 0.2, -1.5, 0, 0,0,90)
		setElementFrozen (preso, true)
		toggleAllControls (preso, false)
		takeAllWeapons (preso)
		setPedAnimation (preso, 'ped','CAR_dead_LHS')
		vrx, vry, vrz = getElementRotation(vtr)
		setElementRotation(preso, vrx, vry, vrz+83)	
		warpPedIntoVehicle (police, vtr)			
		outputChatBox('#bebebeLeve o preso para a delegacia mais próxima #00ffff(sirenes azuis).', police, 255, 255, 255,true)
	end
end
addCommandHandler ('prender', colocanavtr)

function libera (liberado)
	if ( getElementData(liberado, 'naprisao') ) then		
		removeEventHandler('onPlayerCommand', liberado, onCommand)
		setElementData (liberado, 'naprisao', false)
		setElementInterior (liberado, 0)
		setElementDimension (liberado, 0)
		setElementPosition (liberado, 1553.41 , -1675.57-math.random(3) ,16)	
		setPedRotation (liberado, 0, 0, 90)
		toggleAllControls (liberado, true)
	end	

	if ( getElementData(liberado, 'navtr') ) then
		removeEventHandler('onPlayerCommand', liberado, onCommand)
		setElementData (liberado, 'navtr', false)
		setElementFrozen (liberado, false)		
		detachElements (liberado, getElementAttachedTo(liberado) )
		lx, ly, lz = getElementPosition (liberado)
		setElementPosition (liberado, lx+2 , ly+2 , lz)	
		setPedAnimation (liberado)
		toggleAllControls (liberado, true)
	end

end

function removeWantedLevel()
	for k, v in ipairs(getElementsByType ('player')) do
		if (getElementData (v, 'naprisao')  or getElementData (v, 'navtr')) then               
			setPlayerWantedLevel(v, getPlayerWantedLevel(v)-1)				
			if getPlayerWantedLevel(v) < 1 then
				libera (v)
			end	
		end			
	end
end
setTimer(removeWantedLevel, 40000, 0)

 

Link to comment

Não entendi a segunda e a terceira parte '-', mas a primeira faça assim:

function colocanavtr (police, _, name)
	if isObjectInACLGroup ("user."..getAccountName(getPlayerAccount (police)), aclGetGroup ("ComandosPolicia")) then
		local preso = getPlayerFromPartialName(name)
		local px, py, pz = getElementPosition (police)
		local bx, by, bz = getElementPosition (preso)
		local dist = getDistanceBetweenPoints3D (px, py, pz, bx, by, bz)
		if not preso then
			return outputChatBox('#bebebe Jogador invalido.', police, 255, 255, 255, true)
		end
		if preso == police then
			return outputChatBox('#bebebe Você não pode prender a si mesmo.', police, 255, 255, 255, true)
		end
		if getPlayerWantedLevel(preso) == 0 then
			return outputChatBox('#bebebe Este jogador não está sendo procurado.', police, 255, 255, 255, true)
		end
		if getPedOccupiedVehicle(police) then
			return outputChatBox('#bebebe Você não pode prender de dentro da viatura.', police, 255, 255, 255, true)
		end
		if getPedOccupiedVehicle(preso) then
			return outputChatBox('#bebebe Você não pode prender um bandido enquanto ele estiver dentro de um veículo.', police, 255, 255, 255, true)
		end
		if dist >= 2 then
			return outputChatBox('#bebebe Você precisa chegar mais perto para prender.', police, 255, 255, 255, true)
		end
		setElementData (preso, 'navtr', true)		                     
		addEventHandler('onPlayerCommand', preso, onCommand)              
		local vtr = carros[police]
		setElementData (vtr, 'compreso', true)		
		attachElements (preso, vtr, 0.2, -1.5, 0, 0,0,90)
		setElementFrozen (preso, true)
		toggleAllControls (preso, false)
		takeAllWeapons (preso)
		setPedAnimation (preso, 'ped','CAR_dead_LHS')
		vrx, vry, vrz = getElementRotation(vtr)
		setElementRotation(preso, vrx, vry, vrz+83)	
		warpPedIntoVehicle (police, vtr)			
		outputChatBox('#bebebeLeve o preso para a delegacia mais próxima #00ffff(sirenes azuis).', police, 255, 255, 255,true)
	else
		outputChatBox ("Você não é um policial.", police, 255, 30, 30)
	end	
end
addCommandHandler ('prender', colocanavtr)

 

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